Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card
HL7 v2 e FHIR para dashboards clínicos
De uma mensagem de laboratório HL7 v2 ORU^R01 para um tile de dashboard: Observações FHIR com intervalos e flags, webhooks assinados, sem duplicados — e por que isto não é monitorização à cabeceira.
Um painel clínico necessita de resultados como dados estruturados e codificados no momento em que são reportados — teste, valor, unidade, intervalo de referência e sinalizador — não PDFs que tem de ler. Os laboratórios ainda enviam a maioria dos resultados como mensagens HL7 v2 ORU^R01, enquanto os painéis são mais fáceis de construir com Observações FHIR R4. O Anpheros situa-se entre os dois: um sistema laboratorial publica a mensagem HL7 v2 (ou um relatório CSV ou JSON) via HTTPS, cada resultado torna-se uma Observação FHIR com o seu código (LOINC quando o laboratório o envia), valor e intervalo de referência, e um webhook assinado informa o seu painel que chegaram novos resultados.
- 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
O que o painel recebe
Cada segmento OBX da mensagem torna-se uma Observação de laboratório:
| Campo OBX v2 HL7 | Observação FHIR R4 | No painel |
|---|---|---|
| Código do teste OBX-3 | code (LOINC quando o laboratório o envia; um código local é mantido como o código do laboratório) |
Nome do teste; LOINC torna-o comparável entre laboratórios |
| Valor OBX-5, unidade OBX-6 | valueQuantity (unidade UCUM) |
O número e a sua unidade |
| Intervalo de referência OBX-7 | referenceRange |
A faixa normal |
| Sinal de anormalidade OBX-8 | interpretation (H, L, …) |
O sinal vermelho ou azul |
| Tempo OBX-14 | effectiveDateTime |
Quando a amostra foi recolhida |
Importar uma mensagem e reagir a ela
Envie a mensagem para um paciente que criou (ou para o qual tem uma autorização):
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
Em seguida, deixe a plataforma chamar o seu backend do dashboard em vez de o sondar:
await anpheros.webhooks.create('https://dashboard.example.org/anpheros/hook', { events: ['resource.created'] });
Cada entrega é assinada (verifique-a com verifyWebhookSignature do SDK) e é retentada se o seu servidor não responder. O evento transporta o tipo de recurso, o id e o paciente; leia as novas Observações e atualize o bloco. Relatórios reenviados são ignorados, pelo que um laboratório que retransmite em caso de timeout não cria linhas duplicadas no ecrã.
Escolher HL7 v2 ou FHIR para cada ligação
| Ligação | Utilização | Porquê |
|---|---|---|
| Laboratório → camada de dados | HL7 v2 ORU^R01 (ou CSV/JSON) | O que os sistemas de laboratório já emitem; sem alterações do seu lado |
| Camada de dados → dashboard | FHIR R4 Observation + webhooks | JSON codificado e versionado que o seu front-end pode ler diretamente |
| Dashboard → outras aplicações | FHIR R4, sob o consentimento do paciente | Um padrão para todos os consumidores |
O que isto não é
- Não é um feed de monitor de cabeceira. O Anpheros aceita relatórios de laboratório via HTTPS. Não recebe formas de onda contínuas ou fluxos de dispositivos de monitores de cuidados intensivos, e não é um sistema de alarmes: alertas que afetam os cuidados necessitam de um sistema clínico certificado.
- Não é um motor de interface MLLP. As mensagens chegam via HTTPS; se o seu laboratório só fala MLLP sobre TCP, um motor de interface à frente reencaminha-as.
- Um tipo de mensagem HL7 v2. São aceites resultados de laboratório ORU^R01; encomendas (ORM/OML) e mensagens ADT não são.
Perguntas Frequentes
Pode um dashboard ler resultados de laboratório HL7 v2 diretamente?
Pode, mas cada dashboard necessita então do seu próprio parser HL7 v2, mapeamento de código e desduplicação. Converter uma vez em Observações FHIR R4 com códigos LOINC dá a cada ecrã os mesmos dados limpos.
Quão rápido os resultados importados chegam ao dashboard?
O pedido de importação retorna quando as Observações são armazenadas, e um webhook resource.created é enfileirado para cada uma delas ao mesmo tempo. A entrega é tentada novamente se o seu endpoint estiver indisponível.
Como são sinalizados os resultados anormais?
OBX-8 torna-se o interpretation da Observação (por exemplo, H ou L) e OBX-7 o seu referenceRange, para que o dashboard possa mostrar tanto o sinalizador como a banda normal.
O Anpheros suporta monitorização de UCI?
Não. Armazena resultados de laboratório e clínicos e notifica os seus sistemas sobre novos dados; a monitorização contínua à cabeceira da cama e alarmes clínicos permanecem com dispositivos médicos certificados.
Relacionado
- API de resultados laboratoriais: HL7 v2, FHIR e LOINC
- Como importar resultados laboratoriais para um registo FHIR
- Conector de laboratório: a referência do endpoint
- FHIR vs HL7 v2: diferenças práticas
- Monitorização remota de pacientes com FHIR
- Webhooks
Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card