#!/bin/bash

# exemple d'execució: 

#definim parametres:
sourceDir=$1
fixed=$2
moving=$3 
outputDir=$4
demonsType=$5
iterations=$6
mRLevels=$7
regType=$8
lesionsBasal=$9
lesions12M=${10}

#iteracions  it1xit2xit3
if (( mRLevels < 2 ));then  
itString=$6
else
iterationsMR=$(( iterations / (mRLevels) ))
itString="$iterationsMR"
for(( i=1 ; i<mRLevels  ;i=i+1 )) 
do
#echo "iteracio $i de moment $itS"

itString=$itString"x"$iterationsMR
done
fi

# Decide wheteher this is a temporal register
if [[ $regType = ATLAS || $regType = ATLASH ]]
then
	temporalRegister=false
else
	temporalRegister=true
fi

echo "********************************************************************************************************** " 
echo "* Testadort diffeom demons MR: Parametres de la prova:"
echo "* Imatge Fixa: $fixed"
echo "* Imatge Mobil: $moving"
echo "* Prefix directori s: $outputDir"
echo "* Tipus de demons: $demonsType "
echo "* iteracions: $iterations "
echo "* nivells: $mRLevels  "
echo "********************************************************************************************************** " 

echo " " 
echo "                        **************************************************************************************************** " 
echo "                                 PROVANT Registre diffeom demons "		  
echo " executo: 	$sourceDir/DemonsRegistration -f $fixed -m $moving -o outputDiffeomDemonsType$demonsType"Levels"$mRLevels.nii -O deformationField.mha  -i $itString -a $demonsType -d 0 > sDiffeomDemonsType$demonsType"Levels"$mRLevels$outputDir.txt	
	 "
echo "                        **************************************************************************************************** " 

$sourceDir/DemonsRegistration -f $fixed -m $moving -o outputDiffeomDemonsType$demonsType"Levels"$mRLevels.nii -O deformationField.mha  -i $itString -a $demonsType -d 0 > sDiffeomDemonsType$demonsType"Levels"$mRLevels$outputDir.txt	

mkdir filesDiffeomDemonsType$demonsType"Levels"$mRLevels\_$outputDir

#compute moved ground truth
if ( "$temporalRegister" -eq true ) ; then
$sourceDir/deformableWarp $lesions12M deformationField.mha deformedLesions.nii
fi

# compute difference images
$sourceDir/imageDifference $fixed outputDiffeomDemonsType$demonsType"Levels"$mRLevels.nii diffDiffeomDemonsType$demonsType"Levels"$mRLevels"After".nii
if ( "$temporalRegister" -eq true ) ; then
$sourceDir/imageDifference $fixed $moving diffDiffeomDemonsType$demonsType"Levels"$mRLevels"Before"$outputDir.nii
fi

#move dicom files
mv "diff"*.nii filesDiffeomDemonsType$demonsType"Levels"$mRLevels\_$outputDir
mv outputDiffeomDemonsType$demonsType"Levels"$mRLevels.nii filesDiffeomDemonsType$demonsType"Levels"$mRLevels\_$outputDir

#move lesion information
if ( "$temporalRegister" -eq true ) ; then
cp $lesionsBasal ./lesionsBasal.nii
cp $lesions12M ./lesions12M.nii

mv lesionsBasal.nii filesDiffeomDemonsType$demonsType"Levels"$mRLevels\_$outputDir
mv lesions12M.nii filesDiffeomDemonsType$demonsType"Levels"$mRLevels\_$outputDir
mv deformedLesions.nii filesDiffeomDemonsType$demonsType"Levels"$mRLevels\_$outputDir 
fi

#move the rest
mv *.mha filesDiffeomDemonsType$demonsType"Levels"$mRLevels\_$outputDir
mv sDiffeomDemonsType$demonsType"Levels"$mRLevels$outputDir.txt filesDiffeomDemonsType$demonsType"Levels"$mRLevels\_$outputDir

