How to get specific value from a Segment in HL7 message in BizTalk 2010
I'm developing a HL7 related Map in BizTalk2010, I've everything ready including the source and target schemas, maps etc and everything is processing correctly. What I'm trying to achieve is to get a specific value from one of the required segments i.e. Patient Identification (PID) and pass it MemberID field of my target schema. This is how the PID segment looks like (pasting only the specific part):
PID|1||000123456^^^^MR~^^^^MA~123456789A^^^^MC~12345^^^^PT~123456789^^^^SS~000000000001234^^^^PI~^^^^AN~^^^^VN||John^Smith^A|
the bold part above is PID-3 Patient Identifier List (CX), the value i need is after the text SS~ which is 000000000001234. If I simply map the PID-3-1 ID field of the first PID-3 Patient Identifier List, I get the first 开发者_开发知识库value which is 000123456. The value I need is sitting in the 6th PID-3 Patient Identifier List (see image below). Please advice
For your case, you will probably want to use an index functoid. This functoid takes the element that you want to map as the first input and the 1-base index of the element that you would like to map.
This is what the map in BizTalk 2010 would look like:
The configuration of the functoid would look like the following:
If you look at the generated xslt of the map, you will want to see something similar to this:
If the index functoid doesn't work (because you can't rely on a specific order) you could try to connect a looping functoid between the top level to make sure you get all records then do a logical equal for the PT qualifier and a value mapping functoid to the id number. The link from the logical equal to the root loop should block the empty loops
精彩评论