検索

Job
· 2025年2月3日

Vacante: Especialista en Aplicaciones - Químico Farmacéutico

¡Hola Comunidad!

Os dejamos una oferta interesante para una vacante en InterSystems:

Como especialista en aplicaciones HIS con enfoque en gestión de medicamentos, desempeñará un rol estratégico en la implementación, configuración y soporte de los sistemas de información hospitalario (HIS). Su principal responsabilidad será garantizar la eficacia, seguridad y cumplimiento normativo en la gestión integral del ciclo de medicación optimizando el proceso desde la prescripción hasta la administración y asegurando el uso efectivo de la tecnología.

Ubicación: Santiago.

Enlace para aplicar con toda la información: https://www.intersystems.com/careers/careers-search/?gh_jid=6072943003

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください
ダイジェスト
· 2025年2月3日

Resumen de la Comunidad de Desarrolladores, enero 2025

¡Hola!

¿No habéis podido entrar en la Comunidad todo lo que queríais este mes? ¡No pasa nada! Os traemos un resumen de este mes de enero.

Estadísticas generales
✓ publicaciones nuevas:
 19 artículos
 12 anuncios
 2 nuevas preguntas
Publicaciones populares
Autores populares
Artículos
#InterSystems IRIS
Obtened vuestro código a través de ODBC/JDBC.
Por Jose-Tomas Salvador
¿Por qué son importantes Docker, IPM y ObjectScript Quality?
Por Luis Angel Pérez Ramos
Creando un cliente REST para obtener canciones de la API REST de Spotify - Parte 1: Comprobad el token
Por Ricardo Paiva
Eliminar clases borradas después de una importación
Por Alberto Fuentes
Carga de archivos Parquet en IRIS
Por Joel Espinoza
QuinielaML - Predicción de la 34ª jornada de la Quiniela
Por Luis Angel Pérez Ramos
Encontrad valores desde texto y mostradlos
Por Jose-Tomas Salvador
Conectando IRIS a SQL Server mediante una conexión ODBC
Por Arsh Hasan
QuinielaML - Predicción de la 36ª jornada de la Quiniela
Por Luis Angel Pérez Ramos
¿Qué versión tiene mi imagen?
Por Ricardo Paiva
Probando la función FOREIGN SERVER y FOREIGN TABLE
Por Luis Angel Pérez Ramos
Destacados de Interoperabilidad HTTP 2024.3 - Nuevos Ajustes de OAuth 2.0 para Salidas
Por Jose-Tomas Salvador
QuinielaML - Predicción de la 38ª jornada de la Quiniela
Por Luis Angel Pérez Ramos
IoP: Soporte DTL para Mensajes y JsonSchema
Por Alberto Fuentes
Conexión de JDBC a MS Azure SQL a través de Microsoft Entra y autenticación con contraseña de Active Directory
Por Ricardo Paiva
QuinielaML - Predicción de la 40ª jornada de la Quiniela
Por Luis Angel Pérez Ramos
 
#Documentación
 
#HealthShare
 
#InterSystems IRIS for Health
 
Anuncios
#InterSystems IRIS
 
#Comunidad de Desarrolladores Oficial
 
#Portal de Formación
¿Qué aprenderéis en 2025?
Por Kristina Lauer
 
#Oferta de empleo
Vacante: Ingeniero/a de IRIS
Por Sergio Farago
 
#Portal de ideas de InterSystems
 
#IRIS contest
 
#Open Exchange
 
#Otro
 
Preguntas
#InterSystems IRIS for Health
¿Índice en campo TimeStamp, o mejor en Date?
Por Laura Blázquez García
Aprende FHIR como nunca antes
Por Jose-Tomas Salvador
 
enero, 2025Month at a GlanceInterSystems Developer Community
ダイジェスト
· 2025年2月3日

Publications des développeurs d'InterSystems, semaine Janvier 27 - Février 02, 2025, Résumé

Janvier 27 - Février 02, 2025Week at a GlanceInterSystems Developer Community
ダイジェスト
· 2025年2月3日
記事
· 2025年2月3日 3m read

¿Faltan SQL variables de host ?

Variables de host son una característica de programación bastante común en muchas implementaciones de SQL.
Una pregunta reciente en DC me hizo darme cuenta de que en IRIS, Caché, Ensemble,... 
las variables del host simplemente existen dentro del embedded SQL.

>  You can supply host variables for Embedded SQL queries only. <
Se incluyen ejemplos relacionados en la documentación disponible.

A continuación se incluye una descripción de una solución alternativa si no utiliza o no puede utilizar embedded SQL.
La idea básica es utilizar PPG (Process Private Globals) para almacenar la imitación de una variable del host.

Una de las principales razones para utilizar PPG es el hecho de que se eliminan automáticamente al final del proceso.
Otra idea es evitar conflictos con las matrices de variables locales y el alcance de las variables locales versus globales.
Además, no es necesario realizar ninguna actividad de limpieza.

De hecho, es un conjunto de 3 métodos SQL.

  • HDEC para imitar SQL DECLARE @var y SQL SET @-var
  • HGETV y HGETI  para devolver el valor de la variable como VARCHAR o INTT
    • Como característica adicional, se devuelve NULL si la variable no se configuró o declaró antes
    • si es necesario devolver cualquier otro tipo de datos es bastante fácil
  • HDEL se proporciona si surge la improbable necesidad de eliminar una variable del lenguaje principal
Class User.HostVar
{
ClassMethod GetV(name) As %String [ SqlName = HGETV, SqlProc ]
{
    quit $get(^||host($g(name,"%")))
}
ClassMethod GetI(name) As %Integer [ SqlName = HGETI, SqlProc ]
{
    quit $get(^||host($g(name,"%")))
}
ClassMethod Declare(name, val) As %Integer [ SqlName = HDEC, SqlProc ]
{
    set ^||host($g(name,"%"))=$g(val)
    quit $$$OK
}
ClassMethod Del(name) As %Integer [ SqlName = HDEL, SqlProc ]
{
    kill ^||host($g(name,"%"))
    quit $$$OK
}
}

Mi ejemplo contiene 2 variantes para la implementación.
El primero es ObjectScript directo,
esta variante también está disponible en IPM. 

El segundo está basado en SQL y se puede implementar también a través de ODBC/JDBC.

CREATE or REPLACE
PROCEDURE HDEC(IN name VARCHAR(50), IN val VARCHAR(50)) RETURNS INT
  LANGUAGE OBJECTSCRIPT 
  { 	set ^||host($g(name,"%"))=$g(val)
	quit $$$OK
  } 
CREATE or REPLACE PROCEDURE
HGETV(IN name VARCHAR(50)) RETURNS VARCHAR(50)
  LANGUAGE OBJECTSCRIPT 
  {
 	quit $get(^||host($g(name,"%")))
  }
CREATE or REPLACE PROCEDURE
HGETI(IN name VARCHAR(50)) RETURNS INT
  LANGUAGE OBJECTSCRIPT 
  {
 	quit $get(^||host($g(name,"%")))
  }  
CREATE or REPLACE  
PROCEDURE HDEL(IN name VARCHAR(50)) RETURNS INT
  LANGUAGE OBJECTSCRIPT 
  { 	kill ^||host($g(name,"%"))
	quit $$$OK
  } 

Ambas variantes están diseñadas para poder utilizarse sin un prefijo de paquete.
Por lo tanto, se utilizó el paquete Usuario (el predeterminado) que se asigna
al esquema predeterminado SQLUser en SQL.

Durante las pruebas detecté que forzar una secuencia de Configuración y Consumo
Estas variables del host pueden ser un ejercicio complicado si desea ejecutarlas
internamente.una única declaración SQL.
Logré proporcionar una secuencia predecible solo usando una construcción CASE.

SELECT 
CASE
  WHEN HDEC('rcc',66) > 0  -- set host var 
   THEN HGETI('rcc')-5||' ** '||HGETV('rcc')
END  

Dentro de un Stored Procedure no enfrenta este problema.

Se crearon mi ejemplo y también el paquete proporcionado en Open Exchange.
y probado en IRIS. Aunque la construcción es bastante básica y también se
ejecuta sin ningún cambio en Caché, Ensemble, ... y sus derivados y
por supuesto en todos los derivados HEALTH* de IRIS.

Mi única duda es sobre una base de datos sharded en combinación con
Process Private Globals. Simplemente no tenía ninguna configuración disponible para probar este escenario. 

No doy por sentado que esta propuesta sea la solución definitiva.
Situaciones específicas pueden requerir un enfoque más sofisticado
o bien construcciones más simples.

Como mencioné anteriormente veo la gran ventaja de tener una solución.
que se puede utilizar a través de un acceso ODBC o JDBC y no
requieren codificación con VSCode o Studio.

GitHub
Vídeo en inglés

Implementation of Ideas Portal   

 
Esperando sus votos en el concurso.

 

1 Comment
ディスカッション (1)2
続けるにはログインするか新規登録を行ってください