Skip to content
Zorix Systems — software that powers your business

Healthcare software development

EHR and EPR integration

A referral generated in one system, a result produced in another, a patient record held in a third and a claim submitted from a fourth: healthcare estates are built from systems that were never designed to talk to each other directly, and the interfaces that do exist — IM1 pairing, GP Connect, HL7 v2 feeds between hospital systems — each permit a different, narrower set of operations than a buyer usually assumes.

We build and maintain the integration layer between EMIS Web, TPP SystmOne, Vision and hospital estates of PAS, RIS, PACS and LIMS systems, mapping data to FHIR UK Core and SNOMED CT where the target system expects it, handling HL7 v2 where it does not, and matching patients correctly on NHS number through the Personal Demographics Service before any clinical data is written or displayed against the wrong record.

The workflow this replaces

How integration gaps are worked around today

Where no integration exists, or an existing one covers only part of what is needed, staff close the gap by rekeying, printing, faxing or manually cross-checking, and each workaround carries its own patient safety risk.

  1. Step 01

    Referral data is rekeyed between systems

    A referral generated in a GP clinical system arrives at a hospital as a document or a fax rather than a structured message, and a hospital administrator rekeys patient demographics and the reason for referral into the PAS by hand, introducing a fresh opportunity for a transcription error every time it happens.

  2. Step 02

    Results are printed and reattached to the wrong system

    A diagnostic result produced by a LIMS or a RIS-PACS pairing is exported as a PDF and emailed or faxed to the referring clinician's system, where it is filed manually against what staff believe is the correct patient, rather than matched automatically on a verified identifier.

  3. Step 03

    Write-back is avoided because permissions are unclear

    A digital health product that could write a structured entry back into the GP record instead asks the GP practice to do it manually, because the supplier has not established which IM1 interface mechanism permits write-back for that data type, or because the practice has not explicitly authorised it.

  4. Step 04

    Patient matching relies on demographics, not identifiers

    Where a message arrives without a verified NHS number, staff match it to a patient using name, date of birth and address, a process prone to error for common names, recently changed addresses or blended families, and one that a Personal Demographics Service trace would resolve automatically in most cases.

  5. Step 05

    Coded and free-text data are mixed without translation

    One system records a diagnosis as a SNOMED CT code and another records the same clinical concept as free text or a local code list, so anyone querying across both systems either misses records or has to manually reconcile terminology before any analysis is trustworthy.

  6. Step 06

    Failed messages disappear into logs

    An HL7 v2 message that fails to parse, or a FHIR resource rejected for a validation error, is written to a technical log that clinical and operational staff never see, so the failure is discovered only when someone notices a result or referral never arrived.

  7. Step 07

    Audit questions cannot be answered quickly

    When a data quality or safety incident requires tracing who wrote what to a record and when, staff have to search across the logs of several separate systems with no unified audit trail, which slows down an investigation that should take hours into one that takes days.

What we build

Modules in a typical build

IM1 and GP Connect interface layer

Implements GP Connect capabilities where they cover the required data and operation, and negotiates and builds against IM1 pairing where a bespoke or deeper interface with EMIS Web or TPP SystmOne is required, with the permitted scope of each documented rather than assumed.

FHIR UK Core resource mapping

Maps clinical data into FHIR UK Core resources — patient, condition, medication statement, observation and others — for systems that consume the national FHIR profile, validating each resource against the UK Core specification rather than a generic FHIR base profile.

HL7 v2 interface engine

Handles admission, discharge and transfer, order and results messaging between PAS, RIS, PACS and LIMS systems in hospital estates, where HL7 v2 remains the dominant message format despite the move toward FHIR elsewhere in the estate.

Patient matching and PDS verification

Matches incoming records to a patient using NHS number as the primary identifier, verified against the Personal Demographics Service, with a documented fallback matching process and an escalation path for records that cannot be matched automatically.

Terminology and coding translation

Translates between SNOMED CT, dm+d and any local code lists in use, maintaining a mapping table reviewed as terminology releases update, so a diagnosis or medication is not silently lost or misrepresented when it crosses a system boundary.

Write-back permission and consent control

Enforces which fields an external system may write into the clinical record, based on the specific interface mechanism authorised, and records patient consent status where write-back concerns anything beyond routine administrative data.

Error and reconciliation queue

Routes every message that fails to parse, validate or match to a queue with the reason for failure, distinguishing errors that can be resolved automatically from those requiring a person with clinical or administrative judgement to review.

Audit and traceability layer

Records every message received, transformed, matched and written, with the identity of the sending and receiving system and, where applicable, the acting user, producing a single queryable audit trail across what would otherwise be several systems' separate logs.

Integrations

Named systems and interfaces

Primary care clinical systems

EMIS WebTPP SystmOneVisionGP ConnectIM1 pairing

National services

Personal Demographics Service (PDS)Spinee-Referral ServiceNHS Login

Hospital estate systems

PASRISPACSLIMS

Standards

HL7 v2FHIR UK CoreSNOMED CTdm+dDICOM

The interface mechanism available for a given data type or write-back scenario depends on the clinical system supplier's current published offering; we confirm and document the specific route during discovery rather than quoting against an assumed capability.

Data and compliance

Requirements written into the build

Patient matching accuracy
NHS number verified against PDS as the primary match; unmatched records routed to a review queue rather than matched on demographics alone by default.
DCB0129 and DCB0160
Integration hazards — mismatched patient records, dropped messages, incorrect write-back — recorded in the hazard log and reflected in the deploying organisation's DCB0160 assessment.
DSPT alignment
Integration architecture and audit logging designed to support the connected organisations' Data Security and Protection Toolkit submissions.
UK GDPR and Caldicott Principles
Data flows documented per interface, with access to each data category justified against the Caldicott principle of using the minimum necessary information.
MHRA classification
Where an integration presents interpreted clinical data that could drive a decision, classification under UK MDR 2002 is assessed rather than assumed not to apply.
Audit retention
Message and matching audit records retained against the connected organisations' records management retention schedule.
HIPAA and SOC 2
For US-facing integration work, interfaces are built to HIPAA safeguards and against the SOC 2 control set.

Architecture note

How the system is put together

The integration layer is built around a message broker and interface engine that normalises inbound HL7 v2 and FHIR UK Core traffic into a common internal model before any patient matching, terminology translation or business logic runs, so downstream modules do not need to know which wire format a given source system used.

Patient matching runs as a dedicated service consulted before any clinical data is filed, verifying NHS number against the Personal Demographics Service where a live trace is available and falling back to a documented demographic matching algorithm with a confidence threshold, below which the record is queued for manual review rather than filed automatically.

Terminology translation is maintained as versioned mapping tables rather than embedded logic, because SNOMED CT and dm+d releases change over time and a mapping that was correct at build time can silently become wrong months later if it is not reviewed against each new release.

Every message, whether successfully processed or not, is written to an audit store keyed on the patient identifier and the source and destination system, which is what makes it possible to answer a safety investigation's question about who saw or wrote what, and when, without cross-referencing several separate systems' logs by hand.

Timeline

Build phases in weeks

Discovery and interface mapping

Weeks 1–5

Identify every system in scope, confirm which capabilities are reachable via GP Connect, IM1 pairing or HL7 v2 feed, and document exactly what read and write-back permissions are available for each.

Patient matching and terminology design

Weeks 5–9

Design the PDS-based matching service and fallback algorithm, and build the initial SNOMED CT and dm+d mapping tables for the data types in scope.

Interface engine build

Weeks 8–18

Build the HL7 v2 and FHIR UK Core interface engine against sandbox or test instances of the connected systems, starting with the highest-volume message types.

Write-back and consent controls

Weeks 16–22

Implement write-back permission enforcement and consent checks for any interface that writes into a clinical record, reviewed against the authorised IM1 interface scope.

Error queue and audit build

Weeks 18–24

Build the reconciliation queue and unified audit trail, and test failure handling against deliberately malformed and mismatched test messages.

Pilot and phased cutover

Weeks 22–30

Run the integration alongside existing manual processes for a defined pilot period, review error queue volume and matching accuracy, then cut over fully.

Indicative cost

Budget bands, not quotes

Single interface build
One GP Connect or IM1 interface for a defined data type. Indicative band £250,000 to £320,000.
Multi-system integration programme
HL7 v2 and FHIR UK Core interfaces across a hospital estate or federation. Indicative band £450,000 to £850,000.
Patient matching and terminology service
Standalone PDS matching and SNOMED CT or dm+d translation service. Indicative band £150,000 to £280,000.
Managed run
Ongoing interface monitoring, error queue management and terminology mapping updates. Priced as a monthly retainer against an agreed service level.

Bands assume UK NHS-connected systems with existing published interfaces. Bespoke IM1 negotiation with a supplier, or integration with legacy hospital systems without a documented interface, increase scope and are estimated separately.

Where this sits

Related pages

Questions

Frequently asked

What is the difference between IM1 pairing and GP Connect?

GP Connect is a national, standardised set of FHIR-based capabilities — access record structured, appointment management, send document — available to any accredited consumer without a bespoke agreement per practice. IM1 pairing is a direct interface agreement with a specific clinical system supplier, used when the required data or write-back permission falls outside what GP Connect currently exposes.

Can an integration write back into EMIS Web or TPP SystmOne?

Write-back is permitted only through specific interface mechanisms the supplier has published, and only for the data types and scenarios those mechanisms cover. We identify exactly what write-back is technically and contractually available during discovery, because it varies by supplier, by interface version and by what the practice has authorised.

How is a patient matched correctly across systems?

Matching is attempted on NHS number first, verified where possible against the Personal Demographics Service, with a documented fallback process using name, date of birth and address when the NHS number is missing or unverified. Every match, and every case that fails automatic matching, is logged for review rather than resolved silently.

Do you handle HL7 v2 messaging as well as FHIR?

Yes. Hospital estates still run substantial HL7 v2 traffic between PAS, RIS, PACS and LIMS systems for admissions, orders and results, and an integration programme that only speaks FHIR UK Core will miss most of an acute trust's actual message volume. We build interface engines that handle both.

What happens when a message fails to process?

It is written to an error queue with the reason for failure, rather than dropped or retried silently, and a defined reconciliation process — automated where the fix is deterministic, manual where clinical judgement is needed — resolves it. Every failed and resolved message is retained in the audit trail.

Tell us what your systems are doing wrong.

Send the problem, not a brief. We will tell you whether it is a project we should be involved in.

Talk to us