Leadtools.Dicom.Common

DicomKeyAttribute Class

Show in webframe
Example 





Members 
Specifies what DICOMDIR key this class/property is associated with.
Object Model
Syntax
public class DicomKeyAttribute : System.Attribute, System.Runtime.InteropServices._Attribute  
'Declaration
 
Public Class DicomKeyAttribute 
   Inherits System.Attribute
   Implements System.Runtime.InteropServices._Attribute 
'Usage
 
Dim instance As DicomKeyAttribute

            

            
public ref class DicomKeyAttribute : public System.Attribute, System.Runtime.InteropServices._Attribute  
Example
Copy Code  
Imports Leadtools.Dicom
Imports Leadtools.Dicom.Common
Imports Leadtools.Dicom.Common.Extensions
Imports Leadtools.Dicom.Common.Linq
Imports Leadtools.Dicom.Common.Linq.BasicDirectory
Imports Leadtools
Imports Leadtools.Dicom.Common.DataTypes

<DicomKey(DicomDirKeyType.Patient)> _
Public Class PatientEntity
   <Element(DicomTag.PatientID)> _
   Public Property Id() As String
      Get
         Return m_Id
      End Get
      Set(ByVal value As String)
         m_Id = value
      End Set
   End Property
   Private m_Id As String

   <Element(DicomTag.PatientName)> _
   Public Property Name() As String
      Get
         Return m_Name
      End Get
      Set(ByVal value As String)
         m_Name = value
      End Set
   End Property
   Private m_Name As String
End Class

<DicomKey(DicomDirKeyType.Study)> _
Public Class StudyEntity
   <Element(DicomTag.PatientID)> _
   <DicomKey(DicomDirKeyType.Patient)> _
   Public Property PatientId() As String
      Get
         Return m_PatientId
      End Get
      Set(ByVal value As String)
         m_PatientId = value
      End Set
   End Property
   Private m_PatientId As String

   <Element(DicomTag.StudyDate)> _
   Public Property [Date]() As System.Nullable(Of DateTime)
      Get
         Return m_Date
      End Get
      Set(ByVal value As System.Nullable(Of DateTime))
         m_Date = value
      End Set
   End Property
   Private m_Date As System.Nullable(Of DateTime)

   <Element(DicomTag.StudyTime)> _
   Public Property Time() As System.Nullable(Of DateTime)
      Get
         Return m_Time
      End Get
      Set(ByVal value As System.Nullable(Of DateTime))
         m_Time = value
      End Set
   End Property
   Private m_Time As System.Nullable(Of DateTime)

   <Element(DicomTag.StudyDescription)> _
   Public Property Description() As String
      Get
         Return m_Description
      End Get
      Set(ByVal value As String)
         m_Description = value
      End Set
   End Property
   Private m_Description As String

   <Element(DicomTag.StudyInstanceUID)> _
   Public Property InstanceUID() As String
      Get
         Return m_InstanceUID
      End Get
      Set(ByVal value As String)
         m_InstanceUID = value
      End Set
   End Property
   Private m_InstanceUID As String

   <Element(DicomTag.StudyID)> _
   Public Property Id() As String
      Get
         Return m_Id
      End Get
      Set(ByVal value As String)
         m_Id = value
      End Set
   End Property
   Private m_Id As String

   <Element(DicomTag.AccessionNumber)> _
   Public Property AccessionNumber() As String
      Get
         Return m_AccessionNumber
      End Get
      Set(ByVal value As String)
         m_AccessionNumber = value
      End Set
   End Property
   Private m_AccessionNumber As String
End Class


Public Sub TestDicomLinq()
   DicomEngine.Startup()

   Using ds As New DicomDataSet()
      ds.Load(_DicomDirFile, DicomDataSetLoadFlags.None)
      FindPatients(ds)
      FindStudies(ds)
      FindPatientStudy(ds)
   End Using

   DicomEngine.Shutdown()
End Sub

Private Sub FindPatients(ByVal ds As DicomDataSet)
   Dim patients = From patient In ds.DirectoryRecord(Of PatientEntity)() _
                  Select Name = patient.Name, Id = patient.Id

   For Each patient In patients
      Console.WriteLine("Id: " & Convert.ToString(patient.Id))
      Console.WriteLine("Name: " & Convert.ToString(patient.Name))
   Next
End Sub

Private Sub FindStudies(ByVal ds As DicomDataSet)
   Dim studies = From study In ds.DirectoryRecord(Of StudyEntity)() _
         Select study

   For Each study In studies
      Console.WriteLine("Patient Id: " & Convert.ToString(study.PatientId))
      Console.WriteLine("Accession #: " & Convert.ToString(study.AccessionNumber))
      Console.WriteLine("Study Id: " & Convert.ToString(study.Id))
   Next
End Sub

Private Sub FindPatientStudy(ByVal ds As DicomDataSet)
   Dim query = From patient In ds.DirectoryRecord(Of PatientEntity)() _
               Select _
    patient, _
    Studies = From study In ds.DirectoryRecord(Of StudyEntity)() Where study.PatientId = patient.Id _
              Select study

   For Each item In query
      Console.WriteLine("Patient: " & Convert.ToString(item.patient.Id))
      For Each study As StudyEntity In item.Studies
         Console.WriteLine("    Instance UID: " + study.InstanceUID)
      Next
   Next
End Sub
Requirements

Target Platforms

See Also

Reference

DicomKeyAttribute Members
Leadtools.Dicom.Common.Linq.BasicDirectory Namespace

 

 


Products | Support | Contact Us | Copyright Notices
© 2006-2014 All Rights Reserved. LEAD Technologies, Inc.

Leadtools.Dicom.Common requires a Document or Medical toolkit license and unlock key. For more information, refer to: Imaging Pro/Document/Medical Features