Compare commits
115 Commits
634e7e28eb
...
v0.3.0
| Author | SHA1 | Date | |
|---|---|---|---|
| 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,24 +1,315 @@
|
||||
name: FHIR IG CI/CD Pipeline
|
||||
name: FHIR IG CI/CD Pipeline with Version Persistence
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
tags:
|
||||
- 'v*.*.*'
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
|
||||
env:
|
||||
REGISTRY: git.dghs.gov.bd # Replace with your Gitea instance
|
||||
IMAGE_NAME: gitadmin/bd-core-fhir-ig # Replace with your image name
|
||||
REGISTRY: git.dghs.gov.bd
|
||||
IMAGE_NAME: gitadmin/bd-core-fhir-ig
|
||||
|
||||
jobs:
|
||||
build-ig:
|
||||
runs-on: ubuntu-latest
|
||||
runs-on: fhir-runner
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0 # Full history for proper IG building
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Extract version from IG
|
||||
id: version
|
||||
run: |
|
||||
VERSION=$(grep -oP '<version value="\K[^"]+' input/bd.fhir.core.xml | head -1)
|
||||
|
||||
if [ -z "$VERSION" ]; then
|
||||
echo "ERROR: Could not extract version from ImplementationGuide XML"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Extracted version: $VERSION"
|
||||
echo "version=$VERSION" >> $GITHUB_OUTPUT
|
||||
|
||||
if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
|
||||
BUILD_TYPE="release"
|
||||
TAG_VERSION="${GITHUB_REF#refs/tags/v}"
|
||||
|
||||
if [ "$TAG_VERSION" != "$VERSION" ]; then
|
||||
echo "ERROR: Git tag version ($TAG_VERSION) doesn't match IG version ($VERSION)"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
BUILD_TYPE="dev"
|
||||
fi
|
||||
|
||||
echo "build_type=$BUILD_TYPE" >> $GITHUB_OUTPUT
|
||||
echo "Build type: $BUILD_TYPE"
|
||||
|
||||
- name: Prepare package-list.json and history.xml for IG Publisher
|
||||
run: |
|
||||
VERSION="${{ steps.version.outputs.version }}"
|
||||
BUILD_TYPE="${{ steps.version.outputs.build_type }}"
|
||||
DATE=$(date +%Y-%m-%d)
|
||||
|
||||
export VERSION DATE BUILD_TYPE
|
||||
|
||||
echo "📋 Preparing package-list.json and history.xml for IG Publisher..."
|
||||
|
||||
if [ ! -f "package-list.json" ]; then
|
||||
echo "⚠️ package-list.json not found in repo root"
|
||||
echo "Creating initial package-list.json..."
|
||||
cat > package-list.json << 'PKGEOF'
|
||||
{
|
||||
"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
|
||||
|
||||
python3 << 'PYEOF'
|
||||
import json
|
||||
import os
|
||||
import sys
|
||||
|
||||
version = os.environ.get('VERSION', '')
|
||||
date = os.environ.get('DATE', '')
|
||||
build_type = os.environ.get('BUILD_TYPE', '')
|
||||
|
||||
with open('package-list.json', 'r', encoding='utf-8') as f:
|
||||
pkg_list = json.load(f)
|
||||
|
||||
if 'list' not in pkg_list or not isinstance(pkg_list['list'], list):
|
||||
print("ERROR: package-list.json does not contain a valid 'list' array")
|
||||
sys.exit(1)
|
||||
|
||||
current_entries = [e for e in pkg_list['list'] if e.get('version') == 'current']
|
||||
if not current_entries:
|
||||
pkg_list['list'].insert(0, {
|
||||
"version": "current",
|
||||
"desc": "Continuous Integration Build (latest in version control)",
|
||||
"path": "https://fhir.dghs.gov.bd/core/",
|
||||
"status": "ci-build",
|
||||
"current": True
|
||||
})
|
||||
|
||||
if build_type == 'release':
|
||||
version_entry = None
|
||||
for e in pkg_list['list']:
|
||||
if e.get('version') == version:
|
||||
version_entry = e
|
||||
break
|
||||
if version_entry is None:
|
||||
new_entry = {
|
||||
"version": version,
|
||||
"date": date,
|
||||
"desc": f"Release {version}",
|
||||
"path": f"https://fhir.dghs.gov.bd/core/{version}/",
|
||||
"status": "trial-use",
|
||||
"sequence": "STU 1"
|
||||
}
|
||||
|
||||
insert_index = 1
|
||||
for i, entry in enumerate(pkg_list['list']):
|
||||
if entry.get('version') == 'current':
|
||||
insert_index = i + 1
|
||||
break
|
||||
|
||||
pkg_list['list'].insert(insert_index, new_entry)
|
||||
print(f"✅ Added version {version} to package-list.json")
|
||||
else:
|
||||
print(f"ℹ️ Version {version} already exists in package-list.json")
|
||||
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: |
|
||||
@@ -26,258 +317,343 @@ jobs:
|
||||
apt-get install -y docker.io
|
||||
docker --version
|
||||
|
||||
- name: Setup Docker Buildx
|
||||
uses: docker/setup-buildx-action@v3
|
||||
with:
|
||||
install: true
|
||||
|
||||
|
||||
- name: Build FHIR IG (Copy In/Out)
|
||||
- name: Preload previous IG package for comparison
|
||||
run: |
|
||||
echo "Building FHIR IG using copy approach..."
|
||||
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 }}..."
|
||||
|
||||
# Create a container (don't start yet)
|
||||
CONTAINER_ID=$(docker create \
|
||||
-v $(pwd)/previous-packages:/previous-packages \
|
||||
hl7fhir/ig-publisher-base:latest \
|
||||
/bin/bash -c "cp -r /home/publisher/ig /tmp/build && cd /tmp/build && _updatePublisher.sh -y && _genonce.sh")
|
||||
/bin/bash -c "
|
||||
|
||||
mkdir -p /tmp/build
|
||||
cp -r /home/publisher/ig /tmp/build/ig
|
||||
|
||||
cd /tmp/build/ig
|
||||
|
||||
rm -f package-list.json
|
||||
|
||||
_updatePublisher.sh -y
|
||||
_genonce.sh
|
||||
")
|
||||
|
||||
echo "Container ID: $CONTAINER_ID"
|
||||
|
||||
# Copy all source files into the container
|
||||
docker cp $(pwd)/. $CONTAINER_ID:/home/publisher/ig/
|
||||
|
||||
# Start and wait for completion
|
||||
docker start -a $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=$?
|
||||
|
||||
# Copy outputs back
|
||||
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"
|
||||
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"
|
||||
|
||||
# Show container logs if failed
|
||||
if [ $EXIT_CODE -ne 0 ]; then
|
||||
echo "Build failed, showing container logs:"
|
||||
docker logs $CONTAINER_ID
|
||||
echo "Build failed, showing logs:"
|
||||
docker logs "$CONTAINER_ID"
|
||||
docker rm "$CONTAINER_ID"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
docker rm $CONTAINER_ID
|
||||
docker rm "$CONTAINER_ID"
|
||||
|
||||
# Verify
|
||||
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: Verify IG Output
|
||||
- name: Update package-feed.xml for releases
|
||||
if: steps.version.outputs.build_type == 'release'
|
||||
run: |
|
||||
ls -la output/
|
||||
if [ ! -f "output/index.html" ]; then
|
||||
echo "ERROR: IG build failed - no index.html found"
|
||||
exit 1
|
||||
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
|
||||
echo "IG build successful!"
|
||||
|
||||
- name: Login to Gitea Container Registry
|
||||
if: github.ref == 'refs/heads/main'
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
registry: ${{ env.REGISTRY }}
|
||||
username: ${{ gitea.actor }}
|
||||
password: ${{ secrets.ACCESS_TOKEN_GITEA }}
|
||||
cat > update-feed.py << 'EOF'
|
||||
import sys
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
- name: Extract metadata
|
||||
if: github.ref == 'refs/heads/main'
|
||||
id: meta
|
||||
uses: docker/metadata-action@v4
|
||||
with:
|
||||
images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
|
||||
tags: |
|
||||
type=ref,event=branch
|
||||
type=ref,event=pr
|
||||
type=sha,prefix={{branch}}-
|
||||
type=raw,value=latest,enable={{is_default_branch}}
|
||||
version = sys.argv[1]
|
||||
datetime_iso = sys.argv[2]
|
||||
|
||||
- name: Build and push Docker image
|
||||
if: github.ref == 'refs/heads/main'
|
||||
uses: docker/build-push-action@v6
|
||||
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:
|
||||
context: .
|
||||
file: ./Dockerfile.serve
|
||||
push: true
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
# cache-from: type=gha
|
||||
# cache-to: type=gha,mode=max
|
||||
name: ig-output
|
||||
path: |
|
||||
ig-output.tar.gz
|
||||
deployment.env
|
||||
package-list.json
|
||||
package-feed.xml
|
||||
retention-days: 30
|
||||
|
||||
deploy:
|
||||
needs: build-ig
|
||||
runs-on: ubuntu-latest
|
||||
if: github.ref == 'refs/heads/main'
|
||||
if: github.ref == 'refs/heads/main' || startsWith(github.ref, 'refs/tags/v')
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
- name: Download artifact
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: ig-output
|
||||
|
||||
- name: Load deployment env
|
||||
id: deploy_info
|
||||
run: |
|
||||
source deployment.env
|
||||
echo "version=$version" >> $GITHUB_OUTPUT
|
||||
echo "build_type=$build_type" >> $GITHUB_OUTPUT
|
||||
echo "build_date=$build_date" >> $GITHUB_OUTPUT
|
||||
|
||||
echo "Deploying version: $version"
|
||||
echo "Build type: $build_type"
|
||||
|
||||
- name: Deploy to server
|
||||
uses: appleboy/ssh-action@v1.0.3
|
||||
env:
|
||||
REGISTRY: ${{ env.REGISTRY }}
|
||||
IMAGE_NAME: ${{ env.IMAGE_NAME }}
|
||||
IMAGE_TAG: latest
|
||||
uses: appleboy/scp-action@v0.1.7
|
||||
with:
|
||||
host: ${{ secrets.DEPLOY_HOST }}
|
||||
username: ${{ secrets.DEPLOY_USER }}
|
||||
password: ${{ secrets.DEPLOY_PASSWORD }}
|
||||
port: ${{ secrets.DEPLOY_PORT || 22 }}
|
||||
source: "ig-output.tar.gz,deployment.env,package-list.json,package-feed.xml"
|
||||
target: "/tmp/fhir-ig-deploy/"
|
||||
|
||||
- name: Execute deployment on server
|
||||
uses: appleboy/ssh-action@v1.0.3
|
||||
with:
|
||||
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
|
||||
cat > docker-compose.prod.yml << EOF
|
||||
|
||||
services:
|
||||
fhir-ig:
|
||||
image: \${REGISTRY}/\${IMAGE_NAME}:\${IMAGE_TAG:-latest}
|
||||
container_name: fhir-ig-app
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
environment:
|
||||
- NODE_ENV=production
|
||||
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:
|
||||
fhir-ig-network:
|
||||
driver: bridge
|
||||
|
||||
volumes:
|
||||
fhir-ig-logs:
|
||||
driver: local
|
||||
EOF
|
||||
|
||||
# Create deployment script
|
||||
cat > deploy.sh << 'DEPLOY_SCRIPT'
|
||||
#!/bin/bash
|
||||
set -e
|
||||
|
||||
# Configuration
|
||||
COMPOSE_FILE="docker-compose.prod.yml"
|
||||
SERVICE_NAME="fhir-ig"
|
||||
BACKUP_DIR="/opt/backups/fhir-ig"
|
||||
LOG_FILE="/var/log/fhir-ig-deploy.log"
|
||||
source /tmp/fhir-ig-deploy/deployment.env
|
||||
|
||||
# Create directories
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
mkdir -p "$(dirname "$LOG_FILE")"
|
||||
echo "=========================================="
|
||||
echo "Deploying FHIR IG"
|
||||
echo "Version: $version"
|
||||
echo "Build Type: $build_type"
|
||||
echo "Build Date: $build_date"
|
||||
echo "=========================================="
|
||||
|
||||
# Logging function
|
||||
log() {
|
||||
echo "$(date '+%Y-%m-%d %H:%M:%S') - $1" | tee -a "$LOG_FILE"
|
||||
}
|
||||
VERSIONS_DIR="/opt/fhir-ig/versions"
|
||||
mkdir -p "$VERSIONS_DIR"
|
||||
|
||||
log "Starting deployment of BD Core FHIR IG..."
|
||||
log "Registry: $REGISTRY"
|
||||
log "Image: $IMAGE_NAME"
|
||||
log "Tag: $IMAGE_TAG"
|
||||
|
||||
# Login to registry
|
||||
echo "$GITEA_PASSWORD" | docker login $REGISTRY -u "$GITEA_USERNAME" --password-stdin
|
||||
|
||||
# Backup current container if it exists
|
||||
if docker compose -f "$COMPOSE_FILE" ps --services --filter "status=running" | grep -q "$SERVICE_NAME"; then
|
||||
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..."
|
||||
if [ "$build_type" = "release" ]; then
|
||||
TARGET_DIR="$VERSIONS_DIR/$version"
|
||||
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
|
||||
|
||||
# Set environment variables for docker compose
|
||||
export REGISTRY="$REGISTRY"
|
||||
export IMAGE_NAME="$IMAGE_NAME"
|
||||
export IMAGE_TAG="$IMAGE_TAG"
|
||||
mkdir -p "$TARGET_DIR"
|
||||
|
||||
# Pull the latest image
|
||||
log "Pulling latest image: $REGISTRY/$IMAGE_NAME:$IMAGE_TAG..."
|
||||
docker pull "$REGISTRY/$IMAGE_NAME:$IMAGE_TAG"
|
||||
echo "Extracting IG output..."
|
||||
tar -xzf /tmp/fhir-ig-deploy/ig-output.tar.gz -C "$TARGET_DIR"
|
||||
|
||||
# docker pull "\${REGISTRY}/\${IMAGE_NAME}:\${IMAGE_TAG}"
|
||||
if [ -f "$TARGET_DIR/history.html" ]; then
|
||||
echo "✅ history.html deployed successfully"
|
||||
else
|
||||
echo "⚠️ WARNING: history.html not found in deployment"
|
||||
fi
|
||||
|
||||
# Stop and remove old container
|
||||
log "Stopping old container..."
|
||||
docker compose -f "$COMPOSE_FILE" down || log "No existing container to stop"
|
||||
cp "$TARGET_DIR/package-list.json" "$VERSIONS_DIR/package-list.json"
|
||||
cp "$TARGET_DIR/package-feed.xml" "$VERSIONS_DIR/package-feed.xml"
|
||||
|
||||
# Start new container
|
||||
log "Starting new container..."
|
||||
docker compose -f "$COMPOSE_FILE" up -d
|
||||
cp "$TARGET_DIR/package-list.json" "/opt/fhir-ig/package-list.json"
|
||||
cp "$TARGET_DIR/package-feed.xml" "/opt/fhir-ig/package-feed.xml"
|
||||
|
||||
# Wait for container to be healthy
|
||||
# log "Waiting for container to become healthy..."
|
||||
# timeout=120
|
||||
# elapsed=0
|
||||
# healthy=false
|
||||
if [ "$build_type" = "release" ]; then
|
||||
echo "Updating 'current' symlink to point to $version"
|
||||
rm -f "$VERSIONS_DIR/current"
|
||||
ln -sf "$version" "$VERSIONS_DIR/current"
|
||||
fi
|
||||
|
||||
# while [ $elapsed -lt $timeout ]; do
|
||||
# if docker compose -f "$COMPOSE_FILE" ps --format json | grep -q '"Health":"healthy"'; then
|
||||
# log "Container is healthy!"
|
||||
# healthy=true
|
||||
# break
|
||||
# fi
|
||||
# sleep 5
|
||||
# elapsed=$((elapsed + 5))
|
||||
# log "Waiting... ($elapsed/$timeout seconds)"
|
||||
# done
|
||||
cd /opt/fhir-ig
|
||||
|
||||
# if [ "$healthy" = false ]; then
|
||||
# log "ERROR: Container failed to become healthy within $timeout seconds"
|
||||
# docker compose -f "$COMPOSE_FILE" logs --tail=50
|
||||
# log "Rolling back..."
|
||||
# docker compose -f "$COMPOSE_FILE" down
|
||||
# exit 1
|
||||
# fi
|
||||
if [ ! -f "docker-compose.prod.yml" ]; then
|
||||
echo "ERROR: docker-compose.prod.yml not found!"
|
||||
echo "Please deploy the updated docker-compose.prod.yml and nginx.conf first"
|
||||
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"
|
||||
docker compose -f docker-compose.prod.yml up -d --force-recreate fhir-ig
|
||||
|
||||
# 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"
|
||||
rm -rf /tmp/fhir-ig-deploy
|
||||
|
||||
log "Deployment completed successfully!"
|
||||
log "🌐 Service available at: http://$(hostname -I | awk '{print $1}')"
|
||||
echo "=========================================="
|
||||
echo "✅ Deployment completed successfully!"
|
||||
echo "Version $version is now available at:"
|
||||
if [ "$build_type" = "release" ]; then
|
||||
echo " - https://fhir.dghs.gov.bd/core/$version/"
|
||||
echo " - https://fhir.dghs.gov.bd/core/$version/history.html"
|
||||
echo " - https://fhir.dghs.gov.bd/core/ (current)"
|
||||
else
|
||||
echo " - https://fhir.dghs.gov.bd/core/dev/"
|
||||
fi
|
||||
echo "=========================================="
|
||||
|
||||
# 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
|
||||
echo "Available versions:"
|
||||
ls -lh "$VERSIONS_DIR" | grep -v total
|
||||
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)" ";}
|
||||
</style>
|
||||
<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>
|
||||
{% 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)" ";}
|
||||
</style>
|
||||
<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>
|
||||
{% if page.path == 'index.html' %}
|
||||
{% include fragment-igTable.html %}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
---
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
<a name="root"> </a>
|
||||
<h2 id="root">{{[type]}}: {{site.data.pages[page.path].title | escape_once}}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
---
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
<a name="root"> </a>
|
||||
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
{% include fragment-pagebegin.html %}
|
||||
|
||||
<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' %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
---
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
<a name="root"> </a>
|
||||
<h2 id="root">CodeSystem: {{site.data.pages[page.path].title | escape_once}}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
---
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
<a name="root"> </a>
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
---
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
<a name="root"> </a>
|
||||
<h2 id="root">Extension: {{site.data.pages[page.path].title | escape_once}}
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
---
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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]}}' %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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 %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
{% include fragment-pagebegin.html %}
|
||||
|
||||
<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' %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
|
||||
<a name="root"> </a>
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
---
|
||||
{% include fragment-pagebegin.html %}
|
||||
<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' %}
|
||||
<a name="root"> </a>
|
||||
<h2 id="root">ValueSet: {{site.data.pages[page.path].title | escape_once}}
|
||||
|
||||
3
ig.ini
3
ig.ini
@@ -1,11 +1,12 @@
|
||||
[IG]
|
||||
# ini file for the Implementation Guide publisher
|
||||
# see comments below for instructions
|
||||
ig = input/myig.xml
|
||||
ig = input/bd.fhir.core.xml
|
||||
#template = fhir.base.template#current
|
||||
template = #bd-national-template
|
||||
#template = D:\Git\templates\ig-template-base
|
||||
#template = #local-template
|
||||
historypage = true
|
||||
|
||||
##########################
|
||||
### ig.ini parameters: ###
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
</extension>-->
|
||||
<url value="https://fhir.dghs.gov.bd/core/ImplementationGuide/bd.fhir.core"/>
|
||||
<!-- This version will propagate to all artifacts unless the "propagate-version" extension is overridden -->
|
||||
<version value="0.2.0"/>
|
||||
<version value="0.3.0"/>
|
||||
<name value="BangladeshCoreFHIRIG"/>
|
||||
<title value="Bangladesh Core FHIR Implementation Guide"/>
|
||||
<status value="active"/>
|
||||
@@ -57,91 +57,8 @@
|
||||
<reference>
|
||||
<reference value="StructureDefinition/bd-patient"/>
|
||||
</reference>
|
||||
<description value="Overriding description because we can"/>
|
||||
<description value="Banlgladesh Patient Profile"/>
|
||||
</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>
|
||||
<!-- The root will always be toc.html - the template will force it if you don't do it -->
|
||||
<nameUrl value="toc.html"/>
|
||||
@@ -161,9 +78,6 @@
|
||||
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status">
|
||||
<valueCode value="trial-use"/>
|
||||
</extension>
|
||||
<extension url="http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm">
|
||||
<valueInteger value="3"/>
|
||||
</extension>
|
||||
<nameUrl value="spec.html"/>
|
||||
<title value="Detailed BD-Core-FHIR Specification"/>
|
||||
<generation value="markdown"/>
|
||||
@@ -188,6 +102,11 @@
|
||||
<title value="IG Change History"/>
|
||||
<generation value="html"/>
|
||||
</page>
|
||||
<page>
|
||||
<nameUrl value="history.html"/>
|
||||
<title value="Version History"/>
|
||||
<generation value="html"/>
|
||||
</page>
|
||||
</page>
|
||||
<!-- copyright year is a mandatory parameter -->
|
||||
<parameter>
|
||||
@@ -197,7 +116,7 @@
|
||||
<!-- releaselabel should be the ballot status for HL7-published IGs. -->
|
||||
<parameter>
|
||||
<code value="releaselabel"/>
|
||||
<value value="Published by MoHFW"/>
|
||||
<value value="Published by DGHS, MoHFW"/>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<code value="find-other-resources"/>
|
||||
@@ -236,10 +155,6 @@
|
||||
<code value="excludemap"/>
|
||||
<value value="true"/>
|
||||
</parameter>-->
|
||||
<parameter>
|
||||
<code value="showsource"/>
|
||||
<value value="true"/>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<code value="i18n-default-lang"/>
|
||||
<value value="en"/>
|
||||
@@ -260,9 +175,5 @@
|
||||
<code value="translation-sources"/>
|
||||
<value value="input/translations-fr"/>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<code value="fcp-approved-specification"/>
|
||||
<value value="false"/>
|
||||
</parameter>
|
||||
</definition>
|
||||
</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."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-reaction"
|
||||
* ^status = #active
|
||||
* ^caseSensitive = true
|
||||
* ^experimental = false
|
||||
* ^content = #complete
|
||||
|
||||
* #NONE "No Reaction"
|
||||
|
||||
@@ -6,6 +6,8 @@ Id: bd-blood-groups
|
||||
Title: "Bangladesh Blood Group CodeSystem"
|
||||
Description: "Blood group codes according to CCDS guideline"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-blood-groups"
|
||||
* ^caseSensitive = true
|
||||
* ^experimental = false
|
||||
* ^content = #complete
|
||||
* #1 "O Positive"
|
||||
* #2 "O Negative"
|
||||
@@ -20,7 +22,7 @@ Description: "Blood group codes according to CCDS guideline"
|
||||
// ValueSet for BD Blood Groups
|
||||
// ---------------------------
|
||||
ValueSet: BDBloodGroupVS
|
||||
Id: bd-blood-group-vs
|
||||
Id: bd-blood-group-valueset
|
||||
Title: "Bangladesh Blood Group ValueSet"
|
||||
Description: "Blood group value set according to CCDS guideline"
|
||||
* include codes from system BDBloodGroupCS
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
CodeSystem: BDCountryListCS
|
||||
Id: bd-country-list-cs
|
||||
Id: bd-country-list
|
||||
Title: "Nationality List"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-country-list"
|
||||
* ^caseSensitive = true
|
||||
* ^experimental = false
|
||||
|
||||
* #4 "Afghan"
|
||||
* #8 "Albanian"
|
||||
@@ -194,8 +196,8 @@ Title: "Nationality List"
|
||||
|
||||
|
||||
ValueSet: BDCountryListVS
|
||||
Id: bd-country-list-vs
|
||||
Id: bd-country-list-valueset
|
||||
Title: "Nationality ValueSet"
|
||||
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
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
CodeSystem: BDGeoCodesCS
|
||||
Id: bd-geocodes-cs
|
||||
Id: bd-geocodes
|
||||
Title: "Bangladesh GeoCodes CodeSystem"
|
||||
Description: "Bangladesh GeoCodes"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes"
|
||||
* ^caseSensitive = true
|
||||
* ^experimental = false
|
||||
// DIvisions
|
||||
* #30 "Dhaka"
|
||||
* #20 "Chattogram"
|
||||
@@ -1601,10 +1603,10 @@ Description: "Bangladesh GeoCodes"
|
||||
* #4589009077 "Sreebardi Pourasabha"
|
||||
|
||||
ValueSet: BDDivisionsVS
|
||||
Id: bd-division-code-vs
|
||||
Id: bd-division-code-valueset
|
||||
Title: "Bangladesh Division ValueSet"
|
||||
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 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
|
||||
Id: bd-district-code-vs
|
||||
Id: bd-district-code-valueset
|
||||
Title: "Bangladesh district ValueSet"
|
||||
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 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
|
||||
Id: bd-city-corporations-code-vs
|
||||
Id: bd-city-corporation-code-valueset
|
||||
Title: "Bangladesh City Corperation ValueSet"
|
||||
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 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
|
||||
Id: bd-upazillas-code-vs
|
||||
Id: bd-upazilla-code-valueset
|
||||
Title: "Bangladesh Upazila ValueSet"
|
||||
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 codes from system https://fhir.dghs.gov.bd/core/CodeSystem/bd-geocodes
|
||||
where code regex "^[0-9]{8}$"
|
||||
|
||||
ValueSet: BDMunicipalitiesVS
|
||||
Id: bd-municipalities-code-vs
|
||||
Id: bd-municipalities-code-valueset
|
||||
Title: "Bangladesh Municipalities ValueSet"
|
||||
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 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."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-site"
|
||||
* ^status = #active
|
||||
* ^caseSensitive = true
|
||||
* ^experimental = false
|
||||
* ^content = #complete
|
||||
|
||||
* #LA "Left Arm"
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
CodeSystem: BDMedicationCodeSystem
|
||||
Id: bd-medication-cs
|
||||
Id: bd-medication-code
|
||||
Title: "Bangladesh Medication Codes"
|
||||
Description: "Bangladesh Medication Codes"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-medication-code"
|
||||
* ^caseSensitive = true
|
||||
* ^experimental = false
|
||||
// DGDA DAR Code "Brand Name"
|
||||
* #394-0010-030 "Tubutol" "Ethambutol"
|
||||
* #394-0011-030 "AFDCDT-2" "Isoniazid + Rifampicin"
|
||||
@@ -16,7 +18,7 @@ Description: "Bangladesh Medication Codes"
|
||||
// ValueSet for BD Medication
|
||||
// ---------------------------
|
||||
ValueSet: BDMedicationVS
|
||||
Id: bd-medication-vs
|
||||
Id: bd-medication-valueset
|
||||
Title: "Bangladesh Medication ValueSet"
|
||||
Description: "Bangladesh Medication ValueSet"
|
||||
* include codes from system BDMedicationCodeSystem
|
||||
|
||||
@@ -34,8 +34,8 @@ Description: "Medication dose form codes according to CCDS guideline"
|
||||
// ValueSet for BD Medication Dose Forms
|
||||
// ---------------------------
|
||||
ValueSet: BDMedicationDoseFormVS
|
||||
Id: bd-dose-form-vs
|
||||
Id: bd-dose-form-valueset
|
||||
Title: "Bangladesh Medication Dose Form ValueSet"
|
||||
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,6 +1,7 @@
|
||||
CodeSystem: BDOccupationsCS
|
||||
Id: bangladesh-occupations-cs
|
||||
Id: bd-occupations
|
||||
Title: "Bangladesh Occupations"
|
||||
Description: "Occupations code system according to CCDS guideline"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-occupations"
|
||||
|
||||
* #1 "Physical Scientists & Related Technicians" "ভৌত বিজ্ঞানী ও এতদসংক্রান্ত টেকনিশিয়ান"
|
||||
@@ -76,8 +77,8 @@ Title: "Bangladesh Occupations"
|
||||
* #92 "Printers and Related Workers" "মুদ্রণকাজ"
|
||||
|
||||
ValueSet: BDOccupationsVS
|
||||
Id: bd-occupations-vs
|
||||
Id: bd-occupations-valueset
|
||||
Title: "Bangladesh Occupations ValueSet"
|
||||
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
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
//codeSystems/bd-regions.fsh
|
||||
CodeSystem: BDReligionsCS
|
||||
Id: bangladesh-religions-cs
|
||||
Id: bd-religions
|
||||
Title: "Bangladesh 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)"
|
||||
|
||||
ValueSet: BDReligionsVS
|
||||
Id: bd-religions-vs
|
||||
Id: bd-religions-valueset
|
||||
Title: "Bangladesh Religions ValueSet"
|
||||
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
|
||||
|
||||
@@ -4,6 +4,8 @@ Title: "Bangladesh Vaccine Code System"
|
||||
Description: "Vaccine codes used in Bangladesh EPI and immunization program."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-vaccine-code"
|
||||
* ^status = #active
|
||||
* ^caseSensitive = true
|
||||
* ^experimental = false
|
||||
* ^content = #complete
|
||||
|
||||
* #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."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/CodeSystem/bd-immunization-route"
|
||||
* ^status = #active
|
||||
* ^caseSensitive = true
|
||||
* ^experimental = false
|
||||
* ^content = #complete
|
||||
|
||||
* #IM "Intramuscular"
|
||||
|
||||
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
|
||||
Id: nationality
|
||||
Title: "patient Nationality"
|
||||
Description: "Nationality"
|
||||
Title: "Patient 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
|
||||
* 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)
|
||||
|
||||
|
||||
@@ -1,39 +0,0 @@
|
||||
{
|
||||
"resourceType": "StructureDefinition",
|
||||
<<<<<<< HEAD
|
||||
"id": "bd-Immunization",
|
||||
"url": "http://example.org/StructureDefinition/bd-Immunization",
|
||||
"version": "1.0.0",
|
||||
"name": "BDImmunizationProfile",
|
||||
"title": "Immunization Profile for Bangladesh",
|
||||
"description": "Bangladesh Immunization Profile",
|
||||
=======
|
||||
"id": "bd-immunization",
|
||||
"url": "https://fhir.dghs.gov.bd/core/identifier/bd-immunization",
|
||||
"version": "1.0.0",
|
||||
"name": "BDImmunizationProfile",
|
||||
"title": "Patient Immunization Profile for Bangladesh",
|
||||
"description": "Patients Immunization Bangladesh Standard",
|
||||
>>>>>>> 1c45affa520e64b3b9efc307d9116ff138171fa5
|
||||
"fhirVersion": "4.0.1",
|
||||
"kind": "resource",
|
||||
"abstract": false,
|
||||
"type": "Immunization",
|
||||
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Immunization",
|
||||
"derivation": "constraint",
|
||||
"differential": {
|
||||
"element": [
|
||||
{
|
||||
"id": "Immunization.identifier",
|
||||
"path": "Immunization.identifier",
|
||||
<<<<<<< HEAD
|
||||
"short": "Unique identifier",
|
||||
=======
|
||||
"short": "Identifier",
|
||||
>>>>>>> 1c45affa520e64b3b9efc307d9116ff138171fa5
|
||||
"definition": "Unique identifier for the vaccination event",
|
||||
"min": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
63
input/fsh/namingSystems/ICD11MMSNamingSystem.fsh
Normal file
63
input/fsh/namingSystems/ICD11MMSNamingSystem.fsh
Normal file
@@ -0,0 +1,63 @@
|
||||
// ============================================================
|
||||
// ICD11MMSNamingSystem.fsh
|
||||
// NamingSystem for ICD-11 MMS in the Bangladesh national context
|
||||
// Canonical authority: WHO
|
||||
// National resolver: OCL at https://tr.ocl.dghs.gov.bd
|
||||
// ============================================================
|
||||
|
||||
Instance: icd11-mms-bd
|
||||
InstanceOf: NamingSystem
|
||||
Usage: #definition
|
||||
Title: "ICD-11 MMS NamingSystem — Bangladesh"
|
||||
Description: """
|
||||
Declares the ICD-11 Mortality and Morbidity Statistics (MMS) coding system
|
||||
as a known and supported terminology within the Bangladesh national health
|
||||
information infrastructure.
|
||||
|
||||
Canonical system URI: http://id.who.int/icd/release/11/mms
|
||||
Canonical authority: World Health Organization (WHO)
|
||||
|
||||
Preferred code form: short stem codes (e.g. 1A00, NC72.Z).
|
||||
Linearization URIs are not used as code identifiers in this IG.
|
||||
|
||||
National terminology resolver (OCL):
|
||||
https://tr.ocl.dghs.gov.bd
|
||||
|
||||
Supported OCL operations (use `system=` parameter, not `url=`):
|
||||
- $validate-code: https://tr.ocl.dghs.gov.bd/api/fhir/CodeSystem/$validate-code
|
||||
?system=http://id.who.int/icd/release/11/mms&code={code}
|
||||
- $lookup: https://tr.ocl.dghs.gov.bd/api/fhir/CodeSystem/$lookup
|
||||
?system=http://id.who.int/icd/release/11/mms&code={code}
|
||||
|
||||
$expand is not supported — known OCL limitation.
|
||||
|
||||
Version 2025-01 is active in the national OCL instance with 36,941
|
||||
imported concepts. The OCL resolver is an internal national service;
|
||||
vendors do not interact with it directly. All vendor submissions are
|
||||
validated at the HIE boundary via the Bangladesh ICD-11 Cluster Validator
|
||||
at https://icd11.dghs.gov.bd/cluster/validate.
|
||||
"""
|
||||
|
||||
* name = "ICD11MMSBangladesh"
|
||||
* status = #active
|
||||
* kind = #codesystem
|
||||
* date = "2025-01-01"
|
||||
* publisher = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||
* contact.name = "DGHS Health Informatics Unit"
|
||||
* contact.telecom.system = #url
|
||||
* contact.telecom.value = "https://dghs.gov.bd"
|
||||
* jurisdiction = urn:iso:std:iso:3166#BD "Bangladesh"
|
||||
* responsible = "World Health Organization (WHO)"
|
||||
|
||||
// Primary identifier — canonical system URI (WHO authority)
|
||||
* uniqueId[+].type = #uri
|
||||
* uniqueId[=].value = "http://id.who.int/icd/release/11/mms"
|
||||
* uniqueId[=].preferred = true
|
||||
* uniqueId[=].comment = "Canonical ICD-11 MMS system URI. Canonical authority is WHO."
|
||||
* uniqueId[=].period.start = "2025-01-01"
|
||||
|
||||
// Secondary identifier — national OCL source locator (machine-discoverable, not canonical)
|
||||
* uniqueId[+].type = #uri
|
||||
* uniqueId[=].value = "https://tr.ocl.dghs.gov.bd/orgs/MoHFW/sources/ICD-11-MMS/"
|
||||
* uniqueId[=].preferred = false
|
||||
* uniqueId[=].comment = "National terminology resolver — Bangladesh OCL instance. Not the canonical system URI."
|
||||
65
input/fsh/profile/BDConditionProfile.fsh
Normal file
65
input/fsh/profile/BDConditionProfile.fsh
Normal file
@@ -0,0 +1,65 @@
|
||||
// ============================================================
|
||||
// BDConditionProfile.fsh
|
||||
// BD-Core Condition profile with mandatory ICD-11 MMS stem slice
|
||||
// Binding: Diagnosis and Finding class concepts only
|
||||
// Runtime enforcement via OCL ValueSet $validate-code
|
||||
// ============================================================
|
||||
|
||||
Profile: BDConditionProfile
|
||||
Parent: Condition
|
||||
Id: bd-condition
|
||||
Title: "BD Core Condition Profile (ICD-11)"
|
||||
Description: """
|
||||
Condition resource coded with ICD-11 MMS, restricted to Diagnosis and
|
||||
Finding class concepts. Defined in the Bangladesh Core FHIR Implementation
|
||||
Guide (BD-Core-FHIR-IG) published by DGHS/MoHFW.
|
||||
"""
|
||||
|
||||
* code 1..1 MS
|
||||
* code from bd-condition-icd11-diagnosis-valueset (preferred)
|
||||
* code ^comment = """
|
||||
Condition.code SHALL contain at least one coding conforming to the
|
||||
coding[stem] slice with system = http://id.who.int/icd/release/11/mms.
|
||||
|
||||
Stem code rules:
|
||||
- The stem code SHALL be a Diagnosis or Finding class ICD-11 MMS concept.
|
||||
- This restriction is enforced at runtime via OCL ValueSet $validate-code
|
||||
against the Bangladesh ICD-11 MMS Condition ValueSet.
|
||||
- Stem-only codes SHALL be validated via OCL $validate-code.
|
||||
- Substance, Organism, Device, Anatomy, and Misc class concepts SHALL NOT
|
||||
appear as standalone stem codes in Condition.code.
|
||||
|
||||
Cluster expression rules:
|
||||
- When a concept requires postcoordination, the full cluster expression
|
||||
SHALL be carried in the icd11-cluster-expression extension on coding[stem].
|
||||
- The icd11-cluster-expression extension SHALL only be present when the
|
||||
expression contains at least one satellite code joined by & or / operators.
|
||||
- Satellite codes in the cluster expression are exempt from the
|
||||
Diagnosis/Finding class restriction.
|
||||
- Cluster expressions SHALL be validated against the Bangladesh ICD-11
|
||||
Cluster Validator at https://icd11.dghs.gov.bd/cluster/validate
|
||||
prior to submission to the HIE.
|
||||
|
||||
Additional local codings are permitted alongside the mandatory ICD-11 stem
|
||||
(slicing is open). Cluster expressions are typically sourced from the WHO
|
||||
Electronic Coding Tool (ECT) at the point of care.
|
||||
"""
|
||||
|
||||
* code.coding ^slicing.discriminator.type = #value
|
||||
* code.coding ^slicing.discriminator.path = "system"
|
||||
* code.coding ^slicing.rules = #open
|
||||
* code.coding ^slicing.description = "Slice requiring exactly one ICD-11 MMS stem code. Additional local codings permitted."
|
||||
|
||||
* code.coding contains stem 1..1
|
||||
* code.coding[stem] ^short = "Mandatory ICD-11 MMS stem code"
|
||||
* code.coding[stem] ^definition = """
|
||||
Exactly one ICD-11 MMS stem code is required. The stem code SHALL be a
|
||||
Diagnosis or Finding class concept. When the condition requires
|
||||
postcoordination, the full cluster expression is carried in the
|
||||
icd11-cluster-expression extension on this coding element.
|
||||
"""
|
||||
* code.coding[stem].system 1..1
|
||||
* code.coding[stem].system = "http://id.who.int/icd/release/11/mms" (exactly)
|
||||
* code.coding[stem].code 1..1
|
||||
* code.coding[stem].extension contains
|
||||
https://fhir.dghs.gov.bd/core/StructureDefinition/icd11-cluster-expression named clusterExpression 0..1
|
||||
@@ -7,28 +7,31 @@ Description: "Profile of Encounter Bangladesh Standard"
|
||||
|
||||
* identifier 1..*
|
||||
|
||||
* status 1..1 MS
|
||||
* status 1..1
|
||||
* 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
|
||||
|
||||
* subject 1..1 MS
|
||||
* subject 1..1
|
||||
//* subject from https://fhir.dghs.gov.bd/core/StructureDefinition/bd-patient
|
||||
|
||||
* basedOn 0..1 MS
|
||||
//* basedOn only Reference (CarePlan or DeviceRequest or MedicationRequest or ServiceRequest)
|
||||
|
||||
* partOf 0..1 MS
|
||||
|
||||
* serviceProvider 1..1 MS
|
||||
* serviceProvider 1..1
|
||||
|
||||
* participant 1..* MS
|
||||
* participant.period 1..1 MS
|
||||
* participant 1..*
|
||||
* participant.period 1..1
|
||||
|
||||
* diagnosis 0..* MS
|
||||
* 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
|
||||
// @Description: Immunization Profile of the Bangladeshi Patient.
|
||||
Profile: BDImmunizationProfile
|
||||
@@ -13,7 +11,6 @@ Description: "Bangladesh Immunization Profile"
|
||||
* identifier 1..*
|
||||
* identifier ^short = "Unique identifier"
|
||||
* identifier ^definition = "Unique identifier for the vaccination event"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/identifier/bd-immunization"
|
||||
|
||||
* reasonReference 0..*
|
||||
* reasonReference only Reference(Condition or Observation or DiagnosticReport)
|
||||
@@ -26,7 +23,7 @@ Description: "Bangladesh Immunization Profile"
|
||||
* manufacturer 0..1
|
||||
* manufacturer ^short = "Manufacturer"
|
||||
* manufacturer ^definition = "Vaccine manufacturer"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-organization"
|
||||
* manufacturer only Reference(BDOrganization)
|
||||
|
||||
* lotNumber 0..1
|
||||
* lotNumber ^short = "Vaccine Lot Number"
|
||||
|
||||
84
input/fsh/profile/BDObservation.fsh
Normal file
84
input/fsh/profile/BDObservation.fsh
Normal file
@@ -0,0 +1,84 @@
|
||||
Profile: BDObservationProfile
|
||||
Id: bd-observation
|
||||
Parent: Observation
|
||||
Title: "Bangladesh Observation Profile"
|
||||
Description: "Bangladesh Observation Profile"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/StructureDefinition/bd-observation"
|
||||
* ^version = "1.0.0"
|
||||
* ^status = #active
|
||||
|
||||
* identifier 1..* MS
|
||||
* identifier.value 1..1
|
||||
|
||||
* status 1..1
|
||||
|
||||
* partOf 0..*
|
||||
|
||||
* category 1..* MS
|
||||
* category from http://hl7.org/fhir/ValueSet/observation-category (required)
|
||||
* category ^definition = "Type of category"
|
||||
* category ^comment = "E.g. vital, physical examination"
|
||||
|
||||
* code 1..1 MS
|
||||
* code from http://hl7.org/fhir/ValueSet/observation-codes (required)
|
||||
* code ^definition = "Type of test/measurement"
|
||||
* code ^comment = "E.g., Hb, RBS, CBC"
|
||||
|
||||
// Subject: Reference to Patient Profile (Required)
|
||||
* subject 1..1 MS
|
||||
* subject.reference 1..1 MS
|
||||
* subject.display 1..1 MS
|
||||
* subject.identifier 0..1
|
||||
* subject ^definition = "Reference to Patient Profile"
|
||||
* subject ^comment = "EX: http://mci.mcishr.dghs.gov.bd/api/v1/patients/98002412586"
|
||||
|
||||
|
||||
* encounter 1..1 MS
|
||||
* encounter.reference 1..1 MS
|
||||
* encounter ^definition = "Reference to Patient Profile"
|
||||
* encounter ^comment = "EX: uuid:34c38499-58ab-41e0-8e94-c3931491ad0e - bundle encounter uuid from local"
|
||||
|
||||
* performer 1..*
|
||||
* performer.reference 1..1
|
||||
|
||||
// Value[x]: Result value (Optional, but constrained)
|
||||
* 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.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 0..*
|
||||
* interpretation from http://hl7.org/fhir/ValueSet/observation-interpretation (required)
|
||||
* interpretation ^definition = "Type of test/measurement"
|
||||
* interpretation ^comment = "E.g.: High, low, normal, etc"
|
||||
|
||||
* method 0..1
|
||||
* method from http://hl7.org/fhir/ValueSet/observation-methods (required)
|
||||
* method ^definition = "Type of observation method"
|
||||
* method ^comment = "E.g.: Technique, Total measurement"
|
||||
|
||||
// Issued: Date/time result was issued (Optional)
|
||||
* issued 0..1
|
||||
* issued ^definition = "Date/time result was issued"
|
||||
|
||||
// Reference Range: Normal reference range (Optional)
|
||||
* referenceRange 0..*
|
||||
* referenceRange ^definition = "Normal reference range"
|
||||
* referenceRange ^comment = "Optional"
|
||||
|
||||
// Specimen: Specimen used for the observation (Optional)
|
||||
* specimen 0..1
|
||||
* specimen ^definition = "Specimen used for the observation"
|
||||
* specimen ^comment = "Optional"
|
||||
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: BDPatientProfile
|
||||
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/ValueSet/bd-identifier-type-valueset"
|
||||
* 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/ValueSet/bd-identifier-type-valueset"
|
||||
* 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/ValueSet/bd-identifier-type-valueset"
|
||||
* 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
|
||||
62
input/fsh/valueSets/BDConditionICD11DiagnosisVS.fsh
Normal file
62
input/fsh/valueSets/BDConditionICD11DiagnosisVS.fsh
Normal file
@@ -0,0 +1,62 @@
|
||||
// ============================================================
|
||||
// BDConditionICD11DiagnosisVS.fsh
|
||||
// ICD-11 MMS ValueSet restricted to Diagnosis and Finding classes
|
||||
// Binding target for Condition.code in BDConditionProfile
|
||||
// Empty stub — runtime enforcement via OCL $validate-code
|
||||
// $expand not available — suppressed in sushi-config.yaml
|
||||
// ============================================================
|
||||
|
||||
ValueSet: BDConditionICD11DiagnosisVS
|
||||
Id: bd-condition-icd11-diagnosis-valueset
|
||||
Title: "Bangladesh ICD-11 MMS Condition ValueSet (Diagnosis and Finding)"
|
||||
Description: """
|
||||
ICD-11 MMS concepts restricted to the Diagnosis (14,071) and Finding (5,590)
|
||||
concept classes, totalling 19,661 concepts as of version 2025-01.
|
||||
|
||||
This ValueSet is the binding target for Condition.code in the BD-Core
|
||||
Condition profile. Substance, Organism, Device, Anatomy, and Misc class
|
||||
concepts are excluded and SHALL NOT appear as standalone stem codes in
|
||||
Condition.code. This restriction applies to stem codes only — satellite
|
||||
codes carried in the icd11-cluster-expression extension are exempt.
|
||||
|
||||
This ValueSet is an empty stub. No compose block is declared because
|
||||
$expand is not supported by the national OCL terminology server and
|
||||
no machine-executable filter for concept_class is available at the
|
||||
IG layer. The compose would be nominal only and is omitted to avoid
|
||||
misrepresenting machine-executable semantics.
|
||||
|
||||
The ValueSet is hosted in OCL as a collection with 19,661 explicit
|
||||
concept references (Diagnosis and Finding classes only). Runtime
|
||||
enforcement is via OCL ValueSet $validate-code:
|
||||
|
||||
GET https://tr.ocl.dghs.gov.bd/api/fhir/ValueSet/$validate-code
|
||||
?url=https://fhir.dghs.gov.bd/core/ValueSet/bd-condition-icd11-diagnosis-valueset
|
||||
&system=http://id.who.int/icd/release/11/mms
|
||||
&code={code}
|
||||
|
||||
Confirmed behaviour:
|
||||
- Diagnosis class (e.g. 1A00): accepted
|
||||
- Finding class: accepted
|
||||
- Device class (e.g. XD7EB1): rejected
|
||||
- Substance class (e.g. XM6RB2): rejected
|
||||
|
||||
At the HAPI FHIR layer, enforcement is via RemoteTerminologyServiceValidationSupport
|
||||
configured to call OCL. HAPI FHIR deployment is a known gap to be closed
|
||||
before vendor onboarding.
|
||||
|
||||
VERSION UPGRADES:
|
||||
Upgrading to a new ICD-11 MMS release requires re-running
|
||||
populate_condition_valueset.py. Automated via version_upgrade.py.
|
||||
"""
|
||||
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-condition-icd11-diagnosis-valueset"
|
||||
* ^status = #active
|
||||
* ^experimental = false
|
||||
* ^version = "2025-01"
|
||||
* ^publisher = "Directorate General of Health Services (DGHS), MoHFW, Bangladesh"
|
||||
* ^contact.name = "DGHS Health Informatics Unit"
|
||||
* ^contact.telecom.system = #url
|
||||
* ^contact.telecom.value = "https://dghs.gov.bd"
|
||||
* ^jurisdiction = urn:iso:std:iso:3166#BD "Bangladesh"
|
||||
* ^copyright = "ICD-11 is copyright © World Health Organization. Used under licence."
|
||||
* ^immutable = false
|
||||
@@ -1,6 +1,6 @@
|
||||
// ---------- ValueSet ----------
|
||||
ValueSet: BDEncounterClassSubsetVS
|
||||
Id: bd-encounter-class-subset-vs
|
||||
Id: bd-encounter-class-subset
|
||||
Title: "BD Encounter Class Subset"
|
||||
Description: "Subset of EncounterClass limited to inpatient, ambulatory, and emergency."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-encounter-class-subset"
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
// ---------- ValueSet ----------
|
||||
ValueSet: BDEncounterStatusSubsetVS
|
||||
Id: bd-encounter-status-subset-vs
|
||||
Id: bd-encounter-status-subset
|
||||
Title: "BD Encounter Status Subset"
|
||||
Description: "Subset of EncounterStatus limited to planned, in-progress, finished, and cancelled."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-encounter-status-subset"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
ValueSet: BDImmunizationReactionValueSet
|
||||
Id: bd-immunization-reaction-vs
|
||||
Id: bd-immunization-reaction-valueset
|
||||
Title: "Bangladesh Immunization Reaction Value Set"
|
||||
Description: "Allowed vaccine reactions for immunization in Bangladesh."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-reaction-valueset"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
ValueSet: BDImmunizationRouteVS
|
||||
Id: bd-immunization-route-vs
|
||||
Id: bd-immunization-route-valueset
|
||||
Title: "Bangladesh Immunization Route Value Set"
|
||||
Description: "Allowed administration routes for vaccines in Bangladesh."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-route-valueset"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
ValueSet: BDImmunizationSiteVS
|
||||
Id: bd-immunization-site-vs
|
||||
Id: bd-immunization-site-valueset
|
||||
Title: "Bangladesh Immunization Site Value Set"
|
||||
Description: "Allowed administration sites for vaccines in Bangladesh."
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-immunization-site-valueset"
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
ValueSet: BDLanguageVS
|
||||
Id: bd-language-vs
|
||||
Id: bd-language-valueset
|
||||
Title: "Allowed Languages"
|
||||
Description: "Only English and Bengali are allowed"
|
||||
* http://hl7.org/fhir/ValueSet/languages#en "English"
|
||||
* http://hl7.org/fhir/ValueSet/languages#bn "Bengali"
|
||||
* urn:ietf:bcp:47#en "English"
|
||||
* urn:ietf:bcp:47#bn "Bengali"
|
||||
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-language-valueset"
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
ValueSet: BDVaccineVS
|
||||
Id: bd-vaccine-vs
|
||||
Id: bd-vaccine-valueset
|
||||
Title: "Bangladesh Vaccine Value Set"
|
||||
Description: "Allowed vaccines for immunization in Bangladesh."
|
||||
* ^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>
|
||||
</ul>
|
||||
</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>
|
||||
|
||||
63
input/package-list.json
Normal file
63
input/package-list.json
Normal file
@@ -0,0 +1,63 @@
|
||||
{
|
||||
"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.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">
|
||||
<h3>Heading 1</h3>
|
||||
<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>Heading 2</h3>
|
||||
|
||||
<h3>Motivation</h3>
|
||||
<p>
|
||||
<img height="600" src="anImage.png" alt="A sample image"/>
|
||||
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>
|
||||
</div>
|
||||
|
||||
|
||||
@@ -3,31 +3,24 @@
|
||||
<a name="intro"> </a>
|
||||
<h3>Introduction</h3>
|
||||
<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>
|
||||
<a name="technical"> </a>
|
||||
<h3>Technical Overview</h3>
|
||||
<p>
|
||||
Additional detail/context setting for those who have significant background in the domain. (Try to make as understandable as you can, but
|
||||
set important context).
|
||||
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.
|
||||
</p>
|
||||
<a name="walkthrough"> </a>
|
||||
<p>
|
||||
The main sections of this IG are:
|
||||
</p>
|
||||
<ul>
|
||||
<li>
|
||||
<a href="background.html">Background</a> - provides business context for the implementation guide and information that implementers should be
|
||||
familiar with before reading the remainder of the IG. There could be multiple pages for this.
|
||||
</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>
|
||||
<li><a href="background.html">Background</a> - Context and rationale for the IG</li>
|
||||
<li><a href="spec.html">Detailed Specification</a> - Profiles, value sets, and conformance requirements</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>
|
||||
</div>
|
||||
@@ -1,5 +1,135 @@
|
||||
### A Heading
|
||||
You can also use markdown if that's your thing
|
||||
## Bangladesh Core FHIR Implementation Guide — General Specification
|
||||
|
||||
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
|
||||
A child specification page with more detail
|
||||
## ICD-11 Implementation
|
||||
|
||||
### 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,63 @@
|
||||
{
|
||||
"package-id" : "hl7.fhir.uv.myig",
|
||||
"title" : "Your User Friendly Name for MyIG Here",
|
||||
"canonical" : "http://hl7.org/fhir/uv/myig",
|
||||
"introduction" : "The introduction that should appear in the FHIR IG registry",
|
||||
"list" : [{
|
||||
"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" : "http://hl7.org/fhir/ig/HL7/myig",
|
||||
"desc": "Continuous Integration Build (latest in development)",
|
||||
"path": "https://fhir.dghs.gov.bd/core/",
|
||||
"status": "ci-build",
|
||||
"current": true
|
||||
},{
|
||||
"version" : "0.1.0",
|
||||
"date" : "2099-01-01",
|
||||
"desc" : "Initial STU ballot (Mmm yyyy Ballot)",
|
||||
"path" : "http://hl7.org/fhir/yyyyMmm/myig.html",
|
||||
"status" : "ballot",
|
||||
"sequence" : "DSTU 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,
|
||||
value sets, code systems, and implementation rules for national digital health systems.
|
||||
status: draft
|
||||
version: 0.2.0
|
||||
version: 0.3.0
|
||||
fhirVersion: 4.0.1
|
||||
copyrightYear: 2025+
|
||||
releaseLabel: CI Build
|
||||
|
||||
Reference in New Issue
Block a user