Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | Related Pages

dviface.h

00001 /*
00002  *
00003  *  Copyright (C) 1998-2004, OFFIS
00004  *
00005  *  This software and supporting documentation were developed by
00006  *
00007  *    Kuratorium OFFIS e.V.
00008  *    Healthcare Information and Communication Systems
00009  *    Escherweg 2
00010  *    D-26121 Oldenburg, Germany
00011  *
00012  *  THIS SOFTWARE IS MADE AVAILABLE,  AS IS,  AND OFFIS MAKES NO  WARRANTY
00013  *  REGARDING  THE  SOFTWARE,  ITS  PERFORMANCE,  ITS  MERCHANTABILITY  OR
00014  *  FITNESS FOR ANY PARTICULAR USE, FREEDOM FROM ANY COMPUTER DISEASES  OR
00015  *  ITS CONFORMITY TO ANY SPECIFICATION. THE ENTIRE RISK AS TO QUALITY AND
00016  *  PERFORMANCE OF THE SOFTWARE IS WITH THE USER.
00017  *
00018  *  Module: dcmpstat
00019  *
00020  *  Author: Marco Eichelberg, Joerg Riesmeier
00021  *
00022  *  Purpose:
00023  *    classes: DVInterface
00024  *
00025  *  Last Update:      $Author: joergr $
00026  *  Update Date:      $Date: 2004/02/04 15:48:23 $
00027  *  CVS/RCS Revision: $Revision: 1.89 $
00028  *  Status:           $State: Exp $
00029  *
00030  *  CVS/RCS Log at end of file
00031  *
00032  */
00033 
00034 
00035 #ifndef DVIFACE_H
00036 #define DVIFACE_H
00037 
00038 #include "osconfig.h"   /* make sure OS specific configuration is included first */
00039 
00040 
00041 #include "ofstream.h"
00042 #include "dctk.h"
00043 #include "dvpscf.h"     /* for class DVConfiguration */
00044 #include "dvpstat.h"    /* for class DVPresentationState */
00045 #include "dbpriv.h"     /* for struct IdxRecord */
00046 #include "dbstore.h"    /* for filedeletion */
00047 #include "ofstring.h"   /* for class OFString */
00048 #include "imagedb.h"    /* for DB_UpperMaxBytesPerStudy */
00049 #include "dvcache.h"    /* for index file caching */
00050 
00051 
00052 class OFLogFile;
00053 class DicomImage;
00054 class DiDisplayFunction;
00055 class DVPSStoredPrint;
00056 class DVPSPrintMessageHandler;
00057 class DSRDocument;
00058 class DVSignatureHandler;
00059 
00064 class DVInterface: public DVConfiguration
00065 {
00066 
00067  public:
00068 
00078     DVInterface(const char *config_file = NULL, OFBool useLog = OFFalse);
00079 
00082     virtual ~DVInterface();
00083 
00084     /* load images, presentation states and structured reports */
00085 
00095     OFCondition loadImage(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
00096 
00103     OFCondition loadImage(const char *filename);
00104 
00112     OFCondition loadReferencedImage(size_t idx, OFBool changeStatus = OFFalse);
00113 
00124     OFCondition loadPState(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
00125 
00134     OFCondition loadPState(const char *pstName, const char *imgName = NULL);
00135 
00144     OFCondition loadStructuredReport(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
00145 
00151     OFCondition loadStructuredReport(const char *filename);
00152 
00165     OFCondition loadSRTemplate(const char *reportID);
00166 
00179     OFCondition savePState(OFBool replaceSOPInstanceUID);
00180 
00194     OFCondition savePState(const char *filename, OFBool replaceSOPInstanceUID, OFBool explicitVR=OFTrue);
00195 
00205     OFCondition saveCurrentImage(const char *filename, OFBool explicitVR=OFTrue);
00206 
00218     OFCondition saveStructuredReport();
00219 
00232     OFCondition saveStructuredReport(const char *filename, OFBool explicitVR=OFTrue);
00233 
00242     OFCondition addImageReferenceToPState(const char *studyUID, const char *seriesUID, const char *instanceUID);
00243 
00247     size_t getNumberOfImageReferences();
00248 
00255     DVPresentationState& getCurrentPState()
00256     {
00257       return *pState;
00258     }
00259 
00265     DSRDocument& getCurrentReport()
00266     {
00267       return *pReport;
00268     }
00269 
00274     DVPSStoredPrint& getPrintHandler()
00275     {
00276       return *pPrint;
00277     }
00278 
00286     OFCondition resetPresentationState();
00287 
00293     OFCondition saveCurrentPStateForReset();
00294 
00303     OFCondition releaseDatabase();
00304 
00314     const char *getFilename(const char *studyUID, const char *seriesUID, const char *instanceUID);
00315 
00324     Uint32 getNumberOfStudies();
00325 
00334     OFCondition selectStudy(Uint32 idx);
00335 
00344     OFCondition selectStudy(const char *studyUID);
00345 
00352     DVIFhierarchyStatus getStudyStatus() ;
00353 
00359     const char *getStudyUID();
00360 
00366     const char *getStudyDescription();
00367 
00373     const char *getStudyDate();
00374 
00380     const char *getStudyTime();
00381 
00387     const char *getReferringPhysiciansName();
00388 
00394     const char *getAccessionNumber();
00395 
00401     const char *getNameOfPhysiciansReadingStudy();
00402 
00410     const char *getPatientName();
00411 
00419     const char *getPatientID();
00420 
00428     const char *getPatientBirthDate();
00429 
00437     const char *getPatientSex();
00438 
00446     const char *getPatientBirthTime();
00447 
00455     const char *getOtherPatientNames();
00456 
00464     const char *getOtherPatientID();
00465 
00473     const char *getEthnicGroup();
00474 
00482     Uint32 getNumberOfSeries();
00483 
00491     OFCondition selectSeries(Uint32 idx);
00492 
00500     OFCondition selectSeries(const char *seriesUID);
00501 
00507     const char *getSeriesUID();
00508 
00514     DVIFhierarchyStatus getSeriesStatus();
00515 
00523     DVPSInstanceType getSeriesType();
00524 
00530     DVPSInstanceType getInstanceType();
00531 
00537     const char *getSeriesNumber();
00538 
00544     const char *getSeriesDate();
00545 
00551     const char *getSeriesTime();
00552 
00558     const char *getSeriesDescription();
00559 
00565     const char *getSeriesPerformingPhysiciansName();
00566 
00572     const char *getSeriesProtocolName();
00573 
00579     const char *getSeriesOperatorsName();
00580 
00586     const char *getModality();
00587 
00595     Uint32 getNumberOfInstances();
00596 
00604     OFCondition selectInstance(Uint32 idx);
00605 
00613     OFCondition selectInstance(const char *instanceUID);
00614 
00624     OFCondition selectInstance(const char *instanceUID, const char *sopClassUID);
00625 
00635     OFCondition selectInstance(const char *studyUID, const char *seriesUID, const char *instanceUID);
00636 
00642     const char *getSOPClassUID();
00643 
00649     const char *getInstanceUID();
00650 
00656     const char *getImageNumber();
00657 
00663     const char *getFilename();
00664 
00670     DVIFhierarchyStatus getInstanceStatus() ;
00671 
00677     const char *getInstanceDescription();
00678 
00684     const char *getPresentationLabel();
00685 
00686 
00687     /* methods modifying the database */
00688 
00701     OFCondition instanceReviewed(const char *studyUID, const char *seriesUID, const char *instanceUID);
00702 
00714     OFCondition deleteInstance(const char *studyUID, const char *seriesUID, const char *instanceUID);
00715 
00726     OFCondition deleteSeries(const char *studyUID, const char *seriesUID);
00727 
00737     OFCondition deleteStudy(const char *studyUID);
00738 
00739     /* here follow the Network interface methods */
00740 
00752     OFCondition startReceiver();
00753 
00761     OFCondition terminateReceiver();
00762 
00778     OFCondition startQueryRetrieveServer();
00779 
00789     OFCondition terminateQueryRetrieveServer();
00790 
00801     OFBool newInstancesReceived();
00802 
00815     OFCondition sendStudy(const char *targetID, const char *studyUID)
00816     {
00817       return sendIOD(targetID, studyUID, NULL, NULL);
00818     }
00819 
00834     OFCondition sendSeries(const char *targetID, const char *studyUID, const char *seriesUID)
00835     {
00836       return sendIOD(targetID, studyUID, seriesUID, NULL);
00837     }
00838 
00856     OFCondition sendIOD(const char *targetID, const char *studyUID, const char *seriesUID, const char *instanceUID);
00857 
00868     OFCondition dumpIOD(const char *filename);
00869 
00885     OFCondition dumpIOD(const char *studyUID, const char *seriesUID, const char *instanceUID);
00886 
00897     OFCondition checkIOD(const char *filename);
00898 
00914     OFCondition checkIOD(const char *studyUID, const char *seriesUID, const char *instanceUID);
00915 
00933     OFCondition saveDICOMImage(
00934       const char *filename,
00935       const void *pixelData,
00936       unsigned long width,
00937       unsigned long height,
00938       double aspectRatio=1.0,
00939       OFBool explicitVR=OFTrue,
00940       const char *instanceUID=NULL);
00941 
00956     OFCondition saveDICOMImage(
00957       const void *pixelData,
00958       unsigned long width,
00959       unsigned long height,
00960       double aspectRatio=1.0);
00961 
00979     OFCondition saveHardcopyGrayscaleImage(
00980       const char *filename,
00981       const void *pixelData,
00982       unsigned long width,
00983       unsigned long height,
00984       double aspectRatio=1.0,
00985       OFBool explicitVR=OFTrue,
00986       const char *instanceUID=NULL);
00987 
01002     OFCondition saveHardcopyGrayscaleImage(
01003       const void *pixelData,
01004       unsigned long width,
01005       unsigned long height,
01006       double aspectRatio=1.0);
01007 
01017     OFCondition saveFileFormatToDB(DcmFileFormat &fileformat);
01018 
01028     OFCondition loadStoredPrint(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
01029 
01036     OFCondition loadStoredPrint(const char *filename);
01037 
01049     OFCondition saveStoredPrint(
01050       const char *filename,
01051       OFBool writeRequestedImageSize,
01052       OFBool explicitVR=OFTrue,
01053       const char *instanceUID=NULL);
01054 
01065     OFCondition saveStoredPrint(OFBool writeRequestedImageSize);
01066 
01070     size_t getNumberOfPrintPreviews();
01071 
01083     OFCondition loadPrintPreview(size_t idx, OFBool printLUT = OFTrue, OFBool changeStatus = OFFalse);
01084 
01087     void unloadPrintPreview();
01088 
01093     unsigned long getPrintPreviewSize();
01094 
01103     void setMaxPrintPreviewWidthHeight(unsigned long width, unsigned long height);
01104 
01111     OFCondition getPrintPreviewWidthHeight(unsigned long &width, unsigned long &height);
01112 
01119     OFCondition getPrintPreviewBitmap(void *bitmap, unsigned long size);
01120 
01127     OFCondition disablePState();
01128 
01134     OFCondition enablePState();
01135 
01141     Uint32 getNumberOfPStates();
01142 
01149     OFCondition selectPState(Uint32 idx, OFBool changeStatus = OFFalse);
01150 
01156     const char *getPStateDescription(Uint32 idx);
01157 
01163     const char *getPStateLabel(Uint32 idx);
01164 
01172     OFBool isDisplayTransformPossible(DVPSDisplayTransform transform = DVPSD_GSDF);
01173 
01178     OFCondition setAmbientLightValue(double value);
01179 
01184     OFCondition getAmbientLightValue(double &value);
01185 
01186     /* print related methods */
01187 
01193     OFCondition setCurrentPrinter(const char *targetID);
01194 
01199     const char *getCurrentPrinter();
01200 
01207     OFCondition setPrinterMediumType(const char *value);
01208 
01212     const char *getPrinterMediumType();
01213 
01220     OFCondition setPrinterFilmDestination(const char *value);
01221 
01225     const char *getPrinterFilmDestination();
01226 
01233     OFCondition setPrinterFilmSessionLabel(const char *value);
01234 
01238     const char *getPrinterFilmSessionLabel();
01239 
01246     OFCondition setPrinterPriority(const char *value);
01247 
01251     const char *getPrinterPriority();
01252 
01259     OFCondition setPrinterOwnerID(const char *value);
01260 
01264     const char *getPrinterOwnerID();
01265 
01272     OFCondition setPrinterNumberOfCopies(unsigned long value);
01273 
01277     unsigned long getPrinterNumberOfCopies();
01278 
01284     void clearFilmSessionSettings();
01285 
01291     OFCondition selectDisplayPresentationLUT(const char *lutID);
01292 
01298     const char *getDisplayPresentationLUTID();
01299 
01307     OFCondition selectPrintPresentationLUT(const char *lutID);
01308 
01314     const char *getPrintPresentationLUTID();
01315 
01320     OFCondition spoolPrintJob(OFBool deletePrintedImages=OFTrue);
01321 
01333     OFCondition startPrintSpooler();
01334 
01341     OFCondition terminatePrintSpooler();
01342 
01355     OFCondition startPrintServer();
01356 
01364     OFCondition terminatePrintServer();
01365 
01376     OFCondition addToPrintHardcopyFromDB(const char *studyUID, const char *seriesUID, const char *instanceUID);
01377 
01388     OFCondition spoolStoredPrintFromDB(const char *studyUID, const char *seriesUID, const char *instanceUID);
01389 
01399     OFCondition printSCUcreateBasicFilmSession(DVPSPrintMessageHandler& printHandler, OFBool plutInSession);
01400 
01401     /* annotation interface */
01402 
01406     OFBool isActiveAnnotation() { return activateAnnotation; }
01407 
01411     OFBool getPrependDateTime() { return prependDateTime; }
01412 
01416     OFBool getPrependPrinterName() { return prependPrinterName; }
01417 
01421     OFBool getPrependLighting() { return prependLighting; }
01422 
01426     const char *getAnnotationText() { return annotationText.c_str(); }
01427 
01431     void setActiveAnnotation(OFBool value) { activateAnnotation=value; }
01432 
01436     void setPrependDateTime(OFBool value) { prependDateTime=value; }
01437 
01441     void setPrependPrinterName(OFBool value) { prependPrinterName=value; }
01442 
01446     void setPrependLighting(OFBool value) { prependLighting=value; }
01447 
01451     void setAnnotationText(const char *value);
01452 
01453     /* user management interface */
01454 
01466     OFBool verifyUserPassword(const char *userID, const char *passwd);
01467 
01491     OFCondition verifyAndSignStructuredReport(const char *userID, const char *passwd, DVPSVerifyAndSignMode mode);
01492 
01493 
01494     /* log file interface */
01495 
01501     virtual void setLog(OFConsole *stream, OFBool verbMode, OFBool dbgMode);
01502 
01510     void setLogFilter(DVPSLogMessageLevel level);
01511 
01520     OFCondition writeLogMessage(
01521       DVPSLogMessageLevel level,
01522       const char *module,
01523       const char *message);
01524 
01525     /* digital signatures */
01526 
01533     const char *getCurrentSignatureValidationHTML(DVPSObjectType objtype) const;
01534 
01539     const char *getCurrentSignatureValidationOverview() const;
01540 
01545     DVPSSignatureStatus getCurrentSignatureStatus(DVPSObjectType objtype) const;
01546 
01550     DVPSSignatureStatus getCombinedImagePStateSignatureStatus() const;
01551 
01556     unsigned long getNumberOfCorrectSignatures(DVPSObjectType objtype) const;
01557 
01562     unsigned long getNumberOfUntrustworthySignatures(DVPSObjectType objtype) const;
01563 
01568     unsigned long getNumberOfCorruptSignatures(DVPSObjectType objtype) const;
01569 
01574     void disableImageAndPState();
01575 
01576 private:
01577 
01580     DVInterface(const DVInterface&);
01581 
01584     DVInterface& operator=(const DVInterface&);
01585 
01593     OFCondition exchangeImageAndPState(DVPresentationState *newState, DcmFileFormat *image, DcmFileFormat *state=NULL);
01594 
01601     OFCondition lockDatabase();
01602 
01609     OFCondition lockExclusive();
01610 
01614     OFCondition unlockExclusive();
01615 
01622     OFCondition createPrintJobFilenames(const char *printer, OFString& tempname, OFString& jobname);
01623 
01628     OFCondition createQueryRetrieveServerConfigFile(const char *filename);
01629 
01636     OFCondition startExternalApplication(const char *application, const char *filename);
01637 
01638     /* member variables */
01639 
01642     DVPSStoredPrint *pPrint;
01643 
01646     DVPresentationState *pState;
01647 
01650     DSRDocument *pReport;
01651 
01654     DVSignatureHandler *pSignatureHandler;
01655 
01658     DVPresentationState *pStoredPState;
01659 
01662     DcmFileFormat *pDicomImage;
01663 
01667     DcmFileFormat *pDicomPState;
01668 
01671     DicomImage *pHardcopyImage;
01672 
01676     OFString printJobIdentifier;
01677 
01680     unsigned long printJobCounter;
01681 
01684     OFString configPath;
01685 
01689     OFString databaseIndexFile;
01690 
01694     unsigned long referenceTime;
01695 
01698     DiDisplayFunction *displayFunction[DVPSD_max];
01699 
01702     DB_Private_Handle *pHandle;
01703 
01706     OFBool lockingMode;
01707 
01710     DVStudyCache idxCache;
01711 
01714     IdxRecord idxRec;
01715 
01718     int idxRecPos;
01719 
01722     OFBool imageInDatabase;
01723 
01724     /* private methods for database */
01725 
01728     OFBool createIndexCache();
01729 
01732     OFBool createPStateCache();
01733 
01736     void clearIndexCache();
01737 
01740     void clearIndexRecord(IdxRecord &record,
01741                           int &recpos);
01742 
01746     OFBool readIndexRecord(const int pos,
01747                            IdxRecord &record,
01748                            int *oldpos = NULL);
01749 
01753     void updateStatusCache();
01754 
01757     DVStudyCache::ItemStruct *getStudyStruct(const char *studyUID = NULL,
01758                                              const char *seriesUID = NULL);
01759 
01762     DVSeriesCache::ItemStruct *getSeriesStruct(const char *studyUID = NULL,
01763                                                const char *seriesUID = NULL,
01764                                                const char *instanceUID = NULL);
01765 
01768     DVInstanceCache::ItemStruct *getInstanceStruct(const char *studyUID = NULL,
01769                                                    const char *seriesUID = NULL,
01770                                                    const char *instanceUID = NULL);
01771 
01774     int findStudyIdx(StudyDescRecord *study,
01775                      const char *uid);
01776 
01779     int deleteImageFile(const char *filename);
01780 
01783     void resetDatabaseReferenceTime();
01784 
01785 
01789     OFCondition instanceReviewed(int pos);
01790 
01793     unsigned long minimumPrintBitmapWidth;
01794 
01797     unsigned long minimumPrintBitmapHeight;
01798 
01801     unsigned long maximumPrintBitmapWidth;
01802 
01805     unsigned long maximumPrintBitmapHeight;
01806 
01809     unsigned long maximumPrintPreviewWidth;
01810 
01813     unsigned long maximumPrintPreviewHeight;
01814 
01817     unsigned long maximumPreviewImageWidth;
01818 
01821     unsigned long maximumPreviewImageHeight;
01822 
01825     OFString currentPrinter;
01826 
01829     OFString displayCurrentLUTID;
01830 
01833     OFString printCurrentLUTID;
01834 
01837     OFString printerMediumType;
01838 
01841     OFString printerFilmDestination;
01842 
01845     OFString printerFilmSessionLabel;
01846 
01849     unsigned long printerNumberOfCopies;
01850 
01854     OFString printerPriority;
01855 
01858     OFString printerOwnerID;
01859 
01862     OFBool activateAnnotation;
01863 
01866     OFBool prependDateTime;
01867 
01870     OFBool prependPrinterName;
01871 
01874     OFBool prependLighting;
01875 
01878     OFString annotationText;
01879 
01882     OFLogFile *logFile;
01883 };
01884 
01885 
01886 #endif
01887 
01888 
01889 /*
01890  *  CVS/RCS Log:
01891  *  $Log: dviface.h,v $
01892  *  Revision 1.89  2004/02/04 15:48:23  joergr
01893  *  Removed acknowledgements with e-mail addresses from CVS log.
01894  *
01895  *  Revision 1.88  2003/04/29 10:13:56  meichel
01896  *  Moved configuration file parser from module dcmpstat to ofstd and renamed
01897  *    class to OFConfigFile. Cleaned up implementation (no more friend declarations).
01898  *
01899  *  Revision 1.87  2002/04/16 14:02:02  joergr
01900  *  Added configurable support for C++ ANSI standard includes (e.g. streams).
01901  *
01902  *  Revision 1.86  2001/09/26 15:36:06  meichel
01903  *  Adapted dcmpstat to class OFCondition
01904  *
01905  *  Revision 1.85  2001/02/23 13:31:46  joergr
01906  *  Changed behaviour of method verifyAndSignStructuredReport() with 'finalize'.
01907  *  Now the entire document is always signed independently from the tree items
01908  *  marked.
01909  *
01910  *  Revision 1.84  2001/01/29 17:32:30  joergr
01911  *  Added method to verify and digitally sign structured reports.
01912  *
01913  *  Revision 1.83  2001/01/29 14:55:41  meichel
01914  *  Added new methods for creating signatures and checking the signature
01915  *    status in module dcmpstat.
01916  *
01917  *  Revision 1.82  2001/01/25 15:18:04  meichel
01918  *  Added initial support for verification of digital signatures
01919  *    in presentation states, images and structured reports to module dcmpstat.
01920  *
01921  *  Revision 1.81  2000/11/14 16:35:16  joergr
01922  *  Added creation of new UIDs and setting of content date/time when starting
01923  *  a new SR document from a "template".
01924  *
01925  *  Revision 1.80  2000/11/13 15:50:42  meichel
01926  *  Added dcmpstat support methods for creating image references
01927  *    in SR documents.
01928  *
01929  *  Revision 1.79  2000/11/13 11:52:40  meichel
01930  *  Added support for user logins and certificates.
01931  *
01932  *  Revision 1.78  2000/11/13 10:42:38  joergr
01933  *  Added support for Structured Reporting "templates".
01934  *
01935  *  Revision 1.77  2000/10/16 11:39:43  joergr
01936  *  Added support for new structured reports.
01937  *  Added method allowing to select an instance by instance UID and SOP class
01938  *  UID (without series and study UID). Required for composite references in
01939  *  DICOM SR.
01940  *
01941  *  Revision 1.76  2000/10/10 12:23:39  meichel
01942  *  Added extensions for TLS encrypted communication
01943  *
01944  *  Revision 1.75  2000/07/18 16:02:35  joergr
01945  *  Moved method convertODtoLum/PValue from class DVInterface to DVPSStoredPrint
01946  *  and corrected implementation.
01947  *
01948  *  Revision 1.74  2000/07/17 12:05:09  joergr
01949  *  Added methods to select objects from the database directly.
01950  *
01951  *  Revision 1.73  2000/07/14 17:09:47  joergr
01952  *  Added changeStatus parameter to all methods loading instances from the
01953  *  database.
01954  *
01955  *  Revision 1.72  2000/07/06 09:41:00  joergr
01956  *  Added flag to loadPrintPreview() method allowing to choose how to interpret
01957  *  the presentation LUT (hardcopy or softcopy definition).
01958  *
01959  *  Revision 1.71  2000/07/04 15:58:00  joergr
01960  *  Added support for overriding the presentation LUT settings made for the
01961  *  image boxes.
01962  *
01963  *  Revision 1.70  2000/06/21 15:40:57  meichel
01964  *  Added DICOMscope support for calling the Presentation State Checker.
01965  *
01966  *  Revision 1.69  2000/06/09 10:13:54  joergr
01967  *  Added method to get number of presentation states referencing an image
01968  *  (specified by the three UIDs).
01969  *
01970  *  Revision 1.68  2000/06/08 17:36:23  joergr
01971  *  Added method convertODtoLum().
01972  *
01973  *  Revision 1.67  2000/06/07 14:15:52  joergr
01974  *  Added configuration file entry "LogLevel" to filter log messages.
01975  *  Added flag to constructor specifying whether the general log file should be
01976  *  used (default: off).
01977  *
01978  *  Revision 1.66  2000/06/05 16:21:30  joergr
01979  *  Implemented log message methods.
01980  *  Added method allowing to specify the current presentation state to be used
01981  *  for resetting the pstate.
01982  *
01983  *  Revision 1.65  2000/06/02 16:00:41  meichel
01984  *  Adapted all dcmpstat classes to use OFConsole for log and error output
01985  *
01986  *  Revision 1.64  2000/06/02 13:53:53  joergr
01987  *  Implemented start/terminatePrintServer methods.
01988  *
01989  *  Revision 1.63  2000/06/02 12:41:50  joergr
01990  *  Corrected wrong interface descriptions.
01991  *
01992  *  Revision 1.62  2000/05/31 12:56:37  meichel
01993  *  Added initial Print SCP support
01994  *
01995  *  Revision 1.61  2000/05/31 07:54:23  joergr
01996  *  Added support for Stored Print attributes Originator and Destination
01997  *  application entity title.
01998  *
01999  *  Revision 1.60  2000/05/30 13:36:45  joergr
02000  *  Added new private SOP class (UID definition) to allow external shutdown
02001  *  of console applications via negotiation of this special SOP class
02002  *  (currently used for imagectn and dcmpsrcv).
02003  *  Renamed GrayscaleHardcopy to HardcopyGrayscale (which is the correct term
02004  *  according to the DICOM standard).
02005  *  Added support for multi-frame images and multiple references from a single
02006  *  presentation to a number of images.
02007  *  Removed methods which were already marked as "retired".
02008  *  Added interface methods to support the following new features:
02009  *    - start/terminate query/retrieve server
02010  *    - load stored print objects
02011  *    - create print preview from hardcopy grayscale images
02012  *    - check DICOM IODs for correctness (not yet implemented)
02013  *    - set presentation LUT for film session (not yet implemented)
02014  *    - start/terminate print server (not yet implemented)
02015  *    - write/filter log messages (not yet implemented)
02016  *
02017  *  Revision 1.59  2000/03/08 16:28:47  meichel
02018  *  Updated copyright header.
02019  *
02020  *  Revision 1.58  2000/03/03 14:13:54  meichel
02021  *  Implemented library support for redirecting error messages into memory
02022  *    instead of printing them to stdout/stderr for GUI applications.
02023  *
02024  *  Revision 1.57  1999/11/03 13:05:31  meichel
02025  *  Added support for transmitting annotations in the film session label.
02026  *    Added support for dump tool launched from DVInterface.
02027  *
02028  *  Revision 1.56  1999/10/20 10:47:13  joergr
02029  *  Added support for a down-scaled preview image of the current DICOM image
02030  *  (e.g. useful for online-windowing or print preview).
02031  *
02032  *  Revision 1.55  1999/10/19 14:46:01  meichel
02033  *  added support for the Basic Annotation Box SOP Class
02034  *    as well as access methods for Max Density and Min Density.
02035  *
02036  *  Revision 1.54  1999/10/07 17:21:45  meichel
02037  *  Reworked management of Presentation LUTs in order to create tighter
02038  *    coupling between Softcopy and Print.
02039  *
02040  *  Revision 1.53  1999/09/27 10:41:52  meichel
02041  *  Print interface now copies current printer name, avoids JNI problems.
02042  *
02043  *  Revision 1.52  1999/09/24 15:24:28  meichel
02044  *  Added support for CP 173 (Presentation LUT clarifications)
02045  *
02046  *  Revision 1.51  1999/09/23 17:37:12  meichel
02047  *  Added support for Basic Film Session options to dcmpstat print code.
02048  *
02049  *  Revision 1.50  1999/09/17 14:33:55  meichel
02050  *  Completed print spool functionality including Supplement 22 support
02051  *
02052  *  Revision 1.49  1999/09/15 17:43:25  meichel
02053  *  Implemented print job dispatcher code for dcmpstat, adapted dcmprtsv
02054  *    and dcmpsprt applications.
02055  *
02056  *  Revision 1.48  1999/09/13 15:19:08  meichel
02057  *  Added implementations for a number of further print API methods.
02058  *
02059  *  Revision 1.47  1999/09/10 12:46:44  meichel
02060  *  Added implementations for a number of print API methods.
02061  *
02062  *  Revision 1.46  1999/09/10 09:37:29  joergr
02063  *  Re-added automatically removed method declarations (maybe a problem with
02064  *  CVS's merge algorithm).
02065  *
02066  *  Revision 1.43  1999/09/08 17:03:01  joergr
02067  *  Added support for new instance types in database (grayscale hardcopy and
02068  *  stored print).
02069  *
02070  *  Revision 1.42  1999/09/08 16:42:01  meichel
02071  *  Moved configuration file evaluation to separate class.
02072  *
02073  *  Revision 1.41  1999/09/01 16:14:39  meichel
02074  *  Added support for requested image size to print routines
02075  *
02076  *  Revision 1.40  1999/08/31 16:54:44  meichel
02077  *  Added new sample application that allows to create simple print jobs.
02078  *
02079  *  Revision 1.39  1999/08/31 14:02:05  meichel
02080  *  Added print related config file methods
02081  *
02082  *  Revision 1.38  1999/08/27 15:57:55  meichel
02083  *  Added methods for saving hardcopy images and stored print objects
02084  *    either in file or in the local database.
02085  *
02086  *  Revision 1.37  1999/08/25 16:47:20  joergr
02087  *  Moved method 'saveFileFormat()' to public part of the interface class.
02088  *
02089  *  Revision 1.36  1999/05/05 14:25:26  joergr
02090  *  Added optional parameter to method loadPState (from database) to change
02091  *  instance reviewed flag for pstate and image.
02092  *
02093  *  Revision 1.35  1999/04/29 15:25:37  joergr
02094  *  Added PresentationLabel to index file.
02095  *
02096  *  Revision 1.34  1999/04/27 11:23:16  joergr
02097  *  Enhanced savePState() method: now image file is also added to index file
02098  *  and stored in image directory (if not already there).
02099  *  Added new entry to index file: Presentation Description.
02100  *
02101  *  Revision 1.33  1999/03/03 13:24:32  joergr
02102  *  Added methods to get and set ambient light value (re: Barten transformation).
02103  *  Moved method 'isBartenTransformPossible()' from presentation state class to
02104  *  interface class.
02105  *
02106  *  Revision 1.32  1999/03/02 12:52:51  joergr
02107  *  Added parameter to selectPState() specifying whether to change the review
02108  *  status of the loaded presentation state.
02109  *
02110  *  Revision 1.31  1999/02/25 18:38:58  joergr
02111  *  Added some comments.
02112  *  Renamed methods enable/disablePState().
02113  *
02114  *  Revision 1.30  1999/02/24 20:17:48  joergr
02115  *  Added methods to get a list of presentation states referencing the
02116  *  currently selected image.
02117  *  Added support for exchanging current presentation state (load from file)
02118  *  without deleting the current image.
02119  *
02120  *  Revision 1.29  1999/02/22 14:20:20  joergr
02121  *  Added deletion of image files (depending on directory where the file is
02122  *  stored).
02123  *  Modified comments for getGUIConfig... methods to indicate that the
02124  *  specified key must be upper case.
02125  *  Reset reference time for file modification checking after the index file
02126  *  has been changed internally (delete and change status methods).
02127  *
02128  *  Revision 1.28  1999/02/19 18:58:11  joergr
02129  *  Added methods to disable and (re-)enable PresentationStates.
02130  *  Added (private) helper methods to reduce redundant lines of code.
02131  *
02132  *  Revision 1.27  1999/02/19 09:44:17  joergr
02133  *  Added comments to new database routines and related member variables.
02134  *
02135  *  Revision 1.26  1999/02/18 18:46:19  joergr
02136  *  Re-implemented methods to access index file (delete methods are still
02137  *  missing).
02138  *  Removed parameter 'deletefile' from delete methods. This parameter is
02139  *  not necessary because the decision whether a images file is deleted only
02140  *  depends on the directory where the file is stored (see comments).
02141  *
02142  *  Revision 1.25  1999/02/18 11:07:26  meichel
02143  *  Added new parameter explicitVR to interface methods savePState,
02144  *    saveDICOMImage.  Allows to choose between explicit VR and implicit VR
02145  *    little endian format.  Added new method saveCurrentImage that allows to
02146  *    save the current image to file.
02147  *
02148  *  Revision 1.24  1999/02/17 10:05:30  meichel
02149  *  Moved creation of Display Function object from DVPresentationState to
02150  *    DVInterface to avoid unnecessary re-reads.
02151  *
02152  *  Revision 1.23  1999/02/16 16:36:10  meichel
02153  *  Added method newInstancesReceived() to DVInterface class.
02154  *
02155  *  Revision 1.22  1999/02/12 10:02:46  vorwerk
02156  *  added cache , changed deletemethods.
02157  *
02158  *  Revision 1.21  1999/02/09 15:58:07  meichel
02159  *  Implemented methods that save images and presentation states in the DB.
02160  *
02161  *  Revision 1.20  1999/02/08 10:52:33  meichel
02162  *  Updated documentation of dviface.h in Doc++ style.
02163  *    Removed dummy parameter from constructor.
02164  *
02165  *  Revision 1.19  1999/02/05 17:45:35  meichel
02166  *  Added config file entry for monitor characteristics file.  Monitor charac-
02167  *    teristics are passed to dcmimage if present to activate Barten transform.
02168  *
02169  *  Revision 1.18  1999/02/05 11:38:01  vorwerk
02170  *  parameter in stripidxarray added.
02171  *
02172  *  Revision 1.17  1999/01/29 16:01:05  meichel
02173  *  Reworked index file handle acquisition and locking code.
02174  *
02175  *  Revision 1.16  1999/01/28 15:30:53  vorwerk
02176  *  New database lock method added.
02177  *
02178  *  Revision 1.15  1999/01/27 15:28:34  vorwerk
02179  *  new method idxfiletest added to handle with indexfiles of length zero.
02180  *
02181  *  Revision 1.14  1999/01/27 14:59:28  meichel
02182  *  Implemented DICOM network receive application "dcmpsrcv" which receives
02183  *    images and presentation states and stores them in the local database.
02184  *
02185  *  Revision 1.13  1999/01/25 18:18:23  meichel
02186  *  Defined private SOP class UID for network receiver
02187  *    shutdown function. Cleanup up some code.
02188  *
02189  *  Revision 1.12  1999/01/25 16:55:17  vorwerk
02190  *  function stripidxarray added.
02191  *
02192  *  Revision 1.11  1999/01/25 13:05:55  meichel
02193  *  Implemented DVInterface::startReceiver()
02194  *    and several config file related methods.
02195  *
02196  *  Revision 1.10  1999/01/20 19:25:25  meichel
02197  *  Implemented sendIOD method which creates a separate process for trans-
02198  *    mitting images from the local database to a remote communication peer.
02199  *
02200  *  Revision 1.9  1999/01/19 15:14:48  vorwerk
02201  *  Methods for acesseing additional attributes added.
02202  *
02203  *  Revision 1.8  1999/01/15 17:27:14  meichel
02204  *  added DVInterface method resetPresentationState() which allows to reset a
02205  *    presentation state to the initial state (after loading).
02206  *
02207  *  Revision 1.7  1999/01/14 17:50:30  meichel
02208  *  added new method saveDICOMImage() to class DVInterface.
02209  *    Allows to store a bitmap as a DICOM image.
02210  *
02211  *  Revision 1.6  1999/01/04 13:27:16  vorwerk
02212  *  line inserted
02213  *
02214  *  Revision 1.5  1999/01/04 13:02:26  vorwerk
02215  *  getSeriesPerformingPhysicainsName() changed in getSeriesPerformingPhysiciansName()
02216  *
02217  *  Revision 1.4  1998/12/22 17:57:03  meichel
02218  *  Implemented Presentation State interface for overlays,
02219  *    VOI LUTs, VOI windows, curves. Added test program that
02220  *    allows to add curve data to DICOM images.
02221  *
02222  *  Revision 1.3  1998/12/22 15:50:06  vorwerk
02223  *  - constructor now with parameter for directory of index.dat
02224  *  - changed const methods in non-const-methods
02225  *  - added methods for attributes of DICOM-documents
02226  *  - added private method for operations on index.dat
02227  *
02228  *  Revision 1.2  1998/11/30 11:26:59  joergr
02229  *  Added CVS/RCS log at end of file.
02230  *
02231  *
02232  */


Generated on 26 Apr 2005 for OFFIS DCMTK Version 3.5.3 by Doxygen 1.4.2