DCMTK
Version 3.6.4
OFFIS DICOM Toolkit
|
This class encapsulates data structures and operations for connecting to an arbitrary data source in the framework of the DICOM basic worklist management service. More...
Public Member Functions | |
WlmDataSource () | |
default constructor. | |
virtual | ~WlmDataSource () |
destructor | |
virtual OFCondition | ConnectToDataSource ()=0 |
Connects to the data source. More... | |
virtual OFCondition | DisconnectFromDataSource ()=0 |
Disconnects from the data source. More... | |
void | SetCalledApplicationEntityTitle (const OFString &value) |
Set value in member variable. More... | |
void | SetFailOnInvalidQuery (OFBool value) |
Set value in member variable. More... | |
void | SetNoSequenceExpansion (OFBool value) |
Set value in a member variable. More... | |
void | SetReturnedCharacterSet (WlmReturnedCharacterSetType value) |
Set value in member variable. More... | |
virtual OFBool | IsCalledApplicationEntityTitleSupported ()=0 |
Checks if the called application entity title is supported. More... | |
virtual WlmDataSourceStatusType | StartFindRequest (const DcmDataset &findRequestIdentifiers)=0 |
Based on the search mask which was passed, this function determines all the records in the database which match the values of matching key attributes in the search mask. More... | |
virtual DcmDataset * | NextFindResponse (WlmDataSourceStatusType &rStatus)=0 |
This function will return the next dataset that matches the given search mask, if there is one more resulting dataset to return. More... | |
WlmDataSourceStatusType | CancelFindRequest () |
This function handles a C-CANCEL Request during the processing of a C-FIND Request. More... | |
DcmAttributeTag * | GetOffendingElements () |
Get value from member variable. More... | |
DcmLongString * | GetErrorComments () |
Get value from member variable. More... | |
virtual void | SetDbDsn (const OFString &) |
Set value in a member variable in a derived class. | |
virtual void | SetDbUserName (const OFString &) |
Set value in a member variable in a derived class. | |
virtual void | SetDbUserPassword (const OFString &) |
Set value in a member variable in a derived class. | |
virtual void | SetCfgFileMatchRecords (const OFString &) |
Set value in a member variable in a derived class. | |
virtual void | SetCfgFileSelectValues (const OFString &) |
Set value in a member variable in a derived class. | |
virtual void | SetDatabaseType (WlmDatabaseType) |
Set value in a member variable in a derived class. | |
virtual void | SetSerialNumber (const int) |
Set value in a member variable in a derived class. More... | |
virtual void | SetInstitutionId (const unsigned int) |
Set value in a member variable in a derived class. More... | |
virtual void | SetDfPath (const OFString &) |
Set value in a member variable in a derived class. | |
virtual void | SetEnableRejectionOfIncompleteWlFiles (OFBool) |
Set value in a member variable in a derived class. | |
virtual void | SetCreateNullvalues (OFBool) |
Set value in a member variable in a derived class. | |
virtual void | SetPfFileName (const OFString &) |
Set value in a member variable in a derived class. | |
virtual void | SetModalityToReturn (const OFString &) |
Set value in a member variable in a derived class. | |
virtual void | SetCommaSeparatePatientName (OFBool) |
Set value in a member variable in a derived class. | |
virtual void | SetReturnPatientUidInAccessionNumber (OFBool) |
Set value in a member variable in a derived class. | |
Protected Member Functions | |
OFBool | CheckSearchMask (DcmDataset *searchMask) |
This function checks if the search mask has a correct format. More... | |
void | CheckNonSequenceElementInSearchMask (DcmDataset *searchMask, int &invalidMatchingKeyAttributeCount, DcmElement *element, DcmSequenceOfItems *supSequenceElement=NULL) |
This function checks if a non-sequence element in the search mask has a correct format. More... | |
void | CheckSequenceElementInSearchMask (DcmDataset *searchMask, int &invalidMatchingKeyAttributeCount, DcmElement *element, DcmSequenceOfItems *supSequenceElement=NULL) |
This function checks if a sequence element in the search mask has a correct format. More... | |
void | ExpandEmptySequenceInSearchMask (DcmElement *&element) |
According to the 2001 DICOM standard (part 4, section C.2.2.2.6), if a search mask contains a sequence attribute which contains no item or a single empty item, all attributes from that particular sequence are in fact queried and shall be returned by the SCP. More... | |
OFBool | IsSupportedMatchingKeyAttribute (DcmElement *element, DcmSequenceOfItems *supSequenceElement=NULL) |
This function checks if the given element refers to an attribute which is a supported matching key attribute. More... | |
OFBool | IsSupportedReturnKeyAttribute (DcmElement *element, DcmSequenceOfItems *supSequenceElement=NULL) |
This function checks if the given element refers to an attribute which is a supported return key attribute. More... | |
void | ClearDataset (DcmDataset *idents) |
This function removes all elements from the given DcmDataset object. More... | |
void | PutOffendingElements (const DcmTagKey &tag) |
This function inserts the tag of an offending element into the corresponding member variable, unless this tag is already con- tained in this variable. More... | |
void | PutErrorElements (const DcmTagKey &tag) |
This function inserts the tag of an error element into the corresponding member variable, without checking if it is already contained in this variable. More... | |
OFBool | CheckMatchingKey (const DcmElement *elem) |
This function checks if the passed matching key's value only uses characters which are part of its data type's character repertoire. More... | |
OFBool | ContainsOnlyValidCharacters (const char *s, const char *charset) |
This function returns OFTrue if all the characters of s can be found in the string charset. More... | |
OFBool | GetStringValue (const DcmElement *elem, OFString &resultVal) |
This function returns the value of the given DICOM string element (attribute) in the parameter resultVal and returns OFTrue if successful. More... | |
OFString | DeleteLeadingAndTrailingBlanks (const OFString &value) |
This function makes a copy of value without leading and trailing blanks. More... | |
WlmDataSource (const WlmDataSource &Src) | |
Protected undefined copy-constructor. More... | |
WlmDataSource & | operator= (const WlmDataSource &Src) |
Protected undefined operator=. More... | |
Protected Attributes | |
OFBool | failOnInvalidQuery |
indicates if the application shall fail on an invalid C-Find RQ message | |
OFString | calledApplicationEntityTitle |
called AE title | |
DcmDataset * | identifiers |
the search mask which is contained in the C-Find RQ message | |
DcmAttributeTag * | errorElements |
list of error elements | |
DcmAttributeTag * | offendingElements |
list of offending elements | |
DcmLongString * | errorComment |
error comment | |
OFBool | foundUnsupportedOptionalKey |
indicates if we encountered an unsupported optional key attribute in the search mask | |
OFBool | readLockSetOnDataSource |
indicates if a read lock was set on the data source | |
OFBool | noSequenceExpansion |
indicates if the expansion of empty sequence attributes shall take place or not | |
WlmReturnedCharacterSetType | returnedCharacterSet |
returned character set type | |
OFList< DcmDataset * > | matchingDatasets |
array of matching datasets | |
OFString | specificCharacterSet |
potentially specified specific character set (in search mask) | |
WlmSuperiorSequenceInfoType * | superiorSequenceArray |
information about superior sequence elements; necessary for inserting values into resultDataset | |
unsigned long | numOfSuperiorSequences |
number of elements in above array | |
This class encapsulates data structures and operations for connecting to an arbitrary data source in the framework of the DICOM basic worklist management service.
|
protected |
Protected undefined copy-constructor.
Shall never be called.
Src | Source object. |
WlmDataSourceStatusType WlmDataSource::CancelFindRequest | ( | ) |
This function handles a C-CANCEL Request during the processing of a C-FIND Request.
In detail, in case there are still matching datasets captured in member variable matchingDatasets, memory for these datasets (and the array itself) is freed and all pointers are set to NULL.
|
protected |
This function checks if the passed matching key's value only uses characters which are part of its data type's character repertoire.
Note that at the moment this application supports the following matching key attributes: DCM_ScheduledProcedureStepSequence (0040,0100) SQ R 1
DCM_ScheduledStationAETitle (0040,0001) AE R 1 DCM_ScheduledProcedureStepStartDate (0040,0002) DA R 1 DCM_ScheduledProcedureStepStartTime (0040,0003) TM R 1 DCM_Modality (0008,0060) CS R 1 DCM_ScheduledPerformingPhysicianName (0040,0006) PN R 2
DCM_PatientName (0010,0010) PN R 1 DCM_PatientID (0010,0020) LO R 1 DCM_AccessionNumber (0008,0050) SH O 2 DCM_RequestedProcedureID (0040,1001) SH O 1 DCM_ReferringPhysicianName (0008,0090) PN O 2 DCM_PatientSex (0010,0040) CS O 2 DCM_RequestingPhysician (0032,1032) PN O 2 DCM_AdmissionID (0038,0010) LO O 2 DCM_RequestedProcedurePriority (0040,1003) SH O 2 DCM_PatientBirthDate (0010,0030) DA O 2 As a result, the following data types have to be supported in this function: AE, DA, TM, CS, PN, LO and SH. For the correct specification of these datatypes 2003 DICOM standard, part 5, section 6.2, table 6.2-1.
elem | Element which shall be checked. |
|
protected |
This function checks if a non-sequence element in the search mask has a correct format.
Note that if the current element is an unsupported element, the entire element will be re- moved from the search mask, since unsupported elements shall not be returned to the caller.
searchMask | Pointer to the search mask. |
invalidMatchingKeyAttributeCount | Counter that counts invalid elements in the search mask. |
element | Pointer to the currently processed element. |
supSequenceElement | Pointer to the superordinate sequence element of which the currently processed element is an attribute. |
|
protected |
This function checks if the search mask has a correct format.
It returns OFTrue if this is the case, OFFalse if this is not the case.
searchMask | Contains the search mask. |
|
protected |
This function checks if a sequence element in the search mask has a correct format.
Note that if the current element is an unsupported element, the entire element will be re- moved from the search mask, since unsupported elements shall not be returned to the caller. Moreover, in case the sequence element in the search mask is supported but empty, this function will expand the sequence element by inserting all required attributes into that sequence.
searchMask | Pointer to the search mask. |
invalidMatchingKeyAttributeCount | Counter that counts invalid elements in the search mask. |
element | Pointer to the currently processed element. |
supSequenceElement | Pointer to the superordinate sequence element of which the currently processed element is an attribute. |
|
protected |
This function removes all elements from the given DcmDataset object.
idents | pointer to object which shall be cleared. |
|
pure virtual |
Connects to the data source.
Implemented in WlmDataSourceFileSystem.
|
protected |
This function returns OFTrue if all the characters of s can be found in the string charset.
s | String which shall be checked. |
charset | Possible character set for s. (valid pointer expected.) |
This function makes a copy of value without leading and trailing blanks.
value | The source string. |
|
pure virtual |
Disconnects from the data source.
Implemented in WlmDataSourceFileSystem.
|
protected |
According to the 2001 DICOM standard (part 4, section C.2.2.2.6), if a search mask contains a sequence attribute which contains no item or a single empty item, all attributes from that particular sequence are in fact queried and shall be returned by the SCP.
This implementation accounts for this specification by inserting a corresponding single item with all required attributes into such emtpy sequences. This function performs the insertion of the required item and attributes.
element | Pointer to the currently processed element. |
DcmLongString* WlmDataSource::GetErrorComments | ( | ) |
Get value from member variable.
DcmAttributeTag* WlmDataSource::GetOffendingElements | ( | ) |
Get value from member variable.
|
protected |
This function returns the value of the given DICOM string element (attribute) in the parameter resultVal and returns OFTrue if successful.
If the element does not refer to a string attribute or contains an empty value, OFFalse is returned.
elem | The DICOM element. |
resultVal | The resulting string value |
|
pure virtual |
Checks if the called application entity title is supported.
This function expects that the called application entity title was made available for this instance through WlmDataSource::SetCalledApplicationEntityTitle(). If this is not the case, OFFalse will be returned.
Implemented in WlmDataSourceFileSystem.
|
protected |
This function checks if the given element refers to an attribute which is a supported matching key attribute.
If this is the case OFTrue is returned, else OFFalse. Currently, the following attributes are supported as matching keys: DCM_ScheduledProcedureStepSequence (0040,0100) SQ R 1
DCM_ScheduledStationAETitle (0040,0001) AE R 1 DCM_ScheduledProcedureStepStartDate (0040,0002) DA R 1 DCM_ScheduledProcedureStepStartTime (0040,0003) TM R 1 DCM_Modality (0008,0060) CS R 1 DCM_ScheduledPerformingPhysicianName (0040,0006) PN R 2
DCM_PatientName (0010,0010) PN R 1 DCM_PatientID (0010,0020) LO R 1 DCM_AccessionNumber (0008,0050) SH O 2 DCM_RequestedProcedureID (0040,1001) SH O 1 DCM_ReferringPhysicianName (0008,0090) PN O 2 DCM_PatientSex (0010,0040) CS O 2 DCM_RequestingPhysician (0032,1032) PN O 2 DCM_AdmissionID (0038,0010) LO O 2 DCM_RequestedProcedurePriority (0040,1003) SH O 2 DCM_PatientBirthDate (0010,0030) DA O 2
element | Pointer to the element which shall be checked. |
supSequenceElement | Pointer to the superordinate sequence element of which the currently processed element is an attribute, or NULL if the currently processed element does not belong to any sequence. |
|
protected |
This function checks if the given element refers to an attribute which is a supported return key attribute.
If this is the case OFTrue is returned, else OFFalse. Currently, the following attributes are supported as return keys: DCM_SpecificCharacterSet (0008,0005) CS O 1 DCM_ScheduledProcedureStepSequence (0040,0100) SQ R 1
DCM_ScheduledStationAETitle (0040,0001) AE R 1 DCM_ScheduledProcedureStepStartDate (0040,0002) DA R 1 DCM_ScheduledProcedureStepStartTime (0040,0003) TM R 1 DCM_Modality (0008,0060) CS R 1 DCM_ScheduledPerformingPhysicianName (0040,0006) PN R 2 DCM_ScheduledProcedureStepDescription (0040,0007) LO O 1 DCM_ScheduledStationName (0040,0010) SH O 2 DCM_ScheduledProcedureStepLocation (0040,0011) SH O 2 DCM_PreMedication (0040,0012) LO O 2 DCM_ScheduledProcedureStepID (0040,0009) SH O 1 DCM_RequestedContrastAgent (0032,1070) LO O 2 DCM_CommentsOnTheScheduledProcedureStep (0040,0400) LT O 3 (from the Scheduled Procedure Step Module) DCM_ScheduledProcedureStepStatus (0040,0020) CS O 3 DCM_ScheduledProcedureStepEndDate (0040,0004) DA O 3 (from the Scheduled Procedure Step Module) DCM_ScheduledProcedureStepEndTime (0040,0005) TM O 3 (from the Scheduled Procedure Step Module) DCM_ScheduledProtocolCodeSequence (0040,0008) SQ O 1C
DCM_CodeValue (0008,0100) SH O 1C DCM_CodingSchemeVersion (0008,0103) SH O 3 DCM_CodingSchemeDesignator (0008,0102) SH O 1C DCM_CodeMeaning (0008,0104) LO O 3
DCM_RequestedProcedureID (0040,1001) SH O 1 DCM_RequestedProcedureDescription (0032,1060) LO O 1 DCM_StudyInstanceUID (0020,000d) UI O 1 DCM_StudyDate (0008,0020) DA O 3 DCM_StudyTime (0008,0030) TM O 3 DCM_ReferencedStudySequence (0008,1110) SQ O 2
DCM_ReferencedSOPClassUID (0008,1150) UI O 1 DCM_ReferencedSOPInstanceUID (0008,1155) UI O 1
DCM_RequestedProcedurePriority (0040,1003) SH O 2 DCM_PatientTransportArrangements (0040,1004) LO O 2 DCM_AccessionNumber (0008,0050) SH O 2 DCM_RequestingPhysician (0032,1032) PN O 2 DCM_ReferringPhysicianName (0008,0090) PN O 2 DCM_AdmissionID (0038,0010) LO O 2 DCM_CurrentPatientLocation (0038,0300) LO O 2 DCM_ReferencedPatientSequence (0008,1120) SQ O 2
DCM_ReferencedSOPClassUID (0008,1150) UI O 2 DCM_ReferencedSOPInstanceUID (0008,1155) UI O 2
DCM_PatientName (0010,0010) PN R 1 DCM_PatientID (0010,0020) LO R 1 DCM_IssuerOfPatientID (0010,0021) LO O 3 (from the Patient Identification Module) DCM_PatientBirthDate (0010,0030) DA O 2 DCM_PatientSex (0010,0040) CS O 2 DCM_PatientWeight (0010,1030) DS O 2 DCM_ConfidentialityConstraintOnPatientDataDescription (0040,3001) LO O 2 DCM_PatientState (0038,0500) LO O 2 DCM_PregnancyStatus (0010,21c0) US O 2 DCM_MedicalAlerts (0010,2000) LO O 2 DCM_ContrastAllergies (0010,2110) LO O 2 DCM_SpecialNeeds (0038,0050) LO O 2 DCM_NamesOfIntendedRecipientsOfResults (0040,1010) PN O 3 (from the Requested Procedure Module) DCM_InstitutionName (0008,0080) LO O 3 (from the Visit Identification Module) DCM_AdmittingDiagnosesDescription (0008,1080) LO O 3 (from the Visit Admission Module) DCM_RETIRED_OtherPatientIDs (0010,1000) LO O 3 (from the Patient Identification Module) DCM_PatientSize (0010,1020) DS O 3 (from the Patient Demographic Module) DCM_EthnicGroup (0010,2160) SH O 3 (from the Patient Demographic Module) DCM_PatientComments (0010,4000) LT O 3 (from the Patient Demographic Module) DCM_AdditionalPatientHistory (0010,21b0) LT O 3 (from the Patient Medical Module) DCM_LastMenstrualDate (0010,21d0) DA O 3 (from the Patient Medical Module) DCM_InstitutionAddress (0008,0081) ST O 3 (from the Visit Identification Module) DCM_OtherPatientNames (0010,1001) PN O 3 (from the Patient Identification Module) DCM_PatientAddress (0010,1040) LO O 3 (from the Patient Demographic Module) DCM_MilitaryRank (0010,1080) LO O 3 (from the Patient Demographic Module) DCM_SmokingStatus (0010,21a0) CS O 3 (from the Patient Medical Module) DCM_RequestingService (0032,1033) LO O 3 (from the Imaging Service Request Module) DCM_IssuerOfAdmissionID (0038,0011) LO O 3 (from the Visit Identification Module) DCM_ReasonForTheRequestedProcedure (0040,1002) LO O 3 (from the Requested Procedure Module) DCM_RequestedProcedureLocation (0040,1005) LO O 3 (from the Requested Procedure Module) DCM_ConfidentialityCode (0040,1008) LO O 3 (from the Requested Procedure Module) DCM_ReportingPriority (0040,1009) SH O 3 (from the Requested Procedure Module) DCM_RequestedProcedureComments (0040,1400) LT O 3 (from the Requested Procedure Module) DCM_RETIRED_ReasonForTheImagingServiceRequest (0040,2001) LO O 3 (from the Imaging Service Request Module) DCM_IssueDateOfImagingServiceRequest (0040,2004) DA O 3 (from the Imaging Service Request Module) DCM_IssueTimeOfImagingServiceRequest (0040,2005) TM O 3 (from the Imaging Service Request Module) DCM_OrderEnteredBy (0040,2008) PN O 3 (from the Imaging Service Request Module) DCM_OrderEnterersLocation (0040,2009) SH O 3 (from the Imaging Service Request Module) DCM_OrderCallbackPhoneNumber (0040,2010) SH O 3 (from the Imaging Service Request Module) DCM_PlacerOrderNumberImagingServiceRequest (0040,2016) LO O 3 (from the Imaging Service Request Module) DCM_FillerOrderNumberImagingServiceRequest (0040,2017) LO O 3 (from the Imaging Service Request Module) DCM_ImagingServiceRequestComments (0040,2400) LT O 3 (from the Imaging Service Request Module) DCM_RequestedProcedureCodeSequence (0032,1064) SQ O 3 (from the Requested Procedure Module)
DCM_CodeValue (0008,0100) SH O 1C DCM_CodingSchemeVersion (0008,0103) SH O 3 DCM_CodingSchemeDesignator (0008,0102) SH O 1C DCM_CodeMeaning (0008,0104) LO O 3
element | Pointer to the element which shall be checked. |
supSequenceElement | Pointer to the superordinate sequence element of which the currently processed element is an attribute, or NULL if the currently processed element does not belong to any sequence. |
|
pure virtual |
This function will return the next dataset that matches the given search mask, if there is one more resulting dataset to return.
In such a case, rstatus will be set to WLM_PENDING or WLM_PENDING_WARNING, depending on if an unsupported key attribute was encountered in the search mask or not. If there are no more datasets that match the search mask, this function will return an empty dataset and WLM_SUCCESS in rstatus.
rStatus | A value of type WlmDataSourceStatusType that can be used to decide if there are still elements that have to be returned. |
Implemented in WlmDataSourceFileSystem.
|
protected |
Protected undefined operator=.
Shall never be called.
Src | Source object. |
|
protected |
This function inserts the tag of an error element into the corresponding member variable, without checking if it is already contained in this variable.
tag | The tag that shall be inserted. |
|
protected |
This function inserts the tag of an offending element into the corresponding member variable, unless this tag is already con- tained in this variable.
tag | The tag that shall be inserted. |
void WlmDataSource::SetCalledApplicationEntityTitle | ( | const OFString & | value | ) |
Set value in member variable.
value | The value to set. |
void WlmDataSource::SetFailOnInvalidQuery | ( | OFBool | value | ) |
Set value in member variable.
value | The value to set. |
|
inlinevirtual |
Set value in a member variable in a derived class.
int | The value to set. |
void WlmDataSource::SetNoSequenceExpansion | ( | OFBool | value | ) |
Set value in a member variable.
value | The value to set. |
void WlmDataSource::SetReturnedCharacterSet | ( | WlmReturnedCharacterSetType | value | ) |
Set value in member variable.
value | The value to set. |
|
inlinevirtual |
Set value in a member variable in a derived class.
int | The value to set. |
|
pure virtual |
Based on the search mask which was passed, this function determines all the records in the database which match the values of matching key attributes in the search mask.
For each matching record, a DcmDataset structure is generated which will later be returned to the SCU as a result of query. The DcmDataset structures for all matching records will be stored in the protected member variable matchingDatasets.
findRequestIdentifiers | Contains the search mask. |
Implemented in WlmDataSourceFileSystem.