PRÉSENTATION GÉNÉRALE

La fonction groupage est monomodulaire, c’est-à-dire qu’elle s’utilise en n’appelant qu’une seule fonction, la fonction grp(). Celle-ci se charge de toutes les opérations nécessaires au groupage d’un RSS. Ces opérations sont : la lecture des RUM, le contrôle des RUM, la détermination du séjour principal, et le groupage proprement dit.

Cette documentation présente la manière d’utiliser la fonction grp().

Une définition correcte de ces paramètres ainsi qu’un prototype de la fonction grp() se trouvent dans le fichier FG7MAIN.H.

Type de données et structures

La fonction groupage 7 utilise des types de données et des structures à l’appel.

  1. Le type GRP_ENTREE :

Cette structure est utilisée pour rassembler les paramètres d’entrée de la fonction groupage.

 

typedef struct {

    char *rum2[tab_max];

    char dirtab[BUFSIZ];

    int ns;

} GRP_ENTREE ;

 

*rum2[tab_max]       Tableau de pointeurs sur des chaînes de caractères. Ces chaînes contiennent les différents RUM d’un RSS Chaque chaîne (correspondant à un RUM) doit se terminer par un caractère nul (‘\0’). Ce tableau comporte au plus tab_max pointeurs, soit 25 éléments. Les formats acceptés sont les suivants :005, A05, 007 et 008.

 

dirtab[BUFSIZ]       Chaîne de caractères contenant le chemin d’accès absolu, complet, pour atteindre le répertoire contenant les tables. Il doit être écrit de telle sorte que l’accès à une table donnée consiste à concaténer cette chaîne avec le nom de la table recherchée.

 

int ns            Entier contenant le nombre de séjours élémentaires du malade au cours de son séjour dans l’établissement hospitalier. Un appel à la fonction grp() avec ce paramètre à 0 entraîne la fermeture des tables de groupage.


  1. Le type GRP_RESULTAT :

Cette structure est utilisée par la fonction groupage pour fournir les résultats traditionnels du groupage.

typedef struct {

      int ns_sor;

      int sejp;

      char version[3];

      char cmd[3];

      char ghm[7];

     char cret[3];

     int ErrCtrl[MAXERRCTRL];

      int ErrArb[MAXERRARB];

      int ErrImpl[MAXERRIMPL];

} GRP_RESULTAT ;

 

int ns_sor    Entier contenant le nombre de séjours après le traitement dans la fonction groupage. Ce nombre peut-être différent au nombre de séjour en entrée, s’il existe des RUM consécutifs dans la même UM.

 

int sejp        entier, destinée à recevoir le numéro du RUM désigné par le groupage comme contenant le diagnostic principal et le diagnostic relié, en débutant la numérotation des RUM à 0.

 

char version[3]     Chaîne de 3 caractères destinée à recevoir le numéro de version de la classification lu dans les tables.

 

char cmd[3]  Chaîne de 3 caractères de long, destinée à recevoir le numéro de la CMD déterminée par le groupage.

 

char ghm[7] Chaîne de 7 caractères de long, destinée à recevoir le numéro du GHM déterminé par le groupage.

 

char cret[3]           Chaîne de 3 caractères de long, destinée à recevoir le code retour déterminé par le groupage. Il s’agit de la valeur en caractère du retour de la fonction grp() (cf. plus bas).

 

int ErrCtrl[MAXERRCTRL] Tableau de 1+MAXERRCTRL (101) entiers courts correspondant au vecteur des erreurs contenues dans chacun des RUM du RSS Il est construit de la façon suivante :

 

entier n°1                                               : (nr) nombre de RUM détectés dans le RSS

entier n°2                                               : (n1) nombre d’erreurs détectées dans le RUM n°1

entier n°(nr+1)                                       : nombre d’erreurs détectées dans le RUM n°nr

entiers n°(nr+2) à (nr+1+n1)                  : codes des erreurs du RUM n°1

entiers n°(nr+n1+2) à (nr+1+n1+n2)      : codes des erreurs du RUM n°2

 

int ErrArb[MAXERRARB]     Tableau de 1 + MAXERRARB (6) entiers courts correspondant au vecteur des erreurs détectées par l’arbre de décision de la classification. Les erreurs sont stockées dans ce vecteur de manière séquentielle. Ce vecteur n’a pas de structure particulière.

 

int ErrImpl[MAXERRIMPL] Tableau de 1 + MAXERRIMPL (21) entiers courts correspondant au vecteur des erreurs dues à l’implémentation. Les erreurs sont stockées dans ce vecteur de manière séquentielle. Ce vecteur n’a pas de structure particulière.

 

  1. Le type GHS_VALORISATION

Cette structure est utilisée pour fournir les éléments de valorisation du séjour :

 

typedef struct {

      char ghs[5];

      int nbjxsup;

      int sejxinf ;

      int nbjrea;

      int nbacdia;

      int nbac687;

      int nbac688;

      int nbac689;

      int acprlvtorg;

      int pih_a;

      int pih_b;

} GVAL GHS_VALORISATION ;

 

char ghs[5] Chaîne de 5 caractères de long, destinée à recevoir le numéro du GHS déterminé par le numéro de GHM obtenu par le groupage.

 

int nbjxsup  Entier contenant le nombre de journées au-delà de la borne extrême haute pour le GHS considéré.

 

int sejxinf  Entier utilisé comme booléen, contenant 0 si la durée du séjour n’est pas inférieure à la borne extrême basse du GHS ou 1 sinon.

 

int nbjrea  Entier contenant le nombre de journées de réanimation, en suivant la définition donnée plus haut.

 

int nbacdia  Entier contenant le nombre d’actes de dialyse réalisée en hospitalisation (cf définition plus haut).

 

int nbac687  Entier contenant le nombre d’actes de radiothérapie menant dans le GHM 24Z05Z (cf définition plus haut).

 

int nbac688  Entier contenant le nombre d’actes de radiothérapie menant dans le GHM 24Z06Z (cf définition plus haut).

int nbac689  Entier contenant le nombre d’actes de radiothérapie menant dans le GHM 24Z07Z (cf définition plus haut).

int acprlvtorg       Entier utilisé comme booléen, contenant 0 en cas d’absence de d’actes de prélèvement d’organe, ou 1 sinon.

int pih_a      Entier utilisé comme booléen, contenant 0 en cas d’absence de code diagnostic associé Z75.80, 1 sinon.

int pih_b      Entier utilisé comme booléen, contenant 0 si le mode d’entrée et le mode de sortie est égal à 0, 1 sinon.

 

Pour les modalités de calcul de ces variables reportez-vous au chapitre :

Calcul des éléments permettant la valorisation


 

  1. Le type RSS_INFO

Cette structure contient des éléments utilisés pour le groupage

 

typedef struct {

            int nbdiag;

            char *listdiag;

      } DIAGLIST;

typedef struct {

            int nbac;

            char *listzac;

      } ACTLIST;

 

typedef struct {

     int agea;

      int agej;

      int dstot;

      DIAGLIST diaglist ;

      ACTLIST actlist;

}RSSI RSS_INFO;

 

int agea        Entier contenant l’âge en années utilisé par la fonction groupage

int agej        Entier contenant l’âge en jours utilisé par la fonction groupage

int dstot      Entier contenant la durée de séjour calculée par la fonction groupage

DIAGLIST diaglist Est une structure contenant :

-         le nombre de diagnostics différents avec élimination des doublons et réintégration des diagnostics en U,V,W,X,Y .

-         la liste de ces diagnostics avec en première position le diagnostic principal, puis en deuxième position le diagnostic relié, puis l’ensemble des diagnostics associés retenus pour le RSS

 

ACTLIST actlist  Est une structure contenant :

-         le nombre de zones d’actes différents avec élimination des doublons ( en fait cumul dans la zone occurrence) du RSS.

-         la liste des zones d’actes

La présentation de ces zones d’actes est identique à celle du RUM

 

 

 

Syntaxe de l’appel de la fonction grp()

 

cr=grp(grp_ent,&grp_res,&ghs_val,&rss_inf);

 

:

GRP_ENTREE grp_ent;

GRP_RESULTAT grp_res;

GHS_VALORISATION ghs_val;

RSS_INFO rss_inf;

 

Valeur en retour (code-retour)

 

La fonction grp() renvoie un entier égal à zéro si les contrôles n’ont rien détecté d’anormal. Dans le cas contraire, la valeur retournée est le numéro de l’erreur détectée.

 

Ce code-retour est également placé, sous forme d’une chaîne dans la structure grp_res.

 

Le fichier LIBERRFG.04A contient le dictionnaire de ces erreurs et de leur numéro.

 

Toute erreur dont la valeur est comprise entre 1 et 59 est irrémédiable, et ne permet pas d’obtenir le groupage du RSS. Les erreurs dont la valeur est comprise entre 60 et 99 ne sont pas graves en terme de groupage (par exemple : date système improbable). Se reporter au chapitre sur les contrôles pour plus d’informations.

 

Compte tenu de la numérotation particulière des erreurs (trois catégories) l’exploitation du code retour seul nécessite de connaître le résultat du « groupage » : 90Z03Z pour une erreur d’implémentation bloquante, 90Z00Z pour un contrôle bloquant, 90C01Z, 90Z01Z ou 90Z02Z pour une erreur  bloquante dans l’arbre décisionnel, tout autre groupe ou GHM pour un résultat correct (et dans ce cas, code-retour nul ou supérieur à 60).

 

 

 

 


Editeur : ATIH
Dernière mise à jour : 16/01/2004