Reference·HL7 v2·PD1
HL7 v2 Reference

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

Jul 28, 2026 · 6 min read

PD1 shows up in ADT messages as the segment that didn't fit in PID — primary care provider, whether the patient can be listed in the hospital directory, whether their record is flagged for extra privacy, and where they stand with the state immunization registry. It's short, optional in most implementations, and routinely skipped in test data even though every field on it drives a different downstream workflow.

Quick answer

PD1 is the Patient Additional Demographic segment in HL7 v2. It carries supplementary information that doesn't live in PID — the patient's primary facility and primary care provider, student and publicity flags, a privacy protection indicator, and immunization registry status. It appears in ADT messages and is read by directory services, care-coordination systems, and public health reporting feeds, not by core patient matching.

The fields that actually matter in practice

PD1-1
Living Dependency — coded indicator for arrangements like walks-with-assistance or medication dependency; sparsely used but occasionally referenced by care-management systems
PD1-3 →
Patient Primary Facility — identifies the facility or practice the patient is primarily associated with, distinct from the facility sending the current message
PD1-4 →
Patient Primary Care Provider Name & ID No. — the composite name and identifier of the patient's primary care physician, used to route referrals and care-team notifications
PD1-11 →
Publicity Code — a coded flag controlling whether the patient can be listed in facility directories or included in general publicity — the field behind every directory opt-out
PD1-12 →
Protection Indicator — a single Y/N flag marking the record for restricted handling, commonly used for VIP patients, employees, or anyone requesting extra confidentiality
PD1-16 →
Immunization Registry Status — a coded value reporting the patient's standing with a state or regional immunization information system

Example

Synthetic example Generated by Synthibase
PD1|||SYNTHIB COMMUNITY CLINIC^^12345|4521^WELLS^SARAH^^^DR|||||||01^ONE PER PATIENT^SYNTHIBLOCAL|Y|20260101|||A|20260115

A synthetic PD1 segment showing a primary facility, an assigned primary care provider, a publicity code, an active protection flag, and an immunization registry status. All names and identifiers are fabricated.

Where this trips people up

Because PD1 is optional in most implementation guides and rarely touches core clinical logic, test data generators frequently drop it from ADT messages entirely — which means the directory-listing, care-team-routing, and privacy-flag logic that reads PD1-11, PD1-4, and PD1-12 never gets exercised until a real VIP patient's chart shows up unprotected in a public directory query. The protection indicator in particular deserves its own test lane: it's a single character with outsized consequences, and a generator that only ever emits "N" (or leaves it blank) gives false confidence that restricted-record handling works.

How to Build a Synthetic Patient Registry for Healthcare Testing
HL7 ADT Messages: A01 through A08 Explained
Generate ADT test data that exercises every PD1 flag
Synthibase produces fully synthetic PD1 segments — varied primary care providers, publicity codes, protection flags, and immunization registry statuses — so your directory, care-routing, and privacy logic gets real test coverage before go-live.
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.