New post

Find

Article
· Mar 28 2m read

¡Así fue nuestro meetup de desarrolladores!

Hola a todos 😁

     

Como quizás sabéis, ayer tuvimos un meetup en las oficinas de Iberia. Pudimos hablar de la comunidad, InterSystems y sobre todo: lo pasamos genial 🎉

 

@Luis Angel Pérez Ramos nos dio una buenísima charla de IA y RAG, viendo ejemplos prácticos, y siempre con el humor que le caracteriza (en la foto está serio, pero rebosa emoción por dentro). Es difícil mantener a un público enganchado durante toda la charla. Su dinamismo y constantes bromas lo consiguieron. Es un orgullo poder contar con él.

 

Cabe mencionar la introducción de @David Reche, que nos puso en contexto y amenizó la tarde. Fuimos de lo general a lo concreto, entendiendo conceptos básicos como LLM, modelos, RAG... para acabar aterrizándolos en casos prácticos.

Estuvo muy bien que en todo momento los asistentes participaron. Pudimos ver la opinión de otros desarrolladores, resolver dudas, etc. Hubo mucha participación y debate, y era lo que queríamos ¡Fantástico!

   

Por supuesto, hubo tiempo para picar y beber algo. En este rato tuvimos conversaciones más informales, presentaciones y vivos perspectivas de diferentes perfiles: analistas, investigadoras, matemáticos, desarrolladores, arquitectos, expertos en formación, etc. 

 

Y como iba a faltar... ¡nuestro kahoot! Tuvimos un emocionante Kahoot que estuvo reñido hasta la última pregunta. Nuestros tres vencedores se llevaron un premio extra a casa. 

Fue una jornada muy divertida, y como todos pedís... seguramente habrá más pronto. Esperamos veros por allí. Gracias por venir, apoyar a la comunidad y vuestro ánimo! 

3 Comments
Discussion (3)4
Log in or sign up to continue
Article
· Mar 28 5m read

Guía de diseño y desarrollo de la interfaz QueryResponse basada en API REST en HealthConnect

Contexto:

Esta guía proporciona una visión general de cómo diseñar e implementar una interfaz API REST para consultar los datos demográficos de un paciente desde un sistema de Registro Electrónico de Pacientes (EPR) utilizando HealthConnect. El proceso implica enviar una solicitud de consulta con el número de identificación del paciente, recuperar la respuesta del sistema EPR, extraer los datos demográficos requeridos del mensaje HL7 y enviarlos como una respuesta JSON al proveedor. El diagrama del proceso de alto nivel se muestra a continuación (Captura de pantalla 1).

Nota: Podéis modificar o agregar código y otras características según vuestros requisitos. Esto es solo una guía básica que he creado para soluciones rápidas.

Captura de pantalla 1: Un diagrama de proceso de mensajes de alto nivel.

La guía paso a paso se proporciona a continuación:

  1. Configurar el Portal de Gestión de HealthConnect (MP) – Configuración de Producción (PC).  
  2. Código personalizado  
  3. Pruebas usando Postman

Paso 1: Configurad la aplicación web

Configuración del servicio REST en el Portal de Gestión de HealthConnect.

  1. Id a Administración del Sistema → Seguridad → Aplicación → Aplicación Web.  
  2. Haced clic en "Crear Nueva Aplicación Web".  
  3. Introducid el nombre de la aplicación.  
  4. Proporcionad una descripción (opcional).  
  5. Para el Namespace, seleccionad el namespace apropiado.  
  6. Haced clic en REST (para habilitar).  
  7. Introducid la clase de Dispatch.  
  8. Seleccionad "No autenticado" (más adelante explicaré cómo configurar una contraseña).  
  9. Y haced clic en "Guardar". Véase la captura de pantalla 2 a continuación (ejemplo):

 

Captura de pantalla 2: Aplicación web y configuración de REST

Paso 2: Cread las clases requeridas

A. Cread la clase - GetRequestDatasets

  • Abrid Cache Studio y seleccionad el namespace apropiado (donde lo configuraste).  
  • Cread una nueva clase haciendo clic en Archivo → Nuevo → General → Definición de Clase → Aceptar.  
  • Introducid el nombre del paquete y el nombre de la clase "GetRequestDatasets". Véase en la captura de pantalla 3 a continuación:  

Captura de pantalla 3: Código para GetRequestDatasets

 

B. Cread la clase ResponseDatasets

Nota: Podéis añadir o eliminar propiedades según vuestros requisitos.

  • El nombre de la clase es "SetResponseDatasets", luego escribid el siguiente código y compiladlo. (Véase la captura de pantalla 4 a continuación.)  

Captura de pantalla 4: Código para SetResponseDatasets

 

C. Cread el proceso de negocio 

  • Nombrad el proceso de negocio "QueryRequestResponse", luego escribid el siguiente código y compiladlo. (Véase la captura de pantalla 5 a continuación.)

Captura de pantalla 5: Código para el proceso de negocio - QueryRequestResponse

Continúa..

Nota: "404 Not Found" es solo un mensaje de visualización, pero podéis configurarlo de manera diferente

D. Cread los servicios de negocio

  • Nombrad el servicio de negocio "GetRequest", luego escribid el siguiente código y compiladlo. (Véase la captura de pantalla 6 a continuación.)  

Captura de pantalla 6: Código para el servicio de negocio - QueryRequestResponse

 

E. Cread el gestor REST

  • Nombrad el gestor REST "RestHandler", luego escribid el siguiente código y compiladlo. (Véase la captura de pantalla 7 a continuación.)

Captura de pantalla 7: Código para RestHandler

En el Studio, el diseño final debería ser como se muestra en la captura de pantalla 8 a continuación:

Captura de pantalla 8: Diseño del Studio de la API Restful

Paso 3: Configurad el portal de gestión: Configuración de producción

Dad los nombres (servicios, procesos, operaciones) según vuestros requisitos.

  • Servicios: Seleccionad la clase apropiada → ...RESTfulAPI.SERVICES.GetRequest  
  • Procesos: Seleccionad la clase apropiada → ...RESTfulAPI.PROCESS.QueryRequestResponse  
  • Operaciones: Seleccionad EnsLib.HL7.Operation.TCPOperation (para el sistema EPR)  

Nota: Id a la configuración del servicio y seleccionad el nombre del proceso desde la lista desplegable que habéis definido. Véase la captura de pantalla 9 a continuación.

Captura de pantalla 9: Vista de configuración de producción en el portal de gestión.

 

Finalmente, hemos configurado todo. Ahora, probad o evaluad la interfaz.

Paso 4: prueba y evaluación

Estoy utilizando POSTMAN, así que descargad e instalad POSTMAN si aún no lo tenéis.

Caso de prueba 1: Solicitud con un número de MRN de paciente válido usando POSTMAN (GET → https://......restapi/Patient?MRN=51080

Captura de pantalla 10: Resultado del Caso de prueba 1.

Caso de prueba 2: Solicitud con un número de MRN de paciente válido usando POSTMAN (de manera diferente) https://......restapi/510800

Captura de pantalla 11: Resultado del Caso de prueba 2.

Caso de prueba 3: Solicitud con un número de MRN de paciente inválido usando POSTMAN

Captura de pantalla 12: Resultado del Caso de prueba 3.

 

Caso de prueba 4: Si los servicios del Portal de Gestión están deshabilitados, aparecerá el siguiente mensaje.

Captura de pantalla 13 (a): Servicios deshabilitados - Resultado del Caso de prueba 4.

Screenshot 13 (b): Disabled Services - Output of Test Case 4.

Veamos el rastro visual del mensaje.

Captura de pantalla 14: Rastro visual.

Captura de pantalla 15 : Mensaje de origen:

Captura de pantalla 16: Procesar mensaje - Generar mensaje - Mensaje QRY Q01 enviado a la operación

Captura de pantalla 17: Respuesta del sistema EPR - ADR^A19 (Operación)

Captura de pantalla 18: Procesar mensaje - Extraer los datos necesarios del mensaje A19.

Espero que esto os ayude. En cuanto al uso de la base de datos para QueryResponse y otras características de la API RESTful, proporcionaré una actualización más adelante

Discussion (0)1
Log in or sign up to continue
Digest
· Mar 28

Last chance to give the feedback!

Dear Developer Community member!

The deadline for our survey is fast approaching, but you still have a week to answer a couple of questions and tell us what you like about our Developer Ecosystem Portals and what we can improve! Please take a few moments to share your feedback:

👉 Take the Survey 👈

The survey will take approximately 10 minutes to complete. Your feedback will directly influence our improvements in 2025 and beyond.

Thank you for your continued support and participation!

Sincerely yours,
InterSystems Developer Relations Team 

Discussion (0)1
Log in or sign up to continue
Article
· Mar 28 4m read

バージョン2025.1インストール時に指定する初期セキュリティオプションのデフォルトが「ロックダウン」に変わりました

開発者の皆さん、こんにちは。

先日、EM リリース新バージョン 2025.1 がリリースされました。

コンテナ版以外ですが、新規インストール時に指定する初期セキュリティオプションのデフォルトが「ロックダウン(Locked Down)」に変更となりましたので、今までとの違いについて以下ご説明します。

 

以前のバージョンのデフォルトは、IRIS:「最小(Minimal)」、IRIS for Health:「通常(Normal)」です。

ロックダウンオプションは、初期セキュリティの中で一番厳しいセキュリティ設定を行うオプションで、例えば、オブジェクト/SQL のアクセスが行えない、VSCode から IRIS にアクセスできない状況からスタートします。

そのため、使用したいアクセスに対してアクセス許可追加していく必要のあるセキュリティオプションです。

今までご利用いただいていたバージョンのデフォルト値と異なりますので、新規インストール時は設定値に気を付けてインストールを進めてみてください。

 

Windows の場合は、以下の表示となります。

 

※設定値の並びも以前のバージョンと変わっていますのでご注意ください。

※ 2025/3/28 現在、Windows 版 IRIS for Health のインストールキットのみ、以前と同様の「通常(Normal)」がデフォルト設定されています(将来のリリースで修正される予定です)。

 

Linuxでは、IRIS、IRIS for Health 共通で以下のように表示されます(最下部とご覧ください)。

Your system type is 'Ubuntu 22.04 LTS (x64)'.
 
Enter instance name <IRIS>: IRIS
 
Enter a destination directory for the new instance.
Directory: /usr/irissys 
Directory '/usr/irissys' does not exist.
Do you want to create it <Yes>?  
 
Select installation type.
    1) Development - Install InterSystems IRIS server and all language bindings
    2) Server only - Install InterSystems IRIS server
    3) Custom
Setup type <1>? 1
 
How restrictive do you want the initial Security settings to be?
"Locked Down" is the most secure, "Minimal" is the least restrictive.
    1) Locked Down
    2) Normal
    3) Minimal
Initial Security settings <1>?

 

もし、ロックダウンの設定でインストールしてしまった場合ですが、

1、オブジェクト/SQL を使いたい(ODBC / JDBC経由のアクセス、スタジオの利用も含まれます)

2、VSCode から IRIS に接続したい

上記アクセスを行いたい場合は、管理ポータルにログインし、セキュリティ設定を変更する必要があります。

 

1、オブジェクト/SQLを使いたい

サービス:%Service_Bindings を有効に変更します。

※ サービスとは、InterSystems 製品への接続経路を管理するセキュリティ設定で、対象サービスを有効とするか(接続を使うか)、無効とするか(接続を使わないか)、有効とする場合の認証はどれを使うか、などを設定します。

管理ポータルの以下メニューにアクセスします(SuperUser でログインをしてください。パスワードはインストール時に指定したパスワードを指定します)。

 

[システム管理] > [セキュリティ] > [サービス]

グレーの行は無効化されていることを示しています。

%Service_Bindings をクリックし、有効にチェックを入れ、[保存] ボタンをクリックします。

設定は以上です。

その他サービスの初期セキュリティオプション別、有効・無効については、ドキュメント「初期のサービス・プロパティ」をご参照ください。

 

2、VSCode から IRIS に接続したい

VSCode から REST 経由で IRIS に接続しています。内部的に使用しているエンドポイントのパスの設定がロックダウンでは無効化されていますので接続できません。有効化に変更するため管理ポータルで設定を変更します。

 

[システム管理] > [セキュリティ] > [アプリケーション] > [ウェブ・アプリケーション] > /api/atelier を選択

/api/atelier の設定画面を開いたら、[アプリケーション有効] にチェックを入れて[保存]ボタンをクリックします。

設定は以上です。

Discussion (0)1
Log in or sign up to continue