Reference·HL7 v2·PV2
HL7 v2 Reference

Testing HL7 v2 PV2: The Fields Your System Actually Needs to Handle

Jul 27, 2026 · 6 min read

PV2 shows up in almost every ADT feed your integration team touches, and almost nobody can rattle off what half its fields mean. That gap is exactly where go-live defects hide.

Quick answer

PV2 (Patient Visit - Additional Information) is the segment that carries the supplementary visit details PV1 has no room for - things like the accommodation requested, why the patient was admitted, expected admit and discharge windows, accident details for claims, and the patient status code a downstream system uses to drive bed and billing workflows. It rides along with PV1 in ADT and related messages and is almost always optional, which is exactly why real-world implementations disagree so often about which fields they actually populate.

The fields that actually matter in practice

PV2-2 →
Accommodation Code — room/bed class requested (private, semi-private, ward) - drives room assignment logic and charge tiers in test scenarios
PV2-3 →
Admit Reason — free-text or coded reason for the encounter - the field clinical reviewers and QA teams read first when triaging a bad test case
PV2-7 →
Expected Admit Date/Time — planned admission timestamp for scheduled encounters - critical for pre-admission and bed-planning test flows
PV2-8 →
Expected Discharge Date/Time — planned discharge timestamp - feeds length-of-stay estimates and utilization review logic
PV2-12 →
Accident Date/Time — when populated, signals an injury-related encounter and typically triggers additional claims and liability fields downstream
PV2-24 →
Patient Status — site-defined status code (active, pending, discharged, etc.) that many interfaces use as a state-machine trigger - a frequent source of mapping bugs

Example

Synthetic example Generated by Synthibase
PV2||A^SEMI-PRIVATE^HL70129|R65.2^ABDOMINAL PAIN RLQ^I10||||20260726073000|20260729120000||||20260724150000||||||||||||1^HOME^HL70112

Synthetic PV2 segment for a fictional appendicitis admission - accommodation, admit reason, expected admit/discharge window, an accident timestamp, and a patient status code, with unused fields left empty.

Where this trips people up

Because nearly every PV2 field is optional, production feeds from different source systems populate wildly different subsets of it. A test suite built against one vendor's PV2 habits will happily pass in staging and then choke the moment a second source system sends a message with, say, Patient Status populated in a code system nobody mapped. The fix isn't exhaustive field coverage - it's deliberately generating PV2 variants that mirror the actual diversity of your upstream sources, including the ones that leave a field blank when you expected a value.

HL7 ADT Messages: A01 through A08 Explained
Regression Testing for EHR Upgrades: A Complete Guide
Stop hand-crafting PV2 test messages
Synthibase generates realistic, standards-shaped HL7 v2 test data - including the PV2 field combinations your real interfaces actually send - so your test suite catches mapping bugs before go-live, not after.
Start free trial →
This page is written independently by Synthibase for testing and informational purposes. It is not an official publication of HL7 International or X12/Washington Publishing Company, and is not a substitute for reviewing the official standard or your trading partner's companion guide. See our Terms of Service for full legal terms.