Skip to content

rcd/fo-dicom

This branch is 2997 commits behind fo-dicom/fo-dicom:development.

Folders and files

NameName
Last commit message
Last commit date
Feb 25, 2015
Aug 5, 2015
Aug 19, 2015
Sep 8, 2015
Sep 8, 2015
Aug 5, 2015
Aug 26, 2015
Aug 26, 2015
Aug 5, 2015
Aug 26, 2015
Sep 28, 2012
Jun 23, 2015
Aug 10, 2015
Jul 16, 2014
Nov 5, 2012
Aug 26, 2015
Jun 25, 2015
Aug 5, 2015
Jun 25, 2015
Jun 25, 2015

Repository files navigation

Fellow Oak DICOM for .NET

NuGet Build status Stories in Ready Join the chat at https://gitter.im/fo-dicom/fo-dicom [//]: # ( NuGet Pre Release )

Features

  • Targets .NET 4.5 and higher
  • DICOM dictionary version 2015c
  • High-performance, fully asynchronous API
  • JPEG (including lossless), JPEG-LS, JPEG2000, and RLE image compression
  • Supports very large datasets with content loading on demand
  • Image rendering

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.

About

This is no longer the primary project. See →

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 56.1%
  • C# 40.8%
  • C++ 3.1%