Zum Inhalt

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:

{
    "error\_description": "NO api-route found",
    "error": "invalidRequest"
}

*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:

{
    "error\_description": "NO api-route found",
    "error": "invalidRequest"
}

*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:

{
    "error": "qido:urlSyntaxNotMet"
}

*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:

{
    "error\_description": "no valid DICOM tag includefield :123",
    "error": "noValidDcmParam"
}

*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:

{
    "error\_description": "no valid DICOM tag :noDcmTag",
    "error": "noValidDcmParam"
}

*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:

{
    "error\_description": "unable to init DB datasource",
    "error": "unableToGetDbConnection"
}

*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"