Prepare 0.3.0: ICD-11 MMS integration
This commit is contained in:
@@ -1,8 +0,0 @@
|
||||
Profile: BDConditionProfile
|
||||
Parent: Condition
|
||||
Id: bd-condition
|
||||
Title: "ICD 11"
|
||||
Description: "Condition coded with ICD-11"
|
||||
|
||||
* code 1..1 MS
|
||||
* code from BDConditionICD11VS (preferred)
|
||||
68
input/fsh/extensions/icd11ClusterExpression.fsh
Normal file
68
input/fsh/extensions/icd11ClusterExpression.fsh
Normal file
@@ -0,0 +1,68 @@
|
||||
// ============================================================
|
||||
// icd11ClusterExpression.fsh
|
||||
// Extension for ICD-11 postcoordinated cluster expressions
|
||||
// Context: Coding (broad — usable across all ICD-11 coded elements)
|
||||
// ============================================================
|
||||
|
||||
Extension: ICD11ClusterExpression
|
||||
Id: icd11-cluster-expression
|
||||
Title: "ICD-11 Cluster Expression"
|
||||
Description: """
|
||||
Carries a postcoordinated ICD-11 cluster expression as a single string
|
||||
on a Coding element where the stem code alone is insufficient to fully
|
||||
represent the clinical concept.
|
||||
|
||||
A cluster expression combines a stem code with one or more satellite
|
||||
codes using the & operator (combination) or / operator (specificity).
|
||||
Example: NC72.Z&XK8G&XJ7ZH&XJ7YM
|
||||
- NC72.Z — stem: Fracture of femur, unspecified
|
||||
- XK8G — satellite: laterality
|
||||
- XJ7ZH — satellite: fracture subtype
|
||||
- XJ7YM — satellite: fracture open or closed
|
||||
|
||||
Usage rules:
|
||||
- SHALL only be present when the expression contains at least one
|
||||
satellite code joined by & or / operators.
|
||||
- Single stem codes SHALL be represented in Coding.code only and
|
||||
validated via OCL $validate-code. The cluster validator at
|
||||
https://icd11.dghs.gov.bd/cluster/validate explicitly rejects
|
||||
stem-only expressions.
|
||||
- The stem code in Coding.code SHALL match the leading stem code
|
||||
in this expression string.
|
||||
- Satellite codes in the cluster expression are exempt from the
|
||||
Diagnosis/Finding class restriction that applies to stem codes
|
||||
in Condition.code.
|
||||
- Cluster expressions SHALL be validated against the Bangladesh
|
||||
ICD-11 Cluster Validator at https://icd11.dghs.gov.bd/cluster/validate
|
||||
prior to submission to the HIE.
|
||||
|
||||
Cluster validator endpoint:
|
||||
POST https://icd11.dghs.gov.bd/cluster/validate
|
||||
Body: { "expression": "NC72.Z&XK8G&XJ7ZH&XJ7YM" }
|
||||
|
||||
This extension is not MustSupport and is not mandatory. It is present
|
||||
only when postcoordination is clinically required. Cluster expressions
|
||||
are typically sourced from the WHO Electronic Coding Tool (ECT) at the
|
||||
point of care.
|
||||
"""
|
||||
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/icd11-cluster-expression"
|
||||
* ^status = #active
|
||||
* ^experimental = false
|
||||
* ^publisher = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||
* ^contact.name = "DGHS Health Informatics Unit"
|
||||
* ^contact.telecom.system = #url
|
||||
* ^contact.telecom.value = "https://dghs.gov.bd"
|
||||
* ^jurisdiction = urn:iso:std:iso:3166#BD "Bangladesh"
|
||||
* ^context[+].type = #element
|
||||
* ^context[=].expression = "Coding"
|
||||
|
||||
* value[x] only string
|
||||
* valueString 1..1
|
||||
* valueString ^short = "ICD-11 postcoordinated cluster expression string"
|
||||
* valueString ^definition = """
|
||||
The full postcoordinated cluster expression, including the stem code and
|
||||
all satellite codes joined by & or / operators. Example:
|
||||
NC72.Z&XK8G&XJ7ZH&XJ7YM. The stem code in this string SHALL match
|
||||
Coding.code on the parent Coding element.
|
||||
"""
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"resourceType": "StructureDefinition",
|
||||
<<<<<<< HEAD
|
||||
"id": "bd-Immunization",
|
||||
"url": "http://example.org/StructureDefinition/bd-Immunization",
|
||||
"version": "1.0.0",
|
||||
"name": "BDImmunizationProfile",
|
||||
"title": "Immunization Profile for Bangladesh",
|
||||
"description": "Bangladesh Immunization Profile",
|
||||
=======
|
||||
"id": "bd-immunization",
|
||||
"url": "https://fhir.dghs.gov.bd/core/identifier/bd-immunization",
|
||||
"version": "1.0.0",
|
||||
"name": "BDImmunizationProfile",
|
||||
"title": "Patient Immunization Profile for Bangladesh",
|
||||
"description": "Patients Immunization Bangladesh Standard",
|
||||
>>>>>>> 1c45affa520e64b3b9efc307d9116ff138171fa5
|
||||
"fhirVersion": "4.0.1",
|
||||
"kind": "resource",
|
||||
"abstract": false,
|
||||
"type": "Immunization",
|
||||
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Immunization",
|
||||
"derivation": "constraint",
|
||||
"differential": {
|
||||
"element": [
|
||||
{
|
||||
"id": "Immunization.identifier",
|
||||
"path": "Immunization.identifier",
|
||||
<<<<<<< HEAD
|
||||
"short": "Unique identifier",
|
||||
=======
|
||||
"short": "Identifier",
|
||||
>>>>>>> 1c45affa520e64b3b9efc307d9116ff138171fa5
|
||||
"definition": "Unique identifier for the vaccination event",
|
||||
"min": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
63
input/fsh/namingSystems/ICD11MMSNamingSystem.fsh
Normal file
63
input/fsh/namingSystems/ICD11MMSNamingSystem.fsh
Normal file
@@ -0,0 +1,63 @@
|
||||
// ============================================================
|
||||
// ICD11MMSNamingSystem.fsh
|
||||
// NamingSystem for ICD-11 MMS in the Bangladesh national context
|
||||
// Canonical authority: WHO
|
||||
// National resolver: OCL at https://tr.ocl.dghs.gov.bd
|
||||
// ============================================================
|
||||
|
||||
Instance: icd11-mms-bd
|
||||
InstanceOf: NamingSystem
|
||||
Usage: #definition
|
||||
Title: "ICD-11 MMS NamingSystem — Bangladesh"
|
||||
Description: """
|
||||
Declares the ICD-11 Mortality and Morbidity Statistics (MMS) coding system
|
||||
as a known and supported terminology within the Bangladesh national health
|
||||
information infrastructure.
|
||||
|
||||
Canonical system URI: http://id.who.int/icd/release/11/mms
|
||||
Canonical authority: World Health Organization (WHO)
|
||||
|
||||
Preferred code form: short stem codes (e.g. 1A00, NC72.Z).
|
||||
Linearization URIs are not used as code identifiers in this IG.
|
||||
|
||||
National terminology resolver (OCL):
|
||||
https://tr.ocl.dghs.gov.bd
|
||||
|
||||
Supported OCL operations (use `system=` parameter, not `url=`):
|
||||
- $validate-code: https://tr.ocl.dghs.gov.bd/api/fhir/CodeSystem/$validate-code
|
||||
?system=http://id.who.int/icd/release/11/mms&code={code}
|
||||
- $lookup: https://tr.ocl.dghs.gov.bd/api/fhir/CodeSystem/$lookup
|
||||
?system=http://id.who.int/icd/release/11/mms&code={code}
|
||||
|
||||
$expand is not supported — known OCL limitation.
|
||||
|
||||
Version 2025-01 is active in the national OCL instance with 36,941
|
||||
imported concepts. The OCL resolver is an internal national service;
|
||||
vendors do not interact with it directly. All vendor submissions are
|
||||
validated at the HIE boundary via the Bangladesh ICD-11 Cluster Validator
|
||||
at https://icd11.dghs.gov.bd/cluster/validate.
|
||||
"""
|
||||
|
||||
* name = "ICD11MMSBangladesh"
|
||||
* status = #active
|
||||
* kind = #codesystem
|
||||
* date = "2025-01-01"
|
||||
* publisher = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||
* contact.name = "DGHS Health Informatics Unit"
|
||||
* contact.telecom.system = #url
|
||||
* contact.telecom.value = "https://dghs.gov.bd"
|
||||
* jurisdiction = urn:iso:std:iso:3166#BD "Bangladesh"
|
||||
* responsible = "World Health Organization (WHO)"
|
||||
|
||||
// Primary identifier — canonical system URI (WHO authority)
|
||||
* uniqueId[+].type = #uri
|
||||
* uniqueId[=].value = "http://id.who.int/icd/release/11/mms"
|
||||
* uniqueId[=].preferred = true
|
||||
* uniqueId[=].comment = "Canonical ICD-11 MMS system URI. Canonical authority is WHO."
|
||||
* uniqueId[=].period.start = "2025-01-01"
|
||||
|
||||
// Secondary identifier — national OCL source locator (machine-discoverable, not canonical)
|
||||
* uniqueId[+].type = #uri
|
||||
* uniqueId[=].value = "https://tr.ocl.dghs.gov.bd/orgs/MoHFW/sources/ICD-11-MMS/"
|
||||
* uniqueId[=].preferred = false
|
||||
* uniqueId[=].comment = "National terminology resolver — Bangladesh OCL instance. Not the canonical system URI."
|
||||
65
input/fsh/profile/BDConditionProfile.fsh
Normal file
65
input/fsh/profile/BDConditionProfile.fsh
Normal file
@@ -0,0 +1,65 @@
|
||||
// ============================================================
|
||||
// BDConditionProfile.fsh
|
||||
// BD-Core Condition profile with mandatory ICD-11 MMS stem slice
|
||||
// Binding: Diagnosis and Finding class concepts only
|
||||
// Runtime enforcement via OCL ValueSet $validate-code
|
||||
// ============================================================
|
||||
|
||||
Profile: BDConditionProfile
|
||||
Parent: Condition
|
||||
Id: bd-condition
|
||||
Title: "BD Core Condition Profile (ICD-11)"
|
||||
Description: """
|
||||
Condition resource coded with ICD-11 MMS, restricted to Diagnosis and
|
||||
Finding class concepts. Defined in the Bangladesh Core FHIR Implementation
|
||||
Guide (BD-Core-FHIR-IG) published by DGHS/MoHFW.
|
||||
"""
|
||||
|
||||
* code 1..1 MS
|
||||
* code from bd-condition-icd11-diagnosis-valueset (preferred)
|
||||
* code ^comment = """
|
||||
Condition.code SHALL contain at least one coding conforming to the
|
||||
coding[stem] slice with system = http://id.who.int/icd/release/11/mms.
|
||||
|
||||
Stem code rules:
|
||||
- The stem code SHALL be a Diagnosis or Finding class ICD-11 MMS concept.
|
||||
- This restriction is enforced at runtime via OCL ValueSet $validate-code
|
||||
against the Bangladesh ICD-11 MMS Condition ValueSet.
|
||||
- Stem-only codes SHALL be validated via OCL $validate-code.
|
||||
- Substance, Organism, Device, Anatomy, and Misc class concepts SHALL NOT
|
||||
appear as standalone stem codes in Condition.code.
|
||||
|
||||
Cluster expression rules:
|
||||
- When a concept requires postcoordination, the full cluster expression
|
||||
SHALL be carried in the icd11-cluster-expression extension on coding[stem].
|
||||
- The icd11-cluster-expression extension SHALL only be present when the
|
||||
expression contains at least one satellite code joined by & or / operators.
|
||||
- Satellite codes in the cluster expression are exempt from the
|
||||
Diagnosis/Finding class restriction.
|
||||
- Cluster expressions SHALL be validated against the Bangladesh ICD-11
|
||||
Cluster Validator at https://icd11.dghs.gov.bd/cluster/validate
|
||||
prior to submission to the HIE.
|
||||
|
||||
Additional local codings are permitted alongside the mandatory ICD-11 stem
|
||||
(slicing is open). Cluster expressions are typically sourced from the WHO
|
||||
Electronic Coding Tool (ECT) at the point of care.
|
||||
"""
|
||||
|
||||
* code.coding ^slicing.discriminator.type = #value
|
||||
* code.coding ^slicing.discriminator.path = "system"
|
||||
* code.coding ^slicing.rules = #open
|
||||
* code.coding ^slicing.description = "Slice requiring exactly one ICD-11 MMS stem code. Additional local codings permitted."
|
||||
|
||||
* code.coding contains stem 1..1
|
||||
* code.coding[stem] ^short = "Mandatory ICD-11 MMS stem code"
|
||||
* code.coding[stem] ^definition = """
|
||||
Exactly one ICD-11 MMS stem code is required. The stem code SHALL be a
|
||||
Diagnosis or Finding class concept. When the condition requires
|
||||
postcoordination, the full cluster expression is carried in the
|
||||
icd11-cluster-expression extension on this coding element.
|
||||
"""
|
||||
* code.coding[stem].system 1..1
|
||||
* code.coding[stem].system = "http://id.who.int/icd/release/11/mms" (exactly)
|
||||
* code.coding[stem].code 1..1
|
||||
* code.coding[stem].extension contains
|
||||
https://fhir.dghs.gov.bd/core/StructureDefinition/icd11-cluster-expression named clusterExpression 0..1
|
||||
62
input/fsh/valueSets/BDConditionICD11DiagnosisVS.fsh
Normal file
62
input/fsh/valueSets/BDConditionICD11DiagnosisVS.fsh
Normal file
@@ -0,0 +1,62 @@
|
||||
// ============================================================
|
||||
// BDConditionICD11DiagnosisVS.fsh
|
||||
// ICD-11 MMS ValueSet restricted to Diagnosis and Finding classes
|
||||
// Binding target for Condition.code in BDConditionProfile
|
||||
// Empty stub — runtime enforcement via OCL $validate-code
|
||||
// $expand not available — suppressed in sushi-config.yaml
|
||||
// ============================================================
|
||||
|
||||
ValueSet: BDConditionICD11DiagnosisVS
|
||||
Id: bd-condition-icd11-diagnosis-valueset
|
||||
Title: "Bangladesh ICD-11 MMS Condition ValueSet (Diagnosis and Finding)"
|
||||
Description: """
|
||||
ICD-11 MMS concepts restricted to the Diagnosis (14,071) and Finding (5,590)
|
||||
concept classes, totalling 19,661 concepts as of version 2025-01.
|
||||
|
||||
This ValueSet is the binding target for Condition.code in the BD-Core
|
||||
Condition profile. Substance, Organism, Device, Anatomy, and Misc class
|
||||
concepts are excluded and SHALL NOT appear as standalone stem codes in
|
||||
Condition.code. This restriction applies to stem codes only — satellite
|
||||
codes carried in the icd11-cluster-expression extension are exempt.
|
||||
|
||||
This ValueSet is an empty stub. No compose block is declared because
|
||||
$expand is not supported by the national OCL terminology server and
|
||||
no machine-executable filter for concept_class is available at the
|
||||
IG layer. The compose would be nominal only and is omitted to avoid
|
||||
misrepresenting machine-executable semantics.
|
||||
|
||||
The ValueSet is hosted in OCL as a collection with 19,661 explicit
|
||||
concept references (Diagnosis and Finding classes only). Runtime
|
||||
enforcement is via OCL ValueSet $validate-code:
|
||||
|
||||
GET https://tr.ocl.dghs.gov.bd/api/fhir/ValueSet/$validate-code
|
||||
?url=https://fhir.dghs.gov.bd/core/ValueSet/bd-condition-icd11-diagnosis-valueset
|
||||
&system=http://id.who.int/icd/release/11/mms
|
||||
&code={code}
|
||||
|
||||
Confirmed behaviour:
|
||||
- Diagnosis class (e.g. 1A00): accepted
|
||||
- Finding class: accepted
|
||||
- Device class (e.g. XD7EB1): rejected
|
||||
- Substance class (e.g. XM6RB2): rejected
|
||||
|
||||
At the HAPI FHIR layer, enforcement is via RemoteTerminologyServiceValidationSupport
|
||||
configured to call OCL. HAPI FHIR deployment is a known gap to be closed
|
||||
before vendor onboarding.
|
||||
|
||||
VERSION UPGRADES:
|
||||
Upgrading to a new ICD-11 MMS release requires re-running
|
||||
populate_condition_valueset.py. Automated via version_upgrade.py.
|
||||
"""
|
||||
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-condition-icd11-diagnosis-valueset"
|
||||
* ^status = #active
|
||||
* ^experimental = false
|
||||
* ^version = "2025-01"
|
||||
* ^publisher = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||
* ^contact.name = "DGHS Health Informatics Unit"
|
||||
* ^contact.telecom.system = #url
|
||||
* ^contact.telecom.value = "https://dghs.gov.bd"
|
||||
* ^jurisdiction = urn:iso:std:iso:3166#BD "Bangladesh"
|
||||
* ^copyright = "ICD-11 is copyright © World Health Organization. Used under licence."
|
||||
* ^immutable = false
|
||||
@@ -1,6 +0,0 @@
|
||||
ValueSet: BDConditionICD11VS
|
||||
Id: bd-condition-icd11-valueset
|
||||
Title: "Bangladesh ICD-11 MMS ValueSet"
|
||||
Description: "ValueSet that includes the ICD-11 MMS CodeSystem for Condition.code"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-condition-icd11-valueset"
|
||||
* include codes from system http://id.who.int/icd/release/11/mms
|
||||
Reference in New Issue
Block a user