在HL7的情况下,如何在WSO2调解中获取原始正文?

时间:2018-10-29 04:42:17

标签: soap wso2 wso2esb wso2carbon hl7

我已经在WSO2 EI中实现了一个简单的API服务。 Input端点配置为实质上接受'application / edi-hl7'来读取HL7消息。我对消息执行了某些转换,然后需要使用JSON进行响应。因此,作为响应JSON有效负载的一部分,我还希望将原始HL7消息作为请求有效负载发送,并且也以原始形状发送(不是XML / JSON格式)。 说我的输入是

  

MSH | ^〜\&| ULTRA_V3.1 | LAV | Web门户| Web门户| 201810030949 || ORU ^ R01 | 279857418 | P | 2.3.1 ||| AL | AL | AU   PID || 3914950 | 21710425491 ^^^ AUSHIC ^ MC〜111111 ^^^^ UR〜5548391 ^^^^ ULTRAREL || KAY ^ BRUCE ^^^ || 19630604 | M ||| 11 NJUONA AVE ^^ BAIURE BAY ^ WSN ^ 2000 ||| ^^^^^^^ 0243333323 |||||| 21710425491   PV1 || O | CSLI ^ KINUYBER ||||| 214082JL ^ KOPRA ^ MARUTI ^^ KAYBB ^ DR   ORC | RE || 18-15768981-000-0 || R   OBR | 1 || 18-15768981-000-0 | 000 ^ PENDING ^ ULTRA ^ LAVLEI || 20180914 | 201810030805 ||| CSKI |||| 201810030949 || 214082JL ^ KOPRA ^ MARUTI ^^ KAYBB ^ DR || TFT- 0 ^ GLU-0 ^ CRP-0 ^ RDA-0 ^ MBA-0 ^ LIP-0 ^ FBE-0 || 683131368452 | LAV ^ false | 201810030949 || LAB | I || ^^^ 20180914 |

示例输出为

{"message": "MSH|^~\&|.....", "Otherkeys": "someVal"}

作为message的一部分,我希望原样而不是SOAP正文。 附言我需要删除每行末尾的\n\r。 主要问题是如何在调解流程中获得原始形状的原始消息。

1 个答案:

答案 0 :(得分:2)

这是示例API。希望能帮助到你。 Screenshot of the result 只需将有效负载工厂介体放在序列中的适当位置即可。

<api xmlns="http://ws.apache.org/ns/synapse" name="Test" context="/Test">
   <resource methods="POST" uri-template="/testHL">
      <inSequence>
         <log level="full"/>
         <payloadFactory media-type="json">
            <format>{"message": "$1", "Otherkeys": "someVal"}</format>
            <args>
               <arg evaluator="xml" expression="$body/*[1]"/>
            </args>
         </payloadFactory>
         <respond/>
      </inSequence>
   </resource>
</api>