if (isset($_POST["sc_venue_id"])) { $object->_NDA = $_POST["sc_venue_id"]; } } break; } // Facturation de l'opération où du séjour $object->facture = 1; if ($unlock_dossier) { $object->facture = 0; } else { $object->_force_sent = true; } $object->loadLastLog(); try { $object->store(); } catch (CMbException $e) { // Cas d'erreur on repasse la facturation à l'état précédent $object->facture = 0; if ($unlock_dossier) { $object->facture = 1; } $object->store(); $e->stepAjax(); } $object->countExchanges("pmsi", "evenementServeurActe"); if (!$unlock_dossier) { // Flag les actes CCAM en envoyés foreach ($object->_ref_actes_ccam as $_acte_ccam) { $_acte_ccam->sent = 1; if ($msg = $_acte_ccam->store()) {
if ($sejour->sortie_reelle) { $sejour->sortie_reelle = CMbDT::dateTime("+4 HOURS", $sejour->entree); } /* TODO Supprimer ceci après l'ajout des times picker */ $sejour->_hour_entree_prevue = null; $sejour->_min_entree_prevue = null; $sejour->_hour_sortie_prevue = null; $sejour->_min_sortie_prevue = null; } elseif ($sejour->type == "comp") { $sejour->sortie_prevue = CMbDT::dateTime("+72 HOURS", $sejour->entree); if ($sejour->sortie_reelle) { $sejour->sortie_reelle = CMbDT::dateTime("+72 HOURS", $sejour->entree); } /* TODO Supprimer ceci après l'ajout des times picker */ $sejour->_hour_entree_prevue = null; $sejour->_min_entree_prevue = null; $sejour->_hour_sortie_prevue = null; $sejour->_min_sortie_prevue = null; } if ($msg = $sejour->store()) { CAppUI::stepAjax($msg, UI_MSG_ERROR); } break; default: CAppUI::stepAjax("L'évenement choisit n'est pas supporté", UI_MSG_ERROR); } CAppUI::stepAjax("Evenement effectué"); if ($callback) { CAppUI::callbackAjax($callback); } CApp::rip();
/** * Enregistrement de la grossesse * * @param CSejour $newVenue Admit * * @return null|string|void */ function storeGrossesse(CSejour $newVenue) { $sender = $this->_ref_sender; if (!$sender->_configs["create_grossesse"]) { return null; } if ($newVenue->type_pec != "O") { return null; } $grossesse = $newVenue->loadRefGrossesse(); if (!$grossesse->_id) { $patient = $newVenue->loadRefPatient(); $grossesse = $patient->loadLastGrossesse(); if (!$grossesse->_id) { $grossesse->parturiente_id = $newVenue->patient_id; $grossesse->group_id = $newVenue->group_id; $grossesse->terme_prevu = CMbDT::date($newVenue->sortie); $grossesse->_eai_sender_guid = $sender->_guid; if ($msg = $grossesse->store()) { return $msg; } } } $newVenue->grossesse_id = $grossesse->_id; // On ne check pas la cohérence des dates des consults/intervs $newVenue->_skip_date_consistencies = true; $newVenue->_eai_sender_guid = $sender->_guid; if ($msg = $newVenue->store()) { return $msg; } return null; }
} // Creation d'un séjour reliquat if (!CAppUI::conf("dPurgences create_sejour_hospit")) { // Clonage $sejour_rpu = new CSejour(); foreach ($properties_sejour as $name => $value) { $sejour_rpu->{$name} = $value; } // Forcer le reliquat du séjour en urgences $sejour_rpu->type = "urg"; // Enregistrement $sejour_rpu->_id = null; // Pas de génération du NDA, et pas de synchro (handler) du séjour $sejour_rpu->_generate_NDA = false; $sejour_rpu->_no_synchro = true; $msg = $sejour_rpu->store(); viewMsg($msg, "Séjour reliquat enregistré"); // Transfert du RPU sur l'ancien séjour $rpu->sejour_id = $sejour_rpu->_id; } //Cas d'une hospitalisation normale sans collision et sans rattachement if (!$sejour_id_merge) { // Passage en séjour d'hospitalisation $sejour->type = "comp"; $sejour->_en_mutation = $sejour_rpu->_id; // La synchronisation était désactivée après la sauvegarde du RPU $sejour->_no_synchro = false; $msg = $sejour->store(); viewMsg($msg, "CSejour-title-modify"); } //Problème sur le séjour, aucune action fait sur le rpu
* @version $Revision:$ * @author SARL OpenXtrem * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html */ CCanDo::checkAdmin(); $action = CValue::post("action", "modify"); $sejour = new CSejour(); switch ($action) { case "modify": while (!$sejour->load(rand(1, 5000))) { } // randomize libelle $sejour->libelle = $sejour->libelle ? $sejour->libelle : "un libelle pour le mettre dans l'ordre"; $libelle = str_split($sejour->libelle); shuffle($libelle); $sejour->libelle = implode("", $libelle); break; case "create": //$sejour->sample(); $sejour->group_id = 1; $sejour->praticien_id = 73; $sejour->patient_id = rand(1, 5000); $sejour->entree_prevue = CMbDT::dateTime(); $sejour->sortie_prevue = CMbDT::dateTime("+1 day"); //$patient->updateFormFields(); break; } CAppUI::displayMsg($sejour->store(), "CSejour-msg-{$action}"); mbTrace($sejour); echo CAppUI::getMsg(); CApp::rip();
/** * Recording admit * * @param CSejour $newSejour Admit * @param CInteropSender $sender Sender * @param bool $generateNDA Generate NDA ? * * @return null|string null if successful otherwise returns and error message */ static function storeSejour(CSejour $newSejour, CInteropSender $sender, $generateNDA = false) { // Notifier les autres destinataires autre que le sender $newSejour->_eai_sender_guid = $sender->_guid; $newSejour->_generate_NDA = $generateNDA; if ($msg = $newSejour->store()) { $newSejour->repair(); // Notifier les autres destinataires autre que le sender $newSejour->_eai_sender_guid = $sender->_guid; $newSejour->_generate_NDA = $generateNDA; return $newSejour->store(); } }
/** * Ajustement du séjour à l'enregistrement * * @param CSejour $sejour Séjour englobant * @param datetime $dateTimePlage Date et heure de la plage à créer * * @return string|null Store-like message */ private function adjustSejour(CSejour $sejour, $dateTimePlage) { if ($sejour->_id == $this->_ref_sejour->_id) { return null; } // Journée dans lequel on déplace à déjà un séjour if ($sejour->_id) { // Affecte à la consultation le nouveau séjour $this->sejour_id = $sejour->_id; return null; } // Journée qui n'a pas de séjour en cible $count_consultations = $this->_ref_sejour->countBackRefs("consultations"); // On déplace les dates du séjour if ($count_consultations == 1 && $this->_ref_sejour->type === "consult") { $this->_ref_sejour->entree_prevue = $dateTimePlage; $this->_ref_sejour->sortie_prevue = CMbDT::date($dateTimePlage) . " 23:59:59"; $this->_ref_sejour->_hour_entree_prevue = null; $this->_ref_sejour->_hour_sortie_prevue = null; if ($msg = $this->_ref_sejour->store()) { return $msg; } return null; } // On créé le séjour de consultation $sejour->patient_id = $this->patient_id; $sejour->praticien_id = $this->_ref_chir->_id; $sejour->group_id = CGroups::loadCurrent()->_id; $sejour->type = "consult"; $sejour->entree_prevue = $dateTimePlage; $sejour->sortie_prevue = CMbDT::date($dateTimePlage) . " 23:59:59"; if ($msg = $sejour->store()) { return $msg; } $this->sejour_id = $sejour->_id; return null; }
/** * store sejour * * @param CSejour $sejour sejour * @param String[] $identifier identifier * @param DOMNode $node node * * @return CHPrimSanteError|null */ function storeSejour($sejour, $identifier, $node) { /** @var CInteropSender $sender */ $sender = $this->_ref_sender; $mediuser = $this->getDoctor($node); if (!$mediuser || $mediuser && !$mediuser->_id) { return new CHPrimSanteError($this->_ref_exchange_hpr, "P", "15", array("P", $this->loop, $this->identifier_patient), "8.14"); } $sejour->praticien_id = $mediuser->_id; $sejour->group_id = $sender->group_id; if ($msg = $sejour->store()) { return new CHPrimSanteError($this->_ref_exchange_hpr, "P", "14", array("P", $this->loop, $this->identifier_patient), "8.24", $msg); } return $sejour; }
$request->addTable("sejour"); $request->addLJoinClause("rpu", "rpu.sejour_id = sejour.sejour_id"); $request->addWhereClause("annule", "!='1'"); $request->addWhereClause("facture", "!='1'"); $request->addWhereClause("sortie_reelle", "BETWEEN '" . CMbDT::dateTime("-{$day}DAY") . "' AND '" . CMbDT::dateTime() . "'"); $request->addWhereClause("rpu.sejour_id", "IS NOT NULL"); $request->addGroup("sejour.sejour_id"); $request->addHaving("count(*) = 1"); $request->setLimit($limit); $list_sejour = $ds->loadList($request->makeSelect()); foreach ($list_sejour as $_sejour_id) { $sejour = new CSejour(); $sejour->load($_sejour_id["sejour_id"]); if (!($nda = $sejour->getTagNDA())) { continue; } $rpu = $sejour->loadRefRPU(); if ($rpu->mutation_sejour_id) { $sejour_reliquat = $rpu->loadRefSejourMutation(); if (!($nda = $sejour_reliquat->getTagNDA())) { continue; } $consultations = $sejour_reliquat->loadRefsConsultations(); foreach ($consultations as $_consultation) { $_consultation->facture = "1"; $_consultation->store(); } } $sejour->facture = "1"; $sejour->store(); }