Skip to content
This is no longer the primary project. See →
C C# C++
Find file
Pull request Compare This branch is 495 commits behind fo-dicom:development.
Latest commit fe1a5dd Sep 9, 2015 @anders9ustafsson anders9ustafsson Merge pull request #81 from anders9ustafsson/GH-79
Change grayscale color map via DicomImage. Connected to #79
Failed to load latest commit information.
.nuget upgraded to vs 2013 Feb 25, 2015
ConsoleTest
DICOM [Native] Removed obsolete security permission. Fixes #74 Aug 19, 2015
DICOM [Unit Tests]
DICOM Change grayscale color map via DicomImage. Fixes #79 Sep 8, 2015
Examples Re-formatted code in tools and examples. Issue #61 Aug 5, 2015
Logging Added log4net connector project. Issue #76 Aug 26, 2015
Publish Added .nuspec file for log4net connector. Fixes #76 Aug 26, 2015
Tools Re-formatted code in tools and examples. Issue #61 Aug 5, 2015
packages Added log4net connector project. Issue #76 Aug 26, 2015
.gitattributes add .gitattributes to help fix line-ending issues Sep 28, 2012
.gitignore Ignore local copies of DICOM XML files. Issue #9 Jun 23, 2015
ChangeLog.md Updated release date Aug 10, 2015
Create Distribution Package.bat fix NLog reference in distribution package Jul 16, 2014
DICOM.gpState Fixed DICOMDIR Writing Nov 5, 2012
DICOM.sln
License.txt
README.md Re-organized badges Aug 5, 2015
SharedAssemblyInfo.cs Updated NLog and Serilog projects to use shared assembly info. Issue #29 Jun 25, 2015
fo-dicom.targets Updated .nuspec and .targets files to 1.1.0 reqs. Issue #29 Jun 25, 2015

README.md

Fellow Oak DICOM for .NET

NuGet Build status Stories in Ready Join the chat at https://gitter.im/fo-dicom/fo-dicom

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.

Something went wrong with that request. Please try again.