GDCM 3.2.1

Public Member Functions | Protected Member Functions | List of all members
gdcm::FileExplicitFilter Class Reference

FileExplicitFilter class. More...

`#include <gdcmFileExplicitFilter.h>`

## Public Member Functions
| FileExplicitFilter ()
| ~FileExplicitFilter ()=default
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 representation, 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
  ExplicitLittleEndian.cs, GenAllVR.cxx, and LargeVRDSExplicit.cxx.

## Constructor & Destructor Documentation

## ◆ FileExplicitFilter()

gdcm::FileExplicitFilter::FileExplicitFilter | ( |  | ) |
| inline

## ◆ ~FileExplicitFilter()

gdcm::FileExplicitFilter::~FileExplicitFilter | ( |  | ) |
| default

## Member Function Documentation

## ◆ Change()

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

Set FMI Transfer Syntax.

Change

Examples
  ExplicitLittleEndian.cs, GenAllVR.cxx, and LargeVRDSExplicit.cxx.

## ◆ ChangeFMI()

bool gdcm::FileExplicitFilter::ChangeFMI | ( |  | ) |
| protected

## ◆ GetFile()

File & gdcm::FileExplicitFilter::GetFile | ( |  | ) |
| inline

Examples
  ExplicitLittleEndian.cs.

## ◆ ProcessDataSet()

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

## ◆ SetChangePrivateTags()

void gdcm::FileExplicitFilter::SetChangePrivateTags | ( | bool | b | ) |
| inline

Decide whether or not to VR'ify private tags.

Examples
  ExplicitLittleEndian.cs.

## ◆ SetFile()

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

Set/Get File.

Examples
  ExplicitLittleEndian.cs, GenAllVR.cxx, and LargeVRDSExplicit.cxx.

## ◆ SetRecomputeItemLength()

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

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

## ◆ SetRecomputeSequenceLength()

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

## ◆ SetUseVRUN()

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