He escrito un código que se utiliza para extraer archivos DICOM de mi servidor interno, pero tengo dificultades para ejecutarlo repetidamente para diferentes números de acceso.

Resumen del flujo de trabajo: dado un cierto número de acceso,

  1. use findcu para obtener información sobre el número de acceso,
  2. analizar el archivo de salida a un marco de datos para organizar la información,
  3. Elija descripciones de series específicas del marco de datos,
  4. usa MoveScu para descargar los escaneos
  5. Realizar el procesamiento en el escaneo DICOM descargado

Luego repita para un nuevo número de acceso.

El problema ocurre cuando se ejecuta findcu la segunda vez, me dirá que no hay información del número de acceso en la base de datos como si el número de acceso no existiera. Pero esto no es posible, porque cuando detengo el código e itero manualmente, el siguiente número de acceso existe en la base de datos.

Comando findcu:

'findscu -v -S  -k 0008,0052=SERIES -k 0010,0010="" -k 0010,0020="" -k 0008,0050=<acc_num> -k 0008,1030="" -k 0020,000D="" -k 0008,0020="" -k 0008,103e="" -k 0020,0011="" -k 0020,000E="" -k 0020,1002="" -aet <my_aet> -aec <remote_aet> <remote_ip> <remote_port> > F:\\FGTCategoryQuantification_mhas\\findscu_acc_num_SERIES.txt'

Comando movecu:

'movescu -S +P 4006 -k 0008,0052=IMAGE -k 0010,0010="" -k 0010,0020="" -k 0008,0050=<acc_num> -k 0008,1030="" -k 0020,000D=1.2.826.0.1.3680043.2.1009.1465932691.20300.142.76.30.2008137300 -k 0008,0020="" -k 0008,103e="" -k 0020,0011="" -k 0020,000E=1.2.826.0.1.3680043.2.1009.1465932803.545000130.20070116 -k 0020,1002="" -aet <my_Aet> -aec <remote_aet> <remote_ip> <remote_port> -od F:\\FGTCategoryQuantification_mhas\\DICOMacc_numX01 > F:\\FGTCategoryQuantification_mhas\\DICOMacc_numX01\\movescu_acc_numPh1SagVIBRANTMPH.txt'

¿Estoy pensando que todavía hay alguna conexión abierta que interrumpe la segunda ejecución de findcu? o algún otro problema? No tengo mucha experiencia con dcmtlk. Cualquier consejo sería muy apreciado.

Gracias de antemano - Gray

1
gkuling 28 jun. 2019 a las 22:56

1 respuesta

La mejor respuesta

Jörg Riesmeier tiene razón al decir que DICOM no permite la recuperación por número de acceso; requiere identificar el estudio que desea recuperar mediante su UID de instancia de estudio (0020,000D).

Sin embargo, el servidor con el que se está comunicando parece admitir la recuperación por número de acceso en general. Si el momento de sus solicitudes es importante, el servidor puede aceptar solo una asociación a la vez. Sin embargo, el mensaje de error debería ser parte de la respuesta a la segunda solicitud de asociación en lugar de la segunda solicitud C-FIND e indicar que se ha excedido el límite de conexión. La implementación DICOM del servidor no parece ser completamente correcta ...

Quizás un vistazo a la Declaración de conformidad de DICOM le ayude a responder su pregunta. Si lo desea, puede revelar el producto en particular con el que se está comunicando, entonces podríamos echarle un vistazo.

0
kritzel_sw 3 jul. 2019 a las 06:03