Skip to content

Prevention Result Detail Extension

Canonical../StructureDefinition/nexus-prevention-result-detail
Statusdraft (experimental) · 1.26.0
BaseExtension (constraint)
ContextObservation (element)
SourceFSH · JSON

The free-text detail accompanying a screening result: a reading, a finding, or the sentence an outside report gave, recorded alongside the coded result rather than instead of it.

FSH

The authored source of truth: extensions/PreventionDetailExtensions.fsh (edit on GitHub). One FSH file may define several related artifacts.

// PreventionDetailExtensions.fsh
// The two free-text fields a prevention record carries that R4 gives no element for: the detail
// that accompanies a screening result, and the instructions the patient was given.
//
// WHY THESE ARE EXTENSIONS AND NOT NOTES. Both are FIELDS: one box each on the prevention record,
// edited on its own, cleared on its own, and read back into the same box. A field with its own
// lifecycle needs its own address. `Observation.note` and `Immunization.note` are the resource's
// clinical comments -- prose a person wrote about the record as a whole -- and every conformant
// consumer is entitled to read them as exactly that and render them verbatim. Putting a distinct
// field inside a note repeat makes the two indistinguishable to every reader that has not been told
// the private arrangement, and makes an edit to one field a rewrite of the comment array.
//
// WHY NEITHER IS CODED. A result detail is a measurement, a finding or a sentence from an outside
// report ("120/80", "3 polyps removed, tubular adenoma"); an instruction is what the patient was
// told to do ("observe 15 minutes", "return in 3 days if swelling"). Neither is drawn from a value
// set anyone maintains, and binding one would force a writer to discard what was actually recorded.
// The coded parts of a prevention record already have homes: the result itself is
// `Observation.value[x]`, the administration route and site are `Immunization.route` and
// `Immunization.site`, and the product status is the Prevention Status extension.
//
// WHY THE RESULT DETAIL IS OBSERVATION-ONLY. It elaborates a screening RESULT, and a result is an
// Observation concern -- an Immunization records an administration, which has no result to detail.
// Instructions are not scoped that way: a patient can be told what to do after a vaccination and
// after a screening alike, so that extension is contexted on both.

Extension: PreventionResultDetail
Id: nexus-prevention-result-detail
Title: "Prevention Result Detail Extension"
Description: """
The free-text detail accompanying a screening result: a reading, a finding, or the sentence an
outside report gave, recorded alongside the coded result rather than instead of it.

**It is bound independently of the result.** `Observation.value[x]` carries what the screening
concluded -- normal, abnormal, the measured value -- and this carries the detail a reader needs to
understand that conclusion. Writing either one never changes the other, and a record may carry this
with no result yet, or a result with no detail.

**It is not a clinical comment.** `Observation.note` is where a person's remarks about the record
live, and a consumer is entitled to render every note repeat verbatim as a comment. This is a
distinct field with its own editing lifecycle, which is why it has its own address.

**At most one per Observation.** A reader meeting more than one should take the first.

**MIGRATION.** Write this extension. A reader of records written before this extension existed may
find the same information carried as free text inside `Observation.note`; that carriage is not part
of this specification, is not produced going forward, and a consumer that wants it from older
records has to read it from where it was written. Moving the existing data is outstanding work and
is not described here.
"""
* ^url = "../StructureDefinition/nexus-prevention-result-detail"
* ^status = #draft
* ^experimental = true
* ^date = "2026-09-15"
* ^publisher = "WELLSTAR Technologies Corp."
* ^contact.name = "Nexus EMR FHIR Implementation Guide"
* ^contact.telecom.system = #url
* ^contact.telecom.value = ".."
* ^jurisdiction = urn:iso:std:iso:3166#CA "Canada"
* ^context[0].type = #element
* ^context[0].expression = "Observation"
* extension 0..0
* url 1..1
* value[x] 1..1 MS
* value[x] only string
* valueString ^short = "The detail accompanying the screening result"
* valueString ^definition = "The free-text detail recorded against the screening's result -- a reading, a finding, or the sentence an outside report gave. Recorded independently of `Observation.value[x]`: neither element is derived from the other."


Extension: PreventionInstructions
Id: nexus-prevention-instructions
Title: "Prevention Instructions Extension"
Description: """
The instructions given to the patient in connection with this prevention: what to do, watch for, or
come back for after it was administered or performed.

**This is what the patient was told, not how the product was given.** The administration itself is
described by `Immunization.route`, `Immunization.site` and `Immunization.doseQuantity`, all coded.
This element carries the aftercare sentence -- "observe 15 minutes", "return if swelling persists
past 48 hours" -- which is written for a person and is not drawn from any value set.

**It is not a clinical comment.** The resource's `note` is where a person's remarks about the record
live, and a consumer is entitled to render every note repeat verbatim as a comment. This is a
distinct field with its own editing lifecycle, which is why it has its own address.

**At most one per resource.** A reader meeting more than one should take the first.

**MIGRATION.** Write this extension. A reader of records written before this extension existed may
find the same information carried as free text inside the resource's `note`; that carriage is not
part of this specification, is not produced going forward, and a consumer that wants it from older
records has to read it from where it was written. Moving the existing data is outstanding work and
is not described here.
"""
* ^url = "../StructureDefinition/nexus-prevention-instructions"
* ^status = #draft
* ^experimental = true
* ^date = "2026-09-15"
* ^publisher = "WELLSTAR Technologies Corp."
* ^contact.name = "Nexus EMR FHIR Implementation Guide"
* ^contact.telecom.system = #url
* ^contact.telecom.value = ".."
* ^jurisdiction = urn:iso:std:iso:3166#CA "Canada"
* ^context[0].type = #element
* ^context[0].expression = "Immunization"
* ^context[1].type = #element
* ^context[1].expression = "Observation"
* extension 0..0
* url 1..1
* value[x] 1..1 MS
* value[x] only string
* valueString ^short = "Instructions given to the patient for this prevention"
* valueString ^definition = "The instructions given to the patient in connection with this prevention -- what to do, watch for, or come back for after it was administered or performed. Free text: written for a person, not drawn from a value set."