Extended Person Name (XPN) -- HL7v2 composite data type.
Used for patient names, provider names, next of kin, etc.
14 components:
- Family Name (FN) -- sub-components delimited by
& - Given Name (ST)
- Second and Further Given Names or Initials (ST)
- Suffix (ST) -- e.g., JR, III
- Prefix (ST) -- e.g., DR
- Degree (IS) -- deprecated, Table 0360
- Name Type Code (ID) -- Table 0200: L=Legal, D=Display, A=Alias, etc.
- Name Representation Code (ID) -- Table 0465: A=Alphabetic, I=Ideographic, P=Phonetic
- Name Context (CE) -- sub-components delimited by
&, Table 0448 - Name Validity Range (DR) -- deprecated, sub-components delimited by
& - Name Assembly Order (ID) -- Table 0444: G=Given-first, F=Family-first
- Effective Date (TS) -- sub-components delimited by
& - Expiration Date (TS) -- sub-components delimited by
& - Professional Suffix (ST)
Summary
Types
@type t() :: %HL7v2.Type.XPN{ degree: binary() | nil, effective_date: HL7v2.Type.TS.t() | nil, expiration_date: HL7v2.Type.TS.t() | nil, family_name: HL7v2.Type.FN.t() | nil, given_name: binary() | nil, name_assembly_order: binary() | nil, name_context: HL7v2.Type.CE.t() | nil, name_representation_code: binary() | nil, name_type_code: binary() | nil, name_validity_range: HL7v2.Type.DR.t() | nil, prefix: binary() | nil, professional_suffix: binary() | nil, second_name: binary() | nil, suffix: binary() | nil }
Functions
Encodes an XPN to a list of component strings.
Examples
iex> HL7v2.Type.XPN.encode(%HL7v2.Type.XPN{family_name: %HL7v2.Type.FN{surname: "Smith"}, given_name: "John"})
["Smith", "John"]
iex> HL7v2.Type.XPN.encode(nil)
[]
Parses an XPN from a list of components.
Component 1 (Family Name) contains sub-components delimited by &.
Examples
iex> HL7v2.Type.XPN.parse(["Smith", "John", "Q", "JR", "DR", "", "L"])
%HL7v2.Type.XPN{
family_name: %HL7v2.Type.FN{surname: "Smith"},
given_name: "John",
second_name: "Q",
suffix: "JR",
prefix: "DR",
name_type_code: "L"
}
iex> HL7v2.Type.XPN.parse(["Smith&Van", "John"])
%HL7v2.Type.XPN{
family_name: %HL7v2.Type.FN{surname: "Smith", own_surname_prefix: "Van"},
given_name: "John"
}
iex> HL7v2.Type.XPN.parse([])
%HL7v2.Type.XPN{}