OFFIS DCMTK  Version 3.6.0
dvpssv.h
1 /*
2  *
3  * Copyright (C) 1998-2010, OFFIS e.V.
4  * All rights reserved. See COPYRIGHT file for details.
5  *
6  * This software and supporting documentation were developed by
7  *
8  * OFFIS e.V.
9  * R&D Division Health
10  * Escherweg 2
11  * D-26121 Oldenburg, Germany
12  *
13  *
14  * Module: dcmpstat
15  *
16  * Author: Marco Eichelberg
17  *
18  * Purpose:
19  * classes: DVPSSoftcopyVOI
20  *
21  * Last Update: $Author: joergr $
22  * Update Date: $Date: 2010-10-14 13:16:36 $
23  * CVS/RCS Revision: $Revision: 1.10 $
24  * Status: $State: Exp $
25  *
26  * CVS/RCS Log at end of file
27  *
28  */
29 
30 #ifndef DVPSSV_H
31 #define DVPSSV_H
32 
33 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
34 #include "dcmtk/dcmdata/dcvrus.h"
35 #include "dcmtk/dcmdata/dcvrds.h"
36 #include "dcmtk/dcmdata/dcvrlo.h"
37 #include "dcmtk/dcmpstat/dvpsril.h" /* for DVPSReferencedImage_PList */
38 #include "dcmtk/dcmpstat/dvpstyp.h" /* for enum types */
39 
41 
46 {
47 public:
50 
52  DVPSSoftcopyVOI(const DVPSSoftcopyVOI& copy);
53 
58  DVPSSoftcopyVOI *clone() { return new DVPSSoftcopyVOI(*this); }
59 
61  virtual ~DVPSSoftcopyVOI();
62 
72  OFCondition read(DcmItem &dset);
73 
80  OFCondition write(DcmItem &dset);
81 
87  OFBool isApplicable(const char *instanceUID, unsigned long frame);
88 
95  OFBool matchesApplicability(const char *instanceUID, unsigned long frame, DVPSObjectApplicability applicability);
96 
108  const char *sopclassUID,
109  const char *instanceUID,
110  unsigned long frame,
111  DVPSObjectApplicability applicability);
112 
128  DVPSReferencedSeries_PList& allReferences,
129  const char *instanceUID,
130  unsigned long frame,
131  unsigned long numberOfFrames,
132  DVPSObjectApplicability applicability);
133 
137 
141  OFBool imageReferencesEmpty() { if (referencedImageList.size()==0) return OFTrue; else return OFFalse; }
142 
146  OFBool haveLUT() { return useLUT; }
147 
152  const char *getCurrentVOIDescription();
153 
160 
167 
173 
179 
186  OFCondition setVOIWindow(double wCenter, double wWidth, const char *description=NULL);
187 
196  DcmUnsignedShort& lutDescriptor,
197  DcmUnsignedShort& lutData,
198  DcmLongString& lutExplanation);
199 
200 private:
203 
204  /* since the VOI LUT sequence in the Softcopy VOI LUT module must
205  * not contain more than one item, we do not need to manage a list of
206  * VOI LUT SQ items.
207  */
208 
212  OFBool useLUT;
225 
226 };
227 
228 #endif
229 
230 /*
231  * $Log: dvpssv.h,v $
232  * Revision 1.10 2010-10-14 13:16:36 joergr
233  * Updated copyright header. Added reference to COPYRIGHT file.
234  *
235  * Revision 1.9 2010-10-07 14:31:36 joergr
236  * Removed leading underscore characters from preprocessor symbols (reserved).
237  *
238  * Revision 1.8 2009-11-24 14:12:57 uli
239  * Switched to logging mechanism provided by the "new" oflog module.
240  *
241  * Revision 1.7 2009-09-30 10:42:38 uli
242  * Make dcmpstat's include headers self-sufficient by including all
243  * needed headers directly and stop using dctk.h
244  *
245  * Revision 1.6 2005-12-08 16:04:05 meichel
246  * Changed include path schema for all DCMTK header files
247  *
248  * Revision 1.5 2001/09/26 15:36:16 meichel
249  * Adapted dcmpstat to class OFCondition
250  *
251  * Revision 1.4 2001/06/01 15:50:22 meichel
252  * Updated copyright header
253  *
254  * Revision 1.3 2000/06/02 16:00:52 meichel
255  * Adapted all dcmpstat classes to use OFConsole for log and error output
256  *
257  * Revision 1.2 2000/03/08 16:28:57 meichel
258  * Updated copyright header.
259  *
260  * Revision 1.1 1999/07/22 16:39:12 meichel
261  * Adapted dcmpstat data structures and API to supplement 33 letter ballot text.
262  *
263  *
264  */
void clear()
reset the object to initial state.
a class representing a list of DICOM elements in which each element has a different tag and elements ...
Definition: dcitem.h:51
OFCondition setVOILUT(DcmUnsignedShort &lutDescriptor, DcmUnsignedShort &lutData, DcmLongString &lutExplanation)
stores (copies) a VOI lookup table.
DcmLongString voiLUTExplanation
Module=VOI_LUT, VR=LO, VM=1, Type 3.
Definition: dvpssv.h:216
a class representing the DICOM value representation 'Decimal String' (DS)
Definition: dcvrds.h:41
const char * getCurrentVOIDescription()
returns a description string for a currently active VOI transform.
DcmUnsignedShort voiLUTData
Module=VOI_LUT, VR=xs, VM=1-n, Type 1c.
Definition: dvpssv.h:218
void clearImageReferences()
removes all image references for this displayed area.
Definition: dvpssv.h:136
DVPSSoftcopyVOI()
default constructor
DcmUnsignedShort voiLUTDescriptor
Module=VOI_LUT, VR=xs, VM=3, Type 1c.
Definition: dvpssv.h:214
OFBool haveLUT()
check if a VOI LUT is currently active
Definition: dvpssv.h:146
OFCondition write(DcmItem &dset)
writes the dsoftcopy VOI LUT item managed by this object to a DICOM dataset.
size_t size() const
gets the number of image references in this list.
Definition: dvpsril.h:170
OFCondition addImageReference(const char *sopclassUID, const char *instanceUID, unsigned long frame, DVPSObjectApplicability applicability)
add a new image reference.
OFCondition setVOIWindow(double wCenter, double wWidth, const char *description=NULL)
sets a user defined VOI window center and width.
OFBool matchesApplicability(const char *instanceUID, unsigned long frame, DVPSObjectApplicability applicability)
checks if this displayed area matches exactly the applicability defined by the instanceUID, frame and applicability parameters.
OFBool imageReferencesEmpty()
checks if the list of image references for this displayed area is empty.
Definition: dvpssv.h:141
DcmDecimalString windowCenter
Module=VOI_LUT, VR=DS, VM=1-n, Type 1c (unlike VOI LUT module!)
Definition: dvpssv.h:220
OFCondition getCurrentWindowWidth(double &w)
gets the width of the current VOI window.
a class representing the DICOM value representation 'Long String' (LO)
Definition: dcvrlo.h:40
DcmDecimalString windowWidth
Module=VOI_LUT, VR=DS, VM=1-n, Type 1c.
Definition: dvpssv.h:222
DVPSSoftcopyVOI & operator=(const DVPSSoftcopyVOI &)
private undefined assignment operator
DcmUnsignedShort & getLUTData()
returns a reference to the current VOI LUT data.
Definition: dvpssv.h:178
OFCondition getCurrentWindowCenter(double &c)
get the center of the current VOI window.
a class representing the DICOM value representation 'Unsigned Short' (US)
Definition: dcvrus.h:40
the representation of one item of the Softcopy VOI LUT Sequence
Definition: dvpssv.h:45
DVPSReferencedImage_PList referencedImageList
ReferencedImageSequence, Type 1c.
Definition: dvpssv.h:210
DcmLongString windowCenterWidthExplanation
Module=VOI_LUT, VR=LO, VM=1-n, Type 3.
Definition: dvpssv.h:224
the list of referenced series contained in a presentation state (internal use only).
Definition: dvpsrsl.h:45
OFCondition read(DcmItem &dset)
reads a softcopy VOI LUT item from a DICOM dataset.
OFBool useLUT
If true, a VOI LUT is set, otherwise a VOI Window is set.
Definition: dvpssv.h:212
OFBool isApplicable(const char *instanceUID, unsigned long frame)
checks if this displayed area is applicable to the given image and frame.
the list of referenced images contained in a presentation state (internal use only).
Definition: dvpsril.h:46
General purpose class for condition codes.
Definition: ofcond.h:305
void removeImageReference(DVPSReferencedSeries_PList &allReferences, const char *instanceUID, unsigned long frame, unsigned long numberOfFrames, DVPSObjectApplicability applicability)
removes a reference to an image or frame.
DVPSSoftcopyVOI * clone()
clone method.
Definition: dvpssv.h:58
DcmUnsignedShort & getLUTDescriptor()
returns a reference to the current VOI LUT descriptor.
Definition: dvpssv.h:172
virtual ~DVPSSoftcopyVOI()
destructor


Generated on Wed Dec 14 2016 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.11