PATHTOROOT = ${HOME}/work/pixelmed/imgbook

TAR = gnutar
#TAR = tar
COMPRESS = bzip2
COMPRESSEXT = bz2

FILESTOARCHIVE = \
	Makefile \
	tabdelimitedtoxml.xsl \
	individualxmltodicomsrxml.xsl \
	dicomsrfiles/ \
	dcsrdumpdicomsrfiles/ \
	dcdumpdicomsrfiles/ \
	expanded.txt

all:	dicomsrfiles copyandsortsrfiles dcsrdumpdicomsrfiles dcdumpdicomsrfiles dciodvfydicomsrfiles validatesrfiles

clean:
	rm -f fromtext.xml
	rm -rf individualxmlfiles
	rm -rf dicomsrfiles
	rm -rf dcsrdumpdicomsrfiles
	rm -rf dcdumpdicomsrfiles
	rm -rf dciodvfydicomsrfiles
	rm -rf validatesrfiles
	rm -rf tosort
	rm -rf Sorted
	rm -f .exclude.list

fromtext.xml:	tabdelimitedtoxml.xsl sourcetextfiletouse.txt
	rm -f $@
	# note that input file "sourcetextfiletouse.txt" is hard-wired inside tabdelimitedtoxml.xsl
	java -jar /opt/local/share/java/saxon9he.jar -xsl:tabdelimitedtoxml.xsl -o:$@ -it:text2xml

individualxmlfiles:	individualxmltodicomsrxml.xsl fromtext.xml
	rm -rf individualxmlfiles
	mkdir -p individualxmlfiles
	java -jar /opt/local/share/java/saxon9he.jar -xsl:individualxmltodicomsrxml.xsl -s:fromtext.xml

dicomsrfiles:	individualxmlfiles
	rm -rf dicomsrfiles
	mkdir -p dicomsrfiles
	#for i in `ls individualxmlfiles/*.xml | head -1`; do
	for i in individualxmlfiles/*.xml; do \
		echo "Doing $$i"; \
		java -cp ${PATHTOROOT} com.pixelmed.dicom.XMLRepresentationOfStructuredReportObjectFactory \
			toDICOM \
			$$i > dicomsrfiles/`basename $$i .xml`.dcm; \
	done

copyandsortsrfiles:	dicomsrfiles
	rm -rf tosort
	rm -rf Sorted
	cp -R dicomsrfiles tosort
	java -cp $${HOME}/work/pixelmed/imgbook com.pixelmed.dicom.MoveDicomFilesIntoHierarchy tosort

dcsrdumpdicomsrfiles:	dicomsrfiles
	rm -rf dcsrdumpdicomsrfiles
	mkdir -p dcsrdumpdicomsrfiles
	for i in dicomsrfiles/*.dcm; do \
		echo "Doing $$i"; \
		dcsrdump -identifier $$i >dcsrdumpdicomsrfiles/`basename $$i .dcm`.dcsrdump.txt 2>&1; \
	done

dcdumpdicomsrfiles:	dicomsrfiles
	rm -rf dcdumpdicomsrfiles
	mkdir -p dcdumpdicomsrfiles
	for i in dicomsrfiles/*.dcm; do \
		echo "Doing $$i"; \
		dcdump $$i >dcdumpdicomsrfiles/`basename $$i .dcm`.dcdump.txt 2>&1; \
	done

dciodvfydicomsrfiles:	dicomsrfiles
	rm -rf dciodvfydicomsrfiles
	mkdir -p dciodvfydicomsrfiles
	for i in dicomsrfiles/*.dcm; do \
		echo "Doing $$i"; \
		dciodvfy $$i >dciodvfydicomsrfiles/`basename $$i .dcm`.dciodvfy.txt 2>&1; \
	done

dcentvfydicomsrfiles:	dicomsrfiles
	dcentvfy dicomsrfiles/*.dcm

validatesrfiles:	dicomsrfiles
	rm -rf validatesrfiles
	mkdir -p validatesrfiles
	for i in dicomsrfiles/*.dcm; do \
		echo "Doing $$i"; \
		DicomSRValidator.sh $$i >validatesrfiles/`basename $$i .dcm`.validatesr.txt 2>&1; \
	done

xmldicomsrfiles:	dicomsrfiles
	rm -rf xmldicomsrfiles
	mkdir -p xmldicomsrfiles
	for i in dicomsrfiles/*.dcm; do \
		echo "Doing $$i"; \
		java -cp .:${PATHTOROOT} com.pixelmed.dicom.XMLRepresentationOfStructuredReportObjectFactory toXML $$i >xmldicomsrfiles/`basename $$i .dcm`.xml 2>&1; \
	done

MergeXMLDocuments.class:	MergeXMLDocuments.java
	javac $<

mergexmldicomsrfiles:	MergeXMLDocuments.class
	#java -cp . MergeXMLDocuments xmldicomsrfiles/*.xml
	java -cp . MergeXMLDocuments xmldicomsrfiles/QIN-HEADNECK-01-0003.xml xmldicomsrfiles/QIN-HEADNECK-01-0004.xml xmldicomsrfiles/QIN-HEADNECK-01-0006.xml

.exclude.list:	Makefile
	echo "Making .exclude.list"
	echo ".DS_Store" > $@
	echo ".directory" >> $@
	find . -path '*/CVS*' | sed 's/[.][/]//' >>$@

archive:	.exclude.list
	export COPYFILE_DISABLE=true; \
	export COPY_EXTENDED_ATTRIBUTES_DISABLE=true; \
	${TAR} -cv -X .exclude.list -f - ${FILESTOARCHIVE} | ${COMPRESS} > IowaHNClinicalDataDICOMSRConversion_`date +%Y%m%d%H%M%S`.tar.${COMPRESSEXT}
