Artículo
· 27 mayo, 2024 Lectura de 4 min
Unir bases de datos de excel con IRIS

¡Hola a todos!

Llevo muchos años trabajando con Excel y, últimamente, lo he enfocado al tratamiento de bases de datos.

Realmente mi experiencia con Excel ha sido para labores financieras, no tanto analíticas de datos en sí, pero en un proyecto reciente he podido trabajar mucho con SQL y me he interesado un poco por el tema (no soy para nada una experta, ¡aviso!)

Me he preguntado cómo podría unir varios excels en uno para, por ejemplo, entregárselo al Data Análisis utilizando la tecnología InterSystems. He recopilado la información en un pequeño artículo. Espero que sea útil y por supuesto estoy abierta a correcciones.

Vamos a utilizar InterSystems IRIS. Lo que buscaremos es leer los archivos Excel, procesarlos y por último fusionarlos.

3 1
0 65
Artículo
· 30 mayo, 2024 Lectura de 2 min
Buscando los límites del nuevo tipo de datos VECTOR

Después del último concurso de programación sobre OEX tuve algunas observaciones sorprendentes.
Había aplicaciones casi exclusivas basadas en AI en combinación con módulos Py prefabricados.
Pero profundizando más, todos los ejemplos utilizaron las mismas piezas técnicas de IRIS.

Visto desde el punto de vista de IRIS, era más o menos lo mismo si se buscaba texto
o buscar imágenes u otros patrones.Terminó en métodos casi intercambiables.

7 0
0 49

Hola a todos,

Cuando estamos diseñando un BP que necesita ser reutilizado, a menudo necesitamos desarrollar un componente con un objeto <call> configurable, donde establecemos el destino de la llamada al objeto.

@process.TargetConfigName

Sí, se puede lograr.

Aquí está el código completo:

1 2
0 54
Artículo
· 26 abr, 2024 Lectura de 4 min
Comprobación de Versión en objetos. "ERROR:5800"

Si tenéis tablas de sistema que implementan la funcionalidad "VERSIONPROPERTY", podéis encontraros con el error 5800. Este artículo explica cómo se produce este error y proporciona soluciones para resolver el problema.

Cuando se implementa la comprobación de versiones, la propiedad especificada por VERSIONPROPERTY se incrementa automáticamente cada vez que se actualiza una instancia de la clase (ya sea mediante objetos o SQL).

Por ejemplo:

2 0
0 45

¡Hola, amigos!

A menudo, cuando desarrollamos soluciones comerciales, existe la necesidad de desplegar soluciones sin código fuente, por ejemplo, para preservar la propiedad intelectual.

Una de las formas de conseguirlo es utilizar InterSystems Package Manager.

Aquí he pedido a Midjourney que pinte una propiedad intelectual de software:

¿Cómo se puede lograr esto con IPM?

De hecho, es muy sencillo; basta con añadir la cláusula Deploy="true" en el elemento Resource del manifiesto module.xml. Ver Documentación.

He decidido pasaros el ejemplo más simple posible para ilustrar cómo funciona y también para daros una plantilla de entorno de desarrollo que os permita empezar a construir y desplegar vuestros propios módulos sin código fuente. ¡Allá vamos!

2 0
0 65

Hola a todos,

Por un requerimiento del cliente, tenermos un BS Rest Api con un montón de métodos, necesitamos obtener la IP del invocador, el método y cual es el tiempo que la API ha tomado para procesar.

He encontrado el evento onPreDispatch donde puedo capturar la IP, ClassMethod, etc.. Estoy usando una variable global para guardar esta información.

0 2
0 135

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 201

Hace poco me di cuenta de que llevaba mucho tiempo sin comentaros las últimas novedades de la extensión de ObjectScript para Visual Studio Code.

Me complace anunciar la versión 2.12.1 de la extensión de ObjectScript, que contiene un buen número de mejoras para hacer la vida más fácil a los desarrolladores. Describo más abajo las más destacadas, incluyendo la petición nº 1 del Global Summit -- ¡Importación de XML!

Como siempre, podéis encontrar la lista completa de modificaciones en el CHANGELOG, incluyendo muchas correcciones de errores y vulnerabilidades.

0 0
0 172

Interactuar con usuarios en la terminal: una guía para usar %Library.Prompt en IRIS

¿Alguna vez te has preguntado cómo comandos como ^DATABASE atraen a los usuarios en la terminal? O tal vez esté escribiendo una rutina de automatización y desee formas de especificar opciones directamente desde la terminal. Afortunadamente, la clase %Library.Prompt en IRIS ofrece una forma sencilla de hacerlo.

1 0
0 111
Pregunta
· 7 feb, 2024
Error depurando desde VS

Hola comunidad,

Si, ya sé que hay otra pregunta con el mismo problema "VS Code - debugging doesn't work", pero mi instancia de IRIS no está usando IIS.

Hace tiempo, podía depurar sin problemas, pero después de algunas actualizaciones de Visual Studio, tengo el siguiente error

Failed to start the debug session. Check that the Intersystems server's web server supports WebSockets

0 2
0 119

Tenemos un conjunto de datos bastante apetecible con recetas escritas por múltiples usuarios de Reddit, sin embargo, la mayor parte de la información está en texto libre en forma de título y descripción de un mensaje. Vamos a averiguar cómo podemos, de forma muy sencilla, cargar los datos, extraer algunas características y analizarlos empleando funcionalidades de LLM (Large Language Model) de OpenAI desde Python Embebido y el framework Langchain.

0 0
0 89

La invención y popularización de LLMs (Large Language Models) como GPT-4 de OpenAI ha desencadenado una ola de soluciones innovadoras que permiten aprovechar grandes volúmenes de datos no estructurados, que eran prácticamente imposibles de procesar manualmente hasta hace poco. Estas aplicaciones pueden incluir la recuperación de datos (echad un vistazo al curso sobre ML301 de Don Woodlock, con una excelente introducción a la Generación Aumentada de Recuperación), el análisis de sentimientos, e incluso agentes de IA totalmente autónomos, por nombrar sólo algunos ejemplos!

En este artículo, quiero demostrar cómo la funcionalidad de Python Embebido de IRIS puede ser utilizada para interactuar directamente con la librería Python de OpenAI, a través de la creación de una sencilla aplicación de etiquetado de datos que asignará automáticamente palabras clave a los registros que metamos en una tabla de IRIS. Estas palabras clave pueden después ser usadas para buscar y categorizar los datos, así como para analítica de datos. Utilizaré reseñas de productos realizadas por clientes como ejemplo de caso de uso.

1 0
0 83
Artículo
· 7 dic, 2023 Lectura de 1 min
Cómo ejecutar comandos del SO

Preguntas frecuentes de InterSystems

Cuando ejecutéis comandos del SO, utilizad el comando $ZF(-100).

do $ZF(-100,"",program,args) // Execute the Windows command [synchronously].
do $ZF(-100,"/ASYNC",program,args) // Executes a Windows command [asynchronously].

Cuando ejecutéis comandos de la shell del SO, como mkdir o copy, hemos de especificar /SHELL.

do $zf(-100,"/shell /async","mkdir","c:\temp\x")

1 0
0 52

¡Bienvenidos a todos!

En este breve artículo quería presentar un ejemplo de uso que seguramente a muchos de los que trabajéis con IRIS como backend de vuestras aplicaciones web os hayáis encontrado en más de una ocasión y sería el de la necesidad de enviar desde el frontend un archivo a vuestro servidor.

2 0
1 104
Artículo
· 28 nov, 2023 Lectura de 1 min
Cómo crear Objetos y Matrices JSON mediante SQL

Esta app evita añadir %JSONAdaptor a cada clase. En su lugar usa las funciones SQL JSON_OBJECT() para crear mis objetos JSON. Con este enfoque, se puede añadir JSON a cualquier clase - incluso a las implementadas - sin ninguna necesidad de cambiar o recompilar.

La idea inicial surge a raíz de implementar la exportación de relaciones M:N como objetos o matrices JSON.

La típica estructura de la exportación es

{ M-element : {M-object},
related-N-elements:
[
{N-element},
{N-element},
{N-element}
]
}

Los datos para la demo son un fragmento de los Miembros de la Comunidad de Desarrolladores y sus Insignias conseguidas en GlobalMasters. Los nombres reales están modificados.

1 0
0 84

¡Hola desarrolladores!

Si os gustan los famosos Concursos de Adviento "Advent of Code", con sus retos de programación diarios hasta el día de Navidad, os encantará nuestra versión, que vuelve un año más (algunos ya estaban preguntando por ella 😁).

➡️ Participad en el Advent of Code 2023 de InterSystems y podréis ganar alguno de los premios en metálico que hay para los ganadores. ¡Animaos a poner a prueba vuestros conocimientos de ObjectScript!

1 0
0 82
InterSystems Official
· 27 mar, 2023 Lectura de 3 min
Mejoras en la generación e invocación de las clases de IRIS

Me gustaría adelantaros una mejora sobre cómo generamos e invocamos el código de los métodos en IRIS 2023.1.

Una clase en IRIS se compone de dos componentes de runtime principales:

  1. Descriptor de Clase (Class Descriptor) - Una lista de métodos muy optimizada, propiedades, parámetros de clase que configura y parametriza la clase, junto con atributos asociados con cada uno de estos, por ejemplo configuración pública/privada.
  2. Código de ObjectScript (ObjectScript code) - Un conjunto de rutinas que contienen el código de ObjectScript para ser ejecutado cuando se invoca un método.

1 1
0 104

Preguntas frecuentes de InterSystems

La información sobre las propiedades definidas en una clase se puede obtener usando las siguientes clases del sistema:

%Dictionary.ClassDefinetion

%Dictionary.PropertyDefinition

El ejemplo de descripción del código es el siguiente.

0 0
0 85

Preguntas frecuentes de InterSystems

Una herramienta (utilidad ^GLOBUFF) está disponible para verificar el uso de la memoria caché de la base de datos para cada global.

La utilidad se puede ejecutar directamente o mediante programación en el namespace %SYS .

Así se ejecutaría directamente:

0 0
0 54

Preguntas frecuentes de InterSystems

ObjectScript permite pasar cualquier número de argumentos utilizando arrays. Se hace añadiendo ... después del nombre del argumento.

Os muestro un ejemplo. En la sentencia del ejemplo, la información del argumento se establece en una variable global (una variable almacenada en la base de datos) para que pueda ser fácilmente verificada después de que se ejecute el método.

0 0
0 55

Preguntas frecuentes de InterSystems

En el siguiente ejemplo, un archivo de imagen se codifica en una cadena Base64 en una propiedad de clase, se guarda, se decodifica la cadena en Base64 y se restaura en otro archivo.

【Classe ejemplo】

Class User.test Extends %Persistent
{
Property pics As %GlobalBinaryStream;
}


【Cuando se importa】

0 0
0 143

Buenos días, tardes, noches,... wink

Una pequeña reflexión/pregunta para hoy... es una realidad que las nuevas versiones de IRIS for Health son cada vez más potentes en cuanto a capacidades FHIR. Permiten consumir recursos FHIR con extrema facilidad, podemos crear conexiones con end-points de servidores FHIR externos muy facilmente y hacer que IRIS actúe de passthrough o que consuma esos recursos... o, más aún, podemos definir y poner en funcionamiento un repositorio FHIR, literalmente, en menos de 5 minutos.

Sin embargo, hay una cosa que echo en falta en proyectos de tipo FHIR Façade, cuando tenemos que implementar una capa FHIR sobre un sistema que "no habla" FHIR. Se trata de la posiblidad de tener ayuda en nuestro IDE (Studio o VS Code) a la hora de codificar la lógica que crearía el o los objetos dinámicos (%DynamicObject) que representan los recursos FHIR que queremos definir...

0 3
0 97
Artículo
· 20 sep, 2023 Lectura de 1 min
Cómo sobrecargar métodos en ObjectScript

Preguntas frecuentes de InterSystems

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 overloading o sobrecarga como tal.

0 0
0 66

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 93