En vuestra Producción de Interoperabilidad, siempre podíais tener una Business Operation (BO) que fuera un cliente HTTP y que utilizara OAuth 2.0 para la autenticación. Sin embargo, teníais que personalizar la BO para esta metodología de autenticación. Desde la versión 2024.3, que se lanzó recientemente, hay una nueva capacidad que proporciona nuevos ajustes para gestionar esto de forma más sencilla.
La utilidad devuelve los valores deseados del texto y muestra múltiples valores si existen, basándose en una cadena de inicio y una de fin.
Class Test.Utility.FunctionSet Extends %RegisteredObject { /// W !,##class(Test.Utility.FunctionSet).
Recientemente me encontré con un problema muy antiguo relacionado con el mantenimiento de código:
Tenéis acceso a vuestro servidor IRIS solo a través de ODBC/JDBC:
- Sin acceso a VSCode
- Sin acceso a Studio
- Sin acceso a (Web-)Terminal
¡Pero necesitáis revisar Clases, Rutinas o Globals!
De cualquier forma, SQL es vuestro aliado.
- Primero, necesitáis una tabla sencilla como almacén temporal de texto.
CREATE GLOBAL TEMPORARY TABLE arcc.txt (line VARCHAR(32000))- A continuación, exportad vuestro código a un archivo local e importadlo a vuestra tabla.
CREATE PROCEDURE arcc.InterSystems IRIS proporciona un entorno completo para el desarrollo de aplicaciones, diseñado para crear aplicaciones sofisticadas centradas en datos y análisis intensivo, conectando silos de datos y aplicaciones. Está preparado para trabajar con todas las tecnologías comunes de desarrollo de manera abierta y basada en estándares, y admite tanto la programación del lado del servidor como del lado del cliente.
InterSystems IRIS permite el desarrollo de aplicaciones del lado del servidor utilizando Python y ObjectScript de InterSystems.
Acelerando la detección de resistencia a los antibióticos con InterSystems IRIS
La resistencia a los antibióticos es un desafío crítico para la salud, que requiere una detección rápida para informar tratamientos efectivos. Trabajamos en el desarrollo de una solución que aprovecha la tecnología de bases de datos vectoriales de InterSystems IRIS para identificar rápidamente genes de resistencia en el ADN.
Cómo funciona
Utilizando incrustaciones vectoriales, las secuencias de ADN se transforman en representaciones numéricas que capturan información genética esencial.
.png)
La inteligencia artificial generativa es una inteligencia artificial capaz de generar texto, imágenes u otros datos utilizando modelos generativos, a menudo en respuesta a indicaciones o "prompts". Los modelos de IA generativa aprenden los patrones y la estructura de sus datos de entrenamiento y luego generan nuevos datos con características similares.
La IA generativa es capaz de crear texto, imágenes y otros tipos de contenido.
He estado trabajando en este proceso con algunos compañeros de equipo y pensé que podría ser útil para otros, especialmente si trabajáis con HL7 y Ensemble/HealthConnect/HealthShare y rara vez os aventuráis más allá de la sección de Interoperabilidad.
Primero, me gustaría establecer que este tutorial es una extensión de la documentación ya existente sobre la importación y exportación de datos SQL, que se encuentra aquí: https://docs.intersystems.com/iris20241/csp/docbook/DocBook.UI.Page.cls?
En ObjectScript, tenéis una amplia colección de funciones que devuelven algún valor, típicamente:
set variable = $somefunction(param1,param2, ...)
No hay nada especial en eso.
Pero hay un conjunto de funciones que clasifico como del LADO IZQUIERDO.
La especialidad de ellas es que también podéis usarlas a la izquierda del operador igual como un objetivo en el comando SET:
set $somefunction(param1,param2, ...) = value
La razón para plantear ese tema es que con IRIS 2024.
Rúbrica de preguntas frecuentes de InterSystems
Podéis comprobar el espacio libre en disco en cualquier momento usando la clase de utilidad del sistema: SYS.Database y la consulta: FreeSpace.
Aquí tenéis cómo probarlo en el terminal de IRIS (id al espacio de nombres %SYS y luego ejecutadlo):
zn "%SYS"
set stmt=##class(%SQL.Statement).%New()
set st=stmt.%PrepareClassQuery("SYS.Database","FreeSpace")
set rset=stmt.%Execute()
do rset.Existen muchas aplicaciones para trabajar con mensajes HL7 V2, pero las herramientas para trabajar con XML en el Portal de Gestión o los IDE de IRIS son limitadas. Aunque hay muchas utilidades externas e IDEs que funcionan con mensajes XML e incluso documentos C-CDA, hay una razón convincente para poder hacer pruebas directamente en el marco de trabajo C-CDA de IRIS.
Hacer pruebas dentro del entorno de IRIS os proporciona el contexto necesario:
- Configuración del analizador XML
- Contexto del espacio de nombres XML
- Configuración de facilidades y OID
- Manejo de cabeceras IHE
- Los paquetes HS.
El desarrollo frontend puede ser una tarea desalentadora, incluso una pesadilla, para los desarrolladores centrados en el backend. Al principio de mi carrera, la línea entre frontend y backend era difusa, y se esperaba que todos manejaran ambos. El CSS, en particular, siempre fue una lucha constante; sentía que era una misión imposible.
Aunque disfruto trabajando en el frontend, el CSS sigue siendo un desafío complejo para mí, especialmente porque lo aprendí a base de prueba y error. El meme de Peter Griffin luchando por abrir persianas captura perfectamente mi experiencia aprendiendo CSS.

Incluyo este post para ayudar a los usuarios de WebTerminal que han actualizado a la versión IRIS 2024.2 -- (Build 247U) Tue Jul 16 2024 09:52:30 EDT -- liberada recientemente o están considerando hacerlo.
Esa versión 2024.2 contiene un cambio (DP-432503) que precisa que el usuario a través del cual se conecta inicialmente el Web Gateway (normalmente CSPSystem) deba tener permisos de lectura (READ) sobre la base de datos en la que se encuentra la clase de dispatching de la aplicación web de tipo REST.
Acceder a un almacenamiento en la nube de Azure para cargar/descargar blobs es bastante fácil usando los métodos API designados de la clase %Net.Cloud.Storage.Client, o usando los adaptadores de entrada/salida EnsLib.CloudStorage.*
Tened en cuenta que necesitaréis tener el Servidor de Lenguaje Externo %JavaServer en funcionamiento para usar tanto la API de almacenamiento en la nube como los adaptadores, ya que ambos usan el marco PEX usando el Servidor Java.
.png)
Para los programadores nuevos en ObjectScript, inevitablemente surgirá una pregunta: “¿Cuál es la diferencia entre Methods y ClassMethods?” Una respuesta típica sería: “Un ClassMethod se aplica a una clase, pero un method se aplica a una instancia de esa clase.” Aunque esa respuesta es correcta, carece de información importante sobre cómo estos métodos difieren y cómo se usan en ObjectScript. Muchas cosas podrían escribirse como cualquiera de los dos. Por ejemplo, supongamos que tenemos una clase llamada “User.Person” con una propiedad llamada “Name”.
Introducción a la ejecución de WSGI en IRIS
Con IRIS 2024+, los usuarios podéis alojar aplicaciones WSGI utilizando Security.Applications. Como ejemplo, un usuario puede hacer algo como esto
Ejemplo de trabajo mínimo
zn "%SYS"
Kill props
Set props("Description") = "Sample WSGI Application"
Set props("MatchRoles") = ":%All"
Set props("WSGIAppLocation") = "/path/to/flaskapp"
Set props("WSGIAppName") = "myapp"
Set props("WSGICallable") = "app"
Set props("DispatchClass") = "%SYS.Python.WSGI" // important, otherwise will be recognized as CSP application
Set sc = ##class(Security.Applications).¿Alguna vez habéis importado un esquema XML desde un archivo XSD? Es posible que queráis volver a consultar el archivo original algún tiempo después, pero habéis olvidado dónde lo pusisteis.
No os preocupéis, esa información se guarda como parte del proceso de importación.
Todo el esquema XSD importado se guarda en el global ^EnsEDI.XML.Schema. Ese global contiene todos los XSDs importados en vuestro espacio de nombres. El primer subíndice es el nombre del esquema que se ve en el portal.

Para buscar la ubicación del archivo XSD de origen, basta con mirar en el siguiente lugar:
^EnsEDI.XML.
Al desarrollar una nueva Producción de Interoperabilidad, es bastante natural que los parámetros se añadan inicialmente en la Producción.
Sin embargo, en cuanto queréis mover la Producción de desarrollo a un entorno de prueba o staging, queda claro que algunos parámetros de configuración como Servidores HTTP, direcciones IP y/o puertos necesitan ser cambiados. Para evitar que estos parámetros se sobrescriban durante un redepliegue posterior, es esencial que mováis estos parámetros de la Producción a los Parámetros Predeterminados del Sistema.
Añadid una credencial para iniciar sesión en la interfaz REST de FHIR - en este caso considerad sólo una autenticación básica
.png)
.png)
Añadid Registro de Servicios - en este caso considerad sólo una autenticación básica
- Configurad un servicio HTTP
- Introducid la ruta al servidor FHIR
- Introducid la URL del servicio FHIR
- Usad la credencial añadida previamente



.png)
Añadid una "HS.FHIRServer.Interop.HTTPOperation"
.png)
Elegid el Nombre del Servicio
.png)
Probad el cliente FHIR
.png)
.png)
Rastread/seguid el resultado de la prueba
.png)
.png)
.png)
Un cliente preguntó recientemente si IRIS soporta OpenTelemetry, dado que estaban buscando medir el tiempo que los servicios SOAP implementados por IRIS tardan en completarse, y el cliente ya tenía varias otras tecnologías que soportan OpenTelemetry para el seguimiento de procesos.
Si bien, a día de hoy, InterSystems IRIS (IRIS) no soporta de forma nativa OpenTelemetry, es justo decir que la plataforma de datos IRIS tiene varias maneras de capturar, registrar y analizar el rendimiento de una instancia en ejecución.
Recientemente, mientras discutía con mis alumnos el acceso a los datos almacenados en IRIS desde diferentes lenguajes, surgió la pregunta de si era posible iniciar la conexión y obtener datos de la solución Cloud (InterSystems IRIS CloudSQL) desde Microsoft Excel, y no al revés. Teniendo en cuenta las muchas y variadas formas en las que uno puede obtener datos en Excel (importar datos de fuentes externas, conectarse a bases de datos utilizando drivers ODBC, utilizando power queries y web queries, etc.) la opción obvia era probar con el driver ODBC. La única tarea que quedaba era tratar de conectarse a la base de datos en la nube utilizando el driver ODBC.
.png)
En este tutorial, me gustaría hablar sobre las Consultas de Clase (Class Queries). Para ser más precisos, sobre las Consultas basadas en código escrito por el usuario:

Mucha gente descarta este tipo de consulta simplemente porque no se sienten muy cómodos escribiendo mucho código ObjectScript para los métodos o no ven cómo pueden utilizarlo en sus aplicaciones relacionales. Pero para ser honesto, para mí - ¡es uno de los inventos más geniales para el modelo relacional en IRIS!
Para vuestra comodidad, InterSystems está publicando los pasos de instalación característicos de los sistemas operativos que son compatibles con InterSystems IRIS.
Para Microsoft Windows, consultad por favor la documentación de producto de InterSystems.
El instalador de IRIS detectará si hay un servidor web instalado en la misma máquina, lo que da la opción de tener configurado automáticamente el servidor web.
Todas las instalaciones de Apache requerirán permiso de sudo (recomendado) o de root para instalar el servidor web. Este requisito es compatible con las mejores prácticas recomendadas.
Este artículo ha sido actualizado con respecto al original en inglés (más antiguo). Los ejemplos que se presentan aquí han sido validados con la última versión de IAM, actualmente la 3.2.1.0-4, y la versión más reciente de InterSystems IRIS, la 2023.2, que es la primera en que ya no se instala por defecto un servidor web.
Este artículo contiene los materiales, ejemplos y ejercicios necesarios para aprender los conceptos básicos de IAM.
Todos los recursos están disponibles en este git: https://github.com/grongierisc/iam-training.
Las soluciones están en esta rama.
¡Hola Comunidad!
Me gustaría compartir con vosotros un ejercicio que he hecho para crear "mi propio" chat con ChatGPT en Telegram.
Ha sido posible gracias a dos componentes de Open Exchange: Telegram Adapter, de @Nikolay Solovyev e IRIS Open-AI, de @Kurro Lopez 
Así que con este ejemplo podréis configurar vuestro propio chat con ChatGPT en Telegram.
¡Veamos cómo hacerlo funcionar!
Este es un artículo de la página de "Preguntas frecuentes" (FAQ) de InterSystems.
1. Exportar API
a. Usa $system.OBJ.Export() para especificar rutinas individuales para exportar. Por ejemplo:
do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)El formato que debes especificar es: NombreDeLaRutina.extension, y la extensión puede ser: mac, bas, int, inc, obj.
Los errores durante la exportación se almacenan en la variable "errors".
Echa un vistazo a la referencia de clase %SYSTEM.OBJ para más detalles sobre $system.OBJ.Export().
b. Usa $system.OBJ.
En este breve artículo me gustaría compartir un par de estrategias para ejecutar el código Objectscript en modo depuración.
Cómo entrar en el modo depuración
Hay dos formas de lanzar el depurador.
Lanzando un comando
Supongamos que tenemos que depurar el siguiente método:
Class Custom.Example Extends %RegisteredObject
{
/// check if a string can be a valid STP code ("STP" + 13 digits)
/// w ##class(Custom.Example).HL7 (Health Level 7) es un conjunto de especificaciones técnicas para el intercambio informatizado de datos clínicos, financieros y administrativos entre Sistemas de Información Hospitalaria (HIS). Estas especificaciones se integran de diversas formas en el conjunto de Normas oficiales americanas (ANSI) e Internacionales (ISO).
La L7 de HL7 indica que es una norma que opera en la capa 7, es decir, en la capa de aplicación, del modelo OSI. Esto significa que HL7 no tiene que tener en cuenta las consideraciones de seguridad en el intercambio, ni las de transporte de mensajes (de eso se encargan capas de nivel inferior como SSL/TLS para la seguridad o TCP para el transporte de datos, por ejemplo). Para ser más precisos, la capa 7 soporta las comunicaciones para los procesos y aplicaciones de usuario final y la presentación de datos para las aplicaciones de software orientadas al usuario. Al ser la capa más alta del modelo OSI, y la más cercana al usuario final, la capa 7 proporciona funciones específicas de la aplicación, como identificar la comunicación de los partners y la calidad del servicio entre ellos, determinar la disponibilidad de recursos, considerar la privacidad y la autenticación del usuario, y sincronizar la comunicación, así como conectar la aplicación con los niveles inferiores del modelo OSI.
¡Hola Comunidad!
Recientemente tuve que configurar un servidor FHIR local usando IRIS for Health y creo que encontré la forma más sencilla y simple de hacerlo.
Simplemente ejecuta estas dos líneas en el terminal:
docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-communityy
docker exec -it my-iris iris session iris -U "USER" '##class(%ZPM.PackageManager).Shell("install fhir-server")'Y tendrás un servidor FHIR ejecutándose localmente en http://localhost:9092/fhir/r4.
¡Y eso es todo!
El servidor FHIR usará la última versión de InterSystems IRIS for Health Community Edition y desplegará el servidor FHIR desde esta app a través del paquete IPM en el namespace FHIRSERVER.
Python se ha convertido en el lenguaje de programación más utilizado del mundo (fuente: https://www.tiobe.com/tiobe-index/) y SQL sigue siendo el líder como lenguaje para las bases de datos. ¿No sería genial que Python y SQL trabajaran juntos para ofrecer nuevas funcionalidades que SQL por sí mismo no puede? Después de todo, Python tiene más de 380.000 librerías publicadas (fuente: https://pypi.org/) con funciones muy interesantes para ampliar las consultas SQL dentro de Python.
En este artículo detallo cómo crear nuevos Procedimientos Almacenados de SQL en la base de datos de InterSystems IRIS usando Embedded Python.
¡Hola desarrolladores!
En Docker Hub hay publicadas imágenes para los contenedores de InterSystems IRIS Community Edition e InterSystems IRIS Community for Health.
¿Qué es esto?
Hay un repositorio en que se publican estás imágenes (que, de hecho, son las mismas que las imágenes de IRIS Community Edition que tienes en el Registro de Contenedores de InterSystems a las que se les ha pre-cargado el cliente del ObjectScript Package Manager).
Así que si ejecutas este contenedor con IRIS CE o IRIS CE for Health puedes empezar a usar ZPM inmediatamente e instalar paquetes desde el Registro de la Comunidad o cualquier otro.
¿Que significa esto para ti?