Projets choisis

Étude d’architecture

Intégration HL7 v2 → FHIR

Une transformation déterministe des admissions et résultats, avec mappings explicites et références FHIR résolubles.

HL7 v2.5 · FHIR R4 · Python · Pydantic · FastAPI · pytest

Interopérabilité

Même information. Un langage commun.

HL7 v2.5
PID|1||SYN-1042
MUSTER^AVA
19890514
FHIR R4
Patient.identifier
Patient.name
Patient.birthDate
Étude de mapping · De HL7 v2 à FHIR R4
Problème

Pourquoi ce système existe

Les flux healthcare point-à-point deviennent fragiles lorsque les mappings sont implicites, les erreurs incohérentes ou le contexte source perdu dans les ressources aval.

Contexte système

Frontière et flux de données

Le design sépare transport, parsing, mapping et persistance. Chaque message accepté reçoit un trace ID immuable ; le mapping produit un Bundle FHIR prêt pour une transaction et des alertes structurées.

Décisions techniques

Rendre les compromis explicites

  • Mapper via un modèle d’événement intermédiaire typé plutôt que transformer directement des chaînes en JSON FHIR.
  • Distinguer les erreurs de validation des avertissements de mapping récupérables.
  • Exiger la résolution de toutes les références FHIR locales avant émission du bundle.

DÉFIS

  • Préserver répétitions et champs HL7 optionnels sans inventer de valeur.
  • Normaliser les codes locaux tout en conservant le codage d’origine.
  • Garantir un retraitement idempotent lors de livraisons dupliquées.
Sécurité

Des frontières système sûres

  • Terminer le chiffrement du transport avant la frontière d’intégration isolée.
  • Masquer les payloads dans les logs tout en conservant les métadonnées de trace non sensibles.
  • Valider la taille, le nombre de segments, les caractères d’encodage et les ressources produites.
Résultat & apprentissage

Ce que le build démontre

Les exemples ADT^A01 et ORU^R01 produisent des ressources Patient, Encounter, Location, Observation et RiskAssessment stables, avec une provenance vérifiable.

APPRENTISSAGEUn mapper robuste repose moins sur une conversion ingénieuse que sur des contrats explicites, la sécurité du replay, les limites de terminologie et des erreurs observables.