#InterSystems IRIS

4 Seguidores · 1.4K Publicaciones

InterSystems IRIS es una Plataforma completa de datos.
InterSystems IRIS le proporciona todo lo que necesita para capturar, compartir, comprender y actuar sobre el activo más valioso de su organización, sus datos.
Dado que es una plataforma completa, InterSystems IRIS elimina la necesidad de integrar varias tecnologías de desarrollo. Las aplicaciones necesitan una menor cantidad de código, menos recursos del sistema y poco mantenimiento.

Artículo Ricardo Paiva · ene 15 4m read

InterSystems IRIS se basa en una arquitectura que separa la organización lógica de los datos (namespaces - espacios de nombres) de su ubicación física de almacenamiento (bases de datos). Comprender esta separación y la distinción entre espacios de nombres y bases de datos es fundamental para una gestión de datos eficaz, la seguridad y, especialmente, para compartir datos con alto rendimiento.

En este artículo, explicaré estos componentes fundamentales y ofreceré una guía práctica sobre cómo aprovechar los mapeos de globals para compartir estructuras de datos nativas (globals) entre diferentes entornos lógicos.

Bases de datos: la realidad física

Una base de datos representa la realidad física de dónde se almacenan los datos en el disco. Antes que nada, es un archivo en un sistema de archivos llamado IRIS.dat (por ejemplo, <carpeta de instalación>\mgr\user\IRIS.DAT). El tamaño máximo de este archivo es de 32 TB. Es el contenedor de todos los datos y del código. Las bases de datos son gestionadas por el núcleo de IRIS, que se encarga del caché, el registro en diario (journaling) y el registro de transacciones a nivel de archivo físico.

Al instalar el DBMS de InterSystems IRIS, se crean automáticamente las siguientes bases de datos:

0
0 37
Artículo Ricardo Paiva · ene 13 7m read

A veces es más conveniente, más eficiente y más seguro limitar las búsquedas FHIR a "listas" de recursos predefinidas.

Desde la versión v2025.1, soportamos varias funcionalidades relacionadas con listas en nuestro servidor FHIR.

Aquí las destacaré y os proporcionaré algunos ejemplos.

0
0 34
Artículo Jose-Tomas Salvador · ene 13 3m read

 

Al trabajar con InterSystems Interoperability (IRIS / Health Connect / Ensemble), los datos de configuración a menudo están distribuidos en muchos elementos de producción: servicios, procesos, operaciones, adaptadores y sus configuraciones.

Una necesidad operativa o de seguridad común es responder preguntas como:

  • ¿Qué interfaces hacen referencia a rutas del sistema de archivos?
  • ¿Dónde están configurados directorios, recursos de red o rutas absolutas?
  • ¿Puedo auditar o documentar rápidamente esta información en todas mis producciones?
0
0 27
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.

0
0 38
Artículo Evandro Wendt · ene 6 1m read

Las capacidades integradas de búsqueda vectorial de InterSystems IRIS nos permiten buscar datos no estructurados y semiestructurados. Los datos se convierten en vectores (también llamados “embeddings”) y luego se almacenan e indexan en InterSystems IRIS para búsqueda semántica, generación aumentada por recuperación (RAG), análisis de texto, motores de recomendación y otros casos de uso.

Esta es una demostración sencilla de IRIS siendo utilizado como una base de datos vectorial y para búsquedas por similitud en IRIS.

0
0 37
Artículo Evandro Wendt · ene 4 1m read

Este código muestra los elementos de producción configurados e indica si están habilitados o deshabilitados.

 

Include (Ensemble, EnsUI, EnsUtil)

Class Test.ProductionConfig
{

ClassMethod GetConfigItems() As %Status
{
Set tStatement = ##class(%SQL.Statement).%New()
Set tSC = tStatement.%PrepareClassQuery("Ens.Config.Production","EnumerateConfigItems")
Write tSC,!
Write "ConfigItemName"," ","Enabled",!
#Dim exp As %Exception.SystemException
#Dim rset As %SQL.StatementResult
Set rset = tStatement.%Execute()
Write rset,!
Write rset.%SQLCODE,!
While rset.%Next() {
Try {
Set tConfigName = rset.

0
0 28
Artículo Jose-Tomas Salvador · dic 18, 2025 1m read

Fue alentador ver a más personas creando extensiones de VS Code para el concurso reciente. Sin embargo, noté que de las tres extensiones que requieren credenciales para realizar sus conexiones, solo la de @John Murraygj :: dataLoader, aprovecha la extensión InterSystems Server Manager, ampliamente establecida y oficialmente soportada, para obtener las definiciones de conexión y gestionar las credenciales de manera segura.

0
0 51
Artículo Dmitry Maslennikov · dic 18, 2025 5m read

La idea más votada en el InterSystems Ideas Portal —con 74 votos— pide una versión ligera de IRIS. Aunque la plataforma ha crecido hasta convertirse en un potente motor de datos, muchos proyectos solo necesitan sus capacidades de base de datos SQL. Este artículo muestra cómo crear una imagen no oficial y compacta de IRIS Community Edition centrada únicamente en la funcionalidad básica de base de datos, reduciendo el tamaño de la imagen en más de un 80%.

⚠️ Aviso

Este proyecto genera una imagen no oficial y experimental de InterSystems IRIS Community Edition.

  • No está soportada ni avalada por InterSystems.
  • Usadla bajo vuestra propia responsabilidad. Las modificaciones eliminan funciones esenciales de la plataforma y pueden romper la compatibilidad con herramientas, APIs y comportamientos esperados.
  • No se aplican garantías de ningún tipo, incluida su idoneidad para uso en producción.
  • Está pensada solo para fines educativos y experimentales por parte de usuarios avanzados.

¿Por qué un IRIS ligero?

Aunque IRIS incluye hoy funciones muy completas —interoperabilidad, analítica, machine learning, gestión del sistema, etc.— muchos proyectos solo requieren sus capacidades SQL básicas. La imagen oficial Docker de Community Edition ocupa aproximadamente:

  • Uso en disco: 3,5–3,8 GB
  • Tamaño comprimido: ~1,1 GB

IRIS Light reduce eso a:

  • Uso en disco: ~575–583 MB
  • Tamaño comprimido: ~144–148 MB

Esto lo hace adecuado para:

  • Uso SQL en microservicios o contenedores
  • Pipelines de CI con arranque y descarga más rápidos
  • Escalado horizontal donde no se necesitan todas las funcionalidades
0
0 38
Artículo Alberto Fuentes · dic 17, 2025 3m read

🚀 Un ejemplo práctico integrando REST, CSV, bases de datos y servicios SOAP

En el día a día de cualquier organización, la información fluye entre aplicaciones, servicios y sistemas muy distintos entre sí. Integrarlos de forma eficiente puede ser un reto... a menos que uses InterSystems IRIS.

En este nuevo vídeo te muestro cómo construir un flujo completo de integración combinando múltiples tecnologías —APIs REST, ficheros CSV, bases de datos y servicios SOAP— todo dentro del entorno visual que ofrece el motor de interoperabilidad de IRIS.

👉 Puedes ver el vídeo aquí:

<iframe width="560" height="315" src="https://www.youtube.com/embed/82xA51nThqQ?si=CzRfwyLSwcKvOGGH" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
0
0 48
Pregunta Kurro Lopez · dic 16, 2025

Hola a todos.

Tengo una duda con respecto a la prioridad a la hora de aplicar una configuración por defecto.

Tengo unos Business Services que utilizan la misma clase, por lo que quiero que todos ellos tengan una configuración de "Schedule" común.

Pero hay uno de ellos que no quiero que se le aplique esta configuración por defecto, por lo que he intentado ponerle el valor vacío de Schedule para ese elemento por el nombre:

En este caso, tengo los elementos que utilicen la clase Kurro.BS.SFTP.Marca tengan por defecto el valor CargaFicheros

Pero uno de los elementos (Kurro.BS.SFTP.

1
0 32
Artículo Jose-Tomas Salvador · dic 15, 2025 3m read

Hola a todos. De nuevo, me gustaría compartir lo que estoy estudiando recientemente: crear tablas externas usando SQL a través de JDBC.

Como estoy aprendiendo sobre IRIS BI al mismo tiempo, empecé con este entorno docker de Sample-BI.

https://github.com/intersystems/Samples-BI

 

Después de iniciar el entorno, iniciad sesión en el portal de administración en http://localhost:52773/csp/sys/UtilHome.csp con el usuario Superuser.

Cambiad el namespace a IRISAPP.

 

😀 Veremos que todos los datos de ejemplo están almacenados en este namespace IRISAPP.

0
0 44
Artículo Ricardo Paiva · dic 15, 2025 1m read

Rúbrica de preguntas frecuentes de InterSystems

Para ejecutar SQL en la terminal, usad $system.SQL.Shell().

Consultad el siguiente ejemplo.

SAMPLES>do $System.SQL.Shell()
SQL Command Line Shell
---------------------------------------------------- The command prefix is currently set to: <>.
Enter q to quit, ? for help.
SAMPLES>>select * from Sample.Vendor
1. select * from Sample.
0
0 47
Artículo Ricardo Paiva · dic 12, 2025 2m read

Hay un patrón con el que me he encontrado varias veces en el que necesito usar un archivo o carpeta temporal y que se limpie en algún momento más adelante.

Lo natural aquí es seguir los patrones de "Robust Error Handling and Cleanup in ObjectScript" usando un try/catch/pseudo-finally o un objeto registrado para gestionar la limpieza en el destructor. %Stream.File* también tiene una propiedad “RemoveOnClose” que podéis activar… pero usadla con cuidado, porque podríais eliminar accidentalmente un archivo importante, y este indicador se reinicia al llamar a %Save(), así que tendréis que volver a ponerlo a 1 después de hacerlo.

Pero hay un caso complicado: imaginad que necesitáis que el archivo temporal sobreviva en un nivel de pila superior. Por ejemplo:

0
0 34
Artículo John Murray · dic 5, 2025 1m read

Me complace anunciar la publicación de gj :: dataLoader, una nueva extensión de VS Code que simplifica la tarea de cargar datos desde archivos CSV locales en tablas SQL de vuestros servidores InterSystems IRIS.

Aquí tenéis un vídeo introductorio:

gj :: dataLoader ya está disponible en Marketplace para su instalación directa en VS Code. Es mi propuesta para el concurso “Bringing Ideas to Reality” 2025 y lleva a la práctica esta idea: https://ideas.intersystems.com/ideas/DPI-I-667

Se agradecen vuestros comentarios.

0
1 56
Artículo Ricardo Paiva · dic 3, 2025 2m read

Rúbrica de preguntas frecuentes de InterSystems

Al exportar usando el método Export() de la clase %Library.Global, si el formato de exportación (cuarto argumento: OutputFormat) está establecido en 7, “Block format/Caché block format (%GOF)”, no se pueden exportar globals mapeadas (solo se exportan las globals de la base de datos global predeterminada del espacio de nombres). Para exportar globals mapeadas en “Block format/Caché block format (%GOF)”, especificad el directorio de la base de datos a la que queréis mapearlas en el primer parámetro de %Library.Global.Export().

0
0 48
Artículo Jose-Tomas Salvador · dic 2, 2025 1m read

Hace ya un tiempo hice un pequeño ejemplo para poder desplegar rápidamente utilizando Docker instancias de InterSystems IRIS conectadas vía ECP. Ha pasado el tiempo y, como todo, necesitaba algo de chapa y pintura... 

0
0 69
InterSystems Official Jose-Tomas Salvador · nov 27, 2025

El proyecto de interfaz de usuario de Interoperabilidad ha continuado desde 2025.1 y ha incorporado muchos de los elementos que vosotros, nuestros clientes y socios, habéis sugerido y observado. Seguimos invirtiendo en vuestro feedback y actualizando esta importante experiencia de usuario. En la última versión, 2025.3 para IRIS, IRIS for Health, Health Connect y Health Connect Cloud, las aplicaciones del Editor DTL y de Configuración de Producción están disponibles para activarlas si lo deseáis.
NOTA:

  • Podéis alternar entre las experiencias modernizada y estándar.
0
0 48
Artículo Ricardo Paiva · nov 26, 2025 1m read

Hola,

Cuando abrimos un terminal en IRIS, entramos en el shell de ObjectScript. Dentro de este shell, podemos ejecutar comandos de IRIS, como:

En otras palabras, el comando ObjectScript se ejecuta en el shell actual. Pero siempre es bueno recordar que IRIS tiene otros shells.

  • SQL
  • Python
  • TSQL
  • MDX

Un aspecto muy interesante son los atajos. Podemos acceder a estos shells mediante sus llamadas o a través de atajos, como se muestra en la tabla siguiente:

 



Shell

Llamada

Atajo

SQL

Do $SYSTEM.SQL.Shell()

:sql

Python

Do $SYSTEM.Python.

0
0 56
Anuncio Sergio Farago · nov 26, 2025

Hola comunidad,

¡Buenas noticias para los desarrolladores que acabáis de empezar a trabajar con InterSystems IRIS! Tenemos tutoriales interactivos y prácticos disponibles a través de la plataforma Instruqt. Son perfectos para poneros al día rápidamente, practicar en entornos reales y ganar confianza en el desarrollo con IRIS.

Aquí tenéis la lista de tutoriales disponibles:

0
0 50
InterSystems Official Jose-Tomas Salvador · nov 21, 2025

La versión 2025.3 de la plataforma de datos InterSystems IRIS, InterSystems IRIS for Health y HealthShare Health Connect ya está disponible de forma general. Esta es una versión de entrega continua o CD  (Continuous Delivery).

Aspectos destacados de la versión:

  • Secure Wallet: Un nuevo marco cifrado para gestionar datos sensibles, basado en la base de datos IRISSECURITY, que mejora la seguridad del sistema y el control de acceso.
0
0 59
Artículo Jose-Tomas Salvador · nov 20, 2025 4m read

Como desarrollador que usa IRIS como base de datos en un par de proyectos, uso APIs REST todo el tiempo. En mi opinión, saber cómo consumir un recurso de una API REST es crucial para poder utilizar APIs REST externas con %Net.HttpRequest, porque permite la integración con aplicaciones y servicios web modernos, y es una habilidad esencial para un desarrollador backend que ama y utiliza IRIS como base de datos.

¿Qué es y para quién sirve %Net.HttpRequest?

Es solo una clase, pero es la forma adecuada de hacer solicitudes fuera del framework.

0
0 42
Artículo Andrew Sklyarov · nov 19, 2025 5m read

Cuando comencé mi trayectoria con InterSystems IRIS, especialmente en el área de Interoperabilidad, una de las preguntas iniciales y más comunes que tuve fue: ¿cómo puedo ejecutar algo en intervalos o según una programación? En este artículo quiero compartir dos clases sencillas que abordan este problema. Me sorprende que no haya clases similares ubicadas en algún lugar de EnsLib. ¿O quizá no busqué bien? En cualquier caso, este artículo no pretende ser un excesivamente complejo, sino una muestra de un par de fragmentos para principiantes.

0
0 48
Artículo Ricardo Paiva · nov 18, 2025 3m read

En mi artículo anterior en el que presentaba gj :: configExplorer señalé cómo un aparente error en los elementos de Windows de la API nativa para Node.js hace que actualmente no sea posible ejecutarlo en VS Code en un escritorio Windows. En un comentario a ese artículo ofrecí una solución alternativa, pero esta requiere un host Linux con Docker al que podáis conectaros por SSH.

Si no tenéis un destino adecuado, ahora es posible aprovechar vuestro Docker Desktop local de Windows. Aquí os explico cómo:

  1. Abrid una nueva ventana de VS Code.
0
0 43
InterSystems Official Jose-Tomas Salvador · nov 11, 2025

Resumen

Esta versión introduce el FHIR Server 2025.10.0, que ofrece las últimas mejoras en cumplimiento de estándares y rendimiento. También mejora el proceso de actualización de Health Connect Cloud (HCC) para una mayor fiabilidad y añade nueva flexibilidad a Network Connect mediante la compatibilidad con listas de prefijos en las configuraciones de VPN.


Nuevas características y mejoras


Categoría

Característica / Mejora

Detalles

FHIR Server

Lanzamiento de FHIR Server 2025.10.

0
0 50
Artículo Ricardo Paiva · nov 10, 2025 3m read

Seguramente queríais usar la especificación OpenAPI (OAS) en formato JSON que utilizasteis para vuestra clase spec en el paquete iris-web-swagger-ui de IRIS.
La OAS generada por el método ##class(%REST.API).GetWebRESTApplication(...) es muy básica, sin descripciones de los parámetros ni de la estructura esperada de las respuestas.

Así que, después de crear vuestra aplicación REST a partir de una OAS, deberíais tener:

  • Una clase application.disp.cls generada
  • Una clase application.
0
0 62