Skip to content

Latest commit

 

History

History
88 lines (62 loc) · 3.98 KB

File metadata and controls

88 lines (62 loc) · 3.98 KB

Local Development Setup

Real Time Reporting diagram

Docker Containers

  1. mssql - Restored MSSQL Server database pre-configured to work with RTR. Notable configurations
    1. NBS_ODSE.NBS_Configuration entry added with config_key = 'ENV', config_value = 'UAT'
    2. RTR User creation scripts applied
    3. Change Data Capture (CDC) enabled for relevant databases and tables
  2. liquibase - Liquibase container with all migration scripts copied from liquibase-service/src/main/resources/db/. Configured to automatically apply migrations and 1 time onboarding scripts and then close. Entrypoint: migrate.sh
  3. zookeeper - Manages the kafka cluster
  4. kafka - Message broker
  5. kafka-connect - Reads from the nrt_* topics and inserts into rdb_modern tables. Requires POST of mssql-connector.json after container start up.
  6. debezium - Reads Change Data Capture logs and posts messages to Kafka. Requires POST for each connector to be sent after container start up.
  7. investigation-service - Processes Kafka message for Investigation data
  8. ldfdata-service - Processes Kafka message for Locally Defined Field (LDF) data
  9. observation-service - Processes Kafka message for Observation data
  10. organization-service - Processes Kafka message for Organization data
  11. person-service - Processes Kafka message for Person data
  12. post-processing-service - Handles mapping key-uid mappings

Initial Setup

The first time containers are built, the liquibase container will need to be started. All following startups can bypass running liquibase.

Prerequisites:

Build the RTR database and liquibase containers

docker compose up mssql liquibase -d

Wait on liquibase container to complete migration and run onboarding scripts. Container will stop when complete.

Build zookeeper, kafka, kafka-connect, debezium containers

docker compose up zookeeper kafka kafka-connect debezium -d

Enable connectors for debezium

curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8085/connectors/ -d @containers/debezium/odse_connector.json
curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8085/connectors/ -d @containers/debezium/odse_meta_connector.json
curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8085/connectors/ -d @containers/debezium/srte_connector.json

Active connectors can be verified by sending a GET to /connectors

curl localhost:8085/connectors

Enable connectors for kafka-connect

curl -i -X POST -H "Accept:application/json" -H "Content-Type:application/json" localhost:8083/connectors/ -d @containers/kafka-connect/mssql-connector.json

Active connectors can be verified by sending a GET to /connectors

curl localhost:8083/connectors

Build data processing services

docker compose up investigation-service ldfdata-service observation-service organization-service person-service post-processing-service -d

Build NBS 6 WildFly container

docker compose up wildfly -d

Verifying functionality

  1. Log into NBS 6 using the user: superuser. No password is required
  2. Create a new patient
  3. Add an investigation to the patient
  4. View RDB_MODERN.D_PATIENT and RDB_MODERN.INVESTIGATION tables and verify the newly created patient and investigation are present.