Gracias a @Yuri Marx hemos visto un buen ejemplo de Migración de Bases de datos de Postgres a IRIS.
Mi problema personal es el uso de DBeaver como una herramienta de migración.
En especial, como una de las fortalezas de IRIS (y también Caché) es la disponibilidad de los SQLgateways que permiten el acceso a cualquier base de datos externa, siempre y cuando se puedan acceder usando ODBC/JDBC. Así que he ampliado el paquete para demostrarlo.
¡Hola desarrolladores!
Día a día, el equipo de la Comunidad de Desarrolladores hace que ésta sea un lugar mejor para los desarrolladores de InterSystems. En esta nueva publicación os mostramos cómo hemos mejorado la Comunidad en los últimos meses.
Principales novedades:
- Edición del perfil de usuario
- Nueva página de Concursos para los concursos de artículos técnicos
- Contador de caracteres y palabras
Os explicamos cada cambio más abajo.
¡Hola Comunidad!
Ya están publicados los títulos y descripciones de las Sesiones Técnicas ("Focus Sessions") que se celebrarán en la Convención Anual ("Global Summit") de InterSystems.
Listado de Sesiones Técnicas, por orden alfabético >>
Pronto publicaremos los horarios de todas las Sesiones y así podréis organizar vuestra agenda para el evento.
¡Os mantendremos informados!
Antecedentes
En las versiones de InterSystems IRIS >=2021.2 podemos usar irispython para escribir directamente código python encima de nuestras instancias IRIS. Esto nos permite usar paquetes de python, llamar a métodos, hacer consultas SQL y hacer casi cualquier cosa en Objectscript excepto pythonic.
Por ejemplo, a continuación compruebo si hay un namespace:
#!/usr/irissys/bin/irispython
import iris
# call arbitrary class methods
result = iris.cls('%SYS.Namespace').Me gustaría presentaros mi nuevo proyecto para el Concurso de Globals. Una vista totalmente nueva para el navegador de globals.
.png)
La interoperabilidad es uno de los temas más discutidos en los últimos años. Notamos cada vez más que nuestros datos de salud se comparten entre múltiples sistemas con el fin de acercar el concepto de salud del paciente.
A través de la interoperabilidad, utilizamos diferentes estándares de comunicación (independientemente del lenguaje/tecnología en el que esté integrado un sistema dado) para mover información entre diferentes sistemas.
Hola!! Hemos abierto una plaza de Sales Engineer en InterSystems para nuestra oficina de Madrid.
No se requieren conocimientos de nuestra tecnología aunque, por supuesto, tenerlos puede ser un gran plus. Lo más importante es que te apasione la tecnología, te guste compartir conocimiento, aprender de otros y enseñar,.
Nos encanta anunciaros que hemos creado un nuevo Portal de Sugerencias: InterSystems Ideas.
El objetivo del Portal es mejorar los mecanismos para que podáis sugerir cómo mejorar nuestros productos y cómo hacerlos evolucionar para satisfacer vuestras necesidades. La sección de Preguntas es una excelente manera de interactuar con otros colegas sobre problemas específicos de código; y el Soporte a Clientes es la forma de obtener la solución a un problema.
Hola desarrolladores:
Como ya os anunciamos hace unos días, InterSystems 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.
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"
Y, además, InterSystems contará con un stand que, como siempre, tendrá sorpresas... 😁
¿Quieres saber qué han preparado?? Sigue leyendo...

¡Hola Comunidad!
Esta publicación es una introducción a mi aplicación iris-globals-graphDB en Open Exchange.
En este artículo, mostraré cómo guardar y recuperar Graph Data en InterSystems Globals con la ayuda del framework Python Flask Web y la librería PYVIS Interactive network visualizations.
Recomendación
- Leer la documentación relacionada: Using Globals
- Introducción al SDK nativo
- PYVIS Librería de visualización interactiva de redes
Paso 1: Establecer conexión con IRIS Globals mediante el SDK nativo de Python
#create and establish connection
if not self.iris_connection:
self.Si tu app en Open Exchange tiene una demo online o una demo que puede ser descargada, puedes añadir el enlace a ella en el perfil de tu app.
Para hacerlo:
- Inicia sesión en Open Exchange
- Ve a tu cuenta, a la sección "Applications" en ella
- Haz clic en la app que tiene una demo
- Ve a Settings -> Edit
- Pon tu enlace a la demo en el campo Demo URL
- Guarda los cambios
- Envía la aplicación para aprobación
Ejemplo de demo de la app iris-python-faker
InterSystems anuncia la versión 2.0.0 del Language Server para VS Code. Language Server incrementa la extensión VS Code ObjectScript para ofrecer un mejor resaltado de sintaxis, documentación embebida, autocompletado de código y más.
Todos los detalles están disponibles en el archivo README del repositorio de GitHub. La versión 2.0.0 añade soporte a varias arquitecturas de plataformas, incluyendo M1 Macs! También reduce el tamaño del paquete, mejora el coloreado del SQL y arregla otros problemas que se detallan en el CHANGELOG.
Si estás implementando más de un entorno/región/nube/cliente, inevitablemente te encontrarás con el problema de la gestión de la configuración.
Aunque todas (o solo varias de) tus implementaciones pueden compartir el mismo código fuente, algunas partes, como la configuración (ajustes, contraseñas) son diferentes de una implementación a otra y se deben gestionar de alguna manera.
En este artículo, intentaré ofrecer varios consejos sobre ese tema. Y comentaré principalmente las implementaciones de los contenedores.
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.
Registro de cambios
🎉 🎉 🎉
¡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.
¡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 sorteoentre 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.



