public string ContextIdentifierValue { get; }
@property (nonatomic, copy, readonly) NSString *contextIdentifierValue;
public:
property String^ ContextIdentifierValue {
String^ get();
}
Value indicating the Context Identifier (0008,010F) of the Context Group.A Context Group is identified by its Context ID (CID).
using Leadtools;
using Leadtools.Dicom;
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);
Console.WriteLine($"{title.ToString()}: {msg.ToString()}");
}
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);
Console.WriteLine($"Context Group: {msg}");
EnumCodedConcepts(group);
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);
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.