ImageGear for .NET User Guide > Getting Started > ImageGear for .NET Visual Studio 2008/2005 Tutorials > ImageGear for .NET C# Tutorial > Adding DICOM Support |
Once the base of the tutorial application is completed, you can extend it with DICOM support using the following steps:
You should now have the ImageGear21.Formats.Dicom assembly listed under References in the Solution Explorer.
Next, add the DICOM using statement. Open the code for Form1.cs by right-clicking on the form and clicking View Code. At the top of the code add the following statement:
C# |
Copy Code |
---|---|
using ImageGear.Formats.DICOM; |
C# |
Copy Code |
---|---|
// Support for DICOM format ImGearFileFormats.Filters.Insert(0, ImGearDICOM.CreateDICOMFormat()); // Set DICOM DIMSE control value for wide range of DICOM file detection. ImGearFileFormats.Filters.Get(ImGearFormats.DICOM).Parameters.GetByName("LoadDetectSkipDIMSE").Value = true; // Set LoadConcatenateRepeatedDE flag to true by default. ImGearFileFormats.Filters.Get(ImGearFormats.DICOM).Parameters.GetByName("LoadConcatenateRepeatedDE").Value = true; |
This will add the DICOM format to the ImageGear formats list. And now you are ready to compile and run the finished application supporting DICOM pages.
C# |
Copy Code |
---|---|
private ImGearDocument imGearDocument = null; |
C# |
Copy Code |
---|---|
imGearPage = ImGearFileFormats.LoadPage(stream, 0); |
C# |
Copy Code |
---|---|
imGearDocument = ImGearFileFormats.LoadDocument(stream, 0, 1); imGearPage = imGearDocument.Pages[0]; |
It does the same thing, but using the ImGearDocument API.
Now you are ready to compile and run the finished application working with DICOM documents.
C# |
Copy Code |
---|---|
using ImageGear.ART; |
C# |
Copy Code |
---|---|
private ImGearARTPage artPage; |
C# |
Copy Code |
---|---|
if (artPage != null) { artPage.RemoveMarks(); } // DICOM overlays artPage = ImGearDICOM.LoadOverlay(imGearPage); if (artPage == null) { artPage = new ImGearARTPage(); } imGearPageView1.Display.ARTPage = artPage; |
This will enable displaying overlays after loading the DICOM page.
C# |
Copy Code |
---|---|
ImGearDICOM.SaveOverlay((imGearPageView1.Display.ARTPage as ImGearARTPage), imGearPageView1.Display.Page as ImGearRasterPage); |
C# |
Copy Code |
---|---|
artPage = ImGearDICOM.LoadOverlay(imGearPage); |
C# |
Copy Code |
---|---|
private ImGearMetadataHead presStateOrigMetadata; |
C# |
Copy Code |
---|---|
if (!(imGearPage is ImGearRasterPage)) { return; } OpenFileDialog od = new OpenFileDialog(); od.Filter = "Presentation State (*.pre)|*.pre|All files (*.*)|*.*"; od.Title = "Select Presentation State File"; if (od.ShowDialog(this) == DialogResult.OK) { using (FileStream fileContent = new FileStream(od.FileName, FileMode.Open)) { ImGearPresStateOptions opts = new ImGearPresStateOptions(); presStateOrigMetadata = ImGearDICOM.LoadPresState(fileContent, (ImGearRasterPage)imGearPage, imGearPageView1.Display, opts); artPage = imGearPageView1.Display.ARTPage as ImGearARTPage; imGearPageView1.Update(); } } |
C# |
Copy Code |
---|---|
SaveFileDialog sd = new SaveFileDialog(); sd.Filter = "Presentation State (*.pre)|*.pre|All files (*.*)|*.*"; sd.Title = "Save Presentation State File"; if (sd.ShowDialog(this) == DialogResult.OK) { using (FileStream fileContent = new FileStream(sd.FileName, FileMode.Create)) { if (imGearPage is ImGearRasterPage) { ImGearPresStateOptions opts = new ImGearPresStateOptions(); ImGearMetadataHead presStateMetadata = ImGearDICOM.PreparePresStateMetadata((ImGearRasterPage)imGearPage, imGearPageView1.Display, presStateOrigMetadata, opts); // Note: The application can edit presStateMetadata here ImGearDICOM.SavePresState(fileContent, presStateMetadata); } } } |
C# |
Copy Code |
---|---|
// Delete presStateOrigMetadata if any presStateOrigMetadata = null; |