HL7 PPV messages return care-plan goal records in reply to a patient-goal query. A PPV message is the responding system's authoritative answer to a query for a patient's goals: it acknowledges the query, reports whether matching goals were found, and then delivers the current goal detail for each matching goal. The PPV message is sent from the system that holds care-plan goals back to the application that asked for them. This page explains what a PPV message represents, the trigger event that carries it, every segment the message can contain and what each one holds, and how a PPV goal response relates to FHIR. Sample content is constructed for illustration with fictional identifiers.
What a PPV message represents
A PPV message — PPV stands for Patient Goal Response — is the response to a patient-goal query, returning care-plan goal records for a patient. Where a PGL message unsolicitedly notifies receivers that a goal has been added, updated, or deleted, a PPV is a solicited, correlated response: it exists only because a patient-goal query was sent first, and its contents are bounded by the goals that matched the query. The core of the response is the GOL segment, which carries the goal data for each matching goal: the action, the action datetime, the goal type and instance identifiers, the lifecycle status, and the target datetime by which the goal is expected to be achieved.
The sender is the system that holds care-plan goals — typically a care-plan management system or an EHR clinical documentation module — and the receiver is the application that originated the query, such as a case-management tool, a care-coordination platform, or an integration engine relaying the response. The query acknowledgement is carried by the MSA and QAK segments, which separate transport-level acceptance of the message from the query outcome. A single PPV message can return goals for one or more patients, each in its own PATIENT group, and several goals per patient, so one query and one response can reconcile an entire goal set in a single round trip.
When a PPV message is sent
A PPV message is sent by the responding system in direct reply to a patient-goal query. It is never sent unsolicited. Common scenarios that trigger the exchange include: a case-management application loading the current goal set for a patient on chart open, a care-coordination platform reconciling its goal records against the source of truth after an interface outage, or an analytics process pulling active goals for a cohort of patients on demand. Each message carries one or more PATIENT groups, each with one or more GOAL groups, so a single transmission can return the full set of matching goals.
Trigger event
The PPV message type carries a single trigger event:
PPV^PCA– Patient goal response, replying to a patient-goal query.
Because PPV has one trigger event, the receiver's handling turns on the query acknowledgement code in QAK — OK for matches found, NF for no records found, AE for application error, and AR for query rejected — and on the goal detail in GOL within each GOAL group, rather than on the trigger code in MSH-9 alone.
Integration topology
The diagram shows the goal-holding system returning a goal response through the integration engine to the application that originated the query.
{{diagram: querying system → patient-goal query → integration engine → care-plan system → PPV^PCA → integration engine → querying system}}
Typical senders: care-plan management system, EHR clinical documentation module, or any application that holds patient goals and supports the patient-goal query-response pair.
Typical receivers: case-management tool, care-coordination platform, clinical analytics, or integration engine relaying the response to the originating querier.
Direction: response leg of a request–response exchange. The care-plan system sends PPV only after receiving a patient-goal query; traffic is bidirectional within a single logical transaction.
Segments in a PPV message
The PPV_PCA message is structured in layers. A required outer shell — MSH, MSA, and optional repeating ERR — acknowledges the query and reports any errors. A required QAK signals the query outcome and a required QRD, with an optional QRF, echoes the original query definition. Then a repeating PATIENT group carries one PID per patient, followed by a repeating GOAL group — one per matched goal — that opens with GOL and can include notes, variance, role, problem, observation, and order sub-groups. Cardinality follows HL7 notation: [X] optional, {X} repeating, [{X}] optional and repeating; a bare code is required. Each segment code links to its canonical field-by-field reference.
| Segment | Description |
|---|---|
MSH | Message Header. Opens every PPV message. It names the sending and receiving applications and facilities, stamps the creation time, declares the trigger event in MSH-9 (PPV^PCA), carries the message control id in MSH-10, and pins the HL7 version. Receivers route on MSH-9 and deduplicate on MSH-10. |
MSA | Message Acknowledgement. Required acknowledgement segment that echoes the query message's control id from MSH-10 in MSA-2 and carries the acknowledgement code — AA for accepted, AE for application error, AR for rejected — in MSA-1. Separates transport-level acceptance of the message from the query outcome reported in QAK. |
[{ERR}] | Error. Repeating error detail segment, populated when the acknowledgement code in MSA-1 is AE or AR. Carries a structured error code, severity, and location pointing to the field or segment that caused the problem. Optional and repeating to allow multiple errors to be reported in a single response. |
QAK | Query Acknowledgement. Reports the outcome of the query itself, independent of the transport acknowledgement in MSA. QAK-2 carries the query response status: OK — records found and returned; NF — no records found matching the query criteria; AE — application error processing the query; AR — query rejected. Receivers should check QAK-2 before processing the PATIENT groups, since a response with NF or AE contains no goal data. QAK-1 echoes the unique query id from the originating query, providing the correlation key for in-flight queries. |
QRD | Original Query Definition. Echo of the QRD from the originating patient-goal query. The responding system returns it unchanged so the querier can confirm which query this response answers. Contains the query date and time in QRD-1, the unique query id in QRD-4, and the who subject filter in QRD-7. Required. |
[QRF] | Query Filter. Echo of the optional QRF from the originating query, when one was supplied. Carries the filtering parameters that narrowed the query — date ranges, status filters, or other qualifiers — returned unchanged so the querier can confirm the criteria the response was bounded by. Optional. |
[{ PATIENT group }] | Repeating PATIENT group. The repeating outer container that wraps all matching goal data. One PATIENT group is present per patient whose goals matched the query. When QAK-2 is NF or AE, no PATIENT groups appear. |
PID | Patient Identification. Opens each PATIENT group and identifies the patient whose goals follow — the identifier list in PID-3, the name in PID-5. Required within the PATIENT group; one PID appears per patient. |
[{NTE}] | Notes and Comments. Patient-level notes that apply to the patient as a whole, following PID and separate from the goal-level notes carried inside the GOAL group. Optional and repeating. |
GOL | Goal Detail. The core of the GOAL group and the authoritative record of the goal as returned. GOL-1 carries the action code; GOL-2 is the action datetime. GOL-3 carries the goal ID as a coded element identifying the type of goal. GOL-4 is the goal instance ID, uniquely identifying this specific goal for this patient. GOL-10 is the goal lifecycle status (e.g., proposed, active, achieved, abandoned). GOL-12 is the goal target datetime — the date by which the goal is expected to be reached. Required; the GOAL group repeats once per returned goal. |
[{NTE}] | Notes and Comments. Clinical notes relative to the goal, following GOL. Optional and repeating. |
[{VAR}] | Variance. Records deviations from the expected care plan, with a variance code and an originating organisation. Optional and repeating. |
[{ROL}] | Role. Identifies care-team members associated with the goal and the role each plays (e.g., goal owner, responsible clinician). Optional and repeating. |
[{PRB}] | Problem Detail. Opens the optional PROBLEM sub-group. Links a clinical problem that this goal addresses back to its source on the problem list. Repeating — a goal may address more than one problem. Optional. |
[{NTE}] | Notes and Comments. Notes relative to the linked problem. Optional and repeating; appear within the PROBLEM sub-group. |
[{VAR}] | Variance. Variance records for the linked problem. Optional and repeating; appear within the PROBLEM sub-group. |
[{ROL}] | Role. Care-team roles associated with the linked problem. Optional and repeating; appear within the PROBLEM sub-group. |
[{OBX}] | Observation/Result. Goal-related observations within the PROBLEM sub-group — for example, the observation value that prompted the goal. Optional and repeating. |
[{NTE}] | Notes and Comments. Notes relative to the observation in the PROBLEM sub-group. Optional and repeating. |
[{OBX}] | Observation/Result. Opens the optional OBSERVATION sub-group — goal-level observations outside the PROBLEM sub-group, such as quantitative targets, assessment scores, or other goal-related measurements. Optional and repeating. |
[{NTE}] | Notes and Comments. Notes relative to the goal-level observation. Optional and repeating; appear within the OBSERVATION sub-group. |
ORC | Common Order. Opens the optional ORDER sub-group. Links an order placed to help achieve the goal — a referral, a lab order, or a therapy order — to the goal itself. Optional; the ORDER group repeats once per linked order. |
[OBR] | Observation Request. The observation request for the linked order — the service being ordered to support goal achievement. Optional within the ORDER sub-group. |
[{NTE}] | Notes and Comments. Notes relative to the linked order. Optional and repeating; appear within the ORDER sub-group. |
[{VAR}] | Variance. Variance records for the linked order. Optional and repeating; appear within the ORDER sub-group. |
[{OBX}] | Observation/Result. Results or observations associated with the linked order, carrying findings relevant to goal progress. Optional and repeating; appear within the ORDER sub-group. |
[{NTE}] | Notes and Comments. Notes relative to the order-level observation. Optional and repeating; appear within the ORDER sub-group. |
[ ] = optional, { } = repeating
The PATIENT group repeats once per matching patient, and the GOAL group within it repeats once per matching goal, so a single PPV message can return an entire goal set across multiple patients in one response. The canonical segment pages carry the full field-by-field detail.
Sample PPV message
Note. Constructed for illustration. Patient identifiers, goal identifiers, dates, and names are fictional.
MSH|^~&|CAREPLAN|MERCYGEN|CASEMGMT|MERCYGEN|20260604093512||PPV^PCA^PPV_PCA|MSG00061|P|2.5.1
MSA|AA|MSG00060
QAK|QRY00044|OK
QRD|20260604093000|R|I|QRY00044|||1^RD|MR98765^^^MERCYGEN^MR|GOL
PID|1||MR98765^^^MERCYGEN^MR||SMITH^MARY^A||19650315|F
GOL|AD|20260601083000|00001^Reduce systolic blood pressure to <130 mmHg^L|GOAL-2026-0042|||||active^Active^L|20260901
NTE|1||Goal set following hypertension review on 2026-06-01.
ROL|1|AD|GOWN^Goal Owner^HL70443|PROV01^CHEN^ALICE^^^^MD
OBX|1|NM|55284-4^Blood pressure systolic^LN||158|mm[Hg]|<130||||F|||20260601
What this sample shows
The PPV^PCA in MSH-9 marks a patient goal response. The MSA carries acknowledgement code AA and echoes the originating query's control id MSG00060 in MSA-2, confirming the query was accepted. The QAK echoes query id QRY00044 in QAK-1 and reports OK in QAK-2, indicating that matching goals were found. The QRD is returned unchanged from the originating query, confirming which query this response answers and which patient was requested (MR98765). The PID identifies the patient — medical record number MR98765, Mary A. Smith — opening the PATIENT group. The GOL returns the goal: GOL-3 carries the coded goal type (reduce systolic blood pressure to below 130 mmHg); GOL-4 is the unique goal instance ID GOAL-2026-0042; GOL-10 sets the lifecycle status to active; and GOL-12 sets the target date to 1 September 2026. The NTE following GOL adds a clinical note, the ROL identifies the goal owner, and the OBX carries the baseline systolic reading of 158 mmHg associated with the goal.
Working with PPV messages
GOL is the goal answer
The querier's question — what goals does this patient have? — is answered by the GOL segment in each GOAL group. Read GOL-4 (goal instance ID), GOL-10 (lifecycle status), and GOL-12 (target datetime) first; everything else in the GOAL group provides supporting context. Map the lifecycle status in GOL-10 to the corresponding state in the querier's care-plan model before processing, rather than comparing raw strings at the point of use.
Check QAK-2 before processing PATIENT groups
QAK-2 tells the querier whether the query matched anything. A response with NF (no records found) contains no PATIENT or GOAL groups, and attempting to parse for them returns empty rather than an error — which is indistinguishable from a successful empty result unless QAK-2 was checked first. Process QAK-2 before descending into the PATIENT group, and distinguish NF (the patient has no matching goals) from AE (the responding system encountered an error trying to look them up).
Correlate on QAK-1 and MSA-2
Two correlation keys are present in every PPV. MSA-2 echoes MSH-10 of the originating query and confirms which specific query message this response acknowledges. QAK-1 echoes the query id from QRD-4 of the originating query and is the reliable business-level correlation key when multiple outstanding queries may be in flight simultaneously. Use both: MSA-2 for transport-level matching and QAK-1 as the primary key for tying the response to the querier's pending query state.
Use GOL-4 to reconcile against existing goals
When a PPV returns the current goal set for a patient, the goal instance ID in GOL-4 is the stable identifier that lets the querier match each returned goal to an existing record. Reconcile on GOL-4 rather than position within the message — the responding system may return goals in any sequence, and a goal absent from a full-set response should be treated as no longer active rather than silently retained.
Vendor variance. The PROBLEM, OBSERVATION, and ORDER sub-groups are all optional, and their presence varies widely by sender. Some care-plan systems return only
GOLwith no sub-groups; others always attach linked problems viaPRBor baseline observations viaOBX. Confirm a partner's field and sub-group usage against their interface specification rather than assuming the base standard.
FHIR equivalent
A patient goal corresponds to the FHIR Goal resource, with the patient as a Patient resource and, for a messaging exchange, a MessageHeader at the head of a Bundle. A PPV response — a set of goals returned for a patient — conceptually maps to a FHIR Bundle of Goal resources.
There is, however, no published mapping to lean on. The HL7 v2-to-FHIR Implementation Guide provides no message map for PPV_PCA and no ConceptMap for the GOL segment — the patient-care message family (PGL, PPV, PPG, PRR) is not covered by the current IG. A FHIR Goal produced from a PPV message is therefore mapped manually, taking the goal code, lifecycle status, target date, and subject reference from GOL, and deriving linked Condition resources from any PRB segments present. In a FHIR exchange, the equivalent of a PPV is a Bundle of Goal resources returned in response to a RESTful search — for example, GET /Goal?patient=MR98765 — with each resource's lifecycleStatus reflecting the current state.
Common pitfalls
Pitfall. Processing PATIENT groups when QAK-2 is NF or AE. When no goals match the query or the responding system reports an error, no PATIENT groups are present; a parser that skips
QAK-2and proceeds directly to GOAL-group parsing silently produces an empty result set rather than raising an alert for a failed or unmatched query.
Pitfall. Discarding the goal instance ID in
GOL-4. WithoutGOL-4as the stable identifier for a goal, returned goals cannot be matched to the correct existing goal record during reconciliation; duplicate or orphaned goal entries result.
Pitfall. Assuming the PROBLEM sub-group is always present. Not all responding systems populate
PRB, even when a goal was created in response to a specific problem. Build implementations that handle aGOL-only GOAL group without expecting a linked problem segment.
How Vorro handles PPV messages
Vorro receives PPV^PCA responses correlated against the patient-goal queries it originates or relays, matching each response to its pending query by QAK-1 and MSA-2. Vorro checks QAK-2 before processing PATIENT groups, raises integration alerts for NF and AE outcomes, and reads the goal identifier, lifecycle status, and target datetime from GOL before forwarding each goal to every subscribed destination in the format that system expects. Vorro links each goal to any associated problems through PRB and to any supporting orders through ORC and OBR, and, where a FHIR destination is configured, maps each goal to a FHIR Goal resource and delivers the result as a Bundle — composed manually, since the v2-to-FHIR Implementation Guide publishes no map for this message. Vorro enforces configurable timeouts on the query/response round trip and surfaces unmatched responses — PPV messages that arrive without a corresponding outstanding query — as integration alerts rather than silently discarding them.
Related messages
- PGL — the patient goal message that unsolicitedly adds, updates, or deletes the goals a PPV response returns.
- PPG — the patient pathway (goal-oriented) message that provides the structured care pathway within which goals are set.
- PRR — the patient problem response that returns problem records in the same query-response pattern across the patient-care message family.
Sources
- HL7 v2-to-FHIR IG — message maps index — confirms no message map for PPV_PCA
- HL7 v2-to-FHIR IG — segment maps index — confirms no ConceptMap for GOL
- HL7 Messaging Standard Version 2.5.1 product brief
