Artículo Alberto Fuentes · jun 3, 2025 3m read

Kong ofrece una herramienta de gestión de configuración de código abierto (escrita en Go), llamada decK, que significa declarative Kong en inglés.

  • Comprobar que deck reconoce vuestra instalación de Kong Gateway mediante deck gateway ping
deck gateway ping   
Successfully connected to Kong!
Kong version:  3.4.3.11

  • Exportar la configuración de Kong Gateway a un archivo llamado "kong.yaml" mediante el comando deck gateway dump
deck gateway dump -o kong.yaml

  • Después de modificar direcciones IP en el archivo kong.
0
0 55
Artículo Luis Angel Pérez Ramos · jun 3, 2025 3m read

Hola comunidad,

En este artículo, os voy a presentar mi aplicación iris-fhir-bridge.

IRIS-FHIR Bridge es una potente solución de interoperabilidad diseñada para facilitar un intercambio de datos fluido y confiable entre sistemas de salud. Actúa como un puente entre formatos de datos heredados y los estándares modernos FHIR, lo que permite a las organizaciones de atención médica intercambiar información de manera más eficiente.

0
0 53
InterSystems Official Jose-Tomas Salvador · jun 2, 2025

InterSystems Kubernetes Operator (IKO) 3.8 ya está disponible de forma general. IKO 3.8 añade nuevas funcionalidades junto con numerosas correcciones de errores y actualizaciones de seguridad. Los aspectos destacados incluyen:

  • Grupos de Cómputo: permite desplegar más de un tipo de nodo de cómputo para manejar diferentes tipos de cargas de trabajo en un solo IrisCluster.
  • Consolidación de Volúmenes: ahora podéis optar por desplegar con menos volúmenes, además de optar por consolidar los datos y el WIJ en el mismo volumen.
0
0 34
Artículo Daniela Echenique · jun 2, 2025 5m read

Objetivo

Explorar un enfoque de validación estructural adaptativa para mantener estables las pruebas automatizadas frente a cambios en la estructura del JSON generado a partir de datos expuestos desde una base de datos InterSystems IRIS.

Se busca minimizar falsos positivos ante cambios no críticos, siempre que la respuesta siga siendo coherente con la estructura real de la base. En estos casos, la ejecución continúa y se deja registro del evento en un archivo estructurado, que permite trazabilidad y análisis evolutivo.

0
0 87
Artículo Landon Minor · mayo 30, 2025 3m read

Perfilando Documentos CCD con la Herramienta CCD Data Profiler de LEAD North
¿Alguna vez has abierto un CCD y te has encontrado con una pared de XML enredada? No estás solo. Aunque los CCD son un formato central para el intercambio de datos clínicos, son notoriamente densos, prolijos y poco amigables para la vista humana. Para los desarrolladores y analistas que intentan validar su estructura o extraer información significativa, navegar estos documentos puede sentirse más como arqueología que como ingeniería.

0
0 70
Artículo Jose-Tomas Salvador · mayo 30, 2025 8m read

Si estás ejecutando IRIS en una configuración en mirror para alta disponibilidad (HA) en Azure, la cuestión de proporcionar una Mirror VIP (Virtual IP) es relevante. La Virtual IP ofrece una forma para que los sistemas interactuen con IRIS utilizando una dirección IP. Incluso cuando ocurre un failover, los otros sistemas pueden reconectarse a la misma dirección IP y continuar trabajando.

El problema principal, cuando se despliega en Azure, es que una IRIS VIP tiene el requerimiento de que IRIS sea esencialmente un admin de red, según se indica en la documentación.

Para tener HA, los miembros en mirror de IRIS deben ser desplegados en diferentes zonas de disponibilidad (availability zones o AZ) en una subred (lo que es posible en Azure ya que las subredes pueden abarcar varias zonas). Una de las soluciones puede ser utilizar balanceadores de carga pero, por supuesto, suponen un coste extra, y también necesitarás administrarlos.

En este artículo, quiero proporcionar un modo de configurar una Mirror VIP sin la utilización de balanceadores de carga que se sugiere en la mayoría de las propouestas de arquitectruas de referencia para Azure.

0
0 54
Artículo Ricardo Paiva · mayo 28, 2025 2m read

Después de que desplegáramos un nuevo contenedor basado en containers.intersystems.com/intersystems/irishealth:2023.1 esta semana, notasteis de repente que el Repositorio FHIR empezó a responder con un Error 500. Esto se debe a violaciones de PROTECT en el nuevo espacio de nombres y base de datos HSSYSLOCALTEMP, utilizado por esta versión de los componentes FHIR de IRIS for Health.

La solución consiste en añadir "%DB_HSSYSLOCALTEMP" a las Aplicaciones Web que gestionan las solicitudes FHIR.

0
0 43
Anuncio Sergio Farago · mayo 28, 2025

¡Hola, comunidad!

¡Estamos encantados de anunciar que varios ganadores del Concurso de Programación con IA de InterSystems han sido invitados a presentar sus proyectos en el Tech Exchange durante InterSystems Ready 2025!

Acompañadnos el miércoles 25 de junio para descubrir soluciones innovadoras y reales creadas con InterSystems IRIS, IA, LLMs y tecnologías de agentes inteligentes, directamente de la mano de los desarrolladores que las hicieron posibles.

0
0 56
Artículo Alberto Fuentes · mayo 28, 2025 4m read

Con el lanzamiento de InterSystems IRIS Cloud SQL, recibimos cada vez más preguntas sobre cómo establecer conexiones seguras mediante JDBC y otras tecnologías de drivers. Aunque contamos con una documentación resumida y detallada sobre las tecnologías de los drivers, nuestra documentación no describe herramientas cliente individuales, como nuestra favorita personal, DBeaver. En este artículo, describiremos los pasos para crear una conexión segura desde DBeaver a vuestra implementación de Cloud SQL.

0
0 65
InterSystems Official Jose-Tomas Salvador · mayo 27, 2025

Estamos publicando una versión puntual de InterSystems IRIS, IRIS for Health y Health Connect 2025.1 — versión 2025.1.0.225.1 — para abordar un problema crítico de interoperabilidad que afecta a quienes utilizan hosts de negocio con la opción de Configuración Predeterminada del Sistema habilitada.

¿Cuál es el problema?

0
0 39
Artículo Alberto Fuentes · mayo 27, 2025 3m read

Hola desarrolladores:

Al observar la avalancha de herramientas de desarrollo impulsadas por IA y al estilo vibe coding que han estado apareciendo últimamente casi cada mes, con funciones cada vez más emocionantes, me preguntaba si sería posible aprovecharlas con InterSystems IRIS. Al menos para construir un frontend. Y la respuesta es: ¡sí! Al menos con el enfoque que seguí en este ejemplo.

Aquí tenéis mi receta para crear la interfaz de usuario mediante prompts frente al backend de InterSystems IRIS:

  1. Tened una API REST en el lado de IRIS, que refleje una especificación Open API (swagger).
  2. Generad la interfaz de usuario con cualquier herramienta de vibe coding (por ejemplo, Lovable) y apuntad la interfaz al endpoint de la API REST.
  3. ¡Y listo!

Aquí tenéis el resultado de mi propio experimento: una interfaz 100 % generada por prompts frente a la API REST de IRIS, que permite listar, crear, actualizar y eliminar entradas de una clase persistente (Open Exchange, código del frontend, vídeo).

¿Cómo es la receta en detalle?

0
0 52
Artículo Laura Blázquez García · mayo 23, 2025 1m read

 

Os presento FHIRCraft, una herramienta ligera para generar recursos FHIR sintéticos.

Quizás estéis pensando:
“Pero... ¿no existe ya Synthea, que genera un montón de recursos FHIR?”
Exactamente — y por eso mismo creé esta aplicación.

FHIRCraft está diseñada para generar recursos FHIR más simples, pequeños y enfocados. A diferencia de Synthea, no pretende simular historiales clínicos completos ni flujos asistenciales. Está pensada para quienes están empezando con FHIR, quieren hacer pruebas de forma progresiva o explorar cómo funciona un recurso específico en

0
0 54
Artículo Luis Angel Pérez Ramos · mayo 21, 2025 2m read

Pregunta:

¿Cómo podéis crear, modificar, etc., configuraciones de seguridad como Usuarios y Roles programáticamente?

Respuesta:

Podéis usar las clases del paquete Security en el NAMESPACE %SYS. Por ejemplo Security.Roles o Security.Users.

Por supuesto, para llevar a cabo estas acciones, necesitaréis la autorización correspondiente.

Aquí tenéis un pequeño ejemplo usando Security.Roles:

 
 // Create a Role
%SYS>Set status = ##class(Security.Roles).
0
0 51
Anuncio Sergio Farago · mayo 12, 2025

¡Hola, hola Comunidad!

Por fin llega el gran reto que todos estabais esperando: ¡El cuarto concurso de redacción de artículos técnicos de InterSystems en español ya está aquí!

🏆 4º Concurso de Artículos Técnicos en español 🏆
Descripción del concurso: Escribe un artículo en español en la Comunidad de Desarrolladores, sobre cualquier tema relacionado con la tecnología de InterSystems.

Duración: del 12 de mayo al 8 de junio de 2025.

Premios para todos los participantes: Todas las personas que publiquen un artículo en español durante la vigencia del concurso recibirán un premio.

Premio principal: Apple Watch SE / iPad décima generación

 

3
0 274
Artículo Ricardo Paiva · mayo 20, 2025 6m read

Hace trece años, obtuve una doble titulación de grado en ingeniería eléctrica y matemáticas, y enseguida empecé a trabajar a tiempo completo en InterSystems sin utilizar ninguna de las dos. Una de mis experiencias académicas más memorables —y que más me revolvió el estómago— fue en Estadística II. En un examen, estaba resolviendo un problema de intervalo de confianza de dificultad moderada.

0
0 53
Artículo Jose-Tomas Salvador · mayo 19, 2025 3m read

Uno de los desafíos al crear un mensaje DICOM es cómo poner los datos en el lugar correcto. Parte de ello es insertar los datos en las etiquetas específicas de DICOM, mientras que la otra parte es insertar datos binarios como una imagen. En este artículo explicaré ambos.

Para crear un mensaje DICOM, podéis usar la clase EnsLib.DICOM.File (para crear un archivo DICOM) o la clase EnsLib.DICOM.Document (para crear un mensaje que se pueda enviar directamente a PACS). En ambos casos, el método SetValueAt os permitirá añadir vuestros datos a las etiquetas DICOM.

0
0 88
Artículo Ricardo Paiva · mayo 19, 2025 2m read

Estoy seguro de que la mayoría de vosotros estáis familiarizados con la utilidad %SYS.MONLBL, que es crucial cuando se analizan los cuellos de botella de rendimiento del código. Permite seleccionar un número de rutinas que queréis monitorizar en tiempo de ejecución y también especificar qué proceso(s) queréis observar. PERO, ¿qué pasa si no sabéis exactamente qué proceso ejecutará vuestro código? Esto es común en muchas aplicaciones basadas en la web (CSP/REST) hoy en día. Queréis minimizar la utilización de recursos en vuestro sistema de producción que necesita análisis.

0
0 34
Pregunta José Francisco Jodar · abr 9, 2025

Estoy intentando validar el contenido de un XML contra un esquema XSD, para validar la estructura (nodos obligatorios, etc...)

Estoy intentando utilizar la clase Ens.Util.XML.Validator, como se sugiere en este post:

https://community.intersystems.com/post/validate-xml-message-against-xs…

Pero al invocar al metodo ValidateStream, si en el schemaSpec le dejo el parametro vacio, simplemente valida que sea una estructura XML

5
0 138
Artículo Laura Blázquez García · mayo 13, 2025 3m read

No sé a vosotros, pero a mi me ha pasado varias veces que creo un contenedor Docker (me gusta hacerlo con un docker-compose.yml, me resulta más ordenado 😊) con una versión de IRIS, voy haciendo mis pruebas y llega un día en el que la licencia de ese contenedor ya no es válida, y no funciona...

Si os ha pasado, puede que alguno de vosotros, igual que yo, haya pensado "pues con subir la versión de IRIS en el docker-compose/Dockerfile, suficiente". Pues... no 😅 Al hacerlo, da problemas y no arranca bien el contenedor.

Así que, pregunté a InterSystems (gracias @Wojciech.

1
2 105
Anuncio Sergio Farago · mayo 13, 2025

Hola desarrolladores,

Nos complace anunciar el nuevo concurso de programación en línea de InterSystems dedicado a todo lo relacionado con la salud:

🏆 Concurso de Interoperabilidad de Salud Digital y FHIR de InterSystems 🏆

Duración: 12 de mayo - 1 de junio de 2025

Beca total: $12,000


0
0 49
Artículo Alberto Fuentes · mayo 13, 2025 2m read

A veces, los clientes necesitan una instancia pequeña de IRIS para hacer algo en la nube y luego apagarla, o necesitan cientos de contenedores (es decir, uno por usuario final o uno por interfaz) con cargas de trabajo pequeñas. Este ejercicio surgió para ver cuán pequeña podría ser una instancia de IRIS. Para este ejercicio, nos centramos en cuál es la menor cantidad de memoria que podemos configurar para una instancia de IRIS. ¿Conocéis todos los parámetros que afectan la memoria asignada por IRIS?

0
0 62
Artículo Ricardo Paiva · mayo 12, 2025 2m read

¡Hola, desarrolladores!

Este será un artículo muy corto ya que en abril de 2025, con Lovable y otras herramientas de Prompt-to-UI, se vuelve posible crear el frontend mediante indicaciones. Incluso para vosotros, que como yo, no estáis familiarizados en absoluto con las técnicas modernas de UI.

Bueno, al menos conozco las palabras javascript, typescript y ReactJS, así que en este artículo muy corto construiremos la interfaz de usuario en ReactJS para un servidor InterSystems FHIR con Lovable.ai.

¡Vamos con ello!

0
0 61
Artículo Jose-Tomas Salvador · mayo 7, 2025 4m read

Una extensión "extiende" o mejora un recurso FHIR o un elemento de datos de forma personalizada. La extensión puede añadirse a la raíz de un recurso, como “Patient.ethnicity” en el perfil US Core, y también pueden añadirse a elementos individuales como HumanName, Address o Identifier.

¿Sabíais que también podéis añadir una extensión a un tipo de dato primitivo?

Los elementos primitivos normalmente almacenan un solo elemento y son el componente más básico en FHIR. Por ejemplo: "Keren", false, 1234, 12/08/2024, etc.

0
0 53
Artículo Ricardo Paiva · abr 29, 2025 4m read

Cuando trabajáis con InterSystems IRIS, los desarrolladores y arquitectos de bases de datos a menudo se enfrentan a una decisión crítica: si usar SQL Dinámico o SQL Embebido para consultar y actualizar datos. Ambos métodos tienen sus propias fortalezas y casos de uso, pero comprender sus implicaciones en el rendimiento es esencial para tomar la decisión correcta. El tiempo de respuesta, una métrica clave en la evaluación del rendimiento de las aplicaciones, puede variar significativamente dependiendo del enfoque de SQL que utilicéis. El SQL Dinámico ofrece flexibilidad, ya que las consultas pueden construirse y ejecutarse en tiempo de ejecución, lo que lo hace ideal para escenarios con necesidades de consulta impredecibles o altamente variables. Por el contrario, el SQL Embebido enfatiza la estabilidad y eficiencia al integrar el código SQL directamente en la lógica de la aplicación, ofreciendo tiempos de respuesta optimizados para patrones de consulta predefinidos.

En este artículo, exploraré los tiempos de respuesta al usar estos dos tipos de SQL y cómo dependen de las diferentes estructuras de clases y del uso de parámetros. Para ello, voy a utilizar las siguientes clases del diagrama:

0
0 71
Pregunta Laura Blázquez García · abr 24, 2025

Hola!

Recientemente he estado probando a crear nuestro propio repositorio de paquetes con IPM. He podido crearlo sin problemas, y he visto que, al final, nuestro repositorio IPM no deja de ser una instancia de IRIS. En el ejemplo del que he partido, utiliza la versión community. Y mi pregunta es,  para tener nuestro repositorio disponible para toda la compañía, ¿podemos seguir con la versión community, o debe ser una versión enterprise con licencia?

Y ya que estoy, ¿hay alguna forma de saber qué paquetes se han descargado, y por quién?

Muchas gracias!

5
0 78
Artículo Alberto Fuentes · abr 25, 2025 2m read

Recientemente ayudé a investigar un problema en una instalación que surgió después de que actualizaran su instancia de Caché en Windows de la versión 2015.1 a la 2017.1. Una sesión de terminal iniciada desde el icono del cubo del escritorio del servidor no podía ejecutar comandos a nivel del sistema operativo utilizando la función $ZF(-1). Por ejemplo, al tratar de lanzar  el comando "REM" (que no tiene ningún efecto) de la siguiente manera

write $zf(-1,"rem")

devolvía -1, lo que indicaba que el comando de Windows no se podía ejecutar.

Resultó que el servicio original de Caché 2015.

0
0 86