Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Elaborado por:
Ever González
Fecha:
15/12/2021
1
1. Introducción a FHIR
1.1.1. Introducción
Fast Healthcare Interoperability Resources (FHIR) describe formatos y elementos de datos y una
interfaz de programación de aplicaciones para el intercambio de registros médicos electrónicos. El
estándar fue creado por la organización internacional de estándares de salud Health Level Seven
(HL7).
1.1.2. Resources
En esta unidad se vieron las diferentes opciones que se tienen para identificar una cosa lógica;
contará con una ubicación donde se le puede encontrar y que incluye tanto el id como el host
donde se almacena dicho recurso.
http://hl7.org/implement/standards/fhir/resourcelist.html
Los recursos se encuentran según su nivel de madurez en orden Alpha bético, lo marcados un una
“N” son recursos normativos.
2
Ejemplos de un recurso (Resourse Observation)
- XML como en JSON.
<Observation xmlns="http://hl7.org/fhir">
<text>
<status value="generated"/>
107/65 (normal)</div>
</text>
<name>
<coding>
<system value="http://loinc.org"/>
<code value="55284-4"/>
</coding>
</name>
<interpretation>
...
{"Observation": {
"text": {
{"name": {"coding": [
"valueQuantity": {
"value": {
"value": "107"},
...
Fragmento de la versión JSON de un recurso Observation
3
2. Operaciones CRUD y consultas a un servidor FHIR
2.1.1. Operaciones en FHIR
En esta unidad nos centramos en la primera interacción con un server FHIR, los conceptos básicos
de REST, ejecutar distintas operaciones con recursos; Crear, recuperar y actualizar recursos y
aprender como consultar al servidor de diferentes formas utilizando diferentes parámetros.
Resultado.
4
2.1.2. Consultas en FHIR
Realizando consulta.
http://fhir.hl7fundamentals.org/r4/Patient/17560
Le pedimos al servidor que devuelva el recurso en formato XLM, poniendo en el encabezado del
pedido accept to application/xlm+fhir.
Actualizando un recurso.
En PostMan cambie el método GET a PUT y pegue el recurso que ha actualizado en el cuerpo de la
consulta donde dice el raw es el mejor lugar. Luego lo enviamos.
5
Respuesta del servidor FHIR.
DELETE <host>/<resourceType>/<id>
3. FHIR Advanzado
3.1.1. Transacciones en FHIR
Podemos elegir (como clientes FHIR) utilizar las interacciones REST habituales para cada recurso, o
usar Transacciones FHIR.
Figura 1. Estructura de distintas interacciones con un servidor FHIR enviadas uno a uno.
6
Figura 2. Esquema de múltiples interacciones al servidor, en un solo paquete, agrupados en un
Bundle.
Para realizar una transacción en un servidor FHIR, solo necesitamos efectuar un POST a la
dirección base FHIR del servidor, en cualquiera de los formatos soportados (JSON/XML).
7
Figura 4. Respuesta de nuestro servidor FHIR.
3.1.2. Paradigmas
FHIR soporta cuatro paradigmas de interoperabilidad: REST, Documentos, Mensajes y Servicios. Se
habla también de dos paradigmas adicionales emergentes: Base de Datos o Storage y
Transferencia Masiva (Bulk Transfer).
8
3.1.3. Mensajes
En el paradigma de mensajería, las interacciones entre clientes y servidores se asemejan a las
definidas por la familia de estándares HL7 V2.x: hay un emisor y un receptor, hay un evento
disparador (algo que ocurre en el mundo real que dispara la creación y comunicación de un
mensaje específico), un mensaje de solicitud, y un mensaje de respuesta.
El mensaje de solicitud FHIR es una transacción FHIR con algunas reglas especiales:
No hay necesidad que el transporte sea RESTful sobre http, se pueden enviar y recibir mensajes
usando transferencia de archivos, carpetas compartidas, HTTP, MLLP, Websphere, RabbitMQ, o
cualquier aplicación de encolamiento. El único requisito para el transporte es asegurar la entrega
de los mensajes y sus respuestas.
Los mensajes FHIR se clasifican según su impacto:
Consecuencia: el mensaje representa un cambio que puede ser ejecutado sólo una vez. Este tipo
de mensaje tendría solo UN mensaje de respuesta.
Notificación: El contenido de este mensaje es ‘actual’, y puede ser reprocesado. Este tipo de
mensaje solo debería recibir UN mensaje de respuesta.
Respuesta a Consulta: Este mensaje es una respuesta a una consulta, y se supone que la
información está actualizada. Siendo una consulta, este mensaje puede recibir múltiples mensajes
de respuesta.
9
4. FHIR Conformance
Esta unidad discute temas avanzados acerca de perfiles FHIR: cómo describir extensiones y
restricciones sobre recursos FHIR.
4.1.1. Extensiones
• Extensiones Simples.
Extensiones con un solo valor.
Ejemplo:
10
Finalmente, la definición incluye el diferencial para la extensión. Las extensiones simples tienen
dos elementos: url y value[x]. Cualquier url, y una opción entre algunos tipos de valor (cantidad,
cadena, etc.).
Esta extension específica (‘el diferencial’) tiene:
1. Una url definida:
http://fhir.hl7fundamentals.org/berzerkistan/StructureDefinition/PatientTaxSituation
2. Un tipo de valor específico: Coding.
Ejemplo:
11
<code value="Element" />
</type>
<mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element>
<path value="Extension.url" />
<representation value="xmlAttr" />
<short value="identifies the meaning of the extension" />
<definition value="Source of the definition for the extension code - a
logical name or a URL." />
<comments value="The definition may point directly to a computable or
human-readable definition of the extensibility codes, or it may be a logical
URI as declared in some other specification. The definition should be
version specific. This will ideally be the URI for the Resource Profile
defining the extension, with the code for the extension after a #." />
<min value="1" />
<max value="1" />
<type>
<code value="uri" />
</type>
<fixedUri
value="http://fhir.hl7fundamentals.org/berzerkistan/StructureDefinition/Pati
entTaxSituation" />
<mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
<element>
<path value="Extension.value[x]" />
<short value="Value of extension" />
<definition value="Value of extension - may be a resource or one of a
constrained set of the data types (see Extensibility in the spec for list)."
/>
<min value="1" />
<max value="1" />
<type>
<code value="Coding" />
</type>
<binding>
<strength value="required"></strength>
<description value="PPH Tax Table"></description>
12
<valueSetReference>
<reference
value="http://fhir.hl7fundamentals.org/berzerkistan/ValueSet/PatientTaxSitua
tion"></reference>
</valueSetReference>
</binding>
<mapping>
<identity value="rim" />
<map value="N/A" />
</mapping>
</element>
</differential>
</StructureDefinition>
• Extensiones Complejas.
Las extensiones complejas se definen a través de un url y una lista de elementos. De hecho, se
pueden construir recursos enteros utilizando extensiones complejas. Si no hay ningún recurso en
FHIR que resuelva sus necesidades, se puede generar extendiendo algo llamado el recurso ‘Basic’.
Puede extender el recurso ‘Basic’ con todas las extensiones que necesite (Ver
https://www.hl7.org/fhir/basic.html) y crear sus propios recursos FHIR.
• Extensiones Modificantes.
Estas extensiones permiten que en una implementación se definan extensiones que DEBEN ser
procesados y entendidos por los sistemas que procesan los recursos.
Ejemplos de esto: registrar una instrucción acerca de NO tomar una medicación, usar un recurso
Condition para transmitir el hecho que la condición pertenece a otra persona, no al paciente
mismo, o declarar que el que un médico en especial NO ESTUVO PRESENTE en un procedimiento.
Así que, si su extensión modifica el contenido del recurso, y el recurso NO PUEDE SER PROCESADO
EN FORMA SEGURA PARA EL PACIENTE si se IGNORA, entonces su extension debe ser etiquetada
como ‘Modifier Extension’.
13
4.1.2. Perfiles en FHIR
Puede crear recursos de conformidad de la misma manera que crea cualquier otro recurso,
editando XML o JSON, pero es un proceso complicado.
- ClinFHIR
Editor de recursos para usuario no técnicos, editor para perfiles y extensiones, herramienta para
comentar perfiles.
Puede seleccionar su servidor de pacientes, perfiles y terminologías y crear sus instancias basados
en ellos. clinFHIR tiene muchas otras funcionalidades que puede probar.
- Forge
14
5. Anexo
Certificado:
15