Pregunta Yone Moreno · dic 30, 2024

Buenos días,

Muchas gracias por leerme y sobre todo gracias por su ayuda al responder.

He estado indagando sobre cómo enviar alertas cuando en una Producción de Interoperabilidad, el tamaño de la cola y/o el tiempo de espera son excesivos.

He visto que en las Operaciones y los Procesos, existe el apartado de "Control de Alertas" en la Configuración:

He probado a poner "Alerta sobre el tamaño de la cola" a 1, he desactivado la operación, he reenviado 2 mensajes, he comprobado que se encolan:

0
0 0
Pregunta Yone Moreno · mayo 21, 2024

Buenos días, 🙂

Me gustaría plantear una duda, que tiene que ver cómo gestionar %GlobalCharacterStream que representan JSONS.

Gracias por leer esta cuestión, gracias por su ayuda, y gracias por su tiempo y atención.

En concreto, en un cierto Proceso, estábamos consultando a 2 Operaciones, cuya respuesta convertíamos a una Property llamada informesAutorizadosRangoFechas la cual es %GlobalCharacterStream cuyo contenido es un JSON con la misma estructura.

Es decir, a nivel visual, un ejemplo concreto es el siguiente:

0
0 90
Artículo Yone Moreno · mayo 17, 2024 52m read

🙂 Buenos días comunidad.

Me gustaría compartir con ustedes, en este artículo, una manera muy práctica, de obtener información relevante de todos los Namespaces de un Entorno. ¿Para qué?. Pues por ejemplo para uno de los casos de uso que más nos encontramos los desarrolladores con respecto a Healtshare: el desafío de necesitar crear 1 servicio, y la odisea de ir entorno a entorno, namespace a namespace, buscando si el puerto XYZAB está libre o no... 🙃

0
0 113
Pregunta Yone Moreno · mayo 9, 2023

Buenos días,

Antes que nada agradecer el tiempo de ustedes al leer, reflexionar y sobre todo responder y aclarar las dudas.

Tenemos una cuestión:

¿Cuál es la forma recomendada de convertir un Objeto de Ensemble a JSON?,

en concreto, para ser más preciso:

¿cuál es la manera idónea de transformar un Mensaje Response con cualquier tipo de Property: %String, %List of String, otros objetos de Ensemble (EsquemasDatos); a un GlobalCharacterStream que represente al JSON? a retornar a Sistema Origen, desde el Servicio.

3
0 223
Pregunta Yone Moreno · abr 18, 2023

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:

{
    "agrupacionPuesto": ["37","38"]
}

 

Siendo el Mensaje Request:

1
0 277
Pregunta Yone Moreno · abr 17, 2023

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:

set idUserLogueado = pInput.GetAttribute("idUserLogueado")

$$$LOGINFO("idUserLogueado: "_idUserLogueado)
2
0 257
Pregunta Yone Moreno · abr 17, 2023

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:

2
0 107
Pregunta Yone Moreno · mar 13, 2023

Buenos días;

Antes que nada agradecer el tiempo, conocimiento y dedicación de ustedes, al leer y responder esta cuestión.

Actualmente disponemos de un circuito que recibe SOAP y envía SOAP, relacionado con la Administración Electrónica; el cual hemos generado al importar el WSDL del Sistema Destino.

Lo interesante y el desafío es lo siguiente:

Si por SoapUI cargamos el WSDL de Sistema Destino y enviamos 1 mensaje SOAP directos, nos responden OK

Sin embargo, curiosamente, al enviar el mismo mismo mismo mensaje, por el ESB, nos da una Excepción el Sistema Destino:

3
0 341
Pregunta Yone Moreno · mar 13, 2023

Buenos días

Realizando una integración en la que se transforma un XML en un JSON que representa un recurso FHIR; ¿por favor podrían ayudarnos con lo siguiente?

Conocemos que se puede crear un JSON "a mano" que represente una estructura FHIR, e incluso añadir llamadas a funciones tales como:

"display"(##class(Util.TablasMaestras).getValorMaestra("CENTROS_CONCERTADOS.CODIGO_TO_NOMBRE_HOSPITAL",busquedaOrdenesRequest.codigoHospitalDestino))
 

Y concatenaciones como:

"reference"("#"_(mensaje.DNI))
 

Sin embargo la cuestión es: ¿se podrían añadir condicionales del tipo "if"?

1
0 278
Pregunta Yone Moreno · feb 9, 2023

Buenas tardes,
Por favor agradeceríamos que nos lean y respondan.

Necesitamos dada una solicitud de Autenticación emitida hacia nuestro servidor de autorización OAuth 2.0; que en caso de error, el mensaje respondido sea personalizado.

Actualmente si apuntamos desde POSTMAN a:
https://[IP]:[Puerto]/oauth2/token?grant_type=client_credentials&scope=my/scope

Username: Erróneo
Password: Errónea

Obtenemos:
{
    "error": "server_error",
    "error_description": "ERROR #5002: Error de cache: <INVALID OREF>zAuthorize+28^OAuth2.Server.Token.1"
}

1
0 142
Pregunta Yone Moreno · dic 1, 2022

Hola,

Primero agradecer su tiempo y auxilio.

Les explico: estamos enviando una petición REST POST desde el SoapUI, y dentro le incluimos un "Authorization Bearer".

POST http://[IP]:[Port]/aplicaciones/scs/informescctest/Servicios.SOAP.InformesCConcertadosv01r00.cls HTTP/1.1
Accept-Encoding: gzip,deflate
Content-Type: application/xml
Authorization: Bearer eyJ0e[...]
SOAPAction: http://SCS.Servicios/InformesCConcertadosv01r00/ResultadosER7
Content-Length: 1871
Host: AAA
Connection: Keep-Alive
User-Agent: Apache-HttpClient/4.1.1 (java 1.5)

1
0 602
Pregunta Yone Moreno · sep 29, 2022

Buenos días,

Nos gustaría compartir con ustedes una duda, y agradeceríamos que nos lean y nos respondan.

Actualmente disponemos de un fichero titulado: "Imagen PatientID 9358340 PatientName Milagros ReasonForStudy 350290 InstitutionName 350290  StudyDate 20220927.xml" , en el cual disponemos del siguiente InstitutionName:

    <DicomAttribute keyword="InstitutionName" tag="00080080" vr="LO">
        <Value number="1">350290</Value>
    </DicomAttribute>

Una vez que generamos el fichero DICOM mediante el comando del simulador dcm4che:

4
0 155
Pregunta Yone Moreno · sep 21, 2022

Buenos días,

💭🧱🧑‍💻 Hemos estado indagando y construyendo gracias al enorme apoyo, soporte, y asistencia ofrecida por el siguiente ejemplo:

https://es.community.intersystems.com/post/ejemplo-de-integraci%C3%B3n-…

Y del código de Github de los circuitos de ejemplo para el FIND y el MOVE:

https://github.com/intersystems-ib/iris-dicom-sample

Sería de agradecer si ustedes nos leen y responden a las siguiente cuestiones:

Desarrollando el MOVE, nos hemos encontrado con que en los primeros envíos sí se realiza y obtenemos respuesta:

MOVE

STORE

3
0 197
Pregunta Yone Moreno · sep 21, 2022

Hola,

Estamos muy interesados en estudiar DICOM en profundidad, tanto el estándar en sí como su relación con HealthShare.

¿Podríais indicarnos algunas buenas referencias: documentación, cursos, libros, pdfs, explicaciones; para entender de qué va este estándar y cómo funciona?

Gracias por sus respuestas

Hemos leído:

https://dicom.nema.org/medical/dicom/current/output/html/part01.html

https://docs.intersystems.com/irisforhealthlatest/csp/docbook/DocBook.UI...

¿Podríais localizarnos y referenciar alguna buena documentación y/o vídeos o cursos para conocer, entender y leer sobre DICOM?

1
0 142
Pregunta Yone Moreno · ago 1, 2022

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:

./stowrs --disableTM --allowAnyHost  --url https://[IP del ESB]:[Puerto del ESB]/aplicaciones/scs/cconcertadostest/almacenarImagen /opt/contenedor/PACS/dcm4che-5.27.0-bin/dcm4che-5.27.0/bin/shared/dicom/d1I00012.dcm  

2
0 257
Pregunta Yone Moreno · jun 13, 2022

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"

2
0 133
Pregunta Yone Moreno · jun 3, 2022

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

Versión de la herramienta para convertir XML a ER7 y viceversa, el ITB, en PRE (la obtenemos en el fichero ITB.info.cls):

Parameter VERSION = 2.1;

Versión de Ensemble en INTegracion:

3
0 244
Pregunta Yone Moreno · abr 22, 2022

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:

Viéndose gráficamente el circuito:

Siendo en el código la propiedad una String sencilla:

Es decir, el código es:

1
0 236
Pregunta Yone Moreno · abr 1, 2022

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)

 

En la traza nos informa de que el método "RootObject" para los documentos DICOM, los EnsLib.DICOM.Document, no existe:

1
0 198
Pregunta Yone Moreno · mar 30, 2022

Buenos días,

Primero, ante todo, muchas gracias de antemano por leernos y responder

Además, agradecer cualquier apoyo, porque es un alivio, apoyo, aporte, auxilio contar con personas con más entendimiento, conocimiento y práctica.

Existe la siguiente necesidad:

Se dispone de 2 circuitos:

1º Circuito DICOM de "Studio" ( Servicio clásico )

Servicio: clase: DICOM.BS.QueryService

Proceso: clase: DICOM.BP.QueryProcess

Operacion: clase:  EnsLib.DICOM.Operation.TCP

Probamos desde la "Salida" del "Studio" mediante:

do ##class(DICOM.BS.QueryService).TestFind("102030")

Donde "102030" es el PatientID del usuario

3
0 237
Pregunta Yone Moreno · mar 28, 2022

Buenos días,

Agradeceríamos el apoyo de ustedes:

Desarrollando una integración para realizar un circuito "Query / Retrieve" con estudios de imágenes médicas DICOM, necesitaríamos lo siguiente:

Opciones de invocación del servicio DICOM TCP que se ha publicado para esta integración, alternativas a la opción por linea de comando

En concreto hemos leído: Recibir documento DICOM con un PDF embebido y metadatos

Adaptando el ejemplo, empleamos la línea:

./storescu -b VNAPRE -c ESBPRE@10.136.4.XYZ:19ABC ./embeddedpdf.dcm

Mediante la cual simulamos el envío de un documento DICOM con un PDF

1
0 272
Pregunta Yone Moreno · mar 10, 2022

Hola ¿cómo están?

Estamos indagando cómo recuperar datos mediante una Operación: EnsLib.DICOM.Operation.TCP

Hemos configurado en: Ensemble > Configuración de DICOM > Configuración de DICOM 

Las configuraciones de contexto como:

ESBPRE > VNAPRE

VNAPRE > ESBPRE

Siendo para ambas los Contextos de Presentación, los por defecto:

Lo cual hemos generado mediante el código encontrado en el ejemplo del "Namespace: ENSDEMO", el cual hemos incluido en el OnStart() de la Producción:

5
0 333
Artículo Yone Moreno · feb 6, 2022 2m read

¿Necesitas que tus compañeros y tú, tengan una forma más sencilla de leer 👓 el código?

¿Te preguntas cómo cuidar tu vista 👁️👁️ y hacer más agradable la lectura de código?

¿Buscas una forma de reducir la fatiga visual 👁️‍🗨️👁️‍🗨️ y mejorar la calidad de lo que escribes?

Por favor, sigue leyendo para averiguar las respuestas a las cuestiones anteriores.

0
0 186
Pregunta Yone Moreno · nov 4, 2021

Hola comunidad,

Sería de agradecer si pudieran leernos y respondernos:

➡️ Necesitamos activar una Operación SOAP durante una franja horaria, con el objetivo de enviar mensajes al sistema destino, únicamente durante unas horas; por ejemplo de 4 a 8 de la madrugada

El requisito es hacerlo sin una tarea programada. Esto se debe a que al cambiar de nodo, en los mirrors de producción, hay dificultades, retos, o desafíos con las tareas programadas

Por tanto, necesitamos un mecanismo que nos permita asegurar que se ejecuta la Operación, incluso después de un cambio de nodo

1
0 93
Pregunta Yone Moreno · oct 27, 2021

En primer lugar gracias por su ayuda y tiempo

Necesitaríamos encontrar dentro del PID:3 cual cumple la siguiente condición:

PID 3.4.1 = "CAC" y PID 3.5 = "JHN"

Hemos estado investigando cómo podríamos hacerlo

Hemos conseguido obtener campos individuales en una petición de llamada de la siguiente manera:

request.GetValueAt("ORCgrp(1).ORC:OrderingProvider(1).IDNumber")

##class(Ens.Util.Time).ConvertDateTime(request.GetValueAt("PID:DateTimeofBirth"),"%Y%m%d","%Y-%m-%d")

 

Sin embargo, ¿cómo nos recomendarían buscar un campo específico en el PID que cumpla con un criterio específico?

1
0 111
Pregunta Yone Moreno · oct 14, 2021

En primer lugar, gracias por su tiempo leyendo esta pregunta y gracias por su ayuda.

Tenemos el siguiente caso de uso: necesitaríamos enviar con MTOM un zip que contenga un csv

Hemos leído, investigado, indagado:

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

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

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

Necesitaríamos replicar cómo SOAPUI envía un zip con un csv como archivo adjunto en una solicitud SOAP, empleando Ensemble

9
0 422
Pregunta Yone Moreno · jun 30, 2021

Hola, buenos días.

Necesitaríamos orientación, guía o apoyo de ustedes para realizar lo siguiente:

Nuestro objetivo es: lograr que el fichero ".stream" NO se guarde, en la carpeta: /opt/ensemble/[Entorno]/stream

Tenemos un Servicio REST, un Proceso y una Operacion REST

Desde la Operacion al Proceso existe un Mensaje Response: Mensajes.Response.HistoriaClinica.GetInformeResponse

con un pdf definido como:

Property pdf As %GlobalCharacterStream;

Además, desde el Proceso al Servicio nuestro Mensaje Response es: Mensajes.Response.Informes.v02r00.obtenerCartillaVerdeDigitalResponse

1
0 246