# `Dicom.SR.DocumentReader`
[🔗](https://github.com/Balneario-de-Cofrentes/dicom/blob/v0.9.1/lib/dicom/sr/document_reader.ex#L1)

Extracts document-level SR metadata from a parsed DICOM data set.

Complements `Dicom.SR.Document` (the write path) by providing the
reverse extraction of SR document attributes from a parsed data set.

## Usage

    {:ok, data_set} = Dicom.parse(p10_binary)
    {:ok, metadata} = Dicom.SR.DocumentReader.from_data_set(data_set)
    metadata.completion_flag       #=> "COMPLETE"
    metadata.template_identifier   #=> "1500"

Reference: DICOM PS3.3 Section C.17.2 (SR Document General Module).

# `from_data_set`

```elixir
@spec from_data_set(Dicom.DataSet.t()) :: {:ok, map()} | {:error, term()}
```

Extracts document-level SR metadata from a parsed data set.

Returns a map with the following keys:

  * `:completion_flag` - "COMPLETE" or "PARTIAL" (tag 0040,A491)
  * `:completion_flag_description` - optional description (tag 0040,A492)
  * `:verification_flag` - "VERIFIED" or "UNVERIFIED" (tag 0040,A493)
  * `:content_date` - content date as DICOM DA string (tag 0008,0023)
  * `:content_time` - content time as DICOM TM string (tag 0008,0033)
  * `:template_identifier` - template ID from Content Template Sequence (tag 0040,A504)
  * `:mapping_resource` - mapping resource from Content Template Sequence (tag 0008,0105)
  * `:sop_class_uid` - SOP Class UID (tag 0008,0016)
  * `:sop_instance_uid` - SOP Instance UID (tag 0008,0018)
  * `:study_instance_uid` - Study Instance UID (tag 0020,000D)
  * `:series_instance_uid` - Series Instance UID (tag 0020,000E)
  * `:modality` - Modality (tag 0008,0060)
  * `:verification_datetime` - verification timestamp (tag 0040,A030)
  * `:verifying_observer_name` - observer name from Verifying Observer Sequence (tag 0040,A073)

---

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