OFFIS DCMTK  Version 3.6.0
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...

Collaboration diagram for WlmFileSystemInteractionManager:
[legend]

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 (OFOrderedSet< 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 function checks if the specified description and code sequence attribute are both incomplete in the given dataset. 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 DatasetMatchesSearchMask (DcmDataset *dataset, DcmDataset *searchMask)
 This function returns OFTrue, if the matching key attribute values in the dataset match the matching key attribute values in the search mask. More...
 
void DetermineMatchingKeyAttributeValues (DcmDataset *dataset, const char **&matchingKeyAttrValues)
 This function determines the values of the matching key attributes in the given dataset. More...
 
OFBool ScheduledStationAETitlesMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute scheduled station AE title match; otherwise OFFalse will be returned. More...
 
OFBool ScheduledProcedureStepStartDateTimesMatch (const char *datasetDateValue, const char *datasetTimeValue, const char *searchMaskDateValue, const char *searchMaskTimeValue)
 This function returns OFTrue if the dataset's and the search mask's values in attributes scheduled procedure step start date and scheduled procedure step start time match; otherwise OFFalse will be returned. More...
 
OFBool ModalitiesMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute modality match; otherwise OFFalse will be returned. More...
 
OFBool ScheduledPerformingPhysicianNamesMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute scheduled performing physician's names match; otherwise OFFalse will be returned. More...
 
OFBool PatientsNamesMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute patient's names match; otherwise OFFalse will be returned. More...
 
OFBool PatientsIDsMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute patient id match; otherwise OFFalse will be returned. More...
 
OFBool AccessionNumbersMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute accession number match; otherwise OFFalse will be returned. More...
 
OFBool RequestedProcedureIdsMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute requested procedure id match; otherwise OFFalse will be returned. More...
 
OFBool ReferringPhysicianNamesMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute referring physician's name match; otherwise OFFalse will be returned. More...
 
OFBool PatientsSexesMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute patient sex match; otherwise OFFalse will be returned. More...
 
OFBool RequestingPhysiciansMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute requesting physician match; otherwise OFFalse will be returned. More...
 
OFBool AdmissionIdsMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute admission id match; otherwise OFFalse will be returned. More...
 
OFBool RequestedProcedurePrioritiesMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute requested procedure priorities match; otherwise OFFalse will be returned. More...
 
OFBool PatientsBirthDatesMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values in attribute patient's birth date match; otherwise OFFalse will be returned. More...
 
OFBool DateTimeRangeMatch (const char *datasetDateValue, const char *datasetTimeValue, const char *searchMaskDateValue, const char *searchMaskTimeValue)
 This function performs a date time range match and returns OFTrue if the dataset's and the search mask's values in the corresponding attributes match; otherwise OFFalse will be returned. More...
 
OFBool DateRangeMatch (const char *datasetDateValue, const char *searchMaskDateValue)
 This function performs a date range match and returns OFTrue if the dataset's and the search mask's values in the corresponding attributes match; otherwise OFFalse will be returned. More...
 
OFBool TimeRangeMatch (const char *datasetTimeValue, const char *searchMaskTimeValue)
 This function performs a time range match and returns OFTrue if the dataset's and the search mask's values in the corresponding attributes match; otherwise OFFalse will be returned. More...
 
OFBool DateTimeSingleValueMatch (const char *datasetDateValue, const char *datasetTimeValue, const char *searchMaskDateValue, const char *searchMaskTimeValue)
 This function performs a date time single value match and returns OFTrue if the dataset's and the search mask's values in the corresponding attributes match; otherwise OFFalse will be returned. More...
 
OFBool DateSingleValueMatch (const char *datasetDateValue, const char *searchMaskDateValue)
 This function performs a date single value match and returns OFTrue if the dataset's and the search mask's values in the corresponding attributes match; otherwise OFFalse will be returned. More...
 
OFBool TimeSingleValueMatch (const char *datasetTimeValue, const char *searchMaskTimeValue)
 This function performs a time single value match and returns OFTrue if the dataset's and the search mask's values in the corresponding attributes match; otherwise OFFalse will be returned. More...
 
OFBool CaseSensitiveSingleValueMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values match while performing a case sensitive single value match; otherwise OFFalse will be returned. More...
 
OFBool WildcardMatch (const char *datasetValue, const char *searchMaskValue)
 This function returns OFTrue if the dataset's and the search mask's values match while performing a wildcard match; otherwise OFFalse will be returned. More...
 
OFBool MatchStarSymbol (const char *dv, const char *sv)
 This function is called, if the search pattern contains a star symbol. More...
 
void ExtractValuesFromRange (const char *range, char *&lower, char *&upper)
 This function extracts the actual lower and upper date or time values from a given date or time range. 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.

Definition at line 48 of file wlfsim.h.

Constructor & Destructor Documentation

WlmFileSystemInteractionManager::WlmFileSystemInteractionManager ( const WlmFileSystemInteractionManager old)
private

Privately defined copy constructor.

Parameters
oldObject which shall be copied.

Member Function Documentation

OFBool WlmFileSystemInteractionManager::AccessionNumbersMatch ( const char *  datasetValue,
const char *  searchMaskValue 
)
protected

This function returns OFTrue if the dataset's and the search mask's values in attribute accession number match; otherwise OFFalse will be returned.

Parameters
datasetValueValue for the corresponding attribute in the dataset; might be NULL.
searchMaskValueValue for the corresponding attribute in the search mask; never NULL.
Returns
OFTrue if the values match, OFFalse otherwise.
OFBool WlmFileSystemInteractionManager::AdmissionIdsMatch ( const char *  datasetValue,
const char *  searchMaskValue 
)
protected

This function returns OFTrue if the dataset's and the search mask's values in attribute admission id match; otherwise OFFalse will be returned.

Parameters
datasetValueValue for the corresponding attribute in the dataset; might be NULL.
searchMaskValueValue for the corresponding attribute in the search mask; never NULL.
Returns
OFTrue if the values match, OFFalse otherwise.
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.
OFBool WlmFileSystemInteractionManager::CaseSensitiveSingleValueMatch ( const char *  datasetValue,
const char *  searchMaskValue 
)
protected

This function returns OFTrue if the dataset's and the search mask's values match while performing a case sensitive single value match; otherwise OFFalse will be returned.

Parameters
datasetValueValue for the corresponding attribute in the dataset; never NULL.
searchMaskValueValue for the corresponding attribute in the search mask; never NULL.
Returns
OFTrue if the values match, OFFalse otherwise.
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.

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.
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.
OFBool WlmFileSystemInteractionManager::DatasetMatchesSearchMask ( DcmDataset dataset,
DcmDataset searchMask 
)
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.
Returns
OFTrue in case the dataset matches the search mask in the matching key attribute values, OFFalse otherwise.
OFBool WlmFileSystemInteractionManager::DateRangeMatch ( const char *  datasetDateValue,
const char *  searchMaskDateValue 
)
protected

This function performs a date range match and returns OFTrue if the dataset's and the search mask's values in the corresponding attributes match; otherwise OFFalse will be returned.

Parameters
datasetDateValueValue for the corresponding attribute in the dataset; might be NULL.
searchMaskDateValueValue for the corresponding attribute in the search mask; never NULL.
Returns
OFTrue if the values match, OFFalse otherwise.
OFBool WlmFileSystemInteractionManager::DateSingleValueMatch ( const char *  datasetDateValue,
const char *  searchMaskDateValue 
)
protected

This function performs a date single value match and returns OFTrue if the dataset's and the search mask's values in the corresponding attributes match; otherwise OFFalse will be returned.

Parameters
datasetDateValueValue for the corresponding attribute in the dataset; might be NULL.
searchMaskDateValueValue for the corresponding attribute in the search mask; never NULL.
Returns
OFTrue if the values match, OFFalse otherwise.
OFBool WlmFileSystemInteractionManager::DateTimeRangeMatch ( const char *  datasetDateValue,