Clinical continuity. Technical evidence.Atlant Security
Hospital/PentestBY ATLANT SECURITY
Build your scope Free brief builder

Clinical application security

EHR Integration Testing: Security Acceptance Cases and Evidence

Plan EHR integration security tests for patient context, service identities, retries, audit evidence and release acceptance using safe synthetic data.

Discuss your requirements
Hospital integration engineering workspace linking controlled clinical systems

What EHR integration security acceptance testing verifies

EHR integration security acceptance testing verifies that an integration exchanges the intended information, under the intended identity and permissions, without crossing patient, organisation or workflow boundaries. It should also establish how errors, retries, access removal and security events are handled. A successful connection and a correctly formatted message do not establish that those boundaries work.

This guide is for hospital integration teams, clinical application owners and security leads preparing a release or commissioning an assessment. It provides practical test cases and evidence requirements for authorised, controlled environments. The examples are hypothetical and use synthetic patients and messages. They should be adapted to the implemented protocol, version, supplier support conditions and clinical workflow; they are not instructions to manipulate live patient records.

The emphasis is security acceptance, rather than general functional integration testing or validation of clinical interpretation. Those activities require their own qualified owners. Our hospital penetration testing service can help define the security scope, while the existing EHR and imaging integration guide explains the broader trust boundaries.

Write an integration contract that can be tested

Begin with a concise description of the sender, receiver, intermediary systems and intended business operation. Specify which records or events the integration may read or create, which organisation or patient context applies and which identity authorises the action. Include the supported protocol and implementation version. “FHIR integration” or “HL7 interface” is not sufficiently specific to define a complete test scope.

Identify the source of truth for each important field or decision. An integration may transform identifiers, map organisational codes or enrich a record before forwarding it. Ask which component is allowed to make each change and how the receiving system validates that authority. A message can be structurally correct while carrying an identifier or context that should not be accepted from that sender.

Define acceptance criteria before testing. A criterion should describe the permitted operation and the evidence needed to prove it, not simply say that the interface is secure. For example, a designated test client can retrieve the approved synthetic patient’s resource, while a different patient context is denied under the agreed access model. Record the expected response and the downstream state so the assessor knows what constitutes a failure.

Contract elementQuestion to resolve
IdentityWhich user, application or service is accountable for the operation?
Data scopeWhich patient, organisation and resource boundaries apply?
OperationRead, create, update, search or another explicitly supported action?
TransformationWhich fields may the intermediary change and why?
Failure handlingWhat happens to rejected, delayed or duplicate messages?
EvidenceWhich systems record the decision and how are events correlated?

Build a safe and representative test environment

Use a supported non-production environment with synthetic records whenever possible. Confirm which components match production and which differ: authentication, routing, application configuration, interface-engine rules and downstream behaviour can all affect the result. A test environment is useful only when its differences are understood. Preserve a short equivalence statement so the report does not imply that a lab result automatically proves production behaviour.

Create synthetic data that exercises the boundaries, not just a single happy-path patient. Include at least two distinct patient contexts where the model requires isolation, separate organisations where relevant, and records representing the agreed workflow states. Give the fixtures stable identifiers and document expected relationships. Avoid using real names or copied clinical histories merely to make the demonstration look realistic.

Agree cleanup and reconciliation before execution. Know which test objects may be created, who confirms their removal or retention and how unexpected downstream effects will be detected. If a workflow can trigger communications, orders or other operational actions, disable or isolate those effects in the approved environment. Do not rely on the assessor remembering to avoid a dangerous button; design the test arrangement so the permitted operations are explicit.

Synthetic clinical record panels on an isolated engineering desk
Use representative synthetic fixtures and document differences from production. Conceptual illustration; no real patient data or client test results.

Distinguish interoperability from access control

HL7 states that FHIR is not itself a security protocol. Its resources and exchange patterns must be combined with an appropriate security architecture. Treat standards conformance and security acceptance as related but separate questions. An implementation can return a valid resource while applying an inappropriate access decision to the requesting identity.

For a FHIR implementation, inspect the supported interactions and capability information for the actual version in use. The FHIR RESTful API specification describes interactions such as read, search and update, but does not itself replace authentication, authorisation and audit design. Do not assume every server supports every interaction or that a case designed for one implementation guide applies unchanged to another.

Keep the test plan grounded in the deployed contract. If an integration uses a different message format or transport, adapt the same questions about identity, context and state to that implementation. Avoid adding fashionable API tests that have no meaningful relationship to the interface. The report should explain which protocol behaviour was reviewed and which security requirement it was intended to verify.

Test the user, client and service identities separately

Map every identity involved in the operation. A user may launch an application, an application may call an API and an interface engine may forward the resulting message under a service identity. These are different accountability layers. Record which identity the receiving system uses for its decision and whether the original user context is retained where the design requires it.

Where SMART App Launch is implemented, its scope and launch-context guidance distinguishes requested delegated access and the underlying permissions that still constrain it. A broad-looking scope does not by itself establish unrestricted access, and a narrow-looking request does not prove the server enforces the intended patient boundary. Test the implemented decision with authorised fixtures.

Include cases for an approved identity, an identity without the relevant role and a client whose access has been removed through the agreed process. Do not borrow real clinician credentials or copy production tokens into an assessor’s tools. Use designated identities and record their assigned roles at the test time. If an identity cannot be safely represented, mark the case untested and explain what evidence is available instead.

Distinct clinician and service credentials beside clinical-data access gates
Keep user authority, application scope and service identity visible in the test design. Conceptual illustration; no real patient data or client test results.

Verify patient and organisation context at the receiving boundary

Create a positive case for the intended synthetic patient or organisation, then a negative case that changes the relevant context while preserving the other approved conditions. Define the expected decision with the application owner. The purpose is to verify the receiver’s boundary, not to browse randomly for accessible records. Use only the designated fixture identifiers and the operations authorised in the rules of engagement.

Test context at the layer where it matters. A user interface may display the correct patient while an underlying API request relies on a different identifier. An integration engine may transform an external identifier into an internal one. Trace the mapping and record the expected relationship. If a mismatch is accepted, capture the synthetic before-and-after evidence without extending the activity into real records.

Include organisational boundaries when the integration serves several facilities, tenants or partner organisations. A shared service account may legitimately process several populations, but that design still needs explicit restrictions and accountability. The assessment should establish the intended scope rather than assuming that every cross-organisation operation is wrong or that a central integration identity justifies unrestricted access.

CasePurposeEvidence
Approved patient readVerify the legitimate boundaryIdentity, fixture and returned synthetic resource
Different patient contextVerify the agreed restrictionChanged context and resulting access decision
Different organisation contextCheck facility or partner separationMapping and receiver decision
Disallowed operationSeparate read authority from modification authorityRequested action and unchanged target state
Removed client accessVerify lifecycle enforcementApproved removal record and subsequent test result

Test the workflow state, not only the message shape

Ask the clinical application owner which state transitions the integration is permitted to request. A message that is valid at one point in the workflow may be inappropriate later. The security test should examine whether the receiver preserves the agreed authority and state rules, using synthetic objects and operations approved for the environment. Clinical correctness remains the responsibility of the relevant qualified team.

Build cases around a documented sequence. For example, a synthetic order may move through creation, acceptance and a terminal state defined by the application. Identify which component can initiate each transition and what should happen if an out-of-sequence request arrives. Record the expected downstream state, not just the response code. A success response followed by an unintended state change requires different handling from a rejected request.

Avoid assuming that an integration’s retry behaviour is equivalent to a new authorised business action. Agree how duplicate or repeated messages should be recognised in the implemented workflow. Test with an isolated fixture and bounded repetition, then verify the resulting records or events. The report should state the specific behaviour observed rather than promising universal protection against every duplicate-message condition.

Laboratory order represented moving through controlled integration stages
Acceptance criteria should describe authorised state transitions and their downstream effects. Conceptual illustration; no real patient data or client test results.

Exercise rejection, retry and partial-failure handling safely

Define a small set of expected failure cases with the integration owner: an unsupported operation, a missing required context, an expired test credential or an unavailable controlled dependency. Use supplier-supported methods to represent them. Do not introduce uncontrolled load or malformed traffic into live clinical services in the name of robustness testing. A security acceptance plan should name the permitted failure simulation and its safety limits.

For each failure, inspect what the sender, intermediary and receiver record. Does the message remain pending, enter an exception queue or require an operator decision? Who can view or retry it? Does the error expose more information than necessary to the caller? These questions connect security to the operational process that follows a rejection. The interface is not fully assessed if the test stops at the first error response.

Check whether partial success can be distinguished from complete failure. If an intermediary retries after losing an acknowledgement, the receiving system may already have acted. The expected reconciliation behaviour must come from the implemented workflow. Use synthetic data to observe it and record the limitation if the environment cannot reproduce the condition. Do not declare a generic retry setting safe without examining its business effect.

Controlled integration retry path around a paused synthetic message
A rejected or retried message needs a defined operational and security outcome. Conceptual illustration; no real patient data or client test results.

Verify transport and endpoint assumptions within scope

Document the approved endpoints, trust relationships and network routes. Confirm which component terminates the protected connection and whether an intermediary changes the trust boundary. A connection protected on one leg does not automatically explain the rest of the route. The assessment should identify where data is received, transformed, queued and forwarded, with the owner responsible for each stage.

Review certificate and endpoint-management evidence appropriate to the environment without changing production trust settings. Ask how expiry, replacement and unexpected endpoint changes are detected and handled. If a supplier-managed component is outside the assessor’s authority, request relevant evidence or record the limitation. Do not bypass certificate validation to make a test succeed and then report the connection as properly protected.

Keep transport conclusions distinct from authorisation conclusions. An authenticated connection can still carry a request outside the sender’s business authority. Conversely, a correct application decision does not resolve an insecure transport arrangement. The acceptance report should map each finding to the layer it concerns so the responsible team can correct it without assuming another control makes the issue irrelevant.

Correlate events across the integration chain

Choose a unique, non-sensitive test marker and record the UTC execution time. Ask each participating system owner to identify the corresponding event and the identity associated with it. Preserve the mapping between sender, intermediary and receiver references. This allows the team to distinguish one business operation from several technical requests and to investigate a future discrepancy without relying on a single system’s account of events.

FHIR’s AuditEvent resource provides a model for security-relevant event information. Its existence in the specification does not establish that a particular integration records the events needed by the hospital. Verify the actual implementation, available fields and access to the records. Where the system uses a different logging mechanism, evaluate whether it supports the agreed accountability and investigation questions.

Record retention and retrieval limitations as evidence constraints. A current test can demonstrate that an event is produced, but not that every historic operation remains available. Confirm who can access logs and whether sensitive information is unnecessarily included. The assessment pack should use redacted extracts and source references rather than copying complete clinical payloads into a broadly circulated report.

Linked event cards and synchronised clocks on an integration evidence desk
Follow one synthetic operation across the sender, intermediary and receiver. Conceptual illustration; no real patient data or client test results.

Review operational interfaces and exception queues

Integration administration often introduces a separate privileged surface. Identify who can change mappings, replay messages, alter destinations or access exception queues. These capabilities may affect information flow even when the clinical application’s ordinary user permissions are well controlled. Include them explicitly or state that they require a separate assessment; do not let them disappear behind the phrase “backend integration.”

Ask the owner to demonstrate the authorised workflow for a sensitive administrative action using a controlled example. Record the approval, identity and audit evidence. Where several teams share responsibility, identify which team can make each change and how another team would detect it. A technically restricted clinical user does not compensate for an unowned administrative route that can redirect the same data.

Review the handling of message payloads in troubleshooting tools. Support staff may need enough context to resolve an error, but that does not imply unrestricted access to every retained payload. Establish the intended support role, available redaction and retention process. Findings should describe the actual scope and business consequence of access rather than treating all troubleshooting visibility as automatically inappropriate.

Example: an integration accepts an unintended patient context

Consider a fictional test environment with two synthetic patients and a client authorised for one of them under the agreed model. The approved positive case succeeds. A second authorised test changes only the patient context and the receiver returns the other synthetic record. This establishes a specific boundary failure under the tested conditions. It does not establish that all production patients are exposed or that a real person’s information was accessed.

The finding should include the client and role context, fixture identifiers, requested operation, response and expected restriction. Identify whether the decision appears to originate at the gateway, application or mapping layer only when the evidence supports that attribution. If root cause remains uncertain, describe the observed failure and assign investigation rather than inventing an implementation explanation.

Remediation acceptance repeats the original negative case and the valid positive case against the corrected environment. It also checks relevant alternate operations or mappings identified by the owner. The final status should distinguish a verified repair, a partial correction and a deferred production validation. This creates a useful engineering ticket instead of a dramatic but unrepeatable vulnerability narrative.

Make the security acceptance gate usable by release owners

Define the release decision before the assessment ends. Which confirmed findings must be resolved, which limitations require owner acceptance and which cases must be repeated after deployment? Keep severity and confidence separate. A high-consequence boundary with incomplete evidence may require further investigation before release even if no exploit was demonstrated. The release owner needs that uncertainty explained clearly.

Produce a compact acceptance record with the tested version, configuration baseline, fixture set, cases, results and outstanding actions. Link to restricted evidence rather than embedding sensitive payloads. Identify the people who accepted clinical functionality, integration operation and security results. Those responsibilities may belong to different teams and should not be collapsed into a single checkbox labelled “tested.”

After relevant changes, rerun the cases affected by authentication, mappings, routing or permissions. Do not assume a previous acceptance remains valid after a material interface change. Equally, avoid retesting every unrelated component without a reason. A traceable matrix allows the owner to select the right regression scope and preserve evidence that the important boundaries still hold.

Clinical and IT professionals reviewing a synthetic integration workflow
A release decision needs traceable security cases and named operational owners. Conceptual illustration; no real patient data or client test results.

Track versions and configuration drift after acceptance

Store the accepted interface version, mapping revision and identity configuration with the test record. A later supplier update may preserve the same external endpoint while changing how context is interpreted or logged. Define which changes trigger a focused review, and make that decision part of the integration owner’s normal release process rather than an informal security reminder.

When comparing a new version, start with the boundaries that changed and the critical cases that must remain stable. Check whether synthetic fixtures still represent the supported workflow. If a case is retired, record why and identify its replacement where needed. This prevents an acceptance suite from becoming a set of obsolete checks that continues to report success while the integration’s actual responsibilities have moved.

What to request from an EHR integration security assessment

Ask for a clear boundary between functional testing, clinical validation and security assessment. Request the identity-and-context matrix, the rules of engagement, the synthetic-data plan, the evidence model and the proposed acceptance criteria. Confirm whether the interface engine, administrative tools, supplier route and downstream components are included. These details matter more than a proposal that simply lists protocols.

A useful report should tell your team what was observed, why it matters, how to repair it and how to verify the repair. It should also state what was not tested and why. Request findings that preserve the distinction between transport reachability, authenticated access, authorised data operations and workflow effects. That precision makes the work usable by clinical application owners and engineers alike.

Use our hospital assessment scoping tool to describe the integration types, environment and safety constraints, or contact Atlant Security to agree a focused engagement. Start with a high-level description; exchange detailed architecture and test credentials only through the agreed secure process. The objective is a release decision supported by evidence, not a large list of generic API checks.

Reviewed 25 October 2026. Confirm the actual protocol version, implementation guide, product capabilities and supplier constraints when preparing the assessment. The linked FHIR R5 and SMART App Launch documentation describes specific standards versions; it should not be treated as evidence that your deployed EHR uses those versions or implements every described feature.

Published by Atlant Security. Sources, editorial policy and corrections.

PUT THE GUIDANCE TO WORK

Choose your next step.

LET’S START A CONVERSATION

Define the scope.
Take the next step.

Your systems, operating constraints and security objectives. A clear starting point for the test.

Discuss your pentest