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); } }