00001 /* 00002 * 00003 * Copyright (C) 1996-2005, OFFIS 00004 * 00005 * This software and supporting documentation were developed by 00006 * 00007 * Kuratorium OFFIS e.V. 00008 * Healthcare Information and Communication Systems 00009 * Escherweg 2 00010 * D-26121 Oldenburg, Germany 00011 * 00012 * THIS SOFTWARE IS MADE AVAILABLE, AS IS, AND OFFIS MAKES NO WARRANTY 00013 * REGARDING THE SOFTWARE, ITS PERFORMANCE, ITS MERCHANTABILITY OR 00014 * FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES OR 00015 * ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND 00016 * PERFORMANCE OF THE SOFTWARE IS WITH THE USER. 00017 * 00018 * Module: dcmwlm 00019 * 00020 * Author: Thomas Wilkens 00021 * 00022 * Purpose: Class for connecting to a file-based data source. 00023 * 00024 * Last Update: $Author: meichel $ 00025 * Update Date: $Date: 2005/12/08 16:05:41 $ 00026 * Source File: $Source: /share/dicom/cvs-depot/dcmtk/dcmwlm/include/dcmtk/dcmwlm/wldsfs.h,v $ 00027 * CVS/RCS Revision: $Revision: 1.15 $ 00028 * Status: $State: Exp $ 00029 * 00030 * CVS/RCS Log at end of file 00031 * 00032 */ 00033 00034 #ifndef WlmDataSourceFileSystem_h 00035 #define WlmDataSourceFileSystem_h 00036 00037 #include "dcmtk/config/osconfig.h" 00038 #include "dcmtk/dcmwlm/wlds.h" 00039 00040 class WlmFileSystemInteractionManager; 00041 class DcmDataset; 00042 class OFCondition; 00043 class DcmElement; 00044 class DcmItem; 00045 00049 class WlmDataSourceFileSystem : public WlmDataSource 00050 { 00051 protected: 00053 WlmFileSystemInteractionManager *fileSystemInteractionManager; 00055 char *dfPath; 00057 OFBool enableRejectionOfIncompleteWlFiles; 00059 int handleToReadLockFile; 00060 00065 OFBool SetReadlock(); 00066 00070 OFBool ReleaseReadlock(); 00071 00081 void HandleNonSequenceElementInResultDataset( DcmElement *element, unsigned long idx ); 00082 00092 void HandleSequenceElementInResultDataset( DcmElement *element, unsigned long idx ); 00093 00097 WlmDataSourceFileSystem( const WlmDataSourceFileSystem &Src ); 00098 00103 WlmDataSourceFileSystem &operator=( const WlmDataSourceFileSystem &Src ); 00104 00105 00106 public: 00109 WlmDataSourceFileSystem(); 00110 00113 ~WlmDataSourceFileSystem(); 00114 00118 OFCondition ConnectToDataSource(); 00119 00123 OFCondition DisconnectFromDataSource(); 00124 00128 void SetDfPath( const char *value ); 00129 00133 void SetEnableRejectionOfIncompleteWlFiles( OFBool value ); 00134 00142 OFBool IsCalledApplicationEntityTitleSupported(); 00143 00160 void HandleExistentButEmptyDescriptionAndCodeSequenceAttributes( DcmItem *dataset, const DcmTagKey &descriptionTagKey, const DcmTagKey &codeSequenceTagKey ); 00161 00173 void HandleExistentButEmptyReferencedStudyOrPatientSequenceAttributes( DcmDataset *dataset, const DcmTagKey &sequenceTagKey ); 00174 00187 WlmDataSourceStatusType StartFindRequest( DcmDataset &findRequestIdentifiers ); 00188 00199 DcmDataset *NextFindResponse( WlmDataSourceStatusType &rStatus ); 00200 }; 00201 00202 #endif 00203 00204 /* 00205 ** CVS Log 00206 ** $Log: wldsfs.h,v $ 00207 ** Revision 1.15 2005/12/08 16:05:41 meichel 00208 ** Changed include path schema for all DCMTK header files 00209 ** 00210 ** Revision 1.14 2005/05/04 11:33:17 wilkens 00211 ** Modified handling of the attributes ScheduledProcedureStepDescription/ 00212 ** ScheduledProtocolCodeSequence and RequestedProcedureDescription/ 00213 ** RequestedProcedureCodeSequence in wlmscpfs: in case one of the two attributes 00214 ** does not contain any information in a C-Find RSP message which is about to be 00215 ** sent to an SCU, the empty attribute will be removed from the C-Find RSP message 00216 ** before the message is sent, in order not to send an invalid RSP message. 00217 ** Added two command line options --enable-file-reject (default) and 00218 ** --disable-file-reject to wlmscpfs: these options can be used to enable or 00219 ** disable a file rejection mechanism which makes sure only complete worklist files 00220 ** will be used during the matching process. A worklist file is considered to be 00221 ** complete if it contains all necessary type 1 information which the SCP might 00222 ** have to return to an SCU in a C-Find response message. 00223 ** 00224 ** Revision 1.13 2004/05/26 10:36:53 meichel 00225 ** Fixed minor bug in worklist server regarding failed read locks. 00226 ** 00227 ** Revision 1.12 2004/01/07 08:32:28 wilkens 00228 ** Added new sequence type return key attributes to wlmscpfs. Fixed bug that for 00229 ** equally named attributes in sequences always the same value will be returned. 00230 ** Added functionality that also more than one item will be returned in sequence 00231 ** type return key attributes. 00232 ** 00233 ** Revision 1.11 2003/08/21 13:38:55 wilkens 00234 ** Moved declaration and initialization of member variables matchingDatasets and 00235 ** NumOfMatchingDatasets to base class. 00236 ** 00237 ** Revision 1.10 2003/07/02 09:17:55 wilkens 00238 ** Updated documentation to get rid of doxygen warnings. 00239 ** 00240 ** Revision 1.9 2002/12/16 11:08:34 wilkens 00241 ** Added missing #include "osconfig.h" to certain files. 00242 ** 00243 ** Revision 1.8 2002/12/09 13:40:49 joergr 00244 ** Renamed parameter to avoid name clash with global function index(). 00245 ** 00246 ** Revision 1.7 2002/08/12 10:56:08 wilkens 00247 ** Made some modifications in in order to be able to create a new application 00248 ** which contains both wlmscpdb and ppsscpdb and another application which 00249 ** contains both wlmscpfs and ppsscpfs. 00250 ** 00251 ** Revision 1.6 2002/08/05 09:09:57 wilkens 00252 ** Modfified the project's structure in order to be able to create a new 00253 ** application which contains both wlmscpdb and ppsscpdb. 00254 ** 00255 ** Revision 1.4 2002/07/17 13:10:17 wilkens 00256 ** Corrected some minor logical errors in the wlmscpdb sources and completely 00257 ** updated the wlmscpfs so that it does not use the original wlistctn sources 00258 ** any more but standard wlm sources which are now used by all three variants 00259 ** of wlmscps. 00260 ** 00261 ** Revision 1.3 2002/06/10 11:24:54 wilkens 00262 ** Made some corrections to keep gcc 2.95.3 quiet. 00263 ** 00264 ** Revision 1.2 2002/04/18 14:19:53 wilkens 00265 ** Modified Makefiles. Updated latest changes again. These are the latest 00266 ** sources. Added configure file. 00267 ** 00268 ** Revision 1.3 2002/01/08 17:45:34 joergr 00269 ** Reformatted source files (replaced Windows newlines by Unix ones, replaced 00270 ** tabulator characters by spaces, etc.) 00271 ** 00272 ** Revision 1.2 2002/01/08 16:47:53 joergr 00273 ** Added preliminary database support using OTL interface library (modified by 00274 ** MC/JR on 2001-12-21). 00275 ** 00276 ** Revision 1.1 2002/01/08 16:30:59 joergr 00277 ** Added new module "dcmwlm" developed by Thomas Wilkens (initial release for 00278 ** Windows, dated 2001-12-20). 00279 ** 00280 ** 00281 */