wldsfs.h

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 */


Generated on 20 Dec 2005 for OFFIS DCMTK Version 3.5.4 by Doxygen 1.4.5