El asombroso Iris-nator ha llegado a la ciudad.
Sabe lo que piensas, con sólo unas preguntas es capaz de adivinar el personaje en el que has pensado.
¿Te atreves?
En los servicios médicos, la compatibilidad operativa es la capacidad que tienen los diferentes sistemas en tecnología de la información y aplicaciones de software para comunicarse, intercambiar datos y utilizar la información que se intercambió.
El asombroso Iris-nator ha llegado a la ciudad.
Sabe lo que piensas, con sólo unas preguntas es capaz de adivinar el personaje en el que has pensado.
¿Te atreves?
La interfaz de usuario de Interoperabilidad ahora incluye experiencias modernizadas para las aplicaciones DTL Editor y Production Configuration, las cuales están disponibles para su activación en todos los productos de interoperabilidad. Podéis alternar entre las vistas moderna y tradicional. Todas las demás pantallas de interoperabilidad permanecen en la interfaz de usuario estándar. Tenéis que tener en cuenta que los cambios se limitan a estas dos aplicaciones, y a continuación se identifica la funcionalidad que está disponible actualmente.
En este artículo, hablaremos sobre los Mensajes Huérfanos.
Cada cuerpo de mensaje está asociado con un encabezado de mensaje que contiene los metadatos. El encabezado incluye información como el nombre de la configuración de origen, el nombre de la configuración de destino, la hora de creación, la hora de procesamiento, la referencia asociada al cuerpo del mensaje, la información de sesión, el nombre de la clase del cuerpo del mensaje y el estado del mensaje.
Hola
Este artículo es el resultado de la pregunta que había hecho a la comunidad: Adaptador UDP no funciona
En este artículo, voy a presentaros
1) ¿Qué es "UDP"?
2) El estado actual de Iris con UDP
3) Mi solución con el adaptador UDP
UDP significa User Datagram Protocol. Es uno de los protocolos fundamentales del conjunto de protocolos de Internet (IP) y se utiliza para transmitir datos a través de una red.
Cuando creamos un repositorio FHIR en IRIS, tenemos un endpoint para acceder a la información, crear nuevos recursos, etc. Pero hay algunos recursos en FHIR que probablemente no tengamos en nuestro repositorio, por ejemplo, un recurso Binary (este recurso devuelve un documento, como un PDF, por ejemplo).
He creado un ejemplo en el que cuando se solicita un recurso Binary, el endpoint de FHIR devuelve una respuesta, como si existiera en el repositorio.
En primer lugar, necesitamos un Namespace y un endpoint FHIR.
Estimada comunidad,
Quería comentarles que hoy publique en OpenExchange un acelerador de APIs muy simple de implementar (con algún parecido a Redis, pero más funcional) y con resultados bastante buenos, a continuación está la publicación del README, espero les sea de ayuda!
https://openexchange.intersystems.com/package/memoria
Esta aplicación permite almacenar el resultado de una llamada a la API GET de forma permanente o por un periodo de tiempo, reduciendo los tiempos de respuesta al cliente final.
¡Tenemos un nuevo curso para ti!... pero sólo si te interesa estar a la última en el mundo de la interoperabilidad en entornos sanitarios.
Igual no lo sabes, pero la familia de productos de InterSystems, con IRIS for Health y Health Connect a la cabeza, son la tecnología base para gestionar e integrar datos clínicos y administrativos de más de la mitad de la población de España... (por no hablar de EEUU, UK, Paises Bajos,...). Así que, teniendo en cuenta esto, si te dedicas al desarrollo de soluciones o a la implementación de interfaces o integraciones en el sector salud, este es otro curso que no te puedes perder. Pincha y regístrate. ¡¡No lo dudes!!. Más que nada porque las plazas son limitadas... (ahí lo dejo, que luego me dicen que no lo aviso 😉).
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 capacidad de reenviar mensajes fácilmente siempre ha sido una de las características más destacadas de nuestras capacidades de interoperabilidad.
Con la versión 2024.3 que se lanzará pronto (ya disponible como Developer Preview), ¡lo hemos hecho aún más sencillo!
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?
¡Muy buenas a todos! Os paso un ejemplo de resolución de problemas a la hora de implementar transformaciones de datos que es muy interesante: estaba trabajando en un transformación de datos (DTL) de mensajes HL7 pero no paraba de obtener errores del tipo ERROR #5002... MAXSTRING. El problema era que la mayor parte de acciones en la interfaz gráfica de DTL utilizan el tipo de datos %String al trabajar con segmentos de un mensaje HL7.
Un %String tiene un límite de 3,641,144 caracteres, y mi OBX5.1
¡Hola a todos!
Me alegra anunciaros una nueva versión de iris-datapipe, un framework potente que, acompañado de una interfaz gráfica, te permitirá obtener una visión integral de la ingesta y procesamiento de datos en InterSystems IRIS.
Samba es el estándar para la interoperabilidad de servicios de archivos entre Linux, Unix, DOS, Windows, OS/2 y otros sistemas operativos. Desde 1992, Samba ha proporcionado servicios de archivos seguros, estables y rápidos para todos los clientes (sistemas operativos y programas) utilizando el protocolo SMB/CIFS.
.png)
¡Hola a todos! Aquí me gustaría compartir cómo utilizamos la búsqueda vectorial y la inteligencia artificial generativa (GenAI) con la tecnología de InterSystems. Como ejemplo, describiré el proyecto BG-AppealAI, que nuestra empresa presentó al concurso de Búsqueda Vectorial, GenAI y ML de InterSystems. La aplicación BG-AppealAI puede redactar una apelación si se sube un contrato de seguro y la carta de la compañía de seguros con la negativa a pagar los gastos médicos.
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.
Tengo un sistema Scada iFIX que soporta VBA comunicando con IRIS mediante sockets. En el entorno VBA del iFIX empleo el control MSWINSCK.OCX que funciona perfectamente con la versión antigua del iFIX. Al querer pasar a la nueva versión de iFIX este control ya no me funciona, es por eso que quiero intentar solucionar el problema comunicando directamente con el OPC que está debajo del iFIX. La idea es mandarle un bit 1 desde IRIS cuando actualizo unos datos, el OPC debería recibirlo en un TAG y el iFIX podría leer del OPC ese bit.
.png)
.png)
- Configurad un servicio HTTP
- Introducid la ruta al servidor FHIR
- Introducid la URL del servicio FHIR
- Usad la credencial añadida previamente



.png)
.png)
.png)
Probad el cliente FHIR
.png)
.png)
Rastread/seguid el resultado de la prueba
.png)
.png)
.png)
.png)
Buenas a todos,
en capítulos anteriores, vimos como "Como controlar el acceso a tus recursos con OAuth2". En este primer artículo explicábamos como preparar un acceso seguro a nuestros recursos utilizando la potente herramienta que nos ofrece Intersytems del servidor de Autenticación. Al finalizar el mismo, comentábamos que si quisiéramos podríamos aplicar un control extra a este acceso y esto nos lleva a este artículo, por lo que seguiremos el siguiente índice:
1.- Introducción
1.1..- De donde venimos
2.- Problema
2.1.- ¿Cómo funciona la llave (Token)?
2.
La especificación OpenAPI (OAS) define una interfaz estándar e independiente del lenguaje para las API HTTP que permite tanto a humanos como a ordenadores descubrir y comprender las capacidades del servicio sin acceso al código fuente, la documentación o mediante la inspección del tráfico de red. Cuando se define correctamente, un consumidor puede entender e interactuar con el servicio remoto con una cantidad mínima de lógica de implementación. Aunque para las API basadas en SOAP existe un asistente especial en InterSystems IRIS que reduce el tiempo de desarrollo de las orquestaciones, no todas las API utilizadas en las integraciones son SOAP. Por eso @Jaime Lerga sugirió añadir un asistente similar al de SOAP para generar un cliente REST a partir de la especificación OpenAPI. La implementación de esta idea reduce el tiempo de desarrollo de las orquestaciones REST API con InterSystems IRIS. Esta idea es una de las más populares en las ideas de InterSystems. Este artículo, el tercero de la serie "Ideas implementadas", se centra en la solución OpenAPI Suite desarrollada por @Lorenzo.Scalese.
Esta demostración tiene una producción de interoperabilidad con 16 elementos.
La primera parte de esta demostración consiste en enviar un archivo HL7 SIU que será transmitido a los otros 2 flujos HL7 (HTTP y TCP), y transformado y transmitido al servidor Kafka. Los flujos HTTP y TCP transformarán los mensajes HL7 del mismo modo antes de enviarlos también a Kafka.
Este artículo es una continuación de esta publicación.
En ese artículo revisamos cómo crear y definir mensajes que se utilizan para enviar y recibir datos entre componentes.
En este artículo, explicaré cómo crear una business operation a partir de los métodos para crear componentes.
Revisaremos rápidamente el código al referirnos a la muestra.。
En este artículo, compartiré el tema que presentamos @Rochael Ribeiro y yo en la Convención Anual (Global Summit) 2023, en la sala "Tech Exchange".
En esa ocasión hablamos de los siguientes temas:
Hola comunidad,
Cuando utilizamos un Business Servicio de tipo SQL, puede suceder que necesitemos replicar ciertas filas de la tabla original.
Tomemos como ejemplo el Business Service "from customer SQL" usando la clase genérica EnsLib.SQL.Service.GenericService
.png)
Surgen diferentes casos, dependiendo de la configuración utilizada en este Business Service.
Primer caso:
Si el Business Service solo usa un KeyFieldName
.png)
.png)
En este caso, para reprocesar los IDs 123,456 y 789, bastará con eliminarlos de la variable global ^Ens.AppData del Business Service correspondiente en la referencia "adaptor.

En un entorno clínico acelerado, en el que la toma rápida de decisiones es crucial, la falta de sistemas eficientes de almacenamiento y acceso a los documentos plantea varios obstáculos. Aunque existen soluciones de almacenamiento de documentos (por ejemplo, FHIR), el acceso y la búsqueda eficaz de datos específicos de pacientes dentro de esos documentos puede suponer todo un reto.
La IA ha hecho que la búsqueda de documentos sea extraordinariamente potente.
Recientemente me comentaron sobre la necesidad de monitorizar desde HealthConnect los registros presentes en una base de datos NoSQL en el Cloud, más en concreto Cloud Firestore, desplegada en Firebase. Con un rápido vistazo pude ver lo sencillo que resultaría crear un Adapter ad-hoc para realizar la conexión aprovechando las capacidades de Embedded Python, así que me puse manos a la obra.
Al crear componentes personalizados, a menudo es necesario agregar propiedades a la clase para configuraciones adicionales que se usarán en la inicialización o en la operación del componente. El nombre de la propiedad en sí no siempre es muy descriptivo, por lo que es una ventaja tener una pantalla de título personalizada con el campo.
En Caché, era bastante sencillo:
TEST> Set ^CacheMsg("EnsColumns","en-us","<property name>") = "<caption>"Pero implica un poco más de esfuerzo en IRIS...
¡Hola Comunidad!
Como sabéis, las soluciones de Interoperabilidad de InterSystems IRIS contienen diferentes elementos de la solución, como: producciones, reglas de negocio, procesos, transformaciones de datos, mapeos de registros, etc. Y a veces podemos crear y modificar estos elementos con herramientas visuales en la UI. Y por supuesto necesitamos una forma práctica y sólida de controlar el código fuente con los cambios realizados con herramientas de UI.
Durante mucho tiempo, esto era un proceso de configuración manual (exportar clase, elemento, global, etc.) o engorroso, por lo que el tiempo ahorrado con la automatización del control de fuentes de la UI competía con el tiempo perdido en configurar y mantener la configuración.
Ahora ese problema ya no existe. Con dos enfoques: desarrollo "package first" y uso del paquete IPMgit-source-control, de @Timothy.Leavitt.
Os explico los detalles a continuación.
¡Hola Comunidad!
Me alegra anunciar la nueva versión de iris-pex-embedded-python (v2.3.1) con una nueva interfaz de línea de comandos.
Esta línea de comandos se llama iop por Interoperability On Python.
Primero me gustaría presentar los principales cambios del proyecto desde la versión 1.
La versión 1.0 fue una prueba de concepto para mostrar cómo el framework de interoperabilidad de IRIS se puede utilizar con un enfoque python first mientras sigue siendo compatible con cualquier código existente de ObjectScript.
¿Qué significa eso? Significa que cualquier desarrollador Python puede usar el framework de interoperabilidad de IRIS sin ningún conocimiento de ObjectScript.
Ejemplo:
from grongier.pex import BusinessOperation
class MyBusinessOperation(BusinessOperation):
def on_message(self, request):
self.log.info("Received request")
Genial, ¿cierto?
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 👈.
