When I make a C-FIND query (/modalities//query) and then look at the response of /queries//answers?expand, I see the following:
[
{
"0008,0005": {
"Name": "SpecificCharacterSet",
"Type": "String",
"Value": "ISO_IR 100"
},
"0008,0052": {
"Name": "QueryRetrieveLevel",
"Type": "String",
"Value": "PATIENT"
},
"0008,0054": {
"Name": "RetrieveAETitle",
"Type": "String",
"Value": "ORTHANC"
},
"0010,0020": {
"Name": "PatientID",
"Type": "String",
"Value": "patient_1"
}
}
]
The response contains both the codings and the human-readable names of the DICOM tags. However, when I call /queries//retrieve, while the actual data in the “Query” field contains the same fields as in /answers?expand, it does not contain the human-readable tag names, but only the codings:
{
"Description": "REST API",
"LocalAet": "ORTHANC",
"Query": [
{
"0008,0052": "PATIENT",
"0010,0020": "patient_1"
}
],
"RemoteAet": "MODALITY_ONE"
}
This is quite inconvenient for API clients because it means that the client must maintain a DICOM dictionary to translate tag codings into their human-readable names.
I would expect the response of /queries//retrieve to look like this:
{
"Description": "REST API",
"LocalAet": "ORTHANC",
"Query": [
"0008,0052": {
"Name": "QueryRetrieveLevel",
"Type": "String",
"Value": "PATIENT"
},
"0010,0020": {
"Name": "PatientID",
"Type": "String",
"Value": "patient_1"
}
],
"RemoteAet": "MODALITY_ONE"
}
I don’t see a reason to not have the response of /retrieve the same as the one of /answers?expand. Is there something I am missing here?