Hprimator 2 : Mise à jour majeure (2.20.03)

HPRIMATOR est chargé de formater automatiquement un document RTF ou PDF reçu au cabinet au format HPRIM avec

  1. un Nom de fichier unique personnalisé au Nom du Patient
  2. et une entête normalisée.

Hprimator 2 est une première mise à jour majeure d’HPRIMATOR par l’utilisation des expressions régulières (REGEX), permettant de retrouver rapidement un terme dans un document malgré une syntaxe ou une orthographe approchante.

La version 2020 corrige un bug rédhibitoire : sa lenteur d’exécution

  • La version 2019 attaquait le document dans sa globalité pour rechercher un terme, si bien que chaque document était analysé à chaque boucle du début à la fin
    • La caractéristique d’HPRIMATOR étant l’analyse “multiboucles”, changeant d’algorithme à chaque fois que la ligne magique n’est pas trouvée, cela pouvait devenir laborieux pour les documents longs ou complexes.
  • La version 2020 attaque le document ligne par ligne…
For Each Ligne in DOCUMENT DO ...
  • ce qui donne une information plus courte à traiter par le processeur (moins de 100 caractères)
  • Et qui arrête sa recherche dès que l’occurrence est trouvée :
If Match.Success then break;
  • Ce qui limite son champ d’investigation d’autant que les renseignements utiles (Titre, Date, Nom)
    • se trouvent le plus souvent sur une seule ligne
    • généralement située en entête dans les toutes premières.
  • EN PRATIQUE :
    • Si la totalité des renseignements ne se trouve pas sur une seule ligne, on constate le plus souvent qu’ils ne sont pas loin :
      • Soit Juste sur la ligne en dessous+++ (floor)
      • Soit plus rarement sur la ligne au dessus (ceil)

RAPPELS UTILES AUX SAGES :

  • HPRIMATOR travaille à partir de documents RTF
    • Obtenu par OCR de documents PDF originaux ou scannés
    • Les 2 types de documents sont affichés en parallèle s’ils existent.

  • HPRIMATOR permet une multitude de modes de reconnaissance des 4 renseignements utiles à nommer le document
    1. TITRE
    2. DATE
    3. NOM
    4. PRENOM
    5. DATE DE NAISSANCE
  • Le mode par défaut est le mode “AUTOMATIQUE“, les différents mode manuels n’étant la que pour palier à ses égarements logiciels ou incapacité matérielle
  • Le principe de base est de localiser dans le document UNE SEULE LIGNE appelée “Ligne Magique”  qui contient idéalement soit la date , soit le nom, le prénom et la date de naissance du patient.
  • Par exemple trouver la date consiste à repérer la première ligne :
Qui commence ou qui contient 
1- un nom de ville 
2- suivie d’une date
  • Soit en Algorithme :
rechercher parmi toutes les villes connues de la région,
celle qui est suivie d’une date
  • Soit en Expression régulière :
For Each Ville In ListeVILLES

   REGEX = (Ville) + ("dd/mm/yyyy");
  • Ce qui implique d’avoir dans ses tablettes la liste des villes (qu’il est très facile de rajouter au fur et à mesure en période d’apprentissage)

La recherche de l’identité du patient est à peine plus complexe

PRINCIPEEXEMPLEALGORITHMEREGEX

Rechercher une ligne qui commence par une civilité

Et qui contient un prénom et une date (de naissance)

  • Mme DUPONT Marie née le 14/07/1989

  1. Rechercher parmi toutes les CIVILITES
  2. en lui associant tous les PRENOMS
  3. une ligne qui contient aussi une DATE

For Each CIVILITE in ListeCIVILITES DO

=> For Each PRENOM in ListePRENOMS DO

==> REGEX = CIVILITE + PRENOM + DATE;

On le constate : on a ici une boucle dans une boucle, elle même appelée par une grande boucle générale qui scanne les lignes du texte, ce qui explique la “consommation processeur” dans les documents longs ou complexes

Algorithme de choix entre les Noms qui sont des Prénoms ou les Prénoms multiples sur une même ligne.

NOM / PRENOMPRENOMS COMPOSESPRENOMS MULTIPLES
Exemple Mme BERNARD Marie
Algorithme Le nom est en général en MAJUSCULES
REGEX [A-Z]+

Exemple Mme Anne-Marie BERNARD
Algorithme 1 seul caractère séparateur entre les 2 prénoms
REGEX <PRENOM>[-. ]<PRENOM>

Exemple Mme DUPONT Marie, rue Victor Hugo.
Algorithme Le premier prénom de la ligne par défaut
CODE For Each Mot in Ligne DO

If IsPrenom(Mot) then

Prénom = Mot; break;

Téléchargement :

Télécharger
https://www.bluegyn.com/hprimator/

Laisser un commentaire