stratify-ahf-api
Rest API for the stratify-ahf application
2.7K
This app depends on a Kubernetes secret named the same as the helm release. For instance, if you are naming the helm release "stratify-ahf-api-dev" then the secret must also be named "stratify-ahf-api-dev". The secret, for now, can be empty. For example...
kubectl create secret generic stratify-ahf-api-dev
This app uses spring-cloud-kubernetes which needs access to the Kubernetes API to load properties from the ConfigMap. For development purposes, you could add cluster-reader permissions to the default service account, but it's better that we provide more granular permissions (e.g., get, list, and watch). For example...
kubectl create role config-reader --verb=get --verb=list --verb=watch --resource=configmaps --resource=secrets --resource=pods --resource=services --resource=endpoints
kubectl create rolebinding config-reader-binding --serviceaccount=default:default --namespace=default --role=config-reader
The stratify-ahf-api application should be installed using Helm.
helm install <MY_RELEASE_NAME> oci://registry-1.docker.io/vumchealthitpublic/stratify-ahf-api --version <HELM_CHART_VERSION>
Where...
Although each Helm Chart is associated with a specific container image version, a different container image can be specified on the command line.
helm install <MY_RELEASE_NAME> oci://registry-1.docker.io/vumchealthitpublic/stratify-ahf-api --version <HELM_CHART_VERSION> --set image.tag=<IMAGE_TAG>
Where...
NOTE: Not all container images are compatible with every Helm Chart. Override the container image version at your own risk.
The API configuration values can be confirmed by accessing /api/prefetch/config on the host and port where the API is hosted.
The application is configured by overriding configMap values.
ConfigMap values can be overridden (as above) by supplying flags to the helm install which specify items beginning with "configMap.data.".
Example:
helm install <MY_RELEASE_NAME> oci://registry-1.docker.io/vumchealthitpublic/stratify-ahf-api \ --set configMap.data.my-config-key=my-config-value \ --set-file configMap.data.my-config-key=my-config-file.json \ ...
All the configuration keys org.vumc.stratifyahfapi.* can be defined in a single file.
site-application.yaml--set-file configMap.data.site-application\\.yaml=my-site-application.yamlThe application relies on CQL Library resources that are evaluated to perform the data element acquisition and also the risk score evaluation. The CQL uses FHIR ValueSet resources to identifiy data elements from the EHR.
The individual Library and ValueSet resources can be replaced to provide site-specific algorithms and code-matching.
These resources must be provided either in (a) one single FHIR Bundle (JSON format) or (b) a collection of FHIR resource files and/or CQL source files
org.vumc.stratifyahfapi.fhir.embedded--set configMap.data.org\\.vumc\\.stratifyahfapi\\.fhir\\.embedded=file:/etc/config/fhir/my-override-stratifyahf-library-bundle.jsonThe contents of this key is a Spring resource specification. The default refers to a FHIR Bundle resource (JSON format) embedded in the application JAR.
org.vumc.stratifyahfapi.fhir.manifest--set configMap.data.org\\.vumc\\.stratifyahfapi\\.fhir\\.manifest=file:/etc/config/fhir/manifest.txt--set configMap.data.org\\.vumc\\.stratifyahfapi\\.fhir\\.manifest=file:/etc/config/fhir/The contents of this key is a Spring resource specification. There is no default.
The value of this key may identify either (a) a text file or (b) a directory.
If the manifest identifies a file, it contains text with one resource reference per line.
Each resource reference can be either
(a) a full Spring reference starting with the reference scheme (e.g. classpath:/my-main-library.json)
(b) an absolute file reference (e.g. /etc/config/my-main-library.cql)
or (c) a relative file reference (e.g. my-main-library.cql) which is evaluated relative to the manifest file
If the manifest identifies a directory, the directory is searched for any files with a .json or .cql suffix.
A resource identified in the manifest that has a .json extension is a FHIR resource.
The resource may be either a ValueSet or a Library.
A resource identified in the manifest that has a .cql extension is a CQL source file.
The file is loaded as a FHIR Library using the contents of the file as the only Attachment with content type text/cql.
org.vumc.stratifyahfapi.fhir.prefetch.libraryId--set-file configMap.data.org\\.vumc\\.stratifyahfapi\\.fhir\\.prefetch\\.libraryId=my-my-prefetch-library-idorg.vumc.stratifyahfapi.fhir.prefetch.servers.*org.vumc.stratifyahfapi.fhir.prefetch.targets.*Content type
Image
Digest
sha256:3d9d504b2…
Size
311.7 MB
Last updated
about 5 hours ago
docker pull vumchealthitpublic/stratify-ahf-api:20260716.1.4ced25fd22b862193d3041edf88a61208c4c7f6c