* @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  $Revision$
 * @link     http://www.mediboard.org
 */
CCanDo::checkRead();
$date = CView::request("date", "date default|" . CMbDT::date());
CView::checkin();
$date_max = CMbDT::date("+2 month", $date);
$group = CGroups::loadCurrent();
$grossesse = new CGrossesse();
$where = array();
$where["terme_prevu"] = "BETWEEN '{$date}' AND '{$date_max}'";
$where["group_id"] = "= '{$group->_id}'";
$grossesses = $grossesse->loadList($where);
$sejours = CStoredObject::massLoadBackRefs($grossesses, "sejours", "entree_prevue DESC");
CStoredObject::massLoadBackRefs($sejours, "operations", "date ASC");
$fiches_anesth = array();
$params = array("dossier_anesth_id" => "", "operation_id" => "", "offline" => 1, "print" => 1, "pdf" => 0);
/** @var CGrossesse $_grossesse */
foreach ($grossesses as $_grossesse) {
    foreach ($_grossesse->loadRefsConsultations() as $_consult) {
        foreach ($_consult->loadRefsDossiersAnesth() as $_dossier_anesth) {
            $params["dossier_anesth_id"] = $_dossier_anesth->_id;
            $fiches_anesth[$_dossier_anesth->_id] = CApp::fetch("dPcabinet", "print_fiche", $params);
        }
    }
}
$smarty = new CSmartyDP();
$smarty->assign("fiches_anesth", $fiches_anesth);
 * @link     http://www.mediboard.org
 */
CCanDo::checkRead();
$date = CValue::get("date", CMbDT::date());
$group = CGroups::loadCurrent();
$date_min = CMbDT::date("-" . CAppUI::conf("maternite CGrossesse min_check_terme", $group) . " DAYS", $date);
$date_max = CMbDT::date("+" . CAppUI::conf("maternite CGrossesse max_check_terme", $group) . " DAYS", $date);
$where = array();
$ljoin = array();
$where["grossesse.terme_prevu"] = "BETWEEN '{$date_min}' AND '{$date_max}'";
$where["grossesse.group_id"] = "= '{$group->_id}' ";
$where["grossesse.active"] = "= '1'";
$ljoin["patients"] = "patients.patient_id = grossesse.parturiente_id";
$grossesse = new CGrossesse();
/** @var CStoredObject[] $grossesses */
$grossesses = $grossesse->loadList($where, "terme_prevu ASC, nom ASC", null, null, $ljoin);
CStoredObject::massLoadFwdRef($grossesses, "parturiente_id");
CStoredObject::massCountBackRefs($grossesses, "sejours");
$consultations = CStoredObject::massLoadBackRefs($grossesses, "consultations");
CStoredObject::massLoadFwdRef($consultations, "plageconsult_id");
/** @var CGrossesse[] $grossesses */
foreach ($grossesses as $_grossesse) {
    $_grossesse->loadRefParturiente();
    $_grossesse->countRefSejours();
    $_grossesse->loadRefsConsultations(true);
}
$smarty = new CSmartyDP();
$smarty->assign("grossesses", $grossesses);
$smarty->assign("date", $date);
$smarty->assign("date_min", $date_min);
$smarty->assign("date_max", $date_max);
if ($terme) {
    $where["terme_prevu"] = " = '{$terme}'";
} else {
    if ($terme_start && $terme_end) {
        $where["terme_prevu"] = " BETWEEN '{$terme_start}' AND '{$terme_end}' ";
    } elseif ($terme_start && !$terme_end) {
        $where["terme_prevu"] = " >= '{$terme_start}' ";
    } elseif (!$terme_start && $terme_end) {
        $where["terme_prevu"] = " <= '{$terme_end}' ";
    }
}
if ($fausse_couche !== '') {
    $where["fausse_couche"] = " = '{$fausse_couche}' ";
}
if ($multiple !== '') {
    $where["multiple"] = " = '{$multiple}' ";
}
$grossesse = new CGrossesse();
$ljoin = array("patients" => "patients.patient_id = grossesse.parturiente_id");
/** @var CGrossesse[] $grossesses */
$nb_grossesses = $grossesse->countList($where, null, $ljoin);
$grossesses = $grossesse->loadList($where, "nom, prenom", "{$page}, 30", null, $ljoin);
foreach ($grossesses as $_grossesse) {
    $_grossesse->loadRefParturiente();
}
// smarty
$smarty = new CSmartyDP();
$smarty->assign("grossesses", $grossesses);
$smarty->assign("nb_grossesses", $nb_grossesses);
$smarty->assign("page", $page);
$smarty->display("inc_list_search_grossesse.tpl");