Cette page décrit le comportement complet de l'Admission Bot dans le SIL : l'ordre exact des actions lors de la saisie d'une demande, toutes les fenêtres (modales) qu'il gère automatiquement, et ce qui se passe en cas d'erreur. Elle est établie à partir du code du bot et vérifiée contre la page de saisie réelle du SIL. Le bot se mettant à jour automatiquement, elle décrit la version stable en cours.
Cycle de fonctionnement
Le bot est connecté en permanence à Querco. Dès qu'une admission est disponible, il la récupère et la traite ; sinon il vérifie toutes les 5 secondes s'il y a du travail. Chaque admission suit le même cycle :
Ouverture d'un nouvel onglet dans le navigateur du bot.
Connexion au SIL et sélection du laboratoire.
Saisie complète de la demande (détaillée ci-dessous).
Capture d'écran pleine page (envoyée sur le stockage Querco, en succès comme en échec).
Envoi du résultat à Querco, puis fermeture de l'onglet.
Le bot ne traite qu'une admission à la fois.
Étape 1 : connexion (LOGIN)
Le bot ouvre l'URL du SIL et saisit l'identifiant et le mot de passe du compte robot.
La fenêtre d'accueil qui s'ouvre dans un nouvel onglet après la connexion est refermée aussitôt.
Dès la connexion, toute modale « Notification » est automatiquement fermée par un clic sur « Ok », et ce pendant toute la session.
Sélection du laboratoire (
LABORATORY_SELECTION) : le bot sélectionne le site correspondant au code laboratoire de la demande, puis recharge la page.
Étape 2 : saisie de la demande
Le bot ouvre l'écran de saisie des demandes (module SIL). Pendant toute cette étape, les modales listées dans le tableau plus bas sont gérées automatiquement dès leur apparition, et toute fenêtre de scan manuel qui s'ouvrirait en popup est immédiatement refermée.
Identification du patient
Si la demande porte un numéro externe, il est saisi dans le champ réservation.
Le bot saisit la date de naissance, le nom de naissance et le premier prénom de naissance, ce qui déclenche la recherche de patients existants.
Deux cas :
Patient existant (
PATIENT_SELECTION) : le patient est retrouvé par son numéro permanent dans la liste de suggestions. Le bot exige exactement un résultat correspondant ; s'il y en a zéro ou plusieurs, la saisie s'arrête en erreur. Il sélectionne le patient puis ouvre la fiche adresse pour mise à jour.Nouveau patient (
PATIENT_CREATION) : le bot remplit prénom et civilité (M. ou Mme selon le sexe), rang gémellaire 1, code bénéficiaire 0. En mode production, si la pièce d'identité a été vérifiée côté Querco, le justificatif d'identité correspondant est sélectionné. Hors production, le patient est créé avec l'attribut d'identité « FICE » et l'information « gratuit ».
Lieu de naissance : si le code INSEE affiché diffère de celui de la demande, le bot le ressaisit et choisit la commune dans la liste de suggestions.
Les champs suivants ne sont modifiés que s'ils diffèrent de la valeur transmise par Querco : nom d'usage, téléphone, email, adresse, code postal, ville, numéro de sécurité sociale (INS).
Mutuelle (MUTUELLE_SELECTION)
Si la demande comporte un code mutuelle :
Si une mutuelle différente est déjà présente sur le dossier, elle est supprimée, puis la bonne mutuelle est recherchée par son code. Là aussi, exactement un résultat est exigé, sinon erreur.
Le numéro d'adhérent et les dates de droits sont mis à jour s'ils diffèrent.
Les options FAC AMC et TP AMC sont activées si elles ne le sont pas déjà.
Appel ADRi (ADRI_CALL)
Le bot clique sur « Appeler ADRi ». Si un code porteur CPS est configuré sur le poste, il le saisit et lance la lecture de la carte.
Si ADRi répond (délai maximum 30 secondes), le bot tente de récupérer les différences, attend la confirmation « Données ADRi intégrées à la demande », puis ferme la fenêtre (« Fermer » ou « Corriger »).
Si ADRi ne répond pas ou n'est pas disponible, la fenêtre est simplement refermée et la saisie continue sans ADRi.
Si le SIL signale ensuite un doublon patient, le bot insère le code examen
FUSION_PATIENTpour déclencher la fusion.
Ordonnances et analyses
Date d'ordonnance (
PRESCRIPTION_DATE_INSERTION) : saisie de la date de la première ordonnance, sauf si la demande est un renouvellement.Renouvellements (
RENEWAL_PRESCRIPTION_INSERTION) : pour chaque ordonnance de type renouvellement, le bot cherche dans la liste des renouvellements proposés par le SIL celui dont les analyses correspondent exactement à celles de l'ordonnance. S'il ne le trouve pas, la saisie s'arrête en erreur. Sinon il déplie la liste et ajoute les analyses du renouvellement.Analyses (
PRESCRIPTION_ANALYSIS_INSERTION) : chaque code d'analyse est saisi dans le champ d'ajout puis validé par Entrée. Un code déjà présent dans la liste (ou dont toutes les analyses liées sont déjà présentes) est ignoré. Le message « L'analyse est déjà présente dans la liste des analyses saisies » est considéré comme un succès.ALD (
PRESCRIPTION_ALD_INSERTION) : si des actes sont en ALD, le bot sélectionne les analyses concernées (clic + Ctrl-clic), fait un clic droit et applique la facturation « E4 ».Ordonnances renouvelables (
PRESCRIPTION_RENEWAL_INSERTION) : les actes à renouveler sont regroupés par nombre de renouvellements et date limite. Pour chaque groupe : sélection des analyses, clic droit → « Ordonnance » → « Nouvelle ordonnance », saisie du nombre et de la date limite, puis « Ajouter ».
Intervenants
Médecin prescripteur (
PRESCRIPTION_DOCTOR_INSERTION) : le code du médecin est saisi et validé par Entrée ; le bot vérifie que le code apparaît bien dans la liste des intervenants.Médecins additionnels (
ADDITIONAL_DOCTOR_INSERTION) : même mécanisme pour chaque médecin supplémentaire.Correspondants (
CORRESPONDANT_INSERTION) : même mécanisme, en attendant la réponse du SIL avant de valider chaque code.Si la demande comporte des correspondants, le bot renseigne aussi, quand ils sont fournis : l'IPP (numéro de patient externe,
IPP_INSERTION), le numéro de demande externe (ADMISSION_ID_INSERTION) et le numéro de chambre (ROOM_INSERTION).
Prélèvement et commentaires
Préleveur (
SAMPLER_INSERTION) : si un code préleveur est fourni, il est saisi dans chaque champ préleveur de la session de prélèvement. S'il n'y a pas de session de prélèvement sur la demande, le bot continue avec un simple avertissement dans les logs. Si le code n'est pas accepté par le SIL, la saisie s'arrête en erreur.Date et heure de prélèvement (
SAMPLING_DATE_INSERTION) : renseignées dans les champs visibles, au fuseau horaire Europe/Paris.Commentaires : si la demande en contient, le bot ouvre la section commentaires, ajoute un commentaire par entrée, puis referme la fenêtre.
Validation de la demande
Le bot clique sur « Enregistrer ». Deux modales peuvent alors apparaître et sont validées automatiquement :
« Récupération de l'identité INS » : le bot répond « Oui », ou sélectionne « Base patient » puis « Valider » selon la variante affichée.
« Des erreurs sont présentes » : le bot clique « Valider » pour forcer la création.
Une fois la demande créée dans le SIL, l'étape ADMISSION_CREATED est atteinte : à partir de ce point, la demande existe même si la suite échoue.
Étape 3 : questions du dossier (QUESTIONS_ANSWERING)
Si le SIL affiche l'écran de saisie des résultats/questions après la création (détection sous 5 secondes), le bot y répond ; sinon il passe directement aux pièces jointes.
Le numéro de demande est relevé sur cet écran.
Deux réponses RGPD sont ajoutées automatiquement : le consentement au traitement (toujours « OUI2 ») et le consentement marketing (« OUI2 » ou « NON2 » selon le choix du patient dans Querco).
Chaque question est traitée selon son type :
Date : saisie de la valeur au format jour-mois-année, ou « n » si l'information est non communiquée.
Heure : le bot écrit l'heure d'un seul coup au format HH:MM, sans la taper caractère par caractère : le champ heure du SIL reformate la valeur à chaque frappe et déformait la saisie (« 18:00 » devenait « 01:80 », refusé par le SIL). Le bot relit ensuite le champ ; si la valeur ne correspond pas à l'heure attendue, il vide le champ et la question est remontée à Querco comme non insérée, plutôt que de laisser une heure invalide bloquer la suite de la saisie. « n » est saisi si l'information est non communiquée.
Choix multiple : le bot ouvre la liste, cherche l'option correspondant au code de la réponse (en parcourant les pages suivantes si besoin) ; s'il ne la trouve pas, il saisit la réponse au clavier et valide par Entrée.
Texte libre : saisie directe.
Les questions sont traitées en boucle : celles qui ne sont pas encore affichées sont retentées tant que la passe précédente a progressé. Les questions impossibles à saisir sont remontées à Querco comme non insérées (la demande n'est pas bloquée pour autant).
Le bot valide l'écran des questions.
Étape 4 : pièces jointes (FILES_INSERTION)
Pour chaque ordonnance (type « Ordonnance ») et chaque document de la demande :
Le bot ouvre l'écran d'ajout de scan de pièce jointe de la demande.
Il sélectionne le type de document correspondant au code transmis par Querco.
Il télécharge le fichier depuis Querco et le dépose dans le SIL.
Il attend la confirmation « Fichier ajouté avec succès en tant que scan de la demande » avant de passer au suivant.
Quand tout est terminé, l'étape ADMISSION_COMPLETED est atteinte.
Récapitulatif des modales gérées automatiquement
Message affiché par le SIL | Réaction du bot | Moment |
|---|---|---|
« Notification » | Clique « Ok » | Toute la session |
« Voulez-vous la passer en gratuit? » | Clique « Non » | Pendant la saisie |
« Les soins sont ils conformes au protocole de soin Affection Longue Durée (ALD) ? » | Clique « Non » | Pendant la saisie |
« Commentaire important du patient » | Clique « Ok » | Pendant la saisie |
« Forcer l'ALD ? » | Clique « Oui » | Pendant la saisie |
« Un prélèvement de même type a déjà été fait pour le même patient au même moment, passer le prélèvement en gratuit ? » | Clique « Non » | Pendant la saisie |
« Attention la détermination de groupe sanguin sélectionnée date d'avant le délai maximum entre 2 détermination […] Voulez-vous tout de même l'utiliser comme détermination liée ? » | Clique « Non » | Pendant la saisie |
« Un compte myKali existe déjà pour un autre patient avec cette adresse e-mail, si l'adresse n'est pas changée, un compte familial sera activé. » | Clique « Valider » (le compte familial est activé) | Pendant la saisie |
« Données ADRi intégrées à la demande » | Attend la confirmation puis ferme (« Fermer » / « Corriger ») | Appel ADRi |
« Récupération de l'identité INS » | Clique « Oui », ou « Base patient » puis « Valider » | À la validation |
« Des erreurs sont présentes » | Clique « Valider » | À la validation |
« L'analyse est déjà présente dans la liste des analyses saisies » | Considéré comme un succès, la saisie continue | Ajout d'analyses |
Popup de scan manuel | Fermée immédiatement | Toute la saisie |
Les modales de saisie sont gérées de façon réactive : dès qu'elles apparaissent, le bot clique le bouton attendu, même si plusieurs modales s'empilent (il traite alors la plus récente en premier).
En cas d'erreur
Toute erreur interrompt immédiatement la saisie de l'admission en cours ; le bot ne tente pas de la reprendre lui-même.
Une capture d'écran pleine page est prise au moment de l'erreur (comme en cas de succès) et envoyée sur le stockage Querco : c'est le premier réflexe pour diagnostiquer.
Le résultat renvoyé à Querco contient : la liste des étapes franchies (les codes
LOGIN,PATIENT_SELECTION, etc. ci-dessus), le détail des éléments insérés ou non (patient, mutuelle, actes, médecins, questions, fichiers…), le numéro de demande s'il a été obtenu, la durée du traitement et le message d'erreur.Les erreurs sont également remontées automatiquement à l'équipe Querco (Sentry, logs CloudWatch).
L'onglet du navigateur est refermé après chaque admission, en succès comme en échec.
Causes d'arrêt volontaires les plus fréquentes : patient introuvable ou ambigu dans les suggestions, mutuelle introuvable ou ambiguë, renouvellement proposé par le SIL ne correspondant pas aux analyses attendues, code préleveur refusé.
Paramètres qui modifient le comportement
Paramètre | Effet |
|---|---|
Production mode | En production : justificatif d'identité renseigné si la pièce est vérifiée. Hors production : patient créé en « FICE » avec l'information « gratuit ». |
CPS_CARD_CODE | Si renseigné, le code porteur CPS est saisi automatiquement lors de l'appel ADRi. |
Headless mode | Le navigateur du bot est invisible (recommandé en production). |
Browser timeout | Délai d'attente maximum de chaque action dans le SIL (30 secondes par défaut). |