#!/bin/ksh
trap termhandler 2 3 9 15
. ./settings.ksh
#-------------------------------------------------------------------
# Function: fmriarch1
#
# Purpose:  Called when user clicks Capture  button from Mojoe main window.
#
#-------------------------------------------------------------------
#===================================================================
# C H A N G E   L O G
#
# BAS   04/13/04   Added 'nodel' option to signal that the user was prompted
#                  and decided to attempt capture with the existing pfile left over from
#                  a previous aborted capture.
# BAS   05/12/04   Changed b*dat to bcrvs[1-9].dat and added b_datdir2=/usr/g/caldir/
#                  in order to find bcrvs*.dat when using GE's version 10.
# BAS   06/21/04   Added code to remote-copy the tensor.dat file.
#
# KLP   11/04/04   Added routines for IDE CD-RW controller;
#	           inserted burnproof test where cdrecord is first defined;
#                  redirected all cdrecord STDERR messages not previously
#		   saved to /dev/null to prevent feedback in start-up window
#       11/24/04   Moved config transfer section to run before first pfile transfer
##
# KLP   03/27/06   make cd files from $pfilestring.tar.gz in tempp dir
# KLP   05/02/06   make cd file name for "general" logs
# KLP   06/06/06   send through kip instead of relito;
#                  reference /ansir2/fmri instead of /fmri2/fmri
#                  reference read_dcm_header in Read_header subdirectory
#                  reference monkey program in Monkey subdirectory
# KLP   06/08/06   add "general" cd tar file name for multiflag=1
# KLP   06/12/06   make CD Pfiles group writeable with: chmod -R g+w tempfolder;
#                  write tensor.dat file to config directory for CD burn                 
# KLP   06/14/06   set correct tensor.dat file dir from $configdir to $b_datdir1/;
#                  don't make tar.gz of general info, leave in CD top level dir                
#
# KLP   07/18/06   changed /ansir2/fmri references back to /fmri2/fmri
# KLP   08/29/06   added note about exiting on ftp check error
# KLP   01/12/07   ssh/scp
# KLP   01/18/07   look for CD-R, not CD-RW, in cdrecord -checkdrive response
# KLP   01/31/07   add numerous checkdrive tries before giving warning
# KLP   02/07/07   add billing info from Pfile headers in tabular format
# KLP   03/09/07   replace |& with & on all monkey_anim commands
# KLP   07/11/07   allow patient label date not TODAY if MOJOE_DATE set
# BCW   07/25/07   Permissions settings for tensor.dat
# BCW   10/08/07   Pfile sending in Capture occured while the file was still
#                  being written to.  FIX.  Issue:  the ls -s returns blocks
#                  used, not the bytes used. ALSO. pfile_graveyard
# BCW   10/09/07   added file for transfer: epiflex_psdinit.xinfo
# BCW   10/15/07   moved review.out to config directory
# BCW   12/14/07   epiflex_log/* transfer and vrgf.dat/ref.dat tranfered
#                  at the begining of the capture
# BCW   05/08/08   added a final send of the epiflex_log/* and new scanner_notes
#                  to the very end of capture
# BCW		12/17/08	 Added settings.ksh and abstracted embeded setttings
#===================================================================

# IDE CD-RW controller routines KLP 11/04/04
#-------------------------------------------------------------------
#-------------------------------------------------------------------
# when CD is blank, cdrecord command with IDE controller reports 
#    "Cannot read TOC header"
#
function ide_cd_blank {
cd_blank=0
blank=`$cdrecord dev=$cdr -toc 2>&1 | grep 'Cannot read TOC header' `
if (test ${#blank} -gt 0) then
        cd_blank=1
fi
}
#-------------------------------------------------------------------
# if and only if CD is not blank and CD is not locked,
# cdrecord command with IDE controller reports
# "first,last" track msinfo
#
function ide_cd_appendable {
track1=0
track2=0
ide_cd_blank
if (test $cd_blank -ne 1) then
	tracks=`$cdrecord dev=$cdr -msinfo 2>/dev/null`
	lines=`echo $tracks | wc -l`
	if (test $lines -eq 1) then
		comma=`echo $tracks | grep ','`;
		if (test ${#comma} -gt 0) then
			track1=`echo $tracks | tr ',' ' ' | awk '{print $1}'`
			track2=`echo $tracks | tr ',' ' ' | awk '{print $2}'`
			if (test $track2 -lt $track1) then
				track1=0
				track2=0
			fi
		fi
	fi
fi

cd_first_sector=$track1
cd_last_sector=$track2
cd_appendable=0
if (test $track1 -ge 0) then
    if (test $track2 -gt $track1) then
	cd_appendable=1
    fi
fi
}
#-------------------------------------------------------------------
#-------------------------------------------------------------------

termhandler()
{
    echo
#*******************************************************
# if acquired any pfile
# burn and email general info file
#*******************************************************
if (test $pfilecounter -gt 0) then

    echo $section_delimiter2 

    if (test $cdrarchive = 1) then
	echo Please wait while MoJoe ftps general.info file to the server and burns to CD
    else
	echo Please wait while MoJoe ftps general.info file to the server
    fi

    echo ' '
    echo "------------------------------------------------------------------------------"
    echo 'Capture Summary'
    echo

    cat $infodir$pfilelist

    echo "------------------------------------------------------------------------------"

## add for billing summary
        let billfirstline=0
        $read_pfile_biller 'csummary' $billfirstline $billexam $billheader $billdetails
##

    #script terminated, ftp General.info
    if(test $ftpflag = 1) then
	$autoftp  $remotehost $user $pass $remotedir $patient_label $infodir $mojoegeneralinfo >/dev/null 2>/dev/null
	$ftp_monkey_anim&
	#----------------------------------------------------------------------------------------------
	# Following statements added to copy/append mojoe_capture.log and fmriarch.log to the raid
	# so that multiple series that span CDs don't overwrite the same log files 3/22/04 BAS
	#----------------------------------------------------------------------------------------------
	###echo "\n" >> $logdir/$log_filename
	echo >> $logdir/$log_filename # 11-24-04 KLP
	cmd="scp $logdir/$log_filename ${user}@${remotehost}:${remotedir}/${patient_label}/log/${log_filename}.tmp"
	`$cmd`
#KLP	cmd="ssh ${remotehost} cat ${remotedir}/${patient_label}/log/${log_filename}.tmp >> ${remotedir}/${patient_label}/log/${log_filename}"
	cmd="ssh -l $user ${remotehost} cat ${remotedir}/${patient_label}/log/${log_filename}.tmp >> ${remotedir}/${patient_label}/log/${log_filename}"
	`$cmd` 
#KLP	ssh ${remotehost} rm -f ${remotedir}/${patient_label}/log/${log_filename}.tmp
	ssh  -l $user ${remotehost} rm -f ${remotedir}/${patient_label}/log/${log_filename}.tmp
	cmd="scp ${logdir}/$log_mojoe ${user}@${remotehost}:${remotedir}/${patient_label}/log/${log_mojoe}.tmp"
	`$cmd`
#KLP	cmd="ssh ${remotehost} cat ${remotedir}/${patient_label}/log/${log_mojoe}.tmp >> ${remotedir}/${patient_label}/log/${log_mojoe}"
	cmd="ssh -l $user ${remotehost} cat ${remotedir}/${patient_label}/log/${log_mojoe}.tmp >> ${remotedir}/${patient_label}/log/${log_mojoe}"
	`$cmd`
#KLP	ssh ${remotehost} rm -f ${remotedir}/${patient_label}/log/${log_mojoe}.tmp
	ssh -l $user ${remotehost} rm -f ${remotedir}/${patient_label}/log/${log_mojoe}.tmp
	#--------------------------
	#End of 3/22/04 BAS changes
	#--------------------------

	if (test ${#destemail} -gt 0) then
	    # email general info file
	    echo `ssh -l $sshuser $sshserver $fmri_dir/email_notification $remotedir/$patient_label/$mojoegeneralinfo mojoe_capture $destemail 2 >/dev/null`
	    # email capture log
	    #echo `ssh -l $sshuser $sshserver email_notification $remotedir/$patient_label/log/$log_mojoe mojoe_capture $destemail 2 > /dev/null`
	fi
    fi

    #script terminated, burn General.info to CD
    if (test $cdrarchive = 1) then
	mkdir $tempfolder
	mkdir $tempfoldercd  # KLP 3-27-06
	mkdir $tempfolder/log
	cp $infodir$mojoegeneralinfo $tempfolder/.
### 12-08-04 KLP
	if [[ -a $mojoe_dir/README ]]; then
		cp $mojoe_dir/README $tempfolder/.
	fi
###
	cp $infodir$mojoegeneralinfo $tempfolder/.
	cp $logdir/$log_mojoe $tempfolder/log/.
	cp $logdir/$log_filename $tempfolder/log/.
	echo 'Burning mojoe_general.info'
	echo "Generating CD image file..."
		error_counter=0
		if (test $multiflag = 0) then
		    #$mkisofs -o $cdimage  $isoflags $rawdir/$allpfiles >> $quiet 2>>$quiet
		    $mkisofs -o $cdimage  $isoflags $tempfolder >> $quiet 2>>$quiet
## KLP 3-27-06
## KLP 6-14-06 -- NO! don't make a gzip tar for the GENERAL info.
#                   tarname=$tempfoldercd/general.tar
#                   tar cvf $tarname -C $tempfolder . >/dev/null 2>/dev/null
#                   gzip $tarname >/dev/null 2>/dev/null
#		    $mkisofs -o $cdimage  $isoflags $tempfoldercd >> $quiet 2>>$quiet
##
		else
		    while true
		    do
			let error_counter=error_counter+1
			echo '' >> $quiet
			echo "CDR error recovery loop "$error_counter" activated" >> $quiet
###
# KLP 11-04-04 IDE gives extra msinfo
###
			###reply=`$cdrecord dev=$cdr -msinfo` 
			###echo $reply >>$quiet 2>>$quiet
			###startsector=`echo $reply | $tr ',' ' ' | $awk '{print $1}'`
			###if (test $startsector -ge $lastsector 2>>$quiet ) then
			    ###break 
			ide_cd_appendable
			echo "appendable = $cd_appendable ... msinfo ($startsector,$endsector)" >> $quiet
			if (test $cd_appendable -eq 1) then
				startsector=$cd_first_sector
				endsector=$cd_last_sector
			else
				startsector=0
				endsector=0
			fi
			if (test $cd_appendable -eq 1 && test $startsector -ge $lastsector) then
			    break 
###
			else 
			    echo 'Bad msinfo read from Cdrecord'
			    countdown=max_error_loop - error_counter + 1
			    echo 'Retry count down ' $countdown
			    echo 'Retrying...DO NOT KILL ME...'
			    echo 'Bad msinfo read from Cdrecord...will retry...Do not Kill me ...' >> $quiet 
			    echo "Resetting CD Mechanism..."
			    echo
			    reply=`$cdrecord dev=$cdr -reset 2>/dev/null`
			    echo $reply >> $quiet
			    reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
			    echo $reply >> $quiet
			    reply=`$cdrecord dev=$cdr -load 2>/dev/null`
			    echo $reply >> $quiet
			    if (test $ftpflag = 1) then
				$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_filename >/dev/null 2>/dev/null
				$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_mojoe >/dev/null 2>/dev/null
			    fi
			fi

			if (test $error_counter -ge $max_error_loop 2>>$quiet ) then
			    #cdrarchive=0
			    echo 'Unable to recover from CD error'
			    echo "CDR write error, data not saved to CD!!!!! "
			    echo "raw file "$pfile" renamed to "$pfilen" may be corrupted on CD"
			    echo "FTP will continue"
			    echo 'Unable to recover from CD error' >> $quiet
			    echo "raw file "$pfile" renamed to "$pfilen" may be corrupted on CD" >> $quiet
			    echo "FTP will continue"  >> $quiet
			    if (test $ftpflag = 1) then
				$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_filename >/dev/null 2>/dev/null
				$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_mojoe >/dev/null 2>/dev/null
			    fi
			    break
			fi
		    done
		    ###endsector=`echo $reply | $tr ',' ' ' | $awk '{print $2}'` # KLP 11-04-04 IDE gets value above
		    lastsector=$endsector
		    echo startsector $startsector   endsector $endsector >>$quiet 2>> $quiet
		    #$cdrecord dev=$cdr -msinfo
		    #$mkisofs -o $cdimage $isoflags -C $startsector,$endsector -M $cdr $rawdir/$allpfiles >>$quiet 2>>$quiet
		    $mkisofs -o $cdimage $isoflags -C $startsector,$endsector -M $cdr $tempfolder >>$quiet 2>>$quiet
## KLP 3-27-06
## KLP 6-14-06 -- NO! don't make a gzip tar for the GENERAL info.
#                   tarname=$tempfoldercd/general.tar
#                   tar cvf $tarname -C $tempfolder . >/dev/null 2>/dev/null
#                   gzip $tarname >/dev/null 2>/dev/null
# 		    $mkisofs -o $cdimage $isoflags -C $startsector,$endsector -M $cdr $tempfoldercd >>$quiet 2>>$quiet
##
		fi      
		echo "cdr command is $cdrecord dev=$cdr -v $driveropts $dummy -multi speed=$cdr_speed $cdimage" >>$quiet 
		echo "Burning CD..."
		end_time2=$SECONDS
		let elapsed2=end_time2-start_time

		echo '' >> $quiet
		echo '**********************************' >> $quiet
		echo elapsed time $elapsed seconds and $elapsed2 since last burn >> $quiet
		echo '**********************************' >> $quiet
		echo '' >> $quiet

		if ($cdrecord dev=$cdr -v $driveropts $dummy -multi speed=$cdr_speed $cdimage >>$quiet 2>>$quiet) then
		    start_time=$SECONDS
		    echo "CD Burn successful"
		    echo "CD Burn successful"  >>$quiet
		    $cdburn_monkey_anim 1&
		else
		    start_time=$SECONDS
		    #beep
		    echo "***********************************************************************"
		    echo "CDR write error, data not saved to CD!!!!! "
		    echo "BUT DO NOT KILL ME!"
		    echo "CD Archiving will continue for subsequent Runs"
		    echo "***********************************************************************"
		    echo
		    echo "***********************************************************************"  >>$quiet
		    echo "CDR write error, data not saved to CD!!!!! "  >>$quiet
		    echo "CD Archiving will continue for subsequent Runs"  >>$quiet
		    echo "***********************************************************************"  >>$quiet
		    #beep
		fi
		echo '###################################################' >> $quiet
		echo '###################################################' >> $quiet
		rm $cdimage
		rm -rf $tempfolder
		rm -rf $tempfoldercd  # KLP 3-27-06
    fi

    echo $section_delimiter3

    #
    # 2008-05-08 Final cleanup of epiflex_logs and scanner_notes dir.  Based on code aroun line 1390
    #
    pfilestring="P99999"  #Default P for end session.
    
    if [[ -a $rawdir/epiflex_logs ]]; then
#     echo " In FINAL epiflex_logs send"
      epi_logs="$rawdir/epi_logs_list.$$$"
      ls -1 $rawdir/epiflex_logs > $epi_logs
      while read fileNameOrg; do
        if [[ ! -d $rawdir/epiflex_logs/$fileNameOrg ]]; then 
          fileName="$rawdir/epiflex_logs/$patname.$daten.$pfilestring.$fileNameOrg"
          fileNameOrg="$rawdir/epiflex_logs/$fileNameOrg"            
          mv $fileNameOrg $fileName
          echo "scp initiated for $fileName"
          scp $fileName ${user}@${remotehost}:${remotedir}/${patient_label}/ 2>/dev/null
          if [[ $? -eq 0 ]]; then
            rm $fileName
          fi
        fi
      done < $epi_logs
      rm $epi_logs
    fi
    
    if [[ -a $rawdir/scanner_notes ]]; then
#     echo " In scanner_notes send"
      scanner_notes="$rawdir/scanner_notes_list.$$$"
      ls -1 $rawdir/scanner_notes > $scanner_notes
      if [[ -s $scanner_notes ]]; then
        ssh $remotehost -l $user "mkdir -p $remotedir/$patient_label/scanner_notes" >/dev/null 2>/dev/null
      fi
      while read fileNameOrg; do
        if [[ ! -d $rawdir/scanner_notes/$fileNameOrg ]]; then 
          fileName="$rawdir/scanner_notes/$fileNameOrg"
          echo "scp initiated for $fileName"
          scp $fileName ${user}@${remotehost}:${remotedir}/${patient_label}/scanner_notes/ 2>/dev/null
          if [[ $? -eq 0 ]]; then
            rm $fileName
          fi
        fi
      done < $scanner_notes
      rm $scanner_notes
    fi

    echo $section_delimiter3

    echo " "
    echo "*** All Done. You may now close the capture window ***"
    echo "*** All Done. You may now close the capture window ***" >>$quiet


fi

    exit 1
}

#
#-------------------------------------------------------------------
#command arguments retrievment
#felix add for retrieve command line arguments
#usage: fmriarch1 -D[path] -L[label] nocd noftp
#       path store in destpath
#       label stroe in destlabel
#example: fmriarch1 -D/raid/neuro/clincal -L/patient101 nocd
#-------------------------------------------------------------------
Dflag=
Lflag=
Mflag=

#------------------------
#cdr_controller=1
#cdr_scsi_id=6
#cdr_target=0
#------------------------
Cval=1
Ival=6
Tval=0
nodel=0   #BAS 4/13/04

   while getopts R:D:L:M:C: name
   do
     case $name in
       R) Rflag=1
       	  Rval="$OPTARG";;
       D) Dflag=1
       	  Dval="$OPTARG";;
       L) Lflag=1
          Lval="$OPTARG";;
       M) Mflag=1
	  Mval="$OPTARG";;
       C) Cflag=1
       	  cdline="$OPTARG"
 	  cdline=`echo $cdline | 	tr ',' ' '`
	  Cval=`echo $cdline | awk '{print $1}' `
          Ival=`echo $cdline | awk '{print $2}' `	
          Tval=`echo $cdline | awk '{print $3}' `;;    

       ?) printf "Usage: %s: [-D path] [-L label] args\n" $0
          exit 2;;
     esac
   done
destpath=$Dval
destlabel=$Lval    
destemail=$Mval

cdr_controller=$Cval
cdr_scsi_id=$Ival
cdr_target=$Tval

if (test ${#destpath} -eq 0) then
    gui=0
else
    gui=1
    echo $destpath
    echo $destlabel
    awk=`echo awk`

    #------------------------------------------
    #Check the ftp option
    #------------------------------------------
    noftp=`echo $@ | $awk '/noftp/{print}' `
    if (test ${#noftp} -eq 0) then echo 'ftp'; else echo 'noftp'; fi

    #------------------------------------------
    #Check the CD option
    #------------------------------------------
    nocdwrite=`echo $@ | $awk '/nocd/{print}' `
    if (test ${#nocdwrite} -eq 0) then echo 'cd ('$cdr_controller','$cdr_scsi_id','$cdr_target')'; else echo 'nocd ('$cdr_controller','$cdr_scsi_id','$cdr_target')' ; fi
    echo $destemail
fi

   shift `expr $OPTIND - 1`
#end of felix add---------------------------------------------------


echo
echo "*************************************************************************"
echo "      FMRIARCH: The WFU functional MRI rawdata archiving utility"
echo
echo "     Saves fmri rawdata to DAT tape and/or CDR and removes it from the system"
echo "     Will also autoftp to remote host and initiate recon via idlx"
echo "                Courtesy of J. Maldjian                           "
echo "*************************************************************************"
echo
#-------------------------------------------------------------------------------
#fmriarch [-in]
# i - interactive flag for setting remotehost, user, password, and idlhost, idluser
# notape - turn off tapewrite
# nocd - turn off cd write
# noftp - turn off ftp
# all - write to all devices found (CD and Tape)
# append to write to a written CD
#Note:  if you want to adapt this for use on Solaris/Sun systems, use /bin/ksh 
#-------------------------------------------------------------------------------

#--------------------
#Notes to me
#mkisofs -V "CDLABEL"
#Sense Code: 0x24 Qual 0x00 (invalid field in cdb) Fru 0x0
#means CD is full
#--------------------

#-------------------------------------------
#Begin User edit Section
#-------------------------------------------
#--------------------------------------------------
#autoftp and autorecon settings
#Edit the ftp_check file for site specific settings
#regarding remote host and ftp directories
#--------------------------------------------------
ftpflag=1
reconflag=1



#--------------------------------------------------
#CD-R settings
#To turn off CDR archiving, set cdrflag=0
#--------------------------------------------------
cdrflag=1
cdr_speed=16

#cdr_controller=1   # This is now set through the command line options
#cdr_scsi_id=6      # This is now set through the command line options
#cdr_target=0       # This is now set through the command line options

burnproof=1
hinvdetect=0

#-------------------------------------------
#End User Edit Section
#-------------------------------------------

#******************************************
#DO NOT EDIT BELOW THIS LINE
#******************************************

#-------------------------------------------------------------
#tapearchive flag
#No need to edit this line since we are now
#using hardware autodetection to test if there is a tape device
#--------------------------------------------------------------
tapearchive=0

#---------------------------
#CD error recovery loop
#---------------------------
max_error_loop=3

#--------------------------------------------------
#Configuration Settings and Checkking
#--------------------------------------------------
mojoe_dir=$MOJOE_DIR
if (test ${#mojoe_dir} -lt 1)
    then
    mojoe_dir=$HOME/mojoe
fi

if [[ ${#fmri_dir} -eq 0 ]]; then
	fmri_dir=/fmri2/fmri
fi

if [[ ${#bin_dir} -eq 0 ]]; then
	bin_dir=/raid/neuro/bin
fi

if [[ ${#ref_dir} -eq 0 ]]; then
	ref_dir=/fmri2/fmri/ref_functions
fi

if [[ ${#sshserver} -eq 0 ]]; then
	sshserver=152.11.158.50
fi

if [[ ${#sshuser} -eq 0 ]]; then
	sshuser=fmri
fi



#-------------------------------------------------------------
#executable definitions
#--------------------------------------------------------------
cdr_dir=$mojoe_dir/CDRECORD
autoftp=$mojoe_dir/autoftp
imenu=$mojoe_dir/imenu
remote_launch=$mojoe_dir/remote_launch
ftp_check=$mojoe_dir/ftp_check1
read_pfile_header=$mojoe_dir/Read_header/read_pfile_header
read_pfile_biller=$mojoe_dir/gui/read_pfile_biller
pfileexamno=$mojoe_dir/pfileexamno
#get_paradigm=$mojoe_dir/get_paradigm

section_delimiter1="********************************************************************"
section_delimiter2=">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
section_delimiter3="<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"

#-------------------------------------
#monkey
#-------------------------------------
ftp_monkey_anim=$mojoe_dir/Monkey/monkey
cdburn_monkey_anim=$mojoe_dir/Monkey/monkey

#--------------------------------------
#Info file directory
#--------------------------------------
infodir=$mojoe_dir/info/
pfilelist=pfilelist.info
#--------------------------------------
#Raw file directory
#and Pfile search definitions
#--------------------------------------
#rawdir=/usr/g/mrraw
rawdir=$MOJOE_RAW
if (test ${#rawdir} -lt 1)
    then
    rawdir=/usr/g/mrraw
fi
#CDtemp=/export/home1/mojoe/CDbackup 
imagedir=$MOJOE_TEMP
if (test ${#imagedir} -lt 1)
    then
    imagedir=/export/home1/mojoe
fi
CDtemp=$imagedir/CDbackup 
#label=`date '+%m_%d_%y'`
label=$MOJOE_DATE
if (test ${#label} -lt 1)
    then
    label=`date '+%m_%d_%y'`
fi
rawfilefilt=$rawdir/"P?????.7"
#vrgffilefilt=/usr/g/bin/vrgf.dat
#reffilefilt=/usr/g/bin/ref.dat
linkfilt=$rawdir/"[0-9]*"

#--------------------------------------
# Config file directory
# b*.dat file directory
# Modified by Pin Xie on 7/31/2002
#--------------------------------------
#configdir=/w/config/
configdir=$MOJOE_CONFIG
if (test ${#configdir} -lt 1)
    then
    configdir=/w/config/
fi
#b_datdir1=/usr/g/bin
b_datdir1=$MOJOE_DATDIR1
if (test ${#b_datdir1} -lt 1)
    then
    b_datdir1=/usr/g/bin
fi
#b_datdir2=/usr/g/caldir
b_datdir2=$MOJOE_DATDIR2
if (test ${#b_datdir2} -lt 1)
    then
    b_datdir2=/usr/g/caldir
fi
Gconf_name=GradientConfig.cfg
Tensorf_name=tensor.dat
Mconf_name=MRconfig.cfg
whatRev_name=whatRev_fmriarch

vrgffilefilt=$b_datdir1/vrgf.dat
reffilefilt=$b_datdir1/ref.dat
xinfofilefilt=$rawdir/epiflex_psdinit.xinfo # BCW 2007-10-09

#--------------------------------------------------
#CD-R settings
#Hardware autodetect in effect for CDR
#--------------------------------------------------
cdr=`echo $cdr_controller,$cdr_scsi_id,$cdr_target`
##isoflags=`echo -pad -R -l -L -allow-multidot -allow-lowercase `
isoflags=`echo -R -l -L -allow-multidot -allow-lowercase `
#isoflags=`echo -joliet -R -V "MoJoe" -l -L -allow-multidot -allow-lowercase `
###if (test $burnproof = 1) then driveropts=`echo driveropts=burnproof` ; else driveropts=''; fi # KLP 11-04-04

cdejectflag=1
cdrarchive=1
cdrecord=$cdr_dir/cdrecord
mkisofs=$cdr_dir/mkisofs

### KLP 11-04-04 burnproof test must be inserted here after cdrecord path is set
if (test $burnproof = 1) then
    burntest=`$cdrecord dev=$cdr -prcap 2>/dev/null | grep "Does support BURN-Proof"`
    if (test ${#burntest} -eq 0) then burnproof=0; fi
    fi
if (test $burnproof = 1) then driveropts=`echo driveropts=burnproof` ; else driveropts=''; fi
###

#-------------------------------------------
#LX tape and blocking factor definitions
#-------------------------------------------
tapedev=/dev/nrtape
bf=512
tr=`echo tr`
awk=`echo awk`

#--------------------------------------------------
#If this is a remote login, disable tape and CD writing
#-------------------------------------------------
if (test $gui = 0) then
    if (test $REMOTEHOST) then 
	tapearchive=0 
	cdrflag=0
    fi
fi

#--------------------------------------------------
#Check if we are debugging remotely
#-------------------------------------------------
remoteburn=`echo $@ | $awk '/remoteburn/{print}' `
if (test ${#remoteburn} -gt 0) 
then 
    tapearchive=1 
    cdrflag=1
fi

#------------------------------------------
#Check if this is a 5X system
#------------------------------------------
OS=`uname`
lxflag=1
if (test $OS = SunOS) then
    tapedev=/dev/nrst8
    bf=96
    echo SunOS detected
    tr=`echo /usr/xpg4/bin/tr`
    awk=`echo /usr/xpg4/bin/awk`
    lxflag=0
fi

#------------------------------------------
#Check the autoftp connection
#------------------------------------------
noftp=`echo $@ | $awk '/noftp/{print}' `
if (test ${#noftp} -eq 0) then noftp=0; else ftpflag=0; fi


#-------------------------
#Initialize logfile
#-------------------------
logdir=$mojoe_dir
log_filename=fmriarch.log
log_mojoe=mojoe_capture.log
logfile=$logdir/$log_filename
echo 'logfile for fmriarch' > $logfile
echo `date` >> $logfile

#-------------------------
#sequence service log
#-------------------------
#servicedir=/usr/g/service/log
servicedir=$MOJOE_SERVICE
if (test ${#servicedir} -lt 1)
    then
    servicedir=/usr/g/service/log
fi
servicelog=review.out
newservicelog=review.out_fmriarch

#-------------------------
#protocols info
#-------------------------
#protocolsdir=/usr/g/protocols/site
protocols_filename=protocols_site.tar
#protocols_top=/usr/g
protocols_top=$MOJOE_PROTOCOLS_TOP
if (test ${#protocols_top} -lt 1)
    then
    protocols_top=/usr/g
fi
protocolsdir=$protocols_top/protocols/site
#-------------------------
#General.info (pfile note)
#-------------------------
mojoegeneralinfo=mojoe_general.sinfo
generalinfo=general.info


debugflag=`echo $@ | $awk '/debug/{print}' `

if (test ${#debugflag} -eq 0) then debugflag=0; else debugflag=1; fi
if (test $debugflag = 1) then quiet=''; else quiet=$logfile; fi

if (test $ftpflag = 1) then
    if (test ${#destpath} -eq 0) then
        $ftp_check w
    else
        $ftp_check -R$Rval -D$destpath -L$destlabel -m w
    fi
    reply=`cat $mojoe_dir/secretpassword`
    rm $mojoe_dir/secretpassword
    ftpflag=`echo $reply | $awk '{print $2}' `
    error_code=`echo $reply | $awk '{print $3}'`
    remotehost=`echo $reply | $awk '{print $4}'`
    remotehostname=`echo $reply | $awk '{print $5}'`
    user=`echo $reply | $awk '{print $6}'`
    pass=`echo $reply | $awk '{print $7}'`
    remotedir=`echo $reply | $awk '{print $8}'`
    avail=`echo $reply | $awk '{print $9}'`
    idlhostname=`echo $reply | $awk '{print $10}'`
    idlhost=`echo $reply | $awk '{print $11}'`
    idluser=`echo $reply | $awk '{print $12}'`
    if (test $ftpflag = 0) then
	if (test $gui = 0) then
	    echo
	    echo
	    echo "#######################################################################"
	    echo "ERROR ERROR ERROR !!!!!!!!!!!!!!!!"
	    echo "ftp_check failed  !!!!!!!!!!!!!!!!"
	    echo "Check if directory $remotedir exists on $remotehostname ($remotehost)"    
	    echo "If network is down, you can disable autoftp feature using:"
	    echo "fmriarch -noftp"
	    echo "Exiting fmriarch"
	    echo "#######################################################################"
	    echo
	    echo
	else
	    echo
	    echo
	    echo "#######################################################################"
	    echo "ERROR ERROR ERROR !!!!!!!!!!!!!!!!"
	    echo "ftp_check failed  !!!!!!!!!!!!!!!!"
	    echo "Check if directory $remotedir exists on $remotehostname ($remotehost)"    
#	    echo "If network is down, you can disable ftp feature by unckeck the FTP option"
	    echo "If network is down, disable ftp feature by un-checking the FTP option"
       	    echo "Exiting fmriarch ..."
	    echo "#######################################################################"
	    echo
	    echo "Click Done/Yes/Close to return to MoJoe menu"
	    echo
	fi
        exit
    fi
fi

#-------------------------------------------------------------------
#TAPE HARDWARE AUTODETECTION
#-------------------------------------------------------------------
# if called by mojoe, skip tape detection

if (test $lxflag = 1) then
    if (mt -f $tapedev status >/dev/null 2>/dev/null) then 
	echo DAT Tape device detected
    else 
#        echo No DAT Tape device detected
        tapearchive=0
    fi
fi
#-------------------------------------------------------------------
#CDR HARDWARE AUTODETECTION
#-------------------------------------------------------------------
nocdwrite=`echo $@ | $awk '/nocd/{print}' `
if (test ${#nocdwrite} -eq 0) then nocdwrite=0; else cdrflag=0; fi

#-------------------------------------------------------------------
#if called by mojoe skip cdr  detection
#-------------------------------------------------------------------
if (test $gui = 0) then
if (test $hinvdetect = 0) then
    ncd=`$cdrecord -scanbus 2>>$quiet | grep -c CD-ROM`
    if (test $ncd -gt 0) then 
	echo CDR device detected
        cdloop=0
        while true
        do
	    let cdloop=cdloop+1
            if (test $cdloop -gt $ncd) then
		echo "No valid CDR device detected"
                cdrarchive=0 
                break
            fi
            cdrarchive=1
            cdline=`$cdrecord -scanbus 2>>$quiet | grep CD-ROM | $awk '{print $1}' | head -n $cdloop | tail -1`
            #valid_cdr=`$cdrecord dev=$cdline -checkdrive 2>/dev/null | grep "mmc CD-RW"`
            valid_cdr=`$cdrecord dev=$cdline -checkdrive 2>/dev/null | grep "mmc CD-R"`
            if (test ${#valid_cdr} -gt 0) then
		cdline1=$cdline
                cdline=`echo $cdline |  tr ',' ' '`
                s_controller=`echo $cdline | $awk '{print $1}' `
                s_id=`echo $cdline | $awk '{print $2}' `        
                s_target=`echo $cdline | $awk '{print $3}' `
                cdrarchive=1
                if (test $burnproof = 1) then
		    burntest=`$cdrecord dev=$cdline1 -prcap 2>/dev/null | grep "Does support BURN-Proof"`
                    #burntest=`$cdrecord dev=$cdline driveropts=help -checkdrive 2>$HOME/crap2; cat $HOME/crap2; unalias rm; rm $HOME/crap2`
		    #burntest=`echo $burntest| grep burnproof`
                    echo $burntest
                    if (test ${#burntest} -eq 0) then burnproof=0; fi
                fi
                break
            fi
        done
        if (test $cdrarchive = 1) then                    
	    scsi_string=`echo $cdr_controller,$cdr_scsi_id,$cdr_target` 
	    test_cdr=`echo $cdline1 | grep "$scsi_string" `
	    if (test ${#test_cdr} -eq 0) then 
		echo
		echo "------------------------------------------------------------"
		echo "Your supplied CDR controller:$cdr_controller scsi_id:$cdr_scsi_id and target:$cdr_target do not exist!"
		echo "Should I use the detected values of controller:$s_controller scsi_id:$s_id target:$s_target? (y/n)"
		read fix_cdr
		echo "------------------------------------------------------------"
		case "$fix_cdr" in
	        [yY*])
		    cdr_controller=$s_controller
		    cdr_scsi_id=$s_id
		    cdr_target=$s_target
		    cdr=`echo $cdr_controller,$cdr_scsi_id,$cdr_target`     
		    break;;
		*)
		    echo cd archiving off
		    cdrarchive=0;;
		esac
	    fi
        fi
    else 
        echo No CDR device detected
        cdrarchive=0
    fi
fi

if (test $hinvdetect = 1) then
    ncd=`hinv | grep -c CDROM`
    if (test $ncd -gt 1) then 
	echo CDR device detected
        cdrarchive=1
        cdline=`hinv | grep CDROM | tail -1`
        s_controller=`echo $cdline | $awk '{print $7}' `
        s_id=`echo $cdline | $awk '{print $3}' `        
        controller_string=`echo controller $cdr_controller`
        scsi_id_string=`echo unit $cdr_scsi_id`
        test_cdr=`hinv | grep CDROM | grep "$scsi_id_string" | grep "$controller_string" `
        if (test $cdrflag = 1) then
	    if (test ${#test_cdr} -eq 0) then 
		echo
                echo "------------------------------------------------------------"
                echo "Your supplied CDR controller:$cdr_controller and scsi_id:$cdr_scsi_id do not exist!"
                #echo $cdline
                echo "Should I use the detected values of controller:$s_controller and scsi_id:$s_id ? (y/n)"
                read fix_cdr
                echo "------------------------------------------------------------"
                case "$fix_cdr" in
                [yY*])
		    cdr_controller=$s_controller 
                    cdr_scsi_id=$s_id
                    cdr=`echo $cdr_controller,$cdr_scsi_id,$cdr_target`     
                    break;;
                *)
                    echo cd archiving off
                    cdrarchive=0;;
                esac
            fi
        fi
    else 
        echo No CDR device detected
        cdrarchive=0
    fi
fi
fi
#---------------------------------------------------------------------------
#end of cdr detection section
#---------------------------------------------------------------------------

if (test $cdrflag = 0) then cdrarchive=0; fi

#-------------------------------------------------------------------
#CDR LOOP
#-------------------------------------------------------------------
nocdwrite=`echo $@ | $awk '/nocd/{print}' `
if (test ${#nocdwrite} -eq 0) then nocdwrite=0; else cdrarchive=0; fi

alldevices=`echo $@ | $awk '/all/{print}' `
if (test ${#alldevices} -eq 0) then alldevices=0; else alldevices=1; fi

#-------------------------------------------------------------------
#CDR Append
#-------------------------------------------------------------------
append=`echo $@ | $awk '/append/{print}' `
if (test ${#append} -eq 0) then append=0; else append=1; fi

#------------------------------------------
#Check for dummy CD write
#------------------------------------------
dummyflag=`echo $@ | $awk '/dummy/{print}' `
if (test ${#dummyflag} -eq 0) then dummyflag=0; else dummyflag=1; fi

newcdr=1
#if ((test $cdrarchive = 1) & (test $gui = 0)) then
if (test cdrarchive = 1 && test gui = 0) then  # KLP 10-27-04 
    reply=`$cdrecord dev=$cdr -reset 2>/dev/null`
    reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
    while true
    do
	if (test $alldevices = 0) then tapearchive=0; fi;
        echo
        echo "Please make sure a new CD is in the drive"
        echo -n "Hit Return when ready or control C to abort  "
        read dummy
        echo
        #echo "cdrecord command is $cdrecord dev=$cdr -msinfo>/dev/null 2>&1"
        #if ($cdrecord dev=$cdr -msinfo> /dev/null 2>&1)
        echo "Checking for CD..."
###
# KLP 11-04-04 IDE toc always returns text response
###     
	###if ($cdrecord dev=$cdr -toc> /dev/null 2>&1) then 
	#valid_cdr=`$cdrecord dev=$cdr -checkdrive 2>/dev/null | grep "mmc CD-RW"`
	#valid_cdr=`$cdrecord dev=$cdr -checkdrive 2>/dev/null | grep "mmc CD-R"`
###
	###valid_cdr=`$cdrecord dev=$cdr -checkdrive 2>/dev/null | grep "mmc CD-R"`
	let max_valid_cdr=25
	let n_valid_cdr=0
	while (test $n_valid_cdr -lt $max_valid_cdr) do
	    valid_cdr=`$cdrecord dev=$cdr -checkdrive 2>/dev/null | grep "mmc CD-R"`
	    if (test ${#valid_cdr} -gt 0) then
		break;
	    fi
	let n_valid_cdr=n_valid_cdr+1
	done
###
	if (test ${#valid_cdr} -gt 0) then
###
            #reply=`$cdrecord dev=$cdr -msinfo 2>&1 | grep 'Sense Key' `
            k=`$cdrecord dev=$cdr -atip 2>/dev/null | grep "writing power" | $awk '{print $4}'`
            let k=k-1
            let max_speed=k*4
            echo "maximum CD write speed for this disk is $max_speed x"
	    if (test $cdr_speed -gt $max_speed) then cdr_speed=$max_speed; fi
###
# KLP 11-04-04 IDE returns unhelpful track response
###
	    ###reply=`$cdrecord dev=$cdr -toc 2>&1 | grep 'track' `
            ###if (test ${#reply} -eq 0) then
            ide_cd_blank
            if (test $cd_blank -eq 1) then
###
	        newcdr=1
                break
            else
                newcdr=0
                echo "Checking CD write status...."
###
# KLP 11-04-04 IDE cannot give sense key
###
                ###reply=`$cdrecord dev=$cdr -msinfo 2>&1 | grep 'Sense Key' ` 
                ###if (test ${#reply} -gt 0) then
		ide_cd_appendable
		if (test $cd_appendable -eq 0) then
###
		    echo ""
		    echo "------------------------------------------------------------"
		    echo " This CD has been closed and cannot be written to"
		    echo " Please insert a new CD"
		    echo "------------------------------------------------------------"       
		    echo ""
		    reply=`$cdrecord dev=$cdr -eject 2>/dev/null`       
                else
                    echo "------------------------------------------------------------"
                    echo " This CD has been written to"
                    echo " Please insert a new CD"
                    if (test $append = 1) then
		        echo " Data will be appended to it"
                        echo "------------------------------------------------------------"
                        break
                    else 
			echo " Please insert a new CD"
                        echo "------------------------------------------------------------"
		        reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
                    fi
                fi
            fi 
        else
       	    echo ""
       	    echo " Something is wrong with the drive, try again "
       	    echo " If you do not want to archive to cd, try:  fmriarch nocd"
     	    echo ""
        fi
    done
fi

#------------------------------------------------------------------

#----------------------
#Test Burn
#----------------------
dummyburn ()  {

    reply=`$cdrecord dev=$cdr -reset 2>/dev/null`
    reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
    reply=`$cdrecord dev=$cdr -load 2>/dev/null`

    if (test $cdrarchive = 1) then
	echo "Performing Dummy burn to re-initialize CD and SCSI..."
        dummy=`echo -dummy -nofix `
        reply=`date`

        openfile=$mojoe_dir/opencd_stamp
        openfile=$cdr_dir/testburnfile

        #echo CD opened on $reply > $openfile
        isofile=testburnfile.iso
        cdimage=$mojoe_dir/$isofile  

        #reply=`$cdrecord dev=$cdr -msinfo`
        #startsector=`echo $reply | tr ',' ' ' | $awk '{print $1}'`
        #endsector=`echo $reply | tr ',' ' ' | $awk '{print $2}'`
        #$mkisofs -o $cdimage $isoflags -C $startsector,$endsector -M $cdr $openfile         

        $mkisofs -o $cdimage  $isoflags $openfile >> $quiet 2>> $quiet
        #echo "cdr command is $cdrecord dev=$cdr -v $driveropts speed=$cdr_speed $cdimage"
        #if ($cdrecord dev=$cdr -v $dummy -multi $driveropts speed=$cdr_speed $cdimage)
        while true
        do
	    start_time=$SECONDS
            if ($cdrecord dev=$cdr -v $dummy  $driveropts speed=$cdr_speed $cdimage >> $quiet 2>> $quiet) then
		echo 
                echo '#########################################'        
                echo "Dummy Burn Successful...CD SCSI connection re-initialized"
                echo '#########################################'
                echo
                #rm $openfile
                rm $cdimage
                break
            else
                #beep
                echo
		echo "CDR write error during dummyburn!!!!! "
		echo "Will attempt to recover...DO NOT KILL ME"
                echo '  ' >> $quiet
                echo '#########################################' >> $quiet
                echo 'CDR write error during dummyburn...will retry...Do not Kill me ...' >> $quiet
                echo '#########################################' >> $quiet
                echo '  ' >> $quiet
                echo "Resetting CD Mechanism..."
                reply=`$cdrecord dev=$cdr -reset 2>/dev/null`
                reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
		reply=`$cdrecord dev=$cdr -load 2>/dev/null`
                echo
	        #beep
                #break
            fi
        done
        end_time=$SECONDS
        let elapsed=end_time-start_time
        #echo $elapsed
        if (test $elapsed -gt 60) then
	    echo "Dummy Burn took too long"
            echo "Your CD may be corrupted"
            echo "Please check the CD..."
            reply=`$cdrecord dev=$cdr -reset 2>/dev/null`
            reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
            echo "Enter any key when ready..."
            read reply
        else
            if (test $cdejectflag = 1) then
		echo "Resetting CD Mechanism..."
                echo
                reply=`$cdrecord dev=$cdr -reset 2>/dev/null`
                reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
		reply=`$cdrecord dev=$cdr -load 2>/dev/null`
            fi
	fi
    fi

}


mkisofs_loop  ()  {
	successful_mkisofs=0
	mkisofs_counter=0	
	while (test $successful_mkisofs -eq 0) 
	do
		let mkisofs_counter=mkisofs_counter+1
#### KLP 3-27-06
##		if (test $multiflag = 0) then
##			$mkisofs -o $cdimage  $isoflags $tempfoldercd >> $quiet 2>>$quiet
##			else
##			$mkisofs -o $cdimage $isoflags -C $startsector,$endsector -M $cdr $tempfoldercd >>$quiet 2>>$quiet
##		fi
##
####
                pnum=`echo $pfilecounter | awk '{printf("%04d", $1)}'`
                tarname=$tempfoldercd/$pfilestring'_'$pnum.tar
                chmod -R g+w $tempfolder
                tar cvf $tarname -C $tempfolder . >/dev/null 2>/dev/null
                gzip $tarname >/dev/null 2>/dev/null
		if (test $multiflag = 0) then
			$mkisofs -o $cdimage  $isoflags $tempfoldercd >> $quiet 2>>$quiet
			else
			$mkisofs -o $cdimage $isoflags -C $startsector,$endsector -M $cdr $tempfoldercd >>$quiet 2>>$quiet
		fi
####
		if (test -a $cdimage) then 
			successful_mkisofs=1
			break
		fi
		echo MKISOFS PROBLEM....TRYING TO RECOVER >> $quiet
		reply=`$cdrecord dev=$cdr -reset 2>/dev/null`
		echo $reply >> $quiet

		reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
		echo $reply >> $quiet

		reply=`$cdrecord dev=$cdr -load 2>/dev/null`
		echo $reply >> $quiet

		if (test $mkisofs_counter -gt 2)  then 
			echo 'Unable to recover from mkisofs error'
			echo "CDR write error, data not saved to CD!!!!! "
			echo "raw file "$pfile" renamed to "$pfilen" may be corrupted on CD"
			echo "FTP will continue"
			echo 'Unable to recover from CD error' >> $quiet
			echo "raw file "$pfile" renamed to "$pfilen" may be corrupted on CD" >> $quiet
			echo "FTP will continue"  >> $quiet
			if (test $ftpflag = 1)  then 
				$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_filename >/dev/null 2>/dev/null
				$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_mojoe >/dev/null 2>/dev/null
			fi
		break
		fi

 	done	
}










#if (test $cdrarchive = 1) then
#    #dummyburn
#    #disable the very first dummy burn
#fi
#--------------------------------------------------------------------------
#must continue to eject with each dummy burn
#otherwise it thinks something was written and moves the endsector point
#--------------------------------------------------------------------------
#cdejectflag=0

#-------------------------------------------------------------------
#TAPE LOOP
#-------------------------------------------------------------------
nowrite=`echo $@ | $awk '/notape/{print}' `
if (test ${#nowrite} -eq 0) then nowrite=0; else tapearchive=0; fi

if (test $tapearchive = 1) then
    while true
    do
        echo
        echo "Please make sure a new DAT tape is in the drive"
        echo -n "Hit Return when ready or control C to abort  "
        read dummy
        echo    
        if ( mt -f $tapedev rewind > /dev/null 2>&1) then
            break
        else
	    echo ""
            echo " Something is wrong with the tape or drive, try again "
            echo " If you do not want to archive to tape, try:  fmriarch notape"
            echo ""
        fi
    done
fi
#------------------------------------------------------------------

if (test ${#destlabel} -eq 0) then
    echo -n "Enter Patient Identifier for Labeling Files:  "
    read patname
    if (test "$patname") then 
	ptflag=1
    else
        echo
        echo
        echo "------------------------------------------------------------------------------"
        echo "Sorry, you must enter a Patient label"
        echo "Exiting fmriarch"
        echo "------------------------------------------------------------------------------" 
        echo
        echo
        exit
    fi
else
    patname=$destlabel
fi
echo ""
patient_label=`echo $patname"_"$label`

### 01-31-07 KLP must create patient directory since it may not yet exist with correct permissions
ssh $remotehost -l $user "mkdir -p $remotedir/$patient_label" >/dev/null 2>/dev/null
ssh $remotehost -l $user "mkdir -p $remotedir/$patient_label/log" >/dev/null 2>/dev/null
### 10-31-08 BCW REPORT if the directory is not created
if [[ $? -gt 0 ]]; then
	errorLine="!!!!!!!!!!!!!!!!!!!!!! ERROR !!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
	echo $errorLine
	echo $errorLine
	echo
	echo "UNABLE TO CREATE REMOTE DIRECTORY AT $remotedir/$patient_label"
	echo
	echo $errorLine
	echo $errorLine
	echo 
	echo "Please kill this window and select an accesable location."
	exit 1
fi
###




nodel=`echo $@ | $awk '/nodel/{print}' `   #Check the 'nodel' option #BAS 4/13/04

if (test ${#nodel} = 0) then #BAS 4/13/04
    if (test $gui = 0) then
	echo -n "Old data files must be deleted, hit return to delete, contrl C aborts  "
	read dummy
	echo
    fi

#    rm $rawfilefilt 2>/dev/null  #removed for graveyard code below  #BCW 2007-09-20
    imagedir=$MOJOE_TEMP
    if (test ${#MOJOE_GRAVEYARD} -lt 1)
        then
        MOJOE_GRAVEYARD=/export/home1/mojoe/pfile_graveyard
    fi
    echo "Moving old files to graveyard.  They will be kept for 14 days."
    if [[ ! -d $MOJOE_GRAVEYARD ]] ;  then
      mkdir $MOJOE_GRAVEYARD
    fi
    ls --time-style=long-iso -l $rawfilefilt 2>/dev/null | awk '{$1=$1;print}' | cut -d' ' -f6,7,8 | tr ':' '-' > $MOJOE_GRAVEYARD/tmpList 2>/dev/null
    while read dateString timeString filename ;  do
      if [[ -a $filename ]] ; then
        newName=`echo $filename | tr -d $rawdir`".$dateString-$timeString"
        mv $filename $MOJOE_GRAVEYARD/$newName
      fi
    done < $MOJOE_GRAVEYARD/tmpList
    
    rm $linkfilt 2>/dev/null
    find $MOJOE_GRAVEYARD -mtime +14 -exec rm {} \;

else
    echo "Data capturing will use old data files" #BAS 4/13/04
fi  #BAS 4/13/04


echo
if (test $gui = 0) then
    echo "Data capturing will continue running until control C is entered"
else
    echo "Data capturing will continue running until the Done button is clicked"
fi
#--------------------------------------------------------------------------------
# download paradigm_look_table from /fmri2/fmri/ref_functions/paradigm_look_table
#--------------------------------------------------------------------------------
#$get_paradigm > /dev/null 2>/dev/null
#BAK scp sdc@relito:/fmri2/fmri/ref_functions/paradigm_lookup_table /export/home/sdc/mojoe/paradigm_lookup_table
scp $sshuser@$sshserver:$ref_dir/paradigm_lookup_table $mojoe_dir/paradigm_lookup_table

echo
pfilecounter=0
configcounter=0
lastsector=0
start_time=$SECONDS

echo "Date        :" `date '+%m_%d_%y'` > $infodir$generalinfo
echo "Start time  :" `date '+%H_%M_%S'` >> $infodir$generalinfo
echo "Destination :" $remotedir/$patient_label >>$infodir$generalinfo
echo "E-mail      :" $destemail >> $infodir$generalinfo

## add for billing
    if (test $ftpflag -eq 1) then
        ftpyesno=yes;
    else
        ftpyesno=no;
    fi
    if (test $cdrflag -eq 1) then
        cdyesno=yes;
    else
        cdyesno=no;
    fi
    billdate=`date '+%m/%d/%y'`
    billcapturetime=`date '+%m%d%y%H%M%S'`
    billheader="Exam,Date,Time,E-mail,Scanner,Dir,MoJoe,CD,FTP"
    billtime=`date '+%H:%M:%S'`
    let billfirstline=1
    billfile=''
## 



while true
do
    ####
    # Transfer "/w/config/GradientConfig.cfg"  "/w/config/MRConfig.cfg" 
    #           and "/usr/g/bin/b*.dat" to remotehost in $remotedir/$patient_label/config/
    # Modified by Pin Xie on 7/31/2002
    #### 

### 11-24-04 KLP moved config file section FROM this location
### TO position after pfilecounter is set to 1 but before pfiles are transferred
                
    rm $linkfilt 2>/dev/null
    timestamp=`date '+%H_%M_%S'`

#    ls -s provided BLOCK size of the file, but not the needed BYTE size changes for testing size changing
#    ls -srt1 --block-size=1 $rawfilefilt 2>/dev/null | $awk 'NR==1 {print $1 " " $2}' >/tmp/awkout.$$$
     ls -rtl $rawfilefilt 2>/dev/null | awk '{$1=$1;print}' | cut -d' ' -f 5,9 | head -n1  >/tmp/awkout.$$$ 2>/dev/null
    read fsize pfile </tmp/awkout.$$$
    rm /tmp/awkout.$$$

    pfileqty=`find $rawdir -name "P*" -print | wc -l` 2>/dev/null

    if (test $pfileqty -le 1) then
	     sleep 20
    else
	     sleep 20
    fi


#    ls -srt1 --block-size=1 $rawfilefilt 2>/dev/null | $awk 'NR==1 {print $1 " " $2}' >/tmp/awkout.$$$
     ls -rtl $rawfilefilt 2>/dev/null | awk '{$1=$1;print}' | cut -d' ' -f 5,9 | head -n1 >/tmp/awkout.$$$ 2>/dev/null
    read fsize1 pfile1 </tmp/awkout.$$$
    rm /tmp/awkout.$$$

    #-----------------------------------------------------------------------------
    #See how long ago the last burn was
    #If there has been a substantial delay, then keep the scsi connection alive
    #with a dummy burn
    #-----------------------------------------------------------------------------

    if (test $cdrarchive = 1) then
	cut_minutes=10
        end_time=$SECONDS
        let cutoff=cut_minutes*60
        let elapsed=end_time-start_time
        if (test $elapsed -gt  $cutoff) then
	    echo '' >> $quiet
            echo '**********************************' >> $quiet
            echo dummyburn loop activated  elapsed time $elapsed seconds >> $quiet
            echo '**********************************' >> $quiet
            echo '' >> $quiet
            echo More than $cut_minutes minutes have elapsed since last burn
            dummyburn
            start_time=$SECONDS
        fi
    fi

    ##GET THE vrgf.dat and ref.dat FILES WHEN THE P-FILE FIRST APPEARS
    ## 2007-09-13 BCW 
    ## 2007-12-14 BCW Added pfilen to list of variables assigned at this time
    if [[ -n $pfile && -a $pfile  &&  $pfile != $pfileOld ]] ; then
      #Get filenames earlier

    	pfilestring=`echo $pfile | $tr -d $rawdir/ | $tr '.' ' ' | $awk '{print $1}'`
    	daten=`date -r $pfile '+%H_%M_%S.%m_%d_%y'`
    	pfilen=$patname.$daten.$pfilestring
      vfilen=$patname.$daten.$pfilestring".vrgf.dat"
    	reffilen=$patname.$daten.$pfilestring".ref.dat"
    	xinfofilen=$patname.$daten.$pfilestring".xinfo"  # BCW 2007-10-09

      ssh $remotehost -l $user "mkdir -p $remotedir/$patient_label/config" >/dev/null 2>/dev/null

      cp $vrgffilefilt $rawdir/$vfilen 2>/dev/null
      cp $reffilefilt $rawdir/$reffilen 2>/dev/null 

      if [[ -a $vrgffilefilt ]]; then
        echo "scp initiated for $vfilen"
        scp $vrgffilefilt ${user}@${remotehost}:${remotedir}/${patient_label}/$vfilen 2>/dev/null
      else
        echo "NO $vfilen to transfer."
      fi 

      if [[ -a $reffilefilt ]]; then
        echo "scp initiated for $reffilen"
        scp $reffilefilt ${user}@${remotehost}:${remotedir}/${patient_label}/$reffilen 2>/dev/null
      else
        echo "NO $reffilen to transfer."
      fi

      if [[ -a $xinfofilefilt ]]; then
        echo "scp initiated for $xinfofilen"
        scp $xinfofilefilt ${user}@${remotehost}:${remotedir}/${patient_label}/$xinfofilen 2>/dev/null
      else
        echo "NO $xinfofilen to transfer."
      fi

      pfileOld=$pfile
    fi

#    echo "$pfile = $pfile1 | $fsize = $fsize1"

    if ([ ${pfile1:=a} = ${pfile:=b} -a  ${fsize1:=z} = ${fsize:=y} ])then

 	echo $section_delimiter2

#	pfilestring=`echo $pfile | $tr -d $rawdir/ | $tr '.' ' ' | $awk '{print $1}'`
	### KLP 11-12-04 daten=`date '+%H_%M_%S.%m_%d_%y'`
	### BCW 2007-12-14 placed in config send above so that all files have the same starting name.
#	daten=`date -r $pfile '+%H_%M_%S.%m_%d_%y'`
# pfilen=$patname.$daten.$pfilestring
#	vfilen=$patname.$daten.$pfilestring".vrgf.dat"
#	reffilen=$patname.$daten.$pfilestring".ref.dat"
#	xinfofilen=$patname.$daten.$pfilestring".xinfo"  # BCW 2007-10-09


  ### READ AND SEND FILES IN THE MRRAW/EPIFLEX_LOGS DIRECTORY.  RENAME .xinfo AND .log FILES
  ### ADDED BY BCW 2007-12-04
  ### MOVED TO THIS LOCATION IN THE SCRIPT 2007-12-11
  ### MOVED AGAIN TO THIS LOCATION IN THE SCRIPT 2008-01-14
  #      echo ">> JUST BEFORE <<"
   	    if [[ -a $rawdir/epiflex_logs ]]; then
  # 	      echo " In epiflex_logs"
          epi_logs="$rawdir/epi_logs_list.$$$"
          ls -1 $rawdir/epiflex_logs > $epi_logs
          while read fileNameOrg; do
            if [[ ! -d $rawdir/epiflex_logs/$fileNameOrg ]]; then 
              fileName="$rawdir/epiflex_logs/$patname.$daten.$pfilestring.$fileNameOrg"
              fileNameOrg="$rawdir/epiflex_logs/$fileNameOrg"            
              mv $fileNameOrg $fileName
              echo "scp initiated for $fileName"
              scp $fileName ${user}@${remotehost}:${remotedir}/${patient_label}/ 2>/dev/null
              if [[ $? -eq 0 ]]; then
                rm $fileName
              fi
            fi
          done < $epi_logs
          rm $epi_logs
        fi
  #      echo ">> JUST AFTER <<"
  ### END OF CHANGE 	    

	#--------------------------
	#read pfile info
	#--------------------------

	let pfilecounter=pfilecounter+1

### 11-24-04 KLP after moving config section,  must create config directory parent since it may not yet exist
ssh $remotehost -l $user "mkdir -p $remotedir/$patient_label/config" >/dev/null 2>/dev/null
### 11-24-04 KLP moved config section from above
    if (test $pfilecounter = 1) then

	if (test $configcounter = 0) then      
	    echo
	    ###echo $section_delimiter2 ### 11-24-04 KLP removed
	    echo "Saving Configuration files (These files will only be saved once)"
	    echo 

	    echo "autoftp initiated for $Gconf_name"
	    echo autoftp initiated for $Gconf_name >> $quiet
	    $autoftp  $remotehost $user $pass $remotedir/$patient_label config $configdir $Gconf_name >/dev/null 2>/dev/null

            # Autoftp first time to create the config directory
            #  
	    #echo scp initiated for $configdir${Gconf_name}
	    #echo scp initiated for $configdir${Gconf_name} >> $quiet
            #scp $configdir/${Gconf_name} ${user}@${remotehost}:${remotedir}/${patient_label}/config/${Gconf_name}


	    #Following scp added 6/21/04 BAS
	    echo scp initiated for $b_datdir1/${Tensorf_name}
	    echo scp initiated for $b_datdir1/${Tensorf_name}>> ${quiet}
	    scp $b_datdir1/${Tensorf_name} ${user}@${remotehost}:${remotedir}/${patient_label}/config/${Tensorf_name}
	    #End 6/21/04 BAS

      #
      # reset permissions on config files (tensor.dat by default is user readonly)
      #
          ssh -l $sshuser $sshserver chmod -R ug+w $remotedir/$patient_label/config 

	    #whatRev>$configdir/$whatRev_name
            reply=`which whatRev 2>/dev/null`
            if (test ${#reply} -gt 0) then
                whatRev>$configdir/$whatRev_name
            else
                cp -p $MOJOE_WHATREV $configdir/$whatRev_name
            fi

	    #echo "autoftp initiated for $whatRev_name"
	    #echo autoftp initiated for $whatRev_name >> $quiet
	    #$autoftp  $remotehost $user $pass $remotedir/$patient_label config $configdir $whatRev_name >/dev/null 2>/dev/null

	    echo scp initiated for $configdir${whatRev_name}
	    echo scp initiated for $configdir${whatRev_name} >> ${quiet}
      scp $configdir/${whatRev_name} ${user}@${remotehost}:${remotedir}/${patient_label}/config/${whatRev_name}

	    currentdir=`pwd`
#	    tar -cvf $protocols_filename $protocolsdir/* >/dev/null 2>/dev/null
	    tar cvf $protocols_filename -C $protocols_top protocols/site >/dev/null 2>/dev/null
	    gzip $protocols_filename >/dev/null 2>/dev/null

	    #echo "autoftp initiated for $protocols_filename.gz"
	    #echo "autoftp initiated for $protocols_filename.gz" >> ${quiet}
	    #$autoftp  $remotehost $user $pass $remotedir/$patient_label config $protocolsdir $protocols_filename.gz >/dev/null 2>/dev/null

	    echo scp initiated for ${protocolsdir}/${protocols_filename}.gz
	    echo scp initiated for ${protocolsdir}/${protocols_filename}.gz >> ${quiet}
      scp ${protocols_filename}.gz ${user}@${remotehost}:${remotedir}/${patient_label}/config/${protocols_filename}.gz

	    rm $protocols_filename.gz >/dev/null 2>/dev/null
	    cd $currentdir

	    #echo "autoftp initiated for $Mconf_name"
	    #echo autoftp initiated for $Mconf_name >> $quiet
	    #$autoftp  $remotehost $user $pass $remotedir/$patient_label config $configdir $Mconf_name >/dev/null 2>/dev/null

	    echo scp initiated for $configdir${Mconf_name}
	    echo scp initiated for $configdir${Mconf_name} >> ${quiet}
      scp $configdir/${Mconf_name} ${user}@${remotehost}:${remotedir}/${patient_label}/config/${Mconf_name}

	    wildmatch=bcrvs[1-9].dat  #BAS 05/12/04
 
	    #for bfile in $b_datdir$wildmatch
	    #do
	    #	b_datfile=`echo $bfile | awk -F/ ' {print $NF} '`		
	    #	echo "autoftp initiated for $b_datfile"
	    #	echo autoftp initiated for $b_datfile >> $quiet		
	    #	$autoftp  $remotehost $user $pass $remotedir/$patient_label config $b_datdir $b_datfile >/dev/null 2>/dev/null
	    #	scp ${b_datdir}/${b_datfile} ${user}@${remotehost}:${remotedir}/${patient_label}/config/${b_datfile}
	    #done
	    
	    echo scp initiated for ${b_datdir1}/'bcrvs[1-9].dat'
	    echo scp initiated for ${b_datdir1}/'bcrvs[1-9].dat' >> ${quiet}
	    echo scp initiated for ${b_datdir2}/'bcrvs[1-9].dat'
	    echo scp initiated for ${b_datdir2}/'bcrvs[1-9].dat' >> ${quiet}
	    scp ${b_datdir1}/${wildmatch} ${user}@${remotehost}:${remotedir}/${patient_label}/config/ 2>/dev/null #BAS 05/12/04
	    scp ${b_datdir2}/${wildmatch} ${user}@${remotehost}:${remotedir}/${patient_label}/config/ 2>/dev/null #BAS 05/12/04

	    let configcounter=configcounter+1
	    echo
	    echo $section_delimiter3 
	    echo
echo $section_delimiter2 ### 11-24-04 KLP added
	fi    
    fi
    ####
    # End of Modification by Pin Xie
    ####  
### 11-24-04 KLP end config section move

	echo "Pfile counter :" $pfilecounter       > $rawdir/$pfilen.sinfo
        echo "Date          :" `date '+%m/%d/%y'`  >> $rawdir/$pfilen.sinfo
        echo "Time          :" `date '+%H:%M:%S'`  >> $rawdir/$pfilen.sinfo
	echo " "                                   >> $rawdir/$pfilen.sinfo

	$read_pfile_header -f $pfile >> $rawdir/$pfilen.sinfo
	$read_pfile_header -f $pfile -o 1 > $pfileexamno
	
	cat $rawdir/$pfilen.sinfo

## add for billing detail on current pfile
        examnum=`$read_pfile_header -f $pfile -o 1`
        billexamnum=`echo $examnum | awk '{printf("%05d", $1)}'`
        billdetails=$billexamnum","$billdate","$billtime","$destemail","$HOSTNAME","$remotedir/$patient_label","capture","$cdyesno","$ftpyesno
        billexam=$HOSTNAME"_"`echo $examnum | awk '{printf("%05d", $1)}'`"_"$billcapturetime
        $read_pfile_biller $pfile $billfirstline $billexam $billheader $billdetails
        let billfirstline=0
##


	#--------------------------
	#collect info
	#--------------------------
	echo -n $pfilen, >> $infodir$pfilelist
	$read_pfile_header -f $pfile -o 2 >> $infodir$pfilelist
	echo ''>> $infodir$pfilelist
	cp $rawdir/$pfilen.sinfo $infodir$pfilen.sinfo

	mv $pfile $rawdir/$pfilen
#	cp $vrgffilefilt $rawdir/$vfilen 2>/dev/null  # Changed to MV below because we now want to get the files earlier
#	cp $reffilefilt $rawdir/$reffilen 2>/dev/null # 

##  REMOVED 2007-12-11 BCW, changed to SCP earlier
#  pfileTmp=`echo $pfile | $tr -d $rawdir/ | $tr '.' ' ' | $awk '{print $1}'`
#	mv $rawdir/vrgfHOLD.$pfileTmp $rawdir/$vfilen 2>/dev/null  # BCW 2007-09-13
#	mv $rawdir/refHOLD.$pfileTmp $rawdir/$reffilen 2>/dev/null # BCW 2007-09-13
# mv $rawdir/xinfoHOLD.$pfileTmp $rawdir/$xinfofilen 2>/dev/null # BCW 2007-10-09	

###### --- KLP 10-21-04 temporarily save locally
#cp $rawdir/$pfilen $CDtemp
#cp $rawdir/$reffilen $CDtemp
######
###### --- KLP 10-26-04 create ssh ls script to check pfile size
echo '#!/bin/ksh' > $mojoe_dir/verifycapture
#echo 'ssh relito "cd '$remotedir'/'$patient_label'; ls -lt *.P?????"' >> $mojoe_dir/verifycapture
echo 'echo '$remotedir'/'$patient_label'' >> $mojoe_dir/verifycapture
echo 'ssh -l $sshuser '$sshserver' "cd '$remotedir'/'$patient_label'; ls -ltr *.P?????"' >> $mojoe_dir/verifycapture
chmod +x $mojoe_dir/verifycapture
######
	#echo
	#echo "Pfile counter = $pfilecounter"
	#echo '**********************************' >> $quiet
	#echo "Pfile counter = $pfilecounter"  >> $quiet

	#------------------
	#AUTOFTP LOOP
	#------------------
	if (test $ftpflag = 1) then
        
### 11-29-04 KLP added check for ref.dat file size
	    refSize=`wc -c $rawdir/$reffilen | awk '{print $1}'`
            if (test $refSize -eq 0) then
	        refReport="!!!!!!!!!! WARNING !!! File size of ref.dat (in bytes) = $refSize!!!!!!!!!!"
           else
	        refReport="File size of ref.dat (in bytes) = $refSize"
           fi
           echo $refReport
           echo $refReport >> $quiet
###

	    echo "autoftp initiated for $pfilen"
	    echo autoftp initiated for $pfilen >> $quiet

	    ftpreply=`$autoftp  $remotehost $user $pass $remotedir $patient_label $rawdir/ $pfilen  2>/dev/null`

	    ftpflag1=`echo $ftpreply | grep "Interactive mode on"`
	    ftpflag2=`echo $ftpreply | grep "Not connected"`
	    ftpflag3=`echo $ftpreply | grep "failed"`

	    if (test "$ftpflag1") then ftp_failed=0; else ftp_failed=1; fi
	    if (test "$ftpflag2") then ftp_failed=1; fi
	    if (test "$ftpflag3") then ftp_failed=1; fi
	   
#	    $autoftp  $remotehost $user $pass $remotedir $patient_label $rawdir/ $vfilen >/dev/null 2>/dev/null #BCW 2007-12-12 Sent via SCP above
#	    $autoftp  $remotehost $user $pass $remotedir $patient_label $rawdir/ $reffilen >/dev/null 2>/dev/null #BCW 2007-12-12 Sent via SCP above            
#     $autoftp  $remotehost $user $pass $remotedir $patient_label $rawdir/ $xinfofilen >/dev/null 2>/dev/null #BCW 2007-12-12 Sent via SCP above # BCW 2007-10-09
 	    $autoftp  $remotehost $user $pass $remotedir $patient_label $rawdir/ $pfilen.sinfo >/dev/null 2>/dev/null

	     #--------------------------
	     #monkey dances
	     #--------------------------
            $ftp_monkey_anim&

	    #autoftp  $remotehost $user $pass $remotedir $patient_label $rawdir/ $pfilen >/dev/null 2>/dev/null &
	    #autoftp  $remotehost $user $pass $remotedir $patient_label $rawdir/ $vfilen >/dev/null 2>/dev/null &
	    #autoftp  $remotehost $user $pass $remotedir $patient_label $rawdir/ $pfilen"*" >/dev/null 2>/dev/null
	    
	    if (test $ftp_failed = 0) then
		if (test $reconflag = 1) then
		    echo "autorecon initiated  on $idlhostname ($idlhost)"
		    echo "autorecon initiated  on $idlhostname ($idlhost)" >> $quiet
		    ### KLP 11-17-04 querecon=`$remote_launch autorecon_x $idlhost $idluser $remotedir/$patient_label/$pfilen >/dev/null 2>/dev/null`
		    #ssh $idlhost -l $idluser "~/launch_sge ~/autorecon_excite $remotedir/$patient_label/$pfilen >& /dev/null"&
		    echo "$remote_launch $fmri_dir/launch_sge $idlhost $idluser $fmri_dir/autorecon_excite $remotedir/$patient_label/$pfilen"
		    querecon=`$remote_launch $fmri_dir/launch_sge $idlhost $idluser $fmri_dir/autorecon_excite $remotedir/$patient_label/$pfilen >/dev/null 2>/dev/null`
		fi
	    else
		line1=`echo $ftpreply | $awk '{print $1}' `
		echo "ftp failed: $line1"
		echo "ftp failed: $line1" >> $quiet
	    fi

	    #--------------------------------------------------------------------------
	    #Remove the pfile if we are not writing to tape and the ftp was successful
	    #--------------------------------------------------------------------------
	    if (test $tapearchive = 0) then
		if (test $cdrarchive = 0) then
		    if (test $ftp_failed = 0) then
			allpfiles=$pfilen"*"
			echo removing $rawdir/$pfilen"*"
			echo removing $rawdir/$pfilen"*" >> $quiet
			rm $rawdir/$allpfiles
		    fi
		fi
	    fi
	    #-----------------------------------------------------------------------------
	    #Following  autoftp statements replaced by rcp-rsh-ssh in termhandler() above  3/22/04 BAS
	    #-----------------------------------------------------------------------------
	    #$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_filename >/dev/null 2>/dev/null
	    #$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir$ $log_mojoe >/dev/null 2>/dev/null
	    cp $servicedir/$servicelog $servicedir/$newservicelog
	    ### 12-08-04 KLP $autoftp  $remotehost $user $pass $remotedir $patient_label $servicedir $newservicelog >/dev/null 2>/dev/null
	    $autoftp $remotehost $user $pass $remotedir/$patient_label config $servicedir $newservicelog >/dev/null 2>/dev/null

	    echo $section_delimiter3
	    echo	  
	fi

	#------------------
	#CDR WRITE LOOP
	#------------------
	if (test $cdrarchive = 1) then    

	    echo $section_delimiter2
        
	    dummy=''
	    if (test $dummyflag = 0) then dummy=''; else dummy=`echo -dummy -nofix `; fi
		#echo "True write (y/n)"
		#read true_write
		#if (test $true_write = y) then 
		#    dummy=''
	        #else 
		#    dummy=`echo -dummy -nofix `
		#fi
		isofile=cdpfile.$daten.iso
		cdimage=$rawdir/$isofile
		allpfiles=$pfilen"*"
		multiflag=1
		tempfolder=`echo $rawdir/"temp"`
		tempfoldercd=`echo $rawdir/"tempp"`    # KLP 3-27-06
#		echo $tempfolder
#		label=`date '+%m_%d_%y'`
#		patient_label=`echo $destlabel"_"$label`
##------------------------------------------------------
##Make a temporary directory for holding the pfiles
##------------------------------------------------------
#		tempfolder=$tempdir/$patient_label
#      		mkdir $tempdir
		mkdir $tempfolder
                mkdir $tempfoldercd  # KLP 3-27-06

		cp $rawdir/$allpfiles $tempfolder/.

		if (test $pfilecounter = 1) then
		    if (test $newcdr = 1) then multiflag=0; fi

		    mkdir $tempfolder/config
		    cp $configdir$Gconf_name $tempfolder/config/. # 
		    cp $configdir$whatRev_name $tempfolder/config/. #
#		    cp $configdir$Tensorf_name $tempfolder/config/. #BAS 6/21/04, KLP uncommented 6/12/06
                    cp $b_datdir1/$Tensorf_name $tempfolder/config/. #KLP set correct tensor dir 6/14/06

		    tar -cvf $tempfolder/config/$protocols_filename $protocolsdir/* >/dev/null 2>/dev/null
		    gzip $protocols_filename >/dev/null 2>/dev/null

		    cp $configdir$Mconf_name $tempfolder/config/. #
		    ###cp $b_datdir1/bcrvs[1-9].dat $tempfolder/config/. #
		    ###cp $b_datdir2/bcrvs[1-9].dat $tempfolder/config/. #
		    cp $b_datdir1/bcrvs[1-9].dat $tempfolder/config/. 2>/dev/null # 12-06-04 KLP
		    cp $b_datdir2/bcrvs[1-9].dat $tempfolder/config/. 2>/dev/null # 12-06-04 KLP

		fi

		#echo multiflag is $multiflag
		#echo multiflag is $multiflag

		echo '' >> $quiet
		echo '' >> $quiet
		echo '**********************************' >> $quiet
		#echo "Pfile counter = $pfilecounter"  >> $quiet
		echo Generating CD image file for $rawdir/$allpfiles >> $quiet
		echo '**********************************' >> $quiet
		echo '' >> $quiet
		echo '' >> $quiet
		
		echo "Generating CD image file..."
		error_counter=0
		if (test $multiflag = 0) then
		    mkisofs_loop
		    #$mkisofs -o $cdimage  $isoflags $tempfolder >> $quiet 2>>$quiet
		else
		    while true
		    do
			let error_counter=error_counter+1
			echo '' >> $quiet
			echo "CDR error recovery loop "$error_counter" activated" >> $quiet
###
# KLP 11-04-04 IDE gives extra msinfo
###
			###reply=`$cdrecord dev=$cdr -msinfo`
			###echo $reply >>$quiet 2>>$quiet
			###startsector=`echo $reply | $tr ',' ' ' | $awk '{print $1}'`
			###if (test $startsector -ge $lastsector 2>>$quiet ) then
			    ###break 
			ide_cd_appendable
			echo "appendable = $cd_appendable ... msinfo ($startsector,$endsector)" >> $quiet
			if (test $cd_appendable -eq 1) then
				startsector=$cd_first_sector
				endsector=$cd_last_sector
			else
				startsector=0
				endsector=0
			fi
			if (test $cd_appendable -eq 1 && test $startsector -ge $lastsector) then
			    break 
###
			else 
			    echo 'Bad msinfo read from Cdrecord'
			    countdown=max_error_loop - error_counter + 1
			    echo 'Retry count down' $countdown
			    echo 'Retrying...DO NOT KILL ME...'
			    echo 'Bad msinfo read from Cdrecord...will retry...Do not Kill me ...' >> $quiet 
			    echo "Resetting CD Mechanism..."
			    echo
			    reply=`$cdrecord dev=$cdr -reset 2>/dev/null`
			    echo $reply >> $quiet

			    reply=`$cdrecord dev=$cdr -eject 2>/dev/null`
			    echo $reply >> $quiet

			    reply=`$cdrecord dev=$cdr -load 2>/dev/null`
			    echo $reply >> $quiet

			    #-----------------------------------------------------------------------------
			    #Following autoftp statements replaced by rcp-rsh-ssh in termhandler() above 3/22/04 BAS
			    #-----------------------------------------------------------------------------
			    #if (test $ftpflag = 1) then
			    #$autoftp $remotehost $user $pass $remotedir/$patient_label log $logdir $log_filename >/dev/null 2>/dev/null
			    #$autoftp $remotehost $user $pass $remotedir/$patient_label log $logdir $log_mojoe >/dev/null 2>/dev/null
			    #fi
			fi

			if (test $error_counter -ge $max_error_loop 2>>$quiet ) then
			    #cdrarchive=0
			    echo 'Unable to recover from CD error'
			    echo "CDR write error, data not saved to CD!!!!! "
			    echo "raw file "$pfile" renamed to "$pfilen" may be corrupted on CD"
			    echo "FTP will continue"
			    echo 'Unable to recover from CD error' >> $quiet
			    echo "raw file "$pfile" renamed to "$pfilen" may be corrupted on CD" >> $quiet
			    echo "FTP will continue"  >> $quiet
			    #-----------------------------------------------------------------------------
			    #Following autoftps statement replaced by rcp-rsh-ssh in termhandler() above 3/22/04 BAS
			    #-----------------------------------------------------------------------------
			    #if (test $ftpflag = 1) then
			    #$autoftp $remotehost $user $pass $remotedir/$patient_label log $logdir $log_filename >/dev/null 2>/dev/null
			    #$autoftp $remotehost $user $pass $remotedir/$patient_label log $logdir $log_mojoe >/dev/null 2>/dev/null
			    #fi
			    break
			fi
		    done
		    ###endsector=`echo $reply | $tr ',' ' ' | $awk '{print $2}'` # KLP 11-04-04 IDE gets value above
		    lastsector=$endsector
		    echo startsector $startsector   endsector $endsector >>$quiet 2>> $quiet
		    #$cdrecord dev=$cdr -msinfo
		    #$mkisofs -o $cdimage $isoflags -C $startsector,$endsector -M $cdr $rawdir/$allpfiles >>$quiet 2>>$quiet
		    mkisofs_loop	 	
		fi      
		echo "cdr command is $cdrecord dev=$cdr -v $driveropts $dummy -multi speed=$cdr_speed $cdimage" >>$quiet 
		echo "Burning CD..."
		end_time2=$SECONDS
		let elapsed2=end_time2-start_time
		echo '' >> $quiet
		echo '**********************************' >> $quiet
		echo elapsed time $elapsed seconds and $elapsed2 since last burn >> $quiet
		echo '**********************************' >> $quiet
		echo '' >> $quiet

		if ($cdrecord dev=$cdr -v $driveropts $dummy -multi speed=$cdr_speed $cdimage >>$quiet 2>>$quiet) then
		    start_time=$SECONDS
		    
                    #echo "raw file "$pfile" saved as "$pfilen
		    #echo "vrgf.dat file saved as "$pfilen".vrgf.dat"
		    #echo "ref.dat file saved as "$pfilen".ref.dat"

		    echo "CD Burn successful"
		    echo ""
		    echo "raw file "$pfile" saved as "$pfilen  >>$quiet
		    echo "CD Burn successful"  >>$quiet
		    echo "" >>$quiet
		
		    $cdburn_monkey_anim 1&

		    if (test $tapearchive = 0) then rm $rawdir/$allpfiles; fi
		else
		    start_time=$SECONDS
		    #beep

		    echo $section_delimiter1
		    echo "CDR write error, data not saved to CD!!!!! "
		    echo "raw file "$pfile" renamed to "$pfilen" may be corrupted on CD"
		    if (test $ftpflag = 0) then
			echo "-----------------------------------------------------------"
			echo "Note: "$pfilen" in "$rawdir/" will need to be manually ftped"
			echo "-----------------------------------------------------------"
		    fi
		    echo "BUT DO NOT KILL ME!"
		    echo "CD Archiving will continue for subsequent Runs"
		    echo $section_delimiter1
		    echo
		    echo $section_delimiter1  >>$quiet
		    echo "CDR write error, data not saved to CD!!!!! "  >>$quiet
		    echo "raw file "$pfile" renamed to "$pfilen" may be corrupted on CD"  >>$quiet
		    echo "CD Archiving will continue for subsequent Runs"  >>$quiet
		    echo $section_delimiter1  >>$quiet
		    #beep
		fi

	        echo $section_delimiter3                        

		echo '###################################################' >> $quiet
		echo '###################################################' >> $quiet
		rm $cdimage
		rm -rf $tempfolder
		rm -rf $tempfoldercd  # KLP 3-27-06
	    fi


	    #------------------
	    #TAPE WRITE LOOP
	    #------------------
	    if (test $tapearchive = 1) then
		allpfiles=$pfilen"*"
		vrgfpfile=$pfilen".vrgf.dat"
		refpfile=$pfilen".ref.dat"
		#if (tar -cfb $tapedev $bf -C $rawdir/ $allpfiles
		if (tar -cfb $tapedev $bf -C $rawdir/ $pfilen) then
		    tar -cfb $tapedev $bf -C $rawdir/ $vrgfpfile
		    tar -cfb $tapedev $bf -C $rawdir/ $refpfile
		    echo "raw file "$pfile" saved as "$pfilen
		    echo "vrgf.dat file saved as "$pfilen".vrgf.dat"
		    echo "ref.dat file saved as "$pfilen".ref.dat"
		    rm $rawdir/$allpfiles
		else
		    #beep
		    echo
		    echo "Tape write error, data not saved !!!!! "
		    echo
		    #beep
		    break
		fi
	    fi
	    if (test $ftpflag = 1) then
		#-----------------------------------------------------------------------------
		#Following  autoftp statements replaced by rcp-rsh-ssh in termhandler() above 3/22/04 BAS
		#-----------------------------------------------------------------------------
		#$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_filename >/dev/null 2>/dev/null
		#$autoftp  $remotehost $user $pass $remotedir/$patient_label log $logdir $log_mojoe >/dev/null 2>/dev/null
		cp $servicedir/$servicelog $servicedir/$newservicelog
		### 12-08-04 KLP $autoftp  $remotehost $user $pass $remotedir $patient_label $servicedir $newservicelog >/dev/null 2>/dev/null
		$autoftp  $remotehost $user $pass $remotedir/$patient_label config $servicedir $newservicelog >/dev/null 2>/dev/null
		#rm $protocolsdir/$protocols_filename >/dev/null 2>/dev/null
		#tar -cvf $protocolsdir/$protocols_filename $protocolsdir/* >/dev/null 2>/dev/null
		#gzip $protocolsdir/$protocols_filename >/dev/null 2>/dev/null
		#$autoftp $remotehost $user $pass $remotedir/$patient_label log $protocolsdir $protocols_filename >/dev/null 2>/dev/null
	    fi
	fi
done






