Buscar

Limpiar filtro
Anuncio
Esther Sanchez · 5 oct, 2020

¡Ya puedes votar en el Sexto Concurso para Desarrolladores de InterSystems!

¡Hola Comunidad! El plazo para participar en el Sexto Concurso para Desarrolladores de InterSystems ya ha terminado y empieza la fase de votación. Hemos recibido 10 aplicaciones, así que ya puedes elegir la mejor solución Full Stack desarrollada utilizando InterSystems IRIS! ¿Cómo se vota? Es muy fácil: tienes un voto, y tu voto irá en la Nominación de los Expertos o en la Nominación de la Comunidad. Nominación de Expertos Si eres Product Manager de InterSystems, moderador de la Developer Community o embajador de Global Masters con nivel Specialist o superior, tu voto va en esta nominación. Nominación de la Comunidad Si eres un miembro registrado en la Comunidad y al menos has publicado una vez (un artículo, una pregunta o una respuesta que no fuera considerada como spam), tu voto va en esta nominación. Votación La votación se realiza en esta página para el concurso en Open Exchange y tienes que registrarte en Open Exchange – puedes hacerlo con tus credenciales de acceso a la Comunidad.. Si en algún momento quieres cambiar el voto, puedes cancelar el que hayas dado y dárselo a otra aplicación - tienes hasta el domingo 11 de octubre para votar! Los participantes en el concurso pueden corregir errores ("bugs") e introducir mejoras en sus aplicaciones durante esta semana. Para no perderte los cambios, suscríbete a los avisos sobre nuevas actualizaciones! ❗️ Y echa un vistazo a los Criterios del Jurado y Reglas sobre los votos ❗️
Anuncio
Esther Sanchez · 17 nov, 2020

¡Ya puedes votar en el Séptimo Concurso para Desarrolladores de InterSystems!

¡Hola Comunidad! El plazo para participar en el Séptimo concurso para desarrolladores de InterSystems ya ha terminado y empieza la fase de votación. Hemos recibido 9 aplicaciones, así que ya puedes elegir la mejor solución de Interoperabilidad desarrollada con InterSystems IRIS! ¿Cómo se vota? Es muy fácil: tienes un voto, y tu voto irá en la Nominación de los Expertos o en la Nominación de la Comunidad Nominación de Expertos Si eres Product Manager de InterSystems, moderador de la Developer Community o embajador de Global Masters con nivel Specialist o superior, tu voto va en esta nominación. Nominación de la Comunidad Si eres un miembro registrado en la Comunidad y al menos has publicado una vez (un artículo, una pregunta o una respuesta que no fuera considerada como spam), tu voto va en esta nominación. Votiación La votación se realiza en esta página para el concurso en Open Exchange y tienes que registrarte en Open Exchange – puedes hacerlo con tus credenciales de acceso a la Comunidad. Si en algún momento quieres cambiar el voto, puedes cancelar el que hayas dado y dárselo a otra aplicación - tienes hasta el domingo 22 de noviembre para votar! Los participantes en el concurso pueden corregir errores ("bugs") e introducir mejoras en sus aplicaciones durante esta semana. Para no perderte los cambios, suscríbete a los avisos sobre nuevas actualizaciones! ➡️ Y echa un vistazo a los Criterios del Jurado y Reglas sobre los votos.
Artículo
Nancy Martínez · 11 ago, 2021

Cómo integrar SAP con InterSystems IRIS usando OData

SAP ofrece un amplio soporte de OData en todos sus productos. Así que OData puede ser una excelente opción para intercambiar datos entre SAP e InterSystems IRIS. Sigue las instrucciones del artículo https://es.community.intersystems.com/post/intersystems-iris-y-odata para exponer tus datos de IRIS como servicios Odata de REST. Para consumir datos de InterSystems IRIS desde SAP utilizando OData, sigue estos pasos (créditos de los siguientes pasos a este tutorial: https://sapyard.com/sapui5-for-abapers-consuming-odata-service-from-sapui5-application-crud-operations/) : Crea una nueva aplicación SAPUI5 con el nombre crud_demo. Crea una vista XML ‘crud_demo.view’. Escribe este código en ella. <core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="crud_demo.crud_demo" xmlns:html="http://www.w3.org/1999/xhtml" xmlns:l="sap.ui.commons.layout"> <Page title="CRUD Operations"> <content> <l:AbsoluteLayout width="10rem" height="10rem"></l:AbsoluteLayout> <VBox xmlns="sap.m" id="vboxid"> <items> <HBox xmlns="sap.m"> <items> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Button xmlns="sap.m" id="cbtn" press="oDataCall" text="Create"></Button> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Button xmlns="sap.m" id="rbtn" press="oDataCall" text="Read"></Button> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Button xmlns="sap.m" id="ubtn" press="oDataCall" text="Update"></Button> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Button xmlns="sap.m" id="dbtn" press="oDataCall" text="Delete"></Button> </items> </HBox> <HBox xmlns="sap.m"> <items> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Input xmlns="sap.m" id="uniqueid" placeholder="ID" value="1"></Input> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Input xmlns="sap.m" id="nameid" placeholder="Name" value="test"></Input> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Input xmlns="sap.m" id="emailid" placeholder="Email" value="test@gmail.com"></Input> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Input xmlns="sap.m" id="mobid" placeholder="Mobile" value="8888888888"></Input> </items> </HBox> <HBox xmlns="sap.m"> <items> <l:AbsoluteLayout width="20px" height="20px"></l:AbsoluteLayout> <Table xmlns="sap.m" id="userdatatable" headerText="User Data"> <items> <ListItemBase xmlns="sap.m" id="id1"></ListItemBase> </items> <columns> <!-- sap.m.Column --> <Column xmlns="sap.m"> <header> <Text xmlns="sap.m" text="Id" ></Text></header></Column> <Column xmlns="sap.m"> <header> <Text xmlns="sap.m" text="Name" ></Text></header></Column> <Column xmlns="sap.m"> <header> <Text xmlns="sap.m" text="Email" ></Text></header></Column> <Column xmlns="sap.m"> <header> <Text xmlns="sap.m" text="Mobile" ></Text></header></Column> </columns> </Table> </items> </HBox> </items> <!-- sap.ui.core.Control --> </VBox> </content> </Page> </core:View> 5. Crea crud_demo.controller.js. Escribe el siguiente código: onInit: function() { that = this; // Create Model Instance of the oData service var oModel = new sap.ui.model.odata.v2.ODataModel("/sap/opu/odata/sap/ZCRUD_DEMO_SRV"); sap.ui.getCore().setModel(oModel, "myModel"); }, oDataCall:function(oEvent) { // call oData service's function based on which button is clicked. debugger; var myModel = sap.ui.getCore().getModel("myModel"); myModel.setHeaders({ "X-Requested-With" : "X" }); // CREATE****************** if ('Create' == oEvent.oSource.mProperties.text) { var obj = {}; obj.id = that.getView().byId("uniqueid").getValue(); obj.name = that.getView().byId("nameid").getValue(); obj.email = that.getView().byId("emailid").getValue(); obj.mobile = that.getView().byId("mobid").getValue(); myModel.create('/userdataSet', obj, { success : function(oData, oResponse) { debugger; alert('Record Created Successfully...'); }, error : function(err, oResponse) { debugger; alert('Error while creating record - ' .concat(err.response.statusText)); } }); } // READ****************** else if ('Read' == oEvent.oSource.mProperties.text) { var readurl = "/userdataSet?$filter=(id eq '')"; myModel.read(readurl, { success : function(oData, oResponse) { debugger; var userdata = new sap.ui.model.json.JSONModel({ "Result" : oData.results }); var tab = that.getView().byId("userdatatable"); tab.setModel(userdata); var i = 0; tab.bindAggregation("items", { path : "/Result", template : new sap.m.ColumnListItem({ cells : [ new sap.ui.commons.TextView({ text : "{id}", design : "H5", semanticColor : "Default" }), new sap.ui.commons.TextView({ text : "{name}", design : "H5", semanticColor : "Positive" }), new sap.ui.commons.TextView({ text : "{email}", design : "H5", semanticColor : "Positive" }), new sap.ui.commons.TextView({ text : "{mobile}", design : "H5", semanticColor : "Positive" }), ] }) }); }, error : function(err) { debugger; } }); } // UPDATE****************** if ('Update' == oEvent.oSource.mProperties.text) { var obj = {}; obj.id = that.getView().byId("uniqueid").getValue(); obj.email = that.getView().byId("emailid").getValue(); var updateurl = "/userdataSet(id='" + that.getView().byId("uniqueid").getValue() + "')"; myModel.update(updateurl, obj, { success : function(oData, oResponse) { debugger; alert('Record Updated Successfully...'); }, error : function(err, oResponse) { debugger; alert('Error while updating record - ' .concat(err.response.statusText)); } }); } // DELETE****************** if ('Delete' == oEvent.oSource.mProperties.text) { var delurl = "/userdataSet(id='" + that.getView().byId("uniqueid").getValue() + "')"; myModel.remove(delurl, { success : function(oData, oResponse) { debugger; alert('Record Removed Successfully...'); }, error : function(err, oResponse) { debugger; alert('Error while removing record - ' .concat(err.response.statusText)); } }); } } 6. Guarda, despliega y ejecuta la aplicación. Deberías poder ejecutar la aplicación usando esta URL http://hostname:8000/sap/bc/ui5_ui5/sap/zcrud_demo/index.html. 7. Resultado:
Anuncio
Esther Sanchez · 21 dic, 2020

¡Ya puedes votar en el Octavo Concurso para Desarrolladores de InterSystems!

¡Hola Comunidad! El plazo para participar en el octavo concurso para Desarrolladores de InterSystems ya ha terminado y empieza la fase de votación. Hemos recibido 4 aplicaciones, así que ya puedes elegir la mejor solución de analítica usando InterSystems IRIS! ¿Cómo se vota? Hemos desarrollado un nuevo sistema de votación tanto para la Nominación de Expertos como para la Nominación de la Comunidad: Puedes elegir 3 proyectos, para el 1º, 2º y 3er puesto, según tu opinión. Así es como funciona el marcador de la Comunidad: Marcador de la Comunidad: Puesto Puntos 1º 3 2º 2 3º 1 Y para el marcador de los Expertos, los diferentes niveles de Global Masters tienen diferentes puntos para cada puesto: Marcador de los Expertos: Nivel Puesto 1º 2º 3º Nivel VIP en GM / Moderadores / Product Managers 9 6 3 Nivel experto en Global Masters 6 4 2 Nivel especialista en Global Masters 3 2 1 Los votos de los expertos también contribuirán con 3-2-1 puntos al marcador de la Comunidad. Votación La votación se realiza en esta página para el concurso en Open Exchange y tienes que registrarte en Open Exchange – puedes hacerlo con tus credenciales de acceso a la Comunidad. Si en algún momento quieres cambiar el voto, puedes cancelar el que hayas dado y dárselo a otra aplicación - tienes hasta el domingo 27 de noviembre para votar! Los participantes en el concurso pueden corregir errores ("bugs") e introducir mejoras en sus aplicaciones durante esta semana. Para no perderte los cambios, suscríbete a los avisos sobre nuevas actualizaciones! ➡️ Y echa un vistazo a las nuevas reglas de votación para los concursos de InterSystems.
Anuncio
Esther Sanchez · 25 ene, 2021

¡Ya puedes votar en el Noveno Concurso para Desarrolladores de InterSystems!

¡Hola Comunidad! El plazo para participar en el noveno concurso para desarrolladores de InterSystems ya ha terminado y empieza la fase de votación. Hemos recibido 10 aplicaciones, así que ya puedes elegir la mejor solución multimodelo usando InterSystems IRIS! ¿Cómo se vota? Con nuestro nuevo sistema de votación para la Nominación de Expertos y la de la Comunidad, puedes elegir 3 proyectos, para el 1º, 2º y 3er puesto, según tu opinión. Así es como funciona el marcador de la Comunidad: Marcador de la Comunidad: Puesto Puntos 1º 3 2º 2 3º 1 Y para el marcador de los Expertos, los diferentes niveles de Global Masters tienen diferentes puntos para cada puesto: Marcador de los Expertos: Nivel Puesto 1º 2º 3º Nivel VIP level en GM / Moderadores / Product Managers 9 6 3 Nivel experto en Global Masters 6 4 2 Nivel especialista en Global Masters 3 2 1 Los votos de los expertos también contribuirán con 3-2-1 puntos al marcador de la Comunidad. Votación La votación se realiza en esta página para el concurso en Open Exchange y tienes que registrarte en Open Exchange – puedes hacerlo con tus credenciales de acceso a la Comunidad. Si en algún momento quieres cambiar el voto, puedes cancelar el que hayas dado y dárselo a otra aplicación - tienes hasta el domingo 31 de enero para votar! Los participantes en el concurso pueden corregir errores ("bugs") e introducir mejoras en sus aplicaciones durante esta semana. Para no perderte los cambios, suscríbete a los avisos sobre nuevas actualizaciones! ➡️ Y echa un vistazo a las nuevas reglas de votación para los concursos de InterSystems.
Anuncio
Jose-Tomas Salvador · 11 feb, 2021

¡No te pierdas el concurso de programación InterSystems Grand Prix!

Querido desarrollador, ¡tenemos muy buenas noticias! Estamos encantados de invitarte a unirte a nuestra competición anual para crear soluciones open-source utilizando InterSystems IRIS. Demos la bienvenida a: 🏆 InterSystems Grand Prix Programming Contest 🏆 Duración: February 8 - March 8, 2021 Dotación en Premios: $16,000 Premios Esta vez hemos incrementado nuestros premios en metálico! Tendremos: 1. Nominación de Expertos - los ganadores serán elegidos por un jurado especialmente seleccionado: 🥇 1ª posición - $6,000 🥈 2ª posición - $3,000 🥉 3ª posición - $2,000 2. Nominación de la Comunidad - la aplicación que reciba más votos en total: 🥇 1ª posición - $3,000 🥈 2ª posición - $1,500 🥉 3ª posición - $500 La temática 💡 Aplicaciones InterSystems IRIS 💡 Presenta cualquier aplicación que utilice InterSystems IRIS como backend (API o base de datos) con cualquier tipo de modelo de datos o API InterSystems IRIS. Serán también bien recibidas tus mejoras sobre aplicaciones que ya hayas presentado en anteriores concursos si quieres presentarlas para el Grand Prix. Por supuesto también cualquier aplicación 100% nueva. Así que... ¡Estamos esperando TU gran proyecto - únete a nuestro Grand Prix para ganar! ➡️ Los detalles completos sobre el concurso se pueden consultar aquí. Hola! ¡El período de registro ya ha comenzado! Sigue nuestro Tablón del concurso y estate atento. Aguardando esos proyectos increibles! :-)
Anuncio
Esther Sanchez · 1 mar, 2021

¡Ya puedes votar en el Gran Premio para Desarrolladores de InterSystems!

¡Hola Comunidad! El plazo para participar en el Gran Premio para Desarrolladores de InterSystems ya ha terminado y empieza la fase de votación. Hemos recibido 42 aplicaciones, así que ya puedes elegir la mejor solución desarrollada usando InterSystems IRIS. ¡Va a estar reñida la competición! ¿Cómo se vota? Cualquier desarrollador participante en el concurso puede votar por su propia aplicación - el voto irá tanto a la Nominación de Expertos como a la Nominación de la Comunidad, de forma automática (según el nivel de Global Masters). Todos los empleados de InterSystems pueden votar una vez, tanto en la Nominación de Expertos como en la Nominación de la Comunidad. Con nuestro nuevo sistema de votación, tanto en la Nominación de Expertos como en la Nominación de de la Comunidad, puedes elegir 3 proyectos, para el 1º, 2º y 3er puesto, según tu opinión. Así es como funciona el marcador de la Comunidad: Marcador de la Comunidad: Puesto Puntos 1º 3 2º 2 3º 1 Y para el marcador de los Expertos, los diferentes niveles de Global Masters tienen diferentes puntos para cada puesto: Marcador de los Expertos: Nivel Puesto 1º 2º 3º Nivel VIP en GM / Moderadores / Product Managers 9 6 3 Nivel experto en Global Masters 6 4 2 Nivel especialista en Global Masters 3 2 1 Los votos de los expertos también contribuirán con 3-2-1 puntos al marcador de la Comunidad. Votación 1. La votación se realiza en esta página para el concurso en Open Exchange y tienes que registrarte en Open Exchange – puedes hacerlo con tus credenciales de acceso a la Comunidad. 2. Si has participado de alguna manera en la Comunidad de Desarrolladores (haciendo una pregunta, respondiendo a alguien, escribiendo un artículo, comentando una publicación, etc.), verás el botón "Vote" disponible. Si en algún momento quieres cambiar el voto, puedes cancelar el que hayas dado y dárselo a otra aplicación - tienes hasta el domingo 7 de marzo para votar! Los participantes en el concurso pueden corregir errores ("bugs") e introducir mejoras en sus aplicaciones durante esta semana. Para no perderte los cambios, suscríbete a los avisos sobre nuevas actualizaciones! ➡️ Y echa un vistazo a las nuevas reglas de votación para los concursos de InterSystems.
Artículo
Ricardo Paiva · 1 jul, 2021

[InterSystems IRIS por primera vez] Utilicemos la Interoperabilidad

¡Hola a todos! InterSystems IRIS tiene un menú llamado **Interoperabilidad**. Ofrece mecanismos que permiten crear fácilmente integraciones de sistemas (adaptadores, mapas de registros, BPMs, conversiones de datos, etc.), para que diferentes sistemas puedan conectarse fácilmente. En el proceso de transmisión de datos se pueden incluir diversas operaciones, por ejemplo: para conectar sistemas que normalmente no están conectados, se pueden recibir (o enviar) datos según las especificaciones del sistema de destino. Además, se puede adquirir y añadir información desde otro sistema antes de enviar los datos. La información también se puede adquirir y actualizar a partir de una base de datos (IRIS u otra). En esta serie de artículos, comentaremos los siguientes temas, mientras vemos ejemplos de códigos para ayudarte a comprender cómo funciona y qué tipo de desarrollo se requiere cuando se integran sistemas con Interoperabilidad. * Cómo funciona * Qué es una producción * Mensaje * Creación de componentes * Business Operations * Business Procesess * Business Services En primer lugar, os presento el caso de estudio que utilizaremos en esta serie de artículos: > Una empresa gestiona una tienda online y está cambiando el orden en que se muestra la información de los productos para que coincida con las estaciones del año.Sin embargo, algunos artículos se venden bien independientemente de la estación del año, mientras otros se venden en momentos inesperados, lo que no coincide con la regla actual de cambiar el orden.Por lo tanto, estudiamos la posibilidad de cambiar el orden para que coincida con la temperatura del día en lugar de con la estación del año. Fue necesario saber la temperatura de los productos comprados en ese momento.Como se dispone de una API web externa para comprobar la información meteorológica, planeamos recopilar la información meteorológica en el momento de la compra y registrarla en la base de datos. Es muy sencillo, pero es necesario utilizar una “API web externa” para recoger la información, y se debe combinar la información obtenida y la de compra para registrarla en la base de datos. Las instrucciones específicas se comentarán en un artículo relacionado (no incluye la creación de un sitio web). ¡Échale un vistazo! En cuanto a la "API web externa" que estamos utilizando en esta ocasión, estamos usando los Datos meteorológicos actuales de OpenWeather. (Si quieres probarlo, debes registrar una cuenta y obtener un ID de API ). Lo siguiente es el resultado de una solicitud GET de un cliente REST (lo ejecutaremos en el mecanismo que implementaremos en Interoperabilidad). ![](/sites/default/files/inline/images/image1050jp.png) El JSON de la respuesta HTTP es el siguiente: ```json { "coord": { "lon": 135.5022, "lat": 34.6937 }, "weather": [ { "id": 803, "main": "Clouds", "description": "broken clouds", "icon": "04d" } ], "base": "stations", "main": { "temp": 17.05, "feels_like": 13.33, "temp_min": 16, "temp_max": 18, "pressure": 1017, "humidity": 55 }, "visibility": 10000, "wind": { "speed": 4.63, "deg": 70 }, "clouds": { "all": 75 }, "dt": 1611635756, "sys": { "type": 1, "id": 8032, "country": "JP", "sunrise": 1611612020, "sunset": 1611649221 }, "timezone": 32400, "id": 1853909, "name": "Osaka", "cod": 200 } ``` En el siguiente artículo, comentaremos cómo funciona el menú de Interoperabilidad para la integración del sistema.
Artículo
Ricardo Paiva · 24 mar, 2021

InterSystems IRIS for Health, iOS y FHIR

SWIFT-FHIR-IRIS es una aplicación de iOS para exportar datos de HealthKit a InterSystems IRIS for Health (o a cualquier repositorio FHIR) # Índice * [Objetivo de esta demostración](#goal) * [Cómo ejecutar esta demostración](#rundemo) * [Requisitos previos](#prerequisites) * [Instalar Xcode](#installxcode) * [Abrir el proyecto SwiftUi](#openswiftui) * [Configurar el simulador](#simulator) * [Lanzar InterSystems FHIR Server](#lunchfhir) * [Jugar con la app de iOS](#iosplay) * [Cómo funciona](#howtos) * [iOS](#howtosios) * [Cómo verificar la autorización de los datos médicos](#authorisation) * [Cómo conectarse al Repositorio de FHIR](#howtoFhir) * [Cómo guardar un paciente en el Repositorio de FHIR](#howtoPatientFhir) * [Cómo extraer datos del HealthKit](#queryHK) * [Cómo convertir los datos de HealthKit a FHIR](#HKtoFHIR) * [Backend (FHIR)](#backend) * [Frontend](#frontend) * [ToDos](#todo) Objetivo de esta demostración El objetivo es crear una demostración de extremo a extremo del protocolo FHIR. Lo que quiero decir con extremo a extremo, es desde una fuente de información como un iPhone. Recoge tus datos médicos en formato Apple (HealthKit), transfórmalos en FHIR y envíalos al repositorio de InterSystems IRIS for Health. Esta información debe ser accesible a través de una interfaz web. TL;DR: iPhone -> InterSystems FHIR -> Página web. Cómo ejecutar esta demostración Requisitos previos Por la parte del cliente (iOS) Xcode 12 Para el servidor y la aplicación web Docker Instalar Xcode No hay mucho que decir aquí, abre la AppStore, busca Xcode e instálalo. Abrir el proyecto SwiftUi Swift es el lenguaje de programación de Apple para iOS, Mac, Apple TV y Apple Watch. Es el sustituto de objective-C. Haz doble clic en Swift-FHIR-Iris.xcodeproj Abre el simulador haciendo clic en la flecha superior izquierda. Configurar el simulador Ve a Health Haz clic en Steps Añade los datos Lanzar InterSystems FHIR Server En la carpeta raíz de este git, ejecuta el siguiente comando: docker-compose up -d Al finalizar el proceso de desarrollo, podrás conectarte al repositorio FHIR: http://localhost:32783/fhir/portal/patientlist.html Este portal fue realizado por @diashenrique. Con algunas modificaciones para manejar los pasos de Apple. Jugar con la app de iOS Primero, la aplicación te pedirá que aceptes compartir cierta información. Haga clic en Authorize A continuación, puedes probar el servidor FHIR haciendo clic en "Save and test server". La configuración predeterminada señala la configuración de Docker. Si todo va bien, puedes introducir la información de tu paciente. Nombre, apellido, cumpleaños, género. El paciente se guarda en Fhir. Una ventana emergente te mostrará su ID de Fhir único. Puedes consultar este paciente en el portal: Ve a: http://localhost:32783/fhir/portal/patientlist.html Aquí podemos ver que hay un nuevo paciente "Toto" con 0 actividades. Envía sus actividades: Vuelve a la aplicación iOS y haz clic en Step count Este panel resume el conteo de pasos de la semana. En nuestro caso hay 2 registros. Ahora puedes enviarlos a InterSystems IRIS FHIR haciendo clic en Send. Consulta las nuevas actividades en el portal: Ahora podemos ver que Toto tiene dos nuevas observaciones y actividades. Puedes hacer clic en el botón de Gráfico para mostrar la información gráficamente. Cómo funciona iOS La mayor parte de esta demostración está creada en SwiftUI. https://developer.apple.com/xcode/swiftui/ Que es la framework más reciente para iOS. Cómo verificar la autorización de los datos médicos Está en la clase SwiftFhirIrisManager. Esta clase es una instancia única o singleton y llevará todo lo que está alrededor de la aplicación con la anotación @EnvironmentObject. Más información en: https://www.hackingwithswift.com/quick-start/swiftui/how-to-use-environmentobject-to-share-data-between-views El método requestAuthorization: // Request authorization to access HealthKit. func requestAuthorization() { // Requesting authorization. /// - Tag: RequestAuthorization let writeDataTypes: Set<HKSampleType> = dataTypesToWrite() let readDataTypes: Set<HKObjectType> = dataTypesToRead() // requset authorization healthStore.requestAuthorization(toShare: writeDataTypes, read: readDataTypes) { (success, error) in if !success { // Handle the error here. } else { DispatchQueue.main.async { self.authorizedHK = true } } } } Donde healthStore es el objeto de HKHealthStore(). La HKHealthStore actua como la base de datos de healthdata en iOS. dataTypesToWrite y dataTypesToRead son los objetos que nos gustaría consultar en la base de datos. La autorización necesita un propósito y esto se hace en el archivo Info.plist xml al añadir: <key>NSHealthClinicalHealthRecordsShareUsageDescription</key> <string>Read data for IrisExporter</string> <key>NSHealthShareUsageDescription</key> <string>Send data to IRIS</string> <key>NSHealthUpdateUsageDescription</key> <string>Write date for IrisExporter</string> Cómo conectarse al repositorio de FHIR Para esta parte utilicé el paquete FHIR de Smart-On-FHIR: https://github.com/smart-on-fhir/Swift-FHIR Utilicé la clase FHIROpenServer. private func test() { progress = true let url = URL(string: self.url) swiftIrisManager.fhirServer = FHIROpenServer(baseURL : url! , auth: nil) swiftIrisManager.fhirServer.getCapabilityStatement() { FHIRError in progress = false showingPopup = true if FHIRError == nil { showingSuccess = true textSuccess = "Connected to the fhir repository" } else { textError = FHIRError?.description ?? "Unknow error" showingSuccess = false } return } } Esto crea un nuevo objeto fhirServer en la instancia única swiftIrisManager. A continuación utilizamos la función getCapabilityStatement() Si podemos recuperar la capabilityStatement del servidor FHIR, significará que nos conectamos correctamente al repositorio FHIR. Este repositorio no está en HTTPS, de forma predeterminada apple bloquea este tipo de comunicación. Para permitir el soporte HTTP, el archivo Info.plist xml se edita de la siguiente forma: <key>NSAppTransportSecurity</key> <dict> <key>NSExceptionDomains</key> <dict> <key>localhost</key> <dict> <key>NSIncludesSubdomains</key> <true/> <key>NSExceptionAllowsInsecureHTTPLoads</key> <true/> </dict> </dict> </dict> Cómo guardar un paciente en el Repositorio de FHIR La operación básica es verificar primero si el paciente ya existe en el repositorio Patient.search(["family": "\(self.lastName)"]).perform(fhirServer) Esto realiza una búsqueda de pacientes con el mismo apellido. Aquí podemos imaginar otros escenarios como con Oauth2 y JWT token para unir al patientid con su token. Pero para esta demo, mantenemos las cosas sencillas. A continuación, si el paciente existe, lo recuperamos; de lo contrario creamos el paciente: func createPatient(callback: @escaping (Patient?, Error?) -> Void) { // Create the new patient resource let patient = Patient.createPatient(given: firstName, family: lastName, dateOfBirth: birthDay, gender: gender) patient?.create(fhirServer, callback: { (error) in callback(patient, error) }) } Cómo extraer datos del HealthKit Se realiza consultando el Healthkit Store (HKHealthStore()) Aquí consultamos los pasos. Prepare la consulta con el predicado. //Last week let startDate = swiftFhirIrisManager.startDate //Now let endDate = swiftFhirIrisManager.endDate print("Collecting workouts between \(startDate) and \(endDate)") let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: HKQueryOptions.strictEndDate) A continuación, la misma consulta con su tipo de datos (HKQuantityType.quantityType(forIdentifier: .stepCount)) y el predicado. func queryStepCount(){ //Last week let startDate = swiftFhirIrisManager.startDate //Now let endDate = swiftFhirIrisManager.endDate print("Collecting workouts between \(startDate) and \(endDate)") let predicate = HKQuery.predicateForSamples(withStart: startDate, end: endDate, options: HKQueryOptions.strictEndDate) let query = HKSampleQuery(sampleType: HKQuantityType.quantityType(forIdentifier: .stepCount)!, predicate: predicate, limit: HKObjectQueryNoLimit, sortDescriptors: nil) { (query, results, error) in guard let results = results as? [HKQuantitySample] else { return } process(results, type: .stepCount) } healthStore.execute(query) } Cómo convertir los datos de HealthKit a FHIR En esta parte, utilizamos el paquete HealthKitToFHIR de Microsoft https://github.com/microsoft/healthkit-to-fhir Es un paquete útil que ofrece factories para convertir HKQuantitySample a FHIR Observation let observation = try! ObservationFactory().observation(from: item) let patientReference = try! Reference(json: ["reference" : "Patient/\(patientId)"]) observation.category = try! [CodeableConcept(json: [ "coding": [ [ "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "activity", "display": "Activity" ] ] ])] observation.subject = patientReference observation.status = .final print(observation) observation.create(self.fhirServer,callback: { (error) in if error != nil { completion(error) } }) Donde el elemento es un HKQuantitySample; en nuestro caso es un tipo stepCount. El factory hace la mayor parte del trabajo de convertir 'unit' y 'type' a FHIR codeableConcept y 'value' a FHIR valueQuantity. La referencia al patientId se realiza manualmente al emitir una referencia json fhir. let patientReference = try! Reference(json: ["reference" : "Patient/\(patientId)"]) Lo mismo se hace para la categoría : observation.category = try! [CodeableConcept(json: [ "coding": [ [ "system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "activity", "display": "Activity" ] ] ])] Al final, se crea la observación en el repositorio fhir: observation.create(self.fhirServer,callback: { (error) in if error != nil { completion(error) } }) Backend (FHIR) No hay mucho que decir, se basa en la plantilla fhir de la Comunidad de InterSystems : https://openexchange.intersystems.com/package/iris-fhir-template Frontend Se basa en los trabajos de Henrique, que es un buen front-end para los repositorios FHIR hechos en jquery. https://openexchange.intersystems.com/package/iris-fhir-portal Este artículo está etiquetado como "Mejores prácticas" ("Best practices") (Los artículos con la etiqueta "Mejores prácticas" incluyen recomendaciones sobre cómo desarrollar, probar, implementar y administrar mejor las soluciones de InterSystems).
Artículo
David Reche · 12 abr, 2021

Cómo empezar a desarrollar con InterSystems IRIS en menos de un minuto

¡Hola desarrolladores! A menudo me preguntan cómo instalar IRIS, cómo conectarse a IRIS desde el IDE, cómo configurar el entono, compilar, depurar, mantener el repositorio... Os muestro aquí posiblemente el camino más corto para configurar todo el entorno y empezar a desarrollar con ObjectScript en InterSystems IRIS. Prerrequisitos Asegúrate de tener Git, Docker y VSCode instalados. Instala las extensiones de Docker y ObjectScript en VSCode. Inicia sesión o crea una cuenta en Github. ¡Vamos allá! Para empezar a desarrollar, sigue estos pasos: Usa el repositorio de plantillas y crea tu propio repositorio en Github Clona tu repositorio con git en tu escritorio en terminal Abre el repositorio en VSCode Usa docker-compose.yml para crear el contenedor con InterSystems IRIS e importa todo el ObjectScript desde la carpeta /src al USER namespace del contenedor IRIS Abre un terminal a IRIS y llama al código importado de ObjectScript Haz un cambio en el código de ObjectScript y compila Haz cambios a tu repositorio GitHub haciendo commit y push Echa un vistazo a esta grabación de pantalla: O a este vídeo más largo con todas las explicaciones. ¿Y ahora qué? Empieza a aprender ObjectScript con la Formación online y la Documentación. Echa un vistazo también a las publicaciones con la etiqueta Principiante, Mejores Prácticas y ObjectScript code guidelines. Happy coding!
Anuncio
Esther Sanchez · 26 abr, 2021

Ganadores del Concurso para Desarrolladores de InterSystems: Developer Tools

¡Hola Comunidad! El concurso sobre herramientas para desarrolladores ha terminado. ¡Muchas gracias a todos los que habéis participado! Ya podemos anunciar los ganadores... Un fuerte aplauso para estos desarrolladores y sus aplicaciones: 🏆 Nominación de los expertos - los ganadores fueron elegidos por un jurado especialmente formado para el concurso: 🥇 1er puesto y $4,000 para el proyecto Server Manager for VSCode de @John.Murray 🥈 2º puesto y $1,500 para el proyecto Config-API de @Lorenzo.Scalese 🥈 2º puesto y $1,500 para el proyecto zpm-explorer de @Henrique.GonçalvesDias y @José.Pereira 🏆 Nominación de la Comunidad - las aplicaciones que recibieron el mayor número de votos: 🥇 1er puesto y $750 para el proyecto Server Manager for VSCode de @John.Murray 🥈 2º puesto y $500 para el proyecto zpm-explorer de @Henrique.GonçalvesDias and @José.Pereira 🥉 3er puesto y $250 para el proyecto Config-API de @Lorenzo.Scalese ¡Enhorabuena a todos! Y gracias de nuevo a todos los participantes, por el esfuerzo e ingenio que habéis puesto en el concurso 💡
Anuncio
Esther Sanchez · 28 abr, 2021

Nueva Guía de Migración del Servidor de InterSystems IRIS

El equipo de documentación en el departamento de Servicios de Formación de InterSystems se complace en anunciar la nueva Guía de Migración del Servidor de InterSystems IRIS ¿Alguna vez has querido copiar, mover o clonar una instancia de InterSystems IRIS a un nuevo servidor? Quizá el sistema operativo en el antiguo servidor ya no está soportado. O quizá quieres añadir un nuevo miembro a un mirror existente. Migrar las bases de datos de tu aplicación es fácil, pero... ¿qué pasa con tus tareas, usuarios, roles, recursos y otras configuraciones de seguridad? ¿Qué necesitas para migrar y cuál es la mejor forma de hacerlo? La nueva Guía de Migración del Servidor de InterSystems IRIS ofrece los pasos a seguir para ayudarte a planificar y realizar tu migración. Los temas principales que trata son: Provisión del nuevo servidor Copia de la clave de licencia Migración del Configuration Parameter File (CPF) Migración de las bases de datos Exportación e importación de las configuraciones de seguridad (incluyendo usuarios, roles, recursos, servicios y aplicaciones) Exportación e importación de las tareas del Task Manager Exportación e importación de código personalizado en el namespace %SYS Uso de la migración para crear un nuevo miembro mirror Uso de la migración para pasar un mirror a nuevos servidores ¡Ya puedes consultar la Guía de Migración del Servidor de InterSystems IRIS!
Anuncio
David Reche · 6 mayo, 2021

Nuevo concurso para desarrolladores: InterSystems FHIR Accelerator

¡Hola Comunidad! ya está preparado el nuevo concurso de programación de InterSystems: 🏆 InterSystems FHIR Accelerator 🏆 Envía una aplicación que utilice InterSystems FHIR-as-a-service en AWS o que ayude a desarrollar soluciones utilizando InterSystems IRIS FHIR Accelerator. Estará activo durante cuatro semanas: del 10 de mayo al 6 de junio de 2021. Total en premios: $8,750 Premios 1. Nominación de los expertos - los ganadores de esta categoría serán elegidos por un jurado especialmente formado para el concurso. Los premios serán: 🥇 1er puesto - $4,000 🥈 2º puesto - $2,000 🥉 3er puesto - $1,000 2. Nominación de la Comunidad - en esta categoría ganará la aplicación que obtenga el mayor número total de votos. Los premios serán: 🥇 1er puesto - $1,000 🥈 2º puesto - $500 🥉 3er puesto - $250 Si dos o más participantes obtienen la misma cantidad de votos, todos serán considerados ganadores y el dinero del premio se repartirá entre todos. ¿Quién puede participar? Cualquier miembro registrado en la Comunidad de Desarrolladores de cualquier país puede participar en el concurso, excepto los empleados de InterSystems. Regístrate aquí en la Comunidad si aún no tienes una cuenta. 👥 Los desarrolladores pueden hacer equipos para crear una aplicación colaborativa. Se permiten de 2 a 5 desarrolladores en cada equipo. No os olvidéis de nombrar a todos los miembros del equipo en el README de vuestra aplicación – los perfiles de usuario de la DC. Duración del concurso 🛠 Del 10 al 30 de mayo: Fase de desarrollo de aplicaciones y registro. ✅ Del 31 de mayo al 6 de junio: Fase de votación. 🎉 7 de junio: Anuncio de los ganadores. Nota: Los desarrolladores pueden mejorar sus aplicaciones a lo largo de todo el período de registro y de votación. Tema del concurso 💡 InterSystems IRIS FHIR Accelerator as a service 💡 Soporte para FHIR R4, incluyendo el U.S. Core Implementation Guide Portal del desarrollador para probar y entender las APIs de FHIR Múltiples métodos de autenticación, incluyendo API Key y OpenID Connect Importación en lote de bundles FHIR a través de sFTP Registro de FHIR request data Construido sobre infraestructura AWS que es certificada ISO 27001:2013 y HITRUST para soportar HIPAA y GDPR Envía una aplicación que utilice InterSystems FHIR-as-a-service en AWS o ayude a desarrollar soluciones utilizando InterSystems IRIS FHIR Accelerator. Requisitos: Aplicaciones aceptadas: aplicaciones nuevas en Open Exchange o que ya existan, pero que presenten una mejora significativa. Nuestro equipo revisará todas las aplicaciones antes de aprobarlas para el concurso. La aplicación puede crearse con CUALQUIER tecnología que use InterSystems IRIS FHIR as a service. La aplicación debe ser Open Source y publicarse en GitHub. El fichero README de la aplicación debe estar en inglés, contener los pasos de la instalación y un vídeo-demo y/o una descripción de cómo funciona la aplicación. El código fuente de la parte de InterSystems ObjectScript (si existe) estará disponible en formato UDL (no XML). Ejemplo. Estos requisitos están sujetos a cambios. Recursos útiles 1. Plantilla recomendada con la que empezar: próximamente 2. Documentación: InterSystems IRIS FHIR Accelerator Service 3. Cursos online sobre el soporte a InterSystems FHIR: Learn FHIR for Software Developers Building SMART on FHIR Apps with InterSystems FHIR Sandbox Exploring FHIR Resource APIs Using InterSystems IRIS for Health to Reduce Readmissions Connecting Devices to InterSystems IRIS for Health Monitoring Oxygen Saturation in Infants FHIR Integration QuickStart 4. Vídeos: Getting Started with the InterSystems IRIS FHIR Accelerator Service on AWS Otros vídeos relacionados con FHIR: 6 Rapid FHIR Questions SMART on FHIR: The Basics Developing with FHIR - REST APIs FHIR in InterSystems IRIS for Health FHIR API Management Searching for FHIR Resources in IRIS for Health Además, echa un vistazo a la Lista de reproducción de FHIR en el canal de YouTube de la Comunidad de Desarrolladores. 5. Dudas sobre FHIR: Echa un vistazo a la etiqueta "FHIR" en la Comunidad de Desarrolladores Puedes hacer preguntas en community.fhir.org 6. Cómo presentar una aplicación a los concursos: Cómo publicar una aplicación en Open Exchange Cómo participar en los concursos Jurado Las reglas sobre los votos serán anunciadas pronto. Así que... Ready. Set. Code. ¡Suerte a todos! ❗️ Echa un vistazo a los Términos Oficiales del Concurso.❗️
Anuncio
Esther Sanchez · 3 jun, 2021

¡Empieza la fase de votación del Concurso para Desarrolladores de InterSystems!

¡Hola Comunidad! Hemos extendido hasta el día 2 de junio la duración del concurso InterSystems FHIR Accelerator, así que el plazo ha terminado definitivamente y hoy empieza la fase de votación, que durará hasta este domingo 6 de junio. Vamos a elegir las mejores soluciones desarrolladas usando InterSystems IRIS FHIR Accelerator Service (FHIRaaS) en AWS. ➡️ ¡Aquí puedes elegir y votar la mejor! ¿Cómo se vota? Nominación de los expertos: Nuestro experimentado jurado elegirá las mejores apps que ganarán en la categoría "Nominación de los expertos". Estos son los miembros del jurado: ⭐️ @Regilo.Souza, InterSystems Service Executive⭐️ @Anton.Umnikov, InterSystems Senior Cloud Solution Architect⭐️ @Patrick.Jamieson3621, InterSystems Product Manager - Health Informatics Platform⭐️ @Evgeny.Shvarov, InterSystems Developer Ecosystem Manager Nominación de la Comunidad: Para cada miembro de la Comunidad, la puntuación más alta se elige de dos categorías: Condiciones Puesto 1º 2º 3º Si has publicado un artículo en la CD y has subido una app a Open Exchange (OEX) 9 6 3 Si has publicado al menos un artículo en la CD o has subido una app a OEX 6 4 2 Si has hecho alguna contribución válida a la CD (publicar un comentario/pregunta, etc.) 3 2 1 Nivel Puesto 1º 2º 3º Nivel VIP en Global Masters o Product Manager de InterSystems Corporation 15 10 5 Nivel Ambassador en Global Masters 12 8 4 Nivel Experto en Global Masters o Moderador de la CD 9 6 3 Nivel Specialist en Global Masters 6 4 2 Nivel Advocate en Global Masters o Empleado de InterSystems Corporation 3 2 1 Y un par de cambio más: En este concurso, ¡hemos decidido que el número de votos sea secreto! Así, el número de votos de cada aplicación estará oculto. Y una vez al día publicaremos la clasificación en los comentarios a esta publicación. El orden en el que se mostrarán los proyectos en la página del concurso será el orden de presentación de los proyectos: las aplicaciones presentadas antes aparecerán primero en la lista. P.D. Podéis suscribiros a esta publicación haciendo clic en el icono de la campana para ser notificados cuando haya nuevos comentarios. Requisitos para poder votar: Registrarte en Open Exchange – puedes hacerlo con tus credenciales de acceso a la Comunidad. Haber participado de alguna manera en la Comunidad de Desarrolladores (haciendo una pregunta, respondiendo a alguien, escribiendo un artículo, subiendo aplicaciones a Open Exchange, etc.) – entonces verás el botón "Vote" disponible. En esta publicación puedes conocer todas las opciones para participar en la Comunidad de Desarrolladores. Si en algún momento quieres cambiar el voto, puedes cancelar el que hayas dado y dárselo a otra aplicación - tienes hasta el domingo 6 de junio para hacerlo! ¡A votar! Nota: Los participantes en el concurso pueden corregir errores ("bugs") e introducir mejoras en sus aplicaciones durante esta semana. Para no perderte los cambios, suscríbete a los avisos sobre nuevas actualizaciones!
Anuncio
Esther Sanchez · 7 jun, 2021

Ganadores del Concurso para Desarrolladores: InterSystems FHIR Accelerator

¡Hola Comunidad! El concurso InterSystems FHIR Accelerator ha terminado. ¡Muchas gracias a todos los que habéis participado! Ya podemos anunciar los ganadores... Un fuerte aplauso para estos desarrolladores y sus aplicaciones: 🏆 Nominación de los expertos - los ganadores fueron elegidos por un jurado especialmente formado para el concurso: 🥇 1er puesto y $4,000 para el proyecto FHIR Data Studio Connector de @Dmitry.Maslennikov 🥈 2º puesto y $2,000 para el proyecto FHIR Simple Demo Application de @Marcello.Correa 🥉 3er puesto y $1,000 para el proyecto iris-on-fhir de @Henrique.GonçalvesDias y @José.Pereira 🏆 Nominación de la Comunidad - las aplicaciones que recibieron el mayor número de votos: 🥇 1er puesto y $1,000 para el proyecto iris-on-fhir de @Henrique.GonçalvesDias y @José.Pereira 🥈 2º puesto y $500 para el proyecto FHIR Data Studio Connector de @Dmitry.Maslennikov 🥉 3er puesto y $250 para el proyecto FHIR Simple Demo Application de @Marcello.Correa ¡Enhorabuena a todos! Y gracias de nuevo a todos los participantes, por el esfuerzo e ingenio que habéis puesto en el concurso.