Skip to content

Terminology Service changes version 3.3.0.

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

For a detailed view of all changes see: https://github.com/FirelyTeam/firely-net-sdk/pull/1670/

Clone this wiki locally