MDMbox
MDMbox finds duplicate FHIR records and helps you resolve them. A matching model defines how to compare fields such as names, dates of birth, and addresses. MDMbox scores candidate pairs; your application or a reviewer decides what to do with them.
Start with Getting started to run MDMbox locally and try matching in the UI. Follow Match, merge, and unmerge records for a complete API walkthrough. For an existing Aidbox installation, see Kubernetes deployment. See Release notes for available releases and Aidbox compatibility.
Core capabilities
| You want to… | Use |
|---|---|
| Find duplicates of one record | $match |
| Find duplicate pairs in an existing dataset | Bulk matching |
| Keep duplicate pairs current after inserts, updates, and deletions | Continuous matching |
| Combine duplicates into one surviving record | Merge and unmerge |
| Group records while keeping the originals | Link and unlink |
| Record that two records are different entities | $mark-not-a-match |
| Inspect who performed an operation and what changed | Audit |
The Admin UI manages models, matching jobs, continuous processes, and merge/unmerge algorithms. Bulk and Continuous matching export pairs as CSV or NDJSON for review and resolution. See the Data Steward UI example for a complete review workflow.
Deployment architecture
MDMbox and Aidbox run as separate services connected to the same PostgreSQL database. MDMbox operates on the FHIR records stored there; use Aidbox's FHIR API to manage those records.
See Versions and compatibility for image tags and shared configuration. Matching models can target Patient, Practitioner, Organization, or another supported FHIR resource type.
Explore the documentation
- Matching: configure Matching models, choose normalization and comparison functions from SQL functions, and understand scores in Mathematical details.
- Duplicate resolution: merge or link confirmed duplicates, reverse a previous decision, or mark a pair as not a match. Use $referencing to find related records before building a merge plan.
- Customizing merge and unmerge: manage built-in and custom scripts in Algorithm management, then use the JavaScript algorithm API to implement your merge and unmerge policy.
- Deployment: choose compatible versions, deploy with Kubernetes, and update MDMbox.
- Operations: set environment variables in Configuration reference, configure Authentication, and inspect the Audit trail.
- API and integrations: find endpoints in API reference and subscribe to merge and unmerge events with Notifications.