Hola a todos,

Por un requerimiento del cliente, tenermos un BS Rest Api con un montón de métodos, necesitamos obtener la IP del invocador, el método y cual es el tiempo que la API ha tomado para procesar.

He encontrado el evento onPreDispatch donde puedo capturar la IP, ClassMethod, etc.. Estoy usando una variable global para guardar esta información.

0 2
0 21

Buenos días.

Queremos distribuir y proporcionar desarrollos, para Partners y Clientes, con los puedan configurar sus producciones creando Operaciones y Servicios de Negocio basados en Clases Base que ya hemos desarrollado y empaquetado, ellos luego podrán incluir sus propios mapeos, rutas y demás en sus producciones, pero sin poder acceder a la implementación de esas clases base que nosotros proporcionamos. Sería el equivalente a ofrecer una librería con objetos compilados en C y el archivo .H con sus interfaces, pero no el código.

0 12
1 193

Estoy utilizando RestForms2 para disponer de una API Rest sobre unas tablas de forma rápida.

El caso es que he añadido un trigger a las tablas para que, cada vez que se inserte/actualice/borre un registro, registre en una tabla de históricos los cambios, pudiendo ver el valor original y el nuevo de cada propiedad.

Pero el trigger solamente salta si la inserción se realiza mediante SQL. No salta creando un nuevo objeto.

0 2
0 60

Hola a todos,

Como sabéis, es muy complicado depurar una API Rest de Business Service porque el objeto se crea cuando las aplicaciones reciben una solicitud, por lo que no podemos tener el JobId que podemos usar para depurar.

https://docs.intersystems.com/iris20211/csp/docbook/DocBook.UI.Page.cls?...

Entonces, estoy tratando de obtener el JobId cuando se crea la clase, escribir una traza en el método OnInit() y escribir el JobId en es traza.

0 2
0 125
Pregunta
· 7 feb, 2024
Error depurando desde VS

Hola comunidad,

Si, ya sé que hay otra pregunta con el mismo problema "VS Code - debugging doesn't work", pero mi instancia de IRIS no está usando IIS.

Hace tiempo, podía depurar sin problemas, pero después de algunas actualizaciones de Visual Studio, tengo el siguiente error

Failed to start the debug session. Check that the Intersystems server's web server supports WebSockets

0 2
0 104
Pregunta
· 31 ene, 2024
¿Cómo clonar un namespace?

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.

1 6
0 79

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 85

¡Hola!

Me gustaría encontrar programáticamente todas las clases que no están actualizadas en un namespace.

Con IRIS Studio, podemos ver el signo "+", pero no sé cómo hacerlo con un script.

Set sql = "SELECT ID, Name FROM %Dictionary.ClassDefinition WHERE NOT ID %STARTSWITH ?"
Set params($Increment(params)) = "%"
Set tResult = ##class(%SQL.Statement).%ExecDirect(, sql, params...)

If (tResult.%SQLCODE'=0)&&(tResult.%SQLCODE'=100) Set sc = $$$ERROR($$$SQLError, tResult.%SQLCODE, tResult.%Message) Quit sc

While tResult.%Next() {
    // if class not up to date ??
}

¿Alguien tiene alguna idea?

0 1
0 50

Hola a todos,

Me pregunto si es posible llamar a un BO desde una enrutador HL7 de acuerdo con un parámetro del mensaje HL7

Quiero decir,

De acuerdo con la identidad del laboratorio, quiero llamar a otro proceso TCP para recuperar información sobre análisis de sangre.

Estamos creando el BO usando este patrón.

LAB.BO.TCP. + nombre del laboratorio.

El nombre del laboratorio se almacena en la tabla de consulta T_LABORATORIOS

Intenté asignar el nombre a una variable y ponerlo en la instrucción "send", pero no funciona.

1 1
0 74

Buenas tardes,

Antes que nada, muchísimas gracias por leer esta duda, y sobre todo por dedicar tiempo en entenderla y en responderla. Gracias.

Por favor, necesitaríamos su ayuda. Actualmente estamos desarrollando una Integración REST, y se nos da un caso que nos gustaría comentar con ustedes, a fin de hallar pistas, documentación, ejemplos, o mecanismos para gestionarlo y depurarlo.

En la Operación REST recibimos:

0 2
0 63

Buenos días;

Primeramente, expresar gracias reales sinceras y profundas por el tiempo que dedican ustedes a leer, entender y responder esta duda. Sobre todo muchas gracias por responderla de la mejor manera posible. Gracias.

Tenemos una duda:

El Sistema Origen nos informa en el body que envía hacia el método del Servicio REST " getCursosAdmitidosInscripcionAbierta" de la siguiente manera:

0 1
0 97

Buenos días;

Primero agradecer infinito el apoyo de ustedes y sobre todo y más importante el tiempo que dedican a leer, comprender y sobre todo a responder esta duda. Muchísimas gracias.

Hemos estado trasteando en un Servicio REST para adaptarlo a tal y como lo necesita Sistema Origen. Observamos que si nos enviaran una Header con mayúsculas "idUserLogueado" al tratar de obtener valor en Servicio en el LOGINFO sale vacío:

0 2
0 119
Pregunta
· 1 sep, 2022
Parámetros en tablePane

Hola!!!! Tengo un tablepane con una propiedad "where Clause = CAMPO > ?"

Cuando desde un ClassMethod quiero actualizar el query de ese tablePane usando "zen(tablePane).parameters[0].value = valor"
me devuelve el siguiente error:

Cannot set properties of undefined (setting 'value')

Alguna idea de qué estoy haciendo mal?

Muchas gracias!!!!!

0 4
0 105

Buenos días,

Nos gustaría compartir lo que estamos investigando y en lo que necesitamos su apoyo, para continuar con ello:

1) Hemos desarrollado un Circuito REST: Servicio REST + Proceso + Operacion REST.

Los cuales reciben un fichero de estudios de imágenes médicas .dcm y lo envían tal cual. Para ello enviamos mediante el simulador dcm4che y en concreto mediante la línea:

0 2
0 134

Hola buenos días,

Agradeceríamos si ustedes nos leen y responden:

Disponemos de 2 entornos: INTegracion en HealthConnect 2020 y PREproduccion en Ensemble 2018

¿Que un tipo de dato sea %GlobalCharacterStream influye? en concreto: ¿se generan ficheros .stream en el servidor si subimos clases que hagan uso de %GlobalCharacterStream?

Ojeando la documentación, parece que explica lo siguiente:

Parece que NO sería persistente , parece que "almacena caracteres en nodos de datos globales"

0 2
0 92

Buenos días,

Agradeceríamos que nos leyeran y si tuvieran oportunidad, nos respondieran, por favor.

La situación actual es la siguiente:

Disponemos de 2 entornos PREproduccion e INTegracion :

Versión de Ensemble en PREproduccion:

Cache for UNIX (Red Hat Enterprise Linux for x86-64) 2018.1.6 (Build 717U) Thu Feb 24 2022 13:27:54 EST

0 3
0 143

Hola,

A modo de ejercicio, estoy intentando desarrollar una producción que permita importar datos al UCR desde un sandbox que provee datos FHIR R4 alojado en Logica Health, para ello necesitaría implementar un servicio que se conecte, bajo demanda, al servidor FHIR e importe la totalidad de los registros, inicialmente, y a posterior solo las novedades. Lamentablemente por ahora no pude desarrollarlo debido a mi falta de conocimiento y la poca documentación que encontré al respecto.

0 1
0 110

Hola, buenos días

Primero agradecer su tiempo al leer y responder nuestra cuestión.

Hemos estado leyendo, indagando, investigando respecto a cómo realizar múltiples envíos desde 1 proceso del tipo "DICOM.BP.QueryProcess" a varias operaciones destino

Actualmente estamos usando el ejemplo básico, el que incluye Ensemble, y este dispone de una propiedad mediante la cual desde la producción escribimos a qué operación envía nuestro proceso:

0 1
0 175
Hola a todos,
Acabamos de migrar al nuevo servidor IRIS 2021.2 todas nuestras producciones en un servidor de desarrollo. Es un Windows 2019 Server.
He instalado Webterminal para tener una buena conexión al servido de forma remota, pero está lanzando el siguiente mensaje de error:
1 1
0 108
Pregunta
· 20 abr, 2022
Migrar Ensemble 2017 a IRIS

Hola a todos.

Queremos hacer la migración de las producciones y bases de datos de Ensemble 2017 al nuevo IRIS 2021.1.

Mi primera intención era utilizar las copias backups y cargarlas directamente en IRIS usando DO ^BACKUP pero como es lógico, avisa que el fichero de backup no es un backup de IRIS

Mi siguiente intento es hacer un Freeze de la base de datos de Ensemble 2017 y copiar el fichero DAT directamente, pero antes de hacer nada me imagino que la estrcutura es diferente.

¿Cual es la mejor forma de migrar todo lo que tenemos en Ensemble 2017 a IRIS?

1 4
0 131

Buenos días,

Agradecer a ustedes el tiempo dedicado en leer y responder a esta duda

Necesitamos indagar la forma de mostrar un EnsLib.DICOM.Document mediante LOGINFO, en las trazas

Hemos tratado de emplear:

set writer=##class(%XML.Writer).%New()

set status=writer.OutputToString()

set status=writer.RootObject(..DocumentFromService)

set xml= writer.GetXMLString()

$$$LOGINFO("..DocumentFromService en xml: "_xml)
0 1
0 142