#InterSystems IRIS for Health

0 Seguidores · 498 Publicaciones

InterSystems IRIS for Health™ es la primera y única plataforma de datos global diseñada específicamente para desarrollar aplicaciones que permitan a los servicios médicos administrar los datos más importantes del mundo. Incluye poderosas funciones listas para utilizarse: procesamiento y análisis de transacciones, un modelo flexible para la información de los servicios médicos, implementación de soluciones basadas en FHIR, soporte para las normas de compatibilidad operativa entre los servicios médicos, y mucho más. Todas estas funciones permiten que los desarrolladores realicen aplicaciones valiosas y novedosas rápidamente. Obtener más información.

Pregunta Kurro Lopez · ene 31, 2024

Hola comunidad.

Hemos desarrollado una nueva versión de una producción, todo el código es nuevo y ha cambiado BP. Esta aplicación carga información para algunas marcas y la almacena en la base de datos.

El cliente quiere implementar los cambios solo para algunas marcas porque quiere verificar las marcas pequeñas antes de implementarlos para todas las marcas.

Mi propuesta es crear un nuevo namespace, con el nuevo código, y deshabilitar todas las marcas excepto la marca que quiere probar.

Me pregunto cuál es la mejor manera de clonar el namespace.

6
0 201
Artículo Luis Angel Pérez Ramos · oct 10, 2023 3m read

Seguramente todos habéis oido hablar de FHIR como la panacea y solución a todos los problemas de interoperabilidad y compatibilidad entre sistemas. Aquí mismo podemos ver a uno de sus clásicos defensores sujetando un recurso FHIR con su mano y disfrutando desaforadamente:

Pero para el resto de los mortales vamos a hacer una pequeña introducción.

¿Qué es FHIR?

2
0 193
Artículo Ricardo Paiva · ene 29, 2024 2m read

Preguntas frecuentes de InterSystems

Para resolver el error <PROTECT>, hay que eliminar el atributo de solo lectura de la base de datos de la biblioteca de todo el sistema (IRISLIB para InterSystems IRIS, CACHELIB para Caché/Ensemble/HealthShare (basado en Caché))

Una vez se haya terminado de importar la rutina, hay que acordarse de volver a cambiarla a solo lectura.
 

[Versión 2013.1 y superior]
[Portal de Gestión] > [Administración] > [Configuración] > [Configuración de Sistema] > [Bases de Datos Local] Desmarcad "Mount Read-Only" (Montar solo lectura) en el enlace del nombre de la base de datos.

0
0 115
Artículo Luis Angel Pérez Ramos · ene 29, 2024 4m read

Preguntas frecuentes de InterSystems

Si el sistema no se para durante 24 horas, los archivos journal serán eliminados a las 0:30 según la "Configuración de la eliminación de archivos journal".

Una posible causa de que los archivos journal permanezcan más tiempo del establecido en la "Configuración de la eliminación de archivos journal" es que hay transacciones que permanecen abiertas.

En ese caso, se podrá eliminar el archivo journal buscando procesos que estén ejecutando transacciones y finalizando las transacciones.

1
0 134
Artículo Alberto Fuentes · ene 24, 2024 2m read

¿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.

La función JSON_ARRAY toma una lista de expresiones separadas por comas y devuelve una matriz JSON conteniendo esos valores.

1
1 777
Artículo Kurro Lopez · ene 19, 2024 2m read

Actualmente, muchos artistas digitales utilizan la tecnología de IA generativa como soporte para acelerar la entrega de sus trabajos. Hoy en día es posible generar una imagen correspondiente a partir de una frase de texto. Existen varias soluciones en el mercado para esto, incluidas algunas disponibles para ser utilizadas a través de API. Mira algunos en este enlace: https://www.analyticsvidhya.com/blog/2023/08/ai-image-generators/.

0
0 106
Artículo Kurro Lopez · ene 17, 2024 3m read

Hola comunidad,

Cuando utilizamos un Business Servicio de tipo SQL, puede suceder que necesitemos replicar ciertas filas de la tabla original.

Tomemos como ejemplo el Business Service  "from customer SQL" usando la clase genérica EnsLib.SQL.Service.GenericService

Surgen diferentes casos, dependiendo de la configuración utilizada en este Business Service.

Primer caso:

Si el Business Service solo usa un KeyFieldName

En este caso, para reprocesar los IDs 123,456 y 789, bastará con eliminarlos de la variable global ^Ens.AppData del Business Service correspondiente en la referencia "adaptor.sqlrow":

0
0 113
Artículo Ricardo Paiva · ene 16, 2024 2m read

Preguntas frecuentes de InterSystems

Si se establece una relación y hay una gran cantidad de n en una proporción de 1:n, se puede consumir una gran cantidad de memoria debido al procesamiento secuencial de la relación.

Después de hacer referencia a un objeto de muchos lados en un programa y cambiarlo internamente, simplemente liberar la variable que contiene el OREF (eliminarla, establecer otro valor, etc.) no liberará el objeto de muchos lados ni el objeto de relación. Ésta es la causa.

0
0 74
Anuncio Esther Sanchez · dic 29, 2023

¿Vuestra Certificación Oficial de InterSystems expira pronto? ¿Habéis pensado en por qué deberíais renovar vuestra Certificación? ¿Os gustaría saber cómo es nuestro proceso de recertificación?

Si la respuesta a alguna de esas preguntas ha sido "Sí", echad un vistazo a nuestra nueva política de recertificación!

Estos son algunos de los beneficios de la recertificación:

  • Mantener actualizados vuestros conocimientos y asegurar que estáis al tanto de la última tecnología
  • Demostrar una mentalidad de aprendizaje continuo
  • Ayudar a vuestras empresas y organizaciones a mantener la certificación organizacional

Cuando una Certificación Oficial de InterSystems llega a los 6 meses anteriores a su vencimiento, el poseedor de dicha Certificación recibe un email informándole de que ha entrado en el período de recertificación. Durante ese tiempo, dispone de hasta 2 intentos de recertificación con un 50% de descuento cada uno.

0
0 80
InterSystems Official Jose-Tomas Salvador · dic 22, 2023

Es difícil creer que con este anuncio cerremos ya nuestro primer año de actualizaciones trimestrales de la plataforma. Gracias por hacer que fuera un gran año. En la actualización del 4º trimestre hablaremos de lista planificada de modelos mínimos de CPU soportados, la Disponibilidad General (GA) de OpenSSL 3.0 para AIX y más cosas. ¡Volveremos en 2024!

Esta publicación pretende compartir los cambios recientes, así como la información más actualizada sobre los cambios que vienen, aunque predecir el futuro es difícil y esto no debe considerarse como una hoja de ruta cerrada.

Dicho esto, vamos con la actualización…

0
0 110
InterSystems Official Mario Sanchez Macias · nov 30, 2023

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
0 109
Artículo Daniel Aguilar · dic 11, 2023 1m read

Preguntas frecuentes de InterSystems

La cache de las consultas SQL puede ser purgada mediante programación usando el método Purge* de la clase %SYSTEM.SQL.

*Para ver el detalle de cada uno de los métodos, por favor consulta los siguientes enlaces:

%SYSTEM.SQL class【IRIS】

%SYSTEM.SQL class

① Comando para borrar todas las consultas SQL cacheadas en el sistema

Do $SYSTEM.SQL.PurgeAllNamespaces()


② Comando para borrar las consultas SQL cacheadas en el namespace actual

0
0 116
Artículo Ricardo Paiva · dic 7, 2023 1m read

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")
0
0 81
Artículo Alberto Fuentes · dic 7, 2023 4m read

Introducción

Con frecuencia nos encontramos con problemas de conectividad en las implementaciones de HealthShare (HS) en Microsoft Azure que tienen varios componentes de HealthShare (instancias o namespaces) instalados en la misma máquina virtual, especialmente cuando es necesario comunicarse con otros componentes de HS mientras se utiliza el balanceador de carga interno de Azure (ILB) para proporcionar la funcionalidad VIP (Virtual IP) de Mirroring. Los detalles sobre cómo y por qué se usa un balanceador de carga con Mirroring los podéis encontrar en este artículo de la Comunidad.

Según la documentación del Balanceador de Carga de Azure, el comportamiento predeterminado es el siguiente:

0
0 128
Artículo Luis Angel Pérez Ramos · dic 5, 2023 3m read

Preguntas frecuentes de InterSystems

Las definiciones de clases creadas por los usuarios se almacenan en clases de definición de clases. Estas se pueden utilizar para obtener una lista de definiciones de clases desde un programa.

Nota: Las clases de definición de clase se refieren a todas las clases contenidas en el paquete %Dictionary.

En el siguiente código de muestra, se obtiene una lista de definiciones de clases utilizando la consulta Resumen de la clase %Dictionary.ClassDefinitionQuery.

0
0 102
Artículo Ricardo Paiva · dic 4, 2023 2m read

Preguntas frecuentes de InterSystems

Para crear un error definido por el usuario, hemos de preparar un XML que describa el código de error y el mensaje correspondiente que desea utilizarse como error definido por el usuario.

Hemos de establecer el código de error como un número entero negativo.

<?xml version="1.0" encoding="UTF-8"?> 
<MsgFileLanguage="en"><MsgDomainDomain="UserErrors"><MessageId="-111"Name="MyError">An error has occured</Message> 
    <MessageId="-222"Name="MyError2">An error has occured 2</Message> 
  </MsgDomain></MsgFile>
0
0 105
Artículo Daniel Aguilar · nov 25, 2023 1m read

Preguntas frecuentes de InterSystems

Puedes establecer el tamaño máximo de la base de datos IRISTemp en el arranque de IRIS configurando el parámetro MaxIRISTempSizeAtStart.

Después de configurarlo, el sistema truncará IRISTemp al valor establecido (MB) en el siguiente inicio de IRIS. Si el tamaño actual es inferior al especificado MaxIRISTempSizeAtStart, no realizará el truncado. Si se especifica el valor 0 no se realizará el truncado nunca.

Puedes configurarlo en el siguiente menú.

1
0 94
InterSystems Official Luis Angel Pérez Ramos · dic 1, 2023

Cuando AMD publicó el estándar x86-64 en 1999, pocos sabían que estaban inventando lo que se convertiría en la arquitectura de facto para las CPUs de servidor. Pero las CPUs de hoy no son iguales a las que se producían hace 20 años – ahora tienen extensiones para todo, desde Extensiones Vectoriales Avanzadas (AVX) hasta Virtualización Asistida por Hardware (VT-d).

A InterSystems le gustaría aprovechar mejor estas nuevas extensiones en las próximas versiones de InterSystems IRIS. Aunque nuestros compiladores son lo suficientemente inteligentes para crear código optimizado para muchas situaciones, algunas optimizaciones solo se pueden activar si se finaliza específicamente el soporte a procesadores que no tienen ese conjunto de instrucciones. Además, nos resulta cada vez más difícil mantener modelos de CPU más antiguos para realizar pruebas.

0
0 116
Artículo Luis Angel Pérez Ramos · nov 28, 2023 6m read

En este artículo vamos a ver como podemos utilizar el servicio de mensajería instantanea de WhatsApp desde InterSystems IRIS para enviar mensajes a diferentes destinatarios. Para ello deberemos crear y configurar una cuenta en Meta y configurar un Business Operation para enviar los mensajes que deseemos.

Veamos con más detalle cada uno de estos pasos.

Configurando una cuenta en Meta

Este es posiblemente el punto más enrevesado de toda la configuración, ya que deberemos configurar una serie de cuentas hasta poder disponer de la funcionalidad de mensajería.

0
0 167
Artículo Robert Cemper · nov 28, 2023 1m read

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.

0
0 175
InterSystems Official Jose-Tomas Salvador · nov 24, 2023

La versión 2023.3 de InterSystems IRIS Data PlatformInterSystems IRIS for Health e InterSystems IRIS Studio ya está disponible de manera general (GA).

ASPECTOS DESTACADOS DE LA NUEVA VERSIÓN

2023.3 es una versión CD (Continuous Delivery). Se han añadido muchas actualizaciones y mejoras:

Mejoras en la Nube y en Operaciones

Archivado de Journal: Desde esta versión, los administradores de sistemas ahora pueden configurar una ubicación de archivado para ficheros de journal una vez ya completos. Cuando esté configurado, tras un cambio de archivo, el fichero de journal recien completado primero será comprimido (usando la funcionalidad de Compresión de Journal) y después se moverá automáticamente a esta ubicación de archivado, que puede estar en un nivel de almacenamiento de bajo coste, como una unidad de disco duro (HDD), o almacenamiento en la nube, como Amazon S3. Los ficheros journal archivados pueden entonces ser eliminados automáticamente del directorio de journal local, reduciendo el espacio total en el nivel de almacenamiento de alto rendimiento utilizado para escribir ficheros journal y disminuyendo el Coste Total de Propiedad para las implementaciones de InterSystems IRIS. 

0
0 98
Artículo Luis Angel Pérez Ramos · nov 22, 2023 3m read

Introducción

A InterSystems le gustaría optimizar IRIS para aprovechar las modernas extensiones del conjunto de instrucciones de la CPU.  Eso está genial para el rendimiento del producto, pero ¿cómo sabéis si vuestra CPU seguirá siendo compatible con las nuevas versiones de IRIS? En este artículo os explico cómo saber la familia de microarquitectura de la CPU, y cómo averiguar las extensiones específicas del conjunto de instrucciones de la CPU.

0
0 90
Artículo Ricardo Paiva · nov 16, 2023 3m read

Preguntas frecuentes de InterSystems

Para rutinas (*.mac)

Se puede ocultar el código fuente exportando/importando solo el *.obj que se genera después de compilar el programa fuente.

El ejemplo de ejecución de comandos especifica EX1Sample.obj y EX2Sample.obj, que se generan al compilar EX1Sample.mac y EX2Sample.mac, como destinos de exportación y los exporta al segundo archivo de argumentos.

Después de pasarlo a otro namespace, se usa el archivo XML exportado para realizar la importación.

0
0 111
Artículo Ricardo Paiva · nov 9, 2023 3m read

El problema

En un entorno clínico acelerado, en el que la toma rápida de decisiones es crucial, la falta de sistemas eficientes de almacenamiento y acceso a los documentos plantea varios obstáculos. Aunque existen soluciones de almacenamiento de documentos (por ejemplo, FHIR), el acceso y la búsqueda eficaz de datos específicos de pacientes dentro de esos documentos puede suponer todo un reto.

La motivación

La IA ha hecho que la búsqueda de documentos sea extraordinariamente potente. Preguntar y responder sobre documentos nunca ha sido tan fácil con herramientas de código abierto como Chroma y Langchain para almacenar y utilizar incrustación de palabras (vector embeddings) para consultas a las APIs de IA generativa. Con un esfuerzo más dedicado, las organizaciones están indexando sus documentos existentes y construyendo versiones ajustadas de GPT con fines empresariales. La charla de Andrej Karpathy sobre el estado de GPT ofrece un excelente resumen general sobre este tema.

Este proyecto fue nuestro intento de reducir la fricción en todos los puntos de contacto en los que el personal médico tiene que interactuar con documentos. Desde la entrada y la gestión hasta el almacenamiento y la recuperación, hemos aprovechado IRIS FHIR y la IA para ayudarles a almacenar y encontrar la información que necesitan sin esfuerzo.

La solución

Hemos creado una aplicación web full-stack que permite a los médicos grabar notas de voz. A continuación, estas notas pueden transcribirse y resumirse mediante Open AI y almacenarse en servidores FHIR. Después, los documentos almacenados se indexan y están disponibles para la búsqueda semántica.  

Video de demostración

<iframe width="560" height="315" src="https://www.youtube.com/embed/3Th6bR4rw0w?si=Fc2dCaYuUte0ZCQ7" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>

Características principales

  1. Aplicación web - Para ver información clínica sobre pacientes, observaciones y encuentros. Está construida utilizando Vue.js.
  2. Transcripción de voz - Open AI Whisper API se utiliza para transcribir con precisión las grabaciones de voz a texto.
  3. Resumen de texto - A continuación, el contenido transcrito puede resumirse y darle un título en el formato requerido. Por ejemplo, secciones específicas como síntomas, diagnóstico, etc. Esto se consigue mediante la API de completado de texto de Open AI utilizando el modelo text-da-vinci-003.
  4. Almacenamiento de documentos - A continuación, los documentos resumidos se almacenan en FHIR utilizando el recurso Document Reference.
  5. Búsqueda semántica de documentos - Los documentos almacenados se indexan y almacenan en Chroma como fragmentos. Esto se utiliza después para limitar el espacio de búsqueda y utilizar los tokens GPT con moderación para la búsqueda semántica mediante Langchain. Actualmente, cargamos los documentos en el momento de la búsqueda debido al menor número de documentos disponibles. Esto puede modificarse para indexar en segundo plano de forma asíncrona.
  6. Exportación de documentos - Por último, existe una opción para exportar documentos a Google Docs y otros datos a Google Sheets. Los usuarios pueden iniciar sesión con sus cuentas específicas mediante OAuth y exportar los documentos para facilitar la colaboración y la comunicación con otros médicos o pacientes.

Probadlo

Clonad el repositorio del proyecto desde este enlace de GitHub: https://github.com/ikram-shah/iris-fhir-transcribe-summarize-export. Seguid las instrucciones proporcionadas para configurar el proyecto localmente en vuestros equipos. Y hacednos saber si algo no funciona como se esperaba.

Reflexiones y comentarios

Los avanzados modelos de lenguaje disponibles actualmente, combinados con el enorme volumen de datos disponibles, encierran un inmenso potencial para revolucionar la atención sanitaria, especialmente en lo relativo a los documentos.

Dejadnos vuestros comentarios a continuación. Publicaremos más artículos con los detalles técnicos de este proyecto.

0
0 116
Artículo Ricardo Paiva · nov 8, 2023 2m read

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 134
Artículo Ricardo Paiva · nov 2, 2023 2m read

Preguntas Frecuentes de InterSystems

El significado de cada valor de tiempo de espera es el siguiente.

1. [Tiempo de espera de respuesta del servidor]

Si el procesamiento de IRIS/Caché (ejecución de rutina o consulta) no finaliza dentro de este tiempo establecido, el navegador devolverá un error.

Por ejemplo, si este valor es 60 segundos y se necesitan 90 segundos para ejecutar una rutina/método/consulta, se producirá un error.

0
0 117
Artículo Ricardo Paiva · oct 31, 2023 2m read

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 113