HL7 FHIR Implementation Guide: Rwanda HIV
0.1.0 - STU1 International flag

HL7 FHIR Implementation Guide: Rwanda HIV, published by Jembi Health Systems. This is not an authorized publication; it is the continuous build for version 0.1.0). This version is based on the current content of https://github.com/openhie/Rwanda-HIV and changes regularly. See the Directory of published versions

Resource Profile: Patient Pregnancy Status Observation

Official URL: http://openhie.org/fhir/rwanda-hiv/StructureDefinition/hiv-patient-pregnant Version: 0.1.0
Active as of 2023-09-15 Computable Name: PatientPregnancyStatus

Represents the pregnancy status of a patient.

Usage:

Formal Views of Profile Content

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

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation 0..*ObservationMeasurements and simple assertions
... status 1..1coderegistered | preliminary | final | amended +
Required Pattern: final
... code 1..1CodeableConceptType of observation (code / type)
Required Pattern: At least the following
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: 250421003
.... text 0..1stringPlain text representation of the concept
Required Pattern: Pregnancy status
... subject 1..1Reference(Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct)Who and/or what the observation is about
... Slices for effective[x] 1..1dateTimeClinically relevant time/time-period for observation
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime 1..1dateTimeClinically relevant time/time-period for observation
... Slices for value[x] 0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence)Actual result
Slice: Unordered, Open by type:$this
.... value[x]:valueCodeableConcept 0..1CodeableConceptActual result
Binding: Patient Pregnant (required)
..... text 0..1stringPlain text representation of the concept
Required Pattern: Pregnancy test result
... note S0..*AnnotationComments about the observation

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Observation.value[x]:valueCodeableConceptrequiredVSPatientPregnant
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationMeasurements and simple assertions
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... code ΣC1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.


Required Pattern: At least the following
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: 250421003
.... text Σ0..1stringPlain text representation of the concept
Required Pattern: Pregnancy status
... subject Σ1..1Reference(Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct)Who and/or what the observation is about
... encounter Σ1..1Reference(Encounter)Healthcare event during which this observation is made
... Slices for effective[x] Σ1..1dateTimeClinically relevant time/time-period for observation
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime Σ1..1dateTimeClinically relevant time/time-period for observation
... Slices for value[x] ΣC0..1Actual result
Slice: Unordered, Open by type:$this
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
.... valueAttachmentAttachment
.... valueReferenceReference(MolecularSequence)
.... value[x]:valueCodeableConcept ΣC0..1CodeableConceptActual result
Binding: Patient Pregnant (required)
..... text Σ0..1stringPlain text representation of the concept
Required Pattern: Pregnancy test result
... note S0..*AnnotationComments about the observation

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Observation.statusrequiredPattern: final
Observation.codeexamplePattern: SNOMED CT code 250421003
Observation.value[x]:valueCodeableConceptrequiredVSPatientPregnant

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value).
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-8errorObservationbodyStructure SHALL only be present if Observation.bodySite is not present
: bodySite.exists() implies bodyStructure.empty()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationMeasurements and simple assertions
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: AllLanguages (required): IETF language tag for a human language

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness Identifier for observation
... instantiates[x] ΣTU0..1canonical(ObservationDefinition), Reference(ObservationDefinition)Instantiates FHIR ObservationDefinition
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)Fulfills plan, proposal or order
... triggeredBy TU0..*BackboneElementTriggering observation(s)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... observation Σ1..1Reference(Observation)Triggering observation
.... type Σ1..1codereflex | repeat | re-run
Binding: TriggeredBytype (required): The type of TriggeredBy Observation.

.... reason 0..1stringReason that the observation was triggered
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy | GenomicStudy)Part of referenced event
... status ?!Σ1..1coderegistered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.


Required Pattern: final
... category 0..*CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.


... code ΣC1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.


Required Pattern: At least the following
.... id0..1stringUnique id for inter-element referencing
.... extension0..*ExtensionAdditional content defined by implementations
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
..... version0..1stringVersion of the system - if relevant
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: 250421003
..... display0..1stringRepresentation defined by the system
..... userSelected0..1booleanIf this coding was chosen directly by the user
.... text0..1stringPlain text representation of the concept
.... id 0..1idUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..*CodingCode defined by a terminology system
.... text Σ0..1stringPlain text representation of the concept
Required Pattern: Pregnancy status
... subject Σ1..1Reference(Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct)Who and/or what the observation is about
... focus ΣTU0..*Reference(Resource)What the observation is about, when it is not about the subject of record
... encounter Σ1..1Reference(Encounter)Healthcare event during which this observation is made
... Slices for effective[x] Σ1..1dateTimeClinically relevant time/time-period for observation
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime Σ1..1dateTimeClinically relevant time/time-period for observation
... issued Σ0..1instantDate/Time this version was made available
... performer Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson)Who is responsible for the observation
... Slices for value[x] ΣC0..1Actual result
Slice: Unordered, Open by type:$this
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
.... valueAttachmentAttachment
.... valueReferenceReference(MolecularSequence)
.... value[x]:valueCodeableConcept ΣC0..1CodeableConceptActual result
Binding: Patient Pregnant (required)
..... id 0..1idUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ0..*CodingCode defined by a terminology system
..... text Σ0..1stringPlain text representation of the concept
Required Pattern: Pregnancy test result
... dataAbsentReason C0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

... interpretation 0..*CodeableConceptHigh, low, normal, etc
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


... note S0..*AnnotationComments about the observation
... bodySite C0..1CodeableConceptObserved body part
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts

... bodyStructure CTU0..1Reference(BodyStructure)Observed body structure
... method 0..1CodeableConceptHow it was done
Binding: ObservationMethods (example): Methods for simple observations.

... specimen C0..1Reference(Specimen | Group)Specimen used for this observation
... device 0..1Reference(Device | DeviceMetric)A reference to the device that generates the measurements or the device settings for the device
... referenceRange C0..*BackboneElementProvides guide for interpretation
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... low C0..1SimpleQuantityLow Range, if relevant
.... high C0..1SimpleQuantityHigh Range, if relevant
.... normalValue TU0..1CodeableConceptNormal value, if relevant
Binding: ObservationReferenceRangeNormalValueCodes (extensible): Codes identifying the normal value of the observation.

.... type TU0..1CodeableConceptReference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.

.... appliesTo 0..*CodeableConceptReference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.


.... age 0..1RangeApplicable age range, if relevant
.... text C0..1markdownText based reference range in an observation
... hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)Related resource that belongs to the Observation group
... derivedFrom Σ0..*Reference(DocumentReference | ImagingStudy | ImagingSelection | QuestionnaireResponse | Observation | MolecularSequence | GenomicStudy)Related resource from which the observation is made
... component ΣC0..*BackboneElementComponent results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code ΣC1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.

.... value[x] Σ0..1Actual component result
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueBooleanboolean
..... valueIntegerinteger
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
..... valueAttachmentAttachment
..... valueReferenceReference(MolecularSequence)
.... dataAbsentReason 0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... interpretation 0..*CodeableConceptHigh, low, normal, etc
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


.... referenceRange 0..*See referenceRange (Observation)Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Observation.languagerequiredAllLanguages
Observation.triggeredBy.typerequiredTriggeredBytype
Observation.statusrequiredPattern: final
Observation.categorypreferredObservationCategoryCodes
Observation.codeexamplePattern: SNOMED CT code 250421003
Observation.value[x]:valueCodeableConceptrequiredVSPatientPregnant
Observation.dataAbsentReasonextensibleDataAbsentReason
Observation.interpretationextensibleObservationInterpretationCodes
Observation.bodySiteexampleSNOMEDCTBodyStructures
Observation.methodexampleObservationMethods
Observation.referenceRange.normalValueextensibleObservationReferenceRangeNormalValueCodes
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
Observation.component.codeexampleLOINCCodes (a valid code from LOINC)
Observation.component.dataAbsentReasonextensibleDataAbsentReason
Observation.component.interpretationextensibleObservationInterpretationCodes

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value).
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-8errorObservationbodyStructure SHALL only be present if Observation.bodySite is not present
: bodySite.exists() implies bodyStructure.empty()
obs-9errorObservation.specimenIf Observation.specimen is a reference to Group, the group can only have specimens
: (reference.resolve().exists() and reference.resolve() is Group) implies reference.resolve().member.entity.resolve().all($this is Specimen)

This structure is derived from Observation

Summary

Mandatory: 4 elements
Must-Support: 1 element

Slices

This structure defines the following Slices:

  • The element Observation.effective[x] is sliced based on the value of type:$this
  • The element Observation.value[x] is sliced based on the value of type:$this

Differential View

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation 0..*ObservationMeasurements and simple assertions
... status 1..1coderegistered | preliminary | final | amended +
Required Pattern: final
... code 1..1CodeableConceptType of observation (code / type)
Required Pattern: At least the following
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: 250421003
.... text 0..1stringPlain text representation of the concept
Required Pattern: Pregnancy status
... subject 1..1Reference(Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct)Who and/or what the observation is about
... Slices for effective[x] 1..1dateTimeClinically relevant time/time-period for observation
Slice: Unordered, Open by type:$this
.... effective[x]:effectiveDateTime 1..1dateTimeClinically relevant time/time-period for observation
... Slices for value[x] 0..1Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period, Attachment, Reference(MolecularSequence)Actual result
Slice: Unordered, Open by type:$this
.... value[x]:valueCodeableConcept 0..1CodeableConceptActual result
Binding: Patient Pregnant (required)
..... text 0..1stringPlain text representation of the concept
Required Pattern: Pregnancy test result
... note S0..*AnnotationComments about the observation

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSet
Observation.value[x]:valueCodeableConceptrequiredVSPatientPregnant

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationMeasurements and simple assertions
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... contained 0..*ResourceContained, inline Resources
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... code ΣC1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.


Required Pattern: At least the following
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: 250421003
.... text Σ0..1stringPlain text representation of the concept
Required Pattern: Pregnancy status
... subject Σ1..1Reference(Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct)Who and/or what the observation is about
... encounter Σ1..1Reference(Encounter)Healthcare event during which this observation is made
... Slices for effective[x] Σ1..1dateTimeClinically relevant time/time-period for observation
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime Σ1..1dateTimeClinically relevant time/time-period for observation
... Slices for value[x] ΣC0..1Actual result
Slice: Unordered, Open by type:$this
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
.... valueAttachmentAttachment
.... valueReferenceReference(MolecularSequence)
.... value[x]:valueCodeableConcept ΣC0..1CodeableConceptActual result
Binding: Patient Pregnant (required)
..... text Σ0..1stringPlain text representation of the concept
Required Pattern: Pregnancy test result
... note S0..*AnnotationComments about the observation

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Observation.statusrequiredPattern: final
Observation.codeexamplePattern: SNOMED CT code 250421003
Observation.value[x]:valueCodeableConceptrequiredVSPatientPregnant

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value).
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-8errorObservationbodyStructure SHALL only be present if Observation.bodySite is not present
: bodySite.exists() implies bodyStructure.empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationMeasurements and simple assertions
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: AllLanguages (required): IETF language tag for a human language

... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored
... identifier Σ0..*IdentifierBusiness Identifier for observation
... instantiates[x] ΣTU0..1canonical(ObservationDefinition), Reference(ObservationDefinition)Instantiates FHIR ObservationDefinition
... basedOn Σ0..*Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest)Fulfills plan, proposal or order
... triggeredBy TU0..*BackboneElementTriggering observation(s)
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... observation Σ1..1Reference(Observation)Triggering observation
.... type Σ1..1codereflex | repeat | re-run
Binding: TriggeredBytype (required): The type of TriggeredBy Observation.

.... reason 0..1stringReason that the observation was triggered
... partOf Σ0..*Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy | GenomicStudy)Part of referenced event
... status ?!Σ1..1coderegistered | preliminary | final | amended +
Binding: ObservationStatus (required): Codes providing the status of an observation.


Required Pattern: final
... category 0..*CodeableConceptClassification of type of observation
Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories.


... code ΣC1..1CodeableConceptType of observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.


Required Pattern: At least the following
.... id0..1stringUnique id for inter-element referencing
.... extension0..*ExtensionAdditional content defined by implementations
.... coding1..*CodingCode defined by a terminology system
Fixed Value: (complex)
..... id0..1stringUnique id for inter-element referencing
..... extension0..*ExtensionAdditional content defined by implementations
..... system1..1uriIdentity of the terminology system
Fixed Value: http://snomed.info/sct
..... version0..1stringVersion of the system - if relevant
..... code1..1codeSymbol in syntax defined by the system
Fixed Value: 250421003
..... display0..1stringRepresentation defined by the system
..... userSelected0..1booleanIf this coding was chosen directly by the user
.... text0..1stringPlain text representation of the concept
.... id 0..1idUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..*CodingCode defined by a terminology system
.... text Σ0..1stringPlain text representation of the concept
Required Pattern: Pregnancy status
... subject Σ1..1Reference(Patient | Group | Device | Location | Organization | Procedure | Practitioner | Medication | Substance | BiologicallyDerivedProduct | NutritionProduct)Who and/or what the observation is about
... focus ΣTU0..*Reference(Resource)What the observation is about, when it is not about the subject of record
... encounter Σ1..1Reference(Encounter)Healthcare event during which this observation is made
... Slices for effective[x] Σ1..1dateTimeClinically relevant time/time-period for observation
Slice: Unordered, Closed by type:$this
.... effective[x]:effectiveDateTime Σ1..1dateTimeClinically relevant time/time-period for observation
... issued Σ0..1instantDate/Time this version was made available
... performer Σ0..*Reference(Practitioner | PractitionerRole | Organization | CareTeam | Patient | RelatedPerson)Who is responsible for the observation
... Slices for value[x] ΣC0..1Actual result
Slice: Unordered, Open by type:$this
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueStringstring
.... valueBooleanboolean
.... valueIntegerinteger
.... valueRangeRange
.... valueRatioRatio
.... valueSampledDataSampledData
.... valueTimetime
.... valueDateTimedateTime
.... valuePeriodPeriod
.... valueAttachmentAttachment
.... valueReferenceReference(MolecularSequence)
.... value[x]:valueCodeableConcept ΣC0..1CodeableConceptActual result
Binding: Patient Pregnant (required)
..... id 0..1idUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... coding Σ0..*CodingCode defined by a terminology system
..... text Σ0..1stringPlain text representation of the concept
Required Pattern: Pregnancy test result
... dataAbsentReason C0..1CodeableConceptWhy the result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

... interpretation 0..*CodeableConceptHigh, low, normal, etc
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


... note S0..*AnnotationComments about the observation
... bodySite C0..1CodeableConceptObserved body part
Binding: SNOMEDCTBodyStructures (example): SNOMED CT Body site concepts

... bodyStructure CTU0..1Reference(BodyStructure)Observed body structure
... method 0..1CodeableConceptHow it was done
Binding: ObservationMethods (example): Methods for simple observations.

... specimen C0..1Reference(Specimen | Group)Specimen used for this observation
... device 0..1Reference(Device | DeviceMetric)A reference to the device that generates the measurements or the device settings for the device
... referenceRange C0..*BackboneElementProvides guide for interpretation
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... low C0..1SimpleQuantityLow Range, if relevant
.... high C0..1SimpleQuantityHigh Range, if relevant
.... normalValue TU0..1CodeableConceptNormal value, if relevant
Binding: ObservationReferenceRangeNormalValueCodes (extensible): Codes identifying the normal value of the observation.

.... type TU0..1CodeableConceptReference range qualifier
Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range.

.... appliesTo 0..*CodeableConceptReference range population
Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to.


.... age 0..1RangeApplicable age range, if relevant
.... text C0..1markdownText based reference range in an observation
... hasMember Σ0..*Reference(Observation | QuestionnaireResponse | MolecularSequence)Related resource that belongs to the Observation group
... derivedFrom Σ0..*Reference(DocumentReference | ImagingStudy | ImagingSelection | QuestionnaireResponse | Observation | MolecularSequence | GenomicStudy)Related resource from which the observation is made
... component ΣC0..*BackboneElementComponent results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code ΣC1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.

.... value[x] Σ0..1Actual component result
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueBooleanboolean
..... valueIntegerinteger
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
..... valueAttachmentAttachment
..... valueReferenceReference(MolecularSequence)
.... dataAbsentReason 0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... interpretation 0..*CodeableConceptHigh, low, normal, etc
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


.... referenceRange 0..*See referenceRange (Observation)Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet / Code
Observation.languagerequiredAllLanguages
Observation.triggeredBy.typerequiredTriggeredBytype
Observation.statusrequiredPattern: final
Observation.categorypreferredObservationCategoryCodes
Observation.codeexamplePattern: SNOMED CT code 250421003
Observation.value[x]:valueCodeableConceptrequiredVSPatientPregnant
Observation.dataAbsentReasonextensibleDataAbsentReason
Observation.interpretationextensibleObservationInterpretationCodes
Observation.bodySiteexampleSNOMEDCTBodyStructures
Observation.methodexampleObservationMethods
Observation.referenceRange.normalValueextensibleObservationReferenceRangeNormalValueCodes
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
Observation.component.codeexampleLOINCCodes (a valid code from LOINC)
Observation.component.dataAbsentReasonextensibleDataAbsentReason
Observation.component.interpretationextensibleObservationInterpretationCodes

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf 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-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-3errorObservation.referenceRangeMust have at least a low or a high or text
: low.exists() or high.exists() or text.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.component.code is the same as Observation.code, then Observation.value SHALL NOT be present (the Observation.component.value[x] holds the value).
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
obs-8errorObservationbodyStructure SHALL only be present if Observation.bodySite is not present
: bodySite.exists() implies bodyStructure.empty()
obs-9errorObservation.specimenIf Observation.specimen is a reference to Group, the group can only have specimens
: (reference.resolve().exists() and reference.resolve() is Group) implies reference.resolve().member.entity.resolve().all($this is Specimen)

This structure is derived from Observation

Summary

Mandatory: 4 elements
Must-Support: 1 element

Slices

This structure defines the following Slices:

  • The element Observation.effective[x] is sliced based on the value of type:$this
  • The element Observation.value[x] is sliced based on the value of type:$this

 

Other representations of profile: CSV, Excel, Schematron