FHIR2 Backlog - Implement the Immunization Resource

@mddubey and what about the FHIR response for concepts?

Hello @mksd,

I am not sure there is an endpoint to fetch just concepts in FHIR format. Looking at the code, I cannot find a ConceptFhirResourceProvider on fhir2 module. All the existing search features on Microfrontend are using /ws/rest APIs for concept search.

@ibacher Please correct if I am missing something.

:+1:

@mddubey if there is an inexpensive way to obtain the concept mappings through the full rep. then we could attempt of doing so. If not, let’s stick to UUIDs for now.

Concepts aren’t directly addressable resources in FHIR (from a FHIR perspective, the canonical definition of a concept exists in a terminology system that is independent of the FHIR server, e.g. SNOMED, LOINC, CIEL, etc.). What is represents me in FHIR are ValueSets, which can represent what OpenMRS terms concept sets, concept answers, convenience sets, etc. We’ll probably need to add some kind of support for ValueSets at some point, but at present, we haven’t really had the need. That’s a long way of saying that there’s not and never going to be a ConceptResourceProvider.

2 Likes

@ibacher just want to confirm a couple of mappings between the FHIR immunization resource and the OpenMRS obs group.

  • Immunization.recorded is translated as the obs group’s obsDateTime.
    (I’m not sure how this works with obs groups, but I will set all members to have their obsDateTime set to the same value, if I must do so.)
  • Immunization.occurrence[x] is the vaccination date: the obs member of the group coded by CIEL:1410, ‘VACCINATION DATE’.
1 Like

That seems right to me. I’d just note that the field you’re going to populate for occurrence[x] is probably always going to be occurrenceDateTime (the x represents a choice of different fields usually with a slightly different data type). To support occurrenceString, we’d probably need a different CIEL concept.

Absolutely. Thanks for this.

I am not sure there would ever be a reason to record a non-computable string for a data/time of vaccination. Did I misunderstanding occurrenceString?

No, I think you’ve understood things correctly. The FHIR spec has this to say about it:

When immunizations are given a specific date and time should always be known. When immunizations are patient reported, a specific date might not be known. Although partial dates are allowed, an adult patient might not be able to recall the year a childhood immunization was given. An exact date is always preferable, but the use of the String data type is acceptable when an exact date is not known.

I’d also note it was added in R4 (DSTU3 only allows a date-time element to document this), so clearly someone must’ve requested this “feature”.