public function processprs()
 {
     $prsmodel = new prspatientModel();
     $keukenmodel = new keukenpatientModel();
     try {
         //	All patiënts in PRS
         $all = $prsmodel->get();
         $allpatnr = array();
         echo '<pre>' . count($all) . '</pre>';
         foreach ($all as $prspatient) {
             $allpatnr[$prspatient->getNr_pat()] = $prspatient->getNr_pat();
             $keukenpatiënt = $keukenmodel->getfromPatientnr($prspatient->getNr_pat());
             if (count($keukenpatiënt) == 1) {
                 $keukenpatiënt = $keukenpatiënt[0];
                 if ($keukenpatiënt->getCurrentdossiernr() != $prspatient->getNr_dos()) {
                     $keukenpatiënt->setCurrentdossiernr($prspatient->getNr_dos());
                     $keukenmodel->save($keukenpatiënt);
                 }
                 if ($keukenpatiënt->getDokterognummer() != $prspatient->getNr_dok()) {
                     $keukenpatiënt->setDokterognummer($prspatient->getNr_dok());
                     $keukenpatiënt->setDokternaam('Dr. ' . $prspatient->getFnaam_dok() . ' ' . $prspatient->getVnaam_dok());
                     $keukenmodel->save($keukenpatiënt);
                 }
                 if ($keukenpatiënt->getAchternaam() != $prspatient->getFnaam_pat() || $keukenpatiënt->getVoornaam() != $prspatient->getVnaam_pat() || $keukenpatiënt->getGeslacht() != $prspatient->getGeslacht() || $keukenpatiënt->getGeboortedatum() != $prspatient->getDat_geb()) {
                     $keukenpatiënt->setAchternaam($prspatient->getFnaam_pat());
                     $keukenpatiënt->setVoornaam($prspatient->getVnaam_pat());
                     $keukenpatiënt->setGeslacht($prspatient->getGeslacht());
                     list($date, $time) = explode(' ', $prspatient->getDat_geb());
                     list($year, $month, $day) = explode('-', $date);
                     list($hour, $minute, $second) = explode(':', $time);
                     $gebdat = mktime($hour, $minute, $second, $month, $day, $year);
                     $keukenpatiënt->setGeboortedatum($gebdat);
                     $keukenmodel->save($keukenpatiënt);
                 }
                 if ($keukenpatiënt->getKamer() != $prspatient->getNr_kamer() || $keukenpatiënt->getBed() != $prspatient->getNr_loc_bed() || $keukenpatiënt->getVerplaatsing() != $prspatient->getVerplaatsing()) {
                     $keukenpatiënt->setVe($prspatient->getNr_ve());
                     $keukenpatiënt->setKamer($prspatient->getNr_kamer());
                     $keukenpatiënt->setBed($prspatient->getNr_loc_bed());
                     $keukenpatiënt->setVerplaatsing($prspatient->getVerplaatsing());
                     $keukenmodel->save($keukenpatiënt);
                 }
             } elseif (count($keukenpatiënt) == 0) {
                 $keukenpatiënt = new keukenpatientObject();
                 $keukenpatiënt->setAchternaam($prspatient->getFnaam_pat());
                 $keukenpatiënt->setVoornaam($prspatient->getVnaam_pat());
                 $keukenpatiënt->setGeslacht($prspatient->getGeslacht());
                 list($date, $time) = explode(' ', $prspatient->getDat_geb());
                 list($year, $month, $day) = explode('-', $date);
                 list($hour, $minute, $second) = explode(':', $time);
                 $gebdat = mktime($hour, $minute, $second, $month, $day, $year);
                 $keukenpatiënt->setGeboortedatum($gebdat);
                 $keukenpatiënt->setPatientnr($prspatient->getNr_pat());
                 $keukenpatiënt->setCurrentdossiernr($prspatient->getNr_dos());
                 $keukenpatiënt->setCampus(999);
                 $keukenpatiënt->setVe($prspatient->getNr_ve());
                 $keukenpatiënt->setKamer($prspatient->getNr_kamer());
                 $keukenpatiënt->setBed($prspatient->getNr_loc_bed());
                 $keukenpatiënt->setVerplaatsing($prspatient->getVerplaatsing());
                 $keukenpatiënt->setDokterognummer($prspatient->getNr_dok());
                 $keukenpatiënt->setDokternaam('Dr. ' . $prspatient->getFnaam_dok() . ' ' . $prspatient->getVnaam_dok());
                 $keukenmodel->save($keukenpatiënt);
             } else {
                 //TODO: Mail error
             }
         }
         echo '<pre>' . print_r($allpatnr, true) . '</pre>';
         //	Clean out patiënts not in the prs
         $keukenmodel->delete(array('patientnr' => array('mode' => 'NOT IN', 'value' => $allpatnr)));
     } catch (Exception $e) {
         echo '<pre>EXCEPTION: ' . print_r($e, true) . '</pre>';
     }
 }
 protected function processA45Message(hl7Object $message)
 {
     require FRAMEWORK . DS . 'conf' . DS . 'keukenpakket.php';
     $naam = $message->getFieldvalue('PID', 5);
     list($achternaam, $voornaam) = explode($message->getFieldseperator2(), $naam);
     $dossnr = $message->getFieldvalue('PV1', 19);
     list($patnr, $null, $null, $facility) = explode($message->getFieldseperator2(), $message->getFieldvalue('PID', 3));
     list($unit, $kamer, $bed, $campus) = explode($message->getFieldseperator2(), $message->getFieldvalue('PV1', 3));
     $geslacht = $message->getFieldvalue('PID', 8);
     $geboortedatum = $this->converttotime($message->getFieldvalue('PID', 7));
     if ($message->getFieldvalue('PV1', 3) == '') {
         //Ambulant
         $this->finishMessage($message);
         return 0;
     }
     if ($kamer == 0 || $campus == 0 || $bed == 0) {
         //	Erh?? Zonder bed of campus kan ik niets doen!
         $this->errorMessage($message, 'geen kamer/bed/campus');
     } else {
         echo 'verhangen dossier ' . $naam . ' (' . $dossnr . ') VE: ' . $unit . ' Kamer: ' . $kamer . ' Bed: ' . $bed . ' Campus: ' . $campus . '<br />';
         $patientObject = new keukenpatientObject();
         $patientObject->setVoornaam($voornaam);
         $patientObject->setAchternaam($achternaam);
         $patientObject->setCurrentdossiernr($dossnr);
         $patientObject->setPatientnr($patnr);
         $patientObject->setGeslacht($geslacht);
         $patientObject->setGeboortedatum($geboortedatum);
         $patientObject->setKamer($kamer);
         $patientObject->setBed($bed);
         $patientObject->setCampus($campus);
         $patientObject->setVe($unit);
         $patientObject->setLastmessageid($message->getFieldvalue('MSH', 10));
         $patientObject->setLasteventtime($this->converttotime($message->getFieldvalue('EVN', 6)));
         $patientObject->setLastmessagetime($this->converttotime($message->getFieldvalue('EVN', 2)));
         if ($message->getFieldvalue('PV1', 7) != '') {
             list($dokterognummer, $dokternaam, $doktervoornaam, $null, $null, $dokterprefix) = explode($message->getFieldseperator2(), $message->getFieldvalue('PV1', 7));
             $patientObject->setDokterognummer($dokterognummer);
             $patientObject->setDokternaam($dokterprefix . ' ' . $dokternaam . ' ' . $doktervoornaam);
         }
         $model = new keukenpatientModel();
         $test = $model->getfromPatientnr($patnr);
         if (count($test) > 0) {
             $patientObject->setId($test[0]->getId());
         }
         try {
             $model->save($patientObject);
         } catch (Exception $e) {
             $this->errorMessage($message, 'could not save: ' . $e->getMessage());
             return false;
         }
         // verwijderen bij de vorige patiënt?
         $oldpatnr = $message->getFieldvalue('MRG', 1);
         $olddosnr = $message->getFieldvalue('MRG', 5);
         $testpat = $model->get(array('AND' => array(array('patientnr' => array('mode' => '=', 'value' => $oldpatnr)), array('currentdossiernr' => array('mode' => '=', 'value' => $olddosnr)))));
         if (count($testpat) == 1) {
             $testpat = $testpat[0];
             $testpat->setKamer('');
             $testpat->setBed('');
             $testpat->setCampus('');
             $testpat->setVe('');
             $testpat->setCurrentdossiernr('');
             $testpat->setDokterognummer('');
             $testpat->setDokternaam('');
             try {
                 $model->save($testpat);
             } catch (Exception $e) {
                 $this->errorMessage($message, 'could not save: ' . $e->getMessage());
                 return false;
             }
         }
         //			// register it
         //			$this->registermovement($message);
         // We made it!
         $this->finishMessage($message);
     }
 }