Limpiar filtro
Anuncio
David Reche · 14 jul, 2020
¡Hola Comunidad!
El plazo para participar en el Cuarto concurso para desarrolladores de InterSystems ya ha terminado y empieza la fase de votación.
Hemos recibido 5 aplicaciones, así que ya puedes elegir la mejor solución habilitada para IA y ML en 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 19 de julio 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
David Reche · 25 ago, 2020
¡Hola desarrolladores!
Estamos en la semana de votar en el InterSystems IRIS for Health FHIR Contest!
Así que es hora de votar a la mejor solución FHIR construida con InterSystems IRIS for Health.
🔥 Tú decides: VOTA AQUÍ 🔥
¿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 7días 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
David Reche · 15 sep, 2020
¡Hola desarrolladores!
¡Ya está listo el nuevo concurso para crear soluciones de código abierto utilizando InterSystems IRIS Data Platform!
El tema de este sexto concurso es Full Stack.
Estará activo durante tres semanas: del 21 de septiembre al 11 de octubre.
Premios
1. Nominación de los expertos - los ganadores serán elegidos por un jurado especialmente formado para el concurso. Los premios serán:
🥇 1er puesto - $2,000
🥈 2º puesto - $1,000
🥉 3er puesto - $500
2. Nominación de la Comunidad - ganará la aplicación que obtenga el mayor número total de votos. Los premios serán:
🥇 1er puesto - $1,000
🥈 2º puesto - $500
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 >>
Duración del concurso
Del 21 de september al 4 de octubre: Dos semanas para subir las aplicaciones a Open Exchange (durante este período, se podrán modificar los proyectos).
Del 5 al 11 de octubre: Una semana para votar.
Los ganadores serán anunciados el lunes 12 de octubre.
Tema del concurso
💡 Aplicaciones Full Stack 💡
Desarrollo de una solución Full Stack utilizando InterSystems IRIS. Por "full stack" queremos decir que la solución tiene al menos una aplicación con frontend web o móvil que usa datos almacenados en InterSystems IRIS via REST API, Native API, JDBC, o IRIS Web Gateway.
La aplicación debe funcionar en IRIS Community Edition o IRIS for Health Community Edition o IRIS Advanced Analytics Community Edition.
La aplicación debe ser Open Source y publicarse en GitHub.
Y las aplicaciones que implementen unos requisitos tecnológicos adicionales, obtendrán bonus tecnológicos.
Recursos adicionales
1. Plantillas Docker IRIS que puedes tomar como punto de partida para una solución Full Stack:
Basic InterSystems IRIS Docker template
IRIS REST API template
Native API template
IntegratedML template
IRIS Analytics template
2. Cómo enviar una aplicación al concurso:
How to publish an application on Open Exchange
How to submit an application for the contest
3. Cursos online:
Implementing RESTful Applications
4. Vídeos:
REST API design and Development
REST API in 5 minutes
Data-Driven Web Apps
Jurado
Consulta los Criterios del jurado y las Reglas sobre los votos.
Así que... Ready. Set. Code.
¡Suerte a todos!
❗️ Echa un vistazo a los Términos Oficiales del Concurso.❗️
Anuncio
Esther Sanchez · 16 oct, 2020
¡Hola Comunidad!
Os traemos un nuevo vídeo, disponible en el canal de YouTube de la Comunidad de Desarrolladores en inglés:
⏯ Big Data en InterSystems IRIS
Uno de los principales beneficios de usar InterSystems IRIS para crear tus aplicaciones, es su capacidad de recoger y gestionar, de forma eficiente, inmensas cantidades de datos. InterSystems IRIS ofrece diferentes opciones para abordar los retos del "big data", como el conector Spark de InterSystems IRIS, sharding incorporado y herramientas de "machine learning".
➡️ Puedes aprender más sobre "Big Data" es este "curso online".
Esperamos que os resulte útil
Anuncio
Esther Sanchez · 5 oct, 2020
¡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
¡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
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
¡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
¡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
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
¡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
¡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).

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
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
¡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
¡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 💡