Set-up Local Test Servers
This guide shows how to use provided Docker images to bring up test servers (and optionally load with synthetic data) to easily get started the FHIR Data Pipes pipelines.
There are 3 Docker server configurations you can use for testing:
- HAPI FHIR server with Postgres (source)
- OpenMRS Reference Application with MySQL (source)
- HAPI FHIR server (destination)
Instructions
Note: All commands are run from the root directory of the repository.
!!! info "Information" This tutorial has been updated to use docker compose
instead of docker-compose. If you have an older version of Docker that does
not support docker compose, you can continue to use docker-compose commands.
-
Create an external Docker network named
cloudbuild: -
Bring up a FHIR source server for the pipeline. This can be either:
The base FHIR URL for this server is
http://localhost:8091/fhir. If you get a CORS error when accessing the URL, try manually refreshing (e.g. ctrl-shift-r).The base FHIR URL for this server is
http://localhost:8099/openmrs/ws/fhir2/R4 -
Upload the synthetic data stored in sample_data to the FHIR server that you brought up using the Synthea data uploader.
The uploader requires that you install the
uploadermodule requirements first. You can do this by running:Please note, it is a good idea to first create a Python
virtualenvbefore running the above command to avoid conflicts with other Python packages you may have installed globally. You can do this by running:Then, you can run the uploader script to upload the synthetic data to the FHIR server.
For example, to upload to the HAPI FHIR server brought up in the previous step, run:
python3 ./synthea-hiv/uploader/main.py HAPI http://localhost:8091/fhir \ --input_dir ./synthea-hiv/sample_data --cores 8Depending on your machine, using too many cores may slow down your machine or cause JDBC connection pool errors with the HAPI FHIR server. Reducing the number of cores using the
--coresflag should help at the cost of increasing the time to upload the data. -
(optional) If you only want to output Apache Parquet files, there is no additional setup. If you want to test outputting to another FHIR server, then bring up a destination HAPI FHIR server:
The base URL for this server is
http://localhost:8098/fhir.
Additional notes for OpenMRS
Once running you can access OpenMRS at http://localhost:8099/openmrs/ using
username "admin" and password "Admin123". The Docker image includes the required
FHIR2 module and demo data. Edit docker/openmrs-compose.yaml to change the
default port.
Note: If docker compose fails, you may need to adjust file permissions. In
particular if the permissions on mysqld.cnf is not right, the datadir set in
this file will not be read by MySQL and it will cause OpenMRS to require its
initialsetup (which is not needed since the MySQL image already has all the
data and tables needed):
$ docker compose -f docker/openmrs-compose.yaml down -v
$ chmod a+r docker/mysql-build/mysqld.cnf
$ chmod -R a+r ./utils
$ docker compose -f docker/openmrs-compose.yaml up
In order to see the demo data in OpenMRS you must rebuild the search index. In OpenMRS go to Home > System Administration > Advanced Administration. Under Maintenance go to Search Index then Rebuild Search Index.