Как сделать запрос мыла с hl7 в теле SOAP? - PullRequest
0 голосов
/ 01 ноября 2019

Ситуация следующая: у меня есть входящая конечная точка 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>^~\&amp;</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>

Я должен что-то упустить, но что? Это вообще возможно? Спасибо

...