<?php
$dati2 = "<PDresponse>
<isStatusOK>true</isStatusOK>
<status>0</status>
<payLoad><?xml version="1.0"?>
<ADR_A19 xmlns="urn:hl7-org:v2xml">
<MSH>
<MSH.1>|</MSH.1>
<MSH.2>^~\&amp;</MSH.2>
<MSH.3>
<HD.1>ANAGRER</HD.1>
<HD.2>SAIARER 6.106</HD.2>
</MSH.3>
<MSH.4>
<HD.1>080000</HD.1>
</MSH.4>
<MSH.7>
<TS.1>20140416143613</TS.1>
</MSH.7>
<MSH.9>
<MSG.1>ADR</MSG.1>
<MSG.2>A19</MSG.2>
<MSG.3>ADR_A19</MSG.3>
</MSH.9>
<MSH.10>08000063200048234914</MSH.10>
<MSH.11>
<PT.1>P</PT.1>
</MSH.11>
<MSH.12>
<VID.1>2.5</VID.1>
</MSH.12>
</MSH>
<MSA>
<MSA.1>AA</MSA.1>
<MSA.2>RERSIMIRER20140416143613</MSA.2>
</MSA>
<QAK>
<QAK.4>1</QAK.4>
<QAK.5>1</QAK.5>
<QAK.6>0</QAK.6>
</QAK>
<QRD>
<QRD.1>
<TS.1>20140416143613</TS.1>
</QRD.1>
<QRD.2>R</QRD.2>
<QRD.3>I</QRD.3>
<QRD.4>SIMIRER20140416143613</QRD.4>
<QRD.7>
<CQ.1>30</CQ.1>
<CQ.2>
<CE.1>RD</CE.1>
</CQ.2>
</QRD.7>
<QRD.8>
<XCN.1>SLSPLA77C08L093A</XCN.1>
<XCN.2>
<FN.1>Paolo</FN.1>
</XCN.2>
<XCN.3>Selis</XCN.3>
</QRD.8>
<QRD.9>
<CE.1>DEM</CE.1>
</QRD.9>
<QRD.10>
<CE.1/>
</QRD.10>
</QRD>
<QRF>
<QRF.1>RER</QRF.1>
<QRF.5>FRANCESCO</QRF.5>
<QRF.5>FICARRI</QRF.5>
<QRF.8>LST</QRF.8>
</QRF>
<ADR_A19.QUERY_RESPONSE>
<PID>
<PID.3>
<CX.1>FCRFNC11T02B034G</CX.1>
<CX.4>
<HD.1>MINISTERO FINANZE</HD.1>
</CX.4>
<CX.5>NNITA</CX.5>
</PID.3>
<PID.3>
<CX.1>5716358</CX.1>
<CX.4>
<HD.1>RER</HD.1>
</CX.4>
<CX.5>RRI</CX.5>
</PID.3>
<PID.3>
<CX.1>*SRVZOGSO1034212</CX.1>
<CX.4>
<HD.1>080102</HD.1>
</CX.4>
<CX.5>PI</CX.5>
<CX.7>20111202</CX.7>
</PID.3>
<PID.3>
<CX.1>B039967</CX.1>
<CX.4>
<HD.1>080102</HD.1>
<HD.2>AZIENDA USL PARMA</HD.2>
</CX.4>
<CX.5>SS</CX.5>
<CX.7>20111202</CX.7>
</PID.3>
<PID.3>
<CX.4>
<HD.1>500001</HD.1>
</CX.4>
<CX.5>HC</CX.5>
</PID.3>
<PID.5>
<XPN.1>
<FN.1>FICARRI</FN.1>
</XPN.1>
<XPN.2>FRANCESCO</XPN.2>
</PID.5>
<PID.7>
<TS.1>20111202</TS.1>
</PID.7>
<PID.8>M</PID.8>
<PID.11>
<XAD.3>FIDENZA</XAD.3>
<XAD.4>PR</XAD.4>
<XAD.7>N</XAD.7>
<XAD.9>034014</XAD.9>
<XAD.10>B034</XAD.10>
</PID.11>
<PID.11>
<XAD.7>D</XAD.7>
</PID.11>
<PID.11>
<XAD.1>
<SAD.1>VIA KENNEDY N¿11</SAD.1>
</XAD.1>
<XAD.3>FIDENZA</XAD.3>
<XAD.4>PR</XAD.4>
<XAD.5>43036</XAD.5>
<XAD.7>L</XAD.7>
<XAD.9>034014</XAD.9>
<XAD.10>B034</XAD.10>
<XAD.13>
<TS.1>20130419</TS.1>
</XAD.13>
</PID.11>
<PID.11>
<XAD.1>
<SAD.1>VIA KENNEDY N11</SAD.1>
</XAD.1>
<XAD.3>FIDENZA</XAD.3>
<XAD.4>PR</XAD.4>
<XAD.5>43036</XAD.5>
<XAD.7>H</XAD.7>
<XAD.9>034014</XAD.9>
<XAD.10>B034</XAD.10>
<XAD.13>
<TS.1>20121105</TS.1>
</XAD.13>
</PID.11>
<PID.26>
<CE.4>100</CE.4>
<CE.5>ITALIA</CE.5>
<CE.6>ISTAT</CE.6>
</PID.26>
<PID.30>N</PID.30>
</PID>
<ROL>
<ROL.2>UC</ROL.2>
<ROL.3>
<CE.1>PP</CE.1>
<CE.2>primary care provider</CE.2>
</ROL.3>
<ROL.4>
<XCN.1>080102</XCN.1>
<XCN.13>ASLR</XCN.13>
</ROL.4>
</ROL>
<ROL>
<ROL.2>UC</ROL.2>
<ROL.3>
<CE.1>PP</CE.1>
<CE.2>primary care provider</CE.2>
</ROL.3>
<ROL.4>
<XCN.1>080102</XCN.1>
<XCN.13>ASLA</XCN.13>
</ROL.4>
<ROL.5>
<TS.1>20111202</TS.1>
</ROL.5>
</ROL>
<NK1>
<NK1.1>1</NK1.1>
<NK1.2>
<XPN.1>
<FN.1>FICARRI</FN.1>
</XPN.1>
<XPN.2>FRANCESCO</XPN.2>
</NK1.2>
<NK1.3>
<CE.1>SEL</CE.1>
</NK1.3>
<NK1.7>
<CE.1>PLS</CE.1>
</NK1.7>
<NK1.8>20130605</NK1.8>
<NK1.13>
<XON.6>
<HD.1>080102</HD.1>
</XON.6>
<XON.10>CRSLTT78B62G337R</XON.10>
</NK1.13>
<NK1.22>
<CE.1>1</CE.1>
<CE.2>Consenso Livello 1</CE.2>
<CE.4>20130605000000</CE.4>
</NK1.22>
</NK1>
<NK1>
<NK1.1>2</NK1.1>
<NK1.2>
<XPN.1>
<FN.1>FICARRI</FN.1>
</XPN.1>
<XPN.2>FRANCESCO</XPN.2>
</NK1.2>
<NK1.3>
<CE.1>SEL</CE.1>
</NK1.3>
<NK1.7>
<CE.1>A</CE.1>
<CE.2>Diritto Assistenza</CE.2>
</NK1.7>
<NK1.8>20111202</NK1.8>
</NK1>
<PV1>
<PV1.2/>
</PV1>
</ADR_A19.QUERY_RESPONSE>
</ADR_A19>
</payLoad>
</PDresponse>";
$response = html_entity_decode($dati2);
$xmlString = preg_replace("/(<\/?)(\w+):([^>]*>)/", "$1$2$3", $response);
preg_match_all('/[^(\x20-\x7F)]*/', $xmlString, $badchars);
if(isset($badchars[0]))
{
$badchars[0] = array_unique($badchars[0]);
foreach($badchars[0] as $badchar)
{
$xmlString = preg_replace("/".$badchar."/", utf8_encode($badchar), $xmlString);
}
}
/* adesso posso usare simplexml */
$xmlString = trim(preg_replace('/<\?xml.*\?>/', '', $xmlString, 1));
$xml = simplexml_load_string($xmlString,'SimpleXMLElement', LIBXML_NOCDATA);
//print_r($xml);
/* Verifico che il messaggio non sia ancora sporco, si sa mai*/
if($xml->soapenvBody->sendMessageResponse->sendMessageReturn != NULL)
$xml = simplexml_load_string($xml->soapenvBody->sendMessageResponse->sendMessageReturn);
//print_r($xml);
if(strtolower($xml->isStatusOK) == "true")
$hl7mess = $xml->payLoad->{'ADR_A19'};
else
echo "errore";
print_r($hl7mess);
preferences:
48.5 ms | 402 KiB | 5 Q