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
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 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
License.txt 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

Fellow Oak DICOM for .NET

NuGet Build status Stories in Ready Join the chat at


  • 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


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);


Render Image to JPEG

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

C-Store SCU

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


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

var client = new DicomClient();
for (int i = 0; i < 10; i++)
    client.AddRequest(new DicomCEchoRequest());
client.Send("", 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.Send("", 104, false, "SCU-AE", "SCP-AE");

C-Move SCU

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

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



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.