Based on this repo, wherein the Senzing stack is demonstrated using Docker Compose. This specific configuration leverages Apache Kafka as the queue, and PostgreSQL as the database.
The services in this stack can be displayed in the web browser after VNC-ing into the VM (instructions below) at the following localhost/port combinations:
- Kafdrop (Web UI for Kafka) -
localhost:9179
- Senzing REST API (via OpenApi Editor) -
localhost:9180
- Senzing Entity Search WebApp -
localhost:8251
- PostgreSQL -
localhost:9171
- Defaults:
username: postgres
password: postgres
- Defaults:
- AWS
- Google Cloud
- AWS: t2.xlarge (4 vCPUs, 16 GiB memory)
- GCP: e2-standard-4 (4 vCPUs, 16 GB memory)
Ubuntu 20.04 Xenial
- Size: 250GB
- Type: SSD persistent disk
- AWS deployment script included in this repo as
aws-startup-script.sh
- GCP deployment script included in this repo as
gcp-startup-script.sh
- This infra setup takes about 10-15 mins, so please allow yourself some time to deploy this when giving a demo (also a good time to hydrate).
- After Docker Containers are up, ssh into the
senzing-ssh
container withdocker exec -it senzing-sshd /bin/bash
- Navigate to the config tools directory for senzing with
cd /opt/senzing/g2/python/
- Add data sources for FHIR-compliant patient lists with the Config Tool python file
python3 G2ConfigTool.py
addDataSource {"dataSource":"Patient_List_1"}
addDataSource {"dataSource":"Patient_List_2"}
addDataSource {"dataSource":"Patient_List_3"}
addDataSource {"dataSource":"Deceased_List_1"}
save
(y/n)
type 'y'
- Grab the ndjson file with the FHIR-Compliant data from the storage bucket
curl -o demo.json https://storage.googleapis.com/senzing-fhir-test/demo-set.ndjson
- Load the file with
python3 G2Loader.py -f demo.json
- This branch is to show how to use this to create patients using SyntheaTM, and transform them into Senzing patients
- SyntheaTM is patient generating software from here, I don't think I'm breaking any rules since it's open source by hosting it as part of this repo, but if I am, please let me know, and I'll remove it
- You can try and use the senzing directory in this repo, although it may not work properly
- If it doesn't, you can follow the instructions
- Briefly
- Run the following:
$ git clone https://github.com/synthetichealth/synthea.git
- Go to the following directory:
synthea/src/main/resources
- Open the file synthea.properties
- Change the line
exporter.fhir.bulk_data = false
toexporter.fhir.bulk_data = true
- Return to the primary synthea directory, and run:
$ ./run_synthea -p 10
(the number after the p is how many patients you want to generate)
- the first time running this command downloads a number of dependencies, but gets quicker after that
- also, there are ways to construct certain patient populations at the github instructions link above
- Find the file
synthea/output/fhir/Patient.ndjson
, and copy it intofhir_to_senzing/lib/new_test_data
- Lastly, run the file
fhir_to_senzing/lib/create_new_test_data.dart
- There should now be a file
fhir_to_senzing/lib/new_test_data/SenzingPerson.ndjson
- Run the following: