libHprim : bibliothèque de lecture HPRIM

Posté par . Édité par Xavier Claude, Nÿco et Xavier Teyssier. Modéré par Nÿco. Licence CC by-sa
Tags :
21
23
fév.
2013
Java

libHprim est une bibliothèque de lecture de fichiers Hprim santé. Initialement développé comme un simple outil pour comprendre les problèmes existants dans les envois de fichiers de biologie, cet outil s'est transformé en une véritable bibliothèque que j'ai développée sur mon temps libre et que je propose sous licence LGPL.

La recommandation HPRIM Santé

La recommandation HPRIM santé est un format développé par l'association interopsanté permettant l'échange de données de santé structurées. C'est une simplification du format international HL7. Bien que ce dernier format soit plus complet et destiné à remplacer HPRIM dans les échanges futurs, de nombreux logiciels dans le domaine médical utilisent HPRIM et ne passeront pas à HL7 avant de nombreuses années.

Lorsqu'un laboratoire d'analyses médicales renvoie un résultat sous forme électronique, c'est habituellement ce format qui est utilisé. Ci-dessous un exemple de fichier HPRIM renvoyant le résultat d'un dosage de l'acide urique :

H|~^\&|0.HPR||001~ORIGIN||ORU|||002~DESTINATION||P|H2.2~C|201301011200
P|1|01|02|02|JEAN~PIERRE||19500101|M||1 RUE DE LA PAIX~~PARIS~~75001|||||||||||||||~~UNIT
OBR|1||~001|AU~AU~L|R||201301011200||||N|||201301011200||UNIT~UNITE A~L
A|~UNIT~UNITE A~L|01 23 45 67 89|||||201301011200||ORIGIN|I
OBX|1|NM|AU~Acide urique~L|||µmol/L|||||I|||201301011200|BIOCH~80~AU~140~0~P
L|1

Les fonctionnalités de libHprim

La bibliothèque libHprim permet de :

  • Valider la conformité d'un fichier à la recommandation HPRIM Santé (taille et nombre des champs et sous-champs) ;
  • Renvoyer les éléments du fichier sous forme de notification dans une classe Java (à la manière d'un ContentHandler) ;
  • Transformer ce fichier sous forme XML et pouvoir réaliser des modifications de ce XML par une feuille de style XSLT (grâce à Xalan par exemple).

Exemple d'utilisation

Le code suivant permet de lire un fichier HPRIM Santé comme si on lisait un fichier XML.

// Création de l'inputstream en entrée
InputStream is = new FileInputStream("fichieroru.ORU");

// Transformation de cet inputstream hprim en reader xml
XmlReader reader = new XmlReader(is);

// Lecture du reader et écriture sur la sortie standard
char[] buffer = new char[256];
int size;
while ((size = reader.read(buffer)) != -1) {
    char[] toprint = Arrays.copyOf(buffer, size);
    System.out.print(toprint);
}

Par la suite, les données extraites peuvent être stockées, intégrées, visualisées…

Lors de l'utilisation de l'interface de bas niveau, il suffit d'implémenter une interface Java de trois fonctions pour réaliser une lecture complète de fichier hprim :

public interface ContentHandler {
    public void startElement(String typeElement, String nameElement);
    public void endElement();
    public void content(String content);
}

L'implémentation

La lecture du fichier hprim est réalisée grâce à ANTLR et une grammaire en EBNF. Pour l'instant, seule la grammaire des fichiers de résultats de biologie est réalisée, mais l'ajout des informations nécessaires (par exemple pour lire des fichiers d'administration de patients) est simplifiée grâce à ce procédé.

  • # CSLT ?

    Posté par . Évalué à  1 .

    réaliser des modifications de ce XML par une feuille de style CSLT

    XSLT non ?

    • [^] # Re: CSLT ?

      Posté par (page perso) . Évalué à  3 .

      Corrigé, merci.

      « Moi, lorsque je n’ai rien à dire, je veux qu’on le sache. » Raymond Devos

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.