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

Daily Deductible Information (DDI) -- HL7v2 composite data type.

Specifies the daily deductible parameters for insurance coverage.

3 components:
1. Delay Days (NM) -- number of delay days before the deductible applies
2. Monetary Amount (MO) -- daily deductible amount (sub-components: quantity & denomination)
3. Number of Days (NM) -- number of days the deductible is in effect

# `t`

```elixir
@type t() :: %HL7v2.Type.DDI{
  delay_days: HL7v2.Type.NM.t() | nil,
  monetary_amount: HL7v2.Type.MO.t() | nil,
  number_of_days: HL7v2.Type.NM.t() | nil
}
```

# `encode`

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

Encodes a DDI to a list of component strings.

## Examples

    iex> HL7v2.Type.DDI.encode(%HL7v2.Type.DDI{delay_days: %HL7v2.Type.NM{value: "3", original: "3"}, number_of_days: %HL7v2.Type.NM{value: "30", original: "30"}})
    ["3", "", "30"]

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

# `parse`

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

Parses a DDI from a list of components.

## Examples

    iex> HL7v2.Type.DDI.parse(["3", "100.00&USD", "30"])
    %HL7v2.Type.DDI{
      delay_days: %HL7v2.Type.NM{value: "3", original: "3"},
      monetary_amount: %HL7v2.Type.MO{quantity: "100.00", denomination: "USD"},
      number_of_days: %HL7v2.Type.NM{value: "30", original: "30"}
    }

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

---

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