簡體   English   中英

將HL7段轉換為XML

[英]Converting and HL7 segment to XML

我有一個XML,我們可以使用HAPI庫生成,並使用XSL來更改XML的格式。 我使用以下模板。 當前模板查看OBX.5段以獲取數字值,然后解釋OBX6(度量單位)。 不過我想也解釋OBX6時,他們的風格來自客戶之一,與插入符號重復^之間(例如: %^%mL^mL )。 我當前的模板忽略了這一點,但我希望能夠在^之前或之后獲得segment substring的值。

<xsl:template match="hl7:OBX.6[matches(./../hl7:OBX.5, '^\d+(\.\d+)?$') and index-of($percentList, .) or index-of($mgdlList, .) or index-of($mlList, .) or index-of($mmList, .) or index-of($mgList, .))]">
    <result><xsl:value-of select="./../hl7:OBX.5" /></result>
        <xsl:when test="index-of($percentList, .)">
            <units>%</units>
        </xsl:when>
...
        <xsl:when test="index-of($mlList, .)">
            <units>ml</units>
        </xsl:when>

        <xsl:otherwise>
            <units><xsl:value-of select="./hl7:CE.1" /></units>
        </xsl:otherwise>
...

</xsl:template>

結果應該產生

            <result>38.0</result>
            <units>%</units>

                <OBX.5>38.0</OBX.5>
                <OBX.6>
                    <CE.1>%^%</CE.1>
                </OBX.6>

提前致謝!

用途

tokenize(hl7:CE.1, '\^')[1]

這是一個簡單的基於XSLT 2.0的驗證:

<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 xmlns:xs="http://www.w3.org/2001/XMLSchema">
 <xsl:output omit-xml-declaration="yes" indent="yes"/>

 <xsl:template match="OBX.6">
  <xsl:sequence select="tokenize(CE.1, '\^')[1]"/>
 </xsl:template>

 <xsl:template match="text()"/>
</xsl:stylesheet>

當此轉換應用於以下XML文檔時 (從提供的XML片段派生並且格式正確):

<t>
    <OBX.5>38.0</OBX.5>
    <OBX.6>
        <CE.1>%^%</CE.1>
    </OBX.6>
</t>

產生了想要的正確結果:

%

我還發現,高致病性禽流感可以調整,以通過行終止,段內划定| 用於段終止符和^用於字段終止符。 這極大地幫助了我

相應的xsl看起來像:

<xsl:template match="hl7:OBX.6[matches(./../hl7:OBX.5, '^\d+(\.\d+)?$') ]">

    <xsl:if test="hl7:CE.1[  index-of($percentList, .) or index-of($mgdlList, .) or index-of($mlList, .) or index-of($mmList, .) or index-of($mgList, .))]">
        <result><xsl:value-of select="./../hl7:OBX.5" /></result>

        <xsl:choose>
            <xsl:when test="index-of($percentList, hl7:CE.1)">
                <units>%</units>
            </xsl:when>
...

            <xsl:when test="index-of($mlList, hl7:CE.1)">
                <units>mL</units>
            </xsl:when>
...

            <xsl:otherwise>
                <units><xsl:value-of select="hl7:CE.1" /></units>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:if>
</xsl:template>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM