HL7v2.Type.OSP (HL7v2 v3.10.1)

Copy Markdown View Source

Occurrence Span Code and Date (OSP) -- HL7v2 composite data type.

Links a UB occurrence span code to a date range for billing segments (UB2-8).

3 components:

  1. Occurrence Span Code (CNE) -- sub-components, Table 0351
  2. Occurrence Span Start Date (DT) -- YYYY[MM[DD]]
  3. Occurrence Span Stop Date (DT) -- YYYY[MM[DD]]

Summary

Functions

Encodes an OSP to a list of component strings.

Parses an OSP from a list of components.

Types

t()

@type t() :: %HL7v2.Type.OSP{
  occurrence_span_code: HL7v2.Type.CNE.t() | nil,
  occurrence_span_start_date: Date.t() | HL7v2.Type.DT.t() | nil,
  occurrence_span_stop_date: Date.t() | HL7v2.Type.DT.t() | nil
}

Functions

encode(osp)

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

Encodes an OSP to a list of component strings.

Examples

iex> HL7v2.Type.OSP.encode(%HL7v2.Type.OSP{occurrence_span_code: %HL7v2.Type.CNE{identifier: "70"}, occurrence_span_start_date: ~D[2026-01-01], occurrence_span_stop_date: ~D[2026-01-15]})
["70", "20260101", "20260115"]

iex> HL7v2.Type.OSP.encode(nil)
[]

parse(components)

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

Parses an OSP from a list of components.

Examples

iex> HL7v2.Type.OSP.parse(["70&Qualifying stay&NUBC", "20260101", "20260115"])
%HL7v2.Type.OSP{
  occurrence_span_code: %HL7v2.Type.CNE{identifier: "70", text: "Qualifying stay", name_of_coding_system: "NUBC"},
  occurrence_span_start_date: ~D[2026-01-01],
  occurrence_span_stop_date: ~D[2026-01-15]
}

iex> HL7v2.Type.OSP.parse([])
%HL7v2.Type.OSP{}