HL70009 has been part of HL7 v2 since v2.1 and carries the patient's ambulatory status — a short, repeating code that tells the receiving system how the patient moves through space and what accommodations the visit requires. It lives in PV1-15 Ambulatory Status and uses the IS data type. The list is intentionally short: ten functional-limitation codes in the A-series and six special-condition codes in the B-series, all two-character symbols.
Purpose
HL70009 answers a logistics question, not a clinical one: when this patient arrives for the visit, what should the floor expect? An A2 value tells the unit clerk that the room must accommodate a wheelchair or stretcher; A8 tells registration that a translator is needed; B6 tells the imaging tech to defer X-rays without re-consent. The values are not diagnoses — they describe the patient's state for the duration of the encounter and inform staging, room assignment, and consent workflows.
Because PV1-15 is a repeating field, the codes are additive. A pregnant patient who also requires oxygen would be sent as B6~B1, not as a single composite code.
Where it's used
- PV1-15 Ambulatory Status — the canonical home, repeating, populated on ADT^A01, A04, A08, and downstream order/result messages that carry visit context.
- PV2 Ambulatory Status (some site profiles repeat the value in PV2 for legacy receivers).
- Scheduling messages (SCH/AIS) that need to communicate accommodation requirements at booking time.
Code list
| Code | Display | Comment/Description |
|---|---|---|
| A0 | No functional limitations | Default — the patient ambulates independently with no accommodation needed. |
| A1 | Ambulates with assistive device | Cane, walker, crutches; patient is independent but needs the device available. |
| A2 | Wheelchair/stretcher bound | Room must accommodate wheels; transport must be arranged. |
| A3 | Comatose; non-responsive | Patient cannot respond; consent and history must come from a surrogate. |
| A4 | Disoriented (oriented in spurts) | Intermittent orientation; staff should confirm identity each encounter. |
| A5 | Vision impaired | Forms and signage must be accessible; verbal confirmation required. |
| A6 | Hearing impaired | Sign language or written communication required. |
| A7 | Speech impaired | Patient cannot speak normally; alternate communication required. |
| A8 | Non-English speaking | Translator required (language carried elsewhere, e.g., PID-15). |
| A9 | Functional level unknown | Status not yet assessed at the time of the message. |
| B1 | Oxygen therapy | Patient is on supplemental oxygen; room must have an outlet. |
| B2 | Special equipment (tubes, IVs, catheters) | Patient arrives with indwelling devices that must be accommodated. |
| B3 | Amputee | Patient has a limb amputation relevant to positioning and transfer. |
| B4 | Mastectomy | Patient has had a mastectomy; relevant to imaging and positioning. |
| B5 | Paraplegic | Patient has lower-body paralysis; transfer and pressure-injury precautions apply. |
| B6 | Pregnant | Patient is pregnant; relevant to imaging, medication, and consent workflows. |
Code system OID
- OID:
2.16.840.1.113883.18.10 - Canonical URI:
http://terminology.hl7.org/CodeSystem/v2-0009
The OID resolves on the HL7 Terminology server and is the value Vorro emits in CWE.14 when a downstream profile demands OID-bound coded values for PV1-15.
HL7-defined vs user-defined
HL70009 is HL7-defined. The table number falls inside the HL7-reserved range (HL70001–HL70999), and the sixteen codes are normative; receivers must accept all of them without local extension. Sites that need additional accommodation flags (e.g., service-animal present, latex allergy) carry those values on dedicated CWE-typed fields rather than extending HL70009 with local codes.
Version differences
- v2.1 – v2.2 — A0 through A9 (ten functional-limitation codes) established at v2.1.
- v2.3 — B-series added (B1 Oxygen therapy, B2 Special equipment, B3 Amputee, B4 Mastectomy, B5 Paraplegic, B6 Pregnant) to capture special accommodation conditions distinct from functional limitations.
- v2.4 – v2.8.1 — Set frozen at sixteen codes; no further additions.
Common mistakes
- Sending a single value when the patient has multiple accommodations. PV1-15 is repeating; use the field's repetition separator (
~) — for example,B6~B1~A8for a pregnant, oxygen-dependent, non-English-speaking patient. - Treating HL70009 as a clinical problem list.
B6(Pregnant) is a visit accommodation flag, not a diagnosis; the actual pregnancy diagnosis belongs in DG1 or in a Condition resource downstream. - Defaulting empty PV1-15 to
A0on ingest. An empty field means "unknown or not asserted"; substitutingA0(No functional limitations) silently invents a clinical assertion. - Using
A9as a placeholder for "we never collect this" —A9says the patient's functional level is unknown at the time of the message, not that the sender opted out of the field. - Extending HL70009 locally with values like
A10for service animals. HL70009 is HL7-defined; carry that concept on another field.
Examples
A wheelchair-bound, non-English-speaking patient on an ADT^A01:
PV1|1|I|2000^2012^01||||004777^GOOD^SIDNEY^J^^^MD|||SUR||||ADM|A0|||||||||||||||||||||||||A2~A8
A pregnant patient on oxygen therapy:
PV1|1|O|RAD^^^MAIN||||004777^GOOD^SIDNEY^J^^^MD|||RAD||||||||||||||||||||||||||||||B6~B1
Same B6~B1 value translated to FHIR (conceptual — there is no direct ValueSet binding):
{
"resourceType": "Encounter",
"id": "vis-99821",
"specialArrangement": [
{ "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v2-0009", "code": "B6", "display": "Pregnant" }] },
{ "coding": [{ "system": "http://terminology.hl7.org/CodeSystem/v2-0009", "code": "B1", "display": "Oxygen therapy" }] }
]
}
Mapping failure example — unknown vendor code:
PV1|1|I|2000^2012^01||||004777^GOOD^SIDNEY^J^^^MD|||SUR||||ADM|A0||||||||||||||||||||||||C1
C1 is not in HL70009. A conformant engine should route the message to a curation queue, preserve the original value in the audit log, and emit a FHIR resource with a data-absent-reason extension rather than silently dropping the accommodation flag.
FHIR mapping
There is no normative HL7 v2-to-FHIR ConceptMap for HL70009. The two halves of the table map to different FHIR shapes:
- A-series (functional limitations) — typically modeled as
Patientextensions or asObservationresources describing functional status. Receivers that consume FHIR often translateA2,A5,A6,A7, andA8into Encounter accessibility flags orcommunication.preferred(forA8). - B-series (special conditions) — typically modeled as
Encounter.specialArrangement(a CodeableConcept that is intentionally open) or, where the value implies a diagnosis, as aConditionresource (B6Pregnant → a Condition coded to SNOMED 77386006).
Because there is no 1:1 ValueSet, round-tripping requires preserving the original HL70009 code as an extension on whichever FHIR resource the receiver chooses.
Engine considerations
- Repeating field handling — PV1-15 repeats; engines must split on
~and validate each occurrence against HL70009 independently. - Two-character validation — HL70009 codes are exactly two characters; engines should reject longer payloads rather than truncate.
- Case sensitivity — Codes are uppercase;
a2is not valid. Normalize on ingest. - CWE upgrade path — In v2.7+ profiles PV1-15 may be transmitted as CWE rather than IS, allowing OID metadata in CWE.14 (
2.16.840.1.113883.18.10). - Empty vs A0 — Engines must distinguish empty (not asserted) from
A0(asserted no limitations). Never default empty toA0.
How Vorro handles HL70009
Vorro validates each repetition of PV1-15 against the sixteen HL70009 codes on ingest. Valid codes are forwarded to downstream channels untouched and, where the destination is a FHIR consumer, translated into the appropriate Encounter.specialArrangement, Patient extension, or Condition resource per the receiver's profile. Unknown codes are routed to the terminology curation queue, where they either resolve to one of the canonical sixteen (and a remap rule is created) or pass through with a soft warning.
On outbound, Vorro emits HL70009 as IS for v2.5 and earlier profiles and as CWE with CWE.14 populated for v2.7+ destinations. The original HL70009 code is always preserved when round-tripping through FHIR.
Related pages
- PV1 segment — Patient Visit
- HL70069 code table — Hospital Service
- IS data type — Coded Value for User-defined Tables
