Ситуация следующая: у меня есть входящая конечная точка MLP HL7 Когда я получаю HL7 на этой входящей конечной точке, я просто хочу сделать запрос мыла с сообщением HL7 (в формате HL7, а не в XML) в телемылаЯ хочу добиться чего-то похожего на это:
<soapenv:Envelope xmlns:adt="http://epr/adt" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsep="http://schemas.datacontract.org/2004/07/WsEpr.DataContract">
<soapenv:Header/>
<soapenv:Body>
<adt:Send>
<!--Optional:-->
<adt:message>
<!--Optional:-->
<wsep:content><![CDATA[MSH|^~\&|HL7Soup|Instance1|HL7Soup|Instance2|200808181126|SECURITY|ADT^A04|MSG00001|P|2.5.1
EVN|A01-|200808181123|
PID||77291|PATID1234^9^55A||Smith^Willian^A^III||19720415|M-||2106-3|555 Upper Harbour Rd^^Springfield^NC^3401-540|NN|(919)479-4354|(919)371-654~(919)377-3455||S|AGN|PATID12345001^2^R10|1234567890|A-84334^NC
NK1|1|Smith^Barbara^K|SPO|||||20011105
NK1|1|Smith^Bill^A|FTH
PV1|1|I|2000^2012^01||||004777^LEBAUER^SIDNEY^J.|||SUR||-||1|A0-
AL1|1||^PENICILLIN||PRODUCES HIVES~RASH
AL1|2||^CAT DANDER
DG1|001|I9|1550|MAL NEO LIVER, PRIMARY|20080501103005|F||
PR1|2234|M11|111^CODE151|COMMON PROCEDURES|200809081123
ROL|45^RECORDER^ROLE MASTER LIST|AD|CP|34622^SMITH^JILL|200805011201
GT1|1122|1519|BILL^GATES^A
IN1|001|A357|1234|BCMD|||||132987
IN2|ID1551001|SSN12345678]]></wsep:content>
</adt:message>
</adt:Send>
</soapenv:Body>
</soapenv:Envelope>
Вот код последовательности:
<?xml version="1.0" encoding="UTF-8"?>
<sequence name="EprSeq" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
<log/>
<propertyGroup>
<property name="ROUTE" scope="default" type="STRING" value="EPR"/>
<property name="messageType" scope="axis2" type="STRING" value="application/edi-hl7"/>
<property name="ContentType" scope="axis2" type="STRING" value="application/edi-hl7"/>
</propertyGroup>
<payloadFactory media-type="xml">
<format>
<soapenv:Envelope xmlns:adt="http://epr/adt" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsep="http://schemas.datacontract.org/2004/07/WsEpr.DataContract">
<soapenv:Header/>
<soapenv:Body>
<adt:Send>
<!--Optional:-->
<adt:message>
<!--Optional:-->
<wsep:content><![CDATA[$1]]></wsep:content>
</adt:message>
</adt:Send>
</soapenv:Body>
</soapenv:Envelope>
</format>
<args>
<arg evaluator="xml" expression="$body"/>
</args>
</payloadFactory>
<header name="soapAction" scope="transport" value="http://epr/adt/Send"/>
<log level="full"/>
<call>
<endpoint key="wsEptAdtEP"/>
</call>
<log level="full"/>
</sequence>
Это работает хорошо, но сгенерированное сообщение SOAP содержит сообщение HL7 в формате XML, напримерэто:
<?xml version='1.0' encoding='utf-8'?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"><soapenv:Body><hl7:message xmlns:hl7="http://wso2.org/hl7"><ADT_A01 xmlns="urn:hl7-org:v2xml">
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~\&</MSH.2>
<MSH.3>
<HD.1>HL7Soup</HD.1>
</MSH.3>
<MSH.4>
<HD.1>Instance1</HD.1>
</MSH.4>
<MSH.5>
<HD.1>HL7Soup</HD.1>
</MSH.5>
<MSH.6>
<HD.1>Instance2</HD.1>
</MSH.6>
<MSH.7>
<TS.1>200808181126</TS.1>
</MSH.7>
<MSH.8>SECURITY</MSH.8>
<MSH.9>
<MSG.1>ADT</MSG.1>
<MSG.2>A04</MSG.2>
</MSH.9>
<MSH.10>MSG00001</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.5.1</VID.1>
</MSH.12>
</MSH>
...........
<IN2>
<IN2.1>
<CX.1>ID1551001</CX.1>
</IN2.1>
<IN2.2>SSN12345678</IN2.2>
</IN2>
</ADT_A01.INSURANCE>
</ADT_A01></hl7:message></soapenv:Body></soapenv:Envelope>
Я должен что-то упустить, но что? Это вообще возможно? Спасибо