This is the Workflow Capability prototype. It is a tool to be used by caregivers and hospital management in order to (among others) start, control, and view the status of medical protocol workflows of patients. It currently supports custom implementations of the following medical protocols:
- Sepsis diagnosis and treatment plan.
- Blood Loss guidance example for an ICU use case.
This project consists of five modules:
- Workflow Capability Core (wfc): Provides services, preprocessing and model handling and conversions.
- Caregiver Application (ca): Caregivers can use this app to start and control care protocols for patients.
- Management Dashboard (md): Hospital management can use this app to view statistics about patients and protocols.
- Workflow Engine (we): The app used to execute the BPMN & DMN workflows. The currently used one is Camunda.
- FHIR Store: This is the FHIR database used to store patient and workflow data. We use the existing 'Hapi-FHIR' implementation.
The architecture to these models can be found here: docs/Architecture.md
- Minimal version: Java version 17. OpenJDK 17 is recommended and can be found here.
- Maven (instructions)
- Node.js
- npm
- Docker. The image required is
docker pull hapiproject/hapi:latest
. The FHIR Server is assumed to be run on port:8180
Note: All sh Scripts have been made for bash
In order to facilitate easier cleaning, building, and execution of the applications, various scripts were created. They are placed in the 'scripts' folder.
For more information on how to use the scripts, see scripts/README.md
.
- Go to directory 'scripts' (
cd scripts
). - Ensure you have a running docker instance.
- Execute 'remove_all_docker_containers_start_FHIR_store.sh'. After it "stabilizes", go to step 3.
- Execute 'build_all.bat'. Now, all applications will be built and tested.
- Execute the following (in parallel):
- run_camunda.bat (Camunda will start).
- run_caregiver_app.bat (Caregiver Application will start).
- run_wfc_withDemos.bat (Workflow Capability Core will start and demo patients will be added to FHIR).
- For FHIR store: Run a Hapi FHIR instance (port 8180):
docker run -p 8180:8080 -e hapi.fhir.subscription.resthook_enabled=true hapiproject/hapi:latest
- For the other modules: Use the instructions provided in the READMEs of WCC, CA, MD, and WE.
Regarding Sepsis v2 models, the app can be run with the following demo patient, or a newly registered one:
- (New patient): The patient's journey depends on the observation values entered by the user on-demand.
- Joe the Fifth: This patient goes to surgery because of bad CT results.
- Joe the Sixth: This patient is not sober and will be discharged immediately.
- Joe the Seventh: This patient is sober but does not have bad physiological measurements. Therefore, he will be discharged after initial tests.
- Joe the Eighth: This patient has sepsis but does not need surgery. He will get a prescription.
- Joe the Ninth: This patient goes to surgery because of bad blood results.
- Joe the Tenth: This patient goes to surgery because of bad MRI results.
The service ports and the service references can be set at the following locations:
- Workflow Capability Core:
workflow_capability_core/src/main/resources/application.properties
- Caregiver Application:
caregiver_application/service_config.py
- Management Dashboard:
management_dashboard/package.json
,management_dashboard\src\environments\environment.ts
- Workflow Engine:
engine/camunda/src/main/resources/
- This prototype is based on BPMN and DMN models, and shows an architecture that makes Vendor Replacement obtainable.
- The application is an example application that uses the FHIR store, but can be exchanged with an arbitrary application. The application and Workflow Capability part of the system, can be used independent of eachother.