Installation
This document will have instructions on how to install the project.
External containers
This project requires multiple external docker containers:
- 1 OpenMRS installation per organization
- 2 RabbitMQ containers (1 exposed to the public, 1 internal)
- 1 MariaDB container
RabbitMQ
The system uses 2 separate RabbitMQ containers for different purposes:
RabbitMQ Inbound (exposed to public): Used by the inbound message processors to receive appointment messages from external systems.
- Ports: 5672 (AMQP), 5671 (AMQP over TLS), 15672 (Management UI)
- Container name:
communicatie-rabbitmq-inbound
RabbitMQ Internal (not exposed): Used internally by the scheduler and notification worker for inter-service communication.
- Only accessible within the Docker network
- Container name:
communicatie-rabbitmq-internal
Both RabbitMQ containers are automatically set up and managed by the main docker-compose.yml file.
Fake Sender plugins
sudo docker run -p 13371:8080 ghcr.io/avansict/in2.4-fakecomworld:main
Hosts this documentation on localhost:13371. But it would be more adviced to use the docker-compose found at /fakecomworld/docker-compose.yml
Our custom containers
OpenMRS Plugin
Container 1: Inbound Processor (mfs-1)
Listens to appointment messages from the external RabbitMQ (rabbitmq-inbound) and stores them in MariaDB.
Container 2: Scheduler (mfs-2)
Reads messages from MariaDB and publishes them to the internal RabbitMQ (rabbitmq-internal) for scheduled delivery.
Container 3: Notification Worker (mfs-3)
Listens to notification messages from the internal RabbitMQ (rabbitmq-internal) and stores notifications in MariaDB. This container handles sending messages to external services (SwiftSend, SecurePost, LegacyLink, AsyncFlow).
Container 4: Secondary Inbound Processor (mfs-4)
Additional inbound processor for load balancing, listens to the external RabbitMQ (rabbitmq-inbound).
Docker compose
Most of this project can be installed with a single docker compose command:
docker compose up -dThis will start all required services:
- MariaDB database
- RabbitMQ Inbound (exposed)
- RabbitMQ Internal (internal only)
- FakeComWorld (mock SMS/Email service)
- 4 Message Forwarding Service containers
Make sure to configure your .env file with the required environment variables before running the compose command.