Prepare 0.4.0: DGDA Drug and LOINC Integration
Some checks failed
FHIR IG CI/CD Pipeline with Version Persistence / build-ig (push) Failing after 8m54s
FHIR IG CI/CD Pipeline with Version Persistence / deploy (push) Has been skipped

This commit is contained in:
2026-04-06 23:11:12 +06:00
parent e9561f15b3
commit d88695dd8b
19 changed files with 829 additions and 58 deletions

View File

@@ -2,51 +2,83 @@ Profile: BDObservationProfile
Id: bd-observation
Parent: Observation
Title: "Bangladesh Observation Profile"
Description: "Bangladesh Observation Profile"
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-observation"
* ^version = "1.0.0"
* ^status = #active
Description: """
Base observation profile for Bangladesh. This is an abstract-style base profile
from which all BD-Core observation profiles are derived. It is not intended to
be used directly in clinical resources — use a derived profile instead.
* identifier 1..* MS
Derived profiles (v0.4.0):
- bd-lab-panel-observation : Laboratory panel/order (hasMember pattern)
- bd-lab-result-observation : Laboratory leaf result (child of hasMember)
Planned derived profiles (v0.5.0+):
- bd-vital-signs-observation
- bd-exam-observation
"""
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-observation"
* ^version = "2.0.0"
* ^status = #draft
// ── Identifier ────────────────────────────────────────────────────────────
// 0..* at base — not all observation types carry identifiers.
// Child profiles (e.g. lab results) constrain to 1..*.
* identifier 0..* MS
* identifier.value 1..1
// ── Status ────────────────────────────────────────────────────────────────
* status 1..1
* partOf 0..*
// ── Category ──────────────────────────────────────────────────────────────
// Preferred binding at base — child profiles fix to specific category codes
// (e.g. laboratory, vital-signs). Required binding here would block child
// profiles from narrowing to a fixed category slice.
* category 1..* MS
* category from http://hl7.org/fhir/ValueSet/observation-category (required)
* category ^definition = "Type of category"
* category ^comment = "E.g. vital, physical examination"
* category from http://hl7.org/fhir/ValueSet/observation-category (preferred)
* category ^definition = "Type of observation category"
* category ^comment = "E.g. laboratory, vital-signs, exam. Child profiles fix this to a specific value."
// ── Code ──────────────────────────────────────────────────────────────────
// Extensible binding at base — child profiles bind to narrower ValueSets
// (e.g. BD LOINC lab panels, BD LOINC lab results). Required binding here
// would prevent child profiles from using a subset binding.
* code 1..1 MS
* code from http://hl7.org/fhir/ValueSet/observation-codes (required)
* code ^definition = "Type of test/measurement"
* code ^comment = "E.g., Hb, RBS, CBC"
* code from http://hl7.org/fhir/ValueSet/observation-codes (extensible)
* code ^definition = "Type of observation / test / measurement"
* code ^comment = "E.g. Hb, RBS, CBC. Child profiles bind to specific ValueSets."
// Subject: Reference to Patient Profile (Required)
// ── Subject ───────────────────────────────────────────────────────────────
* subject 1..1 MS
* subject only Reference(Patient)
* subject.reference 1..1 MS
* subject.display 1..1 MS
* subject.identifier 0..1
* subject ^definition = "Reference to Patient Profile"
* subject ^definition = "Reference to the Patient this observation is about"
* subject ^comment = "EX: http://mci.mcishr.dghs.gov.bd/api/v1/patients/98002412586"
// ── Encounter ─────────────────────────────────────────────────────────────
* encounter 1..1 MS
* encounter.reference 1..1 MS
* encounter ^definition = "Reference to Patient Profile"
* encounter ^comment = "EX: uuid:34c38499-58ab-41e0-8e94-c3931491ad0e - bundle encounter uuid from local"
* encounter ^definition = "Reference to the Encounter during which this observation was made"
* encounter ^comment = "EX: uuid:34c38499-58ab-41e0-8e94-c3931491ad0e"
// ── Performer ─────────────────────────────────────────────────────────────
* performer 1..*
* performer.reference 1..1
// Value[x]: Result value (Optional, but constrained)
// ── Part Of ───────────────────────────────────────────────────────────────
* partOf 0..*
// ── Value[x] ──────────────────────────────────────────────────────────────
// 0..1 at base — child profiles constrain presence and type.
// Panel observations set value[x] to 0..0.
// Result observations set value[x] to 1..1.
* value[x] 0..1
* value[x] ^definition = "Result value (Quantity, string, code, boolean, etc.)"
* valueQuantity 0..1
* valueQuantity ^comment = "If numeric, must include UCUM unit"
* valueQuantity.system 0..1
* valueQuantity.system = "http://unitsofmeasure.org"
* valueQuantity.code 0..1
* valueString 0..1
* valueCodeableConcept 0..1
@@ -59,26 +91,43 @@ Description: "Bangladesh Observation Profile"
* valueDateTime 0..1
* valuePeriod 0..1
// ── Interpretation ────────────────────────────────────────────────────────
// Extensible at base — required was too strict for general observation use.
* interpretation 0..*
* interpretation from http://hl7.org/fhir/ValueSet/observation-interpretation (required)
* interpretation ^definition = "Type of test/measurement"
* interpretation ^comment = "E.g.: High, low, normal, etc"
* interpretation from http://hl7.org/fhir/ValueSet/observation-interpretation (extensible)
* interpretation ^definition = "Assessment of the observation result"
* interpretation ^comment = "E.g. High, Low, Normal"
// ── Method ────────────────────────────────────────────────────────────────
// Extensible at base — required was too strict for general observation use.
* method 0..1
* method from http://hl7.org/fhir/ValueSet/observation-methods (required)
* method from http://hl7.org/fhir/ValueSet/observation-methods (extensible)
* method ^definition = "Type of observation method"
* method ^comment = "E.g.: Technique, Total measurement"
* method ^comment = "E.g. Technique, Total measurement"
// Issued: Date/time result was issued (Optional)
// ── Issued ────────────────────────────────────────────────────────────────
* issued 0..1
* issued ^definition = "Date/time result was issued"
* issued ^definition = "Date/time the result was issued"
// Reference Range: Normal reference range (Optional)
// ── Reference Range ───────────────────────────────────────────────────────
* referenceRange 0..*
* referenceRange ^definition = "Normal reference range"
* referenceRange ^comment = "Optional"
* referenceRange ^definition = "Normal reference range for the observation"
// Specimen: Specimen used for the observation (Optional)
* specimen 0..1
* specimen ^definition = "Specimen used for the observation"
* specimen ^comment = "Optional"
// ── Specimen ──────────────────────────────────────────────────────────────
// MustSupport at base — relevant for lab, pathology, and future imaging.
* specimen 0..1 MS
* specimen ^definition = "Specimen used for this observation"
// ── hasMember ─────────────────────────────────────────────────────────────
// Defined at base to support the panel/component pattern.
// bd-lab-panel-observation constrains this to 1..* typed references.
// bd-lab-result-observation constrains this to 0..0.
* hasMember 0..* MS
* hasMember ^definition = "References to component result Observations that belong to this panel"
* hasMember ^comment = "Used in panel-type Observations. Leaf result Observations must not use hasMember."
// ── derivedFrom ───────────────────────────────────────────────────────────
// Defined at base to support child results referencing their parent panel.
* derivedFrom 0..* MS
* derivedFrom ^definition = "References to the panel Observation from which this result is derived"
* derivedFrom ^comment = "Used in leaf result Observations to reference their parent panel."