¡Hola Comunidad!
.png)
Para aprender IRIS rápidamente y de forma totalmente autónoma, te ofrezco algunos enlaces que te ayudarán en este precioso paseo en bicicleta lleno de cosas por descubrir:
InterSystems IRIS for Health™ es la primera y única plataforma de datos global diseñada específicamente para desarrollar aplicaciones que permitan a los servicios médicos administrar los datos más importantes del mundo. Incluye poderosas funciones listas para utilizarse: procesamiento y análisis de transacciones, un modelo flexible para la información de los servicios médicos, implementación de soluciones basadas en FHIR, soporte para las normas de compatibilidad operativa entre los servicios médicos, y mucho más. Todas estas funciones permiten que los desarrolladores realicen aplicaciones valiosas y novedosas rápidamente. Obtener más información.
¡Hola Comunidad!
.png)
Para aprender IRIS rápidamente y de forma totalmente autónoma, te ofrezco algunos enlaces que te ayudarán en este precioso paseo en bicicleta lleno de cosas por descubrir:
Se pueden recuperar estos datos utilizando el esquema INFORMATION_SCHEMA.
INFORMATION_SCHEMA es un esquema de sistema y no se muestra por defecto en el menú SQL del Portal de Gestión.
El método para mostrarlo es el siguiente:
.png)
El SQL para obtener el ID, el nombre del campo (COLUMN_NAME), el tipo de datos (DATA_TYPE) y la descripción (DESCRIPCIÓN) de la tabla especificada (Sample.
El lenguaje ObjectScript de InterSystems no permite definir métodos con el mismo nombre pero utilizando diferentes argumentos.
En general, se suele clasificar Objectscript como un lenguaje de programación dinámico. En ObjectScript se puede controlar libremente qué argumentos se utilizan cuando se ejecuta un método, así que a diferencia de otros lenguajes como Java, que no son lenguajes de programación dinámicos, no es necesario distinguir estrictamente los métodos por el número de argumentos en la fase de compilación.
El lenguaje ObjectScript, por tanto, no contiene la característica conocida como overloadingo sobrecarga como tal.
18 de septiembre de 2023
InterSystems ha corregido dos defectos relativos a la conectividad. Estos defectos y sus correcciones son independientes uno de otro.
Esta alerta aborda ambos problemas porque hay point releases que contienen ambas correcciones.
Los dos defectos solo afectan a las versiones 2019.1.4 y 2020.1.4 de:
No se encuentra el método InstallFoundation (IRIS 2023.2+)
Recientemente se lanzó IRIS 2023.2. Esta versión eliminó este método InstallFoundation de esta clase HS.HC.Util.Installer. Este era un método privado y no estaba documentado. Pero la comunidad lo utilizó ampliamente para instalar el servidor FHIR.
Entonces, si encuentramos este error:
<METHOD DOES NOT EXIST> *InstallFoundation,HS.HC.Util.Installer
En una demostración de nuestro propio servidor FHIR, podremos solucionarlo reemplazando esta línea:
do ##class(HS.HC.Util.Installer).InstallFoundation(namespace)
Por:
Do ##class(HS.Util.Cuando necesitas conocer el impacto de un cambio en tu proyecto, es muy útil ver las dependencias de tus clases en un diagrama de red. El proyecto IRIS Connections te permite verlas.

Si quieres instalarlo usando ZPM:
zpm:USER>install iris-connectionsSi quieres instalarlo usando Docker:
1. Clona/git pull el repositorio en cualquier directorio local:
$ git clone https://github.com/yurimarx/iris-connections.git2.
Las versiones de mantenimiento extendido de InterSystems IRIS, InterSystems IRIS for Health y HealthShare Health Connect 2023.1.1 ya están disponibles. Esta versión ofrece correcciones de errores de las versiones 2023.1.0 anteriores.
Podéis consultar la lista detallada de cambios y checklists para upgrade en estas páginas:
El software está disponible tanto como paquetes de instalación clásicos como imágenes de contenedor.
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.
USER>set temp=##class(%Stream.TmpCharacter).%New()
USER>set jsonobj={}
USER>set jsonobj.pro1=["a","b","c","d"]
USER>set jsonobj.pro2=["あ","い","う","え"]
USER>do jsonobj.%ToJSON(temp)
USER>write temp.Size
51
USER>write temp.Read()
{"pro1":["a","b","c","d"],"pro2":["あ","い","う","え"]}Podéis consultar la documentación si queréis más detalles al respecto.
La versión 23.2 de InterSystems Reports ya está disponible en la página de Distribución de Software de InterSystems, en la sección "Components". Están etiquetados como InterSystems Reports Designer e InterSystems Reports Server, y están disponibles para Mac OSX, Windows o Linux. Este año insightsoftware ha decidido pasar de un plan de versionado numérico incremental a un plan basado en los años, por lo que no existen versiones del 20 al 22; las versiones aumentan desde la versión 19 a la versión 23.
Buenos días,
Desde IRIS necesitamos poder obtener un fichero DICOM de un PACS a través de su AN.
He revisado un par de post publicados en la comunidad, pero son muy genéricos y no acabo de ver claro como obtener el DICOM pasando su AN al PACS.
¿Alguien ha desarrollado este caso de uso en IRIS? Si es así, ¿me podría ayudar con el código a implementar?
Saludos.
Xavier Gràcia Aloy
De cara a la reconstrucción de los índices de una clase persistente/tabla, hay que utilizar el método %BuildIndices(), proporcionado por dicha clase. Para ello hay que especificar los valores de inicio y fin de los ID para los cuales se quieren reconstruir índices en los argumentos del método.
Por ejemplo, para reconstruir el índice NameIDX y el índice ZipCode en la clase Sample.Person sólo para ID=10 a 20, ejecutad el siguiente código (el rango de ID se especifica en los argumentos quinto y sexto).
La versión 2023.2 de InterSystems IRIS Adaptive Analytics ya está disponible desde la página de Distribución de Software de InterSystems. Esta nueva versión incluye importantes mejoras, incluidas en la versión 2023.
Podéis ver el espacio libre disponible para la base de datos usando la opción "Free space view" (Ver espacio libre) en el Management Portal: System Operation > Databases.
Y se puede obtener mediante programación a través la consulta FreeSpace de la clase del sistema SYS.Database.
.png)
Se puede obtener mediante la consulta AllFields de la clase %SYS.ProcessQuery.
Para más detalles, consultad el documento Process (Job)【IRIS】/Process (Job).
Un ejemplo de ejecución en el terminal es el siguiente:
USER>set stmt=##class(%SQL.Statement).%New()
USER>set st=stmt.%PrepareClassQuery("%SYS.ProcessQuery","AllFields")
USER>write st // you can call %Execute() when st = 1
1
USER>set rset=stmt.%Execute()
USER>while rset.%Next() { write rset.%Get("JobNumber"),"-",rset.%Get("Pid"),"-",rset.%Get("OSUserName"),"-",rset.%Get("CurrentDevice"),"-",rset.Si el valor de una variable local es un OREF o no se puede determinar usando $IsObject(). Sea v la variable que desea verificar,
$IsObject(v)=1 // v is an OREF
$IsObject(v)=0 // v is not an OREF
$IsObject(v)=-1 // v is an OREF but does not point to a valid objectTenga en cuenta que $IsObject(v) dará un error UNDEFINED si v no está definido.
Para evitar errores UNDEFINED, se recomienda utilizar $Get así:
$IsObject($Get(v))En este artículo, analizo la clase %JSON.Adaptor. Esta clase es extremadamente útil para exportar datos a JSON serializado e importar objetos JSON y guardarlos en un objeto de clase.
Comenzaré con %JSON. Parámetros del adaptador. Los parámetros son una parte crucial de las operaciones de importación y exportación de JSON.
Si el nombre de su propiedad no es el mismo que el nombre de la clave JSON para exportar a un dispositivo externo o cargar los datos en un objeto mediante la importación, debe usar el parámetro %JSONFIELDNAME para definir el nombre del alias.
La versión 2023.2 de InterSystems IRIS Data Platform, InterSystems IRIS for Health e InterSystems IRIS Studio ya está disponible de manera general (GA).
2023.2 es una versión CD (Continuous Delivery). Se han añadido muchas actualizaciones y mejoras:
Empezando en esta versión:
※ Utilizad este método si queréis comparar bases de datos que se han replicado mediante mirror, shadow o algún otro mecanismo.
Podéis utilizar la utilidad DATACHECK para comparar globals. (Consultad la documentación para más información: Descripción general de DataCheck [IRIS])
***
Las comparaciones de rutinas usan la rutina del sistema %RCMP o el Portal de Administración.
.png)
FHIR ha revolucionado la industria de la atención médica al proporcionar un modelo de datos estandarizado para crear aplicaciones y promocionar el intercambio de datos entre diferentes sistemas. El estándar FHIR se basa en enfoques modernos impulsados por APIs, lo que lo hace más accesible para los desarrolladores web y móviles. Sin embargo, interactuar con las API de FHIR aún puede ser un desafío, especialmente cuando se trata de consultar datos usando lenguaje natural.
Se pueden configurar páginas de error individuales para los siguientes mensajes de error/respuestas del Web Gateway:
Los ajustes se realizan en la pantalla Administración del Portal de Gestión ([Administración] > [Configuración] > [Gestión del Web Gateway] > [Configuración] > [Parámetros predeterminados]).
Puedes buscar variables globales específicas en el archivo de journals usando la consulta ByTimeReverseOrder de la clase %SYS.Journal.File y la consulta List de la clase %SYS.Journal.Record
El funcionamiento de cada consulta es el siguiente:
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...
Continuando con la serie de análisis de rendimiento, en este artículo voy a mostrar un método para dimensionar los requisitos de memoria compartida para aplicaciones de base de datos que se ejecutan en plataformas de datos de InterSystems, incluyendo los Global y Routine Buffers, gmheap y locksize. También daré algunos consejos de rendimiento que se deberían tener en cuenta al configurar servidores y al virtualizar aplicaciones de Iris. Como siempre, cuando hablo de Iris o Caché , me refiero a toda la plataforma de datos. Este artículo tiene algunos años pero mantiene su esencia, por lo que me referiré a Iris o Caché indistintamente ya que la teoría es exáctamente igual para todos los productos con kernel Caché/Iris.

Esta es una aplicación de prueba, que muestra cómo usar el Repositorio FHIR de InterSystems IRIS for Health para crear un Repositorio FHIR con autorización OAuth2. El endpoint FHIR será el servidor de recursos y el Google OpenId será el servidor de autorización.
1 de agosto de 2023
InterSystems ha corregido dos defectos.
El primer defecto puede provocar que un servidor de aplicaciones ECP se bloquee. Este defecto solo es relevante para procesadores ARM e IBM Power; está presente en la versión 2022.1.2 y 2022.1.3 de InterSystems IRIS®, InterSystems IRIS for Health™ y HealthShare® Health Connect. La corrección de identifica como DP-423661. El defecto está controlado en todas las versiones futuras.
El segundo defecto puede, en circunstancias excepcionales, provocar que el dejournaling se bloquee. Este defecto está presente en las versiones 2020.4, 2021.x, 2022.x y 2023.1 de InterSystems IRIS®, InterSystems IRIS for Health™ y HealthShare® Health Connect. La corrección de identifica como DP-423505. El defecto esta controlado en todas las versiones futuras y ya está corregido en la versión 2023.1.1.
Hola Comunidad!
Voy a explicaros por encima cómo crear test en colecciones de Postman para usarlos en la app IRIS Api Tester.
Ok, pero.. ¿qué es Newman?
Newman es una herramienta de línea de comandos que nos permite ejecutar colecciones de Postman de un modo automático y escalable. Creando test en Newman, puedes asegurar la estabilidad de las colecciones en tus API endpoints. En este artículo, vamos a descubrir como crear test para Newman desde Postman, con unos ejemplos prácticos.
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 👈.

Hola Comunidad!!
Acabo de subir mi última aplicación "IRIS Api Tester" al Open Exchange.
Es un proyecto docker con InterSystems IRIS + Newman que permite lanzar test sobre tus colecciones de Postman de una manera rápida y fácil.
El proyecto viene listo para funcionar, solo debes clonar el repositorio: https://github.com/daniel-aguilar-garcia/irisapitester
Arrancar el fichero docker-compose:
.png)
Abrir esta url en tu navegador:
ZPM está diseñado para funcionar con aplicaciones y módulos de InterSystems IRIS. Está formado por dos componentes: el Cliente ZPM, que es un CLI para gestionar módulos; y El Registro, que es una base de datos de módulos y meta-información. Podemos utilizar ZPM para buscar, instalar, actualizar, eliminar y publicar módulos. Con ZPM se pueden instalar clases de ObjectScript, aplicaciones Frontend, producciones de Interoperabilidad, soluciones de BI de IRIS, conjuntos de datos de IRIS o cualquier otro archivo, como paquetes wheel de Python Embebido.
En este artículo repasaremos tres secciones:
Si alguna vez os habéis preguntado cómo depurar algunas solicitudes que se realizan hacia o desde IRIS, este es un pequeño tutorial sobre cómo se hace.
Durante un proyecto complejo, normalmente se obtienen las especificaciones y se implementa la comunicación entre IRIS y otros sistemas basándose en eso. Pero del papel al mundo real normalmente hay un gran trecho y hay que saber por qué se recibe un error en un parámetro o en una cabecera, por qué no se reciben los datos, etc.
Si la conexión es una conexión http sencilla, no hay problema, siempre se puede iniciar tcpdump y capturar el tráfico, pero ¿qué pasa con la comunicación https?
¿Qué tal tener una interfaz web limpia, algo que iniciáis y después el desarrollador puede mirar ese portal cuando quiera?
Si alguna vez habéis estado en esta situación, una solución sencilla es mitm proxy ( https://mitmproxy.org/ ).
Este programa tiene la capacidad de actuar como un proxy (se puede configurar en el Business Operation, por ejemplo), un proxy transparente (lo que me gusta), proxy upstream (proxy transparente que envía la conexión a otro proxy), etc.