26 Commits
Author SHA1 Message Date
Mutesasira Moses 89dc4fb317 Merge pull request #10 from mozzy11/isante
update local setup
2023-07-13 16:36:16 +03:00
Mutesasira Moses 4651bd4b8e update local setup 2023-07-13 16:35:31 +03:00
Mutesasira Moses e8718a3ab7 Update README.md 2023-05-16 16:48:53 +03:00
Mutesasira Moses 357e6165cf Update README.md 2023-05-16 16:48:05 +03:00
Mutesasira Moses cee4905028 Merge pull request #5 from mozzy11/isante
redirect http to https
2023-01-17 10:05:04 +03:00
mozzy11 0b6b85e018 redirect http to https 2023-01-17 10:04:06 +03:00
Mutesasira Moses 0f4f38fd20 Update README.md 2022-12-09 12:38:22 +03:00
Mutesasira Moses 8ea047424c Update README.md 2022-12-09 12:34:42 +03:00
Mutesasira Moses ce2f3d48cf Update README.md 2022-12-09 12:32:09 +03:00
Mutesasira Moses 184469d358 Update README.md 2022-12-09 12:31:07 +03:00
Mutesasira Moses 4cfc6b073f Update README.md 2022-12-09 12:30:20 +03:00
Mutesasira Moses 9044c3eff7 Update README.md 2022-12-09 12:29:49 +03:00
Mutesasira Moses 05f57fc5c8 Update README.md 2022-12-08 11:56:12 +03:00
Mutesasira Moses 0455783e0f Merge pull request #4 from mozzy11/isante
Isante
2022-12-08 11:33:38 +03:00
mozzy11 bb0ab54d4c add config fro local setup 2022-12-08 11:32:21 +03:00
Mutesasira Moses 0e4f358cde add local setup 2022-12-07 21:24:59 +03:00
Mutesasira Moses b2862c4c8c update local conf 2022-12-07 17:16:26 +03:00
Piotr Mankowski 7def1d9dda Merge pull request #1 from I-TECH-UW/pmanko-patch-openelis
Testing of single-command setup
2022-10-17 14:11:01 -07:00
Piotr Mankowski 5b392ded8a CI fix 2022-09-30 15:32:12 -07:00
Piotr Mankowski e8fdec42ff CI fix 2022-09-30 15:08:56 -07:00
Piotr Mankowski 650ce61800 CI fix 2022-09-30 14:54:54 -07:00
Piotr Mankowski 401338f63c CI and setup updates 2022-09-30 14:52:05 -07:00
Piotr Mankowski 8740a8590d Config additions 2022-09-30 13:55:09 -07:00
Piotr Mankowski 8f61cc7544 Readme update 2022-09-30 13:42:34 -07:00
mozzy11 567d61448e update openelis setup 2022-09-27 21:35:22 +03:00
Piotr Mankowski c29df81fe8 OpenELIS 2022-09-25 21:46:39 -07:00
20 changed files with 22500 additions and 23 deletions

No files matched your search

+61
View File
@@ -0,0 +1,61 @@
name: CI
on:
push:
branches:
- main
pull_request:
branches:
- main
release:
types: [published]
workflow_dispatch:
env:
IPLUS_DB_PW: mysqlpw
jobs:
CI:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v1
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v1
- name: Pull containers
run: docker-compose pull
- name: Cache containers
uses: satackey/action-docker-layer-caching@v0.0.11
continue-on-error: true
- name: Start all containers
run: docker-compose up -d
- name: Sleep for 120 seconds
run: sleep 120
shell: bash
- name: Display docker logs for openhim config
run: docker-compose logs openhim-config
- name: Show docker logs for isanteplus
run: docker logs isanteplus
- name: Wait For OpenMRS
run: docker-compose -f test.docker-compose.yml up --exit-code-from wait wait
- name: Restart streaming pipeline
run: docker-compose up -d --force-recreate streaming-pipeline
- name: Sleep for 30 seconds
run: sleep 30
shell: bash
- name: Run Basic API Tests (https://www.postman.com/itechuw/workspace/haiti-sedish/collection/1525496-192e3c9f-caea-4056-8077-b67af442f01c)
env:
POSTMAN_COLLECTION: https://www.getpostman.com/collections/22647ce67595a103f9c1
run: docker-compose -f test.docker-compose.yml up --exit-code-from newman newman
- name: Run iSantePlus QA Framework (https://github.com/IsantePlus/isanteplus-qaframework)
run: docker-compose -f test.docker-compose.yml up --exit-code-from qa qa
continue-on-error: false
+3
View File
@@ -0,0 +1,3 @@
volume/.DS_Store
volume/isanteplus/.DS_Store
*/.DS_Store
+11
View File
@@ -0,0 +1,11 @@
{
"name": "ci",
"values": [
{
"key": "isanteplus-url",
"value": "http://isanteplus:8080",
"enabled": true
}
],
"_postman_variable_scope": "environment"
}
+71
View File
@@ -1,2 +1,73 @@
# HaitiHealthBox
An all-inclusive health information system setup for health facilities in Haiti
# Setup Instructions
## Step One: Install Docker
See https://docs.docker.com/engine/install/
Test to make sure both of these commands work:
```sh
docker -v
docker compose version
```
**Note: If your docker version does not support the `docker compose` syntax,
install `docker-compose` using the instructions here: https://docs.docker.com/compose/install/**
## Step Two: Get HaitiHealthBox from GitHub
Run the following command:
```sh
git clone https://github.com/I-TECH-UW/HaitiHealthBox.git
```
If you want to use a specific version from the [version list](https://github.com/I-TECH-UW/HaitiHealthBox/releases), you can check out the corresponding tag. For example, to use version `0.0.0-alpha`, run:
```sh
git checkout v0.0.0-alpha
```
Otherwise, you can use the latest `main` branch that is the default.
## Step Three: Set some configurations
Set some temporary variables to store your desired iSantePlus Database and iSantePlus admin passwords:
```sh
export IPLUS_ADMIN_PW=<your-password>
export IPLUS_DB_PW=<your-password>
```
## Step Four: Boot up Docker Enviornment
Navigate to the `HaitiHealthBox` directory on your machine and run the following command:
```sh
docker-compose up -d
```
## Local setup
Spin up the services
```
docker-compose -f docker-compose.local.yml up -d
```
Acces the services at
| Instance | URL | credentials (user : password)|
|---------- |:-------------:|------: |
| Isanteplus | https://localhost/openmrs/login.htm  | admin : Admin123 |
| OpenHIM | https://localhost/ | root@openhim.org : admin |
| OpenELIS | https://localhost/OpenELIS-Global/ |  admin : adminADMIN!|
## Instructions
1. Add the necesary Lab Unit permisions to the User
Go To `Admin -> User Management -> Select User -> Under "Roles" ,Choose "ALL Lab Units" and select "All Permissions"`
2. Enable Importing electronic orders
Go To `Admin -> Order Entry Configuration -> Select "external orders" -> Click "Modify" -> select "True"`
3. Add the Right Test Catalogue ie tests with `Loinc Codes`
see [more](https://i-tech-uw.github.io/healthinformationexchange/lis-workflows/lis-workflows.html#tutorial-lab-order-communication-between-openmrs-and-openelis) for the EMR-LIS communication
+227
View File
@@ -0,0 +1,227 @@
version: "3.8"
services:
###
# reverse proxy
###
nginx:
image: nginx:latest
container_name: nginx
restart: always
ports:
- 80:80
- 443:443
volumes:
- certs-vol:/etc/nginx/certs/
- keys-vol:/etc/nginx/keys/
- ./volume/nginix/nginx.conf:/etc/nginx/conf.d/default.conf
depends_on:
- certs
##
#iSantePlus Server
##
isanteplus:
container_name: isanteplus
hostname: isanteplus
image: ghcr.io/isanteplus/docker-isanteplus-server:v2.3.7
restart: unless-stopped
env_file:
- ./isanteplus.env
volumes:
- /openmrs/data
- ./volume/isanteplus/custom_modules:/custom_modules
# ports:
# - 8081:8080
logging:
driver: "json-file"
options:
max-size: "10m"
isanteplus-mysql:
image: ghcr.io/isanteplus/docker-isanteplus-db:v2.2.1
command: mysqld --character-set-server=utf8 --collation-server=utf8_general_ci --sql_mode=""
restart: unless-stopped
container_name: isanteplus-mysql
hostname: isanteplus-mysql
healthcheck:
test: "exit 0"
environment:
- MYSQL_DATABASE=openmrs
- MYSQL_ROOT_PASSWORD=debezium
- MYSQL_USER=mysqluser
- MYSQL_PASSWORD=mysqlpw
- MYSQL_ROOT_HOST=% # Allow docker containers to connect to mysql
volumes:
# - ./mysql.cnf:/etc/mysql/conf.d/custom.cnf # mysql config preconfigured to allow binlog/debezium
- /var/lib/mysql
# streaming-pipeline:
# image: ghcr.io/i-tech-uw/openmrs-fhir-analytics/streaming-binlog:latest
# container_name: streaming-pipeline
# healthcheck:
# test: "exit 0"
# volumes:
# - ./configs/streaming-pipeline/config.json:/deployments/config.json
# # data is the directory which you want to persist the generated parquet files
# # - ./configs/streaming-pipeline/parquet:/tmp
# environment:
# - OPENMRS_URL=http://isanteplus:8080/openmrs
# - OPENMRS_USERNAME=admin
# - OPENMRS_PASSWORD=${IPLUS_ADMIN_PW-Admin123}
# - SINK_URL=https://openhim-ssl.sedish-haiti.org/SHR/fhir
# - SINK_USERNAME=${OPENHIM_STREAMING_CLIENT-streaming}
# - SINK_PASSWORD=${OPENHIM_STREAMING_PW-streaming}
# - JDBC_FETCH_SIZE=10000
# - JDBC_MAX_POOL_SIZE=50
# - JDBC_INITIAL_POOL_SIZE=10
# - JDBC_DRIVER_CLASS=com.mysql.cj.jdbc.Driver
# # the 2 variable below should be same as volume mappings above
# - PARQUET_PATH=
# - FHIR_DEBEZIUM_CONFIG_PATH=/deployments/config.json
###
# OpenHIM
###
openhim-core:
container_name: openhim-core
hostname: openhim-core
image: jembi/openhim-core:v7.1.0
restart: unless-stopped
environment:
mongo_url: "mongodb://mongo-db/openhim"
mongo_atnaUrl: "mongodb://mongo-db/openhim"
NODE_ENV: "development"
ports:
# - 5000
# - 5001
- 8080:8080
openhim-console:
container_name: openhim-console
hostname: openhim-console
image: jembi/openhim-console:v1.15.0
restart: unless-stopped
volumes:
- ./volume/openhim/console.json:/usr/share/nginx/html/config/default.json
healthcheck:
test: "curl -sS http://openhim-console || exit 1"
interval: 10s
timeout: 60s
retries: 3
# ports:
# - 3000:80
# Loads Default OpenHIM Config
openhim-config:
container_name: openhim-config
image: ghcr.io/i-tech-uw/openhim-config:v0.0.0
volumes:
- ./volume/openhim/initial-config.json:/app/test-openhim-config.json
mongo-db:
container_name: mongo-db
image: mongo:3.4
volumes:
- /data/db
restart: unless-stopped
####
# OpenELIS
####
certs:
container_name: oe-certs
image: ghcr.io/i-tech-uw/certgen:main
restart: always
environment:
- KEYSTORE_PW="kspass"
- TRUSTSTORE_PW="tspass"
volumes:
- cert-volume:/etc/openelis-global
- keys-vol:/etc/ssl/private/
- certs-vol:/etc/ssl/certs/
database:
container_name: openelisglobal-database
image: postgres:9.5
# ports:
# - "15432:5432"
restart: always
env_file:
- ./volume/database/database.env
volumes:
# preserves the database between containers
- db-data:/var/lib/postgresql/data
# files here will run on install
- ./volume/database/dbInit:/docker-entrypoint-initdb.d
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "clinlims", "-U", "clinlims"]
timeout: 45s
interval: 10s
retries: 10
oe.openelis.org:
container_name: openelisglobal-webapp
image: ghcr.io/i-tech-uw/openelis-global-2:2.7.3.2
depends_on:
- database
# ports:
# - "8095:8080"
# - "8443:8443"
restart: always
environment:
- TZ=Africa/Nairobi
# context.xml doesn't seem to be able to pick up environment variables directly, so we are passing them in as CATALINA_OPTS
- CATALINA_OPTS= -Ddatasource.url=jdbc:postgresql://database:5432/clinlims -Ddatasource.username=clinlims -Ddatasource.password=clinlims
volumes:
- cert-volume:/etc/openelis-global
# - openelis-plugins-data:/var/lib/openelis-global/plugins
- ./volume/tomcat/oe_server.xml:/usr/local/tomcat/conf/server.xml
secrets:
- source: datasource.password
- source: common.properties
fhir.openelis.org:
container_name: external-fhir-api
image: hapiproject/hapi:v5.5.1
# ports:
# - "8081:8080"
restart: always
environment:
- hapi.fhir.auto_create_placeholder_reference_targets=true
- hapi.fhir.allow_placeholder_references=true
- hapi.fhir.allow_external_references=true
fhir.openelis.org.remote:
container_name: openelis-remote-source
image: hapiproject/hapi:v5.5.1
# ports:
# - "8081:8080"
restart: always
environment:
- hapi.fhir.auto_create_placeholder_reference_targets=true
- hapi.fhir.allow_placeholder_references=true
- hapi.fhir.allow_external_references=true
secrets:
datasource.password:
file: ./volume/properties/datasource.password
common.properties:
file: ./volume/properties/common.properties
volumes:
db-data:
cert-volume:
certs-vol:
keys-vol:
+147 -23
View File
@@ -8,33 +8,35 @@ services:
image: traefik:v2.6.1
container_name: traefik
ports:
- '80:80'
- '443:443'
- '8080:8080'
- "80:80"
- "443:443"
volumes:
- ./certs/:/etc/certs/
- ./certs/:/etc/certs/
- /var/run/docker.sock:/var/run/docker.sock
- ./configs/conf.yaml:/conf/conf.yaml
- ./configs/traefik.yaml:/etc/traefik/traefik.yaml
- ./volume/traefik/conf.yaml:/conf/conf.yaml
- ./volume/traefik/traefik.yaml:/etc/traefik/traefik.yaml
###
# iSantePlus Server
###
isanteplus:
container_name: isanteplus
hostname: isanteplus
image: ghcr.io/isanteplus/docker-isanteplus-server:v2.3.0
image: ghcr.io/isanteplus/docker-isanteplus-server:v2.3.7
restart: unless-stopped
env_file:
- ./isanteplus.env
volumes:
- /openmrs/data
- ./custom_modules:/custom_modules
- ./dist:/openmrs/data/frontend
logging:
driver: "json-file"
options:
max-size: "10m"
ports:
- 8080:8080
networks:
- local_facility
isanteplus-mysql:
image: ghcr.io/isanteplus/docker-isanteplus-db:v2.2.1
@@ -48,14 +50,37 @@ services:
- MYSQL_DATABASE=openmrs
- MYSQL_ROOT_PASSWORD=debezium
- MYSQL_USER=mysqluser
- MYSQL_PASSWORD=mysqlpw
- MYSQL_PASSWORD=${IPLUS_DB_PW-mysqlpw}
- MYSQL_ROOT_HOST=% # Allow docker containers to connect to mysql
volumes:
- ./mysql.cnf:/etc/mysql/conf.d/custom.cnf # mysql config preconfigured to allow binlog/debezium
- /var/lib/mysql
ports:
- "3306:3306"
networks:
- local_facility
streaming-pipeline:
image: ghcr.io/i-tech-uw/openmrs-fhir-analytics/streaming-binlog:latest
container_name: streaming-pipeline
healthcheck:
test: "exit 0"
volumes:
- ./configs/streaming-pipeline/config.json:/deployments/config.json
# data is the directory which you want to persist the generated parquet files
# - ./configs/streaming-pipeline/parquet:/tmp
environment:
- OPENMRS_URL=http://isanteplus:8080/openmrs
- OPENMRS_USERNAME=admin
- OPENMRS_PASSWORD=${IPLUS_ADMIN_PW-Admin123}
- SINK_URL=https://openhim-ssl.sedish-haiti.org/SHR/fhir
- SINK_USERNAME=${OPENHIM_STREAMING_CLIENT-streaming}
- SINK_PASSWORD=${OPENHIM_STREAMING_PW-streaming}
- JDBC_FETCH_SIZE=10000
- JDBC_MAX_POOL_SIZE=50
- JDBC_INITIAL_POOL_SIZE=10
- JDBC_DRIVER_CLASS=com.mysql.cj.jdbc.Driver
# the 2 variable below should be same as volume mappings above
- PARQUET_PATH=
- FHIR_DEBEZIUM_CONFIG_PATH=/deployments/config.json
###
# OpenHIM
###
@@ -73,35 +98,38 @@ services:
interval: 20s
timeout: 20s
retries: 2
networks:
- hie
volumes:
- ./configs/openhim/healthcheck.js:/healthcheck.js
ports:
- 5000
- 5001
- 8090:8080
networks:
- local_facility
openhim-console:
container_name: openhim-console
hostname: openhim-console
image: jembi/openhim-console:latest
restart: unless-stopped
volumes:
- ./configs/openhim-console/default.json:/usr/share/nginx/html/config/default.json
- ./volume/openhim/console.json:/usr/share/nginx/html/config/default.json
healthcheck:
test: "curl -sS http://openhim-console || exit 1"
interval: 10s
timeout: 60s
retries: 3
ports:
- 3000:80
networks:
- hie
- local_facility
# Loads Default OpenHIM Config
openhim-config:
container_name: openhim-config
image: ghcr.io/i-tech-uw/openhim-config:v0.0.0
volumes:
- ./configs/openhim/test-openhim-config.json:/app/test-openhim-config.json
- ./volume/openhim/initial-config.json:/app/test-openhim-config.json
networks:
- hie
- local_facility
mongo-db:
container_name: mongo-db
image: mongo:3.4
@@ -109,4 +137,100 @@ services:
- /data/db
restart: unless-stopped
networks:
- hie
- local_facility
####
# OpenELIS
####
certs:
container_name: oe-certs
image: ghcr.io/i-tech-uw/certgen:main
restart: always
environment:
- KEYSTORE_PW="kspass"
- TRUSTSTORE_PW="tspass"
volumes:
- cert-volume:/etc/openelis-global
networks:
- local_facility
database:
container_name: openelisglobal-database
image: postgres:9.5
ports:
- "15432:5432"
restart: always
env_file:
- ./volume/database/database.env
volumes:
# preserves the database between containers
- db-data:/var/lib/postgresql/data
# files here will run on install
- ./volume/database/dbInit:/docker-entrypoint-initdb.d
networks:
- local_facility
healthcheck:
test: ["CMD", "pg_isready", "-q", "-d", "clinlims", "-U", "clinlims"]
timeout: 45s
interval: 10s
retries: 10
oe.openelis.org:
container_name: openelisglobal-webapp
image: ghcr.io/i-tech-uw/openelis-global-2:develop
depends_on:
- database
ports:
- "8095:8080"
- "8443:8443"
restart: always
environment:
- TZ=Africa/Nairobi
# context.xml doesn't seem to be able to pick up environment variables directly, so we are passing them in as CATALINA_OPTS
- CATALINA_OPTS= -Ddatasource.url=jdbc:postgresql://database:5432/clinlims -Ddatasource.username=clinlims -Ddatasource.password=clinlims
volumes:
- cert-volume:/etc/openelis-global
# - openelis-plugins-data:/var/lib/openelis-global/plugins
- ./volume/tomcat/oe_server.xml:/usr/local/tomcat/conf/server.xml
secrets:
- source: datasource.password
- source: common.properties
networks:
- local_facility
fhir.openelis.org:
container_name: external-fhir-api
image: hapiproject/hapi:v5.5.1
# ports:
# - "8081:8080"
restart: always
environment:
- hapi.fhir.auto_create_placeholder_reference_targets=true
- hapi.fhir.allow_placeholder_references=true
- hapi.fhir.allow_external_references=true
networks:
- local_facility
fhir.openelis.org.remote:
container_name: openelis-remote-source
image: hapiproject/hapi:v5.5.1
ports:
- "8081:8080"
restart: always
environment:
- hapi.fhir.auto_create_placeholder_reference_targets=true
- hapi.fhir.allow_placeholder_references=true
- hapi.fhir.allow_external_references=true
networks:
- local_facility
secrets:
datasource.password:
file: ./volume/properties/datasource.password
common.properties:
file: ./volume/properties/common.properties
volumes:
db-data:
cert-volume:
networks:
local_facility:
+11
View File
@@ -0,0 +1,11 @@
OMRS_JAVA_MEMORY_OPTS="-Xmx8192m -Xms4096m -XX:NewSize=512m"
OMRS_CONFIG_CONNECTION_SERVER=isanteplus-mysql
OMRS_CONFIG_CREATE_DATABASE_USER=false
OMRS_CONFIG_CREATE_TABLES=false
OMRS_CONFIG_ADD_DEMO_DATA=false
OMRS_CONFIG_CONNECTION_URL=jdbc:mysql://isanteplus-mysql:3306/openmrs?autoReconnect=true
OMRS_CONFIG_HAS_CURRENT_OPENMRS_DATABASE=true
OMRS_JAVA_SERVER_OPTS="-Dfile.encoding=UTF-8 -server -Djava.security.egd=file:/dev/./urandom -Djava.awt.headless=true -Djava.awt.headlesslib=true"
OMRS_CONFIG_CONNECTION_USERNAME=mysqluser
OMRS_CONFIG_CONNECTION_PASSWORD=mysqlpw
OMRS_DEV_DEBUG_PORT=1044
+48
View File
@@ -0,0 +1,48 @@
version: "3.8"
services:
# QA Framework
qa:
image: ghcr.io/isanteplus/isanteplus-qaframework:latest
container_name: qa
environment:
- ISANTEPLUS_URL=http://isanteplus:8080/openmrs
- ISANTEPLUS_USER=admin
- ISANTEPLUS_PW=Admin123
- REMOTE_URL_CHROME=http://chrome:4444/wd/hub
- TEST_OPTIONS="-Dcucumber.filter.tags=@login"
networks:
- local_facility
chrome:
image: selenium/standalone-chrome:latest
hostname: chrome
container_name: chrome
ports:
- "4444:4444"
- "7900:7900"
networks:
- local_facility
# Newman Tests
newman:
image: postman/newman
volumes:
- ./.postman:/.postman
entrypoint: newman run $POSTMAN_COLLECTION -e /.postman/env.json --insecure --timeout-request 20000 --delay-request 1000
networks:
- local_facility
wait:
container_name: wait
image: ghcr.io/i-tech-uw/wait-for-openmrs-action:v0.4.0
command:
- "http://isanteplus:8080/openmrs"
- "20"
- "10000"
networks:
- local_facility
networks:
local_facility:
external: true
name: haitihealthbox_local_facility
+4
View File
@@ -0,0 +1,4 @@
POSTGRES_USER=postgres
POSTGRES_PASSWORD=admin
POSTGRES_DB=clinlims
POSTGRES_INITDB_ARGS="--auth-host=md5"
@@ -0,0 +1,4 @@
CREATE USER clinlims PASSWORD 'clinlims';
CREATE USER admin SUPERUSER PASSWORD 'cPATaahXJlSj';
ALTER DATABASE clinlims OWNER TO clinlims;
File diff suppressed because it is too large. Load diff
+6
View File
@@ -0,0 +1,6 @@
DELETE from clinlims.site_information where name = 'siteNumber';
INSERT INTO clinlims.site_information( id, lastupdated, "name", description, "value") VALUES ( nextval('clinlims.site_information_seq'), now(), 'siteNumber', 'The site number of the this lab', 'DEV01' );
DELETE from clinlims.site_information where name = 'Accession number prefix';
INSERT INTO clinlims.site_information( id, lastupdated, "name", description, "value") VALUES ( nextval('clinlims.site_information_seq'), now(), 'Accession number prefix', 'Prefix for SITEYEARNUM format. Can not be changed if there are samples', 'DEV01' );
+32
View File
@@ -0,0 +1,32 @@
server {
listen 80;
server_name localhost;
return 301 https://localhost$request_uri;
}
server {
listen 443 ssl;
server_name localhost;
ssl_certificate /etc/nginx/certs/apache-selfsigned.crt;
ssl_certificate_key /etc/nginx/keys/apache-selfsigned.key;
proxy_set_header X-Forwarded-For $proxy_protocol_addr; # To forward the original client's IP address
proxy_set_header X-Forwarded-Proto $scheme; # to forward the original protocol (HTTP or HTTPS)
proxy_set_header Host $host; # to forward the original host requested by the client
absolute_redirect off;
location /openmrs {
proxy_pass http://isanteplus:8080;
}
location /OpenELIS-Global {
proxy_pass https://oe.openelis.org:8443;
}
location / {
proxy_pass http://openhim-console;
}
}
+13
View File
@@ -0,0 +1,13 @@
{
"version": "1.10.0",
"minimumCoreVersion": "3.4.0",
"protocol": "https",
"host": "localhost",
"port": 8080,
"title": "Admin Console",
"footerTitle": "OpenHIM Administration Console",
"footerPoweredBy": "<a href='http://openhim.org/' target='_blank'>Powered by OpenHIM</a>",
"loginBanner": "",
"mediatorLastHeartbeatWarningSeconds": 60,
"mediatorLastHeartbeatDangerSeconds": 120
}
+85
View File
@@ -0,0 +1,85 @@
{
"Users": [
{
"groups": [
"admin"
],
"firstname": "Super",
"surname": "User",
"email": "root@openhim.org",
"passwordAlgorithm": "sha512",
"passwordHash": "e12ea7a5468925ab2b6d839e5b0566c8d8e68d9dd48241282ec1c448c0b11386b499be64011c88060b241ed5a143fea90992dabb0d91a334daecd96e20156c24",
"passwordSalt": "5f49ab7df7fac0fd7860d3b1be95cbf4",
"expiry": null,
"locked": false,
"tokenType": null,
"token": null
}
],
"Clients": [],
"Channels": [
{
"methods": [
"GET",
"POST",
"DELETE",
"PUT",
"OPTIONS",
"HEAD",
"TRACE",
"CONNECT",
"PATCH"
],
"type": "http",
"allow": [],
"whitelist": [],
"authType": "public",
"matchContentTypes": [],
"properties": [],
"txViewAcl": [],
"txViewFullAcl": [],
"txRerunAcl": [],
"status": "enabled",
"rewriteUrls": false,
"addAutoRewriteRules": true,
"autoRetryEnabled": false,
"autoRetryPeriodMinutes": 60,
"routes": [
{
"type": "http",
"status": "enabled",
"forwardAuthHeader": false,
"name": "Central FHIR server",
"secured": false,
"host": "fhir.openelis.org.remote",
"port": 8080,
"path": "",
"pathTransform": "",
"primary": true,
"username": "",
"password": ""
}
],
"requestBody": true,
"responseBody": true,
"rewriteUrlsConfig": [],
"name": "central fhir server",
"description": "Access to the central FHIR server",
"pollingSchedule": null,
"matchContentRegex": null,
"matchContentXpath": null,
"matchContentValue": null,
"matchContentJson": null,
"urlPattern": "^/fhir/.*$",
"tcpHost": null,
"tcpPort": null,
"updatedBy": {
"id": "6374bbabba26d10013784480",
"name": "Super User"
},
"alerts": []
}
],
"Mediators": [],
"ContactGroups": []
}
+35
View File
@@ -0,0 +1,35 @@
server.ssl.key-store = file:/etc/openelis-global/keystore
server.ssl.key-store-password = kspass
server.ssl.key-password = kspass
server.ssl.trust-store= file:/etc/openelis-global/truststore
server.ssl.trust-store-password=tspass
#/usr/local/tomcat/webapps/OpenELIS-Global/certs
encryption.general.password=kspass
spring.datasource.driver=org.postgresql.Driver
spring.datasource.url= jdbc:postgresql://172.17.0.1:5432/clinlims?currentSchema=clinlims
spring.datasource.username=clinlims
spring.datasource.password=MIvfOkcLgzPA
spring.jpa.hibernate.ddl-auto=update
org.openelisglobal.fhirstore.uri=http://fhir.openelis.org:8080/fhir/
org.openelisglobal.remote.source.uri=http://openhim-core:5001/fhir/
org.openelisglobal.remote.source.updateStatus=true
org.openelisglobal.remote.source.identifier=Practitioner/f9badd80-ab76-11e2-9e96-0800200c9a66
org.openelisglobal.task.useBasedOn=true
org.openelisglobal.fhir.subscriber=http://openhim-core:5001/fhir/
org.openelisglobal.fhir.subscriber.resources=Task,Patient,ServiceRequest,DiagnosticReport,Observation,Specimen,Practitioner,Encounter
#org.openelisglobal.facilitylist.fhirstore = http://localhost:4000/fhir/DEFAULT
# org.openelisglobal.facilitylist.authurl= http://localhost:4000/auth/token
# org.openelisglobal.facilitylist.username= root@gofr.org
# org.openelisglobal.facilitylist.password= gofr
# org.openelisglobal.facilitylist.auth= token
facilitylist.schedule.fixedRate=864000000
#provider List
org.openelisglobal.providerlist.fhirstore=http://openhim-core:5001/fhir/
org.openelisglobal.requester.identifier=Practitioner/f9badd80-ab76-11e2-9e96-0800200c9a66
+1
View File
@@ -0,0 +1 @@
clinlims
+167
View File
@@ -0,0 +1,167 @@
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!-- Note: A "Server" is not itself a "Container", so you may not
define subcomponents such as "Valves" at this level.
Documentation at /docs/config/server.html
-->
<Server port="-1" shutdown="SHUTDOWN">
<Listener className="org.apache.catalina.startup.VersionLoggerListener" />
<!-- Security listener. Documentation at /docs/config/listeners.html
<Listener className="org.apache.catalina.security.SecurityListener" />
-->
<!--APR library loader. Documentation at /docs/apr.html -->
<!--<Listener className="org.apache.catalina.core.AprLifecycleListener" SSLEngine="on" />-->
<!-- Prevent memory leaks due to use of particular java/javax APIs-->
<Listener className="org.apache.catalina.core.JreMemoryLeakPreventionListener" />
<Listener className="org.apache.catalina.mbeans.GlobalResourcesLifecycleListener" />
<Listener className="org.apache.catalina.core.ThreadLocalLeakPreventionListener" />
<!-- Global JNDI resources
Documentation at /docs/jndi-resources-howto.html
-->
<GlobalNamingResources>
<!-- Editable user database that can also be used by
UserDatabaseRealm to authenticate users
-->
<Resource name="UserDatabase" auth="Container"
type="org.apache.catalina.UserDatabase"
description="User database that can be updated and saved"
factory="org.apache.catalina.users.MemoryUserDatabaseFactory"
pathname="conf/tomcat-users.xml" />
</GlobalNamingResources>
<!-- A "Service" is a collection of one or more "Connectors" that share
a single "Container" Note: A "Service" is not itself a "Container",
so you may not define subcomponents such as "Valves" at this level.
Documentation at /docs/config/service.html
-->
<Service name="Catalina">
<!--The connectors can use a shared executor, you can define one or more named thread pools-->
<!--
<Executor name="tomcatThreadPool" namePrefix="catalina-exec-"
maxThreads="150" minSpareThreads="4"/>
-->
<Connector port="8443" minProcessors="5" maxProcessors="75"
enableLookups="true" disableUploadTimeout="true"
acceptCount="100" debug="0" scheme="https" secure="true"
sslProtocol="TLS" SSLEnabled="true"
keystoreFile="/etc/openelis-global/keystore" keystoreType="PKCS12" keystorePass="kspass"
truststoreFile="/etc/openelis-global/truststore" truststoreType="PKCS12" truststorePass="tspass"
URIEncoding="UTF-8" />
<!-- A "Connector" using the shared thread pool-->
<!--
<Connector executor="tomcatThreadPool"
port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
-->
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443
This connector uses the NIO implementation. The default
SSLImplementation will depend on the presence of the APR/native
library and the useOpenSSL attribute of the
AprLifecycleListener.
Either JSSE or OpenSSL style configuration may be used regardless of
the SSLImplementation selected. JSSE style configuration is used below.
-->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol"
maxThreads="150" SSLEnabled="true">
<SSLHostConfig>
<Certificate certificateKeystoreFile="conf/localhost-rsa.jks"
type="RSA" />
</SSLHostConfig>
</Connector>
-->
<!-- Define a SSL/TLS HTTP/1.1 Connector on port 8443 with HTTP/2
This connector uses the APR/native implementation which always uses
OpenSSL for TLS.
Either JSSE or OpenSSL style configuration may be used. OpenSSL style
configuration is used below.
-->
<!--
<Connector port="8443" protocol="org.apache.coyote.http11.Http11AprProtocol"
maxThreads="150" SSLEnabled="true" >
<UpgradeProtocol className="org.apache.coyote.http2.Http2Protocol" />
<SSLHostConfig>
<Certificate certificateKeyFile="conf/localhost-rsa-key.pem"
certificateFile="conf/localhost-rsa-cert.pem"
certificateChainFile="conf/localhost-rsa-chain.pem"
type="RSA" />
</SSLHostConfig>
</Connector>
-->
<!-- Define an AJP 1.3 Connector on port 8009 -->
<!--
<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
-->
<!-- An Engine represents the entry point (within Catalina) that processes
every request. The Engine implementation for Tomcat stand alone
analyzes the HTTP headers included with the request, and passes them
on to the appropriate Host (virtual host).
Documentation at /docs/config/engine.html -->
<!-- You should set jvmRoute to support load-balancing via AJP ie :
<Engine name="Catalina" defaultHost="localhost" jvmRoute="jvm1">
-->
<Engine name="Catalina" defaultHost="localhost">
<!--For clustering, please take a look at documentation at:
/docs/cluster-howto.html (simple how to)
/docs/config/cluster.html (reference documentation) -->
<!--
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster"/>
-->
<!-- Use the LockOutRealm to prevent attempts to guess user passwords
via a brute-force attack -->
<!-- <Realm className="org.apache.catalina.realm.LockOutRealm"> -->
<!-- This Realm uses the UserDatabase configured in the global JNDI
resources under the key "UserDatabase". Any edits
that are performed against this UserDatabase are immediately
available for use by the Realm. -->
<!-- <Realm className="org.apache.catalina.realm.UserDatabaseRealm" -->
<!-- resourceName="UserDatabase"/> -->
<!-- </Realm> -->
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true">
<!-- SingleSignOn valve, share authentication between web applications
Documentation at: /docs/config/valve.html -->
<!--
<Valve className="org.apache.catalina.authenticator.SingleSignOn" />
-->
<!-- Access log processes all example.
Documentation at: /docs/config/valve.html
Note: The pattern used is equivalent to using pattern="common" -->
<!-- <Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs" -->
<!-- prefix="localhost_access_log" suffix=".txt" -->
<!-- pattern="%h %l %u %t &quot;%r&quot; %s %b" /> -->
</Host>
</Engine>
</Service>
</Server>