ADT Carries Identity, Not Clinical Data
The message tells downstream systems who the patient is and what is happening with their visit. Every clinical interface depends on that context being correct and current.
HL7 ADT integration builds the admission, discharge and transfer feeds that tell every downstream system where each patient is and who they are. The work covers trigger event handling across A01 to A62, patient merge logic including A40, master patient index reconciliation, acknowledgement and retry design, and validation against production message samples. A single ADT feed typically costs $15,000 to $30,000. ADT distribution across multiple downstream systems runs $30,000 to $70,000.
ADT is the interface everything else depends on. When a results feed files an observation against the wrong encounter, the fault is almost never in the results interface. It is in an ADT feed that missed a merge, processed events out of order, or quietly stopped. Taction has completed 250+ healthcare and EHR integrations since 2013, and ADT is the message family we work with most.

Our experts are ready to understand your business goals.






























































We build, remediate and support ADT feeds as fixed-scope engagements with a stated price and timeline. Scope is set after reviewing actual message samples from your environment, because ADT specifications and ADT production output routinely differ, and an estimate based on the specification alone will be revised during delivery. A Business Associate Agreement is executed before any work touches an environment containing protected health information.
A review of your existing feed, message samples, error queues and downstream reconciliation state, delivered as a written findings and remediation plan you can act on independently.
Trigger event handling, transformation, acknowledgement and retry logic, and routing to each downstream consumer, validated against captured production traffic before go-live.
One inbound feed fanned out to several downstream systems, each with its own filtering, transformation and error handling, managed centrally rather than duplicated per connection.
Reconstructing identity state where merges were missed or misapplied, then implementing the handling that prevents recurrence. Frequently the highest-value work we do on an existing estate.
Translating v2 ADT into FHIR Patient and Encounter resources for systems that expect a modern API rather than a message feed. See our healthcare integration solutions.
Queue depth, throughput and error rate monitoring with defined escalation, covered under our published Mirth Connect support tiers.
An ADT feed looks simple in a diagram and behaves badly in production. The message structure is standard, the trigger events are documented, and yet ADT is consistently the interface that causes the most downstream damage when it drifts. The reason is that ADT carries identity and encounter context rather than clinical content, so its failures do not surface as errors. They surface weeks later as a result filed against the wrong visit, a duplicate patient record, or a downstream system quietly holding a patient who was discharged in March.
The message tells downstream systems who the patient is and what is happening with their visit. Every clinical interface depends on that context being correct and current.
Messages arriving out of sequence produce state that is internally inconsistent. Handling ordering explicitly is what separates a feed that works from one that appears to.
There are more than fifty ADT trigger events and most integrations act on a subset. Deciding which to handle, and what to do with the rest, is an early design decision rather than an afterthought.
The same ADT stream feeds a lab system, a billing platform and a monitoring vendor, each interpreting it differently. One feed, several sets of expectations.
An unacknowledged message is an undelivered message. AA, AE and AR handling with retry logic and an inspectable error queue determines whether failure is visible or silent.
Centralizing ADT through an engine means transformation and routing live in one place rather than spread across point-to-point connections. We build this on Mirth Connect.
The HL7 v2 standard defines ADT trigger events from A01 through A62, though a working integration typically acts on a core subset and acknowledges the rest. In US hospital environments the events you will encounter within minutes of connecting are A01, A02, A03, A04, A08, A11, A12, A13, A28, A31 and A40. Everything else appears occasionally, in site-specific configurations, or not at all. Scoping should state explicitly which events are handled, which are acknowledged and ignored, and what happens to anything unexpected.
A01 admit, A04 register for outpatient and emergency visits, A05 pre-admit and A14 pending admit. The distinction between A01 and A04 is the one most frequently mishandled by downstream systems.
A02 transfer, A03 discharge and end of visit, plus A06 and A07 for status changes between outpatient and inpatient. Location changes drive bed management and device association.
A08 update patient information and A31 update person information, both extremely high volume. Systems that treat A08 as optional accumulate stale demographics within weeks.
A11 cancel admit, A12 cancel transfer and A13 cancel discharge. Ignoring cancellations leaves downstream systems holding a state that no longer reflects reality.
A28 add person, A29 delete person, A24 link and A37 unlink. These operate at person level rather than encounter level, which is a distinction that matters for identity handling.
A18, A30, A34, A35, A36 and A46 have been superseded by newer triggers. They still appear from older systems, and a feed should handle them rather than reject them outright. Our ADT event type guide covers the full set.
Merge is where ADT integration is genuinely difficult, and where the consequences of getting it wrong are clinical rather than technical. When a hospital discovers that one patient exists twice in its system, it merges the records and sends an A40. Every downstream system must then reconcile its own copy of that patient, reassign historical data and retire the surviving identifier correctly. Systems that acknowledge A40 without acting on it create a permanent divergence, and the divergence is invisible until someone looks at the wrong chart.
Merge patient by patient identifier list. The message carries both the surviving identifier and the one being retired, and the receiving system is expected to reassign everything associated with the retired identifier.
A39 merges at person level, A41 merges accounts, A42 merges visits, and A43 to A45 move rather than merge. Treating all of them as equivalent produces incorrect reassignment.
Many receiving systems have no merge capability at all. The interface must then decide between queuing for manual reconciliation or flagging the conflict, and doing neither is the common failure.
A merge is not just an identity update. Results, documents and encounters associated with the retired identifier must follow, or the record is split rather than merged.
Merges are sometimes performed in error and reversed. A feed with no path for unmerge leaves downstream systems permanently wrong after a correction upstream.
Periodic reconciliation against the source identity list surfaces merges that were acknowledged but not applied, which is otherwise undetectable from logs alone.
A master patient index is the authority on who a patient is across systems, and ADT is the mechanism that keeps it current. Where an MPI exists, ADT feeds must respect its identifier hierarchy rather than treating any single system’s identifier as canonical. Where no MPI exists, the ADT feed frequently becomes the de facto identity mechanism by accident, which works until the first merge or the first patient registered twice at two facilities. Establishing which system holds identity authority is a design decision, not a technical detail.
PID-3 carries an identifier list, each with its own assigning authority. Interfaces that read only the first identifier break as soon as a second facility joins the estate.
A facility medical record number and an enterprise identifier are different things. Confusing them is the root of a large share of duplicate-record problems in multi-site organizations.
Periodic comparison between downstream identity state and the source of truth, catching drift that no error log reports. This is the check most estates do not have.
Interfaces can surface probable duplicates as they arrive rather than waiting for a data quality project to find them months later.
Trauma registrations, unidentified patients and downtime records all enter the feed and later resolve to a real identity. The feed needs a defined path for this.
Patients treated at more than one organization carry no shared identifier. Cross-organization matching is a different problem and should not be solved inside an ADT interface.
ADT interfaces pass testing and fail in production more often than any other message family, because test extracts are clean and real registration behavior is not. Trauma cases, downtime entries, corrected records and out-of-sequence events do not appear in a sanitized sample set. We test against captured production traffic and deliberately exercise the paths that are normally assumed rather than verified, because an interface that has never seen a merge is an interface whose merge handling is unproven.
Captured production traffic rather than vendor examples, because the deviations that break interfaces are exactly the ones sanitized samples remove.
Malformed messages, unknown trigger events and unreachable endpoints injected on purpose, to confirm the interface fails loudly rather than silently.
Replaying events out of sequence and resending duplicates, because both happen in production and neither should corrupt downstream state.
Merge, move and unmerge exercised end to end across every downstream consumer, since this is the scenario least likely to have been tested and most likely to cause clinical harm.
Sustained throughput at expected peak, because a feed that keeps up at average volume and falls behind at admission peak is a feed that will fall behind.
Message-level comparison between source and destination, documented so clinical and compliance stakeholders approve go-live on evidence rather than assurance.
ADT problems cluster into a small number of recognizable patterns, and in newly assessed environments we usually find several of them at once. What they share is invisibility: none produces an obvious error, and all of them are discovered downstream, often by a clinician rather than by IT. Knowing the patterns is most of the diagnosis, which is why an assessment on an existing feed routinely returns findings within the first day.
A channel stops and nothing alerts, because monitoring watches server uptime rather than message flow. Downstream systems simply stop learning about new patients.
The most damaging failure and the hardest to detect. Downstream identity diverges permanently from the source, and nothing in any log reports it.
Updates dropped or deprioritized, producing demographics that are correct at registration and progressively wrong afterward.
A11, A12 and A13 unhandled, leaving downstream systems holding admissions, transfers and discharges that were reversed upstream.
PID-3 parsed as a single value rather than a list, which works at one facility and breaks the moment a second assigning authority appears.
Failed messages accumulating in a queue that has no alerting and no owner, discovered during an unrelated investigation months later.
ADT work is priced by scope rather than by hour. The drivers are the number of downstream consumers, whether merge and identity handling are in scope, how cleanly the source system follows specification, and how deep the validation requirement runs. Remediating an existing feed is frequently cheaper than organizations expect and delivers more immediate value than a new build, because the highest-impact findings usually exist already and are simply unseen.
The inbound feed is built once. Each downstream consumer adds its own filtering, transformation, error handling and testing, and that is where effort accumulates.
Implementing merge correctly across every downstream system, with reconciliation, is a meaningful share of any full ADT programme. Skipping it is why estates need remediation later.
Systems that follow the specification cleanly are cheap. Systems adding Z-segments, deviating under load or sending inconsistent identifiers are where the hours go.
Engineering test evidence and clinically reviewed message-level reconciliation cost differently for identical engineering. Agree the requirement before scoping, not after.
Most drifting feeds can be remediated rather than replaced. We assess before recommending a rebuild, because rebuilding a working feed is rarely the cheapest correct answer.
Our cost calculator gives a starting estimate, and a feed assessment produces a firm number.
Cloud infrastructure, engine licensing and third-party connectors are quoted separately from engineering effort and never absorbed silently into a build estimate.
An ADT interface carries admission, discharge and transfer messages from a source system, usually the EHR or hospital information system, to every downstream system that needs to know patient identity and encounter status. It is the foundation most other clinical interfaces depend on.
The HL7 v2 standard defines ADT trigger events from A01 through A62. Most production integrations act on a core subset: A01, A02, A03, A04, A08, A11, A12, A13, A28, A31 and A40, acknowledging the remainder without processing them.
A40 instructs a receiving system to merge two patient records identified in the patient identifier list, retiring one identifier and reassigning its associated data to the surviving one. Handling A40 correctly across every downstream system is the hardest part of ADT integration.
A single ADT feed from one source to one destination typically runs $15,000 to $30,000. Distribution across multiple downstream systems runs $30,000 to $70,000. Remediating an existing feed usually runs $9,000 to $25,000.
Yes. A feed assessment reviews message samples, error queues and downstream reconciliation state, and typically returns findings within the first day. Silent failures are the most common finding and rarely appear in any log.
Yes. HL7 v2 ADT maps to FHIR Patient and Encounter resources for systems expecting a modern API. Identity handling still has to be resolved correctly, because the mapping does not solve merge semantics on its own.
Send us your source system, the downstream systems consuming the feed, and what is going wrong. You will speak with an HL7 interface engineer rather than a salesperson. If your feed can be remediated rather than rebuilt, we will tell you, and we do not quote a build before reviewing real message samples. Start through our contact form.
Your email address will not be published. Required fields are marked *
Our expert reaches out shortly after receiving your request and analyzing your requirements.
If needed, we sign an NDA to protect your privacy.
We request additional information to better understand and analyze your project.
We schedule a call to discuss your project, goals. and priorities, and provide preliminary feedback.
If you're satisfied, we finalize the agreement and start your project.