Question about FHIR null flavors

I am helping a group that is developing recommendations on patient-level data collection, and we are considering which non-response or FHIR “null flavor” options should be included. Would it be FHIR compliant if we used a non-response option for patient-level data collection that is not included within the null flavor list, and mapped this non-response option to a FHIR null flavor for use within data storage and exchange?

For example, patient-level data collection on race might include specific race concepts plus non-response options such as “prefer not to say” or “choose not to answer,” and these non-response options would then be mapped to the applicable FHIR null flavor when used within data storage and exchange. The FHIR null flavors don’t seem appropriate to ask a patient on a survey.

FHIR Null flavors: NullFlavor - FHIR v4.0.1

Thanks for your help!

The NullFlavor code system is a v3 code system and is generally not used in FHIR at all.

If a particular data element can’t be shared or isn’t known, the default option is to simply omit the element entirely. If it is useful for clinical or business purposes to convey why the value isn’t known - and the sending system can convey this information, there are two options:

  • include codes for “data absent reason” as part of the list of allowed values in the value set bound to the element (e.g. the ‘unknown’ value in the codes for Patient.gender
  • make use of the data-absent-reason extension and send that in place of sending a value.

The first option is only possible if a) the element is coded; and b) the element doesn’t already have a required binding that excludes the relevant codes

The second option is always possible, but is strongly discouraged if the data element has a minOccurs of 1 in the base resource definition (which generally means “this resource can’t be reasonably interpreted or successfully used if this element is unknown”). For example, having an Observation whose status is ‘unknown’ is pretty useless because you don’t know if it’s cancelled, entered in error, completed or something else - and thus have no means of understanding if the asserted information should be treated as true.