Skip to content

Comienza a trabajar con FHIR. Construye un repositorio y ejecuta aplicaciones SMART

Notifications You must be signed in to change notification settings

es-comunidad-intersystems/webinar-fhir

Repository files navigation

Aquí encontrarás los ejemplos utilizados en el Webinar - Comienza a trabajar con FHIR, échale un vistazo al vídeo👈.

¿Qué necesitas?

Repositorio FHIR

Construiremos un repositorio de recursos FHIR R4 utilizando las funcionalidades de FHIR Server de IRIS for Health.

Instalación FHIR Server

  1. Descarga el repositorio
git clone https://github.com/es-comunidad-intersystems/webinar-fhir
cd webinar-fhir
  1. Inicia la instancia IRIS for Health
docker-compose up
  1. Con la instancia en marcha, podrás acceder al Mng. Portal
  • Usuario: superuser
  • Password: SYS
  1. Abre una sesión interactiva utilizando WebTerminal

  2. La instancia ya tiene creado un namespace llamado FHIRNamespace, donde instalaremos el FHIR Server que configuraremos como repositorio FHIR.

Configuración

Configuraremos nuestro FHIR Server para que actúe como un repositorio FHIR R4.

Utilizaremos la UI aunque también podemos hacerlo de forma prográmatica.

Accede a Mng. Portal > Health > FHIRNamespace, haz click en FHIR Configuration, y añade un nuevo endpoint:

  • Core FHIR Package: [email protected]
  • URL: /csp/healthshare/fhirnamespace/fhir/r4
  • Interaction Stragegy: HS.FHIRServer.Storage.Json.InteractionStrategy
  • Name: /csp/healthshare/fhirnamespace/fhir/r4

Después de añadirlo, editamos su configuración y habilitamos la opción de Debugging Allow Unauthenticated Access para poder realizar pruebas fácilmente.

Pruebas simples

Vamos a ejecutar unas pruebas sencillas en el endpoint FHIR R4 que acabamos de crear.

Importa en Postman la colección IRIS FHIRServer.postman_collection.json.

Echa un vistazo a las peticiones bajo el directorio Simple. Si las ejecutas en orden te permitirán:

  • Ver el Capability Statement del FHIR Server.
  • Crear un paciente.
  • Obtener el paciente creado.
  • Modificar un paciente.
  • Crear una observación clínica.
  • Obtener una versión específica del paciente (antes de la modificación).
  • Consultar observaciones.
  • Consultar pacientes.
  • Consultar pacientes por distintos criterios.

Cargar datos de ejemplo

En el directorio fhir se incluyen algunos ejemplos de datos realistas que se han generado con la herramienta Synthea.

Vamos a cargar los ficheros con datos generados en IRIS utilizando HS.FHIRServer.Tools.DataLoader utilizando de nuevo unas sesión de WebTerminal:

do ##class(HS.FHIRServer.Tools.DataLoader).SubmitResourceFiles("/app/fhir/","FHIRServer","/csp/healthshare/fhirnamespace/fhir/r4")

Echa un vistazo a alguno de los ficheros FHIR que vamos a cargar y comprueba los resources que contiene: Bundle, Patient, Practitioner, Organization, CareTeam, CarePlan, Claim, Coverage, ExplanationOfBenefit, Encounter, AllergyIntolerance, Condition, Goal, Observation, etc.

La lista completa de recursos disponibles en FHIR R4 está disponible aquí.

Los pacientes generados que vamos a cargar son:

7 -- Kendall673 Mitchell808 (8 y/o F) Shutesbury, Massachusetts 
2 -- Augustine565 Cremin516 (8 y/o F) Worcester, Massachusetts 
6 -- Hayden835 Kunde533 (29 y/o M) Taunton, Massachusetts 
4 -- Linwood526 Jones311 (30 y/o M) Billerica, Massachusetts 
5 -- Lizbeth716 Harvey63 (44 y/o F) Boston, Massachusetts DECEASED
8 -- Rhett759 Mosciski958 (65 y/o M) Woburn, Massachusetts DECEASED
3 -- Marlyn309 Orn563 (56 y/o F) Malden, Massachusetts 
1 -- Mariano761 Gulgowski816 (53 y/o M) North Reading, Massachusetts 
9 -- Jordan900 Zieme486 (2 y/o M) Gloucester, Massachusetts 
10 -- Elisha578 Willms744 (63 y/o M) Brookline, Massachusetts 
8 -- Shawn523 Lehner980 (74 y/o M) Woburn, Massachusetts 
5 -- Alfreda3 Lemke654 (74 y/o F) Boston, Massachusetts 
{alive=10, dead=2}

Consultar datos generados

A continuación podemos ejecutar algunas consultas sobre los datos que acabamos de importar.

Volvemos a Postman, y vamos a la carpeta Queries de la colección IRIS FHIRServer.postman_collection.json.

  • Concentración de potasio o glucosa por encima de cierto nivel.
  • Observaciones clínicas de un paciente en concreto.
  • Visitas ambulatorias por bronquitis agudas
  • Obtener toda la información disponible de un paciente.

Echa un vistazo directamente en SQL a los datos en el Explorador SQL:

-- recursos que se han creado
select * from HSFHIR_X0001_R.Rsrc
-- tabla de búsqueda para pacientes
select * from HSFHIR_X0001_S.Patient order by birthdate desc

Debugging

Nuestro servidor de pruebas, tenía ya activado el Unauthenticated Access para poder probar más fácilmente. Podemos además añadir varias opciones de Debugging.

Log interno

Vamos a activar el debugging interno del FHIR Server en la sesión de WebTerminal:

set ^FSLogChannel("all") = 1

A continuación, podemos ver el log a través del visor de globals: Mng. Portal > System Explorer > Globals (FHIRNAMESPACE) > FSLOG

Utilizando este log podemos determinar exactamente la query SQL que se construye.

Log HTTP

Podemos tambien activar el log HTTP para analizar las peticiones al FHIR Server. Lo activamos de esta forma:

set ^%ISCLOG=5 
set ^%ISCLOG("Category","HSFHIR")=5 
set ^%ISCLOG("Category","HSFHIRServer")=5

Y consultamos la información del log aquí: Mng. Portal > System Explorer > Globals (%SYS) > ISCLOG

HL7 a FHIR

InterSystems incluye transformaciones que convierten objetos SDA en recursos FHIR y viceversa.

SDA es un formato clínico intermedio que facilita la transformación de un estándar en otro.

Un caso de uso típico es transformar mensajes HL7 en recursos FHIR. Con las transformaciones incluidas se puede hacer de forma HL7-SDA-FHIR.

Además, puedes consultar cómo se consideran los campos HL7 y los recursos FHIR a la otra de transformar hacia o desde SDA en Health > FHIRNamespace > Schema Documentation.

Un ejemplo muy sencillo de cómo hacerlo lo encontramos en la aplicación FHIR-HL7v2-SQL-Demo.

SMART

Vamos a probar una de las aplicaciones más conocidas de la SMART App Gallery de forma que se alimente de los datos que tenemos almacenados en nuestro FHIR Server.

La aplicación Growth Chart permite representar el crecimiento de un niño a lo largo del tiempo.

La aplicación ya está ejecutándose en uno de los contenedores del webinar en modo de pruebas, para poder probarla rápidamente.

Para probarla necesitamos simplemente invocarla pasando el endpoint de nuestro FHIRServer y el paciente a consultar:

http://localhost:9000/launch.html?iss=http://localhost:52773/csp/healthshare/fhirnamespace/fhir/r4&patientId=296

Puedes volver a consultar los pacientes disponibles y probar con diferentes registros.

Por último, no olvides pasarte por Getting Started Health | FHIR QuickStart

About

Comienza a trabajar con FHIR. Construye un repositorio y ejecuta aplicaciones SMART

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published