<?xml version="1.0"?>
<ETL xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.0" xsi:noNamespaceSchemaLocation="F:\Development\XML\ketl.xsd">
	<PARAMETER_LIST NAME="hlDB">
		<PARAMETER NAME="USER">HLAppUser</PARAMETER>
		<PARAMETER NAME="PASSWORD">hl7</PARAMETER>
		<PARAMETER NAME="URL">jdbc:sqlserver://10.211.55.4:1433;databaseName=HL_MONF_Data</PARAMETER>
		<PARAMETER NAME="DRIVER">com.microsoft.sqlserver.jdbc.SQLServerDriver</PARAMETER>
	</PARAMETER_LIST>
	<PARAMETER_LIST NAME="csvData">
		<PARAMETER NAME="SEARCHPATH">/Users/aalurkar/HL/Data/cooked/small/hl-simulator-SMALL*.csv</PARAMETER>
	</PARAMETER_LIST>
	<PARAMETER_LIST NAME="DataLkp">
		<PARAMETER NAME="SEARCHPATH">/Users/aalurkar/HL/Data/dict.csv</PARAMETER>
	</PARAMETER_LIST>
	<JOB ID="CSV" PARRALLISM="4" NAME="CSV" PROJECT="TEST" TYPE="KETL">
		<ACTION>
			<STEP NAME="GetLKP" SKIPLINES="1" ALLOWDUPLICATES="TRUE" SAMPLEEVERY="1" IOBUFFER="8196" CLASS="com.kni.etl.ketl.reader.NIOFileReader" CHARACTERSET="UTF-8" DELIMITER="," PARAMETER_LIST="DataLkp">
				<OUT NAME="ID" DATATYPE="INTEGER"/>
				<OUT NAME="FN" DATATYPE="STRING"/>
				<OUT NAME="LN" DATATYPE="STRING"/>
				<OUT NAME="AD" DATATYPE="STRING"/>
				<OUT NAME="CT" DATATYPE="STRING"/>
				<OUT NAME="ST" DATATYPE="STRING"/>
			</STEP>
			<STEP NAME="fooLKP" PERSISTENCE="JOB" CLASS="com.kni.etl.ketl.writer.LookupWriter">
				<IN>GetLKP.*</IN>
				<IN VALUE="1">GetLKP.FN</IN>
				<IN VALUE="2">GetLKP.LN</IN>
				<IN VALUE="3">GetLKP.AD</IN>
				<IN VALUE="4">GetLKP.CT</IN>
				<IN VALUE="5">GetLKP.ST</IN>
				<IN KEY="1">GetLKP.ID</IN>
			</STEP>
			<STEP NAME="GetRawRow" SKIPLINES="1" ALLOWDUPLICATES="TRUE" SAMPLEEVERY="1" IOBUFFER="8196" CLASS="com.kni.etl.ketl.reader.NIOFileReader" CHARACTERSET="UTF-8" DELIMITER="," PARAMETER_LIST="csvData">
				<OUT NAME="StudyDate" FORMATSTRING="yyyyMMdd" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="DATE"/>
				<OUT NAME="StudyTime" FORMATSTRING="HHmmss" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="DATE"/>
				<OUT NAME="AccessionNumber" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="ModalitiesInStudy" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="ReferringPhysiciansName" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="StudyDescription" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="PatientsName" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="PatientId" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="PatientsBirthDate" FORMATSTRING="M/dd/yyyy" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="DATE"/>
				<OUT NAME="PatientsSex" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING" DEFAULTVALUE="NA"/>
				<OUT NAME="StudyInstanceUid" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="StudyId" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="NumberOfStudyRelatedSeries" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="INTEGER"/>
				<OUT NAME="NumberOfStudyRelatedInstances" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="INTEGER"/>
				<OUT NAME="OtherPatientIds" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="EthnicGroup" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="SeriesNumber" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="INTEGER"/>
				<OUT NAME="SeriesDescription" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="BodyPartExamined" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
				<OUT NAME="Modality" QUOTESTART="#22" QUOTEEND="#22" DATATYPE="STRING"/>
			</STEP>
			<STEP NAME="AddPatientDetails" PURGECACHE="TRUE" FLOWTYPE="FANOUT" CLASS="com.kni.etl.ketl.transformation.DynamicTransformation">
				<IN>GetRawRow.*</IN>
				<OUT NAME="StudyDate">${StudyDate}</OUT>
				<OUT NAME="StudyTime">${StudyTime}</OUT>
				<OUT NAME="AccessionNumber">${AccessionNumber}</OUT>
				<OUT NAME="ModalitiesInStudy">${ModalitiesInStudy}</OUT>
				<OUT NAME="ReferringPhysiciansName">${ReferringPhysiciansName}</OUT>
				<OUT NAME="StudyDescription">${StudyDescription}</OUT>
				<OUT NAME="PatientsName">${PatientsName}</OUT>
				<OUT NAME="PatientsFName" DATATYPE="STRING">lookup("fooLKP",Math.abs(${PatientId}.hashCode()%20000),"FN")</OUT>
				<OUT NAME="PatientsLName" DATATYPE="STRING">lookup("fooLKP",Math.abs((${PatientId}+"!").hashCode()%20000),"LN")</OUT>
				<OUT NAME="PatientsAddress" DATATYPE="STRING">new java.util.Random().nextInt(5000)+" "+lookup("fooLKP",new java.util.Random().nextInt(20000),"AD")</OUT>
				<OUT NAME="PatientsCity" DATATYPE="STRING">lookup("fooLKP",new java.util.Random().nextInt(20000),"CT")</OUT>
				<OUT NAME="PatientsState" DATATYPE="STRING">lookup("fooLKP",new java.util.Random().nextInt(20000),"ST")</OUT>
				<OUT NAME="PatientId">${PatientId}</OUT>
				<OUT NAME="PatientsBirthDate">${PatientsBirthDate}</OUT>
				<OUT NAME="PatientsSex">${PatientsSex}==null?"N/A":${PatientsSex}</OUT>
				<OUT NAME="StudyInstanceUid">${StudyInstanceUid}</OUT>
				<OUT NAME="StudyId">${StudyId}</OUT>
				<OUT NAME="NumberOfStudyRelatedSeries">${NumberOfStudyRelatedSeries}</OUT>
				<OUT NAME="NumberOfStudyRelatedInstances">${NumberOfStudyRelatedInstances}</OUT>
				<OUT NAME="OtherPatientIds">${OtherPatientIds}</OUT>
				<OUT NAME="EthnicGroup">${EthnicGroup}</OUT>
				<OUT NAME="SeriesNumber">${SeriesNumber}</OUT>
				<OUT NAME="SeriesDescription">${SeriesDescription}</OUT>
				<OUT NAME="BodyPartExamined">${BodyPartExamined}</OUT>
				<OUT NAME="Modality">${Modality}</OUT>
				<OUT NAME="Curr_TS" DATATYPE="DATE">new java.util.Date()</OUT>
				<OUT NAME="PatientCountry">"US"</OUT>
				<OUT NAME="IssuerKey" DATATYPE="INTEGER">1</OUT>
				<OUT NAME="PatientMaritalStatus" DATATYPE="STRING">"N/A"</OUT>
				<OUT NAME="FullName" DATATYPE="STRING">lookup("fooLKP",Math.abs(${PatientId}.hashCode()%20000),"FN")+" "+lookup("fooLKP",Math.abs((${PatientId}+"!").hashCode()%20000),"LN")</OUT>
			</STEP>
			<STEP NAME="TransformPatient" BATCHDATA="TRUE" MODE="TABLEONLY" PERSISTENCE="JOB" CLASS="com.kni.etl.ketl.transformation.DimensionTransformation" xDEBUG="TRUE" TABLE="patient" PARAMETER_LIST="hlDB">
				<IN>AddPatientDetails.*</IN>
				<IN SK="1" NAME="PatientMRN">AddPatientDetails.PatientId</IN>
				<IN INSERT="TRUE" NAME="CreatedOn">AddPatientDetails.Curr_TS</IN>
				<IN UPDATE="TRUE" NAME="LastUpdatedOn">AddPatientDetails.Curr_TS</IN>
				<IN INSERT="TRUE" NAME="IssuerKey">AddPatientDetails.IssuerKey</IN>
				<IN INSERT="TRUE" NAME="DateOfBirth">AddPatientDetails.PatientsBirthDate</IN>
				<IN INSERT="TRUE" NAME="Gender">AddPatientDetails.PatientsSex</IN>
				<IN INSERT="TRUE" NAME="FirstName">AddPatientDetails.PatientsFName</IN>
				<IN INSERT="TRUE" NAME="LastName">AddPatientDetails.PatientsLName</IN>
				<IN INSERT="TRUE" NAME="EthnicGroup">AddPatientDetails.EthnicGroup</IN>
				<IN UPDATE="TRUE" NAME="Address1">AddPatientDetails.PatientsAddress</IN>
				<IN UPDATE="TRUE" NAME="City">AddPatientDetails.PatientsCity</IN>
				<IN UPDATE="TRUE" NAME="State">AddPatientDetails.PatientsState</IN>
				<IN UPDATE="TRUE" NAME="Country">AddPatientDetails.PatientCountry</IN>
				<IN INSERT="TRUE" NAME="FullName">AddPatientDetails.FullName</IN>
				<IN UPDATE="TRUE" NAME="MaritalStatus">AddPatientDetails.PatientMaritalStatus</IN>
				<OUT NAME="PatientKey" DATATYPE="INTEGER" PK="TRUE"/>
				<OUT>*</OUT>
			</STEP>
			<!-- <STEP NAME="Target" CLASS="com.kni.etl.ketl.writer.NullWriter"> -->
			<STEP NAME="Target" xTYPE="FULL" CLASS="com.kni.etl.ketl.writer.NullWriter">
				<IN>TransformPatient.PatientKey</IN>
				<IN>TransformPatient.FirstName</IN>
				<IN>TransformPatient.LastName</IN>
				<IN>TransformPatient.StudyId</IN>
			</STEP>
		</ACTION>
	</JOB>
</ETL>
