Compare commits
140 Commits
634e7e28eb
...
v0.4.1
| Author | SHA1 | Date | |
|---|---|---|---|
| f86f4a7f2c | |||
| 03d49f4eb6 | |||
| ad91d12875 | |||
| 3363403c8e | |||
| 311a853c31 | |||
| f8a13f1b19 | |||
| db8c1e2119 | |||
| 8147d76ebd | |||
| 39fe848fd4 | |||
| 593e8cbb11 | |||
| 55aa2340ad | |||
| 01c8e2b506 | |||
| 1c1b08c8a1 | |||
| adc2594bfb | |||
| 5bd6b13f7b | |||
| 6a9ca5639e | |||
| 3fc1acafe4 | |||
| 7761cd2b32 | |||
| df22875684 | |||
| 7d4ade03d8 | |||
| 3e91ff7e59 | |||
| 6e4cceae2e | |||
| 68a428f084 | |||
| 3f62ec237b | |||
| d88695dd8b | |||
| e9561f15b3 | |||
| 35c504e842 | |||
| 89fe6688b7 | |||
| 870747d14a | |||
| 65758559cd | |||
| 677de56269 | |||
| 7fb7e5f73e | |||
| 15247c1170 | |||
| 3d3e0c580d | |||
| 54704c7404 | |||
| 7cffa7f5d9 | |||
| a8ada6f73b | |||
| 278864ac6d | |||
| 5619336d09 | |||
| a0f0719f9c | |||
| 49b3d72cb2 | |||
| 4813f63da5 | |||
| 04ef3b0b55 | |||
| 25f0017595 | |||
| a5e39b94d3 | |||
| 9968c28e5c | |||
| 7125b57aa2 | |||
| 958eba6c44 | |||
| fcb5002641 | |||
| b7c824b34a | |||
| e8cf5ab9be | |||
| c35bc8e8a4 | |||
| c2e7119335 | |||
| c6903044aa | |||
| aca893377c | |||
| ccf6fef643 | |||
| c80f2f3a40 | |||
| 804a7ff3d6 | |||
| db2f074cbe | |||
| 7731328402 | |||
| a5d41e88de | |||
| 5ca0ffdd86 | |||
| d82e428e24 | |||
| dc43651043 | |||
| 2fc782a082 | |||
| 2db03cd2cc | |||
| 323abf04dc | |||
| e3de38a794 | |||
| 9ed33227d3 | |||
| 8ddb62ab26 | |||
| c2be28e714 | |||
| dee47229d7 | |||
| a60c2c6c21 | |||
| b759890259 | |||
| c9cf4c5157 | |||
| 45505bd4b8 | |||
| 3e1f6979b5 | |||
| c39615ff85 | |||
| 06d3a6ef13 | |||
| 8c8b8f032c | |||
| 4d24e3f30c | |||
| 57aba6ddc6 | |||
| 665ba07e37 | |||
| 18f71a6a04 | |||
| 83ad838fc4 | |||
| 63ca3fa44f | |||
| fdca2f9c3b | |||
| 3b48bd79e2 | |||
| b620db17d5 | |||
| f2201f4da8 | |||
| b3cf356b32 | |||
| 7cb360b1d2 | |||
| 6beb9318fe | |||
| 423d1c271f | |||
| 53190dddd6 | |||
| 5205c06bab | |||
| b89620b4ed | |||
| c195390fe7 | |||
| e6cb213212 | |||
| 0bce070ae2 | |||
| 9bf4b2d457 | |||
| 68c748b06e | |||
| 2b2ec21c24 | |||
| 80c870f8a0 | |||
| 5da54fa665 | |||
| 39717d3c1d | |||
|
|
777f2b3a0d | ||
|
|
791dda3931 | ||
|
|
205f3e58a1 | ||
|
|
c5e0a7d039 | ||
|
|
3297b88035 | ||
| 18c7029f91 | |||
| 0b3ed58124 | |||
| ea9714686d | |||
| 96c7f1038e | |||
| debd34938f | |||
| 6f9ef8f32c | |||
| 9f903f8971 | |||
| e96406dd66 | |||
| 7c70cbd667 | |||
| 441ba94e45 | |||
| 56353fb6f0 | |||
| 7bfa246e8e | |||
| 575386df1b | |||
| 96448cd6f6 | |||
| 1c19dd476c | |||
| 334dc16c70 | |||
| 41ba52b5e8 | |||
| a5fbd82834 | |||
| 8137b9d6f1 | |||
| 5840b58bca | |||
| ee5e028591 | |||
| 532f5dd501 | |||
| 4c5bee4468 | |||
| def389e7fc | |||
| 03e2f6d659 | |||
| cc8b5fb0d0 | |||
| 5bd5bdced4 | |||
| f3a7939168 | |||
| 95f596780c |
@@ -1,283 +1,660 @@
|
|||||||
name: FHIR IG CI/CD Pipeline
|
name: FHIR IG CI/CD Pipeline with Version Persistence
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches: [ main, develop ]
|
tags:
|
||||||
|
- 'v*.*.*'
|
||||||
pull_request:
|
pull_request:
|
||||||
branches: [ main ]
|
branches: [ main ]
|
||||||
|
|
||||||
env:
|
env:
|
||||||
REGISTRY: git.dghs.gov.bd # Replace with your Gitea instance
|
REGISTRY: git.dghs.gov.bd
|
||||||
IMAGE_NAME: gitadmin/bd-core-fhir-ig # Replace with your image name
|
IMAGE_NAME: gitadmin/bd-core-fhir-ig
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
build-ig:
|
build-ig:
|
||||||
runs-on: ubuntu-latest
|
runs-on: fhir-runner
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Checkout repository
|
||||||
uses: actions/checkout@v3
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Full history for proper IG building
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Install Docker CLI
|
- name: Extract version from IG
|
||||||
run: |
|
id: version
|
||||||
apt-get update
|
run: |
|
||||||
apt-get install -y docker.io
|
VERSION=$(grep -oP '<version value="\K[^"]+' input/bd.fhir.core.xml | head -1)
|
||||||
docker --version
|
|
||||||
|
|
||||||
- name: Setup Docker Buildx
|
if [ -z "$VERSION" ]; then
|
||||||
uses: docker/setup-buildx-action@v3
|
echo "ERROR: Could not extract version from ImplementationGuide XML"
|
||||||
with:
|
exit 1
|
||||||
install: true
|
fi
|
||||||
|
|
||||||
|
echo "Extracted version: $VERSION"
|
||||||
|
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||||
|
|
||||||
- name: Build FHIR IG (Copy In/Out)
|
if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
|
||||||
run: |
|
BUILD_TYPE="release"
|
||||||
echo "Building FHIR IG using copy approach..."
|
TAG_VERSION="${GITHUB_REF#refs/tags/v}"
|
||||||
|
|
||||||
# Create a container (don't start yet)
|
if [ "$TAG_VERSION" != "$VERSION" ]; then
|
||||||
CONTAINER_ID=$(docker create \
|
echo "ERROR: Git tag version ($TAG_VERSION) doesn't match IG version ($VERSION)"
|
||||||
hl7fhir/ig-publisher-base:latest \
|
exit 1
|
||||||
/bin/bash -c "cp -r /home/publisher/ig /tmp/build && cd /tmp/build && _updatePublisher.sh -y && _genonce.sh")
|
fi
|
||||||
|
else
|
||||||
|
BUILD_TYPE="dev"
|
||||||
|
fi
|
||||||
|
|
||||||
echo "Container ID: $CONTAINER_ID"
|
echo "build_type=$BUILD_TYPE" >> $GITHUB_OUTPUT
|
||||||
|
echo "Build type: $BUILD_TYPE"
|
||||||
|
|
||||||
# Copy all source files into the container
|
- name: Prepare package-list.json and history.xml for IG Publisher
|
||||||
docker cp $(pwd)/. $CONTAINER_ID:/home/publisher/ig/
|
run: |
|
||||||
|
VERSION="${{ steps.version.outputs.version }}"
|
||||||
|
BUILD_TYPE="${{ steps.version.outputs.build_type }}"
|
||||||
|
DATE=$(date +%Y-%m-%d)
|
||||||
|
|
||||||
# Start and wait for completion
|
export VERSION DATE BUILD_TYPE
|
||||||
docker start -a $CONTAINER_ID
|
|
||||||
EXIT_CODE=$?
|
|
||||||
|
|
||||||
# Copy outputs back
|
echo "📋 Preparing package-list.json and history.xml for IG Publisher..."
|
||||||
echo "Copying outputs from container..."
|
|
||||||
docker cp $CONTAINER_ID:/tmp/build/output ./output || echo "Warning: No output directory"
|
|
||||||
docker cp $CONTAINER_ID:/tmp/build/fsh-generated ./fsh-generated || echo "No FSH generated files"
|
|
||||||
docker cp $CONTAINER_ID:/tmp/build/input-cache ./input-cache || echo "No input-cache"
|
|
||||||
docker cp $CONTAINER_ID:/tmp/build/temp ./temp || echo "No temp directory"
|
|
||||||
|
|
||||||
# Show container logs if failed
|
if [ ! -f "package-list.json" ]; then
|
||||||
if [ $EXIT_CODE -ne 0 ]; then
|
echo "⚠️ package-list.json not found in repo root"
|
||||||
echo "Build failed, showing container logs:"
|
echo "Creating initial package-list.json..."
|
||||||
docker logs $CONTAINER_ID
|
cat > package-list.json << 'PKGEOF'
|
||||||
fi
|
{
|
||||||
|
"package-id": "bd.fhir.core",
|
||||||
|
"title": "Bangladesh Core FHIR Implementation Guide",
|
||||||
|
"canonical": "https://fhir.dghs.gov.bd/core",
|
||||||
|
"introduction": "The Bangladesh Core FHIR IG defines national base profiles, value sets, and extensions for health data interoperability.",
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"version": "current",
|
||||||
|
"desc": "Continuous Integration Build (latest in version control)",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/",
|
||||||
|
"status": "ci-build",
|
||||||
|
"current": true
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
PKGEOF
|
||||||
|
fi
|
||||||
|
|
||||||
# Cleanup
|
python3 << 'PYEOF'
|
||||||
docker rm $CONTAINER_ID
|
import json
|
||||||
|
import os
|
||||||
|
import sys
|
||||||
|
|
||||||
# Verify
|
version = os.environ.get('VERSION', '')
|
||||||
if [ ! -f "output/index.html" ]; then
|
date = os.environ.get('DATE', '')
|
||||||
echo "ERROR: Build failed - no index.html"
|
build_type = os.environ.get('BUILD_TYPE', '')
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "✅ Build successful!"
|
with open('package-list.json', 'r', encoding='utf-8') as f:
|
||||||
|
pkg_list = json.load(f)
|
||||||
|
|
||||||
- name: Verify IG Output
|
if 'list' not in pkg_list or not isinstance(pkg_list['list'], list):
|
||||||
run: |
|
print("ERROR: package-list.json does not contain a valid 'list' array")
|
||||||
ls -la output/
|
sys.exit(1)
|
||||||
if [ ! -f "output/index.html" ]; then
|
|
||||||
echo "ERROR: IG build failed - no index.html found"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
echo "IG build successful!"
|
|
||||||
|
|
||||||
- name: Login to Gitea Container Registry
|
current_entries = [e for e in pkg_list['list'] if e.get('version') == 'current']
|
||||||
if: github.ref == 'refs/heads/main'
|
if not current_entries:
|
||||||
uses: docker/login-action@v3
|
pkg_list['list'].insert(0, {
|
||||||
with:
|
"version": "current",
|
||||||
registry: ${{ env.REGISTRY }}
|
"desc": "Continuous Integration Build (latest in version control)",
|
||||||
username: ${{ gitea.actor }}
|
"path": "https://fhir.dghs.gov.bd/core/",
|
||||||
password: ${{ secrets.ACCESS_TOKEN_GITEA }}
|
"status": "ci-build",
|
||||||
|
"current": True
|
||||||
|
})
|
||||||
|
|
||||||
- name: Extract metadata
|
if build_type == 'release':
|
||||||
if: github.ref == 'refs/heads/main'
|
version_entry = None
|
||||||
id: meta
|
for e in pkg_list['list']:
|
||||||
uses: docker/metadata-action@v4
|
if e.get('version') == version:
|
||||||
with:
|
version_entry = e
|
||||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
break
|
||||||
tags: |
|
if version_entry is None:
|
||||||
type=ref,event=branch
|
new_entry = {
|
||||||
type=ref,event=pr
|
"version": version,
|
||||||
type=sha,prefix={{branch}}-
|
"date": date,
|
||||||
type=raw,value=latest,enable={{is_default_branch}}
|
"desc": f"Release {version}",
|
||||||
|
"path": f"https://fhir.dghs.gov.bd/core/{version}/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
}
|
||||||
|
|
||||||
- name: Build and push Docker image
|
insert_index = 1
|
||||||
if: github.ref == 'refs/heads/main'
|
for i, entry in enumerate(pkg_list['list']):
|
||||||
uses: docker/build-push-action@v6
|
if entry.get('version') == 'current':
|
||||||
with:
|
insert_index = i + 1
|
||||||
context: .
|
break
|
||||||
file: ./Dockerfile.serve
|
|
||||||
push: true
|
pkg_list['list'].insert(insert_index, new_entry)
|
||||||
tags: ${{ steps.meta.outputs.tags }}
|
print(f"✅ Added version {version} to package-list.json")
|
||||||
labels: ${{ steps.meta.outputs.labels }}
|
else:
|
||||||
# cache-from: type=gha
|
print(f"ℹ️ Version {version} already exists in package-list.json")
|
||||||
# cache-to: type=gha,mode=max
|
else:
|
||||||
|
print("ℹ️ Dev build - using existing package-list.json without release modification")
|
||||||
|
|
||||||
|
with open('package-list.json', 'w', encoding='utf-8') as f:
|
||||||
|
json.dump(pkg_list, f, indent=2, ensure_ascii=False)
|
||||||
|
PYEOF
|
||||||
|
|
||||||
|
echo "🔍 Validating package-list.json..."
|
||||||
|
python3 -m json.tool package-list.json > /dev/null && echo "✅ Valid JSON" || (echo "❌ Invalid JSON!" && exit 1)
|
||||||
|
|
||||||
|
echo "📂 Ensuring package-list.json is in required locations..."
|
||||||
|
mkdir -p input
|
||||||
|
cp package-list.json input/package-list.json
|
||||||
|
|
||||||
|
echo "📝 Generating static history.xml from package-list.json..."
|
||||||
|
mkdir -p input/pagecontent
|
||||||
|
|
||||||
|
python3 << 'PYEOF'
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
from html import escape
|
||||||
|
|
||||||
|
os.makedirs('input/pagecontent', exist_ok=True)
|
||||||
|
|
||||||
|
with open('package-list.json', 'r', encoding='utf-8') as f:
|
||||||
|
pkg_list = json.load(f)
|
||||||
|
|
||||||
|
xml = '''<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<div xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
|
||||||
|
<p>This page provides the version history for the Bangladesh Core FHIR Implementation Guide.</p>
|
||||||
|
|
||||||
|
<p>For a machine-readable version history see <a href="package-list.json">package-list.json</a>.</p>
|
||||||
|
|
||||||
|
<p><b>Published Versions</b></p>
|
||||||
|
|
||||||
|
<table class="grid table table-striped table-bordered table-hover">
|
||||||
|
<thead>
|
||||||
|
<tr>
|
||||||
|
<th>Version</th>
|
||||||
|
<th>Date</th>
|
||||||
|
<th>Status</th>
|
||||||
|
<th>Description</th>
|
||||||
|
</tr>
|
||||||
|
</thead>
|
||||||
|
<tbody>
|
||||||
|
'''
|
||||||
|
|
||||||
|
def version_key(v):
|
||||||
|
try:
|
||||||
|
return tuple(int(x) for x in v.split('.'))
|
||||||
|
except:
|
||||||
|
return (0,)
|
||||||
|
|
||||||
|
published = [
|
||||||
|
e for e in pkg_list['list']
|
||||||
|
if e.get('version') and e.get('version') != "current"
|
||||||
|
]
|
||||||
|
|
||||||
|
# Sort newest version first
|
||||||
|
published.sort(
|
||||||
|
key=lambda e: version_key(e.get("version", "0.0.0")),
|
||||||
|
reverse=True
|
||||||
|
)
|
||||||
|
|
||||||
|
published_found = False
|
||||||
|
first_row = True
|
||||||
|
|
||||||
|
for entry in published:
|
||||||
|
published_found = True
|
||||||
|
|
||||||
|
version = escape(entry.get('version', 'Unknown'))
|
||||||
|
date = escape(entry.get('date', 'N/A'))
|
||||||
|
desc = escape(entry.get('desc', ''))
|
||||||
|
path = escape(entry.get('path', '#'))
|
||||||
|
|
||||||
|
status_val = entry.get('status', 'unknown')
|
||||||
|
|
||||||
|
if status_val == "trial-use":
|
||||||
|
status = '<span class="badge bg-info">Trial Use</span>'
|
||||||
|
elif status_val == "normative":
|
||||||
|
status = '<span class="badge bg-success">Normative</span>'
|
||||||
|
else:
|
||||||
|
status = f'<span class="badge bg-secondary">{escape(status_val)}</span>'
|
||||||
|
|
||||||
|
badge = '<span class="badge bg-success">Latest</span> ' if first_row else ''
|
||||||
|
|
||||||
|
xml += f'''
|
||||||
|
<tr>
|
||||||
|
<td><a href="{path}">{badge}{version}</a></td>
|
||||||
|
<td>{date}</td>
|
||||||
|
<td>{status}</td>
|
||||||
|
<td>{desc}</td>
|
||||||
|
</tr>
|
||||||
|
'''
|
||||||
|
|
||||||
|
first_row = False
|
||||||
|
|
||||||
|
if not published_found:
|
||||||
|
xml += '''
|
||||||
|
<tr>
|
||||||
|
<td colspan="4">No published versions available yet.</td>
|
||||||
|
</tr>
|
||||||
|
'''
|
||||||
|
|
||||||
|
xml += '''
|
||||||
|
</tbody>
|
||||||
|
</table>
|
||||||
|
|
||||||
|
<p class="lead"><b>Continuous Integration Build</b></p>
|
||||||
|
'''
|
||||||
|
|
||||||
|
current_entry = None
|
||||||
|
for entry in pkg_list['list']:
|
||||||
|
if entry.get('version') == 'current':
|
||||||
|
current_entry = entry
|
||||||
|
break
|
||||||
|
|
||||||
|
if current_entry:
|
||||||
|
path = escape(current_entry.get('path', pkg_list.get('canonical', '') + '/'))
|
||||||
|
xml += f'''
|
||||||
|
<p>The latest development build is available at:
|
||||||
|
<a href="{path}">{path}</a></p>
|
||||||
|
'''
|
||||||
|
else:
|
||||||
|
xml += '''
|
||||||
|
<p><i>No CI build entry found in package-list.json.</i></p>
|
||||||
|
'''
|
||||||
|
|
||||||
|
xml += '''
|
||||||
|
</div>
|
||||||
|
'''
|
||||||
|
|
||||||
|
with open('input/pagecontent/history.xml', 'w', encoding='utf-8') as f:
|
||||||
|
f.write(xml)
|
||||||
|
|
||||||
|
print("✅ Generated static history.xml")
|
||||||
|
print(f" File location: {os.path.abspath('input/pagecontent/history.xml')}")
|
||||||
|
print(f" File size: {os.path.getsize('input/pagecontent/history.xml')} bytes")
|
||||||
|
PYEOF
|
||||||
|
|
||||||
|
if [ -f "input/pagecontent/history.xml" ]; then
|
||||||
|
echo "✅ Verified: history.xml exists"
|
||||||
|
echo " First 20 lines:"
|
||||||
|
head -20 input/pagecontent/history.xml
|
||||||
|
else
|
||||||
|
echo "❌ ERROR: history.xml was not created!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "✅ Pre-build preparation complete:"
|
||||||
|
echo " - Root: $(pwd)/package-list.json"
|
||||||
|
echo " - Input: $(pwd)/input/package-list.json"
|
||||||
|
echo " - History: $(pwd)/input/pagecontent/history.xml"
|
||||||
|
echo "==============================="
|
||||||
|
echo "PACKAGE LIST USED FOR BUILD:"
|
||||||
|
cat package-list.json
|
||||||
|
echo "-------------------------------"
|
||||||
|
echo "INPUT COPY:"
|
||||||
|
cat input/package-list.json
|
||||||
|
echo "==============================="
|
||||||
|
|
||||||
|
- name: Emergency Disk Cleanup
|
||||||
|
run: |
|
||||||
|
echo "Disk usage before:"
|
||||||
|
df -h
|
||||||
|
|
||||||
|
echo "Clearing tool cache..."
|
||||||
|
rm -rf /opt/hostedtoolcache/* || true
|
||||||
|
|
||||||
|
rm -rf /usr/share/dotnet || true
|
||||||
|
rm -rf /usr/local/lib/android || true
|
||||||
|
rm -rf /opt/ghc || true
|
||||||
|
rm -rf ~/.fhir/packages || true
|
||||||
|
|
||||||
|
echo "Disk usage after:"
|
||||||
|
df -h
|
||||||
|
|
||||||
|
- name: Install Docker CLI
|
||||||
|
run: |
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y docker.io
|
||||||
|
docker --version
|
||||||
|
|
||||||
|
- name: Preload previous IG package for comparison
|
||||||
|
run: |
|
||||||
|
echo "Detecting previous version..."
|
||||||
|
export VERSION="${{ steps.version.outputs.version }}"
|
||||||
|
PREV_VERSION=$(python3 <<'PY'
|
||||||
|
import json
|
||||||
|
import os
|
||||||
|
|
||||||
|
current_build = os.environ.get("VERSION")
|
||||||
|
|
||||||
|
with open("package-list.json") as f:
|
||||||
|
data = json.load(f)
|
||||||
|
|
||||||
|
def parse(v):
|
||||||
|
try:
|
||||||
|
return tuple(int(x) for x in v.split("."))
|
||||||
|
except:
|
||||||
|
return (0,)
|
||||||
|
|
||||||
|
versions = [
|
||||||
|
v["version"]
|
||||||
|
for v in data["list"]
|
||||||
|
if v.get("version") not in ("current", current_build)
|
||||||
|
]
|
||||||
|
|
||||||
|
versions.sort(key=parse, reverse=True)
|
||||||
|
|
||||||
|
print(versions[0] if versions else "")
|
||||||
|
PY
|
||||||
|
)
|
||||||
|
|
||||||
|
if [ -z "$PREV_VERSION" ]; then
|
||||||
|
echo "No previous version found. Skipping preload."
|
||||||
|
exit 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "Previous version detected: $PREV_VERSION"
|
||||||
|
|
||||||
|
mkdir -p previous-packages
|
||||||
|
TMPDIR=$(mktemp -d)
|
||||||
|
|
||||||
|
URL="https://fhir.dghs.gov.bd/core/$PREV_VERSION/package.tgz"
|
||||||
|
|
||||||
|
echo "Downloading $URL"
|
||||||
|
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"
|
||||||
|
|
||||||
|
echo "Previous package cached:"
|
||||||
|
ls previous-packages
|
||||||
|
|
||||||
|
- name: Build FHIR IG
|
||||||
|
run: |
|
||||||
|
echo "Building FHIR IG version ${{ steps.version.outputs.version }}..."
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
_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"
|
||||||
|
docker start -a "$CONTAINER_ID"
|
||||||
|
EXIT_CODE=$?
|
||||||
|
|
||||||
|
echo "Copying outputs from container..."
|
||||||
|
docker cp "$CONTAINER_ID:/tmp/build/ig/output" ./output || echo "Warning: No output directory"
|
||||||
|
docker cp "$CONTAINER_ID:/tmp/build/ig/fsh-generated" ./fsh-generated || echo "No FSH generated"
|
||||||
|
docker cp "$CONTAINER_ID:/tmp/build/ig/input-cache" ./input-cache || echo "No input-cache"
|
||||||
|
docker cp "$CONTAINER_ID:/tmp/build/ig/temp" ./temp || echo "No temp directory"
|
||||||
|
|
||||||
|
if [ $EXIT_CODE -ne 0 ]; then
|
||||||
|
echo "Build failed, showing logs:"
|
||||||
|
docker logs "$CONTAINER_ID"
|
||||||
|
docker rm "$CONTAINER_ID"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
docker rm "$CONTAINER_ID"
|
||||||
|
|
||||||
|
if [ ! -f "output/index.html" ]; then
|
||||||
|
echo "ERROR: Build failed - no index.html"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo ""
|
||||||
|
echo "🔍 Checking for history.html..."
|
||||||
|
if [ -f "output/history.html" ]; then
|
||||||
|
echo "✅ history.html generated successfully!"
|
||||||
|
echo "📄 history.html size: $(ls -lh output/history.html | awk '{print $5}')"
|
||||||
|
else
|
||||||
|
echo "⚠️ WARNING: history.html was NOT generated"
|
||||||
|
echo "This might indicate an issue with the template or history.xml/package-list.json"
|
||||||
|
fi
|
||||||
|
echo "================================"
|
||||||
|
echo "IG Publisher comparison log:"
|
||||||
|
cat output/qa.compare.txt || echo "qa.compare.txt not found"
|
||||||
|
echo "================================"
|
||||||
|
echo "✅ Build successful!"
|
||||||
|
|
||||||
|
- name: Update package-feed.xml for releases
|
||||||
|
if: steps.version.outputs.build_type == 'release'
|
||||||
|
run: |
|
||||||
|
VERSION="${{ steps.version.outputs.version }}"
|
||||||
|
DATETIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||||
|
|
||||||
|
if [ ! -f "package-feed.xml" ]; then
|
||||||
|
echo "⚠️ package-feed.xml not found, creating initial feed..."
|
||||||
|
|
||||||
|
cat > package-feed.xml <<EOF
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||||
|
<title>bd.fhir.core</title>
|
||||||
|
<id>https://fhir.dghs.gov.bd/core/package-feed.xml</id>
|
||||||
|
<updated>$DATETIME</updated>
|
||||||
|
</feed>
|
||||||
|
EOF
|
||||||
|
fi
|
||||||
|
|
||||||
|
cat > update-feed.py << 'EOF'
|
||||||
|
import sys
|
||||||
|
import xml.etree.ElementTree as ET
|
||||||
|
|
||||||
|
version = sys.argv[1]
|
||||||
|
datetime_iso = sys.argv[2]
|
||||||
|
|
||||||
|
ET.register_namespace('', 'http://www.w3.org/2005/Atom')
|
||||||
|
|
||||||
|
tree = ET.parse('package-feed.xml')
|
||||||
|
root = tree.getroot()
|
||||||
|
ns = {'atom': 'http://www.w3.org/2005/Atom'}
|
||||||
|
|
||||||
|
updated_elem = root.find('atom:updated', ns)
|
||||||
|
if updated_elem is not None:
|
||||||
|
updated_elem.text = datetime_iso
|
||||||
|
|
||||||
|
entry_exists = False
|
||||||
|
for entry in root.findall('atom:entry', ns):
|
||||||
|
title = entry.find('atom:title', ns)
|
||||||
|
if title is not None and version in (title.text or ''):
|
||||||
|
entry_exists = True
|
||||||
|
entry_updated = entry.find('atom:updated', ns)
|
||||||
|
if entry_updated is not None:
|
||||||
|
entry_updated.text = datetime_iso
|
||||||
|
break
|
||||||
|
|
||||||
|
if not entry_exists:
|
||||||
|
new_entry = ET.Element('{http://www.w3.org/2005/Atom}entry')
|
||||||
|
|
||||||
|
title = ET.SubElement(new_entry, '{http://www.w3.org/2005/Atom}title')
|
||||||
|
title.text = f"bd.fhir.core version {version}"
|
||||||
|
|
||||||
|
link = ET.SubElement(new_entry, '{http://www.w3.org/2005/Atom}link')
|
||||||
|
link.set('rel', 'alternate')
|
||||||
|
link.set('href', f"https://fhir.dghs.gov.bd/core/{version}/")
|
||||||
|
|
||||||
|
entry_id = ET.SubElement(new_entry, '{http://www.w3.org/2005/Atom}id')
|
||||||
|
entry_id.text = f"https://fhir.dghs.gov.bd/core/{version}/"
|
||||||
|
|
||||||
|
entry_updated = ET.SubElement(new_entry, '{http://www.w3.org/2005/Atom}updated')
|
||||||
|
entry_updated.text = datetime_iso
|
||||||
|
|
||||||
|
summary = ET.SubElement(new_entry, '{http://www.w3.org/2005/Atom}summary')
|
||||||
|
summary.text = f"Release {version} of Bangladesh Core FHIR Implementation Guide"
|
||||||
|
|
||||||
|
insert_pos = 0
|
||||||
|
for i, child in enumerate(root):
|
||||||
|
if child.tag.endswith('entry'):
|
||||||
|
insert_pos = i
|
||||||
|
break
|
||||||
|
insert_pos = i + 1
|
||||||
|
|
||||||
|
root.insert(insert_pos, new_entry)
|
||||||
|
|
||||||
|
tree.write('output/package-feed.xml', encoding='utf-8', xml_declaration=True)
|
||||||
|
print("✅ Updated package-feed.xml")
|
||||||
|
EOF
|
||||||
|
|
||||||
|
python3 update-feed.py "$VERSION" "$DATETIME"
|
||||||
|
|
||||||
|
cp package-list.json output/package-list.json
|
||||||
|
|
||||||
|
echo "📋 Updated registry files"
|
||||||
|
|
||||||
|
- name: Prepare deployment artifact
|
||||||
|
run: |
|
||||||
|
VERSION="${{ steps.version.outputs.version }}"
|
||||||
|
BUILD_TYPE="${{ steps.version.outputs.build_type }}"
|
||||||
|
|
||||||
|
tar -czf ig-output.tar.gz -C output .
|
||||||
|
|
||||||
|
echo "version=$VERSION" > deployment.env
|
||||||
|
echo "build_type=$BUILD_TYPE" >> deployment.env
|
||||||
|
echo "build_date=$(date -u +%Y-%m-%dT%H:%M:%SZ)" >> deployment.env
|
||||||
|
|
||||||
|
echo "📦 Output contents:"
|
||||||
|
ls -lh output/ | grep -E "(history\.html|package-list\.json|package-feed\.xml|index\.html)" || echo "Some files may be missing"
|
||||||
|
|
||||||
|
ls -lh ig-output.tar.gz
|
||||||
|
|
||||||
|
- name: Upload artifact
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ig-output
|
||||||
|
path: |
|
||||||
|
ig-output.tar.gz
|
||||||
|
deployment.env
|
||||||
|
package-list.json
|
||||||
|
package-feed.xml
|
||||||
|
retention-days: 30
|
||||||
|
|
||||||
deploy:
|
deploy:
|
||||||
needs: build-ig
|
needs: build-ig
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
if: github.ref == 'refs/heads/main'
|
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout repository
|
- name: Download artifact
|
||||||
uses: actions/checkout@v3
|
uses: actions/download-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ig-output
|
||||||
|
|
||||||
- name: Deploy to server
|
- name: Load deployment env
|
||||||
uses: appleboy/ssh-action@v1.0.3
|
id: deploy_info
|
||||||
env:
|
run: |
|
||||||
REGISTRY: ${{ env.REGISTRY }}
|
source deployment.env
|
||||||
IMAGE_NAME: ${{ env.IMAGE_NAME }}
|
echo "version=$version" >> $GITHUB_OUTPUT
|
||||||
IMAGE_TAG: latest
|
echo "build_type=$build_type" >> $GITHUB_OUTPUT
|
||||||
with:
|
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
||||||
host: ${{ secrets.DEPLOY_HOST }}
|
|
||||||
username: ${{ secrets.DEPLOY_USER }}
|
|
||||||
password: ${{ secrets.DEPLOY_PASSWORD }}
|
|
||||||
port: ${{ secrets.DEPLOY_PORT || 22 }}
|
|
||||||
envs: REGISTRY,IMAGE_NAME,IMAGE_TAG
|
|
||||||
script: |
|
|
||||||
# Create deployment directory if it doesn't exist
|
|
||||||
mkdir -p /opt/fhir-ig
|
|
||||||
cd /opt/fhir-ig
|
|
||||||
|
|
||||||
# Create docker-compose.prod.yml
|
echo "Deploying version: $version"
|
||||||
cat > docker-compose.prod.yml << EOF
|
echo "Build type: $build_type"
|
||||||
|
|
||||||
services:
|
- name: Deploy to server
|
||||||
fhir-ig:
|
uses: appleboy/scp-action@v0.1.7
|
||||||
image: \${REGISTRY}/\${IMAGE_NAME}:\${IMAGE_TAG:-latest}
|
with:
|
||||||
container_name: fhir-ig-app
|
host: ${{ secrets.DEPLOY_HOST }}
|
||||||
restart: unless-stopped
|
username: ${{ secrets.DEPLOY_USER }}
|
||||||
ports:
|
password: ${{ secrets.DEPLOY_PASSWORD }}
|
||||||
- "80:80"
|
port: ${{ secrets.DEPLOY_PORT || 22 }}
|
||||||
environment:
|
source: "ig-output.tar.gz,deployment.env,package-list.json,package-feed.xml"
|
||||||
- NODE_ENV=production
|
target: "/tmp/fhir-ig-deploy/"
|
||||||
networks:
|
|
||||||
- fhir-ig-network
|
|
||||||
healthcheck:
|
|
||||||
test: ["CMD", "wget", "--no-verbose", "--tries=1", "--spider", "http://127.0.0.1/health"]
|
|
||||||
interval: 30s
|
|
||||||
timeout: 10s
|
|
||||||
retries: 3
|
|
||||||
start_period: 40s
|
|
||||||
logging:
|
|
||||||
driver: "json-file"
|
|
||||||
options:
|
|
||||||
max-size: "10m"
|
|
||||||
max-file: "3"
|
|
||||||
volumes:
|
|
||||||
- fhir-ig-logs:/var/log/nginx
|
|
||||||
|
|
||||||
networks:
|
- name: Execute deployment on server
|
||||||
fhir-ig-network:
|
uses: appleboy/ssh-action@v1.0.3
|
||||||
driver: bridge
|
with:
|
||||||
|
host: ${{ secrets.DEPLOY_HOST }}
|
||||||
|
username: ${{ secrets.DEPLOY_USER }}
|
||||||
|
password: ${{ secrets.DEPLOY_PASSWORD }}
|
||||||
|
port: ${{ secrets.DEPLOY_PORT || 22 }}
|
||||||
|
script: |
|
||||||
|
set -e
|
||||||
|
|
||||||
volumes:
|
source /tmp/fhir-ig-deploy/deployment.env
|
||||||
fhir-ig-logs:
|
|
||||||
driver: local
|
|
||||||
EOF
|
|
||||||
|
|
||||||
# Create deployment script
|
echo "=========================================="
|
||||||
cat > deploy.sh << 'DEPLOY_SCRIPT'
|
echo "Deploying FHIR IG"
|
||||||
#!/bin/bash
|
echo "Version: $version"
|
||||||
set -e
|
echo "Build Type: $build_type"
|
||||||
|
echo "Build Date: $build_date"
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
# Configuration
|
VERSIONS_DIR="/opt/fhir-ig/versions"
|
||||||
COMPOSE_FILE="docker-compose.prod.yml"
|
mkdir -p "$VERSIONS_DIR"
|
||||||
SERVICE_NAME="fhir-ig"
|
|
||||||
BACKUP_DIR="/opt/backups/fhir-ig"
|
|
||||||
LOG_FILE="/var/log/fhir-ig-deploy.log"
|
|
||||||
|
|
||||||
# Create directories
|
if [ "$build_type" = "release" ]; then
|
||||||
mkdir -p "$BACKUP_DIR"
|
TARGET_DIR="$VERSIONS_DIR/$version"
|
||||||
mkdir -p "$(dirname "$LOG_FILE")"
|
echo "📦 Deploying release version to: $TARGET_DIR"
|
||||||
|
else
|
||||||
|
TARGET_DIR="$VERSIONS_DIR/dev"
|
||||||
|
echo "🔧 Deploying dev build to: $TARGET_DIR"
|
||||||
|
mkdir -p "$TARGET_DIR"
|
||||||
|
echo "Cleaning old dev files..."
|
||||||
|
rm -rf "$TARGET_DIR"/*
|
||||||
|
fi
|
||||||
|
|
||||||
# Logging function
|
mkdir -p "$TARGET_DIR"
|
||||||
log() {
|
|
||||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
|
|
||||||
}
|
|
||||||
|
|
||||||
log "Starting deployment of BD Core FHIR IG..."
|
echo "Extracting IG output..."
|
||||||
log "Registry: $REGISTRY"
|
tar -xzf /tmp/fhir-ig-deploy/ig-output.tar.gz -C "$TARGET_DIR"
|
||||||
log "Image: $IMAGE_NAME"
|
|
||||||
log "Tag: $IMAGE_TAG"
|
|
||||||
|
|
||||||
# Login to registry
|
if [ -f "$TARGET_DIR/history.html" ]; then
|
||||||
echo "$GITEA_PASSWORD" | docker login $REGISTRY -u "$GITEA_USERNAME" --password-stdin
|
echo "✅ history.html deployed successfully"
|
||||||
|
else
|
||||||
|
echo "⚠️ WARNING: history.html not found in deployment"
|
||||||
|
fi
|
||||||
|
|
||||||
# Backup current container if it exists
|
cp "$TARGET_DIR/package-list.json" "$VERSIONS_DIR/package-list.json"
|
||||||
if docker compose -f "$COMPOSE_FILE" ps --services --filter "status=running" | grep -q "$SERVICE_NAME"; then
|
cp "$TARGET_DIR/package-feed.xml" "$VERSIONS_DIR/package-feed.xml"
|
||||||
log "Creating backup of current deployment..."
|
|
||||||
BACKUP_FILE="$BACKUP_DIR/backup-$(date +%Y%m%d-%H%M%S).tar.gz"
|
|
||||||
docker compose -f "$COMPOSE_FILE" exec -T "$SERVICE_NAME" tar -czf - -C /usr/share/nginx/html . > "$BACKUP_FILE" 2>/dev/null || log "Backup failed, continuing..."
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Set environment variables for docker compose
|
cp "$TARGET_DIR/package-list.json" "/opt/fhir-ig/package-list.json"
|
||||||
export REGISTRY="$REGISTRY"
|
cp "$TARGET_DIR/package-feed.xml" "/opt/fhir-ig/package-feed.xml"
|
||||||
export IMAGE_NAME="$IMAGE_NAME"
|
|
||||||
export IMAGE_TAG="$IMAGE_TAG"
|
|
||||||
|
|
||||||
# Pull the latest image
|
if [ "$build_type" = "release" ]; then
|
||||||
log "Pulling latest image: $REGISTRY/$IMAGE_NAME:$IMAGE_TAG..."
|
echo "Updating 'current' symlink to point to $version"
|
||||||
docker pull "$REGISTRY/$IMAGE_NAME:$IMAGE_TAG"
|
rm -f "$VERSIONS_DIR/current"
|
||||||
|
ln -sf "$version" "$VERSIONS_DIR/current"
|
||||||
|
fi
|
||||||
|
|
||||||
# docker pull "\${REGISTRY}/\${IMAGE_NAME}:\${IMAGE_TAG}"
|
cd /opt/fhir-ig
|
||||||
|
|
||||||
# Stop and remove old container
|
if [ ! -f "docker-compose.prod.yml" ]; then
|
||||||
log "Stopping old container..."
|
echo "ERROR: docker-compose.prod.yml not found!"
|
||||||
docker compose -f "$COMPOSE_FILE" down || log "No existing container to stop"
|
echo "Please deploy the updated docker-compose.prod.yml and nginx.conf first"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
# Start new container
|
docker compose -f docker-compose.prod.yml up -d --force-recreate fhir-ig
|
||||||
log "Starting new container..."
|
|
||||||
docker compose -f "$COMPOSE_FILE" up -d
|
|
||||||
|
|
||||||
# Wait for container to be healthy
|
rm -rf /tmp/fhir-ig-deploy
|
||||||
# log "Waiting for container to become healthy..."
|
|
||||||
# timeout=120
|
|
||||||
# elapsed=0
|
|
||||||
# healthy=false
|
|
||||||
|
|
||||||
# while [ $elapsed -lt $timeout ]; do
|
echo "=========================================="
|
||||||
# if docker compose -f "$COMPOSE_FILE" ps --format json | grep -q '"Health":"healthy"'; then
|
echo "✅ Deployment completed successfully!"
|
||||||
# log "Container is healthy!"
|
echo "Version $version is now available at:"
|
||||||
# healthy=true
|
if [ "$build_type" = "release" ]; then
|
||||||
# break
|
echo " - https://fhir.dghs.gov.bd/core/$version/"
|
||||||
# fi
|
echo " - https://fhir.dghs.gov.bd/core/$version/history.html"
|
||||||
# sleep 5
|
echo " - https://fhir.dghs.gov.bd/core/ (current)"
|
||||||
# elapsed=$((elapsed + 5))
|
else
|
||||||
# log "Waiting... ($elapsed/$timeout seconds)"
|
echo " - https://fhir.dghs.gov.bd/core/dev/"
|
||||||
# done
|
fi
|
||||||
|
echo "=========================================="
|
||||||
|
|
||||||
# if [ "$healthy" = false ]; then
|
echo "Available versions:"
|
||||||
# log "ERROR: Container failed to become healthy within $timeout seconds"
|
ls -lh "$VERSIONS_DIR" | grep -v total
|
||||||
# docker compose -f "$COMPOSE_FILE" logs --tail=50
|
|
||||||
# log "Rolling back..."
|
|
||||||
# docker compose -f "$COMPOSE_FILE" down
|
|
||||||
# exit 1
|
|
||||||
# fi
|
|
||||||
|
|
||||||
# Cleanup old images (keep last 3 versions)
|
|
||||||
log "Cleaning up old images..."
|
|
||||||
docker images "\${REGISTRY}/\${IMAGE_NAME}" --format "table {{.Repository}}:{{.Tag}}\t{{.CreatedAt}}" | tail -n +2 | sort -k2 -r | tail -n +4 | awk '{print $1}' | xargs -r docker rmi || log "No old images to clean"
|
|
||||||
|
|
||||||
# Cleanup old backups (keep only last 5)
|
|
||||||
log "Cleaning up old backups..."
|
|
||||||
ls -t "$BACKUP_DIR"/backup-*.tar.gz 2>/dev/null | tail -n +6 | xargs -r rm || log "No old backups to clean"
|
|
||||||
|
|
||||||
log "Deployment completed successfully!"
|
|
||||||
log "🌐 Service available at: http://$(hostname -I | awk '{print $1}')"
|
|
||||||
|
|
||||||
# Display final status
|
|
||||||
docker compose -f "$COMPOSE_FILE" ps
|
|
||||||
DEPLOY_SCRIPT
|
|
||||||
|
|
||||||
# Make deploy script executable
|
|
||||||
chmod +x deploy.sh
|
|
||||||
|
|
||||||
# Set registry credentials
|
|
||||||
export GITEA_USERNAME="${{ gitea.actor }}"
|
|
||||||
export GITEA_PASSWORD="${{ secrets.ACCESS_TOKEN_GITEA }}"
|
|
||||||
|
|
||||||
# Execute deployment
|
|
||||||
./deploy.sh
|
|
||||||
23
CHANGELOG.md
Normal file
23
CHANGELOG.md
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
# Changelog
|
||||||
|
|
||||||
|
|
||||||
|
## [0.2.0] – 2025-10-02
|
||||||
|
**First official draft release of BD-Core-FHIR-IG**
|
||||||
|
|
||||||
|
### Added
|
||||||
|
- **BDPatientProfile** with Bangladesh-specific identifier and address extensions.
|
||||||
|
- **BDPractitionerProfile** to capture practitioner details.
|
||||||
|
- **Identifier CodeSystem and ValueSet** including:
|
||||||
|
- National ID (NID)
|
||||||
|
- Birth Registration Number (BRN)
|
||||||
|
- Unique Health ID (UHID)
|
||||||
|
- **Bangladesh Address profile** with Division, District, Upazila, and Union levels.
|
||||||
|
- Initial **examples** for Patient and Practitioner resources.
|
||||||
|
- Configured **bd.fhir.core.xml** with canonical URL `https://fhir.dghs.gov.bd/core`.
|
||||||
|
|
||||||
|
### Notes
|
||||||
|
- This is a **pre-release draft**.
|
||||||
|
- Backward compatibility is **not guaranteed** until `1.0.0`.
|
||||||
|
- Future drafts may adjust slicing rules, bindings, and extensions.
|
||||||
|
|
||||||
|
---
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
# Multi-stage build for serving FHIR IG output
|
|
||||||
FROM nginx:alpine
|
|
||||||
|
|
||||||
# Copy the built IG output to nginx html directory
|
|
||||||
# (Uncomment and adjust the path if needed)
|
|
||||||
COPY output/ /usr/share/nginx/html/
|
|
||||||
|
|
||||||
# Copy custom nginx configuration
|
|
||||||
COPY nginx.conf /etc/nginx/nginx.conf
|
|
||||||
|
|
||||||
# Create a non-root user for security
|
|
||||||
RUN addgroup -g 1001 -S nginx-user && \
|
|
||||||
adduser -S -D -H -u 1001 -h /var/cache/nginx -s /sbin/nologin -G nginx-user -g nginx-user nginx-user
|
|
||||||
|
|
||||||
# Set proper permissions for Nginx directories
|
|
||||||
RUN chown -R nginx-user:nginx-user /usr/share/nginx/html && \
|
|
||||||
chown -R nginx-user:nginx-user /var/cache/nginx && \
|
|
||||||
chown -R nginx-user:nginx-user /var/log/nginx && \
|
|
||||||
chown -R nginx-user:nginx-user /etc/nginx/conf.d
|
|
||||||
|
|
||||||
# Fix Nginx PID permission issue
|
|
||||||
RUN mkdir -p /var/cache/nginx/run && \
|
|
||||||
chown -R nginx-user:nginx-user /var/cache/nginx/run
|
|
||||||
|
|
||||||
# Update nginx.conf to point PID to writable location
|
|
||||||
# Ensure your nginx.conf has:
|
|
||||||
# pid /var/cache/nginx/run/nginx.pid;
|
|
||||||
|
|
||||||
# Switch to non-root user
|
|
||||||
USER nginx-user
|
|
||||||
|
|
||||||
# Health check
|
|
||||||
# HEALTHCHECK --interval=30s --timeout=3s --start-period=5s --retries=3 \
|
|
||||||
# CMD curl -f http://localhost/ || exit 1
|
|
||||||
|
|
||||||
EXPOSE 80
|
|
||||||
|
|
||||||
# Start Nginx in foreground
|
|
||||||
# CMD ["nginx", "-g", "daemon off;"]
|
|
||||||
|
|
||||||
CMD ["nginx", "-g", "daemon off;", "-c", "/etc/nginx/nginx.conf"]
|
|
||||||
|
|
||||||
@@ -7,7 +7,7 @@ h5:before{color:silver;counter-increment:detail;content:var(--heading-prefix) ".
|
|||||||
h6:before{color:silver;counter-increment:more-detail;content:var(--heading-prefix) "." counter(sub-section) "." counter(composite) "." counter(detail) "." counter(more-detail)" ";}
|
h6:before{color:silver;counter-increment:more-detail;content:var(--heading-prefix) "." counter(sub-section) "." counter(composite) "." counter(detail) "." counter(more-detail)" ";}
|
||||||
</style>
|
</style>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
<h2>{{site.data.pages[page.path].title | escape_once}}</h2>
|
<h2>{{site.data.pages[page.path].title | escape_once}}</h2>
|
||||||
{% assign path = page.path | split: '.html' %}
|
{% assign path = page.path | split: '.html' %}
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@ h5:before{color:silver;counter-increment:detail;content:var(--heading-prefix) ".
|
|||||||
h6:before{color:silver;counter-increment:more-detail;content:var(--heading-prefix) "." counter(sub-section) "." counter(composite) "." counter(detail) "." counter(more-detail)" ";}
|
h6:before{color:silver;counter-increment:more-detail;content:var(--heading-prefix) "." counter(sub-section) "." counter(composite) "." counter(detail) "." counter(more-detail)" ";}
|
||||||
</style>
|
</style>
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
<h2>{{site.data.pages[page.path].title | escape_once}}</h2>
|
<h2>{{site.data.pages[page.path].title | escape_once}}</h2>
|
||||||
{% if page.path == 'index.html' %}
|
{% if page.path == 'index.html' %}
|
||||||
{% include fragment-igTable.html %}
|
{% include fragment-igTable.html %}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
---
|
---
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='testing' %}
|
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='testing' %}
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
<h2 id="root">{{[type]}}: {{site.data.pages[page.path].title | escape_once}}
|
<h2 id="root">{{[type]}}: {{site.data.pages[page.path].title | escape_once}}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
---
|
---
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|
||||||
|
|||||||
@@ -7,7 +7,7 @@
|
|||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
|
|
||||||
<div style="counter-reset: section 10" class="col-12">
|
<div style="counter-reset: section 10" class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='history' %}
|
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='history' %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
---
|
---
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
<h2 id="root">CodeSystem: {{site.data.pages[page.path].title | escape_once}}
|
<h2 id="root">CodeSystem: {{site.data.pages[page.path].title | escape_once}}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
---
|
---
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
---
|
---
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
<h2 id="root">Extension: {{site.data.pages[page.path].title | escape_once}}
|
<h2 id="root">Extension: {{site.data.pages[page.path].title | escape_once}}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
---
|
---
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
|
|
||||||
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
||||||
|
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
|
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div style="counter-reset: section {{section}}" class="col-12">
|
<div style="counter-reset: section {{section}}" class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='{{[fmt]}}' %}
|
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='{{[fmt]}}' %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div style="counter-reset: section 4" class="col-12">
|
<div style="counter-reset: section 4" class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='definition' %}
|
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='definition' %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div style="counter-reset: section 6" class="col-12">
|
<div style="counter-reset: section 6" class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='example' %}
|
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='example' %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
|
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div style="counter-reset: section {{section}}" class="col-12">
|
<div style="counter-reset: section {{section}}" class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active=format %}
|
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active=format %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -6,7 +6,7 @@
|
|||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
|
|
||||||
<div style="counter-reset: section 10" class="col-12">
|
<div style="counter-reset: section 10" class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='history' %}
|
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='history' %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div style="counter-reset: section 5" class="col-12">
|
<div style="counter-reset: section 5" class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='mapping' %}
|
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='mapping' %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div style="counter-reset: section 6" class="col-12">
|
<div style="counter-reset: section 6" class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='testing' %}
|
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='testing' %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
|
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
{% include fragment-profile-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
||||||
|
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
---
|
---
|
||||||
{% include fragment-pagebegin.html %}
|
{% include fragment-pagebegin.html %}
|
||||||
<div class="col-12">
|
<div class="col-12">
|
||||||
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare (v0.2.0). See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
<p id="publish-box">Bangladesh Core FHIR Implementation Guide - Published by Ministry of Health and Family Welfare. See the <a href="https://fhir.dghs.gov.bd/core/history.html">Directory of published versions</a></p>
|
||||||
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
{% include fragment-base-navtabs.html type='{{[type]}}' id='{{[id]}}' active='content' %}
|
||||||
<a name="root"> </a>
|
<a name="root"> </a>
|
||||||
<h2 id="root">ValueSet: {{site.data.pages[page.path].title | escape_once}}
|
<h2 id="root">ValueSet: {{site.data.pages[page.path].title | escape_once}}
|
||||||
|
|||||||
3
ig.ini
3
ig.ini
@@ -1,11 +1,12 @@
|
|||||||
[IG]
|
[IG]
|
||||||
# ini file for the Implementation Guide publisher
|
# ini file for the Implementation Guide publisher
|
||||||
# see comments below for instructions
|
# see comments below for instructions
|
||||||
ig = input/myig.xml
|
ig = input/bd.fhir.core.xml
|
||||||
#template = fhir.base.template#current
|
#template = fhir.base.template#current
|
||||||
template = #bd-national-template
|
template = #bd-national-template
|
||||||
#template = D:\Git\templates\ig-template-base
|
#template = D:\Git\templates\ig-template-base
|
||||||
#template = #local-template
|
#template = #local-template
|
||||||
|
historypage = true
|
||||||
|
|
||||||
##########################
|
##########################
|
||||||
### ig.ini parameters: ###
|
### ig.ini parameters: ###
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
</extension>-->
|
</extension>-->
|
||||||
<url value="https://fhir.dghs.gov.bd/core/ImplementationGuide/bd.fhir.core"/>
|
<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 -->
|
<!-- This version will propagate to all artifacts unless the "propagate-version" extension is overridden -->
|
||||||
<version value="0.2.0"/>
|
<version value="0.4.1"/>
|
||||||
<name value="BangladeshCoreFHIRIG"/>
|
<name value="BangladeshCoreFHIRIG"/>
|
||||||
<title value="Bangladesh Core FHIR Implementation Guide"/>
|
<title value="Bangladesh Core FHIR Implementation Guide"/>
|
||||||
<status value="active"/>
|
<status value="active"/>
|
||||||
@@ -57,91 +57,8 @@
|
|||||||
<reference>
|
<reference>
|
||||||
<reference value="StructureDefinition/bd-patient"/>
|
<reference value="StructureDefinition/bd-patient"/>
|
||||||
</reference>
|
</reference>
|
||||||
<description value="Overriding description because we can"/>
|
<description value="Banlgladesh Patient Profile"/>
|
||||||
</resource>
|
</resource>
|
||||||
<resource>
|
|
||||||
<reference>
|
|
||||||
<reference value="StructureDefinition/bd-logical"/>
|
|
||||||
</reference>
|
|
||||||
<description value="Logical Model"/>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<reference>
|
|
||||||
<reference value="Library/example-sql"/>
|
|
||||||
</reference>
|
|
||||||
<description value="A test example"/>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<reference>
|
|
||||||
<reference value="Library/example-image"/>
|
|
||||||
</reference>
|
|
||||||
<description value="A test image example"/>
|
|
||||||
</resource>
|
|
||||||
<!--<resource>
|
|
||||||
<reference>
|
|
||||||
<reference value="bd-logicalModel/AS"/>
|
|
||||||
</reference>
|
|
||||||
</resource> -->
|
|
||||||
<resource>
|
|
||||||
<extension url="http://hl7.org/fhir/tools/StructureDefinition/ig-example-actor">
|
|
||||||
<valueCanonical value="https://fhir.dghs.gov.bd/core/ActorDefinition/example"/>
|
|
||||||
</extension>
|
|
||||||
<reference>
|
|
||||||
<reference value="Patient/example"/>
|
|
||||||
</reference>
|
|
||||||
<name value="Simple patient example"/>
|
|
||||||
<description value="A simple example showing how examples are defined and referenced"/>
|
|
||||||
<exampleCanonical value="https://fhir.dghs.gov.bd/core/StructureDefinition/bd-patient"/>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<reference>
|
|
||||||
<reference value="Observation/example"/>
|
|
||||||
</reference>
|
|
||||||
<name value="Observation patient example"/>
|
|
||||||
<description value="Example showing slicing"/>
|
|
||||||
<exampleCanonical value="https://fhir.dghs.gov.bd/core/StructureDefinition/bd-observation"/>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<reference>
|
|
||||||
<reference value="Binary/example"/>
|
|
||||||
</reference>
|
|
||||||
<name value="Example binary"/>
|
|
||||||
<description value="Example showing binary content"/>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<extension url="http://hl7.org/fhir/StructureDefinition/implementationguide-resource-format">
|
|
||||||
<valueCode value="application/xml"/>
|
|
||||||
</extension>
|
|
||||||
<reference>
|
|
||||||
<reference value="Binary/logical-example"/>
|
|
||||||
</reference>
|
|
||||||
<name value="Example of Logical Model"/>
|
|
||||||
<description value="Example showing example content for a logical model"/>
|
|
||||||
<exampleCanonical value="https://fhir.dghs.gov.bd/core/StructureDefinition/bd-logical"/>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<extension url="http://hl7.org/fhir/StructureDefinition/implementationguide-resource-format">
|
|
||||||
<valueCode value="image/jpeg"/>
|
|
||||||
</extension>
|
|
||||||
<reference>
|
|
||||||
<reference value="Binary/image-example"/>
|
|
||||||
</reference>
|
|
||||||
<name value="Example of Binary Image"/>
|
|
||||||
<description value="Example showing example content for an image"/>
|
|
||||||
</resource>
|
|
||||||
<resource>
|
|
||||||
<reference>
|
|
||||||
<reference value="ValueSet/valueset-no-codesystem"/>
|
|
||||||
</reference>
|
|
||||||
<name value="Value set for no code system"/>
|
|
||||||
</resource>
|
|
||||||
<!-- <resource>
|
|
||||||
<reference>
|
|
||||||
<reference value="Library/example"/>
|
|
||||||
</reference>
|
|
||||||
<name value="Simple library example"/>
|
|
||||||
<description value="A simple example showing how library is pre-loaded"/>
|
|
||||||
</resource> -->
|
|
||||||
<page>
|
<page>
|
||||||
<!-- The root will always be toc.html - the template will force it if you don't do it -->
|
<!-- The root will always be toc.html - the template will force it if you don't do it -->
|
||||||
<nameUrl value="toc.html"/>
|
<nameUrl value="toc.html"/>
|
||||||
@@ -161,9 +78,6 @@
|
|||||||
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
|
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
|
||||||
<valueCode value="trial-use"/>
|
<valueCode value="trial-use"/>
|
||||||
</extension>
|
</extension>
|
||||||
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
|
|
||||||
<valueInteger value="3"/>
|
|
||||||
</extension>
|
|
||||||
<nameUrl value="spec.html"/>
|
<nameUrl value="spec.html"/>
|
||||||
<title value="Detailed BD-Core-FHIR Specification"/>
|
<title value="Detailed BD-Core-FHIR Specification"/>
|
||||||
<generation value="markdown"/>
|
<generation value="markdown"/>
|
||||||
@@ -188,6 +102,11 @@
|
|||||||
<title value="IG Change History"/>
|
<title value="IG Change History"/>
|
||||||
<generation value="html"/>
|
<generation value="html"/>
|
||||||
</page>
|
</page>
|
||||||
|
<page>
|
||||||
|
<nameUrl value="history.html"/>
|
||||||
|
<title value="Version History"/>
|
||||||
|
<generation value="html"/>
|
||||||
|
</page>
|
||||||
</page>
|
</page>
|
||||||
<!-- copyright year is a mandatory parameter -->
|
<!-- copyright year is a mandatory parameter -->
|
||||||
<parameter>
|
<parameter>
|
||||||
@@ -197,7 +116,7 @@
|
|||||||
<!-- releaselabel should be the ballot status for HL7-published IGs. -->
|
<!-- releaselabel should be the ballot status for HL7-published IGs. -->
|
||||||
<parameter>
|
<parameter>
|
||||||
<code value="releaselabel"/>
|
<code value="releaselabel"/>
|
||||||
<value value="Published by MoHFW"/>
|
<value value="Published by DGHS, MoHFW"/>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter>
|
<parameter>
|
||||||
<code value="find-other-resources"/>
|
<code value="find-other-resources"/>
|
||||||
@@ -236,10 +155,6 @@
|
|||||||
<code value="excludemap"/>
|
<code value="excludemap"/>
|
||||||
<value value="true"/>
|
<value value="true"/>
|
||||||
</parameter>-->
|
</parameter>-->
|
||||||
<parameter>
|
|
||||||
<code value="showsource"/>
|
|
||||||
<value value="true"/>
|
|
||||||
</parameter>
|
|
||||||
<parameter>
|
<parameter>
|
||||||
<code value="i18n-default-lang"/>
|
<code value="i18n-default-lang"/>
|
||||||
<value value="en"/>
|
<value value="en"/>
|
||||||
@@ -260,9 +175,5 @@
|
|||||||
<code value="translation-sources"/>
|
<code value="translation-sources"/>
|
||||||
<value value="input/translations-fr"/>
|
<value value="input/translations-fr"/>
|
||||||
</parameter>
|
</parameter>
|
||||||
<parameter>
|
|
||||||
<code value="fcp-approved-specification"/>
|
|
||||||
<value value="false"/>
|
|
||||||
</parameter>
|
|
||||||
</definition>
|
</definition>
|
||||||
</ImplementationGuide>
|
</ImplementationGuide>
|
||||||
@@ -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 http://id.who.int/icd/release/11/mms (preferred)
|
|
||||||
@@ -4,6 +4,8 @@ Title: "Bangladesh Immunization Reaction Code System"
|
|||||||
Description: "Codes for adverse reactions after vaccination in Bangladesh."
|
Description: "Codes for adverse reactions after vaccination in Bangladesh."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-reaction"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-reaction"
|
||||||
* ^status = #active
|
* ^status = #active
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
* ^content = #complete
|
* ^content = #complete
|
||||||
|
|
||||||
* #NONE "No Reaction"
|
* #NONE "No Reaction"
|
||||||
|
|||||||
@@ -6,6 +6,8 @@ Id: bd-blood-groups
|
|||||||
Title: "Bangladesh Blood Group CodeSystem"
|
Title: "Bangladesh Blood Group CodeSystem"
|
||||||
Description: "Blood group codes according to CCDS guideline"
|
Description: "Blood group codes according to CCDS guideline"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-blood-groups"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-blood-groups"
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
* ^content = #complete
|
* ^content = #complete
|
||||||
* #1 "O Positive"
|
* #1 "O Positive"
|
||||||
* #2 "O Negative"
|
* #2 "O Negative"
|
||||||
@@ -20,7 +22,7 @@ Description: "Blood group codes according to CCDS guideline"
|
|||||||
// ValueSet for BD Blood Groups
|
// ValueSet for BD Blood Groups
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
ValueSet: BDBloodGroupVS
|
ValueSet: BDBloodGroupVS
|
||||||
Id: bd-blood-group-vs
|
Id: bd-blood-group-valueset
|
||||||
Title: "Bangladesh Blood Group ValueSet"
|
Title: "Bangladesh Blood Group ValueSet"
|
||||||
Description: "Blood group value set according to CCDS guideline"
|
Description: "Blood group value set according to CCDS guideline"
|
||||||
* include codes from system BDBloodGroupCS
|
* include codes from system BDBloodGroupCS
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
CodeSystem: BDCountryListCS
|
CodeSystem: BDCountryListCS
|
||||||
Id: bd-country-list-cs
|
Id: bd-country-list
|
||||||
Title: "Nationality List"
|
Title: "Nationality List"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-country-list"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-country-list"
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
|
|
||||||
* #4 "Afghan"
|
* #4 "Afghan"
|
||||||
* #8 "Albanian"
|
* #8 "Albanian"
|
||||||
@@ -194,8 +196,8 @@ Title: "Nationality List"
|
|||||||
|
|
||||||
|
|
||||||
ValueSet: BDCountryListVS
|
ValueSet: BDCountryListVS
|
||||||
Id: bd-country-list-vs
|
Id: bd-country-list-valueset
|
||||||
Title: "Nationality ValueSet"
|
Title: "Nationality ValueSet"
|
||||||
Description: "Nationality value set"
|
Description: "Nationality value set"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-country-list"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-country-list-valueset"
|
||||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-country-list
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-country-list
|
||||||
|
|||||||
33
input/fsh/codeSystems/BDDGDADrugCS.fsh
Normal file
33
input/fsh/codeSystems/BDDGDADrugCS.fsh
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
CodeSystem: BDDGDADrugCS
|
||||||
|
Id: dgda-drug-registry
|
||||||
|
Title: "DGDA Drug Registry Code System"
|
||||||
|
Description: """
|
||||||
|
Code system representing the Drug Registration Authority (DGDA) of Bangladesh's
|
||||||
|
official drug registry. Concepts are maintained in the national OCL terminology
|
||||||
|
server at https://tr.ocl.dghs.gov.bd and are not enumerated within this
|
||||||
|
Implementation Guide.
|
||||||
|
|
||||||
|
This code system contains two concept classes:
|
||||||
|
- **Drug**: Finished pharmaceutical drug products (identified by DAR number and trade name)
|
||||||
|
- **Ingredient**: Raw material / active pharmaceutical ingredients
|
||||||
|
|
||||||
|
Concept IDs follow the format: {DAR-number}--{trade-name-slug}
|
||||||
|
Example: 353-0026-039--marvelous-fe
|
||||||
|
|
||||||
|
**Canonical URL note:** https://dgda.gov.bd/drug-registry is a logical identifier
|
||||||
|
only and does not resolve to a web endpoint.
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "https://dgda.gov.bd/drug-registry"
|
||||||
|
* ^version = "v1.0.0"
|
||||||
|
* ^status = #active
|
||||||
|
* ^experimental = false
|
||||||
|
* ^publisher = "Directorate General of Drug Administration (DGDA), Government of 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"
|
||||||
|
* ^content = #not-present
|
||||||
|
* ^count = 39196
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^valueSet = "https://dgda.gov.bd/fhir/ValueSet/registered-drugs"
|
||||||
@@ -1,8 +1,10 @@
|
|||||||
CodeSystem: BDGeoCodesCS
|
CodeSystem: BDGeoCodesCS
|
||||||
Id: bd-geocodes-cs
|
Id: bd-geocodes
|
||||||
Title: "Bangladesh GeoCodes CodeSystem"
|
Title: "Bangladesh GeoCodes CodeSystem"
|
||||||
Description: "Bangladesh GeoCodes"
|
Description: "Bangladesh GeoCodes"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes"
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
// DIvisions
|
// DIvisions
|
||||||
* #30 "Dhaka"
|
* #30 "Dhaka"
|
||||||
* #20 "Chattogram"
|
* #20 "Chattogram"
|
||||||
@@ -1601,10 +1603,10 @@ Description: "Bangladesh GeoCodes"
|
|||||||
* #4589009077 "Sreebardi Pourasabha"
|
* #4589009077 "Sreebardi Pourasabha"
|
||||||
|
|
||||||
ValueSet: BDDivisionsVS
|
ValueSet: BDDivisionsVS
|
||||||
Id: bd-division-code-vs
|
Id: bd-division-code-valueset
|
||||||
Title: "Bangladesh Division ValueSet"
|
Title: "Bangladesh Division ValueSet"
|
||||||
Description: "Bangladesh Division Codes (only two-digit codes)"
|
Description: "Bangladesh Division Codes (only two-digit codes)"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-divisions"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-division-code-valueset"
|
||||||
|
|
||||||
// include only codes that are exactly 2 digits
|
// include only codes that are exactly 2 digits
|
||||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
||||||
@@ -1612,10 +1614,10 @@ Description: "Bangladesh Division Codes (only two-digit codes)"
|
|||||||
|
|
||||||
|
|
||||||
ValueSet: BDDistrictsVS
|
ValueSet: BDDistrictsVS
|
||||||
Id: bd-district-code-vs
|
Id: bd-district-code-valueset
|
||||||
Title: "Bangladesh district ValueSet"
|
Title: "Bangladesh district ValueSet"
|
||||||
Description: "Bangladesh district Codes (only two-digit codes)"
|
Description: "Bangladesh district Codes (only two-digit codes)"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-districts"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-district-code-valueset"
|
||||||
|
|
||||||
// include only codes that are exactly 4 digits
|
// include only codes that are exactly 4 digits
|
||||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
||||||
@@ -1623,10 +1625,10 @@ Description: "Bangladesh district Codes (only two-digit codes)"
|
|||||||
|
|
||||||
|
|
||||||
ValueSet: BDCityCorporationsVS
|
ValueSet: BDCityCorporationsVS
|
||||||
Id: bd-city-corporations-code-vs
|
Id: bd-city-corporation-code-valueset
|
||||||
Title: "Bangladesh City Corperation ValueSet"
|
Title: "Bangladesh City Corperation ValueSet"
|
||||||
Description: "Bangladesh City Corperation Codes (only two-digit codes)"
|
Description: "Bangladesh City Corperation Codes (only two-digit codes)"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-city-corporations"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-city-corporation-code-valueset"
|
||||||
|
|
||||||
// include only codes that are exactly 6 digits
|
// include only codes that are exactly 6 digits
|
||||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
||||||
@@ -1634,20 +1636,20 @@ Description: "Bangladesh City Corperation Codes (only two-digit codes)"
|
|||||||
|
|
||||||
|
|
||||||
ValueSet: BDUpazillasVS
|
ValueSet: BDUpazillasVS
|
||||||
Id: bd-upazillas-code-vs
|
Id: bd-upazilla-code-valueset
|
||||||
Title: "Bangladesh Upazila ValueSet"
|
Title: "Bangladesh Upazila ValueSet"
|
||||||
Description: "Bangladesh Upazila Codes (only two-digit codes)"
|
Description: "Bangladesh Upazila Codes (only two-digit codes)"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-upazillas"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-upazilla-code-valueset"
|
||||||
|
|
||||||
// include only codes that are exactly 8 digits
|
// include only codes that are exactly 8 digits
|
||||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
||||||
where code regex "^[0-9]{8}$"
|
where code regex "^[0-9]{8}$"
|
||||||
|
|
||||||
ValueSet: BDMunicipalitiesVS
|
ValueSet: BDMunicipalitiesVS
|
||||||
Id: bd-municipalities-code-vs
|
Id: bd-municipalities-code-valueset
|
||||||
Title: "Bangladesh Municipalities ValueSet"
|
Title: "Bangladesh Municipalities ValueSet"
|
||||||
Description: "Bangladesh Municipalities Codes (only two-digit codes)"
|
Description: "Bangladesh Municipalities Codes (only two-digit codes)"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-municipalities"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-municipalities-code-valueset"
|
||||||
|
|
||||||
// include only codes that are exactly 10 digits
|
// include only codes that are exactly 10 digits
|
||||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
||||||
|
|||||||
24
input/fsh/codeSystems/BDIdentifierType.fsh
Normal file
24
input/fsh/codeSystems/BDIdentifierType.fsh
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
//// this code systems for Identifier types
|
||||||
|
|
||||||
|
CodeSystem: BangladeshIdentifierType
|
||||||
|
Id: bd-identifier-type
|
||||||
|
Title: "Bangladesh Identifier Types"
|
||||||
|
Description: "Codes identifying the type of identifiers used in Bangladesh."
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-identifier-type"
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
|
|
||||||
|
* #NID "National ID"
|
||||||
|
* #BRN "Birth Registration Number"
|
||||||
|
* #UHID "Unique Health ID"
|
||||||
|
|
||||||
|
|
||||||
|
ValueSet: BangladeshIdentifierTypeVS
|
||||||
|
Id: bd-identifier-type-valueset
|
||||||
|
Title: "Bangladesh Identifier Type"
|
||||||
|
Description: "Bangladesh Standard Identifier type"
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-identifier-type-valueset"
|
||||||
|
// * include codes from valueset http://hl7.org/fhir/ValueSet/identifier-type /// use name or uri
|
||||||
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-identifier-type
|
||||||
|
|
||||||
|
////////////// end identifier types
|
||||||
@@ -4,6 +4,8 @@ Title: "Bangladesh Immunization Site Code System"
|
|||||||
Description: "Codes for anatomical site of vaccine administration in Bangladesh."
|
Description: "Codes for anatomical site of vaccine administration in Bangladesh."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-site"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-site"
|
||||||
* ^status = #active
|
* ^status = #active
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
* ^content = #complete
|
* ^content = #complete
|
||||||
|
|
||||||
* #LA "Left Arm"
|
* #LA "Left Arm"
|
||||||
|
|||||||
@@ -1,8 +1,10 @@
|
|||||||
CodeSystem: BDMedicationCodeSystem
|
CodeSystem: BDMedicationCS
|
||||||
Id: bd-medication-cs
|
Id: bd-medication-code
|
||||||
Title: "Bangladesh Medication Codes"
|
Title: "Bangladesh Medication Codes"
|
||||||
Description: "Bangladesh Medication Codes"
|
Description: "Bangladesh Medication Codes"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-medication-code"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-medication-code"
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
// DGDA DAR Code "Brand Name"
|
// DGDA DAR Code "Brand Name"
|
||||||
* #394-0010-030 "Tubutol" "Ethambutol"
|
* #394-0010-030 "Tubutol" "Ethambutol"
|
||||||
* #394-0011-030 "AFDCDT-2" "Isoniazid + Rifampicin"
|
* #394-0011-030 "AFDCDT-2" "Isoniazid + Rifampicin"
|
||||||
@@ -16,7 +18,7 @@ Description: "Bangladesh Medication Codes"
|
|||||||
// ValueSet for BD Medication
|
// ValueSet for BD Medication
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
ValueSet: BDMedicationVS
|
ValueSet: BDMedicationVS
|
||||||
Id: bd-medication-vs
|
Id: bd-medication-valueset
|
||||||
Title: "Bangladesh Medication ValueSet"
|
Title: "Bangladesh Medication ValueSet"
|
||||||
Description: "Bangladesh Medication ValueSet"
|
Description: "Bangladesh Medication ValueSet"
|
||||||
* include codes from system BDMedicationCodeSystem
|
* include codes from system BDMedicationCS
|
||||||
@@ -30,12 +30,11 @@ Description: "Medication dose form codes according to CCDS guideline"
|
|||||||
"Low-viscosity liquid topical dosage form for external application."
|
"Low-viscosity liquid topical dosage form for external application."
|
||||||
|
|
||||||
|
|
||||||
// ---------------------------
|
// // ---------------------------
|
||||||
// ValueSet for BD Medication Dose Forms
|
// // ValueSet for BD Medication Dose Forms
|
||||||
// ---------------------------
|
// // ---------------------------
|
||||||
ValueSet: BDMedicationDoseFormVS
|
// ValueSet: BDMedicationDoseFormVS
|
||||||
Id: bd-dose-form-vs
|
// Id: bd-dose-form-valueset
|
||||||
Title: "Bangladesh Medication Dose Form ValueSet"
|
// Title: "Bangladesh Medication Dose Form ValueSet"
|
||||||
Description: "Medication dose form value set according to CCDS guideline"
|
// Description: "Medication dose form value set according to CCDS guideline"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-dose-form-vs"
|
// * ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-dose-form-valueset"
|
||||||
* include codes from system BDMedicationDoseForm
|
|
||||||
|
|||||||
@@ -1,83 +1,84 @@
|
|||||||
CodeSystem: BDOccupationsCS
|
CodeSystem: BDOccupationsCS
|
||||||
Id: bangladesh-occupations-cs
|
Id: bd-occupations
|
||||||
Title: "Bangladesh Occupations"
|
Title: "Bangladesh Occupations"
|
||||||
|
Description: "Occupations code system according to CCDS guideline"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-occupations"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-occupations"
|
||||||
|
|
||||||
* #1 "Physical Scientists & Related Technicians" "ভৌত বিজ্ঞানী ও এতদসংক্রান্ত টেকনিশিয়ান"
|
* #1 "Physical Scientists & Related Technicians" "ভৌত বিজ্ঞানী ও এতদসংক্রান্ত টেকনিশিয়ান"
|
||||||
* #2 "Engineering and Architects" "ইঞ্জিয়ারিং ও স্থপতি "
|
* #2 "Engineering and Architects" "ইঞ্জিয়ারিং ও স্থপতি"
|
||||||
* #3 "Engineering and Architect-related Technicians" "ইঞ্জিয়ারিং ও স্থপতি সম্পর্কিত টেকনিশিয়ান "
|
* #3 "Engineering and Architect-related Technicians" "ইঞ্জিয়ারিং ও স্থপতি সম্পর্কিত টেকনিশিয়ান"
|
||||||
* #4 "Officers of Aircraft and Ship" "বিমান ও জাহাজের কর্মকর্তা "
|
* #4 "Officers of Aircraft and Ship" "বিমান ও জাহাজের কর্মকর্তা"
|
||||||
* #5 "Biologists and Related Technicians" "জীববিজ্ঞানী ও এতদসংক্রান্ত টেকনিশিয়ান "
|
* #5 "Biologists and Related Technicians" "জীববিজ্ঞানী ও এতদসংক্রান্ত টেকনিশিয়ান"
|
||||||
* #6 "Physicians, Dentists, and Veterinarians" "চিকিৎসক, দন্ত চিকিৎসক ও পশু চিকিৎসক "
|
* #6 "Physicians, Dentists, and Veterinarians" "চিকিৎসক, দন্ত চিকিৎসক ও পশু চিকিৎসক"
|
||||||
* #7 "Nurses and Other Medical Staffs" "নার্স ও চিকিৎসক সংক্রান্ত অন্যান্য কর্মী "
|
* #7 "Nurses and Other Medical Staffs" "নার্স ও চিকিৎসক সংক্রান্ত অন্যান্য কর্মী"
|
||||||
* #8 "Statisticians, Mathematicians, System Analysts, and Related Staff" "পরিসংখ্যানবিদ, গণিতবিদ, সিস্টেম এনালিস্ট ও এতদসংক্রান্ত কর্মী "
|
* #8 "Statisticians, Mathematicians, System Analysts, and Related Staff" "পরিসংখ্যানবিদ, গণিতবিদ, সিস্টেম এনালিস্ট ও এতদসংক্রান্ত কর্মী"
|
||||||
* #9 "Economists" "অর্থনীতিবিদ"
|
* #9 "Economists" "অর্থনীতিবিদ"
|
||||||
* #10 "Accountants" "হিসাবরক্ষক"
|
* #10 "Accountants" "হিসাবরক্ষক"
|
||||||
* #12 "Judges" "বিচারক"
|
* #12 "Judges" "বিচারক"
|
||||||
* #13 "Teachers" "শিক্ষক"
|
* #13 "Teachers" "শিক্ষক"
|
||||||
* #14 "Religious Workers" "ধর্মীয় কর্মী"
|
* #14 "Religious Workers" "ধর্মীয় কর্মী"
|
||||||
* #15 "Writers, Journalists, and Related Staffs" "লেখক, সাংবাদিক ও এতদসম্পর্কিত কর্মী "
|
* #15 "Writers, Journalists, and Related Staffs" "লেখক, সাংবাদিক ও এতদসম্পর্কিত কর্মী"
|
||||||
* #16 "Painters, Photographers, and Other Creative Artists" "চিত্রশিল্পী, ফটোগ্রাফার ও এতদসংক্রান্ত সৃজনশীল শিল্পী "
|
* #16 "Painters, Photographers, and Other Creative Artists" "চিত্রশিল্পী, ফটোগ্রাফার ও এতদসংক্রান্ত সৃজনশীল শিল্পী"
|
||||||
* #17 "Actors, Singers, and Dancers" "অভিনয়, কণ্ঠশিল্পী ও নৃত্যশিল্পী "
|
* #17 "Actors, Singers, and Dancers" "অভিনয়, কণ্ঠশিল্পী ও নৃত্যশিল্পী"
|
||||||
* #18 "Sportspersons and Related Staffs" "খেলোয়াড় এবং এতদসম্পর্কিত কর্মী "
|
* #18 "Sportspersons and Related Staffs" "খেলোয়াড় এবং এতদসম্পর্কিত কর্মী"
|
||||||
* #19 "Professional, Technical, and Other Related Workers (not elsewhere classified)" "পেশাগত, কারিগরি ও অন্যান্য অশ্রেণীভুক্ত এতদসম্পর্কিত কর্মী "
|
* #19 "Professional, Technical, and Other Related Workers (not elsewhere classified)" "পেশাগত, কারিগরি ও অন্যান্য অশ্রেণীভুক্ত এতদসম্পর্কিত কর্মী"
|
||||||
* #20 "Lawyers" "আইনজীবী"
|
* #20 "Lawyers" "আইনজীবী"
|
||||||
* #21 "Managers" "ম্যানেজার"
|
* #21 "Managers" "ম্যানেজার"
|
||||||
* #30 "Government Executive Officers" "সরকারি নির্বাহী কর্মকর্তা "
|
* #30 "Government Executive Officers" "সরকারি নির্বাহী কর্মকর্তা"
|
||||||
* #31 "Clerks" "করণিক (কেরানী)"
|
* #31 "Clerks" "করণিক (কেরানী)"
|
||||||
* #32 "Typists, Stenographers and Computer Operators" "টাইপিস্ট/স্টেনোগ্রাফার/কম্পিউটার অপারেটর"
|
* #32 "Typists, Stenographers and Computer Operators" "টাইপিস্ট/স্টেনোগ্রাফার/কম্পিউটার অপারেটর"
|
||||||
* #33 "Record Keepers, Cahiers and Related Staffs" "রেকর্ড কিপার, ক্যাশিয়ার ও এতদসম্পর্কিত কর্মী"
|
* #33 "Record Keepers, Cahiers and Related Staffs" "রেকর্ড কিপার, ক্যাশিয়ার ও এতদসম্পর্কিত কর্মী"
|
||||||
* #34 "Computer Professionals and Associate Staffs" "কম্পিউটার সম্পর্কিত কর্মী "
|
* #34 "Computer Professionals and Associate Staffs" "কম্পিউটার সম্পর্কিত কর্মী"
|
||||||
* #35 "Transport and Communication Supervisors" "যানবাহন ও যোগাযোগ তত্ত্বাবধায়ক "
|
* #35 "Transport and Communication Supervisors" "যানবাহন ও যোগাযোগ তত্ত্বাবধায়ক"
|
||||||
* #36 "Drivers and Conductors (Mechanical and Manual)" "গাড়িচালক ও কন্টাক্টর (যান্ত্রিক ও কায়িক) "
|
* #36 "Drivers and Conductors (Mechanical and Manual)" "গাড়িচালক ও কন্টাক্টর (যান্ত্রিক ও কায়িক)"
|
||||||
* #37 "Mail Carriers / Postmen" "চিঠিপত্র বিলি (ডাক পিয়ন) "
|
* #37 "Mail Carriers / Postmen" "চিঠিপত্র বিলি (ডাক পিয়ন)"
|
||||||
* #38 "Telephone and Telegraph Operators" "টেলিফোন ও টেলিগ্রাফ অপারেটর"
|
* #38 "Telephone and Telegraph Operators" "টেলিফোন ও টেলিগ্রাফ অপারেটর"
|
||||||
* #39 "Clerical Work, Not Elsewhere Classified" "অশ্রেণীভুক্ত দাপ্তরিক কাজ "
|
* #39 "Clerical Work, Not Elsewhere Classified" "অশ্রেণীভুক্ত দাপ্তরিক কাজ"
|
||||||
* #40 "Managers in Wholesale and Retail Trade" "ম্যানেজার (পাইকারি ও খুচরা ব্যাবসা) "
|
* #40 "Managers in Wholesale and Retail Trade" "ম্যানেজার (পাইকারি ও খুচরা ব্যাবসা)"
|
||||||
* #42 "Sales Supervisors" "বিক্রয় তত্ত্বাবধায়ক"
|
* #42 "Sales Supervisors" "বিক্রয় তত্ত্বাবধায়ক"
|
||||||
* #43 "Travel Attendants and Related Workers" "ভ্রমণ সংক্রান্ত কাজে নিয়োজিত কর্মী "
|
* #43 "Travel Attendants and Related Workers" "ভ্রমণ সংক্রান্ত কাজে নিয়োজিত কর্মী"
|
||||||
* #44 "Salespersons in Insurance, Real Estate, Business, and Related Services" "বীমা, রিয়েল এস্টেট, ব্যাবসা এবং এতদসংক্রান্ত সেবা বিক্রেতা "
|
* #44 "Salespersons in Insurance, Real Estate, Business, and Related Services" "বীমা, রিয়েল এস্টেট, ব্যাবসা এবং এতদসংক্রান্ত সেবা বিক্রেতা"
|
||||||
* #45 "Street and Market Salespersons" "ফেরিওয়ালা "
|
* #45 "Street and Market Salespersons" "ফেরিওয়ালা"
|
||||||
* #46 "Sales Workers, Not Elsewhere Classified" "অশ্রেণীভুক্ত বিক্রয়কর্মী "
|
* #46 "Sales Workers, Not Elsewhere Classified" "অশ্রেণীভুক্ত বিক্রয়কর্মী"
|
||||||
* #50 "Hotel and Lodging Managers" "আবাসিক হোটেল ম্যানেজার "
|
* #50 "Hotel and Lodging Managers" "আবাসিক হোটেল ম্যানেজার"
|
||||||
* #51 "Hotel Proprietors" "হোটেল মালিক "
|
* #51 "Hotel Proprietors" "হোটেল মালিক"
|
||||||
* #52 "Residential Hotel Supervisors" "আবাসিক হোটেল তত্ত্বাবধায়ক"
|
* #52 "Residential Hotel Supervisors" "আবাসিক হোটেল তত্ত্বাবধায়ক"
|
||||||
* #53 "Cooks, Waiters, and Related Hotel Workers" "বাবুর্চি, হোটেল বয় ও এতদসম্পর্কিত কর্মী "
|
* #53 "Cooks, Waiters, and Related Hotel Workers" "বাবুর্চি, হোটেল বয় ও এতদসম্পর্কিত কর্মী"
|
||||||
* #54 "Unclassified Housemaids" "অশ্রেণীভুক্ত গৃহ পরিচারিকা "
|
* #54 "Unclassified Housemaids" "অশ্রেণীভুক্ত গৃহ পরিচারিকা"
|
||||||
* #55 "Caretakers, Janitors, and Related Domestic Workers" "বাড়ির কেয়ারটেকার, ঝাড়ুদার ও এতদসম্পর্কিত কর্মী "
|
* #55 "Caretakers, Janitors, and Related Domestic Workers" "বাড়ির কেয়ারটেকার, ঝাড়ুদার ও এতদসম্পর্কিত কর্মী"
|
||||||
* #56 "Laundry Workers" "ধোপা "
|
* #56 "Laundry Workers" "ধোপা"
|
||||||
* #58 "Security Guards" "নিরাপত্তা কর্মী "
|
* #58 "Security Guards" "নিরাপত্তা কর্মী"
|
||||||
* #59 "Unclassified Service Workers" "অশ্রেণীভুক্ত সেবা কর্মী "
|
* #59 "Unclassified Service Workers" "অশ্রেণীভুক্ত সেবা কর্মী"
|
||||||
* #60 "Agricultural Farm Managers and Supervisors" "কৃষিখামার ব্যবস্থাপক ও তত্ত্বাবধায়ক "
|
* #60 "Agricultural Farm Managers and Supervisors" "কৃষিখামার ব্যবস্থাপক ও তত্ত্বাবধায়ক"
|
||||||
* #61 "Crop and Livestock Farmers" "কৃষিকাজ "
|
* #61 "Crop and Livestock Farmers" "কৃষিকাজ"
|
||||||
* #63 "Forestry Workers" "বন কর্মী "
|
* #63 "Forestry Workers" "বন কর্মী"
|
||||||
* #64 "Fishers, Hunters, and Related Workers" "জেলে, শিকারি ও এতদসম্পর্কিত কর্মী "
|
* #64 "Fishers, Hunters, and Related Workers" "জেলে, শিকারি ও এতদসম্পর্কিত কর্মী"
|
||||||
* #70 "Production Supervisors and Foremen" "উৎপাদন তত্ত্বাবধায়ক ও ফোরম্যান "
|
* #70 "Production Supervisors and Foremen" "উৎপাদন তত্ত্বাবধায়ক ও ফোরম্যান"
|
||||||
* #71 "Miners and Quarry Workers" "খননকর্মী ও খননকারী "
|
* #71 "Miners and Quarry Workers" "খননকর্মী ও খননকারী"
|
||||||
* #72 "Metal Processing and Finishing Workers" "ধাতু প্রক্রিয়াকারী "
|
* #72 "Metal Processing and Finishing Workers" "ধাতু প্রক্রিয়াকারী"
|
||||||
* #74 "Chemical Products Processing Workers" "রাসায়নিক দ্রব্য প্রক্রিয়াকারী "
|
* #74 "Chemical Products Processing Workers" "রাসায়নিক দ্রব্য প্রক্রিয়াকারী"
|
||||||
* #75 "Weavers, Knitters, Dyers, and Related Textile Workers" "তাঁতী, কাপড় বোনা ও রং করা "
|
* #75 "Weavers, Knitters, Dyers, and Related Textile Workers" "তাঁতী, কাপড় বোনা ও রং করা"
|
||||||
* #76 "Tanners and Leather Processing Workers" "চামড়া প্রক্রিয়াকারী "
|
* #76 "Tanners and Leather Processing Workers" "চামড়া প্রক্রিয়াকারী"
|
||||||
* #77 "Food and Beverage Processing Plant Operators" "খাদ্য ও পানীয় প্রক্রিয়াকারী "
|
* #77 "Food and Beverage Processing Plant Operators" "খাদ্য ও পানীয় প্রক্রিয়াকারী"
|
||||||
* #78 "Tobacco Preparers and Tobacco Processing Workers" "তামাক প্রক্রিয়াকারী "
|
* #78 "Tobacco Preparers and Tobacco Processing Workers" "তামাক প্রক্রিয়াকারী"
|
||||||
* #79 "Tailors, Dressmakers, and Sewing Workers" "দর্জি ও অন্যান্য সেলাই কর্মী "
|
* #79 "Tailors, Dressmakers, and Sewing Workers" "দর্জি ও অন্যান্য সেলাই কর্মী"
|
||||||
* #80 "Footwear and Leather Goods Makers" "জুতা ও চামড়াজাত দ্রব্য প্রস্তুতকারী "
|
* #80 "Footwear and Leather Goods Makers" "জুতা ও চামড়াজাত দ্রব্য প্রস্তুতকারী"
|
||||||
* #81 "Carpenters" "কাঠমিস্ত্রি "
|
* #81 "Carpenters" "কাঠমিস্ত্রি"
|
||||||
* #82 "Stone Cutters and Processing Workers" "পাথর কাটা ও প্রক্রিয়াকারী "
|
* #82 "Stone Cutters and Processing Workers" "পাথর কাটা ও প্রক্রিয়াকারী"
|
||||||
* #83 "Blacksmiths, Toolmakers, and Related Trades Workers" "কর্মকার, ঢালাইকর্মী ও যন্ত্রাংশ প্রস্তুতকারী "
|
* #83 "Blacksmiths, Toolmakers, and Related Trades Workers" "কর্মকার, ঢালাইকর্মী ও যন্ত্রাংশ প্রস্তুতকারী"
|
||||||
* #84 "Non-Electrical Machine Operators" "বৈদ্যুতিক ব্যতীত অন্যান্য মেশিনকর্মী "
|
* #84 "Non-Electrical Machine Operators" "বৈদ্যুতিক ব্যতীত অন্যান্য মেশিনকর্মী"
|
||||||
* #85 "Electricians" "বৈদ্যুতিক কর্মী"
|
* #85 "Electricians" "বৈদ্যুতিক কর্মী"
|
||||||
* #86 "Broadcasting and Audio-Visual Technicians" "শব্দ প্রচার কর্মী ও চলচ্চিত্র প্রদর্শনকারী "
|
* #86 "Broadcasting and Audio-Visual Technicians" "শব্দ প্রচার কর্মী ও চলচ্চিত্র প্রদর্শনকারী"
|
||||||
* #87 "Water and Sewerage Construction Workers and Welders" "পানি ও পয়োঃ নিষ্কাশন কাঠামো নির্মাণকারী ও ধাতু ঝালাইকারী "
|
* #87 "Water and Sewerage Construction Workers and Welders" "পানি ও পয়োঃ নিষ্কাশন কাঠামো নির্মাণকারী ও ধাতু ঝালাইকারী"
|
||||||
* #88 "Jewellery and Precious Metal Workers" "স্বর্ণকার "
|
* #88 "Jewellery and Precious Metal Workers" "স্বর্ণকার"
|
||||||
* #89 "Glass, Pottery, and Related Trades Workers" "গ্লাস ও মাটির জিনিস প্রস্তুতকারী "
|
* #89 "Glass, Pottery, and Related Trades Workers" "গ্লাস ও মাটির জিনিস প্রস্তুতকারী"
|
||||||
* #90 "Rubber and Plastic Products Makers" "রাবার ও প্লাস্টিক দ্রব্য প্রস্তুতকারী"
|
* #90 "Rubber and Plastic Products Makers" "রাবার ও প্লাস্টিক দ্রব্য প্রস্তুতকারী"
|
||||||
* #91 "Paper and Paperboard Products Workers" "কাগজ ও কাগজের বোর্ড প্রস্তুতকারী "
|
* #91 "Paper and Paperboard Products Workers" "কাগজ ও কাগজের বোর্ড প্রস্তুতকারী"
|
||||||
* #92 "Printers and Related Workers" "মুদ্রণকাজ"
|
* #92 "Printers and Related Workers" "মুদ্রণকাজ"
|
||||||
|
|
||||||
ValueSet: BDOccupationsVS
|
ValueSet: BDOccupationsVS
|
||||||
Id: bd-occupations-vs
|
Id: bd-occupations-valueset
|
||||||
Title: "Bangladesh Occupations ValueSet"
|
Title: "Bangladesh Occupations ValueSet"
|
||||||
Description: "Occupations value set according to CCDS guideline"
|
Description: "Occupations value set according to CCDS guideline"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-occupations"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-occupations-valueset"
|
||||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-occupations
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-occupations
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
//codeSystems/bd-regions.fsh
|
//codeSystems/bd-regions.fsh
|
||||||
CodeSystem: BDReligionsCS
|
CodeSystem: BDReligionsCS
|
||||||
Id: bangladesh-religions-cs
|
Id: bd-religions
|
||||||
Title: "Bangladesh Religions"
|
Title: "Bangladesh Religions"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-religions"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-religions"
|
||||||
|
|
||||||
@@ -13,8 +13,8 @@ Title: "Bangladesh Religions"
|
|||||||
* #0 "Other (specify)" "Other religion (to be specified in free text)"
|
* #0 "Other (specify)" "Other religion (to be specified in free text)"
|
||||||
|
|
||||||
ValueSet: BDReligionsVS
|
ValueSet: BDReligionsVS
|
||||||
Id: bd-religions-vs
|
Id: bd-religions-valueset
|
||||||
Title: "Bangladesh Religions ValueSet"
|
Title: "Bangladesh Religions ValueSet"
|
||||||
Description: "Religions value set according to CCDS guideline"
|
Description: "Religions value set according to CCDS guideline"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-religions"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-religions-valueset"
|
||||||
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-religions
|
* include codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-religions
|
||||||
|
|||||||
@@ -4,6 +4,8 @@ Title: "Bangladesh Vaccine Code System"
|
|||||||
Description: "Vaccine codes used in Bangladesh EPI and immunization program."
|
Description: "Vaccine codes used in Bangladesh EPI and immunization program."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-vaccine-code"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-vaccine-code"
|
||||||
* ^status = #active
|
* ^status = #active
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
* ^content = #complete
|
* ^content = #complete
|
||||||
|
|
||||||
* #BCG "BCG Vaccine"
|
* #BCG "BCG Vaccine"
|
||||||
|
|||||||
47
input/fsh/codeSystems/ICD11MMSCS.fsh
Normal file
47
input/fsh/codeSystems/ICD11MMSCS.fsh
Normal file
@@ -0,0 +1,47 @@
|
|||||||
|
// ============================================================
|
||||||
|
// CodeSystem-icd11-mms.fsh
|
||||||
|
// ICD-11 Mortality and Morbidity Statistics (MMS) — stub only
|
||||||
|
// Content is hosted externally; canonical authority is WHO.
|
||||||
|
// Runtime resolution via OCL: https://tr.ocl.dghs.gov.bd
|
||||||
|
// ============================================================
|
||||||
|
|
||||||
|
CodeSystem: ICD11MMSCS
|
||||||
|
Id: icd11-mms
|
||||||
|
Title: "ICD-11 Mortality and Morbidity Statistics (MMS)"
|
||||||
|
Description: """
|
||||||
|
WHO ICD-11 Mortality and Morbidity Statistics linearization.
|
||||||
|
Canonical system URI: http://id.who.int/icd/release/11/mms
|
||||||
|
|
||||||
|
This CodeSystem is declared as a stub (content = #not-present).
|
||||||
|
The authoritative content is maintained by the World Health Organization.
|
||||||
|
In Bangladesh, runtime code validation and lookup are delegated to the
|
||||||
|
national OCL terminology server at https://tr.ocl.dghs.gov.bd.
|
||||||
|
|
||||||
|
Supported 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. Expansion must not be
|
||||||
|
attempted at build time or by IG Publisher.
|
||||||
|
|
||||||
|
Preferred code form: short stem codes (e.g. 1A00, NC72.Z).
|
||||||
|
Linearization URIs are not used as code identifiers in this IG.
|
||||||
|
|
||||||
|
Version 2025-01 is imported into OCL with 36,941 concepts across
|
||||||
|
the following concept classes: Diagnosis, Finding, Substance, Organism,
|
||||||
|
Device, Anatomy, Misc.
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "http://id.who.int/icd/release/11/mms"
|
||||||
|
* ^version = "2025-01"
|
||||||
|
* ^status = #active
|
||||||
|
* ^experimental = false
|
||||||
|
* ^publisher = "World Health Organization (WHO)"
|
||||||
|
* ^contact.name = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||||
|
* ^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."
|
||||||
|
* ^content = #not-present
|
||||||
|
* ^count = 36941
|
||||||
|
* ^caseSensitive = true
|
||||||
@@ -4,6 +4,8 @@ Title: "Bangladesh Immunization Route Code System"
|
|||||||
Description: "Codes for routes of vaccine administration in Bangladesh."
|
Description: "Codes for routes of vaccine administration in Bangladesh."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-route"
|
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-route"
|
||||||
* ^status = #active
|
* ^status = #active
|
||||||
|
* ^caseSensitive = true
|
||||||
|
* ^experimental = false
|
||||||
* ^content = #complete
|
* ^content = #complete
|
||||||
|
|
||||||
* #IM "Intramuscular"
|
* #IM "Intramuscular"
|
||||||
|
|||||||
25
input/fsh/examples/BDEncounterExample.fsh
Normal file
25
input/fsh/examples/BDEncounterExample.fsh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
Instance: BDEncounterExample
|
||||||
|
InstanceOf: BDEncounter
|
||||||
|
Usage: #example
|
||||||
|
Title: "Example of a Bangladesh Patient Encounter"
|
||||||
|
Description: "An example of an outpatient encounter for a Bangladesh patient."
|
||||||
|
|
||||||
|
* identifier[0].value = "ENC-2023-001"
|
||||||
|
* identifier[0].system = "https://fhir.dghs.gov.bd/core/identifier/encounter"
|
||||||
|
|
||||||
|
* status = #finished
|
||||||
|
|
||||||
|
// Must use a code from your BDEncounterClassSubsetVS
|
||||||
|
// Example using standard HL7 ActCode for ambulatory (outpatient)
|
||||||
|
* class = http://terminology.hl7.org/CodeSystem/v3-ActCode#AMB "ambulatory"
|
||||||
|
|
||||||
|
// Reference the patient example we created in the previous step
|
||||||
|
* subject = Reference(BDPatientExample)
|
||||||
|
|
||||||
|
// serviceProvider is 1..1 in your profile
|
||||||
|
* serviceProvider = Reference(BDOrganizationExample)
|
||||||
|
|
||||||
|
// participant and participant.period are 1..1
|
||||||
|
* participant[0].individual = Reference(BDPractitionerExample)
|
||||||
|
* participant[0].period.start = "2023-10-27T10:00:00Z"
|
||||||
|
* participant[0].period.end = "2023-10-27T10:30:00Z"
|
||||||
33
input/fsh/examples/BDMedicationExample.fsh
Normal file
33
input/fsh/examples/BDMedicationExample.fsh
Normal file
@@ -0,0 +1,33 @@
|
|||||||
|
Instance: BDMedicationExample
|
||||||
|
InstanceOf: BDMedication
|
||||||
|
Title: "Medication Example — Marvelous Fe (Combination Drug)"
|
||||||
|
Description: """
|
||||||
|
Example BDMedication instance for Marvelous Fe, a combination drug containing
|
||||||
|
ferrous sulphate and folic acid. Demonstrates multi-ingredient handling with
|
||||||
|
ICD-11 MMS substance codes populated from OCL Has-active-ingredient mappings.
|
||||||
|
Dose form coded using EDQM Standard Terms.
|
||||||
|
"""
|
||||||
|
Usage: #example
|
||||||
|
|
||||||
|
* code.coding[0].system = "https://dgda.gov.bd/drug-registry"
|
||||||
|
* code.coding[0].code = #353-0026-039--marvelous-fe
|
||||||
|
* code.coding[0].display = "Marvelous Fe"
|
||||||
|
* code.text = "Marvelous Fe"
|
||||||
|
|
||||||
|
* form.coding[0].system = "http://standardterms.edqm.eu"
|
||||||
|
* form.coding[0].code = #10219000
|
||||||
|
* form.coding[0].display = "Tablet"
|
||||||
|
|
||||||
|
// Ingredient 1: Ferrous Sulphate → ICD-11 XM substance code
|
||||||
|
* ingredient[0].itemCodeableConcept.coding[0].system = "http://id.who.int/icd/release/11/mms"
|
||||||
|
* ingredient[0].itemCodeableConcept.coding[0].code = #XM3SQ1
|
||||||
|
* ingredient[0].itemCodeableConcept.coding[0].display = "Ferrous sulphate"
|
||||||
|
* ingredient[0].itemCodeableConcept.text = "Ferrous sulphate"
|
||||||
|
* ingredient[0].isActive = true
|
||||||
|
|
||||||
|
// Ingredient 2: Folic Acid → ICD-11 XM substance code
|
||||||
|
* ingredient[1].itemCodeableConcept.coding[0].system = "http://id.who.int/icd/release/11/mms"
|
||||||
|
* ingredient[1].itemCodeableConcept.coding[0].code = #XM7R82
|
||||||
|
* ingredient[1].itemCodeableConcept.coding[0].display = "Folic acid"
|
||||||
|
* ingredient[1].itemCodeableConcept.text = "Folic acid"
|
||||||
|
* ingredient[1].isActive = true
|
||||||
41
input/fsh/examples/BDMedicationRequestExample.fsh
Normal file
41
input/fsh/examples/BDMedicationRequestExample.fsh
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
Instance: BDMedicationRequestExample
|
||||||
|
InstanceOf: BDMedicationRequest
|
||||||
|
Title: "Medication Request Example — Marvelous Fe Prescription"
|
||||||
|
Description: """
|
||||||
|
Example BDMedicationRequest instance prescribing Marvelous Fe. Demonstrates
|
||||||
|
the full prescription chain: BDMedicationRequest → BDMedication → DGDA code
|
||||||
|
→ ICD-11 substance ingredients. Route of administration coded using HL7 v3
|
||||||
|
RouteOfAdministration.
|
||||||
|
"""
|
||||||
|
Usage: #example
|
||||||
|
|
||||||
|
* identifier[0].system = "https://fhir.dghs.gov.bd/identifier/prescription"
|
||||||
|
* identifier[0].value = "RX-2024-BD-000001"
|
||||||
|
|
||||||
|
* status = #active
|
||||||
|
* intent = #order
|
||||||
|
|
||||||
|
* medicationReference = Reference(BDMedicationExample)
|
||||||
|
|
||||||
|
* subject = Reference(BDPatientExample)
|
||||||
|
* subject.display = "Example Patient"
|
||||||
|
|
||||||
|
* encounter = Reference(BDEncounterExample)
|
||||||
|
* encounter.display = "Example Outpatient Encounter"
|
||||||
|
|
||||||
|
* authoredOn = "2024-11-01T10:30:00+06:00"
|
||||||
|
|
||||||
|
* requester = Reference(BDPractitionerExample)
|
||||||
|
* requester.display = "Example Practitioner"
|
||||||
|
|
||||||
|
* dosageInstruction[0].text = "Take 1 tablet daily after meals"
|
||||||
|
* dosageInstruction[0].timing.repeat.frequency = 1
|
||||||
|
* dosageInstruction[0].timing.repeat.period = 1
|
||||||
|
* dosageInstruction[0].timing.repeat.periodUnit = #d
|
||||||
|
* dosageInstruction[0].route.coding[0].system = "http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration"
|
||||||
|
* dosageInstruction[0].route.coding[0].code = #PO
|
||||||
|
* dosageInstruction[0].route.coding[0].display = "Swallow, oral"
|
||||||
|
* dosageInstruction[0].doseAndRate[0].doseQuantity.value = 1
|
||||||
|
* dosageInstruction[0].doseAndRate[0].doseQuantity.unit = "tablet"
|
||||||
|
* dosageInstruction[0].doseAndRate[0].doseQuantity.system = "http://unitsofmeasure.org"
|
||||||
|
* dosageInstruction[0].doseAndRate[0].doseQuantity.code = #{tbl}
|
||||||
22
input/fsh/examples/BDOrganizationExample.fsh
Normal file
22
input/fsh/examples/BDOrganizationExample.fsh
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
Instance: BDOrganizationExample
|
||||||
|
InstanceOf: BDOrganization
|
||||||
|
Usage: #example
|
||||||
|
Title: "Dhaka Medical College Hospital"
|
||||||
|
Description: "Example for DMCH using the Facility Code 10000033"
|
||||||
|
|
||||||
|
// Strictly following 'identifier 1..* MS' from your profile
|
||||||
|
* identifier[0].value = "10000033"
|
||||||
|
* identifier[0].system = "http://hrm.dghs.gov.bd/facilities/code" // Using a generic DGHS system
|
||||||
|
* identifier[0].type = http://terminology.hl7.org/CodeSystem/v2-0203#FI "Facility ID"
|
||||||
|
|
||||||
|
* name = "Dhaka Medical College Hospital"
|
||||||
|
|
||||||
|
// Standard FHIR Address fields (No 'division' as a top-level field)
|
||||||
|
* address[0].line = "100 Ramna"
|
||||||
|
* address[0].city = "Dhaka"
|
||||||
|
* address[0].district = "Dhaka"
|
||||||
|
* address[0].country = "BD"
|
||||||
|
|
||||||
|
// To include Division without a 'does not exist' error, use the extension syntax:
|
||||||
|
* address[0].extension[0].url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-division"
|
||||||
|
* address[0].extension[0].valueCodeableConcept = https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes#30 "Dhaka"
|
||||||
39
input/fsh/examples/BDPatientExample.fsh
Normal file
39
input/fsh/examples/BDPatientExample.fsh
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
Instance: BDPatientExample
|
||||||
|
InstanceOf: BDPatient
|
||||||
|
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
|
||||||
|
* 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 = "আবুল কাশেম"
|
||||||
|
|
||||||
|
// Required Gender and BirthDate (for clinical completeness)
|
||||||
|
* 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].value = "1234567890"
|
||||||
|
|
||||||
|
// --- 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].country = "BD"
|
||||||
|
|
||||||
|
// The "Division" extension (Must match the name in BDAddress)
|
||||||
|
* 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"
|
||||||
|
|
||||||
|
// Optional Religion Extension
|
||||||
|
* extension[religion].valueCodeableConcept = https://fhir.dghs.gov.bd/core/CodeSystem/bd-religions-cs#islam "Islam"
|
||||||
25
input/fsh/examples/BDPractitionerExample.fsh
Normal file
25
input/fsh/examples/BDPractitionerExample.fsh
Normal file
@@ -0,0 +1,25 @@
|
|||||||
|
Instance: BDPractitionerExample
|
||||||
|
InstanceOf: BDPractitioner
|
||||||
|
Usage: #example
|
||||||
|
Title: "Example of a Bangladesh Practitioner"
|
||||||
|
Description: "A licensed physician example for the Bangladesh HIE."
|
||||||
|
|
||||||
|
// Required Identifier (1..* MS)
|
||||||
|
// Using BMDC (Bangladesh Medical & Dental Council) registration number
|
||||||
|
* identifier[0].system = "https://fhir.dghs.gov.bd/core/identifier/bmdc-registration"
|
||||||
|
* identifier[0].value = "A-12345"
|
||||||
|
* identifier[0].type = http://terminology.hl7.org/CodeSystem/v2-0203#MD "Medical License number"
|
||||||
|
|
||||||
|
// Recommended Name
|
||||||
|
* name[0].use = #official
|
||||||
|
* name[0].family = "Ahmed"
|
||||||
|
* name[0].given[0] = "Tanvir"
|
||||||
|
* name[0].prefix[0] = "Dr."
|
||||||
|
|
||||||
|
// Contact Information
|
||||||
|
* telecom[0].system = #phone
|
||||||
|
* telecom[0].value = "+8801712345678"
|
||||||
|
* telecom[0].use = #work
|
||||||
|
|
||||||
|
// Gender (Commonly used in health records)
|
||||||
|
* gender = #male
|
||||||
@@ -6,5 +6,5 @@ Description: "BD Division"
|
|||||||
Context: Address
|
Context: Address
|
||||||
|
|
||||||
|
|
||||||
* value[x] only string
|
* value[x] only CodeableConcept
|
||||||
* value[x] from BDDivisionsVS
|
* valueCodeableConcept from BDDivisionsVS (required)
|
||||||
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,4 +1,13 @@
|
|||||||
Extension: Nationality
|
Extension: Nationality
|
||||||
Id: nationality
|
Id: nationality
|
||||||
Title: "patient Nationality"
|
Title: "Patient Nationality"
|
||||||
Description: "Nationality"
|
Description: "Nationality of the patient based on Bangladesh country list."
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/nationality"
|
||||||
|
|
||||||
|
// Define where this extension can be used
|
||||||
|
* ^context[0].type = #element
|
||||||
|
* ^context[0].expression = "Patient"
|
||||||
|
|
||||||
|
// Only one value, bound to your ValueSet
|
||||||
|
* value[x] only CodeableConcept
|
||||||
|
* valueCodeableConcept from https://fhir.dghs.gov.bd/core/ValueSet/bd-country-list-valueset (required)
|
||||||
@@ -7,5 +7,5 @@ Context: Patient
|
|||||||
|
|
||||||
// occupation using standard HL7 extension
|
// occupation using standard HL7 extension
|
||||||
* value[x] only string
|
* value[x] only string
|
||||||
* value[x] from https://fhir.dghs.gov.bd/core/ValueSet/bd-occupations (required)
|
* value[x] from https://fhir.dghs.gov.bd/core/ValueSet/bd-occupations-valueset (required)
|
||||||
|
|
||||||
|
|||||||
@@ -6,5 +6,5 @@ Description: "BD Upazilla"
|
|||||||
Context: Address
|
Context: Address
|
||||||
|
|
||||||
|
|
||||||
* value[x] only string
|
* value[x] only CodeableConcept
|
||||||
* value[x] from BDUpazillasVS
|
* valueCodeableConcept from BDUpazillasVS (required)
|
||||||
@@ -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 (required)
|
||||||
|
* 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
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
|
|
||||||
Profile: BDEncounterProfile
|
Profile: BDEncounter
|
||||||
Id: bd-encounter
|
Id: bd-encounter
|
||||||
Parent: Encounter
|
Parent: Encounter
|
||||||
Title: "Encounter Profile for Bangladesh"
|
Title: "Encounter Profile for Bangladesh"
|
||||||
@@ -7,28 +7,31 @@ Description: "Profile of Encounter Bangladesh Standard"
|
|||||||
|
|
||||||
* identifier 1..*
|
* identifier 1..*
|
||||||
|
|
||||||
* status 1..1 MS
|
* status 1..1
|
||||||
* status from BDEncounterStatusSubsetVS
|
* status from BDEncounterStatusSubsetVS
|
||||||
|
* status ^short = "Encounter status in BD"
|
||||||
|
* status ^definition = "Status of patient encounter (planned, in-progress, finished, cancelled)"
|
||||||
|
|
||||||
* class 1..1 MS
|
* class 1..1
|
||||||
* class from BDEncounterClassSubsetVS
|
* class from BDEncounterClassSubsetVS
|
||||||
|
|
||||||
* subject 1..1 MS
|
* subject 1..1
|
||||||
//* subject from https://fhir.dghs.gov.bd/core/StructureDefinition/bd-patient
|
//* subject from https://fhir.dghs.gov.bd/core/StructureDefinition/bd-patient
|
||||||
|
|
||||||
* basedOn 0..1 MS
|
* basedOn 0..1 MS
|
||||||
|
//* basedOn only Reference (CarePlan or DeviceRequest or MedicationRequest or ServiceRequest)
|
||||||
|
|
||||||
* partOf 0..1 MS
|
* partOf 0..1 MS
|
||||||
|
|
||||||
* serviceProvider 1..1 MS
|
* serviceProvider 1..1
|
||||||
|
|
||||||
* participant 1..* MS
|
* participant 1..*
|
||||||
* participant.period 1..1 MS
|
* participant.period 1..1
|
||||||
|
|
||||||
* diagnosis 0..* MS
|
* diagnosis 0..* MS
|
||||||
* diagnosis.condition only Reference(BDConditionProfile)
|
* diagnosis.condition only Reference(BDConditionProfile)
|
||||||
|
|
||||||
|
|
||||||
//* admission 0..* MS
|
|
||||||
//* admission.dischargeDisposition 0..1 MS
|
|
||||||
//* encounter.admission.dischargeDisposition 0..1
|
* hospitalization.dischargeDisposition 0..1 MS
|
||||||
@@ -1,5 +1,3 @@
|
|||||||
|
|
||||||
|
|
||||||
// @Name: Profile
|
// @Name: Profile
|
||||||
// @Description: Immunization Profile of the Bangladeshi Patient.
|
// @Description: Immunization Profile of the Bangladeshi Patient.
|
||||||
Profile: BDImmunizationProfile
|
Profile: BDImmunizationProfile
|
||||||
@@ -13,7 +11,6 @@ Description: "Bangladesh Immunization Profile"
|
|||||||
* identifier 1..*
|
* identifier 1..*
|
||||||
* identifier ^short = "Unique identifier"
|
* identifier ^short = "Unique identifier"
|
||||||
* identifier ^definition = "Unique identifier for the vaccination event"
|
* identifier ^definition = "Unique identifier for the vaccination event"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/identifier/bd-immunization"
|
|
||||||
|
|
||||||
* reasonReference 0..*
|
* reasonReference 0..*
|
||||||
* reasonReference only Reference(Condition or Observation or DiagnosticReport)
|
* reasonReference only Reference(Condition or Observation or DiagnosticReport)
|
||||||
@@ -26,7 +23,7 @@ Description: "Bangladesh Immunization Profile"
|
|||||||
* manufacturer 0..1
|
* manufacturer 0..1
|
||||||
* manufacturer ^short = "Manufacturer"
|
* manufacturer ^short = "Manufacturer"
|
||||||
* manufacturer ^definition = "Vaccine manufacturer"
|
* manufacturer ^definition = "Vaccine manufacturer"
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-organization"
|
* manufacturer only Reference(BDOrganization)
|
||||||
|
|
||||||
* lotNumber 0..1
|
* lotNumber 0..1
|
||||||
* lotNumber ^short = "Vaccine Lot Number"
|
* lotNumber ^short = "Vaccine Lot Number"
|
||||||
@@ -38,11 +35,11 @@ Description: "Bangladesh Immunization Profile"
|
|||||||
|
|
||||||
* patient 1..1
|
* patient 1..1
|
||||||
* patient ^definition = "The patient receiving the vaccine"
|
* patient ^definition = "The patient receiving the vaccine"
|
||||||
* patient only Reference(BDPatientProfile)
|
* patient only Reference(BDPatient)
|
||||||
|
|
||||||
* encounter 1..1
|
* encounter 1..1
|
||||||
* encounter ^definition = "Encounter during which vaccine was administered"
|
* encounter ^definition = "Encounter during which vaccine was administered"
|
||||||
* encounter only Reference(BDEncounterProfile)
|
* encounter only Reference(BDEncounter)
|
||||||
|
|
||||||
* occurrence[x] 1..1
|
* occurrence[x] 1..1
|
||||||
|
|
||||||
|
|||||||
77
input/fsh/profile/BDLabPanelObservation.fsh
Normal file
77
input/fsh/profile/BDLabPanelObservation.fsh
Normal file
@@ -0,0 +1,77 @@
|
|||||||
|
Profile: BDLabPanelObservationProfile
|
||||||
|
Id: bd-lab-panel-observation
|
||||||
|
Parent: bd-observation
|
||||||
|
Title: "Bangladesh Laboratory Panel Observation"
|
||||||
|
Description: """
|
||||||
|
Profile for laboratory panel (order-level) Observations in Bangladesh.
|
||||||
|
Represents an ordered laboratory test panel (e.g. CBC, LFT, RFT) as the
|
||||||
|
parent Observation in a hasMember hierarchy.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
- Observation.code is the panel/order code (from BD LOINC Lab Panels ValueSet)
|
||||||
|
- Observation.hasMember references individual result Observations
|
||||||
|
(bd-lab-result-observation) for each component
|
||||||
|
- Observation.value[x] is prohibited — panels do not carry a direct result value
|
||||||
|
- Observation.category is fixed to 'laboratory'
|
||||||
|
|
||||||
|
FHIR hasMember pattern:
|
||||||
|
DiagnosticReport.result --> bd-lab-panel-observation
|
||||||
|
└── hasMember --> bd-lab-result-observation (x N)
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-lab-panel-observation"
|
||||||
|
* ^version = "0.1.0"
|
||||||
|
* ^status = #draft
|
||||||
|
|
||||||
|
// ── Identifier ────────────────────────────────────────────────────────────
|
||||||
|
// Lab panels must carry an identifier (accession number or order ID).
|
||||||
|
* identifier 1..* MS
|
||||||
|
* identifier.value 1..1
|
||||||
|
|
||||||
|
// ── Category ──────────────────────────────────────────────────────────────
|
||||||
|
// Fixed to 'laboratory' for all lab panel observations.
|
||||||
|
* category = http://terminology.hl7.org/CodeSystem/observation-category#laboratory
|
||||||
|
* category ^definition = "Fixed to 'laboratory' for laboratory panel observations"
|
||||||
|
|
||||||
|
// ── 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 ^definition = "LOINC panel/order code for this laboratory panel"
|
||||||
|
* code ^comment = "E.g. 58410-2 CBC panel, 24323-8 Comprehensive metabolic panel"
|
||||||
|
|
||||||
|
// ── Status ────────────────────────────────────────────────────────────────
|
||||||
|
// Restrict to statuses relevant to lab reporting.
|
||||||
|
* status from http://hl7.org/fhir/ValueSet/observation-status (required)
|
||||||
|
|
||||||
|
// ── Effective ─────────────────────────────────────────────────────────────
|
||||||
|
// When the panel was performed — required for lab context.
|
||||||
|
* effective[x] 1..1 MS
|
||||||
|
* effective[x] only dateTime or Period
|
||||||
|
* effectiveDateTime ^definition = "Date/time the laboratory panel was performed"
|
||||||
|
|
||||||
|
// ── Value[x] ──────────────────────────────────────────────────────────────
|
||||||
|
// Panels do not carry a direct result value — results are in hasMember children.
|
||||||
|
* value[x] 0..0
|
||||||
|
|
||||||
|
// ── hasMember ─────────────────────────────────────────────────────────────
|
||||||
|
// Must reference at least one component result Observation.
|
||||||
|
// Typed to bd-lab-result-observation.
|
||||||
|
* hasMember 1..* MS
|
||||||
|
* hasMember only Reference(BDLabResultObservationProfile)
|
||||||
|
* hasMember ^definition = "References to individual component result Observations for this panel"
|
||||||
|
* hasMember ^comment = "Each hasMember entry is a bd-lab-result-observation"
|
||||||
|
|
||||||
|
// ── derivedFrom ───────────────────────────────────────────────────────────
|
||||||
|
// Panels are not derived from other observations — prohibited at this level.
|
||||||
|
* derivedFrom 0..0
|
||||||
|
|
||||||
|
// ── Specimen ──────────────────────────────────────────────────────────────
|
||||||
|
// SHOULD be present for laboratory panels per IPS alignment.
|
||||||
|
* specimen 0..1 MS
|
||||||
|
* specimen ^definition = "Specimen collected for this laboratory panel"
|
||||||
|
* specimen ^comment = "Should be present when specimen information is available"
|
||||||
|
|
||||||
|
// ── Note ──────────────────────────────────────────────────────────────────
|
||||||
|
* note 0..* MS
|
||||||
|
* note ^definition = "Comments about the laboratory panel"
|
||||||
122
input/fsh/profile/BDLabReport.fsh
Normal file
122
input/fsh/profile/BDLabReport.fsh
Normal file
@@ -0,0 +1,122 @@
|
|||||||
|
Profile: BDLabReportProfile
|
||||||
|
Id: bd-lab-report
|
||||||
|
Parent: DiagnosticReport
|
||||||
|
Title: "Bangladesh Laboratory Report"
|
||||||
|
Description: """
|
||||||
|
Profile for laboratory DiagnosticReport in Bangladesh, aligned with IPS
|
||||||
|
(International Patient Summary) DiagnosticReport pattern.
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
- Represents a complete laboratory report for a patient encounter
|
||||||
|
- DiagnosticReport.result references panel-level Observations
|
||||||
|
(bd-lab-panel-observation) or standalone result Observations
|
||||||
|
(bd-lab-result-observation) where no panel grouping exists
|
||||||
|
- DiagnosticReport.code is fixed to LOINC 11502-2 (Laboratory report)
|
||||||
|
- specimen is SHOULD (MS, 0..*)
|
||||||
|
|
||||||
|
Report structure:
|
||||||
|
bd-lab-report (DiagnosticReport)
|
||||||
|
├── result --> bd-lab-panel-observation
|
||||||
|
│ └── hasMember --> bd-lab-result-observation (x N)
|
||||||
|
└── result --> bd-lab-result-observation (standalone, no panel)
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-lab-report"
|
||||||
|
* ^version = "0.1.0"
|
||||||
|
* ^status = #draft
|
||||||
|
|
||||||
|
// ── Identifier ────────────────────────────────────────────────────────────
|
||||||
|
// Lab reports must carry an accession number or report ID.
|
||||||
|
* identifier 1..* MS
|
||||||
|
* identifier.value 1..1
|
||||||
|
|
||||||
|
// ── Status ────────────────────────────────────────────────────────────────
|
||||||
|
* status 1..1
|
||||||
|
* status from http://hl7.org/fhir/ValueSet/diagnostic-report-status (required)
|
||||||
|
* status ^definition = "Status of the laboratory report"
|
||||||
|
* status ^comment = "E.g. registered, partial, preliminary, final, amended, corrected"
|
||||||
|
|
||||||
|
// ── Category ──────────────────────────────────────────────────────────────
|
||||||
|
// Fixed to LAB (laboratory) category.
|
||||||
|
* category 1..* MS
|
||||||
|
* category = http://terminology.hl7.org/CodeSystem/v2-0074#LAB "Laboratory"
|
||||||
|
* category ^definition = "Fixed to 'LAB' for laboratory diagnostic reports"
|
||||||
|
|
||||||
|
// ── Code ──────────────────────────────────────────────────────────────────
|
||||||
|
// Fixed to LOINC 11502-2 (Laboratory report) — IPS-aligned.
|
||||||
|
* code 1..1 MS
|
||||||
|
* code = http://loinc.org#11502-2 "Laboratory report"
|
||||||
|
* code ^definition = "Fixed to LOINC 11502-2 — Laboratory report"
|
||||||
|
|
||||||
|
// ── Subject ───────────────────────────────────────────────────────────────
|
||||||
|
* subject 1..1 MS
|
||||||
|
* subject only Reference(Patient)
|
||||||
|
* subject.reference 1..1 MS
|
||||||
|
* subject.display 1..1 MS
|
||||||
|
* subject ^definition = "Reference to the Patient this report is about"
|
||||||
|
|
||||||
|
// ── Encounter ─────────────────────────────────────────────────────────────
|
||||||
|
* encounter 1..1 MS
|
||||||
|
* encounter.reference 1..1 MS
|
||||||
|
* encounter ^definition = "Reference to the Encounter during which this report was ordered"
|
||||||
|
|
||||||
|
// ── Effective ─────────────────────────────────────────────────────────────
|
||||||
|
// When the report was clinically relevant — required for lab context.
|
||||||
|
* effective[x] 1..1 MS
|
||||||
|
* effective[x] only dateTime or Period
|
||||||
|
* effectiveDateTime ^definition = "Date/time the specimen was collected or the report period"
|
||||||
|
|
||||||
|
// ── Issued ────────────────────────────────────────────────────────────────
|
||||||
|
// Date/time the report was released — required for lab reports.
|
||||||
|
* issued 1..1 MS
|
||||||
|
* issued ^definition = "Date/time the report was issued by the laboratory"
|
||||||
|
|
||||||
|
// ── Performer ─────────────────────────────────────────────────────────────
|
||||||
|
// Who performed the laboratory test (laboratory organization or practitioner).
|
||||||
|
// Kept flexible — may be Organization, Practitioner, or PractitionerRole.
|
||||||
|
* performer 1..* MS
|
||||||
|
* performer ^definition = "Laboratory or practitioner who performed the test"
|
||||||
|
* performer ^comment = "Typically the laboratory Organization. May also include the responsible Practitioner."
|
||||||
|
|
||||||
|
// ── Results Interpreter ───────────────────────────────────────────────────
|
||||||
|
// Who interpreted the results (clinician, pathologist).
|
||||||
|
// Optional but MustSupport — include when a formal interpretation was made.
|
||||||
|
* resultsInterpreter 0..* MS
|
||||||
|
* resultsInterpreter ^definition = "Clinician or pathologist who interpreted the laboratory results"
|
||||||
|
* resultsInterpreter ^comment = "Include when a formal interpretation or authorisation was made by a named clinician."
|
||||||
|
|
||||||
|
// ── Specimen ──────────────────────────────────────────────────────────────
|
||||||
|
// SHOULD be present per IPS alignment — MustSupport, optional cardinality.
|
||||||
|
* specimen 0..* MS
|
||||||
|
* specimen ^definition = "Specimen(s) used for this laboratory report"
|
||||||
|
* specimen ^comment = "Should be present when specimen information is available. IPS alignment: SHOULD."
|
||||||
|
|
||||||
|
// ── Result ────────────────────────────────────────────────────────────────
|
||||||
|
// References panel-level Observations or standalone result Observations.
|
||||||
|
// At least one result is required for a meaningful report.
|
||||||
|
* result 1..* MS
|
||||||
|
* result only Reference(BDLabPanelObservationProfile or BDLabResultObservationProfile)
|
||||||
|
* result ^definition = "References to Observation resources that are part of this report"
|
||||||
|
* result ^comment = """
|
||||||
|
Use BDLabPanelObservationProfile for ordered panels (CBC, LFT, RFT, etc.)
|
||||||
|
where individual results are grouped under a panel using hasMember.
|
||||||
|
Use BDLabResultObservationProfile directly for standalone results
|
||||||
|
that are not part of a named panel.
|
||||||
|
"""
|
||||||
|
|
||||||
|
// ── Conclusion ────────────────────────────────────────────────────────────
|
||||||
|
// Free-text clinical interpretation of the overall report.
|
||||||
|
* conclusion 0..1 MS
|
||||||
|
* conclusion ^definition = "Clinical interpretation or summary of the laboratory report"
|
||||||
|
|
||||||
|
// ── Conclusion Code ───────────────────────────────────────────────────────
|
||||||
|
// Coded clinical finding — may reference ICD-11 diagnosis codes.
|
||||||
|
* conclusionCode 0..* MS
|
||||||
|
* conclusionCode ^definition = "Coded representation of the clinical conclusion"
|
||||||
|
* conclusionCode ^comment = "May use ICD-11 MMS codes consistent with bd-condition-icd11-diagnosis-valueset"
|
||||||
|
|
||||||
|
// ── Presented Form ────────────────────────────────────────────────────────
|
||||||
|
// Attach the original PDF or HL7 CDA report if available.
|
||||||
|
* presentedForm 0..* MS
|
||||||
|
* presentedForm ^definition = "Entire report as issued — e.g. PDF attachment"
|
||||||
|
* presentedForm ^comment = "Include the original report document when available"
|
||||||
104
input/fsh/profile/BDLabResultObservation.fsh
Normal file
104
input/fsh/profile/BDLabResultObservation.fsh
Normal file
@@ -0,0 +1,104 @@
|
|||||||
|
Profile: BDLabResultObservationProfile
|
||||||
|
Id: bd-lab-result-observation
|
||||||
|
Parent: bd-observation
|
||||||
|
Title: "Bangladesh Laboratory Result Observation"
|
||||||
|
Description: """
|
||||||
|
Profile for individual laboratory result (component-level) Observations
|
||||||
|
in Bangladesh. Represents a single test result within a laboratory panel
|
||||||
|
(e.g. Haemoglobin within a CBC panel).
|
||||||
|
|
||||||
|
Usage:
|
||||||
|
- Observation.code is the result/component code (from BD LOINC Lab Results ValueSet)
|
||||||
|
- Observation.value[x] is required — every leaf result must carry a value
|
||||||
|
- Observation.hasMember is prohibited — leaf results cannot group further
|
||||||
|
- Observation.derivedFrom references the parent panel Observation
|
||||||
|
- Observation.category is fixed to 'laboratory'
|
||||||
|
|
||||||
|
FHIR hasMember pattern:
|
||||||
|
bd-lab-panel-observation
|
||||||
|
└── hasMember --> bd-lab-result-observation (this profile)
|
||||||
|
|
||||||
|
Coded results (Ord/Nom scale):
|
||||||
|
Use valueCodeableConcept with codes from BD LOINC Answer Lists ValueSet.
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-lab-result-observation"
|
||||||
|
* ^version = "0.1.0"
|
||||||
|
* ^status = #draft
|
||||||
|
|
||||||
|
// ── Identifier ────────────────────────────────────────────────────────────
|
||||||
|
// Result observations carry the accession number or result ID.
|
||||||
|
* identifier 1..* MS
|
||||||
|
* identifier.value 1..1
|
||||||
|
|
||||||
|
// ── Category ──────────────────────────────────────────────────────────────
|
||||||
|
// Fixed to 'laboratory' for all lab result observations.
|
||||||
|
* category = http://terminology.hl7.org/CodeSystem/observation-category#laboratory
|
||||||
|
* category ^definition = "Fixed to 'laboratory' for laboratory result observations"
|
||||||
|
|
||||||
|
// ── 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 ^definition = "LOINC result/component code for this individual laboratory result"
|
||||||
|
* code ^comment = "E.g. 718-7 Hemoglobin, 2160-0 Creatinine"
|
||||||
|
|
||||||
|
// ── Status ────────────────────────────────────────────────────────────────
|
||||||
|
* status from http://hl7.org/fhir/ValueSet/observation-status (required)
|
||||||
|
|
||||||
|
// ── Effective ─────────────────────────────────────────────────────────────
|
||||||
|
* effective[x] 1..1 MS
|
||||||
|
* effective[x] only dateTime or Period
|
||||||
|
* effectiveDateTime ^definition = "Date/time the result was obtained"
|
||||||
|
|
||||||
|
// ── Value[x] ──────────────────────────────────────────────────────────────
|
||||||
|
// Required — every leaf result must carry a value.
|
||||||
|
* value[x] 1..1 MS
|
||||||
|
* value[x] only Quantity or CodeableConcept
|
||||||
|
* value[x] ^definition = "The actual result value for this laboratory test"
|
||||||
|
|
||||||
|
// Numeric results (Qn scale) — UCUM units required
|
||||||
|
* valueQuantity MS
|
||||||
|
* valueQuantity.value 1..1
|
||||||
|
* valueQuantity.unit 1..1
|
||||||
|
* valueQuantity.system 1..1
|
||||||
|
* valueQuantity.system = "http://unitsofmeasure.org"
|
||||||
|
* valueQuantity.code 1..1
|
||||||
|
* valueQuantity ^comment = "Use for quantitative (Qn scale) results. Units must be UCUM."
|
||||||
|
|
||||||
|
// 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 ^comment = "Use for ordinal or nominal (Ord/Nom scale) results."
|
||||||
|
|
||||||
|
// ── hasMember ─────────────────────────────────────────────────────────────
|
||||||
|
// Leaf results cannot group further observations.
|
||||||
|
* hasMember 0..0
|
||||||
|
|
||||||
|
// ── derivedFrom ───────────────────────────────────────────────────────────
|
||||||
|
// References the parent panel Observation.
|
||||||
|
* derivedFrom 0..* MS
|
||||||
|
* derivedFrom only Reference(BDLabPanelObservationProfile)
|
||||||
|
* derivedFrom ^definition = "Reference to the parent panel Observation this result belongs to"
|
||||||
|
|
||||||
|
// ── Interpretation ────────────────────────────────────────────────────────
|
||||||
|
// Strongly recommended for lab results — High, Low, Normal, etc.
|
||||||
|
* interpretation 0..* MS
|
||||||
|
* interpretation from http://hl7.org/fhir/ValueSet/observation-interpretation (extensible)
|
||||||
|
* interpretation ^definition = "Clinical interpretation of the result value"
|
||||||
|
* interpretation ^comment = "E.g. H (High), L (Low), N (Normal), A (Abnormal)"
|
||||||
|
|
||||||
|
// ── Reference Range ───────────────────────────────────────────────────────
|
||||||
|
* referenceRange 0..* MS
|
||||||
|
* referenceRange ^definition = "Normal reference range for this result"
|
||||||
|
* referenceRange ^comment = "Should be present when reference ranges are known"
|
||||||
|
|
||||||
|
// ── Specimen ──────────────────────────────────────────────────────────────
|
||||||
|
// May reference the same specimen as the parent panel.
|
||||||
|
* specimen 0..1 MS
|
||||||
|
* specimen ^definition = "Specimen used for this result observation"
|
||||||
|
* specimen ^comment = "Should be consistent with the parent panel specimen"
|
||||||
|
|
||||||
|
// ── Note ──────────────────────────────────────────────────────────────────
|
||||||
|
* note 0..* MS
|
||||||
|
* note ^definition = "Comments about this individual result"
|
||||||
@@ -1,17 +1,76 @@
|
|||||||
// @Name: Profile
|
|
||||||
// @Description: Example of a profile of the Medication resource. This example includes a few of the most commonly used constraints and documentation features of FHIR profiles.
|
|
||||||
|
|
||||||
Profile: BDMedication
|
Profile: BDMedication
|
||||||
Id: bd-medication
|
Id: bd-medication
|
||||||
Parent: Medication
|
Parent: Medication
|
||||||
Title: "Medication Profile for Bangladesh-V2"
|
Title: "Medication Profile for Bangladesh"
|
||||||
Description: "Profile of Medication Bangladesh Standard V2"
|
Description: """
|
||||||
|
Profile of the Medication resource for the Bangladesh National Health Information
|
||||||
|
Exchange (HIE). Drug products are coded using the DGDA Drug Registry maintained
|
||||||
|
by the Drug Registration Authority of Bangladesh and served via the national OCL
|
||||||
|
terminology server at https://tr.ocl.dghs.gov.bd.
|
||||||
|
|
||||||
* form 1..1 MS
|
Ingredient coding uses ICD-11 MMS substance codes (XM-prefix) to support
|
||||||
* form from BDMedicationDoseFormVS
|
International Patient Summary (IPS) generation and cross-border data exchange.
|
||||||
|
Ingredient data is system-populated from OCL Has-active-ingredient mappings and
|
||||||
|
is not required to be entered manually by clinicians.
|
||||||
|
|
||||||
|
Combination drugs are supported via the repeating ingredient element.
|
||||||
|
Unmatched ingredients (not yet mapped to ICD-11 substances) may be represented
|
||||||
|
using ingredient.itemCodeableConcept.text without a coded value.
|
||||||
|
|
||||||
|
Dose form is optional and should be coded using EDQM Standard Terms when
|
||||||
|
populated. Dose form is derivable from the DGDA drug concept via OCL lookup.
|
||||||
|
A DGDA plain text dose form to EDQM code mapping is planned for a future
|
||||||
|
IG version.
|
||||||
|
"""
|
||||||
|
|
||||||
* code 1..1 MS
|
* code 1..1 MS
|
||||||
* code from BDMedicationVS
|
* code from BDDGDADrugsVS (required)
|
||||||
|
* code ^short = "DGDA registered drug product code"
|
||||||
|
* code ^definition = """
|
||||||
|
The DGDA drug registry code identifying the finished pharmaceutical product.
|
||||||
|
Concept ID format: {DAR-number}--{trade-name-slug}
|
||||||
|
Example: 353-0026-039--marvelous-fe
|
||||||
|
"""
|
||||||
|
* code.text 1..1 MS
|
||||||
|
* code.text ^short = "Trade name of the drug product"
|
||||||
|
* code.text ^definition = """
|
||||||
|
The trade name of the drug product as registered with DGDA. Mandatory for
|
||||||
|
human readability in IPS documents and cross-border data exchange scenarios.
|
||||||
|
"""
|
||||||
|
|
||||||
* ingredient 1..* MS
|
* form 0..1 MS
|
||||||
* ingredient.strength 1..1 MS
|
* form from BDMedicationDoseFormVS (preferred)
|
||||||
|
* form ^short = "Pharmaceutical dose form — EDQM Standard Terms (optional)"
|
||||||
|
* form ^definition = """
|
||||||
|
The pharmaceutical dose form of the drug product. Optional in this profile
|
||||||
|
as dose form is carried as plain text in the DGDA drug concept and is
|
||||||
|
derivable via OCL lookup. When populated, EDQM Standard Terms codes served
|
||||||
|
from the national OCL terminology server should be used.
|
||||||
|
A DGDA dose form to EDQM mapping is planned for a future IG version.
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ingredient MS
|
||||||
|
* ingredient ^short = "Active ingredient(s) of the drug product"
|
||||||
|
* ingredient ^definition = """
|
||||||
|
Active pharmaceutical ingredients of the drug product, coded using ICD-11 MMS
|
||||||
|
substance codes (XM-prefix). Populated automatically by clinical systems via
|
||||||
|
OCL Has-active-ingredient mappings. Combination drugs will carry multiple
|
||||||
|
ingredient entries. Unmatched ingredients may use text only without a coded value.
|
||||||
|
"""
|
||||||
|
* ingredient.item[x] only CodeableConcept
|
||||||
|
* ingredient.itemCodeableConcept 1..1 MS
|
||||||
|
* ingredient.itemCodeableConcept from BDICD11SubstancesVS (extensible)
|
||||||
|
* ingredient.itemCodeableConcept ^short = "ICD-11 substance code for the ingredient"
|
||||||
|
* ingredient.itemCodeableConcept ^definition = """
|
||||||
|
ICD-11 MMS substance code (XM-prefix) identifying the active ingredient.
|
||||||
|
Source value set: https://fhir.dghs.gov.bd/core/ValueSet/icd11-substances-valueset
|
||||||
|
served from the national OCL terminology server.
|
||||||
|
For ingredients not yet mapped to ICD-11 substances, use text only.
|
||||||
|
"""
|
||||||
|
* ingredient.strength 0..1
|
||||||
|
* ingredient.strength ^short = "Strength of the ingredient (optional)"
|
||||||
|
* ingredient.strength ^definition = """
|
||||||
|
Strength of the active ingredient. Optional in this profile as strength data
|
||||||
|
is maintained in the DGDA registry and accessible via OCL. May be populated
|
||||||
|
by dispensing systems for precision medication management.
|
||||||
|
"""
|
||||||
@@ -1,24 +1,66 @@
|
|||||||
// @Name: Profile
|
|
||||||
// @Description: Example of a profile of the MedicationRequest resource. This example includes a few of the most commonly used constraints and documentation features of FHIR profiles.
|
|
||||||
|
|
||||||
Profile: BDMedicationRequest
|
Profile: BDMedicationRequest
|
||||||
Id: bd-medication-request
|
Id: bd-medication-request
|
||||||
Parent: MedicationRequest
|
Parent: MedicationRequest
|
||||||
Title: "Medication Request Profile for Bangladesh-V2"
|
Title: "Medication Request Profile for Bangladesh"
|
||||||
Description: "Profile of MedicationRequest Bangladesh Standard V2"
|
Description: """
|
||||||
|
Profile of the MedicationRequest resource for the Bangladesh National Health
|
||||||
|
Information Exchange (HIE). Prescriptions must reference a BDMedication
|
||||||
|
resource coded against the DGDA Drug Registry, ensuring all prescribed
|
||||||
|
medications are traceable to DGDA-registered drug products.
|
||||||
|
|
||||||
|
This profile constrains medication references to BDMedication only.
|
||||||
|
Inline medicationCodeableConcept is not permitted — all medication data
|
||||||
|
must be carried in a referenced BDMedication resource to support ingredient
|
||||||
|
coding for IPS and cross-border data exchange.
|
||||||
|
|
||||||
|
Route of administration is coded using HL7 v3 RouteOfAdministration served
|
||||||
|
via the national OCL terminology server.
|
||||||
|
"""
|
||||||
|
|
||||||
|
* identifier 1..* MS
|
||||||
|
* identifier ^short = "Prescription identifier"
|
||||||
|
* identifier ^definition = """
|
||||||
|
Business identifier for this prescription. At least one identifier is required
|
||||||
|
to support prescription tracking within the Bangladesh HIE.
|
||||||
|
"""
|
||||||
|
|
||||||
* identifier 1..*
|
|
||||||
* medication[x] 1..1 MS
|
* medication[x] 1..1 MS
|
||||||
* medication[x] only Reference(BDMedication) or CodeableConcept
|
* medication[x] only Reference(BDMedication)
|
||||||
* subject only Reference(BDPatientProfile)
|
* medication[x] ^short = "Reference to DGDA-registered medication"
|
||||||
|
* medication[x] ^definition = """
|
||||||
|
Reference to a BDMedication resource identifying the prescribed drug product.
|
||||||
|
The referenced BDMedication must carry a valid DGDA drug registry code.
|
||||||
|
Inline CodeableConcept is not permitted in this profile.
|
||||||
|
"""
|
||||||
|
|
||||||
|
* subject 1..1 MS
|
||||||
|
* subject only Reference(BDPatient)
|
||||||
|
* subject ^short = "Patient for whom the medication is prescribed"
|
||||||
|
|
||||||
* encounter 0..1 MS
|
* encounter 0..1 MS
|
||||||
* encounter only Reference(BDEncounterProfile)
|
* encounter only Reference(BDEncounter)
|
||||||
* encounter ^definition = "The encounter during which this prescription was created."
|
* encounter ^short = "Encounter during which this prescription was created"
|
||||||
* authoredOn 1..1
|
* encounter ^definition = """
|
||||||
* requester 1..1
|
The encounter during which this prescription was created. Should be populated
|
||||||
|
for inpatient and outpatient prescriptions where an encounter record exists.
|
||||||
|
"""
|
||||||
|
|
||||||
* reportedReference only Reference(BDPractitioner or BDOrganization or BDPatientProfile)
|
* authoredOn 1..1 MS
|
||||||
|
* authoredOn ^short = "Date and time the prescription was authored"
|
||||||
|
|
||||||
|
* requester 1..1 MS
|
||||||
* requester only Reference(BDPractitioner or BDOrganization)
|
* requester only Reference(BDPractitioner or BDOrganization)
|
||||||
|
* requester ^short = "Practitioner or organisation that authored the prescription"
|
||||||
|
|
||||||
|
* reportedReference only Reference(BDPractitioner or BDOrganization or BDPatient)
|
||||||
|
|
||||||
* priorPrescription only Reference(BDMedicationRequest)
|
* priorPrescription only Reference(BDMedicationRequest)
|
||||||
|
* priorPrescription ^short = "Reference to a prior prescription this replaces"
|
||||||
|
|
||||||
* basedOn only Reference(BDMedicationRequest or ServiceRequest or CarePlan or ImmunizationRecommendation)
|
* basedOn only Reference(BDMedicationRequest or ServiceRequest or CarePlan or ImmunizationRecommendation)
|
||||||
|
* basedOn ^short = "Plan or request this prescription is based on"
|
||||||
|
|
||||||
|
* dosageInstruction 0..* MS
|
||||||
|
* dosageInstruction.route MS
|
||||||
|
* dosageInstruction.route from BDRouteOfAdministrationVS (required)
|
||||||
|
* dosageInstruction.route ^short = "Route of administration coded using HL7 v3 RouteOfAdministration"
|
||||||
133
input/fsh/profile/BDObservation.fsh
Normal file
133
input/fsh/profile/BDObservation.fsh
Normal file
@@ -0,0 +1,133 @@
|
|||||||
|
Profile: BDObservationProfile
|
||||||
|
Id: bd-observation
|
||||||
|
Parent: Observation
|
||||||
|
Title: "Bangladesh Observation Profile"
|
||||||
|
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.
|
||||||
|
|
||||||
|
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
|
||||||
|
|
||||||
|
// ── 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 (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 (extensible)
|
||||||
|
* code ^definition = "Type of observation / test / measurement"
|
||||||
|
* code ^comment = "E.g. Hb, RBS, CBC. Child profiles bind to specific ValueSets."
|
||||||
|
|
||||||
|
// ── 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 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 the Encounter during which this observation was made"
|
||||||
|
* encounter ^comment = "EX: uuid:34c38499-58ab-41e0-8e94-c3931491ad0e"
|
||||||
|
|
||||||
|
// ── Performer ─────────────────────────────────────────────────────────────
|
||||||
|
* performer 1..*
|
||||||
|
* performer.reference 1..1
|
||||||
|
|
||||||
|
// ── 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
|
||||||
|
* valueBoolean 0..1
|
||||||
|
* valueInteger 0..1
|
||||||
|
* valueRange 0..1
|
||||||
|
* valueRatio 0..1
|
||||||
|
* valueSampledData 0..1
|
||||||
|
* valueTime 0..1
|
||||||
|
* 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 (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 (extensible)
|
||||||
|
* method ^definition = "Type of observation method"
|
||||||
|
* method ^comment = "E.g. Technique, Total measurement"
|
||||||
|
|
||||||
|
// ── Issued ────────────────────────────────────────────────────────────────
|
||||||
|
* issued 0..1
|
||||||
|
* issued ^definition = "Date/time the result was issued"
|
||||||
|
|
||||||
|
// ── Reference Range ───────────────────────────────────────────────────────
|
||||||
|
* referenceRange 0..*
|
||||||
|
* referenceRange ^definition = "Normal reference range for the observation"
|
||||||
|
|
||||||
|
// ── 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."
|
||||||
102
input/fsh/profile/BDPatient.fsh
Normal file
102
input/fsh/profile/BDPatient.fsh
Normal file
@@ -0,0 +1,102 @@
|
|||||||
|
Alias: $translation = http://hl7.org/fhir/StructureDefinition/translation
|
||||||
|
// @Name: Profile
|
||||||
|
// @Description: Example of a profile of the Patient resource. This example includes a few of the most commonly used constraints and documentation features of FHIR profiles.
|
||||||
|
Profile: BDPatient
|
||||||
|
Id: bd-patient
|
||||||
|
Parent: Patient
|
||||||
|
Title: "Patient Profile for Bangladesh"
|
||||||
|
Description: """
|
||||||
|
Patient profile for Bangladesh.
|
||||||
|
- Identifiers: NID, BRN, UHID
|
||||||
|
- Name must be provided in both Bangla and English.
|
||||||
|
- SHALL have at least one RelatedPerson with relationship = father or mother, and that RelatedPerson SHALL include both a name and an identifier.
|
||||||
|
"""
|
||||||
|
|
||||||
|
// ----- Begin rules:
|
||||||
|
// Require exactly one HumanName
|
||||||
|
* name 1..1 MS
|
||||||
|
* name.use 1..1
|
||||||
|
* name.use = #official (exactly)
|
||||||
|
|
||||||
|
// Require a text element
|
||||||
|
* name.text 1..1 MS
|
||||||
|
|
||||||
|
// Require translation extensions on text
|
||||||
|
* name.text.extension 2..* MS
|
||||||
|
* name.text.extension contains
|
||||||
|
$translation named nameEn 1..1 MS and
|
||||||
|
$translation named nameBn 1..1 MS
|
||||||
|
|
||||||
|
// Constraints on English name
|
||||||
|
* name.text.extension[nameEn].extension[lang].valueCode = #en (exactly)
|
||||||
|
* name.text.extension[nameEn].extension[content] 1..1 MS
|
||||||
|
|
||||||
|
// Constraints on Bangla name
|
||||||
|
* name.text.extension[nameBn].extension[lang].valueCode = #bn (exactly)
|
||||||
|
* name.text.extension[nameBn].extension[content] 1..1 MS
|
||||||
|
|
||||||
|
//////////////////////
|
||||||
|
|
||||||
|
* identifier 1..*
|
||||||
|
* identifier ^slicing.discriminator.type = #value
|
||||||
|
* identifier ^slicing.discriminator.path = "system"
|
||||||
|
* identifier ^slicing.rules = #open
|
||||||
|
* identifier ^slicing.ordered = false
|
||||||
|
* identifier ^slicing.description = "Slice based on the type of identifier."
|
||||||
|
* 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 = "http://terminology.hl7.org/CodeSystem/v2-0203"
|
||||||
|
* identifier[NID].type.coding.system = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-identifier-type"
|
||||||
|
* identifier[NID].type from BangladeshIdentifierTypeVS (extensible)
|
||||||
|
* identifier[NID].type.text = "Organization identifier"
|
||||||
|
// * identifier[NID].value = "Personal identifier National ID"
|
||||||
|
|
||||||
|
// Then in your profile:
|
||||||
|
// * identifier.type from BangladeshIdentifierTypeVS (extensible)
|
||||||
|
|
||||||
|
* 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 from BangladeshIdentifierTypeVS (extensible)
|
||||||
|
* identifier[BRN].type.text = "Organization identifier"
|
||||||
|
// * identifier[BRN].value = "Personal identifier Birth Registration"
|
||||||
|
|
||||||
|
|
||||||
|
* 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 from BangladeshIdentifierTypeVS (extensible)
|
||||||
|
* identifier[UHID].type.text = "Organization identifier"
|
||||||
|
|
||||||
|
|
||||||
|
// Mark elements as MustSupport
|
||||||
|
// * name and name.given and name.family MS
|
||||||
|
// * name ^short = "dak nam"
|
||||||
|
// * name ^definition = "Official name (i.e., legal name) of the patient, corresponding to official in [this value set](https://www.hl7.org/fhir/valueset-name-use.html)."
|
||||||
|
|
||||||
|
// The contents of ^comment are also displayed on the "Detailed Descriptions" tab
|
||||||
|
// in the built Implementation Guide.
|
||||||
|
* birthDate ^comment = "If exact date of birth is partially or completely unknown, Implementers SHALL populate this element with the date of birth information listed on the patient's government-issued identification."
|
||||||
|
|
||||||
|
// Do not allow gender to be included.
|
||||||
|
* gender 1..1
|
||||||
|
// * include codes from system http://hl7.org/fhir/ValueSet/administrative-gender
|
||||||
|
|
||||||
|
|
||||||
|
// Require a value from a specific value set be used for an element
|
||||||
|
* maritalStatus from http://hl7.org/fhir/ValueSet/marital-status
|
||||||
|
|
||||||
|
// Restrict something[x] to a specific type -- in this case only allowing dateTime to be used
|
||||||
|
* deceased[x] only dateTime
|
||||||
|
|
||||||
|
// Religion using standard HL7 extension
|
||||||
|
* extension contains http://hl7.org/fhir/StructureDefinition/patient-religion named religion 0..1
|
||||||
|
* extension[religion].valueCodeableConcept from https://fhir.dghs.gov.bd/core/ValueSet/bd-religions-valueset
|
||||||
|
|
||||||
|
* address 1..* MS
|
||||||
|
* address only BDAddress
|
||||||
@@ -10,8 +10,10 @@ Description: "Address for Bangladesh Standard"
|
|||||||
|
|
||||||
* country 1..1 MS
|
* country 1..1 MS
|
||||||
* extension contains Division named division 1..1 MS
|
* extension contains Division named division 1..1 MS
|
||||||
|
* extension[division] ^short = "Division code"
|
||||||
|
|
||||||
* district 1..1 MS
|
* district 1..1 MS
|
||||||
* district from BDDistrictsVS
|
* district from BDDistrictsVS
|
||||||
|
|
||||||
* extension contains Upazillas named upazilla 1..1 MS
|
* extension contains Upazillas named upazilla 1..1 MS
|
||||||
|
* extension[upazilla] ^short = "Upazilla code"
|
||||||
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
|
||||||
34
input/fsh/valueSets/BDDGDADrugsVS.fsh
Normal file
34
input/fsh/valueSets/BDDGDADrugsVS.fsh
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
ValueSet: BDDGDADrugsVS
|
||||||
|
Id: dgda-registered-drugs
|
||||||
|
Title: "DGDA Registered Drugs Value Set"
|
||||||
|
Description: """
|
||||||
|
Value set containing all registered drug products from the Drug Registration
|
||||||
|
Authority (DGDA) of Bangladesh. This value set includes 39,196 finished
|
||||||
|
pharmaceutical drug product concepts maintained in the national OCL terminology
|
||||||
|
server at https://tr.ocl.dghs.gov.bd.
|
||||||
|
|
||||||
|
This value set is the normative binding for BDMedication.code and represents
|
||||||
|
the only permitted drug coding vocabulary for medication resources in the
|
||||||
|
Bangladesh national health information exchange.
|
||||||
|
|
||||||
|
Validation is performed via $validate-code and $lookup against the national
|
||||||
|
OCL terminology server. $expand is not supported for this value set due to its
|
||||||
|
size.
|
||||||
|
|
||||||
|
Source collection: dgda-registered-drugs-valueset (MoHFW organisation, OCL)
|
||||||
|
OCL collection canonical: https://dgda.gov.bd/fhir/ValueSet/registered-drugs
|
||||||
|
OCL FHIR endpoint: https://tr.ocl.dghs.gov.bd/orgs/MoHFW/collections/dgda-registered-drugs-valueset/
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "https://dgda.gov.bd/fhir/ValueSet/registered-drugs"
|
||||||
|
* ^version = "v1.0.0"
|
||||||
|
* ^status = #active
|
||||||
|
* ^experimental = false
|
||||||
|
* ^publisher = "Directorate General of Drug Administration (DGDA), Government of 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"
|
||||||
|
* ^immutable = false
|
||||||
|
|
||||||
|
* include codes from system https://dgda.gov.bd/drug-registry
|
||||||
@@ -1,6 +1,6 @@
|
|||||||
// ---------- ValueSet ----------
|
// ---------- ValueSet ----------
|
||||||
ValueSet: BDEncounterClassSubsetVS
|
ValueSet: BDEncounterClassSubsetVS
|
||||||
Id: bd-encounter-class-subset-vs
|
Id: bd-encounter-class-subset
|
||||||
Title: "BD Encounter Class Subset"
|
Title: "BD Encounter Class Subset"
|
||||||
Description: "Subset of EncounterClass limited to inpatient, ambulatory, and emergency."
|
Description: "Subset of EncounterClass limited to inpatient, ambulatory, and emergency."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-encounter-class-subset"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-encounter-class-subset"
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
// ---------- ValueSet ----------
|
// ---------- ValueSet ----------
|
||||||
ValueSet: BDEncounterStatusSubsetVS
|
ValueSet: BDEncounterStatusSubsetVS
|
||||||
Id: bd-encounter-status-subset-vs
|
Id: bd-encounter-status-subset
|
||||||
Title: "BD Encounter Status Subset"
|
Title: "BD Encounter Status Subset"
|
||||||
Description: "Subset of EncounterStatus limited to planned, in-progress, finished, and cancelled."
|
Description: "Subset of EncounterStatus limited to planned, in-progress, finished, and cancelled."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-encounter-status-subset"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-encounter-status-subset"
|
||||||
|
|||||||
32
input/fsh/valueSets/BDICD11SubstancesVS.fsh
Normal file
32
input/fsh/valueSets/BDICD11SubstancesVS.fsh
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
ValueSet: BDICD11SubstancesVS
|
||||||
|
Id: icd11-substances-valueset
|
||||||
|
Title: "ICD-11 Substances Value Set"
|
||||||
|
Description: """
|
||||||
|
Value set containing all ICD-11 MMS substance and medicament concepts
|
||||||
|
(XM-prefix concept class: Substance) maintained in the national OCL
|
||||||
|
terminology server at https://tr.ocl.dghs.gov.bd.
|
||||||
|
|
||||||
|
This value set contains 7,776 substance concepts and is used for coding
|
||||||
|
active pharmaceutical ingredients in the BDMedication.ingredient element
|
||||||
|
to support IPS generation and cross-border data exchange.
|
||||||
|
|
||||||
|
This value set is defined and maintained in OCL. It is declared here as a
|
||||||
|
minimal stub to allow IG publisher binding resolution only.
|
||||||
|
|
||||||
|
**OCL collection canonical:** https://fhir.dghs.gov.bd/core/ValueSet/icd11-substances-valueset
|
||||||
|
**OCL FHIR endpoint:** https://tr.ocl.dghs.gov.bd/orgs/MoHFW/collections/icd11-substances-valueset/
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/icd11-substances-valueset"
|
||||||
|
* ^version = "2025-01"
|
||||||
|
* ^status = #active
|
||||||
|
* ^experimental = false
|
||||||
|
* ^publisher = "World Health Organization (WHO) — served via DGHS National OCL"
|
||||||
|
* ^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"
|
||||||
|
* ^immutable = false
|
||||||
|
|
||||||
|
* include codes from system http://id.who.int/icd/release/11/mms
|
||||||
|
where concept-class = "Substance"
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
ValueSet: BDImmunizationReactionValueSet
|
ValueSet: BDImmunizationReactionValueSet
|
||||||
Id: bd-immunization-reaction-vs
|
Id: bd-immunization-reaction-valueset
|
||||||
Title: "Bangladesh Immunization Reaction Value Set"
|
Title: "Bangladesh Immunization Reaction Value Set"
|
||||||
Description: "Allowed vaccine reactions for immunization in Bangladesh."
|
Description: "Allowed vaccine reactions for immunization in Bangladesh."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-reaction-valueset"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-reaction-valueset"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
ValueSet: BDImmunizationRouteVS
|
ValueSet: BDImmunizationRouteVS
|
||||||
Id: bd-immunization-route-vs
|
Id: bd-immunization-route-valueset
|
||||||
Title: "Bangladesh Immunization Route Value Set"
|
Title: "Bangladesh Immunization Route Value Set"
|
||||||
Description: "Allowed administration routes for vaccines in Bangladesh."
|
Description: "Allowed administration routes for vaccines in Bangladesh."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-route-valueset"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-route-valueset"
|
||||||
|
|||||||
@@ -1,5 +1,5 @@
|
|||||||
ValueSet: BDImmunizationSiteVS
|
ValueSet: BDImmunizationSiteVS
|
||||||
Id: bd-immunization-site-vs
|
Id: bd-immunization-site-valueset
|
||||||
Title: "Bangladesh Immunization Site Value Set"
|
Title: "Bangladesh Immunization Site Value Set"
|
||||||
Description: "Allowed administration sites for vaccines in Bangladesh."
|
Description: "Allowed administration sites for vaccines in Bangladesh."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-site-valueset"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-site-valueset"
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
ValueSet: BDLanguageVS
|
ValueSet: BDLanguageVS
|
||||||
Id: bd-language-vs
|
Id: bd-language-valueset
|
||||||
Title: "Allowed Languages"
|
Title: "Allowed Languages"
|
||||||
Description: "Only English and Bengali are allowed"
|
Description: "Only English and Bengali are allowed"
|
||||||
* http://hl7.org/fhir/ValueSet/languages#en "English"
|
* urn:ietf:bcp:47#en "English"
|
||||||
* http://hl7.org/fhir/ValueSet/languages#bn "Bengali"
|
* urn:ietf:bcp:47#bn "Bengali"
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-language-valueset"
|
||||||
|
|||||||
22
input/fsh/valueSets/BDLoincAnswerListsVS.fsh
Normal file
22
input/fsh/valueSets/BDLoincAnswerListsVS.fsh
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
ValueSet: BDLoincAnswerListsVS
|
||||||
|
Id: bd-loinc-answer-lists-valueset
|
||||||
|
Title: "Bangladesh LOINC Answer Lists ValueSet"
|
||||||
|
Description: "LOINC answer codes (LA-prefixed) and answer list groupers (LL-prefixed)
|
||||||
|
for Bangladesh laboratory results. Includes all answer codes referenced by in-scope
|
||||||
|
lab result codes from LOINC 2.82. Used as Observation.valueCodeableConcept in
|
||||||
|
bd-lab-result-observation for ordinal and nominal scale results."
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-loinc-answer-lists-valueset"
|
||||||
|
* ^status = #draft
|
||||||
|
* ^experimental = true
|
||||||
|
* ^version = "0.1.0"
|
||||||
|
* ^publisher = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||||
|
* ^contact.name = "DGHS Health Information Unit"
|
||||||
|
* ^contact.telecom.system = #url
|
||||||
|
* ^contact.telecom.value = "https://dghs.gov.bd"
|
||||||
|
* ^jurisdiction = urn:iso:std:iso:3166#BD "Bangladesh"
|
||||||
|
* ^copyright = "This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use."
|
||||||
|
* ^immutable = false
|
||||||
|
|
||||||
|
* include codes from system http://loinc.org
|
||||||
|
where concept in "https://fhir.dghs.gov.bd/core/ValueSet/loinc-answer-lists"
|
||||||
21
input/fsh/valueSets/BDLoincLabPanelsVS.fsh
Normal file
21
input/fsh/valueSets/BDLoincLabPanelsVS.fsh
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
ValueSet: BDLoincLabPanelsVS
|
||||||
|
Id: bd-loinc-lab-panels-valueset
|
||||||
|
Title: "Bangladesh LOINC Lab Panels ValueSet"
|
||||||
|
Description: "LOINC orderable laboratory panel codes for Bangladesh. Includes universal
|
||||||
|
lab order panel codes from LOINC 2.82 scoped to the Universal Lab Orders ValueSet.
|
||||||
|
Used as Observation.code in bd-lab-panel-observation."
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-loinc-lab-panels-valueset"
|
||||||
|
* ^status = #draft
|
||||||
|
* ^experimental = true
|
||||||
|
* ^version = "0.1.0"
|
||||||
|
* ^publisher = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||||
|
* ^contact.name = "DGHS Health Information Unit"
|
||||||
|
* ^contact.telecom.system = #url
|
||||||
|
* ^contact.telecom.value = "https://dghs.gov.bd"
|
||||||
|
* ^jurisdiction = urn:iso:std:iso:3166#BD "Bangladesh"
|
||||||
|
* ^copyright = "This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use."
|
||||||
|
* ^immutable = false
|
||||||
|
|
||||||
|
* include codes from system http://loinc.org
|
||||||
|
where concept in "https://fhir.dghs.gov.bd/core/ValueSet/loinc-lab-panels"
|
||||||
22
input/fsh/valueSets/BDLoincLabResultsVS.fsh
Normal file
22
input/fsh/valueSets/BDLoincLabResultsVS.fsh
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
ValueSet: BDLoincLabResultsVS
|
||||||
|
Id: bd-loinc-lab-results-valueset
|
||||||
|
Title: "Bangladesh LOINC Lab Results ValueSet"
|
||||||
|
Description: "LOINC leaf-level laboratory result codes for Bangladesh. Includes
|
||||||
|
individual component/result codes from LOINC 2.82 scoped to the Universal Lab Orders
|
||||||
|
ValueSet. Excludes discouraged and non-laboratory codes. Used as Observation.code
|
||||||
|
in bd-lab-result-observation."
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-loinc-lab-results-valueset"
|
||||||
|
* ^status = #draft
|
||||||
|
* ^experimental = true
|
||||||
|
* ^version = "0.1.0"
|
||||||
|
* ^publisher = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||||
|
* ^contact.name = "DGHS Health Information Unit"
|
||||||
|
* ^contact.telecom.system = #url
|
||||||
|
* ^contact.telecom.value = "https://dghs.gov.bd"
|
||||||
|
* ^jurisdiction = urn:iso:std:iso:3166#BD "Bangladesh"
|
||||||
|
* ^copyright = "This content from LOINC® is copyright © 1995 Regenstrief Institute, Inc. and the LOINC Committee, and available at no cost under the license at http://loinc.org/terms-of-use."
|
||||||
|
* ^immutable = false
|
||||||
|
|
||||||
|
* include codes from system http://loinc.org
|
||||||
|
where concept in "https://fhir.dghs.gov.bd/core/ValueSet/loinc-lab-results"
|
||||||
36
input/fsh/valueSets/BDMedicationDoseFormVS.fsh
Normal file
36
input/fsh/valueSets/BDMedicationDoseFormVS.fsh
Normal file
@@ -0,0 +1,36 @@
|
|||||||
|
ValueSet: BDMedicationDoseFormVS
|
||||||
|
Id: bd-medication-dose-form
|
||||||
|
Title: "Medication Dose Form Value Set"
|
||||||
|
Description: """
|
||||||
|
Value set containing pharmaceutical dose form concepts from the European
|
||||||
|
Directorate for the Quality of Medicines (EDQM) Standard Terms, domain:
|
||||||
|
Pharmaceutical Dose Forms (PDF).
|
||||||
|
|
||||||
|
This value set is used to code the physical form of a medication product
|
||||||
|
in BDMedication.form. EDQM Standard Terms are maintained and versioned
|
||||||
|
by the Council of Europe and are the WHO-recommended international standard
|
||||||
|
for pharmaceutical dose form coding.
|
||||||
|
|
||||||
|
Concepts are loaded into the national OCL terminology server at
|
||||||
|
https://tr.ocl.dghs.gov.bd under the MoHFW organisation as source EDQM-PDF.
|
||||||
|
|
||||||
|
**Binding:** preferred on BDMedication.form — systems should use EDQM
|
||||||
|
codes when populating dose form, but omission is permitted. A mapping from
|
||||||
|
DGDA plain text dose forms to EDQM codes is planned for a future IG version.
|
||||||
|
|
||||||
|
**Code system canonical:** https://standardterms.edqm.eu
|
||||||
|
**OCL source:** https://tr.ocl.dghs.gov.bd/#/orgs/MoHFW/sources/EDQM-PDF/
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/edqm-dose-forms"
|
||||||
|
* ^version = "1.0.0"
|
||||||
|
* ^status = #active
|
||||||
|
* ^experimental = false
|
||||||
|
* ^publisher = "DGHS Health Informatics Unit"
|
||||||
|
* ^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"
|
||||||
|
* ^immutable = false
|
||||||
|
|
||||||
|
* include codes from system https://standardterms.edqm.eu
|
||||||
31
input/fsh/valueSets/BDRouteOfAdministrationVS.fsh
Normal file
31
input/fsh/valueSets/BDRouteOfAdministrationVS.fsh
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
ValueSet: BDRouteOfAdministrationVS
|
||||||
|
Id: bd-route-of-administration
|
||||||
|
Title: "Route of Administration Value Set"
|
||||||
|
Description: """
|
||||||
|
Value set containing route of administration concepts from the HL7 Version 3
|
||||||
|
RouteOfAdministration code system.
|
||||||
|
|
||||||
|
This value set is used to code the route by which a medication is administered
|
||||||
|
in MedicationRequest.dosageInstruction.route. HL7 v3 RouteOfAdministration
|
||||||
|
is a license-free, internationally recognised vocabulary already embedded in
|
||||||
|
the FHIR ecosystem.
|
||||||
|
|
||||||
|
Concepts are loaded into the national OCL terminology server at
|
||||||
|
https://tr.ocl.dghs.gov.bd under the MoHFW organisation.
|
||||||
|
|
||||||
|
**Code system canonical:** http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration
|
||||||
|
**Binding:** required on BDMedicationRequest.dosageInstruction.route
|
||||||
|
"""
|
||||||
|
|
||||||
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-route-of-administration"
|
||||||
|
* ^version = "1.0.0"
|
||||||
|
* ^status = #active
|
||||||
|
* ^experimental = false
|
||||||
|
* ^publisher = "DGHS Health Informatics Unit"
|
||||||
|
* ^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"
|
||||||
|
* ^immutable = false
|
||||||
|
|
||||||
|
* include codes from system http://terminology.hl7.org/CodeSystem/v3-RouteOfAdministration
|
||||||
@@ -1,5 +1,5 @@
|
|||||||
ValueSet: BDVaccineVS
|
ValueSet: BDVaccineVS
|
||||||
Id: bd-vaccine-vs
|
Id: bd-vaccine-valueset
|
||||||
Title: "Bangladesh Vaccine Value Set"
|
Title: "Bangladesh Vaccine Value Set"
|
||||||
Description: "Allowed vaccines for immunization in Bangladesh."
|
Description: "Allowed vaccines for immunization in Bangladesh."
|
||||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-vaccine-valueset"
|
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-vaccine-valueset"
|
||||||
|
|||||||
BIN
input/images/bd-core-architecture.png
Normal file
BIN
input/images/bd-core-architecture.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 347 KiB |
@@ -38,4 +38,6 @@
|
|||||||
</li>
|
</li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
<li><a href="https://pdb.shrlive.dghs.gov.bd">SHR Dashboard</a></li>
|
||||||
|
<li><a href="https://en.info.shr.dghs.gov.bd">Learn More</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
|
|||||||
79
input/package-list.json
Normal file
79
input/package-list.json
Normal file
@@ -0,0 +1,79 @@
|
|||||||
|
{
|
||||||
|
"package-id": "bd.fhir.core",
|
||||||
|
"title": "Bangladesh Core FHIR Implementation Guide",
|
||||||
|
"canonical": "https://fhir.dghs.gov.bd/core",
|
||||||
|
"introduction": "The Bangladesh Core FHIR IG defines national base profiles, value sets, and extensions for health data interoperability.",
|
||||||
|
"list": [
|
||||||
|
{
|
||||||
|
"version": "current",
|
||||||
|
"desc": "Continuous Integration Build (latest in development)",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/",
|
||||||
|
"status": "ci-build",
|
||||||
|
"current": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.4.0",
|
||||||
|
"date": "2026-04-06",
|
||||||
|
"desc": "DGDA Drug and LOINC Integration",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.4.0/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.3.0",
|
||||||
|
"date": "2026-03-08",
|
||||||
|
"desc": "ICD-11 MMS integration and minor bug fixes",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.3.0/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.5",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Minor bug fix release",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.5/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.4",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Minor visual improvements",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.4/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.3",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Minor documentation updates",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.3/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.2",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Minor bug fix release",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.2/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.1",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Second draft release of the Bangladesh Core FHIR IG",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.1/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"date": "2025-10-02",
|
||||||
|
"desc": "First draft release of the Bangladesh Core FHIR IG",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.0/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -1,10 +1,34 @@
|
|||||||
<div xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../input-cache/schemas/R5/fhir-single.xsd">
|
<div xmlns="http://www.w3.org/1999/xhtml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../input-cache/schemas/R5/fhir-single.xsd">
|
||||||
<h3>Heading 1</h3>
|
|
||||||
<p>
|
<p>
|
||||||
Some text
|
The Bangladesh Core FHIR Implementation Guide defines national base
|
||||||
|
profiles, code systems, and value sets to ensure interoperability across
|
||||||
|
digital health systems under DGHS and MoHFW.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Motivation</h3>
|
||||||
|
<p>
|
||||||
|
Bangladesh has multiple health information systems developed over the
|
||||||
|
years, including DHIS2, multiple hospital automation systems, field automation systems, and HRIS. These systems use different data
|
||||||
|
standards, which makes interoperability difficult. This guide aligns
|
||||||
|
national systems with HL7® FHIR® R4 to ensure semantic consistency and
|
||||||
|
facilitate integration with global initiatives.
|
||||||
|
</p>
|
||||||
|
|
||||||
|
<h3>Scope</h3>
|
||||||
|
<ul>
|
||||||
|
<li>Patient identity management (UHID, NID, BRN)</li>
|
||||||
|
<li>Health facility and organization registry</li>
|
||||||
|
<li>Immunization, laboratory, and condition profiles</li>
|
||||||
|
<li>Terminology services (ICD-11, SNOMED subsets, local CodeSystems)</li>
|
||||||
|
</ul>
|
||||||
|
|
||||||
|
<h3>National Digital Health Architecture</h3>
|
||||||
|
<p>
|
||||||
|
The following diagram shows how FHIR-based services are integrated into
|
||||||
|
Bangladesh's national digital health architecture:
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
<img src="bd-core-architecture.png" alt="Bangladesh Digital Health Architecture" style="max-width:100%; height:auto"/>
|
||||||
</p>
|
</p>
|
||||||
<h3>Heading 2</h3>
|
|
||||||
<p>
|
|
||||||
<img height="600" src="anImage.png" alt="A sample image"/>
|
|
||||||
</p>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -2,32 +2,25 @@
|
|||||||
<!-- The spaces between the open and close "a" tag are mandatory. (Cuz HTML renderers are dumb...) -->
|
<!-- The spaces between the open and close "a" tag are mandatory. (Cuz HTML renderers are dumb...) -->
|
||||||
<a name="intro"> </a>
|
<a name="intro"> </a>
|
||||||
<h3>Introduction</h3>
|
<h3>Introduction</h3>
|
||||||
<p>
|
<p>
|
||||||
What is this IG about (in patient/non-expert friendly terms).
|
The Bangladesh Core FHIR Implementation Guide (BD-Core-FHIR-IG) is part of the Bangladesh Digital Health Blueprint. It defines how health information should be exchanged across systems in Bangladesh in a safe, standardized, and interoperable way.
|
||||||
|
</p>
|
||||||
|
<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>
|
</p>
|
||||||
<a name="technical"> </a>
|
<a name="technical"> </a>
|
||||||
<h3>Technical Overview</h3>
|
<h3>Technical Overview</h3>
|
||||||
<p>
|
<p>
|
||||||
Additional detail/context setting for those who have significant background in the domain. (Try to make as understandable as you can, but
|
This guide provides national FHIR profiles, value sets, and terminology bindings that software developers and system implementers must use when designing digital health applications for Bangladesh. Using these standards ensures consistency, reduces duplication, and supports patient-centered care.
|
||||||
set important context).
|
|
||||||
</p>
|
</p>
|
||||||
<a name="walkthrough"> </a>
|
<a name="walkthrough"> </a>
|
||||||
<p>
|
<p>
|
||||||
The main sections of this IG are:
|
The main sections of this IG are:
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
<li>
|
<li><a href="background.html">Background</a> - Context and rationale for the IG</li>
|
||||||
<a href="background.html">Background</a> - provides business context for the implementation guide and information that implementers should be
|
<li><a href="spec.html">Detailed Specification</a> - Profiles, value sets, and conformance requirements</li>
|
||||||
familiar with before reading the remainder of the IG. There could be multiple pages for this.
|
<li><a href="fragments.html">Fragments</a> - Guidance about how to embed fragments in an IG</li>
|
||||||
</li>
|
<li><a href="downloads.html">Downloads</a> - Allows downloading a copy of this implementation guide and other useful information</li>
|
||||||
<li>
|
|
||||||
<a href="spec.html">Detailed Specification</a> - The actual stuff implementers are expected to do. (Could be multiple pages for this.)
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="fragments.html">Fragments</a> - Guidance about how to embed fragments in an IG
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="downloads.html">Downloads</a> - Allows downloading a copy of this implementation guide and other useful information
|
|
||||||
</li>
|
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
@@ -1,5 +1,135 @@
|
|||||||
### A Heading
|
## Bangladesh Core FHIR Implementation Guide — General Specification
|
||||||
You can also use markdown if that's your thing
|
|
||||||
|
|
||||||
And an icon: 
|
### Purpose and Scope
|
||||||
|
|
||||||
|
This Implementation Guide (IG) defines the national FHIR R4 core profiles,
|
||||||
|
value sets, code systems, extensions, and implementation rules for digital
|
||||||
|
health systems in Bangladesh. It is published by the Directorate General of
|
||||||
|
Health Services (DGHS), Ministry of Health and Family Welfare (MoHFW).
|
||||||
|
|
||||||
|
This IG is a foundational component of the **Shareable Health Record (SHR)**
|
||||||
|
system — the national Health Information Exchange (HIE) and gateway for
|
||||||
|
producing a Personal Health Profile for every citizen of Bangladesh.
|
||||||
|
|
||||||
|
This IG is aligned with and gives technical expression to:
|
||||||
|
- **Bangladesh Digital Health Strategy 2023–2027**
|
||||||
|
- **Bangladesh Digital Health Architecture Blueprint**
|
||||||
|
|
||||||
|
The Patient profile strictly conforms to the **Citizen Core Data Structure
|
||||||
|
(CCDS)** defined by the Cabinet Division of the Government of Bangladesh.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Intended Audience
|
||||||
|
|
||||||
|
This IG is addressed to all software systems exchanging health data with
|
||||||
|
the national SHR, including but not limited to:
|
||||||
|
|
||||||
|
- Electronic Medical Record (EMR) systems
|
||||||
|
- Laboratory Information Systems (LIS)
|
||||||
|
- Picture Archiving and Communication Systems (PACS)
|
||||||
|
- Hospital Information Systems (HIS)
|
||||||
|
|
||||||
|
This includes systems operated by public sector facilities, private
|
||||||
|
hospitals and clinics, autonomous bodies, and non-governmental
|
||||||
|
organisations (NGOs) operating within Bangladesh.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### FHIR Version and Conventions
|
||||||
|
|
||||||
|
This IG is built on **FHIR R4 (4.0.1)**. All profiles, extensions, value
|
||||||
|
sets, and code systems defined here conform to the FHIR R4 specification.
|
||||||
|
|
||||||
|
Conformance language in this IG follows **RFC 2119**: SHALL, SHALL NOT,
|
||||||
|
SHOULD, SHOULD NOT, and MAY carry their standard normative meanings.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Design Principles
|
||||||
|
|
||||||
|
**1. National terminology over international defaults**
|
||||||
|
Where international code systems are used (ICD-11, LOINC, SNOMED CT),
|
||||||
|
they are bound through national infrastructure. The national OpenConceptLab
|
||||||
|
(OCL) terminology server at `https://tr.ocl.dghs.gov.bd` is the single
|
||||||
|
public-facing terminology resolution point. Vendors never interact with
|
||||||
|
upstream terminology sources directly.
|
||||||
|
|
||||||
|
**2. HIE boundary enforcement**
|
||||||
|
All vendor submissions pass through the national SHR HIE boundary. Mandatory
|
||||||
|
validation gates — including the Bangladesh ICD-11 Cluster Validator — are
|
||||||
|
applied at the HIE layer. Profile conformance is a necessary but not
|
||||||
|
sufficient condition for acceptance; HIE boundary rules apply additionally.
|
||||||
|
|
||||||
|
**3. Open slicing for extensibility**
|
||||||
|
Where slices are defined on coding elements, slicing is open (`#open`).
|
||||||
|
Mandatory slices enforce the presence of nationally required codes;
|
||||||
|
additional local or proprietary codings are permitted alongside them.
|
||||||
|
This ensures national interoperability without preventing systems from
|
||||||
|
carrying additional coded data.
|
||||||
|
|
||||||
|
**4. Citizen-centred identity**
|
||||||
|
The Patient profile conforms to the Citizen Core Data Structure (CCDS),
|
||||||
|
ensuring that patient identity in the SHR is anchored to the national
|
||||||
|
citizen identity infrastructure.
|
||||||
|
|
||||||
|
**5. Must Support obligations**
|
||||||
|
Must Support (MS) in this IG means that conformant systems SHALL be capable
|
||||||
|
of populating the element if the data is held by the system, and SHALL be
|
||||||
|
capable of processing it when received. Specific sender and receiver
|
||||||
|
obligations are \[TODO: to be defined in a future revision\].
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Profiles
|
||||||
|
|
||||||
|
The following national core profiles are defined in this IG:
|
||||||
|
|
||||||
|
| Profile | Base Resource | Purpose |
|
||||||
|
|---|---|---|
|
||||||
|
| [BD Patient](StructureDefinition-bd-patient.html) | Patient | Citizen identity conforming to CCDS |
|
||||||
|
| [BD Condition](StructureDefinition-bd-condition.html) | Condition | Clinical conditions coded with ICD-11 MMS |
|
||||||
|
| [BD Observation](StructureDefinition-bd-observation.html) | Observation | Vital signs, laboratory results, clinical findings |
|
||||||
|
| [BD Encounter](StructureDefinition-bd-encounter.html) | Encounter | Clinical visits and episodes of care |
|
||||||
|
| [BD Medication](StructureDefinition-bd-medication.html) | Medication | Medication definitions |
|
||||||
|
| [BD MedicationRequest](StructureDefinition-bd-medicationrequest.html) | MedicationRequest | Prescriptions and medication orders |
|
||||||
|
| [BD Immunization](StructureDefinition-bd-immunization.html) | Immunization | Vaccination records |
|
||||||
|
| [BD Organization](StructureDefinition-bd-organization.html) | Organization | Health facilities and organisations |
|
||||||
|
| [BD Practitioner](StructureDefinition-bd-practitioner.html) | Practitioner | Healthcare providers |
|
||||||
|
| [BD Location](StructureDefinition-bd-location.html) | Location | Physical locations and administrative geography |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Terminology
|
||||||
|
|
||||||
|
The following external code systems are used in this IG:
|
||||||
|
|
||||||
|
| System | URI | Purpose |
|
||||||
|
|---|---|---|
|
||||||
|
| ICD-11 MMS | `http://id.who.int/icd/release/11/mms` | Condition coding |
|
||||||
|
| LOINC | `http://loinc.org` | Observation coding |
|
||||||
|
| UCUM | `http://unitsofmeasure.org` | Observation units |
|
||||||
|
| SNOMED CT | `http://snomed.info/sct` | Clinical terminology |
|
||||||
|
|
||||||
|
Runtime terminology resolution is provided by the national OCL terminology
|
||||||
|
server. See the [ICD-11 Implementation](icd11.html) page for full details
|
||||||
|
of ICD-11 integration, postcoordination conventions, and conformance
|
||||||
|
requirements.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Known Gaps and Planned Work
|
||||||
|
|
||||||
|
This IG is currently at version 0.2.5 with status `draft`. The following
|
||||||
|
are known gaps to be addressed in future revisions:
|
||||||
|
|
||||||
|
- **Must Support semantics** — sender and receiver obligations not yet
|
||||||
|
formally defined
|
||||||
|
- **Capability Statements** — no CapabilityStatement resources defined yet
|
||||||
|
- **Search Parameters** — no defined search parameter requirements yet
|
||||||
|
- **Transaction Patterns** — no defined FHIR transaction or message patterns yet
|
||||||
|
- **HAPI FHIR deployment** — `RemoteTerminologyServiceValidationSupport`
|
||||||
|
configuration for OCL not yet deployed; this is a prerequisite for
|
||||||
|
runtime ICD-11 class restriction enforcement before vendor onboarding
|
||||||
|
- **Must Support definitions per profile** — individual profile pages do
|
||||||
|
not yet carry explicit MS obligation tables
|
||||||
|
|||||||
@@ -1,2 +1,244 @@
|
|||||||
### A Heading
|
## ICD-11 Implementation
|
||||||
A child specification page with more detail
|
|
||||||
|
### Overview
|
||||||
|
|
||||||
|
The Bangladesh Core FHIR Implementation Guide uses ICD-11 Mortality and
|
||||||
|
Morbidity Statistics (MMS) as the mandatory coding system for clinical
|
||||||
|
conditions. This page documents the system URI, terminology infrastructure,
|
||||||
|
conformance requirements, and postcoordination conventions for implementers.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### System URI
|
||||||
|
|
||||||
|
All ICD-11 MMS codes SHALL use the WHO canonical system URI:
|
||||||
|
```
|
||||||
|
http://id.who.int/icd/release/11/mms
|
||||||
|
```
|
||||||
|
|
||||||
|
The preferred code form is the short stem code (e.g. `1A00`, `NC72.Z`).
|
||||||
|
Linearization URIs are not used as code identifiers in this IG.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Terminology Infrastructure
|
||||||
|
|
||||||
|
#### National OCL Terminology Server
|
||||||
|
|
||||||
|
Runtime code validation and lookup are delegated to the national
|
||||||
|
OpenConceptLab (OCL) terminology server operated by DGHS/MoHFW:
|
||||||
|
|
||||||
|
**Public FHIR R4 endpoint:** `https://tr.ocl.dghs.gov.bd`
|
||||||
|
|
||||||
|
OCL hosts ICD-11 MMS version 2025-01 with 36,941 concepts across the
|
||||||
|
following concept classes: Diagnosis, Finding, Substance, Organism,
|
||||||
|
Device, Anatomy, and Misc.
|
||||||
|
|
||||||
|
Vendors do not interact with OCL directly. All vendor submissions are
|
||||||
|
validated at the HIE boundary via the Bangladesh ICD-11 Cluster Validator
|
||||||
|
(see [Cluster Expressions](#cluster-expressions) below).
|
||||||
|
|
||||||
|
#### Supported OCL Operations
|
||||||
|
|
||||||
|
The following FHIR terminology operations are supported. The `system=`
|
||||||
|
parameter must be used — `url=` is not supported by OCL.
|
||||||
|
|
||||||
|
**CodeSystem $validate-code**
|
||||||
|
```
|
||||||
|
GET https://tr.ocl.dghs.gov.bd/api/fhir/CodeSystem/$validate-code
|
||||||
|
?system=http://id.who.int/icd/release/11/mms&code={code}
|
||||||
|
```
|
||||||
|
|
||||||
|
**CodeSystem $lookup**
|
||||||
|
```
|
||||||
|
GET https://tr.ocl.dghs.gov.bd/api/fhir/CodeSystem/$lookup
|
||||||
|
?system=http://id.who.int/icd/release/11/mms&code={code}
|
||||||
|
```
|
||||||
|
|
||||||
|
**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}
|
||||||
|
```
|
||||||
|
|
||||||
|
#### Unsupported OCL Operations
|
||||||
|
|
||||||
|
`$expand` is not supported — this is a known limitation of the national
|
||||||
|
OCL instance. Build-time expansion is suppressed. Implementers SHALL NOT
|
||||||
|
depend on `$expand` for ICD-11 ValueSets in this IG.
|
||||||
|
|
||||||
|
#### Local ICD-11 Docker Instance
|
||||||
|
|
||||||
|
A local WHO ICD-11 Docker instance is maintained internally by DGHS at
|
||||||
|
`https://icd11.dghs.gov.bd` running release 2025-01. This instance is
|
||||||
|
internal only and is not exposed to vendors. It serves as the import
|
||||||
|
source for OCL and as the backend for the cluster validator.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Condition.code Binding and Class Restriction
|
||||||
|
|
||||||
|
`Condition.code` is bound to the
|
||||||
|
[Bangladesh ICD-11 MMS Condition ValueSet](ValueSet-bd-condition-icd11-diagnosis-valueset.html)
|
||||||
|
at `preferred` strength. This ValueSet includes only Diagnosis (14,071)
|
||||||
|
and Finding (5,590) class concepts — 19,661 concepts total as of
|
||||||
|
version 2025-01.
|
||||||
|
|
||||||
|
`Condition.code` SHALL contain at least one coding conforming to the
|
||||||
|
`coding[stem]` slice with `system = http://id.who.int/icd/release/11/mms`.
|
||||||
|
Vendors cannot omit ICD-11 by substituting a local code.
|
||||||
|
|
||||||
|
The following concept classes SHALL NOT appear as standalone stem codes
|
||||||
|
in `Condition.code`: Substance, Organism, Device, Anatomy, Misc.
|
||||||
|
|
||||||
|
This restriction exists because these classes represent entities that
|
||||||
|
are not themselves diagnoses or clinical findings — they are axes used
|
||||||
|
in postcoordination (e.g. a causative substance, an affected anatomy
|
||||||
|
site). Their correct use is as satellite codes within a cluster
|
||||||
|
expression, not as standalone condition codes.
|
||||||
|
|
||||||
|
Class restriction is enforced at runtime via OCL ValueSet `$validate-code`
|
||||||
|
against the Bangladesh ICD-11 MMS Condition ValueSet. At the HAPI FHIR
|
||||||
|
layer, enforcement is via `RemoteTerminologyServiceValidationSupport`
|
||||||
|
configured to call OCL. HAPI FHIR deployment will be completed before
|
||||||
|
vendor onboarding.
|
||||||
|
|
||||||
|
The `coding[stem]` slice is open (`#open`) — additional local codings
|
||||||
|
are permitted alongside the mandatory ICD-11 stem.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Cluster Expressions
|
||||||
|
|
||||||
|
#### Background
|
||||||
|
|
||||||
|
ICD-11 supports postcoordination — the combination of a stem code with
|
||||||
|
one or more satellite codes to precisely represent a clinical concept
|
||||||
|
that cannot be expressed by a stem code alone. A postcoordinated
|
||||||
|
expression is called a cluster expression.
|
||||||
|
|
||||||
|
Cluster expressions are typically sourced from the WHO Electronic Coding
|
||||||
|
Tool (ECT) at the point of care.
|
||||||
|
|
||||||
|
#### Syntax
|
||||||
|
|
||||||
|
A cluster expression combines a stem code with satellite codes using
|
||||||
|
the `&` operator (combination) or `/` operator (specificity):
|
||||||
|
```
|
||||||
|
NC72.Z&XK8G&XJ7ZH&XJ7YM
|
||||||
|
```
|
||||||
|
|
||||||
|
Where:
|
||||||
|
- `NC72.Z` — stem code: Fracture of femur, unspecified
|
||||||
|
- `XK8G` — satellite: laterality
|
||||||
|
- `XJ7ZH` — satellite: fracture subtype
|
||||||
|
- `XJ7YM` — satellite: fracture open or closed
|
||||||
|
|
||||||
|
#### FHIR Representation
|
||||||
|
|
||||||
|
The stem code is carried in `Coding.code`. The full cluster expression
|
||||||
|
is carried in the
|
||||||
|
[ICD-11 Cluster Expression extension](StructureDefinition-icd11-cluster-expression.html)
|
||||||
|
on the same `Coding` element:
|
||||||
|
```json
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://id.who.int/icd/release/11/mms",
|
||||||
|
"code": "NC72.Z",
|
||||||
|
"display": "Fracture of femur, unspecified",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "https://fhir.dghs.gov.bd/core/StructureDefinition/icd11-cluster-expression",
|
||||||
|
"valueString": "NC72.Z&XK8G&XJ7ZH&XJ7YM"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "Fracture of femur, unspecified — left, transverse, closed"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The stem code in `Coding.code` SHALL match the leading stem code in the
|
||||||
|
cluster expression string.
|
||||||
|
|
||||||
|
#### Stem-Only vs Cluster
|
||||||
|
|
||||||
|
| Scenario | Representation | Validation |
|
||||||
|
|---|---|---|
|
||||||
|
| Single stem code | `Coding.code` only | OCL `$validate-code` |
|
||||||
|
| Postcoordinated expression | `Coding.code` + cluster extension | Cluster Validator |
|
||||||
|
|
||||||
|
The cluster validator explicitly rejects stem-only expressions. Single
|
||||||
|
stem codes SHALL be represented in `Coding.code` only and validated via
|
||||||
|
OCL `$validate-code`.
|
||||||
|
|
||||||
|
#### Satellite Code Class Restriction Exemption
|
||||||
|
|
||||||
|
Satellite codes in a cluster expression are exempt from the
|
||||||
|
Diagnosis/Finding class restriction that applies to stem codes in
|
||||||
|
`Condition.code`. Substance, Anatomy, Organism, and other axis codes
|
||||||
|
are valid and expected as satellites.
|
||||||
|
|
||||||
|
#### Bangladesh ICD-11 Cluster Validator
|
||||||
|
|
||||||
|
All postcoordinated cluster expressions SHALL be validated against the
|
||||||
|
Bangladesh ICD-11 Cluster Validator prior to submission to the HIE:
|
||||||
|
```
|
||||||
|
POST https://icd11.dghs.gov.bd/cluster/validate
|
||||||
|
Content-Type: application/json
|
||||||
|
|
||||||
|
{"expression": "NC72.Z&XK8G&XJ7ZH&XJ7YM"}
|
||||||
|
```
|
||||||
|
|
||||||
|
Example response:
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"valid": true,
|
||||||
|
"stem": {
|
||||||
|
"code": "NC72.Z",
|
||||||
|
"display": "Fracture of femur, unspecified",
|
||||||
|
"ocl_validated": true
|
||||||
|
},
|
||||||
|
"satellites": [
|
||||||
|
{"code": "XK8G", "axis": "laterality", "valid": true},
|
||||||
|
{"code": "XJ7ZH", "axis": "fractureSubtype", "valid": true},
|
||||||
|
{"code": "XJ7YM", "axis": "fractureOpenOrClosed", "valid": true}
|
||||||
|
],
|
||||||
|
"errors": []
|
||||||
|
}
|
||||||
|
```
|
||||||
|
|
||||||
|
The cluster validator is a mandatory HIE boundary gate. All vendor
|
||||||
|
submissions containing postcoordinated ICD-11 expressions pass through it.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Conformance Statements
|
||||||
|
|
||||||
|
**ICD-11-CONF-01:** ICD-11 MMS codes SHALL use system URI
|
||||||
|
`http://id.who.int/icd/release/11/mms`. Stem code validation is available
|
||||||
|
via OCL at:
|
||||||
|
`https://tr.ocl.dghs.gov.bd/api/fhir/CodeSystem/$validate-code?system=http://id.who.int/icd/release/11/mms&code={code}`
|
||||||
|
|
||||||
|
**ICD-11-CONF-02:** The `icd11-cluster-expression` extension SHALL only
|
||||||
|
be present when the expression contains at least one postcoordination
|
||||||
|
satellite code using `&` or `/` operators. Single stem codes SHALL be
|
||||||
|
represented in `Coding.code` only and validated via OCL `$validate-code`.
|
||||||
|
|
||||||
|
**ICD-11-CONF-03:** Postcoordinated 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.
|
||||||
|
|
||||||
|
**ICD-11-CONF-04:** `Condition.code` SHALL contain at least one coding
|
||||||
|
conforming to the `coding[stem]` slice with
|
||||||
|
`system = http://id.who.int/icd/release/11/mms`. The stem code SHALL be
|
||||||
|
a member of the Bangladesh ICD-11 MMS Condition ValueSet, which includes
|
||||||
|
only Diagnosis and Finding class concepts. This restriction is enforced
|
||||||
|
at runtime via OCL ValueSet `$validate-code`.
|
||||||
|
|
||||||
|
**ICD-11-CONF-05:** Substance, Organism, Device, Anatomy, and Misc class
|
||||||
|
ICD-11 concepts SHALL NOT appear as standalone stem codes in
|
||||||
|
`Condition.code`. This restriction does not apply to satellite codes
|
||||||
|
carried in the `icd11-cluster-expression` extension.
|
||||||
14
input/publication-request.json
Normal file
14
input/publication-request.json
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
{
|
||||||
|
"package-id": "bd.fhir.core",
|
||||||
|
"version": "0.2.0",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.0",
|
||||||
|
"mode": "working",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU1",
|
||||||
|
"desc": "First draft release of the Bangladesh Core FHIR Implementation Guide",
|
||||||
|
"descmd": "# Bangladesh Core FHIR IG - Release 0.2.0\n\nThis is the first draft release of the Bangladesh Core FHIR Implementation Guide. It defines national base profiles, value sets, and extensions for health data interoperability in Bangladesh.\n\n## Key Features\n- Base profiles for common FHIR resources\n- National value sets and code systems\n- Extensions for Bangladesh-specific requirements\n\n## Status\nThis is a trial-use release. Implementers are encouraged to provide feedback.",
|
||||||
|
"first": true,
|
||||||
|
"category": "National Base",
|
||||||
|
"ci-build": "https://fhir.dghs.gov.bd/core/",
|
||||||
|
"package-list": "https://fhir.dghs.gov.bd/core/package-list.json"
|
||||||
|
}
|
||||||
@@ -1,20 +1,79 @@
|
|||||||
{
|
{
|
||||||
"package-id" : "hl7.fhir.uv.myig",
|
"package-id": "bd.fhir.core",
|
||||||
"title" : "Your User Friendly Name for MyIG Here",
|
"title": "Bangladesh Core FHIR Implementation Guide",
|
||||||
"canonical" : "http://hl7.org/fhir/uv/myig",
|
"canonical": "https://fhir.dghs.gov.bd/core",
|
||||||
"introduction" : "The introduction that should appear in the FHIR IG registry",
|
"introduction": "The Bangladesh Core FHIR IG defines national base profiles, value sets, and extensions for health data interoperability.",
|
||||||
"list" : [{
|
"list": [
|
||||||
"version" : "current",
|
{
|
||||||
"desc" : "Continuous Integration Build (latest in version control)",
|
"version": "current",
|
||||||
"path" : "http://hl7.org/fhir/ig/HL7/myig",
|
"desc": "Continuous Integration Build (latest in development)",
|
||||||
"status" : "ci-build",
|
"path": "https://fhir.dghs.gov.bd/core/",
|
||||||
"current" : true
|
"status": "ci-build",
|
||||||
},{
|
"current": true
|
||||||
"version" : "0.1.0",
|
},
|
||||||
"date" : "2099-01-01",
|
{
|
||||||
"desc" : "Initial STU ballot (Mmm yyyy Ballot)",
|
"version": "0.4.0",
|
||||||
"path" : "http://hl7.org/fhir/yyyyMmm/myig.html",
|
"date": "2026-04-06",
|
||||||
"status" : "ballot",
|
"desc": "DGDA Drug and LOINC Integration",
|
||||||
"sequence" : "DSTU 1"
|
"path": "https://fhir.dghs.gov.bd/core/0.4.0/",
|
||||||
}]
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.3.0",
|
||||||
|
"date": "2026-03-08",
|
||||||
|
"desc": "ICD-11 MMS integration and minor bug fixes",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.3.0/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.5",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Minor bug fix release",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.5/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.4",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Minor visual improvements",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.4/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.3",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Minor documentation updates",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.3/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.2",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Minor bug fix release",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.2/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.1",
|
||||||
|
"date": "2025-10-06",
|
||||||
|
"desc": "Second draft release of the Bangladesh Core FHIR IG",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.1/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"version": "0.2.0",
|
||||||
|
"date": "2025-10-02",
|
||||||
|
"desc": "First draft release of the Bangladesh Core FHIR IG",
|
||||||
|
"path": "https://fhir.dghs.gov.bd/core/0.2.0/",
|
||||||
|
"status": "trial-use",
|
||||||
|
"sequence": "STU 1"
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
@@ -6,7 +6,7 @@ description: >
|
|||||||
This Implementation Guide defines the Bangladesh Core FHIR profiles,
|
This Implementation Guide defines the Bangladesh Core FHIR profiles,
|
||||||
value sets, code systems, and implementation rules for national digital health systems.
|
value sets, code systems, and implementation rules for national digital health systems.
|
||||||
status: draft
|
status: draft
|
||||||
version: 0.2.0
|
version: 0.3.0
|
||||||
fhirVersion: 4.0.1
|
fhirVersion: 4.0.1
|
||||||
copyrightYear: 2025+
|
copyrightYear: 2025+
|
||||||
releaseLabel: CI Build
|
releaseLabel: CI Build
|
||||||
|
|||||||
Reference in New Issue
Block a user