⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 wlmactmg.h

📁 转化为DIB位图再显示出来的dicom文件C++代码
💻 H
字号:
/* * *  Copyright (C) 1996-2005, OFFIS * *  This software and supporting documentation were developed by * *    Kuratorium OFFIS e.V. *    Healthcare Information and Communication Systems *    Escherweg 2 *    D-26121 Oldenburg, Germany * *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER. * *  Module:  dcmwlm * *  Author:  Thomas Wilkens * *  Purpose: Activity manager class for basic worklist management service *           class provider engines. * *  Last Update:      $Author: meichel $ *  Update Date:      $Date: 2005/12/08 16:05:43 $ *  Source File:      $Source: /share/dicom/cvs-depot/dcmtk/dcmwlm/include/dcmtk/dcmwlm/wlmactmg.h,v $ *  CVS/RCS Revision: $Revision: 1.13 $ *  Status:           $State: Exp $ * *  CVS/RCS Log at end of file * */#ifndef WlmActivityManager_h#define WlmActivityManager_h#include "dcmtk/config/osconfig.h"class WlmDataSource;class OFCondition;class OFConsole;/** This class encapsulates data structures and operations for basic worklist management service *  class providers. */class WlmActivityManager{  protected:    /// data source connection object    WlmDataSource *dataSource;    /// port on which the application is listening    OFCmdUnsignedInt opt_port;    /// indicates if the application shall refuse any association    OFBool opt_refuseAssociation;    /// indicates if the application shall reject associations without implementation class uids    OFBool opt_rejectWithoutImplementationUID;    /// indicates how long the application shall sleep after a find    OFCmdUnsignedInt opt_sleepAfterFind;    /// indicates how long the application shall sleep during a find    OFCmdUnsignedInt opt_sleepDuringFind;    /// max pdu size    OFCmdUnsignedInt opt_maxPDU;    /// preferred network transfer syntax    E_TransferSyntax opt_networkTransferSyntax;    /// indicates if the application is run in verbose mode or not    OFBool opt_verbose;    /// indicates if the application is run in debug mode or not    OFBool opt_debug;    /// indicates if the application shall fail on an invalid C-Find RQ message    OFBool opt_failInvalidQuery;    /// indicates if the application is run in single process mode or not    OFBool opt_singleProcess;    /// maximum number of association for non-single process mode    int opt_maxAssociations;    /// blocking mode for DIMSE operations    T_DIMSE_BlockingMode opt_blockMode;    /// timeout for DIMSE operations    int opt_dimse_timeout;    /// timeout for ACSE operations    int opt_acse_timeout;    /// array of supported abstract syntaxes    char **supportedAbstractSyntaxes;    /// number of array fields    int numberOfSupportedAbstractSyntaxes;    /// stream log information will be dumped to    OFConsole *logStream;    /// table of processes for non-single process mode    WlmProcessTableType processTable;      /** This function dumps the given information on a stream. Used for dumping information in normal, debug and verbose mode.       *  @param message The message to dump.       */    void DumpMessage( const char *message );      /** This function takes care of receiving, negotiating and accepting/refusing an       *  association request. Additionally, it handles the request the association       *  requesting application transmits after a connection isd established.       *  @param net Contains network parameters.       */    OFCondition WaitForAssociation( T_ASC_Network *net );      /** This function takes care of removing items referring to (terminated) subprocess       *  from the table which stores all subprocess information. Three different versions       *  for three different platforms are implemented.       */    void CleanChildren();      /** This function negotiates a presentation context which will be used by this application       *  and the other DICOM appliation that requests an association.       *  @param assoc The association (network connection to another DICOM application).       */    OFCondition NegotiateAssociation( T_ASC_Association *assoc );      /** This function adds a process to the table that stores process information.       *  @param pid   the process id of the sub-process which was just started.       *  @param assoc The association (network connection to another DICOM application).       */    void AddProcessToTable( int pid, T_ASC_Association *assoc );      /** This function counts all child processes which are still referenced in the process table.       *  @return The current amount of child processes.       */    int CountChildProcesses();      /** This function removes one particular item from the table which stores all subprocess       *  information. The item which shall be deleted will be identified by its process id.       *  @param pid process id.       */    void RemoveProcessFromTable( int pid );      /** This function takes care of refusing an assocation request.       *  @param assoc  The association (network connection to another DICOM application).       *  @param reason The reason why the association request will be refused.       */    void RefuseAssociation( T_ASC_Association **assoc, WlmRefuseReasonType reason );      /** This function takes care of handling the other DICOM application's request. After       *  having accomplished all necessary steps, the association will be dropped and destroyed.       *  @param assoc The association (network connection to another DICOM application).       */    void HandleAssociation( T_ASC_Association *assoc );      /** This function takes care of handling the other DICOM application's request.       *  @param assoc The association (network connection to another DICOM application).       *  @return An OFCondition value 'cond' for which 'cond.bad()' will always be set       *          indicating that either some kind of error occurred, or that the peer aborted       *          the association (DUL_PEERABORTEDASSOCIATION), or that the peer requested the       *          release of the association (DUL_PEERREQUESTEDRELEASE).       */    OFCondition ReceiveAndHandleCommands( T_ASC_Association *assoc );      /** Having received a DIMSE C-ECHO-RQ message, this function takes care of sending a       *  DIMSE C-ECHO-RSP message over the network connection.       *  @param assoc  The association (network connection to another DICOM application).       *  @param req    The DIMSE C-ECHO-RQ message that was received.       *  @param presId The ID of the presentation context which was specified in the PDV       *                which contained the DIMSE command.       *  @return OFCondition value denoting success or error.       */    OFCondition HandleEchoSCP( T_ASC_Association *assoc, T_DIMSE_C_EchoRQ *req, T_ASC_PresentationContextID presId );      /** This function processes a DIMSE C-FIND-RQ commmand that was       *  received over the network connection.       *  @param assoc   The association (network connection to another DICOM application).       *  @param request The DIMSE C-FIND-RQ message that was received.       *  @param presID  The ID of the presentation context which was specified in the PDV       *                 which contained the DIMSE command.       *  @return OFCondition value denoting success or error.       */    OFCondition HandleFindSCP( T_ASC_Association *assoc, T_DIMSE_C_FindRQ *request, T_ASC_PresentationContextID presID );      /** Protected undefined copy-constructor. Shall never be called.       *  @param Src Source object.       */    WlmActivityManager( const WlmActivityManager &Src );      /** Protected undefined operator=. Shall never be called.       *  @param Src Source object.       *  @return Reference to this.       */    WlmActivityManager &operator=( const WlmActivityManager &Src );  public:      /** constructor.       *  @param dataSourcev                         Pointer to the data source which shall be used.       *  @param opt_portv                           The port on which the application is supposed to listen.       *  @param opt_refuseAssociationv              Specifies if an association shall always be refused by the SCP.       *  @param opt_rejectWithoutImplementationUIDv Specifies if the application shall reject an association if no implementation class UID is provided by the calling SCU.       *  @param opt_sleepAfterFindv                 Specifies how many seconds the application is supposed to sleep after having handled a C-FIND-Rsp.       *  @param opt_sleepDuringFindv                Specifies how many seconds the application is supposed to sleep during the handling of a C-FIND-Rsp.       *  @param opt_maxPDUv                         Maximum length of a PDU that can be received in bytes.       *  @param opt_networkTransferSyntaxv          Specifies the preferred network transfer syntaxes.       *  @param opt_verbosev                        Specifies if the application shall print processing details or not.       *  @param opt_debugv                          Specifies if the application shall print debug information.       *  @param opt_failInvalidQueryv               Specifies if the application shall fail on an invalid query.       *  @param opt_singleProcessv                  Specifies if the application shall run in a single process.       *  @param opt_maxAssociationsv                Specifies many concurrent associations the application shall be able to handle.       *  @param opt_blockModev                      Specifies the blocking mode for DIMSE operations       *  @param opt_dimse_timeoutv                  Specifies the timeout for DIMSE operations       *  @param opt_acse_timeoutv                   Specifies the timeout for ACSE operations       *  @param logStreamv                          A stream information can be dumped to.       */    WlmActivityManager(        WlmDataSource *dataSourcev,         OFCmdUnsignedInt opt_portv,         OFBool opt_refuseAssociationv,         OFBool opt_rejectWithoutImplementationUIDv,         OFCmdUnsignedInt opt_sleepAfterFindv,         OFCmdUnsignedInt opt_sleepDuringFindv,         OFCmdUnsignedInt opt_maxPDUv,         E_TransferSyntax opt_networkTransferSyntaxv,         OFBool opt_verbosev,         OFBool opt_debugv,         OFBool opt_failInvalidQueryv,         OFBool opt_singleProcessv,         int opt_maxAssociationsv,         T_DIMSE_BlockingMode opt_blockModev,        int opt_dimse_timeoutv,        int opt_acse_timeoutv,        OFConsole *logStreamv );      /** destructor       */    ~WlmActivityManager();      /** Starts providing the implemented service for calling SCUs.       *  After having created an instance of this class, this function       *  shall be called from main.       *  @return Value that is supposed to be returned from main().       */    OFCondition StartProvidingService();};#endif/*** CVS Log** $Log: wlmactmg.h,v $** Revision 1.13  2005/12/08 16:05:43  meichel** Changed include path schema for all DCMTK header files**** Revision 1.12  2005/11/17 13:45:39  meichel** Added command line options for DIMSE and ACSE timeouts**** Revision 1.11  2003/07/02 09:17:55  wilkens** Updated documentation to get rid of doxygen warnings.**** Revision 1.10  2002/12/16 11:08:36  wilkens** Added missing #include "osconfig.h" to certain files.**** Revision 1.9  2002/12/12 16:48:35  wilkens** Added some code to avoid compiler warning (unreachable code) on Sun CC 2.0.1.**** Revision 1.8  2002/08/05 09:09:59  wilkens** Modfified the project's structure in order to be able to create a new** application which contains both wlmscpdb and ppsscpdb.**** Revision 1.7  2002/07/17 13:10:37  wilkens** Corrected some minor logical errors in the wlmscpdb sources and completely** updated the wlmscpfs so that it does not use the original wlistctn sources** any more but standard wlm sources which are now used by all three variants** of wlmscps.**** Revision 1.6  2002/06/10 11:25:06  wilkens** Made some corrections to keep gcc 2.95.3 quiet.**** Revision 1.5  2002/04/18 14:20:09  wilkens** Modified Makefiles. Updated latest changes again. These are the latest** sources. Added configure file.**** Revision 1.4  2002/01/08 19:10:04  joergr** Minor adaptations to keep the gcc compiler on Linux and Solaris happy.** Currently only the "file version" of the worklist SCP is supported on** Unix systems.**** Revision 1.3  2002/01/08 17:45:34  joergr** Reformatted source files (replaced Windows newlines by Unix ones, replaced** tabulator characters by spaces, etc.)**** Revision 1.2  2002/01/08 17:35:39  joergr** Reworked database support after trials at the hospital (modfied by MC/JR on** 2002-01-08).*****/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -