Dr. Alain April
Professeur, ÉTS
David Lauzon
Étudiant à la maitrise, ÉTS
Dr. E. Mac Namara
Chief DiagnosCc Medicine, JGH
« Un tableau de bord médical en temps-‐réel à moindre coût »
12 novembre 2013 @ Salon Business Intelligence, Montréal
Plan
• Étudier à l’ÉTS
• Contexte et objecCfs
• Client et processus d’affaire
• SoluCon proposée et décisions
• Architecture logicielle
• Tableau de bord et indicateurs clés de performances (KPIs)
• Témoignage du client
• Défis rencontrés
• AmélioraCons possibles
Étudier à l’ÉTS maîtrise conjointe UQAM
• 3 cours à l’ÉTS et 2 cours à l’UQAM (15 crédits)
• Profil avec projet synthèse 15 crédits
– 4 cours à l’ÉTS et 1 cours à l’UQAM (15 crédits) – Projet synthèse (15 crédits)
• Profil avec acCvité de synthèse de 6 crédits
– 7 cours à l’ÉTS et 1 cours à l’UQAM (24 crédits)
• Stage industriel et rapportI (3 crédits) et rapportII (3 crédits) Ou
• Projet technique (6 crédits)
Salon BI 2013 CoreLabNow! 3
Contexte et ObjecCfs
• Projet d’étudiants à la maîtrise
– Développé bénévolement à temps-‐parCel pendant 1 session de 15 semaines
– Dans le cadre du cours:
• Entrepôts de données et intelligence d’affaires
• Enseigné à l’École de Technologie Supérieure (ÉTS)
• ObjecCf académique:
– RéalisaCon d’un projet d’intelligence d’affaires en uClisant les noCons du cours
• ObjecCfs personnels:
– Domaine de la santé
– Technologies temps-‐réel
Équipe de l’ÉTS
Claude Vallières Pablo Herrera
David Lauzon Abdelbar Boussif
• Analyste
• GesCon de projet
• CommunicaCons
• DocumentaCon
• ExpérimentaCons avec ouCls de
visualisaCons
• Programmeur principal
• Analyste
• Architecte
• OpCmisaCons SQL
• Administrateur système
• InstallaCon d’
Oracle Database
• Chargement des données
5
Salon BI 2013 CoreLabNow!
Client
• Service de médecine diagnosCque de l’Hôpital Juif (JGH) :
– Analyses de tests sur les échan?llons (sang, salive, urine, selles) qui lui sont envoyés
– Assurer l’u?lisa?on op?male des services du laboratoire
– AcCvité de recherche visant une meilleure compréhension de la maladie, de son diagnosCc, et sa surveillance
• Portée des services:
– Cliniques internes: urgence, centre de tests, endocrinologie, etc.
– Cliniques externes à l’hôpital: CLSCs
– La garanCe de niveau de service (ou SLA) est différente selon la catégorie de la clinique source
• StaCsCques:
– Plus de 3000 résultats de tests par heure 24/24h
– Plus de 320 millions de résultats de tests dans la base de données du
laboratoire
Processus d’affaire (1/5)
7
Salon BI 2013 CoreLabNow!
Processus d’affaire (2/5)
Étapes simplifiées :
1. Un docteur complète une demande d’analyse 2. CollecCon de(s) l’échanCllon(s)
3. La demande d’analyse et l’échanCllon sont
acheminés au Service de médecine diagnosCque 4. Une commande est saisie pour l’analyse
5. Le panier d’éprouvejes rempli est acheminé à la staCon de traitement
6. NumérisaCon de l’éprouveje
• Erreurs potenCelles
7. Traitement et analyse du test
Processus (3/5) -‐ Demande d’analyse
Salon BI 2013 CoreLabNow! 9
Étape 1: Un docteur complète une demande d’analyse
Processus d’affaire (4/5)
Étape 2 : CollecCon de(s) l’échanCllon(s)
Processus d’affaire (5/5)
Salon BI 2013 CoreLabNow! 11
3. StaCon de récepCon des requêtes + tubes 4. Commande et
impression d’un code barre
5b. StaCon de pré-‐
traitement 6. Lecture du code barre par le MPA
7. Analyseurs Cobas
8. StaCon de boucle 9. Archivage
(4-‐5 heures)
10. Réfrigérateur (5 jours)
5a. Support de tubes
ProblémaCque
• Les erreurs humaines et matérielles survenant au début du processus entraînent un re-‐travail par le technologue MPA
– Exemple d’erreurs:
• Tubes mal placés, éCquejes illisibles, etc.
– Conséquence:
• Impact sur le niveau de service (SLA)
• Aucun indicaCf de performance en temps-‐réel
– Pour chaque SLA, quelle est la tendance des dernières heures?
• Sommes-‐nous déjà ou en train d’accumuler un retard ?
• Devons-‐nous assigner des ressources supplémentaires pour rencontrer le SLA?
• Quel sont les goulots d’étranglements du processus?
SoluCon proposée
• Tableau de bord affichant des indicateurs clés de performance (KPI):
– Accessibilité:
• Commis à l’enregistrement des demandes d’analyses
• Postes de travail des gesConnaires du laboratoire
– Buts:
• Détecter les accumulaCons de tests à effectuer AVANT d’être en retard;
• Assigner des ressources supplémentaires, au besoin, pour s’assurer que tous les SLAs soient respectées;
• Mieux comprendre le flux de ce processus et ses goulots d’étranglements.
13
Salon BI 2013 CoreLabNow!
Décisions et contraintes
• Tableau de bord:
1. Aucune installaCon requise sur les postes de travail 2. Taux de rafraîchissement des données : 1 minute 3. Transport réseau minimal
4. Reconnexion automaCque
5. Faible consommaCon de mémoire sur les postes de travail (connexions permanentes)
• Base de données (BD) de producCon de l’hôpital:
6. Requêtes SQL très fréquentes
7. Aucune modificaCon requise sur la BD
8. Charge minimale sur la BD
BD simplifiée
Salon BI 2013 CoreLabNow! 15
• 11 tables sélecConnées sur 50+
• Bonne nouvelle!
– 485 champs restant seulement!
Architecture de CoreLabNow
Composantes logicielles
Technologie U?lisa?on
Highcharts JS Librairie Javascript/HTML5 générant des visualisaCons interacCves
WebSocket Protocole web HTML5 offrant un canal de communicaCon bidirecConnel et full-‐duplex sur un socket TCP pour les navigateurs et les serveurs web
Socket.io Libraire de communicaCon légère (client-‐serveur) fondée sur le WebSocket.
Ajoute des foncConnalités de pour:
• Bajements de cœur (heartbeats)
• Délais d’expiraCon (Ameouts)
• Mécanisme de repli lorsque WebSocket n’est pas disponible (Flash sockets, JSONP polling, etc.)
Node.js Serveur web qui effectue les requêtes à la BD de producCon
VirtualBox Machine virtuelle pour faciliter le déploiement du logiciel au JGH Ubuntu Server LTS Système d’exploitaCon gratuit avec support prolongé
LXDE Environnement de bureau X11 graphique ultra léger
17
Salon BI 2013 CoreLabNow!
Tableau de bord
Indicateurs clés de performance (KPI)
• Jauges 1-‐3 (rangée 1) :
– Nb de tests commandés en ajente de traitement
• Histogrammes 4-‐6 (rangée 2) :
– ApproximaCon du délai d’ajente médian entre la commande et le début du traitement par le MPA
• Histogrammes 7-‐8 (rangée 3) :
– 90
èmecenCle des délais réels entre la commande et la vérificaCon du test (
complétés dans la dernière 1h)
– Encadré orange:
• Nb total de tests et le % respectant le SLA (derniers 24h)
• Diagramme à barre 9 (rangée 3) :
– Tests de Troponine en cours avec numéro de commande
19
Salon BI 2013 CoreLabNow!
Témoignage
• Dr. Elizabeth MacNamara
– Chief DiagnosCc Medicine,
• Jewish General Hospital (JGH)
– CoreLabNow Product Manager
• Topics:
– Original idea (
from a user’s point of view)
– How CoreLabNow was helpful in understanding
and improving her business process
Démo sur données réelles
hjps://vimeo.com/75497105
21
Salon BI 2013 CoreLabNow!
Défis rencontrés
• Comprendre la problémaCque et le système existant:
– Terminologie médicale
– Beaucoup de règles d’affaires et d’excepCons
– Nom de champs de BD crypCque et dicConnaire de données incomplet – Accès à des vues SQL seulement
• InformaCons limitées sur la structure physique détaillée des tables
• Volume des données « big data » :
– Plusieurs requêtes doivent faire des jointures sur une table de 320 millions de rangées et obtenir une réponse en quelques secondes, sans ralenCr la BD de producCon
– Longue phase d’opCmisaCons SQL avec EXPLAIN PLAN
• Surprise lors du déploiement :
– Données staCques en DEV vs données dynamiques en PROD – Structures des tables en PROD ≠ DEV
– Découverte de nouvelles règles d’affaire, faussant les résultats
– Besoin de modifier les requêtes directement sur le serveur de producCon
Un exemple d’un des KPI…
SELECT
CASE lc.type
WHEN 'H' THEN 'In-Patient and Emergency' WHEN 'W' THEN 'In-Patient and Emergency'
WHEN 'I' THEN 'TestCenter and Clinics' WHEN 'D' THEN 'TestCenter and Clinics'
WHEN 'E' THEN 'TestCenter and Clinics' WHEN 'V' THEN 'TestCenter and Clinics'
WHEN 'U' THEN 'In-Patient and Emergency' END AS source,
COUNT(*) AS nb_Tests_Total_Last_Day ,
SUM( CASE WHEN ((tr.verified_dt - o.ordered_dt) * 24 < 1.0) THEN 1 ELSE 0 END ) AS nb_Tests_Under_An_H_Last_Day, SUM( CASE WHEN ((tr.verified_dt - o.ordered_dt) * 24 < 4.0) THEN 1 ELSE 0 END ) AS nb_Tests_Under_An_4H_Last_Day,
ROUND(
PERCENTILE_CONT(0.90) WITHIN
GROUP (ORDER BY (
CASE WHEN (sysdate - tr.verified_dt) * 24 BETWEEN 0.0 AND 1.0 THEN (tr.verified_dt - o.ordered_dt) * 1440
ELSE NULL END
) ASC),1
) AS a_90th_TaT_Minutes_Last_H
FROM lab_order o
JOIN test_result tr ON tr.order_aa_id = o.aa_id AND o.collect_date != -1
AND o.ordered_dt >= o.collect_dt
AND o.collect_date IN (TO_NUMBER(TO_CHAR(sysdate,'YYYYmmdd')), TO_NUMBER(TO_CHAR(sysdate-1,'YYYYmmdd')))
AND o.ordered_date IN (TO_NUMBER(TO_CHAR(sysdate,'YYYYmmdd')), TO_NUMBER(TO_CHAR(sysdate-1,'YYYYmmdd'))) AND tr.verified_dt >= (sysdate - INTERVAL '1' DAY)
JOIN lab_clinic lc
ON o.ordering_clinic_id = lc.id AND lc.type IN ('H', 'W', 'I', 'D', 'E', 'V', 'U')
GROUP BY
CASE lc.type
WHEN 'H' THEN 'In-Patient and Emergency' WHEN 'W' THEN 'In-Patient and Emergency' WHEN 'I' THEN 'TestCenter and Clinics'
WHEN 'D' THEN 'TestCenter and Clinics ‘ WHEN 'E' THEN 'TestCenter and Clinics'
WHEN 'V' THEN 'TestCenter and Clinics' WHEN 'U' THEN 'In-Patient and Emergency ‘
END;
23
Salon BI 2013 CoreLabNow!
Performances de CoreLabNow
Impact minimal de CoreLabNow sur la performance de la BD de producCon
Après opCmisaCons, toutes les requêtes SQL s’exécutent en moins de 6 secondes.
AVANT
APRÈS
AmélioraCons possibles
• Conserver les données du tableau de bord (pour forage de données)
• Ajouter de nouveaux tableaux de bords pour surveiller toutes les étapes du processus
• Permejre aux uClisateurs de filtrer les KPIs (meilleure adaptabilité au changement)
• Créer un environnement de développement dynamique à parCr de données staCques
• ….
25
Salon BI 2013 CoreLabNow!