stratify-ahf-ui
User interface for the stratify-ahf application
3.9K
This release uses the "unstable" tagged image.
contextPath.app.config.json & smart.config.json.This app depends on stratify-ahf-api being installed.
The stratify-ahf-ui application should be installed using Helm.
helm install <MY_RELEASE_NAME> oci://registry-1.docker.io/vumchealthitpublic/stratify-ahf-ui --version <HELM_CHART_VERSION>
Where...
_NOTE: By default, the stratify-ahf-ui application expects the stratify-ahf-api to be available via a service named stratify-ahf-api listening on port 8888.
The expected service name and port for stratify-ahf-api (i.e. stratify-ahf-api:8080), can be overridden by supplying a values file with the overridden configMap values. For example...
configMap:
data:
api.host: "stratify-ahf-api"
api.port: "8080"
The new values file (e.g. values.yaml) can be passed into the helm install command with the -f flag (e.g. helm install -f values.yaml...).
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-ui --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 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-ui \ --set configMap.data.my-config-key=my-config-value \ --set-file configMap.data.my-config-key=my-config-file.json \ ...
If the application is deployed at its own context root (e.g. because the host is shared with other applications), configure the context root.
contextRoot/--set configMap.data.contextRoot="/ohsu"The application can be launched directly from a web browser. Specify the FHIR servers and environments for which it can be launched.
smart.config.json--set-file configMap.data.smart\\.config\\.json=my-smart.config.jsonThe contents of this key is JSON. See this example for the general structure.
Multiple servers can be mabe available.
All servers should have the same scopes.
Each server needs a clientId, which is specific to the site. Client IDs may be shared among environments.
Contents of example
my-smart.config.json:{ "rootPath": [ "/" ], "servers": [ { "name": "Epic DEV", "description": "Epic Dev Environment (R4)", "iss": "https://my-ehr.org/FHIR/R4", "clientId":"abc-123", "scopes": [ "online", "patient/*.read", "openid", "fhirUser", "launch/patient", "launch/encounter" ] } ] }
app.config.jsonohsu-developmentSTRATIFY AHF/api and /logsstratifyahf-main and stratifyahf-calchttps://www.vanderbiltem.com/stratify--set-file configMap.data.app\\.config\\.json=my-app.config.jsonThe contents of this key is JSON. See this example for the general structure.
Contents of example
my-app.config.json:{ "environment": "local", "appTitle": "STRATIFY AHF", "apiUrl": "/api", "logUrl": "/logs", "mainLibraryId": "stratifyahf-main", "calcLibraryId": "stratifyahf-calc", "contact": { "name": "Q. Livingstone, MD. My Medical Center", "email": "[email protected]", "url": "https://my-medical-center.org/personnel/dr-linvingstone-md" }, "riskPredictionToolUrl": "https://www.vanderbiltem.com/stratify", "flowsheets": [ { "env": "https://my-ehr.org/FHIR/R4", "defaultSystem": "http://open.epic.com/FHIR/StructureDefinition/observation-flowsheet-id", "ids": { "bnpPredictor": "abc123", "troponinPredictor": "abc123", "bunPredictor": "abc123", "sodiumPredictor": "abc123", "spO2Predictor": "abc123", "homeO2Predictor": "abc123", "homeO2PredictorModified": "abc123", "rrPredictor": "abc123", "rrPredictorModified": "abc123", "dbpPredictor": "abc123", "qrsDurationPredictor": "abc123", "qrsDurationPredictorModified": "abc123", "outpatientACEIPredictor": "abc123", "outpatientACEIPredictorModified": "abc123", "dialysisPredictor": "abc123", "dialysisPredictorModified": "abc123", "agePredictor": "abc123", "bmiPredictor": "abc123", "bmiPredictorModified": "abc123", "riskScore": "abc123", "riskScoreLevel": "abc123", "riskScoreCalculationFormulaId": "abc-123" } }, ... ] }
Part of the JSON file is text that is displayed in the UI.
The app title is displayed in the banner of the UI.
The contact info is displayed on the screen. The contact URL is used as a clickable link that opens an external web page.
The tool URL is used as a clickable link for getting more information about the tool and the project.
Excerpt of example
my-app.config.json:{ ... "appTitle": "STRATIFY AHF", "contact": { "name": "Q. Livingstone, MD. My Medical Center", "email": "[email protected]", "url": "https://my-medical-center.org/personnel/dr-linvingstone-md" }, "riskPredictionToolUrl": "https://www.vanderbiltem.com/stratify", ... }
When the applications presents new risk prediction calculations to the provider, it writes back FHIR Observation resources to record what was shown to the provider. The Observations are coded using the mappings provided here.
Each displayed value has a mapping that corresponds to flowsheet definition in Epic. Six of the displayed values are modifiable, so an additional flowsheet value is written to indicate if the values were modified. Lastly, the risk calculation output and the formula selected for calculation are stored in flowsheet values.
In order to store these values into Epic flowsheets, the coding system is http://open.epic.com/FHIR/StructureDefinition/observation-flowsheet-id.
The identifiers are encoded flowsheet ids, which are generated using Epic tools or by requesting the generation from Epic.
The ids are specific to every to the Epic site and environment, so each id must be generated once for each environment.
Multiple environments are configured by adding additional entries to the flowsheets array. Each environment is identified by its FHIR endpoint.
Excerpt of example
my-app.config.json:{ ... "flowsheets": [ { "env": "https://my-ehr.org/FHIR/R4", "defaultSystem": "http://open.epic.com/FHIR/StructureDefinition/observation-flowsheet-id", "ids": { "bnpPredictor": "abc123", "troponinPredictor": "abc123", "bunPredictor": "abc123", "sodiumPredictor": "abc123", "spO2Predictor": "abc123", "homeO2Predictor": "abc123", "homeO2PredictorModified": "abc123", "rrPredictor": "abc123", "rrPredictorModified": "abc123", "dbpPredictor": "abc123", "qrsDurationPredictor": "abc123", "qrsDurationPredictorModified": "abc123", "outpatientACEIPredictor": "abc123", "outpatientACEIPredictorModified": "abc123", "dialysisPredictor": "abc123", "dialysisPredictorModified": "abc123", "agePredictor": "abc123", "bmiPredictor": "abc123", "bmiPredictorModified": "abc123", "riskScore": "abc123", "riskScoreLevel": "abc123", "riskScoreCalculationFormulaId": "abc-123" } }, ... ] }
The environment is meant to be configured differently for each environment where the application is deployed. It is not displayed and not used in the application logic.
The URL for the API is used in the application logic to identify where
to request CQL evaluation.
The default is /api because the helm charts are pre-configured to forward requests from that path in the UI to the API.
The URL for logging is used in the application logic to identify where to send application events to be logged.
The default is /logs because the helm charts are pre-configured to forward requests from that path in the UI to the VUMC Splunk Event Collector endpoint.
⚠ A way to override the forwarder for log events is not yet specified.
The identifiers for the CQL Library resources are used by the application logic to request evaluation for the main calculation and for re-calculation.
The defaults are stratifyahf-main and stratifyahf-calc because these FHIR Library resources are embedded in the API application.
Excerpt of example
my-app.config.json:{ "environment": "local", "apiUrl": "/api", "logUrl": "/logs", "mainLibraryId": "stratifyahf-main", "calcLibraryId": "stratifyahf-calc", ... }
Content type
Image
Digest
sha256:21e949c6a…
Size
116 MB
Last updated
13 days ago
docker pull vumchealthitpublic/stratify-ahf-ui:stable