Me complace anunciar el lanzamiento de la versión 1.4.4 de la extensión VS Code, que contiene las siguientes mejoras y correcciones de fallos. Los enlaces que llevan a las issues de GitHub han sido corregidos. Como siempre, si ya tienes la extensión instalada, VS Code debería actualizar automáticamente tu extensión. Si no la tienes instalada, sigue estas instrucciones para empezar.
🎉 🎉 🎉
¡Gracias a todos los que compartís vuestras aplicaciones en Open Exchange!
Y sois más que bienvenidos a visitarlo si aún no lo conocéis.
Open Exchange es una galería de aplicaciones, conectores y librerías, que los desarrolladores de InterSystems publican para compartir formas de trabajar, enfoques y hacer negocio. Todas las aplicaciones están o construidas con InterSystems Data Platform o pensadas para ser usadas en desarrollos con nuestra tecnología.
¿Te suenan OAuth2 / OpenID Connect pero no estás seguro de cómo se utilizan? ¿Has necesitado implementar alguna vez Single Sign On, servicios web seguros basados en tokens? ¿Has necesitado incorporar autenticación / autorización a tus aplicaciones web o servicios y no sabías por dónde empezar?
¿Que te parecería poder configurar paso a paso un servidor de autorización, un cliente y un servidor de recursos? Aquí tenéis un ejemplo donde se configuran instancias Intersystems IRIS para actuar como cada uno de esos roles de OAuth2.
He definido una clase con una propiedad de objeto dinámico:
Mi clase
Class test.Dyn Extends %Persistent
{
Property json As %DynamicObject;
/// do ##class(test.Dyn).test()
ClassMethod test()
{
do ..%KillExtent()
for len = 100, $$$MaxStringLength - 1, $$$MaxStringLength, $$$MaxStringLength+1, $$$MaxStringLength *2 {
set sc = ..save(len)
write "Len: ",len, " Result: ",$case($$$ISERR(sc), $$$YES: $System.Status.GetErrorText(sc), : "OK"),!
}
}
ClassMethod save(len)
{
set json = {}
set stream = ..getStream(len-8) // -8 because {"a":""}
do json.%Set("a", stream, "stream")
set obj = ..%New()
set obj.json = json
quit obj.%Save()
}
ClassMethod getStream(len)
{
set stream = ##class(%Stream.TmpCharacter).%New()
if len<$$$MaxStringLength {
do stream.Write($tr($j("",len)," ","A"))
} else {
for i=1:$$$MaxStringLength:len {
do stream.Write($tr($j("",$$$MaxStringLength)," ","A"))
}
do stream.Write($tr($j("",len-i)," ","A"))
}
quit stream
}
}El problema que me encuentro es que si la longitud de una propiedad json serializada es de más de 3641144 símbolos, el objeto no puede guardarla, con el siguiente error (MAXSTRING o STRINGSTACK):
Length: 100 Result: OK
Length: 3641143 Result: OK
Length: 3641144 Result: OK
Length: 3641145 Result: ERROR #5002: ObjectScript error: <MAXSTRING>%GetSerial+1^%Library.DynamicAbstractObject.1
Length: 7282288 Result: ERROR #5002: ObjectScript error: <STRINGSTACK>%GetSerial+1^%Library.DynamicAbstractObject.1¿Hay algún método alternativo? Necesito almacenar jsons relativamente grandes (10-15 Mb) y las propiedades de objetos dinámicos permiten un acceso muy práctico.
$ZSTORAGE está establecido en -1.
Hola a todos.
Estoy intentando crear una regla de enrutamiento para llamar a un web service según el valor de un parámetro de un mensaje.
Mi primer intento es el siguiente:
.png)
Tengo una clase común con toda la información, BuscarHuecoRequest, y comprubea cual es el valor de la propiedad "CodigoProveedor".
La tabla T_PROVEEDOR contiene la lista de códigos de los proveedores, si es F, llama a WSF, si es C, llama WSC, etc... Usando un transformador para convertir los valores para este proveedor.
Lanza un error, porque no la propiedad CodigoProveedor no
¡Hola a tod@s!
¿Hay un script con lenguaje MDX que funcione como la función ISCROSSFILtered en DAX?
ISLEAF () no funciona si selecciono más de un miembro en el slier.
¡Gracias por vuestra ayuda!
Hola a todos,
Estoy intentando crear un Pass-through de SOAP siguiendo las instrucciones de Configuring Pass-through Business Services , pero no puedo ponerlo en marcha ![]()
Estoy usando el siguiente servicio web
Con el reciente cambio de horario en España me surgió esta duda:
¿Como obtenéis un $ZTIMESTAMP en horario local?.
He encontrado esta forma y funciona:
Set LocalTimestamp=$ZDATETIMEH($ZTIMESTAMP,-3)
¿Conoces alguna forma mejor de hacerlo?
(Consulta aquí el artículo en inglés )
https://community.intersystems.com/post/ztimestamp-local-time
Desarrolladores... ¡vuelve el Global Summit!
Después de dos años de videoconferencias y encuentros virtuales, estamos felices de poder reunirnos con todos nuestros clientes y partners de forma presencial en la nueva Convención Anual de InterSystems (Global Summit 2022). Es el primer evento en persona desde que empezó la pandemia y en la conferencia principal contaremos con la presencia de líderes y desarrolladores a la vanguardia de sus sectores. ¡Ya está abierto el plazo de inscripción!
➡️ Global Summit 2022
🗓 Fecha: 20-23 de junio, 2022
📍 Ubicación: Seattle, WA, Estados Unidos

¡Hola desarrolladores!
Hemos hecho algunos cambios en los sitios web de las Comunidades de Desarrolladores de InterSystems:
- Nueva función de búsqueda
- Estadísticas generales de la Comunidad
- Conexión con el perfil de Facebook
- Cambios en las páginas de las publicaciones: etiquetas, información del autor, resaltado del borrador
Vamos a explicar en detalle cada uno de ellos.
Buenos días,
Primero, ante todo, muchas gracias de antemano por leernos y responder
Además, agradecer cualquier apoyo, porque es un alivio, apoyo, aporte, auxilio contar con personas con más entendimiento, conocimiento y práctica.
Existe la siguiente necesidad:
Se dispone de 2 circuitos:
1º Circuito DICOM de "Studio" ( Servicio clásico )
Servicio: clase: DICOM.BS.QueryService
Proceso: clase: DICOM.BP.QueryProcess
Operacion: clase: EnsLib.DICOM.Operation.TCP
.png)
Probamos desde la "Salida" del "Studio" mediante:
do ##class(DICOM.BS.QueryService).¡Hola desarrolladores!
Ya hemos realizado el sorteo entre todas las personas que propusieron un nombre al exoplaneta descubierto en la ruta.
Y el ganador ha sido @Daniel Mory. ¡Enhorabuena!! 🎉🎉
¡Muchas gracias a todos los que habéis participado!
Aquí podéis ver el vídeo del sorteo entre todos los participantes.
¡Hola Comunidad!
Hemos grabado el webinar que hicimos ayer y lo hemos subido al canal de YouTube de la Comunidad de Desarrolladores en español. Si os perdisteis el webinar o lo queréis volver a ver con más detalle, ya está disponible la grabación!
Eduardo Anglada mostró toda la potencia de Python, el nuevo lenguaje de programación añadido a IRIS. Explicó cómo crear datos anónimos, desarrollar cuadros de mando interactivos... ¡y muchas cosas más! Por eso, si queréis conocer la nueva funcionalidad de InterSystems IRIS, ¡no os perdáis el vídeo!
⏯ Explorando las nuevas funcionalidades de IRIS: Python Embebido
¡Hola desarrolladores!
Para el concurso de Opendataset he desarrollado una aplicación, en formato docker, que utiliza InterSystems IRIS y Openflights Dataset en un contenedor y un segundo contenedor con Apache Zeppelin. Puedes encontrar los detalles aquí:
Con esto, se puede consultar el conjunto de datos de Opendflights desde Apache Zepplin sin necesidad de realizar ninguna configuración. Los contenedores están en hub.docker por lo que se puede utilizar de forma muy sencilla.
He desarrollado una aplicación para importar de forma dinámica 12 conjuntos de datos junto con 43 tablas usando el comando LOAD DATA, que carga los datos de una fuente a una tabla SQL de IRIS.
Lista de los conjuntos de datos
¡Hola a todos!
Hoy quiero hablar sobre nuestro proyecto y utilizar el tema del conjunto de datos para el concurso.
Nuestra intención nunca fue ser unos gestores de datos, sobre todo porque a veces nuestros preciosos datos significan mucho para nosotros, pero no para el resto del mundo.

Queremos ir un paso más allá y permitir que los usuarios encuentren el conjunto de datos perfecto para satisfacer sus necesidades.
Nuestro proyecto es un puente entre la comunidad de la Ciencia de Datos y la Comunidad de Desarrolladores, utilizando InterSystems IRIS para lograr esta misión.
Buenos días,
Agradeceríamos el apoyo de ustedes:
Desarrollando una integración para realizar un circuito "Query / Retrieve" con estudios de imágenes médicas DICOM, necesitaríamos lo siguiente:
Opciones de invocación del servicio DICOM TCP que se ha publicado para esta integración, alternativas a la opción por linea de comando
En concreto hemos leído: Recibir documento DICOM con un PDF embebido y metadatos
Adaptando el ejemplo, empleamos la línea:
/storescu -b VNAPRE -c ESBPRE@10.136.4.XYZ:19ABC ./embeddedpdf.¡Hola desarrolladores!
Os invitamos a un nuevo webinar en español: "Explorando las nuevas funcionalidades de IRIS: Python Embebido", el miércoles 30 de marzo, a las 4:00 PM (CEST).
El webinar está dirigido a cualquier desarrollador Python o científico de datos.
Durante el webinar, descubriremos la potencia de Python, el nuevo lenguaje de programación añadido a IRIS. Python es un lenguaje en auge, cuya popularidad aumenta año tras año y que ya cuenta con más de un millón y medio de programadores en el mundo y con miles de librerías a su disposición.
¡Hola desarrolladores!
Estamos muy contentos de anunciaros que InterSystems Iberia va a ser uno de los patrocinadores de la conferencia Internacional "J On The Beach" que tendrá lugar en Málaga los días 28-29 de abril.
¡Y queremos invitaros a uno de vosotros al evento! (*)
El primer día de la Conferencia @David Reche y @Eduardo Angladadarán una ponencia titulada "Capitán Kirk, descubierto un exoplaneta en la ruta usando AutoML". Por ello, para conseguir la entrada gratis (valorada en 250€), tenéis que responder a la siguiente pregunta:
¿Qué nombre le pondrías al exoplaneta descubierto en la ruta?
Este artículo es una continuación de esta publicación.
En ese artículo, analizamos el desarrollo de business processes, que forman parte de los componentes necesarios para la integración del sistema y sirven como coordinadores de la producción.
En este artículo mostraremos la creación de un business service, que es la ventana de entrada de información para la producción.
- Producción
- Mensaje
- Componentes
- Business Services
- Business Processes (publicación anterior)
- Business Operation
Y, finalmente, llegamos al último artículo de "¡Utilicemos la interoperabilidad!
¡Hola desarrolladores!
Ha llegado el momento para todos los usuarios de nuestra comunidad que hablan francés.
Estamos encantados de anunciar el lanzamiento oficial de la Comunidad de Desarrolladores de InterSystems en francés! 🎉
Y os presentamos a @Guillaume Rongier, @Robert Birae @Irène Mykhailova, las personas que gestionarán la nueva Comunidad de Desarrolladores.
¡Hola desarrolladores!
A veces necesitamos publicar la imagen Docker de la solución InterSystems IRIS en la que estamos trabajando. Existen diferentes posibilidades, por ejemplo:
- Usar la imagen en un cluster de Kubernetes.
- Que un compañero ejecute la imagen desde un repositorio público sin tener que generarla.
La mejor solución es subir la imagen al Registro Hub de Docker o al Registro de Github.
En este breve artículo, propongo una forma de hacerlo automáticamente cada vez que subas (usando git push) cambios a tu repositorio GitHub.
Soporte te está ayudando a resolver una incidencia con un informe y necesitan reproducir el problema en su sistema local. ¡Es una pena que no puedan ejecutar el informe porque la conexión JDBC al origen de datos fallará! O... ¿hay alguna forma?
Hay una forma de ejecutar un informe offline sin acceso a la base de datos origen. Debes proporcionar los resultados de una query cacheada exportada desde Designer. Es un fichero que contiene los datos de la query. Soporte lo usará para evitar el origen de datos del informe. Cuando ejecuten el informe, cogerá los datos del fichero, no de la conexión JDBC.
Iris Healthtoolkit Service
Fácil de usar HL7v2 a FHIR, CDA a FHIR, FHIR a HL7v2 como un Servicio.
El objetivo de este proyecto es ofrecer una API REST que pueda convertir fácilmente varios formatos de salud. Publica el formato deseado en el cuerpo REST, obtén la respuesta en el nuevo formato.
-
SaaS Offer : https://aws.amazon.com/marketplace/pp/prodview-q7ryewpz75cq2 
-
Video : https://youtu.be/lr2B7zSFkds 
Instalación
Clona este repositorio
git clone https://github.com/grongierisc/iris-healthtoolkit-service.Hola ¿cómo están?
Estamos indagando cómo recuperar datos mediante una Operación: EnsLib.DICOM.Operation.
La versión 3.3 de InterSystems Kubernetes Operator (IKO) ya está disponible a través de la página de descargas del Centro de Soporte Internacional (WRC) y del Registro de Contenedores de InterSystems.
IKO simplifica el trabajo de InterSystems IRIS e InterSystems IRIS for Health en Kubernetes, al ofrecer una sencilla definición del recurso irisCluster. Consulta la documentación para conocer la lista detallada de funcionalidades, incluyendo sharding sencillo, mirroring y configuración de ECP.
A destacar en IKO 3.3:
- Soporte a las versiones 2021.2 y 2022.1 de InterSystems IRIS & IRIS for Health
- Supporte de Kuberentes 1.21
- Implementación de las configuraciones comunes de System Alerting and Monitoring (SAM) como parte de
irisCluster - InterSystems API Manager (IAM) ahora también puede ser implementado y gestionado como parte de
irisCluster - Etiquetado automático del lado activo de la pareja del mirror, de manera que un servicio siempre apunta al miembro del mirror activo
15 de marzo de 2022
InterSystems ha corregido un defecto que provoca la compilación incorrecta de rutinas de ObjectScript.
Este defecto solo ocurre en la versión 2021.1.1, recientemente liberada, de:
InterSystems IRIS Data Platform
InterSystems IRIS for Health
HealthShare Health Connect
Hola desarrolladores,
Estamos preparando con mucho cariño nuestro primer 🏆 Concurso de Artículos Técnicos en Portugués de InterSystems 🏆.
Como el concurso se lanzará oficialmente la próxima semana, aproveche esta semana para elegir su tema o, si es nuevo en la tecnología de InterSystems, ¡aproveche la oportunidad de aprender un poco más sobre la tecnología en este período para poder participar!

¡Hola desarrolladores!
Hoy lanzamos el 🏆 1er Concurso de Artículos Técnicos en Portugués 🏆
Todos los seguidores de la Comunidad en español que habláis portugués podéis escribir un artículo en la Comunidad de Desarrolladores en Portugués, sobre cualquier tema relacionado con la tecnología de InterSystems.
Duración: del 14 de marzo al 14 de abril de 2022
Premios para todos los participantes: Todas las personas que publiquen un artículo en portugués durante la vigencia del concurso recibirán un premio
También pueden participar varias personas de forma conjunta, publicando un artículo en equipo. Habrá un bonus para los artículos presentados por equipos.
Una de nuestras apps utiliza una consulta de clase para un informe ZEN y funciona perfectamente en ese informe, produciendo los resultados esperados. Hemos migrado a InterSystems Reports y nos hemos dado cuenta de que, para un informe que utiliza la misma consulta de clase, aparecen en la parte de abajo más de 100 filas extra con los mismos valores en las columnas.
Descartamos InterSystems Reports como fuente del problema reproduciendo el problema de "filas extra" con una hoja de cálculo de Excel que llama a la misma consulta de clase utilizando un procedimiento almacenado.
¿Cuál era el problema? Cuando llamábamos al procedimiento almacenado desde el antiguo ZEN Report o desde la función SQL Query en el Portal de Administración, no veíamos estas filas adicionales.




