//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;
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);
}
}
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;
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);
}
}
//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;
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);
}
}
s << '\\';
NewInt = ReadInt16();
s << NewInt;
- //printf("%s\n", s.str().c_str());
}
}
}
/*
- // 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;
+
*/
/*
// est-ce encore utile?
- // mieux vaut modifier le source du Dicom Dictionnaty
+ // mieux vaut modifier le source du Dicom Dictionnary
// et remplacer pour ces 2 cas RET par US
if ( (group == 0x0028) && (element == 0x0005) )
}
}
+/**
+ * \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
* 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;