dicoogle icon indicating copy to clipboard operation
dicoogle copied to clipboard

C-FIND response: invalid data for VR 'IS' in SeriesNumber

Open hkoestin opened this issue 6 years ago • 2 comments

Dear all,

I am just struggling with some C-FIND requests on the PACS. I get back wrong DICOM datasets, having malformed values in e.g. the SeriesNumber tag, wich is of VR IS.

The transmitted data shows the following information for the DIMSE Dataset:

(0008,0005) CS (no value available)                             #     0, SpecificCharacterSet
(0008,103e) LO [left intraop 3 ]                                #    16, SeriesDescription
(0020,000d) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    64, StudyInstanceUID
(0020,000e) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    66, SeriesInstanceUID
(0020,0011) IS [1.0]                                            #     4, SeriesNumber

Note: the tag "SeriesNumber" of VR IS with the actual value of "1.0" in it. Why?

I did cross-check the file with several viewers:

  • fo-dicom Dicom.Dump from https://github.com/fo-dicom/fo-dicom/releases/tag/3.0.2
  • MicroDicom from http://www.microdicom.com/
  • Dicomizer from http://www.roniza.com/products/dicomizer/

All those show the value of "1" in the SeriesNumber tag.

From Dicom.Dump image From MicroDicom image From Dicomizer image

When dumping the file on the web-interface from Dicoogle, I see the following: image

Was it maybe already imported wrongly?

The same file on an Orthanc PACS gives correctly "1" in the value for SeriesNumber when doing a C-FIND. See below:

--------------------------------------------------------------------------------
 DIMSE Dataset:
--------------------------------------------------------------------------------
(0008,0005) CS [ISO_IR 100]                                     #    10, SpecificCharacterSet
(0008,103e) LO [left intraop 3]                                 #    14, SeriesDescription
(0020,000d) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    58, StudyInstanceUID
(0020,000e) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    60, SeriesInstanceUID
(0020,0011) IS [1]                                              #     2, SeriesNumber
--------------------------------------------------------------------------------

Note the difference in the SpecificCharacterSet tag: for Orthanc C-FIND, I do get back the specified ISO_IR 100 value, which is also the actual value in the file according to all dumps. Also the web UI of dicoogle shows this value.

However, the DIMSE shows no value for the C-FIND.

Can somebody maybe help with that?

Am I doing something wrong here or is maybe some configuration missing for the import of data or the like?

Thank you in advance! Harald

hkoestin avatar Nov 09 '18 10:11 hkoestin

Hello again,

just figured something out: on QueryRetrieveLevel Study or Series, the SeriesNumber tag is correctly formatted/handled in the response.

The C-FIND on SERIES level:

--------------------------------------------------------------------------------
 DIMSE Dataset:
--------------------------------------------------------------------------------
(0008,0052) CS [SERIES]                                         #     6, QueryRetrieveLevel
(0020,000d) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    58, StudyInstanceUID
(0020,0011) IS (no value available)                             #     0, SeriesNumber
(0020,1206) IS (no value available)                             #     0, NumberOfStudyRelatedSeries
(0020,1208) IS (no value available)                             #     0, NumberOfStudyRelatedInstances
(0020,1209) IS (no value available)                             #     0, NumberOfSeriesRelatedInstances
--------------------------------------------------------------------------------

and one of the responses:

--------------------------------------------------------------------------------
 DIMSE Dataset:
--------------------------------------------------------------------------------
(0008,0005) CS (no value available)                             #     0, SpecificCharacterSet
(0008,0052) CS [SERIES]                                         #     6, QueryRetrieveLevel
(0008,0060) CS [CT]                                             #     2, Modality
(0008,103e) LO [left intraop 3]                                 #    14, SeriesDescription
(0020,000d) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    58, StudyInstanceUID
(0020,000e) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    60, SeriesInstanceUID
(0020,0011) IS [1]                                              #     2, SeriesNumber
(0020,1209) IS [7]                                              #     2, NumberOfSeriesRelatedInstances

--------------------------------------------------------------------------------

Response on level STUDY and SERIES is correct and fine!

For the same Study-Instance-UID, query on level IMAGE:

--------------------------------------------------------------------------------
 DIMSE Dataset:
--------------------------------------------------------------------------------
(0008,0052) CS [IMAGE]                                          #     6, QueryRetrieveLevel
(0020,000d) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    58, StudyInstanceUID
(0020,0011) IS (no value available)                             #     0, SeriesNumber
(0020,1206) IS (no value available)                             #     0, NumberOfStudyRelatedSeries
(0020,1208) IS (no value available)                             #     0, NumberOfStudyRelatedInstances
(0020,1209) IS (no value available)                             #     0, NumberOfSeriesRelatedInstances
(0028,0008) IS (no value available)                             #     0, NumberOfFrames
--------------------------------------------------------------------------------

Response is the following:

--------------------------------------------------------------------------------
 DIMSE Dataset:
--------------------------------------------------------------------------------
(0008,0005) CS (no value available)                             #     0, SpecificCharacterSet
(0008,0018) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    62, SOPInstanceUID
(0008,0052) CS [IMAGE]                                          #     6, QueryRetrieveLevel
(0008,0060) CS [CT]                                             #     2, Modality
(0008,103e) LO [left intraop 3 ]                                #    16, SeriesDescription
(0020,000d) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    64, StudyInstanceUID
(0020,000e) UI [1.2.826.0.1.3680043.2.594.189609122.591032603.) #    66, SeriesInstanceUID
(0020,0011) IS [1.0]                                            #     4, SeriesNumber

--------------------------------------------------------------------------------

NOTE: now, the SeriesNumber tag has the value of [1.0]

Why?

Cheers, Harald

hkoestin avatar Nov 09 '18 11:11 hkoestin

Good day! Thank you for reporting this.

A few quick glances around the source code suggest that this might have to do with both our Lucene plugin and the core DICOM network services. The Lucene indexing plugin is storing IS values internally as floating point values, which leads to some default text formatting criterion of appending .0 in whole numbers. We will be looking into the source code of the actual plugin for a fix, but one way or the other, it is also worth investigating why the output depends on the requested DIM-level.

Enet4 avatar Nov 09 '18 12:11 Enet4