Nueva
Artículo Luis Angel Pérez Ramos · feb 20 16m read

¿Se te hiela la sangre al oír hablar de OpenEHR? ¿Te ponen los pelos de punta los arquetipos?

¡Supera tus miedos con este artículo y domina OpenEHR con las capacidades de InterSystems IRIS for Health!

¿Qué es openEHR?

openEHR es una especificación abierta e independiente del proveedor, diseñada para representar, almacenar e intercambiar información clínica de forma semánticamente rica y sostenible a largo plazo.

0
0 11
Artículo Luis Angel Pérez Ramos · ene 29 3m read

Embeddedpy-bridge: Un kit de herramientas para Embedded Python

Visión general

Embedded Python es un cambio radical para InterSystems IRIS, ya que ofrece acceso al vasto ecosistema de Python directamente dentro de la base de datos. Sin embargo, salvar la brecha entre ObjectScript y Python a veces puede parecer bastante complicado.

Para hacer que esta transición sea fluida, podéis usar embeddedpy-bridge

Este paquete es un kit de utilidades orientado al desarrollador, diseñado para proporcionar wrappers de ObjectScript de alto nivel, sintaxis familiar y manejo robusto de errores para Python

0
0 28
Artículo Luis Angel Pérez Ramos · ene 28 5m read

¿Cuantas veces habéis tenido que recibir o generar un JSON y habéis añorado el poder trabajar sobre él haciendo uso de DTLs y sin tener que ir manejando DynamicObjects intentando recordar cual era el nombre de cada campo?

¿Deseas trocear y hacer más digerible tu gigantesco JSON?

En mi caso, nunca, pero he pensado que a alguien le podría resultar de utilidad una funcionalidad que capture tu JSON y lo descomponga en una serie de clases de ObjectScript con las que puedas trabajar de forma más cómoda y sencilla.

Pues bien...¡contemplad el JSON2Class en toda su gloria!

¿Cómo funciona JSON2Class?

Muy

0
0 32
Artículo Luis Angel Pérez Ramos · ene 13 3m read

Probablemente os suene esta situación:

Hace tiempo encontraste una función muy especial, $ZU, para un tipo de problema muy concreto. Como una especie de fórmula mística. Esta se popularizó y muchos desarrolladores la utilizaron en su código.

Tras varias versiones y actualizaciones, ISC informa de que vuestro mágico $ZU está obsoleto y ya no es soportado. Se os recomienda reemplazarlo por un nuevo $loquesea().

Entonces, ¿cómo podrías localizar y documentar el uso de este mágico $ZU? Puede estar en clases, en código MAC, INT o INC o incluso distribuido en múltiples namespaces.

Me he encontrado con

0
0 35
Artículo Luis Angel Pérez Ramos · oct 31, 2025 6m read

¡Sí sí! ¡Adelante! No os habéis equivocado, estáis en vuestra querida Comunidad de Desarrolladores de InterSystems en español.

Os preguntaréis a qué viene el título de este artículo, pues muy sencillo, hoy estamos aquí reunidos para honrar al Inquisidor y elogiar la gran labor desempeñada por el mismo. 

Comunidad de Steam :: :: Nobody expects the Spanish Inquisition

Y bien, ¿quién o qué es el Inquisidor?

Perfecto, ahora que he captado vuestra atención, es momento de explicar que es el Inquisidor.

1
0 50
Artículo Luis Angel Pérez Ramos · oct 30, 2025 3m read

Hola comunidad,

Quería compartir mi experiencia trabajando en proyectos con grandes volúmenes de datos. A lo largo de los años, he tenido la oportunidad de manejar enormes cantidades de datos de pacientes, datos de aseguradoras y registros transaccionales mientras trabajaba en la industria hospitalaria. He tenido la oportunidad de crear informes muy extensos que requerían usar lógicas avanzadas para obtener datos de múltiples tablas, cuyos índices no me ayudaban a escribir un código eficiente.

Esto es lo que he aprendido sobre cómo gestionar grandes volúmenes de datos de manera eficiente.

Elegir el método de acceso a datos adecuado

Como todos sabemos en esta comunidad, IRIS ofrece múltiples formas de acceder a los datos. Elegir el método correcto dependerá de lo que necesitemos.

  • Acceso directo a los Globales: el más rápido para operaciones masivas de lectura/escritura. Por ejemplo, si tengo que recorrer índices y obtener datos de pacientes, puedo iterar sobre los globales para procesar millones de registros. Esto ahorra mucho tiempo.
Set ToDate=+HSet FromDate=+$H-1ForSet FromDate=$O(^PatientD("Date",FromDate)) Quit:FromDate>ToDate  Do
. Set PatId=""ForSet PatId=$Order(^PatientD("Date",FromDate,PatID)) Quit:PatId=""Do
. . Write$Get(^PatientD("Date",FromDate,PatID)),!
  • Uso de SQL: útil para requisitos de generación de informes o análisis, aunque más lento para conjuntos de datos muy grandes.
0
0 49
Artículo Luis Angel Pérez Ramos · sep 30, 2025 12m read

¡Bienvenidos, estimados miembros de la Comunidad!

En este artículo vamos a presentar un ejemplo de un proyecto de implementación de una solución basada en FHIR. Este proyecto se basará en el proyecto nacional (nacional de España), conocido como ÚNICAS.

¿Qué es ÚNICAS?

Usando sus propias palabras:

Un proyecto cuyo objetivo es crear un ecosistema de alianzas para mejorar la atención sanitaria de pacientes pediátricos con enfermedades minoritarias (EEMM) complejas.

6
1 124
Artículo Luis Angel Pérez Ramos · sep 29, 2025 3m read

¡Hola a todos!

Es muy fácil importar datos CSV en IRIS. Pero, ¿qué pasa si queremos preservar los IDs originales del CSV?

Recientemente me encontré con la situación en la que necesitaba importar dos CSVs en IRIS que estaban vinculados por una columna que hacía referencia a la columna de otro CSV: una situación típica de clave primaria y clave externa, donde csv1 contiene esta columna como clave primaria, y csv2 como clave externa con IDs relacionados con csv1.

La imagen fue generada por ChatGPT, así que no lo culpéis: hizo lo mejor que pudo al generar países como claves primarias con una relación countries.csv–cities.csv :)

0
0 46
Artículo Luis Angel Pérez Ramos · ago 21, 2025 3m read

ObjectScript puede parecer solo otro lenguaje de programación, pero aquí está el giro:

Vuestro código aquí puede vivir para siempre (sí, incluso después de que os hayáis pasado a otro proyecto). Por eso es importante mantenerlo ordenado, fácil de leer y a salvo de errores misteriosos.

(Una guía para principiantes para mantener vuestro código ordenado, amigable y preparado para el futuro)

Bienvenidos a la jungla de ObjectScript, donde vuestro código puede tener un alcance global y ser persistente por naturaleza.
Mantengamos las cosas limpias, legibles y resistentes a errores.

1️⃣ Nombra como si lo

0
0 68
Artículo Luis Angel Pérez Ramos · jul 21, 2025 3m read

¡Saludos estimados miembros de la comunidad!

Muchos recordaréis las capacidades NLP disponibles en IRIS con el nombre de iKnow y que fueron deprecadas hará no mucho tiempo. Pero...¿Deprecado todo? ¡NO! Una pequeña aldea resiste a la deprecación, ¡los índices iFind!

Y os preguntaréis, ¿para qué valen estos magníficos índices? Pues muy sencillo, sirven para indexar los textos presentes en las columnas de tipo String y Stream y acelerar dramáticamente la velocidad de consulta sobre las mismas.

¿Qué son los índices %iFind?

Son un tipo de índices basados en mapas de bits, estos índices mapean cada

1
1 65
Artículo Luis Angel Pérez Ramos · jul 8, 2025 8m read

Seguramente os hayais encontrado durante los últimos 10 - 15 años los términos Data Lake, Data Warehouse, Data Fabric hasta en la sopa, todo se arregla y soluciona con alguna de estas 3 cosas o con alguna combinación de las mismas (aquí y aquí tenéis un par de artículos de nuestra página oficial por si tenéis alguna duda de a qué corresponde cada uno de los términos). Si tenemos que resumir de forma visual cual es el objetivo de todos esos términos podríamos decir que se intenta solucionar con todos ellos situaciones como esta:

Why is my room always messy? Tips & Tricks — Junk Brothers

Nuestras organizaciones son como esa habitación, multitud de

0
1 49
Artículo Luis Angel Pérez Ramos · jun 16, 2025 8m read

¡Hola, estimados miembros de nuestra comunidad de desarrolladores!

En el artículo de hoy vamos a echar un vistazo a una de las últimas funcionalidades de telemonitorización de nuestras instancias de IRIS que se han añadido al producto. Estoy hablando de la compatibilidad con OpenTelemetry.

¿Qué es OpenTelemetry?

OpenTelemetry es un framework open source que proporciona las herramientas necesarias como SDKs y estándares para implementar la observabilidad en sistemas y aplicaciones.

Esta observabilidad se extiende a tres tipos de datos:

  1. Trazas: control del flujo de la información que fluye a lo
2
1 119
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 51
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).Create("testRole","a test Role","%Development:U,%DB_USER:R")
 

// Creation was successful
%SYS>Write status
1

// Now lets examine the Role
0
0 51
Artículo Luis Angel Pérez Ramos · abr 18, 2025 3m read

¿A quién no le ha pasado que está desarrollando un precioso ejemplo usando una imagen de IRIS de Docker y le ha fallado el proceso de generación de la imagen en el Dockerfile porque la licencia con la que se creo la imagen no contiene determinados privilegios?

En mi caso lo que estaba desplegando en Docker es una pequeña aplicación que utiliza el tipo de datos Vectorial.

0
0 59
Artículo Luis Angel Pérez Ramos · abr 7, 2025 1m read

Preguntas frecuentes de InterSystems

La configuración predeterminada para Stay Connected y Pool Size para los hosts de negocio (antiguamente, business service) que utilizan el adaptador TCP es la siguiente:

StayConnected = -1(no timeout)
PoolSize = 1

Si un problema de red causa que se pierda la conexión con un host de negocio, el lado de la producción no podrá detectar esto y no aceptará nuevas conexiones.En esta situación, no se registrará ningún evento en el registro de eventos.

0
0 47
Artículo Luis Angel Pérez Ramos · abr 1, 2025 6m read

¡Acabo de caer en la cuenta de que nunca terminé esta serie de artículos!

GIF de Shame On You Meme | Tenor

En el artículo de hoy vamos a echar un vistazo a la producción que se encarga de extraer los diagnósticos en CIE-10 más similares a nuestro texto, de tal forma que podamos seleccionar la opción más adecuada desde nuestro frontend.

Buscando similitudes de diagnósticos:

Desde la pantalla que nos muestra las solicitudes de diagnósticos recibidas en HL7 en nuestra aplicación podremos buscar cuales son los diagnósticos CIE-10 más próximos al texto introducido por el profesional.

Para acelerar el proceso de búsquedas hemos

0
0 66
Artículo Luis Angel Pérez Ramos · mar 28, 2025 1m read

Venga que se nos pasa la jornada de la Quiniela. Esta jornada vuelven los partidos de Primera y Segunda División tras el parón de selecciones 29ª jornada en primera y 33ª en Segunda.

Estas son las predicciones para Primera:

Y estos los de Segunda:

Quedando así la Quiniela:

¡Mucha suerte a todos!

0
0 66
Artículo Luis Angel Pérez Ramos · mar 21, 2025 5m read

Después de tantos años de espera, por fin tenemos un controlador oficial disponible en Pypi

Además, encontré el driver JDBC finalmente disponible en Maven desde hace ya 3 meses, y el driver .Net en Nuget desde hace más de un mes.

Como autor de multitud de implementaciones de librerías de Python con soporte de IRIS, quería probarlo. La implementación de DB-API significa que debe ser reemplazable e implementar las funciones definidas en el estándar. La única diferencia entre las diferentes bases de datos debería ser únicamente el SQL.

Y la belleza de usar librerías existentes que ya implementaron la conectividad con otras bases de datos usando el estándar DB-API, es que estas librerías deberían ser totalmente compatibles con el controlador.

Decidí probar el driver oficial de InterSystems implementando su soporte en la librería SQLAlchemy-iris.

0
0 52
Artículo Luis Angel Pérez Ramos · mar 17, 2025 3m read

Como bien sabréis se ha procedido a eliminar el denominado Private Web Server que venía con cada instalación de IRIS, lo que hace necesario un servidor web externo.

En el caso de los despliegues en docker lo más común es hacer uso de la imagen webgateway (disponible aquí) junto con la de IRIS para poder acceder sin problemas al portal de gestión. Esta imagen se puede configurar para acceder vía HTTPS sin ningún problema configurando los certificados.

Problema 1: Unable to verify the first certificate

Posiblemente tu conexión SSL mediante el webgateway tiene configurado un certificado autofirmado

0
0 89
Artículo Luis Angel Pérez Ramos · mar 13, 2025 1m read

¡Hola compañeros!

Otra vez más me he dado cuenta de que no hay una forma supersencilla de mostrar el error de la variable %Status, cosa que necesito con relativa frecuencia desde el terminal.

Sí, conozco las macros $$$, pero no son demasiado útiles en un terminal.

Habitualmente lo que hago es intentar recordar de memoria o copiar de algún sitio la fórmula:

USUARIO>w $System.State.DisplayError(st)
0
0 76
Artículo Luis Angel Pérez Ramos · mar 11, 2025 53m read

Desde la introducción de Embedded Python siempre ha estado la duda sobre su rendimiento respecto a ObjectScript y en más de una ocasión lo he comentado con @Guillaume Rongier , pues bien, aprovechando que estaba haciendo una pequeña aplicación para capturar los datos de los concursos públicos en España y poder realizar búsquedas utilizando las capacidades de VectorSearch he visto la oportunidad de realizar una pequeña prueba.

Datos para la prueba

La información relativa a los concursos públicos es proporcionada mensualmente en archivos de XML desde esta URL y el formato típico de la

0
0 80
Artículo Luis Angel Pérez Ramos · mar 7, 2025 1m read

Después de un más que inmerecido descanso que me tomé la pasada semana, ¡retornamos con nuestras predicciones quinielísticas! Jornadas 27 de Primera División y 30 de Segunda.

Veamos los partidos que entran esta jornada:

Predicciones para la Primera División:

Lo mismo para Segunda:

Veamos que Quiniela resulta de lo anterior:

Confiemos en que Bordalás esté levantando un tabique en las porterías del Getafe para ese empate.

0
0 72
Artículo Luis Angel Pérez Ramos · feb 20, 2025 3m read

Es posible que hayáis notado que, para configurar un mirror en InterSystems IRIS for Health™ y HealthShare® Health Connect, hay un requisito especial. En este artículo, quiero guiaros paso a paso por el proceso.

Esto supone que ya habéis configurado el segundo miembro de conmutación por error y habéis confirmado un estado exitoso de dicho miembro en el monitor del mirror:

Paso 1: Activad el usuario HS_Services (en el servidor de respaldo y en el principal).

Paso 2: Cambiad al espacio de nombres HSSYS y dirigíos a Interoperabilidad > Configurar > Credenciales.

2
1 118
Artículo Luis Angel Pérez Ramos · feb 14, 2025 3m read

Es muy habitual en el día a día de los usuarios de IRIS o de Health Connect que sea necesario instalar nuevas instancias o bien actualizar las que ya tienen y en muchas ocasiones no son estos mismos usuarios los que realizan la instalación, si no personal de sistemas que en muchas ocasiones no tiene en consideración las particularidades de la asignación de permisos necesarios para la instalación.

Una incorrecta asignación de permisos va a provocar un conjunto de funcionamientos erróneos que va a producir una sensación de incertidumbre y desconfianza en los usuarios que posteriormente cuesta

2
0 107
Artículo Luis Angel Pérez Ramos · feb 7, 2025 1m read

Venga que nos vamos acercando ya en aciertos, veamos que tal se da esta 41ª jornada de la Quiniela, con partidos de la jornada 23ª de Primera División y 26ª de Segunda.

Veamos los partidos que entran en esta Quiniela:

Con pleno al 15 del derby madrileño por excelencia.

Aquí están las predicciones de Primera División:

Y las de Segunda:

Dándonos la siguiente Quiniela:

¡Suerte y buen fin de semana a todos!

0
0 73