如何从BizTalk 2010中的HL7消息中的段中获取特定值

时间:2011-10-12 04:43:31

标签: biztalk hl7

我正在开发BizTalk2010中的HL7相关地图,我已准备就绪,包括源和目标模式,地图等,一切都正确处理。我想要实现的是从一个必需的段中获取特定值,即患者标识(PID)并将其传递给我的目标模式的MemberID字段。这就是PID段的外观(仅粘贴特定部分):

PID | 1 ||的 000123456 ^^^^ MR〜^^^^ MA〜123456789A ^^^^ MC〜12345 ^^^^ PT〜123456789 ^^^^ SS〜000000000001234 ^^^^ PI〜^^^^ AN〜^^^^ VN ||约翰史密斯^ ^ A |

上面的粗体部分是PID-3患者标识符列表(CX),我需要的值在文本SS~之后是000000000001234。如果我只是映射第一个PID-3的PID-3-1 ID字段患者标识符列表,我得到第一个值000123456.我需要的值是第6个PID-3患者标识符列表(见下图)。请建议

2 个答案:

答案 0 :(得分:1)

对于您的情况,您可能希望使用索引functoid。这个functoid将您想要映射的元素作为第一个输入和要映射的元素的1-base索引。

这就是BizTalk 2010中的地图: This screenshot shows how the map is configured

functoid的配置如下所示: Functoid Configuration

如果你看一下地图生成的xslt,你会想看到类似的东西: enter image description here

答案 1 :(得分:0)

如果索引functoid不起作用(因为你不能依赖于特定的顺序),你可以尝试在顶层之间连接一个循环functoid以确保你获得所有记录然后为PT做一个逻辑相等的限定符和将functoid映射到id号的值。从逻辑等于根循环的链接应该阻止空循环

map