Cómo utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...

Página creada Cristian García
 
SEGUIR LEYENDO
Cómo utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...
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 utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...
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
Cómo utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...
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 utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...
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"
   });
Cómo utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...
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(" "),
Cómo utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...
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 utilizar el Sandbox de FHIR de InterSystems - Centro Nacional en Sistemas de ...
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