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

Charge Code and Date (CCD) -- HL7v2 composite data type.

Specifies when a charge should be invoked and the associated date/time.

2 components:
1. Invocation Event (ID) -- Table 0100: e.g., "D" (on discharge), "O" (on order),
   "R" (at time of service), "S" (at time of service)
2. Date/Time (TS) -- when the charge applies

# `t`

```elixir
@type t() :: %HL7v2.Type.CCD{
  date_time: HL7v2.Type.TS.t() | nil,
  invocation_event: binary() | nil
}
```

# `encode`

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

Encodes a CCD to a list of component strings.

## Examples

    iex> HL7v2.Type.CCD.encode(%HL7v2.Type.CCD{invocation_event: "D"})
    ["D"]

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

# `parse`

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

Parses a CCD from a list of components.

## Examples

    iex> HL7v2.Type.CCD.parse(["D", "20260101120000"])
    %HL7v2.Type.CCD{invocation_event: "D", date_time: %HL7v2.Type.TS{time: %HL7v2.Type.DTM{year: 2026, month: 1, day: 1, hour: 12, minute: 0, second: 0}}}

    iex> HL7v2.Type.CCD.parse(["O"])
    %HL7v2.Type.CCD{invocation_event: "O"}

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

---

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