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
}
}