GDCM
3.0.24
|
#include <gdcmAnonymizer.h>
Public Member Functions | |
Anonymizer () | |
~Anonymizer () override | |
bool | BasicApplicationLevelConfidentialityProfile (bool deidentify=true) |
bool | Clear (PrivateTag const &pt) |
bool | Clear (Tag const &t) |
Identical to 'Empty' except no action is done when tag is not present. More... | |
bool | Empty (PrivateTag const &pt) |
bool | Empty (Tag const &t) |
Make Tag t empty (if not found tag will be created) More... | |
const CryptographicMessageSyntax * | GetCryptographicMessageSyntax () const |
File & | GetFile () |
bool | Remove (PrivateTag const &pt) |
bool | Remove (Tag const &t) |
remove a tag (even a SQ can be removed) More... | |
bool | RemoveGroupLength () |
Main function that loop over all elements and remove group length. More... | |
bool | RemovePrivateTags () |
Main function that loop over all elements and remove private tags. More... | |
bool | RemoveRetired () |
Main function that loop over all elements and remove retired element. More... | |
bool | Replace (PrivateTag const &t, const char *value) |
bool | Replace (PrivateTag const &t, const char *value, VL const &vl) |
bool | Replace (Tag const &t, const char *value) |
bool | Replace (Tag const &t, const char *value, VL const &vl) |
void | SetCryptographicMessageSyntax (CryptographicMessageSyntax *cms) |
Set/Get CMS key that will be used to encrypt the dataset within BasicApplicationLevelConfidentialityProfile. More... | |
void | SetFile (const File &f) |
Set/Get File. More... | |
![]() | |
Subject () | |
~Subject () override | |
unsigned long | AddObserver (const Event &event, Command *) |
unsigned long | AddObserver (const Event &event, Command *) const |
Command * | GetCommand (unsigned long tag) |
bool | HasObserver (const Event &event) const |
void | InvokeEvent (const Event &) |
void | InvokeEvent (const Event &) const |
void | RemoveAllObservers () |
void | RemoveObserver (unsigned long tag) |
![]() | |
Object () | |
Object (const Object &) | |
Special requirement for copy/cstor, assignment operator. More... | |
virtual | ~Object () |
void | operator= (const Object &) |
virtual void | Print (std::ostream &) const |
Static Public Member Functions | |
static void | ClearInternalUIDs () |
static std::vector< Tag > | GetBasicApplicationLevelConfidentialityProfileAttributes () |
Return the list of Tag that will be considered when anonymizing a DICOM file. More... | |
static SmartPointer< Anonymizer > | New () |
for wrapped language: instantiate a reference counted object More... | |
Protected Member Functions | |
bool | BALCPProtect (DataSet &ds, Tag const &tag, const IOD &iod) |
bool | CanEmptyTag (Tag const &tag, const IOD &iod) const |
void | RecurseDataSet (DataSet &ds) |
![]() | |
void | Register () |
void | UnRegister () |
This class is a multi purpose anonymizer. It can work in 2 mode:
Tag based functions:
DataSet based functions:
All function calls actually execute the user specified request. Previous implementation were calling a general Anonymize function but traversing a std::set is O(n) operation, while a simple user specified request is O(log(n)) operation. So 'm' user interaction is O(m*log(n)) which is < O(n) complexity.
This class implement the Subject/Observer pattern trigger the following event:
|
inline |
|
override |
bool gdcm::Anonymizer::BasicApplicationLevelConfidentialityProfile | ( | bool | deidentify = true | ) |
PS 3.15 / E.1.1 De-Identifier An Application may claim conformance to the Basic Application Level Confidentiality Profile as a deidentifier if it protects all Attributes that might be used by unauthorized entities to identify the patient. NOT THREAD SAFE
bool gdcm::Anonymizer::Clear | ( | PrivateTag const & | pt | ) |
bool gdcm::Anonymizer::Clear | ( | Tag const & | t | ) |
Identical to 'Empty' except no action is done when tag is not present.
|
static |
bool gdcm::Anonymizer::Empty | ( | PrivateTag const & | pt | ) |
Make PrivateTag pt empty (if not found tag will be created) Pay special attention that this code must be done before any call to Empty/Remove of the associated Private Creator, but before any call to Replace.
bool gdcm::Anonymizer::Empty | ( | Tag const & | t | ) |
Make Tag t empty (if not found tag will be created)
|
static |
Return the list of Tag that will be considered when anonymizing a DICOM file.
const CryptographicMessageSyntax* gdcm::Anonymizer::GetCryptographicMessageSyntax | ( | ) | const |
|
inline |
|
inlinestatic |
for wrapped language: instantiate a reference counted object
|
protected |
bool gdcm::Anonymizer::Remove | ( | PrivateTag const & | pt | ) |
remove a private tag (even a SQ can be removed) Pay special attention that this code must be done before any call to Empty/Remove of the associated Private Creator, but before any call to Replace. When the private reservation becomes empty, no check is done to automatically remove the private creator
bool gdcm::Anonymizer::Remove | ( | Tag const & | t | ) |
remove a tag (even a SQ can be removed)
bool gdcm::Anonymizer::RemoveGroupLength | ( | ) |
Main function that loop over all elements and remove group length.
bool gdcm::Anonymizer::RemovePrivateTags | ( | ) |
Main function that loop over all elements and remove private tags.
bool gdcm::Anonymizer::RemoveRetired | ( | ) |
Main function that loop over all elements and remove retired element.
bool gdcm::Anonymizer::Replace | ( | PrivateTag const & | t, |
const char * | value | ||
) |
bool gdcm::Anonymizer::Replace | ( | PrivateTag const & | t, |
const char * | value, | ||
VL const & | vl | ||
) |
bool gdcm::Anonymizer::Replace | ( | Tag const & | t, |
const char * | value | ||
) |
Replace tag with another value, if tag is not found it will be created: WARNING: this function can only execute if tag is a VRASCII
when the value contains \0, it is a good idea to specify the length. This function is required when dealing with VRBINARY tag
void gdcm::Anonymizer::SetCryptographicMessageSyntax | ( | CryptographicMessageSyntax * | cms | ) |
Set/Get CMS key that will be used to encrypt the dataset within BasicApplicationLevelConfidentialityProfile.