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 120

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 122

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 303

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 129
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 100

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 146
Artículo
· 5 sep, 2023 Lectura de 1 min
Cómo reconstruir el índice por ID

Preguntas frecuentes de InterSystems

De cara a la reconstrucción de los índices de una clase persistente/tabla, hay que utilizar el método %BuildIndices(), proporcionado por dicha clase. Para ello hay que especificar los valores de inicio y fin de los ID para los cuales se quieren reconstruir índices en los argumentos del método.

Por ejemplo, para reconstruir el índice NameIDX y el índice ZipCode en la clase Sample.Person sólo para ID=10 a 20, ejecutad el siguiente código (el rango de ID se especifica en los argumentos quinto y sexto).

1 0
0 121

Preguntas frecuentes de InterSystems

Podéis ver el espacio libre disponible para la base de datos usando la opción "Free space view" (Ver espacio libre) en el Management Portal: System Operation > Databases.

Y se puede obtener mediante programación a través la consulta FreeSpace de la clase del sistema SYS.Database.

1 0
0 155

Hice una pregunta por correo electrónico y obtuve algunas respuestas de colegas.

Pergunta:

No he podido cambiar la zona horaria en el ultimo container (Ubuntu) de IRIS. Motivos:

  • Soy irisowner y no root

  • No dispongo del comando sudo

En mi Dockerfile he usado los comandos en adjunto de manera a cambiar la zona horaria - a la hora de crearme un nuevo image docker. Sin embargo, estos comandos no me funcionan con un usuario no root.

1 0
0 145
Artículo
· 18 ago, 2023 Lectura de 2 min
Cómo comparar globals y rutinas en dos bases de datos

Preguntas frecuentes de InterSystems

Utilizad este método si queréis comparar bases de datos que se han replicado mediante mirror, shadow o algún otro mecanismo.

Podéis utilizar la utilidad DATACHECK para comparar globals. (Consultad la documentación para más información: Descripción general de DataCheck [IRIS])

***

Las comparaciones de rutinas usan la rutina del sistema %RCMP o el Portal de Administración.

1 0
0 156

InterSystems IRIS actualmente limita sus clases a 999 propiedades.

Pero, ¿qué hacer si necesita almacenar más datos por objeto?

Este artículo respondería a esta pregunta (con el apunte adicional de Community Python Gateway y cómo transferir conjuntos de datos amplios a Python).

En realidad, la respuesta es muy simple: InterSystems IRIS actualmente limita las clases a 999 propiedades, pero no a 999 primitivas. La propiedad en InterSystems IRIS puede ser un objeto con 999 propiedades y así sucesivamente; el límite se puede ignorar fácilmente.

1 0
0 128

Preguntas frecuentes de InterSystems

Se pueden configurar páginas de error individuales para los siguientes mensajes de error/respuestas del Web Gateway:

  • Error del servidor
  • Servidor ocupado
  • Servidor no disponible
  • Tiempo límite de espera del servidor
  • Conexión cerrada

Los ajustes se realizan en la pantalla Administración del Portal de Gestión ([Administración] > [Configuración] > [Gestión del Web Gateway] > [Configuración] > [Parámetros predeterminados]).

1 0
0 173

InterSystems FAQ

Puedes buscar variables globales específicas en el archivo de journals usando la consulta ByTimeReverseOrder de la clase %SYS.Journal.File y la consulta List de la clase %SYS.Journal.Record

El funcionamiento de cada consulta es el siguiente:

0 0
0 80

Hola de nuevo a todos.

En nuestro artículo anterior vimos como configurar nuestro EMPI para recibir mensajería FHIR. Para ello instalábamos el Adaptador FHIR que InterSystems pone a nuestra disposición que configuraba un endpoint REST al que podíamos enviar nuestro mensaje FHIR. A continuación obteníamos el mensaje y lo transformábamos a un %String que enviábamos vía TCP a la producción de nuestro EMPI configurada en nuestro namespace HSPIDATA.

0 0
0 121
Artículo
· 1 jun, 2023 Lectura de 5 min
Memoria ocupada por las tablas de IRIS

Introducción

Entre las diversas soluciones que desarrollamos en Innovatium, un desafío habitual es la necesidad de acceder al tamaño de las bases de datos. Entonces me di cuenta de que eso no es algo tan trivial en IRIS. Ese tipo de información es importante para mantener un control del flujo de datos y del coste en gigabytes de un sistema para implementar. Sin embargo, lo que realmente me llamó la atención fue la necesidad de eso para algo muy importante: la migración a la nube. Al final, ¿quién no quiere migrar sus sistemas a la nube hoy en día?

0 0
0 104
Artículo
· 31 mayo, 2023 Lectura de 2 min
API para importar/exportar rutinas

Este es un artículo de la página de "Preguntas frecuentes" (FAQ) de InterSystems.

1. Exportar API

a. Usa $system.OBJ.Export() para especificar rutinas individuales para exportar. Por ejemplo:

do $system.OBJ.Export("TEST1.mac,TEST2.mac","c:\temp\routines.xml",,.errors)

El formato que debes especificar es: NombreDeLaRutina.extension, y la extensión puede ser: mac, bas, int, inc, obj.

0 0
0 113

Es posible que ya hayáis oído que, a partir de las versiones de IRIS y HealthShare HealthConnect 2023.2, se va a eliminar de la instalación por defecto el Apache Server interno por lo que será necesario contar con un servidor de aplicaciones externo como puede ser Apache Server o NGINX.

En este artículo voy a proceder a realizar la instalación de un HealthShare HealthConnect 2023.1 para que funcione con un Apache Server pre-instalado. Para ello utilizaré una máquina virtual sobre la que he instalado un Ubuntu 22.04.

0 0
0 367
Artículo
· 25 abr, 2023 Lectura de 13 min
Configurando Mirror en Docker

Una necesidad habitual en nuestros clientes es la configuración tanto de HealthShare HealthConnect como de IRIS en modo de alta disponibilidad.

Es común en otros motores de integración del mercado que se promocionen con configuraciones de "alta disponibilidad", pero realmente no suele ser del todo cierto. Por lo general dichas soluciones trabajan con bases de datos externas y por lo tanto, si estas no están a su vez configuradas en alta disponibilidad, al producirse una caída de la base de datos o la pérdida de conexión a la misma toda la herramienta de integración queda inutilizable.

En el caso de las soluciones de InterSystems este problema no existe, al ser la base de datos parte y nucleo de las propias herramientas. ¿Y cómo ha solucionado InterSystems el problema de la alta disponibilidad? ¿Con abstrusas configuraciones que podrían arrastrarnos a una espiral de enajenamiento y locura? ¡NO! Desde InterSystems hemos escuchado y atendido vuestras quejas (como siempre intentamos hacer ;) ) y hemos puesto a disposición de todos nuestros usuarios y desarrolladores la función de mirroring.

1 0
1 394

¡Hola Comunidad!

Como sabéis, InterSystems IRIS, además de globals, objetos, documentos y modelos de datos XML, también es compatible con tratamiento relacional de datos utilizando SQL como lenguaje.

Y como otros sistemas de gestión de bases de datos relacionales (DBMS), InterSystems IRIS tiene su propio dialecto.

Empezamos esta publicación como una Guía Rápida de SQL y os invitamos a compartir vuestros trucos favoritos.

¡Vamos allá!

1 0
1 210

Recientemente he estado trasteando con la utilización de IRIS como servidor para una conexión mediante web socket desde el frontend de una aplicación en NodeJS.

En esta URL tendréis la información relativa a las conexiones de web sockets tanto en modo cliente como en modo servidor: https://docs.intersystems.com/irislatest/csp/docbook/DocBook.UI.Page.cls...

4 0
2 153
Artículo
· 22 feb, 2023 Lectura de 3 min
Como publicar un webservice rest con autenticación

Hace unos días, publique una pregunta respecto a este tema pero la respuesta era algo mas compleja de lo que esperaba, así que para futura referencia de otras personas que tengan la misma duda he preferido documentar el proceso en un articulo.

13 3
1 377

Para todos aquellos que aún utilizáis el IDE Studio para programar con ObjectScript y vais a pasar por el proceso de migración a VS Code, ¿sabíais que hay una sección en la documentación de VS Code justo para vosotros? Echad un vistazo al apartado Migración desde Studio. Incluye los siguientes aspectos:

  • Edición del lado del servidor y control de código fuente
  • Proyectos de Studio
  • Importación de definiciones de servidor desde el Registro de Windows
  • Carga de fragmentos de código de Studio y colores de sintaxis

Y ahora hay una sección llamada Atajos de teclado, que muestra los atajos equivalentes en VS Code a los que estéis acostumbrados, para que las manos no tengan que dejar el teclado. En muchos casos el atajo es el mismo, por lo que no será necesario re-aprender. Y recordad, todos los atajos en VS Code son configurables por el usuario, por lo que tendréis un nivel de control que Studio nunca ofreció.

2 0
0 126
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 262

Todos los desarrolladores hemos cometido alguna vez el error de accidentalmente dejar código temporal de depuración en lugar de eliminarlo al finalizar lo que estamos investigando.

Lo interesante de escribir en ObjectScript es que hay una forma de hacer que el código provisional sea realmente provisional y se auto-destruya automáticamente! Incluso puede hacerse de manera que el código no aparezca en tu sistema de control de código fuente, lo que puede ser útil igualmente.

El secreto radica en utilizar el "intermediate code" (.INT), que se genera cuando se compilan clases (.CLS), código de rutina (.MAC) o páginas CSP (.CSP). El código INT se utiliza entonces para crear el código OBJ, que es el que finalmente se ejecuta.

1 1
0 147