Compare commits
34 Commits
634e7e28eb
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
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,14 +1,16 @@
|
||||
name: FHIR IG CI/CD Pipeline
|
||||
name: FHIR IG CI/CD Pipeline with Version Persistence
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main, develop ]
|
||||
tags:
|
||||
- 'v*.*.*' # Trigger on version tags like v0.3.0
|
||||
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:
|
||||
@@ -18,7 +20,113 @@ jobs:
|
||||
- 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: |
|
||||
# Extract version from ImplementationGuide resource
|
||||
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
|
||||
|
||||
# Determine if this is a release build (git tag) or dev build
|
||||
if [[ "$GITHUB_REF" == refs/tags/v* ]]; then
|
||||
BUILD_TYPE="release"
|
||||
TAG_VERSION="${GITHUB_REF#refs/tags/v}"
|
||||
|
||||
# Verify tag matches IG version
|
||||
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"
|
||||
|
||||
# NEW STEP: Update package-list.json BEFORE build so IG Publisher can use it
|
||||
- name: Pre-build package-list.json update
|
||||
run: |
|
||||
VERSION="${{ steps.version.outputs.version }}"
|
||||
BUILD_TYPE="${{ steps.version.outputs.build_type }}"
|
||||
DATE=$(date +%Y-%m-%d)
|
||||
|
||||
# Only update for release builds
|
||||
if [ "$BUILD_TYPE" != "release" ]; then
|
||||
echo "ℹ️ Dev build - skipping package-list.json pre-build update"
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "📋 Updating package-list.json before build..."
|
||||
|
||||
# Check if package-list.json exists
|
||||
if [ ! -f "package-list.json" ]; then
|
||||
echo "⚠️ package-list.json not found in repo - history.html won't be generated"
|
||||
echo "Creating minimal package-list.json for this build..."
|
||||
cat > package-list.json << EOF
|
||||
{
|
||||
"package-id": "bd.fhir.core",
|
||||
"title": "Bangladesh Core FHIR Implementation Guide",
|
||||
"canonical": "https://fhir.dghs.gov.bd/core",
|
||||
"introduction": "Core FHIR profiles and extensions for Bangladesh healthcare",
|
||||
"list": [
|
||||
{
|
||||
"version": "current",
|
||||
"desc": "Continuous Integration Build (latest in version control)",
|
||||
"path": "https://fhir.dghs.gov.bd/core/",
|
||||
"status": "ci-build",
|
||||
"current": true
|
||||
}
|
||||
]
|
||||
}
|
||||
EOF
|
||||
fi
|
||||
|
||||
# Update package-list.json with new version
|
||||
python3 << 'PYEOF'
|
||||
import json
|
||||
import sys
|
||||
|
||||
version = "$VERSION"
|
||||
date = "$DATE"
|
||||
|
||||
with open('package-list.json', 'r') as f:
|
||||
pkg_list = json.load(f)
|
||||
|
||||
# Check if this version already exists
|
||||
version_exists = any(e['version'] == version for e in pkg_list['list'])
|
||||
|
||||
if not version_exists:
|
||||
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 after 'current' entry
|
||||
pkg_list['list'].insert(1, new_entry)
|
||||
|
||||
with open('package-list.json', 'w') as f:
|
||||
json.dump(pkg_list, f, indent=2)
|
||||
|
||||
print(f"✅ Added version {version} to package-list.json")
|
||||
else:
|
||||
print(f"ℹ️ Version {version} already exists in package-list.json")
|
||||
PYEOF
|
||||
|
||||
echo "📋 package-list.json is ready for IG Publisher"
|
||||
cat package-list.json
|
||||
|
||||
- name: Install Docker CLI
|
||||
run: |
|
||||
@@ -26,258 +134,274 @@ 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: Build FHIR IG
|
||||
run: |
|
||||
echo "Building FHIR IG using copy approach..."
|
||||
echo "Building FHIR IG version ${{ steps.version.outputs.version }}..."
|
||||
|
||||
# Create a container (don't start yet)
|
||||
CONTAINER_ID=$(docker create \
|
||||
hl7fhir/ig-publisher-base:latest \
|
||||
/bin/bash -c "cp -r /home/publisher/ig /tmp/build && cd /tmp/build && _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
|
||||
EXIT_CODE=$?
|
||||
|
||||
# Copy outputs back
|
||||
# Copy outputs
|
||||
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/fsh-generated ./fsh-generated || echo "No FSH generated"
|
||||
docker cp $CONTAINER_ID:/tmp/build/input-cache ./input-cache || echo "No input-cache"
|
||||
docker cp $CONTAINER_ID:/tmp/build/temp ./temp || echo "No temp directory"
|
||||
|
||||
# Show container logs if failed
|
||||
if [ $EXIT_CODE -ne 0 ]; then
|
||||
echo "Build failed, showing container logs:"
|
||||
echo "Build failed, showing logs:"
|
||||
docker logs $CONTAINER_ID
|
||||
docker rm $CONTAINER_ID
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Cleanup
|
||||
docker rm $CONTAINER_ID
|
||||
|
||||
# Verify
|
||||
if [ ! -f "output/index.html" ]; then
|
||||
echo "ERROR: Build failed - no index.html"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Check if history.html was generated
|
||||
if [ -f "output/history.html" ]; then
|
||||
echo "✅ history.html generated successfully"
|
||||
else
|
||||
echo "⚠️ WARNING: history.html was not generated"
|
||||
echo "This usually means package-list.json was missing or invalid"
|
||||
fi
|
||||
|
||||
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
|
||||
fi
|
||||
echo "IG build successful!"
|
||||
VERSION="${{ steps.version.outputs.version }}"
|
||||
DATETIME=$(date -u +%Y-%m-%dT%H:%M:%SZ)
|
||||
|
||||
- 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:
|
||||
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(f"✅ Updated package-feed.xml")
|
||||
EOF
|
||||
|
||||
python3 update-feed.py "$VERSION" "$DATETIME"
|
||||
|
||||
# Also copy the updated package-list.json to output
|
||||
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
|
||||
|
||||
# List what's in the output
|
||||
echo "📦 Output contents:"
|
||||
ls -lh output/ | grep -E "(history\.html|package-list\.json|package-feed\.xml|index\.html)"
|
||||
|
||||
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"
|
||||
# Load deployment info
|
||||
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"
|
||||
}
|
||||
# Create version directory structure
|
||||
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"
|
||||
# Determine target directory
|
||||
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"
|
||||
|
||||
# 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..."
|
||||
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"
|
||||
# Create target directory
|
||||
mkdir -p "$TARGET_DIR"
|
||||
|
||||
# Pull the latest image
|
||||
log "Pulling latest image: $REGISTRY/$IMAGE_NAME:$IMAGE_TAG..."
|
||||
docker pull "$REGISTRY/$IMAGE_NAME:$IMAGE_TAG"
|
||||
# Extract IG output
|
||||
echo "Extracting IG output..."
|
||||
tar -xzf /tmp/fhir-ig-deploy/ig-output.tar.gz -C "$TARGET_DIR"
|
||||
|
||||
# docker pull "\${REGISTRY}/\${IMAGE_NAME}:\${IMAGE_TAG}"
|
||||
# Verify history.html was deployed
|
||||
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 /tmp/fhir-ig-deploy/package-list.json "$VERSIONS_DIR/package-list.json"
|
||||
|
||||
# Start new container
|
||||
log "Starting new container..."
|
||||
docker compose -f "$COMPOSE_FILE" up -d
|
||||
# Copy package-feed.xml to root
|
||||
cp /tmp/fhir-ig-deploy/package-feed.xml "$VERSIONS_DIR/package-feed.xml"
|
||||
|
||||
# Wait for container to be healthy
|
||||
# log "Waiting for container to become healthy..."
|
||||
# timeout=120
|
||||
# elapsed=0
|
||||
# healthy=false
|
||||
# Update 'current' symlink for releases
|
||||
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
|
||||
# Ensure nginx container is running with correct config
|
||||
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
|
||||
# Download deployment files if they don't exist
|
||||
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"
|
||||
# Force recreate container to ensure new config/mounts are applied
|
||||
# This handles "stuck" states better than a simple restart
|
||||
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"
|
||||
# Cleanup
|
||||
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
|
||||
# List all versions
|
||||
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}}
|
||||
|
||||
2
ig.ini
2
ig.ini
@@ -1,7 +1,7 @@
|
||||
[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
|
||||
|
||||
@@ -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.2.1"/>
|
||||
<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"/>
|
||||
@@ -197,7 +111,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 +150,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 +170,5 @@
|
||||
<code value="translation-sources"/>
|
||||
<value value="input/translations-fr"/>
|
||||
</parameter>
|
||||
<parameter>
|
||||
<code value="fcp-approved-specification"/>
|
||||
<value value="false"/>
|
||||
</parameter>
|
||||
</definition>
|
||||
</ImplementationGuide>
|
||||
@@ -5,4 +5,4 @@ Title: "ICD 11"
|
||||
Description: "Condition coded with ICD-11"
|
||||
|
||||
* code 1..1 MS
|
||||
* code from http://id.who.int/icd/release/11/mms (preferred)
|
||||
* code from BDConditionICD11VS (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,83 +1,84 @@
|
||||
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" "ভৌত বিজ্ঞানী ও এতদসংক্রান্ত টেকনিশিয়ান"
|
||||
* #2 "Engineering and Architects" "ইঞ্জিয়ারিং ও স্থপতি "
|
||||
* #3 "Engineering and Architect-related Technicians" "ইঞ্জিয়ারিং ও স্থপতি সম্পর্কিত টেকনিশিয়ান "
|
||||
* #4 "Officers of Aircraft and Ship" "বিমান ও জাহাজের কর্মকর্তা "
|
||||
* #5 "Biologists and Related Technicians" "জীববিজ্ঞানী ও এতদসংক্রান্ত টেকনিশিয়ান "
|
||||
* #6 "Physicians, Dentists, and Veterinarians" "চিকিৎসক, দন্ত চিকিৎসক ও পশু চিকিৎসক "
|
||||
* #7 "Nurses and Other Medical Staffs" "নার্স ও চিকিৎসক সংক্রান্ত অন্যান্য কর্মী "
|
||||
* #8 "Statisticians, Mathematicians, System Analysts, and Related Staff" "পরিসংখ্যানবিদ, গণিতবিদ, সিস্টেম এনালিস্ট ও এতদসংক্রান্ত কর্মী "
|
||||
* #2 "Engineering and Architects" "ইঞ্জিয়ারিং ও স্থপতি"
|
||||
* #3 "Engineering and Architect-related Technicians" "ইঞ্জিয়ারিং ও স্থপতি সম্পর্কিত টেকনিশিয়ান"
|
||||
* #4 "Officers of Aircraft and Ship" "বিমান ও জাহাজের কর্মকর্তা"
|
||||
* #5 "Biologists and Related Technicians" "জীববিজ্ঞানী ও এতদসংক্রান্ত টেকনিশিয়ান"
|
||||
* #6 "Physicians, Dentists, and Veterinarians" "চিকিৎসক, দন্ত চিকিৎসক ও পশু চিকিৎসক"
|
||||
* #7 "Nurses and Other Medical Staffs" "নার্স ও চিকিৎসক সংক্রান্ত অন্যান্য কর্মী"
|
||||
* #8 "Statisticians, Mathematicians, System Analysts, and Related Staff" "পরিসংখ্যানবিদ, গণিতবিদ, সিস্টেম এনালিস্ট ও এতদসংক্রান্ত কর্মী"
|
||||
* #9 "Economists" "অর্থনীতিবিদ"
|
||||
* #10 "Accountants" "হিসাবরক্ষক"
|
||||
* #12 "Judges" "বিচারক"
|
||||
* #13 "Teachers" "শিক্ষক"
|
||||
* #14 "Religious Workers" "ধর্মীয় কর্মী"
|
||||
* #15 "Writers, Journalists, and Related Staffs" "লেখক, সাংবাদিক ও এতদসম্পর্কিত কর্মী "
|
||||
* #16 "Painters, Photographers, and Other Creative Artists" "চিত্রশিল্পী, ফটোগ্রাফার ও এতদসংক্রান্ত সৃজনশীল শিল্পী "
|
||||
* #17 "Actors, Singers, and Dancers" "অভিনয়, কণ্ঠশিল্পী ও নৃত্যশিল্পী "
|
||||
* #18 "Sportspersons and Related Staffs" "খেলোয়াড় এবং এতদসম্পর্কিত কর্মী "
|
||||
* #19 "Professional, Technical, and Other Related Workers (not elsewhere classified)" "পেশাগত, কারিগরি ও অন্যান্য অশ্রেণীভুক্ত এতদসম্পর্কিত কর্মী "
|
||||
* #15 "Writers, Journalists, and Related Staffs" "লেখক, সাংবাদিক ও এতদসম্পর্কিত কর্মী"
|
||||
* #16 "Painters, Photographers, and Other Creative Artists" "চিত্রশিল্পী, ফটোগ্রাফার ও এতদসংক্রান্ত সৃজনশীল শিল্পী"
|
||||
* #17 "Actors, Singers, and Dancers" "অভিনয়, কণ্ঠশিল্পী ও নৃত্যশিল্পী"
|
||||
* #18 "Sportspersons and Related Staffs" "খেলোয়াড় এবং এতদসম্পর্কিত কর্মী"
|
||||
* #19 "Professional, Technical, and Other Related Workers (not elsewhere classified)" "পেশাগত, কারিগরি ও অন্যান্য অশ্রেণীভুক্ত এতদসম্পর্কিত কর্মী"
|
||||
* #20 "Lawyers" "আইনজীবী"
|
||||
* #21 "Managers" "ম্যানেজার"
|
||||
* #30 "Government Executive Officers" "সরকারি নির্বাহী কর্মকর্তা "
|
||||
* #30 "Government Executive Officers" "সরকারি নির্বাহী কর্মকর্তা"
|
||||
* #31 "Clerks" "করণিক (কেরানী)"
|
||||
* #32 "Typists, Stenographers and Computer Operators" "টাইপিস্ট/স্টেনোগ্রাফার/কম্পিউটার অপারেটর"
|
||||
* #33 "Record Keepers, Cahiers and Related Staffs" "রেকর্ড কিপার, ক্যাশিয়ার ও এতদসম্পর্কিত কর্মী"
|
||||
* #34 "Computer Professionals and Associate Staffs" "কম্পিউটার সম্পর্কিত কর্মী "
|
||||
* #35 "Transport and Communication Supervisors" "যানবাহন ও যোগাযোগ তত্ত্বাবধায়ক "
|
||||
* #36 "Drivers and Conductors (Mechanical and Manual)" "গাড়িচালক ও কন্টাক্টর (যান্ত্রিক ও কায়িক) "
|
||||
* #37 "Mail Carriers / Postmen" "চিঠিপত্র বিলি (ডাক পিয়ন) "
|
||||
* #34 "Computer Professionals and Associate Staffs" "কম্পিউটার সম্পর্কিত কর্মী"
|
||||
* #35 "Transport and Communication Supervisors" "যানবাহন ও যোগাযোগ তত্ত্বাবধায়ক"
|
||||
* #36 "Drivers and Conductors (Mechanical and Manual)" "গাড়িচালক ও কন্টাক্টর (যান্ত্রিক ও কায়িক)"
|
||||
* #37 "Mail Carriers / Postmen" "চিঠিপত্র বিলি (ডাক পিয়ন)"
|
||||
* #38 "Telephone and Telegraph Operators" "টেলিফোন ও টেলিগ্রাফ অপারেটর"
|
||||
* #39 "Clerical Work, Not Elsewhere Classified" "অশ্রেণীভুক্ত দাপ্তরিক কাজ "
|
||||
* #40 "Managers in Wholesale and Retail Trade" "ম্যানেজার (পাইকারি ও খুচরা ব্যাবসা) "
|
||||
* #39 "Clerical Work, Not Elsewhere Classified" "অশ্রেণীভুক্ত দাপ্তরিক কাজ"
|
||||
* #40 "Managers in Wholesale and Retail Trade" "ম্যানেজার (পাইকারি ও খুচরা ব্যাবসা)"
|
||||
* #42 "Sales Supervisors" "বিক্রয় তত্ত্বাবধায়ক"
|
||||
* #43 "Travel Attendants and Related Workers" "ভ্রমণ সংক্রান্ত কাজে নিয়োজিত কর্মী "
|
||||
* #44 "Salespersons in Insurance, Real Estate, Business, and Related Services" "বীমা, রিয়েল এস্টেট, ব্যাবসা এবং এতদসংক্রান্ত সেবা বিক্রেতা "
|
||||
* #45 "Street and Market Salespersons" "ফেরিওয়ালা "
|
||||
* #46 "Sales Workers, Not Elsewhere Classified" "অশ্রেণীভুক্ত বিক্রয়কর্মী "
|
||||
* #50 "Hotel and Lodging Managers" "আবাসিক হোটেল ম্যানেজার "
|
||||
* #51 "Hotel Proprietors" "হোটেল মালিক "
|
||||
* #43 "Travel Attendants and Related Workers" "ভ্রমণ সংক্রান্ত কাজে নিয়োজিত কর্মী"
|
||||
* #44 "Salespersons in Insurance, Real Estate, Business, and Related Services" "বীমা, রিয়েল এস্টেট, ব্যাবসা এবং এতদসংক্রান্ত সেবা বিক্রেতা"
|
||||
* #45 "Street and Market Salespersons" "ফেরিওয়ালা"
|
||||
* #46 "Sales Workers, Not Elsewhere Classified" "অশ্রেণীভুক্ত বিক্রয়কর্মী"
|
||||
* #50 "Hotel and Lodging Managers" "আবাসিক হোটেল ম্যানেজার"
|
||||
* #51 "Hotel Proprietors" "হোটেল মালিক"
|
||||
* #52 "Residential Hotel Supervisors" "আবাসিক হোটেল তত্ত্বাবধায়ক"
|
||||
* #53 "Cooks, Waiters, and Related Hotel Workers" "বাবুর্চি, হোটেল বয় ও এতদসম্পর্কিত কর্মী "
|
||||
* #54 "Unclassified Housemaids" "অশ্রেণীভুক্ত গৃহ পরিচারিকা "
|
||||
* #55 "Caretakers, Janitors, and Related Domestic Workers" "বাড়ির কেয়ারটেকার, ঝাড়ুদার ও এতদসম্পর্কিত কর্মী "
|
||||
* #56 "Laundry Workers" "ধোপা "
|
||||
* #58 "Security Guards" "নিরাপত্তা কর্মী "
|
||||
* #59 "Unclassified Service Workers" "অশ্রেণীভুক্ত সেবা কর্মী "
|
||||
* #60 "Agricultural Farm Managers and Supervisors" "কৃষিখামার ব্যবস্থাপক ও তত্ত্বাবধায়ক "
|
||||
* #61 "Crop and Livestock Farmers" "কৃষিকাজ "
|
||||
* #63 "Forestry Workers" "বন কর্মী "
|
||||
* #64 "Fishers, Hunters, and Related Workers" "জেলে, শিকারি ও এতদসম্পর্কিত কর্মী "
|
||||
* #70 "Production Supervisors and Foremen" "উৎপাদন তত্ত্বাবধায়ক ও ফোরম্যান "
|
||||
* #71 "Miners and Quarry Workers" "খননকর্মী ও খননকারী "
|
||||
* #72 "Metal Processing and Finishing Workers" "ধাতু প্রক্রিয়াকারী "
|
||||
* #74 "Chemical Products Processing Workers" "রাসায়নিক দ্রব্য প্রক্রিয়াকারী "
|
||||
* #75 "Weavers, Knitters, Dyers, and Related Textile Workers" "তাঁতী, কাপড় বোনা ও রং করা "
|
||||
* #76 "Tanners and Leather Processing Workers" "চামড়া প্রক্রিয়াকারী "
|
||||
* #77 "Food and Beverage Processing Plant Operators" "খাদ্য ও পানীয় প্রক্রিয়াকারী "
|
||||
* #78 "Tobacco Preparers and Tobacco Processing Workers" "তামাক প্রক্রিয়াকারী "
|
||||
* #79 "Tailors, Dressmakers, and Sewing Workers" "দর্জি ও অন্যান্য সেলাই কর্মী "
|
||||
* #80 "Footwear and Leather Goods Makers" "জুতা ও চামড়াজাত দ্রব্য প্রস্তুতকারী "
|
||||
* #81 "Carpenters" "কাঠমিস্ত্রি "
|
||||
* #82 "Stone Cutters and Processing Workers" "পাথর কাটা ও প্রক্রিয়াকারী "
|
||||
* #83 "Blacksmiths, Toolmakers, and Related Trades Workers" "কর্মকার, ঢালাইকর্মী ও যন্ত্রাংশ প্রস্তুতকারী "
|
||||
* #84 "Non-Electrical Machine Operators" "বৈদ্যুতিক ব্যতীত অন্যান্য মেশিনকর্মী "
|
||||
* #53 "Cooks, Waiters, and Related Hotel Workers" "বাবুর্চি, হোটেল বয় ও এতদসম্পর্কিত কর্মী"
|
||||
* #54 "Unclassified Housemaids" "অশ্রেণীভুক্ত গৃহ পরিচারিকা"
|
||||
* #55 "Caretakers, Janitors, and Related Domestic Workers" "বাড়ির কেয়ারটেকার, ঝাড়ুদার ও এতদসম্পর্কিত কর্মী"
|
||||
* #56 "Laundry Workers" "ধোপা"
|
||||
* #58 "Security Guards" "নিরাপত্তা কর্মী"
|
||||
* #59 "Unclassified Service Workers" "অশ্রেণীভুক্ত সেবা কর্মী"
|
||||
* #60 "Agricultural Farm Managers and Supervisors" "কৃষিখামার ব্যবস্থাপক ও তত্ত্বাবধায়ক"
|
||||
* #61 "Crop and Livestock Farmers" "কৃষিকাজ"
|
||||
* #63 "Forestry Workers" "বন কর্মী"
|
||||
* #64 "Fishers, Hunters, and Related Workers" "জেলে, শিকারি ও এতদসম্পর্কিত কর্মী"
|
||||
* #70 "Production Supervisors and Foremen" "উৎপাদন তত্ত্বাবধায়ক ও ফোরম্যান"
|
||||
* #71 "Miners and Quarry Workers" "খননকর্মী ও খননকারী"
|
||||
* #72 "Metal Processing and Finishing Workers" "ধাতু প্রক্রিয়াকারী"
|
||||
* #74 "Chemical Products Processing Workers" "রাসায়নিক দ্রব্য প্রক্রিয়াকারী"
|
||||
* #75 "Weavers, Knitters, Dyers, and Related Textile Workers" "তাঁতী, কাপড় বোনা ও রং করা"
|
||||
* #76 "Tanners and Leather Processing Workers" "চামড়া প্রক্রিয়াকারী"
|
||||
* #77 "Food and Beverage Processing Plant Operators" "খাদ্য ও পানীয় প্রক্রিয়াকারী"
|
||||
* #78 "Tobacco Preparers and Tobacco Processing Workers" "তামাক প্রক্রিয়াকারী"
|
||||
* #79 "Tailors, Dressmakers, and Sewing Workers" "দর্জি ও অন্যান্য সেলাই কর্মী"
|
||||
* #80 "Footwear and Leather Goods Makers" "জুতা ও চামড়াজাত দ্রব্য প্রস্তুতকারী"
|
||||
* #81 "Carpenters" "কাঠমিস্ত্রি"
|
||||
* #82 "Stone Cutters and Processing Workers" "পাথর কাটা ও প্রক্রিয়াকারী"
|
||||
* #83 "Blacksmiths, Toolmakers, and Related Trades Workers" "কর্মকার, ঢালাইকর্মী ও যন্ত্রাংশ প্রস্তুতকারী"
|
||||
* #84 "Non-Electrical Machine Operators" "বৈদ্যুতিক ব্যতীত অন্যান্য মেশিনকর্মী"
|
||||
* #85 "Electricians" "বৈদ্যুতিক কর্মী"
|
||||
* #86 "Broadcasting and Audio-Visual Technicians" "শব্দ প্রচার কর্মী ও চলচ্চিত্র প্রদর্শনকারী "
|
||||
* #87 "Water and Sewerage Construction Workers and Welders" "পানি ও পয়োঃ নিষ্কাশন কাঠামো নির্মাণকারী ও ধাতু ঝালাইকারী "
|
||||
* #88 "Jewellery and Precious Metal Workers" "স্বর্ণকার "
|
||||
* #89 "Glass, Pottery, and Related Trades Workers" "গ্লাস ও মাটির জিনিস প্রস্তুতকারী "
|
||||
* #86 "Broadcasting and Audio-Visual Technicians" "শব্দ প্রচার কর্মী ও চলচ্চিত্র প্রদর্শনকারী"
|
||||
* #87 "Water and Sewerage Construction Workers and Welders" "পানি ও পয়োঃ নিষ্কাশন কাঠামো নির্মাণকারী ও ধাতু ঝালাইকারী"
|
||||
* #88 "Jewellery and Precious Metal Workers" "স্বর্ণকার"
|
||||
* #89 "Glass, Pottery, and Related Trades Workers" "গ্লাস ও মাটির জিনিস প্রস্তুতকারী"
|
||||
* #90 "Rubber and Plastic Products Makers" "রাবার ও প্লাস্টিক দ্রব্য প্রস্তুতকারী"
|
||||
* #91 "Paper and Paperboard Products Workers" "কাগজ ও কাগজের বোর্ড প্রস্তুতকারী "
|
||||
* #91 "Paper and Paperboard Products Workers" "কাগজ ও কাগজের বোর্ড প্রস্তুতকারী"
|
||||
* #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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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)
|
||||
|
||||
|
||||
@@ -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
|
||||
6
input/fsh/valueSets/BDConditionICD11VS.fsh
Normal file
6
input/fsh/valueSets/BDConditionICD11VS.fsh
Normal file
@@ -0,0 +1,6 @@
|
||||
ValueSet: BDConditionICD11VS
|
||||
Id: bd-condition-icd11-valueset
|
||||
Title: "Bangladesh ICD-11 MMS ValueSet"
|
||||
Description: "ValueSet that includes the ICD-11 MMS CodeSystem for Condition.code"
|
||||
* ^url = "https://fhir.dghs.gov.bd/core/ValueSet/bd-condition-icd11-valueset"
|
||||
* include codes from system http://id.who.int/icd/release/11/mms
|
||||
@@ -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>
|
||||
|
||||
@@ -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>
|
||||
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"
|
||||
}
|
||||
33
package-feed.xml
Normal file
33
package-feed.xml
Normal file
@@ -0,0 +1,33 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<feed xmlns="http://www.w3.org/2005/Atom">
|
||||
<id>https://fhir.dghs.gov.bd/core/package-feed.xml</id>
|
||||
<title>Bangladesh Core FHIR IG Package Feed</title>
|
||||
<subtitle>FHIR Package Feed for bd.fhir.core</subtitle>
|
||||
<link rel="self" href="https://fhir.dghs.gov.bd/core/package-feed.xml"/>
|
||||
<link rel="alternate" href="https://fhir.dghs.gov.bd/core/"/>
|
||||
<updated>2025-10-02T00:00:00Z</updated>
|
||||
<author>
|
||||
<name>MIS, Directorate General of Health Services (DGHS), Bangladesh</name>
|
||||
<uri>https://dghs.gov.bd</uri>
|
||||
</author>
|
||||
|
||||
<!-- Entries will be automatically added by the CI/CD pipeline -->
|
||||
<!-- Example entry structure (will be generated): -->
|
||||
<!--
|
||||
<entry>
|
||||
<title>bd.fhir.core version 0.2.0</title>
|
||||
<link rel="alternate" href="https://fhir.dghs.gov.bd/core/0.2.0/"/>
|
||||
<id>https://fhir.dghs.gov.bd/core/0.2.0/</id>
|
||||
<updated>2025-10-02T00:00:00Z</updated>
|
||||
<summary>Release 0.2.0 of Bangladesh Core FHIR Implementation Guide</summary>
|
||||
</entry>
|
||||
-->
|
||||
|
||||
<entry>
|
||||
<title>bd.fhir.core version 0.2.0</title>
|
||||
<link rel="alternate" href="https://fhir.dghs.gov.bd/core/0.2.0/"/>
|
||||
<id>https://fhir.dghs.gov.bd/core/0.2.0/</id>
|
||||
<updated>2025-10-02T00:00:00Z</updated>
|
||||
<summary>First draft release of Bangladesh Core FHIR Implementation Guide</summary>
|
||||
</entry>
|
||||
</feed>
|
||||
23
package-list.backup
Normal file
23
package-list.backup
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"package-id": "bd.fhir.core",
|
||||
"title": "Bangladesh Core FHIR Implementation Guide",
|
||||
"canonical": "https://fhir.dghs.gov.bd",
|
||||
"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 development version)",
|
||||
"path": "https://fhir.dghs.gov.bd/build",
|
||||
"status": "ci-build",
|
||||
"current": true
|
||||
},
|
||||
{
|
||||
"version": "v0.2.0",
|
||||
"date": "2025-10-02",
|
||||
"desc": "First draft release of the Bangladesh Core FHIR IG.",
|
||||
"path": "https://fhir.dghs.gov.bd/v0.2.0",
|
||||
"status": "trial-use",
|
||||
"sequence": "STU 1"
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1,20 +1,23 @@
|
||||
{
|
||||
"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" : [{
|
||||
"version" : "current",
|
||||
"desc" : "Continuous Integration Build (latest in version control)",
|
||||
"path" : "http://hl7.org/fhir/ig/HL7/myig",
|
||||
"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"
|
||||
}]
|
||||
"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.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"
|
||||
}
|
||||
]
|
||||
}
|
||||
12
publication-request.backup
Normal file
12
publication-request.backup
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"package-id": "bd.fhir.core",
|
||||
"title": "Bangladesh Core FHIR Implementation Guide",
|
||||
"canonical": "https://fhir.dghs.gov.bd",
|
||||
"version": "0.2.0",
|
||||
"path": "https://fhir.dghs.gov.bd",
|
||||
"status": "trial-use",
|
||||
"sequence": "STU 1",
|
||||
"mode": "milestone",
|
||||
"desc": "First draft release of the Bangladesh Core FHIR IG.",
|
||||
"first": true
|
||||
}
|
||||
Reference in New Issue
Block a user