function loadUpdateClientInfoXml($filename) { $xml = file_get_contents($filename); $clientNode = @simplexml_load_string($xml); if (!$clientNode) { throw new RuntimeException("Failed to parse " . $filename); } $resources = array(); foreach ($clientNode->eocs->eoc as $eocNode) { $resource = new Resource(); $resource->setType('perinatologie/dossier'); // Client details $resource->addPropertyValue('bsn', $clientNode->bsn); $resource->addPropertyValue('birthdate', $clientNode->birthdate); $resource->addPropertyValue('zisnummer', $clientNode->zisnummer); $resource->addPropertyValue('firstname', $clientNode->firstname); $resource->addPropertyValue('lastname', $clientNode->lastname); // Eoc details $resource->addPropertyValue('reference', $eocNode->reference); $resource->addPropertyValue('gravida', $eocNode->gravida); $resource->addPropertyValue('para', $eocNode->para); $resource->addPropertyValue('starttimestamp', $eocNode->starttimestamp); $resource->addPropertyValue('edd', $eocNode->edd); foreach ($eocNode->teammember as $shareNode) { $share = new Share(); $share->setName((string) $shareNode->name); $share->setIdentifierType('agb'); $share->setIdentifier((string) $shareNode->agb); $share->setPermission((string) $shareNode->permission); $resource->addShare($share); } $resources[] = $resource; } return $resources; }
private function parseDossiersXmlToResources($xml) { $rootNode = @simplexml_load_string($xml); if (!$rootNode) { echo $xml; throw new RuntimeException("Failed to parse response as XML...\n"); } $resources = array(); foreach ($rootNode->dossier as $dossierNode) { if ($dossierNode->client && $dossierNode->client->eocs) { $clientNode = $dossierNode->client; $providerNode = $dossierNode->provider; foreach ($dossierNode->client->eocs->eoc as $eocNode) { $resource = new Resource(); $resource->setType('perinatologie/dossier'); $resource->addPropertyValue('reference', $eocNode->reference); $resource->addPropertyValue('client_bsn', $clientNode->bsn); $resource->addPropertyValue('client_birthdate', $clientNode->birthdate); $resource->addPropertyValue('client_displayname', $clientNode->displayname); $resource->addPropertyValue('client_zisnr', $clientNode->zisnr); $resource->addPropertyValue('gravida', $eocNode->gravida); $resource->addPropertyValue('para', $eocNode->para); $resource->addPropertyValue('provider_reference', $providerNode->dbname); $resource->addPropertyValue('provider_apiurl', $providerNode->apiurl); $source = new Source(); $source->setApi('v1'); $resource->setSource($source); $resources[] = $resource; } } } return $resources; }
private function parseResourceXmlToResource($resourceNode) { $resource = new Resource(); $resource->setType((string) $resourceNode['type']); foreach ($resourceNode->property as $propertyNode) { $resource->addPropertyValue($propertyNode['name'], (string) $propertyNode); } return $resource; }