lunes, 21 de octubre de 2019

Protocolo DICOM: medir el tiempo de descarga de estudios (Wintel)


DCMTK es un toolkit para el testeado de una aplicación dicom cliente/servidor (también llamado SCU/SCP)

Vamos a utilizar los ejecutables de DCMTK, una vez descargados situar una sesión de CMD a la carpeta .. \dcmtk\ donde lo tengamos instalado.

A modo de prueba ejecutaremos el siguiente comando contra un PACs con el AE titile correspondiente que va a pedir un estudio:

movescu -v --study --call "SRVAGFWFM01" --aetitle "PCALMA" --key "0008,0052=STUDY" --key "0020,000D=1.2.124.113532.80.22153.16226.20191017.91050.9809773" 192.168.108.229 104

Este es el comando original de descarga de estudios, el cual vamos a insertar en un bat que medirá el tiempo de ejecución de este comando, esto nos servirá para determinar el tiempo de descarga ya que el comando al finalizar libera la conexión y el script nos dá el tiempo transcurrido.

Pero antes debemos ejecutar el nodo receptor SCP en el equipo que seleccionemos con el  siguiente comando el cual abrirá el puerto de recepción 104:

storescp 104 -aet PCALMA -od C:\Users\usralma\Desktop\Output

Creamos un bat llamado timecmd.bat e insertamos el comando anterior:

@echo off
@setlocal
set start=%time%

:: Estudio de tipo CT de 704 imagenes
C:\Users\roland.peralta\Desktop\HERRAMIENTAS\dcmtk\windows\movescu -v --study --call "DCM4CHEE" --aetitle "AE_ALMA3D_ROLAND" --output-directory "almalog" --key "0008,0052=STUDY" --key "0020,000D=1.2.250.1.59.1.999.10.20170210.16985655" 172.26.0.7 11112 
set end=%time%
set options="tokens=1-4 delims=:.,"
for /f %options% %%a in ("%start%") do set start_h=%%a&set /a start_m=100%%b %% 100&set /a start_s=100%%c %% 100&set /a start_ms=100%%d %% 100
for /f %options% %%a in ("%end%") do set end_h=%%a&set /a end_m=100%%b %% 100&set /a end_s=100%%c %% 100&set /a end_ms=100%%d %% 100
set /a hours=%end_h%-%start_h%
set /a mins=%end_m%-%start_m%
set /a secs=%end_s%-%start_s%
set /a ms=%end_ms%-%start_ms%
if %ms% lss 0 set /a secs = %secs% - 1 & set /a ms = 100%ms%
if %secs% lss 0 set /a mins = %mins% - 1 & set /a secs = 60%secs%
if %mins% lss 0 set /a hours = %hours% - 1 & set /a mins = 60%mins%
if %hours% lss 0 set /a hours = 24%hours%
if 1%ms% lss 100 set ms=0%ms%
:: Mission accomplished
set /a totalsecs = %hours%*3600 + %mins%*60 + %secs%
echo command took %hours%:%mins%:%secs%.%ms% (%totalsecs%.%ms%s total)


Resultado:



Así, para determinar los MB por segundo realizamos esta sencilla operación: Medimos el peso en la carpeta donde se han guardado los estudios, en este caso 356 MB y dividimos este valor por el tiempo total que llevó descargarlo 18.85 segundos, el total nos dará 18.88 MB / por segundo.




1 comentario:

  1. Pasos para na operación de testeado:

    1. Obertura de puerto local y aetitle local con storescp:
    storescp 104 & --aetitle STORESCP

    2. Dar de alta en el PACs de Agfa el aetitle "STORESCP" con la ip local y el puerto 104.

    3. Ver conexiones activas:
    netstat -ant | findstr 104

    4. Búsqueda de todos los estudios en el pacs:
    findscu -v --study --call "SRVAGFWFM01" --aetitle "VISORRX" --key "0008,0052=STUDY" 192.168.108.227 104

    5. Descarga de estudio en el directorio \storescp del escritorio:
    movescu -v --study --call "SRVAGFWFM01" --aetitle "STORESCP" --output-directory "C:\Users\usralma\Desktop\storescp\estudios" --key "0008,0052=STUDY" --key "0020,000D=1.2.124.113532.80.22153.16226.20191017.91050.9809773" 192.168.108.227 104

    6. Operaciones de borrado y listado
    rm -rf * (comando para borrar todo)
    ls | wx -l (comando para mostrar el numero de archivos )
    mtr -r -s 50 192.168.108.227 (comando de tracert que funcinoa en linux similar al de windows)
    /etc/ vi sysctl.conf (parametros del kernel)

    ResponderEliminar