# `HL7v2.Type.SI`
[🔗](https://github.com/Balneario-de-Cofrentes/hl7v2/blob/v3.10.1/lib/hl7v2/type/si.ex#L1)

Sequence ID (SI) -- HL7v2 primitive data type.

Non-negative integer, range 0-9999. Used as sequential counter
within repeating structures (e.g., Set ID fields).

# `encode`

```elixir
@spec encode(non_neg_integer() | binary() | nil) :: binary()
```

Encodes a sequence ID integer to a string.

## Examples

    iex> HL7v2.Type.SI.encode(1)
    "1"

    iex> HL7v2.Type.SI.encode(nil)
    ""

# `parse`

```elixir
@spec parse(binary() | nil) :: non_neg_integer() | nil
```

Parses a sequence ID string into an integer.

Returns `nil` for empty/nil input. Only valid non-negative integers
are accepted (range 0-9999).

## Examples

    iex> HL7v2.Type.SI.parse("1")
    1

    iex> HL7v2.Type.SI.parse("0")
    0

    iex> HL7v2.Type.SI.parse("9999")
    9999

    iex> HL7v2.Type.SI.parse("")
    nil

    iex> HL7v2.Type.SI.parse(nil)
    nil

---

*Consult [api-reference.md](api-reference.md) for complete listing*
