Packages
hl7v2
3.0.1
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/tx.ex
defmodule HL7v2.Type.TX do
@moduledoc """
Text Data (TX) -- HL7v2 primitive data type.
Lossless storage: the value is stored and returned as a plain binary string.
The HL7 spec says TX is display-oriented narrative text where leading spaces
are significant and trailing spaces should be removed, but this implementation
preserves all input bytes for round-trip fidelity. No whitespace normalization,
escape sequence processing, or charset validation is performed.
"""
@behaviour HL7v2.Type
@doc """
Parses a text value. Returns the string as-is (preserving leading whitespace),
or `nil` for empty/nil input.
## Examples
iex> HL7v2.Type.TX.parse(" indented text")
" indented text"
iex> HL7v2.Type.TX.parse("simple text")
"simple text"
iex> HL7v2.Type.TX.parse("")
nil
iex> HL7v2.Type.TX.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 a text value. Returns the string as-is, or empty string for nil.
## Examples
iex> HL7v2.Type.TX.encode(" indented text")
" indented text"
iex> HL7v2.Type.TX.encode(nil)
""
"""
@spec encode(binary() | nil) :: binary()
def encode(nil), do: ""
def encode(value) when is_binary(value), do: value
end