Example #1
0
            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()) {
Example #2
0
            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();
Example #6
0
 /**
  * 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;
 }
Example #9
0
$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();
}