Limpiar filtro
Anuncio
Esther Sanchez · 18 nov, 2021
¡Hola Comunidad!
Hemos grabado el webinar que hicimos ayer y lo hemos subido al canal de YouTube de la Comunidad de Desarrolladores en español. Si os perdisteis el webinar o lo queréis volver a ver con más detalle, ya está disponible la grabación!
Alberto Fuentes es uno de los cracks de InterSystems. Así que... si queréis saber todo sobre la Analítica de datos y el Reporting, ¡no os perdáis el vídeo!
⏯ Self-Service Analytics & Reporting
Por cierto, en las listas de reproducción del canal de YouTube de la Comunidad de Desarrolladores en español podéis ver todos los webinars que hemos realizado (¡ya llevamos quince!), varios tutoriales, trucos, demos...
¡Echadle un ojo y dadle al play! ▶️
Artículo
Alberto Fuentes · 20 mayo, 2022
Si estás desarrollando soluciones en IRIS y quieres utilizar Git, ¡es genial! Sólo tienes que utilizar VSCode con un repositorio git local y enviar los cambios al servidor, así de fácil.
Pero qué sucede si:
* Colaboras con otros desarrolladores en un entorno de desarrollo remoto compartido y quieres evitar la edición simultánea del mismo archivo
* Utilizas editores basados en el portal de administración para BPL, DTL, tablas dinámicas, cuadros de mando, etc. y quieres incluir esos elementos en el control de código de forma sencilla.
* Aún utilizas Studio para realizar algunas cosas y/o ocasionalmente vuelves a usarlo desde VSCode. O tu equipo todavía no ha adoptado completamente VSCode y algunos miembros del equipo todavía quieren utilizar Studio
* Trabajas en varios proyectos diferentes al mismo tiempo en el mismo *namespace* - digamos, en varios paquetes definidos mediante InterSystems Package Manager - y quieres trabajar con todos ellos desde una vista de edición de isfs (en vez de en varios proyectos distintos) con los cambios rastreados automáticamente en el repositorio de git apropiado
En ese caso no era tan sencillo... hasta finales del año pasado, cuando lanzamos **Git para Entornos de Desarrollo Compartidos ([Open Exchange](https://openexchange.intersystems.com/package/Git-for-Shared-Development-Environments) / [GitHub](https://github.com/intersystems/git-source-control)).**
Puedes descargar esta extensión mediante InterSystems Package Manager:
```
zpm "install git-source-control"
```
Antes de esto, las opciones para controlar las fuentes con Git eran una [antigua extensión de Git, principalmente para Windows, y sólo para entornos de desarrollo local](https://openexchange.intersystems.com/package/Cach%C3%A9-Tortoize-Git) y un [proyecto más reciente de Open Exchange basado en él pero más sencillo](https://openexchange.intersystems.com/package/Git-for-IRIS). También está [Port](https://openexchange.intersystems.com/package/Port), que únicamente maneja archivos y es independiente del sistema de control de versiones.
¿Qué tiene git-source-control que no tienen estos paquetes?
* **Una integración sencilla con git, basada en un menú**, que funciona en cualquier sistema operativo
* **Una interfaz de usuario de git** para cubrir un conjunto de operaciones comunes de git, sin tener que conectarse con SSH al entorno remoto.
* **Control de concurrencia** para múltiples usuarios que trabajan en el mismo entorno al mismo tiempo. Una vez que realizas cambios en una clase/rutina/etc., se vuelve tuya hasta que se descarten o se confirmen los cambios. (Sin embargo, tenemos formas de evitarlo cuando es necesario)
* **Integración con el administrador de paquetes**: simplemente usa zpm mediante "load -dev /path/to/package" y si "/path/to/package/.git" existe, los cambios en los recursos de tu paquete se reflejarán automáticamente en el sitio correcto del sistema de archivos del servidor. La interfaz de usuario también funciona con esto, basada en la clase/etc. desde la que se ejecuta.
Todo esto funciona desde VSCode:
Spoiler
Y Studio:
Spoiler
Para que tengas el control y la visión de tu repositorio de git:
Spoiler
Esperamos que esto permita desarrollar con éxito las soluciones basadas en IRIS.
¡Agradecemos vuestros comentarios!
NOTA: Para ver la presentación del lanzamiento en el Global Summit de 2021, consultad este artículo: https://community.intersystems.com/post/video-git-gitlab-shared-development-environments
Este artículo ha sido 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
Mario Sanchez Macias · 15 sep, 2022
En el Centro de Soporte Internacional (WRC), vemos a menudo clientes que se han encontrado un problema al visualizar las páginas de catálogos SOAP en el navegador. Estas páginas nos sirven para visualizar el WDSL y poder testear los métodos y servicios descritos en el web service. En este artículo voy a explicar por qué se encuentran este error, y también propondré una solución. Esta explicación se centra en los síntomas observados en InterSystems IRIS, pero se ha podido ver un comportamiento similar en versiones más recientes de Caché.
El problema:
Estás intentando crear nuevos Servicios Web SOAP en InterSystems IRIS. Cuando vas a visualizar el Catálogo SOAP para ver lo que has creado hasta ese momento, aparece este error en tu navegador:
En CSP Gateway más antiguos e instancias de Caché, puede aparecer esto en su lugar:
Por qué sucede esto:
Cuando se intenta visualizar una página de catálogo SOAP, IRIS necesita usar las clases %SOAP.WebServiceInfo y %SOAP.WebServiceInvoke internamente. Sin embargo, no permitimos a las aplicaciones de usuarios acceder a la mayoría de las clases "%".
Esta información se detalla en la documentación antigua de Caché: https://cedocs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCSP_config#GCSP_appaccess
Cómo solucionar el problema:
Recomendamos encarecidamente usar un cliente Web SOAP para generar solicitudes SOAP HTTP que llame al Servicio Web SOAP en vez de usar las páginas de catálogo.
Sin embargo, si aún necesitas acceder a las páginas de catálogo SOAP en un entorno de PRUEBA, puedes solucionarlo configurando estos nodos globales:
%SYS>set ^SYS("Security","CSP","AllowClass",webapplicationname,"%SOAP.WebServiceInfo")=1
%SYS>set ^SYS("Security","CSP","AllowClass",webapplicationname,"%SOAP.WebServiceInvoke")=1
Donde la variable “webapplication” contiene el nombre de tu aplicación actual. Por ejemplo, si estabas intentando visualizar un catálogo SOAP para una Aplicación Web llamada "/csp/test/", necesitarás configurar estos nodos globales:
%SYS>s ^SYS("Security","CSP","AllowClass","/csp/test/","%SOAP.WebServiceInfo")=1
%SYS>s ^SYS("Security","CSP","AllowClass","/csp/test/","%SOAP.WebServiceInvoke")=1
De nuevo, recomendamos que se habiliten estas configuraciones solo en entornos de PRUEBA.
En este enlace podéis encontrar más información sobre cómo acceder al Catálogo SOAP y a las páginas de Prueba en InterSystems IRIS: https://docs.intersystems.com/irislatest/csp/docbook/Doc.View.cls?KEY=GSOAP_WebService#GSOAP_service_catalog_page
Anuncio
Esther Sanchez · 27 dic, 2021
¡Hola desarrolladores!
¡Muchísimas gracias a todos los que habéis participado en el 2º Concurso de Artículos Técnicos! ¡Ahora tenemos un montón de contenido nuevo e interesante para leer!:
🌟 25 artículos increíbles 🌟
¡Y ya podemos anunciar los ganadores!
Estos son los ganadores y sus artículos:
⭐️ Premio de los expertos – los ganadores han sido elegidos por expertos de InterSystems:
🥇 Primer puesto: Data anonymization, introducing iris-Disguise escrito por @Henry.HamonPereira
🥈 Segudo puesto: IntegratedML hands-on lab escrito por @José.Pereira
🥉 Tercer puesto ex-aequo:
VSCode-ObjectScript on GitHub escrito por @Dmitry.Maslennikov
Invite the FHIR® Accelerator Service to your Kubernetes Microservice Party escrito por @Ron.Sweeney1582
⭐️ Premio de la Comunidad – el ganador es elegido por los miembros de la Comunidad y es el artículo con mayor número de "likes":
🏆 Data anonymization, introducing iris-Disguise escrito por @Henry.HamonPereira
¡Enhorabuena a todos los ganadores!
⭐️ En esta convocatoria, queremos recompensar el esfuerzo especial de dos autores con el mayor número de artículos presentados al concurso:
@Yuri.Gomes: 4 artículos
@MikhailenkoSergey: 3 artículos
Podrán elegir entre unos auriculares Apple AirPods Pro O un libro electrónico Amazon Kindle 8G Paperwhite O Raspberry Pi 4 8GB con InterSystems IRIS Community Edition ARM instalado.
¡Un fuerte aplauso para todos los participantes!
@Robert.Cemper1003
@Henrique.GonçalvesDias
@Muhammad.Waseem
@Rob.Tweed
@John.Murray
@alex.kosinets
@Irene.Mikhaylova
@Oliver.Wilms
@Rizmaan.Marikar2583
¡GRACIAS por vuestro esfuerzo y por contribuir en la Comunidad!!!
¡FELICES FIESTAS, amigos! 🎅
P.D. Los premios están en fabricación. Contactaremos con los ganadores cuando los tengamos disponibles.
Anuncio
Esther Sanchez · 17 mar, 2023
¡Hola Comunidad!
Estamos encantados de invitar de nuevo a todos nuestros clientes, partners, desarrolladores y miembros de la Comunidad a nuestra Convención Anual: InterSystems Global Summit 2023!
Asistiendo al Global Summit tendréis la oportunidad de conectar con los desarrolladores de producto más innovadores, los usuarios más activos que impulsan nuestra tecnología a nuevos límites, las personas con las mentes más creativas que están sacudiendo las universidades y los Consejos de Administración... Todo en el mismo sitio. ¡Y ya os podéis inscribir!
➡️ InterSystems Global Summit 2023
🗓 Fechas: 4-7 junio, 2023
📍 Dónde: The Diplomat Beach Resort, Hollywood, Florida (EEUU)
Durante la Convención, mostraremos cómo otros clientes utilizan nuestra tecnología para innovar, qué tendencias afectan a nuestras innovaciones futuras, cómo vamos a mejorar nuestros productos y cuál va a ser nuestra oferta de nuevos productos.
Aquí os muestro un resumen de la agenda.
Domingo, 4 de junio
Golf Outing or Morning Social ActivitiesBadge Pick-upTechnology BootcampCertification ExamsWomen's MeetupWelcome Reception
Lunes, 5 de junio
Welcome and KeynotesBreakout SessionsHealthcare Leadership ConferencePartner Pavilion 1:1 MeetingsCertification ExamsFocus GroupsTech ExchangeAffinity SessionsEvening Drinks & Demos
Martes, 6 de junio
KeynotesBreakout SessionsPartner Pavilion 1:1 Meetings Certification Exams Focus GroupsTech ExchangeAffinity SessionsEvening Social Event
Miércoles, 7 de junio
Keynotes Breakout Sessions Partner Pavilion 1:1 Meetings Certification ExamsFocus Groups Tech Exchange Farewell Reception
Podéis consultar más detalles sobre la agenda en esta página.
¡Esperamos veros a muchos de vosotros en Florida!
Artículo
Alberto Fuentes · 4 jul, 2023
Hoy en día es muy común que los datos que necesitas vengan de **diferentes fuentes** (e.g. aplicaciones externas e internas, distintas bases de datos y servicios, APIs, etc.). Además, seguro que tienes **múltiples tipos de consumidores diferentes** (e.g. usuarios finales, otras aplicaciones, servicios que publicas a terceros, etc.) y cada uno necesitará acceder a la información de forma diferente y para distintos objetivos. ¿Cómo construir una *capa* que de forma sencilla te permita gestionar estas necesidades? Hoy hablamos de **Data Fabric** 👈.

Un **Enterprise Data Fabric** realmente es una arquitectura que te ayuda a agilizar y simplificar el acceso a tus datos a lo largo de las distintas necesidades que tengas. Accede a datos de diferentes fuentes, los transforma y armoniza bajo demanda para hacerlos *usables* para diferentes patrones de consumo.
Es una arquitectura realmente interesante (¡y no lo digo sólo yo! 😄), de hecho en informes de Gartner aparece como "el futuro de la gestión de datos".
**[Smart Data Fabric](https://assets.intersystems.com/86/ae/3395d69548b7ba21ef015c7c0abd/what-is-smart-data-fabric-infographic.pdf)** sigue esta línea y añade además capacidades para incluir analytics, exploración de datos, explotación de algoritmos de machine learning directamente en esta capa y haciendo más fácil poder hacer análisis y construir aplicaciones. Y además es la visión que tenemos en InterSystems.
Comparto con vosotros un sencillo pero detallado ejemplo para que le echéis un vistazo directamente a algunas de las características de InterSystems IRIS que puede ayudaros a construir Smart Data Fabrics.
Si tenéis cualquier duda o aporte, por aquí estaré.
Artículo
David Reche · 1 jul, 2019
Hola a todos,En este artículo voy a hacer un paso a paso desde cero para la creación de una simple API REST mediante Node/Express conectada a una instancia de InterSystems IRIS.No voy a adentrarme en mucho detalle acerca de cómo trabajar con cualquiera de las tecnologías que menciono en el tutorial, pero dejaré enlaces a documentación adicional por si quieres aprender más. El objetivo es proporcionar una guía práctica de cómo configurar y conectar un backend node.js a InterSystems IRIS.Antes de meterle mano a todo esto, verifiquemos que tenemos node.js corriendo en nuestra máquina. Para lo cual ejecutaremos este comando:➜ node --versionv8.12.0La versión 8.12.0 (en este momento) es la actual versión LTS (Long Term support) de node.js.En caso de tener que instalarlo utiliza el siguiente enlace https://nodejs.org.Crear el directorio principal para el proyectoDesde la línea de comandos, ve al directorio donde quieres crear una nueva carpeta para contener el proyecto y crea un nuevo directorio para el mismo, después cambiaremos a ese directorio.➜ mkdir amazing_iris_project➜ cd amazing_iris_projectCrear una aplicación ExpressBien, este paso será tan directo como el paso anterior. No olvides ejecutar los comandos desde el directorio creado anteriormente.Dependiendo de la versión de node.js se instala el "Package Manager" (comando npm) y el "Package Runner" (comando npx). Con npm instalamos y actualizamos paquetes de forma sencilla y rápida. El comando npx nos permite ejecutar comandos sobre paquetes instalados.Puedes probar a ejecutar este divertido comando:➜ npx cowsay helloUsaré el "Express Application Generator" para crear rápidamente el esqueleto de una aplicación a la que llamaré "api". Usaremos el comando npx.➜ npx express-generator api➜ cd api➜ npm install➜ npm startVeamos que hemos hecho con estos comandos:He usado npx de npm para install express-generator globally.He usado el express-generator para crear la aplicación de express que hemos llamado api.Cambiamos al directorio de la API.Instalamos todas las librerías de las que depende el proyecto.Arrancamos la aplicación.En tu navegador escribe la siguiente URL http://localhost:3000/. Si todo ha ido bien, Verás una página de bienvenida como esta: ¡Enhorabuena! Esto significa que tenemos una aplicación básica de Express corriendo en nuestra máquina local. ¿Fácil verdad?Para parar la aplicación de Express, simplemente ejecuta `Ctrl + c` sobre la línea de comandos.Instalar el adaptador de InterSystems IRISnpm recupera todos los paquetes para ti excepto iris.node que debe copiarse manualmente. Así que deberemos copiar el fichero iris.node a la carpeta /node_module/iris (crear el directorio si no existe previamente). El fichero iris.node se puede obtener desde WRC o también desde el directorio /bin de una instancia de InterSystems IRIS.Hay que tener cuidado y chequear que el fichero del adaptador copiado sea de una versión compatible con la versión de nuestra instalación de node. En mi caso estoy usando la versión de node v8.12.0 así que necesitaré el fichero iris800.node (la idea es que la versión 8 de node coincide con el primer número del nombre del fichero del adaptador). Recuerda renombrar luego el fichero a iris.node al copiarlo a la carpeta.Puedes encontrar más detalle sobre el adaptador de node de InterSystems IRIS y sus versiones aqui.Configurar la conexión a la base de datosBien, podemos resolver esta cuestión de diferentes formas, pero hagámoslo simple. Vamos a crear un nuevo fichero db/database.js y escribiremos lo siguiente:const iris = require('iris/iris');const db = new iris.IRIS();module.exports = db;Con solo estas tres líneas estamos haciendo "público" al resto de componentes una referencia a una conexión de InterSystems IRIS.Conectarnos con la base de datosAhora, ya estamos preparados para decirle a nuestro servidor Express que abra una conexión cuando se inicie. Para ello vamos a editar el fichero bin/www y en cualquier lugar podemos escribir lo siguiente:const db = require('../db/database.js');const irisConfig = { ip_address: '127.0.0.1', tcp_port: 51773, username: 'superuser', password: '*********', namespace: 'USER'};En estas líneas de código estamos declarando dos objetos. El primer objeto es la referencia a la Base de Datos (desde el fichero que creamos en el paso anterior). El segundo objeto contiene la información necesaria para abrir la conexión (cambia lo necesario para ajustarse a tus necesidades, puerto, usuario, password, namespace, etc.).Después de esto, modificaremos la función onListening de esta manera:function onListening() { var addr = server.address(); var bind = typeof addr === 'string' ? 'pipe ' + addr : 'port ' + addr.port; debug('Listening on ' + bind); db.open(irisConfig, (error, result) => { if (error) { debug(result); } else { console.log('IRIS connection opened!'); } });}Lo que estamos haciendo es abrir la conexión a la base de datos una vez que el servidor Express esté levantado y preparado para escuchar peticiones.Puedes levantar el servidor para probar y comprobar si vemos el mensaje "IRIS connection opened!" ... en ese caso, bien hecho !!Puedes ir a por un café, te lo has ganado!! ¡Vamos a por más!¿Qué tal el café? ¿rico? listo, entonces ya es momento para divertirnos.Estando el servidor en ejecución ¿que pasa si vas al navegador web y pones la siguiente URL http://localhost:3000/users/?Pues..., vas a ver un mensaje "respond with a resource". ¿Qué carajo es esto? y ¿de donde está viniendo?Vale, te lo explico. Express usa un sistema de Routing para decidir cómo el endpoint (URI) de una aplicación responde a solicitudes de clientes (más información) y entonces... bueno mejor vamos a echar un ojo al código... si abres app.js puedes ver una línea como esta:var usersRouter = require('./routes/users');y luego otra como esta:app.use('/users', usersRouter);Con estas líneas estamos diciéndole a Express que cada solicitud HTTP a la localización /users debe ser derivada al código en /routes/users.js. Ok, veamos que hay dentro de este fichero y fíjate en esta función:/* GET users listing. */router.get('/', function(req, res, next) { res.send('respond with a resource');});Ahora lo entiendes ¿no? Finalmente no era tan complicado ¿verdad? ¿Qué te parece si utilizamos esta función y devolvemos alguna dato que recuperemos desde la instancia de Intersystems IRIS que tenemos conectada? Añade esta línea al principio del fichero:const db = require('../db/database');Y reescribe el método router.get: router.get('/', function(req, res, next) { db.get({global:'test'}, function (error, result) { if (error) { res.status(500).send(result); } else { res.status(200).send('global test='+result.data); } })});Este método ahora devolverá el valor almacenado dentro del InterSystems IRIS Global ^test.¡¡Perfecto!! ya casi lo tenemos. Pongamos algo en este global abriendo una sesión de terminal en IRIS. Podemos hacer algo como esto:root@iris:/# iris session IRISNode: iris, Instance: IRISUsername: superuserPassword: ****USER>set ^test="Hello from IRIS"Tendrás que detener y arrancar de nuevo el servidor para que se utilice el nuevo código.Usa el navegador para ir de nuevo a http://localhost:3000/users/. ¿Qué pasa ahora?Sí!! Lo hiciste!! Hagamos el baile de la victoria!! ¿Divertido? Bueno, está claro que este proyecto no hace mucho, pero puede ser el comienzo de una aplicación JavaScript Full Stack.Si quieres continuar, dame una estrella o aporta comentarios y vamos a por el título de Master Developer of Full Stack Cosmic Applications ever!!!
Artículo
David Reche · 14 jun, 2019
InterSystems IRIS 2019.2 introducirá nuevas funciones, muy interesantes. Una de las áreas con novedades que teneis que conocer es la Gestión de APIs. Para InterSystems IRIS, se ha añadido soporte de una metodología Design-First o API-First. Este método permite realizar primero el diseño de la especificación y después generar el lado del servidor automáticamente a partir de ella.AntecedentesLa iniciativa OpenAPI (https://www.openapis.org/) es una organización que da soporte a la especificación de un estándar para definir y describir APIs (https://github.com/OAI/OpenAPI-Specification). La especificación OpenAPI (OAS - Open API Specification) define una descripción de la interfaz (API) estándar e independiente de cualquier lenguaje de programación para crear API REST, la cual permite tanto a personas como a computadores descubrir y comprender las capacidades de un servicio sin la necesidad de acceder al código fuente, a documentos de apoyo adicionales o que inspeccionen el tráfico de la red. Cuando se define de forma apropiada mediante OpenAPI, el consumidor puede entender e interactuar con el servicio remoto, con la mínima cantidad de conocimientos que se necesitan para entender la lógica de la implementación. De forma similar a lo que se hizo en las descripciones para la interfaz de programación de bajo nivel, la especificación de la OpenAPI elimina las suposiciones cuando se llama a un servicio.Al diseñar la API, por lo general, utilizaremos el Swagger Editor u otra herramienta similar compatible con OAS para crear y obtener la especificación OAS en un formato JSON, cada vez que sea necesario.Una vez que se dispone de la descripción de la API en JSON OAS y está lista para implementarse, podemos generar la lógica de la API del lado del servidor utilizando la especificación OAS. En InterSystems IRIS 2019.2 podemos usar una nueva rutina ^%REST para generar de forma automática las clases donde se colocará el código que llamará a la lógica de negocio. Los métodos de estas clases se basan en convenciones de nomenclaturas, aunque se podrá definir el método y la clase en su especificación (mediante la propiedad operationId dentro del Swagger).Ejemplo del uso de la rutina REST de InterSystems IRIS:USER>do ^%REST REST Command Line Interface (CLI) helps you CREATE or DELETE a REST application Enter an application name or (L)ist all REST applications (L): acmeapiREST application not found: acmeapiDo you want to create a new REST application? Y or N (Y): File path or absolute URL of a swagger document.If no document specified, then create an empty application.OpenAPI 2.0 swagger: C:\myspec\acme.swagger.json OpenAPI 2.0 swagger document: C:\myspec\notification.swagger.jsonConfirm operation, Y or N (Y):-----Creating REST application: acmeapi-----CREATE acmeapi.specGENERATE acmeapi.dispCREATE acmenapi.implREST application successfully created. Create a web application for the REST application? Y or N (Y):Specify web application name. Default is /csp/api/acmeWeb application name: /csp/api/acme/v1 -----Deploying REST application: acmeapi-----Application acmeapi deployed to /csp/api/acme/v1 En este momento, para crear una API REST, solo puede utilizar la OpenAPI 2.0 de la especificación Swagger para construir la configuración de la API.Como se puede observar, mediante esta rutina se crean tres clases:<application>.spec: esta clase es el contenedor para el swagger spec (bloque XData de OpenAPI). Esta clase es de solo lectura.<application>.disp: es una clase de Dispatch, la cual está lista para utilizarse en la aplicación CSP. Extiende la clase %CSP.REST y define el UrlMap de XData. Esta clase es de solo lectura y se marca como una clase del sistema (que se oculta de forma predeterminada en Atelier).<application>.impl: en esta clase se implementan todos los métodos necesarios. Se deberá completar esta clase para que la API realice la funcionalidad para la cual fue diseñada.¿Qué sucede si ya desarrollé mi API?En InterSystems IRIS 2018.1, InterSystems introdujo una funcionalidad para el descubrimiento de servicios, la cual permite a los desarrolladores explorar las API REST desplegadas de manera remota. La incorporación de Swagger también nos permite generar una especificación OpenAPI (OAS) desde la aplicación REST que ya existe. Entonces, cualquier API que modifiquemos en InterSystems IRIS puede generar automáticamente la especificación swagger.Es posible consultar todas las API que están disponibles en el sistema mediante el administrador de la API:HTTP GET http://<host>:<port>/api/mgmnt/ Devuelve:HTTP GET http://<host>:<port>/api/mgmnt/ Returns:[..., { "name": "/csp/petstore/v2", "dispatchClass": "petstore.disp", "namespace": "USER", "resource": "", "swaggerSpec": "/api/mgmnt/v1/USER/spec/csp/petstore/v2", "enabled": true }]Además, la especificación Swagger de la API puede recuperarse con el método HTTP GET de la URL que se mostró mediante la propiedad swaggerSpec. Cualquier operación API que se defina por la especificación swagger original tiene una propiedad nueva definida por el nombre del método con el cual se debería implementar la acción:Por ejemplo:"x-ISC_ServiceMethod": "getPetById",Un asunto realmente divertido es que podemos utilizar esta api/mgmnt, no solo para descubrir algo, sino también para crear/consultar/eliminar la API que está en usoHTTP POST to /api/mgmnt/v2/<namespace>/<applicationName>HTTP GET to /api/mgmnt/v2/<namespace>/<applicationName>HTTP DELETE to /api/mgmnt/v2/<namespace>/<applicationName>IRIS API ExplorerIRIS Explorer es una aplicación de Angular 5, que aprovecha esta API con la finalidad de proporcionar una herramienta que sea atractiva visualmente para administrar las API en IRIS. Hagamos un recorrido rápido:Lo primero que debemos hacer es iniciar sesión en una instancia de IRIS InterSystems (de forma predeterminada busca una instancia local en el puerto 52773):Después de iniciar sesión, la aplicación realiza una consulta para recuperar todas las API que ya existen:Podemos eliminar una API que ya existe o crear una nueva. Para crear una nueva aplicación necesitamos proporcionar el namespace, el nombre de la aplicación y la especificación Swagger desde un archivo .json:Una vez que la API está creada podemos ver la especificación. Para hacer esto más divertido incorporé un Swager UI (https://github.com/swagger-api/swagger-ui).Y por supuesto podemos recuperar el JSON de la especificación OAS:Todo el código es abierto y depende de vosotros lo que useis o modifiqueis según vuestra conveniencia.La aplicación está disponible en Open Exchange y también en Github.¡Espero que os sea útil!
Pregunta
Yunier Gonzalez · 16 oct, 2019
Tengo una Duda respecto a la Instalación de IAM, es que realmente lo puedo usar con Docker, pero la pregunta es si existe la forma de instalarlo en un pc con Windows sin necesidad de Usar Docker. ¿Como seria la instalación en un Server Windows? He buscado, pero solo encuentro info asociada a Docker (Muy buena, por cierto). No se si me explico bien en mi pregunta. Saludos Muchas Gracias por la pronta respuesta. Entonces trabajaremos con Docker . Saludos Hola Yunier,
El componente IAM (InterSystems API Manager) actualmente sólo está disponible como imagen Docker.
Puedes intentar configurar Docker en tu Windows, o instalar IAM en otra máquina (física o virtual) sobre la que puedas hacer la instalación de Docker.
Anuncio
Esther Sanchez · 13 abr, 2020
¡Hola a tod@s!
Os invitamos a un nuevo webinar en español: "Interoperabilidad: Herramientas de productividad HL7", el 29 de abril, a las 16:00 CEST.
¿Qué vas a aprender?
Visión general y características fundamentales para el desarrollo eficiente de integraciones basadas en mensajería HL7
Manejo de distintos estándares y cómo navegar entre ellos
Por qué y cómo pasar de manera sencilla de otro motor de interfaz a la tecnología InterSystems
¡Te esperamos! Puedes inscribirte al webinar aquí >>
¡Recordad! Mañana miércoles 29, webinar gratuito sobre HL7 e interoperabilidad en salud, a las 16:00 CEST 👍 El webinar empieza en 10 minutos. ¡No os lo perdáis!
➡️ Podéis verlo en esta página >>
Anuncio
Esther Sanchez · 26 mayo, 2021
¡Hola Comunidad!
Hemos grabado el webinar que hicimos ayer y lo hemos subido al canal de YouTube de la Comunidad de Desarrolladores en español. Si os perdisteis el webinar o lo queréis volver a ver con más detalle, ya está disponible la grabación!
David Reche es uno de los cracks de InterSystems: sabe mucho y lo explica muy bien. Así que, si queréis conocer conceptos básicos, trucos y trampas de ObjectScript... ¡no os perdáis el vídeo!
⏯ Aprende ObjectScript desde cero
Por cierto, en las listas de reproducción del canal de YouTube de la Comunidad de Desarrolladores en español podéis ver todos los webinars que hemos realizado (¡ya llevamos once!), varios tutoriales, trucos, demos...
¡Echadle un ojo y dadle al play! ▶️
Pregunta
Yuri Marx Pereira Gomes · 9 jun, 2021
¿Es posible ver el plan de ejecución de una sentencia SQL en IRIS?
Como esto:
explain plan for
select e.ename,r.rname
from employees e
join roles r on (r.id = e.role_id)
join departments d on (d.id = e.dept_id)
where e.staffno <= 10
and d.dname in ('Department Name 1','Department Name 2');
Que devuelve esto:
EXPLAIN es también un comando SQL soportado por InterSystems IRIS. Se puede llamar desde la shell como cualquier otro comando.
Igualmente, para el ver el plan tambien se puede hacer en el Explorador SQL, pulsando el botón "Mostrar Plan" con la sentencia SQL en cuestión.
Artículo
Yuri Marx Pereira Gomes · 8 sep, 2021
Como arquitecto de software, es un reto diseñar una arquitectura corporativa que cumpla con los requisitos actuales de los negocios. Hay que conseguir el nivel 5 de la imagen anterior.
Con InterSystems IRIS es posible. Con un solo producto, tienes SQL + NoSQL + ESB + BI + Open Analytics + Modelos analíticos virtuales en tiempo real + NLP + AutoML + ML (con Python) y cloud Avanzada + soporte a sharding.
Con Oracle, por ejemplo, necesitas Oracle DB + Oracle NoSQL + Oracle BI + Oracle SOA Suite + algunas extensiones, como Oracle R, Partitioning y RAC; y algunos productos cloud de Oracle para NLP y características de IA. Con IBM tenemos un escenario similar. Microsoft utiliza Biztalk (gracias, @Robert.Bira).
Artículo
Jose-Tomas Salvador · 20 abr, 2022
Encontré este pequeño artículo de @brendan.bannon de hace unos años... pero creo que es muy útil para cuando tengamos estructuras de almacenamiento basadas puramente en globals y queramos tener la posibilidad de acceder a ellas desde el punto de vista de Objetos y/o Relacional.
El fichero ZIP adjunto contiene un paquete de ejemplos de mapeos SQL Storage (válido para IRIS y Caché) que he hecho y recopilado a lo largo de estos años.
Si tienes globals existentes y quieres exponerlos vía Objectos o SQL, necesitas configurar el mapeo SQL Storage en InterSystems IRIS o Caché. Si no ves un ejemplo que te ayude con tu caso, envíame un ejemplo y puedo ayudarte.
(Para bajarte el archivo ZIP, ve a la publicación original)
Anuncio
David Reche · 4 mayo, 2020
La versión 2020.1 de HealthShare ya ha sido liberada.
Incluye muchas funcionalidades nuevas:
Support for HL7® FHIR® Release 4, including mapping of InterSystems SDA to FHIR R4
North American customers can access to the CommonWell® health data network, including integration with the HealthShare Unified Care Record and Clinical Viewer
New Clinical Viewer enhancements, including configurations to display icons and specific filtered views for COVID-19 testing status
Clinical Viewer audits showing when a user accessed a patient’s information
Separate kits for Unified Care Record and Clinical Viewer to allow more flexible update options
Simpler/faster user experience for clinical and administrative users with new navigation, application chooser, and system utility menu (initial version, expanding to include more applications in the next releases)
Health Insight now built on IRIS for Health™, with improved performance and scalability
Health Insight streamlined upgrade protocols to significantly reduce downtime during version upgrades
Health Insight data consistency check tool enhancements, including new features and updated dashboards
Provider Directory push service to publish newly updated provider records to FHIR repository and to external systems
Personal Community login can use login credentials from external systems.
Integrated Healthwise® educational content available in Personal Community
Patient-completed forms and questionnaires from Personal Community can be accessed directly in InterSystems TrakCare®.
Más información
Con tus credenciales para acceder al Centro de Soporte Internacional (WRC) de InterSystems, puedes:
Descargar el Software desde la página de distribución de software del WRC
Revisar las notas de la versión:
Unified Care Record 2020.1 Notes
Health Insight 2020.1 Notes
Patient Index 2020.1 Notes
Personal Community 2020.1 Notes
Provider Directory 2020.1 Notes
Health Connect 2020.1 Notes
Revisar la documentación sobre HealthShare 2020.1
También puedes contactar con el Centro de Soporte Internacional (WRC) en support@intersystems.com o en +1.617.621.0700