Consultar un LIS a ...
 

Consultar un LIS a través de WSDL y enviar datos a una BD SQL Server  

  RSS

(@johansanchez)
Miembro Eminente
Registrado: hace 2 meses
Mensajes: 17
13/06/2019 5:36 pm  

Hola estimados amigos.

Hoy vengo con otra consulta del Mirth Connect, y es la siguiente:

tengo que consultar un LIS a travez de un WSDL " http://IP:puerto/nobilis/servlet/wsdlservices/resultados?wsdl "

de allí debo traerme los datos (resultados) de un paciente y luego montarlos en una BD SQL Server, al tiempo debo también actualizar un estado de la tabla para que el HIS interprete que ya estan los resultados del paciente y pueda leerlos y montarlo en la historia clínica del paciente del HIS.

La pregunta es:

Como organizo el Mirth para consultar y luego escribir en la BD externa?

De antemano muchísimas gracias por sus valiosas respuestas que me han enseñado mucho.

This topic was modified hace 1 mes by Pedro M. Torres

Cita
(@pmtorres)
Miembro Admin
Registrado: hace 6 años
Mensajes: 13
13/06/2019 6:32 pm  

Hola, Johan,

gracias por tu pregunta. En resumen, lo que habría que hacer es:

  1. Para consultar el web service se requiere de un conector de tipo "Web Service Sender",
  2. los datos obtenidos los almacena para procesarlos en el siguiente conector de destino de tipo "Database Writer" para actualizar los resultados en la base de datos,
  3. por último, habrá que utilizar otro conector de destino de tipo "Database Writer" para actualizar la base de datos del HIS indicando que los resultados ya están disponibles.

Es una consulta muy amplia y responderla en detalle requiere bastante trabajo. En mi opinión, el foro es más útil si las preguntas son concretas y pueden ser resueltas con una respuesta, más o menos, concreta. Si no, nos perdemos en los detalles o nos metemos en una labor de consultoría, que no es el objetivo del foro.

Por cierto, si crees que os puede ser útil una labor de consultoría o de formación en Mirth Connect, en Caduceus estaremos más que encantados de ofreceros nuestros servicios.

Un cordial saludo


ResponderCita
(@johansanchez)
Miembro Eminente
Registrado: hace 2 meses
Mensajes: 17
13/06/2019 7:49 pm  

Hola Pedro buenas tardes

Quizás podrías indicarme como guardo los datos de la consulta con el web sender service?

El tema de la consultoría y también formación podría interesarme, como funcionaria?


ResponderCita
(@pmtorres)
Miembro Admin
Registrado: hace 6 años
Mensajes: 13
14/06/2019 3:27 pm  

Hola, Johan,

te escribo por email acerca de los servicios de integración y consultoría.

¡Buen fin de semana!


ResponderCita
(@ricber)
Miembro Confiable
Registrado: hace 9 meses
Mensajes: 26
14/06/2019 4:24 pm  

Buenas tardes Johan,

para guardar los datos en la base de datos tienes la opcion "polite" que es la que te indica Pedro, o sea en un canal se instancia al web service y la respuesta, o la capturas en el response, pones los datos en variables y los envias al siguiente destino, o la recuperas la respuesta en el siguiente destino, que es el de escribir en la base de datos. Como manejar la respuesta de un webservice eso ya da para un hilo separado. Busca en el foro oficial, alli seguro que hay ejemplos.

Despues tienes la version "quick & dirty" que es, en el mismo response de la llamada al webservice recuperas los datos y los grabas en la base de datos con una conexion javascript, y controlas todo con un try/catch.

En tu caso seguiria las instrucciones de Pedro y con el tiempo pasaria al modelo "quick & dirty" si te interesa. Te lo comento para que veas que en Mirth puedes hacer las cosas de muchas maneras diferentes, eso si, todas tienen sus pros y contras.

Buen fin de semana,

RB

 


ResponderCita
(@johansanchez)
Miembro Eminente
Registrado: hace 2 meses
Mensajes: 17
17/06/2019 4:00 pm  

Buenos días ricber

Este fin de semana estuve pensando mucho en el tema, y resulta que pasa lo siguiente:

la solución propuesta es interesante, pero fíjate en algo muy importante que puede pasarme en el futuro, mi canal tiene que ir a preguntar si hay resultados al LIS, aquí todo bien!!! pero ya tengo experiencia en el asunto y visualizo que hay ordenes que entran en un laboratorio y aveces no son procesadas, por lo que quedan pendientes, entonces el canal va a estar preguntando por algo que nunca va haber resultado y esto se traduce en recursos de maquina (Memoria RAM muy posible).

Me toca consultar con el desarrollador del LIS si es posible cambiar lo siguiente:

es posible que al validar un resultado el sistema emita o lance la señal de que ya esta validado y mi sistema este escuchado su petición de resultado de la orden?

Pienso que seria mas beneficioso si esto pasara por que el mirth connect no se vería forzado a ir a preguntar mil veces por un resultado.....

Pero cambiaría todo el panorama del Mirth connect, por que ahora debe escuchar peticiones wsdl externas.... (Otro tema para lidiar)

Comparto todo esto con uds, por que pienso que a alguien puede servirle.

de antemano muchas gracias por su interés y leer mis eventos de principiante en el mirth connect


ResponderCita
(@ricber)
Miembro Confiable
Registrado: hace 9 meses
Mensajes: 26
17/06/2019 4:26 pm  

Hola Johan,

aunque esto escapa bastante de lo que es Mirth te comento: Los LIS pueden liberar los resultados validados o sin validar, aunque lo tipico es liberar los validados. Por otra parte, los resultados liberados se puede recoger por "push", cuando el sistema te los envia una vez liberados, o por "pull", cuando tu cada x tiempo instas al sistema para ver si hay algun resultado liberado.

En funcion de como configures el LIS, la "conducta" de Mirth debera ser una u otra.

Un saludo,

RB

 


ResponderCita
(@johansanchez)
Miembro Eminente
Registrado: hace 2 meses
Mensajes: 17
17/06/2019 6:32 pm  

Hola ricber 

disculpa mi ignorancia... tu me puedes decir donde se maneja lo de "polite" y lo de "Push" quizas con un pantallazo si es posible.

Mil gracias


ResponderCita
(@ricber)
Miembro Confiable
Registrado: hace 9 meses
Mensajes: 26
17/06/2019 6:44 pm  

Hola Johan,

disculpa, "polite" es un modismo de por aqui que indica que lo que sea se ha hecho de una manera "educada o correcta", y tiene su raiz en la traduccion directa de la palabra inglesa polite=educado. En definitiva te queria decir con eso que lo que proponia Pedro era lo mas correcto, y lo que porponia yo era lo mas "quick & dirty", o sea por traduccion directa, "rapido y sucio", que va  a funcionar casi igual pero no es lo mas correcto.

Respecto a lo de push/pull creo que con esta definicion lo vas a entender perfectamente:

https://es.wikipedia.org/wiki/Tecnolog%C3%ADa_push

Un saludo,

RB

 

 

 


ResponderCita
(@johansanchez)
Miembro Eminente
Registrado: hace 2 meses
Mensajes: 17
17/06/2019 7:05 pm  

Hola ricber 

Que claro me lo has dicho amigo.... que bien!!!

Ricber sabes que en cuanto al tema mi duda se presenta es en lo siguiente, Mirt connect yo lo programo en "Web Service Sender" (Destination) entonces aquí viene mi lió, como haria para hacer el llamado de los resultado. el LIS me dice que yo los debo llamar por la historia, pero mi mente no concibe entender como llamar los resultados.

En unas pruebas con un programa llamado soapUI yo traigo la info del LIS, con lo siguiente:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://wsdl.servicios.jalisco.com/">
<soapenv:Header/>
<soapenv:Body>
<wsdl:obtenerResultadosPorPaciente>
<!--Optional:-->
<nroHistoriaClinica>44491</nroHistoriaClinica>
</wsdl:obtenerResultadosPorPaciente>
</soapenv:Body>
</soapenv:Envelope>

 

y el me trae los resultados en la ventana de la derecha del software.

Pero como te dije anteriormente mi mente no entiende como hacerlo en el tranformer del canal...

 


ResponderCita
(@ricber)
Miembro Confiable
Registrado: hace 9 meses
Mensajes: 26
17/06/2019 8:30 pm  

Hola Johan,

Crea un canal con el source en javascript solo con un return true dentro y una ejecucion cada x segundos (los que quieras). En el destination pones el webservice sender y recuperas la respuesta en el response.

Importante, para que funcione el webservice sender primero debes invocar una llamada a la url del webservice con el WSDL y el servidor te devolvera todos los metodos implementados, a partir de ahi generas el envelope y le pones los parametros si los hay.

La primera vez no es facil, sigue las indicaciones que te he dado y vas preguntando.

Un saludo,

RB


ResponderCita
(@johansanchez)
Miembro Eminente
Registrado: hace 2 meses
Mensajes: 17
17/06/2019 10:19 pm  

Hola Ricber

cuando dices y le pones "generas el envelope y le pones los parametros si los hay." hablas de esto ejemplo:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsdl="http://wsdl.servicios.jalisco.com/">
<soapenv:Header/>
<soapenv:Body>
<wsdl:obtenerResultadosPorPaciente>
<!--Optional:-->
<nroHistoriaClinica>?</nroHistoriaClinica>
</wsdl:obtenerResultadosPorPaciente>
</soapenv:Body>
</soapenv:Envelope>

entonces en teoria deberia poner la historia del paciente aqui

<nroHistoriaClinica>Aqui la historia?</nroHistoriaClinica>

 

Muchas gracias


ResponderCita
(@ricber)
Miembro Confiable
Registrado: hace 9 meses
Mensajes: 26
17/06/2019 11:01 pm  

Hola,

Exacto, debes sustituir el ? por el numero de historia clinica.

Un saludo,

RB


ResponderCita
(@johansanchez)
Miembro Eminente
Registrado: hace 2 meses
Mensajes: 17
19/06/2019 9:29 pm  

Hola Ricber

ya logre ver la respuesta.... muchas gracias...

en el conector javascript reader puedo escribir codigo de javascript, como por ejemplo tratar los datos.

 


ResponderCita
Share:
caduceusadminForum