Code Monkey home page Code Monkey logo

fo-dicom-win8's Introduction

Fellow Oak DICOM for Windows 8.1 and Windows Phone 8.1 apps

Copyright (c) 2012-2013 Colby Dillion, adaptations to Windows 8.1 and Windows Phone 8.1 (c) 2012-2015 Anders Gustafsson, Cureos AB

This is a fork of Colby Dillion's fo-dicom toolkit, aimed at Windows 8.1 (for desktops and tablets) and Windows Phone 8.1 applications. This repository provides libraries with postfixes Windows and Phone, targetting Windows 8.1 and Windows Phone 8.1, respectively.

To sufficiently use the library in a Windows 8.1 application, consider enabling the following capabilities and declarations in the application manifest file:

  • Documents Library capability
  • Internet (Client & Server) capability
  • Private Networks (Client & Server) capability
  • Removable Storage capability
  • File Type Associations declaration e.g. for files with extensions .dcm and .dic

At this stage, the DICOM.Windows and DICOM.Phone class libraries expose the same API as the regular .NET Framework fo-dicom class library. DICOM.Windows and DICOM.Phone currently do not publicly expose Windows Runtime API asynchronous methods for file and network I/O etc.

The libraries have dependencies to native (C/C++) codec classes and therefore have to be built separately for each platform. Supported platforms are x86, x64 (only Windows Store) and ARM.

Compared to the regular fo-dicom class library, DICOM.Windows and DICOM.Phone exhibit the following known limitations:

  • Only Secure Sockets Layer (SSL) client is supported, SSL server functionality is not enabled.
  • Database query transforms are not supported, i.e. it is not possible to update a DICOM dataset based on a database query.

Issues directly related to using fo-dicom in Windows 8.1 or Windows Phone 8.1 applications can be reported here.

Contributing

If you like fo-dicom for Windows 8.1 and Windows Phone 8.1 and want to contribute to its continued development, you could either fork the repository and provide pull requests with new or improved functionality, or you could make a small monetary contribution:

€10 €25 €50

Fellow Oak DICOM for .NET

Please join the Google group for updates and support. Binaries are available from GitHub and NuGet.

Features

  • High-performance, fully asynchronous, .NET 4.0 API
  • JPEG (including lossless), JPEG-LS, JPEG2000, and RLE image compression
  • Supports very large datasets with content loading on demand
  • Image rendering

Notes

  • Support for compressed images requires the Visual Studio 2010 SP1 Redistributable Package to be installed. (x86 or x64)

Examples

File Operations

var file = DicomFile.Open(@"test.dcm");

var patientid = file.Dataset.Get<string>(DicomTag.PatientID);

file.Dataset.Add(DicomTag.PatientsName, "DOE^JOHN");

// creates a new instance of DicomFile
file = file.ChangeTransferSyntax(DicomTransferSyntax.JPEGProcess14SV1);

file.Save(@"output.dcm");

Render Image to JPEG

var image = new DicomImage(@"test.dcm");
image.RenderImage().Save(@"test.jpg");

C-Store SCU

var client = new DicomClient();
client.AddRequest(new DicomCStoreRequest(@"test.dcm"));
client.Send("127.0.0.1", 12345, false, "SCU", "ANY-SCP");

C-Echo SCU/SCP

var server = new DicomServer<DicomCEchoProvider>(12345);

var client = new DicomClient();
client.NegotiateAsyncOps();
for (int i = 0; i < 10; i++)
    client.AddRequest(new DicomCEchoRequest());
client.Send("127.0.0.1", 12345, false, "SCU", "ANY-SCP");

C-Find SCU

var cfind = DicomCFindRequest.CreateStudyQuery(patientId: "12345");
cfind.OnResponseReceived = (DicomCFindRequest rq, DicomCFindResponse rp) => {
	Console.WriteLine("Study UID: {0}", rp.Dataset.Get<string>(DicomTag.StudyInstanceUID));
};

var client = new DicomClient();
client.AddRequest(cfind);
client.Send("127.0.0.1", 104, false, "SCU-AE", "SCP-AE");

C-Move SCU

var cmove = new DicomCMoveRequest("DEST-AE", studyInstanceUid);

var client = new DicomClient();
client.AddRequest(cmove);
client.Send("127.0.0.1", 104, false, "SCU-AE", "SCP-AE");

Contributors

License

This library is licensed under the Microsoft Public License (MS-PL). See License.txt for more information.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.