Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
HL7 v2 et FHIR pour les tableaux de bord cliniques
D'un message de laboratoire HL7 v2 ORU^R01 à une tuile de tableau de bord : Observations FHIR avec plages et indicateurs, webhooks signés, pas de doublons — et pourquoi ce n'est pas une surveillance au chevet.
Un tableau de bord clinique a besoin de résultats sous forme de données structurées et codées au moment où ils sont rapportés — test, valeur, unité, plage de référence et drapeau — pas de PDF qu'il doit lire. Les laboratoires envoient encore la plupart des résultats sous forme de messages HL7 v2 ORU^R01, tandis que les tableaux de bord sont plus faciles à construire sur des Observations FHIR R4. Anpheros se situe entre les deux : un système de laboratoire publie le message HL7 v2 (ou un rapport CSV ou JSON) via HTTPS, chaque résultat devient une Observation FHIR avec son code (LOINC lorsque le laboratoire l'envoie), sa valeur et sa plage de référence, et un webhook signé informe votre tableau de bord que de nouveaux résultats sont arrivés.
- Laboratory systemSends an HL7 v2 ORU^R01 message or a CSV report
- Lab connectorPOST /v1/patients/{id}/labs/import over HTTPS
- FHIR ObservationsLOINC code, value, unit, reference range, H/L flag
- Signed webhookresource.created reaches your server, retried on failure
- Your dashboardReads the new results and updates the tile
Ce que le tableau de bord reçoit
Chaque segment OBX du message devient une Observation de laboratoire :
| Champ HL7 v2 OBX | FHIR R4 Observation | Sur le tableau de bord |
|---|---|---|
| OBX-3 test code | code (LOINC lorsque le laboratoire l'envoie ; un code local est conservé comme code du laboratoire) |
Nom du test ; LOINC le rend comparable entre les laboratoires |
| OBX-5 value, OBX-6 unit | valueQuantity (unité UCUM) |
Le nombre et son unité |
| OBX-7 reference range | referenceRange |
La plage normale |
| OBX-8 abnormal flag | interpretation (H, L, …) |
Le drapeau rouge ou bleu |
| OBX-14 time | effectiveDateTime |
Quand l'échantillon a été prélevé |
Importer un message et y réagir
Envoyez le message pour un patient que vous avez créé (ou pour lequel vous détenez une autorisation) :
import { readFile } from 'node:fs/promises';
import { Anpheros, apiKey } from '@anpheros/sdk';
const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) }); // a sandbox key, sk_test_…
const message = await readFile('oru_r01.hl7', 'utf8');
const result = await anpheros.labs.importHl7(patientId, message, { sourceSystem: 'lab-lis' });
console.log(result); // created, skipped and unmapped counts
Ensuite, laissez la plateforme appeler votre backend de tableau de bord au lieu de le sonder :
await anpheros.webhooks.create('https://dashboard.example.org/anpheros/hook', { events: ['resource.created'] });
Chaque livraison est signée (vérifiez-la avec verifyWebhookSignature du SDK) et réessayée si votre serveur ne répond pas. L'événement transporte le type de ressource, l'identifiant et le patient ; lisez les nouvelles Observations et actualisez la vignette. Les rapports renvoyés sont ignorés, de sorte qu'un laboratoire qui retransmet lors d'un délai d'attente ne crée pas de lignes en double à l'écran.
Choisir HL7 v2 ou FHIR pour chaque lien
| Lien | Utilisation | Pourquoi |
|---|---|---|
| Laboratoire → couche de données | HL7 v2 ORU^R01 (ou CSV/JSON) | Ce que les systèmes de laboratoire émettent déjà ; aucun changement de leur côté |
| Couche de données → tableau de bord | FHIR R4 Observation + webhooks | JSON codé et versionné que votre front-end peut lire directement |
| Tableau de bord → autres applications | FHIR R4, sous le consentement du patient | Un standard pour tous les consommateurs |
Ce que ce n'est pas
- Pas un flux de moniteur de chevet. Anpheros accepte les rapports de laboratoire via HTTPS. Il ne reçoit pas de formes d'onde continues ni de flux d'appareils provenant de moniteurs de soins intensifs, et ce n'est pas un système d'alarme : les alertes qui affectent les soins nécessitent un système clinique certifié.
- Pas un moteur d'interface MLLP. Les messages arrivent via HTTPS ; si votre laboratoire ne communique qu'en MLLP sur TCP, un moteur d'interface en amont les transmet.
- Un seul type de message HL7 v2. Les résultats de laboratoire ORU^R01 sont acceptés ; les commandes (ORM/OML) et les messages ADT ne le sont pas.
Foire aux questions
Un tableau de bord peut-il lire directement les résultats de laboratoire HL7 v2 ?
C'est possible, mais chaque tableau de bord a alors besoin de son propre analyseur HL7 v2, de son propre mappage de code et de sa propre déduplication. La conversion unique en Observations FHIR R4 avec des codes LOINC fournit à chaque écran les mêmes données propres.
En combien de temps les résultats importés parviennent-ils au tableau de bord ?
La requête d'importation retourne lorsque les Observations sont stockées, et un webhook resource.created est mis en file d'attente pour chacune d'elles en même temps. La livraison est retentée si votre point de terminaison n'est pas disponible.
Comment les résultats anormaux sont-ils signalés ?
OBX-8 devient le interpretation de l'Observation (par exemple H ou L) et OBX-7 son referenceRange, de sorte que le tableau de bord puisse afficher à la fois le drapeau et la plage normale.
Anpheros prend-il en charge la surveillance des unités de soins intensifs ?
Non. Il stocke les résultats de laboratoire et cliniques et notifie vos systèmes des nouvelles données ; la surveillance continue au chevet et les alarmes cliniques restent avec les dispositifs médicaux certifiés.
Liens connexes
- API des résultats de laboratoire : HL7 v2, FHIR et LOINC
- Comment importer des résultats de laboratoire dans un enregistrement FHIR
- Connecteur de laboratoire : la référence de point de terminaison
- FHIR vs HL7 v2 : différences pratiques
- Surveillance à distance des patients avec FHIR
- Webhooks
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card