NEWFree ROI Calculators — quantify what prior auth and siloed data are costing your organization.Prior Auth ROI Siloed Data ROI
HL7 v2Data Type8 min read

HL7 PPN Data Type: Performing Person Time Stamp

The PPN (Performing Person Time Stamp) data type was introduced in HL7 v2.5 as a variant of XCN for fields that need to capture not only who performed an action but when they performed it. Structurally PPN mirrors XCN component-for-component, with one distinguishing addition: PPN.15 Date/Time Action Performed. It is used in fields where a downstream system must reason about timing — OBX-16 Responsible Observer (when the observer recorded the result), OBR-34 Technician (when the technician executed the test) — rather than simply identifying the practitioner.

Purpose

PPN exists because the question "who performed this?" almost always travels with "when did they perform it?" — and a pure XCN field cannot carry the timestamp. Before v2.5, profiles either invented separate sibling fields for the timestamp or overloaded XCN.19 Effective Date (which means something different — the validity of the identifier, not the action). PPN solves this by reserving PPN.15 as the action timestamp and renumbering the rest of the XCN tail accordingly. The identifier triple (PPN.1, PPN.9, PPN.13) and name parts (PPN.2 through PPN.6, PPN.22) behave exactly as in XCN.

Components

Source: HAPI HL7v2 v2.8.1 javadoc (PPN). Length is not published in v2.8.1 javadocs ().

CompNameSub-typeLengthReqDescription
PPN.1ID NumberstCThe performing person's identifier (NPI, internal staff ID, license number).
PPN.2Family NamefnOStructured surname (FN sub-type).
PPN.3Given NamestOFirst given name.
PPN.4Second And Further Given Names Or Initials ThereofstOMiddle name(s) or initial.
PPN.5Suffix (e.g. JR or III)stOGenerational suffix.
PPN.6Prefix (e.g. DR)stOHonorific prefix.
PPN.7Degree (e.g. MD)isBWithdrawn in v2.5; superseded by PPN.22 Professional Suffix.
PPN.8Source TablecweOHL70297 source-table code for PPN.1.
PPN.9Assigning AuthorityhdONamespace + OID that issued PPN.1.
PPN.10Name Type CodeidOHL70200 code (L=legal, D=display, etc.).
PPN.11Identifier Check DigitstOCheck digit for PPN.1.
PPN.12Check Digit SchemeidOHL70061 algorithm code.
PPN.13Identifier Type CodeidOHL70203 code (NPI, DEA, MD, etc.).
PPN.14Assigning FacilityhdOFacility that assigned PPN.1, when distinct from PPN.9.
PPN.15Date/Time Action PerformeddtmODistinguishing field. When this person performed the action that the carrying field describes.
PPN.16Name Representation CodeidOHL70465 character-set/alphabet code.
PPN.17Name ContextcweOCoded context in which the name is used.
PPN.18Name Validity RangestBWithdrawn (was DR). Use PPN.20/PPN.21 instead.
PPN.19Name Assembly OrderidOHL70444 code (G=given-first, F=family-first).
PPN.20Effective DatedtmOWhen this name/ID became valid.
PPN.21Expiration DatedtmOWhen this name/ID stops being valid.
PPN.22Professional SuffixstO"MD", "RN", "PA-C". Replaces withdrawn PPN.7.
PPN.23Assigning JurisdictioncweOJurisdiction that issued the identifier.
PPN.24Assigning Agency or DepartmentcweOIssuing agency within the jurisdiction.
PPN.25Security CheckstOCryptographic check value over the identifier.

Most-used components

  • PPN.1 ID Number — the performing person's directory key.
  • PPN.2 Family Name (FN) — structured surname.
  • PPN.3 Given Name — first name.
  • PPN.9 Assigning Authority — namespace + OID for PPN.1.
  • PPN.13 Identifier Type Code — categorizes PPN.1 (NPI vs internal vs license).
  • PPN.15 Date/Time Action Performed — the field that justifies choosing PPN over XCN. Without it, switch back to XCN.

Where it's used

  • OBX-16 Responsible Observer — in v2.7+ profiles that retyped from XCN to PPN, this carries the observer plus the timestamp the observation was made.
  • OBR-34 Technician — when the technician executed the diagnostic test (often distinct from OBR-7 Observation Date/Time, which is the specimen collection time).
  • OBR-35 Transcriptionist — when applicable in lab/imaging profiles that adopted PPN.
  • Any vendor-extended field where "who acted, and when" is the carried fact (donor-management, blood-bank, transfusion segments in some realm profiles).

PPN repeats wherever multiple performers acted on the same observation or order; receivers must handle multiple PPN occurrences separated by ~.

Version differences

  • v2.5 — PPN introduced as a sibling to XCN, with the new PPN.15 Date/Time Action Performed slot. PPN.7 Degree withdrawn at introduction; PPN.22 Professional Suffix added to replace it.
  • v2.6 — minor refinement of PPN.17 Name Context.
  • v2.7 — PPN.8 widened from IS to CWE. PPN.18 Name Validity Range withdrawn (use PPN.20/PPN.21). PPN.23 Assigning Jurisdiction, PPN.24 Assigning Agency or Department, PPN.25 Security Check added. Fields previously typed XCN (notably OBX-16) were retyped to PPN in v2.7+ message profiles.
  • v2.8 / v2.8.1 — no structural changes; HAPI v2.8.1 javadoc shows the same 25 components.

Common mistakes

  • Treating PPN as identical to XCN and dropping PPN.15. The whole point of PPN is the action timestamp; omitting PPN.15 wastes the type.
  • Putting the observation date/time (OBR-7, OBX-14) into PPN.15. PPN.15 is when the performer acted, not when the specimen was collected. These differ when results are interpreted hours after collection.
  • Confusing PPN.15 (action performed) with PPN.20 (identifier effective date). PPN.20 is identity metadata; PPN.15 is an event timestamp.
  • Sending a PPN with degree in PPN.7. PPN.7 has been withdrawn since v2.5 — put credentials in PPN.22 Professional Suffix.
  • Substituting XCN for PPN in v2.7+ profiles that mandate PPN. Receivers expect a 15th component of DTM type and may either reject or lose data when XCN arrives.

Examples

Minimal value

99812^SMITH^JANE

Populated value

99812^SMITH^JANE^^^DR^MD^L^MERCY&2.16.840.1.113883.19.5&ISO^L^^^^^20260610091500-0500

The first 14 components mirror XCN; PPN.15 (20260610091500-0500) is the timestamp the person performed the action.

Annotated breakdown

99812                                          PPN.1   ID Number
^SMITH                                         PPN.2   Family Name (FN)
^JANE                                          PPN.3   Given Name
^                                              PPN.4   Second Given
^                                              PPN.5   Suffix
^DR                                            PPN.6   Prefix
^MD                                            PPN.7   Degree (WITHDRAWN — leave empty in v2.7+)
^L                                             PPN.8   Source Table (CWE)
^MERCY&2.16.840.1.113883.19.5&ISO              PPN.9   Assigning Authority (HD)
^L                                             PPN.10  Name Type Code
^                                              PPN.11  Identifier Check Digit
^                                              PPN.12  Check Digit Scheme
^                                              PPN.13  Identifier Type Code
^                                              PPN.14  Assigning Facility (HD)
^20260610091500-0500                           PPN.15  Date/Time Action Performed (DTM) ← distinguishing

In-context excerpt — OBX-16 Responsible Observer with PPN

OBX|1|NM|718-7^Hemoglobin^LN||13.4|g/dL|12.0-16.0|N|||F|||20260610090000-0500|||99812^SMITH^JANE^^^DR^^L^MERCY&2.16.840.1.113883.19.5&ISO^L^^^NPI^^20260610091500-0500

OBX-14 says the specimen was observed at 09:00; PPN.15 in OBX-16 says Dr. Smith reviewed and signed off at 09:15.

In-context excerpt — OBR-34 Technician carrying when the tech ran the assay

OBR|1|ORD-7742|ACC-9921|24331-1^Lipid panel^LN||20260610080000|||||||||99834^OKONKWO^ADAEZE^^^^^L^MERCY&2.16.840.1.113883.19.5&ISO^L^^^NPI^^20260610083200-0500

Common pitfall snippet

99812^SMITH^JANE^^^DR^^L^MERCY&2.16.840.1.113883.19.5&ISO^L^^^NPI^^

A PPN with PPN.15 empty. The wire format is legal but semantically wasteful — the field is typed PPN precisely to carry the action timestamp. If timing genuinely isn't known, the source profile should specify XCN, not PPN with an empty PPN.15.

FHIR mapping

There is no per-datatype ConceptMap published in the v2-to-FHIR IG for PPN. In practice, mappers reuse the XCN-to-Practitioner mapping for components 1–14 and 16–25, and route PPN.15 to a period.start (or full period when the action is instantaneous, populating both start and end) on whatever participant element the parent field maps to — typically Observation.performer with an extension carrying the timestamp, or DiagnosticReport.resultsInterpreter.

PPNFHIR (Practitioner + performer context)
PPN.1Practitioner.identifier.value
PPN.2Practitioner.name.family
PPN.3Practitioner.name.given (first)
PPN.4Practitioner.name.given (additional)
PPN.9Practitioner.identifier.assigner
PPN.13Practitioner.identifier.type
PPN.15parent resource performer.period.start or effectiveDateTime extension
PPN.22Practitioner.qualification.code

Engine considerations

  • PPN.15 vs OBX-14/OBR-7: engines must keep PPN.15 distinct from the observation/specimen timestamps on the parent segment. Collapsing them loses the action time.
  • HD sub-components in PPN.9 and PPN.14: like XCN, both fields use & for HD's three sub-components; re-tokenizing with ^ corrupts the OID.
  • FN inside PPN.2: PPN.2 is FN-typed; compound surnames split into FN.1–FN.5 just as in XCN.2.
  • Withdrawn components: PPN.7 (since v2.5) and PPN.18 (since v2.7) remain wire-present. v2.7+ producers leave them empty.
  • Repetition: PPN repeats in OBX-16 when multiple observers signed off; preserve repetition order.

How Vorro parses and produces PPN

On inbound, Vorro materializes PPN as a Practitioner reference plus a captured action timestamp. PPN.1 + PPN.9 + PPN.13 form the identifier triple; PPN.15 is lifted onto the parent resource's performer.period (or, when the parent has no period slot, attached as a data-absent-reason-safe extension). PPN.2 is parsed as FN to preserve compound surnames.

On outbound, when the destination profile specifies PPN, Vorro requires the upstream resource to carry an action timestamp — if absent, we emit XCN instead and log a downgrade notice rather than send a PPN with an empty PPN.15. Professional suffix is always emitted in PPN.22, never PPN.7, for v2.5+ destinations.

Sources

← Back to HL7 v2 Guide

Ready to Integrate This Into Your Workflow?

Talk to a Vorro expert about implementing HL7 v2 in your specific environment.

Browse HL7 v2 Guides
HL7 PPN Data Type: Performing Person Time Stamp | Vorro Academy | Vorro