EMR Integration Overview
Ward integrates with EMR systems to synchronize patient data and clinical documentation.
Data Flows
Inbound (EMR → Ward)
| Data Type | Method | Trigger |
|---|---|---|
| Patient census | HL7 ADT | Admit/discharge/transfer |
| Observation levels | FHIR Order | Physician order change |
ADT Messages: A01/A04 (admit/register), A02/A12 (transfer, cancel transfer), A03 (discharge), A06/A07 (change to inpatient/outpatient), A08 (update), A11/A13 (cancel admit/discharge), and A40 (merge). Cancels and merges are handled, and unmatched non-create events are parked for review.
Outbound (Ward → EMR)
| Data Type | Method | Frequency |
|---|---|---|
| 1:1 rounds | FHIR DocumentReference | Real-time |
| Vital signs | FHIR Observation | Real-time |
| Assessments | FHIR Observation | Real-time |
Data syncs within minutes of documentation in Ward. See Code Mapping for the codes and per-vendor write acceptance.
Configuration
Configure EMR integration at Management → Integrations → Config tab.
Required Settings
| Setting | Description |
|---|---|
| EMR Type | Epic, Cerner, MEDITECH, Netsmart, Alleva, or Custom |
| FHIR Base URL | EMR's FHIR R4 endpoint |
| Auth URL | OAuth2 token endpoint |
| Client ID | OAuth2 client identifier |
| Auth method | client_secret (sandboxes) or private_key_jwt (production). The matching credential (client secret or signing key) is loaded into Vault, not stored in config |
Optional Settings
| Setting | Description |
|---|---|
| Scopes | Required OAuth2 scopes |
| HL7 Version | 2.4, 2.5, or 2.5.1 |
| SMART Launch URL | For patient context launch |
Ward is R4-only; the connection test confirms R4 from the server's CapabilityStatement.
Patient Matching
Ward matches patients between systems using:
| Method | Fields |
|---|---|
| MRN only | Medical Record Number |
| MRN + DOB | MRN and Date of Birth |
Configure the matching method based on your facility's policies. MRN + DOB refuses a match unless the
date of birth also agrees, so it never falls back to a single-factor match.
Testing the Connection
- Navigate to Management → Integrations
- On the Status tab, tap Test Connection
- Ward attempts to:
- Authenticate with your EMR
- Verify FHIR endpoint accessibility
- Check required permissions
- Results show:
- FHIR version
- Available resources
- Permission status
Monitoring
Status Tab
View real-time connection status:
- Connected - Integration working normally
- Degraded - Some sync failures occurring
- Not Connected - Integration not configured
- Token Expired - Re-authentication needed
Sync Statistics
Track sync health:
- Total syncs
- Successful syncs
- Failed syncs
- Pending syncs
Sync Log
View individual sync events:
- Navigate to Sync Log tab
- Filter by:
- All / Failed Only
- Date range
- See sync details:
- Timestamp
- Data type
- Status
- Error message (if failed)
Retrying Failed Syncs
Failed syncs retry automatically. To manually retry:
- Find the failed sync in the log
- Tap Retry
- Monitor for success
ADT Log
View incoming ADT messages:
- Navigate to ADT Log tab
- See received messages:
- Timestamp
- Message type (A01, A02, A03, and the other handled ADT events)
- Patient identifier
- Processing status
Security
EMR credentials are:
- Encrypted at rest
- Never logged or displayed
- Transmitted only over HTTPS
- Stored encrypted in the database
See Security for details.