Rechercher

Résumé
· Juin 12, 2024

InterSystems Community Q&A Monthly Newsletter #37

Top new questions
Can you answer these questions?
#InterSystems IRIS
Irisnative library that works on Windows 10 with 8-bit IRIS
By Alin Soare
Setting up the Quartz Scheduler with IRIS (Spring-boot)
By Ugljesa Pupavac
CREATE TABLE AS SELECT fails when one specific field is present
By Stefan Schick
python library "irisnative" for Windows 10
By Alin Soare
X12 832 (4010) SEF or XSD file
By Jonathan Lent
Difference between %Stream.FileBinary and %Stream.FileBinaryGzip
By Vincent Dheilly
How to Remove Search Text Box in Filter Dropdown
By Virat Sharma
Pooling exception: Unable to find original pool for connection and IRIS Security Error
By Harikumar V
Javascript library "Irisnative" does not work for 8 bits IRIS servers
By Alin Soare
Hiding specific strings in the Ensemble Message Viewer
By Stella Ticker
Request for Training Material
By Zulqarnain Turabi
DEBUG HTTPS REST API WITH WIRESHARK
By David Marinkovic
RSA Encryption Decryption
By David Marinkovic
%session & passing credentials between ZenPages that reside on different healthshare servers
By Carl Maklad
InterSystems Class Dictionary
By lai pham
How To Calculate Date and Time in Different Column ?
By Steven Henry Suhendra
FHIR Profile validation Java issues
By Ashok Kumar
Where are the ODBC Driver for IRIS 2024.1 for Community Edition Users?
By Andreas Schneider
FSLog not populating when trying to test HS.FHIRServer.Interop.HTTPOperation
By Scott Roth
ObjectScript: Cannot Read OpenId, Result Doesn't Display
By Steven Henry Suhendra
OPENSSL_Uplink(....): no OPENSSL_Applink
By Alin Soare
#InterSystems IRIS for Health
#InterSystems IRIS BI (DeepSee)
#Ensemble
#HealthShare
#Caché
#TrakCare
#37Monthly Q&A fromInterSystems Developers
Question
· Juin 12, 2024

User roles and rights management

Hello community,

I guess this one will be easy to answer, but trial and error took me too long meanwhile, so I thought it might better to ask the experts.

I would like to get rid of %all rights for routine use at our productive environment. The things, that we have to do in routine are:

- Open productions and start / stop components
- Read messages and message logs
- Search and resend messages
- Deploy new Applications
- Edit settings and default settings
- Read database tables

All in all, it is quite equal to everything but System Administration.

I tried to configure this by assigning combinations of predefined roles, but Interoperability > Manage > Deployment Changes is not accessible, no matter what combination I tried so far.

So, long story short, what role or right do I have to grant to allow a user to deploy applications? Asked the other way round, the question would be: What rights does a role need to allow everything but "System Administration"?

Thanks for your help, regards,

Martin

2 Comments
Discussion (2)2
Connectez-vous ou inscrivez-vous pour continuer
Article
· Juin 12, 2024 4m de lecture

Búsqueda vectorial + GenAI + tecnologías InterSystems con Banksia Global

 

¡Hola a todos! Aquí me gustaría compartir cómo utilizamos la búsqueda vectorial y la inteligencia artificial generativa (GenAI) con la tecnología de InterSystems. Como ejemplo, describiré el proyecto BG-AppealAI, que nuestra empresa presentó al concurso de Búsqueda Vectorial, GenAI y ML de InterSystems. La aplicación BG-AppealAI puede redactar una apelación si se sube un contrato de seguro y la carta de la compañía de seguros con la negativa a pagar los gastos médicos. Por supuesto, somos conscientes de que, en este momento, la IA no ha alcanzado un nivel tal como para crear documentos legales listos. Sin embargo, ya es posible crear herramientas que sirvan como asistentes para especialistas o usuarios comunes. De igual manera, nuestra aplicación es un asistente de IA que responde a la pregunta: "¿Es posible apelar?" y crea un borrador de carta de apelación, si es posible.

Explorad nuestra aplicación en acción siguiendo este enlace: https://appealai.cloud.banksia.global/#/welcome

También hemos creado un video que muestra nuestra aplicación: https://www.youtube.com/embed/0p6FvZpzaaA

Cómo funciona BG-AppealAI

Vectorización de contratos de seguro y cartas de rechazo: para poder asistir mejor con las apelaciones, la IA necesita un contexto de la denegación. Una de las formas posibles en que podemos proporcionar un contexto es citando partes relevantes de los contratos de seguro. Al recibir un contrato de seguro, BG-AppealAI lo descompone en partes, convirtiendo cada parte en un vector multidimensional. Estos vectores se almacenan en una base de datos InterSystems IRIS, lo que permite una recuperación rápida y precisa cuando sea necesario.

Búsqueda Vectorial: cuando subís una carta de denegación a la aplicación, BG-AppealAI la convierte en un vector, a este proceso se le llama vectorización. BG-AppealAI luego utiliza la funcionalidad de búsqueda vectorial de IRIS para comparar los vectores extraídos de la carta de rechazo con los vectores extraídos del contrato de seguro relevante.

Generación de apelaciones impulsada por IA: habiendo identificado un posible contexto para la apelación, BG-AppealAI envía una solicitud al servicio de IA generativa para evaluar la posibilidad de redactar una apelación. Si se considera apropiado, AppealAI envía una nueva solicitud para crear un borrador de carta de apelación.

 

¿Qué hay bajo el capó de BG-AppealAI?

Tradicionalmente, nuestra aplicación consta de una parte backend y una parte frontend, donde el frontend está desarrollado con el framework Angular y el backend con InterSystems IRIS. El video sobre nuestra aplicación ya ha mostrado el funcionamiento de la parte frontend de la aplicación y una breve descripción del producto; aquí quiero centrarme en la implementación de Interoperability Production (Interoperabilidad de producto) . Aquí es donde podemos ver claramente la aplicación de la búsqueda vectorial y la inteligencia artificial generativa.

De esta forma, identificamos los siguientes elementos en nuestro sistema:

1)ConversionToVector: Proceso que convierte el texto del documento en vectores utilizando LangChain, e invoca el proceso GetText y las operaciones SaveVector y SaveDocument para las acciones correspondientes.

 

2)GetText: Proceso que analiza los datos de un archivo en un flujo para su posterior procesamiento y análisis de texto. Aquí existe la oportunidad de trabajar con 2 tipos de extensiones: docx y pdf, ya que son las más comunes para documentos.

 

3)VectorSearch: Proceso que realiza una búsqueda vectorial y busca coincidencias entre documentos. Además, es en este proceso de negocio donde se llaman métodos para escribir prompts a la IA y analizar cartas de rechazo.

 

Nota: aquí utilizamos un modelo desarrollado por OpenAI y el framework LangChain. Todos los procesos de negocio están implementados utilizando Python embebido, ya que proporciona un acceso fácil para utilizar LangChain y escribir prompts a OpenAI.

4) AppealIn: Servicio que recibe el archivo de denegación y lo envía para su análisis.

5) DocumentIn: Servicio que recibe el archivo del contrato de seguro y lo envía para su vectorización.

6) OpenAiOut: Operación que realiza una solicitud a una IA generativa - OpenAI, recibe el prompt y devuelve una respuesta de GenAI.

7) SaveDocument: Operación que almacena el archivo del documento en la base de datos.

8) SaveVector: Operación que almacena los vectores en la base de datos.

9) SaveAppeal: Operación que obtiene el texto de la apelación y lo almacena en la base de datos.

La interacción de todos los elementos mencionados se muestra claramente en el seguimiento/rastreo visual. Aquí el seguimiento visual de la toma de un contrato de seguro, su división en vectores y el almacenamiento de los vectores en una base de datos:

 

Seguimiento visual de la recepción de una carta de denegación, el envío de solicitudes a OpenAI y el guardado de la carta de apelación en caso de que ésta sea posible:

 

Este es un ejemplo de carta de rechazo:

 

Este es un ejemplo de recurso escrito por BG-AppealAI:

 

Esperamos que nuestro proyecto de código abierto sea útil a esta comunidad y os ayude a implementar tecnologías innovadoras en vuestros proyectos. Nuestro equipo quiere agradecer a InterSystems la oportunidad de trabajar con tecnologías de vanguardia. Estamos impacientes por conocer sus opiniones y preguntas en los comentarios que aparecen a continuación. Sigamos superando juntos los límites de lo que es posible con la tecnología. Estad atentos a más actualizaciones y opiniones de nuestro equipo.

Si os ha gustado conocer BG-AppealAI y sus funciones y queréis apoyarnos, dedicad un momento a votar por nuestra aplicación aquí https://openexchange.intersystems.com/contest/36. Muchas gracias.

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Article
· Juin 12, 2024 1m de lecture

Comment effectuer des actions spécifiques lors du démarrage d'un produit InterSystems ?

InterSystems FAQ rubric

Si vous souhaitez exécuter un fichier exécutable du système d'exploitation, une commande ou un programme créé dans un produit InterSystems au démarrage de ce dernier, écrivez le traitement dans la routine SYSTEM^%ZSTART. (La routine %ZSTART est créée dans l'espace de noms %SYS).

Avant d'écrire du code dans la routine SYSTEM^%ZSTART, assurez-vous qu'il fonctionne correctement dans toutes les conditions.

Si la routine ^%ZSTART est mal écrite, ou si elle est écrite correctement mais que la commande ne renvoie pas de réponse ou qu'une erreur se produit pendant le traitement, les produits InterSystems risquent de ne pas pouvoir démarrer.

Pour plus d'informations, veuillez vous référer au document suivant.

Traduit avec DeepL.com (version gratuite)

About writing %ZSTART and %ZSTOP routines [IRIS]
About writing %ZSTART and %ZSTOP routines

Discussion (0)1
Connectez-vous ou inscrivez-vous pour continuer
Question
· Juin 12, 2024

CREATE TABLE AS SELECT fails when one specific field is present

Hello Community,

I have encountered the following SQL problem trying to create a table from a SELECT statement.

I narrowed the problem down to the following example:

1. The SELECT statement alone works as expected.

SELECT m.Name, h.Status 
FROM EnsLib_HL7.Message m, Ens.MessageHeader h 
WHERE h.MessageBodyClassName='EnsLib.HL7.Message' AND h.MessageBodyID = m.ID

2. But if "CREATE TABLE ... AS" is added it fails

CREATE TABLE UKEr.Test AS
SELECT m.Name, h.Status
FROM EnsLib_HL7.Message m, Ens.MessageHeader h
WHERE h.MessageBodyClassName='EnsLib.HL7.Message' AND h.MessageBodyID = m.ID

with the error message

  [SQLCODE: <-400>:<Fatal error occurred>]


  

[%msg: <SQLCODE: -400 Message: Process 73824 failed to compile Cached Query Class %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8 with the following errors: System:Instance: svm-ap-ekds1q:DEVHS, Namespace: UKERDFT, $Job: 73824 ERROR #5475: Error compiling routine: %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8. Errors: %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8.cls ERROR: %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8.1(57) : MPP5610 : Referenced macro not defined: 'vaExtentGbl' TEXT: . try { Set segid=$G($$$vaExtentGbl(i%ID,"segs",1),"0,0"), data=$S(segid[",":$G($$$vaSegment(segid)),1:$G($$$vaSegmentGbl(segid))), i%Name=$Case($$$vaDataSegName(data),"FHS":"FHS","BHS":"BHS",:##class(EnsLib.HL7.Message).getDataName(data)) ERROR: %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8.1(74) : MPP5610 : Referenced macro not defined: 'vaExtentGbl' TEXT: . try { Set segid=$G($$$vaExtentGbl(i%ID,"segs",1),"0,0"), data=$S(segid[",":$G($$$vaSegment(segid)),1:$G($$$vaSegmentGbl(segid))), i%Name=$Case($$$vaDataSegName(data),"FHS":"FHS","BHS":"BHS",:##class(EnsLib.HL7.Message).getDataName(data)) ERROR #5475: Error compiling routine: %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8.1. Errors: ERROR: %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8.1.int(76) #1002: Invalid character in tag : 'segid=$G($$$vaExtentGbl(i%ID,"segs",1),"0,0"),' : Offset:25 [%0AmBuncommitted+5^%sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8.1] > ERROR #5030: An error occurred while compiling class '%sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8' ERROR #5475: Error compiling routine: %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8.1. Errors: ERROR: %sqlcq.UKERDFT.xE0CXKiKodboVaHSFfXamhsFi3m8.1.int(89) #1002: Invalid character in tag : 'segid=$G($$$vaExtentGbl(i%ID,"segs",1),"0,0"),' : Offset:25>]

3. In contrast the following statement works fine. The only difference is that the field "m.Name" is not used. For demonstation purposes replaced with a different field from the same table "m.DocType". Other fields also work.

CREATE TABLE UKEr.Test AS
SELECT m.DocType, h.Status
FROM EnsLib_HL7.Message m, Ens.MessageHeader h
WHERE h.MessageBodyClassName='EnsLib.HL7.Message' AND h.MessageBodyID = m.ID

 

It seems to me, the field "Name" of the Table "EnsLib_HL7.Message" causes the trouble but I don't know why (maybe it interferes with a reserved word?) and I couldn't figure out a way to avoid this problem.

Has someone any idea what's going on here and how to solve this problem?

 

Kind Regards
Stefan

4 Comments
Discussion (4)2
Connectez-vous ou inscrivez-vous pour continuer