#!/bin/bash ARGS=( "$@" ) #parse options DCMTAG="" DCMVALUE="" LINKBASE="" for ((n=0; n<${#ARGS[@]}; n++)) ; do case "${ARGS[$n]}" in --tag) let n=n+1 DCMTAG="${ARGS[$n]}" ;; --value) let n=n+1 DCMVALUE="${ARGS[$n]}" ;; --link) let n=n+1 LINKBASE="${ARGS[$n]}" ;; --version) echo "RegisterPETwithMRImatch: matchPETwithMRI.sh" echo "v20201208" exit 0 ;; --help) echo "--help show help" echo "--tag DICOM tag in JSON" echo "--value value of DICOM tag" echo "--link base name of the linked file (for NII and JSON)" echo "--version script version" exit 0 ;; esac done if [ -z "$DCMTAG" ] || [ -z "$DCMVALUE" ] || [ -z "$LINKBASE" ] ; then echo "Error: not enough parameters; use --help" >&2 exit 1 fi find . -name '*.nii*' | while read fn ; do fnj="$(echo "$fn" | sed 's/\.nii.*$/\.json/')" if grep "\"$DCMTAG\"" "$fnj" | grep -q ":.*$DCMVALUE" ; then rm -f "$LINKBASE".$EXT "$LInKBASE".json EXT=$(echo "$fn" | sed 's/^.*\.\(nii.*\)$/\1/') ln -s "$fn" "$LINKBASE.$EXT" ln -s "$fnj" "$LINKBASE.json" fi done if ! [ -e "$LINKBASE.json" ] ; then exit -1 fi