Para desarrolladores

Conector de laboratorio: cómo un informe de laboratorio en HL7 v2, CSV o JSON se convierte en Observaciones FHIR en una sola solicitud

Cómo conectar un laboratorio a un registro de paciente: una única solicitud POST con el informe completo (HL7 v2 ORU^R01, CSV o JSON), resultados mapeados a LOINC con unidades, rangos de referencia y el laboratorio como proveedor, marcadores no mapeados devueltos. El conector de laboratorio Anpheros, con las reglas que aplica.

por Publicado 5 min de lectura

Un laboratorio tiene un trabajo en una integración: introducir el informe en el registro del paciente sin volver a escribirlo, sin perder el rango de referencia y sin inventar un formato que nadie más lee. El conector de laboratorio de Anpheros toma el informe tal como el laboratorio ya lo produce, HL7 v2, CSV o JSON, y convierte cada resultado en una Observation de FHIR con un código LOINC, una unidad, un rango de referencia, una fecha y el laboratorio nombrado como ejecutor. Esta guía es el contrato.

Versión técnica para desarrolladores: Conector de laboratorio · API de resultados de laboratorio en developers.anpheros.com, con solicitudes, respuestas y límites. Esta página es la versión en lenguaje sencillo.

Una solicitud

POST /v1/patients/{patient_id}/labs/import
Authorization: Bearer <project key>
Content-Type: text/csv | x-application/hl7-v2+er7 | application/json
X-Anpheros-Source-System: labx        (opcional; registrado en Provenance)
Idempotency-Key: <report id>          (opcional; un reintento devuelve la misma respuesta)

La respuesta dice lo que sucedió:

{"created": 3, "skipped": 0, "unmapped": ["Marker muy raro"], "warnings": [],
 "observations": [{"id": "…", "marker": "TSH", "code": "3016-3", "system": "http://loinc.org",
                   "value": 2.1, "unit": "mUI/L", "date": "2026-09-01"}]}

Formatos

HL7 v2 ORU^R01, como texto ER7. OBX-3 es el identificador (code^text^LN es LOINC; un código local se mantiene como el código propio del laboratorio), OBX-5 el valor, OBX-6 la unidad, OBX-7 el rango de referencia, OBX-8 el indicador de anormalidad (se convierte en interpretation), OBX-11 el estado, OBX-14 u OBR-7 la fecha. MSH-4 nombra la instalación emisora, que se convierte en el ejecutor; OBR-3 y MSH-10 se convierten en el ID del informe en Provenance. Los resultados pendientes, eliminados o incorrectos (I, X, D, W) y los segmentos OBX sin valor no se convierten en Observaciones y se nombran en warnings.

CSV con una fila de encabezado; separadores , ; o tabulación, coma decimal aceptada, fechas ISO, DD.MM.YYYY o DD/MM/YYYY. Columnas reconocidas en rumano o inglés: marker, value, unit, reference range (70-100, <5, >3.5) o ref_low/ref_high, date, código LOINC opcional, note. Un CSV no transporta un laboratorio, por lo que el ejecutor falta a menos que envíe X-Anpheros-Acting-As.

Analiza;Rezultat;UM;Interval de referinta;Data
Hemoglobina glicozilata (HbA1c);6,4;%;4,0-5,6;01.09.2026
TSH;2,1;mUI/L;0,4-4,0;01.09.2026

JSON cuando ya tiene datos estructurados: {"date": "2026-09-01", "origin": "report-77", "laboratory": "Synevo", "items": [{"marker": "TSH", "value": 2.1, "unit": "mUI/L", "ref_low": 0.4, "ref_high": 4.0, "code": "3016-3"}]}.

Reglas de mapeo que importan

  • LOINC cuando se proporciona, de lo contrario por nombre. Los nombres se comparan con los nombres y sinónimos de LOINC en rumano e inglés. Un nombre que coincide con varios conceptos, o que lleva un calificador que el concepto no tiene (orina, no-HDL, libre, ratio), no se adivina: mantiene el código del laboratorio bajo urn:anpheros:lab-code y aparece en unmapped, para que pueda mejorar el mapeo de su lado. Envíe códigos LOINC siempre que los tenga.
  • Los valores nunca se convierten. Urea y nitrógeno de urea son códigos diferentes; LDL directo y LDL calculado son códigos diferentes; glucosa de suero y de sangre capilar son códigos diferentes. El conector elige el correcto a partir del nombre y el método, y deja el número tal cual.
  • Las horas conservan su zona. Una hora v2 con un desplazamiento se conserva; sin él, se utiliza el desplazamiento de MSH-7 con una advertencia; sin ninguno en ninguna parte, solo se almacena la fecha. Las horas CSV no transportan zona y se almacenan como fechas.
  • Idempotente. Envíe el mismo informe dos veces con la misma Idempotency-Key y obtendrá la misma respuesta y sin duplicados.
  • Procedencia en cada resultado: el sistema de origen, el ID del informe y el ejecutor, como lo requiere el Informe de Laboratorio de HL7 Europe.

Lo que ve el paciente

Los resultados aparecen en el registro de la persona y, si usan Anpheros Daily, en su teléfono a medida que llegan, con el rango de referencia y la tendencia de informes anteriores. Nada que escanear, nada que volver a escribir. Si un resultado es anormal, la persona ve la indicación; la aplicación no lo interpreta.

Pruebas

El sandbox es gratuito y los pacientes sintéticos ya tienen historial de laboratorio. Envíe un informe a uno de ellos y léalo de nuevo:

curl -X POST "$BASE/v1/patients/$PID/labs/import" -H "Authorization: Bearer $KEY" \
     -H "Content-Type: text/csv" --data-binary @report.csv
curl "$BASE/fhir/R4/Observation?patient=$PID&category=laboratory&_sort=-date" -H "Authorization: Bearer $KEY"

La especificación completa, incluidas las notas de conformidad de HL7 Europe, se encuentra en developers.anpheros.com/guides/lab-connector.

Preguntas frecuentes

¿Tenemos que cambiar lo que produce nuestro LIS?

No. Envíe el mensaje ORU^R01 o la exportación CSV tal como está. Si puede agregar códigos LOINC, hágalo; de lo contrario, el conector mapea por nombre y le dice lo que no pudo mapear.

¿Qué pasa con los resultados que no pueden mapear?

Se almacenan con el código propio del laboratorio y el texto exacto del informe, por lo que no se pierde nada, y se enumeran en unmapped para que pueda agregar un código LOINC la próxima vez.

¿Se conservan los rangos de referencia y las indicaciones de anormalidad?

Sí: el rango va a referenceRange, la indicación a interpretation, la unidad se almacena como UCUM, y el valor nunca se convierte.

¿Puede un laboratorio enviar resultados para un paciente que no creó?

Solo con el consentimiento de la persona, o como la organización para la que actúa el proyecto con X-Anpheros-Acting-As. Un proyecto ve los pacientes que creó; todo lo demás requiere una concesión.

¿Hay algún costo por la integración?

El sandbox es gratuito. La producción comienza en 49 € al mes por organización, con el primer mes gratis; consulte precios.

Esta guía es informativa y no sustituye la consulta médica. Para decisiones sobre tu salud, habla con tu médico. En una emergencia, llama al 112.
Sobre el autor
Adrian Kereky

Fundador de Anpheros. Ingeniero electrónico, trabajó seis años en conducción autónoma, en proyectos de automoción realizados en colaboración con Samsung y NVIDIA, en la arquitectura de sistemas de asistencia a la conducción y de IA que funcionan en chips NVIDIA con CUDA. Después construyó Anpheros: el historial médico controlado por el paciente y la plataforma HL7 FHIR R4 en la que funciona.

Más sobre Anpheros y el autor →

Lleva tu historial médico contigo

Anpheros Daily guarda síntomas, análisis, medicamentos y documentos en un solo lugar, en formato estándar y bajo tu control. El plan Basic es gratuito.

Descargar Anpheros Daily