# gdcm::FileExplicitFilter Class Reference

FileExplicitFilter class After changing a file from Implicit to Explicit representation (see ImageChangeTransferSyntax) one operation is to make sure the VR of each DICOM attribute are accurate and do match the one from PS 3.6. Indeed when a file is written in Implicit reprensentation, the VR is not stored directly in the file. More...

`#include <gdcmFileExplicitFilter.h>`

Collaboration diagram for gdcm::FileExplicitFilter:
[legend]

List of all members.

## Public Member Functions

| FileExplicitFilter ()
| ~FileExplicitFilter ()
bool | Change ()
| Set FMI Transfer Syntax.
File & | GetFile ()
void | SetChangePrivateTags (bool b)
| Decide whether or not to VR'ify private tags.
void | SetFile (const File &f)
| Set/Get File.
void | SetRecomputeItemLength (bool b)
| By default set Sequence & Item length to Undefined to avoid recomputing length:
void | SetRecomputeSequenceLength (bool b)
void | SetUseVRUN (bool b)
| When VR=16bits in explicit but Implicit has a 32bits length, use VR=UN.

## Protected Member Functions

bool | ChangeFMI ()
bool | ProcessDataSet (DataSet &ds, Dicts const &dicts)

## Detailed Description

FileExplicitFilter class After changing a file from Implicit to Explicit representation (see ImageChangeTransferSyntax) one operation is to make sure the VR of each DICOM attribute are accurate and do match the one from PS 3.6. Indeed when a file is written in Implicit reprensentation, the VR is not stored directly in the file.

Warning:
  changing an implicit dataset to an explicit dataset is NOT a trivial task of simply changing the VR to the dict one:
  - One has to make sure SQ is properly set
  - One has to recompute the explicit length SQ
  - One has to make sure that VR is valid for the encoding
  - One has to make sure that VR 16bits can store the original value length

Examples:

  GenAllVR.cxx, and LargeVRDSExplicit.cxx.

## Constructor & Destructor Documentation

gdcm::FileExplicitFilter::FileExplicitFilter | ( |  | ) | `[inline]`

gdcm::FileExplicitFilter::~FileExplicitFilter | ( |  | ) | `[inline]`

## Member Function Documentation

bool gdcm::FileExplicitFilter::Change | ( |  | ) |

Set FMI Transfer Syntax.

Change

Examples:
  GenAllVR.cxx, and LargeVRDSExplicit.cxx.

bool gdcm::FileExplicitFilter::ChangeFMI | ( |  | ) | `[protected]`

File& gdcm::FileExplicitFilter::GetFile | ( |  | ) | `[inline]`

bool gdcm::FileExplicitFilter::ProcessDataSet | ( | DataSet & | ds,
|  | Dicts const & | dicts
| ) |  | `[protected]`

void gdcm::FileExplicitFilter::SetChangePrivateTags | ( | bool | b | ) | `[inline]`

Decide whether or not to VR'ify private tags.

void gdcm::FileExplicitFilter::SetFile | ( | const File & | f | ) | `[inline]`

Set/Get File.

Examples:
  GenAllVR.cxx, and LargeVRDSExplicit.cxx.

void gdcm::FileExplicitFilter::SetRecomputeItemLength | ( | bool | b | ) |

By default set Sequence & Item length to Undefined to avoid recomputing length:

void gdcm::FileExplicitFilter::SetRecomputeSequenceLength | ( | bool | b | ) |

void gdcm::FileExplicitFilter::SetUseVRUN | ( | bool | b | ) | `[inline]`

When VR=16bits in explicit but Implicit has a 32bits length, use VR=UN.

The documentation for this class was generated from the following file:

- gdcmFileExplicitFilter.h