• Aucun résultat trouvé

«Un tableau de bord médical en temps- réel à moindre coût»

N/A
N/A
Protected

Academic year: 2022

Partager "«Un tableau de bord médical en temps- réel à moindre coût»"

Copied!
26
0
0

Texte intégral

(1)

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      

(2)

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  

(3)

É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  

(4)

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  

(5)

É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!  

(6)

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  

(7)

Processus  d’affaire  (1/5)  

7  

Salon  BI  2013   CoreLabNow!  

(8)

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  

(9)

Processus  (3/5)  -­‐  Demande  d’analyse  

Salon  BI  2013   CoreLabNow!   9  

Étape  1:  Un  docteur  complète  une  demande  d’analyse  

(10)

Processus  d’affaire  (4/5)  

Étape  2  :  CollecCon  de(s)  l’échanCllon(s)  

(11)

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  

(12)

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?  

(13)

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!  

(14)

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  

(15)

BD  simplifiée  

Salon  BI  2013   CoreLabNow!   15  

•  11  tables  sélecConnées  sur  50+  

•  Bonne  nouvelle!  

–  485  champs  restant  seulement!  

(16)

Architecture  de  CoreLabNow  

(17)

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!  

(18)

Tableau  de  bord  

(19)

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

ème

 cenCle  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!  

(20)

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  

(21)

Démo  sur  données  réelles  

hjps://vimeo.com/75497105    

21  

Salon  BI  2013   CoreLabNow!  

(22)

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  

(23)

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!  

(24)

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  

(25)

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!  

(26)

Conclusion  

•  La  clef  du  succès  est  de  bien  déterminer  une   taille  de  projet  réalisable  dans  les  délais  

disponibles  

•   Travailler  dans  le  domaine  de  la  santé  est:  

–  Complexe   –  SCmulant   –  GraCfiant  

•  Il  était  valorisant  de  voir  l’intérêt  et  la  parCcipaCon  que   l’équipe  de  l’hôpital  juif  a  dévoué  à  ce  projet  

•  Et  enfin,  il  ne  faut  pas  vendre  la  peau  du  SQL  

avant  de  l’avoir  op&misé…  

Références

Documents relatifs

Le but de cette étude était d’évaluer, avec suffisamment de recul après l’introduction des génériques d’IPDE5, le taux de non-observance thérapeutique en raison du coût

Au deuxième trimestre, l’emploi est très dynamique dans la Communauté d’Agglomération de la Riviera Française dans tous les secteurs d’activité à l’exception des services

Pour autant, d’autres tendances sont moins réjouissantes : le nombre de nuitées hôtelières dans la région-capitale au quatrième trimestre 2021 a été inférieur de 21,1 % à

Définition des catégories de demandeurs d’emploi en fin de mois inscrits à Pôle emploi : La plupart des demandeurs d’emploi, inscrits à Pôle emploi, sont

Le fonctionnement du service Scolarité Le fonctionnement général de l’ENSCMu Les infrastructures de l’ENSCMu L’ambiance au sein de l’ENSCMu Les relations entre les

- Nombre de missions sur le mois - Nombre de missions sur la semaine - Nombre de missions aujourd’hui - Nombre d’adresses référencées - Nombre de techniciens/intervenants -

S’il est vrai qu’un bon dessin vaut mieux qu’un long discours, encore faut-il choisir la représentation graphique la plus adaptée selon le mes- sage que l’on veut faire passer.

Toutefois, l’établissement ne peut en aucun cas être tenu responsable de l’utilisation et de l’interprétation de l’information contenue dans cette publication qui ne vise pas à