La Comunidad de desarrolladores de InterSystems es una comunidad de 17,761 desarrolladores increíbles
¡Somos un lugar donde los programadores de InterSystems IRIS aprenden y comparten, se mantienen actualizados, crecen juntos y se divierten!

¡Hola Comunidad!

Creo que hoy en día todo el mundo guarda el código fuente de sus proyectos en repositorios como Github, GitLab, bitbucket, etc. Lo mismo sucede con proyectos de InterSystems IRIS, se pueden ver algunos ejemplos en Open Exchange.

¿Qué hacemos cada vez que empezamos o continuamos nuestro trabajo con un repositorio en particular con la plataforma de datos InterSystems?

3 1
1 737

Prometheus es uno de los sistemas de monitorización adaptado para recoger datos de series temporales.

Su instalación y configuración inicial son relativamente sencillos. El sistema tiene un subsistema gráfico integrado llamado PromDash para la visualización de datos, pero los desarrolladores recomiendan usar un producto de otro proveedor, llamado Grafana. Prometheus puede monitorizar muchas cosas (hardware, contenedores, distintos sistemas de gestión de base de datos), pero en este artículo me gustaría analizar la monitorización de una instancia de Caché (para ser exactos, será una instancia de Ensemble, pero las métricas serán de Caché). Si te interesa, sigue leyendo.

0 1
0 344
Pregunta
· 3 mar, 2021
ODBC Cache

Estimados, junto con saludar les comento que estoy realizando una aplicación en PHP que se tiene que conectar por OBDC a una base de datos cache de InterSystems, pero los enlaces de descarga del driver odbc cache que he encontrado en el foro ya no funcionan, alguien me podria decir de donde descargarlos , estoy siguiendo la siguiente documentacion: https://docs.intersystems.com/latest/csp/docbook/Doc.View.cls?KEY=BGOD_w...

de ante mano muchas gracias.

0 1
0 180
Artículo
· 28 abr, 2021 Lectura de 8 min
Consejos para depurar con %Status

Introducción

Si resuelves problemas complejos en ObjectScript, probablemente tienes mucho código que funciona con los valores de %Status. Si has interactuado con clases persistentes desde una perspectiva de objetos (%Save, %OpenId, etc.), casi seguro que las ha visto.

Un %Status proporciona una envoltura alrededor de un mensaje de error localizable en las plataformas de InterSystems. Un estado OK ($$$OK) simplemente es igual a 1, mientras que un mal estado ($$$ERROR(errorcode,arguments...)) se representa como un 0 seguido de un espacio seguido de una lista $ListBuild con información estructurada sobre el error.

0 1
0 164
Artículo
· 25 mayo, 2021 Lectura de 12 min
Cómo desarrollar una API REST con un enfoque spec-first

En este artículo, me gustaría hablar sobre el enfoque spec-first para el desarrollo de una API REST.

Mientras que el desarrollo tradicional code-first de una API REST es así:

  • Escribir el código
  • Habilitarlo en REST
  • Documentarlo (como una API REST)

Spec-first sigue los mismos pasos, pero a la inversa. Comenzamos con una especificación, — que también actúa como documentación — , generamos el código base de la aplicación REST a partir de ella, y finalmente escribimos la lógica de negocio concreta que nos haga falta.

Esto ofrece varias ventajas:

0 1
0 707

Durante una actualización a una versión principal (major) es aconsejable recompilar las clases y rutinas de todos tus namespaces (ver Tareas tras la instalación de una versión major).

do $system.OBJ.CompileAllNamespaces("u")
do ##Class(%Routine).CompileAllNamespaces()

Para automatizar esta tarea de administración y mantener un registro de cualquier error, os muestro un ejemplo de una clase para importar y compilar en el namespace USER, que puedes usar después de cada actualización: admin.utils.cls

1 1
0 134
Artículo
· 28 jul, 2022 Lectura de 3 min
Consejos y trucos del nuevo comando LOAD DATA

Estos días he estado trabajando con la excelente y nueva funcionalidad: LOAD DATA. Con este artículo me gustaría compartir mis primeras experiencias con todos. Los siguientes puntos no contienen ningún orden ni ningún otro análsis. Son solo cosas que observé al utilizar el comando LOAD DATA. Y se debe tener en cuenta que estos puntos se basan en la versión 2021.2.0.617 de IRIS, que es una versión de prueba.

0 1
0 175

Estamos encantados de anunciar una nueva sección en la documentación de InterSystems, que hace más fácil actualizar InterSystems IRIS®, InterSystems IRIS® for Health™ y HealthShare® Health Connect. La Lista de Comprobación de Actualizaciones (en https://docs.intersystems.com/upgrade) muestra todo lo que hay que tener en cuenta - y solo lo que hay que tener en cuenta – en una actualización entre dos versiones cualquiera. La lista recopila todo el contenido de nuestro "Historial de Incompatibilidades" y añade unos filtros muy útiles, categorías de nivel superior y la posibilidad de exportar la lista como un archivo CSV, para que se pueda usar como una verdadera lista de comprobación mientras se trabaja en una actualización.

Os pongo un ejemplo inspirador:

1 1
0 39

¡Hola desarrolladores!

Este mes de marzo lanzamos nuestro primer Concurso de Programación con InterSystems IRIS! El objetivo del concurso es crear soluciones de código abierto utilizando InterSystems IRIS Data Platform.

El tema del primer concurso es InterSystems IRIS, Docker y ObjectScript.

El concurso estará activo durante tres semanas, del 9 al 31 de marzo de 2020.

Premios:

Habrá una Nominación de los Expertos, en la que los ganadores serán elegidos por un jurado especialmente formado para el concurso. Los premios serán:

🥇 1er puesto - $2,000

🥈 2º puesto - $1,000

🥉 3er puesto - $500

Además, habrá una Nominación de la Comunidad, en la que ganará la aplicación que obtenga el mayor número total de votos. El premio será:

🏆 1er puesto - $1,000

Los ganadores también recibirán las insignias de mayor nivel del programa de fidelización Global Masters.

3 1
0 155
Artículo
· 26 mar, 2020 Lectura de 14 min
Conoce tus índices

Este es el primero de dos artículos sobre los índices SQL.

Parte 1 - Conoce tus índices

¿Qué es un índice?

Recuerda la última vez que fuiste a una biblioteca. Normalmente, los libros están ordenados por temática (y luego autor y título) y cada repisa tiene un cartel en el extremo con un código que describe la temática de los libros. Si necesitaras libros de un cierto tema, en lugar de caminar por cada pasillo y leer la descripción en la parte interior de cada libro, podrías dirigirte directamente al estante cuyo cartel describa la temática que buscas y elegir tus libros de allí. Sin esos carteles, el proceso de encontrar los libros que quieres, habría sido muy lento.

Un índice SQL tiene la misma función general: mejorar el rendimiento, al ofrecer una referencia rápida del valor de los campos para cada fila de una tabla.

Configurar índices es uno de los pasos más importantes a la hora de preparar tus clases para un rendimiento óptimo de SQL.

0 1
1 283
Artículo
· 16 jun, 2020 Lectura de 9 min
Logging usando macros en InterSystems Caché

En mi anterior artículo, revisamos los posibles casos de uso para macros, así que pasemos ahora a un ejemplo más completo de usabilidad de macros. En este artículo diseñaremos y crearemos un sistema de registro.

Sistema de registro

El sistema de registro es una herramienta útil para monitorear el trabajo de una aplicación que ahorra mucho tiempo durante la depuración y el monitoreo. Nuestro sistema constaría de dos partes:

  • Clase de almacenamiento (para registros de anotaciones)
  • Conjunto de macros que agregan automáticamente un nuevo registro al registro

2 1
0 173

¡Hola desarrolladores!

Compartimos con vosotros la presentación que realizamos en el evento Virtual Summit 2020:

Servicios para los desarrolladores - Developer Community y Open Exchange

https://www.youtube.com/embed/_Zf1DQcRNN4
[Este es un enlace integrado, pero no puede ver el contenido integrado directamente en el sitio porque rechazó las cookies que se necesitan para acceder a él. Para ver el contenido integrado, debe aceptar todas las cookies desde la Configuración de cookies]

1 1
0 82

Cuando inicio una instalación nueva de IRIS o de un contenedor, siempre encuentro los paquetes de interoperabilidad mapeados en el namespace USER.

¿Existe alguna utilidad para quitar este mapeo de forma sencilla, con un clic?
Quitar el mapeo global a global, rutina a rutina, paquete a paquete es muy aburrido.

Es decir: busco una utilidad dentro de IRIS.

La utilidad externa es obvia: Notepad (o cualquier otro editor de texto)
- limpiar iris,cpf,
- reiniciar IRIS

Es rápido, es eficiente, pero es muy tedioso.

0 1
0 90
Artículo
· 13 oct, 2021 Lectura de 4 min
División de mensajes ORU mediante ObjectScript y DTL

A lo largo de los años, me he encontrado con la necesidad de crear varios mensajes HL7 basados en un solo mensaje entrante. Por lo general, toman la forma de un pedido o son el resultado de un laboratorio. Cada vez que he afrontado el reto, he intentado empezar de cero, con la convicción de que el intento anterior podría haberse hecho mejor.

Recientemente, volvió a surgir la necesidad y pude crear una solución de la que no me avergonzaba. Mi principal preocupación era que siempre me encontraría enterrado en un BPL, o usaría ObjectScript e intentaría editar mensajes usando el método SetValueAt para la clase de mensaje HL7.

Problema
Cuando el Sistema A procesa múltiples pedidos para un solo paciente, el resultado vendrá en un solo mensaje con ORCgrp repetido con los segmentos OBR y OBX contenidos en este. El sistema B solo puede recibir un único OBR por mensaje.

0 1
1 282

Hola comunidad,

Sería de agradecer si pudieran leernos y respondernos:

➡️ Necesitamos activar una Operación SOAP durante una franja horaria, con el objetivo de enviar mensajes al sistema destino, únicamente durante unas horas; por ejemplo de 4 a 8 de la madrugada

El requisito es hacerlo sin una tarea programada. Esto se debe a que al cambiar de nodo, en los mirrors de producción, hay dificultades, retos, o desafíos con las tareas programadas

0 1
0 76
Artículo
· 12 sep, 2022 Lectura de 5 min
Anonimización de datos con iris-Disguise

freepik- freepik.com
En primer lugar, ¿qué es la anonimización de datos?

Según la Wikipedia:

La anonimización es un tipo de sanitización de información cuya intención es la protección de la privacidad. Es el proceso de eliminar información personal de los conjuntos de datos, de modo que las personas que son descritas por los datos permanecen en el anonimato.

2 1
1 131

¿Pensábais que no habría este viernes predicción de la Quiniela por no haber partidos de Primera División? ¡Pues estáis muy equivocados! Gracias a la modularidad y sencillez que proporciona InterSystems IRIS hemos incluido los datos relativos a los partidos de clasificación de la Eurocopa, así que veamos cual será la Quiniela de esta jornada.

Vamos a ver cual es la predicción para la Segunda División:

2 1
0 71

¡Hola desarroladores!

¿Os parece que las consultas sobre el rango de fechas son demasiado lentas? ¿Os parece que el rendimiento de SQL es bajo? ¡Tengo un curioso truco que podría ayudaros a solucionar estos problemas! (¡Los desarrolladores de SQL odian que sepáis estas cosas!)*

Si tenéis una clase que guarda los registros de hora cuando se añaden datos, entonces esos datos se ordenarán con vuestros valores IDKEY, es decir, TimeStamp1 < TimeStamp2 si y solo si la condición ID1 < ID2 se cumple para todos los valores ID y TimeStamp en la tabla - entonces podéis utilizar esta información para aumentar el rendimiento de las consultas en relación con los rangos de TimeStamp. Echad un vistazo a la siguiente tabla:

1 1
0 1K
Artículo
· 22 abr, 2021 Lectura de 1 min
Truco: Ctrl+C y Ctrl+V en el terminal de IRIS

¡Hola! ¿Sabéis que se puede habilitar Ctrl+C y Ctrl+V en el terminal de IRIS para Windows?

Para hacerlo, hay que abrir el Terminal, seleccionar Edit > User Settings y habilitar Widows Edit accelerators.

Esta opción especifica si el Terminal habilita atajos de teclado habituales en Windows (Ctrl+C, Ctrl+V, Ctrl+Shift+V) además de los atajos típicos del Terminal básico (Ctrl+Insert, Shift+Insert).

1 1
0 88

Tenemos múltiples segmentos NTE en el mensaje ADT. Necesito iterar a través de todos los segmentos NTE buscando "NAVIRADTHPT" en el campo NTE-4. He intentado que funcione con el siguiente código.

HL7.(NTE:4()) Contains "<NAVIRADTHPT>"

Así es como se ven los segmentos.

NTE|1||This patient is currently being seen for radiation therapy.|AHRADTHPT||20210223093342
NTE|2||This patient is currently being seen for radiation therapy.|NAVIRADTHPT||20210223113634

0 1
0 53