SMART Health Cards: Vaccination & Testing Implementation Guide
1.0.0 - STU 1 International flag

SMART Health Cards: Vaccination & Testing Implementation Guide, published by HL7 International / Public Health. This guide is not an authorized publication; it is the continuous build for version 1.0.0 built by the FHIR (HL7® FHIR® Standard) CI Build. This version is based on the current content of https://github.com/HL7/fhir-shc-vaccination-ig/ and changes regularly. See the Directory of published versions

Resource Profile: COVID-19 Laboratory Result Observation Profile - Data Minimization

Official URL: http://hl7.org/fhir/uv/shc-vaccination/StructureDefinition/shc-covid19-laboratory-result-observation-dm Version: 1.0.0
Standards status: Trial-use Maturity Level: 4 Computable Name: SHCCovid19LaboratoryResultObservationDM

Defines a primary (DM) profile representing a laboratory testing result for COVID-19 in a health card.

See here for implementation details.

Start here!

Description:

For representing laboratory test results related to infection with or immunity to an infectious disease.

Primary profile (DM) Fallback profile (AD) Scope of profile pair
Lab results - COVID-19 Fallback COVID-19 only
Lab results - Generic Fallback Other infectious diseases
For more information about the types of profiles in this IG, see the profiles page.

Usages:

You can also check for usages in the FHIR IG Statistics

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* SHCCovid19LaboratoryResultObservationAD Measurements and simple assertions
Constraints: obs-6, obs-7
... meta SΣ 0..1 Meta Metadata about the resource
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... security SΣ 0..1 Coding Limited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
... status ?!SΣ 1..1 code registered | preliminary | final | amended +
Binding: Completed observation status (required)
... code SΣ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCs identifying qualitative COVID lab tests (required)
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... code Σ 1..1 code Symbol in syntax defined by the system
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string This SHOULD use an absolute URI like `resource:0` that will resolve within the containing Bundle.
... effective[x] SΣ 1..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... performer SΣ 0..1 Reference(Organization) Organization which was responsible for the laboratory test result.
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... display SΣC 1..1 string Short, human-readable text representation of the organization.
Constraints: vc-should-be-under-30-chars
... Slices for value[x] SΣC 1..1 Actual result
Slice: Unordered, Closed by type:$this
.... valueCodeableConcept CodeableConcept
.... valueQuantity Quantity
.... valueString string
.... value[x]:valueCodeableConcept SΣC 0..1 CodeableConcept Actual result
Binding: Qualitative infectious disease-related lab test result codes (required)
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... coding Σ 1..1 Coding Code defined by a terminology system
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
.... value[x]:valueQuantity SΣC 0..1 Quantity Actual result
Constraints: vc-observation-quantity-should-have-range
..... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... value[x]:valueString SΣC 0..1 string String representation of results; used ONLY when a computable representation is not possible
Constraints: vc-should-be-under-20-chars
... referenceRange SC 0..* BackboneElement Provides guide for interpretation. SHOULD include if using valueQuantity.
Constraints: obs-3, vc-observation-range-only-quantity-or-string
... Slices for component Σ 0..1 BackboneElement Component results
Slice: Unordered, Closed by value:code
.... component:All Slices Content/Rules for all slices
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... component:specimen-supervision-status SΣ 0..1 BackboneElement Component results
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... coding Σ 1..1 Coding Code defined by a terminology system
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
....... code Σ 1..1 code SNOMED CT concept 'Type of supervision for specimen collection (observable entity)'
Fixed Value: 1208522006
..... Slices for value[x] Σ 1..1 CodeableConcept Actual component result
Slice: Unordered, Closed by type:$this
...... value[x]:valueCodeableConcept SΣ 1..1 CodeableConcept Actual component result
Binding: Specimen Collection Supervision Status (required)
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... coding Σ 1..1 Coding Code defined by a terminology system
........ extension 0..0 Extension
Slice: Unordered, Open by value:url
........ system Σ 1..1 uri Identity of the terminology system
........ code Σ 1..1 code Symbol in syntax defined by the system

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.security Base required Identity Assurance Level 📦1.0.0 This IG
Observation.status Base required Completed observation status 📦1.0.0 This IG
Observation.code Base required LOINCs identifying qualitative COVID lab tests 📦1.0.0 This IG
Observation.value[x]:valueCodeableConcept Base required Qualitative infectious disease-related lab test result codes 📦1.0.0 This IG
Observation.value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.component.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component:specimen-supervision-status.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component:specimen-supervision-status.​value[x]:valueCodeableConcept Base required Specimen Collection Supervision Status 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
obs-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vc-observation-quantity-should-have-range warning Observation.value[x]:valueQuantity Quantitative lab results SHOULD include reference range %resource.referenceRange.exists()
vc-observation-range-only-quantity-or-string warning Observation.referenceRange Reference range SHOULD be included for quantitative lab results, MAY be included for free text (string) results, and SHOULD NOT be included otherwise $this.exists() and (%resource.value.ofType(Quantity).exists() or %resource.value.ofType(string).exists())
vc-should-be-under-20-chars warning Observation.value[x]:valueString Length SHOULD be <20 for data minimization. $this.length() < 20
vc-should-be-under-30-chars warning Observation.performer.display Length SHOULD be <30 for data minimization. $this.length() < 30

This structure is derived from SHCCovid19LaboratoryResultObservationAD

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation SHCCovid19LaboratoryResultObservationAD
... id 0..0 Should not be populated
... meta
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
.... versionId 0..0 Version specific identifier
.... lastUpdated 0..0 When the resource version last changed
.... source 0..0 Identifies where the resource comes from
.... profile 0..0 Profiles this resource claims to conform to
.... tag 0..0 Tags applied to this resource
... implicitRules 0..0 A set of rules under which this content was created
... language 0..0 Language of the resource content
... text 0..0 Text summary of the resource, for human interpretation
... contained 0..0 Contained, inline Resources
... extension 0..0 Extension
... modifierExtension 0..0 Extension
... identifier 0..0 Business Identifier for observation
... basedOn 0..0 Fulfills plan, proposal or order
... partOf 0..0 Part of referenced event
... category 0..0 Classification of type of observation
... code
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
.... coding 1..1 Coding Code defined by a terminology system
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... system 1..1 uri Identity of the terminology system
..... version 0..0 Version of the system - if relevant
..... code 1..1 code Symbol in syntax defined by the system
..... display 0..0 Representation defined by the system
..... userSelected 0..0 If this coding was chosen directly by the user
.... text 0..0 Plain text representation of the concept
... subject 1..1 Reference(Patient Profile - General - Allowable Data) Patient to whom lab result applies
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
... focus 0..0 What the observation is about, when it is not about the subject of record
... encounter 0..0 Healthcare event during which this observation is made
... issued 0..0 Date/Time this version was made available
... performer
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
.... reference 0..0 Literal reference, Relative, internal or absolute URL
.... type 0..0 Type the reference refers to (e.g. "Patient")
.... identifier 0..0 Logical reference, when literal reference is not known
... Slices for value[x] Content/Rules for all slices
.... value[x]:valueCodeableConcept 0..1 CodeableConcept Actual result
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... coding 1..1 Coding Code defined by a terminology system
...... id 0..0 Unique id for inter-element referencing
...... extension 0..0 Extension
...... system 1..1 uri Identity of the terminology system
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... display 0..0 Representation defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
..... text 0..0 Plain text representation of the concept
.... value[x]:valueQuantity 0..1 Quantity Actual result
..... id 0..0 Unique id for inter-element referencing
.... value[x]:valueString 0..1 string String representation of results; used ONLY when a computable representation is not possible
..... id 0..0 xml:id (or equivalent in JSON)
... dataAbsentReason 0..0 Why the result is missing
... interpretation 0..0 High, low, normal, etc.
... note 0..0 Comments about the observation
... bodySite 0..0 Observed body part
... method 0..0 How it was done
... specimen 0..0 Specimen used for this observation
... device 0..0 (Measurement) Device
... referenceRange
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
.... modifierExtension 0..0 Extension
.... type
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... text 0..0 Plain text representation of the concept
.... appliesTo 0..0 Reference range population
.... age 0..0 Applicable age range, if relevant
... hasMember 0..0 Related resource that belongs to the Observation group
... derivedFrom 0..0 Related measurements the observation is made from
... Slices for component 0..1 BackboneElement Component results
Slice: Unordered, Closed by value:code
.... component:All Slices Content/Rules for all slices
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... modifierExtension 0..0 Extension
..... dataAbsentReason 0..0 Why the component result is missing
..... interpretation 0..0 High, low, normal, etc.
..... referenceRange 0..0 Provides guide for interpretation of component result
.... component:specimen-supervision-status 0..1 BackboneElement Component results
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... modifierExtension 0..0 Extension
..... code
...... id 0..0 Unique id for inter-element referencing
...... extension 0..0 Extension
...... coding
....... id 0..0 Unique id for inter-element referencing
....... extension 0..0 Extension
....... version 0..0 Version of the system - if relevant
....... display 0..0 Representation defined by the system
....... userSelected 0..0 If this coding was chosen directly by the user
...... text 0..0 Plain text representation of the concept
..... Slices for value[x] Content/Rules for all slices
...... value[x]:valueCodeableConcept 1..1 CodeableConcept Actual component result
....... id 0..0 Unique id for inter-element referencing
....... coding
........ id 0..0 Unique id for inter-element referencing
........ extension 0..0 Extension
........ version 0..0 Version of the system - if relevant
........ display 0..0 Representation defined by the system
........ userSelected 0..0 If this coding was chosen directly by the user
....... text 0..0 Plain text representation of the concept
..... dataAbsentReason 0..0 Why the component result is missing
..... interpretation 0..0 High, low, normal, etc.
..... referenceRange 0..0 Provides guide for interpretation of component result

doco Documentation for this format
NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* SHCCovid19LaboratoryResultObservationAD Measurements and simple assertions
Constraints: obs-6, obs-7
... meta SΣ 0..1 Meta Metadata about the resource
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... security SΣ 0..1 Coding Limited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
... status ?!SΣ 1..1 code registered | preliminary | final | amended +
Binding: Completed observation status (required)
... code SΣ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCs identifying qualitative COVID lab tests (required)
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... code Σ 1..1 code Symbol in syntax defined by the system
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string This SHOULD use an absolute URI like `resource:0` that will resolve within the containing Bundle.
... effective[x] SΣ 1..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... performer SΣ 0..1 Reference(Organization) Organization which was responsible for the laboratory test result.
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... display SΣC 1..1 string Short, human-readable text representation of the organization.
Constraints: vc-should-be-under-30-chars
... Slices for value[x] SΣC 1..1 Actual result
Slice: Unordered, Closed by type:$this
.... valueCodeableConcept CodeableConcept
.... valueQuantity Quantity
.... valueString string
.... value[x]:valueCodeableConcept SΣC 0..1 CodeableConcept Actual result
Binding: Qualitative infectious disease-related lab test result codes (required)
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... coding Σ 1..1 Coding Code defined by a terminology system
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
.... value[x]:valueQuantity SΣC 0..1 Quantity Actual result
Constraints: vc-observation-quantity-should-have-range
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... value Σ 0..1 decimal Numerical value (with implicit precision)
..... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
..... unit Σ 0..1 string Unit representation
..... system ΣC 0..1 uri System that defines coded unit form
..... code Σ 0..1 code Coded form of the unit
.... value[x]:valueString SΣC 0..1 string String representation of results; used ONLY when a computable representation is not possible
Constraints: vc-should-be-under-20-chars
..... extension 0..* Extension Additional content defined by implementations
..... value 0..1 string Primitive value for string
Max Length:1048576
... referenceRange SC 0..* BackboneElement Provides guide for interpretation. SHOULD include if using valueQuantity.
Constraints: obs-3, vc-observation-range-only-quantity-or-string
.... low C 0..1 SimpleQuantity(4.0.1) Low Range, if relevant
.... high C 0..1 SimpleQuantity(4.0.1) High Range, if relevant
.... type 0..1 CodeableConcept Reference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... coding Σ 0..* Coding Code defined by a terminology system
.... text 0..1 string Text based reference range in an observation
... Slices for component Σ 0..1 BackboneElement Component results
Slice: Unordered, Closed by value:code
.... component:All Slices Content/Rules for all slices
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
..... value[x] Σ 0..1 Actual component result
...... valueQuantity Quantity
...... valueCodeableConcept CodeableConcept
...... valueString string
...... valueBoolean boolean
...... valueInteger integer
...... valueRange Range
...... valueRatio Ratio
...... valueSampledData SampledData
...... valueTime time
...... valueDateTime dateTime
...... valuePeriod Period
.... component:specimen-supervision-status SΣ 0..1 BackboneElement Component results
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... coding Σ 1..1 Coding Code defined by a terminology system
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
....... code Σ 1..1 code SNOMED CT concept 'Type of supervision for specimen collection (observable entity)'
Fixed Value: 1208522006
..... Slices for value[x] Σ 1..1 CodeableConcept Actual component result
Slice: Unordered, Closed by type:$this
...... value[x]:valueCodeableConcept SΣ 1..1 CodeableConcept Actual component result
Binding: Specimen Collection Supervision Status (required)
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... coding Σ 1..1 Coding Code defined by a terminology system
........ extension 0..0 Extension
Slice: Unordered, Open by value:url
........ system Σ 1..1 uri Identity of the terminology system
........ code Σ 1..1 code Symbol in syntax defined by the system

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.security Base required Identity Assurance Level 📦1.0.0 This IG
Observation.status Base required Completed observation status 📦1.0.0 This IG
Observation.code Base required LOINCs identifying qualitative COVID lab tests 📦1.0.0 This IG
Observation.value[x]:valueCodeableConcept Base required Qualitative infectious disease-related lab test result codes 📦1.0.0 This IG
Observation.value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📍4.0.1 FHIR Std.
Observation.component.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component:specimen-supervision-status.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component:specimen-supervision-status.​value[x]:valueCodeableConcept Base required Specimen Collection Supervision Status 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vc-observation-quantity-should-have-range warning Observation.value[x]:valueQuantity Quantitative lab results SHOULD include reference range %resource.referenceRange.exists()
vc-observation-range-only-quantity-or-string warning Observation.referenceRange Reference range SHOULD be included for quantitative lab results, MAY be included for free text (string) results, and SHOULD NOT be included otherwise $this.exists() and (%resource.value.ofType(Quantity).exists() or %resource.value.ofType(string).exists())
vc-should-be-under-20-chars warning Observation.value[x]:valueString Length SHOULD be <20 for data minimization. $this.length() < 20
vc-should-be-under-30-chars warning Observation.performer.display Length SHOULD be <30 for data minimization. $this.length() < 30

This structure is derived from SHCCovid19LaboratoryResultObservationAD

Summary

Mandatory: 3 elements(3 nested mandatory elements)
Prohibited: 90 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Observation.component (Closed)

Maturity: 4

Key Elements View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* SHCCovid19LaboratoryResultObservationAD Measurements and simple assertions
Constraints: obs-6, obs-7
... meta SΣ 0..1 Meta Metadata about the resource
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... security SΣ 0..1 Coding Limited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
... status ?!SΣ 1..1 code registered | preliminary | final | amended +
Binding: Completed observation status (required)
... code SΣ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCs identifying qualitative COVID lab tests (required)
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... code Σ 1..1 code Symbol in syntax defined by the system
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string This SHOULD use an absolute URI like `resource:0` that will resolve within the containing Bundle.
... effective[x] SΣ 1..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... performer SΣ 0..1 Reference(Organization) Organization which was responsible for the laboratory test result.
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... display SΣC 1..1 string Short, human-readable text representation of the organization.
Constraints: vc-should-be-under-30-chars
... Slices for value[x] SΣC 1..1 Actual result
Slice: Unordered, Closed by type:$this
.... valueCodeableConcept CodeableConcept
.... valueQuantity Quantity
.... valueString string
.... value[x]:valueCodeableConcept SΣC 0..1 CodeableConcept Actual result
Binding: Qualitative infectious disease-related lab test result codes (required)
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... coding Σ 1..1 Coding Code defined by a terminology system
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
.... value[x]:valueQuantity SΣC 0..1 Quantity Actual result
Constraints: vc-observation-quantity-should-have-range
..... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
.... value[x]:valueString SΣC 0..1 string String representation of results; used ONLY when a computable representation is not possible
Constraints: vc-should-be-under-20-chars
... referenceRange SC 0..* BackboneElement Provides guide for interpretation. SHOULD include if using valueQuantity.
Constraints: obs-3, vc-observation-range-only-quantity-or-string
... Slices for component Σ 0..1 BackboneElement Component results
Slice: Unordered, Closed by value:code
.... component:All Slices Content/Rules for all slices
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
.... component:specimen-supervision-status SΣ 0..1 BackboneElement Component results
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... coding Σ 1..1 Coding Code defined by a terminology system
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
....... code Σ 1..1 code SNOMED CT concept 'Type of supervision for specimen collection (observable entity)'
Fixed Value: 1208522006
..... Slices for value[x] Σ 1..1 CodeableConcept Actual component result
Slice: Unordered, Closed by type:$this
...... value[x]:valueCodeableConcept SΣ 1..1 CodeableConcept Actual component result
Binding: Specimen Collection Supervision Status (required)
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... coding Σ 1..1 Coding Code defined by a terminology system
........ extension 0..0 Extension
Slice: Unordered, Open by value:url
........ system Σ 1..1 uri Identity of the terminology system
........ code Σ 1..1 code Symbol in syntax defined by the system

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.security Base required Identity Assurance Level 📦1.0.0 This IG
Observation.status Base required Completed observation status 📦1.0.0 This IG
Observation.code Base required LOINCs identifying qualitative COVID lab tests 📦1.0.0 This IG
Observation.value[x]:valueCodeableConcept Base required Qualitative infectious disease-related lab test result codes 📦1.0.0 This IG
Observation.value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.component.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component:specimen-supervision-status.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component:specimen-supervision-status.​value[x]:valueCodeableConcept Base required Specimen Collection Supervision Status 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
obs-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vc-observation-quantity-should-have-range warning Observation.value[x]:valueQuantity Quantitative lab results SHOULD include reference range %resource.referenceRange.exists()
vc-observation-range-only-quantity-or-string warning Observation.referenceRange Reference range SHOULD be included for quantitative lab results, MAY be included for free text (string) results, and SHOULD NOT be included otherwise $this.exists() and (%resource.value.ofType(Quantity).exists() or %resource.value.ofType(string).exists())
vc-should-be-under-20-chars warning Observation.value[x]:valueString Length SHOULD be <20 for data minimization. $this.length() < 20
vc-should-be-under-30-chars warning Observation.performer.display Length SHOULD be <30 for data minimization. $this.length() < 30

Differential View

This structure is derived from SHCCovid19LaboratoryResultObservationAD

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation SHCCovid19LaboratoryResultObservationAD
... id 0..0 Should not be populated
... meta
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
.... versionId 0..0 Version specific identifier
.... lastUpdated 0..0 When the resource version last changed
.... source 0..0 Identifies where the resource comes from
.... profile 0..0 Profiles this resource claims to conform to
.... tag 0..0 Tags applied to this resource
... implicitRules 0..0 A set of rules under which this content was created
... language 0..0 Language of the resource content
... text 0..0 Text summary of the resource, for human interpretation
... contained 0..0 Contained, inline Resources
... extension 0..0 Extension
... modifierExtension 0..0 Extension
... identifier 0..0 Business Identifier for observation
... basedOn 0..0 Fulfills plan, proposal or order
... partOf 0..0 Part of referenced event
... category 0..0 Classification of type of observation
... code
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
.... coding 1..1 Coding Code defined by a terminology system
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... system 1..1 uri Identity of the terminology system
..... version 0..0 Version of the system - if relevant
..... code 1..1 code Symbol in syntax defined by the system
..... display 0..0 Representation defined by the system
..... userSelected 0..0 If this coding was chosen directly by the user
.... text 0..0 Plain text representation of the concept
... subject 1..1 Reference(Patient Profile - General - Allowable Data) Patient to whom lab result applies
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
... focus 0..0 What the observation is about, when it is not about the subject of record
... encounter 0..0 Healthcare event during which this observation is made
... issued 0..0 Date/Time this version was made available
... performer
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
.... reference 0..0 Literal reference, Relative, internal or absolute URL
.... type 0..0 Type the reference refers to (e.g. "Patient")
.... identifier 0..0 Logical reference, when literal reference is not known
... Slices for value[x] Content/Rules for all slices
.... value[x]:valueCodeableConcept 0..1 CodeableConcept Actual result
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... coding 1..1 Coding Code defined by a terminology system
...... id 0..0 Unique id for inter-element referencing
...... extension 0..0 Extension
...... system 1..1 uri Identity of the terminology system
...... version 0..0 Version of the system - if relevant
...... code 1..1 code Symbol in syntax defined by the system
...... display 0..0 Representation defined by the system
...... userSelected 0..0 If this coding was chosen directly by the user
..... text 0..0 Plain text representation of the concept
.... value[x]:valueQuantity 0..1 Quantity Actual result
..... id 0..0 Unique id for inter-element referencing
.... value[x]:valueString 0..1 string String representation of results; used ONLY when a computable representation is not possible
..... id 0..0 xml:id (or equivalent in JSON)
... dataAbsentReason 0..0 Why the result is missing
... interpretation 0..0 High, low, normal, etc.
... note 0..0 Comments about the observation
... bodySite 0..0 Observed body part
... method 0..0 How it was done
... specimen 0..0 Specimen used for this observation
... device 0..0 (Measurement) Device
... referenceRange
.... id 0..0 Unique id for inter-element referencing
.... extension 0..0 Extension
.... modifierExtension 0..0 Extension
.... type
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... text 0..0 Plain text representation of the concept
.... appliesTo 0..0 Reference range population
.... age 0..0 Applicable age range, if relevant
... hasMember 0..0 Related resource that belongs to the Observation group
... derivedFrom 0..0 Related measurements the observation is made from
... Slices for component 0..1 BackboneElement Component results
Slice: Unordered, Closed by value:code
.... component:All Slices Content/Rules for all slices
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... modifierExtension 0..0 Extension
..... dataAbsentReason 0..0 Why the component result is missing
..... interpretation 0..0 High, low, normal, etc.
..... referenceRange 0..0 Provides guide for interpretation of component result
.... component:specimen-supervision-status 0..1 BackboneElement Component results
..... id 0..0 Unique id for inter-element referencing
..... extension 0..0 Extension
..... modifierExtension 0..0 Extension
..... code
...... id 0..0 Unique id for inter-element referencing
...... extension 0..0 Extension
...... coding
....... id 0..0 Unique id for inter-element referencing
....... extension 0..0 Extension
....... version 0..0 Version of the system - if relevant
....... display 0..0 Representation defined by the system
....... userSelected 0..0 If this coding was chosen directly by the user
...... text 0..0 Plain text representation of the concept
..... Slices for value[x] Content/Rules for all slices
...... value[x]:valueCodeableConcept 1..1 CodeableConcept Actual component result
....... id 0..0 Unique id for inter-element referencing
....... coding
........ id 0..0 Unique id for inter-element referencing
........ extension 0..0 Extension
........ version 0..0 Version of the system - if relevant
........ display 0..0 Representation defined by the system
........ userSelected 0..0 If this coding was chosen directly by the user
....... text 0..0 Plain text representation of the concept
..... dataAbsentReason 0..0 Why the component result is missing
..... interpretation 0..0 High, low, normal, etc.
..... referenceRange 0..0 Provides guide for interpretation of component result

doco Documentation for this format

Snapshot View

NameFlagsCard.TypeDescription & Constraints    Filter: Filtersdoco
.. Observation C 0..* SHCCovid19LaboratoryResultObservationAD Measurements and simple assertions
Constraints: obs-6, obs-7
... meta SΣ 0..1 Meta Metadata about the resource
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... security SΣ 0..1 Coding Limited security label to convey identity level of assurance for patient referenced by this resource.
Binding: Identity Assurance Level (required)
... status ?!SΣ 1..1 code registered | preliminary | final | amended +
Binding: Completed observation status (required)
... code SΣ 1..1 CodeableConcept Type of observation (code / type)
Binding: LOINCs identifying qualitative COVID lab tests (required)
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... coding Σ 1..1 Coding Code defined by a terminology system
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... system Σ 1..1 uri Identity of the terminology system
..... code Σ 1..1 code Symbol in syntax defined by the system
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... reference ΣC 1..1 string This SHOULD use an absolute URI like `resource:0` that will resolve within the containing Bundle.
... effective[x] SΣ 1..1 Clinically relevant time/time-period for observation
.... effectiveDateTime dateTime
.... effectivePeriod Period
... performer SΣ 0..1 Reference(Organization) Organization which was responsible for the laboratory test result.
.... extension 0..0 Extension
Slice: Unordered, Open by value:url
.... display SΣC 1..1 string Short, human-readable text representation of the organization.
Constraints: vc-should-be-under-30-chars
... Slices for value[x] SΣC 1..1 Actual result
Slice: Unordered, Closed by type:$this
.... valueCodeableConcept CodeableConcept
.... valueQuantity Quantity
.... valueString string
.... value[x]:valueCodeableConcept SΣC 0..1 CodeableConcept Actual result
Binding: Qualitative infectious disease-related lab test result codes (required)
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... coding Σ 1..1 Coding Code defined by a terminology system
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... system Σ 1..1 uri Identity of the terminology system
...... code Σ 1..1 code Symbol in syntax defined by the system
.... value[x]:valueQuantity SΣC 0..1 Quantity Actual result
Constraints: vc-observation-quantity-should-have-range
..... extension 0..* Extension Additional content defined by implementations
Slice: Unordered, Open by value:url
..... value Σ 0..1 decimal Numerical value (with implicit precision)
..... comparator ?!Σ 0..1 code < | <= | >= | > - how to understand the value
Binding: QuantityComparator (required): How the Quantity should be understood and represented.
..... unit Σ 0..1 string Unit representation
..... system ΣC 0..1 uri System that defines coded unit form
..... code Σ 0..1 code Coded form of the unit
.... value[x]:valueString SΣC 0..1 string String representation of results; used ONLY when a computable representation is not possible
Constraints: vc-should-be-under-20-chars
..... extension 0..* Extension Additional content defined by implementations
..... value 0..1 string Primitive value for string
Max Length:1048576
... referenceRange SC 0..* BackboneElement Provides guide for interpretation. SHOULD include if using valueQuantity.
Constraints: obs-3, vc-observation-range-only-quantity-or-string
.... low C 0..1 SimpleQuantity(4.0.1) Low Range, if relevant
.... high C 0..1 SimpleQuantity(4.0.1) High Range, if relevant
.... type 0..1 CodeableConcept Reference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.
..... extension 0..0 Extension
Slice: Unordered, Open by value:url
..... coding Σ 0..* Coding Code defined by a terminology system
.... text 0..1 string Text based reference range in an observation
... Slices for component Σ 0..1 BackboneElement Component results
Slice: Unordered, Closed by value:code
.... component:All Slices Content/Rules for all slices
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
..... value[x] Σ 0..1 Actual component result
...... valueQuantity Quantity
...... valueCodeableConcept CodeableConcept
...... valueString string
...... valueBoolean boolean
...... valueInteger integer
...... valueRange Range
...... valueRatio Ratio
...... valueSampledData SampledData
...... valueTime time
...... valueDateTime dateTime
...... valuePeriod Period
.... component:specimen-supervision-status SΣ 0..1 BackboneElement Component results
..... code Σ 1..1 CodeableConcept Type of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.
...... extension 0..0 Extension
Slice: Unordered, Open by value:url
...... coding Σ 1..1 Coding Code defined by a terminology system
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... system Σ 1..1 uri Identity of the terminology system
Fixed Value: http://snomed.info/sct
....... code Σ 1..1 code SNOMED CT concept 'Type of supervision for specimen collection (observable entity)'
Fixed Value: 1208522006
..... Slices for value[x] Σ 1..1 CodeableConcept Actual component result
Slice: Unordered, Closed by type:$this
...... value[x]:valueCodeableConcept SΣ 1..1 CodeableConcept Actual component result
Binding: Specimen Collection Supervision Status (required)
....... extension 0..0 Extension
Slice: Unordered, Open by value:url
....... coding Σ 1..1 Coding Code defined by a terminology system
........ extension 0..0 Extension
Slice: Unordered, Open by value:url
........ system Σ 1..1 uri Identity of the terminology system
........ code Σ 1..1 code Symbol in syntax defined by the system

doco Documentation for this format

Terminology Bindings

Path Status Usage ValueSet Version Source
Observation.meta.security Base required Identity Assurance Level 📦1.0.0 This IG
Observation.status Base required Completed observation status 📦1.0.0 This IG
Observation.code Base required LOINCs identifying qualitative COVID lab tests 📦1.0.0 This IG
Observation.value[x]:valueCodeableConcept Base required Qualitative infectious disease-related lab test result codes 📦1.0.0 This IG
Observation.value[x]:valueQuantity.​comparator Base required QuantityComparator 📍4.0.1 FHIR Std.
Observation.referenceRange.​type Base preferred Observation Reference Range Meaning Codes 📍4.0.1 FHIR Std.
Observation.component.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component:specimen-supervision-status.​code Base example LOINC Codes 📍4.0.1 FHIR Std.
Observation.component:specimen-supervision-status.​value[x]:valueCodeableConcept Base required Specimen Collection Supervision Status 📦1.0.0 This IG

Constraints

Id Grade Path(s) Description Expression
dom-2 error Observation If the resource is contained in another resource, it SHALL NOT contain nested Resources contained.contained.empty()
dom-3 error Observation If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4 error Observation If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5 error Observation If a resource is contained in another resource, it SHALL NOT have a security label contained.meta.security.empty()
dom-6 best practice Observation A resource should have narrative for robust management text.`div`.exists()
ele-1 error **ALL** elements All FHIR elements must have a @value or children hasValue() or (children().count() > id.count())
ext-1 error **ALL** extensions Must have either extensions or value[x], not both extension.exists() != value.exists()
obs-3 error Observation.referenceRange Must have at least a low or a high or text low.exists() or high.exists() or text.exists()
obs-6 error Observation dataAbsentReason SHALL only be present if Observation.value[x] is not present dataAbsentReason.empty() or value.empty()
obs-7 error Observation If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
vc-observation-quantity-should-have-range warning Observation.value[x]:valueQuantity Quantitative lab results SHOULD include reference range %resource.referenceRange.exists()
vc-observation-range-only-quantity-or-string warning Observation.referenceRange Reference range SHOULD be included for quantitative lab results, MAY be included for free text (string) results, and SHOULD NOT be included otherwise $this.exists() and (%resource.value.ofType(Quantity).exists() or %resource.value.ofType(string).exists())
vc-should-be-under-20-chars warning Observation.value[x]:valueString Length SHOULD be <20 for data minimization. $this.length() < 20
vc-should-be-under-30-chars warning Observation.performer.display Length SHOULD be <30 for data minimization. $this.length() < 30

This structure is derived from SHCCovid19LaboratoryResultObservationAD

Summary

Mandatory: 3 elements(3 nested mandatory elements)
Prohibited: 90 elements

Slices

This structure defines the following Slices:

  • The element 1 is sliced based on the value of Observation.component (Closed)

Maturity: 4

 

Other representations of profile: CSV, Excel, Schematron