Getting started
Run MDMbox, Aidbox, and PostgreSQL locally, then try patient matching in the browser. You need Docker Compose and an Aidbox account to activate development licenses.
Aidbox serves the FHIR records; MDMbox finds and resolves duplicates in the same database. For Kubernetes, see Kubernetes deployment. For supported versions and image tags, see Versions and compatibility.
1. Download the configuration
Save this file as docker-compose.yml in an empty directory:
This local example uses MDMbox and Aidbox latest, development credentials, and a shared database.
2. Start the services
From that directory, run:
docker compose pull
docker compose up -d
Initial startup downloads images and FHIR packages and can take several minutes. Follow progress with docker compose logs -f.
3. Activate and sign in
- Open
http://localhost:8888and activate Aidbox following the Aidbox setup guide. - Open
http://localhost:8888/mdmbox. If redirected to Aidbox login, sign in withpostgresas both the username and password for this example; you return to MDMbox after sign-in. - Click Sign in to activate if MDMbox needs activation.
For unattended activation, set MDMBOX_LICENSE; see License configuration. If the Admin UI shows Activate Aidbox, complete Aidbox activation through its link.
4. Try matching in the UI
Open http://localhost:8888/mdmbox/welcome and follow the three steps:
- Import sample patients: click Import 1,000 patients to load synthetic FHIR records. When the import finishes, the page shows the patient count. If you already have patient data, continue with that dataset.
- Install matching model: click Install model to create the example
patient-examplemodel. Use Show model JSON to inspect it or View in Models to open it in the Admin UI. - Test Match: click Run tests. MDMbox picks a patient and compares the original details, a name with a typo, and a changed birth date against the database.
The result tabs show the submitted fields, matching records, scores, and grades:
| Test | Expected result |
|---|---|
| Exact match | The original patient is returned with grade certain. |
| Typo in name | The original patient is still found despite a spelling error. |
| Wrong birthdate | The original patient is found with grade probable or certain. |
Use Re-pick patient to try another record. These tests find matches without merging or deleting patients. The example model demonstrates matching; tune a model for your own data before using its scores to make decisions.
If Wrong birthdate reports FHIRSchema validation error, swapping that patient's month and day produced an invalid date. Click Re-pick patient and run the tests again.
You can manage models at http://localhost:8888/mdmbox/admin and explore API requests at http://localhost:8888/api/docs.
Next steps
- Follow Match, merge, and unmerge records to resolve a duplicate and restore it through the API.
- Configure Matching models for your records.
- Find pairs across a dataset with Bulk matching.
- See Updating MDMbox to stop or update this environment.