Packages
hl7v2
3.4.0
3.10.1
3.9.0
3.8.0
3.7.0
3.6.0
3.5.0
3.4.0
3.3.6
3.3.5
3.3.4
3.3.3
3.3.2
3.3.1
3.3.0
3.2.0
3.1.1
3.1.0
3.0.2
3.0.1
3.0.0
2.11.0
2.10.0
2.9.1
2.9.0
2.8.2
2.8.1
2.8.0
2.7.1
2.7.0
2.6.0
2.5.0
2.4.0
2.3.0
2.2.0
2.1.3
2.1.2
2.1.1
2.1.0
1.4.6
1.4.4
1.4.3
1.4.2
1.4.1
1.4.0
1.3.0
1.2.0
1.1.0
1.0.0
0.6.0
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.1.0
Pure Elixir HL7 v2.x toolkit — schema-driven parsing, typed segments, message builder, MLLP transport
Current section
Files
Jump to
Current section
Files
lib/hl7v2/type/id.ex
defmodule HL7v2.Type.ID do
@moduledoc """
Coded Value for HL7-Defined Tables (ID) -- HL7v2 primitive data type.
Lossless storage: the value is stored and returned as a plain binary string.
The HL7 spec constrains ID values to specific HL7-defined tables, but this
implementation does not enforce table membership — any string is accepted.
"""
@behaviour HL7v2.Type
@doc """
Parses an ID string. Returns the string as-is, or `nil` for empty/nil input.
## Examples
iex> HL7v2.Type.ID.parse("MR")
"MR"
iex> HL7v2.Type.ID.parse("")
nil
iex> HL7v2.Type.ID.parse(nil)
nil
"""
@spec parse(binary() | nil) :: binary() | nil
def parse(nil), do: nil
def parse(""), do: nil
def parse(value) when is_binary(value), do: value
@doc """
Encodes an ID value. Returns the string as-is, or empty string for nil.
## Examples
iex> HL7v2.Type.ID.encode("MR")
"MR"
iex> HL7v2.Type.ID.encode(nil)
""
"""
@spec encode(binary() | nil) :: binary()
def encode(nil), do: ""
def encode(value) when is_binary(value), do: value
end