Dropping labs where we receive a block text about cultures

Hi there,

We have picked up that we are dropping whole diagnostic reports received from an external system in 2 scenarios and I would love your feedback/ advice.

Our model: We have the diagnostic Report Resource which records the panel name linked to observation resources. We have accounted for an observation value integer and an observation value free text (but they cannot both be empty)

  1. On occasionally an analtye cannot be performed by a lab e.g. an MCV in a CBC - so the observation is empty and then we drop the whole diagnostic report.

  2. It seems Culture results which come i a big block of text are not being accounted for. How are cultures (urine/ blood) usually accounted for in FHIR. Should we add an extension for free text for cultures in the DR?

Observation can have a dataAbsentReason. It’s common to have a constraint that there must either be a value, a dataAbsentReason, members or components with a value or data absent reason. You could also have an Observation with nothing but narrative or an Observation with a status other than complete/revised/etc. All of those would be valid and useful. A ‘complete’ Observation with no value, dar, members, components or narrative has questionable utility, but it’s not strictly non-conformant with the base spec so you still shouldn’t “drop” it.

Thanks Lloyd, that generally makes sense and we determined dataAbsentReason was required

Which FHIR element would be used to capture the narrative?

The narrative would typically go into a valueString or if it’s complex with markup, even a valueAttachment. You could also put it in Observation.text if it actually represents the full Observation. If you’ve got a value + narrative, then you can stick the narrative in Observation.note.

1 Like

We are using:

"valueCodeableConcept": {
	"text": "uncoded free text result"

to capture text-based observations (e.g. urine colour: “cloudy” ) - [no code available]

We would probably manage these culture results (block of text) that were not modelled correctly by mapping the text result similarly to other text-based results

See the example for the eye color:

<!--    abridged    -->
	<text value="eye color"/>
<!--    abridged    -->
<valueString value="blue"/>

Something like:

<!--    abridged    -->
	<!--    Kind of observation = Urine Color   -->
		<system value="http://acmelabs.org"/>
		<code value="10418888"/>
		<display value="Urine Color"/>
		<system value="http://loinc.org"/>
		<code value="5778-6"/>
		<display value="Color of Urine"/>
<!--    abridged    -->

A more suitable LOINC code for you example:
LOINC 5767-9 Appearance of Urine

Thanks @linforest :slight_smile:

We are limited by the external data we receive unfortunately.

We have received a LOINC code for the DiagnosticReport but not for individual observation results so this is to adapt so we capture the data we do receive appropriately.