VN Core FHIR Implementation Guide — Bộ Hướng dẫn Triển khai FHIR Cốt lõi cho Việt Nam
0.1.0 - STU1 Draft
VN Core FHIR Implementation Guide — Bộ Hướng dẫn Triển khai FHIR Cốt lõi cho Việt Nam - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: http://fhir.hl7.org.vn/core/StructureDefinition/vn-core-observation-lab | Version: 0.1.0 | |||
| Draft as of 2026-03-20 | Computable Name: VNCoreObservationLab | |||
Profile Observation cho kết quả xét nghiệm lâm sàng tại Việt Nam. Sử dụng LOINC làm mã xét nghiệm (66.077 mã unique, bản dịch tiếng Việt do BYT phát hành). BYT đã ban hành bộ mã CLS quốc gia ánh xạ sang LOINC (QĐ 1227/QĐ-BYT 11/04/2025). Căn cứ: QĐ 1227/QĐ-BYT (2025), TT 13/2025/TT-BYT, QĐ 130/QĐ-BYT sửa đổi bởi QĐ 3176/QĐ-BYT (2024).
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..* | Observation | Measurements and simple assertions 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 |
![]() ![]() |
?!SΣ | 1..1 | code | Trạng thái (registered, preliminary, final, amended) Binding: ObservationStatus (required): Codes providing the status of an observation. |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Laboratory | |
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Mã xét nghiệm (LOINC khuyến nghị) Binding: LOINCCodes (extensible) |
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân |
![]() ![]() |
Σ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khám liên quan |
![]() ![]() |
SΣ | 1..1 | Thời điểm lấy mẫu/đo | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() |
Timing | |||
![]() ![]() ![]() |
instant | |||
![]() ![]() |
Σ | 0..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người/đơn vị thực hiện xét nghiệm |
![]() ![]() |
SΣC | 0..1 | Kết quả xét nghiệm | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() |
string | |||
![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() |
Range | |||
![]() ![]() ![]() |
Ratio | |||
![]() ![]() ![]() |
SampledData | |||
![]() ![]() ![]() |
time | |||
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() |
S | 0..* | CodeableConcept | Diễn giải (H, L, N, A...) Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. |
![]() ![]() |
0..* | Annotation | Ghi chú kết quả | |
![]() ![]() |
0..1 | Reference(Specimen) | Mẫu bệnh phẩm | |
![]() ![]() |
C | 0..* | BackboneElement | Khoảng tham chiếu Constraints: obs-3 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.category:Laboratory | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std. |
| Observation.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 Observation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Observation | Measurements and simple assertions | |
![]() ![]() |
S | 1..1 | code | Trạng thái (registered, preliminary, final, amended) |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Laboratory | |
![]() ![]() |
S | 1..1 | CodeableConcept | Mã xét nghiệm (LOINC khuyến nghị) Binding: LOINCCodes (extensible) |
![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân |
![]() ![]() |
0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khám liên quan | |
![]() ![]() |
S | 1..1 | dateTime, Period, Timing, instant | Thời điểm lấy mẫu/đo |
![]() ![]() |
0..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người/đơn vị thực hiện xét nghiệm | |
![]() ![]() |
S | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Kết quả xét nghiệm |
![]() ![]() |
S | 0..* | CodeableConcept | Diễn giải (H, L, N, A...) |
![]() ![]() |
0..* | Annotation | Ghi chú kết quả | |
![]() ![]() |
0..1 | Reference(Specimen) | Mẫu bệnh phẩm | |
![]() ![]() |
0..* | BackboneElement | Khoảng tham chiếu | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std. |
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions 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 | ||||
![]() ![]() |
Σ | 0..* | Identifier | Business Identifier for observation | ||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order | ||||
![]() ![]() |
Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Trạng thái (registered, preliminary, final, amended) Binding: ObservationStatus (required): Codes providing the status of an observation. | ||||
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | ||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Laboratory | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Mã xét nghiệm (LOINC khuyến nghị) Binding: LOINCCodes (extensible) | ||||
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân | ||||
![]() ![]() |
Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
![]() ![]() |
Σ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khám liên quan | ||||
![]() ![]() |
SΣ | 1..1 | Thời điểm lấy mẫu/đo | |||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
Timing | |||||||
![]() ![]() ![]() |
instant | |||||||
![]() ![]() |
Σ | 0..1 | instant | Date/Time this version was made available | ||||
![]() ![]() |
Σ | 0..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người/đơn vị thực hiện xét nghiệm | ||||
![]() ![]() |
SΣC | 0..1 | Kết quả xét nghiệm | |||||
![]() ![]() ![]() |
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. | ||||
![]() ![]() |
S | 0..* | CodeableConcept | Diễn giải (H, L, N, A...) Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | ||||
![]() ![]() |
0..* | Annotation | Ghi chú kết quả | |||||
![]() ![]() |
0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | |||||
![]() ![]() |
0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations. | |||||
![]() ![]() |
0..1 | Reference(Specimen) | Mẫu bệnh phẩm | |||||
![]() ![]() |
0..1 | Reference(Device | DeviceMetric) | (Measurement) Device | |||||
![]() ![]() |
C | 0..* | BackboneElement | Khoảng tham chiếu 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(Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group | ||||
![]() ![]() |
Σ | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence) | Related measurements the observation is made from | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Component results | ||||
![]() ![]() ![]() |
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.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.category:Laboratory | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.code | Base | extensible | 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 | example | Observation Methods | 📍4.0.1 | FHIR Std. |
| 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 Observation
Summary
Mandatory: 4 elements
Must-Support: 8 elements
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Key Elements View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions 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 |
![]() ![]() |
?!SΣ | 1..1 | code | Trạng thái (registered, preliminary, final, amended) Binding: ObservationStatus (required): Codes providing the status of an observation. |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Laboratory | |
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Mã xét nghiệm (LOINC khuyến nghị) Binding: LOINCCodes (extensible) |
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân |
![]() ![]() |
Σ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khám liên quan |
![]() ![]() |
SΣ | 1..1 | Thời điểm lấy mẫu/đo | |
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() ![]() |
Timing | |||
![]() ![]() ![]() |
instant | |||
![]() ![]() |
Σ | 0..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người/đơn vị thực hiện xét nghiệm |
![]() ![]() |
SΣC | 0..1 | Kết quả xét nghiệm | |
![]() ![]() ![]() |
Quantity | |||
![]() ![]() ![]() |
CodeableConcept | |||
![]() ![]() ![]() |
string | |||
![]() ![]() ![]() |
boolean | |||
![]() ![]() ![]() |
integer | |||
![]() ![]() ![]() |
Range | |||
![]() ![]() ![]() |
Ratio | |||
![]() ![]() ![]() |
SampledData | |||
![]() ![]() ![]() |
time | |||
![]() ![]() ![]() |
dateTime | |||
![]() ![]() ![]() |
Period | |||
![]() ![]() |
S | 0..* | CodeableConcept | Diễn giải (H, L, N, A...) Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. |
![]() ![]() |
0..* | Annotation | Ghi chú kết quả | |
![]() ![]() |
0..1 | Reference(Specimen) | Mẫu bệnh phẩm | |
![]() ![]() |
C | 0..* | BackboneElement | Khoảng tham chiếu Constraints: obs-3 |
![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.category:Laboratory | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std. |
| Observation.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()
|
Differential View
This structure is derived from Observation
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() |
|---|---|---|---|---|
![]() |
0..* | Observation | Measurements and simple assertions | |
![]() ![]() |
S | 1..1 | code | Trạng thái (registered, preliminary, final, amended) |
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this |
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Required Pattern: At least the following |
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory | |
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Laboratory | |
![]() ![]() |
S | 1..1 | CodeableConcept | Mã xét nghiệm (LOINC khuyến nghị) Binding: LOINCCodes (extensible) |
![]() ![]() |
S | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân |
![]() ![]() |
0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khám liên quan | |
![]() ![]() |
S | 1..1 | dateTime, Period, Timing, instant | Thời điểm lấy mẫu/đo |
![]() ![]() |
0..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người/đơn vị thực hiện xét nghiệm | |
![]() ![]() |
S | 0..1 | Quantity, CodeableConcept, string, boolean, integer, Range, Ratio, SampledData, time, dateTime, Period | Kết quả xét nghiệm |
![]() ![]() |
S | 0..* | CodeableConcept | Diễn giải (H, L, N, A...) |
![]() ![]() |
0..* | Annotation | Ghi chú kết quả | |
![]() ![]() |
0..1 | Reference(Specimen) | Mẫu bệnh phẩm | |
![]() ![]() |
0..* | BackboneElement | Khoảng tham chiếu | |
Documentation for this format | ||||
| Path | Status | Usage | ValueSet | Version | Source |
| Observation.code | Base | extensible | LOINC Codes | 📦4.0.1 | FHIR Std. |
Snapshot View
| Name | Flags | Card. | Type | Description & Constraints Filter: ![]() ![]() | ||||
|---|---|---|---|---|---|---|---|---|
![]() |
C | 0..* | Observation | Measurements and simple assertions 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 | ||||
![]() ![]() |
Σ | 0..* | Identifier | Business Identifier for observation | ||||
![]() ![]() |
Σ | 0..* | Reference(CarePlan | DeviceRequest | ImmunizationRecommendation | MedicationRequest | NutritionOrder | ServiceRequest) | Fulfills plan, proposal or order | ||||
![]() ![]() |
Σ | 0..* | Reference(MedicationAdministration | MedicationDispense | MedicationStatement | Procedure | Immunization | ImagingStudy) | Part of referenced event | ||||
![]() ![]() |
?!SΣ | 1..1 | code | Trạng thái (registered, preliminary, final, amended) Binding: ObservationStatus (required): Codes providing the status of an observation. | ||||
![]() ![]() |
S | 1..* | CodeableConcept | Classification of type of observation Slice: Unordered, Open by pattern:$this Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. | ||||
![]() ![]() ![]() |
S | 1..1 | CodeableConcept | Classification of type of observation Binding: ObservationCategoryCodes (preferred): Codes for high level observation categories. Required Pattern: At least the following | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
1..* | Coding | Code defined by a terminology system Fixed Value: (Complex) | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | uri | Identity of the terminology system Fixed Value: http://terminology.hl7.org/CodeSystem/observation-category | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | string | Version of the system - if relevant | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | code | Symbol in syntax defined by the system Fixed Value: laboratory | |||||
![]() ![]() ![]() ![]() ![]() |
1..1 | string | Representation defined by the system Fixed Value: Laboratory | |||||
![]() ![]() ![]() ![]() ![]() |
0..1 | boolean | If this coding was chosen directly by the user | |||||
![]() ![]() ![]() ![]() |
0..1 | string | Plain text representation of the concept | |||||
![]() ![]() |
SΣ | 1..1 | CodeableConcept | Mã xét nghiệm (LOINC khuyến nghị) Binding: LOINCCodes (extensible) | ||||
![]() ![]() |
SΣ | 1..1 | Reference(Bệnh nhân VN Core — VN Core Patient Profile) | Bệnh nhân | ||||
![]() ![]() |
Σ | 0..* | Reference(Resource) | What the observation is about, when it is not about the subject of record | ||||
![]() ![]() |
Σ | 0..1 | Reference(Lượt khám/nhập viện VN Core — VN Core Encounter Profile) | Lượt khám liên quan | ||||
![]() ![]() |
SΣ | 1..1 | Thời điểm lấy mẫu/đo | |||||
![]() ![]() ![]() |
dateTime | |||||||
![]() ![]() ![]() |
Period | |||||||
![]() ![]() ![]() |
Timing | |||||||
![]() ![]() ![]() |
instant | |||||||
![]() ![]() |
Σ | 0..1 | instant | Date/Time this version was made available | ||||
![]() ![]() |
Σ | 0..* | Reference(Nhân viên y tế VN Core — VN Core Practitioner Profile | Vai trò nhân viên y tế VN Core — VN Core PractitionerRole Profile | Cơ sở y tế VN Core — VN Core Organization Profile) | Người/đơn vị thực hiện xét nghiệm | ||||
![]() ![]() |
SΣC | 0..1 | Kết quả xét nghiệm | |||||
![]() ![]() ![]() |
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. | ||||
![]() ![]() |
S | 0..* | CodeableConcept | Diễn giải (H, L, N, A...) Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations. | ||||
![]() ![]() |
0..* | Annotation | Ghi chú kết quả | |||||
![]() ![]() |
0..1 | CodeableConcept | Observed body part Binding: SNOMEDCTBodyStructures (example): Codes describing anatomical locations. May include laterality. | |||||
![]() ![]() |
0..1 | CodeableConcept | How it was done Binding: ObservationMethods (example): Methods for simple observations. | |||||
![]() ![]() |
0..1 | Reference(Specimen) | Mẫu bệnh phẩm | |||||
![]() ![]() |
0..1 | Reference(Device | DeviceMetric) | (Measurement) Device | |||||
![]() ![]() |
C | 0..* | BackboneElement | Khoảng tham chiếu 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(Observation | QuestionnaireResponse | MolecularSequence) | Related resource that belongs to the Observation group | ||||
![]() ![]() |
Σ | 0..* | Reference(DocumentReference | ImagingStudy | Media | QuestionnaireResponse | Observation | MolecularSequence) | Related measurements the observation is made from | ||||
![]() ![]() |
Σ | 0..* | BackboneElement | Component results | ||||
![]() ![]() ![]() |
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.status | Base | required | ObservationStatus | 📍4.0.1 | FHIR Std. |
| Observation.category | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.category:Laboratory | Base | preferred | Observation Category Codes | 📍4.0.1 | FHIR Std. |
| Observation.code | Base | extensible | 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 | example | Observation Methods | 📍4.0.1 | FHIR Std. |
| 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 Observation
Summary
Mandatory: 4 elements
Must-Support: 8 elements
Structures
This structure refers to these other structures:
Slices
This structure defines the following Slices:
Other representations of profile: CSV, Excel, Schematron