dcmpstat/include/dcmtk/dcmpstat/dvpsibl.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: DVPSImageBoxContent_PList
00020  *
00021  *  Last Update:      $Author: joergr $
00022  *  Update Date:      $Date: 2010-10-14 13:16:36 $
00023  *  CVS/RCS Revision: $Revision: 1.28 $
00024  *  Status:           $State: Exp $
00025  *
00026  *  CVS/RCS Log at end of file
00027  *
00028  */
00029 
00030 #ifndef DVPSIBL_H
00031 #define DVPSIBL_H
00032 
00033 #include "dcmtk/config/osconfig.h"    /* make sure OS specific configuration is included first */
00034 #include "dcmtk/dcmdata/dcitem.h"
00035 #include "dcmtk/dcmpstat/dvpstyp.h"     /* for enum types */
00036 #include "dcmtk/dcmdata/dcvrui.h"
00037 
00038 class DVPSImageBoxContent;
00039 class DVPSPresentationLUT_PList;
00040 
00046 class DVPSImageBoxContent_PList
00047 {
00048 public:
00049 
00051   DVPSImageBoxContent_PList();
00052 
00054   DVPSImageBoxContent_PList(const DVPSImageBoxContent_PList& copy);
00055 
00060   DVPSImageBoxContent_PList *clone() { return new DVPSImageBoxContent_PList(*this); }
00061 
00063   virtual ~DVPSImageBoxContent_PList();
00064 
00074   OFCondition read(DcmItem &dset, DVPSPresentationLUT_PList& presentationLUTList);
00075 
00090   OFCondition write(
00091     DcmItem &dset,
00092     OFBool writeRequestedImageSize,
00093     size_t numItems,
00094     OFBool ignoreEmptyImages,
00095     OFBool writeReferencedPLUTSQ = OFTrue);
00096 
00101   void clear();
00102 
00106   size_t size() const { return list_.size(); }
00107 
00114   OFCondition createDefaultValues(OFBool renumber, OFBool ignoreEmptyImages);
00115 
00123   OFCondition addImageSOPClasses(DcmSequenceOfItems& seq, size_t numItems=0);
00124 
00136   OFCondition addImageBox(
00137     const char *instanceuid,
00138     const char *retrieveaetitle,
00139     const char *refstudyuid,
00140     const char *refseriesuid,
00141     const char *refsopclassuid,
00142     const char *refsopinstanceuid,
00143     const char *requestedimagesize,
00144     const char *patientid,
00145     const char *presentationlutuid);
00146 
00151   OFCondition addImageBox(DVPSImageBoxContent *box);
00152 
00160   OFCondition setRequestedDecimateCropBehaviour(DVPSDecimateCropBehaviour value);
00161 
00166   OFCondition deleteImage(size_t idx);
00167 
00172   OFCondition deleteMultipleImages(size_t number);
00173 
00179   OFBool imageHasAdditionalSettings(size_t idx);
00180 
00186   OFCondition setImagePolarity(size_t idx, const char *value);
00187 
00193   OFCondition setImageRequestedSize(size_t idx, const char *value);
00194 
00202   OFCondition setImageMagnificationType(size_t idx, const char *value);
00203 
00211   OFCondition setImageSmoothingType(size_t idx, const char *value);
00212 
00220   OFCondition setImageConfigurationInformation(size_t idx, const char *value);
00221 
00227   OFCondition setImageSOPInstanceUID(size_t idx, const char *value);
00228 
00233   OFCondition setAllImagesToDefault();
00234 
00239   const char *getImagePolarity(size_t idx);
00240 
00245   const char *getImageRequestedSize(size_t idx);
00246 
00251   const char *getImageMagnificationType(size_t idx);
00252 
00257   const char *getImageSmoothingType(size_t idx);
00258 
00263   const char *getImageConfigurationInformation(size_t idx);
00264 
00269   const char *getSOPInstanceUID(size_t idx);
00270 
00275   const char *getReferencedPresentationLUTInstanceUID(size_t idx);
00276 
00284   OFCondition getImageReference(size_t idx, const char *&studyUID, const char *&seriesUID, const char *&instanceUID);
00285 
00294   OFCondition prepareBasicImageBox(size_t idx, DcmItem &dset);
00295 
00302   OFBool presentationLUTInstanceUIDisUsed(const char *uid);
00303 
00311   const char *haveSinglePresentationLUTUsed(const char *filmBox);
00312 
00321   OFBool printSCPCreate(
00322     unsigned long numBoxes,
00323     DcmUniqueIdentifier& studyUID,
00324     DcmUniqueIdentifier& seriesUID,
00325     const char *aetitle);
00326 
00332   OFCondition writeReferencedImageBoxSQ(DcmItem &dset);
00333 
00340   OFBool matchesPresentationLUT(DVPSPrintPresentationLUTAlignment align) const;
00341 
00348   DVPSImageBoxContent *duplicateImageBox(const char *uid);
00349 
00357   OFBool haveImagePositionClash(const char *uid, Uint16 position);
00358 
00364   void replace(DVPSImageBoxContent *newImageBox);
00365 
00372   OFBool emptyPageWarning();
00373 
00374 private:
00375 
00378   DVPSImageBoxContent_PList& operator=(const DVPSImageBoxContent_PList&);
00379 
00385   DVPSImageBoxContent *getImageBox(size_t idx);
00386 
00389   OFList<DVPSImageBoxContent *> list_;
00390 
00391 };
00392 
00393 
00394 #endif
00395 
00396 /*
00397  *  $Log: dvpsibl.h,v $
00398  *  Revision 1.28  2010-10-14 13:16:36  joergr
00399  *  Updated copyright header. Added reference to COPYRIGHT file.
00400  *
00401  *  Revision 1.27  2010-10-07 14:31:36  joergr
00402  *  Removed leading underscore characters from preprocessor symbols (reserved).
00403  *
00404  *  Revision 1.26  2010-03-01 09:08:49  uli
00405  *  Removed some unnecessary include directives in the headers.
00406  *
00407  *  Revision 1.25  2009-11-24 14:12:57  uli
00408  *  Switched to logging mechanism provided by the "new" oflog module.
00409  *
00410  *  Revision 1.24  2009-09-30 10:42:38  uli
00411  *  Make dcmpstat's include headers self-sufficient by including all
00412  *  needed headers directly and stop using dctk.h
00413  *
00414  *  Revision 1.23  2005-12-08 16:03:51  meichel
00415  *  Changed include path schema for all DCMTK header files
00416  *
00417  *  Revision 1.22  2003/06/04 10:18:06  meichel
00418  *  Replaced private inheritance from template with aggregation
00419  *
00420  *  Revision 1.21  2001/09/26 15:36:13  meichel
00421  *  Adapted dcmpstat to class OFCondition
00422  *
00423  *  Revision 1.20  2001/06/01 15:50:18  meichel
00424  *  Updated copyright header
00425  *
00426  *  Revision 1.19  2000/07/04 15:58:02  joergr
00427  *  Added support for overriding the presentation LUT settings made for the
00428  *  image boxes.
00429  *
00430  *  Revision 1.18  2000/06/14 11:28:14  joergr
00431  *  Added methods to access the attributes Polarity and Requested Image Size.
00432  *
00433  *  Revision 1.17  2000/06/08 10:44:29  meichel
00434  *  Implemented Referenced Presentation LUT Sequence on Basic Film Session level.
00435  *    Empty film boxes (pages) are not written to file anymore.
00436  *
00437  *  Revision 1.16  2000/06/07 14:17:41  joergr
00438  *  Added methods to access the image polarity attribute.
00439  *
00440  *  Revision 1.15  2000/06/02 16:00:48  meichel
00441  *  Adapted all dcmpstat classes to use OFConsole for log and error output
00442  *
00443  *  Revision 1.14  2000/05/31 12:56:39  meichel
00444  *  Added initial Print SCP support
00445  *
00446  *  Revision 1.13  2000/03/08 16:28:53  meichel
00447  *  Updated copyright header.
00448  *
00449  *  Revision 1.12  1999/10/19 14:46:03  meichel
00450  *  added support for the Basic Annotation Box SOP Class
00451  *    as well as access methods for Max Density and Min Density.
00452  *
00453  *  Revision 1.11  1999/10/07 17:21:48  meichel
00454  *  Reworked management of Presentation LUTs in order to create tighter
00455  *    coupling between Softcopy and Print.
00456  *
00457  *  Revision 1.10  1999/09/24 15:23:45  meichel
00458  *  Print spooler (dcmprtsv) now logs diagnostic messages in log files
00459  *    when operating in spool mode.
00460  *
00461  *  Revision 1.9  1999/09/17 14:33:57  meichel
00462  *  Completed print spool functionality including Supplement 22 support
00463  *
00464  *  Revision 1.8  1999/09/15 17:43:28  meichel
00465  *  Implemented print job dispatcher code for dcmpstat, adapted dcmprtsv
00466  *    and dcmpsprt applications.
00467  *
00468  *  Revision 1.7  1999/09/10 12:46:47  meichel
00469  *  Added implementations for a number of print API methods.
00470  *
00471  *  Revision 1.6  1999/09/09 14:57:33  thiel
00472  *  Added methods for print spooler
00473  *
00474  *  Revision 1.5  1999/09/01 16:14:40  meichel
00475  *  Added support for requested image size to print routines
00476  *
00477  *  Revision 1.4  1999/08/31 14:09:11  meichel
00478  *  Added get/set methods for stored print attributes
00479  *
00480  *  Revision 1.3  1999/08/27 15:57:56  meichel
00481  *  Added methods for saving hardcopy images and stored print objects
00482  *    either in file or in the local database.
00483  *
00484  *  Revision 1.2  1999/08/26 09:30:59  thiel
00485  *  Add extensions for the usage of the StoredPrint
00486  *
00487  *  Revision 1.1  1999/07/30 13:34:48  meichel
00488  *  Added new classes managing Stored Print objects
00489  *
00490  *
00491  */


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