Notes sur la lecture de la doc de Nestor 3 (2000). Objets pouvant faire l'objet de tests : DP : Le diagnostic principal DR : Le diagnostic relié DS : Les diagnostic associés significatifs DD : Les diagnostics associés documentaires DA : DR+DAS DG : DP+DR+DAS DT : DP+DR+DAS+DAD AC : Les actes CD : La CMD GH : Le GHM RI : Règle Intermédiaire (variable résultat d'une règle déjà testée) Certains critères supplémentaires peuvent être associés : Age Sexe Durée de séjour Mode entrée et mode de sortie URM Résumé séance Code retour fonction de groupage Age en jours Poids de naissance Les règles peuvent faire référence à quatre types de fichiers prédéfinis. CMA. Ensemble des CMA ("normales, sévères et/ou traumatiques) actes diagnostiques. (Actes "diagnostiques" classants du CdAM à dire d'expert) actes thérapeutiques. (Actes "thérapeutiques" classants du CdAM à dire d'expert) durée de séjour maximale associées à chaque GHM. (DS+1,5*écart type) Inactivation d'une règle : Mettre % devant le D de la ligne du début Mettre % devant le F de la ligne de fin Opérateurs : ET OU NON DANS La cible peut être, le diagnostic principal (DP) , le diagnostic relié (DR), les diagnostics associés significatifs (DS), Les diagnostics associés documentaires (DD), l'ensemble DR+DAS (DA), l'ensemble DP+DR+DAS (DG), tous les types de diagnostics DP+DR+DAS+DAD (DT), les actes (AC) , la CMD (CM), le GHM (GH) ou enfin le résultat d'une règle déjà testée (RI). L’argument référence est soit un code particulier soit un ensemble de codes. Il peut être déclaré de trois manières différentes; directement à l’intérieur d’une règle, dans un bloc de déclaration ou encore dans un fichier prédéfini. Exemples : DANS(DP,[Z511]) : « vrai » lorsqu’un résumé contient Z511 en DP DANS(DR,[B24+1]) : « vrai » lorsqu’un résumé contient en DR B24+1 DANS(DA,[C64]) : « vrai » lorsqu’un résumé contient en DR ou DAS : C64 DANS(DG,[C64]) : « vrai » lorsqu’un résumé contient en DP ou DR ou DAS : C64 DANS(DT,[Z511]) : « vrai » lorsqu’un résumé contient en DP ou DR ou DAS ou DAD : Z511 DANS(AC,[P035]) : « vrai » lorsqu’un résumé contient l’acte P035 DANS(CD,[14]) : « vrai » lorsque la CMD associée au résumé est 14 DANS(GH,[587]) :« vrai » lorsque le GHM associé au résumé est 587 Le nombre de codes de référence n’est pas limité, on peut écrire par exemple : DANS(DP,[Z511][Z949][A618]) on sélectionnera alors les résumés ayant pour DP l’un de ces trois codes. La référence peut n’impliquer qu’une partie du code, ceci permet d’utiliser la structure hiérarchique de la CIM. DANS(DP,[Z51]) fera porter la recherche sur tous les codes de la rubrique Z51. Il peut arriver qu’on souhaite faire référence à une suite de codes trop longue pour être écrite directement dans une règle, ou encore commune à plusieurs règles. On peut alors déclarer cette chaîne de référence dans un bloc. D_008_codes interdits [A49][A64][A86][A89][B19][B34][B49][B64][B89][B99][D759][D899][E349][E889][G959][G969] [H579][H939][I519][I99][J399][J989][K929][M259][M799][N399][N509][R69][T149][Z949] F_008_codes interdits DANS(DP,$D_008) recherchera les résumés pour lesquels le DP correspond à l’un des codes déclarés dans la chaîne D_008. Les références déclarées dans un bloc possèdent les mêmes propriétés que celles déclarées dans les règles. Attention : le numéro de la chaîne de référence doit être sur 3 caractères, unique et commencer dans les valeurs basses. Le nombre de chaînes est limité à 999 pour une même feuille de règles. III.3.3 Définition de l’argument référence dans un fichier externe III.3.3.1 Les fichiers externes prédéfinis On peut être amené à faire référence à des pans entiers de nomenclature qu’il serait fastidieux de recopier sous forme de blocs dans la feuille de règles. Il a donc été créé trois fichiers type : - l’ensemble des actes classants dits « thérapeutiques » du CdAM (CDAMTH) - l’ensemble des actes classants dits « diagnostiques » du CdAM (CDAMDG) - l’ensemble des codes de comorbidité de la Cim10 tous types confondus (CMA). (* les deux premiers à dire d'expert) On y fait référence en utilisant le caractère * suivi du nom déclaré dans le fichier param.fic DANS(DA,*CMA) recherchera l’ensemble des résumés ayant au moins une CMA en DA. DANS(AC,*CDAMTH) recherchera l’ensemble des résumés ayant au moins un acte dit «thérapeutique » Le fichier *GHM est associé à un mode de fonctionnement un peu différent. Il contient pour chaque GHM une durée de séjour égale à la DMS de la base nationale augmentée d'une fois et demie l'écart type. DANS(GH,*GHM) permet donc de repérer les séjours éventuellement « trop longs ». III.3.3.2 Les fichiers externes utilisateurs Dans la même logique que les fichiers externes prédéfinis, l'utilisateur peut créer à sa convenance jusqu'à cinq fichiers externes. Ces références s'utilisent suivant le même formalisme que les fichiers prédéfinis. Si, par exemple, on a défini un fichier contenant l'ensemble des codes de CMAS et que ce fichier est référencé dans Param.fic par CMAS1. Pour sélectionner l'ensemble des DR ayant un code de CMAS, il suffira d'écrire la règle suivante : DANS(DR,*CMAS1). Il en va de même pour les actes. Ces fichiers ne peuvent contenir que des codes de type Cim10 ou CdAM. Structure des fichiers : type texte à champ fixe, chaque code sur 8 caractères maximum, saut de ligne après chaque code. Exemple d'un début de fichier de CMAS.... A150 A151 A152 A153 Construction des fichiers. Le plus simple consiste à construire la liste des codes sur une feuille Excel. Les codes seront disposés en colonne. La largeur de la colonne sera réglée à 8. Il suffira d'enregistrer la feuille au format "texte MS/DOS" dans le répertoire contenant l'application Nestor. Déclaration du fichier dans param.fic. Deux types d'information sont à fournir au système; le nom du fichier ainsi que la référence qu'on va utiliser dans les règles. Le formalisme est le suivant : %Fichiers externes Fic_ext=1=CMA=cma.txt; Fic_ext=2=CDAMDG=cddiag.txt; Fic_ext=3=CDAMTH=cdther.txt; Il s'agit ici de la déclaration des fichiers prédéfinis standards (à ne pas modifier). - 1,2,3... constitue la représentation interne du fichier (maximum 8) - CDAMDG est la référence utilisée dans le feuille de règles exp. : DANS(AC,*CDAMDG) - cddiag.txt est le nom du fichier Pour déclarer le fichier de CMAS précédemment évoqué il suffit d'écrire à la suite : Fic_ext=4=CMAS1=cmas.txt; Plus généralement : Fic_ext=n==, n=4 à 8 III.3.4 Cas particulier du caractère joker « * » Le caractère « * » peut être utilisé pour remplacer tous les codes. Son utilité deviendra évidente avec la description des critères complémentaires de recherche. DANS(DP,[*]) recherchera tous les résumés ayant n’importe quel code en DP, donc renverra tous les résumés. DANS(DA,[*]) recherchera tous les résumés ayant n’importe quel code en DA, donc renverra tous les résumés ayant au moins un DA. III.3.5 Référence à une règle déjà testée Il est possible de donner à certaines règle un statut de variables dont le contenu pourra être utilisé dans une autre règle située plus bas dans la feuille de règles. Cette fonctionnalité peut être utile lorsqu'on souhaite par exemple travailler sur des URM particulières sans avoir à réécrire toutes les règles. L'argument cible est : RI. L'argument référence est le numéro de la règle dont on souhaite récupérer le résultat [numéro de règle sur 3 caractères]. Exemple : Soit la règle suivante qui sélectionnera tous les résumés produits par l'URM 120 D/010_URM120 DANS(DP[urm],[*,urm120]) F/ Si on souhaite repérer tous les DP C80 produits par cette URM particulière il suffira d'écrire une règle du type : D/020_DP : C80 ET(DANS(RI,[010]);DANS(DP,[C80]) F/ Où [010] représente la règle à laquelle on réfère. A noter : Il faut que la règle à laquelle on réfère ait été testée avant dans la feuille de règle (règle 020 > règle 010) Si on fait référence à plusieurs règles intermédiaires, le résultat sera conditionné par un OU sur chacune des RI. D/020_DP : C80 ET(DANS(RI,[010][011][012][013]);DANS(DP,[C80]) F/ le résumé sera sélectionné si le DP est C80 et un des résultats des règles 010,011,012,013 est vrai. On peut inactiver l'édition (Excel et Word) de la règle intermédiaire D/010_URM120 (et en général de toute règle) à l'aide de la commande NPE placée après le numéro de règle. D/010_NPE_URM120 DANS(DP[urm],[*,urm120]) F/ La règle sera testée, pourra fournir un résultat intermédiaire mais ne sera pas éditée ni dans sortie.txt. III.4 Les critères complémentaires de recherche III.4.1 Description des critères complémentaires On peut être amené pour une référence donnée à réduire le champ de la recherche à certains critères complémentaires comme par exemple la durée de séjour, le sexe, une URM particulière etc... Par exemple l’ensemble des DP avec un code de cancer et une durée de séjour inférieure à 1 jour ou encore l’ensemble des accouchements avec un âge inférieur à 18 ans ou supérieur à 45 etc... Les critères définis actuellement sont : Age : numérique ag+ = plus âgé que âge de référence ag- = moins âgé que âge de référence Sexe : alphanumérique 1 caractère sxe = sexe du patient égal au sexe de référence Durée de séjour : numérique ds+ = ds supérieure à la durée de séjour de référence ds- = ds inférieur à la référence Attention : la durée testée est différente selon qu'il s'agit d'un fichier de RSS ou de RSA : dans le premier il s’agit de la durée « service », dans le second, de la durée « établissement » . Dans cette version, le calcul de la durée de séjour est calé sur le mode de calcul ministériel à savoir : date de sortie - date d'entrée. Mode entrée et mode de sortie: alphanumérique 1 caractère mee = mode d’entrée patient égal au mode entrée de référence med = mode entrée patient différent du mode entrée de référence mse = mode de sortie patient égal au mode sortie de référence msd = mode sortie patient différent du mode sortie de référence URM : alphanumérique 1 à 4 caractères urm = URM du résumé égal à l’ URM de référence Résumé séance : numérique sea = Nombre de séance dans le résumé > nombre de séance référence (généralement 0) Code retour de la fonction de groupage : alphanumérique 2 caractères cre = Code retour dans le résumé égal au code retour de référence crd = Code retour dans le résumé <> code retour de référence (généralement 00) Age en jours : alphanumérique 3 caractères aj+ = âge en jours du résumé supérieur à la valeur de référence aj- = âge en jours du résumé inférieur à la valeur de référence Nb : le test n'est effectué que si l'âge en année est égal à 0 par convention, pour une naissance, l'âge en jour sera égal à 1 Poids de naissance : alphanumérique 4 caractères pn+ = poids de naissance supérieur à la valeur de référence pn- = poids de naissance inférieur à la valeur de référence III.4.2 Utilisation des critères complémentaires Définir le ou les critères que l'on souhaite mettre en œuvre DANS(DP[ag-,ag+],) Signifie que l'on va utiliser les critères âge inférieur et âge supérieur dans cette règle Associer à chaque référence les critères concernés et les valeurs autorisées DANS(,[O800,ag-18,ag+45]) au code O800 (accouchement normal par voie basse) seront associés les critères suivants : âge inférieur à 18 ans, âge supérieur à 45 ans. La règle complète étant : DANS(DP[ag-,ag+], [O800,ag-18,ag+45]) Soit tous les résumés ayant O800 en DP pour lesquels la patiente est agé moins de 18 ans ou de plus de 45 ans. Ces critères peuvent être utilisés dans : une référence au sein d’une règle (cf. exemple précédent). une chaîne de référence définie dans un bloc. D_001_césariennes [O82,ag-18,ag+45,ds+15,mse9][O842,ag-18,ag+45,ds+15,mse9] F_001_césariennes Aux codes O82 et O842 (accouchements par césarienne) de la chaîne de référence D_001 seront associés une fois pour toute les critères âge supérieur à 45 , âge inférieur à 18, durée de séjour supérieure à 15 et mode de sortie=9. On pourra alors définir une règle pour isoler les césariennes avec mode de sortie =9 DANS(DG[mse],$D_001) Ou encore les durées de séjour supérieures à 15 DANS(DG[ds+],$D_001) Il convient de remarquer que lorsqu’on utilise plusieurs critères complémentaires, la recherche s’effectue sur la présence de l’un OU l’autre des critères. Pour obtenir un ET, il faut utiliser deux recherches : Si on cherche toutes les césariennes chez les plus de 45 ans et mode de sortie=9, il faudra : ET(DANS(DG[ag+],$D_001);DANS(DG[mse],$D_001)) ... ou encore si l'on utilise pas de chaîne de référence ... ET(DANS(DG[ag+],[O82,ag+45][O842,ag+45]);DANS(DP[mse],[O82,mse9][O842,mse9])) référence joker « * » Lorsqu'on souhaite utiliser un critère complémentaire sans qu'il soit nécessairement associé à un code particulier, il peut être plus simple d'utiliser une référence "*". Tous les résumés produits par l'URM 120 DANS(DP[urm],[*,urm120]) Tous les résumés avec mode de sortie = 9 DANS(DP[mse],[*,mse9]) Toutes les hospitalisations de plus de 30 jours pour des patients de plus de 70 ans ET(DANS(DP[ds+],[*,ds+30]);DP([ag+],[*,ag+70])) Toutes les hospitalisations de plus de 30 jours pour des patients de moins de 70 ans ET(DANS(DP[ds+],[*,ds+30]);DP([ag-],[*,ag-70])) Toutes les hospitalisations pour chimiothérapie chez les plus de 70 ans avec décès au cours de l'hospitalisation. ET(DANS(DP[mse],[Z511,mse9]);DP([ag+],[*,ag+70])) etc... III.5 Caractéristiques du fichier de règles (ou feuille de règles) type ASCII tous les commentaires sont admis (et ignorés) pourvu qu’ils ne se trouvent pas à l’intérieur d’un bloc de données. un bloc de données est une suite d’informations pertinentes pour le système. Il débute par D_ ou D/ et se termine respectivement par F_ ou F/. Toute information à l’intérieur de ces blocs doit répondre à une syntaxe précise. Les indicateurs de début, de fin de bloc (D_ ,D/,F_F/) ainsi que la partie déclarative à l’intérieur d’un bloc doivent impérativement commencer sur le premier caractère de la ligne. Quelque soit le type d’information, une ligne ne doit pas excéder 255 caractères. La déclaration des blocs peut se faire dans n’importe quel ordre. Exemple (texte entre '<' et '>' ne doit pas être saisi ce sont juste des explications ici) : /*============CONTROLE - CODES R/Z ET ACTES THERAPEUTIQUES CLASSANTS======= /*Liste D_001_cxrz/exclus [Z302][Z310][Z312][Z318][Z40][Z41][Z42][Z43][Z44][Z45][Z46][Z47][Z490][Z52] [R02][R040] F_001_cxrz/exclus /*Régle D/001_CTRL_Zacte ET(ET(DANS(DP,[Z][R]);NON(DANS(DP,$D_0001)));DANS(AC,*CDAMTH)) F/001_CTRL_Zacte