← all articles

Building Safe Integration Test Environments for HL7 ADT and SIU Interfaces

Building Safe Integration Test Environments

Healthcare integration projects rarely fail because HL7 is difficult. They fail because organisations blur the line between production and testing.

One of the most common mistakes I see is attempting to validate mobile applications, workflows or downstream systems against live production interfaces. It seems convenient, but it introduces unnecessary risk, creates uncertainty about test results and often leads to compromises that become permanent architecture. A better approach is to build dedicated integration test environments that receive realistic HL7 traffic while remaining completely isolated from production clinical operations.

HL7 ADT and SIU interfaces are the backbone of many hospital systems. ADT messages drive patient demographics, admissions, transfers and discharges, while SIU messages manage appointments and scheduling. Nearly every downstream application depends on these feeds being accurate and timely.

When developing or validating a mobile application, however, the application rarely needs to communicate directly with production interfaces. What it needs is realistic data.

That distinction is important.

Too many projects solve testing by temporarily pointing production integrations at development systems or by asking integration teams to manually replay messages. Both approaches create operational overhead and increase the likelihood of configuration mistakes.

Instead, I favour an architecture that separates the concerns.

Production interfaces should continue serving production systems. Test interfaces should continue serving test systems. If testers require production-like datasets, replicate the processed information into dedicated test organisational units or dedicated test databases using an automated pipeline.

This approach has several advantages.

First, it protects clinical systems. No testing activity can accidentally interfere with production integrations because the interface routing never changes. Interface engines remain configured exactly as intended, reducing operational risk.

Second, the test environment becomes predictable. Every tester sees the same data, messages arrive in the same order, and the environment can be reset whenever required. Consistency is far more valuable than realism when investigating defects.

Third, automation replaces manual effort.

I've seen organisations spend hours every week manually copying patients, appointments or organisational data between environments. It works initially, but it never scales. As testing increases, the manual process becomes another operational dependency that delays every release.

If data needs to exist in multiple environments, automate it.

Whether that's a scheduled synchronisation process, an event-driven replication service or a message transformation pipeline depends on the organisation, but human intervention should be the exception rather than the operating model.

Support Multiple Synchronisation Endpoints

Another architectural decision worth making early is whether your mobile application should support multiple synchronisation endpoints.

Initially, there is often pressure to release quickly. Pointing every handheld device at a single server appears simpler and reduces development effort. For early proof-of-concepts, that's a perfectly reasonable compromise.

Long term, however, it becomes a limitation.

Enterprise applications should allow production, staging, UAT and dedicated customer validation environments to coexist. Selecting an environment should be a configuration decision, not something that requires recompiling or redistributing the application.

The operational benefits become obvious during customer acceptance testing. External stakeholders can validate functionality against realistic data without affecting production users, while developers continue working independently in development environments.

Preserve Your Routing Logic

Facility codes deserve similar attention.

Healthcare integrations frequently route messages based on facility identifiers. These codes determine where patients, appointments and clinical events belong. If your test environment ignores them or treats every message identically, your testing isn't representative of production.

Test environments should preserve these routing rules wherever possible. The more accurately organisational structures are represented, the earlier configuration issues are discovered.

One opinion I hold strongly is that interface testing should validate architecture just as much as functionality.

Many integration projects focus exclusively on whether messages are parsed correctly. That's only one part of the problem.

Questions such as these are equally important:

  • Can environments be isolated?
  • Can synchronisation occur automatically?
  • Can production remain untouched during validation?
  • Can new facilities be onboarded without redesigning interfaces?
  • Can multiple customers be tested simultaneously?

If the answer to any of these is no, the architecture needs more work.

Healthcare systems live for decades. The interfaces you design today will probably still exist after several generations of mobile applications have been replaced. Optimising for this week's release at the expense of long-term maintainability is almost always the wrong decision.

Finally, don't underestimate the value of realistic—but controlled—test data.

The objective isn't to perfectly mirror production. It's to create enough realism that workflows, synchronisation logic, barcode scanning, patient movements and scheduling can all be validated with confidence.

That's a much more achievable goal, and it's considerably safer.

The best healthcare integration environments are usually the least exciting. Messages arrive automatically, synchronisation happens without intervention, production remains untouched, and testers simply get on with their work.

When nobody is talking about the integration environment anymore, you've probably designed it well.

Matthew Ratcliffe, software developer and architect, Ballarat
Senior Software Engineer & Architect

20+ years across the technology stack — from greenfield builds to brownfield rescues. Based in Ballarat, VIC, focused on AI, healthcare and high-risk data systems. Full resume →

Share your thoughts