Skip to content

Interfaces with a FHIR server backend. Used for HEIR first half use case which automatically pushes received FHIR resources to Kafka, and writes to S3 and then the module extracts from Kafka

Notifications You must be signed in to change notification settings

elsalant/heir-FHIR

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Instructions for installing the MVP demo - takes a 2-week snapshot of Observation data from the IBM FHIR server, performs statisical analysis on it, and writes the data out to s3. Note that the FHIR server has been modified to include interceptor code to write received Observation records out to a Kafka queue. The Fybrik module will read from the Kafka queue, and retrieve the 2 week snapshot data based on the id in the received Observation. Logging information is written to the Kafka topic: 'fhir-wp2-logging'

Do once:

Clone these files:
git clone https://github.com/elsalant/heir-FHIR.git
Install kind if required (https://kind.sigs.k8s.io/docs/user/quick-start/) and create a new kind cluster:
kind create cluster --name mvp Add to the list of helm repos

IMPORTANT!! Make sure helm is at least at v3.7.2
check using $helm version

After installing Helm:
export HELM_EXPERIMENTAL_OCI=1

  1. Install fybrik from the instructions in: https://fybrik.io/v0.6/get-started/quickstart/
  2. Start the Kafka server:
    • helm install kafka bitnami/kafka -n fybrik-system
  3. Start the IBM FHIR server with the Interceptor
    helm install ibmfhir oci://ghcr.io/elsalant/ibmfhir_server --version=0.2.0 -n fybrik-system
  4. Create a namespace for mvp application use
    kubectl create namespace mvp
  5. Install datashim:
    kubectl apply -f https://raw.githubusercontent.com/datashim-io/datashim/master/release-tools/manifests/dlf.yaml

Move to the mvp directory

  1. Edit credentials-heir.yaml and add the s3 access and secret keys (in two places) then:
    kubectl apply -f credentials-heir.yaml
  2. Edit account-heir.yaml and configure the endpoint for your s3 store, then apply:
    kubectl apply -f account-heir.yaml
  3. Install the asset description and permissions:
  4. Apply the policies:
    ./applyPolicy.sh
  5. kubectl edit cm cluster-metadata -n fybrik-system
    and change "theshire" ("Region" tag) to "UK"
  6. Install the module
    kubectl apply -f https://raw.githubusercontent.com/elsalant/heir-FHIR/main/mvp/fhirToS3module.yaml -n fybrik-system
  7. Install the application (in mvp namespace)
    kubectl apply -f https://raw.githubusercontent.com/elsalant/heir-FHIR/main/mvp/mvpApplication.yaml -n mvp

You can confirm that the application is running by entering:
kubectl get pods -n fybrik-blueprints

To load the FHIR server: (do this in a new window)
kubectl port-forward svc/ibmfhir -n fybrik-system 9443:9443
12. The emulator to generate Observation records can be run by:
docker run --network host ghcr.io/elsalant/observation-generator:v1

Developer Notes

To package and push a chart:
from the charts directory:

  • helm package ibmfhir_server -d /tmp
  • helm push /tmp/ibmfhir_server-0.2.0.tgz oci://ghcr.io/elsalant
  • helm package fhir-to-s3 -d /tmp
  • helm push /tmp/fhir-to-s3-chart-0.0.2.tgz oci://ghcr.io/elsalant

To rebuild the Docker container with the fhirToS3.py code: From the python directory:

  • make docker-build
  • make docker-push

About

Interfaces with a FHIR server backend. Used for HEIR first half use case which automatically pushes received FHIR resources to Kafka, and writes to S3 and then the module extracts from Kafka

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published