PreNUDGE FHIR® IG for Data Provider / Data from Apps (R4)
0.1.0 - ci-build
PreNUDGE FHIR® IG for Data Provider / Data from Apps (R4) - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: https://fhir.hl7.at/prenudge/appdata/r4/StructureDefinition/at-prenudge-observation | Version: 0.1.0 | |||
| Draft as of 2026-03-24 | Responsible: The PreNUDGE Consortium | Computable Name: AtPrenudgeObservation | ||
This FHIR profile is defining the overall Observation for PreNUDGE. It is abstract, so no instances of this profile directly are allowed. Be aware that if the user enters values from a device into a questionnaire, it is still considered a manual input. Please keep in mind that all observations must comply with the qualification matrix on https://prenudge.at/qualificationmatrix/.
Usages:
You can also check for usages in the FHIR IG Statistics
Description of Profiles, Differentials, Snapshots and how the different presentations work.
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | AtApsObservation | This is an abstract profile. Child profiles: AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationWHOQOLBrefScore, AtPrenudgeObservationWHOQOLBrefScore AT APS Observation Constraints: obs-6, obs-7 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 1..* | Identifier | Business Identifier for observation, at least one is assigned by the data provider |
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value, if no other specifications are given, use your website url Example General: http://www.acme.com/identifiers/patient |
![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 |
![]() ![]() |
?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
![]() ![]() |
Σ | 1..1 | dateTime | Clinically relevant time/time-period for observation Slice: Unordered, Closed by type:$this |
![]() ![]() ![]() |
Σ | 1..1 | dateTime | The mandatory clinically relevant time for observation |
![]() ![]() |
S | 0..* | Annotation | Comments about the observation including patient comments have to be possible |
![]() ![]() |
1..1 | CodeableConcept | How it was done Binding: AT PreNUDGE Observation Methods (required) | |
![]() ![]() |
S | 0..1 | Reference(AT APS Device | DeviceMetric) | (Measurement) Devices should be documented when used |
![]() ![]() |
Σ | 0..* | BackboneElement | Components should only be used when multiple values are inseparably connected to a single measurement (e.g., score domains). |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std. |
| Observation.code | Base | example | LOINC Codes | 📍4.0.1 | FHIR Std. |
| Observation.method | Base | required | AT PreNUDGE Observation Methods | 📦0.1.0 | This IG |
| Observation.component.code | Base | example | LOINC Codes | 📍4.0.1 | FHIR Std. |
| 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-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()
|
This structure is derived from AtApsObservation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | AtApsObservation | This is an abstract profile. Child profiles: AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationWHOQOLBrefScore, AtPrenudgeObservationWHOQOLBrefScore AT APS Observation | |
![]() ![]() |
1..* | Identifier | Business Identifier for observation, at least one is assigned by the data provider | |
![]() ![]() ![]() |
1..1 | uri | The namespace for the identifier value, if no other specifications are given, use your website url | |
![]() ![]() ![]() |
1..1 | string | The value that is unique | |
![]() ![]() |
1..1 | dateTime | Clinically relevant time/time-period for observation Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() |
1..1 | dateTime | The mandatory clinically relevant time for observation | |
![]() ![]() |
S | 0..* | Annotation | Comments about the observation including patient comments have to be possible |
![]() ![]() |
1..1 | CodeableConcept | How it was done Binding: AT PreNUDGE Observation Methods (required) | |
![]() ![]() |
S | 0..1 | Reference(AT APS Device | DeviceMetric) | (Measurement) Devices should be documented when used |
![]() ![]() |
0..* | BackboneElement | Components should only be used when multiple values are inseparably connected to a single measurement (e.g., score domains). | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.method | Base | required | AT PreNUDGE Observation Methods | 📦0.1.0 | This IG |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AtApsObservation | This is an abstract profile. Child profiles: AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationWHOQOLBrefScore, AtPrenudgeObservationWHOQOLBrefScore AT APS Observation Constraints: obs-6, obs-7 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 1..* | Identifier | Business Identifier for observation, at least one is assigned by the data provider | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value, if no other specifications are given, use your website url Example General: http://www.acme.com/identifiers/patient | ||||
![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) | ||||
![]() ![]() |
Σ | 0..* | Reference(AT APS CarePlan | DeviceRequest | ImmunizationRecommendation | AT APS MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order | ||||
![]() ![]() |
Σ | 0..* | Reference(AT APS MedicationAdministration | AT APS MedicationDispense | AT APS MedicationStatement | AT APS Procedure | AT APS Immunization | AT APS ImagingStudy) | Part of referenced event | ||||
![]() ![]() |
?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. | ||||
![]() ![]() |
0..* | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | |||||
![]() ![]() |
Σ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
![]() ![]() |
Σ | 0..1 | Reference(AT APS Patient | Group | AT APS Device | Location) | Who and/or what the observation is about | ||||
![]() ![]() |
Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made | ||||
![]() ![]() |
Σ | 1..1 | dateTime | Clinically relevant time/time-period for observation Slice: Unordered, Closed by type:$this | ||||
![]() ![]() ![]() |
Σ | 1..1 | dateTime | The mandatory clinically relevant time for observation | ||||
![]() ![]() |
Σ | 0..1 | instant | Date/Time this version was made available | ||||
![]() ![]() |
Σ | 0..* | Reference(AT APS Practitioner | AT APS PractitionerRole | AT APS Organization | CareTeam | AT APS Patient | RelatedPerson) | Who is responsible for the observation | ||||
![]() ![]() |
ΣC | 0..1 | Actual result | |||||
![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() |
SampledData | |||||||
![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() |
C | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
![]() ![]() |
0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |||||
![]() ![]() |
S | 0..* | Annotation | Comments about the observation including patient comments have to be possible | ||||
![]() ![]() |
0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | |||||
![]() ![]() |
1..1 | CodeableConcept | How it was done Binding: AT PreNUDGE Observation Methods (required) | |||||
![]() ![]() |
0..1 | Reference(AT APS Specimen) | Specimen used for this observation | |||||
![]() ![]() |
S | 0..1 | Reference(AT APS Device | DeviceMetric) | (Measurement) Devices should be documented when used | ||||
![]() ![]() |
C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3 | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | Low Range, if relevant | ||||
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | High Range, if relevant | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to. | |||||
![]() ![]() ![]() |
0..1 | Range | Applicable age range, if relevant | |||||
![]() ![]() ![]() |
0..1 | string | Text based reference range in an observation | |||||
![]() ![]() |
Σ | 0..* | Reference(AT APS Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group | ||||
![]() ![]() |
Σ | 0..* | Reference(AT APS DocumentReference | AT APS ImagingStudy | Media | QuestionnaireResponse | AT APS Observation | MolecularSequence) | Related measurements the observation is made from | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Components should only be used when multiple values are inseparably connected to a single measurement (e.g., score domains). | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Actual component result | |||||
![]() ![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() ![]() |
SampledData | |||||||
![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
C | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |||||
![]() ![]() ![]() |
0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Observation.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Observation.identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.code | Base | example | LOINC Codes | 📍4.0.1 | FHIR Std. |
| Observation.dataAbsentReason | Base | extensible | DataAbsentReason | 📍4.0.1 | FHIR Std. |
| Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📍4.0.1 | FHIR Std. |
| Observation.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| Observation.method | Base | required | AT PreNUDGE Observation Methods | 📦0.1.0 | This IG |
| Observation.referenceRange.type | Base | preferred | Observation Reference Range Meaning Codes | 📍4.0.1 | FHIR Std. |
| Observation.referenceRange.appliesTo | Base | example | Observation Reference Range Applies To Codes | 📍4.0.1 | FHIR Std. |
| Observation.component.code | Base | example | LOINC Codes | 📍4.0.1 | FHIR Std. |
| Observation.component.dataAbsentReason | Base | extensible | DataAbsentReason | 📍4.0.1 | FHIR Std. |
| Observation.component.interpretation | Base | extensible | Observation Interpretation Codes | 📍4.0.1 | FHIR Std. |
| 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()
|
This structure is derived from AtApsObservation
Summary
Mandatory: 6 elements
Must-Support: 2 elements
Slices
This structure defines the following Slices:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | AtApsObservation | This is an abstract profile. Child profiles: AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationWHOQOLBrefScore, AtPrenudgeObservationWHOQOLBrefScore AT APS Observation Constraints: obs-6, obs-7 |
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created |
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored |
![]() ![]() |
Σ | 1..* | Identifier | Business Identifier for observation, at least one is assigned by the data provider |
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value, if no other specifications are given, use your website url Example General: http://www.acme.com/identifiers/patient |
![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 |
![]() ![]() |
?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. |
![]() ![]() |
Σ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
![]() ![]() |
Σ | 1..1 | dateTime | Clinically relevant time/time-period for observation Slice: Unordered, Closed by type:$this |
![]() ![]() ![]() |
Σ | 1..1 | dateTime | The mandatory clinically relevant time for observation |
![]() ![]() |
S | 0..* | Annotation | Comments about the observation including patient comments have to be possible |
![]() ![]() |
1..1 | CodeableConcept | How it was done Binding: AT PreNUDGE Observation Methods (required) | |
![]() ![]() |
S | 0..1 | Reference(AT APS Device | DeviceMetric) | (Measurement) Devices should be documented when used |
![]() ![]() |
Σ | 0..* | BackboneElement | Components should only be used when multiple values are inseparably connected to a single measurement (e.g., score domains). |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std. |
| Observation.code | Base | example | LOINC Codes | 📍4.0.1 | FHIR Std. |
| Observation.method | Base | required | AT PreNUDGE Observation Methods | 📦0.1.0 | This IG |
| Observation.component.code | Base | example | LOINC Codes | 📍4.0.1 | FHIR Std. |
| 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-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()
|
Differential View
This structure is derived from AtApsObservation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | AtApsObservation | This is an abstract profile. Child profiles: AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationWHOQOLBrefScore, AtPrenudgeObservationWHOQOLBrefScore AT APS Observation | |
![]() ![]() |
1..* | Identifier | Business Identifier for observation, at least one is assigned by the data provider | |
![]() ![]() ![]() |
1..1 | uri | The namespace for the identifier value, if no other specifications are given, use your website url | |
![]() ![]() ![]() |
1..1 | string | The value that is unique | |
![]() ![]() |
1..1 | dateTime | Clinically relevant time/time-period for observation Slice: Unordered, Open by type:$this | |
![]() ![]() ![]() |
1..1 | dateTime | The mandatory clinically relevant time for observation | |
![]() ![]() |
S | 0..* | Annotation | Comments about the observation including patient comments have to be possible |
![]() ![]() |
1..1 | CodeableConcept | How it was done Binding: AT PreNUDGE Observation Methods (required) | |
![]() ![]() |
S | 0..1 | Reference(AT APS Device | DeviceMetric) | (Measurement) Devices should be documented when used |
![]() ![]() |
0..* | BackboneElement | Components should only be used when multiple values are inseparably connected to a single measurement (e.g., score domains). | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.method | Base | required | AT PreNUDGE Observation Methods | 📦0.1.0 | This IG |
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | AtApsObservation | This is an abstract profile. Child profiles: AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationBloodGlucose, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationOtherNotQuantities, AtPrenudgeObservationStepCount, AtPrenudgeObservationOtherQuantities, AtPrenudgeObservationWHOQOLBrefScore, AtPrenudgeObservationWHOQOLBrefScore AT APS Observation Constraints: obs-6, obs-7 | ||||
![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation This profile does not constrain the narrative in regard to content, language, or traceability to data elements | |||||
![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() |
Σ | 1..* | Identifier | Business Identifier for observation, at least one is assigned by the data provider | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |||||
![]() ![]() ![]() |
?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | Description of identifier Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. | ||||
![]() ![]() ![]() |
Σ | 1..1 | uri | The namespace for the identifier value, if no other specifications are given, use your website url Example General: http://www.acme.com/identifiers/patient | ||||
![]() ![]() ![]() |
Σ | 1..1 | string | The value that is unique Example General: 123456 | ||||
![]() ![]() ![]() |
Σ | 0..1 | Period | Time period when id is/was valid for use | ||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) | ||||
![]() ![]() |
Σ | 0..* | Reference(AT APS CarePlan | DeviceRequest | ImmunizationRecommendation | AT APS MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order | ||||
![]() ![]() |
Σ | 0..* | Reference(AT APS MedicationAdministration | AT APS MedicationDispense | AT APS MedicationStatement | AT APS Procedure | AT APS Immunization | AT APS ImagingStudy) | Part of referenced event | ||||
![]() ![]() |
?!Σ | 1..1 | code | registered | preliminary | final | amended + Binding: ObservationStatus (required): Codes providing the status of an observation. | ||||
![]() ![]() |
0..* | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | |||||
![]() ![]() |
Σ | 1..1 | CodeableConcept | Type of observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
![]() ![]() |
Σ | 0..1 | Reference(AT APS Patient | Group | AT APS Device | Location) | Who and/or what the observation is about | ||||
![]() ![]() |
Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
![]() ![]() |
Σ | 0..1 | Reference(Encounter) | Healthcare event during which this observation is made | ||||
![]() ![]() |
Σ | 1..1 | dateTime | Clinically relevant time/time-period for observation Slice: Unordered, Closed by type:$this | ||||
![]() ![]() ![]() |
Σ | 1..1 | dateTime | The mandatory clinically relevant time for observation | ||||
![]() ![]() |
Σ | 0..1 | instant | Date/Time this version was made available | ||||
![]() ![]() |
Σ | 0..* | Reference(AT APS Practitioner | AT APS PractitionerRole | AT APS Organization | CareTeam | AT APS Patient | RelatedPerson) | Who is responsible for the observation | ||||
![]() ![]() |
ΣC | 0..1 | Actual result | |||||
![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() |
SampledData | |||||||
![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() |
C | 0..1 | CodeableConcept | Why the result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
![]() ![]() |
0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |||||
![]() ![]() |
S | 0..* | Annotation | Comments about the observation including patient comments have to be possible | ||||
![]() ![]() |
0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | |||||
![]() ![]() |
1..1 | CodeableConcept | How it was done Binding: AT PreNUDGE Observation Methods (required) | |||||
![]() ![]() |
0..1 | Reference(AT APS Specimen) | Specimen used for this observation | |||||
![]() ![]() |
S | 0..1 | Reference(AT APS Device | DeviceMetric) | (Measurement) Devices should be documented when used | ||||
![]() ![]() |
C | 0..* | BackboneElement | Provides guide for interpretation Constraints: obs-3 | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | Low Range, if relevant | ||||
![]() ![]() ![]() |
C | 0..1 | SimpleQuantity(4.0.1) | High Range, if relevant | ||||
![]() ![]() ![]() |
0..1 | CodeableConcept | Reference range qualifier Binding: ObservationReferenceRangeMeaningCodes (preferred): Code for the meaning of a reference range. | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | Reference range population Binding: ObservationReferenceRangeAppliesToCodes (example): Codes identifying the population the reference range applies to. | |||||
![]() ![]() ![]() |
0..1 | Range | Applicable age range, if relevant | |||||
![]() ![]() ![]() |
0..1 | string | Text based reference range in an observation | |||||
![]() ![]() |
Σ | 0..* | Reference(AT APS Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group | ||||
![]() ![]() |
Σ | 0..* | Reference(AT APS DocumentReference | AT APS ImagingStudy | Media | QuestionnaireResponse | AT APS Observation | MolecularSequence) | Related measurements the observation is made from | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Components should only be used when multiple values are inseparably connected to a single measurement (e.g., score domains). | ||||
![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Type of component observation (code / type) Binding: LOINCCodes (example): Codes identifying names of simple observations. | ||||
![]() ![]() ![]() |
Σ | 0..1 | Actual component result | |||||
![]() ![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() ![]() |
SampledData | |||||||
![]() ![]() ![]() ![]() |
time | |||||||
![]() ![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
C | 0..1 | CodeableConcept | Why the component result is missing Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing. | ||||
![]() ![]() ![]() |
0..* | CodeableConcept | High, low, normal, etc. Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | |||||
![]() ![]() ![]() |
0..* | See referenceRange (Observation) | Provides guide for interpretation of component result | |||||
Documentation for this format | ||||||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.language | Base | preferred | Common Languages | 📍4.0.1 | FHIR Std. |
| Observation.identifier.use | Base | required | IdentifierUse | 📍4.0.1 | FHIR Std. |
| Observation.identifier.type | Base | extensible | IdentifierType | 📍4.0.1 | FHIR Std. |
| Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.code | Base | example | LOINC Codes | 📍4.0.1 | FHIR Std. |
| Observation.dataAbsentReason | Base | extensible | DataAbsentReason | 📍4.0.1 | FHIR Std. |
| Observation.interpretation | Base | extensible | Observation Interpretation Codes | 📍4.0.1 | FHIR Std. |
| Observation.bodySite | Base | example | SNOMED CT Body Structures | 📍4.0.1 | FHIR Std. |
| Observation.method | Base | required | AT PreNUDGE Observation Methods | 📦0.1.0 | This IG |
| Observation.referenceRange.type | Base | preferred | Observation Reference Range Meaning Codes | 📍4.0.1 | FHIR Std. |
| Observation.referenceRange.appliesTo | Base | example | Observation Reference Range Applies To Codes | 📍4.0.1 | FHIR Std. |
| Observation.component.code | Base | example | LOINC Codes | 📍4.0.1 | FHIR Std. |
| Observation.component.dataAbsentReason | Base | extensible | DataAbsentReason | 📍4.0.1 | FHIR Std. |
| Observation.component.interpretation | Base | extensible | Observation Interpretation Codes | 📍4.0.1 | FHIR Std. |
| 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()
|
This structure is derived from AtApsObservation
Summary
Mandatory: 6 elements
Must-Support: 2 elements
Slices
This structure defines the following Slices:
Other representations of profile: CSV, Excel, Schematron