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

Entity Identifier (EI) -- HL7v2 composite data type.

Used for order numbers, filler/placer numbers, and other entity identifiers.

4 components:
1. Entity Identifier (ST)
2. Namespace ID (IS)
3. Universal ID (ST)
4. Universal ID Type (ID)

Components 3 and 4 follow HD pairing rules: both must be valued or both null.

# `t`

```elixir
@type t() :: %HL7v2.Type.EI{
  entity_identifier: binary() | nil,
  namespace_id: binary() | nil,
  universal_id: binary() | nil,
  universal_id_type: binary() | nil
}
```

# `encode`

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

Encodes an EI to a list of component strings.

## Examples

    iex> HL7v2.Type.EI.encode(%HL7v2.Type.EI{entity_identifier: "ORD12345", namespace_id: "HOSP"})
    ["ORD12345", "HOSP"]

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

# `parse`

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

Parses an EI from a list of components.

## Examples

    iex> HL7v2.Type.EI.parse(["ORD12345", "HOSP", "2.16.840.1.113883.19.4.6", "ISO"])
    %HL7v2.Type.EI{entity_identifier: "ORD12345", namespace_id: "HOSP", universal_id: "2.16.840.1.113883.19.4.6", universal_id_type: "ISO"}

    iex> HL7v2.Type.EI.parse(["ORD12345"])
    %HL7v2.Type.EI{entity_identifier: "ORD12345"}

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

---

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