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

dbpriv.h

00001 /*
00002  *
00003  *  Copyright (C) 1993-2001, 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:  imagectn
00019  *
00020  *  Author:  Didier Lemoine
00021  *
00022  *  Purpose: private data definitions used to implement the DB Module Module. Prefix: DB_ 
00023  *
00024  *  Last Update:      $Author: meichel $
00025  *  Update Date:      $Date: 2001/10/12 12:43:06 $
00026  *  Source File:      $Source: /share/dicom/cvs-depot/dcmtk/imagectn/include/dbpriv.h,v $
00027  *  CVS/RCS Revision: $Revision: 1.15 $
00028  *  Status:           $State: Exp $
00029  *
00030  *  CVS/RCS Log at end of file
00031  *
00032  */
00033 
00034 #ifndef DATAPRIV_H
00035 #define DATAPRIV_H
00036 
00037 #include "osconfig.h"    /* make sure OS specific configuration is included first */
00038 
00039 #include "imagedb.h"
00040 #include "dicom.h"
00041 #include "dcdatset.h"
00042 #include "dcuid.h"
00043 #include "dcdeftag.h"
00044 BEGIN_EXTERN_C
00045 #ifdef HAVE_IO_H
00046 #define access my_access    // Workaround to make Visual C++ Compiler happy!
00047 #include <io.h>
00048 #undef access
00049 #endif
00050 END_EXTERN_C
00051 
00052 #define STORE_SERVICE   1
00053 #define FIND_SERVICE    2
00054 #define MOVE_SERVICE    3
00055 
00056 /*
00057 ** Maximum size of things to put in db records.
00058 ** Some values will have vm>1 thus these maximums are
00059 ** intended to leave enough space for most common uses.
00060 */
00061 #define AE_MAX_LENGTH   128     /* Application Entity    */
00062 #define AS_MAX_LENGTH   32      /* Age String            */
00063 #define AT_MAX_LENGTH   32      /* Attribute Tag         */
00064 #define CS_MAX_LENGTH   128     /* Code String           */
00065 #define DA_MAX_LENGTH   80      /* Date                  */
00066 #define DS_MAX_LENGTH   128     /* Decimal String        */
00067 #define DT_MAX_LENGTH   208     /* Date Time             */
00068 #define FL_MAX_LENGTH   32      /* FLoating point single */
00069 #define FD_MAX_LENGTH   64      /* Floating point Double */
00070 #define IS_MAX_LENGTH   96      /* Integer String        */
00071 #define LO_MAX_LENGTH   64      /* Long String           */
00072 #define LT_MAX_LENGTH   10240   /* Long Text             */
00073 #define PN_MAX_LENGTH   64      /* Person Name           */
00074 #define SH_MAX_LENGTH   16      /* Short String          */
00075 #define SL_MAX_LENGTH   32      /* Signed Long           */
00076 #define SS_MAX_LENGTH   16      /* Signed Short          */
00077 #define ST_MAX_LENGTH   1024    /* Short Text            */
00078 #define TM_MAX_LENGTH   128     /* Time                  */
00079 #define UI_MAX_LENGTH   64      /* Unique Identifier     */
00080 #define UL_MAX_LENGTH   32      /* Unsigned Long         */
00081 #define US_MAX_LENGTH   16      /* Unsigned Short        */
00082 #define CS_LABEL_MAX_LENGTH 16  /* Code String - Presentation Label */
00083 #define DESCRIPTION_MAX_LENGTH 128  /* Not related to any particular DICOM attribute */
00084 
00085 #define DBC_MAXSTRING           256
00086 
00087 #define MAX_MAX_STUDIES         DB_UpperMaxStudies
00088 #define MAX_NUMBER_OF_IMAGES    10000
00089 #define SIZEOF_IDXRECORD        (sizeof (IdxRecord))
00090 #define SIZEOF_STUDYDESC        (sizeof (StudyDescRecord) * MAX_MAX_STUDIES)
00091 
00092 
00093 typedef struct DB_SSmallDcmElmt {
00094     char* PValueField ;     
00095     Uint32 ValueLength ;        
00096     DcmTagKey XTag ;
00097     DB_SSmallDcmElmt(); /* default constructor defined in dbutils.cc */
00098     
00099 private:
00100     /* undefined */ DB_SSmallDcmElmt(const DB_SSmallDcmElmt& copy);
00101     /* undefined */ DB_SSmallDcmElmt& operator=(const DB_SSmallDcmElmt& copy);
00102 } DB_SmallDcmElmt ; 
00103 
00104 
00105 typedef enum {
00106     UNIQUE_KEY,
00107     REQUIRED_KEY,
00108     OPTIONAL_KEY
00109 } DB_KEY_TYPE ;
00110 
00111 /*
00112 typedef enum {
00113     DB_CANNOTCREATEHANDLE_CannotAllocate,
00114     DB_CANNOTCREATEHANDLE_CannotOpenIdx,
00115     DB_CANNOTDESTROYHANDLE_CannotCloseIdx,
00116     DB_FIND,
00117     DB_NOTFIND,
00118     DB_INVALIDDATA,
00119     DB_ERROR
00120 } DB_CONDITION ;
00121 */
00122 
00123 typedef enum {
00124     PATIENT_LEVEL,
00125     STUDY_LEVEL,
00126     SERIE_LEVEL,
00127     IMAGE_LEVEL
00128 } DB_LEVEL ;
00129 
00130 typedef enum {
00131     PATIENT_ROOT,
00132     STUDY_ROOT,
00133     PATIENT_STUDY
00134 } DB_QUERY_CLASS ;
00135 
00136 struct db_ElementList {
00137     DB_SmallDcmElmt elem ;      
00138     struct db_ElementList *next ;
00139 
00140     db_ElementList(): elem(), next(NULL) {}
00141 private:
00142     /* undefined */ db_ElementList(const db_ElementList& copy);
00143     /* undefined */ db_ElementList& operator=(const db_ElementList& copy);
00144 };
00145 
00146 typedef struct db_ElementList DB_ElementList;
00147 
00148 struct db_UidList {
00149     char *patient ;
00150     char *study ;
00151     char *serie ;
00152     char *image ;
00153     struct db_UidList *next ;
00154 };
00155 
00156 typedef struct db_UidList DB_UidList ;
00157 
00158 
00159 struct db_IntegerList {
00160     int idxCounter ;
00161     struct db_IntegerList *next ;
00162 };
00163 typedef struct db_IntegerList DB_CounterList ;
00164 
00165 
00166 typedef enum {
00167     DATE_CLASS,
00168     TIME_CLASS,
00169     UID_CLASS,
00170     STRING_CLASS,
00171     OTHER_CLASS
00172 } DB_KEY_CLASS ;
00173 
00174 struct DB_FindAttr {
00175     DcmTagKey tag ;
00176     DB_LEVEL level ;
00177     DB_KEY_TYPE keyAttr ;
00178     DB_KEY_CLASS keyClass ;
00179 
00180     /* to passify some C++ compilers */
00181     DB_FindAttr(const DcmTagKey& t, DB_LEVEL l, DB_KEY_TYPE kt, DB_KEY_CLASS kc) 
00182         : tag(t), level(l), keyAttr(kt), keyClass(kc) { }
00183 };
00184 
00185 
00186 
00187 typedef struct {
00188     int pidx ;
00189     DB_ElementList *findRequestList ;
00190     DB_ElementList *findResponseList ;
00191     DB_LEVEL queryLevel ;
00192     char indexFilename[DBC_MAXSTRING+1] ;
00193     char storageArea[DBC_MAXSTRING+1] ;
00194     long maxBytesPerStudy ;
00195     long maxStudiesAllowed ;
00196     int idxCounter ;
00197     DB_CounterList *moveCounterList ;
00198     int NumberRemainOperations ;
00199     DB_QUERY_CLASS rootLevel ;
00200     DB_UidList *uidList ;
00201 } DB_Private_Handle ;
00202 
00203 
00204 typedef struct  {
00205     char StudyInstanceUID [UI_MAX_LENGTH] ;
00206     long StudySize ;
00207     double LastRecordedDate ;
00208     int NumberofRegistratedImages ;
00209 } StudyDescRecord ;
00210 
00211 
00212 typedef struct  {
00213     int idxCounter ;
00214     double RecordedDate ; 
00215     long ImageSize ;
00216 } ImagesofStudyArray ;
00217 
00218 
00219 /* the following constants define which array element
00220  * of the param[] array in the IdxRecord structure
00221  * is linked to which value field in the IdxRecord.
00222  * numbers must be continuous, starting with 0.
00223  *
00224  * The constant NBPARAMETERS must contain the number
00225  * of array elements to be referenced in param[]
00226  * (= highest index +1)
00227  */
00228 
00229 #define RECORDIDX_PatientsBirthDate               0
00230 #define RECORDIDX_PatientsSex                     1
00231 #define RECORDIDX_PatientsName                    2
00232 #define RECORDIDX_PatientID                       3
00233 #define RECORDIDX_PatientsBirthTime               4
00234 #define RECORDIDX_OtherPatientIDs                 5
00235 #define RECORDIDX_OtherPatientNames               6
00236 #define RECORDIDX_EthnicGroup                     7
00237 #define RECORDIDX_NumberofPatientRelatedStudies   8
00238 #define RECORDIDX_NumberofPatientRelatedSeries    9
00239 #define RECORDIDX_NumberofPatientRelatedInstances 10
00240 #define RECORDIDX_StudyDate                      11
00241 #define RECORDIDX_StudyTime                      12
00242 #define RECORDIDX_StudyID                        13
00243 #define RECORDIDX_StudyDescription               14
00244 #define RECORDIDX_NameOfPhysiciansReadingStudy   15
00245 #define RECORDIDX_AccessionNumber                16
00246 #define RECORDIDX_ReferringPhysiciansName        17
00247 #define RECORDIDX_ProcedureDescription           18
00248 #define RECORDIDX_AttendingPhysiciansName        19
00249 #define RECORDIDX_StudyInstanceUID               20
00250 #define RECORDIDX_OtherStudyNumbers              21
00251 #define RECORDIDX_AdmittingDiagnosesDescription  22
00252 #define RECORDIDX_PatientsAge                    23
00253 #define RECORDIDX_PatientsSize                   24
00254 #define RECORDIDX_PatientsWeight                 25
00255 #define RECORDIDX_Occupation                     26
00256 #define RECORDIDX_NumberofStudyRelatedSeries     27
00257 #define RECORDIDX_NumberofStudyRelatedInstances  28
00258 #define RECORDIDX_SeriesNumber                   29
00259 #define RECORDIDX_SeriesInstanceUID              30
00260 #define RECORDIDX_Modality                       31
00261 #define RECORDIDX_ImageNumber                    32
00262 #define RECORDIDX_SOPInstanceUID                 33
00263 #define RECORDIDX_SeriesDate                     34
00264 #define RECORDIDX_SeriesTime                     35
00265 #define RECORDIDX_SeriesDescription              36
00266 #define RECORDIDX_ProtocolName                   37
00267 #define RECORDIDX_OperatorsName                  38
00268 #define RECORDIDX_PerformingPhysiciansName       39
00269 #define RECORDIDX_PresentationLabel              40
00270 
00271 #define NBPARAMETERS                             41
00272 
00273 
00274 struct IdxRecord {
00275 
00276     char    filename                        [DBC_MAXSTRING+1] ;
00277     char    SOPClassUID                     [UI_MAX_LENGTH+1] ;
00278     double  RecordedDate ; 
00279     int     ImageSize ;
00280 
00281     DB_SmallDcmElmt param                   [NBPARAMETERS] ;
00282 
00283     char    PatientsBirthDate               [DA_MAX_LENGTH+1] ;
00284     char    PatientsSex                     [CS_MAX_LENGTH+1] ;
00285     char    PatientsName                    [PN_MAX_LENGTH+1] ;
00286     char    PatientID                       [LO_MAX_LENGTH+1] ; 
00287     char    PatientsBirthTime               [TM_MAX_LENGTH+1] ; 
00288     char    OtherPatientIDs                 [LO_MAX_LENGTH+1] ; 
00289     char    OtherPatientNames               [PN_MAX_LENGTH+1] ; 
00290     char    EthnicGroup                     [SH_MAX_LENGTH+1] ; 
00291     char    NumberofPatientRelatedStudies   [IS_MAX_LENGTH+1] ; 
00292     char    NumberofPatientRelatedSeries    [IS_MAX_LENGTH+1] ; 
00293     char    NumberofPatientRelatedInstances [IS_MAX_LENGTH+1] ;
00294     
00295     char    StudyDate                       [DA_MAX_LENGTH+1] ; 
00296     char    StudyTime                       [TM_MAX_LENGTH+1] ; 
00297     char    StudyID                         [CS_MAX_LENGTH+1] ;
00298     char    StudyDescription                [LO_MAX_LENGTH+1] ; 
00299     char    NameOfPhysiciansReadingStudy    [PN_MAX_LENGTH+1] ;
00300 
00301     char    AccessionNumber                 [CS_MAX_LENGTH+1] ;
00302     char    ReferringPhysiciansName         [PN_MAX_LENGTH+1] ;
00303     char    ProcedureDescription            [LO_MAX_LENGTH+1] ;
00304     char    AttendingPhysiciansName         [PN_MAX_LENGTH+1] ;
00305     char    StudyInstanceUID                [UI_MAX_LENGTH+1] ;
00306     char    OtherStudyNumbers               [IS_MAX_LENGTH+1] ;
00307     char    AdmittingDiagnosesDescription   [LO_MAX_LENGTH+1] ;
00308     char    PatientsAge                     [AS_MAX_LENGTH+1] ;
00309     char    PatientsSize                    [DS_MAX_LENGTH+1] ;
00310     char    PatientsWeight                  [DS_MAX_LENGTH+1] ;
00311     char    Occupation                      [SH_MAX_LENGTH+1] ;
00312     char    NumberofStudyRelatedSeries      [IS_MAX_LENGTH+1] ;
00313     char    NumberofStudyRelatedInstances   [IS_MAX_LENGTH+1] ;
00314     
00315     char    SeriesNumber                    [IS_MAX_LENGTH+1] ;
00316     char    SeriesInstanceUID               [UI_MAX_LENGTH+1] ;
00317     char    Modality                        [CS_MAX_LENGTH+1] ;
00318     
00319     char    ImageNumber                     [IS_MAX_LENGTH+1] ;
00320     char    SOPInstanceUID                  [UI_MAX_LENGTH+1] ;
00321 
00322     char    SeriesDate                      [DA_MAX_LENGTH+1] ; 
00323     char    SeriesTime                      [TM_MAX_LENGTH+1] ; 
00324     char    SeriesDescription               [LO_MAX_LENGTH+1] ; 
00325     char    ProtocolName                    [LO_MAX_LENGTH+1] ;
00326     char    OperatorsName                   [PN_MAX_LENGTH+1] ;
00327     char    PerformingPhysiciansName        [PN_MAX_LENGTH+1] ;
00328     char    PresentationLabel               [CS_LABEL_MAX_LENGTH+1] ;
00329 
00330     DVIFhierarchyStatus hstat;  
00331 
00332   // Not related to any particular DICOM attribute !
00333     char    InstanceDescription             [DESCRIPTION_MAX_LENGTH+1] ;
00334    
00335     IdxRecord(); /* defined in dbutils.cc */
00336 
00337 private:
00338     /* undefined */ IdxRecord(const IdxRecord& copy);
00339     /* undefined */ IdxRecord& operator=(const IdxRecord& copy);
00340 };
00341 
00342 
00346 #define PATIENT_LEVEL_STRING    "PATIENT"
00347 #define STUDY_LEVEL_STRING      "STUDY"
00348 #define SERIE_LEVEL_STRING      "SERIES"
00349 #define IMAGE_LEVEL_STRING      "IMAGE"
00350 
00354 extern void         DB_IdxInitRecord (IdxRecord *, int linksOnly) ; 
00355 
00356 extern OFCondition    DB_IdxRead (DB_Private_Handle *phandle, int idx, IdxRecord *idxRec) ;
00357 extern OFCondition    DB_IdxAdd (DB_Private_Handle *phandle, int *idx, IdxRecord *idxRec) ;
00358 extern OFCondition    DB_IdxRemove (DB_Private_Handle *phandle, int idx);
00359 extern OFCondition    DB_StudyDescChange (DB_Private_Handle *phandle, StudyDescRecord *pStudyDesc) ;
00360 extern OFCondition    DB_IdxInitLoop (DB_Private_Handle *phandle, int *idx) ;
00361 extern OFCondition    DB_IdxGetNext (DB_Private_Handle *phandle, int *idx, IdxRecord *idxRec) ;
00362 
00366 extern int DB_debugLevel;
00367 extern void DB_debug(int level, const char* format, ...);
00368 
00369 extern int      DB_StringUnify(char *, char *) ;
00370 extern OFCondition    DB_FreeElementList (DB_ElementList *) ;
00371 extern OFCondition    DB_FreeUidList (DB_UidList *) ;
00372 extern int      DB_TagSupported (DcmTagKey) ;
00373 extern OFCondition    DB_GetUIDTag (DB_LEVEL, DcmTagKey *) ;
00374 extern OFCondition    DB_GetTagLevel (DcmTagKey, DB_LEVEL *) ;
00375 extern OFCondition    DB_GetTagKeyAttr (DcmTagKey, DB_KEY_TYPE *) ;
00376 extern OFCondition    DB_GetTagKeyClass (DcmTagKey, DB_KEY_CLASS *) ;
00377 extern int      DB_CharsetInElement (char *charset, DB_SmallDcmElmt *elt) ;
00378 extern void     DB_RemoveSpaces (char *string) ;
00379 extern void     DB_RemoveEnclosingSpaces (char *string) ;
00380 extern long     DB_DateToLong (char *date) ;
00381 extern double       DB_TimeToDouble (char *time) ;
00382 extern void     DB_DuplicateElement (DB_SmallDcmElmt *src, DB_SmallDcmElmt *dst) ;
00383 extern int      DB_MatchDate (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) ;
00384 extern int      DB_MatchTime (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) ;
00385 extern int      DB_MatchUID (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) ;
00386 extern int      DB_MatchStrings (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) ;
00387 extern int      DB_Match (DB_SmallDcmElmt *mod, DB_SmallDcmElmt *elt) ;
00388 extern void     DB_MakeResponseList (DB_Private_Handle *phandle, IdxRecord *idxRec) ;
00389 extern OFCondition    DB_HierarchicalCompare (DB_Private_Handle *phandle, IdxRecord *idxRec,
00390                     DB_LEVEL level, DB_LEVEL infLevel, int *match) ;
00391 extern OFCondition    DB_CheckupinStudyDesc(DB_Private_Handle *phandle, StudyDescRecord *pStudyDesc, char *StudyUID, long imageSize) ;
00392 extern int      DB_MatchStudyUIDInStudyDesc(StudyDescRecord *pStudyDesc, char *StudyUID, int maxStudiesAllowed) ;
00393 extern OFCondition    DB_GetStudyDesc(DB_Private_Handle *phandle, StudyDescRecord *pStudyDesc) ;
00394 extern OFCondition    DB_DeleteOldestImages(DB_Private_Handle *phandle, StudyDescRecord *pStudyDesc, int StudyNum, char *StudyUID, long RequiredSize) ;
00395 extern int      DB_DeleteOldestStudy(DB_Private_Handle *phandle, StudyDescRecord *pStudyDesc) ;
00396 extern "C" int      DB_Compare(const void *e1, const void *e2) ;
00397 
00398 extern OFCondition DB_lock(DB_Private_Handle *phandle, OFBool exclusive);
00399 extern OFCondition DB_unlock(DB_Private_Handle *phandle);
00400 
00401 extern OFBool DB_doCheckFindIdentifier();
00402 extern OFBool DB_doCheckMoveIdentifier();
00403 
00404 extern void DB_printDataset(DcmDataset *ds);
00405 
00406 #endif
00407 
00408 /*
00409 ** CVS Log
00410 ** $Log: dbpriv.h,v $
00411 ** Revision 1.15  2001/10/12 12:43:06  meichel
00412 ** Adapted imagectn to OFCondition based dcmnet module (supports strict mode).
00413 **
00414 ** Revision 1.14  2001/06/01 15:51:26  meichel
00415 ** Updated copyright header
00416 **
00417 ** Revision 1.13  2000/12/15 13:25:14  meichel
00418 ** Declared qsort() and signal() callback functions as extern "C", avoids
00419 **   warnings on Sun C++ 5.x compiler.
00420 **
00421 ** Revision 1.12  2000/10/16 11:34:48  joergr
00422 ** Replaced presentation description by a more general instance description.
00423 **
00424 ** Revision 1.11  2000/03/08 16:41:07  meichel
00425 ** Updated copyright header.
00426 **
00427 ** Revision 1.10  2000/03/06 16:27:55  meichel
00428 ** Added constructor declarations needed by gcc 2.5.8.
00429 **
00430 ** Revision 1.9  1999/08/31 09:50:01  meichel
00431 ** Introduced default constructors for some imagectn structs
00432 **   in order to passify some compiler warnings.
00433 **
00434 ** Revision 1.8  1999/07/14 12:03:40  meichel
00435 ** Updated data dictionary for supplement 29, 39, 33_lb, CP packet 4 and 5.
00436 **   Corrected dcmtk applications for changes in attribute name constants.
00437 **
00438 ** Revision 1.7  1999/06/10 12:12:12  meichel
00439 ** Adapted imagectn to new command line option scheme.
00440 **   Added support for Patient/Study Only Q/R model and C-GET (experimental).
00441 **
00442 ** Revision 1.6  1999/04/29 15:23:15  joergr
00443 ** Added PresentationLabel to index file.
00444 **
00445 ** Revision 1.5  1999/04/28 09:21:10  joergr
00446 ** Added item PresentationDescription to index record.
00447 **
00448 ** Revision 1.4  1999/01/29 12:40:11  meichel
00449 ** Simplified some index file related code in imagectn to ease maintenance.
00450 **
00451 ** Revision 1.3  1999/01/29 09:54:19  vorwerk
00452 ** Recordsize changed.
00453 **
00454 ** Revision 1.2  1998/12/22 15:16:29  vorwerk
00455 ** - add elements in IdxRecord
00456 **      char      StudyDescription        [LO_MAX_LENGTH+1] ;
00457 **      char      NameOfPhysiciansReadingStudy [PN_MAX_LENGTH+1] ;
00458 **      char      SOPInstanceUID          [UI_MAX_LENGTH+1] ;
00459 **      DVIFhierarchyStatus       hstat;
00460 **      char      SeriesDate              [DA_MAX_LENGTH+1] ;
00461 **      char      SeriesTime              [TM_MAX_LENGTH+1] ;
00462 **      char      SeriesDescription       [LO_MAX_LENGTH+1] ;
00463 **      char      ProtocolName            [LO_MAX_LENGTH+1] ;
00464 **      char      OperatorsName            [PN_MAX_LENGTH+1] ;
00465 **      char      PerformingPhysiciansName                 [PN_MAX_LENGTH+1] ;
00466 **
00467 ** Revision 1.1  1998/12/22 15:11:27  vorwerk
00468 ** removed from libsrc and added in include
00469 **
00470 ** Revision 1.8  1997/07/21 08:59:57  andreas
00471 ** - Replace all boolean types (BOOLEAN, CTNBOOLEAN, DICOM_BOOL, BOOL)
00472 **   with one unique boolean type OFBool.
00473 **
00474 ** Revision 1.7  1997/06/26 12:51:00  andreas
00475 ** - Changed names for enumeration values in DB_KEY_TYPE since the value
00476 **   OPTIONAL was predefined for Windows 95/NT
00477 ** - Include Additional headers (winsock.h, io.h) for Windows NT/95
00478 **
00479 ** Revision 1.6  1996/05/30 17:45:18  hewett
00480 ** Modified the definition of a static array of structs which was causing
00481 ** some C++ compilers problems.
00482 **
00483 ** Revision 1.5  1996/05/06 07:39:08  hewett
00484 ** Added explicit initialization (bzero) of idx record.  Rearranged
00485 ** size of string attributes in idx record.
00486 **
00487 ** Revision 1.4  1996/04/29 15:16:05  hewett
00488 ** Removed unused DB_GetUSValue().
00489 **
00490 ** Revision 1.3  1996/04/25 16:34:37  hewett
00491 ** Added workaround for gcc 2.5.8 compiler problem.  The compiler was
00492 ** complaining that the structs DB_FindAttr and IdxRecord had a bad
00493 ** constructor (they didn't have one!).  Conditionally added a constructor.
00494 **
00495 ** Revision 1.2  1996/04/22 11:21:57  hewett
00496 ** Added declaration of DB_printDataset().  Useful for debugging help.
00497 **
00498 ** Revision 1.1.1.1  1996/03/28 19:25:00  hewett
00499 ** Oldenburg Image CTN Software ported to use the dcmdata C++ toolkit.
00500 **
00501 **
00502 */


Generated on 8 Dec 2004 for OFFIS DCMTK Version 3.5.3 by Doxygen 1.3.9.1