Artículo
· 16 jun, 2023 Lectura de 10 min
Creando un servicio REST en IRIS

Una de las necesidades más comunes por parte de nuestros clientes es la de la creación de servicios REST que permitan acceder a la información presente en IRIS / HealthConnect. La ventaja de estos servicios REST es que permite el desarrollo de interfaces de usuario personalizadas con las tecnologías más actuales aprovechando la fiabilidad y el rendimiento de IRIS en el back-end.

4 4
2 483

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.

2 2
1 53

Quería compartiros hoy un pequeño truco para personalizar cómo se muestran los mensajes en el Visor de Mensajes. En concreto, cómo mostrar mensajes JSON directamente en el Visor de Mensajes en lugar de serializados como XML.

image

3 2
0 274
Artículo
· 4 feb, 2025 Lectura de 2 min
Memoria un Acelerador de API

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

2 1
0 40

¡Hola desarrolladores! Quería compartir hoy un ejemplo muy interesante por parte de Tani Frankel. Se trata de una aplicación sencilla sobre la utilidad SystemPerfomance.

Repasando nuestra documentación sobre la rutina de monitorización ^SystemPerformance (conocida como ^pButtons en versiones anteriores a IRIS), un cliente me dijo «Entiendo todo esto pero ojalá fuese más simple, más sencillo para definir perfiles y gestionarlos, etc.».

Entonces pensé que sería interesante como ejercicio facilitar una pequeña interfaz para hacer esas tareas más sencillas.

El primer paso era envolver en una API basada en clases la rutina actual de ^SystemPerformance.

0 1
0 475

Hola todos,

Quiero compartir un sencillo y rápido método que puede usarse para habilitar ssl con un certificado auto-firmado en una instancia de desarrollo local de IRIS/HealthShare. Esto permite probar funciones específicas de https, como OAuth.

1. Instalar OpenSSL

Windows: https://slproweb.com/download/Win64OpenSSL_Light-1_1_1g.exe

Debian Linux: $ sudo apt-get -y install openssl

RHEL: $ sudo yum install openssl

1 1
0 192
Artículo
· 9 ene, 2025 Lectura de 2 min
Carga de archivos Parquet en IRIS

Hola colegas,

Hace unos días me surgio el requerimiento de cargar un archivo parquet, tal y como viene a una tabla en IRIS, así que desarrolló este classmethod que gatilla la carga solo indicando la ruta y nombre del archivo y el nombre de la tabla destino (en el mismo espacio de nombres). Para esto, escribí un pequeño código en Python que requiere las librerías: Pandas, pyarrow y fastparquet, las cuales deben instalar en el directorio de instalación de IRIS según su instalación, en mi caso el comando es:

0 1
0 65

Preguntas frecuentes de InterSystems

Si el sistema no se para durante 24 horas, los archivos journal serán eliminados a las 0:30 según la "Configuración de la eliminación de archivos journal".

Una posible causa de que los archivos journal permanezcan más tiempo del establecido en la "Configuración de la eliminación de archivos journal" es que hay transacciones que permanecen abiertas.

0 1
0 117

Me gustaría compartir algunas funciones de almacenamiento que también existen en Caché y que son prácticamente desconocidas y en su mayoría no se utilizan. Por supuesto, están disponibles en IRIS y son más relevantes con arquitecturas de almacenamiento extensas y distribuidas.

0 0
0 176

¡Volvemos al ataque con nuestro EMPI!

En artículos anteriores hemos visto como configurar y personalizar nuestro EMPI, hemos visto como podemos como podemos incluir nuevos pacientes en nuestro sistema mediante mensajería HL7, pero claro, ¡no todo es HL7 v.2 en esta vida! ¿Cómo podríamos configurar nuestra instancia del EMPI para trabajar con mensajería FHIR?

0 0
0 124

Revisando los diferentes artículos que he ido publicando he caído en la cuenta de que me faltaba explicar una funcionalidad bastante práctica dentro de nuestro EMPI (Enterprise Master Patient Index) y no es otra que la notificación de altas y vinculaciones a sistemas externos al EMPI.

1 0
0 68
Artículo
· 29 dic, 2021 Lectura de 2 min
Descripción de fhir-integratedml-example

Hablando con mi amigo @Renato Banzai, especialista en Machine Learning, me comentó uno de los mayores retos a los que se enfrentan las empresas hoy en día: implementar el Machine Learning (ML) o la Inteligencia Artificial (IA) en entornos reales.

InterSystems IRIS ofrece IntegratedML. IntegratedML es una excelente funcionalidad para formarse, probar e implementar modelos de ML/IA.

La parte más difícil al crear ML/IA es el tratamiento de los datos, su limpieza, hacerlos fiables.

¡Y ahí es donde podemos sacar ventaja del potente estándar FHIR!

La idea del proyecto muestra cómo podemos crear/entrenar/validar modelos de ML/IA con FHIR y utilizarlos con datos de diferentes fuentes.

0 0
0 175

Hola de nuevo a todos.

En nuestro artículo anterior vimos como configurar nuestro EMPI para recibir mensajería FHIR. Para ello instalábamos el Adaptador FHIR que InterSystems pone a nuestra disposición que configuraba un endpoint REST al que podíamos enviar nuestro mensaje FHIR. A continuación obteníamos el mensaje y lo transformábamos a un %String que enviábamos vía TCP a la producción de nuestro EMPI configurada en nuestro namespace HSPIDATA.

0 0
0 95
Artículo
· 17 mayo, 2024 Lectura de 52 min
『 ?ó?? ??????????? Monitorizar ?????????? 】

🙂 Buenos días comunidad.

Me gustaría compartir con ustedes, en este artículo, una manera muy práctica, de obtener información relevante de todos los Namespaces de un Entorno. ¿Para qué?. Pues por ejemplo para uno de los casos de uso que más nos encontramos los desarrolladores con respecto a Healtshare: el desafío de necesitar crear 1 servicio, y la odisea de ir entorno a entorno, namespace a namespace, buscando si el puerto XYZAB está libre o no... 🙃

5 0
0 113
Artículo
· 12 feb, 2025 Lectura de 5 min
IRIS %Status y Excepciones

Podéis encontrar errores en cualquier punto de la ejecución del programa, y hay varias formas de generarlos y manejarlos en IRIS. En este artículo, exploraremos cómo gestionar excepciones de manera eficiente.

Uno de los tipos de retorno más utilizados es %Status, que los métodos emplean para indicar éxito o fallo. Vamos a empezar hablando de los valores de %Status.

0 0
0 32


¡Hola a tod@s!

Este artículo es una pequeña descripción general de una herramienta que permitirá entender las clases y su estructura, dentro de los productos de InterSystems: desde IRIS hasta Caché, Ensemble y HealthShare.

En resumen, con esta herramienta se visualiza una clase o un paquete completo, se muestran las relaciones que existen entre las clases y proporciona toda la información que se encuentra disponible para los desarrolladores y líderes de equipos sin necesidad examinar el código, utilizando el Studio.

Si estás aprendiendo a utilizar los productos de InterSystems, o simplemente estás interesado en aprender algo nuevo sobre las soluciones que ofrece la tecnología de InterSystems, ¡eres más que bienvenido a leer la descripción general de ObjectScript Class Explorer!

0 0
0 572
Artículo
· 21 feb, 2022 Lectura de 2 min
Resolución exitosa de problemas

Durante las últimas semanas, estuve trabajando en varias cuestiones y problemas relacionadas con el desarrollo de software. Me di cuenta de que con frecuencia el análisis de los problemas consistía en perseguir los problemas solo a nivel superficial, pero sin atacar realmente las razones más profundas del problema y sin seguir las consecuencias. Es como el médico que detiene la hemorragia de una pierna pero no ve que en realidad está rota.

1 0
0 182

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...

0 0
0 84
Artículo
· 8 jul, 2024 Lectura de 1 min
Cómo encontrar el archivo XSD importado

¿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.

1 0
0 183

¡Hola Comunidad!

HealthShare utiliza muchas transformaciones XSL. Estas transformaciones se utilizan para convertir los documentos médicos de la iniciativa “Integración de las Empresas Sanitarias (IHE)” en SDA (formatos interno de HealthShare), y convertirlos nuevamente en los formatos IHE, con el fin de crear resúmenes de los informes y para lidiar con los perfiles en el IHE (por ejemplo, consultar la información de los pacientes, proporcionar documentos y registrarlos). Los clientes pueden configurar las XSLT para personalizar los informes, o para utilizarlas de alguna otra manera.

Para la depuración y el desarrollo es muy conveniente que se pueda ejecutar un XSLT desde el Terminal.

0 0
0 220

Una solución de control de versiones eficaz permite a las organizaciones gestionar bases de código complejas, facilitar una colaboración sin fisuras dentro de los equipos de desarrollo y agilizar los procesos de despliegue.

0 0
0 68

Estaba buscando la forma mas simple de conectar desde el visual studio code a mi instancia local por el terminal sin tener que ir cambiando de ventana.

Soy consciente de que esto tambien se puede conseguir por telnet pero me parece complicar la cosa para conectarme a mi local.

La solución mas sencilla me ha parecido navegar a la carpeta /bin de la instalación (o añadirla al PATH), y ejecutar .\csession.exe NOMBREDEINSTANCIA.

2 0
0 267

InterSystems FAQ

Puedes evitar este error especificando un objeto de tipo stream como argumento de la función %ToJSON usando durante la generación del string JSON desde el objeto dinámico.

A continuación podéis ver un ejemplo.

1 0
0 129

Una buena característica que se ha añadido recientemente a la versión 2.12.6 de la extensión ObjectScript de VS Code está controlada por esta nueva configuración:

objectscript.serverSourceControl.respectEditableStatus

Cuando se establece true en JSON, o se marca en el Settings Editor (o Editor de Configuración), un documento del lado del servidor será de sólo lectura si la clase de control de código fuente para el namespace informa que no es editable.

0 0
0 48

¿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?

0 0
0 23
Artículo
· 26 feb, 2020 Lectura de 1 min
Desactivación de una producción Ensemble

No pretendo decir que esto sea una guía de "buenas prácticas", pero estoy en una situación particular en la que necesito impedir que los usuarios inicien una producción de Ensemble “retirada” en un namespace renombrado. Sigue siendo un namespace activo, por lo que debemos mantenerlo disponible para acceder al visor de mensajes... afortunadamente, solo por un tiempo.

Es un truco …

3 0
0 188
Artículo
· 14 dic, 2022 Lectura de 1 min
Rutinas con privilegios y $Roles

Las rutinas con privilegios te permiten elevar los roles de un usuario mientras las utiliza. Estas rutinas con privilegios (Privileged Routine Application) pueden utilizarse con rutinas y también con clases / métodos.

Cuando las utilices, es importante asegurarse de incluir new $ROLES, antes de elevar los privilegios con AddRoles(). Por ejemplo:

 new $ROLES
 set status=$System.Security.AddRoles("MyPrivilegedRoutineApplication")

0 0
0 132