dvpsspl.h

来自「转化为DIB位图再显示出来的dicom文件C++代码」· C头文件 代码 · 共 270 行

H
270
字号
/* * *  Copyright (C) 1998-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: dcmpstat * *  Author: Marco Eichelberg * *  Purpose: *    classes: DVPSStoredPrint_PList * *  Last Update:      $Author: meichel $ *  Update Date:      $Date: 2005/12/08 16:04:04 $ *  CVS/RCS Revision: $Revision: 1.6 $ *  Status:           $State: Exp $ * *  CVS/RCS Log at end of file * */#ifndef __DVPSSPL_H__#define __DVPSSPL_H__#include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */#include "dcmtk/ofstd/oflist.h"#include "dcmtk/dcmdata/dctk.h"#include "dcmtk/dcmnet/dimse.h"#include "dcmtk/dcmpstat/dvpstyp.h"class DVInterface;class DVPSStoredPrint;class DVConfiguration;class DVPSPresentationLUT_PList;/** a list of stored print objects, each of which manages a single Basic  *  Film Box in a Print SCP. */class DVPSStoredPrint_PList{public:  /// default constructor  DVPSStoredPrint_PList();    /// copy constructor  DVPSStoredPrint_PList(const DVPSStoredPrint_PList& copy);  /** clone method.   *  @return a pointer to a new DVPSStoredPrint_PList object containing   *  a deep copy of this object.   */  DVPSStoredPrint_PList *clone() { return new DVPSStoredPrint_PList(*this); }  /// destructor  virtual ~DVPSStoredPrint_PList();  /** reset the object to initial state.   *  After this call, the object is in the same state as after   *  creation with the default constructor.   */  void clear();    /** get number of stored print objects in this list.   *  @return the number of stored print objects.   */  size_t size() const { return list_.size(); }    /** adds a Stored Print object to the list of managed objects. The stored    *  print object becomes owned by this object and is destroyed upon    *  destruction of the list.   *  @param newSP Stored Print object to be added.   */  void insert(DVPSStoredPrint *newSP) { if (newSP) list_.push_back(newSP); }  /** performs a Print SCP Basic Film Box N-SET operation.   *  The results of the N-SET operation are stored in the    *  objects passed as rsp and rspDataset.   *  @param cfg config file facility   *  @param cfgname symbolic printer name in config file   *  @param rq N-SET request message   *  @param rqDataset N-SET request dataset   *  @param rsp N-SET response message   *  @param rspDataset N-SET response dataset passed back in this parameter   *  @param presentationLUTnegotiated    *    OFTrue if support for the Presentation LUT SOP class   *    has been negotiated at association negotiation   *  @param globalPresentationLUTList   *    list of presentation LUTs managed by the Print SCP   */  void printSCPBasicFilmBoxSet(    DVConfiguration& cfg,     const char *cfgname,     T_DIMSE_Message& rq,    DcmDataset *rqDataset,     T_DIMSE_Message& rsp,     DcmDataset *& rspDataset,     OFBool presentationLUTnegotiated,    DVPSPresentationLUT_PList& globalPresentationLUTList);  /** performs a Print SCP Basic Grayscale Image Box N-SET operation.   *  The results of the N-SET operation are stored in the    *  objects passed as rsp and rspDataset.   *  If successful, a Hardcopy Grayscale Image object containing   *  the image data of the N-SET request is created in the database.   *  @param cfg config file facility   *  @param cfgname symbolic printer name in config file   *  @param rq N-SET request message   *  @param rqDataset N-SET request dataset   *  @param rsp N-SET response message   *  @param rspDataset N-SET response dataset passed back in this parameter   *  @param presentationLUTnegotiated    *    OFTrue if support for the Presentation LUT SOP class   *    has been negotiated at association negotiation   */  void printSCPBasicGrayscaleImageBoxSet(    DVInterface& cfg,     const char *cfgname,     T_DIMSE_Message& rq,    DcmDataset *rqDataset,     T_DIMSE_Message& rsp,     DcmDataset *& rspDataset,    OFBool presentationLUTnegotiated);  /** performs a Print SCP Basic Film Box N-ACTION operation.   *  The results of the N-ACTION operation are stored in the    *  object passed as rsp.   *  If successful, a Stored Print object containing the film box   *  hierarchy is created in the database.   *  @param cfg config file facility   *  @param cfgname symbolic printer name in config file   *  @param rq N-ACTION request message   *  @param rsp N-ACTION response message   *  @param globalPresentationLUTList list of presentation LUTs managed by the Print SCP   */  void printSCPBasicFilmBoxAction(    DVInterface& cfg,     const char *cfgname,     T_DIMSE_Message& rq,    T_DIMSE_Message& rsp,     DVPSPresentationLUT_PList& globalPresentationLUTList);  /** performs a Print SCP Basic Film Session N-ACTION operation.   *  The results of the N-ACTION operation are stored in the    *  object passed as rsp.   *  If successful, one Stored Print object for each film box   *  in the film session is created in the database.   *  @param cfg config file facility   *  @param cfgname symbolic printer name in config file   *  @param rsp N-ACTION response message   *  @param globalPresentationLUTList list of presentation LUTs managed by the Print SCP   */  void printSCPBasicFilmSessionAction(    DVInterface& cfg,     const char *cfgname,     T_DIMSE_Message& rsp,     DVPSPresentationLUT_PList& globalPresentationLUTList);  /** performs a Print SCP basic film box N-DELETE operation.   *  The results of the N-DELETE operation are stored in the object passed as rsp.   *  @param rq N-DELETE request message   *  @param rsp N-DELETE response message   */  void printSCPBasicFilmBoxDelete(T_DIMSE_Message& rq, T_DIMSE_Message& rsp);  /** checks whether a film box object with the given SOP instance UID   *  already exists.   *  @param uid uid to be checked   *  @return OFTrue if found, OFFalse otherwise   */  OFBool haveFilmBoxInstance(const char *uid);  /** checks whether the Presentation LUT with the given UID   *  is referenced by any Stored Print object in this list   *  on the film box level.   *  @param uid uid to be compared   *  @return OFTrue if equal, OFFalse otherwise   */  OFBool usesPresentationLUT(const char *uid);    /** sets a new log stream   *  @param stream new log stream, NULL for default logstream   *  @param verbMode verbose mode flag   *  @param dbgMode debug mode flag   */  void setLog(OFConsole *stream, OFBool verbMode, OFBool dbgMode);  /** checks whether the given Presentation LUT type could be used together   *  with all image boxes in all film boxes on a Print SCP that requires a matching    *  alignment between a Presentation LUT and the image pixel data.   *  @param align LUT alignment type   *  @return OFTrue if matching, OFFalse otherwise   */  OFBool matchesPresentationLUT(DVPSPrintPresentationLUTAlignment align) const;  /** replaces the settings for illumination, reflected ambient light and   *  referenced Presentation LUT in all film boxes in this list.   *  Used by a Print SCP if Presentation LUT is implemented on Film Session   *  level.   *  @param newIllumination new value for illumination   *  @param newReflectedAmbientLight new value for reflectedAmbientLight   *  @param newReferencedPLUT new value for referenced presentation LUT instance UID   *  @param newAlignment new alignment type of active presentation LUT   */  void overridePresentationLUTSettings(      DcmUnsignedShort& newIllumination,      DcmUnsignedShort& newReflectedAmbientLight,      DcmUniqueIdentifier& newReferencedPLUT,      DVPSPrintPresentationLUTAlignment newAlignment);private:  /// private undefined assignment operator  DVPSStoredPrint_PList& operator=(const DVPSStoredPrint_PList&);  /** the list maintained by this object   */  OFList<DVPSStoredPrint *> list_;  /** output stream for error messages, never NULL   */  OFConsole *logstream;  /** flag indicating whether we're operating in verbose mode   */  OFBool verboseMode;     /** flag indicating whether we're operating in debug mode   */  OFBool debugMode;};#endif/* *  $Log: dvpsspl.h,v $ *  Revision 1.6  2005/12/08 16:04:04  meichel *  Changed include path schema for all DCMTK header files * *  Revision 1.5  2003/06/04 10:18:06  meichel *  Replaced private inheritance from template with aggregation * *  Revision 1.4  2001/06/01 15:50:22  meichel *  Updated copyright header * *  Revision 1.3  2000/06/08 10:44:30  meichel *  Implemented Referenced Presentation LUT Sequence on Basic Film Session level. *    Empty film boxes (pages) are not written to file anymore. * *  Revision 1.2  2000/06/02 16:00:52  meichel *  Adapted all dcmpstat classes to use OFConsole for log and error output * *  Revision 1.1  2000/05/31 12:56:36  meichel *  Added initial Print SCP support * * */

⌨️ 快捷键说明

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