DicomDataset dataset = new DicomDataset();
...
DicomSequence ds = new DicomSequence(DicomTag.ContentSequence, dds);
....
// Imágenes clave
ds.Items[0].Add(createKeyImageReference("1.2.840.10008.5.1.4.1.1.1", cSOPInstanceUID.ToString(), "Referencia a la imagen"));
dataset.Add(ds);
..
// Creation of the sequence
private DicomSequence createKeyImageReference(string classUID, string SOPInstanceUID, string reference)
{
DicomDataset ds = new DicomDataset();
ds.Add(DicomTag.ReferencedSOPClassUID, classUID);
ds.Add(DicomTag.ReferencedSOPInstanceUID, SOPInstanceUID);
ds.Add(DicomTag.ValueType, DicomValueType.Image);
ds.Add(DicomTag.ConceptNameCodeSequence, creaCodeItem("55113-5", "LN", reference));
DicomSequence sq = new DicomSequence(DicomTag.ReferencedSOPSequence, ds);
return sq;
}
This is an actual dump of the DICOM-SR (dcm4chee)
Content Sequence | (0040,A730) | SQ | -1 | |
>Item #1 | ||||
>Referenced SOP Sequence | (0008,1199) | SQ | -1 | |
>>Item #1 | ||||
>>Referenced SOP Class UID | (0008,1150) | UI | 26 | 1.2.840.10008.5.1.4.1.1.1 |
>>Referenced SOP Instance UID | (0008,1155) | UI | 64 | SOP Instance UID [1.2.826.0.1.3680043.9.3094.635979721795253653] |
>>Value Type | (0040,A040) | CS | 6 | Image |
>>Concept Name Code Sequence | (0040,A043) | SQ | -1 | |
>>>Item #1 | ||||
>>>Code Value | (0008,0100) | SH | 8 | 55113-5 |
>>>Coding Scheme Designator | (0008,0102) | SH | 2 | LN |
>>>Code Meaning | (0008,0104) | LO | 22 | Referencia a la imagen |
and this is an extract of the DICOM Structured Reporting of Dr. Clunie (my hero!) abot the same subject
(0008,1199) Referenced SOP Sequence
(fffe,e000) Item
(0008,1150) Referenced SOP Class UID “1.2.840.10008.5.1.4.1.1.12.1”
(0008,1155) Referenced SOP Instance UID “1.2.3.4”
(0008,1160) Referenced Frame Number “34”
(0008,1199) Referenced SOP Sequence
(fffe,e000) Item
(0008,1150) Referenced SOP Class UID “1.2.840.10008.5.1.4.1.1.11.1”
(0008,1155) Referenced SOP Instance UID “1.2.3.5”
(fffe,e00d) Item Delimitation Item
(fffe,e0dd) Sequence Delimitation Item
(fffe,e00d) Item Delimitation Item
(fffe,e0dd) Sequence Delimitation Item
(0040,a040) Value Type “IMAGE”
(0040,a043) Concept Name Code Sequence
(fffe,e000) Item
(0008,0100) Code Value “209801”
(0008,0102) Coding Scheme Designator “99PMP”
(0008,0104) Code Meaning “End Systole”
(fffe,e00d) Item Delimitation Item
(fffe,e0dd) Sequence Delimitation Ítem
there are some differences and the reference to images is not showing. What is wrong?
You can find the SR generated if need more information.
Best regards, Cuauhtémoc
private DicomSequence createKeyImageReference(string classUID, string SOPInstanceUID, string reference)
{
DicomSequence seq = new DicomSequence(DicomTag.ReferencedSOPSequence,
new DicomDataset(
new DicomUniqueIdentifier(DicomTag.ReferencedSOPClassUID, classUID),
new DicomUniqueIdentifier(DicomTag.ReferencedSOPInstanceUID, SOPInstanceUID),
new DicomIntegerString(DicomTag.ReferencedFrameNumber, "0")),
new DicomDataset(
new DicomCodeString(DicomTag.ValueType, DicomValueType.Image.ToString())));
seq.Items[0].Add(new DicomSequence(DicomTag.ConceptNameCodeSequence, creaCodeItem("121080", "DCM", reference)));
return seq;
}
XmlNode nodeRef = xDoc.SelectSingleNode("//references");
if (nodeRef != null)
{
foreach (XmlNode nodo in nodeRef.ChildNodes)
{
string cMsg = nodo["message"].InnerText;
string SOPClassUID = nodo["uidClass"].InnerText;
string SOPInstanceUID = nodo["sopInstance"].InnerText;
string nFrame = nodo["frame"].InnerText;
ds.Items.Add(createKeyImageReference(SOPClassUID, SOPInstanceUID, cMsg, nFrame));
}
}
// Creation of the Dataset
private DicomDataset createKeyImageReference(string classUID, string SOPInstanceUID, string reference, string nFrame)
{
DicomDataset content = new DicomDataset();
content.Add(DicomTag.ConceptNameCodeSequence, creaCodeItem("121080", "DCM", reference));
content.Add(DicomTag.RelationshipType, "CONTAINS");
content.Add(DicomTag.ValueType, "IMAGE");
// datos de la imagen
content.Add(new DicomDataset(
new DicomSequence(
DicomTag.ReferencedSOPSequence,
new DicomDataset(
new DicomUniqueIdentifier(DicomTag.ReferencedSOPClassUID, classUID),
new DicomUniqueIdentifier(DicomTag.ReferencedSOPInstanceUID, SOPInstanceUID),
Hi to all members,
Is there any experience with Presentation State (creation, use) or Spatial Coordinates in SR?
Thanks in advance
Cuauhtémoc Rossell