Recipe: Setting up IBM FHIR Server and Azure in Development

The IBM FHIR Server has support for exporting and importing Bulk Data using extended operations for Bulk Data $import, $export and $bulkdata-status, which are implemented as Java Maven projects. The IBM FHIR Server uses JSR252 JavaBatch jobs running in the Open Liberty Java Batch Framework to enable access to Large Volumes of HL7 FHIR data.

This blog is a follow on to Recipe: IBM FHIR Server – Using Bulk Data with the Azure Blob Service, and provides a docker-compose file that works with the Azure emulator called Azurite.

Typically, you can run the container locally:

docker run -p 10000:10000 -v /local/path/to/azurite:/data mcr.microsoft.com/azure-storage/azurite \
    azurite-blob --blobHost 0.0.0.0 --blobPort 10000

Recipe

1. Pull the image

$docker pull mcr.microsoft.com/azure-storage/azurite

Using default tag: latest
latest: Pulling from azure-storage/azurite
396c31837116: Pull complete 
9e7b0c9574dd: Pull complete 
ec07c04a8d4c: Pull complete 
c1eb01e62785: Pull complete 
2cbc599970e9: Pull complete 
a0ee56369073: Pull complete 
ad1956587082: Pull complete 
29652032eab7: Pull complete 
Digest: sha256:4d40e97bf9345c9e321f4b8cf722dc4615d5d6080fd2953844be288a13eadb59
Status: Downloaded newer image for mcr.microsoft.com/azure-storage/azurite:latest
mcr.microsoft.com/azure-storage/azurite:latest

2. Download the docker-compose.yml and put it in a working folder

3. Download the fhir-server-config.json and put it in the same working folder

4. Create a folder azurite in the working folder.

5. The file layout should look like the following:

6. Startup the Docker Compose

nerdctl --address /var/run/docker/containerd/containerd.sock compose up

You can then upload data, and use the Azurite emulator, the key is:

"storageProviders": {
     "default" : {
     "type": "azure-blob",
     "bucketName": "fhirbulkdata",
     "auth" : {
          "type": "connection",
          "connection": "DefaultEndpointsProtocol=http;AccountName=account1;AccountKey=key1;BlobEndpoint=http://azure-blob:10000/account1;"
     },
     "disableOperationOutcomes": true,
     "duplicationCheck": false, 
     "validateResources": false, 
     "create": false
     }
}

Leave a Reply

Your email address will not be published.

This site uses Akismet to reduce spam. Learn how your comment data is processed.