ClearCanvas DicomFile.DataSet - How to add a new tag?

im trying to add a new tag to my DicomFile.DataSet in ClearCanvas.

I notice that there is a method of "DicomFile.DataSet.RemoveAttribute", but there is no method of "AddAtribute". Therefore, I considered the "LoadDicomFields" and "SaveDicomFields" methods, but so far cannot make them work. Ive tried passing "DicomFieldAttribute" these methods, but to no avail.

What am I missing here? Or what I need to do to add a new tag to the DataSet.

DicomFieldAttribute c = new DicomFieldAttribute(tag);
List<DicomFieldAttribute> cs = new List<DicomFieldAttribute>();
cs.Add(c);
DicomFile.DataSet.LoadDicomFields(cs);
DicomFile.DataSet.SaveDicomFields(cs);
if(DicomFile.DataSet.Contains(tag))
{
   tag = 0; //BreakPoint never reached here
}

Or I also tried:

DicomFieldAttribute c = new DicomFieldAttribute(tag);
DicomFile.DataSet.LoadDicomFields(c);
DicomFile.DataSet.SaveDicomFields(c);
if(DicomFile.DataSet.Contains(tag))
{
   tag = 0; //BreakPoint never reached here
}

I was stuck on what seemed like a trivial task.

+3
source share
1 answer

. DicomFiledAttribute - .NET, , DicomAttributeCollection , DicomAttribute. .., :


public class TestClass
{
    [DicomField(DicomTags.SopClassUid, DefaultValue = DicomFieldDefault.Default)]
    public DicomUid SopClassUid = null;

    [DicomField(DicomTags.SopInstanceUid, DefaultValue = DicomFieldDefault.Default)]
    public DicomUid SOPInstanceUID = null;

    [DicomField(DicomTags.StudyDate, DefaultValue = DicomFieldDefault.Default)]
    public DateTime StudyDate;
}

:


DicomFile file = new DicomFile("filename.dcm");
file.Load();
TestClass testInstance = new TestClass();

file.DataSet.LoadDicomFields(testInstance);
// testInstance should now be populated with the values from file

DICOM, DicomAttributeCollection . DicomAttribute, , , . , , :



DicomFile file = new DicomFile("filename.dcm");

file.DataSet[DicomTags.SopInstanceUid].SetStringValue("1.1.1");

DicomAttribute, - :


DicomAttribute attrib = new DicomAttributeUI(DicomTags.SopInstanceUid);
attrib.SetStringValue("1.1.1");

DicomFile file = new DicomFile("filename.dcm");
file.DataSet[DicomTags.SopInstanceUid] = attrib;

+2

Source: https://habr.com/ru/post/1792582/


All Articles