Artículo
· 25 nov, 2020 Lectura de 17 min
Objetos de proxy remoto mediante despacho dinámico

Este artículo fue creado como efecto secundario de las preparaciones para un conjunto más extendido de artículos sobre la simple, pero útil, implementación de MapReduce en Caché. Estaba buscando una forma relativamente fácil de pasar argumentos a (potencialmente) múltiples objetivos mediante mecanismos de invocación remota. Y tras varios intentos, me di cuenta de que en el ObjectScript de Caché contamos con mecanismos muy potentes que podrían ser de utilidad para esto: dynamix dispatching para métodos y propiedades.

1 0
1 116
Artículo
· 4 feb, 2022 Lectura de 3 min
Interoperabilidad con IRIS y robótica para farmacias

Me permito adjuntar un documento que describe un producto que he desarrollado llamado NiPaRobotica Pharmacy. Se trata de una interfaz que desarrollé, que acepta solicitudes para dispensar a farmacias y convierte las líneas de pedido en diálogos de dispensación que se envían a los robots de las farmacias.

0 0
0 116

¡Hola Comunidad!

Recientemente tuve que configurar un servidor FHIR local usando IRIS for Health y creo que encontré la forma más sencilla y simple de hacerlo.

Simplemente ejecuta estas dos líneas en el terminal:

docker run --rm --name my-iris -d --publish 9091:1972 --publish 9092:52773 intersystemsdc/irishealth-community

y

docker exec -it my-iris iris session iris -U "USER" '##class(%ZPM.PackageManager).Shell("install fhir-server")'

Y tendrás un servidor FHIR ejecutándose localmente en http://localhost:9092/fhir/r4.

¡Y eso es todo!

El servidor FHIR usará la última versión de InterSystems IRIS for Health Community Edition y desplegará el servidor FHIR desde esta app a través del paquete IPM en el namespace FHIRSERVER.

0 0
0 116

He estado desarrollando una aplicación web que utiliza IRIS como back-end. Trabajé en ella con acceso no autenticado. Estoy llegando al punto en el que me gustaría implementarla para los usuarios, pero primero necesito añadir la autenticación. En vez de utilizar la contraseña para la autenticación predeterminada de IRIS (con contraseña), me gustaría que los usuarios iniciaran sesión con el Inicio de Sesión Único (SSO) de mi organización, o con algún otro proveedor de identidad popular como Google o GitHub. He leído que OpenID Connect es un estándar de autenticación común, y que es admitido por IRIS. ¿Cuál es la forma más sencilla de ponerlo en marcha?

0 0
0 116
Artículo
· 13 mayo, 2021 Lectura de 13 min
Compilaciones en InterSystems IRIS

El orden es una necesidad para todos, pero no todos lo entienden de la misma manera (Fausto Cercignani)

Nota de traducción: este articulo se publicó originalmente basado en Caché. Para esta traducción se revisó todo el contenido usando InterSystems IRIS.

Descargo de responsabilidad: En este artículo se utilizan el ruso y el alfabeto cirílico como ejemplos, pero esto solamente es importante para las personas que utilizan InterSystems IRIS en lugares en los que no se habla inglés. Ten en cuenta que este artículo se refiere principalmente a las compilaciones de NLS, que son diferentes a las compilaciones de SQL. Las compilaciones en SQL (por ejemplo, SQLUPPER, SQLSTRING, EXACT que significa que no hay compilación, TRUNCATE, etc.) son funciones reales que se aplican de manera explícita a algunos valores, y cuyos resultados a veces se almacenan explícitamente en los subíndices de los *globals. De hecho, cuando se almacenan en subíndices, de forma natural estos valores seguirían la compilación de NLS (“Compilaciones de SQL y NLS”).*

0 0
0 115
Artículo
· 3 jul, 2023 Lectura de 3 min
IRIS Api Tester (Español)

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:

0 1
0 115

Nueva jornada de la Liga y nuevas predicciones de QuinielaML. Únicamente recordar que la pasada jornada QuinielaML acertó 9 de los 15 resultados, nada mal.

Veamos la Quiniela de esta jornada:

Y ahora las estimaciones de QuinielaML para la 6ª jornada de Primera División:

Y para la 7ª jornada de Segunda:

2 3
0 115
Artículo
· 24 ene, 2024 Lectura de 2 min
Cómo obtener JSON de SQL

¿Sabíais que se pueden obtener datos JSON directamente de las tablas SQL?

Dejadme que os presente dos útiles funciones de SQL, que se utilizan para recuperar datos JSON de consultas SQL - JSON_ARRAY y JSON_OBJECT.

Podéis usar esas funciones en la sentencia SELECT con otros tipos de elementos de selección, y se pueden especificar en otras ubicaciones en las que se puede utilizar una función SQL, como en una condición WHERE.

0 1
1 115
Artículo
· 12 dic, 2022 Lectura de 4 min
Aplicación IRIS RAD Studio

@José Pereira y yo hemos creado un proyecto del que queremos hablar en este artículo.

¿Qué es IRIS RAD Studio?

IRIS RAD Studio es nuestra idea de una solución low-code para hacer más fácil la vida del desarrollador.

¿Por qué?

¿Y por qué no? Las aplicaciones low-code se han hecho muy populares últimamente. La imagen de abajo muestra el "Cuadrante mágico" ofrecido por la consultora Gartner para plataformas de aplicaciones low-code empresariales, y que muestra lo interesante que es este mercado.

0 0
0 115

¡Hola a todos!

En el artículo anterior, combinamos ZPM con Config-API para cargar una configuración en la instalación/carga de un módulo. Podría ser útil para aplicaciones pequeñas, pero no es conveniente para aplicaciones grandes.

Puede que necesites crear varios namespaces e instalar muchos módulos zpm en diferentes namespaces. Usar el documento de configuración en la instalación/carga de zpm es un problema para este caso especial. Además, incluso si solo necesitas un módulo y un namespace, el cliente ZPM está diseñado para que se instale en el namespace actual y no es posible cambiar a otro namespace durante la instalación. Por lo tanto, si necesitamos que se instale en un namespace específico, debe existir antes de utilizar el cliente ZPM.

0 0
0 114

Hola Comunidad!
Aprovechando la publicación de la nueva versión IRIS 2021.1 y también de IAM 2.3 os paso los ejercicios de un taller (workshop) sobre desarrollo de APIs REST y gestión de las mismas utilizando InterSystems API Manager.

Contiene ejercicios paso a paso para:

  • Crear APIs REST desde sus especificaciones OpenAPI.
  • Añadir, opcionalmente, la API creada a una producción de interoperabilidad.
  • Gestión básica de la API en InterSystems API Manager (consumidores, limitación, autenticación).
  • Planteamiento de algunos escenarios más complejos en InterSystems API Manager como balanceo de carga, o enrutamiento por cabecera.

Lo tenéis todo en la aplicación de Open Exchange vinculada.

0 0
0 114

En recientes versiones de IRIS, se ha añadido en la parte de SQL una nueva y potente funcionalidad para la carga de datos: LOAD DATA. Esta funcionalidad ha sido optimizada para importar datos de forma extremadamente rápida en IRIS, permitiendo insertar cientos de gigabytes de datos en segundos en lugar de en horas o días.

Esta es una mejora muy interesante. Sin embargo, todavía existe un gran problema en la experiencia de carga de datos. Concretamente, el tiempo y molestia que suponen:

  1. Definir el esquema para la tabla en la que se quieren cargar los datos
  2. Averiguar cómo funciona exactamente la sintaxis del comando LOAD DATA

He desarrollado una interfaz de usuario que gestiona de forma transparente el paso de crear la tabla (CREATE TABLE) y después genera la sintaxis para LOAD DATA, todo en un práctico asistente!

0 0
0 114

¡Hola desarrolladores!

Solo quiero compartir con vosotros mi conocimiento, es decir, experiencia en algo que os puede hacer ahorrar unas cuantas horas algún día.

Si estás creando una REST API con IRIS que contiene más de un nivel de "/", por ejemplo: '/patients/all', no te olvides de añadir el parámetro 'recurse=1' en tu script de despliegue en %Installer. Si no, todas las entradas de nivel secundario y de mayor profundidad no funcionarán. Y todas las entradas de nivel primario funcionarán.

/patients

- funcionará, pero

/patients/all

- no funcionará.

Este es un ejemplo de sección CSPApplication que arregla el problema y que puede que quieras usar en tu clase %Installer:

    <CSPApplication Url="${CSPAPP}"
      Recurse="1"
      Directory="${CSPAPPDIR}"
      Grant="${RESOURCE},%SQL"
      AuthenticationMethods="96"
      />

0 0
0 113

En nuestro artículo anterior vimos como podíamos capturar ficheros de tipo DICOM ubicados en una carpeta de nuestro servidor y como los enviábamos a un PACS (en nuestro caso la solución open source ORTHANC) para su almacenamiento y consulta. Pues bien, en este artículo vamos a tratar el movimiento opuesto.

2 1
0 113

¡Hola desarrolladores!

Solo quiero compartir una antigua pero muy relevante buena práctica en el cambio de namespaces que @Dmitry Maslennikov compartió conmigo.

Consideremos el método:

classmethod DoSomethingInSYS() as %Status

{

set sc=$$$OK

set ns=$namespace

zn "%SYS"

// try-catch in case there will be an error

try {

// do something, e.g. config change

}

catch {}

 zn ns    ; returning back to the namespace we came in the routine

return sc

}

1 0
0 112
Artículo
· 7 sep, 2021 Lectura de 3 min
ObjectScript sobre ODBC
Este es un ejemplo de código que funciona en IRIS 2020.1 y en Caché 2018.1.3 
No se mantendrá sincronizado con las nuevas versiones.  
Y NO cuenta con el servicio de soporte de InterSystems.
De vez en cuando, puedes encontrarte una situación en la que, por diferentes razones, ODBC es la única opción para acceder a un sistema remoto. Lo cual es suficiente mientras necesites examinar o cambiar tablas. Pero no puedes ejecutar directamente algunos comandos o cambiar algunos globals.
0 0
0 112
Artículo
· 25 ago, 2023 Lectura de 4 min
QuinielaML - Usando autenticación JWT

Aprovechando la aplicación de Quiniela ML y como indicamos en el artículo anterior vamos a explicar como podemos realizar una autenticación JWT entre nuestro frontend desarrollado en Angular y nuestro backend desarrollado en InterSystems IRIS.

Os recuerdo como es la arquitectura de nuestro proyecto de QuinielaML:

1 0
0 112

Servidor Externo de Lenguaje Python en un contenedor

La primera vez que se intenta iniciar un servidor externo de lenguaje Python (de aquí en adelante Gateway de Python), en la versión en contenedor, intenta ejecutar cierto código para detectar si está instalado el paquete python3-venv.

La imagen que está en containers.intersystems.com:

0 0
0 112

¡Hola Comunidad!

Este artículo muestra cómo crear Pacientes y Recursos de Observación de Pacientes mediante el uso de la aplicación iris-fhir-client.
image

Recomiendo leer mi primer artículo sobre esta aplicación y ver el vídeo de Youtube antes de continuar.

¡Empezamos!

0 0
0 112
Artículo
· 22 mayo, 2023 Lectura de 6 min
Recuperando un Mirror tras un fallo

¡Aquí estamos nuevamente con un artículo relacionado con el Mirror!

En el artículo anterior vimos como podíamos configurar un Mirror entre dos instancias de IRIS, actuando una como nodo activo y otra como pasivo. Este sistema de mirroring funciona sobre la transferencia de un archivo de journals que mantiene contínuamente actualizada la instancia que funciona como nodo pasivo, pero ¿qué ocurre si por algún fallo de comunicación o permisos del archivo de journal este no se transifere correctamente?

2 0
0 112

La cobertura del código y su optmización del rendimiento ya han surgido muchas veces, así que la mayoría de vosotors seguro que ya conocéis la herramienta SYS.MONLBL.

A menudo, un enfoque visual para revisar el código es mucho más intuitivo que los números puros. Este es principalmente el objetivo de esta serie de artículos. Esta vez vamos a hacer una pequeña excursión lejos de Python y sus herramientas, y vamos a explorar la generación de mapas de calor de los informes ^%SYS.MONLBL.

0 0
0 112

¡Hola a todos!

¿Cuándo una publicación en la Comunidad de Desarrolladores no es una publicación en la Comunidad de Desarrolladores? ¡Cuando es solo un grupo de frases envolviendo un enlace a la Documentación de InterSystems! Y qué mejor manera de empezar 2022 que mostrándoos algo muy chulo que ha estado disponible desde la versión 2020.3??:

Cómo repetir comandos anteriores

¡Creo que os encantará! Y contadme vuestro alias favorito en los comentarios. ¡Feliz año nuevo!

0 0
0 111
Artículo
· 2 feb, 2024 Lectura de 9 min
PrivateGPT explorando la documentación

Considerar el nuevo interés empresarial en la aplicación de IA generativa a información y datos privados locales comercialmente sensibles, sin exposición a nubes públicas. Al igual que una cerilla necesita la energía del golpe para encenderse, el nuevo desafío de "energía de activación" del líder tecnológico es revelar cómo la inversión en hardware GPU podría respaldar nuevas capacidades competitivas. La capacidad puede revelar los casos de uso que brindan nuevo valor y ahorro.

Afilar este hacha comienza con un protocolo funcional para ejecutar LLM en un portátil local.

1 0
0 110

IRIS Interoperability, antes conocida como Ensemble, viene con muchos adaptadores integrados. No tiene un servicio o un adaptador para recibir correo. He escrito un servicio de correo electrónico para recibir mensajes de correo a través de SMTP que se pueden pasar a la operación de correo electrónico.

0 0
0 110