Compare commits
18 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| ffd56af45a | |||
| 74f3630a65 | |||
| bef1991b51 | |||
| 28941085dc | |||
| 38dbf02cb2 | |||
| c602dbb933 | |||
| c28beece04 | |||
| f2b6436cc2 | |||
| bc8779fc0e | |||
| 9ad4f66f19 | |||
| d5378088bb | |||
| b7440bcbef | |||
| 77f95d38cc | |||
| 1e2d2de1ba | |||
| 29043e1adf | |||
| ba09d541d4 | |||
| 00e2f5e794 | |||
| 7d5bb47c18 |
@@ -364,7 +364,7 @@ jobs:
|
||||
curl -fL "$URL" -o "$TMPDIR/package.tgz"
|
||||
|
||||
mkdir -p "previous-packages/bd.fhir.core#$PREV_VERSION"
|
||||
tar -xzf "$TMPDIR/package.tgz" -C "previous-packages/bd.fhir.core#$PREV_VERSION"
|
||||
tar -xzf "$TMPDIR/package.tgz" --strip-components=1 -C "previous-packages/bd.fhir.core#$PREV_VERSION"
|
||||
|
||||
echo "Previous package cached:"
|
||||
ls previous-packages
|
||||
@@ -372,26 +372,50 @@ jobs:
|
||||
- name: Build FHIR IG
|
||||
run: |
|
||||
echo "Building FHIR IG version ${{ steps.version.outputs.version }}..."
|
||||
PREV_VERSION=$(ls previous-packages/ 2>/dev/null | grep 'bd.fhir.core#' | sed 's/bd.fhir.core#//' | head -1)
|
||||
|
||||
echo "Injecting previous version into ig.ini: $PREV_VERSION"
|
||||
if [ -n "$PREV_VERSION" ]; then
|
||||
if grep -q "^previous-version" ig.ini; then
|
||||
sed -i "s/^previous-version.*/previous-version = $PREV_VERSION/" ig.ini
|
||||
else
|
||||
# Ensure newline before appending
|
||||
echo "" >> ig.ini
|
||||
echo "previous-version = $PREV_VERSION" >> ig.ini
|
||||
fi
|
||||
fi
|
||||
|
||||
cat ig.ini
|
||||
|
||||
CONTAINER_ID=$(docker create \
|
||||
-v $(pwd)/previous-packages:/previous-packages \
|
||||
hl7fhir/ig-publisher-base:latest \
|
||||
/bin/bash -c "
|
||||
mkdir -p /tmp/build
|
||||
cp -r /home/publisher/ig /tmp/build/ig
|
||||
cd /tmp/build/ig
|
||||
mkdir -p input-cache
|
||||
curl -L -o input-cache/publisher.jar https://supervision.dghs.gov.bd/publisher.jar
|
||||
ls -lh input-cache
|
||||
rm -f package-list.json
|
||||
|
||||
mkdir -p /tmp/build
|
||||
cp -r /home/publisher/ig /tmp/build/ig
|
||||
# NEW: Install previous packages to cache
|
||||
if [ -d /previous-packages ]; then
|
||||
echo 'Installing previous versions to package cache...'
|
||||
for pkg_dir in /previous-packages/bd.fhir.core#*; do
|
||||
if [ -d \"\$pkg_dir\" ]; then
|
||||
PKG_NAME=\$(basename \"\$pkg_dir\")
|
||||
echo \" Installing \$PKG_NAME\"
|
||||
cp -r \"\$pkg_dir\" /home/publisher/.fhir/packages/\$PKG_NAME
|
||||
fi
|
||||
done
|
||||
echo 'Previous versions installed'
|
||||
fi
|
||||
|
||||
cd /tmp/build/ig
|
||||
mkdir -p input-cache
|
||||
curl -L -o input-cache/publisher.jar https://supervision.dghs.gov.bd/publisher.jar
|
||||
ls -lh input-cache
|
||||
rm -f package-list.json
|
||||
|
||||
_genonce.sh
|
||||
")
|
||||
_genonce.sh
|
||||
")
|
||||
|
||||
echo "Container ID: $CONTAINER_ID"
|
||||
|
||||
docker cp "$(pwd)/." "$CONTAINER_ID:/home/publisher/ig/"
|
||||
echo "Mounted FHIR packages:"
|
||||
ls -R previous-packages || echo "No previous packages directory"
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</extension>-->
|
||||
<url value="https://fhir.dghs.gov.bd/core/ImplementationGuide/bd.fhir.core"/>
|
||||
<!-- This version will propagate to all artifacts unless the "propagate-version" extension is overridden -->
|
||||
<version value="0.4.4"/>
|
||||
<version value="0.4.6"/>
|
||||
<name value="BangladeshCoreFHIRIG"/>
|
||||
<title value="Bangladesh Core FHIR Implementation Guide"/>
|
||||
<status value="active"/>
|
||||
|
||||
18
input/fsh/codeSystems/BDMaritalStatusCS.fsh
Normal file
18
input/fsh/codeSystems/BDMaritalStatusCS.fsh
Normal file
@@ -0,0 +1,18 @@
|
||||
//codeSystems/bd-regions.fsh
|
||||
CodeSystem: BDMaritalStatusCS
|
||||
Id: bd-marital-status
|
||||
Title: "Bangladesh Marital Status"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-marital-status"
|
||||
|
||||
* #1 "Unmarried" "Unmarried"
|
||||
* #2 "Married" "Married"
|
||||
* #3 "Widowed" "Widowed"
|
||||
* #4 "Separated" "Separated"
|
||||
* #5 "Divorced" "Divorced"
|
||||
|
||||
ValueSet: BDMaritalStatusVS
|
||||
Id: bd-marital-status-valueset
|
||||
Title: "Bangladesh Marital Status ValueSet"
|
||||
Description: "Marital status value set according to CCDS guideline"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-marital-status-valueset"
|
||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-marital-status
|
||||
@@ -1,7 +1,7 @@
|
||||
Instance: BDOrganizationExample
|
||||
InstanceOf: BDOrganization
|
||||
Usage: #example
|
||||
Title: "Dhaka Medical College Hospital"
|
||||
Title: "Example of a Bangladesh Organization"
|
||||
Description: "Example for DMCH using the Facility Code 10000033"
|
||||
|
||||
// Strictly following 'identifier 1..* MS' from your profile
|
||||
|
||||
@@ -4,36 +4,32 @@ Usage: #example
|
||||
Title: "Example of a Bangladesh Patient"
|
||||
Description: "A minimal example for a patient satisfying name translations and address requirements."
|
||||
|
||||
// Required Name with English and Bangla Translations
|
||||
// Required Name with English and Bangla Translations using separate extensions
|
||||
* name[0].use = #official
|
||||
* name[0].text = "Abul Kashem"
|
||||
* name[0].text.extension[nameEn].extension[lang].valueCode = #en
|
||||
* name[0].text.extension[nameEn].extension[content].valueString = "Abul Kashem"
|
||||
* name[0].text.extension[nameBn].extension[lang].valueCode = #bn
|
||||
* name[0].text.extension[nameBn].extension[content].valueString = "আবুল কাশেম"
|
||||
* name[0].text.extension[nameEn].valueString = "Abul Kashem"
|
||||
* name[0].text.extension[nameBn].valueString = "আবুল কাশেম"
|
||||
|
||||
// Required Gender and BirthDate (for clinical completeness)
|
||||
// Required Gender and BirthDate
|
||||
* gender = #male
|
||||
* birthDate = "1985-05-20"
|
||||
|
||||
// Identifier Slice: NID Example
|
||||
* identifier[NID].type.coding.system = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-identifier-type"
|
||||
* identifier[NID].type.coding.code = #NID
|
||||
* identifier[NID].type.text = "Organization identifier"
|
||||
* identifier[NID].value = "1234567890"
|
||||
|
||||
// --- Address with required extensions ---
|
||||
// Address with required extensions
|
||||
* address[0].use = #home
|
||||
* address[0].line = "House 12, Road 5"
|
||||
* address[0].city = "Dhamrai"
|
||||
* address[0].district = "Dhaka" // This is a native field in your profile
|
||||
* address[0].postalCode = "1350"
|
||||
* address[0].district = "3026"
|
||||
* address[0].country = "BD"
|
||||
|
||||
// The "Division" extension (Must match the name in BDAddress)
|
||||
// Division extension
|
||||
* address[0].extension[division].valueCodeableConcept = https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes#30 "Dhaka"
|
||||
|
||||
// The "Upazilla" extension (Must match the name in BDAddress)
|
||||
* address[0].extension[upazilla].valueCodeableConcept = https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes#3026 "Dhamrai"
|
||||
// Upazilla extension
|
||||
* address[0].extension[upazilla].valueCodeableConcept = https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes#10040028 "Dhamrai"
|
||||
|
||||
// Optional Religion Extension
|
||||
* extension[religion].valueCodeableConcept = https://fhir.dghs.gov.bd/core/CodeSystem/bd-religions-cs#islam "Islam"
|
||||
* extension[religion].valueCodeableConcept = https://fhir.dghs.gov.bd/core/CodeSystem/bd-religions#1 "Islam"
|
||||
6
input/fsh/extensions/BDNameBn.fsh
Normal file
6
input/fsh/extensions/BDNameBn.fsh
Normal file
@@ -0,0 +1,6 @@
|
||||
Extension: BDNameBn
|
||||
Id: bd-name-bn
|
||||
Title: "Bangla Name"
|
||||
Description: "Bangla translation of the patient name"
|
||||
Context: HumanName.text
|
||||
* value[x] only string
|
||||
6
input/fsh/extensions/BDNameEn.fsh
Normal file
6
input/fsh/extensions/BDNameEn.fsh
Normal file
@@ -0,0 +1,6 @@
|
||||
Extension: BDNameEn
|
||||
Id: bd-name-en
|
||||
Title: "English Name"
|
||||
Description: "English translation of the patient name"
|
||||
Context: HumanName.text
|
||||
* value[x] only string
|
||||
@@ -36,7 +36,7 @@ FHIR hasMember pattern:
|
||||
// ── Code ──────────────────────────────────────────────────────────────────
|
||||
// Bound to BD LOINC Lab Panels ValueSet — orderable panel codes only.
|
||||
* code 1..1 MS
|
||||
* code from https://fhir.dghs.gov.bd/core/ValueSet/loinc-lab-panels (extensible)
|
||||
* code from https://fhir.dghs.gov.bd/core/ValueSet/loinc-lab-panels (required)
|
||||
* code ^definition = "LOINC panel/order code for this laboratory panel"
|
||||
* code ^comment = "E.g. 58410-2 CBC panel, 24323-8 Comprehensive metabolic panel"
|
||||
|
||||
|
||||
@@ -39,7 +39,7 @@ Coded results (Ord/Nom scale):
|
||||
// ── Code ──────────────────────────────────────────────────────────────────
|
||||
// Bound to BD LOINC Lab Results ValueSet — leaf result codes only.
|
||||
* code 1..1 MS
|
||||
* code from https://fhir.dghs.gov.bd/core/ValueSet/loinc-lab-results (extensible)
|
||||
* code from https://fhir.dghs.gov.bd/core/ValueSet/loinc-lab-results (required)
|
||||
* code ^definition = "LOINC result/component code for this individual laboratory result"
|
||||
* code ^comment = "E.g. 718-7 Hemoglobin, 2160-0 Creatinine"
|
||||
|
||||
@@ -68,7 +68,7 @@ Coded results (Ord/Nom scale):
|
||||
|
||||
// Coded results (Ord/Nom scale) — bound to LOINC Answer Lists
|
||||
* valueCodeableConcept MS
|
||||
* valueCodeableConcept from https://fhir.dghs.gov.bd/core/ValueSet/loinc-answer-lists (extensible)
|
||||
* valueCodeableConcept from https://fhir.dghs.gov.bd/core/ValueSet/loinc-answer-lists (required)
|
||||
* valueCodeableConcept ^comment = "Use for ordinal or nominal (Ord/Nom scale) results."
|
||||
|
||||
// ── hasMember ─────────────────────────────────────────────────────────────
|
||||
|
||||
@@ -43,7 +43,7 @@ Planned derived profiles (v0.5.0+):
|
||||
// (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 (extensible)
|
||||
* code from http://hl7.org/fhir/ValueSet/observation-codes (example)
|
||||
* code ^definition = "Type of observation / test / measurement"
|
||||
* code ^comment = "E.g. Hb, RBS, CBC. Child profiles bind to specific ValueSets."
|
||||
|
||||
|
||||
@@ -16,24 +16,10 @@ Patient profile for Bangladesh.
|
||||
* name 1..1 MS
|
||||
* name.use 1..1
|
||||
* name.use = #official (exactly)
|
||||
|
||||
* name.text 1..1 MS
|
||||
|
||||
// Slice translation extensions by pattern on the lang sub-extension
|
||||
* name.text.extension ^slicing.discriminator.type = #pattern
|
||||
* name.text.extension ^slicing.discriminator.path = "extension('lang').value"
|
||||
* name.text.extension ^slicing.rules = #open
|
||||
* name.text.extension ^slicing.ordered = false
|
||||
* name.text.extension 2..* MS
|
||||
* name.text.extension contains
|
||||
$translation named nameEn 1..1 MS and
|
||||
$translation named nameBn 1..1 MS
|
||||
|
||||
* name.text.extension[nameEn].extension[lang].valueCode = #en (exactly)
|
||||
* name.text.extension[nameEn].extension[content] 1..1 MS
|
||||
|
||||
* name.text.extension[nameBn].extension[lang].valueCode = #bn (exactly)
|
||||
* name.text.extension[nameBn].extension[content] 1..1 MS
|
||||
BDNameEn named nameEn 1..1 MS and
|
||||
BDNameBn named nameBn 0..1 MS
|
||||
|
||||
//////////////////////
|
||||
|
||||
@@ -46,7 +32,7 @@ Patient profile for Bangladesh.
|
||||
* identifier contains
|
||||
NID 0..1 and
|
||||
BRN 0..1 and
|
||||
UHID 0..1
|
||||
UHID 1..1
|
||||
|
||||
* identifier[NID].system = "http://dghs.gov.bd/identifier/nid"
|
||||
* identifier[NID].type.coding.code = #NID
|
||||
@@ -89,7 +75,9 @@ Patient profile for Bangladesh.
|
||||
|
||||
|
||||
// Require a value from a specific value set be used for an element
|
||||
* maritalStatus from http://hl7.org/fhir/ValueSet/marital-status
|
||||
// * maritalStatus from http://hl7.org/fhir/ValueSet/marital-status
|
||||
* maritalStatus 0..1 MS
|
||||
* maritalStatus from BDMaritalStatusVS
|
||||
|
||||
// Restrict something[x] to a specific type -- in this case only allowing dateTime to be used
|
||||
* deceased[x] only dateTime
|
||||
@@ -100,3 +88,19 @@ Patient profile for Bangladesh.
|
||||
|
||||
* address 1..* MS
|
||||
* address only BDAddress
|
||||
|
||||
// ── Photo ─────────────────────────────────────────────────────────────────
|
||||
// Optional patient photo — may be used for identity verification at point of care.
|
||||
* photo 0..* MS
|
||||
* photo ^definition = "Patient photo for identity verification"
|
||||
* photo ^comment = "Attach a photo of the patient when available. Use image/jpeg or image/png."
|
||||
|
||||
// ── Link to RelatedPerson ─────────────────────────────────────────────────
|
||||
// At least one RelatedPerson link is required — father, mother, or guardian.
|
||||
// The referenced RelatedPerson must carry a BD identifier and a relationship.
|
||||
* link 0..* MS
|
||||
* link ^definition = "Link to a RelatedPerson resource representing father, mother, or guardian"
|
||||
* link ^comment = "At least one RelatedPerson with BD identifier and relationship is required."
|
||||
* link.other 1..1 MS
|
||||
* link.other only Reference(BDRelatedPerson)
|
||||
* link.type = #seealso (exactly)
|
||||
55
input/fsh/profile/BDRelatedPerson.fsh
Normal file
55
input/fsh/profile/BDRelatedPerson.fsh
Normal file
@@ -0,0 +1,55 @@
|
||||
Profile: BDRelatedPerson
|
||||
Id: bd-related-person
|
||||
Parent: RelatedPerson
|
||||
Title: "Related Person Profile for Bangladesh"
|
||||
Description: """
|
||||
Profile for RelatedPerson in Bangladesh.
|
||||
Used to represent father, mother, or guardian of a patient.
|
||||
- Identifier is mandatory and must use BD identifier systems (NID, BRN, UHID)
|
||||
- Relationship is mandatory
|
||||
- Name is mandatory
|
||||
"""
|
||||
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-related-person"
|
||||
|
||||
// ── Identifier ────────────────────────────────────────────────────────────
|
||||
// Mandatory BD identifier — NID, BRN, or UHID
|
||||
* identifier 1..* MS
|
||||
* identifier ^slicing.discriminator.type = #value
|
||||
* identifier ^slicing.discriminator.path = "system"
|
||||
* identifier ^slicing.rules = #open
|
||||
* identifier ^slicing.ordered = false
|
||||
* identifier contains
|
||||
NID 0..1 and
|
||||
BRN 0..1 and
|
||||
UHID 0..1
|
||||
|
||||
* identifier[NID].system = "http://dghs.gov.bd/identifier/nid"
|
||||
* identifier[NID].type.coding.code = #NID
|
||||
* identifier[NID].type.coding.system = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-identifier-type"
|
||||
* identifier[NID].type.text = "Organization identifier"
|
||||
|
||||
* identifier[BRN].system = "http://dghs.gov.bd/identifier/brn"
|
||||
* identifier[BRN].type.coding.code = #BRN
|
||||
* identifier[BRN].type.coding.system = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-identifier-type"
|
||||
* identifier[BRN].type.text = "Organization identifier"
|
||||
|
||||
* identifier[UHID].system = "http://dghs.gov.bd/identifier/uhid"
|
||||
* identifier[UHID].type.coding.code = #UHID
|
||||
* identifier[UHID].type.coding.system = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-identifier-type"
|
||||
* identifier[UHID].type.text = "Organization identifier"
|
||||
|
||||
// ── Relationship ──────────────────────────────────────────────────────────
|
||||
// Mandatory — must specify the relationship to the patient
|
||||
* relationship 1..* MS
|
||||
* relationship ^definition = "Relationship of this person to the patient"
|
||||
* relationship ^comment = "E.g. FTH (father), MTH (mother), GUARD (guardian) from v3-RoleCode"
|
||||
|
||||
// ── Name ──────────────────────────────────────────────────────────────────
|
||||
* name 1..1 MS
|
||||
* name ^definition = "Name of the related person"
|
||||
|
||||
// ── Patient ───────────────────────────────────────────────────────────────
|
||||
* patient 1..1 MS
|
||||
* patient only Reference(BDPatient)
|
||||
* patient ^definition = "The patient this related person is associated with"
|
||||
@@ -11,6 +11,22 @@
|
||||
"status": "ci-build",
|
||||
"current": true
|
||||
},
|
||||
{
|
||||
"version": "0.4.5",
|
||||
"date": "2026-04-10",
|
||||
"desc": "minor bug fixes",
|
||||
"path": "https://fhir.dghs.gov.bd/core/0.4.5/",
|
||||
"status": "trial-use",
|
||||
"sequence": "STU 1"
|
||||
},
|
||||
{
|
||||
"version": "0.4.4",
|
||||
"date": "2026-04-06",
|
||||
"desc": "minor bug fixes",
|
||||
"path": "https://fhir.dghs.gov.bd/core/0.4.4/",
|
||||
"status": "trial-use",
|
||||
"sequence": "STU 1"
|
||||
},
|
||||
{
|
||||
"version": "0.4.3",
|
||||
"date": "2026-04-06",
|
||||
|
||||
@@ -8,6 +8,33 @@
|
||||
<p>
|
||||
By adopting international FHIR standards, this guide helps ensure that patient data can flow smoothly between hospitals, clinics, and national programs, while also enabling future cross-border health information exchange.
|
||||
</p>
|
||||
<hr/>
|
||||
|
||||
<h4>FHIR Sandbox Server</h4>
|
||||
|
||||
<p>
|
||||
A live sandbox environment is available for testing and development based on this implementation guide.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
<b>Base URL:</b><br/>
|
||||
<a href="https://sandbox.fhir.dghs.gov.bd/fhir" target="_blank">
|
||||
https://sandbox.fhir.dghs.gov.bd/fhir
|
||||
</a>
|
||||
</p>
|
||||
|
||||
<p>
|
||||
This sandbox supports HL7 FHIR R4 and implements the Bangladesh Core FHIR profiles and terminology bindings.
|
||||
It is intended for testing, validation, and system integration only.
|
||||
</p>
|
||||
<ul>
|
||||
<li><a href="https://sandbox.fhir.dghs.gov.bd/fhir/metadata" target="_blank" rel="noopener noreferrer">Capability Statement</a></li>
|
||||
<li><a href="https://sandbox.fhir.dghs.gov.bd" target="_blank" rel="noopener noreferrer">FHIR Tester UI</a></li>
|
||||
</ul>
|
||||
<p>
|
||||
Developers are encouraged to validate their implementations against this sandbox before moving to production environments.
|
||||
</p>
|
||||
<hr/>
|
||||
<a name="technical"> </a>
|
||||
<h3>Technical Overview</h3>
|
||||
<p>
|
||||
|
||||
@@ -11,6 +11,22 @@
|
||||
"status": "ci-build",
|
||||
"current": true
|
||||
},
|
||||
{
|
||||
"version": "0.4.5",
|
||||
"date": "2026-04-10",
|
||||
"desc": "minor bug fixes",
|
||||
"path": "https://fhir.dghs.gov.bd/core/0.4.5/",
|
||||
"status": "trial-use",
|
||||
"sequence": "STU 1"
|
||||
},
|
||||
{
|
||||
"version": "0.4.4",
|
||||
"date": "2026-04-06",
|
||||
"desc": "minor bug fixes",
|
||||
"path": "https://fhir.dghs.gov.bd/core/0.4.4/",
|
||||
"status": "trial-use",
|
||||
"sequence": "STU 1"
|
||||
},
|
||||
{
|
||||
"version": "0.4.3",
|
||||
"date": "2026-04-06",
|
||||
|
||||
Reference in New Issue
Block a user