/**
* \ingroup gdcmFile
* \brief Renvoie la longueur A ALLOUER pour recevoir les pixels de l'image
- * \ ou DES images dans le cas d'un multiframe
- * \ ATTENTION : il ne s'agit PAS de la longueur du groupe des Pixels
- * \ (dans le cas d'images compressees, elle n'a pas de sens).
- *
- * @param void Rien en entree
+ * ou DES images dans le cas d'un multiframe
+ * ATTENTION : il ne s'agit PAS de la longueur du groupe des Pixels
+ * (dans le cas d'images compressees, elle n'a pas de sens).
*
* @return longueur a allouer
*/
* \brief TODO
* \warning WARNING
*
- * @param
- *
- * @return
*/
-
void * gdcmFile::GetImageData (void) {
char * _Pixels;
// Longueur en Octets des Pixels a lire
/**
* \ingroup gdcmFile
* \brief amene en mémoire dans une zone précisee par l'utilisateur
- * \les Pixels d'une image NON COMPRESSEE
- * \Aucun test n'est fait pour le moment sur le caractere compresse ou non de l'image
+ * les Pixels d'une image NON COMPRESSEE
+ * \Warning Aucun test n'est fait pour le moment sur le caractere compresse ou non de l'image
*
- * @param
+ * @param destination
+ * @param MaxSize
*
- * @return
+ * @return TODO JPR
*/
int gdcmFile::GetImageDataIntoVector (void* destination, size_t MaxSize) {
/////////////////////////////////////////////////////////////////
/**
* \ingroup gdcmFile
- * \brief TODO
- * \warning WARNING doit-etre etre publique ?
+ * \brief TODO JPR
+ * \warning doit-etre etre publique ? FIXME JPR
*
- * @param
+ * @param Data TODO JPR
+ * @param ExpectedSize TODO JPR
*
- * @return
+ * @return TODO JPR
*/
-
int gdcmFile::SetImageData(void * Data, size_t ExpectedSize) {
SetImageDataSize(ExpectedSize);
/////////////////////////////////////////////////////////////////
/**
* \ingroup gdcmFile
- * \brief TODO
+ * \brief TODO JPR
* \
- * \warning WARNING doit-etre etre publique ?
+ * \warning WARNING doit-etre etre publique ? FIXME JPR
*
- * @param
+ * @param ImageDataSize TODO JPR
*
- * @return
*/
void gdcmFile::SetImageDataSize(size_t ImageDataSize) {
string content2;
char car[20];
+ // suppose que le ElValue (0x7fe0, 0x0010) existe ...
+
sprintf(car,"%d",ImageDataSize);
content2=car;
SetPubElValByNumber(content2, 0x7fe0, 0x0010);
/**
* \ingroup gdcmFile
* \brief Ecrit sur disque les pixels d'UNE image
- * \Aucun test n'est fait sur l'"Endiannerie" du processeur.
- * \Ca sera à l'utilisateur d'appeler son Reader correctement
- * \ (Equivalent a IdImaWriteRawFile)
+ * Aucun test n'est fait sur l'"Endiannerie" du processeur.
+ * Ca sera à l'utilisateur d'appeler son Reader correctement
+ * (Equivalent a IdImaWriteRawFile) FIXME JPR
*
- * @param
+ * @param nomFichier TODO JPR
*
- * @return
+ * @return TODO JPR
*/
int gdcmFile::WriteRawData (string nomFichier) {
/**
* \ingroup gdcmFile
* \brief Ecrit sur disque UNE image Dicom
- * \Aucun test n'est fait sur l'"Endiannerie" du processeur.
- * \Ca fonctionnera correctement (?) sur processeur Intel
- * \ (Equivalent a IdDcmWrite)
+ * Aucun test n'est fait sur l'"Endiannerie" du processeur.
+ * Ca fonctionnera correctement (?) sur processeur Intel
+ * (Equivalent a IdDcmWrite) FIXME JPR
*
- * @param
+ * @param nomFichier TODO JPR
*
- * @return
+ * @return TODO JPR
*/
int gdcmFile::WriteDcm (string nomFichier) {
// pourtant le gdcmElValSet contenu dans le gdcmHeader
// ne devrait pas être visible par l'utilisateur final (?)
- GetPubElVals().Write(fp1);
+ GetPubElValSet().Write(fp1);
fwrite(Pixels, lgrTotale, 1, fp1);
return(1);
}
+
/////////////////////////////////////////////////////////////////
/**
* \ingroup gdcmFile
- * \brief Ecrit sur disque UNE image ACR-NEMA
- * \ (a l'attention des logiciels cliniques
- * \ qui ne prennent en entrée QUE des images ACR ...
- * \ si un header DICOM est fourni en entree,
- * \ les groupes < 0x0008 et les groupes impairs sont ignores)
- * \ Aucun test n'est fait sur l'"Endiannerie" du processeur.
- * \ Ca fonctionnera correctement (?) sur processeur Intel
- * \ (Equivalent a IdDcmWrite)
+ * \ TODO
*
* @param
*
* @return
*/
+int gdcmFile::WriteDcmExplVR (string nomFichier) {
+
+// ATTENTION : fonction non terminée (commitée a titre de precaution)
+
+ FILE * fp1;
+ char* filePreamble;
+ fp1 = fopen(nomFichier.c_str(),"wb");
+ if (fp1 == NULL) {
+ printf("Echec ouverture (ecriture) Fichier [%s] \n",nomFichier.c_str());
+ return (0);
+ }
+
+ // Ecriture Dicom File Preamble
+ filePreamble=(char*)calloc(128,1);
+ fwrite(filePreamble,128,1,fp1);
+ fwrite("DICM",4,1,fp1);
+
+ // un accesseur de + est obligatoire ???
+ // pourtant le gdcmElValSet contenu dans le gdcmHeader
+ // ne devrait pas être visible par l'utilisateur final (?)
+
+ GetPubElValSet().WriteExplVR(fp1);
+
+ fwrite(Pixels, lgrTotale, 1, fp1);
+
+ fclose (fp1);
+ return(1);
+}
+
+/////////////////////////////////////////////////////////////////
+/**
+ * \ingroup gdcmFile
+ * \brief Ecrit sur disque UNE image ACR-NEMA
+ * (a l'attention des logiciels cliniques
+ * qui ne prennent en entrée QUE des images ACR ...
+ * si un header DICOM est fourni en entree,
+ * les groupes < 0x0008 et les groupes impairs sont ignores)
+ * Aucun test n'est fait sur l'"Endiannerie" du processeur.
+ * Ca fonctionnera correctement (?) sur processeur Intel
+ * (Equivalent a IdDcmWrite)
+ *
+ * @param nomFichier TODO JPR
+ *
+ * @return TODO JPR
+ */
+
int gdcmFile::WriteAcr (string nomFichier) {
// ATTENTION : fonction non terminée (commitée a titre de precaution)
// pourtant le gdcmElValSet contenu dans le gdcmHeader
// ne devrait pas être visible par l'utilisateur final (?)
- GetPubElVals().WriteAcr(fp1);
+ GetPubElValSet().WriteAcr(fp1);
fwrite(Pixels, lgrTotale, 1, fp1);