DCMTK  Version 3.6.5
OFFIS DICOM Toolkit
Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
WlmFileSystemInteractionManager Class Reference

This class encapsulates data structures and operations for managing data base interaction in the framework of the DICOM basic worklist management service. More...

Public Member Functions

 WlmFileSystemInteractionManager ()
 default constructor.
 
 ~WlmFileSystemInteractionManager ()
 destructor
 
void SetEnableRejectionOfIncompleteWlFiles (OFBool value)
 Set value in member variable. More...
 
OFCondition ConnectToFileSystem (const OFString &dfPathv)
 Connects to the worklist file system database. More...
 
OFCondition DisconnectFromFileSystem ()
 Disconnects from the worklist file system database. More...
 
OFBool IsCalledApplicationEntityTitleSupported (const OFString &calledApplicationEntityTitlev)
 Checks if the given called application entity title is supported. More...
 
size_t DetermineMatchingRecords (DcmDataset *searchMask)
 This function determines the records from the Worklist files that match the given search mask and returns the number of matching records. More...
 
void MatchWorklistFile (DcmDataset &searchMask, const OFpath &worklistFile)
 Determine whether a Worklist file matches the search mask. More...
 
unsigned long GetNumberOfSequenceItemsForMatchingRecord (DcmTagKey sequenceTag, WlmSuperiorSequenceInfoType *superiorSequenceArray, unsigned long numOfSuperiorSequences, unsigned long idx)
 For the matching record that is identified through idx, this function returns the number of items that are contained in the sequence element that is referred to by sequenceTag. More...
 
void GetAttributeValueForMatchingRecord (DcmTagKey tag, WlmSuperiorSequenceInfoType *superiorSequenceArray, unsigned long numOfSuperiorSequences, unsigned long idx, char *&value)
 This function determines an attribute value of a matching record and returns this value in a newly created string to the caller. More...
 
void ClearMatchingRecords ()
 This function frees the memory which was occupied by matchingRecords. More...
 

Protected Member Functions

OFdirectory_iteratorFindNextWorklistFile (OFdirectory_iterator &it)
 Increment the given directory iterator until it refers to a worklist file (or past-the-end). More...
 
OFBool DatasetIsComplete (DcmDataset *dataset)
 This function checks if the given dataset (which represents the information from a worklist file) contains all necessary return type 1 information. More...
 
OFBool ReferencedStudyOrPatientSequenceIsAbsentOrExistentButNonEmptyAndIncomplete (DcmTagKey sequenceTagKey, DcmItem *dset)
 This function checks if the specified sequence attribute is absent or existent but non-empty and incomplete in the given dataset. More...
 
OFBool DescriptionAndCodeSequenceAttributesAreIncomplete (DcmTagKey descriptionTagKey, DcmTagKey codeSequenceTagKey, DcmItem *dset)
 This method ensures that either code or description is set to a non-empty value, and at the same time none of the attributes is present with a zero-length value. More...
 
OFBool AttributeIsAbsentOrEmpty (DcmTagKey elemTagKey, DcmItem *dset)
 This function checks if the specified attribute is absent or contains an empty value in the given dataset. More...
 
OFBool MatchSequences (DcmSequenceOfItems &candidate, DcmSequenceOfItems &query, const MatchingKeys &matchingKeys)
 This function returns OFTrue, if the matching key attribute values in the one of the items of the candidate sequence match the matching key attribute values in at least one of the items of the query sequence. More...
 
OFBool IsUniversalMatch (DcmSequenceOfItems &query, const MatchingKeys &matchingKeys, const OFBool normalize=OFTrue, const OFBool normalizeWildCards=OFTrue)
 Determine if a sequence is an universal match. More...
 
OFBool DatasetMatchesSearchMask (DcmItem &dataset, DcmItem &searchMask, const MatchingKeys &matchingKeys)
 This function returns OFTrue, if the matching key attribute values in the dataset match the matching key attribute values in the search mask. More...
 

Protected Attributes

OFString dfPath
 path to database files
 
OFBool enableRejectionOfIncompleteWlFiles
 indicates if wl-files which are lacking return type 1 attributes or information in such attributes shall be rejected or not
 
OFString calledApplicationEntityTitle
 called AE title
 
OFVector< OFshared_ptr< DcmDataset > > matchingRecords
 matching records
 

Private Member Functions

 WlmFileSystemInteractionManager (const WlmFileSystemInteractionManager &old)
 Privately defined copy constructor. More...
 
WlmFileSystemInteractionManageroperator= (const WlmFileSystemInteractionManager &obj)
 Privately defined assignment operator. More...
 

Detailed Description

This class encapsulates data structures and operations for managing data base interaction in the framework of the DICOM basic worklist management service.

Constructor & Destructor Documentation

◆ WlmFileSystemInteractionManager()

WlmFileSystemInteractionManager::WlmFileSystemInteractionManager ( const WlmFileSystemInteractionManager old)
private

Privately defined copy constructor.

Parameters
oldObject which shall be copied.

Member Function Documentation

◆ AttributeIsAbsentOrEmpty()

OFBool WlmFileSystemInteractionManager::AttributeIsAbsentOrEmpty ( DcmTagKey  elemTagKey,
DcmItem dset 
)
protected

This function checks if the specified attribute is absent or contains an empty value in the given dataset.

Parameters
elemTagKeyThe attribute which shall be checked.
dsetThe dataset in which the attribute is contained.
Returns
OFTrue in case the attribute is absent or contains an empty value, OFFalse otherwise.

◆ ClearMatchingRecords()

void WlmFileSystemInteractionManager::ClearMatchingRecords ( )

This function frees the memory which was occupied by matchingRecords.

It shall be called when the matching records are no longer needed.

◆ ConnectToFileSystem()

OFCondition WlmFileSystemInteractionManager::ConnectToFileSystem ( const OFString dfPathv)

Connects to the worklist file system database.

Parameters
dfPathvPath to worklist file system database.
Returns
Indicates if the connection could be established or not.

◆ DatasetIsComplete()

OFBool WlmFileSystemInteractionManager::DatasetIsComplete ( DcmDataset dataset)
protected

This function checks if the given dataset (which represents the information from a worklist file) contains all necessary return type 1 information.

According to the DICOM standard part 4 annex K, the following attributes are type 1 attributes in C-Find RSP messages: Attribute Tag Return Key Type SpecificCharacterSet (0008,0005) 1C (will be checked in WlmDataSourceFileSystem::StartFindRequest(...); this attribute does not have to be checked here) ScheduledProcedureStepSequence (0040,0100) 1

ScheduledStationAETitle (0040,0001) 1 ScheduledProcedureStepStartDate (0040,0002) 1 ScheduledProcedureStepStartTime (0040,0003) 1 Modality (0008,0060) 1 ScheduledProcedureStepDescription (0040,0007) 1C (The ScheduledProcedureStepDescription (0040,0007) or the ScheduledProtocolCodeSequence (0040,0008) or both shall be supported by the SCP; we actually support both, so we have to check if at least one of the two attributes contains valid information.) ScheduledProtocolCodeSequence (0040,0008) 1C (see abobve)

CodeValue (0008,0100) 1 CodingSchemeDesignator (0008,0102) 1

ScheduledProcedureStepID (0040,0009) 1

RequestedProcedureID (0040,1001) 1 RequestedProcedureDescription (0032,1060) 1C (The RequestedProcedureDescription (0032,1060) or the RequestedProcedureCodeSequence (0032,1064) or both shall be supported by the SCP; we actually support both, so we have to check if at least one of the two attributes contains valid information.) RequestedProcedureCodeSequence (0032,1064) 1C (see abobve)

CodeValue (0008,0100) 1 CodingSchemeDesignator (0008,0102) 1

StudyInstanceUID (0020,000D) 1 ReferencedStudySequence (0008,1110) 2

ReferencedSOPClassUID (0008,1150) 1C (Required if a sequence item is present) ReferencedSOPInstanceUID (0008,1155) 1C (Required if a sequence item is present)

ReferencedPatientSequence (0008,1120) 2

ReferencedSOPClassUID (0008,1150) 1C (Required if a sequence item is present) ReferencedSOPInstanceUID (0008,1155) 1C (Required if a sequence item is present)

PatientName (0010,0010) 1 PatientID (0010,0020) 1

Parameters
dataset- [in] The dataset of the worklist file which is currently examined.
Returns
OFTrue in case the given dataset contains all necessary return type 1 information, OFFalse otherwise.

◆ DatasetMatchesSearchMask()

OFBool WlmFileSystemInteractionManager::DatasetMatchesSearchMask ( DcmItem dataset,
DcmItem searchMask,
const MatchingKeys &  matchingKeys 
)
protected

This function returns OFTrue, if the matching key attribute values in the dataset match the matching key attribute values in the search mask.

Parameters
datasetThe dataset which shall be checked.
searchMaskThe search mask.
matchingKeysThe matching keys to regard.
Returns
OFTrue in case the dataset matches the search mask in the matching key attribute values, OFFalse otherwise.

◆ DescriptionAndCodeSequenceAttributesAreIncomplete()

OFBool WlmFileSystemInteractionManager::DescriptionAndCodeSequenceAttributesAreIncomplete ( DcmTagKey  descriptionTagKey,
DcmTagKey  codeSequenceTagKey,
DcmItem dset 
)
protected

This method ensures that either code or description is set to a non-empty value, and at the same time none of the attributes is present with a zero-length value.

If one of these requirements are not met, then OFTrue is returned, otherwise OFFalse.

Parameters
descriptionTagKeyThe description attribute which shall be checked.
codeSequenceTagKeyThe codeSequence attribute which shall be checked.
dsetThe dataset in which the attributes are contained.
Returns
OFFalse (i.e. no error regarding the standard) in case at least one of both attributes has a non-empty, valid value, and none is set to an empty value. OFTrue otherwise.

◆ DetermineMatchingRecords()

size_t WlmFileSystemInteractionManager::DetermineMatchingRecords ( DcmDataset searchMask)

This function determines the records from the Worklist files that match the given search mask and returns the number of matching records.

Also, this function will store the matching records inside the member variable matchingRecords.

Parameters
searchMaskA pointer to the search mask.
Returns
The number of matching records.

◆ DisconnectFromFileSystem()

OFCondition WlmFileSystemInteractionManager::DisconnectFromFileSystem ( )

Disconnects from the worklist file system database.

Returns
Indicates if the connection was disconnected successfully.

◆ FindNextWorklistFile()

OFdirectory_iterator& WlmFileSystemInteractionManager::FindNextWorklistFile ( OFdirectory_iterator it)
protected

Increment the given directory iterator until it refers to a worklist file (or past-the-end).

Parameters
itA reference to an OFdirectory_iterator.

◆ GetAttributeValueForMatchingRecord()

void WlmFileSystemInteractionManager::GetAttributeValueForMatchingRecord ( DcmTagKey  tag,
WlmSuperiorSequenceInfoType superiorSequenceArray,
unsigned long  numOfSuperiorSequences,
unsigned long  idx,
char *&  value 
)

This function determines an attribute value of a matching record and returns this value in a newly created string to the caller.

Parameters
tagAttribute tag. Specifies which attribute's value shall be returned.
superiorSequenceArrayArray which contains information about superior sequence elements the given element is contained in.
numOfSuperiorSequencesThe number of elements in the above array.
idxIdentifies the record from which the attribute value shall be retrieved.
valuePointer to a newly created string that contains the requested value. If value was not found an emtpy string will be returned.

◆ GetNumberOfSequenceItemsForMatchingRecord()

unsigned long WlmFileSystemInteractionManager::GetNumberOfSequenceItemsForMatchingRecord ( DcmTagKey  sequenceTag,
WlmSuperiorSequenceInfoType superiorSequenceArray,
unsigned long  numOfSuperiorSequences,
unsigned long  idx 
)

For the matching record that is identified through idx, this function returns the number of items that are contained in the sequence element that is referred to by sequenceTag.

In case this sequence element is itself contained in a certain item of another superior sequence, superiorSequenceArray contains information about where to find the correct sequence element.

Parameters
sequenceTagThe tag of the sequence element for which the number of items shall be determined.
superiorSequenceArrayArray which contains information about superior sequence elements the given sequence element is contained in.
numOfSuperiorSequencesThe number of elements in the above array.
idxIdentifies the record from which the number of sequence items shall be determined.
Returns
The number of items that are contained in the sequence element that is referred to by sequenceTag and that can be found in sequence items which are specified in superiorSequenceArray.

◆ IsCalledApplicationEntityTitleSupported()

OFBool WlmFileSystemInteractionManager::IsCalledApplicationEntityTitleSupported ( const OFString calledApplicationEntityTitlev)

Checks if the given called application entity title is supported.

If this is the case, OFTrue will be returned, else OFFalse.

Parameters
calledApplicationEntityTitlevThe application entity title which shall be checked for support. Valid pointer expected.
Returns
OFTrue, if the called application entity title is supported, OFFalse, if the called application entity title is not supported or it is not given.

◆ IsUniversalMatch()

OFBool WlmFileSystemInteractionManager::IsUniversalMatch ( DcmSequenceOfItems query,
const MatchingKeys &  matchingKeys,
const OFBool  normalize = OFTrue,
const OFBool  normalizeWildCards = OFTrue 
)
protected

Determine if a sequence is an universal match.

Parameters
queryThe query sequence.
matchingKeysThe matching keys to regard.
normalizeNormalize each attribute value before the check. Defaults to OFTrue, which means the value will be normalized as appropriate for the given VR, e.g. ignoring spaces used as padding.
normalizeWildCards.Whether to interpret a query only consisting of wild cards as an universal match. Defaults to OFTrue, which means wild cards will be normalized if an attribute's VR supports it and it is allowed for the attribute (as defined by the matchingKeys argument). Set to OFFalse to force strict interpretation instead.
Returns
OFTrue if the sequence has no items or if all attributes in its item can be considered an universal match. Returns OFFalse otherwise.

◆ MatchSequences()

OFBool WlmFileSystemInteractionManager::MatchSequences ( DcmSequenceOfItems candidate,
DcmSequenceOfItems query,
const MatchingKeys &  matchingKeys 
)
protected

This function returns OFTrue, if the matching key attribute values in the one of the items of the candidate sequence match the matching key attribute values in at least one of the items of the query sequence.

Parameters
candidateThe candidate sequence.
queryThe query sequence.
matchingKeysThe matching keys to regard.
Returns
OFTrue in case at least one item matches, OFFalse otherwise.

◆ MatchWorklistFile()

void WlmFileSystemInteractionManager::MatchWorklistFile ( DcmDataset searchMask,
const OFpath worklistFile 
)

Determine whether a Worklist file matches the search mask.

Parameters
searchMaskA reference to the search mask.
worklistFileAn OFpath (hopefully) referring to a Worklist file.

This method will attempt to load the Worklist file referenced by the argument worklistFile and, on success, compare it against searchMask. If the file matches the search mask, its dataset part will be added to the matching records member variable.

◆ operator=()

WlmFileSystemInteractionManager& WlmFileSystemInteractionManager::operator= ( const WlmFileSystemInteractionManager obj)
private

Privately defined assignment operator.

Parameters
objObject which shall be copied.

◆ ReferencedStudyOrPatientSequenceIsAbsentOrExistentButNonEmptyAndIncomplete()

OFBool WlmFileSystemInteractionManager::ReferencedStudyOrPatientSequenceIsAbsentOrExistentButNonEmptyAndIncomplete ( DcmTagKey  sequenceTagKey,
DcmItem dset 
)
protected

This function checks if the specified sequence attribute is absent or existent but non-empty and incomplete in the given dataset.

Parameters
sequenceTagKeyThe sequence attribute which shall be checked.
dsetThe dataset in which the attribute is contained.
Returns
OFTrue in case the sequence attribute is absent (and cannot be added to the dataset) or existent but non-empty and incomplete, OFFalse otherwise.

◆ SetEnableRejectionOfIncompleteWlFiles()

void WlmFileSystemInteractionManager::SetEnableRejectionOfIncompleteWlFiles ( OFBool  value)

Set value in member variable.

Parameters
valueThe value to set.

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


Generated on Mon Oct 28 2019 for DCMTK Version 3.6.5 by Doxygen 1.8.15