<?xml version="1.0" encoding="UTF-8"?>
<!--

Sylesheet for CDA clinical documents
consists root template and header templates
-->
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:urn="urn:hl7-org:v3" xmlns:ext="urn:hl7-EE-DL-Ext:v1">
	<xsl:output method="html" version="1.0" encoding="UTF-8" omit-xml-declaration="yes" indent="yes" media-type="text/html"/>
	<!--

	Include common and content stylesheets
	-->
	<xsl:include href="includes.xsl"/>
	<!-- 

	main template for document root
	-->
	<xsl:template name="root" match="/">
		<xsl:apply-templates select="urn:ClinicalDocument"/>
		<xsl:apply-templates select="urn:PORR_IN000001UV01"/>
	</xsl:template>
	<!--

	Template for ClinicalDocument (root element)
	-->
	<xsl:template name="ClinicalDocument" match="urn:ClinicalDocument">
		<html>
			<head>
				<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
				<title>
					<xsl:value-of select="urn:title"/>
					<xsl:text> nr </xsl:text>
					<xsl:value-of select="urn:id/@extension"/>
				</title>
				<link href="http://pub.e-tervis.ee/standards2/Standards/3.0/CSS/styles.css" rel="stylesheet" type="text/css"/>
			</head>
			<body>
				<table width="100%" id="mainTable">
					<xsl:if test="urn:setId">
						<tr>
							<td class="header">
							<xsl:choose>
							<xsl:when test="urn:code[@code='22' or @code='23' or @code='24' or @code='25' or @code='26' or @code='27']">Digiloo ravijuhtum nr  </xsl:when>
							<xsl:when test="urn:code[@code='19' or @code='20' or @code='21']">Digiloo rasedusjuhtum nr  </xsl:when>
							<xsl:otherwise>Digiloo haigusjuhtum nr  </xsl:otherwise>
							</xsl:choose>
							<xsl:value-of select="urn:setId/@extension"/>
							</td>
						</tr>
					</xsl:if>
					<tr>
						<td class="mainTitle">
							<xsl:value-of select="urn:title"/>
							<xsl:text> nr </xsl:text>
							<xsl:value-of select="urn:id/@extension"/>
							<xsl:if test="urn:versionNumber">
							<xsl:text> versioon </xsl:text>
							<xsl:value-of select="urn:versionNumber/@value"/>
							</xsl:if>
						</td>
					</tr>
					<tr>
						<td>
							<xsl:call-template name="commonGeneral"/>
						</td>
					</tr>
					<xsl:if test="urn:code[@code='9']">
						<tr>
							<td>
								<xsl:call-template name="applicationDate"/>
							</td>
						</tr>
					</xsl:if>
					<!-- Select document type and apply corresponding template -->
					<xsl:call-template name="chooseDocument"/>
					<xsl:if test="urn:code[@code!='9']">
						<tr>
							<td class="tableBlock">
								<table>
									<tr>
										<td>
											<span class="blockLabel">Dokument koostatud</span>
											<xsl:text> </xsl:text>
											<span class="rowValue">
												<xsl:call-template name="dateFormat">
													<xsl:with-param name="date" select="urn:effectiveTime/@value"/>
													<xsl:with-param name="format" select="'time'"/>
												</xsl:call-template>
											</span>
										</td>
									</tr>
									<xsl:if test="urn:custodian/urn:assignedCustodian/urn:representedCustodianOrganization/urn:id/@extension='DL'">
									<tr>
										<td colspan="6" class="blockLabel">Vastutaja: Digitaalse terviseloo infosüsteem</td>
									</tr>
									</xsl:if>
									<!--välja kommenteeritud. Autor lisatud asutuse juurde
									<tr>
										<td>
											<xsl:apply-templates select="urn:author/urn:assignedAuthor" mode="header"/>
										</td>
									</tr>
-->
									<tr>
										<td>
											<span class="blockLabel">Dokumendi keel</span>
											<xsl:text> </xsl:text>
											<span class="rowValue">
												<xsl:value-of select="urn:languageCode/@code"/>
											</span>
										</td>
									</tr>
									<tr>
										<td>
											<span class="blockLabel">Konfidentsiaalsus:</span>
										</td>
									</tr>
									<tr>
										<td>
											<table>
												<tr>
													<td class="rowTitle">Patsiendile</td>
													<td class="rowTValue">
														<xsl:value-of select="urn:confidentialityCode/@displayName"/>
													</td>
												</tr>
												<xsl:if test="urn:confidentialityCode/urn:translation[@codeSystem='1.3.6.1.4.1.28284.6.2.2.37.1']">
													<tr>
														<td class="rowTitle">Eestkostjale/usaldusisikule</td>
														<td class="rowTValue">
															<xsl:value-of select="urn:confidentialityCode/urn:translation[@codeSystem='1.3.6.1.4.1.28284.6.2.2.37.1']/@displayName"/>
														</td>
													</tr>
												</xsl:if>
												<xsl:if test="urn:confidentialityCode/urn:translation[@codeSystem='1.3.6.1.4.1.28284.6.2.2.39.1']">
													<tr>
														<td class="rowTitle">Meditsiinitöötajale</td>
														<td class="rowTValue">
															<xsl:value-of select="urn:confidentialityCode/urn:translation[@codeSystem='1.3.6.1.4.1.28284.6.2.2.39.1']/@displayName"/>
														</td>
													</tr>
												</xsl:if>
											</table>
										</td>
									</tr>
								</table>
							</td>
						</tr>
					</xsl:if>
					<xsl:if test="urn:dataEnterer">
					<xsl:if test="urn:code[@code!='9']">
					<tr>
						<td class="tableBlock">
							<table>
								<tr>
									<td>
										<span class="blockLabel">Dokument sisestatud</span>
										<xsl:text> </xsl:text>
										<span class="rowValue">
											<xsl:call-template name="dateFormat">
												<xsl:with-param name="date" select="urn:dataEnterer/urn:time/@value"/>
												<xsl:with-param name="format" select="'time'"/>
											</xsl:call-template>
										</span>
									</td>
								</tr>
								<tr>
									<td>
										<xsl:apply-templates select="urn:dataEnterer/urn:assignedEntity" mode="headerDataEnterer"/>
									</td>
								</tr>
							</table>
						</td>	
					</tr>		
					</xsl:if>	
					</xsl:if>		
					<xsl:if test="urn:custodian/urn:assignedCustodian/urn:representedCustodianOrganization/urn:id/@extension!='DL'">
						<tr>
							<td class="tableBlock">
								<xsl:for-each select="urn:custodian/urn:assignedCustodian/urn:representedCustodianOrganization">
									<table>
										<tr>
											<td>
												<span class="blockLabel" colspan="6">Vastutaja</span>
											</td>
										</tr>
										<tr>
											<td class="rowTitle">Asutuse/isiku nimi</td>
											<td class="rowValue" colspan="5">
												<xsl:value-of select="urn:name"/>
											</td>
										</tr>
										<xsl:if test="urn:id[@root='1.3.6.1.4.1.28284.4'] or urn:id[@root='1.3.6.1.4.1.28284.6.2.4.1']">
										<tr>
											<td class="rowTitle">Kood</td>
											<td class="rowValue" colspan="5">
												<xsl:value-of select="urn:id[@root='1.3.6.1.4.1.28284.4']/@extension"/>
												<br/>
												<xsl:value-of select="urn:id[@root='1.3.6.1.4.1.28284.6.2.4.1']/@extension"/>
											</td>
										</tr>
										</xsl:if>
										<xsl:if test="urn:id[@root='1.3.6.1.4.1.28284.1']">
											<tr>
												<td class="rowTitle">Litsentsi kood</td>
												<td class="rowValue" colspan="5">
													<xsl:value-of select="urn:id[@root='1.3.6.1.4.1.28284.1']/@extension"/>
												</td>
											</tr>
										</xsl:if>
										<xsl:if test="urn:id[@root='1.3.6.1.4.1.28284.6.2.2.1']">
											<tr>
												<td class="rowTitle">Isikukood</td>
												<td class="rowValue" colspan="5">
													<xsl:value-of select="urn:id[@root='1.3.6.1.4.1.28284.6.2.2.1']/@extension"/>
												</td>
											</tr>
										</xsl:if>
										<xsl:if test="urn:addr">
											<tr>
												<td class="rowTitle">Aadress</td>
												<td class="rowValue" colspan="5">
													<xsl:apply-templates select="urn:addr[@use='PHYS']"/>
												</td>
											</tr>
										</xsl:if>
										<xsl:if test="urn:telecom">
											<tr>
												<xsl:if test="urn:telecom[substring(@value,1,4)='tel:']">
													<td class="rowTitle">Telefon</td>
													<td class="rowValue">
														<table>
															<xsl:for-each select="urn:telecom[substring(@value,1,4)='tel:']">
																<tr>
																	<td>
																		<xsl:value-of select="substring(@value, 5)"/>
																	</td>
																</tr>
															</xsl:for-each>
														</table>
													</td>
												</xsl:if>
												<xsl:if test="urn:telecom[substring(@value,1,7)='mailto:']">
													<td class="rowTitle">E-post</td>
													<td class="rowValue">
														<table>
															<xsl:for-each select="urn:telecom[substring(@value,1,7)='mailto:']">
																<tr>
																	<td>
																		<xsl:value-of select="substring(@value, 8)"/>
																	</td>
																</tr>
															</xsl:for-each>
														</table>
													</td>
												</xsl:if>
												<xsl:if test="urn:telecom[substring(@value,1,4)='fax:']">
													<td class="rowTitle">Faks</td>
													<td class="rowValue">
														<table>
															<xsl:for-each select="urn:telecom[substring(@value,1,4)='fax:']">
																<tr>
																	<td>
																		<xsl:value-of select="substring(@value, 5)"/>
																	</td>
																</tr>
															</xsl:for-each>
														</table>
													</td>
												</xsl:if>
											</tr>
										</xsl:if>
									</table>
								</xsl:for-each>
							</td>
						</tr>
					</xsl:if>
				</table>
			</body>
		</html>
	</xsl:template>
	<!--

	Template for applicationDate info block
	-->
	<xsl:template name="applicationDate">
		<table class="tableBlock" width="100%">
			<tr>
				<td>
					<span class="rowTitle">Esitamise kuupäev: </span>
					<xsl:text> </xsl:text>
					<span class="rowValue">
						<xsl:call-template name="dateFormat">
							<xsl:with-param name="date" select="urn:effectiveTime/@value"/>
						</xsl:call-template>
					</span>
				</td>
			</tr>
		</table>
	</xsl:template>

<!--
   Template for PORR_IN000001UV01 (root element)
   -->
   <xsl:template name="PORR_IN000001UV01" match="urn:PORR_IN000001UV01">
      <html>
         <head>
            <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
            <title>
               <xsl:value-of select="urn:controlActProcess/urn:subject/urn:investigationEvent[@moodCode='EVN']/urn:code/@displayName"/>
               <xsl:text> kood </xsl:text>
               <xsl:value-of select="urn:controlActProcess/urn:subject/urn:investigationEvent[@moodCode='EVN']/urn:id/@extension"/>
            </title>
            <link href="http://pub.e-tervis.ee/standards2/Standards/3.0/CSS/styles.css" rel="stylesheet" type="text/css"/>
         </head>
         <body>
            <table width="100%" id="mainTable">
               <tr>
                  <td class="header">
                     <xsl:value-of select="urn:controlActProcess/urn:subject/urn:investigationEvent[@moodCode='EVN']/urn:code/@displayName"/>
                     <xsl:text> kood </xsl:text>
                     <xsl:value-of select="urn:controlActProcess/urn:subject/urn:investigationEvent[@moodCode='EVN']/urn:id/@extension"/>
                  </td>
               </tr>
               <tr>
                  <td>
                     <xsl:call-template name="commonGeneral"/>
                  </td>
               </tr>
               <!-- Select document type and apply corresponding template -->
               <xsl:call-template name="chooseDocument"/>
               <tr>
                  <td class="tableBlock">
                     <table>
                        <tr>
                           <td>
                              <span class="blockLabel">Dokument koostatud</span>
                              <xsl:text> </xsl:text>
                              <span class="rowValue">
                                 <xsl:call-template name="dateFormat">
                                    <xsl:with-param name="date" select="urn:controlActProcess/urn:subject/urn:investigationEvent/urn:effectiveTime/@value"/>
                                    <xsl:with-param name="format" select="'time'"/>
                                 </xsl:call-template>
                              </span>
                           </td>
                        </tr>
                        <tr>
                           <td>
                              <xsl:apply-templates select="urn:controlActProcess/urn:dataEnterer/urn:assignedPerson" mode="author"/>
                           </td>
                        </tr>
                     </table>
                  </td>
               </tr>
            </table>
         </body>
      </html>
   </xsl:template>	
	
	
	<!--
	Template for common general info block
	-->
	<xsl:template name="commonGeneral">
		<table class="tableBlock" width="100%">
			<xsl:if test="urn:author/urn:assignedAuthor/urn:id/@root!='1.3.6.1.4.1.28284.6.2.4.32'">
				<tr>
					<td>
						<xsl:apply-templates select="urn:author/urn:assignedAuthor/urn:representedOrganization"/>
					</td>
				</tr>
				<tr>
				<!--
				<td>
					<xsl:apply-templates select="urn:recordTarget[urn:realmCode/@code='PAT']/urn:patientRole">
						<xsl:with-param name="title" select="'Patsient'"/>
					</xsl:apply-templates>
				</td>-->
			</tr>
			</xsl:if>
		</table>
	</xsl:template>
	<!--

	Template for document composer company
	-->
	<xsl:template name="representedOrganization" match="urn:representedOrganization">
		<table>
			<tr>
				<td colspan="6">
					<span class="blockLabel">Tervishoiuasutus</span>
					<xsl:text> </xsl:text>
					<span class="rowValue">
						<xsl:value-of select="urn:name"/>
					</span>
				</td>
			</tr>
			<tr>
				<td colspan="6">
					<span class="rowTitle">Registreerimiskood</span>
					<xsl:text> </xsl:text>
					<span class="rowValue">
						<xsl:value-of select="urn:id[@root='1.3.6.1.4.1.28284.4']/@extension"/>
						<xsl:value-of select="urn:id[@root='1.3.6.1.4.1.28284.6.2.4.1']/@extension"/>
					</span>
				</td>
			</tr>
			<xsl:if test="urn:id[@root='1.3.6.1.4.1.28284.1']">
				<tr>
					<td colspan="6">
						<span class="rowTitle">Tegevusloa number</span>
						<xsl:text> </xsl:text>
						<span class="rowValue">
							<xsl:value-of select="urn:id[@root='1.3.6.1.4.1.28284.1']/@extension"/>
						</span>
					</td>
				</tr>
			</xsl:if>
			<xsl:if test="urn:addr">
				<tr>
					<td colspan="6">
						<span class="rowTitle">Aadress</span>
						<xsl:text> </xsl:text>
						<span class="rowValue">
							<xsl:apply-templates select="urn:addr[@use='PHYS']"/>
						</span>
					</td>
				</tr>
			</xsl:if>
			<tr>
				<xsl:if test="urn:telecom[substring(@value,1,4)='tel:']">
					<td class="rowTitle">Telefon</td>
					<td class="rowValue">
						<table>
							<xsl:for-each select="urn:telecom[substring(@value,1,4)='tel:']">
								<tr>
									<td>
										<xsl:value-of select="substring(@value, 5)"/>
									</td>
								</tr>
							</xsl:for-each>
						</table>
					</td>
				</xsl:if>
				<xsl:if test="urn:telecom[substring(@value,1,7)='mailto:']">
					<td class="rowTitle">E-post</td>
					<td class="rowValue">
						<table>
							<xsl:for-each select="urn:telecom[substring(@value,1,7)='mailto:']">
								<tr>
									<td>
										<xsl:value-of select="substring(@value, 8)"/>
									</td>
								</tr>
							</xsl:for-each>
						</table>
					</td>
				</xsl:if>
				<xsl:if test="urn:telecom[substring(@value,1,4)='fax:']">
					<td class="rowTitle">Faks</td>
					<td class="rowValue">
						<table>
							<xsl:for-each select="urn:telecom[substring(@value,1,4)='fax:']">
								<tr>
									<td>
										<xsl:value-of select="substring(@value, 5)"/>
									</td>
								</tr>
							</xsl:for-each>
						</table>
					</td>
				</xsl:if>
			</tr>
			<!--Autor-->
			<tr>
				<td colspan="2">
					<xsl:apply-templates select="../../urn:assignedAuthor" mode="header"/>
				</td>
			</tr>
		</table>
	</xsl:template>
	<!--

	Template for document composer info
	-->
	<xsl:template name="assignedAuthor.header" match="urn:assignedAuthor" mode="header">
		<table>
			<xsl:if test="urn:id/@extension!='DL'">
				<tr>
					<td class="blockLabel">Koostaja</td>
				</tr>
				<tr>
					<td>
						<xsl:if test="urn:assignedPerson/urn:name">
							<span class="rowTitle">Nimi</span>
							<xsl:text> </xsl:text>
							<span class="rowValue">
								<xsl:apply-templates select="urn:assignedPerson/urn:name"/>
								<xsl:text>  </xsl:text>
							</span>
						</xsl:if>		
						<span class="rowTitle">Kood</span>
						<xsl:text> </xsl:text>
						<span class="rowValue">
							<xsl:value-of select="urn:id/@extension"/>
							<xsl:text>  </xsl:text>
							<xsl:value-of select="urn:id/@assigningAuthorityName"/>
							<xsl:text>  </xsl:text>
						</span>
						<xsl:if test="urn:assignedAuthoringDevice/urn:manufacturerModelName">
							<span class="rowTitle">Tootja tüübinimi</span>
							<span class="rowValue">
								<xsl:value-of select="urn:assignedAuthoringDevice/urn:manufacturerModelName"/>
							</span>
						</xsl:if>
					</td>
				</tr>
				<xsl:if test="urn:telecom">
					<tr>
						<td>
							<table>
								<tr>
									<xsl:if test="urn:telecom[substring(@value,1,4)='tel:']">
										<td class="rowTitle">Telefon</td>
										<td class="rowValue">
											<table>
												<xsl:for-each select="urn:telecom[substring(@value,1,4)='tel:']">
													<tr>
														<td>
															<xsl:value-of select="substring(@value, 5)"/>
														</td>
													</tr>
												</xsl:for-each>
											</table>
										</td>
									</xsl:if>
									<xsl:if test="urn:telecom[substring(@value,1,7)='mailto:']">
										<td class="rowTitle">E-post</td>
										<td class="rowValue">
											<table>
												<xsl:for-each select="urn:telecom[substring(@value,1,7)='mailto:']">
													<tr>
														<td>
															<xsl:value-of select="substring(@value, 8)"/>
														</td>
													</tr>
												</xsl:for-each>
											</table>
										</td>
									</xsl:if>
									<xsl:if test="urn:telecom[substring(@value,1,4)='fax:']">
										<td class="rowTitle">Faks</td>
										<td class="rowValue">
											<table>
												<xsl:for-each select="urn:telecom[substring(@value,1,4)='fax:']">
													<tr>
														<td>
															<xsl:value-of select="substring(@value, 5)"/>
														</td>
													</tr>
												</xsl:for-each>
											</table>
										</td>
									</xsl:if>
								</tr>
							</table>
						</td>
					</tr>
				</xsl:if>
				<xsl:if test="ext:asLicencedEntity">
					<tr>
						<td>
						<span class="rowTitle">Eriala</span>
						<xsl:text> </xsl:text>
						<span class="rowValue">
							<xsl:value-of select="ext:asLicencedEntity/ext:id/@extension"/>
							<xsl:text> </xsl:text>
							<span class="rowValue">
								<xsl:value-of select="ext:asLicencedEntity/ext:id/@assigningAuthorityName"/>
								</span>
							</span>
						</td>
					</tr>
				</xsl:if>
			</xsl:if>
		</table>
	</xsl:template>
	
	
<!--

	Template for data enterer info
	-->
	<xsl:template name="dataEnterer.header" match="urn:assignedEntity" mode="headerDataEnterer">
		<table>
			<xsl:if test="urn:id/@extension!='DL'">
				<tr>
					<td colspan="6" class="blockLabel">Sisestaja</td>
				</tr>
				<xsl:if test="urn:assignedPerson/urn:name">
					<tr>
						<td class="rowTitle">Nimi</td>
						<td class="rowValue" colspan="5">
							<xsl:apply-templates select="urn:assignedPerson/urn:name"/>
						</td>
					</tr>
				</xsl:if>
				<tr>
					<td class="rowTitle">Kood</td>
					<td class="rowValue" colspan="5">
						<span class="rowValue">
							<xsl:value-of select="urn:id/@extension"/>
							<xsl:text>     </xsl:text>
							<xsl:value-of select="urn:id/@assigningAuthorityName"/>
						</span>
					</td>
				</tr>
				<xsl:if test="urn:telecom">
					<tr>
						<xsl:if test="urn:telecom[substring(@value,1,4)='tel:']">
							<td class="rowTitle">Telefon</td>
							<td class="rowValue">
								<table>
									<xsl:for-each select="urn:telecom[substring(@value,1,4)='tel:']">
										<tr>
											<td>
												<xsl:value-of select="substring(@value, 5)"/>
											</td>
										</tr>
									</xsl:for-each>
								</table>
							</td>
						</xsl:if>
						<xsl:if test="urn:telecom[substring(@value,1,7)='mailto:']">
							<td class="rowTitle">E-post</td>
							<td class="rowValue">
								<table>
									<xsl:for-each select="urn:telecom[substring(@value,1,7)='mailto:']">
										<tr>
											<td>
												<xsl:value-of select="substring(@value, 8)"/>
											</td>
										</tr>
									</xsl:for-each>
								</table>
							</td>
						</xsl:if>
						<xsl:if test="urn:telecom[substring(@value,1,4)='fax:']">
							<td class="rowTitle">Faks</td>
							<td class="rowValue">
								<table>
									<xsl:for-each select="urn:telecom[substring(@value,1,4)='fax:']">
										<tr>
											<td>
												<xsl:value-of select="substring(@value, 5)"/>
											</td>
										</tr>
									</xsl:for-each>
								</table>
							</td>
						</xsl:if>
					</tr>
				</xsl:if>
				<xsl:if test="ext:asLicencedEntity">
					<tr>
						<td class="rowTitle">Eriala</td>
						<td class="rowValue" colspan="5">
							<xsl:value-of select="ext:asLicencedEntity/ext:id/@extension"/>
							<xsl:text> </xsl:text>
							<span class="rowValue">
								<xsl:value-of select="ext:asLicencedEntity/ext:id/@assigningAuthorityName"/>
							</span>
						</td>
					</tr>
				</xsl:if>
				
				<xsl:if test="urn:representedOrganization">
				<tr>
					<td colspan="5">
						<xsl:apply-templates select="urn:representedOrganization"/>
					</td>
				</tr>
				</xsl:if>
			</xsl:if>
			<xsl:if test="urn:id/@extension='DL'">
				<tr>
					<td colspan="6" class="blockLabel">Sisestaja: Digitaalse terviseloo infosüsteem</td>
				</tr>
			</xsl:if>
		</table>
	</xsl:template>	
	
	
	<!--

	Template for proffession columns for document author
	-->
	<xsl:template name="realmCode.author" match="ext:asLicencedEntity/ext:id" mode="author">
		<td class="dataTableCell">
			<xsl:apply-templates select="." mode="formatting"/>
		</td>
	</xsl:template>
	
	<!--

   Template for document composer info
   -->
   <xsl:template name="assignedPerson.author" match="urn:assignedPerson" mode="author">
      <table>
         <tr>
            <td colspan="2" class="blockLabel">Koostaja</td>
         </tr>
         <tr>
            <td>
               <span class="rowTitle">Nimi</span>
               <xsl:text> </xsl:text>
               <span class="rowValue">
                  <xsl:apply-templates select="urn:assignedPerson/urn:name"/>
               </span>
            </td>
            <td>
               <span class="rowTitle">Isikukood</span>
               <xsl:text> </xsl:text>
               <span class="rowValue">
                  <xsl:value-of select="urn:id/@extension"/>
               </span>
            </td>
            <td>
               <span class="rowTitle">Telefon</span>
               <xsl:text> </xsl:text>
               <span class="rowValue">
                  <xsl:value-of select="urn:telecom/@value"/>
               </span>
            </td>
         </tr>
      </table>
   </xsl:template>
	
	
</xsl:stylesheet>

