Cómo utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...
←
→
Transcripción del contenido de la página
Si su navegador no muestra la página correctamente, lea el contenido de la página a continuación
Cómo utilizar el Sandbox de FHIR de InterSystems Accede al Sandbox de FHIR de InterSystems Para acceder al Sandbox de FHIR de InterSystems necesitarás: Un usuario válido en el Sistema de Online Learning de InterSystems válida InterSystems Online Learning System (IOLS) User ID – need a User ID? Aceptar los términos de servicio del Sandbox de FHIR To have accepted the current FHIR® Sandbox Terms of Service in effect – need to accept the Terms of Service? 1. Loguearse en sistema InterSystems Online Learning System con el ID válido 2. Ingresar al menu del Sandbox o bien utilizer el Código QR entregado en el kit de bienvenida
Cómo usar el Sandbox de FHIR con aplicaciones en SMART on FHIR Hasta la fecha las siguientes apps de SMART on FHIR apps a la que todos los usuarios pueden acceder. Boston Children’s Hospital Cardiac Risk Boston Children’s Hospital Growth Chart Harvard Medical School (HMS) Library of Evidence VisualDx Clinical Architecture’s Inquire Aluna’s Guided Data Entry
Ejercicio Parte 1 Introducción Lo primero que debemos realizar es ver cómo podemos construir una aplicación que permite extraer datos del paciente desde el Sandbox de InterSystems. El principal beneficio de utilizar el sandbox radica en el hecho de poder probar aplicaciones que luego queramos comercializar en establecimientos clínicos que ya tengan sistemas establecidos. Sin embargo, estos es posible que estos no tengan todos los requerimientos que el establecimiento requiere. Puesto que el Sandbox de InterSystems cumple con el estándar FHIR, se puede asegurar entonces que si su aplicación es capaz de comunicarse correctamente con él, luego podrá interoperar con cualquier sistema clínico que tenga la capacidad de interoperar a través de HL7 FHIR. El objetivo de la primera parte del ejercicio consiste en construir una aplicación desde cero. La tecnología a utilizar será node.js. Esto no es impedimento para que luego puedas utilizar la tecnología que desees. Simplemente escogimos esta tecnología porque consideramos que es rápida y sencilla de utilizar para efectos de testear el Sandbox de InterSystems. Preparación del ambiente Entonces, para poder realizar estos ejercicios deberemos instalar node.js en nuestros computadores. Para descargarlo pueden ir al siguiente sitio: • Descargar Node js. Escoger la última versión disponible (actualmente es la 10.12.0)
Cómo crear archivos de dependencias Una vez que hayas instalado correctamente nodejs, crea un carpeta para tu proyecto. En este caso la llamaremos CENS TECHCONNECT. La ruta puede ser donde quieras. Dentro de este directorio crear archivo llamado package.json . En este archivo deberás escribir lo siguiente: { "name": "tunombre", "version": "0.1.0", "scripts": { "serve": "./node_modules/http-server/bin/http-server -p 8000 -c-1 ." }, "dependencies": { "fhirclient": "^0.1.9", "jquery": "^1.7.1" }, "devDependencies": { "http-server": "^0.11.1" } } Luego graba el archivo y ciérralo. Cómo crear archivos launch.html, index.html y dependencias Normalmente, en este tipo de aplicaciones necesitarás un archivo donde deberás autenticarte ante el Sandbox de InterSystems y si la autenticación es correcta, podrás acceder a tu aplicación. Para efectos del ejercicio el archivo launch.html será el que nos permita validarnos e index.html será nuestra aplicación. Comencemos con el archivo launch.html. Abre el editor o IDE que tengas y crea este archivo dentro de la misma carpeta donde dejaste el archivo package.json. Dentro de él escribe lo siguiente: Ejercicio Parte 1 FHIR.oauth2.authorize({ "client_id": "ID", "scope": "patient/*.read" });
Loading... Por ahora, dejaremos el valor de "client_id" como está. Cuando agreguemos la aplicación al sandbox lo deberemos reemplazar por el valor que nos entregue éste. En el archivo index.html vamos a ver que utiliza varios archivos que están programados en javascript. En la misma ruta de launch.html crea archivo index.html y escribe lo siguiente: Parte 1 ejercicio - FHIR extractData().then(function(p){ console.log(p); draw_patient(p); }); Puedes notar en el código que tanto fhir-client.js como jquery.min.js son archivos que están dentro de la carpeta node_modules. Esta carpeta aún no existe debido a que aún no instalamos las dependencias que necesitaremos en la aplicación. El siguiente paso será crear la función extractData. Dentro de la misma carpeta crea archivo load_data.js y escribe lo siguiente: (function(window){ window.extractData = function() { var ret = $.Deferred(); FHIR.oauth2.ready(function(smart){ // Ingresa una vez que obtiene la autorización var patient = smart.patient; var pt = patient.read(); var cond = smart.patient.api.search({type: "Condition"}); // Por cada dato ingresado acá irá a consultar la info al sandbox $.when(pt,cond).done(function(patient,conditions){ var fname = patient.name[0].given.join(" "),
lname = patient.name[0].family.join(" "); var gender = patient.gender; console.log(conditions); var patient_conditions = [] $.each(conditions.data.entry, function(key, value) { try { var notes = value.resource.notes.split("|")[1]; patient_conditions.push(notes); } catch (Exception){} }); p = {}; p.gender={value:gender}; p.givenName={value:fname}; p.familyName={value:lname}; p.conditions = patient_conditions; ret.resolve(p); }); }); return ret.promise(); }; })(window); Este archivo será el encargado de realizar todas las solicitudes que queramos al Sandbox de InterSystems. Es decir, acá podrás invocar aquello que estimes necesario. Es importante destacar que esta es una opción de obtener la información del Sandbox, sin embargo, no es la única. Lo último que nos falta por escribir es la parte relacionada con la visualización de los datos. La función que se encarga de la visualización se llama draw_patient. Esta función la vamos a crear dentro de un archivo nuevo el cual llamaremos draw_data.js. Dentro de este archivo deberás escribir lo siguiente: var draw_patient = function(patient){ $('#bounce1').text("Nombre del paciente: "+patient.givenName.value); $('#bounce2').text("Apellido del paciente: "+patient.familyName.value); $('#bounce3').text("Género: "+patient.gender.value); $('#bounce4').text("Condiciones del paciente: "+patient.conditions); }; Ahora tenemos todo lo que necesitamos para poder comenzar con las pruebas. Abre una terminal en tu computador e ingresa al path donde tienes todos estos archivos. Una vez dentro escribe lo siguiente y presiona enter: npm install Si todo sale bien, podrás ver que ahora se creó una carpeta que se llama node_modules y tiene muchas carpetas dentro. No profundizaremos mucho aquí ya que el objetivo del ejercicio es aprender a utilizar el sandbox.
Cómo registrar el FHIR® Sandbox en la Aplicacióm Ingresa al Sandbox de InterSystems y presiona la opción "ADD NEW APP" dentro del menú "Sandbox Aplications" Al presionar el botón aparecerá el siguiente menú: Figure 3 • Complete los campos en los detalles de la aplicación incluyendo: Orden Nombre del campo Contenido Requerido Requerimientos del campo Nombre de la Nombre de la App que se 1 aplicación mostrará en el menu de app S Máx 50 caracteres Las apps públicas están en JavaScript y corren en el browser 2 Tipo Cliente Público, Confidencial S del usuario final Usar publico Apps confidenciales estan el lado del servidor Ver HL7 FHIR SMART App Launch Para más info La URL que se llama cuando un usuario selecciona la app en el 3 Launch URL menu de app S Contexto paciente se pasa a la
launch URL. Normalmente es: http://127.0.0.1:9000/Launch.html Usada por el servidor SSO OAuth2 en la autenticación del usuario para redirigir de vuelta al sandbox una vez que ya esta 4 Redirigir URL autorizado S Normalmente es http://127.0.0.1:9000/ Ver HL7 FHIR SMART App Launch Para más info. Scopes son los permisos que 5 Scopes una app está solicitando N Ver HL7 FHIR SMART App Launch (Scopes) para más info Se usa para restringir pacientes en el selector de pacientes cuando una app depende de tener los datos de cierto tipo de Puede ser cualquiera query FHIR Pacientes de paciente como presión arterial search válida que devuelva 6 muestra para la app de riesgo cardiaco N pacientes, por ejemplo: Patient?birthdate=2006-10-19 Patient?_id=100000003 El logo que se mostrará en tu 7 Logo aplicación menu de apps para esta app N Resolución mínima: 418 х 256px Tamaño máx: 200 Kb Presiona Save para obtener el ID de Cliente (Figura 4) Figura 4
• Copia el ID de cliente al portapaleles con Ctrl+C • Presiona Close para añadir la App a tu menu local de aplicaciones SMART on FHIR en el Sandbox Cómo añadir el ID de Cliente a tu App local En el directorio del Código Fuente haz lo siguiente: 9. Edita el archivo Launch.html file y cambia el contenido de "client_id": "growth_chart" a. Pega el Client ID entregado en el paso anterior en el lugar del valor "client_id" usando Ctrl+V 10. Inicia la app usando: a. Windows: node_modules\.bin\http-server.cmd -p 9000 -c-1 b. Mac: npm run serve Cómo lanzar la app desde el Sandbox de FHIR Launch App from the FHIR Sandbox En el menu de aplicaciones del Sandbox de FHIR de InterSystems, InterSystems FHIR® Sandbox on the Sandbox Applications menu 11. Presiona la parte de Launch de tu app para presentar el selector de paciente o present the patient picker 12. Selecciona un paciente para ejecutar tu app SMART on FHIR Resolución de problemas Si ves: “127.0.0.1 refused to connect“, entonces la app local no se está ejecutando, repite el paso anterior.
Ejercicio Parte 2 El registro de la app SMART on FHIR es el primer paso para probar tu app de manera rápida y fácil. Para eso, necesitarás: Código Fuente de tu app SMART on FHIR App en un dispositivo local, equipo, tablet, etc. Un lugar donde ejecutar tu app SMART on FHIR App (usaremos node.js) Para organizar el proceso usaremos el gráfico de Boston Children’s Hospital Growth Chart como una app SMART on FHIR ejecutándose localmente en node.js Nota: El registro de tu app r SMART on FHIR en host local te permite ejecutarla localmente. Ningun otro usuario del sandbox puede ver o usar tu app. Prepara tu aplicación 1. Si es necesario, descarga el Código Fuente de tu app a un dispositivo local. a. En este caso usaremos el gráfico de crecimiento del Boston Children’s Hospital Growth Chart b. Hemos descargado el archivo zip del Código Fuente desde GitHub i. Revisa las instrucciones de cómo implanter la app localmente c. Hemos extraido el Código Fuente a un directorio local En el directorio del Código Fuente, haz lo siguiente: 2. Implanta la app localmente (con Node.js) a. Instala la app (figura 1) usando: npm install b. Inicia la app (figura 2) usando: i. Windows: node_modules\.bin\http-server.cmd -p 9000 -c-1 ii. Mac: npm start c. Revisa la URL y el servidor de Puerto se están ejecutando (Figure 2). d. Normalmente es: http://127.0.0.1:9000
Figura 1 Figura 2 3. Detiene la app local usando Ctrl+C Orden Nombre del campo Contenido Requerido Requerimientos del campo Nombre de la Nombre de la App que se 1 aplicación mostrará en el menu de app S Máx 50 caracteres Las apps públicas están en JavaScript y corren en el browser 2 Tipo Cliente Público, Confidencial S del usuario final Usar publico Apps confidenciales estan el lado del servidor Ver HL7 FHIR SMART App Launch Para más info La URL que se llama cuando un usuario selecciona la app en el 3 Launch URL menu de app S Contexto paciente se pasa a la launch URL. Normalmente es: http://127.0.0.1:9000/Launch.html Usada por el servidor SSO OAuth2 en la autenticación del usuario para redirigir de vuelta al sandbox una vez que ya esta 4 Redirigir URL autorizado S Normalmente es http://127.0.0.1:9000/ Ver HL7 FHIR SMART App Launch Para más info. Scopes son los permisos que 5 Scopes una app está solicitando N Ver HL7 FHIR SMART App Launch
(Scopes) para más info Se usa para restringir pacientes en el selector de pacientes cuando una app depende de tener los datos de cierto tipo de Puede ser cualquiera query FHIR Pacientes de paciente como presión arterial search válida que devuelva 6 muestra para la app de riesgo cardiaco N pacientes, por ejemplo: Patient?birthdate=2006-10-19 El logo que se mostrará en tu 7 Logo aplicación menu de apps para esta app N Resolución mínima: 418 х 256px Tamaño máx: 200 Kb 6. Presiona Save para obtener el ID de Cliente (Figura 4) Figure 4 • Copia el ID de cliente al portapaleles con Ctrl+C • Presiona Close para añadir la App a tu menu local de aplicaciones SMART on FHIR en el Sandbox
Cómo añadir el ID de Cliente a tu App local En el directorio del Código Fuente haz lo siguiente: 9. Edita el archivo Launch.html file y cambia el contenido de "client_id": "growth_chart" a. Pega el Client ID entregado en el paso anterior en el lugar del valor "growth_chart" usando Ctrl+V 10. Inicia la app usando: a. Windows: node_modules\.bin\http-server.cmd -p 9000 -c-1 b. Mac: npm run serve Cómo lanzar la app desde el Sandbox de FHIR Launch App from the FHIR Sandbox En el menu de aplicaciones del Sandbox de FHIR de InterSystems, InterSystems FHIR® Sandbox on the Sandbox Applications menu 11. Presiona la parte de Launch de tu app para presentar el selector de paciente o present the patient picker 12. Selecciona un paciente para ejecutar tu app SMART on FHIR Consejos Si estás tratando de seguir estas instrucciones usando una de las apps públicas de Smart on FHIR recuerda: El gráfico de crecimiento necesita un paciente niño con medidas periódicas de altura y peso. Cuando pruebes esta app intenta con los pacientes Israel Gonzalez, Keesha Bailey o Wynell Boyer. La app de riesgo cardiaco necesita un paciente con CRP, Colesterol y HDL . Cuando uses la app prueba con el paciente Marla Gonzalez. Resolución de problemas Si ves: “127.0.0.1 refused to connect“, la app local no se está ejecutando. Repite el paso anterior.
Cómo buscar pacientes de prueba Buscar pacientes de prueba proporciona una función de búsqueda que ejecuta búsquedas con “comienza con”. Los resultados de la busqueda proporcionan datos centrados en pacientes usando recursos FHIR sobre InterSystems HealthShare. Datos disponibles del paciente Actualmente, hay más de 205 pacientes de prueba en el Sandbox de FHIR: Figura 5 Búsqueda de Pacientes Para buscar pacientes ingresa en la casilla de búsqueda “Search by Last Name for Patients” presiona el botón “Search”. La función de búsqueda ejecuta una búsqueda “Comienza con” en el nombre del paciente usando el texto en la casilla de búsqueda. La figura 6 muestra una búsqueda de paciente comenzando con “bo”
Figura 6 Detalles de Paciente Para mostrar detalles de pacientes, selecciona el paciente en cuestion y su información FHIR se mostrará: Figura 7
También puede leer