dcmpstat/include/dcmtk/dcmpstat/dvpsspl.h

00001 /*
00002  *
00003  *  Copyright (C) 1998-2010, OFFIS e.V.
00004  *  All rights reserved.  See COPYRIGHT file for details.
00005  *
00006  *  This software and supporting documentation were developed by
00007  *
00008  *    OFFIS e.V.
00009  *    R&D Division Health
00010  *    Escherweg 2
00011  *    D-26121 Oldenburg, Germany
00012  *
00013  *
00014  *  Module: dcmpstat
00015  *
00016  *  Author: Marco Eichelberg
00017  *
00018  *  Purpose:
00019  *    classes: DVPSStoredPrint_PList
00020  *
00021  *  Last Update:      $Author: joergr $
00022  *  Update Date:      $Date: 2010-10-14 13:16:36 $
00023  *  CVS/RCS Revision: $Revision: 1.11 $
00024  *  Status:           $State: Exp $
00025  *
00026  *  CVS/RCS Log at end of file
00027  *
00028  */
00029 
00030 #ifndef DVPSSPL_H
00031 #define DVPSSPL_H
00032 
00033 #include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
00034 #include "dcmtk/ofstd/oflist.h"
00035 #include "dcmtk/dcmdata/dcvrus.h"
00036 #include "dcmtk/dcmdata/dcvrui.h"
00037 #include "dcmtk/dcmnet/dimse.h"
00038 #include "dcmtk/dcmpstat/dvpstyp.h"
00039 
00040 class DVInterface;
00041 class DVPSStoredPrint;
00042 class DVConfiguration;
00043 class DVPSPresentationLUT_PList;
00044 
00048 class DVPSStoredPrint_PList
00049 {
00050 public:
00052   DVPSStoredPrint_PList();
00053 
00055   DVPSStoredPrint_PList(const DVPSStoredPrint_PList& copy);
00056 
00061   DVPSStoredPrint_PList *clone() { return new DVPSStoredPrint_PList(*this); }
00062 
00064   virtual ~DVPSStoredPrint_PList();
00065 
00070   void clear();
00071 
00075   size_t size() const { return list_.size(); }
00076 
00082   void insert(DVPSStoredPrint *newSP) { if (newSP) list_.push_back(newSP); }
00083 
00099   void printSCPBasicFilmBoxSet(
00100     DVConfiguration& cfg,
00101     const char *cfgname,
00102     T_DIMSE_Message& rq,
00103     DcmDataset *rqDataset,
00104     T_DIMSE_Message& rsp,
00105     DcmDataset *& rspDataset,
00106     OFBool presentationLUTnegotiated,
00107     DVPSPresentationLUT_PList& globalPresentationLUTList);
00108 
00124   void printSCPBasicGrayscaleImageBoxSet(
00125     DVInterface& cfg,
00126     const char *cfgname,
00127     T_DIMSE_Message& rq,
00128     DcmDataset *rqDataset,
00129     T_DIMSE_Message& rsp,
00130     DcmDataset *& rspDataset,
00131     OFBool presentationLUTnegotiated);
00132 
00144   void printSCPBasicFilmBoxAction(
00145     DVInterface& cfg,
00146     const char *cfgname,
00147     T_DIMSE_Message& rq,
00148     T_DIMSE_Message& rsp,
00149     DVPSPresentationLUT_PList& globalPresentationLUTList);
00150 
00161   void printSCPBasicFilmSessionAction(
00162     DVInterface& cfg,
00163     const char *cfgname,
00164     T_DIMSE_Message& rsp,
00165     DVPSPresentationLUT_PList& globalPresentationLUTList);
00166 
00172   void printSCPBasicFilmBoxDelete(T_DIMSE_Message& rq, T_DIMSE_Message& rsp);
00173 
00179   OFBool haveFilmBoxInstance(const char *uid);
00180 
00187   OFBool usesPresentationLUT(const char *uid);
00188 
00195   OFBool matchesPresentationLUT(DVPSPrintPresentationLUTAlignment align) const;
00196 
00206   void overridePresentationLUTSettings(
00207       DcmUnsignedShort& newIllumination,
00208       DcmUnsignedShort& newReflectedAmbientLight,
00209       DcmUniqueIdentifier& newReferencedPLUT,
00210       DVPSPrintPresentationLUTAlignment newAlignment);
00211 
00212 private:
00213 
00215   DVPSStoredPrint_PList& operator=(const DVPSStoredPrint_PList&);
00216 
00219   OFList<DVPSStoredPrint *> list_;
00220 };
00221 
00222 #endif
00223 
00224 /*
00225  *  $Log: dvpsspl.h,v $
00226  *  Revision 1.11  2010-10-14 13:16:36  joergr
00227  *  Updated copyright header. Added reference to COPYRIGHT file.
00228  *
00229  *  Revision 1.10  2010-10-07 14:31:36  joergr
00230  *  Removed leading underscore characters from preprocessor symbols (reserved).
00231  *
00232  *  Revision 1.9  2010-03-01 09:08:49  uli
00233  *  Removed some unnecessary include directives in the headers.
00234  *
00235  *  Revision 1.8  2009-11-24 14:12:57  uli
00236  *  Switched to logging mechanism provided by the "new" oflog module.
00237  *
00238  *  Revision 1.7  2009-09-30 10:42:38  uli
00239  *  Make dcmpstat's include headers self-sufficient by including all
00240  *  needed headers directly and stop using dctk.h
00241  *
00242  *  Revision 1.6  2005-12-08 16:04:04  meichel
00243  *  Changed include path schema for all DCMTK header files
00244  *
00245  *  Revision 1.5  2003/06/04 10:18:06  meichel
00246  *  Replaced private inheritance from template with aggregation
00247  *
00248  *  Revision 1.4  2001/06/01 15:50:22  meichel
00249  *  Updated copyright header
00250  *
00251  *  Revision 1.3  2000/06/08 10:44:30  meichel
00252  *  Implemented Referenced Presentation LUT Sequence on Basic Film Session level.
00253  *    Empty film boxes (pages) are not written to file anymore.
00254  *
00255  *  Revision 1.2  2000/06/02 16:00:52  meichel
00256  *  Adapted all dcmpstat classes to use OFConsole for log and error output
00257  *
00258  *  Revision 1.1  2000/05/31 12:56:36  meichel
00259  *  Added initial Print SCP support
00260  *
00261  *
00262  */


Generated on 6 Jan 2011 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.5.1