Add US Core IG to a running Aidbox instance
Currently it is only possible to use FHIR IGs for self-hosted installations. We are working to add support for other distributions as well.
You are advised not to start Aidbox until all steps are finished. Otherwise you risk to start a misconfigured instance.
You need to go through the following steps:
- 1.Set up base Aidbox instance
- 2.Specify US Core as a dependency
- 3.Commit changes to your Aidbox configuration project
- 4.Restart Aidbox and verify that IGs are enabled
All of them are covered in a greater detail below.
If you are new to Aidbox it is strongly recommended not to skip any steps. Otherwise you may end up with a misconfigured instance.
Put the following in
project/zen-package.edn
:{:deps {hl7-fhir-us-core "https://github.com/zen-fhir/hl7-fhir-us-core.git"}}
Go to the main configuration file for your system (
project/zrc/system.edn
if you followed the guide above) and add hl7-fhir-us-core
namespace to imports. It should look like this:{…
:import #{aidbox hl7-fhir-us-core maybe-some-other-deps}
…}
Aidbox configuration project is a git repository so you should commit the changes maybe so that it becomes aware of the new dependency:
cd project && git add . && git commit -m "Add us-core dependency" && cd ..
Done. Now you can start Aidbox. Check “Profiles” page in the Aidbox UI to see that it works — `hl7-fhir-us-core` should be listed among other profiles.
Make the following HTTP requests to verify that validating with US Core works. You can use Aidbox REST Console.
Status: 201
POST /Patient
content-type: text/yaml
accept: text/yaml
meta:
profile:
- "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
identifier:
- {system: "some-system", value: "unique-value"}
name:
- {use: "anonymous"}
gender: "other"
Status: 422
POST /Patient
content-type: text/yaml
accept: text/yaml
meta:
profile:
- "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
identifier:
- {system: "some-system", value: "unique-value"}
name:
- {use: "anonymous"}
gender: "this-gender-is-not-known"
If you put a dependency while Aidbox is running you need to restart it so that it pulls the dependency and consumes it.
Restart Aidbox by running the following command:
docker compose down && docker compose up -d
Note that US Core IG takes about 1.5GB in the database. You can significantly reduce this size by disabling the loading of Concepts, ValueSets and CodeSystems. For that you need to set
BOX_FEATURES_FTR_PULL_ENABLE=true|false
.You’ll still be able to validate codes from ValueSets but Concept lookups and ValueSet expansions as well as
GET /Concept
, GET /ValueSet
and GET /CodeSystem
endpoints won’t work. Lookups and expansions without loading into database are currently work in progressBy default, Aidbox does not load terminologies into the database in order to save the disk space. This still allows you to use them for validation but terminology server functionality won’t be available. If you do wish to load the terminologies, you need to set
BOX_FEATURES_FTR_PULL_ENABLE=true
environment variable.Go to “Profiles” page in the Aidbox UI (
http://localhost:8888/ui/zen-ui
) and make sure that hl7-fhir-us-core
is listed among the namespaces.You can also verify that validation with US Core IG works. For that you can make the following HTTP requests and check that response statuses are returned as expected.
Status: 201
POST /Patient
content-type: text/yaml
accept: text/yaml
meta:
profile:
- "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
birthsex: "F"
gender: "female"
name:
- {use: "anonymous"}
identifier:
- {system: "some-system", value: "unique-value"}
This request checks that valid values for
birthsex
field are allowed.Status: 422
POST /Patient
content-type: text/yaml
accept: text/yaml
meta:
profile:
- "http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
birthsex: "SOMETHING-UNKNOWN"
gender: "female"
name:
- {use: "anonymous"}
identifier:
- {system: "some-system", value: "unique-value"}
This request checks that invalid values for
birthsex
field are not allowed.If you want to learn more about working with IGs in Aidbox, there is a special page dedicated to it.
Last modified 28d ago