You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Marten Smits edited this page May 11, 2021
·
3 revisions
We changed the behavior of our terminology services slightly to align error handling between the local and external terminology services. This behavior isn't well documented in the FHIR specification so we took a look at the a few of the bigger terminology servers to see how they react to different scenario's. This resulted in the following changes:
LocalTerminologyService:
When encountering error we now throw FhirOperationException (404, 422 or 500) instead of a flavor of TerminologyServiceException.
404: When a value set can't be found by the LocalTerminologyServices
422: For incorrect input parameters, or asked for a too complex expansion.
500: For unexpected errors caused by our code, that aren't the users fault.
ValueSetValidateCode will check for duplicate input parameters and throw a FhirOperationException (422) when encountered
ValueSetValidateCode will check if either a ValueSet of context is present in the input parameters and throw a FhirOperationException (422) if neither is present.
FallBackTerminologyService:
Catch FhirOperationException instead of TerminologyServiceException
ExternalTerminologyService:
Don't check for errors in the input parameters, let the external terminology services handle that.
Validator:
Always provide the context of a coded element as input parameter when asking a terminology service for validation.
Catch FhirOperationException instead of TerminologyServiceException