LEADTOOLS Medical (Leadtools.Dicom assembly)
LEAD Technologies, Inc

Insert(String,String,Boolean,DicomDateTimeValue,DicomContextGroupTableInsertFlags) Method

Example 







The Context Identifier (0008,010F) of the new Context Group. For a list of values, refer to Context Identifier Values.
The name of the new Context Group.
Indicates whether the new Context Group is Extensible or not. true, The new Context Group is extensible. false, The new Context Group is Non-extensible.
The Context Group Version (0008,0106) of the new Context Group.
Flag that controls the behavior of this method.
Adds a new Context Group to the Context Group Table. .NET support WinRT support
Syntax
'Declaration
 
Public Overloads Function Insert( _
   ByVal contextIdentifier As String, _
   ByVal name As String, _
   ByVal isExtensible As Boolean, _
   ByVal contextGroupVersion As DicomDateTimeValue, _
   ByVal flags As DicomContextGroupTableInsertFlags _
) As DicomContextGroup
'Usage
 
Dim instance As DicomContextGroupTable
Dim contextIdentifier As String
Dim name As String
Dim isExtensible As Boolean
Dim contextGroupVersion As DicomDateTimeValue
Dim flags As DicomContextGroupTableInsertFlags
Dim value As DicomContextGroup
 
value = instance.Insert(contextIdentifier, name, isExtensible, contextGroupVersion, flags)
ObjectiveC Syntax
 function Leadtools.Dicom.DicomContextGroupTable.Insert(String,String,Boolean,DicomDateTimeValue,DicomContextGroupTableInsertFlags)( 
   contextIdentifier ,
   name ,
   isExtensible ,
   contextGroupVersion ,
   flags 
)

Parameters

contextIdentifier
The Context Identifier (0008,010F) of the new Context Group. For a list of values, refer to Context Identifier Values.
name
The name of the new Context Group.
isExtensible
Indicates whether the new Context Group is Extensible or not. true, The new Context Group is extensible. false, The new Context Group is Non-extensible.
contextGroupVersion
The Context Group Version (0008,0106) of the new Context Group.
flags
Flag that controls the behavior of this method.

Return Value

DicomContextGroup object that specifies the newly inserted Context Group.
Remarks
Example
Copy CodeCopy Code  
Private Sub InsertContextGroup()

    Dim version As DicomDateTimeValue = New DicomDateTimeValue()

    version.Year = 2004
    version.Month = 3
    version.Day = 22
    version.Hours = 0
    version.Minutes = 0
    version.Seconds = 0
    version.Fractions = 0
    version.Offset = 0

    ' Insert a (testing) Context Group
 Dim group As DicomContextGroup = DicomContextGroupTable.Instance.Insert("CID XXXX", "New Context Group", True, version, _
                                                                         DicomContextGroupTableInsertFlags.None)
    If group Is Nothing Then
        Return
    End If

    ' Fill the Context Group with some (testing) Coded Concepts
 DicomContextGroupTable.Instance.InsertCodedConcept(group, "CSD1", Nothing, "CV1", "CM1", DicomDateTimeValue.Empty, Nothing, _
                                                    DicomContextGroupTableInsertFlags.None)
 DicomContextGroupTable.Instance.InsertCodedConcept(group, "CSD2", Nothing, "CV2", "CM2", DicomDateTimeValue.Empty, Nothing, _
                                                    DicomContextGroupTableInsertFlags.None)
 DicomContextGroupTable.Instance.InsertCodedConcept(group, "CSD3", Nothing, "CV3", "CM3", DicomDateTimeValue.Empty, Nothing, _
                                                    DicomContextGroupTableInsertFlags.None)

    EnumCodedConcepts(group)

    ' Delete the Context Group
    DicomContextGroupTable.Instance.Delete(group)
End Sub

Private Sub DisplayCodedConcept(ByVal concept As DicomCodedConcept)
    Dim group As DicomContextGroup = DicomContextGroupTable.Instance.GetContextGroup(concept)
    Dim title As StringBuilder = New StringBuilder()
    Dim msg As StringBuilder = New StringBuilder()

    title.AppendFormat("Coded Concept ({0} '{1}')", group.ContextIdentifier, group.ContextIdentifierValue)

    If Not concept.CodingSchemeVersion Is Nothing Then
    msg.AppendFormat("Coding Scheme Designator: {0}{1}Coding Scheme Version: {2}{1}Code Value:{3}{1}Code Meaning: {4}", concept.CodingSchemeDesignator, _
                     Environment.NewLine, concept.CodingSchemeVersion, concept.CodeValue, concept.CodeMeaning)
    Else
    msg.AppendFormat("Coding Scheme Designator: {0}{1}Coding Scheme Version: {2}{1}Code Value:{3}{1}Code Meaning: {4}", concept.CodingSchemeDesignator, _
                     Environment.NewLine, "N/A", concept.CodeValue, concept.CodeMeaning)
    End If

    MessageBox.Show(msg.ToString(), title.ToString(), MessageBoxButtons.OK)
End Sub

Private Sub EnumCodedConcepts(ByVal group As DicomContextGroup)
    ' Enumerate the Coded Concepts in the Context Group (3 possible ways) 

    ' One possible way to enumerate the Coded Concepts
    Dim concept As DicomCodedConcept = DicomContextGroupTable.Instance.GetFirstCodedConcept(group)
    Do While Not concept Is Nothing
        DisplayCodedConcept(concept)
        concept = DicomContextGroupTable.Instance.GetNextCodedConcept(concept)
    Loop

    ' This code is commented out on purpose, it shows two other ways of 
    ' enumerating the Coded Concepts

    '
    '// Another way to enumerate the Coded Concepts
    'for (int i = 0; i < DicomContextGroupTable.Instance.GetCodedConceptCount(group); i++)
    '{
    'concept = DicomContextGroupTable.Instance.FindCodedConceptByIndex(group, i);
    'DisplayCodedConcept(concept);
    '}

    '// A third way to enumerate the Coded Concepts
    'concept = DicomContextGroupTable.Instance.GetLastCodedConcept(group);
    'while (concept != null)
    '{
    'DisplayCodedConcept(concept);
    'concept = DicomContextGroupTable.Instance.GetPreviousCodedConcept(concept);
    '}
    '
End Sub

Private Sub EnumContextGroups()
    DicomContextGroupTable.Instance.Reset()
    ' Load all the Context Groups
    DicomContextGroupTable.Instance.Load(String.Empty)

    ' Enumerate them (3 possible ways) 

    ' One possible way to enumerate the Context Groups
    Dim group As DicomContextGroup = DicomContextGroupTable.Instance.GetFirst()
    Do While Not group Is Nothing
        Dim msg As StringBuilder = New StringBuilder()
        msg.AppendFormat("{0}{2}{1}{2}{2}Enumerate Coded Concepts?", group.ContextIdentifier, group.Name, Environment.NewLine)

        Dim result As DialogResult = MessageBox.Show(msg.ToString(), "Context Group", MessageBoxButtons.YesNoCancel)
        If result = DialogResult.Yes Then
            EnumCodedConcepts(group)
        ElseIf result = DialogResult.Cancel Then
            Exit Do
        End If

        group = DicomContextGroupTable.Instance.GetNext(group)
    Loop

    ' This code is commented out on purpose, it shows two other ways of 
    ' enumerating Context Groups

    '
    '// Another way to enumerate the Context Groups
    'for (int i = 0; i < DicomContextGroupTable.Instance.Count; i++)
    '{
    'group = DicomContextGroupTable.Instance.FindIndex(i);

    'msg.AppendFormat("{0}{2}{1}{2}{2}Enumerate Coded Concepts?",
    'group.ContextIdentifier,
    'group.Name,
    'Environment.NewLine);

    'DialogResult result  = MessageBox.Show(msg.ToString(), "Context Group", MessageBoxButtons.YesNoCancel);
    'if(result == DialogResult.Yes)
    '{
    'EnumCodedConcepts(group);
    '}
    'else if (result == DialogResult.Cancel)
    '{
    'break;
    '}
    '}

    '// A third way to enumerate the Context Groups
    'group = DicomContextGroupTable.Instance.GetLast();
    'while (group != null)
    '{

    'msg.AppendFormat("{0}{2}{1}{2}{2}Enumerate Coded Concepts?",
    'group.ContextIdentifier,
    'group.Name,
    'Environment.NewLine);

    'DialogResult result = MessageBox.Show(msg.ToString(), "Context Group", MessageBoxButtons.YesNoCancel);
    'if (result == DialogResult.Yes)
    '{
    'EnumCodedConcepts(group);
    '}
    'else if (result == DialogResult.Cancel)
    '{
    'break;
    '}
    'group = group = DicomContextGroupTable.Instance.GetPrev(group);
    '}

    '
End Sub

Private Sub ModifyContextGroup()
    DicomContextGroupTable.Instance.Reset()
    DicomContextGroupTable.Instance.Load(String.Empty)

    Dim group As DicomContextGroup = Nothing
    Dim concept As DicomCodedConcept = Nothing

    ' Look for a Context Group
    group = DicomContextGroupTable.Instance.Find(DicomContextIdentifierType.CID6019)
    If group Is Nothing Then
        Return
    End If

    ' Look for a Coded Concept in the Context Group
    concept = DicomContextGroupTable.Instance.FindCodedConcept(group, "SRT", "F-01781")
    If concept Is Nothing Then
        Return
    End If

    ' Set the Code Meaning of the Coded Concept (French translation) 
    If DicomContextGroupTable.Instance.SetCodeMeaning(concept, "Situ� � 1 heure") = False Then
        Return
    End If

    DisplayCodedConcept(concept)

    ' Delete the Coded Concept
    DicomContextGroupTable.Instance.DeleteCodedConcept(concept)

    ' Add a (testing) Coded Concept to the Context Group
 concept = DicomContextGroupTable.Instance.InsertCodedConcept(group, "CSD", Nothing, "CV", "CM", DicomDateTimeValue.Empty, Nothing, _
                                                              DicomContextGroupTableInsertFlags.None)

    If concept Is Nothing Then
        Return
    End If
    DisplayCodedConcept(concept)

    ' Restore the Context Group (discard all the changes made to the Group) 
    DicomContextGroupTable.Instance.Default(group)
    EnumCodedConcepts(group)
    ' Delete the Context Group
    DicomContextGroupTable.Instance.Delete(group)
End Sub
public void InsertContextGroup()
{

   DicomDateTimeValue version = new DicomDateTimeValue();

   version.Year = 2004;
   version.Month = 3;
   version.Day = 22;
   version.Hours = 0;
   version.Minutes = 0;
   version.Seconds = 0;
   version.Fractions = 0;
   version.Offset = 0;

   // Insert a (testing) Context Group
   DicomContextGroup group = DicomContextGroupTable.Instance.Insert("CID XXXX", "New Context Group", true, version, DicomContextGroupTableInsertFlags.None);
   if (group == null)
   {
      return;
   }

   // Fill the Context Group with some (testing) Coded Concepts
   DicomContextGroupTable.Instance.InsertCodedConcept(group, "CSD1", null, "CV1", "CM1", DicomDateTimeValue.Empty, null, DicomContextGroupTableInsertFlags.None);
   DicomContextGroupTable.Instance.InsertCodedConcept(group, "CSD2", null, "CV2", "CM2", DicomDateTimeValue.Empty, null, DicomContextGroupTableInsertFlags.None);
   DicomContextGroupTable.Instance.InsertCodedConcept(group, "CSD3", null, "CV3", "CM3", DicomDateTimeValue.Empty, null, DicomContextGroupTableInsertFlags.None);

   EnumCodedConcepts(group);

   // Delete the Context Group
   DicomContextGroupTable.Instance.Delete(group);
}

void DisplayCodedConcept(DicomCodedConcept concept)
{
   DicomContextGroup group = DicomContextGroupTable.Instance.GetContextGroup(concept);
   StringBuilder title = new StringBuilder();
   StringBuilder msg = new StringBuilder();

   title.AppendFormat("Coded Concept ({0} '{1}')", group.ContextIdentifier, group.ContextIdentifierValue);

   msg.AppendFormat("Coding Scheme Designator: {0}{1}Coding Scheme Version: {2}{1}Code Value:{3}{1}Code Meaning: {4}",
         concept.CodingSchemeDesignator,
         Environment.NewLine,
         concept.CodingSchemeVersion != null ? concept.CodingSchemeVersion : "N/A",
         concept.CodeValue,
         concept.CodeMeaning);

   MessageBox.Show(msg.ToString(), title.ToString(), MessageBoxButtons.OK);
}

void EnumCodedConcepts(DicomContextGroup group)
{
   // Enumerate the Coded Concepts in the Context Group (3 possible ways) 

   // One possible way to enumerate the Coded Concepts
   DicomCodedConcept concept = DicomContextGroupTable.Instance.GetFirstCodedConcept(group);
   while (concept != null)
   {
      DisplayCodedConcept(concept);
      concept = DicomContextGroupTable.Instance.GetNextCodedConcept(concept);
   }

   // This code is commented out on purpose, it shows two other ways of 
   // enumerating the Coded Concepts

   /*
   // Another way to enumerate the Coded Concepts
   for (int i = 0; i < DicomContextGroupTable.Instance.GetCodedConceptCount(group); i++)
   {
      concept = DicomContextGroupTable.Instance.FindCodedConceptByIndex(group, i);
      DisplayCodedConcept(concept);
   }

   // A third way to enumerate the Coded Concepts
   concept = DicomContextGroupTable.Instance.GetLastCodedConcept(group);
   while (concept != null) 
   {
      DisplayCodedConcept(concept);
      concept = DicomContextGroupTable.Instance.GetPreviousCodedConcept(concept);
   }
   */
}

void EnumContextGroups()
{
   DicomContextGroupTable.Instance.Reset();
   // Load all the Context Groups
   DicomContextGroupTable.Instance.Load(null);

   // Enumerate them (3 possible ways) 

   // One possible way to enumerate the Context Groups
   DicomContextGroup group = DicomContextGroupTable.Instance.GetFirst();
   while (group != null)
   {
      StringBuilder msg = new StringBuilder();
      msg.AppendFormat("{0}{2}{1}{2}{2}Enumerate Coded Concepts?",
         group.ContextIdentifier,
         group.Name,
         Environment.NewLine);

      DialogResult result = MessageBox.Show(msg.ToString(), "Context Group", MessageBoxButtons.YesNoCancel);
      if (result == DialogResult.Yes)
      {
         EnumCodedConcepts(group);
      }
      else if (result == DialogResult.Cancel)
      {
         break;
      }

      group = DicomContextGroupTable.Instance.GetNext(group);
   }

   // This code is commented out on purpose, it shows two other ways of 
   // enumerating Context Groups

   /*
   // Another way to enumerate the Context Groups
   for (int i = 0; i < DicomContextGroupTable.Instance.Count; i++)
   {
      group = DicomContextGroupTable.Instance.FindIndex(i); 

      msg.AppendFormat("{0}{2}{1}{2}{2}Enumerate Coded Concepts?",
         group.ContextIdentifier,
         group.Name,
         Environment.NewLine); 

      DialogResult result  = MessageBox.Show(msg.ToString(), "Context Group", MessageBoxButtons.YesNoCancel);
      if(result == DialogResult.Yes)
      {
         EnumCodedConcepts(group); 
      }
      else if (result == DialogResult.Cancel) 
      {
         break; 
      }
   }

   // A third way to enumerate the Context Groups
   group = DicomContextGroupTable.Instance.GetLast();
   while (group != null) 
   {

      msg.AppendFormat("{0}{2}{1}{2}{2}Enumerate Coded Concepts?",
         group.ContextIdentifier,
         group.Name,
         Environment.NewLine);

      DialogResult result = MessageBox.Show(msg.ToString(), "Context Group", MessageBoxButtons.YesNoCancel);
      if (result == DialogResult.Yes)
      {
         EnumCodedConcepts(group);
      }
      else if (result == DialogResult.Cancel)
      {
         break;
      }
      group = group = DicomContextGroupTable.Instance.GetPrev(group); 
   }

   */
}

void ModifyContextGroup()
{
   DicomContextGroupTable.Instance.Reset();
   DicomContextGroupTable.Instance.Load(null);

   DicomContextGroup group = null;
   DicomCodedConcept concept = null;

   // Look for a Context Group
   group = DicomContextGroupTable.Instance.Find(DicomContextIdentifierType.CID6019);
   if (group == null)
   {
      return;
   }

   // Look for a Coded Concept in the Context Group
   concept = DicomContextGroupTable.Instance.FindCodedConcept(group, "SRT", "F-01781");
   if (concept == null)
   {
      return;
   }

   // Set the Code Meaning of the Coded Concept (French translation) 
   if (DicomContextGroupTable.Instance.SetCodeMeaning(concept, "Situ� � 1 heure") == false)
   {
      return;
   }

   DisplayCodedConcept(concept);

   // Delete the Coded Concept
   DicomContextGroupTable.Instance.DeleteCodedConcept(concept);

   // Add a (testing) Coded Concept to the Context Group
   concept = DicomContextGroupTable.Instance.InsertCodedConcept(group,
                                                                  "CSD",
                                                                  null,
                                                                  "CV",
                                                                  "CM",
                                                                  DicomDateTimeValue.Empty,
                                                                  null,
                                                                  DicomContextGroupTableInsertFlags.None);

   if (concept == null)
   {
      return;
   }
   DisplayCodedConcept(concept);

   // Restore the Context Group (discard all the changes made to the Group) 
   DicomContextGroupTable.Instance.Default(group);
   EnumCodedConcepts(group);
   // Delete the Context Group
   DicomContextGroupTable.Instance.Delete(group);
}
Requirements

Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2

See Also

Reference

DicomContextGroupTable Class
DicomContextGroupTable Members
Overload List
Load(String) Method
Delete Method
Reset Method
Find(String) Method
GetFirst Method
Insert(String,String,Boolean,DicomDateTimeValue,DicomContextGroupTableInsertFlags) Method
GetFirstCodedConcept Method

 

 


Products | Support | Contact Us | Copyright Notices

© 2006-2012 All Rights Reserved. LEAD Technologies, Inc.

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