VintaSoft Imaging .NET SDK v8.7
In This Topic
    DICOM: View DICOM images in WinForms
    In This Topic

    The DicomViewerTool class allows to:


    Here is an example that demonstrates how to view a DICOM image and display the DICOM image metadata in the image viewer:
    ' The project, which uses this code, must have references to the following assemblies:
    ' - Vintasoft.Imaging
    ' - Vintasoft.Imaging.Dicom
    ' - Vintasoft.Imaging.Dicom.UI
    
    ''' <summary>
    ''' A visual tool that allows to show name and age of patient.
    ''' </summary>
    Public Class CustomDicomViewerTool
            Inherits Vintasoft.Imaging.Dicom.UI.VisualTools.DicomViewerTool
    
            ''' <summary>
            ''' Initializes a new instance of the <see cref="CustomDicomViewerTool"/> class.
            ''' </summary>
            Public Sub New()
                    Me.New(True)
            End Sub
    
            ''' <summary>
            ''' Initializes a new instance of the <see cref="CustomDicomViewerTool" /> class.
            ''' </summary>
            ''' <param name="needUpdateViewerAfterApplyingVoiLut">
            ''' Determines that the image viewer must be updated after applying VOI lookup table to a DICOM image.
            ''' </param>
            Public Sub New(needUpdateViewerAfterApplyingVoiLut As Boolean)
                    MyBase.New(needUpdateViewerAfterApplyingVoiLut)
                    ' clear the default text overlay
                    TextOverlay.Clear()
    
    
                    ' create text overlay of VOI LUT
                    Dim voiLutTextOverlay As New Vintasoft.Imaging.Dicom.UI.VisualTools.DicomImageVoiLutTextOverlay()
                    ' set the anchor of text
                    voiLutTextOverlay.Anchor = Vintasoft.Imaging.UI.AnchorType.Left Or Vintasoft.Imaging.UI.AnchorType.Bottom
                    ' add text overlay to visual tool
                    TextOverlay.Add(voiLutTextOverlay)
    
    
                    ' the text anchor
                    Dim textAnchor As Vintasoft.Imaging.UI.AnchorType = Vintasoft.Imaging.UI.AnchorType.Bottom Or Vintasoft.Imaging.UI.AnchorType.Right
                    ' the text color
                    Dim textBrush As System.Drawing.Brush = System.Drawing.Brushes.Blue
    
    
                    ' create text overlay
                    Dim patientNameTextOverlay As New Vintasoft.Imaging.Dicom.UI.VisualTools.StandardDicomDataElementTextOverlay(Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomDataElementId.PatientName)
                    ' set the anchor of text
                    patientNameTextOverlay.Anchor = textAnchor
                    ' set the color of text
                    patientNameTextOverlay.TextBrush = textBrush
                    ' set text format of text
                    patientNameTextOverlay.TextFormat = "Name: {0}"
                    ' add text overlay to visual tool
                    TextOverlay.Add(patientNameTextOverlay)
    
    
                    ' create text overlay
                    Dim patientAgeTextOverlay As New Vintasoft.Imaging.Dicom.UI.VisualTools.StandardDicomDataElementTextOverlay(Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomDataElementId.PatientAge)
                    ' set the anchor of text
                    patientAgeTextOverlay.Anchor = textAnchor
                    ' set the color of text
                    patientAgeTextOverlay.TextBrush = textBrush
                    ' set text format of text
                    patientAgeTextOverlay.TextFormat = "Age: {0}"
                    ' add text overlay to he visual tool
                    TextOverlay.Add(patientAgeTextOverlay)
            End Sub
    End Class
                  
    
    // The project, which uses this code, must have references to the following assemblies:
    // - Vintasoft.Imaging
    // - Vintasoft.Imaging.Dicom
    // - Vintasoft.Imaging.Dicom.UI
    
    /// <summary>
    /// A visual tool that allows to show name and age of patient.
    /// </summary>
    public class CustomDicomViewerTool : Vintasoft.Imaging.Dicom.UI.VisualTools.DicomViewerTool
    {
    
        /// <summary>
        /// Initializes a new instance of the <see cref="CustomDicomViewerTool"/> class.
        /// </summary>
        public CustomDicomViewerTool()
            : this(true)
        {
        }
    
        /// <summary>
        /// Initializes a new instance of the <see cref="CustomDicomViewerTool" /> class.
        /// </summary>
        /// <param name="needUpdateViewerAfterApplyingVoiLut">
        /// Determines that the image viewer must be updated after applying VOI lookup table to a DICOM image.
        /// </param>
        public CustomDicomViewerTool(bool needUpdateViewerAfterApplyingVoiLut)
            : base(needUpdateViewerAfterApplyingVoiLut)
        {
            // clear the default text overlay
            TextOverlay.Clear();
    
    
            // create text overlay of VOI LUT
            Vintasoft.Imaging.Dicom.UI.VisualTools.DicomImageVoiLutTextOverlay voiLutTextOverlay =
                new Vintasoft.Imaging.Dicom.UI.VisualTools.DicomImageVoiLutTextOverlay();
            // set the anchor of text
            voiLutTextOverlay.Anchor = Vintasoft.Imaging.UI.AnchorType.Left | Vintasoft.Imaging.UI.AnchorType.Bottom;
            // add text overlay to visual tool
            TextOverlay.Add(voiLutTextOverlay);
    
    
            // the text anchor
            Vintasoft.Imaging.UI.AnchorType textAnchor =
                Vintasoft.Imaging.UI.AnchorType.Bottom | Vintasoft.Imaging.UI.AnchorType.Right;
            // the text color
            System.Drawing.Brush textBrush = System.Drawing.Brushes.Blue;
    
    
            // create text overlay
            Vintasoft.Imaging.Dicom.UI.VisualTools.StandardDicomDataElementTextOverlay patientNameTextOverlay =
                new Vintasoft.Imaging.Dicom.UI.VisualTools.StandardDicomDataElementTextOverlay(
                    Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomDataElementId.PatientName);
            // set the anchor of text
            patientNameTextOverlay.Anchor = textAnchor;
            // set the color of text
            patientNameTextOverlay.TextBrush = textBrush;
            // set text format of text
            patientNameTextOverlay.TextFormat = "Name: {0}";
            // add text overlay to visual tool
            TextOverlay.Add(patientNameTextOverlay);
    
    
            // create text overlay
            Vintasoft.Imaging.Dicom.UI.VisualTools.StandardDicomDataElementTextOverlay patientAgeTextOverlay =
                new Vintasoft.Imaging.Dicom.UI.VisualTools.StandardDicomDataElementTextOverlay(
                     Vintasoft.Imaging.Codecs.ImageFiles.Dicom.DicomDataElementId.PatientAge);
            // set the anchor of text
            patientAgeTextOverlay.Anchor = textAnchor;
            // set the color of text
            patientAgeTextOverlay.TextBrush = textBrush;
            // set text format of text
            patientAgeTextOverlay.TextFormat = "Age: {0}";
            // add text overlay to he visual tool
            TextOverlay.Add(patientAgeTextOverlay);
        }
    }