第十七章 定义 HL7 的 DTL 数据转换 - 空映射代码
2023-08-09 本文已影响0人
Cache技术分享
第十七章 定义 HL7 的 DTL 数据转换 - 空映射代码
空映射代码
有些 HL7
应用程序使用空映射约定。根据此约定,源应用程序可以发送一个由两个连续双引号字符 ("") 组成的字段,以表示该字段中是否有数据,请将其从应用程序中删除。
许多目标应用程序并不期望这些指令,也不是为了响应它们而设计的。如果是这种情况,并且双引号作为实际患者数据保存在目标应用程序中,则应用程序用户会在屏幕上看到双引号字符。这可能会令人烦恼和误导。
当源应用程序使用空映射约定时, HL7
数据转换可以检查 HL7
字段中的空映射条目并将其替换为空字符串,或者以其他方式填充数据以利于目标应用程序。
以下 <if> 语句代表最简单的情况。它检查源中是否存在空映射,并将其替换为目标中的空字符串。 <if> 条件使用 2
个带引号的字符串测试空映射代码“”
。这将导致总共 6
个双引号字符,不包括包裹整个条件值的单引号。 (仔细数一下!)
<if condition='source.{PV1:7().4}=""""""'>
<true>
<assign property='target.{PV1:7().4}' value='""' />
</true>
</if>
在上面的示例中,<assign> 值使用 2
个连续的双引号字符指示空字符串,单引号包裹整个值。
以下语法同样有效:
<if condition='source.{PV1:7().4}=""""""'>
<true>
<assign property='target.{PV1:7().4}' value='""' />
</true>
</if>
可以实现处理空映射的更复杂的目标。以下示例根据 {PV1:3}
中是否实际存在值来采取替代操作。如果该字段包含空映射代码,则 <true> 元素将执行。否则,<false> 元素将执行。
<if condition='source.{PV1:3}=""""""'>
<true>
<assign property='target.{PV1:3.1}' value='source.{PV1:PatientType}' />
<assign property='target.{PV1:3.2}' value='source.{PV1:PatientType}' />
</true>
<false>
<code><![CDATA[
// Dr Chart pulls subfields as follows:
// 1 location, 2 desc, 3 room, 4 bed, 5 wing, 6 floor
]]></code>
<assign property='target.{PV1:3.1}' value='source.{PV1:3.1}' />
<assign property='target.{PV1:3.2}' value='source.{PV1:3.1}' />
<assign property='target.{PV1:3.3}' value='source.{PV1:3.2}' />
<assign property='target.{PV1:3.4.1}' value='source.{PV1:3.3}' />
<assign property='target.{PV1:3.5}' value='source.{PV1:3.1}' />
</false>
</if>