Dear all,
I’m struggling with DicomWeb support in Orthanc. Simply put, I’ve followed the documentation here:
https://book.orthanc-server.com/plugins/dicomweb.html#quickstart-dicomweb-server
However, I’m trying to understand how to perform certain queries against Orthanc that I used to do with DIMSE and I can’t seem to succeed with DicomWeb. Namely:
- a STUDY level query to retrieve patients’ data:
findscu.exe 127.0.0.1 4242 --aetitle MYTITLE --call ORTHANC -S -k QueryRetrieveLevel=STUDY -k ModalitiesInStudy=IOL -k PatientName -k PatientID -k StudyInstanceUID -k StudyDate -k PatientBirthDate -k PatientSex
- an MWL query to gather all work items for a certain date:
findscu.exe 127.0.0.1 4242 --aetitle MYTITLE --call ORTHANC -W sample.dcm -k ScheduledProcedureStepSequence[0].ScheduledProcedureStepStartDate=20210323-20210324 -k ScheduledProcedureStepSequence[0].ScheduledStationAETitle=MYTITLE
- export DICOM files to the Store server:
storescu.exe --scan-directories --recurse --config-file storescu.cfg --call ORTHANC --aetitle MYTITLE --arguments 127.0.0.1 4242 'C:\pathtodcm
Any idea how to achieve the same with Orthanc as a DicomWeb server ? Any good tutorial on that ?
Thanks.
Greetings,
Sorin
Hello,
You can find a comprehensive reference about DICOMweb at the following address:
https://www.dicomstandard.org/dicomweb
(1) Example of QIDO-RS query corresponding to your request on our demo server:
$ curl https://demo.orthanc-server.com/dicom-web/studies?ModalitiesInStudy=CT
(2) As of release 1.6, the DICOMweb plugin for Orthanc doesn’t support UPS-RS (i.e. worklist):
https://hg.orthanc-server.com/orthanc-dicomweb/file/default/Status.txt
(3) The source distribution of the DICOMweb plugin for Orthanc contains a sample Python script to issue a STOW-RS query (to export DICOM files to a DICOMweb server):
https://hg.orthanc-server.com/orthanc-dicomweb/file/default/Resources/Samples/Python/SendStow.py
Regards,
Sébastien-
Hello Sebastien,
Thank you for your answer.
As you can see from the QIDO-RS example query https://demo.orthanc-server.com/dicom-web/studies?ModalitiesInStudy=CT, you can indeed retrieve the names of the patients from the JSON response, i.e.:
“00100010” : { “Value” : [ { “Alphabetic” : “COMUNIX” } ], “vr” : “PN” }
However, I don’t see how I can retrieve all patient demographics, e.g. PatientID, PatientSex, as I used to do in the “classic” query shown above, i.e. "… -k PatientName -k PatientID -k StudyInstanceUID -k StudyDate -k PatientBirthDate -k PatientSex".
Any idea how to get that info, even if I need to do several queries ?
Also, do you happen to know a DICOM server that supports MWL queries over DicomWeb ? I’d prefer a server that has clear installation and usage instructions.
Thanks,
Greetings,
Sorin
However, I don’t see how I can retrieve all patient demographics, e.g. PatientID, PatientSex, as I used to do in the “classic” query shown above, i.e. "… -k PatientName -k PatientID -k StudyInstanceUID -k StudyDate -k PatientBirthDate -k PatientSex".
Any idea how to get that info, even if I need to do several queries ?
These questions are not about the usage of Orthanc, but about the DICOMweb standard.
If you run the query from previous answer, you’ll see that:
- PatientName is included as field 00100010
- PatientID is included as field 00100020
- PatientBirthDate is included as field 00100030
- PatientSex is included as field 00100040
- StudyInstanceUID is included as field 0020000D
- StudyDate is included as field 00080020
So, you don’t have to use “-k” to include these fields, as they are included by default by virtue of the DICOMweb standard:
http://dicom.nema.org/MEDICAL/dicom/2019a/output/html/part18.html#table_6.7.1-1
Should you need to include a DICOM tag that is not in this Table 6.7.1-1 (“QIDO-RS STUDY Search Query Keys”), you could consider using the “&includefield=” GET argument:
https://www.dicomstandard.org/dicomweb/query-qido-rs/
Also, do you happen to know a DICOM server that supports MWL queries over DicomWeb ? I’d prefer a server that has clear installation and usage instructions.
Again, the instructions of Orthanc are perfectly clear, but you have to learn about DICOMweb to use the latter.
Regarding support of MWL queries (i.e. UPS-RS), carefully read the statement at the top of the “Status.txt” file I sent in my previous post:
"If you need some missing feature as an industrial player, please consider hiring the development team from Osimis by filling the dedicated form on the Orthanc Web site:
Orthanc - DICOM Server" (orthanc-dicomweb: 313b62d9ede8 Status.txt)
Thank you again Sebastien, that’s very helpful.
These questions are not about the usage of Orthanc, but about the DICOMweb standard.
You are right, but I’ve been puzzled by several things, one being the fact that all these tags (PatientName, PatientSex, etc.) come bundled together in the response for all patients, and another being that the query doesn’t return items for ModalitiesInStudy=OAM, even though I know there is data there:
…
“00080061” : { “Value” : [ “IOL”, “OAM” ], “vr” : “CS” }
…
If I query for ModalitiesInStudy=IOL, I see the above in the response, so I’d expect it should do the same for OAM.
Again, the instructions of Orthanc are perfectly clear, but you have to learn about DICOMweb to use the latter.
I wasn’t referring to Orthanc, I thought you’d mention e.g. dcm4che, which gave me some trouble in the past.
Thanks a lot,
Greetings,
Sorin