Une secrétaire d'accueil passe sa journée dans un seul écran : celui de son logiciel métier. L'agenda, les dossiers, les comptes rendus — tout est là. Lui demander d'ouvrir une seconde application pour appeler ses patients, c'est lui demander de faire des allers-retours toute la journée.
La réponse habituelle, c'est l'intégration : on contacte l'éditeur du logiciel métier, on spécifie, on développe des deux côtés, on teste, on déploie. Douze à dix-huit mois plus tard, la fonctionnalité existe — pour ce logiciel, dans cette version. Nous avons voulu savoir si l'on pouvait obtenir le même résultat autrement.
Le point commun de tous les logiciels métier modernes
Ils tournent dans un navigateur. RIS, agenda, portail de gestion : le SaaS a gagné, et l'écran de travail de la secrétaire est une page web. C'est un détail d'architecture, mais il change tout : une page web est un territoire où une extension peut intervenir, sans que l'éditeur n'ait rien à faire ni même à savoir.
C'est le pari de l'extension Chrome Apiborne Cockpit. Plutôt que de demander à chaque éditeur d'ajouter un bouton « appeler », nous ajoutons ce bouton nous-mêmes, par-dessus sa page, dans le navigateur de l'utilisateur. Le logiciel métier n'est pas modifié. Il n'est même pas consulté.
Le renversement
L'intégration classique demande un accord entre deux éditeurs. Une surcouche navigateur ne demande l'accord que d'une seule personne : celle qui installe l'extension sur son poste.
La languette : trois chiffres, en bas de l'écran
C'est la partie visible de l'extension, et volontairement la plus discrète. En bas de la page du logiciel métier, une petite languette affiche le logo Apiborne, le mot « Cockpit », et jusqu'à trois pastilles chiffrées. Rien d'autre. Elle est repliée par défaut.
Ces pastilles ne sont pas un compteur global d'activité. Chacune correspond à une file d'attente différente, parce qu'elles appellent des gestes différents :
Patients arrivés
Ils se sont accueillis à la borne et attendent d'être appelés. Geste attendu : appeler le prochain.
Attente de sortie
Examen terminé, le patient attend un document ou un règlement. Souvent à zéro — la pastille disparaît alors.
Demandes de guichet
Un patient a sollicité le guichet depuis la borne (résultat, paiement, question). Geste attendu : traiter la demande.
Cette séparation est un choix assumé. Agréger ces chiffres en un seul badge aurait été plus simple à lire de loin, mais aurait fait perdre l'information utile : appeler un patient qui attend et traiter une demande de guichet ne sont pas le même travail. Une pastille à zéro s'efface, et chaque bloc peut être décoché : une secrétaire qui ne gère pas les sorties ne voit jamais la pastille correspondante.
Un clic déplie la languette en une barre de 44 pixels : l'appel en cours, un bouton « Appeler le prochain patient », l'heure du dernier rafraîchissement et l'accès aux blocs détaillés. La barre pousse alors le contenu de la page vers le haut au lieu de le recouvrir — et restaure exactement la mise en page d'origine quand on la replie.
Un état mémorisé site par site
Repliée ou dépliée, la barre retient son état pour chaque site visité et se synchronise entre les onglets d'un même logiciel. Dépliée sur l'agenda, invisible ailleurs : c'est l'utilisateur qui décide.
Reconnaître les patients dans une page qu'on ne connaît pas
C'est la partie la plus intéressante, et la moins évidente. L'extension surligne dans l'agenda du logiciel métier les patients arrivés, accueillis ou en attente de sortie — et propose d'appeler celui qu'on survole. Pour cela, il faut les retrouver dans une page dont on ignore tout : sa structure, ses classes, sa façon d'afficher un rendez-vous.
La méthode retenue ne s'appuie sur aucun sélecteur propre à un éditeur. Elle part du seul élément stable : le nom du patient, que l'extension connaît déjà puisqu'elle lit la file d'attente côté serveur.
Chercher le texte, pas la structure
Le nom est normalisé (accents, ponctuation, espaces) puis cherché dans les deux ordres possibles, « NOM Prénom » et « Prénom NOM ». Trois stratégies se complètent : les textes de la page, les champs de formulaire, et les éléments dont le nom est éclaté sur plusieurs fragments.
Deviner la carte par la géométrie
Une fois le nom trouvé, il faut identifier le bloc qui représente le rendez-vous. L'extension remonte la page et retient l'élément dont les voisins ont une taille comparable — la signature visuelle d'une liste ou d'un planning. Un signal générique, qui évite d'écrire un adaptateur par logiciel.
Survivre aux rafraîchissements
Un agenda web se redessine sans cesse. Les repères sont reposés à chaque changement de la page, et le menu d'appel se ré-ancre sur le bon rendez-vous — même quand un patient en a plusieurs dans la journée.
Ce que cela implique pour un autre logiciel
Rien à configurer. La détection ne connaît que des noms de patients et cherche du texte : elle fonctionne sur un agenda qu'elle n'a jamais vu, sans qu'on lui décrive sa structure.
Intervenir dans la page de quelqu'un d'autre sans rien casser
C'est la contrainte qui structure tout le reste. Une extension qui déforme la mise en page d'un RIS, ou qui ralentit un agenda chargé, est une extension qu'on désinstalle le jour même. Quatre principes en découlent.
Styles hermétiques
Toute l'interface vit dans un conteneur isolé du reste de la page. Nos styles ne peuvent pas fuir vers le logiciel métier, et les siens ne peuvent pas déformer notre barre.
Modifications réversibles
Avant de surligner un rendez-vous, l'extension mémorise les styles d'origine de l'élément et les restaure intégralement dès que le repère disparaît.
Discrétion sur les performances
Aucune interrogation réseau depuis la page : les données arrivent par un canal partagé, rafraîchi en arrière-plan. Les re-scans sont temporisés pour ne pas suivre chaque micro-changement de l'agenda.
Silencieuse par défaut
Tant qu'aucune adresse n'a été autorisée par l'utilisateur, l'extension n'ajoute strictement rien à la page. Pas de barre, pas de repères, pas même un élément invisible.
Le jeton de session ne descend jamais dans la page
C'est une règle de conception, pas un réglage. La partie de l'extension qui travaille dans la page du logiciel métier ne détient aucun identifiant de connexion : elle délègue chaque action à un composant isolé du navigateur. Une page hôte compromise n'y trouverait rien à prendre.
Ce qu'il faut vraiment pour la brancher ailleurs
La question mérite une réponse honnête, parce que « ça marche partout » est rarement vrai.
Tout ce qui touche au navigateur est déjà générique : l'isolation des styles, la détection des patients par leur nom, l'identification des cartes par la géométrie, le surlignage réversible, la languette et ses compteurs, les notifications, la mémorisation par site. Cette couche ne contient aucune hypothèse sur le logiciel affiché — et c'est de loin la majeure partie du travail.
Trois points seulement sont à adapter, et ils sont tous du côté serveur, pas du côté page :
Autoriser le domaine
Déclarer l'adresse du nouveau logiciel dans l'extension, pour qu'elle ait le droit de dialoguer avec son serveur.
Écrire un adaptateur de données
Savoir lire les rendez-vous du jour et déclencher un appel. Le mécanisme existe déjà : l'extension sait basculer entre plusieurs sources selon la licence, sans changer de version.
Faire correspondre trois statuts
Arrivé, accueilli, attente de sortie. Ce sont les trois seuls états dont l'extension a besoin pour colorer les repères et alimenter les pastilles.
Cette bascule entre sources de données n'est pas théorique : elle est déjà en service. Le Cockpit fonctionne aussi bien avec un RIS historique qu'avec le serveur Apiborne, et c'est la licence du centre qui détermine lequel des deux il interroge.
Les limites, parce qu'il y en a
Une surcouche navigateur ne remplace pas une intégration native, et il serait malhonnête de prétendre le contraire.
- Elle dépend du navigateur. Un logiciel métier installé en client lourd sort du périmètre : il n'y a pas de page dans laquelle intervenir.
- Elle lit ce qui est affiché. Si un agenda n'affiche pas le nom du patient — colonnes masquées, vue condensée — il n'y a rien à reconnaître. Le Cockpit reste utilisable, mais depuis son propre panneau.
- Elle suit les évolutions du logiciel hôte. Une refonte de l'agenda peut demander un ajustement. C'est le prix de l'absence de contrat entre éditeurs — et la raison pour laquelle la détection s'appuie sur des signaux génériques plutôt que sur des sélecteurs fragiles.
En contrepartie, le déploiement se compte en minutes. Installer l'extension, se connecter, autoriser l'adresse du logiciel métier : le poste est opérationnel. Aucun projet, aucun comité, aucune version à attendre.
L'interopérabilité par le poste de travail
L'interopérabilité en santé se pense d'habitude entre serveurs : des messages, des formats, des accords. C'est indispensable pour les données médicales. Mais pour un geste de terrain — appeler le patient suivant sans quitter son agenda — le point de rencontre le plus efficace n'est pas le serveur. C'est l'écran de la personne qui travaille.
C'est là que l'extension opère : non pas en reliant deux systèmes, mais en réunissant deux outils à l'endroit exact où quelqu'un se sert des deux en même temps. Et ce qui rend l'approche durable, c'est qu'elle ne demande rien à personne — ni à l'éditeur du logiciel métier, ni à sa feuille de route.
Votre logiciel métier tourne dans un navigateur ?
Nous pouvons regarder ensemble ce que donnerait l'extension Cockpit sur vos écrans, et ce qu'il faudrait pour la brancher sur votre source de rendez-vous.


