]> Creatis software - gdcm.git/commitdiff
ajouts accesseurs
authorjpr <jpr>
Thu, 3 Apr 2003 15:49:16 +0000 (15:49 +0000)
committerjpr <jpr>
Thu, 3 Apr 2003 15:49:16 +0000 (15:49 +0000)
  string GetXSize(void);
  string GetYSize(void);
  string GetZSize(void);
  string GetPixelType(void);
 destinés à remplacer
 void gdcmHeader::AddAndDefaultElements(void)

src/gdcmElValSet.cxx
src/gdcmHeader.cxx
src/gdcmHeader.h

index 8a6470395a3932ecc7bcc0ee03aa5d4d4ffc8d01..3dd24f1cce7b37e7755c113110d2cb540515449f 100644 (file)
@@ -239,7 +239,8 @@ int gdcmElValSet::Write(FILE * _fp) {
                        //sprintf(str_lgrCalcGroupe,"%d",lgrCalcGroupe);
                        elemZPrec->SetValue(f.str());
                        if(DEBUG)printf("ecriture lgr (%d, %s) pour gr %04x\n",lgrCalcGroupe, f.str().c_str(), grCourant);
-                       if(DEBUG)printf ("%04x %04x [%s]\n",elemZPrec->GetGroup(), elemZPrec->GetElement(),elemZPrec->GetValue().c_str());
+                       if(DEBUG)printf ("%04x %04x [%s]\n",elemZPrec->GetGroup(), elemZPrec->GetElement(),
+                                                       elemZPrec->GetValue().c_str());
                        if(DEBUG)cout << "Addresse elemZPrec " << elemZPrec<< endl;
                        elemZPrec=elemZ;
                        lgrCalcGroupe = 0;
@@ -247,7 +248,8 @@ int gdcmElValSet::Write(FILE * _fp) {
                        if(DEBUG)printf("init-2 lgr (%d) pour gr %04x\n",lgrCalcGroupe, gr);                    
                } else {                        // On n'EST PAS sur un nv Groupe
                        lgrCalcGroupe += 2 + 2 + 4 + elem->GetLength();  // Gr + Num + Lgr + LgrElem
-                       if(DEBUG)printf("increment (%d) el %04x-->lgr (%d) pour gr %04x\n",elem->GetLength(), el, lgrCalcGroupe, gr);
+                       if(DEBUG)printf("increment (%d) el %04x-->lgr (%d) pour gr %04x\n",
+                                                               elem->GetLength(), el, lgrCalcGroupe, gr);
                }               
        }
        
@@ -386,7 +388,8 @@ int gdcmElValSet::WriteAcr(FILE * _fp) {
                        f << lgrCalcGroupe; 
                        elemZPrec->SetValue(f.str());
                        if(DEBUG)printf("ecriture lgr (%d, %s) pour gr %04x\n",lgrCalcGroupe, f.str().c_str(), grCourant);
-                       if(DEBUG)printf ("%04x %04x [%s]\n",elemZPrec->GetGroup(), elemZPrec->GetElement(),elemZPrec->GetValue().c_str());
+                       if(DEBUG)printf ("%04x %04x [%s]\n",elemZPrec->GetGroup(), elemZPrec->GetElement(),
+                                                       elemZPrec->GetValue().c_str());
                        if(DEBUG)cout << "Addresse elemZPrec " << elemZPrec<< endl;
                        elemZPrec=elemZ;
                        lgrCalcGroupe = 0;
@@ -394,7 +397,8 @@ int gdcmElValSet::WriteAcr(FILE * _fp) {
                        if(DEBUG)printf("init-2 lgr (%d) pour gr %04x\n",lgrCalcGroupe, gr);                    
                } else {                        // On n'EST PAS sur un nv Groupe
                        lgrCalcGroupe += 2 + 2 + 4 + elem->GetLength();  // Gr + Num + Lgr + LgrElem
-                       if(DEBUG)printf("increment (%d) el %04x-->lgr (%d) pour gr %04x\n",elem->GetLength(), el, lgrCalcGroupe, gr);
+                       if(DEBUG)printf("increment (%d) el %04x-->lgr (%d) pour gr %04x\n",elem->GetLength(), el, 
+                                                       lgrCalcGroupe, gr);
                }               
        }
        
@@ -554,7 +558,8 @@ int gdcmElValSet::WriteExplVR(FILE * _fp) {
                        //sprintf(str_lgrCalcGroupe,"%d",lgrCalcGroupe);
                        elemZPrec->SetValue(f.str());
                        if(DEBUG)printf("ecriture lgr (%d, %s) pour gr %04x\n",lgrCalcGroupe, f.str().c_str(), grCourant);
-                       if(DEBUG)printf ("%04x %04x [%s]\n",elemZPrec->GetGroup(), elemZPrec->GetElement(),elemZPrec->GetValue().c_str());
+                       if(DEBUG)printf ("%04x %04x [%s]\n",elemZPrec->GetGroup(), elemZPrec->GetElement(),
+                                                       elemZPrec->GetValue().c_str());
                        if(DEBUG)cout << "Addresse elemZPrec " << elemZPrec<< endl;
                        elemZPrec=elemZ;
                        lgrCalcGroupe = 0;
@@ -562,7 +567,8 @@ int gdcmElValSet::WriteExplVR(FILE * _fp) {
                        if(DEBUG)printf("init-2 lgr (%d) pour gr %04x\n",lgrCalcGroupe, gr);                    
                } else {                        // On n'EST PAS sur un nv Groupe
                        lgrCalcGroupe += 2 + 2 + 4 + elem->GetLength();  // Gr + Num + Lgr + LgrElem
-                       if(DEBUG)printf("increment (%d) el %04x-->lgr (%d) pour gr %04x\n",elem->GetLength(), el, lgrCalcGroupe, gr);
+                       if(DEBUG)printf("increment (%d) el %04x-->lgr (%d) pour gr %04x\n",elem->GetLength(), 
+                                                       el, lgrCalcGroupe, gr);
                }               
        }
                
index 5e6c2c876cd2c1c4b6146b12c9b6b5215243ff57..fdc6dee91ebae49d0ea5215f5066343e68a5229d 100644 (file)
@@ -776,7 +776,6 @@ void gdcmHeader::LoadElementValue(gdcmElValue * ElVal) {
                                        s << '\\';
                                        NewInt = ReadInt16();
                                        s << NewInt;
-                                       //printf("%s\n", s.str().c_str());
                                }
                        }
                        
@@ -968,12 +967,13 @@ bool gdcmHeader::IsAnInteger(gdcmElValue * ElVal) {
    }
  
    /*          
-   // on le traite tt de même (VR peut donner l'info)
-               // faire qq chose + ruse (pas de test si pas de VR)  
+       // on le traite tt de même (VR peut donner l'info)
+       // faire qq chose + ruse (pas de test si pas de VR)  
    if ( group % 2 != 0 )
-      // We only have some semantics on documented elements, which are
-      // the even ones.
-      return false; 
+       // We only have some semantics on documented elements, which are
+       // the even ones.
+      return false;
+       
     */
    
    /*
@@ -991,7 +991,7 @@ bool gdcmHeader::IsAnInteger(gdcmElValue * ElVal) {
    
    
    // est-ce encore utile?
-   // mieux vaut modifier le source du Dicom Dictionnat
+   // mieux vaut modifier le source du Dicom Dictionnar
    // et remplacer pour ces 2 cas  RET par US
    
    if ( (group == 0x0028) && (element == 0x0005) )
@@ -1388,6 +1388,60 @@ void gdcmHeader::ParseHeader(bool exception_on_error) throw(gdcmFormatError) {
    }
 }
 
+/**
+ * \ingroup gdcmHeader
+ * \brief   accessor to get Rows nbr
+ */
+string gdcmHeader::GetYSize(void) {
+       return (GetElValByName("Rows"));
+}
+
+/**
+ * \ingroup gdcmHeader
+ * \brief   accessor to get Columns nbr
+ */
+string gdcmHeader::GetXSize(void) {
+       return (GetElValByName("Columns"));
+}
+
+/**
+ * \ingroup gdcmHeader
+ * \brief   accessor to get Planes nbr
+ * (ACR-NEMA volume file or Multiframe Dicom V3 image file)
+ */
+string gdcmHeader::GetZSize(void) {
+       string NewVal;
+       NewVal = GetElValByNumber(0x0028,0x0008); // Number of Frames (DICOM)
+
+       if (NewVal == "gdcm::Unfound") {
+               NewVal = GetElValByNumber(0x0028,0x0012); // Planes (ACR-NEMA)
+                               // 6000 0012 : US OLY Planes
+                               // 'xxxByName' function not applicable
+               if (NewVal == "gdcm::Unfound") {
+                       NewVal = "0";
+               }
+       }
+       return(NewVal);
+}
+
+/**
+ * \ingroup gdcmHeader
+ * \brief   accessor to get Pixel Type 
+ * (U8, S8, U16, S16, U32, S32)
+ *
+ * \warning : NOT YET MADE
+ * 
+ */
+string gdcmHeader::GetPixelType(void) {
+   string NewVal;
+   // TODO
+   return(NewVal);
+}
+
 /**
  * \ingroup gdcmHeader
  * \brief   Once the header is parsed add some gdcm convenience/helper elements
@@ -1397,8 +1451,10 @@ void gdcmHeader::ParseHeader(bool exception_on_error) throw(gdcmFormatError) {
  *               I8   (unsigned 8 bit image)
  *               I16  (unsigned 8 bit image)
  *               IS16 (signed 8 bit image)
+ *                                             Replace by U8, S8, U16, S16, U32, S32 
+ *
  *          - gdcmXsize, gdcmYsize, gdcmZsize whose values are respectively
- *            the ones of the official DICOM fields Rows, Columns and Planes.
+ *            the ones of the official DICOM fields Rows, Columns and [Number of Frames/Planes]
  */
 void gdcmHeader::AddAndDefaultElements(void) {
    gdcmElValue* NewElVal = (gdcmElValue*)0;
index 91b92549255f7137735515769cb708e3ccb133a5..c733cd5435fa406d8d9e8be4c5cb98abe6c1257e 100644 (file)
@@ -168,6 +168,16 @@ public:
    int ReplaceOrCreateByNumber(guint16 Group, guint16 Elem, string Value);                                
 
    gdcmElValSet GetPubElValSet() { return(PubElValSet); }
+   
+   // a mettre en inline
+   // --> ou met-on les doxygeneries ?
+   
+   string GetXSize(void);  
+   string GetYSize(void);
+    
+   string GetZSize(void);       
+   string GetPixelType(void);  
+   
 };
 
 #endif