HL7 BAR_P12 Update Diagnosis/Procedure

HL7 message structure BAR_P12 groups and segments from HL7 v2.5.1 Hide structure

These are the generated groups and segments for the version selected at the top of the page. The article explains the workflow, and this panel follows the chosen HL7 version.

Message Structure

SegmentNameRequiredRepeatable
Message Header Yes No
Software Segment No Yes
Event Type Yes No
Patient Identification Yes No
Patient Visit Yes No
Diagnosis No Yes
Diagnosis Related Group No No
BAR_P12.PROCEDURE
Procedure group No Yes
Procedures Yes No
Role No Yes

BAR_P12 updates diagnosis and procedure information in account/billing context. It is more targeted than a broad account update: the business event is that diagnosis and/or procedure coding changed, and the receiver needs to apply that change cleanly.

This is another place where "send the new list" and "send a delta" must be negotiated. The reference guidance expects identifiers and action codes in the diagnosis and procedure segments so the receiver knows what to add, update, or delete.

A small BAR_P12 example

MSH|^~\&|CODING|CITYHOSP|BILLING|CITYHOSP|20260715121500||BAR^P12^BAR_P12|BAR120001|P|2.5.1 EVN|P12|20260715121400 PID|1||123456^^^CITYHOSP^MR||Smith^Jane^Anne^^Ms^^L||19800314|F||||||||||ACC000789^^^CITYHOSP^AN PV1|1|I|WARD1^101^1^CITYHOSP||||12345^Careful^Clara|||||||||||VN000345^^^CITYHOSP^VN DG1|1||I10^Essential hypertension^I10|||A DRG|001^Example medical DRG^L PR1|1||0WQF0ZZ^Repair abdominal wall, open approach^I10P|20260715100000

What systems do with it

The sender is usually coding, HIM, patient accounting, or an account-maintenance system. The receiver updates billing diagnosis and procedure records and may trigger claim edits, DRG/APC recalculation, reporting changes, or account review queues.

How to read the structure

The structure is focused: MSH, EVN, PID, required PV1, optional repeating DG1, optional DRG, and optional procedure groups with PR1 plus optional ROL. Optional OBX can carry supporting observations when profiled.

Implementation traps

The trap is ignoring update mode. If the receiver cannot tell which DG1 or PR1 repetition is new, changed, or removed, it may duplicate codes or leave stale diagnoses active. Make identifiers and action-code conventions explicit in the interface profile.

Do not use P12 for patient or visit demographic correction. If those fields changed, pair it with the right ADT update rather than making billing decipher the side effect.

Reference notes

The HL7 v2+ BAR_P12 page describes P12 as diagnosis/procedure update mode and says the identifiers and action codes in DG1 and PR1 should indicate which change is being applied.