User Tools

Site Tools


neuroimagen:qc_fbb_pet

PET FBB QC interactuando con XNAT

Making of

El procesamiento de las FBB en XNAT genera una imagen para evaluar la calidad del registro de FBB a espacio MNI.

lo que necesitamos es una herramienta sencilla capaz de leer la información de XNAT, mostrar las imagenes, permitir evaluar el QC y volcar de regreso la info en XNAT.

TIMTOWTDI, pero voy a hacerlo a la old fashion con CGI.pm.

Necesito leer tres cosas por cada sujeto, experiment_ID, imagen de QA y estado del QA. Primero la lista de sujetos del proyecto, con la REST API,

curl -X GET -u "$USER:$PASSWD" "$HOST/data/projects/$PROJECT/subjects?format=json" | jq ".ResultSet.Result[].ID" | sed \'s/"/,/g\'

Ahora por cada sujeto saco el experimento PET que le corresponde,

curl -X GET -u "$USER:$PASSWD" "$HOST/data/projects/$PROJECT/subjects/$SUBJECT/experiments?xsiType=xnat:petSessionData" 2>/dev/null | jq ".ResultSet.Result[].ID" | sed \'s/"//g\'

Para este experimento obtengo el QA,

curl -X GET -u "$USER:$PASSWD" "$HOST/data/experiments/$EXPERIMENT/resources/MRI/files/mriSessionMatch.json" 2>/dev/null | jq ".ResultSet.Result[].qa"

y me bajo la imagen a un directorio temporal,

curl -X GET -u "$USER:$PASSWD" "$HOST/data/experiments/$EXPERIMENT/resources/MRI/files/$SUBJECT_fbb_mni.gif" -o $TMP_IMAGE

Todo esto lo voy metiendo en un hash y lo pongo en un formulario con la CGI. Cuando se envia el formulario tengo que crear el json con la info y luego subirlo. Pero lo que voy a hacer es bajar el json existente, cambiar el valor de QA y volverlo a subir. Algo asi,

curl -X GET -u "$USER:$PASSWD" "$HOST/data/experiments/$EXPERIMENT/resources/MRI/files/mriSessionMatch.json" 2>/dev/null

esto lo meto en una variable y le hago,

$resp =~ s/,"qa":\d,/"qa":$qcs{$xpx},/;

la escribo a un archivo temporal y la subo con,

curl -X PUT -u "$USER:$PASSWD" "$HOST/data/experiments/$EXPERIMENT/resources/MRI/files/mriSessionMatch.json?overwrite=true" -F file="@$TMP_FILE"

y ya esta!!!!! ponemos un smiley o algo. el codigo en github.

Usando esto

El output es feo y lento, pero facil de usar. Primero hay que suministrar el nombre del proyecto en XNAt y los datos de login para XNAT.

La aplicacion se conectara entonces usando la REST API y mostrara el resultado del QC que tenemos. Aqui se modifica los necesario, se le da a submit y ya esta.


Nota: no hay que ser muy exigente con el resutado del registro. Hay mucho smooth y ROIs grandes para compensar los pequeños desplazamiento. on que la cabeza este mas o menos en su sitio ya nos vale.

Bien Aceptable Mal

neuroimagen/qc_fbb_pet.txt · Last modified: 2021/10/14 08:32 by osotolongo