HL7 & FHIR

Specialty Pharmacy Integration: The Nine Handoffs Behind One Patient Getting a Drug

Specialty Pharmacy Integration: The Nine Handoffs Behind One Patient Getting a DrugCC

The short version

Getting one specialty patient from referral to first fill crosses roughly nine handoffs and four standards — HL7 v2 and FHIR for clinical, X12 for eligibility and claims, NCPDP SCRIPT for prescribing, and flat files or portals for everything the standards never covered. The integration failures that cost the most are rarely outages: they are silent stalls, where a case sits waiting on a response that will never arrive because nothing in the estate is watching for absence. Any modernisation of a hub or specialty pharmacy platform has to start from the case, not the interface list, because the interfaces are individually simple and it is the correlation across them that is hard.

Integration estates in specialty pharmacy get described by their interface count. Forty inbounds, sixty outbounds, a dozen partners. That description is accurate and it is the wrong unit, because it hides the thing that actually makes this domain difficult.

A retail prescription is a transaction: it arrives, it is filled, it closes, in minutes. A specialty prescription is a case. It opens at referral and stays open for days or weeks while benefits are checked, prior authorisation is pursued, financial assistance is arranged, the patient is trained, and only then is anything dispensed. Then it stays open again, for refills and adherence, for as long as the therapy runs.

Integration in that world is not moving messages. It is keeping one case coherent across nine systems that each think they own it.

01 / The path


Referral to first fill, handoff by handoff

1 · referral intakefax · portal · SCRIPT2 · patient matchingno shared identifier3 · benefits checkX12 270/271 · seconds4 · prior authorisation278 · portal · fax5 · financial assistanceno standard exists6 · clinical reviewinternal · human7 · schedule shipmentcold chain · carrier8 · dispense & claimNCPDP · 837 / 8359 · adherence & refillrecurring · for yearsone case — open from step 1 to step 9, which is weeks, then open again for yearsevery box is a place the case can stop moving without anything raising an error
Nine handoffs, four standards, and at least two steps with no standard at all. Individually each interface is unremarkable. The difficulty is that all nine describe the same case and none of them share an identifier for it.

Two observations that shape everything downstream of this diagram.

First, the standards do not cover the whole path. X12 handles eligibility and claims well. NCPDP SCRIPT handles prescribing. HL7 and FHIR handle clinical data. Financial assistance, hub enrolment, nurse-education scheduling and patient consent are handled by flat files, portals and email, because no standard was written for them and the programmes change faster than standards get ratified.

Second, the timescales are wildly different. Step 3 is a synchronous request that fails if it takes longer than a few seconds. Step 4 can take days and involves a human at the payer. An estate has to hold both without one starving the other — which is a platform question with real consequences.

02 / The expensive failure


Nothing broke. The case just stopped.

Ask where the integration risk is and most teams describe an outage. Outages are loud, alarmed, and resolved within the hour.

The failure that costs money and delays therapy is quieter:

A prior authorisation was submitted. No response came back. Nothing failed — a response simply never arrived, and no system was watching for its absence.

The most expensive integration failure in specialty pharmacy

Everything worked. The message went out, the transport succeeded, the log shows a clean send. The case sits in “submitted” until a human notices — which might be at the weekly review, or when the patient calls to ask why they have not received their medication.

This is a structural gap, not a bug. Integration platforms are built to detect failure. Almost none are built to detect absence. And in a case-based domain, absence is the dominant failure mode.

SILENT 01

The response that never came

Prior auth, benefit verification, assistance enrolment. Anything asynchronous with an external party and no acknowledgement contract. Detection requires something holding an expectation with a deadline on it — which is orchestration state, not messaging.

SILENT 02

The patient who matched wrongly

No shared identifier across referral source, hub, dispensing system and payer means matching on demographics. A wrong match does not error — it produces a confidently incorrect case, and it is found later by a human noticing something odd.

SILENT 03

The file that arrived empty

An assistance-programme file that lands on schedule with a header and no rows. Transport succeeded, format valid, zero records. Everything downstream behaves exactly as if there were genuinely nothing to process.

SILENT 04

The status update nobody consumes

A partner starts sending a status the estate does not map, so it is ignored. Six months later somebody asks why the hub’s view of a case disagrees with the pharmacy’s, and the answer is an unmapped field nobody was alerted about.

The unifying property: every one of these produces a clean log. Any modernisation that improves error handling without adding expectation tracking will make the loud failures better and leave the expensive ones exactly as they are.

03 / What to do about it


Design for absence, not just for error

Pattern What it does Where it applies
Expectation with a deadline When an outbound request is sent, record what is expected back and by when. Absence at the deadline raises a work item, exactly as an error would. Every asynchronous external exchange — prior auth first.
Case-level correlation key One identifier that travels with the case across all nine steps, mapped to each system’s local identifier at the boundary rather than assumed to be shared. The whole path. This is the single highest-value thing to establish, and it is usually retrofitted painfully.
Volume expectations on recurring files A scheduled file that normally carries hundreds of rows and arrives with zero is an alert, not a successful run. Every scheduled inbound from a partner or programme.
Explicit unmapped-value handling An inbound value the estate does not recognise routes somewhere a human sees it, rather than being dropped as a default case. Status codes and reason codes especially — they change without notice.
Case view, not interface view An operational screen showing where a case is across all nine steps, rather than per-interface logs a person has to join mentally. Operations. This is what turns four hours of investigation into four minutes.

None of these are exotic and none of them are free. The reason they are so often missing is that each one is easy to defer during a build and expensive to retrofit afterwards — particularly the correlation key, which touches every interface once it is introduced.

04 / Modernising it


Start from the case, not the interface list

When one of these estates is modernised — and the trigger is usually something else entirely, a platform going end of life or an ERP programme — the instinct is to inventory the interfaces and migrate them in order of size.

That produces a technically correct migration that loses the thing that mattered. The interfaces are individually simple. The correlation across them is the asset, and it is largely undocumented, living in orchestration logic and in the heads of two or three people.

SEQUENCE 01

Map the case before the interfaces

Walk one real referral end to end and write down every system it touches, every identifier it acquires, and every point at which a human intervened. Do it three times with three different therapy types. That document does not exist anywhere today and it is worth more than the interface inventory.

SEQUENCE 02

Migrate by case stage, not by interface size

Move a coherent slice — everything involved in benefits and prior auth, say — so that one stage of the case runs entirely on the new platform while the rest continues on the old. Migrating the two largest interfaces first splits a case across platforms, which is the worst intermediate state available.

SEQUENCE 03

Prove it on the therapy with the fewest partners

Not the highest volume. The first cutover should have the smallest number of external parties who can be surprised, because every external party is a test cycle you do not control.

SEQUENCE 04

Run parallel long enough to cross a month-end

Reconciliation, remittance and reporting cycles are monthly. A parallel run that ends before month-end has not tested the part of the estate finance cares about most.

05 / Scope


What this post does not cover

06 / Next


Walk one referral

Before any platform conversation, take one real case from referral to first fill and write down what happened at each of the nine steps — including the parts where somebody picked up a phone. Most teams find at least two handoffs they did not know were manual, and at least one expectation nothing in the estate is tracking.

We have run healthcare integration in production for twenty years — HL7, X12 and payer connectivity at volume — and we are Microsoft V-TSP recognized for BizTalk Server. If you are modernising a hub or specialty pharmacy estate, the assessment starts from the case rather than the interface list.
Call (678) 203-0800.

Talk to an integration architect

Frequently asked questions

What makes specialty pharmacy integration different from retail pharmacy?

A retail prescription is a transaction that opens and closes in minutes. A specialty prescription is a case that stays open for days or weeks while benefits are verified, prior authorisation is pursued, financial assistance is arranged and the patient is trained — and then stays open again for refills and adherence for as long as the therapy runs. The integration problem is not moving messages; it is keeping one case coherent across nine systems that each hold their own view of it.

Which standards are involved between referral and first fill?

Four, plus the gaps. X12 for eligibility (270/271), prior authorisation (278) and claims (837/835); NCPDP SCRIPT for electronic prescribing; HL7 v2 and FHIR for clinical data. Financial assistance, hub enrolment, nurse-education scheduling and patient consent typically run on flat files, portals and email, because no standard was written for them and the programmes change faster than standards are ratified.

What is the most expensive integration failure in a patient hub?

Silence, not an outage. A prior authorisation is submitted, no response ever comes back, nothing errors, the log shows a clean send, and the case sits in ‘submitted’ until a human notices — sometimes when the patient calls to ask why their medication has not arrived. Integration platforms are built to detect failure; very few are built to detect absence, and in a case-based domain absence is the dominant failure mode.

How do you detect a response that never arrives?

By recording an expectation with a deadline whenever an outbound request is sent — what is expected back, and by when — so that absence at the deadline raises a work item exactly as an error would. That requires orchestration state rather than messaging alone, which is why it is one of the first things to check when evaluating a replacement platform.

Why does patient matching cause silent errors?

Because there is no shared identifier across the referral source, the hub, the dispensing system and the payer, so matching is done on demographics. A wrong match does not raise an error — it produces a confidently incorrect case that behaves normally until a human notices something inconsistent. Establishing one case-level correlation key, mapped to each system’s local identifier at the boundary, is the highest-value structural fix and the most painful one to retrofit.

How should a specialty pharmacy estate be migrated?

By case stage rather than by interface size. Move a coherent slice — everything involved in benefits verification and prior authorisation, for example — so one stage of the case runs entirely on the new platform while the rest continues on the old. Migrating the two largest interfaces first splits a single case across two platforms, which is the worst available intermediate state. Prove the first cutover on the therapy with the fewest external partners, and run parallel long enough to cross a month-end so the reconciliation and remittance cycles are actually tested.

What should we document before a modernisation starts?

Walk one real referral from intake to first fill and record every system it touches, every identifier it acquires, and every point where a human intervened — then repeat it for three different therapy types. That document usually does not exist anywhere, and it is worth more than the interface inventory, because the interfaces are individually simple and the correlation across them is the asset.

Jorge Pastorini · Cerebrum City

Cerebrum City is a Microsoft V‑TSP–recognized BizTalk specialist in Atlanta, Georgia, with two decades running BizTalk Server in enterprise production for clients including Humana, Deloitte, JetBlue, and U‑Haul.

Courtesy assessment

Want this mapped against your BizTalk estate?

We inventory your ports, orchestrations, maps, and adapters, flag the interfaces most likely to break, and hand back a staged Azure roadmap. No obligation.

Keep reading

All insights →

Ready to modernize your stack?

From integration pioneers to cloud-native experts — start with a courtesy assessment and we’ll map the fastest path to a modern architecture.