Main Page | Modules | Alphabetical List | Data Structures | File List | Data Fields | Globals

acrutil.c File Reference

#include <stdio.h>
#include <stdlib.h>
#include <limits.h>
#include <errno.h>
#include "idprint.h"
#include <string.h>
#include "iddicom.h"
#include "idgen.h"
#include "idima.h"
#include "idacr.h"
#include "idacr-restricted.h"
#include <netinet/in.h>

Go to the source code of this file.

Functions

long _IdAcrReadElement (int gr, int nu, FILE *fp, void *buff)
 lit un acr_element et le range dans buff retourne la taille de l'acr_element (non lu si buff =0) (le fichier doit deja avoir ete ouvert, et _IdAcrCheckSwap(FILE * fp) avoir ete appelle) ATTENTION : C'est a l'utilisateur de savoir si l'element lu est un entier ou une chaine de caract

long _IdAcrOverWriteElement (int gr, int nu, FILE *fp, void *buff)
long _IdAcrGetElementLength (int gr, int nu, FILE *fp)
 Recherche un acr_element et renvoie sa longueur. (le fichier doit deja avoir ete ouvert, et _IdAcrCheckSwap(FILE * fp) avoir ete appelle).

uint32_t _IdAcrRecupLgr (FILE *, int *)
 recupere la longueur d'un champ DICOM. (le fichier doit deja avoir ete ouvert, _IdAcrCheckSwap(FILE * fp) avoir ete appelle) et la partie 'group' ainsi que la partie 'elem' de l'acr_element doivent avoir ete lues.

void * _IdAcrReadElement_avec_creation (int gr, int num, FILE *fp, void *buff, int *lgrTrouvee)
 lit un acr_element et le range dans buff s'il est alloue l'alloue sinon et retourne buff dans tous les cas (non lu si buff =0) (le fichier doit deja avoir ete ouvert, et _IdAcrCheckSwap(FILE * fp) avoir ete appelle) ATTENTION : C'est a l'utilisateur de savoir si l'element lu est un entier ou une chaine de caract

int _IdStrGetDicomTag (char *libelle, unsigned long *gr, unsigned long *num, char *vr)
short int SWAP_SHORT (short int a)
uint32_t SWAP_LONG (uint32_t a)
long _IdAcrOverWriteElementNumber (int gr, int num, FILE *fp, int nb)
ACR_ELEMENT_IdAcrModifyElement (ACR_ELEMENT *liste, ACR_ELEMENT *elem)
int _IdAcrTestSwap (uint32_t s)
int _IdAcrCheckSwap (FILE *fp)
void * _IdAcrReadElementFromLabel (char *libelle, FILE *fp, char *vr, void *buff)
 Tente de lire un acr_element a partir de son libelle. Le resultat est range dans buff.

ACR_ELEMENT_IdAcrReadNextElement (FILE *fp, int mode)
 lit l'acr_element courant. (le fichier doit deja avoir ete ouvert, et _IdAcrCheckSwap(FILE * fp) avoir ete appelle)

long _IdAcrModifElementLength (int gr, int num, FILE *fp, uint32_t newLength)
ACR_ELEMENT_IdAcrMakeElement (int gr, int nu, long int size, int type, long int init)
ACR_ELEMENT_IdAcrAddElement (ACR_ELEMENT *liste, ACR_ELEMENT *elem)
ACR_ELEMENT_IdAcrAppendElement (ACR_ELEMENT *liste, ACR_ELEMENT *elem)
ACR_ELEMENT_IdAcrFreeListe (ACR_ELEMENT *liste)
ACR_ELEMENT_IdAcrMergeListes (ACR_ELEMENT *listeOriginale, ACR_ELEMENT *listeAajouter)
ACR_ELEMENT_IdAcrFindElement (ACR_ELEMENT *liste, int gr, int nu)
void _IdAcrAdjustLength (ACR_ELEMENT *liste)
void _IdAcrAffListe (ACR_ELEMENT *liste)
void _IdAcrAffListeBref (ACR_ELEMENT *liste)
void _IdAcrAffListe2 (ACR_ELEMENT *liste, int npriv, int noffset)
int _IdAcrAddHisto (char *l)

Variables

int __TrueDicom
int __ExplicitVR
int __ID_offset
int __NumeroGroupePrecedent
int __Papyrus
int __ID_CardioVascCurieux


Function Documentation

ACR_ELEMENT* _IdAcrAddElement ACR_ELEMENT liste,
ACR_ELEMENT elem
 

Definition at line 1483 of file acrutil.c.

References DEBUG, acr_element::group, IdPrintf(), acr_element::length, acr_element::number, and acr_element::suiv.

Referenced by _IdAcrMergeListes(), and IdAcrWriteFileExtended().

int _IdAcrAddHisto char *  l  ) 
 

Definition at line 1895 of file acrutil.c.

void _IdAcrAdjustLength ACR_ELEMENT liste  ) 
 

Definition at line 1703 of file acrutil.c.

References _IdAcrFindElement(), acr_element::group, acr_element::length, acr_element::number, acr_element::suiv, and acr_element::value.

Referenced by IdAcrWriteFileExtended(), and IdAcrWriteListeAcr().

void _IdAcrAffListe ACR_ELEMENT liste  ) 
 

Definition at line 1741 of file acrutil.c.

References AN, AT, BD, BI, acr_element::group, IdPrintf(), acr_element::length, NO, acr_element::number, acr_element::suiv, acr_element::type, and acr_element::value.

Referenced by IdAcrWriteFileExtended(), and IdAcrWriteListeAcr().

void _IdAcrAffListe2 ACR_ELEMENT liste,
int  npriv,
int  noffset
 

Definition at line 1790 of file acrutil.c.

References __ID_offset, _ID_dicom_elements, __Dicom__el__::dicom_elem, __Dicom__el__::dicom_group, __Dicom__el__::dicom_libelle, __Dicom__el__::dicom_type, acr_element::group, IdPrintf(), acr_element::length, acr_element::number, acr_element::skippedLength, acr_element::suiv, and acr_element::value.

void _IdAcrAffListeBref ACR_ELEMENT liste  ) 
 

Definition at line 1765 of file acrutil.c.

References AN, AT, BD, BI, acr_element::group, IdPrintf(), acr_element::length, NO, acr_element::number, acr_element::suiv, acr_element::type, and acr_element::value.

ACR_ELEMENT* _IdAcrAppendElement ACR_ELEMENT liste,
ACR_ELEMENT elem
 

Definition at line 1551 of file acrutil.c.

References DEBUG, acr_element::group, IdPrintf(), acr_element::length, acr_element::number, and acr_element::suiv.

Referenced by IdAcrInquireHeader().

int _IdAcrCheckSwap FILE *  fp  ) 
 

Definition at line 256 of file acrutil.c.

References __ExplicitVR, __ID_CardioVascCurieux, __ID_offset, __Papyrus, __TrueDicom, _IdAcrTestSwap(), DEBUG, IdPrintf(), SEEK_SET, and x.

Referenced by _IdAcrGetPixelOffset(), _IdAcrPositionSwap(), IdAcrInquireHeader(), and IdAcrInquireInfoTot4().

ACR_ELEMENT* _IdAcrFindElement ACR_ELEMENT liste,
int  gr,
int  nu
 

Definition at line 1685 of file acrutil.c.

References acr_element::group, acr_element::number, and acr_element::suiv.

Referenced by _IdAcrAdjustLength().

ACR_ELEMENT* _IdAcrFreeListe ACR_ELEMENT liste  ) 
 

Definition at line 1646 of file acrutil.c.

References acr_element::suiv.

Referenced by IdAcrWriteFileExtended().

long _IdAcrGetElementLength int  gr,
int  num,
FILE *  fp
 

Recherche un acr_element et renvoie sa longueur. (le fichier doit deja avoir ete ouvert, et _IdAcrCheckSwap(FILE * fp) avoir ete appelle).

Parameters:
gr partie 'group' du Tag de l'acr_element a lire.
num partie 'elem' du Tag de l'acr_element a lire.
fp File descriptor dans lequel effectuer la recherche.
Returns:
En cas de succes, longueur du champ lu. 0 en cas d'echec.

Definition at line 955 of file acrutil.c.

References __TrueDicom, _IdAcrRecupLgr(), DEBUG, IdPrintf(), SEEK_CUR, SEEK_SET, SWAP_LONG(), and SWAP_SHORT().

ACR_ELEMENT* _IdAcrMakeElement int  gr,
int  nu,
long int  size,
int  type,
long int  init
 

Definition at line 1450 of file acrutil.c.

References DEBUG, acr_element::group, IdPrintf(), acr_element::length, acr_element::number, acr_element::suiv, acr_element::type, and acr_element::value.

Referenced by IdAcrWriteFileExtended().

ACR_ELEMENT* _IdAcrMergeListes ACR_ELEMENT listeOriginale,
ACR_ELEMENT listeAajouter
 

Definition at line 1665 of file acrutil.c.

References _IdAcrAddElement(), and acr_element::suiv.

Referenced by IdAcrWriteFileExtended().

long _IdAcrModifElementLength int  gr,
int  num,
FILE *  fp,
uint32_t  newLength
 

Definition at line 1371 of file acrutil.c.

References _IdAcrRecupLgr(), DEBUG, IdPrintf(), SEEK_CUR, SEEK_SET, SWAP_LONG(), and SWAP_SHORT().

ACR_ELEMENT * _IdAcrModifyElement ACR_ELEMENT liste,
ACR_ELEMENT elem
 

Definition at line 1585 of file acrutil.c.

References DEBUG, acr_element::group, IdPrintf(), acr_element::length, acr_element::number, and acr_element::suiv.

long _IdAcrOverWriteElement int  gr,
int  nu,
FILE *  fp,
void *  buff
 

Definition at line 1275 of file acrutil.c.

References _IdAcrRecupLgr(), DEBUG, IdPrintf(), SEEK_CUR, SEEK_SET, SWAP_LONG(), and SWAP_SHORT().

long _IdAcrOverWriteElementNumber int  gr,
int  num,
FILE *  fp,
int  nb
 

Definition at line 1185 of file acrutil.c.

References _IdAcrRecupLgr(), DEBUG, IdPrintf(), SEEK_CUR, SEEK_SET, SWAP_LONG(), and SWAP_SHORT().

long _IdAcrReadElement int  gr,
int  num,
FILE *  fp,
void *  buff
 

lit un acr_element et le range dans buff retourne la taille de l'acr_element (non lu si buff =0) (le fichier doit deja avoir ete ouvert, et _IdAcrCheckSwap(FILE * fp) avoir ete appelle) ATTENTION : C'est a l'utilisateur de savoir si l'element lu est un entier ou une chaine de caract

Parameters:
gr partie 'group' du Tag de l'acr_element a lire.
num partie 'elem' du Tag de l'acr_element a lire.
fp File descriptor dans lequel effectuer la recherche.
buff Ou placer l'acr_element en cas de succes. Si NULL, l'allocation est faite par la fonction
Returns:
Longueur de l'ACR_ELEMENT lu

Definition at line 543 of file acrutil.c.

References _IdAcrReadElement_avec_creation().

void * _IdAcrReadElement_avec_creation int  gr,
int  num,
FILE *  fp,
void *  buff,
int *  lgrTrouvee
 

lit un acr_element et le range dans buff s'il est alloue l'alloue sinon et retourne buff dans tous les cas (non lu si buff =0) (le fichier doit deja avoir ete ouvert, et _IdAcrCheckSwap(FILE * fp) avoir ete appelle) ATTENTION : C'est a l'utilisateur de savoir si l'element lu est un entier ou une chaine de caract

Parameters:
gr partie 'group' du Tag de l'acr_element a lire.
num partie 'elem' du Tag de l'acr_element a lire.
fp File descriptor dans lequel effectuer la recherche.
buff Ou placer l'acr_element en cas de succes. Si NULL, l'allocation est faite par la fonction
buff Ou placer l'acr_element en cas de succes. Longueur de l'ACR_ELEMENT lu
Returns:
Adresse memoire de l'element lu

Definition at line 595 of file acrutil.c.

References __TrueDicom, _ID_dicom_elements, _IdAcrRecupLgr(), DEBUG, __Dicom__el__::dicom_elem, __Dicom__el__::dicom_group, __Dicom__el__::dicom_type, IdPrintf(), SEEK_CUR, SEEK_SET, SWAP_LONG(), and SWAP_SHORT().

Referenced by _IdAcrReadElement(), and _IdAcrReadElementFromLabel().

void* _IdAcrReadElementFromLabel char *  libelle,
FILE *  fp,
char *  vr,
void *  buff
 

Tente de lire un acr_element a partir de son libelle. Le resultat est range dans buff.

Parameters:
libelle Libelle de l'acr_element a lire. Il s'agit du dernier champ de la variable globale _ID_dicom_elements, tel que "Group Length", "Priority" ou encore "AE Title".
fp File descriptor dans lequel effectuer la recherche.
vr DICOM_VR (cf la variable globale _ID_dicom_vr) retourne', pour permettre a l'appelant d'interpreter le contenu de buff.
buff Ou placer l'acr_element en cas de succes. Si NULL, l'allocation est faite localement.
Returns:
En cas de succes, le contenu de l'acr_element lu. Null en cas d'echec.

Definition at line 449 of file acrutil.c.

References _IdAcrReadElement_avec_creation(), _IdStrGetDicomTag(), DEBUG, and IdPrintf().

ACR_ELEMENT* _IdAcrReadNextElement FILE *  fp,
int  mode
 

lit l'acr_element courant. (le fichier doit deja avoir ete ouvert, et _IdAcrCheckSwap(FILE * fp) avoir ete appelle)

Parameters:
libelle Libelle de l'acr_element a lire. Il s'agit du dernier champ de la variable globale _ID_dicom_elements, tel que "Group Length", "Priority" ou encore "AE Title".
fp File descriptor dans lequel effectuer la recherche.
mode mode= 1 : on charge EGALEMENT les Elements 'longs' (>5000), 0 : on NE CHARGE PAS les Elements 'longs' (>5000) .
Returns:
En cas de succes, pointeur sur l'ACR_ELEMENT lu. Null en cas d'echec.

Definition at line 793 of file acrutil.c.

References __NumeroGroupePrecedent, _ID_dicom_elements, _IdAcrRecupLgr(), AT, BD, BI, DEBUG, __Dicom__el__::dicom_elem, __Dicom__el__::dicom_group, __Dicom__el__::dicom_type, acr_element::group, IdErrPrintf(), IdPrintf(), acr_element::length, NO, acr_element::number, SEEK_CUR, acr_element::skippedLength, acr_element::suiv, SWAP_LONG(), SWAP_SHORT(), acr_element::type, and acr_element::value.

Referenced by IdAcrInquireHeader().

uint32_t _IdAcrRecupLgr FILE *  fp,
int *  skippedLength
 

recupere la longueur d'un champ DICOM. (le fichier doit deja avoir ete ouvert, _IdAcrCheckSwap(FILE * fp) avoir ete appelle) et la partie 'group' ainsi que la partie 'elem' de l'acr_element doivent avoir ete lues.

Parameters:
fp File descriptor dans lequel effectuer la recherche.
skippedLength nombre d'octets que l'on saute qd la lecture est finie
Returns:
longueur du champ

Referenced by _IdAcrGetElementLength(), _IdAcrGetPixelOffset(), _IdAcrModifElementLength(), _IdAcrOverWriteElement(), _IdAcrOverWriteElementNumber(), _IdAcrReadElement_avec_creation(), and _IdAcrReadNextElement().

int _IdAcrTestSwap uint32_t  s  ) 
 

Definition at line 205 of file acrutil.c.

References DEBUG, and IdPrintf().

Referenced by _IdAcrCheckSwap().

int _IdStrGetDicomTag char *  libelle,
unsigned long *  gr,
unsigned long *  num,
char *  vr
 

Definition at line 384 of file acrutil.c.

References _ID_dicom_elements, DICOM_ELEMENTS, and __Dicom__el__::dicom_group.

Referenced by _IdAcrReadElementFromLabel().

uint32_t SWAP_LONG uint32_t  a  ) 
 

Definition at line 174 of file acrutil.c.

References IdPrintf().

Referenced by _IdAcrGetElementLength(), _IdAcrModifElementLength(), _IdAcrOverWriteElement(), _IdAcrOverWriteElementNumber(), _IdAcrReadElement_avec_creation(), _IdAcrReadNextElement(), and _IdAcrRecupLgr().

short int SWAP_SHORT short int  a  ) 
 

Referenced by _IdAcrGetElementLength(), _IdAcrGetPixelOffset(), _IdAcrModifElementLength(), _IdAcrOverWriteElement(), _IdAcrOverWriteElementNumber(), _IdAcrReadElement_avec_creation(), _IdAcrReadNextElement(), and _IdAcrRecupLgr().


Variable Documentation

int __ExplicitVR
 

Definition at line 140 of file acrutil.c.

Referenced by _IdAcrCheckSwap(), and _IdAcrRecupLgr().

int __ID_CardioVascCurieux
 

Definition at line 152 of file acrutil.c.

Referenced by _IdAcrCheckSwap(), _IdAcrGetPixelOffset(), IdAcrInquireHeader(), and IdAcrInquireInfoTot4().

int __ID_offset
 

Definition at line 142 of file acrutil.c.

Referenced by _IdAcrAffListe2(), _IdAcrCheckSwap(), and _IdAcrGetPixelOffset().

int __NumeroGroupePrecedent
 

Definition at line 143 of file acrutil.c.

Referenced by _IdAcrReadNextElement(), and IdAcrInquireHeader().

int __Papyrus
 

Definition at line 149 of file acrutil.c.

Referenced by _IdAcrCheckSwap().

int __TrueDicom
 

Definition at line 138 of file acrutil.c.

Referenced by _IdAcrCheckSwap(), _IdAcrGetElementLength(), _IdAcrIsAcrLibido(), and _IdAcrReadElement_avec_creation().


Generated on Wed Oct 19 09:28:35 2005 for SIMRI3D by doxygen 1.3.7