Академический Документы
Профессиональный Документы
Культура Документы
1.Description
Les sous-analyses de type formules de calcul peuvent être utilisées pour atteindre différents
objectifs, allant du calcul mathématique simple aux tests conditionnels pour la détermination d'une
conclusion automatique ou l'ajout d'une repasse en fonction des antériorités du patient par
exemple.
Voici des exemples de compositions de formules :
• calcul mathématique (addition, multiplication, logarithme, puissance, …)
• fonctions mathématiques et logiques (inférieur à, minimum entre 2 nombres, …)
• tests conditionnels (si … alors … sinon ...)
• opérations sur les chaînes de caractères (présence d'un mot, passage en majuscule, …)
• opérations sur les dates (comparaison de dates, nombre de jours entre 2 dates, …)
• concaténation de textes codifiés ou de balises RTF
2.Fonctionnement
2.1. Composantes
Les composantes des formules sont tous les éléments que KaliSil met à disposition concernant
l'analyse, la demande ou le patient. Voici tous les éléments utilisables :
• Codes de sous-analyses : Tous les codes des sous-analyses présentes dans la demande
peuvent être utilisés. Attention : le résultat de la sous-analyse doit être saisi pour que la
formule puisse se calculer. Dans le cas d'une sous-analyse optionnelle, celle-ci doit être
présente dans la demande pour que la formule se calcule. Exemple :
• Une formule contenant simplement "NA[1]" va retranscrire le résultat de NA[1]
(sodium) dès qu'il sera saisi, sans modification.
• Balises RTF : Toutes les balises RTF disponibles dans la liste des codes d'impressions
sont utilisables dans les formules. Exemples :
• Une formule qui contient "[[anaRes(NA[1])]] va retranscrire le résultat de NA[1]
(sodium) dès qu'il sera saisi, sans modification.
• Une formule qui contient "[[demDate]]" va afficher la date de la demande.
• Textes codifiés : Tous les textes codifiés de KaliSil peuvent être utilisés avec la fonction
txt(). Exemple :
• Une formule qui contient "txt(POS)" va retranscrire la valeur texte du texte codifié
"POS", qui est dans notre cas "Positif".
• Codes spéciaux : Plusieurs codes spéciaux ont été créés spécialement pour les formules.
En voici la liste complète :
• [[M]] = 1 si le patient est un homme, 0 si c'est une femme
• [[F]] = 1 si la patiente est une femme, 0 si c'est un homme
• [[age]] = l'âge en années du patient (exemple : "10")
• [[ageMois]] = l'âge au format numérique avec virgule (exemple : "10,3")
• [[ageTexte]] = l'âge au format textuel (exemple : "2 ans et 1 mois")
• [[site]] = la référence du site de la demande (exemple : "B")
Il est aussi possible d'utiliser la balise [rl] pour sauter une ligne dans un résultat de type texte.
Exemple : la formule "Positif."+[rl]+"Faible." donne :
Positif.
Faible.
2.4. Opérateurs
Les opérateurs sont les opérations logiques et mathématiques possibles sur les éléments d'une
formule pour atteindre le résultat souhaité. Voici la liste de tous les opérateurs possibles, en
supposant que nous sommes dans la configuration suivante :
• Nous sommes dans une demande datée du 20-06-2011, les résultats utilisés sont les
suivants :
• Sodium NA[1] = 140 (la dernière antériorité date de 70 jours)
• Potassium K[1] = 4,2
• Résultat optionnel fictif K[1.1] = 3 (présent dans la demande)
• Résultat optionnel fictif K[1.2] (n'est pas dans la demande)
• Troponine TROPO[1] = <0,04
• Aspect du sérum ASPS[1] = "Limpide"
• Textes codifiés existant dans KaliSil :
• RAR = "Rares"
• GER = "germes"
Fonctions mathématiques
min(x,y) Minimum entre x et y min(NA[1],100) 100
max(x,y) Maximum entre x et y max(NA[1],100) 140
sqrt(x) Racine carrée de x sqrt(NA[1] 11.83
log(x) Logarithme népérien de x log(NA[1]) 4.94
log10(x) Logarithme en base 10 de x log10(NA[1]) 2.14
abs(x) Valeur absolue de x abs(-5) 5
ceil(x) Valeur entière supérieure de x ceil(K[1]) 5
floor(x) Valeur entière inférieure de x floor(K[1]) 4
pow(x,y) x à la puissance y pow(NA[1],2) 19600
exp(x) Exponentielle de x exp(K[1]) 66.68
Exemple pour tester la présence du terme "positif" dans un résultat texte CBU[1] :
((presence(CBU[1],"positif"))?("Présence de positif"):("Absence de positif"))
Exemple : Si le résultat du sodium NA[1] est supérieur à 200, écrire "Sodium élevé" sinon écrire
"Sodium normal", la formule est la suivante :
((sup(NA[1],200))?("Sodium élevé"):("Sodium normal"))
Exemple : au lieu d'écrire : ((TEST1)?(SI VRAI 1):( ((TEST2)?(SI VRAI 2):(SI FAUX)) ))
il vaut mieux écrire : ((TEST1)?(SI VRAI 1):("")) + ((!TEST1 && TEST2)?(SI VRAI 2):(SI
FAUX))
Dans ce cas là, il faut penser à inverser le TEST1 en le faisant précéder de "!" dans la 2e
condition pour éviter un conflit de résultat.
3.Exemples pratiques
3.1. Formules de la numération
La numération contient plusieurs formules numériques simples. Dans notre exemple, voici les
sous-analyses utilisées :
• Leucocytes : NF[1]
• Polynucléaires neutrophiles en % : NF[10]
• Polynucléaires éosinophiles en % : NF[12]
• Polynucléaires basophiles en % : NF[14]
• Lymphocytes en % : NF[16]
• Monocytes % : NF[18]
Pour calculer les polynucléaires neutrophiles en valeur absolue, il faut disposer du résultat des
Leucocytes et des Polynucléaires neutrophiles en % dans la demande, tant qu'ils ne sont pas
saisis le calcul ne se fera pas. La formule est la suivante :
NF[1]*NF[10]/100
Pour calculer le contrôle 100% des différentes valeurs en %, la formule est la suivante :
NF[10]+NF[12]+NF[14]+NF[16]+NF[18]
Le calcul peut être complexifié en ajoutant les cellules optionnelles pas forcément présentes :
• Myéloblastes en % : NF[20.1] (présent dans la demande)
• Plasmocytes en % : NF[20.2] (présent dans la demande)
• Tricholeucocytes en % : NF[20.3] (absent de la demande)
NF[10]+NF[12]+NF[14]+NF[16]+NF[18]+opt(NF[20.1])+opt(NF[20.2])+opt(NF[20.3])
La fonction opt() permet à la fois de tester la présence d'une sous-analyse optionnelle pour
renvoyer sa valeur, et de renvoyer 0 sinon, ce qui ne fausse pas le calcul en cas d'absence.
On peut aussi utiliser la fonction somme() qui additionne tous les paramètres entre eux :
somme(NF[10],NF[12],NF[14],NF[16],NF[18],opt(NF[20.1]),opt(NF[20.2]),opt(NF[20.3]))
• MDRD (Levey et al., A more accurate method to estimate glomerular filtration rate from
serum creatinine: a new prediction equation. Modification of Diet in Renal Disease Study
Group, 1999, Ann Intern Med, 130(6), pp 461-470), il faut disposer des éléments
suivants (ml/min/1,73m²):
• Créatinine : CR[1] en µmol/l (si en mg/l, dans la formule remplacer le facteur 0,0113
par 0,1)
• Age du patient : donc date de naissance dans la demande
• Sexe du patient dans la demande
En cas de mesure standardisée de la créatinine :
175*pow((CR[1]*0.0113),-1.154)*pow([[age]],-0.203)*([[F]]*0.742+[[M]]*1)
En cas de mesure non standardisée de la créatinine :
186*pow((CR[1]*0.0113),-1.154)*pow([[age]],-0.203)*([[F]]*0.742+[[M]]*1)
Pour les populations d'origine Africaine, il faut appliquer un facteur de correction
multiplicateur de 1.21.
• CKD-EPI (Levey et al. A new equation to estimate glomerular filtration rate, Ann Intern
Med., 2009, 150(9), pp 604-612), il faut disposer des éléments suivants pour (résultat en
ml/min/1.73m²
• Créatinine : CR[1] en µmol/l (si en mg/l, dans la formule remplacer le facteur 0,0113
par 0,1)
• Age du patient : donc date de naissance dans la demande
• Sexe du patient dans la demande
Ce calcul nécessite une mesure standardisée de la créatinine :
141*pow((min(((0.0113*CR[1]/([[M]]*0.9+[[F]]*0.7))),1)),([[M]]*-0.411+
[[F]]*-0.329))*pow((max(((0.0113*CR[1]/([[M]]*0.9+[[F]]*0.7))),1)),-
1.209)*pow(0.993,[[age]])*([[M]]*1+[[F]]*1.018)
Pour les populations d'origine Africaine, il faut appliquer un facteur de correction
multiplicateur de 1.159.
Pour appliquer les facteurs de correction ethnique, il suffit de créer une deuxième sous-
analyse en ajoutant le facteur à la formule existante. Par exemple pour MDRD :
1.21*175*pow((CR[1]*0.0113),-1.154)*pow([[age]],-0.203)*([[F]]*0.742+[[M]]*1)
Il est aussi possible d'intégrer directement une sous-analyse à saisir à l'accueil (CR[2],
origine africaine, avec réponse O/N. Exemple pour MDRD :
((CR[2]=="O")?(1.21):(1))*175*pow((CR[1]*0.0113),-1.154)*pow([[age]],-
0.203)*([[F]]*0.742+[[M]]*1)
Des calculateurs en ligne sur internet sont disponibles pour vérifier les formules après
paramétrage dans KaliSil (ex. : http://www.soc-nephrologie.org/eservice/calcul/eDFG.htm).
Il est possible d'utiliser les formules conditionnelles pour retourner un résultat égal à 1 ou 0 selon
le test effectué, pour ensuite lancer une conséquence sur résultat si la formule est égale à 1.
Exemple : Si le résultat actuel des plaquettes PLA[1] est inférieur à 100 et que la dernière
antériorité des plaquettes de ce patient est supérieure à 150, alors retourner 1 sinon 0. Nous allons
utiliser la balise RTF [[anaAnt1Res(X)]] pour chercher la dernière antériorité du patient.
Dans les conséquences de la sous-analyse de formule, on met la ligne : "si égal à 1 alors repasse
de l'analyse plaquettes", ainsi on lance une repasse automatique si un delta trop important est
détecté entre la valeur actuelle des plaquettes et son antériorité.
Dans les conséquences de la sous-analyse de formule, on met la ligne : "si égal à 1 alors ajout de
l'analyse lames", ainsi on ajoute la lame uniquement si le patient a des lymphocytes élevés et qu'il
n'a pas fait de numération depuis 2 mois.
• IgG TOXO[2]
• IgM TOXO[3]
• Conclusion manuelle texte si nécessaire : TOXO[4.1] optionnelle à ajouter si besoin
La formule va dans un premier temps tester la présence de la conclusion manuelle TOXO[4.1] et si
elle est dans la demande, afficher sa valeur. Sinon, si on est dans le cadre d'une grossesse et que
les IgG sont inférieurs à 0,5, et que les IgM sont inférieurs à 0,8 : on affiche la conclusion
automatique du texte codifié "CCLNEG".
Il est fortement conseillé d'utiliser les fonctions inf, sup, infEgal et supEgal à la place des
symboles < > <= >= car ces fonctions testent en même temps la présence de la sous-
analyse et du résultat saisi en plus de la condition.
Ainsi, pour toute NF, la cotation 1104 s'applique. En cas d'hémopathie, il est possible de modifier la
première sous-analyse en mettant "NFdec" ce qui appliquera la cotation 1105 (qui écrasera le
1104 de la formule via la règle de nomenclature). A partir de là, pour tous les dossiers suivants, la
formule de calcul mettra "NFsuivi" avec la cotation 1106 (qui écrasera le 1104 de la sous-analyse
texte).
• resultat(RAI[1],"positive", IDEN[1])
La formule va rechercher la dernière demande où le patient a obtenu le résultat « positive »
pour l'analyse « RAI[1] ». Si une occurrence de ce résultat est trouvé, la formule retourne le
résultat de l'analyse « IDEN[1] ». Sinon, la formule retourne « faux ».