ELGA DICOMWeb - Fehlermeldungen¶
Allgemein¶
Wenn XCA Query oder Retrieve Destinationen fehlschlagen aber trotzdem Resultate verfügbar sind (zumindest eine Destinationen erfolgreich) wird ein HTPP Warning Header zurückgegeben. Wenn mehrere Fehler zurückgegeben werden werden diese in einem HTTP Warning Header mit ; verknüpft.
Beispiel 1: Warning: 299 pitconnect-qido "XqueryError (http:502 BAD_GATEWAY) g_38 - http request failed [to urn:oid:1.2.40.0.34.99.10.1.94.20.1[ZGF_RspGW] with error 'UnknownHostException' [wrongUrl]]"
Beispiel 2: Warning: 299 pitconnect-qido "XqueryError so_45 - unable to send SOAP message [wsse:InvalidSecurity An error was discovered processing the 'wsse:Security' header]"
Wenn alle XCA Ziele bei einem Query oder Retrieve fehlschlagen wird ein Fehler zurückgegeben.
Wenn als Fehlermeldung ein Body in der Antwort enthalten ist wird dieser im OAuth Format zurückgegeben: application/json mit error und error_description Element.
Nachfolgend werden typische Fehlermeldungen der unterschiedlichen Services beschrieben.
Für Alle Services gilt:
- es werden abhängig von der Einstellung des production Flag unterschiedliche Fehlermeldungen zurückgegeben. Außerdem sind einige Funktionalitäten bei production true nicht verfügbar.
Ein Beispiel hierfür ist:
-
403 FORBIDDEN
-
log: acs_75#accessDenied - access to resource denied [NON TLS not allowed in prod]
-
wenn das Service auf production true läuft werden normalerweise keine NON TLS Verbindungen akzeptiert. Abhängig vom Deplyoment kann dieses Verhalten eingestellt werden: production:011
Wenn ein Beispiel mit “no test“ markiert ist gibt es dafür keinen Test bzw. is der Test nicht automatisch ausführbar. Für alle anderen Beispiele existiert auch ein Test der automatisch ausgeführt werden kann.
Service Facade - QIDO-SF und WADO-SF - identisch¶
Folgende Fehlermeldungen sind auf allen Service Facaden identisch.
*N qido-sf - wrong base URL¶
GET http://localhost:8901/wrongUrl
404 Not Found
log: c_54 - unable to select a service [based on ServiceUriFilter:/wrongUrl
no body
*N qido-sf - wrong endpoint¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/wrongApiRoute
404 Not Found
log: g_22 - the received request is not valid [NO api-route found]
body:
*N qido-sf - wrong verb¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies
404 Not Found
log: g_22 - the received request is not valid [NO api-route found]
body:
*N qido-sf - no Authorization¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies
401 Unauthorized
log: auth_66#noAuthHeader - no http Authorization received
no body
*N qido-sf - no Bearer Authorization¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies
401 Unauthorized
log: auth_67#wrongAuthHeader - wrong http Authorization received [expect Bearer]
no body
*N qido-sf - no Base64 SAML¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies
401 Unauthorized
log: saml_71 - unable to create assertion from element [Perr:g_40 - no Base64 content [IllegalArgumentException:Illegal base64 character 5f]
no body
*N qido-sf - old SAML¶
GET http://localhost:8904/pineit/pitaccess-wado-sf/facade/studies/sty1/series/ser1/instances/inst1
401 Unauthorized
log: ass_22#assertionIsExpired - the assertion is expired [notOnOrAfter:2023-10-20T15:33:41.988Z, now:2023-10-27T11:56:26.757+02:00]
no body
*N forward failed - api-route not available¶
502 Bad Gateway
log: g_38 - http request failed [to qidoEndpoint with error 'ConnectException' [Connection refused (Connection refused)]]
body:
{
"error\_description": "to qidoEndpoint with error 'ConnectException' \[Connection refused (Connection refused)\]",
"error": "httpRequestFailed"
}
QIDO-SF bzw. QIDOaaS spezifische Fehler¶
Die QIDO-SF leitet auch Fehler vom QIDOaaS weiter bzw. auch diese von der daniederliegenden ELGA Infrastruktur.
*N qido-sf - wrong QIDO URI¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/study
404 Not Found
log: QIDO URL syntax not met
body:
*N qido-sf - no cache - no PID in request¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies/xx/series
400 Bad Request
log: qido_4#noPIDParam - no PID received in params [qido_4:noPIDParam PatientID is mandatory if NO cached entries exist for query params]
body:
{
"error\_description": "QIDO/KosCache PatientID is mandatory if NO cached entries exist for query params",
"error": "qido\_4:noPIDParam"
}
*N qido-sf - missing IssuerOfPatientID¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies?PatientID=noIssuer
400 Bad Request
log: g_22 - the received request is not valid [if PatientID is used also IssuerOfPatientID must be used - or use PatientID=issuer|pid in FHIR format]
body:
{
"error\_description": "if PatientID is used also IssuerOfPatientID must be used - or use PatientID=issuer|pid in FHIR format",
"error": "invalidRequest"
}
*N qido-sf - issuer without PID¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies?IssuerOfPatientID=noPid
400 Bad Request
log: g_22 - the received request is not valid [if IssuerOfPatientID is used also PatientID must be used - or use PatientID=issuer|pid in FHIR format]
body:
{
"error\_description": "if IssuerOfPatientID is used also PatientID must be used - or use PatientID=issuer|pid in FHIR format",
"error": "invalidRequest"
}
*N qido-sf - non DICOM Attribute in includefield¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies?includefield=123
400 Bad Request
log: qido_5#noValidDcmParam - the received DICOM param is not valid or not understood [no valid DICOM tag includefield :123]
body:
*N qido-sf - non DICOM Attribute param¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies?noDcmTag=123
400 Bad Request
log: qido_5#noValidDcmParam - the received DICOM param is not valid or not understood [no valid DICOM tag :noDcmTag]
body:
*N qido-sf - unknown patientID (BeS Error)¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies?PatientID=1.2.40.0.34.99.10.1.12.1.990.1|notKnow
403 Forbidden
log: so_45 - unable to send SOAP message [wsse:FailedAuthentication The security token could not be authenticated or authorized]
body:
{
"error\_description": "elgadapwin020.elga.at.emea.csc.com (ETS\_Treatment) The security token could not be authenticated or authorized",
"error": "wsse:FailedAuthentication"
}
*N qido-sf - two PIDs¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies?PatientID=1.2.40.0.34.99.10.1.12.1.990.1|pid1&00100020=pid2
400 Bad Request
log: g_22 - the received request is not valid [only one PatientID (00100020) is accepted - but received multiple diffent PatientID params]
body:
{
"error\_description": "only one PatientID (00100020) is accepted - but received multiple diffent PatientID params",
"error": "invalidRequest"
}
*N qido-sf - two Issuer¶
GET http://localhost:8901/pineit/pitaccess-qido-sf/facade/studies?IssuerOfPatientID=issuer1&IssuerOfPatientID=issuer2
400 Bad Request
log: g_22 - the received request is not valid [only one IssuerOfPatientID (IssuerOfPatientID) is accepted - received :2]
body:
{
"error\_description": "only one IssuerOfPatientID (IssuerOfPatientID) is accepted - received :2",
"error": "invalidRequest"
}
*N - no test - unable to init DB connection¶
500 Internal Server Error
log: db_33 - unable to get DB connection [unable to init DB datasource]
body:
*N - no test - noTreatments received¶
202 Accepted
body:
{
"error\_description": "QIDO/requestTreatmentSAMLs no treatment SAMLs received from ETS",
"error": "qido\_1:noTreatment"
}
*N - no test - noKOS received¶
202 Accepted
body:
{
"error\_description": "QIDO/XCA/init/KOS no KOS received from ELGA init XCA query",
"error": "qido\_2:noKOS"
}
*N - no test - noMatches¶
404 Not Found
body:
{
"error\_description": "QIDO/XCA/init/KOS NO matches from cache with received params after KOS resync",
"error": "qido\_3:noCachedMatches"
}
*N - no test - allXcaQueryDestinationsFailed¶
503 SERVICE_UNAVAILABLE
body:
{
"error\_description": "QIDO/XCA/init/query queries success :0 - queries failed :3
"error": "xca\_3:allXcaQueryDestinationsFailed"
}
*N - no test - allXcaRetrieveDestinationsFailed¶
503 SERVICE_UNAVAILABLE
body:
{
"error\_description": "QIDO/XCA/init/retrieve retrieves success :0 - retrieves failed :3
"error": "xca\_6:allXcaRetrieveDestinationsFailed"
}
qido-sf - offset & limit - only one - more results available¶
Wenn der limit Parameter verwendet wird und zumindest ein weiteres Result verfügbar ist wird der HTTP Warning Header zurückgegeben
Warning: 299 pitconnect-qido "There are additional results that can be requested"