]> Creatis software - gdcm.git/commitdiff
* src/gdcmDictSet.h : set the method BuildDictPath in public
authorregrain <regrain>
Mon, 12 Jan 2004 15:02:19 +0000 (15:02 +0000)
committerregrain <regrain>
Mon, 12 Jan 2004 15:02:19 +0000 (15:02 +0000)
     * src/gdcmTS.cxx, gdcmVR.cxx : use now a dictionnary file other than to be
       directly setted in the source code
     * Dicts/dicomTS.dic, dicomVR.dic : 2 new dictionnary files loaded by
       gdcmTS and gdcmVR
     -- BeNours

ChangeLog
Dicts/dicomTS.dic [new file with mode: 0644]
Dicts/dicomVR.dic [new file with mode: 0644]
src/gdcmDict.cxx
src/gdcmDictSet.h
src/gdcmTS.cxx
src/gdcmVR.cxx

index 2058c649d14696bc971472bcbeba260d9e87050e..fbb30b655043757d588752836962a473cfce49ac 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,6 +1,11 @@
 2004-01-12 Benoit Regrain
      * src/*.h : add comments
-     
+     * src/gdcmDictSet.h : set the method BuildDictPath in public
+     * src/gdcmTS.cxx, gdcmVR.cxx : use now a dictionnary file other than to be
+       directly setted in the source code
+     * Dicts/dicomTS.dic, dicomVR.dic : 2 new dictionnary files loaded by
+       gdcmTS and gdcmVR
+
 2004-01-09 Benoit Regrain
      * gdcmPython/gdcmVersion.py : add a gdcmVERSION variable information
      * setup.py : use a reference to gdcmVERSION
diff --git a/Dicts/dicomTS.dic b/Dicts/dicomTS.dic
new file mode 100644 (file)
index 0000000..284befe
--- /dev/null
@@ -0,0 +1,154 @@
+1.2.840.10008.1.2        Implicit VR - Little Endian
+1.2.840.10008.1.2.1      Explicit VR - Little Endian
+1.2.840.10008.1.2.1.99   Deflated Explicit VR - Little Endian
+1.2.840.10008.1.2.2      Explicit VR - Big Endian
+1.2.840.10008.1.2.4.50   JPEG Baseline (Process 1)
+1.2.840.10008.1.2.4.51   JPEG Extended (Process 2 & 4)
+1.2.840.10008.1.2.4.52   JPEG Extended (Process 3 & 5) (Retired)
+1.2.840.10008.1.2.4.53   JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8) (Retired)
+1.2.840.10008.1.2.4.54   JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9) (Retired)
+1.2.840.10008.1.2.4.55   JPEG Full Progression, Non-Hierarchical (Process 10 & 12) (Retired)
+1.2.840.10008.1.2.4.56   JPEG Full Progression, Non-Hierarchical (Process 11 & 13) (Retired)
+1.2.840.10008.1.2.4.57   JPEG Lossless Non-Hierarchical (Process 14)
+1.2.840.10008.1.2.4.58   JPEG Lossless Non-Hierarchical (Process 15) (Retired)
+1.2.840.10008.1.2.4.59   JPEG Extended Hierarchical (Process 16 & 18) (Retired)
+1.2.840.10008.1.2.4.60   JPEG Spectral Selection, Non-Hierarchical (Process 17 & 19) (Retired)
+1.2.840.10008.1.2.4.61   JPEG Spectral Selection, Hierarchical (Process 20 & 22) (Retired)
+1.2.840.10008.1.2.4.62   JPEG Spectral Selection, Hierarchical (Process 21 & 23) (Retired)
+1.2.840.10008.1.2.4.63   JPEG Full Progression, Hierarchical (Process 24 & 26) (Retired)
+1.2.840.10008.1.2.4.64   JPEG Full Progression, Hierarchical (Process 25 & 27) (Retired)
+1.2.840.10008.1.2.4.65   JPEG Lossless, Hierarchical (Process 28) (Retired)
+1.2.840.10008.1.2.4.66   JPEG Lossless, Hierarchical (Process 29) (Retired))
+1.2.840.10008.1.2.4.70   JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1])
+1.2.840.10008.1.2.4.80   JPEG-LS Lossless Image Compression
+1.2.840.10008.1.2.4.81   JPEG-LS Lossy (Near-Lossless) Image Compression
+1.2.840.10008.1.2.4.90   JPEG 2000 Image Compression (Lossless Only)
+1.2.840.10008.1.2.4.91   JPEG 2000 Image Compression
+1.2.840.10008.1.2.5      RLE Lossless
+
+1.2.840.10008.1.1                 Verification SOP Class
+1.2.840.10008.1.3.10              Media Storage Directory Storage
+1.2.840.10008.1.9                 Basic Study Content Notification SOP Class
+1.2.840.10008.1.20.1              Image Commitment Push Model SOP Class
+1.2.840.10008.1.20.1.1            Image Commitment Push Model SOP Instance
+1.2.840.10008.1.20.2              Image Commitment Push Model SOP Class (Retired)
+1.2.840.10008.1.20.2.1            Image Commitment Push Model SOP Instance (Retired)
+1.2.840.10008.2.16.4              DICOM Controlled Terminology
+1.2.840.10008.3.1.1.1             DICOM Application Context Name
+1.2.840.10008.3.1.2.1.1           Detached Patient Management SOP Class
+1.2.840.10008.3.1.2.1.4           Detached Patient Management Meta SOP Class
+1.2.840.10008.3.1.2.2.1           Detached Visit Management SOP Class
+1.2.840.10008.3.1.2.3.1           Detached Study Management SOP Class
+1.2.840.10008.3.1.2.3.2           Study Component Management SOP Class
+1.2.840.10008.3.1.2.3.3           Modality Performed Procedure Step SOP Class
+1.2.840.10008.3.1.2.3.4           Modality Performed Procedure Step Retrieve SOP Class
+1.2.840.10008.3.1.2.3.5           Modality Performed Procedure Step Notification SOP Class
+1.2.840.10008.3.1.2.5.1           Detached Results Management SOP Class
+1.2.840.10008.3.1.2.5.4           Detached Results Management Meta SOP Class
+1.2.840.10008.3.1.2.5.5           Detached Study Management Meta SOP Class
+1.2.840.10008.3.1.2.6.1           Detached Interpretation Management SOP Class
+1.2.840.10008.5.1.1.1             Basic Film Session SOP Class
+1.2.840.10008.5.1.1.2             Basic Film Box SOP Class
+1.2.840.10008.5.1.1.4             Basic Gray Scale Image Box SOP Class
+1.2.840.10008.5.1.1.4.1           Basic Color Image Box SOP Class
+1.2.840.10008.5.1.1.4.2           Referenced Image Box SOP Class (Retired)
+1.2.840.10008.5.1.1.9             Basic Gray Scale Print Management Meta SOP Class
+1.2.840.10008.5.1.1.9.1           Referenced Gray Scale Print Management Meta SOP Class(Retired)
+1.2.840.10008.5.1.1.14            Print Job SOP Class
+1.2.840.10008.5.1.1.15            Basic Annotation Box SOP Class
+1.2.840.10008.5.1.1.16            Printer SOP Class
+1.2.840.10008.5.1.1.16.376        Printer Configuration Retrieval SOP Class
+1.2.840.10008.5.1.1.17            Printer SOP Instance
+1.2.840.10008.5.1.1.17.376        Printer Configuration Retrieval SOP Instance
+1.2.840.10008.5.1.1.18            Basic Color Print Management Meta SOP Class
+1.2.840.10008.5.1.1.18.1          Referenced Color Print Management Meta SOP Class (Retired)
+1.2.840.10008.5.1.1.22            VOI LUT Box SOP Class
+1.2.840.10008.5.1.1.23            Presentation LUT Box SOP Class
+1.2.840.10008.5.1.1.24            Image Overlay Box SOP Class (Retired)
+1.2.840.10008.5.1.1.24.1          Basic Print Image Overlay Box SOP Class
+1.2.840.10008.5.1.1.25            Print Queue SOP Instance
+1.2.840.10008.5.1.1.26            Print Queue Management SOP Class
+1.2.840.10008.5.1.1.27            Stored Print Storage SOP Class
+1.2.840.10008.5.1.1.29            Hardcopy Grayscale Image Storage SOP Class
+1.2.840.10008.5.1.1.30            Hardcopy Color Image Storage SOP Class
+1.2.840.10008.5.1.1.31            Pull Print Request SOP Class
+1.2.840.10008.5.1.1.32            Pull Stored Print Management Meta SOP Class
+
+1.2.840.10008.5.1.4.1.1.1         Computed Radiography Image Storage
+1.2.840.10008.5.1.4.1.1.1.1       Digital X-Ray Image Storage - For Presentation
+1.2.840.10008.5.1.4.1.1.1.1.1     Digital X-Ray Image Storage - For Processing
+1.2.840.10008.5.1.4.1.1.1.2       Digital Mammography Image Storage - For Presentation
+1.2.840.10008.5.1.4.1.1.1.2.1     Digital Mammography Image Storage - For Processing
+1.2.840.10008.5.1.4.1.1.1.3       Digital Intra-oral X-ray Image Storage - For Presentation
+1.2.840.10008.5.1.4.1.1.1.3.1     Digital Intra-oral X-Ray Image Storage - For Processing
+1.2.840.10008.5.1.4.1.1.2         CT Image Storage
+1.2.840.10008.5.1.4.1.1.3         Ultrasound Multi-Frame Image Storage (Retired)
+1.2.840.10008.5.1.4.1.1.3.1       Ultrasound Multi-Frame Image Storage
+1.2.840.10008.5.1.4.1.1.4         MR Image Storage
+1.2.840.10008.5.1.4.1.1.4.1       Enhanced MR Image Storage
+1.2.840.10008.5.1.4.1.1.4.2       MR Spectroscopy Storage
+1.2.840.10008.5.1.4.1.1.5         Nuclear Medicine Image Storage (Retired)
+1.2.840.10008.5.1.4.1.1.6         Ultrasound Image Storage (Retired)
+1.2.840.10008.5.1.4.1.1.6.1       Ultrasound Image Storage
+1.2.840.10008.5.1.4.1.1.7         Secondary Capture Image Storage
+1.2.840.10008.5.1.4.1.1.7.1       Multi-frame Single Bit Secondary Capture Image Storage
+1.2.840.10008.5.1.4.1.1.7.2       Multi-frame Grayscale Byte Secondary Capture Image Storage
+1.2.840.10008.5.1.4.1.1.7.3       Multi-frame Grayscale Word Secondary Capture Image Storage
+1.2.840.10008.5.1.4.1.1.7.4       Multi-frame True Color Secondary Capture Image Storage
+1.2.840.10008.5.1.4.1.1.8         Stand-alone Overlay Storage
+1.2.840.10008.5.1.4.1.1.9         Stand-alone Curve Storage
+1.2.840.10008.5.1.4.1.1.9.1.1     Twelve Lead ECG Waveform Storage
+1.2.840.10008.5.1.4.1.1.9.1.2     General ECG Waveform Storage
+1.2.840.10008.5.1.4.1.1.9.1.3     Ambulatory ECG Waveform Storage
+1.2.840.10008.5.1.4.1.1.9.2.1     Hemodynamic Waveform Storage
+1.2.840.10008.5.1.4.1.1.9.3.1     Cardiac Electrophysiology Waveform Storage
+1.2.840.10008.5.1.4.1.1.9.4.1     Basic Voice Audio Waveform Storage
+1.2.840.10008.5.1.4.1.1.10        Stand-alone Modality LUT Storage
+1.2.840.10008.5.1.4.1.1.11        Stand-alone VOI LUT Storage
+1.2.840.10008.5.1.4.1.1.11.1      Grayscale Softcopy Presentation State Storage SOP Class
+1.2.840.10008.5.1.4.1.1.12.1      X-Ray Angiographic Image Storage
+1.2.840.10008.5.1.4.1.1.12.2      X-Ray Radiofluoroscoping Image Storage
+1.2.840.10008.5.1.4.1.1.12.3      X-Ray Angiographic Bi-Plane Image Storage (Retired)
+1.2.840.10008.5.1.4.1.1.20        Nuclear Medicine Image Storage
+1.2.840.10008.5.1.4.1.1.66        Raw Data Storage
+1.2.840.10008.5.1.4.1.1.77.1      VL Image Storage (Retired)
+1.2.840.10008.5.1.4.1.1.77.2      VL MultiFrame Image Storage (Retired)
+1.2.840.10008.5.1.4.1.1.77.1.1    VL Endoscoping Image Storage
+1.2.840.10008.5.1.4.1.1.77.1.2    VL Microscoping Image Storage
+1.2.840.10008.5.1.4.1.1.77.1.3    VL Slide-Coordinates Microscoping Image Storage
+1.2.840.10008.5.1.4.1.1.77.1.4    VL Photographic Image Storage
+1.2.840.10008.5.1.4.1.1.88.1      SR Text Storage
+1.2.840.10008.5.1.4.1.1.88.2      SR Audio Storage
+1.2.840.10008.5.1.4.1.1.88.3      SR Detail Storage
+1.2.840.10008.5.1.4.1.1.88.4      SR Comprehensive Storage
+1.2.840.10008.5.1.4.1.1.88.11     Basic Text SR
+1.2.840.10008.5.1.4.1.1.88.22     Enhanced SR
+1.2.840.10008.5.1.4.1.1.88.33     Comprehensive SR
+1.2.840.10008.5.1.4.1.1.88.50     Mammography CAD SR
+1.2.840.10008.5.1.4.1.1.88.59     Key Object Selection Document
+1.2.840.10008.5.1.4.1.1.88.65     Check CAD SR
+1.2.840.10008.5.1.4.1.1.128       Positron Emission Tomography Image Storage
+1.2.840.10008.5.1.4.1.1.129       Standalone PET Curve Storage
+1.2.840.10008.5.1.4.1.1.481.1     RT Image Storage
+1.2.840.10008.5.1.4.1.1.481.2     RT Dose Storage
+1.2.840.10008.5.1.4.1.1.481.3     RT Structure Set Storage
+1.2.840.10008.5.1.4.1.1.481.4     RT Beams Treatment Record Storage
+1.2.840.10008.5.1.4.1.1.481.5     RT Plan Storage
+1.2.840.10008.5.1.4.1.1.481.6     RT Brachy Treatment Record Storage
+1.2.840.10008.5.1.4.1.1.481.7     RT Treatment Summary Record Storage
+
+1.2.840.10008.5.1.4.1.2.1.1       Patient Root Query/Retrieve Information Model - FIND
+1.2.840.10008.5.1.4.1.2.1.2       Patient Root Query/Retrieve Information Model - MOVE
+1.2.840.10008.5.1.4.1.2.1.3       Patient Root Query/Retrieve Information Model - GET
+1.2.840.10008.5.1.4.1.2.2.1       Study Root Query/Retrieve Information Model - FIND
+1.2.840.10008.5.1.4.1.2.2.2       Study Root Query/Retrieve Information Model - MOVE
+1.2.840.10008.5.1.4.1.2.2.3       Study Root Query/Retrieve Information Model - GET
+1.2.840.10008.5.1.4.1.2.3.1       Patient/Study Only Query/Retrieve Information Model - FIND
+1.2.840.10008.5.1.4.1.2.3.2       Patient/Study Only Query/Retrieve Information Model - GET
+1.2.840.10008.5.1.4.1.2.3.3       Patient/Study Only Query/Retrieve Information Model - MOVE
+1.2.840.10008.5.1.4.31            Modality Worklist Information Model - FIND
+1.2.840.10008.5.1.4.32.1          General Purpose Worklist Information Model - FIND
+1.2.840.10008.5.1.4.32.2          General Purpose Scheduled Procedure Step SOP Class
+1.2.840.10008.5.1.4.32.3          General Purpose Performed Procedure Step SOP Class
+1.2.840.10008.5.1.4.32            General Purpose Worklist Management Meta SOP Class
+
diff --git a/Dicts/dicomVR.dic b/Dicts/dicomVR.dic
new file mode 100644 (file)
index 0000000..d31ec7d
--- /dev/null
@@ -0,0 +1,27 @@
+AE Application Entity;    // At most 16 bytes
+AS Age String;            // Exactly 4 bytes
+AT Attribute Tag;         // 2 16-bit unsigned short integers
+CS Code String;           // At most 16 bytes
+DA Date;                  // Exactly 8 bytes
+DS Decimal String;        // At most 16 bytes
+DT Date Time;             // At most 26 bytes
+FL Floating Point Single; // 32-bit IEEE 754:1985 float
+FD Floating Point Double; // 64-bit IEEE 754:1985 double
+IS Integer String;        // At most 12 bytes
+LO Long String;           // At most 64 chars
+LT Long Text;             // At most 10240 chars
+OB Other Byte String;     // String of bytes (vr independant)
+OW Other Word String;     // String of 16-bit words (vr dep)
+PN Person Name;           // At most 64 chars
+SH Short String;          // At most 16 chars
+SL Signed Long;           // Exactly 4 bytes
+SQ Sequence of Items;     // Not Applicable
+SS Signed Short;          // Exactly 2 bytes
+ST Short Text;            // At most 1024 chars
+TM Time;                  // At most 16 bytes
+UI Unique Identifier;     // At most 64 bytes
+UL Unsigned Long;         // Exactly 4 bytes
+UN Unknown;               // Any length of bytes
+US Unsigned Short;        // Exactly 2 bytes
+UT Unlimited Text;        // At most 2^32 -1 chars
+
index 3acd3fc310fe3db56d154c6508c14b96024ade12..25de9bba0d7bd277b6c53caa0bc34d37a1c6893a 100644 (file)
@@ -20,6 +20,7 @@ gdcmDict::gdcmDict(std::string & FileName) {
    TagName vr;
    TagName fourth;
    TagName name;
+
    while (!from.eof()) {
       from >> std::hex >> group >> element;
       eatwhite(from);
index a65677523650943954f30001d1236469d02033d4..578f72057b7880bfb573128e3c1028bd0f51bfe4 100644 (file)
@@ -27,7 +27,6 @@ private:
 
        int AppendDict(gdcmDict* NewDict);
        void LoadDictFromFile(std::string FileName, DictKey Name);
-   std::string BuildDictPath(void);
 
 public:
    std::list<std::string> * GetPubDictTagNames(void);
@@ -47,6 +46,8 @@ public:
 
        gdcmDict* GetDict(DictKey DictName);
        gdcmDict* GetDefaultPubDict(void);
+
+   static std::string BuildDictPath(void);
 };
 
 #endif
index d300668f6a2bbfd98310eb37449c312ffc4f8558..29ab1be0a9c6d52731fd5d3e7ad488c765ccc785 100644 (file)
 // gdcmTS.cxx
 
-#include <stdio.h>
+#include <fstream>
 
 #include "gdcmTS.h"
+#include "gdcmUtil.h"
+
+#ifndef PUB_DICT_PATH
+#  define PUB_DICT_PATH     "../Dicts/"
+#endif
+#define DICT_TS "dicomTS.dic"
 
 gdcmTS::gdcmTS(void) {
-   ts["1.2.840.10008.1.2"]      = "Implicit VR - Little Endian";  
-   ts["1.2.840.10008.1.2.1"]    = "Explicit VR - Little Endian";         
-   ts["1.2.840.10008.1.2.1.99"] = "Deflated Explicit VR - Little Endian";          
-   ts["1.2.840.10008.1.2.2"]    = "Explicit VR - Big Endian";                 
-   ts["1.2.840.10008.1.2.4.50"] = "JPEG Baseline (Process 1)";       
-   ts["1.2.840.10008.1.2.4.51"] = "JPEG Extended (Process 2 & 4)";            
-   ts["1.2.840.10008.1.2.4.52"] = "JPEG Extended (Process 3 & 5) (Retired)"; 
-   ts["1.2.840.10008.1.2.4.53"] = "JPEG Spectral Selection, Non-Hierarchical (Process 6 & 8) (Retired)"; 
-   ts["1.2.840.10008.1.2.4.54"] = "JPEG Spectral Selection, Non-Hierarchical (Process 7 & 9) (Retired)";        
-   ts["1.2.840.10008.1.2.4.55"] = "JPEG Full Progression, Non-Hierarchical (Process 10 & 12) (Retired)";           
-   ts["1.2.840.10008.1.2.4.56"] = "JPEG Full Progression, Non-Hierarchical (Process 11 & 13) (Retired)";             
-   ts["1.2.840.10008.1.2.4.57"] = "JPEG Lossless Non-Hierarchical (Process 14)";     
-   ts["1.2.840.10008.1.2.4.58"] = "JPEG Lossless Non-Hierarchical (Process 15) (Retired)";     
-   ts["1.2.840.10008.1.2.4.59"] = "JPEG Extended Hierarchical (Process 16 & 18) (Retired)";           
-   ts["1.2.840.10008.1.2.4.60"] = "JPEG Spectral Selection, Non-Hierarchical (Process 17 & 19) (Retired)";          
-   ts["1.2.840.10008.1.2.4.61"] = "JPEG Spectral Selection, Hierarchical (Process 20 & 22) (Retired)";           
-   ts["1.2.840.10008.1.2.4.62"] = "JPEG Spectral Selection, Hierarchical (Process 21 & 23) (Retired)";          
-   ts["1.2.840.10008.1.2.4.63"] = "JPEG Full Progression, Hierarchical (Process 24 & 26) (Retired)";   
-   ts["1.2.840.10008.1.2.4.64"] = "JPEG Full Progression, Hierarchical (Process 25 & 27) (Retired)";   
-   ts["1.2.840.10008.1.2.4.65"] = "JPEG Lossless, Hierarchical (Process 28) (Retired)";   
-   ts["1.2.840.10008.1.2.4.66"] = "JPEG Lossless, Hierarchical (Process 29) (Retired))";   
-   ts["1.2.840.10008.1.2.4.70"] = "JPEG Lossless, Non-Hierarchical, First-Order Prediction (Process 14 [Selection Value 1])"; 
-   ts["1.2.840.10008.1.2.4.80"] = "JPEG-LS Lossless Image Compression";
-   ts["1.2.840.10008.1.2.4.81"] = "JPEG-LS Lossy (Near-Lossless) Image Compression";
-   ts["1.2.840.10008.1.2.4.90"] = "JPEG 2000 Image Compression (Lossless Only)";   
-   ts["1.2.840.10008.1.2.4.91"] = "JPEG 2000 Image Compression";   
-   ts["1.2.840.10008.1.2.5"]    = "RLE Lossless"; 
-   
-   // The following are NOT 'Transfer Syntax UID'
-   // but 'SOP Class UID', 'Meta SOP Class UID'.
-   // May be usefull later.
-   // See PS 3.6-2003 Annex A p77
-   
-   ts["1.2.840.10008.1.1"]               = "Verification SOP Class";
-   ts["1.2.840.10008.1.3.10"]            = "Media Storage Directory Storage"; 
-   ts["1.2.840.10008.1.9"]               = "Basic Study Content Notification SOP Class";   
-   ts["1.2.840.10008.1.20.1"]            = "Image Commitment Push Model SOP Class";
-   ts["1.2.840.10008.1.20.1.1"]          = "Image Commitment Push Model SOP Instance";
-   ts["1.2.840.10008.1.20.2"]            = "Image Commitment Push Model SOP Class (Retired)";        
-   ts["1.2.840.10008.1.20.2.1"]          = "Image Commitment Push Model SOP Instance (Retired)";        
-   ts["1.2.840.10008.2.16.4"]            = "DICOM Controlled Terminology";
-   ts["1.2.840.10008.3.1.1.1"]           = "DICOM Application Context Name";   
-   ts["1.2.840.10008.3.1.2.1.1"]         = "Detached Patient Management SOP Class";
-   ts["1.2.840.10008.3.1.2.1.4"]         = "Detached Patient Management Meta SOP Class"; 
-   ts["1.2.840.10008.3.1.2.2.1"]         = "Detached Visit Management SOP Class";      
-   ts["1.2.840.10008.3.1.2.3.1"]         = "Detached Study Management SOP Class";    
-   ts["1.2.840.10008.3.1.2.3.2"]         = "Study Component Management SOP Class";
-   ts["1.2.840.10008.3.1.2.3.3"]         = "Modality Performed Procedure Step SOP Class"; 
-   ts["1.2.840.10008.3.1.2.3.4"]         = "Modality Performed Procedure Step Retrieve SOP Class"; 
-   ts["1.2.840.10008.3.1.2.3.5"]         = "Modality Performed Procedure Step Notification SOP Class";
-   ts["1.2.840.10008.3.1.2.5.1"]         = "Detached Results Management SOP Class";
-   ts["1.2.840.10008.3.1.2.5.4"]         = "Detached Results Management Meta SOP Class";
-   ts["1.2.840.10008.3.1.2.5.5"]         = "Detached Study Management Meta SOP Class";
-   ts["1.2.840.10008.3.1.2.6.1"]         = "Detached Interpretation Management SOP Class";                
-   ts["1.2.840.10008.5.1.1.1"]           = "Basic Film Session SOP Class"; 
-   ts["1.2.840.10008.5.1.1.2"]           = "Basic Film Box SOP Class";     
-   ts["1.2.840.10008.5.1.1.4"]           = "Basic Gray Scale Image Box SOP Class"; 
-   ts["1.2.840.10008.5.1.1.4.1"]         = "Basic Color Image Box SOP Class"; 
-   ts["1.2.840.10008.5.1.1.4.2"]         = "Referenced Image Box SOP Class (Retired)";       
-   ts["1.2.840.10008.5.1.1.9"]           = "Basic Gray Scale Print Management Meta SOP Class";       
-   ts["1.2.840.10008.5.1.1.9.1"]         = "Referenced Gray Scale Print Management Meta SOP Class(Retired)";       
-   ts["1.2.840.10008.5.1.1.14"]          = "Print Job SOP Class";
-   ts["1.2.840.10008.5.1.1.15"]          = "Basic Annotation Box SOP Class";
-   ts["1.2.840.10008.5.1.1.16"]          = "Printer SOP Class";
-   ts["1.2.840.10008.5.1.1.16.376"]      = "Printer Configuration Retrieval SOP Class";
-   ts["1.2.840.10008.5.1.1.17"]          = "Printer SOP Instance";
-   ts["1.2.840.10008.5.1.1.17.376"]      = "Printer Configuration Retrieval SOP Instance";
-   ts["1.2.840.10008.5.1.1.18"]          = "Basic Color Print Management Meta SOP Class";
-   ts["1.2.840.10008.5.1.1.18.1"]        = "Referenced Color Print Management Meta SOP Class (Retired)";
-   ts["1.2.840.10008.5.1.1.22"]          = "VOI LUT Box SOP Class";
-   ts["1.2.840.10008.5.1.1.23"]          = "Presentation LUT Box SOP Class";
-   ts["1.2.840.10008.5.1.1.24"]          = "Image Overlay Box SOP Class (Retired)";
-   ts["1.2.840.10008.5.1.1.24.1"]        = "Basic Print Image Overlay Box SOP Class";
-   ts["1.2.840.10008.5.1.1.25"]          = "Print Queue SOP Instance";
-   ts["1.2.840.10008.5.1.1.26"]          = "Print Queue Management SOP Class";         
-   ts["1.2.840.10008.5.1.1.27"]          = "Stored Print Storage SOP Class";  
-   ts["1.2.840.10008.5.1.1.29"]          = "Hardcopy Grayscale Image Storage SOP Class";  
-   ts["1.2.840.10008.5.1.1.30"]          = "Hardcopy Color Image Storage SOP Class";  
-   ts["1.2.840.10008.5.1.1.31"]          = "Pull Print Request SOP Class";  
-   ts["1.2.840.10008.5.1.1.32"]          = "Pull Stored Print Management Meta SOP Class";
-     
-   ts["1.2.840.10008.5.1.4.1.1.1"]       = "Computed Radiography Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.1.1"]     = "Digital X-Ray Image Storage - For Presentation";
-   ts["1.2.840.10008.5.1.4.1.1.1.1.1"]   = "Digital X-Ray Image Storage - For Processing";   
-   ts["1.2.840.10008.5.1.4.1.1.1.2"]     = "Digital Mammography Image Storage - For Presentation";
-   ts["1.2.840.10008.5.1.4.1.1.1.2.1"]   = "Digital Mammography Image Storage - For Processing";
-   ts["1.2.840.10008.5.1.4.1.1.1.3"]     = "Digital Intra-oral X-ray Image Storage - For Presentation";
-   ts["1.2.840.10008.5.1.4.1.1.1.3.1"]   = "Digital Intra-oral X-Ray Image Storage - For Processing";               
-   ts["1.2.840.10008.5.1.4.1.1.2"]       = "CT Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.3"]       = "Ultrasound Multi-Frame Image Storage (Retired)";
-   ts["1.2.840.10008.5.1.4.1.1.3.1"]     = "Ultrasound Multi-Frame Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.4"]       = "MR Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.4.1"]     = "Enhanced MR Image Storage";  
-   ts["1.2.840.10008.5.1.4.1.1.4.2"]     = "MR Spectroscopy Storage";  
-   ts["1.2.840.10008.5.1.4.1.1.5"]       = "Nuclear Medicine Image Storage (Retired)";
-   ts["1.2.840.10008.5.1.4.1.1.6"]       = "Ultrasound Image Storage (Retired)";
-   ts["1.2.840.10008.5.1.4.1.1.6.1"]     = "Ultrasound Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.7"]       = "Secondary Capture Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.7.1"]     = "Multi-frame Single Bit Secondary Capture Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.7.2"]     = "Multi-frame Grayscale Byte Secondary Capture Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.7.3"]     = "Multi-frame Grayscale Word Secondary Capture Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.7.4"]     = "Multi-frame True Color Secondary Capture Image Storage";  
-   ts["1.2.840.10008.5.1.4.1.1.8"]       = "Stand-alone Overlay Storage";
-   ts["1.2.840.10008.5.1.4.1.1.9"]       = "Stand-alone Curve Storage";
-   ts["1.2.840.10008.5.1.4.1.1.9.1.1"]   = "Twelve Lead ECG Waveform Storage"; 
-   ts["1.2.840.10008.5.1.4.1.1.9.1.2"]   = "General ECG Waveform Storage"; 
-   ts["1.2.840.10008.5.1.4.1.1.9.1.3"]   = "Ambulatory ECG Waveform Storage"; 
-   ts["1.2.840.10008.5.1.4.1.1.9.2.1"]   = "Hemodynamic Waveform Storage"; 
-   ts["1.2.840.10008.5.1.4.1.1.9.3.1"]   = "Cardiac Electrophysiology Waveform Storage"; 
-   ts["1.2.840.10008.5.1.4.1.1.9.4.1"]   = "Basic Voice Audio Waveform Storage"; 
-   ts["1.2.840.10008.5.1.4.1.1.10"]      = "Stand-alone Modality LUT Storage"; 
-   ts["1.2.840.10008.5.1.4.1.1.11"]      = "Stand-alone VOI LUT Storage";      
-   ts["1.2.840.10008.5.1.4.1.1.11.1"]    = "Grayscale Softcopy Presentation State Storage SOP Class";
-   ts["1.2.840.10008.5.1.4.1.1.12.1"]    = "X-Ray Angiographic Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.12.2"]    = "X-Ray Radiofluoroscoping Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.12.3"]    = "X-Ray Angiographic Bi-Plane Image Storage (Retired)";  
-   ts["1.2.840.10008.5.1.4.1.1.20"]      = "Nuclear Medicine Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.66"]      = "Raw Data Storage";
-   ts["1.2.840.10008.5.1.4.1.1.77.1"]    = "VL Image Storage (Retired)"; 
-   ts["1.2.840.10008.5.1.4.1.1.77.2"]    = "VL MultiFrame Image Storage (Retired)";   
-   ts["1.2.840.10008.5.1.4.1.1.77.1.1"]  = "VL Endoscoping Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.77.1.2"]  = "VL Microscoping Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.77.1.3"]  = "VL Slide-Coordinates Microscoping Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.77.1.4"]  = "VL Photographic Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.88.1"]    = "SR Text Storage";
-   ts["1.2.840.10008.5.1.4.1.1.88.2"]    = "SR Audio Storage";
-   ts["1.2.840.10008.5.1.4.1.1.88.3"]    = "SR Detail Storage";
-   ts["1.2.840.10008.5.1.4.1.1.88.4"]    = "SR Comprehensive Storage";     
-   ts["1.2.840.10008.5.1.4.1.1.88.11"]   = "Basic Text SR";
-   ts["1.2.840.10008.5.1.4.1.1.88.22"]   = "Enhanced SR";
-   ts["1.2.840.10008.5.1.4.1.1.88.33"]   = "Comprehensive SR";
-   ts["1.2.840.10008.5.1.4.1.1.88.50"]   = "Mammography CAD SR";
-   ts["1.2.840.10008.5.1.4.1.1.88.59"]   = "Key Object Selection Document";
-   ts["1.2.840.10008.5.1.4.1.1.88.65"]   = "Check CAD SR";   
-   ts["1.2.840.10008.5.1.4.1.1.128"]     = "Positron Emission Tomography Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.129"]     = "Standalone PET Curve Storage";
-   ts["1.2.840.10008.5.1.4.1.1.481.1"]   = "RT Image Storage";
-   ts["1.2.840.10008.5.1.4.1.1.481.2"]   = "RT Dose Storage";
-   ts["1.2.840.10008.5.1.4.1.1.481.3"]   = "RT Structure Set Storage";
-   ts["1.2.840.10008.5.1.4.1.1.481.4"]   = "RT Beams Treatment Record Storage";
-   ts["1.2.840.10008.5.1.4.1.1.481.5"]   = "RT Plan Storage";
-   ts["1.2.840.10008.5.1.4.1.1.481.6"]   = "RT Brachy Treatment Record Storage";
-   ts["1.2.840.10008.5.1.4.1.1.481.7"]   = "RT Treatment Summary Record Storage";
-   
-   ts["1.2.840.10008.5.1.4.1.2.1.1"]     = "Patient Root Query/Retrieve Information Model - FIND";
-   ts["1.2.840.10008.5.1.4.1.2.1.2"]     = "Patient Root Query/Retrieve Information Model - MOVE";
-   ts["1.2.840.10008.5.1.4.1.2.1.3"]     = "Patient Root Query/Retrieve Information Model - GET";
-   ts["1.2.840.10008.5.1.4.1.2.2.1"]     = "Study Root Query/Retrieve Information Model - FIND";
-   ts["1.2.840.10008.5.1.4.1.2.2.2"]     = "Study Root Query/Retrieve Information Model - MOVE";
-   ts["1.2.840.10008.5.1.4.1.2.2.3"]     = "Study Root Query/Retrieve Information Model - GET";
-   ts["1.2.840.10008.5.1.4.1.2.3.1"]     = "Patient/Study Only Query/Retrieve Information Model - FIND";
-   ts["1.2.840.10008.5.1.4.1.2.3.2"]     = "Patient/Study Only Query/Retrieve Information Model - GET";
-   ts["1.2.840.10008.5.1.4.1.2.3.3"]     = "Patient/Study Only Query/Retrieve Information Model - MOVE";
-   ts["1.2.840.10008.5.1.4.31"]          = "Modality Worklist Information Model - FIND";
-   ts["1.2.840.10008.5.1.4.32.1"]        = "General Purpose Worklist Information Model - FIND";
-   ts["1.2.840.10008.5.1.4.32.2"]        = "General Purpose Scheduled Procedure Step SOP Class";
-   ts["1.2.840.10008.5.1.4.32.3"]        = "General Purpose Performed Procedure Step SOP Class";
-   ts["1.2.840.10008.5.1.4.32"]          = "General Purpose Worklist Management Meta SOP Class";
+   std::string filename=gdcmDictSet::BuildDictPath() + std::string(DICT_TS);
+   std::ifstream from(filename.c_str());
+   dbg.Error(!from, "gdcmTS::gdcmTS: can't open dictionary",filename.c_str());
+
+   char buff[1024];
+   std::string key;
+   std::string name;
+
+   while (!from.eof()) {
+      eatwhite(from);
+      from.getline(buff, 1024, ' ');
+      key = buff;
+      eatwhite(from);
+      from.getline(buff, 1024, '\n');
+      name = buff;
+
+      if(key!="")
+      {
+         ts[key]=name;
+      }
+   }
+   from.close();
 }
 
 gdcmTS::~gdcmTS() {
index c20aa4a2f0a5a515f8f72026c11c9a9bf5849543..3d2ea9c2deb7fd3a4002446e611f27c286f42805 100644 (file)
@@ -1,34 +1,40 @@
 // gdcmVR.cxx
+#include <fstream>
 
 #include "gdcmVR.h"
+#include "gdcmUtil.h"
+
+#ifndef PUB_DICT_PATH
+#  define PUB_DICT_PATH     "../Dicts/"
+#endif
+#define DICT_VR "dicomVR.dic"
 
 gdcmVR::gdcmVR(void) {
-   vr["AE"] = "Application Entity";    // At most 16 bytes
-   vr["AS"] = "Age String";            // Exactly 4 bytes
-   vr["AT"] = "Attribute Tag";         // 2 16-bit unsigned short integers
-   vr["CS"] = "Code String";           // At most 16 bytes
-   vr["DA"] = "Date";                  // Exactly 8 bytes
-   vr["DS"] = "Decimal String";        // At most 16 bytes
-   vr["DT"] = "Date Time";             // At most 26 bytes
-   vr["FL"] = "Floating Point Single"; // 32-bit IEEE 754:1985 float
-   vr["FD"] = "Floating Point Double"; // 64-bit IEEE 754:1985 double
-   vr["IS"] = "Integer String";        // At most 12 bytes
-   vr["LO"] = "Long String";           // At most 64 chars
-   vr["LT"] = "Long Text";             // At most 10240 chars
-   vr["OB"] = "Other Byte String";     // String of bytes (vr independant)
-   vr["OW"] = "Other Word String";     // String of 16-bit words (vr dep)
-   vr["PN"] = "Person Name";           // At most 64 chars
-   vr["SH"] = "Short String";          // At most 16 chars
-   vr["SL"] = "Signed Long";           // Exactly 4 bytes
-   vr["SQ"] = "Sequence of Items";     // Not Applicable
-   vr["SS"] = "Signed Short";          // Exactly 2 bytes
-   vr["ST"] = "Short Text";            // At most 1024 chars
-   vr["TM"] = "Time";                  // At most 16 bytes
-   vr["UI"] = "Unique Identifier";     // At most 64 bytes
-   vr["UL"] = "Unsigned Long ";        // Exactly 4 bytes
-   vr["UN"] = "Unknown";               // Any length of bytes
-   vr["US"] = "Unsigned Short ";       // Exactly 2 bytes
-   vr["UT"] = "Unlimited Text";        // At most 2^32 -1 chars
+   std::string filename=gdcmDictSet::BuildDictPath() + std::string(DICT_VR);
+   std::ifstream from(filename.c_str());
+   dbg.Error(!from, "gdcmVR::gdcmVR: can't open dictionary",filename.c_str());
+
+   char buff[1024];
+   std::string key;
+   std::string name;
+
+   while (!from.eof()) {
+      eatwhite(from);
+      from.getline(buff, 1024, ' ');
+      key = buff;
+      eatwhite(from);
+      from.getline(buff, 1024, ';');
+      name = buff;
+
+      eatwhite(from);
+      from.getline(buff, 1024, '\n');
+
+      if(key!="")
+      {
+         vr[key]=name;
+      }
+   }
+   from.close();
 }
 
 gdcmVR::~gdcmVR() {