DCMTK  Version 3.6.2
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...
 
unsigned long DetermineMatchingRecords (DcmDataset *searchMask)
 This function determines the records from the worklist files which match the given search mask and returns the number of matching records. 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

void DetermineWorklistFiles (OFVector< OFString > &worklistFiles)
 This function determines all worklist files in the directory specified by dfPath and calledApplicationEntityTitle, and returns the complete path and filename information in an array of strings. More...
 
OFBool IsWorklistFile (const char *fname)
 This function returns OFTrue if the given filename refers to a worklist file, i.e. 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 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
 
DcmDataset ** matchingRecords
 array of matching records
 
unsigned long numOfMatchingRecords
 number of array fields
 

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()

unsigned long WlmFileSystemInteractionManager::DetermineMatchingRecords ( DcmDataset searchMask)

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

Also, this function will store the matching records in memory in the array member variable matchingRecords.

Parameters
searchMask- [in] The search mask.
Returns
Number of matching records.

◆ DetermineWorklistFiles()

void WlmFileSystemInteractionManager::DetermineWorklistFiles ( OFVector< OFString > &  worklistFiles)
protected

This function determines all worklist files in the directory specified by dfPath and calledApplicationEntityTitle, and returns the complete path and filename information in an array of strings.

Parameters
worklistFilesSet of strings, each specifying path and filename to one worklist file.

◆ DisconnectFromFileSystem()

OFCondition WlmFileSystemInteractionManager::DisconnectFromFileSystem ( )

Disconnects from the worklist file system database.

Returns
Indicates if the connection was disconnected successfully.

◆ 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.

◆ IsWorklistFile()

OFBool WlmFileSystemInteractionManager::IsWorklistFile ( const char *  fname)
protected

This function returns OFTrue if the given filename refers to a worklist file, i.e.

has an extension of ".wl".

Parameters
fnameThe name of the file.
Returns
OFTrue in case the given filename refers to a worklist file, 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.

◆ 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 Jul 17 2017 for DCMTK Version 3.6.2 by Doxygen 1.8.13