141
All checks were successful
Build And Push / publish (push) Successful in 1m21s

This commit is contained in:
2025-12-02 16:25:34 +03:00
parent 187396c003
commit 2333301225

View File

@ -21,7 +21,7 @@
<!-- Файл для трансформации XML->HTML->PDF при помощи библиотек iText Core, iText XMLWorker или аналогичных <!-- Файл для трансформации XML->HTML->PDF при помощи библиотек iText Core, iText XMLWorker или аналогичных
Данный файл должен использоваться только для трансформации документа СЭМД (141) Льготный рецепт на лекарственный препарат, изделие медицинского назначения и специализированный продукт лечебного питания (CDA) Редакция 4, v1.7 Данный файл должен использоваться только для трансформации документа СЭМД (141) Льготный рецепт на лекарственный препарат, изделие медицинского назначения и специализированный продукт лечебного питания (CDA) Редакция 4, v1.7
Разработан по заказу Минздрава РФ компанией ООО "Цифромед" 20.02.2024 Разработан по заказу Минздрава РФ компанией ООО "Цифромед" 20.02.2024
Замечания по данному файлу можно направить на почту egisz@stp-egisz.ru Замечания по данному файлу можно направить на почту egisz@stp-egisz.ru
Тема сообщения: замечания и вопросы по файлам визуализации --> Тема сообщения: замечания и вопросы по файлам визуализации -->
<head> <head>
<style> <style>
@ -32,40 +32,40 @@
margin-left: 10pt; margin-left: 10pt;
margin-right: 20pt; margin-right: 20pt;
} }
table { table {
table-layout: fixed; table-layout: fixed;
width: 98%; width: 98%;
border-collapse: collapse; border-collapse: collapse;
font-family: Arial, sans-serif; font-family: Arial, sans-serif;
word-wrap: break-word; word-wrap: break-word;
margin-top: 0; margin-top: 0;
margin-bottom: 10pt; margin-bottom: 10pt;
margin-left: 20pt; margin-left: 20pt;
} }
td { td {
vertical-align: top; vertical-align: top;
padding: 2; padding: 2;
} }
.table-break { .table-break {
margin-left: 0; margin-left: 0;
border-collapse: collapse; border-collapse: collapse;
} }
.param { .param {
font-size: 15px; font-size: 15px;
border: 1pt solid gray; border: 1pt solid gray;
word-wrap: none; word-wrap: none;
} }
.created { .created {
vertical-align: middle; vertical-align: middle;
} }
.medorg { .medorg {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
@ -75,7 +75,7 @@
margin-bottom: 5pt; margin-bottom: 5pt;
white-space: normal; white-space: normal;
} }
.address { .address {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
@ -85,7 +85,7 @@
margin-bottom: 5pt; margin-bottom: 5pt;
white-space: normal; white-space: normal;
} }
.emd { .emd {
text-align: center; text-align: center;
font-size: 18px; font-size: 18px;
@ -95,7 +95,7 @@
margin-bottom: 25pt; margin-bottom: 25pt;
white-space: normal; white-space: normal;
} }
.date { .date {
text-align: center; text-align: center;
font-size: 15px; font-size: 15px;
@ -105,7 +105,7 @@
margin-bottom: 5pt; margin-bottom: 5pt;
white-space: normal; white-space: normal;
} }
.tablegray { .tablegray {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
@ -114,7 +114,7 @@
margin-top: 5pt; margin-top: 5pt;
margin-bottom: 5pt; margin-bottom: 5pt;
} }
.tablegrayhead { .tablegrayhead {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
@ -123,7 +123,7 @@
margin-top: 5pt; margin-top: 5pt;
margin-bottom: 5pt; margin-bottom: 5pt;
} }
.tableblack { .tableblack {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
@ -133,7 +133,7 @@
margin-bottom: 3pt; margin-bottom: 3pt;
white-space: normal; white-space: normal;
} }
.tableresult { .tableresult {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
@ -153,8 +153,8 @@
margin-bottom: 2pt; margin-bottom: 2pt;
white-space: normal; white-space: normal;
} }
.tableresultscore { .tableresultscore {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
@ -164,7 +164,7 @@
margin-bottom: 5pt; margin-bottom: 5pt;
white-space: normal; white-space: normal;
} }
.createdate { .createdate {
text-align: right; text-align: right;
font-size: 15px; font-size: 15px;
@ -172,7 +172,7 @@
color: #aaaaaa; color: #aaaaaa;
margin-right: 10pt; margin-right: 10pt;
} }
.pagenumber { .pagenumber {
text-align: center; text-align: center;
valign: center; valign: center;
@ -181,29 +181,29 @@
color: #aaaaaa; color: #aaaaaa;
margin-right: 10pt; margin-right: 10pt;
} }
h2+p { h2+p {
page-break-inside: avoid; page-break-inside: avoid;
} }
th { th {
text-align: left; text-align: left;
font-size: 15px; font-size: 15px;
padding: 5pt; padding: 5pt;
background-color: #D9D9D6; background-color: #D9D9D6;
} }
.first-block-form { .first-block-form {
margin-top: -10pt; margin-top: -10pt;
} }
.block-form { .block-form {
border-collapse: collapse; border-collapse: collapse;
margin-top: 0; margin-top: 0;
margin-bottom: 0; margin-bottom: 0;
border-bottom: 1pt solid #e0e0e0; border-bottom: 1pt solid #e0e0e0;
} }
.end-block-form { .end-block-form {
} }
</style> </style>
@ -267,7 +267,7 @@
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
<xsl:choose> <xsl:choose>
<xsl:when test="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:providerOrganization/n1:id[2][not(@nullFlavor)]"> <xsl:when test="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:providerOrganization/n1:id[2][not(@nullFlavor)]">
<br/><xsl:text>Лицензия на осуществление медицинской деятельности: </xsl:text> <br/><xsl:text>Лицензия на осуществление медицинской деятельности: </xsl:text>
@ -305,7 +305,7 @@
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</table> </table>
<table class="block-form"> <table class="block-form">
<tr> <tr>
<td colspan="8"> <td colspan="8">
<h1 class="emd"> <h1 class="emd">
@ -325,7 +325,7 @@
</b> </b>
</h1> </h1>
</td> </td>
</tr> </tr>
<tr> <tr>
<td colspan="4"> <td colspan="4">
<h2 class="tablegray"> <h2 class="tablegray">
@ -362,7 +362,7 @@
</xsl:call-template> </xsl:call-template>
<xsl:text>)</xsl:text> <xsl:text>)</xsl:text>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</p> </p>
@ -510,7 +510,7 @@
<xsl:with-param name="newdate" select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/identity:IdentityDoc/identity:IssueDate/@value"/> <xsl:with-param name="newdate" select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/identity:IdentityDoc/identity:IssueDate/@value"/>
</xsl:call-template> </xsl:call-template>
<xsl:choose> <xsl:choose>
<xsl:when test="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/identity:IdentityDoc/identity:IssueOrgName[not(@nullFlavor)]"> <xsl:when test="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/identity:IdentityDoc/identity:IssueOrgName[not(@nullFlavor)]">
<xsl:text> выдан </xsl:text> <xsl:text> выдан </xsl:text>
<xsl:value-of select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/identity:IdentityDoc/identity:IssueOrgName"/> <xsl:value-of select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/identity:IdentityDoc/identity:IssueOrgName"/>
</xsl:when> </xsl:when>
@ -522,15 +522,15 @@
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</p> </p>
</td> </td>
</tr> </tr>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
<xsl:choose> <xsl:choose>
<xsl:when test="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:telecom[not(@nullFlavor)]"> <xsl:when test="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:telecom[not(@nullFlavor)]">
<tr> <tr>
<td colspan="8"> <td colspan="8">
<p class="tableblack"> <p class="tableblack">
<xsl:for-each select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:telecom"> <xsl:for-each select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:telecom">
@ -756,7 +756,7 @@
</tr> </tr>
<xsl:choose> <xsl:choose>
<xsl:when test="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:patient/n1:guardian/n1:telecom[not(@nullFlavor)]"> <xsl:when test="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:patient/n1:guardian/n1:telecom[not(@nullFlavor)]">
<tr> <tr>
<td colspan="8"> <td colspan="8">
<p class="tableblack"> <p class="tableblack">
<xsl:for-each select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:patient/n1:guardian/n1:telecom"> <xsl:for-each select="/n1:ClinicalDocument/n1:recordTarget/n1:patientRole/n1:patient/n1:guardian/n1:telecom">
@ -770,7 +770,7 @@
</tr> </tr>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</table> </table>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
<table class="block-form"> <table class="block-form">
@ -787,7 +787,7 @@
</td> </td>
</tr> </tr>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
<tr> <tr>
<td colspan="4"> <td colspan="4">
<h2 class="tablegray"> <h2 class="tablegray">
@ -940,7 +940,7 @@
<xsl:otherwise> <xsl:otherwise>
<xsl:value-of select="./n1:product/n1:manufacturedProduct/n1:manufacturedMaterial/n1:code/@displayName"/> <xsl:value-of select="./n1:product/n1:manufacturedProduct/n1:manufacturedMaterial/n1:code/@displayName"/>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</p> </p>
<xsl:choose> <xsl:choose>
<xsl:when test="./n1:text"> <xsl:when test="./n1:text">
@ -948,7 +948,7 @@
<xsl:value-of select="./n1:text"/> <xsl:value-of select="./n1:text"/>
</p> </p>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</td> </td>
<td class="param"> <td class="param">
<p class="tableresult"> <p class="tableresult">
@ -956,10 +956,10 @@
<xsl:text> </xsl:text> <xsl:text> </xsl:text>
<xsl:value-of select="./n1:quantity/n1:translation/@displayName"/> <xsl:value-of select="./n1:quantity/n1:translation/@displayName"/>
</p> </p>
</td> </td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</table> </table>
</p> </p>
</xsl:if> </xsl:if>
<xsl:if test="/n1:ClinicalDocument/n1:component/n1:structuredBody/n1:component/n1:section[n1:code/@code='RECIPE']/n1:entry/n1:substanceAdministration"> <xsl:if test="/n1:ClinicalDocument/n1:component/n1:structuredBody/n1:component/n1:section[n1:code/@code='RECIPE']/n1:entry/n1:substanceAdministration">
@ -992,7 +992,7 @@
<xsl:value-of select="./n1:text"/> <xsl:value-of select="./n1:text"/>
</p> </p>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</td> </td>
<td class="param"> <td class="param">
<p class="tableresult"> <p class="tableresult">
@ -1075,24 +1075,24 @@
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
<br/> <br/>
</xsl:for-each> </xsl:for-each>
</p> </p>
</td> </td>
<td class="param"> <td class="param">
<xsl:for-each select="./n1:precondition/n1:criterion[n1:code/@code='ASSERTION']"> <xsl:for-each select="./n1:precondition/n1:criterion[n1:code/@code='ASSERTION']">
<p class="tableresult"> <p class="tableresult">
<xsl:value-of select="./n1:value"/> <xsl:value-of select="./n1:value"/>
</p> </p>
</xsl:for-each> </xsl:for-each>
</td> </td>
<td class="param"> <td class="param">
<p class="tableresult"> <p class="tableresult">
<xsl:value-of select="./n1:entryRelationship/n1:observation[n1:code/@code='6011']/n1:value/n1:translation/@value"/> <xsl:value-of select="./n1:entryRelationship/n1:observation[n1:code/@code='6011']/n1:value/n1:translation/@value"/>
</p> </p>
</td> </td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</table> </table>
</p> </p>
</xsl:when> </xsl:when>
<xsl:otherwise> <xsl:otherwise>
@ -1205,20 +1205,20 @@
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
<br/> <br/>
</xsl:for-each> </xsl:for-each>
</p> </p>
</td> </td>
<td class="param"> <td class="param">
<p class="tableresult"> <p class="tableresult">
<xsl:value-of select="./n1:entryRelationship/n1:observation[n1:code/@code='6011']/n1:value/n1:translation/@value"/> <xsl:value-of select="./n1:entryRelationship/n1:observation[n1:code/@code='6011']/n1:value/n1:translation/@value"/>
</p> </p>
</td> </td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</table> </table>
</p> </p>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:if> </xsl:if>
</td> </td>
</tr> </tr>
@ -1226,13 +1226,13 @@
<xsl:choose> <xsl:choose>
<xsl:when test="/n1:ClinicalDocument/n1:component/n1:structuredBody/n1:component/n1:section[n1:code/@code='LINKDOCS']"> <xsl:when test="/n1:ClinicalDocument/n1:component/n1:structuredBody/n1:component/n1:section[n1:code/@code='LINKDOCS']">
<table class="block-form"> <table class="block-form">
<tr> <tr>
<td colspan="8"> <td colspan="8">
<h2 class="tablegrayhead"> <h2 class="tablegrayhead">
<xsl:text>Связанные документы</xsl:text> <xsl:text>Связанные документы</xsl:text>
</h2> </h2>
<xsl:for-each select="/n1:ClinicalDocument/n1:component/n1:structuredBody/n1:component/n1:section[n1:code/@code='LINKDOCS']/n1:entry/n1:act"> <xsl:for-each select="/n1:ClinicalDocument/n1:component/n1:structuredBody/n1:component/n1:section[n1:code/@code='LINKDOCS']/n1:entry/n1:act">
<tr> <tr>
<td colspan="8"> <td colspan="8">
<h2 class="tablegray"> <h2 class="tablegray">
<xsl:value-of select="./n1:code/@displayName"/> <xsl:value-of select="./n1:code/@displayName"/>
@ -1261,13 +1261,13 @@
<p class="tableblack"> <p class="tableblack">
<xsl:value-of select="./n1:text"/> <xsl:value-of select="./n1:text"/>
</p> </p>
</td> </td>
</tr> </tr>
</xsl:for-each> </xsl:for-each>
</td> </td>
</tr> </tr>
</table> </table>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
<table class="end-block-form"> <table class="end-block-form">
<tr> <tr>
@ -1312,12 +1312,12 @@
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</p> </p>
</td> </td>
</tr> </tr>
</table> </table>
</body> </body>
</html> </html>
</xsl:template> </xsl:template>
<xsl:template name="getR"> <xsl:template name="getR">
<xsl:param name="templateId"/> <xsl:param name="templateId"/>
<xsl:variable name="templateIdLength" select="string-length($templateId)"/> <xsl:variable name="templateIdLength" select="string-length($templateId)"/>
@ -1730,7 +1730,7 @@
<xsl:for-each select="$contact[position()>1]"> <xsl:for-each select="$contact[position()>1]">
<xsl:text>; </xsl:text> <xsl:text>; </xsl:text>
<xsl:value-of select="substring-after($contact[position()>1], ':')"/> <xsl:value-of select="substring-after($contact[position()>1], ':')"/>
</xsl:for-each> </xsl:for-each>
</xsl:when> </xsl:when>
<xsl:when test="substring($contact,1,7)='mailto:'"> <xsl:when test="substring($contact,1,7)='mailto:'">
<xsl:text>E-mail: </xsl:text> <xsl:text>E-mail: </xsl:text>
@ -1738,7 +1738,7 @@
<xsl:for-each select="$contact[position()>1]"> <xsl:for-each select="$contact[position()>1]">
<xsl:text>; </xsl:text> <xsl:text>; </xsl:text>
<xsl:value-of select="substring-after($contact[position()>1], ':')"/> <xsl:value-of select="substring-after($contact[position()>1], ':')"/>
</xsl:for-each> </xsl:for-each>
</xsl:when> </xsl:when>
<xsl:when test="substring($contact,1,5)='http:'"> <xsl:when test="substring($contact,1,5)='http:'">
<xsl:text>Сайт: </xsl:text> <xsl:text>Сайт: </xsl:text>
@ -1746,7 +1746,7 @@
<xsl:for-each select="$contact[position()>1]"> <xsl:for-each select="$contact[position()>1]">
<xsl:text>; </xsl:text> <xsl:text>; </xsl:text>
<xsl:value-of select="substring-after($contact[position()>1], ':')"/> <xsl:value-of select="substring-after($contact[position()>1], ':')"/>
</xsl:for-each> </xsl:for-each>
</xsl:when> </xsl:when>
<xsl:when test="substring($contact,1,4)='fax:'"> <xsl:when test="substring($contact,1,4)='fax:'">
<xsl:text>Факс: </xsl:text> <xsl:text>Факс: </xsl:text>
@ -1754,7 +1754,7 @@
<xsl:for-each select="$contact[position()>1]"> <xsl:for-each select="$contact[position()>1]">
<xsl:text>; </xsl:text> <xsl:text>; </xsl:text>
<xsl:value-of select="substring-after($contact[position()>1], ':')"/> <xsl:value-of select="substring-after($contact[position()>1], ':')"/>
</xsl:for-each> </xsl:for-each>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
@ -1773,7 +1773,7 @@
<xsl:otherwise> <xsl:otherwise>
<xsl:text>Номер медицинской карты: </xsl:text> <xsl:text>Номер медицинской карты: </xsl:text>
</xsl:otherwise> </xsl:otherwise>
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
<xsl:template name="formatNullFlavor"> <xsl:template name="formatNullFlavor">
<xsl:param name="nullflavor"/> <xsl:param name="nullflavor"/>
@ -1823,7 +1823,7 @@
<xsl:when test="$nullflavor='QS'"> <xsl:when test="$nullflavor='QS'">
<xsl:text>Достаточное количество</xsl:text> <xsl:text>Достаточное количество</xsl:text>
</xsl:when> </xsl:when>
</xsl:choose> </xsl:choose>
</xsl:template> </xsl:template>
</xsl:stylesheet> </xsl:stylesheet>
@ -1831,4 +1831,4 @@
v1.6: Изменен блок style и getAges v1.6: Изменен блок style и getAges
v1.7: Скорректирован блок "Наименование изделия" и "Назначено" секции "Рецепт" для отображения text при его наличии --> v1.7: Скорректирован блок "Наименование изделия" и "Назначено" секции "Рецепт" для отображения text при его наличии -->