fhirsnake is a minimalistic FHIR server that serve yaml and json files as FHIR resources
The server reads all yaml
and json
files from resources
directory.
Resources directory should have subdirectories with names equal resource types:
resources/
├── Patient/
│ ├── example.yaml
│ ├── john-doe.json
│ └── patient3.yaml
├── Questionnaire/
│ ├── questionnaire1.yaml
│ ├── questionnaire2.yaml
│ └── sudbir/
│ └── questionnaire3.yaml
Important
All created and updated resources persist in runtime only. All changes are vanished after service restart
- read, create and update operations are supported
- search - limied support without any search params
GET /$index
operation returns a map of all resources in format<resource_type>:<id>
- Organize resources in a directory
- Option A: Run a container
docker run -p 8002:8000 -v ./resources:/app/resources bedasoftware/fhirsnake
- Option B: Adjust source destination in
Dockerfile.resources
if required 2.1. Build an image using the base imagedocker build -t fhirsnake-resources:latest -f Dockerfile.resources . docker run -p 8000:8000 fhirsnake-resources
- Export resources as .ndjson or ndjson.gz
docker run -v ./resources:/app/resources -v ./output:/output bedasoftware/fhirsnake export --output /output/seeds.ndjson.gz
- Watch resources for changes and send as PUT requests to external fhir server
docker run -v ./resources:/app/resources -v ./output:/output bedasoftware/fhirsnake watch --external-fhir-server-url http://localhost:8080 --external-fhir-server-header "Authorization: Token token"
Please, use Issues
ruff format
ruff check . --fix
Issue new version - run semantic release locally
npx semantic-release --no-ci
poetry build
poetry publish