Pregunta
· 28 mar, 2022

TCP y DICOM: Investigar opciones de invocación del servicio

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

Sin embargo, esto no nos es fructífero, provechoso o de solución, ya que lo que se necesita actualmente, es simular consultas del tipo "FIND".

En concreto necesitaríamos consultas del tipo "Obtener Resultados a nivel de Estudios" StudyRootQuery - FIND u "Obtener Estudios a nivel de Pacientes" PatientRootQuery - FIND

// StudyRootQuery - FIND
set tAffectedSOPClassUID="1.2.840.10008.5.1.4.1.2.2.1"
// PatientRootQuery - FIND
;set tAffectedSOPClassUID="1.2.840.10008.5.1.4.1.2.1.1"

Hemos indagado cómo simular las llamadas FIND: Query / Retrieve scenario

En particular probamos desde la "Salida" del Studio enviando el expediente del paciente en el campo "PatientID" del "DataSet" del documento DICOM:

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

Y de esta forma simularíamos una llamada al Servicio "dummy" cuya clase es: DICOM.BS.QueryService

Sin embargo, ¿ qué opciones de invocación del servicio DICOM TCP que se ha publicado para esta integración existen ?

¿ Existe un SoapUI / POSTMAN / herramienta línea comando y/o visual, que nos permita simular comandos FIND de DICOM por TCP ?

Gracias por leernos y por sus respuestas


 

Además hemos leído:

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

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

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

https://es.community.intersystems.com/post/dicom-no-hay-asociaci%C3%B3n-...

https://community.intersystems.com/post/dicom-tcp-services-and-dicom-imp...

 

A nivel visual, ahora estamos probando el circuito mediante un Servicio "dummy", cuya clase es: DICOM.BS.QueryService

Sin embargo, necesitamos encontrar la vía de simular ser el sistema origen, es decir, probar el servicio TCP, siendo de la clase: EnsLib.DICOM.Service.TCP

¿ Qué 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, existirían ?

¿ De qué forma lo harían ustedes ?

¿Disponen de ejemplos, documentación, código, referencias o indicaciones que pudieran servir de apoyo?

 

Muchas gracias de antemano

Un saludo

Comentarios (1)2
Inicie sesión o regístrese para continuar

Hola Yone,

Imagino que te refieres al ejemplo https://github.com/intersystems-ib/iris-dicom-sample

Los comandos C-FIND son mensajes DICOM que deben tener el formato correcto y transmitirse usando el protocolo DICOM. Por eso, o usas un simulador, o generas ese mensaje desde Ensemble / Health Connect.

En el ejemplo, el comando do ##class(DICOM.BS.QueryService).TestFind() provoca la generación de un mensaje C-FIND dentro de la producción para un paciente concreto.

El simulador dcm4che tiene la utilidad findscu que permite simular la generación de mensajes C-FIND.