HL7v2.Type.XPN (HL7v2 v3.10.1)

Copy Markdown View Source

Extended Person Name (XPN) -- HL7v2 composite data type.

Used for patient names, provider names, next of kin, etc.

14 components:

  1. Family Name (FN) -- sub-components delimited by &
  2. Given Name (ST)
  3. Second and Further Given Names or Initials (ST)
  4. Suffix (ST) -- e.g., JR, III
  5. Prefix (ST) -- e.g., DR
  6. Degree (IS) -- deprecated, Table 0360
  7. Name Type Code (ID) -- Table 0200: L=Legal, D=Display, A=Alias, etc.
  8. Name Representation Code (ID) -- Table 0465: A=Alphabetic, I=Ideographic, P=Phonetic
  9. Name Context (CE) -- sub-components delimited by &, Table 0448
  10. Name Validity Range (DR) -- deprecated, sub-components delimited by &
  11. Name Assembly Order (ID) -- Table 0444: G=Given-first, F=Family-first
  12. Effective Date (TS) -- sub-components delimited by &
  13. Expiration Date (TS) -- sub-components delimited by &
  14. Professional Suffix (ST)

Summary

Functions

Encodes an XPN to a list of component strings.

Parses an XPN from a list of components.

Types

t()

@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

encode(xpn)

@spec encode(t() | nil) :: list()

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)
[]

parse(components)

@spec parse(list()) :: t()

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{}