Xslt XSL-如何将节点值正确连接到一个格式化的节点值
我试图将多个OBX.3、OBX.5和OBX.6值连接到特定OBX.5字段的末尾。我写的东西很有用,但不是我想要的方式 例如,我需要以下来源:Xslt XSL-如何将节点值正确连接到一个格式化的节点值,xslt,xslt-2.0,hl7-v2,Xslt,Xslt 2.0,Hl7 V2,我试图将多个OBX.3、OBX.5和OBX.6值连接到特定OBX.5字段的末尾。我写的东西很有用,但不是我想要的方式 例如,我需要以下来源: OBX|1|TX|2080^Diagnosis||Sinus rhythm~Right axis deviation~Right atrial enlargement~Possible Ventricular preexcitation~Biventricular hypertrophy~~When compared with ECG of 17-JAN-
OBX|1|TX|2080^Diagnosis||Sinus rhythm~Right axis deviation~Right atrial enlargement~Possible Ventricular preexcitation~Biventricular hypertrophy~~When compared with ECG of 17-JAN-2020 13:15, there is no significant change.~~~Confirmed by DOCTOR MD, DOCTOR (174) on 1/26/2020 10:57:01 PM||||||F
OBX|2|ST|552^Ventricular Rate||126|BPM|||||F
OBX|3|ST|554^P-R Interval||88|ms|||||F
OBX|4|ST|555^QRS Duration||90|ms|||||F
OBX|5|ST|556^Q-T Interval||380|ms|||||F
OBX|6|ST|557^QTC Calculation(Bazett)||550|ms|||||F
或xml版本:
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>1</OBX.1>
<OBX.2>TX</OBX.2>
<OBX.3>
<CWE.1>2080</CWE.1>
<CWE.2>Diagnosis</CWE.2>
</OBX.3>
<OBX.5>Sinus rhythm</OBX.5>
<OBX.5>Right axis deviation</OBX.5>
<OBX.5>Right atrial enlargement</OBX.5>
<OBX.5>Possible Ventricular preexcitation</OBX.5>
<OBX.5>Biventricular hypertrophy</OBX.5>
<OBX.5>When compared with ECG of 17-JAN-2020 13:15, there is no significant change.</OBX.5>
<OBX.5>Confirmed by DOCTOR MD, DOCTOR (174) on 1/26/2020 10:57:01 PM</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>2</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>552</CWE.1>
<CWE.2>Ventricular Rate</CWE.2>
</OBX.3>
<OBX.5>126</OBX.5>
<OBX.6>
<CWE.1>BPM</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>3</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>554</CWE.1>
<CWE.2>P-R Interval</CWE.2>
</OBX.3>
<OBX.5>88</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>4</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>555</CWE.1>
<CWE.2>QRS Duration</CWE.2>
</OBX.3>
<OBX.5>90</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>5</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>556</CWE.1>
<CWE.2>Q-T Interval</CWE.2>
</OBX.3>
<OBX.5>380</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>6</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>557</CWE.1>
<CWE.2>QTC Calculation(Bazett)</CWE.2>
</OBX.3>
<OBX.5>550</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>7</OBX.1>
<OBX.2>RP</OBX.2>
<OBX.3>
<CWE.1>APPWebURL</CWE.1>
</OBX.3>
<OBX.5>
<RP.1>http://SERVERSQL1:8989/appcripts/appweb.dll?RetrieveTestByDateTime?PatientID=123456789&Date=23-01-2020&Time=12%3a21%3a05%3a00&TestType=ECG&Site=1&OutputType=PDF&Ext=PDF</RP.1>
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
但是,我只能让它看起来像这样:
OBX|1|TX|2082^Diagnosis||Sinus rhythm~Right axis deviation~Right atrial enlargement~Possible Ventricular preexcitation~Biventricular hypertrophy~When compared with ECG of 17-JAN-2020 13:15, there is no significant change.~Confirmed by DOCTOR MD, DOCTOR (174) on 1/26/2020 10:57:01 PM~Ventricular Rate: 126 BPM~P-R Interval: 88 ms~QRS Duration: 90 ms~Q-T Interval: 380 ms~QTC Calculation(Bazett): 550 ms
OBX|1|TX|2082^Diagnosis||Sinus rhythm Right axis deviation Right atrial enlargement Possible Ventricular preexcitation Biventricular hypertrophy When compared with ECG of 17-JAN-2020 13:15, there is no significant change. Confirmed by DOCTOR MD, DOCTOR (174) on 1/26/2020 10:57:01 PM\R\Ventricular Rate P-R Interval QRS Duration Q-T Interval QTC Calculation(Bazett)\R\126 88 90 380 550\R\BPM ms ms ms ms
这是我的密码:
<xsl:for-each select="ORU_R01.OBSERVATION[OBX/OBX.2!='RP']">
<ORU_R01.OBSERVATION>
<xsl:variable name="rpt">
<xsl:value-of select="//OBX[OBX.2='TX']/OBX.5" />
</xsl:variable>
<xsl:if test="OBX/OBX.2 = 'TX'">
<OBX>
<OBX.1>
<xsl:value-of select="'1'" />
</OBX.1>
<OBX.2>
<xsl:value-of select="'TX'" />
</OBX.2>
<OBX.3>
<CWE.1>
<xsl:value-of select="'2082'" />
</CWE.1>
<CWE.2>
<xsl:value-of select="'Diagnosis'" />
</CWE.2>
</OBX.3>
<OBX.5>
<xsl:value-of select="$rpt" />
</OBX.5>
<OBX.5>
<xsl:value-of select="//OBX[OBX.2='ST']/OBX.3/CWE.2" />
</OBX.5>
<OBX.5>
<xsl:value-of select="//OBX[OBX.2='ST']/OBX.5" />
</OBX.5>
<OBX.5>
<xsl:value-of select="//OBX[OBX.2='ST']/OBX.6/CWE.1" />
</OBX.5>
</OBX>
</xsl:if>
</ORU_R01.OBSERVATION>
</xsl:for-each>
我需要做什么?此样式表
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:strip-space elements="*"/>
<xsl:template match="*[ORU_R01.OBSERVATION]">
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>1</OBX.1>
<OBX.2>TX</OBX.2>
<OBX.3>
<CWE.1>2082</CWE.1>
<CWE.2>Diagnosis</CWE.2>
</OBX.3>
<xsl:copy-of
select="ORU_R01.OBSERVATION/OBX[OBX.2='TX']/OBX.5"/>
<xsl:for-each select="ORU_R01.OBSERVATION/OBX[OBX.2='ST']">
<OBX.5>
<xsl:value-of select="concat(OBX.3/CWE.2,':'),OBX.5,OBX.6/CWE.1"/>
</OBX.5>
</xsl:for-each>
</OBX>
</ORU_R01.OBSERVATION>
</xsl:template>
</xsl:stylesheet>
1.
德克萨斯州
2082
诊断
使用此输入:
<root>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>1</OBX.1>
<OBX.2>TX</OBX.2>
<OBX.3>
<CWE.1>2080</CWE.1>
<CWE.2>Diagnosis</CWE.2>
</OBX.3>
<OBX.5>Sinus rhythm</OBX.5>
<OBX.5>Right axis deviation</OBX.5>
<OBX.5>Right atrial enlargement</OBX.5>
<OBX.5>Possible Ventricular preexcitation</OBX.5>
<OBX.5>Biventricular hypertrophy</OBX.5>
<OBX.5>When compared with ECG of 17-JAN-2020 13:15, there is no significant change.</OBX.5>
<OBX.5>Confirmed by DOCTOR MD, DOCTOR (174) on 1/26/2020 10:57:01 PM</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>2</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>552</CWE.1>
<CWE.2>Ventricular Rate</CWE.2>
</OBX.3>
<OBX.5>126</OBX.5>
<OBX.6>
<CWE.1>BPM</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>3</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>554</CWE.1>
<CWE.2>P-R Interval</CWE.2>
</OBX.3>
<OBX.5>88</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>4</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>555</CWE.1>
<CWE.2>QRS Duration</CWE.2>
</OBX.3>
<OBX.5>90</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>5</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>556</CWE.1>
<CWE.2>Q-T Interval</CWE.2>
</OBX.3>
<OBX.5>380</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>6</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>557</CWE.1>
<CWE.2>QTC Calculation(Bazett)</CWE.2>
</OBX.3>
<OBX.5>550</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>7</OBX.1>
<OBX.2>RP</OBX.2>
<OBX.3>
<CWE.1>APPWebURL</CWE.1>
</OBX.3>
<OBX.5>
<RP.1>http://SERVERSQL1:8989/appcripts/appweb.dll?RetrieveTestByDateTime?PatientID=123456789&Date=23-01-2020&Time=12%3a21%3a05%3a00&TestType=ECG&Site=1&OutputType=PDF&Ext=PDF</RP.1>
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
</root>
1.
德克萨斯州
2080
诊断
窦性心律
右轴偏差
右心房扩大
可能的心室预激
双心室肥大
与2020年1月17日13:15的心电图相比,无明显变化。
2020年1月26日10:57:01下午由医学博士(174)确认
F
2.
装货单
552
心室率
126
BPM
F
3.
装货单
554
P-R间期
88
太太
F
4.
装货单
555
QRS持续时间
90
太太
F
5.
装货单
556
Q-T间期
380
太太
F
6.
装货单
557
QTC计算(Bazett)
550
太太
F
7.
反相
APPWebURL
http://SERVERSQL1:8989/appcripts/appweb.dll?RetrieveTestByDateTime?PatientID=123456789&日期=2020年1月23日&;时间=12%3a21%3a05%3a00&;TestType=ECG&;站点=1&;OutputType=PDF&;Ext=PDF
F
输出:
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>1</OBX.1>
<OBX.2>TX</OBX.2>
<OBX.3>
<CWE.1>2082</CWE.1>
<CWE.2>Diagnosis</CWE.2>
</OBX.3>
<OBX.5>Sinus rhythm</OBX.5>
<OBX.5>Right axis deviation</OBX.5>
<OBX.5>Right atrial enlargement</OBX.5>
<OBX.5>Possible Ventricular preexcitation</OBX.5>
<OBX.5>Biventricular hypertrophy</OBX.5>
<OBX.5>When compared with ECG of 17-JAN-2020 13:15, there is no significant change.</OBX.5>
<OBX.5>Confirmed by DOCTOR MD, DOCTOR (174) on 1/26/2020 10:57:01 PM</OBX.5>
<OBX.5>Ventricular Rate: 126 BPM</OBX.5>
<OBX.5>P-R Interval: 88 ms</OBX.5>
<OBX.5>QRS Duration: 90 ms</OBX.5>
<OBX.5>Q-T Interval: 380 ms</OBX.5>
<OBX.5>QTC Calculation(Bazett): 550 ms</OBX.5>
</OBX>
</ORU_R01.OBSERVATION>
1.
德克萨斯州
2082
诊断
窦性心律
右轴偏差
右心房扩大
可能的心室预激
双心室肥大
与2020年1月17日13:15的心电图相比,无明显变化。
2020年1月26日10:57:01下午由医学博士(174)确认
心室率:126 BPM
P-R间期:88毫秒
QRS持续时间:90毫秒
Q-T间隔:380毫秒
QTC计算(Bazett):550 ms
测试
注意事项:您可以复制元素,也可以使用文字结果元素;输出文字文本节点时,不需要指令的xsl:valuexsl:semantic的值在XSLT1.0和XSLT2.0之间发生了变化,现在它还可以输出序列。此样式表
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:strip-space elements="*"/>
<xsl:template match="*[ORU_R01.OBSERVATION]">
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>1</OBX.1>
<OBX.2>TX</OBX.2>
<OBX.3>
<CWE.1>2082</CWE.1>
<CWE.2>Diagnosis</CWE.2>
</OBX.3>
<xsl:copy-of
select="ORU_R01.OBSERVATION/OBX[OBX.2='TX']/OBX.5"/>
<xsl:for-each select="ORU_R01.OBSERVATION/OBX[OBX.2='ST']">
<OBX.5>
<xsl:value-of select="concat(OBX.3/CWE.2,':'),OBX.5,OBX.6/CWE.1"/>
</OBX.5>
</xsl:for-each>
</OBX>
</ORU_R01.OBSERVATION>
</xsl:template>
</xsl:stylesheet>
1.
德克萨斯州
2082
诊断
使用此输入:
<root>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>1</OBX.1>
<OBX.2>TX</OBX.2>
<OBX.3>
<CWE.1>2080</CWE.1>
<CWE.2>Diagnosis</CWE.2>
</OBX.3>
<OBX.5>Sinus rhythm</OBX.5>
<OBX.5>Right axis deviation</OBX.5>
<OBX.5>Right atrial enlargement</OBX.5>
<OBX.5>Possible Ventricular preexcitation</OBX.5>
<OBX.5>Biventricular hypertrophy</OBX.5>
<OBX.5>When compared with ECG of 17-JAN-2020 13:15, there is no significant change.</OBX.5>
<OBX.5>Confirmed by DOCTOR MD, DOCTOR (174) on 1/26/2020 10:57:01 PM</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>2</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>552</CWE.1>
<CWE.2>Ventricular Rate</CWE.2>
</OBX.3>
<OBX.5>126</OBX.5>
<OBX.6>
<CWE.1>BPM</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>3</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>554</CWE.1>
<CWE.2>P-R Interval</CWE.2>
</OBX.3>
<OBX.5>88</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>4</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>555</CWE.1>
<CWE.2>QRS Duration</CWE.2>
</OBX.3>
<OBX.5>90</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>5</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>556</CWE.1>
<CWE.2>Q-T Interval</CWE.2>
</OBX.3>
<OBX.5>380</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>6</OBX.1>
<OBX.2>ST</OBX.2>
<OBX.3>
<CWE.1>557</CWE.1>
<CWE.2>QTC Calculation(Bazett)</CWE.2>
</OBX.3>
<OBX.5>550</OBX.5>
<OBX.6>
<CWE.1>ms</CWE.1>
</OBX.6>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>7</OBX.1>
<OBX.2>RP</OBX.2>
<OBX.3>
<CWE.1>APPWebURL</CWE.1>
</OBX.3>
<OBX.5>
<RP.1>http://SERVERSQL1:8989/appcripts/appweb.dll?RetrieveTestByDateTime?PatientID=123456789&Date=23-01-2020&Time=12%3a21%3a05%3a00&TestType=ECG&Site=1&OutputType=PDF&Ext=PDF</RP.1>
</OBX.5>
<OBX.11>F</OBX.11>
</OBX>
</ORU_R01.OBSERVATION>
</root>
1.
德克萨斯州
2080
诊断
窦性心律
右轴偏差
右心房扩大
可能的心室预激
双心室肥大
与2020年1月17日13:15的心电图相比,无明显变化。
2020年1月26日10:57:01下午由医学博士(174)确认
F
2.
装货单
552
心室率
126
BPM
F
3.
装货单
554
P-R间期
88
太太
F
4.
装货单
555
QRS持续时间
90
太太
F
5.
装货单
556
Q-T间期
380
太太
F
6.
装货单
557
QTC计算(Bazett)
550
太太
F
7.
反相
APPWebURL
http://SERVERSQL1:8989/appcripts/appweb.dll?RetrieveTestByDateTime?PatientID=123456789&日期=2020年1月23日&;时间=12%3a21%3a05%3a00&;TestType=ECG&;站点=1&;OutputType=PDF&;Ext=PDF
F
输出:
<ORU_R01.OBSERVATION>
<OBX>
<OBX.1>1</OBX.1>
<OBX.2>TX</OBX.2>
<OBX.3>
<CWE.1>2082</CWE.1>
<CWE.2>Diagnosis</CWE.2>
</OBX.3>
<OBX.5>Sinus rhythm</OBX.5>
<OBX.5>Right axis deviation</OBX.5>
<OBX.5>Right atrial enlargement</OBX.5>
<OBX.5>Possible Ventricular preexcitation</OBX.5>
<OBX.5>Biventricular hypertrophy</OBX.5>
<OBX.5>When compared with ECG of 17-JAN-2020 13:15, there is no significant change.</OBX.5>
<OBX.5>Confirmed by DOCTOR MD, DOCTOR (174) on 1/26/2020 10:57:01 PM</OBX.5>
<OBX.5>Ventricular Rate: 126 BPM</OBX.5>
<OBX.5>P-R Interval: 88 ms</OBX.5>
<OBX.5>QRS Duration: 90 ms</OBX.5>
<OBX.5>Q-T Interval: 380 ms</OBX.5>
<OBX.5>QTC Calculation(Bazett): 550 ms</OBX.5>
</OBX>
</ORU_R01.OBSERVATION>
1.
德克萨斯州
2082
诊断
窦性心律
右轴偏差
右心房扩大术