En nuestro artículo anterior «Intercambio electrónico de información clínica: HL7» hablamos sobre lo que significa HL7 (Health Level Seven) , los elementos que lo componen, algunos ejemplos de mensajería y los estándares más comunes (HL7 V2, HL7 V3, CDA, HL7 FHIR y CCOW).

En este artículo nos enfocaremos en FHIR (Fast Healthcare Interoperability Resources) que es el último estándar implementado por la Organización Internacional HL7, responsable de desarrollar algunos de los protocolos más utilizados para la comunicación en el sector salud.

Recordemos entonces, que HL7, es un conjunto de estándares cuyo principal objetivo es especificar mensajería para la comunicación de información clínica, demográfica y financiera, entre sistemas informáticos.

¿Qué es FHIR?

FHIR (Fast Healthcare Interoperability Resources) es un estándar que combina las mejores características de HL7 V2, HL7 V3 y CDA en busca de una integración rápida y sencilla.

FHIR está destinado a facilitar el intercambio de información entre proveedores de atención médica, pacientes, cuidadores, pagadores, investigadores y cualquier otra persona involucrada en el ecosistema de atención médica.

Está compuesto por 3 partes principales:

  • Documentación general: describe cómo se definen los recursos y proporciona material de referencia que incluye las definiciones de tipos de datos, códigos (vocabularios controlados), y los formatos XML y JSON.
  • Implementación: describe cómo utilizar los recursos usando REST, mensajería, documentos clínicos, o mediante una arquitectura basada en servicios.
  • Lista de recursos: contiene todos los recursos definidos por FHIR. Cuenta con listas específicas de distintos recursos:
    • Clínicos: medicaciones, diagnósticos, interacción con dispositivos, etc.
    • Administrativos: paciente, organización, órdenes, etc.
    • Infraestructura: listas, manifiesto de documentos, encabezado de mensajes, consultas, etc.

Un recurso es la unidad básica de interoperabilidad, la unidad más pequeña que tiene sentido intercambiar. Los recursos son representaciones de conceptos del mundo sanitario: paciente, médico, diagnósticos, procedimientos, etc..

FHIR está diseñado específicamente para la web. Los recursos se basan en estructuras XML o JSON que utilizarán un protocolo REST.

¿Por qué usar FHIR y no otros estándares HL7?

Los estándares de interoperabilidad clínicos existentes (como HL7 v2, v3 o CDA) tenían ciertas limitaciones, entre las que destacaríamos:

  • HL7 v2 está ampliamente extendido, pero la tecnología es antigua, por lo que no se adecúa a los requerimientos actuales.
  • HL7 v3 es independiente de tecnología y plataforma, esto es un factor a favor, pero se puede convertir en contra si tenemos en cuenta que hay que crear más código para poder adecuarse a una tecnología o plataforma especifica; por tanto la implementación requiere más esfuerzo y será más costosa. 
  • HL7 CDA fue diseñado como un estándar de documentos y no encaja en otros escenarios, éste no se ocupa del contenido de los documentos,  cómo se crean, almacenan e intercambian los documentos queda fuera del alcance del estándar.

FHIR aprovecha las mejores características de cada uno de los anteriores estándares y ofrece muchas mejoras y ventajas destacadas:

  • Es rápido y fácil de implementar
  • Mucha información de ayuda disponible con ejemplos.
  • La especificación es de uso gratuito sin restricciones.
  • Fácil adaptabilidad de los recursos básicos, estos se pueden usar tal cual, pero también se pueden adaptar según sea necesario.
  • Ruta de desarrollo evolutiva desde HL7 Versión 2 y CDA: los estándares pueden coexistir y aprovecharse entre sí
  • Soporte para arquitecturas REST, intercambio fluido de información usando mensajes o documentos y arquitecturas basadas en servicios
  • Especificaciones claras y concisas.
  • Formato legible para facilitar su uso y comprensión por parte de los desarrolladores.
  • Es fácilmente integrable además de promover el uso de tecnologías modernas de comunicación basadas en web (HTTP, XML, JSON, etc.)

Ejemplo de mensajería FHIR

El siguiente es un ejemplo de recurso de Madre de paciente recién nacido, expresado en formato XML:

<?xml version="1.0" encoding="UTF-8"?>
<Patient xmlns="http://hl7.org/fhir">
  <id value="mom"/> 
  <meta> 
    <lastUpdated value="2012-05-29T23:45:32Z"/> 
  </meta> 
<text>
    <status value="generated" />
    <div xmlns="http://www.w3.org/1999/xhtml">
        <p><b> Generated Narrative with Details</b></p>
        <p><b> id</b> : mom</p>
        <p><b> meta</b> :</p>
        <p><b> identifier</b> : Social Security number = 444222222</p>
        <p><b> active</b> : true</p>
        <p><b> name</b> : Eve Everywoman (OFFICIAL)</p>
        <p><b> telecom</b> : ph: 555-555-2003(WORK)</p>
        <p><b> gender</b> : female</p>
        <p><b> birthDate</b> : 31/05/1973</p>
        <p><b> address</b> : 2222 Home Street (HOME)</p>
        <p><b> managingOrganization</b> : <a> Organization/hl7</a></p>
        <h3>Links</h3>
        <table>
            <tr><td>-</td><td><b> Other</b></td><td><b> Type</b></td></tr>
            <tr><td>*</td><td><a> RelatedPerson/newborn-mom</a></td><td>seealso</td></tr>
        </table>
    </div>
</text>  
<identifier> 
    <type> 
      <coding> 
        <system value="http://terminology.hl7.org/CodeSystem/v2-0203"/> 
        <code value="SS"/> 
      </coding> 
    </type> 
    <system value="http://hl7.org/fhir/sid/us-ssn"/> 
    <value value="444222222"/> 
  </identifier> 
  <active value="true"/> 
  <name> 
    <use value="official"/> 
    <family value="Everywoman"/> 
    <given value="Eve"/> 
  </name> 
  <telecom> 
    <system value="phone"/> 
    <value value="555-555-2003"/> 
    <use value="work"/> 
  </telecom> 
  <gender value="female"/> 
  <birthDate value="1973-05-31"/> 
  <address> 
    <use value="home"/> 
    <line value="2222 Home Street"/> 
  </address> 
  <managingOrganization> 
    <reference value="Organization/hl7"/> 
  </managingOrganization> 
  <link> 
    <other> 
      <reference value="RelatedPerson/newborn-mom"/> 
    </other> 
    <type value="seealso"/> 
  </link> 
</Patient> 

En el anterior código hemos visto un ejemplo en XML, ahora vamos a ver un ejemplo en formato JSON:

{
  "resourceType": "Patient",
  "id": "mom",
  "meta": {
    "lastUpdated": "2012-05-29T23:45:32Z"
  },
  "text": {
    "status": "generated",
    "div": "<div xmlns="http://www.w3.org/1999/xhtml">
        <p><b> Generated Narrative with Details</b></p>
        <p><b> id</b> : mom</p>
        <p><b> meta</b> :</p>
        <p><b> identifier</b> : Social Security number = 444222222</p>
        <p><b> active</b> : true</p>
        <p><b> name</b> : Eve Everywoman (OFFICIAL)</p>
        <p><b> telecom</b> : ph: 555-555-2003(WORK)</p>
        <p><b> gender</b> : female</p>
        <p><b> birthDate</b> : 31/05/1973</p>
        <p><b> address</b> : 2222 Home Street (HOME)</p>
        <p><b> managingOrganization</b> : <a> Organization/hl7</a></p>
        <h3>Links</h3>
        <table>
            <tr><td>-</td><td><b> Other</b></td><td><b> Type</b></td></tr>
            <tr><td>*</td><td><a> RelatedPerson/newborn-mom</a></td><td>seealso</td></tr>
        </table>
    </div>"
  },
  "identifier": [
    {
      "type": {
        "coding": [
          {
            "system": "http://terminology.hl7.org/CodeSystem/v2-0203",
            "code": "SS"
          }
        ]
      },
      "system": "http://hl7.org/fhir/sid/us-ssn",
      "value": "444222222"
    }
  ],
  "active": true,
  "name": [
    {
      "use": "official",
      "family": "Everywoman",
      "given": [
        "Eve"
      ]
    }
  ],
  "telecom": [
    {
      "system": "phone",
      "value": "555-555-2003",
      "use": "work"
    }
  ],
  "gender": "female",
  "birthDate": "1973-05-31",
  "address": [
    {
      "use": "home",
      "line": [
        "2222 Home Street"
      ]
    }
  ],
  "managingOrganization": {
    "reference": "Organization/hl7"
  },
  "link": [
    {
      "other": {
        "reference": "RelatedPerson/newborn-mom"
      },
      "type": "seealso"
    }
  ]
}

Conclusión

Entre todos los estándares existentes y pese a sus desventajas, actualmente se destaca la mensajería HL7 V2 que podemos encontrar en casi cualquier sistema de información de salud. Sin embargo, es conveniente seguir de cerca al estándar FHIR, que promete ser el gran heredero en el futuro de la interoperabilidad en salud por las múltiples ventajas que ofrece.

¿Quieres contratarnos?

Ahora que nos conoces un poco mejor, si quieres crear sistemas que se sincronicen entre ellos con HL7 y en particular con FHIR, ya sabes que forma parte de nuestro día a día y que podemos ayudarte externalizando parte de tus proyectos, es algo que hacemos a diario con gran parte de nuestros clientes del sector Salud.

Espero este artículo haya sido interesante y recuerda, si necesitas una consultoría avanzada sobre HL7 o Delphi puedes contactar con nosotros en nuestro formulario de contacto de Abatic

Acerca de Claudia Salgado

Experiencia en Análisis y Desarrollo de software, Delphi como herramienta de desarrollo principal, pero además con conocimientos en Genexus, con la que he podido participar en diferentes proyectos, ERP principalmente. y conocimientos en estándares del sector Salud como HL7 y FHIR.
He tenido la oportunidad de trabajar en una amplia gama de proyectos, utilizando diferentes gestores de bases de datos, como SQL Server, DB2, Oracle, Firebird, PostgreSQL , entre otros, lo cual, me ha permitido avanzar un poco en el amplio y largo camino del aprendizaje de diferentes tecnologías.

Reader Interactions

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

He leído y acepto la política de privacidad

Responsable: ABATIC SOLUCIONES TECNOLOGICAS SLU
Finalidad: gestionar los comentarios.
Legitimación: tu consentimiento.
Destinatarios: los datos que me facilitas estarán ubicados en los servidores de Nicalia dentro de la UE. Ver política de privacidad de Nicalia.
Derechos: podrás ejercer tus derechos, entre otros, a acceder, rectificar, limitar, suprimir, portabilidad y olvido de tus datos.

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.