MERT Pilot FHIR iGuide
Demo - The specification is a demo of MERT. For a full list of available versions, see the Directory of published versions
MERT uses a transaction-scoped pull model for data exchange.
When an authorized export is initiated in the source system, the system generates:
The importing system uses these credentials to authenticate and retrieve resources from the source system using standard FHIR RESTful endpoints.
MERT does not rely on:
Instead, resources are retrieved individually as standard FHIR JSON resources under a shared TransactionID authorization scope.
Implementation note: MERT is implemented as a real-time retrieval (pull) workflow to accelerate implementation and avoid the complexity of creating and storing separate, point-in-time snapshots. Snapshot-based behaviour may be considered in future phases.
When a user initiates an export:
The TransactionID defines the authorization scope for subsequent retrieval. It does not imply immutability of the underlying data; resources may change between authorization and retrieval.
MERT supports controlled invalidation of export credentials prior to their expiration.
The Sender SHALL provide a mechanism allowing the exporting physician or authorized administrator to revoke an active TransactionID.
When a TransactionID is revoked:
Revocation SHALL NOT delete audit records associated with the TransactionID.
The importing system:
(Privacy enforcement rules and how private elements are determined are defined normatively in the Conformance and Security sections.)
The Sender SHALL provide a capability to retrieve the list of Patient resources authorized under a given TransactionID.
This Patient list defines the complete patient scope of the transaction.
The Receiver SHALL begin retrieval by obtaining the list of Patients associated with the TransactionID.
The retrieval model is patient-rooted and iterative.
For each Patient within the TransactionID scope, the Receiver SHALL:
POST) operations.System-level resources (e.g., Practitioner) that are not strictly patient-scoped MAY be retrieved independently as required.
An import is considered complete when:
Implementations MAY provide additional confirmation mechanisms (e.g., per-patient counts or resource summaries) to assist in validating completeness, but such mechanisms are not required for conformance.
Reference(Patient), Reference(Practitioner)).Cross-referencing is maintained between the following resource types (examples; not exhaustive):
Systems implementing MERT import may process incoming resources in different sequences depending on their internal data models, persistence mechanisms, and reference resolution strategies. The MERT specification does not mandate a specific processing order.
However, implementers may wish to consider processing resources in a structured sequence that resolves core references early and reduces the likelihood of dependency failures during import.
Prior to implementing an import workflow, implementers are encouraged to evaluate how their system manages resource dependencies and reference resolution. In particular, systems may wish to consider:
Based on this analysis, implementers may choose to establish a predictable import sequence that processes foundational resources earlier and dependent clinical resources later. Adopting a consistent processing order can help minimize reference resolution issues, simplify error handling, and improve the reliability of the import workflow.
The MERT specification intentionally allows flexibility in how receivers implement this process, provided that imported resources are ultimately stored and linked correctly within the receiving system.
While FHIR servers can technically resolve references regardless of load order, practical experience suggests loading resources in dependency-aware order to reduce validation errors.
Recommended import sequence (guidance, not normative):
Receiving systems may choose an alternate strategy (e.g., staged ingest + reconciliation) provided they handle referential gaps per the guidance above.
POST).PUT) are not required for the initial MERT implementation.MERT imports implement a transaction-based lifecycle governed by completion of the import workflow and execution of a finalization step. Re-run eligibility is determined solely by whether finalization has occurred.
During a MERT import:
TransactionID SHALL be attempted as part of the import run.TransactionID).No additional record-level states are defined.
If the import process is interrupted before reaching completion (e.g., authentication error, runtime exception, infrastructure failure), the TransactionID SHALL NOT proceed to finalization.
Interruptions may include, but are not limited to:
TransactionID but incorrect Passphrase, expired or revoked credentials)In such scenarios:
TransactionID SHALL remain in a non-finalized state.TransactionID SHALL remain eligible for re-run.If the import workflow reaches the final record without interruption, the TransactionID SHALL proceed to finalization. Finalization eligibility is determined by completion of the import workflow, not by the success of individual records. A transaction MAY contain a mixture of Success, Skipped, and Failure outcomes and still be finalized.
The finalization step represents the terminal stage of a MERT import.
When finalization executes:
TransactionID SHALL be marked as Finalized (terminal state).TransactionID SHALL become non-rerunnable.Temporary or transfer-facilitating records may include artifacts created for identity resolution, linkage, or import continuity. Such artifacts SHALL NOT remain as active operational entities after finalization unless clinically relevant.
Re-run eligibility is determined solely by whether the TransactionID has reached finalization.
If the finalization step has not executed:
TransactionID MAY be re-run.During re-run:
This enables safe recovery from mid-import interruption without data duplication.
If finalization has executed:
TransactionID SHALL be considered terminal.TransactionID SHALL result in an error indicating that the transaction has already completed and cannot be re-run.Re-running a finalized transaction is prohibited to prevent duplicate data creation.
If a MERT import fails and finalization is not reached:
The system SHALL log:
TransactionIDIf repeated re-runs of the same TransactionID do not resolve the issue:
MERT does not require:
TransactionIDs