dcmpstat/include/dcmtk/dcmpstat/dviface.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, Joerg Riesmeier
00017  *
00018  *  Purpose:
00019  *    classes: DVInterface
00020  *
00021  *  Last Update:      $Author: joergr $
00022  *  Update Date:      $Date: 2010-10-14 13:16:35 $
00023  *  CVS/RCS Revision: $Revision: 1.95 $
00024  *  Status:           $State: Exp $
00025  *
00026  *  CVS/RCS Log at end of file
00027  *
00028  */
00029 
00030 
00031 #ifndef DVIFACE_H
00032 #define DVIFACE_H
00033 
00034 #include "dcmtk/config/osconfig.h"   /* make sure OS specific configuration is included first */
00035 
00036 
00037 #include "dcmtk/ofstd/ofstream.h"
00038 #include "dcmtk/dcmpstat/dvpscf.h"     /* for class DVConfiguration */
00039 #include "dcmtk/dcmpstat/dvpstat.h"    /* for class DVPresentationState */
00040 #include "dcmtk/dcmqrdb/dcmqridx.h"    /* for struct IdxRecord */
00041 #include "dcmtk/ofstd/ofstring.h"      /* for class OFString */
00042 #include "dcmtk/dcmpstat/dvcache.h"    /* for index file caching */
00043 
00044 
00045 class DicomImage;
00046 class DiDisplayFunction;
00047 class DVPSStoredPrint;
00048 class DVPSPrintMessageHandler;
00049 class DSRDocument;
00050 class DVSignatureHandler;
00051 
00056 class DVInterface: public DVConfiguration
00057 {
00058 
00059  public:
00060 
00070     DVInterface(const char *config_file = NULL, OFBool useLog = OFFalse);
00071 
00074     virtual ~DVInterface();
00075 
00076     /* load images, presentation states and structured reports */
00077 
00087     OFCondition loadImage(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
00088 
00095     OFCondition loadImage(const char *filename);
00096 
00104     OFCondition loadReferencedImage(size_t idx, OFBool changeStatus = OFFalse);
00105 
00116     OFCondition loadPState(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
00117 
00126     OFCondition loadPState(const char *pstName, const char *imgName = NULL);
00127 
00136     OFCondition loadStructuredReport(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
00137 
00143     OFCondition loadStructuredReport(const char *filename);
00144 
00157     OFCondition loadSRTemplate(const char *reportID);
00158 
00171     OFCondition savePState(OFBool replaceSOPInstanceUID);
00172 
00186     OFCondition savePState(const char *filename, OFBool replaceSOPInstanceUID, OFBool explicitVR=OFTrue);
00187 
00197     OFCondition saveCurrentImage(const char *filename, OFBool explicitVR=OFTrue);
00198 
00210     OFCondition saveStructuredReport();
00211 
00224     OFCondition saveStructuredReport(const char *filename, OFBool explicitVR=OFTrue);
00225 
00234     OFCondition addImageReferenceToPState(const char *studyUID, const char *seriesUID, const char *instanceUID);
00235 
00239     size_t getNumberOfImageReferences();
00240 
00247     DVPresentationState& getCurrentPState()
00248     {
00249       return *pState;
00250     }
00251 
00257     DSRDocument& getCurrentReport()
00258     {
00259       return *pReport;
00260     }
00261 
00266     DVPSStoredPrint& getPrintHandler()
00267     {
00268       return *pPrint;
00269     }
00270 
00278     OFCondition resetPresentationState();
00279 
00285     OFCondition saveCurrentPStateForReset();
00286 
00295     OFCondition releaseDatabase();
00296 
00306     const char *getFilename(const char *studyUID, const char *seriesUID, const char *instanceUID);
00307 
00316     Uint32 getNumberOfStudies();
00317 
00326     OFCondition selectStudy(Uint32 idx);
00327 
00336     OFCondition selectStudy(const char *studyUID);
00337 
00344     DVIFhierarchyStatus getStudyStatus() ;
00345 
00351     const char *getStudyUID();
00352 
00358     const char *getStudyDescription();
00359 
00365     const char *getStudyDate();
00366 
00372     const char *getStudyTime();
00373 
00379     const char *getReferringPhysiciansName();
00380 
00386     const char *getAccessionNumber();
00387 
00393     const char *getNameOfPhysiciansReadingStudy();
00394 
00402     const char *getPatientName();
00403 
00411     const char *getPatientID();
00412 
00420     const char *getPatientBirthDate();
00421 
00429     const char *getPatientSex();
00430 
00438     const char *getPatientBirthTime();
00439 
00447     const char *getOtherPatientNames();
00448 
00456     const char *getOtherPatientID();
00457 
00465     const char *getEthnicGroup();
00466 
00474     Uint32 getNumberOfSeries();
00475 
00483     OFCondition selectSeries(Uint32 idx);
00484 
00492     OFCondition selectSeries(const char *seriesUID);
00493 
00499     const char *getSeriesUID();
00500 
00506     DVIFhierarchyStatus getSeriesStatus();
00507 
00515     DVPSInstanceType getSeriesType();
00516 
00522     DVPSInstanceType getInstanceType();
00523 
00529     const char *getSeriesNumber();
00530 
00536     const char *getSeriesDate();
00537 
00543     const char *getSeriesTime();
00544 
00550     const char *getSeriesDescription();
00551 
00557     const char *getSeriesPerformingPhysiciansName();
00558 
00564     const char *getSeriesProtocolName();
00565 
00571     const char *getSeriesOperatorsName();
00572 
00578     const char *getModality();
00579 
00587     Uint32 getNumberOfInstances();
00588 
00596     OFCondition selectInstance(Uint32 idx);
00597 
00605     OFCondition selectInstance(const char *instanceUID);
00606 
00616     OFCondition selectInstance(const char *instanceUID, const char *sopClassUID);
00617 
00627     OFCondition selectInstance(const char *studyUID, const char *seriesUID, const char *instanceUID);
00628 
00634     const char *getSOPClassUID();
00635 
00641     const char *getInstanceUID();
00642 
00648     const char *getImageNumber();
00649 
00655     const char *getFilename();
00656 
00662     DVIFhierarchyStatus getInstanceStatus() ;
00663 
00669     const char *getInstanceDescription();
00670 
00676     const char *getPresentationLabel();
00677 
00678 
00679     /* methods modifying the database */
00680 
00693     OFCondition instanceReviewed(const char *studyUID, const char *seriesUID, const char *instanceUID);
00694 
00706     OFCondition deleteInstance(const char *studyUID, const char *seriesUID, const char *instanceUID);
00707 
00718     OFCondition deleteSeries(const char *studyUID, const char *seriesUID);
00719 
00729     OFCondition deleteStudy(const char *studyUID);
00730 
00731     /* here follow the Network interface methods */
00732 
00744     OFCondition startReceiver();
00745 
00753     OFCondition terminateReceiver();
00754 
00770     OFCondition startQueryRetrieveServer();
00771 
00781     OFCondition terminateQueryRetrieveServer();
00782 
00793     OFBool newInstancesReceived();
00794 
00807     OFCondition sendStudy(const char *targetID, const char *studyUID)
00808     {
00809       return sendIOD(targetID, studyUID, NULL, NULL);
00810     }
00811 
00826     OFCondition sendSeries(const char *targetID, const char *studyUID, const char *seriesUID)
00827     {
00828       return sendIOD(targetID, studyUID, seriesUID, NULL);
00829     }
00830 
00848     OFCondition sendIOD(const char *targetID, const char *studyUID, const char *seriesUID, const char *instanceUID);
00849 
00860     OFCondition dumpIOD(const char *filename);
00861 
00877     OFCondition dumpIOD(const char *studyUID, const char *seriesUID, const char *instanceUID);
00878 
00889     OFCondition checkIOD(const char *filename);
00890 
00906     OFCondition checkIOD(const char *studyUID, const char *seriesUID, const char *instanceUID);
00907 
00925     OFCondition saveDICOMImage(
00926       const char *filename,
00927       const void *pixelData,
00928       unsigned long width,
00929       unsigned long height,
00930       double aspectRatio=1.0,
00931       OFBool explicitVR=OFTrue,
00932       const char *instanceUID=NULL);
00933 
00948     OFCondition saveDICOMImage(
00949       const void *pixelData,
00950       unsigned long width,
00951       unsigned long height,
00952       double aspectRatio=1.0);
00953 
00971     OFCondition saveHardcopyGrayscaleImage(
00972       const char *filename,
00973       const void *pixelData,
00974       unsigned long width,
00975       unsigned long height,
00976       double aspectRatio=1.0,
00977       OFBool explicitVR=OFTrue,
00978       const char *instanceUID=NULL);
00979 
00994     OFCondition saveHardcopyGrayscaleImage(
00995       const void *pixelData,
00996       unsigned long width,
00997       unsigned long height,
00998       double aspectRatio=1.0);
00999 
01009     OFCondition saveFileFormatToDB(DcmFileFormat &fileformat);
01010 
01020     OFCondition loadStoredPrint(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
01021 
01028     OFCondition loadStoredPrint(const char *filename);
01029 
01041     OFCondition saveStoredPrint(
01042       const char *filename,
01043       OFBool writeRequestedImageSize,
01044       OFBool explicitVR=OFTrue,
01045       const char *instanceUID=NULL);
01046 
01057     OFCondition saveStoredPrint(OFBool writeRequestedImageSize);
01058 
01062     size_t getNumberOfPrintPreviews();
01063 
01075     OFCondition loadPrintPreview(size_t idx, OFBool printLUT = OFTrue, OFBool changeStatus = OFFalse);
01076 
01079     void unloadPrintPreview();
01080 
01085     unsigned long getPrintPreviewSize();
01086 
01095     void setMaxPrintPreviewWidthHeight(unsigned long width, unsigned long height);
01096 
01103     OFCondition getPrintPreviewWidthHeight(unsigned long &width, unsigned long &height);
01104 
01111     OFCondition getPrintPreviewBitmap(void *bitmap, unsigned long size);
01112 
01119     OFCondition disablePState();
01120 
01126     OFCondition enablePState();
01127 
01133     Uint32 getNumberOfPStates();
01134 
01141     OFCondition selectPState(Uint32 idx, OFBool changeStatus = OFFalse);
01142 
01148     const char *getPStateDescription(Uint32 idx);
01149 
01155     const char *getPStateLabel(Uint32 idx);
01156 
01164     OFBool isDisplayTransformPossible(DVPSDisplayTransform transform = DVPSD_GSDF);
01165 
01170     OFCondition setAmbientLightValue(double value);
01171 
01176     OFCondition getAmbientLightValue(double &value);
01177 
01178     /* print related methods */
01179 
01185     OFCondition setCurrentPrinter(const char *targetID);
01186 
01191     const char *getCurrentPrinter();
01192 
01199     OFCondition setPrinterMediumType(const char *value);
01200 
01204     const char *getPrinterMediumType();
01205 
01212     OFCondition setPrinterFilmDestination(const char *value);
01213 
01217     const char *getPrinterFilmDestination();
01218 
01225     OFCondition setPrinterFilmSessionLabel(const char *value);
01226 
01230     const char *getPrinterFilmSessionLabel();
01231 
01238     OFCondition setPrinterPriority(const char *value);
01239 
01243     const char *getPrinterPriority();
01244 
01251     OFCondition setPrinterOwnerID(const char *value);
01252 
01256     const char *getPrinterOwnerID();
01257 
01264     OFCondition setPrinterNumberOfCopies(unsigned long value);
01265 
01269     unsigned long getPrinterNumberOfCopies();
01270 
01276     void clearFilmSessionSettings();
01277 
01283     OFCondition selectDisplayPresentationLUT(const char *lutID);
01284 
01290     const char *getDisplayPresentationLUTID();
01291 
01299     OFCondition selectPrintPresentationLUT(const char *lutID);
01300 
01306     const char *getPrintPresentationLUTID();
01307 
01312     OFCondition spoolPrintJob(OFBool deletePrintedImages=OFTrue);
01313 
01325     OFCondition startPrintSpooler();
01326 
01333     OFCondition terminatePrintSpooler();
01334 
01347     OFCondition startPrintServer();
01348 
01356     OFCondition terminatePrintServer();
01357 
01368     OFCondition addToPrintHardcopyFromDB(const char *studyUID, const char *seriesUID, const char *instanceUID);
01369 
01380     OFCondition spoolStoredPrintFromDB(const char *studyUID, const char *seriesUID, const char *instanceUID);
01381 
01391     OFCondition printSCUcreateBasicFilmSession(DVPSPrintMessageHandler& printHandler, OFBool plutInSession);
01392 
01393     /* annotation interface */
01394 
01398     OFBool isActiveAnnotation() { return activateAnnotation; }
01399 
01403     OFBool getPrependDateTime() { return prependDateTime; }
01404 
01408     OFBool getPrependPrinterName() { return prependPrinterName; }
01409 
01413     OFBool getPrependLighting() { return prependLighting; }
01414 
01418     const char *getAnnotationText() { return annotationText.c_str(); }
01419 
01423     void setActiveAnnotation(OFBool value) { activateAnnotation=value; }
01424 
01428     void setPrependDateTime(OFBool value) { prependDateTime=value; }
01429 
01433     void setPrependPrinterName(OFBool value) { prependPrinterName=value; }
01434 
01438     void setPrependLighting(OFBool value) { prependLighting=value; }
01439 
01443     void setAnnotationText(const char *value);
01444 
01445     /* user management interface */
01446 
01458     OFBool verifyUserPassword(const char *userID, const char *passwd);
01459 
01483     OFCondition verifyAndSignStructuredReport(const char *userID, const char *passwd, DVPSVerifyAndSignMode mode);
01484 
01485 
01486     /* digital signatures */
01487 
01494     const char *getCurrentSignatureValidationHTML(DVPSObjectType objtype) const;
01495 
01500     const char *getCurrentSignatureValidationOverview() const;
01501 
01506     DVPSSignatureStatus getCurrentSignatureStatus(DVPSObjectType objtype) const;
01507 
01511     DVPSSignatureStatus getCombinedImagePStateSignatureStatus() const;
01512 
01517     unsigned long getNumberOfCorrectSignatures(DVPSObjectType objtype) const;
01518 
01523     unsigned long getNumberOfUntrustworthySignatures(DVPSObjectType objtype) const;
01524 
01529     unsigned long getNumberOfCorruptSignatures(DVPSObjectType objtype) const;
01530 
01535     void disableImageAndPState();
01536 
01537 private:
01538 
01541     DVInterface(const DVInterface&);
01542 
01545     DVInterface& operator=(const DVInterface&);
01546 
01554     OFCondition exchangeImageAndPState(DVPresentationState *newState, DcmFileFormat *image, DcmFileFormat *state=NULL);
01555 
01562     OFCondition lockDatabase();
01563 
01570     OFCondition lockExclusive();
01571 
01575     OFCondition unlockExclusive();
01576 
01583     OFCondition createPrintJobFilenames(const char *printer, OFString& tempname, OFString& jobname);
01584 
01589     OFCondition createQueryRetrieveServerConfigFile(const char *filename);
01590 
01597     OFCondition startExternalApplication(const char *application, const char *filename);
01598 
01599     /* member variables */
01600 
01603     DVPSStoredPrint *pPrint;
01604 
01607     DVPresentationState *pState;
01608 
01611     DSRDocument *pReport;
01612 
01615     DVSignatureHandler *pSignatureHandler;
01616 
01619     DVPresentationState *pStoredPState;
01620 
01623     DcmFileFormat *pDicomImage;
01624 
01628     DcmFileFormat *pDicomPState;
01629 
01632     DicomImage *pHardcopyImage;
01633 
01637     OFString printJobIdentifier;
01638 
01641     unsigned long printJobCounter;
01642 
01645     OFString configPath;
01646 
01650     OFString databaseIndexFile;
01651 
01655     unsigned long referenceTime;
01656 
01659     DiDisplayFunction *displayFunction[DVPSD_max];
01660 
01663     DcmQueryRetrieveIndexDatabaseHandle *pHandle;
01664 
01667     OFBool lockingMode;
01668 
01671     DVStudyCache idxCache;
01672 
01675     IdxRecord idxRec;
01676 
01679     int idxRecPos;
01680 
01683     OFBool imageInDatabase;
01684 
01685     /* private methods for database */
01686 
01689     OFBool createIndexCache();
01690 
01693     OFBool createPStateCache();
01694 
01697     void clearIndexCache();
01698 
01701     void clearIndexRecord(IdxRecord &record,
01702                           int &recpos);
01703 
01707     OFBool readIndexRecord(const int pos,
01708                            IdxRecord &record,
01709                            int *oldpos = NULL);
01710 
01714     void updateStatusCache();
01715 
01718     DVStudyCache::ItemStruct *getStudyStruct(const char *studyUID = NULL,
01719                                              const char *seriesUID = NULL);
01720 
01723     DVSeriesCache::ItemStruct *getSeriesStruct(const char *studyUID = NULL,
01724                                                const char *seriesUID = NULL,
01725                                                const char *instanceUID = NULL);
01726 
01729     DVInstanceCache::ItemStruct *getInstanceStruct(const char *studyUID = NULL,
01730                                                    const char *seriesUID = NULL,
01731                                                    const char *instanceUID = NULL);
01732 
01735     int findStudyIdx(StudyDescRecord *study,
01736                      const char *uid);
01737 
01740     int deleteImageFile(const char *filename);
01741 
01744     void resetDatabaseReferenceTime();
01745 
01746 
01750     OFCondition instanceReviewed(int pos);
01751 
01754     unsigned long minimumPrintBitmapWidth;
01755 
01758     unsigned long minimumPrintBitmapHeight;
01759 
01762     unsigned long maximumPrintBitmapWidth;
01763 
01766     unsigned long maximumPrintBitmapHeight;
01767 
01770     unsigned long maximumPrintPreviewWidth;
01771 
01774     unsigned long maximumPrintPreviewHeight;
01775 
01778     unsigned long maximumPreviewImageWidth;
01779 
01782     unsigned long maximumPreviewImageHeight;
01783 
01786     OFString currentPrinter;
01787 
01790     OFString displayCurrentLUTID;
01791 
01794     OFString printCurrentLUTID;
01795 
01798     OFString printerMediumType;
01799 
01802     OFString printerFilmDestination;
01803 
01806     OFString printerFilmSessionLabel;
01807 
01810     unsigned long printerNumberOfCopies;
01811 
01815     OFString printerPriority;
01816 
01819     OFString printerOwnerID;
01820 
01823     OFBool activateAnnotation;
01824 
01827     OFBool prependDateTime;
01828 
01831     OFBool prependPrinterName;
01832 
01835     OFBool prependLighting;
01836 
01839     OFString annotationText;
01840 };
01841 
01842 
01843 #endif
01844 
01845 
01846 /*
01847  *  CVS/RCS Log:
01848  *  $Log: dviface.h,v $
01849  *  Revision 1.95  2010-10-14 13:16:35  joergr
01850  *  Updated copyright header. Added reference to COPYRIGHT file.
01851  *
01852  *  Revision 1.94  2009-11-24 14:12:57  uli
01853  *  Switched to logging mechanism provided by the "new" oflog module.
01854  *
01855  *  Revision 1.93  2009-09-30 10:42:37  uli
01856  *  Make dcmpstat's include headers self-sufficient by including all
01857  *  needed headers directly and stop using dctk.h
01858  *
01859  *  Revision 1.92  2009-05-28 10:55:38  joergr
01860  *  Fixed various Doxygen API documentation issues.
01861  *
01862  *  Revision 1.91  2005/12/08 16:03:31  meichel
01863  *  Changed include path schema for all DCMTK header files
01864  *
01865  *  Revision 1.90  2005/04/04 10:11:57  meichel
01866  *  Module dcmpstat now uses the dcmqrdb API instead of imagectn for maintaining
01867  *    the index database
01868  *
01869  *  Revision 1.89  2004/02/04 15:48:23  joergr
01870  *  Removed acknowledgements with e-mail addresses from CVS log.
01871  *
01872  *  Revision 1.88  2003/04/29 10:13:56  meichel
01873  *  Moved configuration file parser from module dcmpstat to ofstd and renamed
01874  *    class to OFConfigFile. Cleaned up implementation (no more friend declarations).
01875  *
01876  *  Revision 1.87  2002/04/16 14:02:02  joergr
01877  *  Added configurable support for C++ ANSI standard includes (e.g. streams).
01878  *
01879  *  Revision 1.86  2001/09/26 15:36:06  meichel
01880  *  Adapted dcmpstat to class OFCondition
01881  *
01882  *  Revision 1.85  2001/02/23 13:31:46  joergr
01883  *  Changed behaviour of method verifyAndSignStructuredReport() with 'finalize'.
01884  *  Now the entire document is always signed independently from the tree items
01885  *  marked.
01886  *
01887  *  Revision 1.84  2001/01/29 17:32:30  joergr
01888  *  Added method to verify and digitally sign structured reports.
01889  *
01890  *  Revision 1.83  2001/01/29 14:55:41  meichel
01891  *  Added new methods for creating signatures and checking the signature
01892  *    status in module dcmpstat.
01893  *
01894  *  Revision 1.82  2001/01/25 15:18:04  meichel
01895  *  Added initial support for verification of digital signatures
01896  *    in presentation states, images and structured reports to module dcmpstat.
01897  *
01898  *  Revision 1.81  2000/11/14 16:35:16  joergr
01899  *  Added creation of new UIDs and setting of content date/time when starting
01900  *  a new SR document from a "template".
01901  *
01902  *  Revision 1.80  2000/11/13 15:50:42  meichel
01903  *  Added dcmpstat support methods for creating image references
01904  *    in SR documents.
01905  *
01906  *  Revision 1.79  2000/11/13 11:52:40  meichel
01907  *  Added support for user logins and certificates.
01908  *
01909  *  Revision 1.78  2000/11/13 10:42:38  joergr
01910  *  Added support for Structured Reporting "templates".
01911  *
01912  *  Revision 1.77  2000/10/16 11:39:43  joergr
01913  *  Added support for new structured reports.
01914  *  Added method allowing to select an instance by instance UID and SOP class
01915  *  UID (without series and study UID). Required for composite references in
01916  *  DICOM SR.
01917  *
01918  *  Revision 1.76  2000/10/10 12:23:39  meichel
01919  *  Added extensions for TLS encrypted communication
01920  *
01921  *  Revision 1.75  2000/07/18 16:02:35  joergr
01922  *  Moved method convertODtoLum/PValue from class DVInterface to DVPSStoredPrint
01923  *  and corrected implementation.
01924  *
01925  *  Revision 1.74  2000/07/17 12:05:09  joergr
01926  *  Added methods to select objects from the database directly.
01927  *
01928  *  Revision 1.73  2000/07/14 17:09:47  joergr
01929  *  Added changeStatus parameter to all methods loading instances from the
01930  *  database.
01931  *
01932  *  Revision 1.72  2000/07/06 09:41:00  joergr
01933  *  Added flag to loadPrintPreview() method allowing to choose how to interpret
01934  *  the presentation LUT (hardcopy or softcopy definition).
01935  *
01936  *  Revision 1.71  2000/07/04 15:58:00  joergr
01937  *  Added support for overriding the presentation LUT settings made for the
01938  *  image boxes.
01939  *
01940  *  Revision 1.70  2000/06/21 15:40:57  meichel
01941  *  Added DICOMscope support for calling the Presentation State Checker.
01942  *
01943  *  Revision 1.69  2000/06/09 10:13:54  joergr
01944  *  Added method to get number of presentation states referencing an image
01945  *  (specified by the three UIDs).
01946  *
01947  *  Revision 1.68  2000/06/08 17:36:23  joergr
01948  *  Added method convertODtoLum().
01949  *
01950  *  Revision 1.67  2000/06/07 14:15:52  joergr
01951  *  Added configuration file entry "LogLevel" to filter log messages.
01952  *  Added flag to constructor specifying whether the general log file should be
01953  *  used (default: off).
01954  *
01955  *  Revision 1.66  2000/06/05 16:21:30  joergr
01956  *  Implemented log message methods.
01957  *  Added method allowing to specify the current presentation state to be used
01958  *  for resetting the pstate.
01959  *
01960  *  Revision 1.65  2000/06/02 16:00:41  meichel
01961  *  Adapted all dcmpstat classes to use OFConsole for log and error output
01962  *
01963  *  Revision 1.64  2000/06/02 13:53:53  joergr
01964  *  Implemented start/terminatePrintServer methods.
01965  *
01966  *  Revision 1.63  2000/06/02 12:41:50  joergr
01967  *  Corrected wrong interface descriptions.
01968  *
01969  *  Revision 1.62  2000/05/31 12:56:37  meichel
01970  *  Added initial Print SCP support
01971  *
01972  *  Revision 1.61  2000/05/31 07:54:23  joergr
01973  *  Added support for Stored Print attributes Originator and Destination
01974  *  application entity title.
01975  *
01976  *  Revision 1.60  2000/05/30 13:36:45  joergr
01977  *  Added new private SOP class (UID definition) to allow external shutdown
01978  *  of console applications via negotiation of this special SOP class
01979  *  (currently used for imagectn and dcmpsrcv).
01980  *  Renamed GrayscaleHardcopy to HardcopyGrayscale (which is the correct term
01981  *  according to the DICOM standard).
01982  *  Added support for multi-frame images and multiple references from a single
01983  *  presentation to a number of images.
01984  *  Removed methods which were already marked as "retired".
01985  *  Added interface methods to support the following new features:
01986  *    - start/terminate query/retrieve server
01987  *    - load stored print objects
01988  *    - create print preview from hardcopy grayscale images
01989  *    - check DICOM IODs for correctness (not yet implemented)
01990  *    - set presentation LUT for film session (not yet implemented)
01991  *    - start/terminate print server (not yet implemented)
01992  *    - write/filter log messages (not yet implemented)
01993  *
01994  *  Revision 1.59  2000/03/08 16:28:47  meichel
01995  *  Updated copyright header.
01996  *
01997  *  Revision 1.58  2000/03/03 14:13:54  meichel
01998  *  Implemented library support for redirecting error messages into memory
01999  *    instead of printing them to stdout/stderr for GUI applications.
02000  *
02001  *  Revision 1.57  1999/11/03 13:05:31  meichel
02002  *  Added support for transmitting annotations in the film session label.
02003  *    Added support for dump tool launched from DVInterface.
02004  *
02005  *  Revision 1.56  1999/10/20 10:47:13  joergr
02006  *  Added support for a down-scaled preview image of the current DICOM image
02007  *  (e.g. useful for online-windowing or print preview).
02008  *
02009  *  Revision 1.55  1999/10/19 14:46:01  meichel
02010  *  added support for the Basic Annotation Box SOP Class
02011  *    as well as access methods for Max Density and Min Density.
02012  *
02013  *  Revision 1.54  1999/10/07 17:21:45  meichel
02014  *  Reworked management of Presentation LUTs in order to create tighter
02015  *    coupling between Softcopy and Print.
02016  *
02017  *  Revision 1.53  1999/09/27 10:41:52  meichel
02018  *  Print interface now copies current printer name, avoids JNI problems.
02019  *
02020  *  Revision 1.52  1999/09/24 15:24:28  meichel
02021  *  Added support for CP 173 (Presentation LUT clarifications)
02022  *
02023  *  Revision 1.51  1999/09/23 17:37:12  meichel
02024  *  Added support for Basic Film Session options to dcmpstat print code.
02025  *
02026  *  Revision 1.50  1999/09/17 14:33:55  meichel
02027  *  Completed print spool functionality including Supplement 22 support
02028  *
02029  *  Revision 1.49  1999/09/15 17:43:25  meichel
02030  *  Implemented print job dispatcher code for dcmpstat, adapted dcmprtsv
02031  *    and dcmpsprt applications.
02032  *
02033  *  Revision 1.48  1999/09/13 15:19:08  meichel
02034  *  Added implementations for a number of further print API methods.
02035  *
02036  *  Revision 1.47  1999/09/10 12:46:44  meichel
02037  *  Added implementations for a number of print API methods.
02038  *
02039  *  Revision 1.46  1999/09/10 09:37:29  joergr
02040  *  Re-added automatically removed method declarations (maybe a problem with
02041  *  CVS's merge algorithm).
02042  *
02043  *  Revision 1.43  1999/09/08 17:03:01  joergr
02044  *  Added support for new instance types in database (grayscale hardcopy and
02045  *  stored print).
02046  *
02047  *  Revision 1.42  1999/09/08 16:42:01  meichel
02048  *  Moved configuration file evaluation to separate class.
02049  *
02050  *  Revision 1.41  1999/09/01 16:14:39  meichel
02051  *  Added support for requested image size to print routines
02052  *
02053  *  Revision 1.40  1999/08/31 16:54:44  meichel
02054  *  Added new sample application that allows to create simple print jobs.
02055  *
02056  *  Revision 1.39  1999/08/31 14:02:05  meichel
02057  *  Added print related config file methods
02058  *
02059  *  Revision 1.38  1999/08/27 15:57:55  meichel
02060  *  Added methods for saving hardcopy images and stored print objects
02061  *    either in file or in the local database.
02062  *
02063  *  Revision 1.37  1999/08/25 16:47:20  joergr
02064  *  Moved method 'saveFileFormat()' to public part of the interface class.
02065  *
02066  *  Revision 1.36  1999/05/05 14:25:26  joergr
02067  *  Added optional parameter to method loadPState (from database) to change
02068  *  instance reviewed flag for pstate and image.
02069  *
02070  *  Revision 1.35  1999/04/29 15:25:37  joergr
02071  *  Added PresentationLabel to index file.
02072  *
02073  *  Revision 1.34  1999/04/27 11:23:16  joergr
02074  *  Enhanced savePState() method: now image file is also added to index file
02075  *  and stored in image directory (if not already there).
02076  *  Added new entry to index file: Presentation Description.
02077  *
02078  *  Revision 1.33  1999/03/03 13:24:32  joergr
02079  *  Added methods to get and set ambient light value (re: Barten transformation).
02080  *  Moved method 'isBartenTransformPossible()' from presentation state class to
02081  *  interface class.
02082  *
02083  *  Revision 1.32  1999/03/02 12:52:51  joergr
02084  *  Added parameter to selectPState() specifying whether to change the review
02085  *  status of the loaded presentation state.
02086  *
02087  *  Revision 1.31  1999/02/25 18:38:58  joergr
02088  *  Added some comments.
02089  *  Renamed methods enable/disablePState().
02090  *
02091  *  Revision 1.30  1999/02/24 20:17:48  joergr
02092  *  Added methods to get a list of presentation states referencing the
02093  *  currently selected image.
02094  *  Added support for exchanging current presentation state (load from file)
02095  *  without deleting the current image.
02096  *
02097  *  Revision 1.29  1999/02/22 14:20:20  joergr
02098  *  Added deletion of image files (depending on directory where the file is
02099  *  stored).
02100  *  Modified comments for getGUIConfig... methods to indicate that the
02101  *  specified key must be upper case.
02102  *  Reset reference time for file modification checking after the index file
02103  *  has been changed internally (delete and change status methods).
02104  *
02105  *  Revision 1.28  1999/02/19 18:58:11  joergr
02106  *  Added methods to disable and (re-)enable PresentationStates.
02107  *  Added (private) helper methods to reduce redundant lines of code.
02108  *
02109  *  Revision 1.27  1999/02/19 09:44:17  joergr
02110  *  Added comments to new database routines and related member variables.
02111  *
02112  *  Revision 1.26  1999/02/18 18:46:19  joergr
02113  *  Re-implemented methods to access index file (delete methods are still
02114  *  missing).
02115  *  Removed parameter 'deletefile' from delete methods. This parameter is
02116  *  not necessary because the decision whether a images file is deleted only
02117  *  depends on the directory where the file is stored (see comments).
02118  *
02119  *  Revision 1.25  1999/02/18 11:07:26  meichel
02120  *  Added new parameter explicitVR to interface methods savePState,
02121  *    saveDICOMImage.  Allows to choose between explicit VR and implicit VR
02122  *    little endian format.  Added new method saveCurrentImage that allows to
02123  *    save the current image to file.
02124  *
02125  *  Revision 1.24  1999/02/17 10:05:30  meichel
02126  *  Moved creation of Display Function object from DVPresentationState to
02127  *    DVInterface to avoid unnecessary re-reads.
02128  *
02129  *  Revision 1.23  1999/02/16 16:36:10  meichel
02130  *  Added method newInstancesReceived() to DVInterface class.
02131  *
02132  *  Revision 1.22  1999/02/12 10:02:46  vorwerk
02133  *  added cache , changed deletemethods.
02134  *
02135  *  Revision 1.21  1999/02/09 15:58:07  meichel
02136  *  Implemented methods that save images and presentation states in the DB.
02137  *
02138  *  Revision 1.20  1999/02/08 10:52:33  meichel
02139  *  Updated documentation of dviface.h in Doc++ style.
02140  *    Removed dummy parameter from constructor.
02141  *
02142  *  Revision 1.19  1999/02/05 17:45:35  meichel
02143  *  Added config file entry for monitor characteristics file.  Monitor charac-
02144  *    teristics are passed to dcmimage if present to activate Barten transform.
02145  *
02146  *  Revision 1.18  1999/02/05 11:38:01  vorwerk
02147  *  parameter in stripidxarray added.
02148  *
02149  *  Revision 1.17  1999/01/29 16:01:05  meichel
02150  *  Reworked index file handle acquisition and locking code.
02151  *
02152  *  Revision 1.16  1999/01/28 15:30:53  vorwerk
02153  *  New database lock method added.
02154  *
02155  *  Revision 1.15  1999/01/27 15:28:34  vorwerk
02156  *  new method idxfiletest added to handle with indexfiles of length zero.
02157  *
02158  *  Revision 1.14  1999/01/27 14:59:28  meichel
02159  *  Implemented DICOM network receive application "dcmpsrcv" which receives
02160  *    images and presentation states and stores them in the local database.
02161  *
02162  *  Revision 1.13  1999/01/25 18:18:23  meichel
02163  *  Defined private SOP class UID for network receiver
02164  *    shutdown function. Cleanup up some code.
02165  *
02166  *  Revision 1.12  1999/01/25 16:55:17  vorwerk
02167  *  function stripidxarray added.
02168  *
02169  *  Revision 1.11  1999/01/25 13:05:55  meichel
02170  *  Implemented DVInterface::startReceiver()
02171  *    and several config file related methods.
02172  *
02173  *  Revision 1.10  1999/01/20 19:25:25  meichel
02174  *  Implemented sendIOD method which creates a separate process for trans-
02175  *    mitting images from the local database to a remote communication peer.
02176  *
02177  *  Revision 1.9  1999/01/19 15:14:48  vorwerk
02178  *  Methods for acesseing additional attributes added.
02179  *
02180  *  Revision 1.8  1999/01/15 17:27:14  meichel
02181  *  added DVInterface method resetPresentationState() which allows to reset a
02182  *    presentation state to the initial state (after loading).
02183  *
02184  *  Revision 1.7  1999/01/14 17:50:30  meichel
02185  *  added new method saveDICOMImage() to class DVInterface.
02186  *    Allows to store a bitmap as a DICOM image.
02187  *
02188  *  Revision 1.6  1999/01/04 13:27:16  vorwerk
02189  *  line inserted
02190  *
02191  *  Revision 1.5  1999/01/04 13:02:26  vorwerk
02192  *  getSeriesPerformingPhysicainsName() changed in getSeriesPerformingPhysiciansName()
02193  *
02194  *  Revision 1.4  1998/12/22 17:57:03  meichel
02195  *  Implemented Presentation State interface for overlays,
02196  *    VOI LUTs, VOI windows, curves. Added test program that
02197  *    allows to add curve data to DICOM images.
02198  *
02199  *  Revision 1.3  1998/12/22 15:50:06  vorwerk
02200  *  - constructor now with parameter for directory of index.dat
02201  *  - changed const methods in non-const-methods
02202  *  - added methods for attributes of DICOM-documents
02203  *  - added private method for operations on index.dat
02204  *
02205  *  Revision 1.2  1998/11/30 11:26:59  joergr
02206  *  Added CVS/RCS log at end of file.
02207  *
02208  *
02209  */


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