-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathcompose.yml
More file actions
90 lines (83 loc) · 2.41 KB
/
compose.yml
File metadata and controls
90 lines (83 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
services:
# The database stores results generated by the cql-on-omop service.
# The results are read by the data-exchange service.
database:
build: database
shm_size: 128mb
environment:
POSTGRES_PASSWORD_FILE: /run/secrets/database-password
secrets:
- source: target-database-password
target: database-password
networks:
- database
volumes:
- ./database-data:/var/lib/postgresql
# The cql-on-omop service reads from the clinical database, computes
# quality indicators and stores results in the database service.
cql-on-omop:
build: cql-on-omop
env_file:
- source-database.env
- target-database.env
secrets:
- source-database-password
- target-database-password
stop_signal: SIGQUIT
volumes:
- ./crontab:/app/crontab:ro
networks:
- database
- trigger
depends_on:
- database
- data-exchange
# The data-exchange service takes quality indicator results from the
# database service and sends them to the INDICATE hub.
data-exchange:
build: data-exchange
env_file:
- target-database.env
- data-exchange.env
secrets:
- source: target-database-password # TODO: change "source" and "target"
target: database-password
networks:
- database
- trigger
volumes:
- ./provider-id:/run/provider-id
depends_on:
- database
# The dashboard services presents a web-based dashboard with quality
# indicator results from all data providers. These results are
# fetched from the INDICATE hub using the data exchange API. Later,
# the dashboard could also present patient-level results for just
# the local data provider.
dashboard:
image: ghcr.io/umg-minai/indicate-dashboard:latest
env_file: data-exchange.env
environment:
LISTEN_ADDRESS: 0.0.0.0
LISTEN_PORT: 8080
PROVIDER_ID_FILE: /run/provider-id/id # TODO: should wait until the id is generated
PROVIDER_NAME_FILE: /run/provider-id/name
volumes:
- ./provider-id:/run/provider-id
ports:
- 8000:8080
depends-on:
- data-exchange # for provider id generation but this is racy
secrets:
source-database-password:
file: source-database-password
target-database-password:
file: target-database-password
volumes:
data:
external: no
networks:
database:
external: no
trigger:
external: no