﻿<?xml version="1.0" ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output omit-xml-declaration="yes" indent="yes" />

<xsl:param name="patientFields" select="'#2000#2010#2020#2030#2031#2045#2050#2060#2070#2071#2072#2073#2074#2076'" />
<xsl:param name="encounterFields" select="'#3000#3001#3005#3006#3010#3020#3021#3022#3023#3024#3025#3026#3027#3030'" />
<xsl:param name="historyandriskFields" select="'#4000#4005#4010#4015#4020#4025#4030#4035#4040#4045#4050#4055#4060#4065#4070#4080#4085#4090'" />
<xsl:param name="clinicalevaluationFields" select="'#5000#5005#5006#5007#5008#5010#5015#5016#5020#5025#5026#5027#5028#5029#5030#5040#5045#5050#5055#5060#5065#5100#5200#5201#5202#5210#5211#5212#5220#5221#5222#5230#5231#5232#5240#5241#5250#5251#5300#5301'" />
<xsl:param name="procedureinfoFields" select="'#5305#5310#5315#5320#5321#5325#5330#5335#5340#5345#5350#5355#5356'" />
<xsl:param name="DiagnosticCatheterization" select="'#5305#5310#5315#5320#5321#5325#5330#5335#5340#5345#5350#5355#5356'" />
<xsl:param name="CoronaryAnatomy" select="'#6100#6110#6111#6120#6121#6130#6131#6140#6141#6150#6151#6160#6161#6170#6171#6180#6181#6190#6191#6200#6201#6210#6211'"/>
<xsl:param name="Pci" select="'#7000#7005#7010#7015#7020#7025#7026#7030#7035#7040#7045#7046#7050#7051#7055#7060#7061#7065'"/>
<xsl:param name="Lesions" select="'#7100#7105#7110#7115#7120#7125#7130#7135#7140#7145#7150#7155#7160#7165#7170#7175#7180#7185#7190#7195#7200#7205#7210#7215#7220#7225#7230#7235#7240#7255#7260'"/>
<xsl:param name="Laboratory" select="'#7300#7301#7302#7305#7306#7310#7311#7315#7316#7320#7321#7325#7326#7327#7330#7331#7335#7336#7340#7341'"/>
<xsl:param name="PostProcedureEvents" select="'#8000#8005#8010#8015#8021#8025#8030#8035#8040#8041#8050#8055#8060#8061#8070#8080#8090#8100'"/>
<xsl:param name="Discharge" select="'#9000#9005#9010#9015#9020#9021#9025#9030#9031#9035#9040#9045#9050#9055#9060#9065'"/>

<xsl:template match="data[data]">
<Submission>
    <PartID>302834</PartID>
    <PartName>University of Washington</PartName>
    <PartNPI>1669639712</PartNPI>
    <Timeframe>2015Q3</Timeframe>
    <Xmsnld>3</Xmsnld>
    <VendorId>LUMEDX</VendorId>
    <VendorVer>v4</VendorVer>
    <RegistryId>ACC-NCDR-CathPCI</RegistryId>
    <RegistryVer>4.4</RegistryVer>
    <Patients>
		<Patient>
		<xsl:for-each select="data/data[contains($patientFields, FieldId)]">
			<!-- Output the patient's properties -->
			<xsl:variable name="patientFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
			<xsl:variable name="patientFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
			<xsl:call-template name="createOutputElement">
				<xsl:with-param name="fieldId" select="$patientFieldId" />
				<xsl:with-param name="fieldValue" select="$patientFieldValue" />
			</xsl:call-template>
		</xsl:for-each>
		<!-- (you may want to remove this xsl:if test, if encounter must be inconditionally output) 
                     test if there is at least one fied pertaining to encounter... -->
		<xsl:if test="count(data/data[contains($encounterFields, FieldId)]) &gt; 0">
			<Episodes>
				<Episode>
					<xsl:for-each select="data/data[contains($encounterFields, FieldId)]">
						<!-- Output the encounter's properties -->
						<xsl:variable name="encounterFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
						<xsl:variable name="encounterFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
						<xsl:call-template name="createOutputElement">
							<xsl:with-param name="fieldId" select="$encounterFieldId" />
							<xsl:with-param name="fieldValue" select="$encounterFieldValue" />
						</xsl:call-template>

					</xsl:for-each>
					<xsl:if test="count(data/data[contains($historyandriskFields, FieldId)]) &gt; 0">
					<HistoryandRiskFactors>
						<xsl:for-each select="data/data[contains($historyandriskFields, FieldId)]">
						<!-- Output the encounter's properties -->
							<xsl:variable name="historyandriskFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
							<xsl:variable name="historyandriskFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
							<xsl:call-template name="createOutputElement">
								<xsl:with-param name="fieldId" select="$historyandriskFieldId" />
								<xsl:with-param name="fieldValue" select="$historyandriskFieldValue" />
							</xsl:call-template>
						</xsl:for-each>
					</HistoryandRiskFactors>
					</xsl:if>
					<CathLabVisits>
						<CathLabVisit>
							<ClinicalEvaluation>
								<xsl:if test="count(data/data[contains($clinicalevaluationFields, FieldId)]) &gt; 0">
									<xsl:for-each select="data/data[contains($clinicalevaluationFields, FieldId)]">
										<!-- Output the encounter's properties -->
										<xsl:variable name="clinicalevaluationFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
										<xsl:variable name="clinicalevaluationFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
										<xsl:call-template name="createOutputElement">
											<xsl:with-param name="fieldId" select="$clinicalevaluationFieldId" />
											<xsl:with-param name="fieldValue" select="$clinicalevaluationFieldValue" />
										</xsl:call-template>
									</xsl:for-each>
								</xsl:if>
							</ClinicalEvaluation>
						<ProcedureInformation>
							<xsl:if test="count(data/data[contains($procedureinfoFields, FieldId)]) &gt; 0">
								<xsl:for-each select="data/data[contains($procedureinfoFields, FieldId)]">
									<!-- Output the encounter's properties -->
									<xsl:variable name="procedureinfoFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
									<xsl:variable name="procedureinfoFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
									<xsl:call-template name="createOutputElement">
										<xsl:with-param name="fieldId" select="$procedureinfoFieldId" />
										<xsl:with-param name="fieldValue" select="$procedureinfoFieldValue" />
									</xsl:call-template>
								</xsl:for-each>
							</xsl:if>
						</ProcedureInformation>
						<DiagnosticCatheterization>
							<xsl:if test="count(data/data[contains($DiagnosticCatheterization, FieldId)]) &gt; 0">
								<xsl:for-each select="data/data[contains($DiagnosticCatheterization, FieldId)]">
									<!-- Output the encounter's properties -->
									<xsl:variable name="DiagnosticCatheterizationFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
									<xsl:variable name="DiagnosticCatheterizationFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
									<xsl:call-template name="createOutputElement">
										<xsl:with-param name="fieldId" select="$DiagnosticCatheterizationFieldId" />
										<xsl:with-param name="fieldValue" select="$DiagnosticCatheterizationFieldValue" />
									</xsl:call-template>
								</xsl:for-each>
							</xsl:if>
						</DiagnosticCatheterization>
						<CoronaryAnatomy>
							<xsl:if test="count(data/data[contains($CoronaryAnatomy, FieldId)]) &gt; 0">
								<xsl:for-each select="data/data[contains($CoronaryAnatomy, FieldId)]">
									<!-- Output the encounter's properties -->
									<xsl:variable name="CoronaryAnatomyFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
									<xsl:variable name="CoronaryAnatomyFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
									<xsl:call-template name="createOutputElement">
										<xsl:with-param name="fieldId" select="$CoronaryAnatomyFieldId" />
										<xsl:with-param name="fieldValue" select="$CoronaryAnatomyFieldValue" />
									</xsl:call-template>
								</xsl:for-each>
							</xsl:if>
						</CoronaryAnatomy>
						<Pci>
							<xsl:if test="count(data/data[contains($Pci, FieldId)]) &gt; 0">
								<xsl:for-each select="data/data[contains($Pci, FieldId)]">
									<!-- Output the encounter's properties -->
									<xsl:variable name="PciFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
									<xsl:variable name="PciFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
									<xsl:call-template name="createOutputElement">
										<xsl:with-param name="fieldId" select="$PciFieldId" />
										<xsl:with-param name="fieldValue" select="$PciFieldValue" />
									</xsl:call-template>
								</xsl:for-each>
							</xsl:if>
						</Pci>
						<Lesions>
							<xsl:if test="count(data/data[contains($Lesions, FieldId)]) &gt; 0">
								<xsl:for-each select="data/data[contains($Lesions, FieldId)]">
									<!-- Output the encounter's properties -->
									<xsl:variable name="LesionsFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
									<xsl:variable name="LesionsFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
									<xsl:call-template name="createOutputElement">
										<xsl:with-param name="fieldId" select="$LesionsFieldId" />
										<xsl:with-param name="fieldValue" select="$LesionsFieldValue" />
									</xsl:call-template>
								</xsl:for-each>
							</xsl:if>
						</Lesions>
						<Laboratory>
							<xsl:if test="count(data/data[contains($Laboratory, FieldId)]) &gt; 0">
								<xsl:for-each select="data/data[contains($Laboratory, FieldId)]">
								<!-- Output the encounter's properties -->
									<xsl:variable name="LaboratoryFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
									<xsl:variable name="LaboratoryFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
									<xsl:call-template name="createOutputElement">
										<xsl:with-param name="fieldId" select="$LaboratoryFieldId" />
										<xsl:with-param name="fieldValue" select="$LaboratoryFieldValue" />
									</xsl:call-template>
								</xsl:for-each>
							</xsl:if>
						</Laboratory>
						<PostProcedureEvents>
							<xsl:if test="count(data/data[contains($PostProcedureEvents, FieldId)]) &gt; 0">
								<xsl:for-each select="data/data[contains($PostProcedureEvents, FieldId)]">
									<!-- Output the encounter's properties -->
									<xsl:variable name="PostProcedureEventsFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
									<xsl:variable name="PostProcedureEventsFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
									<xsl:call-template name="createOutputElement">
										<xsl:with-param name="fieldId" select="$PostProcedureEventsFieldId" />
										<xsl:with-param name="fieldValue" select="$PostProcedureEventsFieldValue" />
									</xsl:call-template>
								</xsl:for-each>
							</xsl:if>
						</PostProcedureEvents>
						</CathLabVisit>
					</CathLabVisits>
						<Discharge>
							<xsl:if test="count(data/data[contains($Discharge, FieldId)]) &gt; 0">
							<xsl:for-each select="data/data[contains($Discharge, FieldId)]">
									<!-- Output the encounter's properties -->
									<xsl:variable name="DischargeFieldId"><xsl:value-of select="string(./FieldId)" /></xsl:variable>
									<xsl:variable name="DischargeFieldValue"><xsl:value-of select="string(./FieldValue)" /></xsl:variable>
									<xsl:call-template name="createOutputElement">
										<xsl:with-param name="fieldId" select="$DischargeFieldId" />
										<xsl:with-param name="fieldValue" select="$DischargeFieldValue" />
									</xsl:call-template>
								</xsl:for-each>
							</xsl:if>
						</Discharge>
				</Episode>
			</Episodes>
		</xsl:if>
		</Patient>
	</Patients>
</Submission>
</xsl:template>

<xsl:template name="createOutputElement">
	<xsl:param name="fieldId" />
	<xsl:param name="fieldValue" />

	<xsl:variable name="outputName">
	<xsl:choose>
<xsl:when test="number($fieldId) = 1000">PartID</xsl:when>
<xsl:when test="number($fieldId) = 1010">PartName</xsl:when>
<xsl:when test="number($fieldId) = 1016">PartNPI</xsl:when>
<xsl:when test="number($fieldId) = 1020">Timeframe</xsl:when>
<xsl:when test="number($fieldId) = 1040">Xmsnld</xsl:when>
<xsl:when test="number($fieldId) = 1050">VendorId</xsl:when>
<xsl:when test="number($fieldId) = 1060">VendorVer</xsl:when>
<xsl:when test="number($fieldId) = 1070">RegistryId</xsl:when>
<xsl:when test="number($fieldId) = 1080">RegistryVer</xsl:when>
<xsl:when test="number($fieldId) = 1200">Aux0</xsl:when>
<xsl:when test="number($fieldId) = 2000">LastName</xsl:when>
<xsl:when test="number($fieldId) = 2010">FirstName</xsl:when>
<xsl:when test="number($fieldId) = 2020">MidName</xsl:when>
<xsl:when test="number($fieldId) = 2030">SSN</xsl:when>
<xsl:when test="number($fieldId) = 2031">SSNNA</xsl:when>
<xsl:when test="number($fieldId) = 2040">NCDRPatientID</xsl:when>
<xsl:when test="number($fieldId) = 2045">OtherID</xsl:when>
<xsl:when test="number($fieldId) = 2050">DOB</xsl:when>
<xsl:when test="number($fieldId) = 2060">Sex</xsl:when>
<xsl:when test="number($fieldId) = 2070">RaceWhite</xsl:when>
<xsl:when test="number($fieldId) = 2071">RaceBlack</xsl:when>
<xsl:when test="number($fieldId) = 2072">RaceAsian</xsl:when>
<xsl:when test="number($fieldId) = 2073">RaceAmIndian</xsl:when>
<xsl:when test="number($fieldId) = 2074">RaceNatHaw</xsl:when>
<xsl:when test="number($fieldId) = 2076">HispOrig</xsl:when>
<xsl:when test="number($fieldId) = 2500">Aux1</xsl:when>
<xsl:when test="number($fieldId) = 2501">Aux2</xsl:when>
<xsl:when test="number($fieldId) = 3000">ArrivalDate</xsl:when>
<xsl:when test="number($fieldId) = 3001">ArrivalTime</xsl:when>
<xsl:when test="number($fieldId) = 3005">ZipCode</xsl:when>
<xsl:when test="number($fieldId) = 3006">ZipCodeNA</xsl:when>
<xsl:when test="number($fieldId) = 3010">AdmtSource</xsl:when>
<xsl:when test="number($fieldId) = 3020">InsPrivate</xsl:when>
<xsl:when test="number($fieldId) = 3021">InsMedicare</xsl:when>
<xsl:when test="number($fieldId) = 3022">InsMedicaid</xsl:when>
<xsl:when test="number($fieldId) = 3023">InsMilitary</xsl:when>
<xsl:when test="number($fieldId) = 3024">InsState</xsl:when>
<xsl:when test="number($fieldId) = 3025">InsIHS</xsl:when>
<xsl:when test="number($fieldId) = 3026">InsNonUS</xsl:when>
<xsl:when test="number($fieldId) = 3027">InsNone</xsl:when>
<xsl:when test="number($fieldId) = 3030">HIC</xsl:when>
<xsl:when test="number($fieldId) = 3040">Aux7</xsl:when>
<xsl:when test="number($fieldId) = 3045">Aux8</xsl:when>
<xsl:when test="number($fieldId) = 4000">Smoker</xsl:when>
<xsl:when test="number($fieldId) = 4005">Hypertension</xsl:when>
<xsl:when test="number($fieldId) = 4010">Dyslipidemia</xsl:when>
<xsl:when test="number($fieldId) = 4015">FamilyHxCAD</xsl:when>
<xsl:when test="number($fieldId) = 4020">PriorMI</xsl:when>
<xsl:when test="number($fieldId) = 4025">PriorHF</xsl:when>
<xsl:when test="number($fieldId) = 4030">ValveSurgery</xsl:when>
<xsl:when test="number($fieldId) = 4035">PriorPCI</xsl:when>
<xsl:when test="number($fieldId) = 4040">PriorPCIDate</xsl:when>
<xsl:when test="number($fieldId) = 4045">PriorCABG</xsl:when>
<xsl:when test="number($fieldId) = 4050">PriorCABGDate</xsl:when>
<xsl:when test="number($fieldId) = 4055">Height</xsl:when>
<xsl:when test="number($fieldId) = 4060">Weight</xsl:when>
<xsl:when test="number($fieldId) = 4065">CurrentDialysis</xsl:when>
<xsl:when test="number($fieldId) = 4070">PriorCVD</xsl:when>
<xsl:when test="number($fieldId) = 4075">PriorPAD</xsl:when>
<xsl:when test="number($fieldId) = 4080">ChronicLungDisease</xsl:when>
<xsl:when test="number($fieldId) = 4085">Diabetes</xsl:when>
<xsl:when test="number($fieldId) = 4090">DiabetesControl</xsl:when>
<xsl:when test="number($fieldId) = 5000">CADPresentation</xsl:when>
<xsl:when test="number($fieldId) = 5005">OnsetDate</xsl:when>
<xsl:when test="number($fieldId) = 5006">OnsetTime</xsl:when>
<xsl:when test="number($fieldId) = 5007">OnsetTimeEst</xsl:when>
<xsl:when test="number($fieldId) = 5008">OnsetTimeNA</xsl:when>
<xsl:when test="number($fieldId) = 5010">ThromTherapy</xsl:when>
<xsl:when test="number($fieldId) = 5015">ThromDate</xsl:when>
<xsl:when test="number($fieldId) = 5016">ThromTime</xsl:when>
<xsl:when test="number($fieldId) = 5020">AnginalClass</xsl:when>
<xsl:when test="number($fieldId) = 5025">AntiAnginalMed</xsl:when>
<xsl:when test="number($fieldId) = 5026">AA_BetaBlockers</xsl:when>
<xsl:when test="number($fieldId) = 5027">AA_CaChannel</xsl:when>
<xsl:when test="number($fieldId) = 5028">AA_LongActingNitrates</xsl:when>
<xsl:when test="number($fieldId) = 5029">AA_Ranolazine</xsl:when>
<xsl:when test="number($fieldId) = 5030">AA_OtherAgent</xsl:when>
<xsl:when test="number($fieldId) = 5040">Prior2weeksHF</xsl:when>
<xsl:when test="number($fieldId) = 5045">Prior2weekNYHA</xsl:when>
<xsl:when test="number($fieldId) = 5050">CardioLVSD</xsl:when>
<xsl:when test="number($fieldId) = 5055">PeriopEval</xsl:when>
<xsl:when test="number($fieldId) = 5060">PriorCardioShock</xsl:when>
<xsl:when test="number($fieldId) = 5065">PriorCardiacArrest</xsl:when>
<xsl:when test="number($fieldId) = 5100">StressImaging</xsl:when>
<xsl:when test="number($fieldId) = 5200">ExerciseStressTest</xsl:when>
<xsl:when test="number($fieldId) = 5201">ExerciseTestResult</xsl:when>
<xsl:when test="number($fieldId) = 5202">ExerciseTestRisk</xsl:when>
<xsl:when test="number($fieldId) = 5210">StressEcho</xsl:when>
<xsl:when test="number($fieldId) = 5211">StressEchoResult</xsl:when>
<xsl:when test="number($fieldId) = 5212">StressEchoRisk</xsl:when>
<xsl:when test="number($fieldId) = 5220">SPECTStressTest</xsl:when>
<xsl:when test="number($fieldId) = 5221">SPECTStressResult</xsl:when>
<xsl:when test="number($fieldId) = 5222">SPECTStressRisk</xsl:when>
<xsl:when test="number($fieldId) = 5230">CMRStressTest</xsl:when>
<xsl:when test="number($fieldId) = 5231">CMRStressResults</xsl:when>
<xsl:when test="number($fieldId) = 5232">CMRStressRisk</xsl:when>
<xsl:when test="number($fieldId) = 5240">CardiacCTA</xsl:when>
<xsl:when test="number($fieldId) = 5241">CardCTAResults</xsl:when>
<xsl:when test="number($fieldId) = 5250">CorCalciumScore</xsl:when>
<xsl:when test="number($fieldId) = 5251">CalciumScore</xsl:when>
<xsl:when test="number($fieldId) = 5300">ProcedureDate</xsl:when>
<xsl:when test="number($fieldId) = 5301">ProcedureTime</xsl:when>
<xsl:when test="number($fieldId) = 5305">PCI</xsl:when>
<xsl:when test="number($fieldId) = 5310">DiagnosticCath</xsl:when>
<xsl:when test="number($fieldId) = 5315">OtherProcedure</xsl:when>
<xsl:when test="number($fieldId) = 5320">FluroTime</xsl:when>
<xsl:when test="number($fieldId) = 5321">FluroDose</xsl:when>
<xsl:when test="number($fieldId) = 5325">ContrastVol</xsl:when>
<xsl:when test="number($fieldId) = 5330">IABP</xsl:when>
<xsl:when test="number($fieldId) = 5335">IABPTiming</xsl:when>
<xsl:when test="number($fieldId) = 6035">CardiacTransType</xsl:when>
<xsl:when test="number($fieldId) = 6040">DCathStatus</xsl:when>
<xsl:when test="number($fieldId) = 6045">DCathTreatment</xsl:when>
<xsl:when test="number($fieldId) = 6100">Dominance</xsl:when>
<xsl:when test="number($fieldId) = 6110">LMStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6111">LMNA</xsl:when>
<xsl:when test="number($fieldId) = 6120">ProxLADStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6121">ProxLADNA</xsl:when>
<xsl:when test="number($fieldId) = 6130">MidDistalLADStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6131">MidDistalLADNA</xsl:when>
<xsl:when test="number($fieldId) = 6140">CIRCStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6141">CIRCNA</xsl:when>
<xsl:when test="number($fieldId) = 6150">RCAStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6151">RCANA</xsl:when>
<xsl:when test="number($fieldId) = 6160">RamusStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6161">RamusNA</xsl:when>
<xsl:when test="number($fieldId) = 6170">ProxLADGtStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6171">ProxLADGNA</xsl:when>
<xsl:when test="number($fieldId) = 6180">MidDistalLADGStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6181">MidDistalLADGNA</xsl:when>
<xsl:when test="number($fieldId) = 6190">CIRCGStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6191">CIRCGNA</xsl:when>
<xsl:when test="number($fieldId) = 6200">RCAGStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6201">RCAGNA</xsl:when>
<xsl:when test="number($fieldId) = 6210">RamusGStenosis</xsl:when>
<xsl:when test="number($fieldId) = 6211">RamusGNA</xsl:when>
<xsl:when test="number($fieldId) = 7000">PCILName</xsl:when>
<xsl:when test="number($fieldId) = 7005">PCIFName</xsl:when>
<xsl:when test="number($fieldId) = 7010">PCIMName</xsl:when>
<xsl:when test="number($fieldId) = 7015">PCINPI</xsl:when>
<xsl:when test="number($fieldId) = 7020">PCIStatus</xsl:when>
<xsl:when test="number($fieldId) = 7025">PrePCILVEF</xsl:when>
<xsl:when test="number($fieldId) = 7026">PrePCILVEFNA</xsl:when>
<xsl:when test="number($fieldId) = 7030">PCICardioShock</xsl:when>
<xsl:when test="number($fieldId) = 7035">PCIndication</xsl:when>
<xsl:when test="number($fieldId) = 7040">StemiFirstNoted</xsl:when>
<xsl:when test="number($fieldId) = 7045">SubECGDate</xsl:when>
<xsl:when test="number($fieldId) = 7046">SubECGTime</xsl:when>
<xsl:when test="number($fieldId) = 7050">FirstDevActiDate</xsl:when>
<xsl:when test="number($fieldId) = 7051">FirstDevActiTime</xsl:when>
<xsl:when test="number($fieldId) = 7055">PatientTransPCI</xsl:when>
<xsl:when test="number($fieldId) = 7060">EDPresentDate</xsl:when>
<xsl:when test="number($fieldId) = 7061">EDPresentTime</xsl:when>
<xsl:when test="number($fieldId) = 7065">PCIDelayReason</xsl:when>
<xsl:when test="number($fieldId) = 7100">LesionCounter</xsl:when>
<xsl:when test="number($fieldId) = 7105">SegmentID</xsl:when>
<xsl:when test="number($fieldId) = 7110">CulpritArtery</xsl:when>
<xsl:when test="number($fieldId) = 7115">StenosisPriorTreat</xsl:when>
<xsl:when test="number($fieldId) = 7120">ChronicOcclusion</xsl:when>
<xsl:when test="number($fieldId) = 7125">IVUS</xsl:when>
<xsl:when test="number($fieldId) = 7130">FFR</xsl:when>
<xsl:when test="number($fieldId) = 7135">FFRatio</xsl:when>
<xsl:when test="number($fieldId) = 7140">PreProcTIMI</xsl:when>
<xsl:when test="number($fieldId) = 7145">PrevTreatedLesion</xsl:when>
<xsl:when test="number($fieldId) = 7150">PrevLesionTime</xsl:when>
<xsl:when test="number($fieldId) = 7155">PreviousStent</xsl:when>
<xsl:when test="number($fieldId) = 7160">InRestenosis</xsl:when>
<xsl:when test="number($fieldId) = 7165">InThrombosis</xsl:when>
<xsl:when test="number($fieldId) = 7170">StentType</xsl:when>
<xsl:when test="number($fieldId) = 7175">LesionGraft</xsl:when>
<xsl:when test="number($fieldId) = 7180">LocGraft</xsl:when>
<xsl:when test="number($fieldId) = 7185">LesonComplexty</xsl:when>
<xsl:when test="number($fieldId) = 7190">LesionLength</xsl:when>
<xsl:when test="number($fieldId) = 7195">Thrombus</xsl:when>
<xsl:when test="number($fieldId) = 7200">BifurcationLesion</xsl:when>
<xsl:when test="number($fieldId) = 7205">GuidewireLesion</xsl:when>
<xsl:when test="number($fieldId) = 7210">StenosisPostProc</xsl:when>
<xsl:when test="number($fieldId) = 7215">PostProcTIMI</xsl:when>
<xsl:when test="number($fieldId) = 7220">DeviceDeployed</xsl:when>
<xsl:when test="number($fieldId) = 7225">ICDevID</xsl:when>
<xsl:when test="number($fieldId) = 7230">ICDevCounter</xsl:when>
<xsl:when test="number($fieldId) = 7235">DeviceDiameter</xsl:when>
<xsl:when test="number($fieldId) = 7240">DeviceLength</xsl:when>
<xsl:when test="number($fieldId) = 7245">DissectionSeg</xsl:when>
<xsl:when test="number($fieldId) = 7250">PerfSeg</xsl:when>
<xsl:when test="number($fieldId) = 7255">Aux5</xsl:when>
<xsl:when test="number($fieldId) = 7260">Aux6</xsl:when>
<xsl:when test="number($fieldId) = 7300">PreProcCKMB</xsl:when>
<xsl:when test="number($fieldId) = 7301">PreProcCKND</xsl:when>
<xsl:when test="number($fieldId) = 7302">PreProcCKMBNM</xsl:when>
<xsl:when test="number($fieldId) = 7305">PreProcTnl</xsl:when>
<xsl:when test="number($fieldId) = 7306">PreProcTnlND</xsl:when>
<xsl:when test="number($fieldId) = 7310">PreProcTnT</xsl:when>
<xsl:when test="number($fieldId) = 7311">PreProcTnTND</xsl:when>
<xsl:when test="number($fieldId) = 7315">PreProcCreat</xsl:when>
<xsl:when test="number($fieldId) = 7316">PreProcCreatND</xsl:when>
<xsl:when test="number($fieldId) = 7320">PreProcHgb</xsl:when>
<xsl:when test="number($fieldId) = 7321">PreProcHgbND</xsl:when>
<xsl:when test="number($fieldId) = 7325">PostProcCKMB</xsl:when>
<xsl:when test="number($fieldId) = 7326">PostProcCKMBND</xsl:when>
<xsl:when test="number($fieldId) = 7327">PostprocCKMBNM</xsl:when>
<xsl:when test="number($fieldId) = 7330">PostProcTnl</xsl:when>
<xsl:when test="number($fieldId) = 7331">PostProcTnlND</xsl:when>
<xsl:when test="number($fieldId) = 7335">PostProcTnT</xsl:when>
<xsl:when test="number($fieldId) = 7336">PostProcTnTND</xsl:when>
<xsl:when test="number($fieldId) = 7340">PostProcCreat</xsl:when>
<xsl:when test="number($fieldId) = 7341">PostProcCreatND</xsl:when>
<xsl:when test="number($fieldId) = 9015">CABGLocation</xsl:when>
<xsl:when test="number($fieldId) = 9020">CABGDate</xsl:when>
<xsl:when test="number($fieldId) = 9021">CABGTime</xsl:when>
<xsl:when test="number($fieldId) = 9025">OtherMajorSurgery</xsl:when>
<xsl:when test="number($fieldId) = 9030">DCLVEF</xsl:when>
<xsl:when test="number($fieldId) = 9031">DCLVEFNA</xsl:when>
<xsl:when test="number($fieldId) = 9035">DCDate</xsl:when>
<xsl:when test="number($fieldId) = 9040">DCStatus</xsl:when>
<xsl:when test="number($fieldId) = 9045">DCLocation</xsl:when>
<xsl:when test="number($fieldId) = 9050">DC_CardRehab</xsl:when>
<xsl:when test="number($fieldId) = 9055">DeathLab</xsl:when>
<xsl:when test="number($fieldId) = 9060">DeathCause</xsl:when>
<xsl:when test="number($fieldId) = 9065">HospStatus</xsl:when>
<xsl:when test="number($fieldId) = 9500">ProcedureMeds</xsl:when>
<xsl:when test="number($fieldId) = 9505">DischargeMeds</xsl:when>
<xsl:when test="number($fieldId) = 9510">MedAdmin</xsl:when>
<xsl:when test="number($fieldId) = 9515">MedID</xsl:when>
<xsl:when test="number($fieldId) = 5340">MVSupport</xsl:when>
<xsl:when test="number($fieldId) = 5345">MVSupportTiming</xsl:when>
<xsl:when test="number($fieldId) = 5350">AcessSite</xsl:when>
<xsl:when test="number($fieldId) = 5355">ClosureDevID</xsl:when>
<xsl:when test="number($fieldId) = 5356">ClosureMethodNA</xsl:when>
<xsl:when test="number($fieldId) = 5360">ClosureCounter</xsl:when>
<xsl:when test="number($fieldId) = 5400">Aux3</xsl:when>
<xsl:when test="number($fieldId) = 5405">Aux4</xsl:when>
<xsl:when test="number($fieldId) = 6000">DCathLName</xsl:when>
<xsl:when test="number($fieldId) = 6005">DCathFName</xsl:when>
<xsl:when test="number($fieldId) = 6010">DCathMName</xsl:when>
<xsl:when test="number($fieldId) = 6015">DCathNPI</xsl:when>
<xsl:when test="number($fieldId) = 6020">DiagCorAngio</xsl:when>
<xsl:when test="number($fieldId) = 6025">LeftHeartCath</xsl:when>
<xsl:when test="number($fieldId) = 6030">CardiacTransplant</xsl:when>
<xsl:when test="number($fieldId) = 7345">PostProcHgb</xsl:when>
<xsl:when test="number($fieldId) = 7346">PostProcHgbND</xsl:when>
<xsl:when test="number($fieldId) = 8000">PostMI</xsl:when>
<xsl:when test="number($fieldId) = 8005">PostCardiogenicShock</xsl:when>
<xsl:when test="number($fieldId) = 8010">PostHF</xsl:when>
<xsl:when test="number($fieldId) = 8015">PostCVA</xsl:when>
<xsl:when test="number($fieldId) = 8021">PostHemStroke</xsl:when>
<xsl:when test="number($fieldId) = 8025">PostTamponade</xsl:when>
<xsl:when test="number($fieldId) = 8030">PostDialysis</xsl:when>
<xsl:when test="number($fieldId) = 8035">PostOtherVasComp</xsl:when>
<xsl:when test="number($fieldId) = 8040">PostTransfusion</xsl:when>
<xsl:when test="number($fieldId) = 8041">HgbPriorTransfusion</xsl:when>
<xsl:when test="number($fieldId) = 8050">PostBleed</xsl:when>
<xsl:when test="number($fieldId) = 8055">PostBleedAccessSite</xsl:when>
<xsl:when test="number($fieldId) = 8060">PostBleedHematoma</xsl:when>
<xsl:when test="number($fieldId) = 8061">PostBleedHemaSize</xsl:when>
<xsl:when test="number($fieldId) = 8070">PostRetroBleed</xsl:when>
<xsl:when test="number($fieldId) = 8080">PostGIBleed</xsl:when>
<xsl:when test="number($fieldId) = 8090">PostGUBleed</xsl:when>
<xsl:when test="number($fieldId) = 8100">PostOtherBleed</xsl:when>
<xsl:when test="number($fieldId) = 9000">CABG</xsl:when>
<xsl:when test="number($fieldId) = 9005">CABGStatus</xsl:when>
<xsl:when test="number($fieldId) = 9010">CABGIndication</xsl:when>
		<!-- Etc -->
		<xsl:otherwise></xsl:otherwise>
	</xsl:choose>
	</xsl:variable>

	<xsl:if test="$outputName">
		<xsl:if test="$outputName != ''">
		<!-- all good, we could map "fieldId" to "outputName" -->
		<xsl:element name="{$outputName}"><xsl:value-of select="$fieldValue" /></xsl:element>
	</xsl:if>
	</xsl:if>
</xsl:template>

</xsl:stylesheet>