OFFIS DCMTK  Version 3.6.0
dviface.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, Joerg Riesmeier
17  *
18  * Purpose:
19  * classes: DVInterface
20  *
21  * Last Update: $Author: joergr $
22  * Update Date: $Date: 2010-10-14 13:16:35 $
23  * CVS/RCS Revision: $Revision: 1.95 $
24  * Status: $State: Exp $
25  *
26  * CVS/RCS Log at end of file
27  *
28  */
29 
30 
31 #ifndef DVIFACE_H
32 #define DVIFACE_H
33 
34 #include "dcmtk/config/osconfig.h" /* make sure OS specific configuration is included first */
35 
36 
37 #include "dcmtk/ofstd/ofstream.h"
38 #include "dcmtk/dcmpstat/dvpscf.h" /* for class DVConfiguration */
39 #include "dcmtk/dcmpstat/dvpstat.h" /* for class DVPresentationState */
40 #include "dcmtk/dcmqrdb/dcmqridx.h" /* for struct IdxRecord */
41 #include "dcmtk/ofstd/ofstring.h" /* for class OFString */
42 #include "dcmtk/dcmpstat/dvcache.h" /* for index file caching */
43 
44 
45 class DicomImage;
46 class DiDisplayFunction;
47 class DVPSStoredPrint;
49 class DSRDocument;
50 class DVSignatureHandler;
51 
57 {
58 
59  public:
60 
70  DVInterface(const char *config_file = NULL, OFBool useLog = OFFalse);
71 
74  virtual ~DVInterface();
75 
76  /* load images, presentation states and structured reports */
77 
87  OFCondition loadImage(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
88 
95  OFCondition loadImage(const char *filename);
96 
104  OFCondition loadReferencedImage(size_t idx, OFBool changeStatus = OFFalse);
105 
116  OFCondition loadPState(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
117 
126  OFCondition loadPState(const char *pstName, const char *imgName = NULL);
127 
136  OFCondition loadStructuredReport(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
137 
143  OFCondition loadStructuredReport(const char *filename);
144 
157  OFCondition loadSRTemplate(const char *reportID);
158 
171  OFCondition savePState(OFBool replaceSOPInstanceUID);
172 
186  OFCondition savePState(const char *filename, OFBool replaceSOPInstanceUID, OFBool explicitVR=OFTrue);
187 
197  OFCondition saveCurrentImage(const char *filename, OFBool explicitVR=OFTrue);
198 
211 
224  OFCondition saveStructuredReport(const char *filename, OFBool explicitVR=OFTrue);
225 
234  OFCondition addImageReferenceToPState(const char *studyUID, const char *seriesUID, const char *instanceUID);
235 
240 
248  {
249  return *pState;
250  }
251 
258  {
259  return *pReport;
260  }
261 
267  {
268  return *pPrint;
269  }
270 
279 
286 
296 
306  const char *getFilename(const char *studyUID, const char *seriesUID, const char *instanceUID);
307 
316  Uint32 getNumberOfStudies();
317 
326  OFCondition selectStudy(Uint32 idx);
327 
336  OFCondition selectStudy(const char *studyUID);
337 
344  DVIFhierarchyStatus getStudyStatus() ;
345 
351  const char *getStudyUID();
352 
358  const char *getStudyDescription();
359 
365  const char *getStudyDate();
366 
372  const char *getStudyTime();
373 
379  const char *getReferringPhysiciansName();
380 
386  const char *getAccessionNumber();
387 
393  const char *getNameOfPhysiciansReadingStudy();
394 
402  const char *getPatientName();
403 
411  const char *getPatientID();
412 
420  const char *getPatientBirthDate();
421 
429  const char *getPatientSex();
430 
438  const char *getPatientBirthTime();
439 
447  const char *getOtherPatientNames();
448 
456  const char *getOtherPatientID();
457 
465  const char *getEthnicGroup();
466 
474  Uint32 getNumberOfSeries();
475 
483  OFCondition selectSeries(Uint32 idx);
484 
492  OFCondition selectSeries(const char *seriesUID);
493 
499  const char *getSeriesUID();
500 
506  DVIFhierarchyStatus getSeriesStatus();
507 
515  DVPSInstanceType getSeriesType();
516 
522  DVPSInstanceType getInstanceType();
523 
529  const char *getSeriesNumber();
530 
536  const char *getSeriesDate();
537 
543  const char *getSeriesTime();
544 
550  const char *getSeriesDescription();
551 
557  const char *getSeriesPerformingPhysiciansName();
558 
564  const char *getSeriesProtocolName();
565 
571  const char *getSeriesOperatorsName();
572 
578  const char *getModality();
579 
587  Uint32 getNumberOfInstances();
588 
596  OFCondition selectInstance(Uint32 idx);
597 
605  OFCondition selectInstance(const char *instanceUID);
606 
616  OFCondition selectInstance(const char *instanceUID, const char *sopClassUID);
617 
627  OFCondition selectInstance(const char *studyUID, const char *seriesUID, const char *instanceUID);
628 
634  const char *getSOPClassUID();
635 
641  const char *getInstanceUID();
642 
648  const char *getImageNumber();
649 
655  const char *getFilename();
656 
662  DVIFhierarchyStatus getInstanceStatus() ;
663 
669  const char *getInstanceDescription();
670 
676  const char *getPresentationLabel();
677 
678 
679  /* methods modifying the database */
680 
693  OFCondition instanceReviewed(const char *studyUID, const char *seriesUID, const char *instanceUID);
694 
706  OFCondition deleteInstance(const char *studyUID, const char *seriesUID, const char *instanceUID);
707 
718  OFCondition deleteSeries(const char *studyUID, const char *seriesUID);
719 
729  OFCondition deleteStudy(const char *studyUID);
730 
731  /* here follow the Network interface methods */
732 
745 
754 
771 
782 
793  OFBool newInstancesReceived();
794 
807  OFCondition sendStudy(const char *targetID, const char *studyUID)
808  {
809  return sendIOD(targetID, studyUID, NULL, NULL);
810  }
811 
826  OFCondition sendSeries(const char *targetID, const char *studyUID, const char *seriesUID)
827  {
828  return sendIOD(targetID, studyUID, seriesUID, NULL);
829  }
830 
848  OFCondition sendIOD(const char *targetID, const char *studyUID, const char *seriesUID, const char *instanceUID);
849 
860  OFCondition dumpIOD(const char *filename);
861 
877  OFCondition dumpIOD(const char *studyUID, const char *seriesUID, const char *instanceUID);
878 
889  OFCondition checkIOD(const char *filename);
890 
906  OFCondition checkIOD(const char *studyUID, const char *seriesUID, const char *instanceUID);
907 
926  const char *filename,
927  const void *pixelData,
928  unsigned long width,
929  unsigned long height,
930  double aspectRatio=1.0,
931  OFBool explicitVR=OFTrue,
932  const char *instanceUID=NULL);
933 
949  const void *pixelData,
950  unsigned long width,
951  unsigned long height,
952  double aspectRatio=1.0);
953 
972  const char *filename,
973  const void *pixelData,
974  unsigned long width,
975  unsigned long height,
976  double aspectRatio=1.0,
977  OFBool explicitVR=OFTrue,
978  const char *instanceUID=NULL);
979 
995  const void *pixelData,
996  unsigned long width,
997  unsigned long height,
998  double aspectRatio=1.0);
999 
1010 
1020  OFCondition loadStoredPrint(const char *studyUID, const char *seriesUID, const char *instanceUID, OFBool changeStatus = OFFalse);
1021 
1028  OFCondition loadStoredPrint(const char *filename);
1029 
1042  const char *filename,
1043  OFBool writeRequestedImageSize,
1044  OFBool explicitVR=OFTrue,
1045  const char *instanceUID=NULL);
1046 
1057  OFCondition saveStoredPrint(OFBool writeRequestedImageSize);
1058 
1062  size_t getNumberOfPrintPreviews();
1063 
1075  OFCondition loadPrintPreview(size_t idx, OFBool printLUT = OFTrue, OFBool changeStatus = OFFalse);
1076 
1079  void unloadPrintPreview();
1080 
1085  unsigned long getPrintPreviewSize();
1086 
1095  void setMaxPrintPreviewWidthHeight(unsigned long width, unsigned long height);
1096 
1103  OFCondition getPrintPreviewWidthHeight(unsigned long &width, unsigned long &height);
1104 
1111  OFCondition getPrintPreviewBitmap(void *bitmap, unsigned long size);
1112 
1120 
1127 
1133  Uint32 getNumberOfPStates();
1134 
1141  OFCondition selectPState(Uint32 idx, OFBool changeStatus = OFFalse);
1142 
1148  const char *getPStateDescription(Uint32 idx);
1149 
1155  const char *getPStateLabel(Uint32 idx);
1156 
1164  OFBool isDisplayTransformPossible(DVPSDisplayTransform transform = DVPSD_GSDF);
1165 
1170  OFCondition setAmbientLightValue(double value);
1171 
1176  OFCondition getAmbientLightValue(double &value);
1177 
1178  /* print related methods */
1179 
1185  OFCondition setCurrentPrinter(const char *targetID);
1186 
1191  const char *getCurrentPrinter();
1192 
1199  OFCondition setPrinterMediumType(const char *value);
1200 
1204  const char *getPrinterMediumType();
1205 
1212  OFCondition setPrinterFilmDestination(const char *value);
1213 
1217  const char *getPrinterFilmDestination();
1218 
1225  OFCondition setPrinterFilmSessionLabel(const char *value);
1226 
1230  const char *getPrinterFilmSessionLabel();
1231 
1238  OFCondition setPrinterPriority(const char *value);
1239 
1243  const char *getPrinterPriority();
1244 
1251  OFCondition setPrinterOwnerID(const char *value);
1252 
1256  const char *getPrinterOwnerID();
1257 
1264  OFCondition setPrinterNumberOfCopies(unsigned long value);
1265 
1269  unsigned long getPrinterNumberOfCopies();
1270 
1276  void clearFilmSessionSettings();
1277 
1283  OFCondition selectDisplayPresentationLUT(const char *lutID);
1284 
1290  const char *getDisplayPresentationLUTID();
1291 
1299  OFCondition selectPrintPresentationLUT(const char *lutID);
1300 
1306  const char *getPrintPresentationLUTID();
1307 
1312  OFCondition spoolPrintJob(OFBool deletePrintedImages=OFTrue);
1313 
1326 
1334 
1348 
1357 
1368  OFCondition addToPrintHardcopyFromDB(const char *studyUID, const char *seriesUID, const char *instanceUID);
1369 
1380  OFCondition spoolStoredPrintFromDB(const char *studyUID, const char *seriesUID, const char *instanceUID);
1381 
1391  OFCondition printSCUcreateBasicFilmSession(DVPSPrintMessageHandler& printHandler, OFBool plutInSession);
1392 
1393  /* annotation interface */
1394 
1399 
1404 
1409 
1414 
1418  const char *getAnnotationText() { return annotationText.c_str(); }
1419 
1423  void setActiveAnnotation(OFBool value) { activateAnnotation=value; }
1424 
1428  void setPrependDateTime(OFBool value) { prependDateTime=value; }
1429 
1433  void setPrependPrinterName(OFBool value) { prependPrinterName=value; }
1434 
1438  void setPrependLighting(OFBool value) { prependLighting=value; }
1439 
1443  void setAnnotationText(const char *value);
1444 
1445  /* user management interface */
1446 
1458  OFBool verifyUserPassword(const char *userID, const char *passwd);
1459 
1483  OFCondition verifyAndSignStructuredReport(const char *userID, const char *passwd, DVPSVerifyAndSignMode mode);
1484 
1485 
1486  /* digital signatures */
1487 
1494  const char *getCurrentSignatureValidationHTML(DVPSObjectType objtype) const;
1495 
1500  const char *getCurrentSignatureValidationOverview() const;
1501 
1506  DVPSSignatureStatus getCurrentSignatureStatus(DVPSObjectType objtype) const;
1507 
1511  DVPSSignatureStatus getCombinedImagePStateSignatureStatus() const;
1512 
1517  unsigned long getNumberOfCorrectSignatures(DVPSObjectType objtype) const;
1518 
1523  unsigned long getNumberOfUntrustworthySignatures(DVPSObjectType objtype) const;
1524 
1529  unsigned long getNumberOfCorruptSignatures(DVPSObjectType objtype) const;
1530 
1535  void disableImageAndPState();
1536 
1537 private:
1538 
1541  DVInterface(const DVInterface&);
1542 
1546 
1555 
1563 
1571 
1576 
1583  OFCondition createPrintJobFilenames(const char *printer, OFString& tempname, OFString& jobname);
1584 
1589  OFCondition createQueryRetrieveServerConfigFile(const char *filename);
1590 
1597  OFCondition startExternalApplication(const char *application, const char *filename);
1598 
1599  /* member variables */
1600 
1604 
1608 
1612 
1616 
1620 
1624 
1629 
1633 
1638 
1641  unsigned long printJobCounter;
1642 
1646 
1651 
1655  unsigned long referenceTime;
1656 
1660 
1664 
1667  OFBool lockingMode;
1668 
1672 
1676 
1680 
1684 
1685  /* private methods for database */
1686 
1689  OFBool createIndexCache();
1690 
1693  OFBool createPStateCache();
1694 
1697  void clearIndexCache();
1698 
1701  void clearIndexRecord(IdxRecord &record,
1702  int &recpos);
1703 
1707  OFBool readIndexRecord(const int pos,
1708  IdxRecord &record,
1709  int *oldpos = NULL);
1710 
1714  void updateStatusCache();
1715 
1718  DVStudyCache::ItemStruct *getStudyStruct(const char *studyUID = NULL,
1719  const char *seriesUID = NULL);
1720 
1723  DVSeriesCache::ItemStruct *getSeriesStruct(const char *studyUID = NULL,
1724  const char *seriesUID = NULL,
1725  const char *instanceUID = NULL);
1726 
1729  DVInstanceCache::ItemStruct *getInstanceStruct(const char *studyUID = NULL,
1730  const char *seriesUID = NULL,
1731  const char *instanceUID = NULL);
1732 
1735  int findStudyIdx(StudyDescRecord *study,
1736  const char *uid);
1737 
1740  int deleteImageFile(const char *filename);
1741 
1745 
1746 
1750  OFCondition instanceReviewed(int pos);
1751 
1755 
1759 
1763 
1767 
1771 
1775 
1779 
1783 
1787 
1791 
1795 
1799 
1803 
1807 
1810  unsigned long printerNumberOfCopies;
1811 
1816 
1820 
1824 
1828 
1832 
1836 
1840 };
1841 
1842 
1843 #endif
1844 
1845 
1846 /*
1847  * CVS/RCS Log:
1848  * $Log: dviface.h,v $
1849  * Revision 1.95 2010-10-14 13:16:35 joergr
1850  * Updated copyright header. Added reference to COPYRIGHT file.
1851  *
1852  * Revision 1.94 2009-11-24 14:12:57 uli
1853  * Switched to logging mechanism provided by the "new" oflog module.
1854  *
1855  * Revision 1.93 2009-09-30 10:42:37 uli
1856  * Make dcmpstat's include headers self-sufficient by including all
1857  * needed headers directly and stop using dctk.h
1858  *
1859  * Revision 1.92 2009-05-28 10:55:38 joergr
1860  * Fixed various Doxygen API documentation issues.
1861  *
1862  * Revision 1.91 2005/12/08 16:03:31 meichel
1863  * Changed include path schema for all DCMTK header files
1864  *
1865  * Revision 1.90 2005/04/04 10:11:57 meichel
1866  * Module dcmpstat now uses the dcmqrdb API instead of imagectn for maintaining
1867  * the index database
1868  *
1869  * Revision 1.89 2004/02/04 15:48:23 joergr
1870  * Removed acknowledgements with e-mail addresses from CVS log.
1871  *
1872  * Revision 1.88 2003/04/29 10:13:56 meichel
1873  * Moved configuration file parser from module dcmpstat to ofstd and renamed
1874  * class to OFConfigFile. Cleaned up implementation (no more friend declarations).
1875  *
1876  * Revision 1.87 2002/04/16 14:02:02 joergr
1877  * Added configurable support for C++ ANSI standard includes (e.g. streams).
1878  *
1879  * Revision 1.86 2001/09/26 15:36:06 meichel
1880  * Adapted dcmpstat to class OFCondition
1881  *
1882  * Revision 1.85 2001/02/23 13:31:46 joergr
1883  * Changed behaviour of method verifyAndSignStructuredReport() with 'finalize'.
1884  * Now the entire document is always signed independently from the tree items
1885  * marked.
1886  *
1887  * Revision 1.84 2001/01/29 17:32:30 joergr
1888  * Added method to verify and digitally sign structured reports.
1889  *
1890  * Revision 1.83 2001/01/29 14:55:41 meichel
1891  * Added new methods for creating signatures and checking the signature
1892  * status in module dcmpstat.
1893  *
1894  * Revision 1.82 2001/01/25 15:18:04 meichel
1895  * Added initial support for verification of digital signatures
1896  * in presentation states, images and structured reports to module dcmpstat.
1897  *
1898  * Revision 1.81 2000/11/14 16:35:16 joergr
1899  * Added creation of new UIDs and setting of content date/time when starting
1900  * a new SR document from a "template".
1901  *
1902  * Revision 1.80 2000/11/13 15:50:42 meichel
1903  * Added dcmpstat support methods for creating image references
1904  * in SR documents.
1905  *
1906  * Revision 1.79 2000/11/13 11:52:40 meichel
1907  * Added support for user logins and certificates.
1908  *
1909  * Revision 1.78 2000/11/13 10:42:38 joergr
1910  * Added support for Structured Reporting "templates".
1911  *
1912  * Revision 1.77 2000/10/16 11:39:43 joergr
1913  * Added support for new structured reports.
1914  * Added method allowing to select an instance by instance UID and SOP class
1915  * UID (without series and study UID). Required for composite references in
1916  * DICOM SR.
1917  *
1918  * Revision 1.76 2000/10/10 12:23:39 meichel
1919  * Added extensions for TLS encrypted communication
1920  *
1921  * Revision 1.75 2000/07/18 16:02:35 joergr
1922  * Moved method convertODtoLum/PValue from class DVInterface to DVPSStoredPrint
1923  * and corrected implementation.
1924  *
1925  * Revision 1.74 2000/07/17 12:05:09 joergr
1926  * Added methods to select objects from the database directly.
1927  *
1928  * Revision 1.73 2000/07/14 17:09:47 joergr
1929  * Added changeStatus parameter to all methods loading instances from the
1930  * database.
1931  *
1932  * Revision 1.72 2000/07/06 09:41:00 joergr
1933  * Added flag to loadPrintPreview() method allowing to choose how to interpret
1934  * the presentation LUT (hardcopy or softcopy definition).
1935  *
1936  * Revision 1.71 2000/07/04 15:58:00 joergr
1937  * Added support for overriding the presentation LUT settings made for the
1938  * image boxes.
1939  *
1940  * Revision 1.70 2000/06/21 15:40:57 meichel
1941  * Added DICOMscope support for calling the Presentation State Checker.
1942  *
1943  * Revision 1.69 2000/06/09 10:13:54 joergr
1944  * Added method to get number of presentation states referencing an image
1945  * (specified by the three UIDs).
1946  *
1947  * Revision 1.68 2000/06/08 17:36:23 joergr
1948  * Added method convertODtoLum().
1949  *
1950  * Revision 1.67 2000/06/07 14:15:52 joergr
1951  * Added configuration file entry "LogLevel" to filter log messages.
1952  * Added flag to constructor specifying whether the general log file should be
1953  * used (default: off).
1954  *
1955  * Revision 1.66 2000/06/05 16:21:30 joergr
1956  * Implemented log message methods.
1957  * Added method allowing to specify the current presentation state to be used
1958  * for resetting the pstate.
1959  *
1960  * Revision 1.65 2000/06/02 16:00:41 meichel
1961  * Adapted all dcmpstat classes to use OFConsole for log and error output
1962  *
1963  * Revision 1.64 2000/06/02 13:53:53 joergr
1964  * Implemented start/terminatePrintServer methods.
1965  *
1966  * Revision 1.63 2000/06/02 12:41:50 joergr
1967  * Corrected wrong interface descriptions.
1968  *
1969  * Revision 1.62 2000/05/31 12:56:37 meichel
1970  * Added initial Print SCP support
1971  *
1972  * Revision 1.61 2000/05/31 07:54:23 joergr
1973  * Added support for Stored Print attributes Originator and Destination
1974  * application entity title.
1975  *
1976  * Revision 1.60 2000/05/30 13:36:45 joergr
1977  * Added new private SOP class (UID definition) to allow external shutdown
1978  * of console applications via negotiation of this special SOP class
1979  * (currently used for imagectn and dcmpsrcv).
1980  * Renamed GrayscaleHardcopy to HardcopyGrayscale (which is the correct term
1981  * according to the DICOM standard).
1982  * Added support for multi-frame images and multiple references from a single
1983  * presentation to a number of images.
1984  * Removed methods which were already marked as "retired".
1985  * Added interface methods to support the following new features:
1986  * - start/terminate query/retrieve server
1987  * - load stored print objects
1988  * - create print preview from hardcopy grayscale images
1989  * - check DICOM IODs for correctness (not yet implemented)
1990  * - set presentation LUT for film session (not yet implemented)
1991  * - start/terminate print server (not yet implemented)
1992  * - write/filter log messages (not yet implemented)
1993  *
1994  * Revision 1.59 2000/03/08 16:28:47 meichel
1995  * Updated copyright header.
1996  *
1997  * Revision 1.58 2000/03/03 14:13:54 meichel
1998  * Implemented library support for redirecting error messages into memory
1999  * instead of printing them to stdout/stderr for GUI applications.
2000  *
2001  * Revision 1.57 1999/11/03 13:05:31 meichel
2002  * Added support for transmitting annotations in the film session label.
2003  * Added support for dump tool launched from DVInterface.
2004  *
2005  * Revision 1.56 1999/10/20 10:47:13 joergr
2006  * Added support for a down-scaled preview image of the current DICOM image
2007  * (e.g. useful for online-windowing or print preview).
2008  *
2009  * Revision 1.55 1999/10/19 14:46:01 meichel
2010  * added support for the Basic Annotation Box SOP Class
2011  * as well as access methods for Max Density and Min Density.
2012  *
2013  * Revision 1.54 1999/10/07 17:21:45 meichel
2014  * Reworked management of Presentation LUTs in order to create tighter
2015  * coupling between Softcopy and Print.
2016  *
2017  * Revision 1.53 1999/09/27 10:41:52 meichel
2018  * Print interface now copies current printer name, avoids JNI problems.
2019  *
2020  * Revision 1.52 1999/09/24 15:24:28 meichel
2021  * Added support for CP 173 (Presentation LUT clarifications)
2022  *
2023  * Revision 1.51 1999/09/23 17:37:12 meichel
2024  * Added support for Basic Film Session options to dcmpstat print code.
2025  *
2026  * Revision 1.50 1999/09/17 14:33:55 meichel
2027  * Completed print spool functionality including Supplement 22 support
2028  *
2029  * Revision 1.49 1999/09/15 17:43:25 meichel
2030  * Implemented print job dispatcher code for dcmpstat, adapted dcmprtsv
2031  * and dcmpsprt applications.
2032  *
2033  * Revision 1.48 1999/09/13 15:19:08 meichel
2034  * Added implementations for a number of further print API methods.
2035  *
2036  * Revision 1.47 1999/09/10 12:46:44 meichel
2037  * Added implementations for a number of print API methods.
2038  *
2039  * Revision 1.46 1999/09/10 09:37:29 joergr
2040  * Re-added automatically removed method declarations (maybe a problem with
2041  * CVS's merge algorithm).
2042  *
2043  * Revision 1.43 1999/09/08 17:03:01 joergr
2044  * Added support for new instance types in database (grayscale hardcopy and
2045  * stored print).
2046  *
2047  * Revision 1.42 1999/09/08 16:42:01 meichel
2048  * Moved configuration file evaluation to separate class.
2049  *
2050  * Revision 1.41 1999/09/01 16:14:39 meichel
2051  * Added support for requested image size to print routines
2052  *
2053  * Revision 1.40 1999/08/31 16:54:44 meichel
2054  * Added new sample application that allows to create simple print jobs.
2055  *
2056  * Revision 1.39 1999/08/31 14:02:05 meichel
2057  * Added print related config file methods
2058  *
2059  * Revision 1.38 1999/08/27 15:57:55 meichel
2060  * Added methods for saving hardcopy images and stored print objects
2061  * either in file or in the local database.
2062  *
2063  * Revision 1.37 1999/08/25 16:47:20 joergr
2064  * Moved method 'saveFileFormat()' to public part of the interface class.
2065  *
2066  * Revision 1.36 1999/05/05 14:25:26 joergr
2067  * Added optional parameter to method loadPState (from database) to change
2068  * instance reviewed flag for pstate and image.
2069  *
2070  * Revision 1.35 1999/04/29 15:25:37 joergr
2071  * Added PresentationLabel to index file.
2072  *
2073  * Revision 1.34 1999/04/27 11:23:16 joergr
2074  * Enhanced savePState() method: now image file is also added to index file
2075  * and stored in image directory (if not already there).
2076  * Added new entry to index file: Presentation Description.
2077  *
2078  * Revision 1.33 1999/03/03 13:24:32 joergr
2079  * Added methods to get and set ambient light value (re: Barten transformation).
2080  * Moved method 'isBartenTransformPossible()' from presentation state class to
2081  * interface class.
2082  *
2083  * Revision 1.32 1999/03/02 12:52:51 joergr
2084  * Added parameter to selectPState() specifying whether to change the review
2085  * status of the loaded presentation state.
2086  *
2087  * Revision 1.31 1999/02/25 18:38:58 joergr
2088  * Added some comments.
2089  * Renamed methods enable/disablePState().
2090  *
2091  * Revision 1.30 1999/02/24 20:17:48 joergr
2092  * Added methods to get a list of presentation states referencing the
2093  * currently selected image.
2094  * Added support for exchanging current presentation state (load from file)
2095  * without deleting the current image.
2096  *
2097  * Revision 1.29 1999/02/22 14:20:20 joergr
2098  * Added deletion of image files (depending on directory where the file is
2099  * stored).
2100  * Modified comments for getGUIConfig... methods to indicate that the
2101  * specified key must be upper case.
2102  * Reset reference time for file modification checking after the index file
2103  * has been changed internally (delete and change status methods).
2104  *
2105  * Revision 1.28 1999/02/19 18:58:11 joergr
2106  * Added methods to disable and (re-)enable PresentationStates.
2107  * Added (private) helper methods to reduce redundant lines of code.
2108  *
2109  * Revision 1.27 1999/02/19 09:44:17 joergr
2110  * Added comments to new database routines and related member variables.
2111  *
2112  * Revision 1.26 1999/02/18 18:46:19 joergr
2113  * Re-implemented methods to access index file (delete methods are still
2114  * missing).
2115  * Removed parameter 'deletefile' from delete methods. This parameter is
2116  * not necessary because the decision whether a images file is deleted only
2117  * depends on the directory where the file is stored (see comments).
2118  *
2119  * Revision 1.25 1999/02/18 11:07:26 meichel
2120  * Added new parameter explicitVR to interface methods savePState,
2121  * saveDICOMImage. Allows to choose between explicit VR and implicit VR
2122  * little endian format. Added new method saveCurrentImage that allows to
2123  * save the current image to file.
2124  *
2125  * Revision 1.24 1999/02/17 10:05:30 meichel
2126  * Moved creation of Display Function object from DVPresentationState to
2127  * DVInterface to avoid unnecessary re-reads.
2128  *
2129  * Revision 1.23 1999/02/16 16:36:10 meichel
2130  * Added method newInstancesReceived() to DVInterface class.
2131  *
2132  * Revision 1.22 1999/02/12 10:02:46 vorwerk
2133  * added cache , changed deletemethods.
2134  *
2135  * Revision 1.21 1999/02/09 15:58:07 meichel
2136  * Implemented methods that save images and presentation states in the DB.
2137  *
2138  * Revision 1.20 1999/02/08 10:52:33 meichel
2139  * Updated documentation of dviface.h in Doc++ style.
2140  * Removed dummy parameter from constructor.
2141  *
2142  * Revision 1.19 1999/02/05 17:45:35 meichel
2143  * Added config file entry for monitor characteristics file. Monitor charac-
2144  * teristics are passed to dcmimage if present to activate Barten transform.
2145  *
2146  * Revision 1.18 1999/02/05 11:38:01 vorwerk
2147  * parameter in stripidxarray added.
2148  *
2149  * Revision 1.17 1999/01/29 16:01:05 meichel
2150  * Reworked index file handle acquisition and locking code.
2151  *
2152  * Revision 1.16 1999/01/28 15:30:53 vorwerk
2153  * New database lock method added.
2154  *
2155  * Revision 1.15 1999/01/27 15:28:34 vorwerk
2156  * new method idxfiletest added to handle with indexfiles of length zero.
2157  *
2158  * Revision 1.14 1999/01/27 14:59:28 meichel
2159  * Implemented DICOM network receive application "dcmpsrcv" which receives
2160  * images and presentation states and stores them in the local database.
2161  *
2162  * Revision 1.13 1999/01/25 18:18:23 meichel
2163  * Defined private SOP class UID for network receiver
2164  * shutdown function. Cleanup up some code.
2165  *
2166  * Revision 1.12 1999/01/25 16:55:17 vorwerk
2167  * function stripidxarray added.
2168  *
2169  * Revision 1.11 1999/01/25 13:05:55 meichel
2170  * Implemented DVInterface::startReceiver()
2171  * and several config file related methods.
2172  *
2173  * Revision 1.10 1999/01/20 19:25:25 meichel
2174  * Implemented sendIOD method which creates a separate process for trans-
2175  * mitting images from the local database to a remote communication peer.
2176  *
2177  * Revision 1.9 1999/01/19 15:14:48 vorwerk
2178  * Methods for acesseing additional attributes added.
2179  *
2180  * Revision 1.8 1999/01/15 17:27:14 meichel
2181  * added DVInterface method resetPresentationState() which allows to reset a
2182  * presentation state to the initial state (after loading).
2183  *
2184  * Revision 1.7 1999/01/14 17:50:30 meichel
2185  * added new method saveDICOMImage() to class DVInterface.
2186  * Allows to store a bitmap as a DICOM image.
2187  *
2188  * Revision 1.6 1999/01/04 13:27:16 vorwerk
2189  * line inserted
2190  *
2191  * Revision 1.5 1999/01/04 13:02:26 vorwerk
2192  * getSeriesPerformingPhysicainsName() changed in getSeriesPerformingPhysiciansName()
2193  *
2194  * Revision 1.4 1998/12/22 17:57:03 meichel
2195  * Implemented Presentation State interface for overlays,
2196  * VOI LUTs, VOI windows, curves. Added test program that
2197  * allows to add curve data to DICOM images.
2198  *
2199  * Revision 1.3 1998/12/22 15:50:06 vorwerk
2200  * - constructor now with parameter for directory of index.dat
2201  * - changed const methods in non-const-methods
2202  * - added methods for attributes of DICOM-documents
2203  * - added private method for operations on index.dat
2204  *
2205  * Revision 1.2 1998/11/30 11:26:59 joergr
2206  * Added CVS/RCS log at end of file.
2207  *
2208  *
2209  */


Generated on Thu Dec 20 2012 for OFFIS DCMTK Version 3.6.0 by Doxygen 1.8.2