コード例 #1
0
 /**
  * @see parent::loadRefsFwd()
  */
 function loadRefsFwd()
 {
     parent::loadRefsFwd();
     $this->_ref_user = new CMediusers();
     $this->_ref_user->load($this->user_id);
     $this->_view = "Note écrite par " . $this->_ref_user->_view;
 }
コード例 #2
0
/**
 * Récupération des statistiques du nombre de consultations par mois
 * selon plusieurs filtres
 *
 * @param string $debut   Date de début
 * @param string $fin     Date de fin
 * @param int    $prat_id Identifiant du praticien
 *
 * @return array
 */
function graphConsultations($debut = null, $fin = null, $prat_id = 0)
{
    if (!$debut) {
        $debut = CMbDT::date("-1 YEAR");
    }
    if (!$fin) {
        $fin = CMbDT::date();
    }
    $rectif = CMbDT::transform("+0 DAY", $debut, "%d") - 1;
    $debutact = CMbDT::date("-{$rectif} DAYS", $debut);
    $rectif = CMbDT::transform("+0 DAY", $fin, "%d") - 1;
    $finact = CMbDT::date("-{$rectif} DAYS", $fin);
    $finact = CMbDT::date("+ 1 MONTH", $finact);
    $finact = CMbDT::date("-1 DAY", $finact);
    $pratSel = new CMediusers();
    $pratSel->load($prat_id);
    $ticks = array();
    $serie_total = array('label' => 'Total', 'data' => array(), 'markers' => array('show' => true), 'bars' => array('show' => false));
    for ($i = $debut; $i <= $fin; $i = CMbDT::date("+1 MONTH", $i)) {
        $ticks[] = array(count($ticks), CMbDT::transform("+0 DAY", $i, "%m/%Y"));
        $serie_total['data'][] = array(count($serie_total['data']), 0);
    }
    $ds = CSQLDataSource::get("std");
    $total = 0;
    $series = array();
    $query = "SELECT COUNT(consultation.consultation_id) AS total,\r\n    DATE_FORMAT(plageconsult.date, '%m/%Y') AS mois,\r\n    DATE_FORMAT(plageconsult.date, '%Y%m') AS orderitem\r\n    FROM consultation\r\n    INNER JOIN plageconsult\r\n    ON consultation.plageconsult_id = plageconsult.plageconsult_id\r\n    INNER JOIN users_mediboard\r\n    ON plageconsult.chir_id = users_mediboard.user_id\r\n    WHERE plageconsult.date BETWEEN '{$debutact}' AND '{$finact}'\r\n    AND consultation.annule = '0'";
    if ($prat_id) {
        $query .= "\nAND plageconsult.chir_id = '{$prat_id}'";
    }
    $query .= "\nGROUP BY mois ORDER BY orderitem";
    $serie = array('data' => array());
    $result = $ds->loadlist($query);
    foreach ($ticks as $i => $tick) {
        $f = true;
        foreach ($result as $r) {
            if ($tick[1] == $r["mois"]) {
                $serie["data"][] = array($i, $r["total"]);
                $serie_total["data"][$i][1] += $r["total"];
                $total += $r["total"];
                $f = false;
                break;
            }
        }
        if ($f) {
            $serie["data"][] = array(count($serie["data"]), 0);
        }
    }
    $series[] = $serie;
    // Set up the title for the graph
    $title = "Nombre de consultations";
    $subtitle = "- {$total} consultations -";
    if ($prat_id) {
        $subtitle .= " Dr {$pratSel->_view} -";
    }
    $options = CFlotrGraph::merge("bars", array('title' => utf8_encode($title), 'subtitle' => utf8_encode($subtitle), 'xaxis' => array('ticks' => $ticks), 'bars' => array('stacked' => true, 'barWidth' => 0.8)));
    return array('series' => $series, 'options' => $options);
}
コード例 #3
0
ファイル: setup.php プロジェクト: fbone/mediboard4
 /**
  * Crée les employés du cabinet
  *
  * @return bool
  */
 protected function createEmployes()
 {
     $param = new CParamsPaie();
     $params = $param->loadList();
     if (!is_array($params)) {
         return true;
     }
     foreach ($params as $key => $curr_param) {
         $user = new CMediusers();
         $user->load($params[$key]->employecab_id);
         $employe = new CEmployeCab();
         $employe->function_id = $user->function_id;
         $employe->nom = $user->_user_last_name;
         $employe->prenom = $user->_user_first_name;
         $employe->function = $user->_user_type;
         $employe->adresse = $user->_user_adresse;
         $employe->cp = $user->_user_cp;
         $employe->ville = $user->_user_ville;
         $employe->store();
         $params[$key]->employecab_id = $employe->employecab_id;
         $params[$key]->store();
     }
     return true;
 }
コード例 #4
0
 * @category Soins
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  $Revision$
 */
CCanDo::checkEdit();
$consult_id = CValue::get("consult_id", 0);
$sejour_id = CValue::get("sejour_id", 0);
$chir_id = CValue::get("chir_id", 0);
$sejour = new CSejour();
$sejour->load($sejour_id);
if ($sejour->_id) {
    $chir = new CMediusers();
    if ($chir_id) {
        $chir->load($chir_id);
    } else {
        $chir->load($sejour->praticien_id);
    }
    $sejour->loadRefPraticien();
    $sejour->loadRefsActes();
    $sejour->updateFormFields();
    $sejour->_datetime = CMbDT::dateTime();
    // Récupération des tarifs
    /** @var CTarif $tarif */
    $tarif = new CTarif();
    $tarifs = array();
    $order = "description";
    $where = array();
    $where["chir_id"] = "= '{$chir->_id}'";
    $tarifs["user"] = $tarif->loadList($where, $order);
コード例 #5
0
}
// L'utilisateur est-il chirurgien?
$chir_id = CValue::getOrSession("chir_id");
$mediuser = CMediusers::get($chir_id);
if (!$mediuser->isPraticien()) {
    $mediuser = new CMediusers();
}
$function_id = CValue::getOrSession("function_id");
$type = CValue::getOrSession("type", "interv");
$page = CValue::get("page");
$sejour_type = CValue::get("sejour_type");
$step = 30;
$protocole = new CProtocole();
$where = array();
$chir = new CMediusers();
$chir->load($chir_id);
if ($chir->_id) {
    $chir->loadRefFunction();
    $functions = array($chir->function_id);
    $chir->loadBackRefs("secondary_functions");
    foreach ($chir->_back["secondary_functions"] as $curr_sec_func) {
        $functions[] = $curr_sec_func->function_id;
    }
    $list_functions = implode(",", $functions);
    $where[] = "protocole.chir_id = '{$chir->_id}' OR protocole.function_id IN ({$list_functions})";
} else {
    $where["function_id"] = " = '{$function_id}'";
}
$where["for_sejour"] = $type == 'interv' ? "= '0'" : "= '1'";
if ($sejour_type) {
    $where["type"] = "= '{$sejour_type}'";
コード例 #6
0
ファイル: vw_kine_board.php プロジェクト: fbone/mediboard4
<?php

/**
 * $Id$
 *
 * @package    Mediboard
 * @subpackage SSR
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CCando::checkEdit();
$date = CValue::get("date", CMbDT::date());
$kine_id = CValue::getOrSession("kine_id", CAppUI::$instance->user_id);
// Chargement de la liste des utilisateurs
$user = new CMediusers();
$kines = CModule::getActive("dPprescription") ? CFunctionCategoryPrescription::getAllExecutants() : $user->loadKines();
$kine = new CMediusers();
$kine->load($kine_id);
$kine->loadRefIntervenantCdARR();
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("kine", $kine);
$smarty->assign("kines", $kines);
$smarty->assign("kine_id", $kine_id);
$smarty->display("vw_kine_board.tpl");
コード例 #7
0
ファイル: vw_anesthesie.php プロジェクト: fbone/mediboard4
$consult = new CConsultation();
$userSel = new CMediusers();
$operation = new COperation();
$operation->load($op);
$operation->loadRefChir();
$operation->loadRefSejour();
$consult_anesth = $operation->loadRefsConsultAnesth();
if ($consult_anesth->_id) {
    $consult_anesth->loadRefConsultation();
    $consult = $consult_anesth->_ref_consultation;
    $consult->_ref_consult_anesth = $consultAnesth;
    $consult->loadRefPlageConsult();
    $consult->loadRefsDocItems();
    $consult->loadRefPatient();
    $prat_id = $consult->_ref_plageconsult->chir_id;
    $consult_anesth->loadRefs();
    // On charge le praticien
    $userSel->load($prat_id);
    $userSel->loadRefs();
}
$anesth = new CTypeAnesth();
$anesth = $anesth->loadGroupList();
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("op", $op);
$smarty->assign("date", $date);
$smarty->assign("operation", $operation);
$smarty->assign("anesth", $anesth);
$smarty->assign("techniquesComp", new CTechniqueComp());
$smarty->assign("isPrescriptionInstalled", CModule::getActive("prescription"));
$smarty->display("vw_anesthesie.tpl");
コード例 #8
0
ファイル: do_favoris_aed.php プロジェクト: fbone/mediboard4
<?php

/**
 * dPccam
 *
 * @category Ccam
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  SVN: $Id: do_favoris_aed.php 19221 2013-05-21 14:24:43Z rhum1 $
 * @link     http://www.mediboard.org
 */
$do = new CDoObjectAddEdit("CFavoriCCAM", "favoris_id");
// Amélioration des textes
if ($favori_user = CValue::post("favoris_user")) {
    $user = new CMediusers();
    $user->load($favori_user);
    $for = " pour {$user->_view}";
    $do->createMsg .= $for;
    $do->modifyMsg .= $for;
    $do->deleteMsg .= $for;
}
$do->redirect = null;
$do->doIt();
if (CAppUI::pref("new_search_ccam") == 1) {
    echo CAppUI::getMsg();
    CApp::rip();
}
コード例 #9
0
 * dPboard
 *
 * @category Board
 * @package  Mediboard
 * @author   SARL OpenXtrem <*****@*****.**>
 * @license  GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version  SVN: $Id$
 * @link     http://www.mediboard.org
 */
CCanDo::checkRead();
$ds = CSQLDataSource::get("std");
// Récupération des paramètres
$chirSel = CValue::getOrSession("chirSel");
$date = CValue::getOrSession("date", CMbDT::date());
$praticien = new CMediusers();
$praticien->load($chirSel);
$where = array();
$ljoin = array();
if ($praticien->isAnesth()) {
    $ljoin = array();
    $ljoin["operations"] = "operations.sejour_id = sejour.sejour_id";
    $ljoin["plagesop"] = "operations.plageop_id = plagesop.plageop_id";
    $where[] = "operations.anesth_id = '{$chirSel}' OR (operations.anesth_id IS NULL AND plagesop.anesth_id = '{$chirSel}')";
} else {
    $where["sejour.praticien_id"] = "= '{$chirSel}'";
}
$where["sejour.entree"] = "<= '{$date} 23:59:59'";
$where["sejour.sortie"] = ">= '{$date} 00:00:00'";
$where["sejour.annule"] = "= '0'";
$where["sejour.group_id"] = "= '" . CGroups::loadCurrent()->_id . "'";
$sejour = new CSejour();
コード例 #10
0
/**
 * Affichage du graphique de la réparition des patients par service
 *
 * @param date   $debut         Début de la période
 * @param date   $fin           Fin de la période
 * @param int    $prat_id       Filtre sur un praticien
 * @param int    $service_id    Filtre sur un service
 * @param string $type_adm      Filtre sur le type d'admission
 * @param int    $func_id       Filtre sur un cabinet
 * @param int    $discipline_id Filtre sur une discipline
 * @param int    $septique      Filtre sur les patients septiques
 * @param string $type_data     Choix du type de données
 *
 * @return array
 */
function graphPatParService($debut = null, $fin = null, $prat_id = 0, $service_id = 0, $type_adm = "", $func_id = 0, $discipline_id = 0, $septique = 0, $type_data = "prevue")
{
    if (!$debut) {
        $debut = CMbDT::date("-1 YEAR");
    }
    if (!$fin) {
        $fin = CMbDT::date();
    }
    $group_id = CGroups::loadCurrent()->_id;
    $prat = new CMediusers();
    $prat->load($prat_id);
    $discipline = new CDiscipline();
    $discipline->load($discipline_id);
    $ticks = array();
    $serie_total = array('label' => 'Total', 'data' => array(), 'markers' => array('show' => true), 'bars' => array('show' => false));
    for ($i = $debut; $i <= $fin; $i = CMbDT::date("+1 MONTH", $i)) {
        $ticks[] = array(count($ticks), CMbDT::transform("+0 DAY", $i, "%m/%Y"));
        $serie_total['data'][] = array(count($serie_total['data']), 0);
    }
    $where = array();
    if ($service_id) {
        $where["service_id"] = "= '{$service_id}'";
    }
    $service = new CService();
    $services = $service->loadGroupList($where);
    $sejour = new CSejour();
    $listHospis = array(1 => "Hospi complètes + ambu") + $sejour->_specs["type"]->_locales;
    $total = 0;
    $series = array();
    // Patients placés
    foreach ($services as $service) {
        $serie = array('data' => array(), 'label' => utf8_encode($service->nom));
        $query = "SELECT COUNT(DISTINCT sejour.sejour_id) AS total, service.nom AS nom,\r\n      DATE_FORMAT(affectation.entree, '%m/%Y') AS mois,\r\n      DATE_FORMAT(affectation.entree, '%Y%m') AS orderitem\r\n      FROM sejour\r\n      LEFT JOIN users_mediboard ON sejour.praticien_id = users_mediboard.user_id\r\n      LEFT JOIN affectation ON sejour.sejour_id = affectation.sejour_id\r\n      LEFT JOIN service ON affectation.service_id = service.service_id\r\n      WHERE\r\n        sejour.annule = '0' AND\r\n        sejour.group_id = '{$group_id}' AND\r\n        affectation.entree < '{$fin} 23:59:59' AND\r\n        affectation.sortie > '{$debut} 00:00:00' AND\r\n        service.service_id = '{$service->_id}'";
        if ($type_data == "reelle") {
            $query .= "\nAND sejour.entree_reelle BETWEEN  '{$debut} 00:00:00' AND '{$fin} 23:59:59'";
        }
        if ($prat_id) {
            $query .= "\nAND sejour.praticien_id = '{$prat_id}'";
        }
        if ($discipline_id) {
            $query .= "\nAND users_mediboard.discipline_id = '{$discipline_id}'";
        }
        if ($septique) {
            $query .= "\nAND sejour.septique = '{$septique}'";
        }
        if ($type_adm) {
            if ($type_adm == 1) {
                $query .= "\nAND (sejour.type = 'comp' OR sejour.type = 'ambu')";
            } else {
                $query .= "\nAND sejour.type = '{$type_adm}'";
            }
        }
        $query .= "\nGROUP BY mois ORDER BY orderitem";
        $result = $sejour->_spec->ds->loadlist($query);
        foreach ($ticks as $i => $tick) {
            $f = true;
            foreach ($result as $r) {
                if ($tick[1] == $r["mois"]) {
                    $serie["data"][] = array($i, $r["total"]);
                    $serie_total["data"][$i][1] += $r["total"];
                    $total += $r["total"];
                    $f = false;
                    break;
                }
            }
            if ($f) {
                $serie["data"][] = array(count($serie["data"]), 0);
            }
        }
        $series[] = $serie;
    }
    // Patients non placés
    if (!$service_id) {
        $serie = array('data' => array(), 'label' => utf8_encode("Non placés"));
        $query = "SELECT COUNT(DISTINCT sejour.sejour_id) AS total, 'Non placés' AS nom,\r\n      DATE_FORMAT(sejour.entree_{$type_data}, '%m/%Y') AS mois,\r\n      DATE_FORMAT(sejour.entree_{$type_data}, '%Y%m') AS orderitem\r\n      FROM sejour\r\n      LEFT JOIN users_mediboard ON sejour.praticien_id = users_mediboard.user_id\r\n      LEFT JOIN  affectation ON sejour.sejour_id = affectation.sejour_id\r\n      WHERE \r\n        sejour.annule = '0' AND\r\n        sejour.group_id = '{$group_id}' AND\r\n        sejour.entree_{$type_data} < '{$fin} 23:59:59' AND\r\n        sejour.sortie_{$type_data} > '{$debut} 00:00:00' AND\r\n\r\n        affectation.affectation_id IS NULL";
        if ($prat_id) {
            $query .= "\nAND sejour.praticien_id = '{$prat_id}'";
        }
        if ($discipline_id) {
            $query .= "\nAND users_mediboard.discipline_id = '{$discipline_id}'";
        }
        if ($septique) {
            $query .= "\nAND sejour.septique = '{$septique}'";
        }
        if ($type_adm) {
            if ($type_adm == 1) {
                $query .= "\nAND (sejour.type = 'comp' OR sejour.type = 'ambu')";
            } else {
                $query .= "\nAND sejour.type = '{$type_adm}'";
            }
        }
        $query .= "\nGROUP BY mois ORDER BY orderitem";
        $resultNP = $sejour->_spec->ds->loadlist($query);
        foreach ($ticks as $i => $tick) {
            $f = true;
            foreach ($resultNP as $r) {
                if ($tick[1] == $r["mois"]) {
                    $serie["data"][] = array($i, $r["total"]);
                    $serie_total["data"][$i][1] += $r["total"];
                    $total += $r["total"];
                    $f = false;
                    break;
                }
            }
            if ($f) {
                $serie["data"][] = array(count($serie["data"]), 0);
            }
        }
        $series[] = $serie;
    }
    $series[] = $serie_total;
    $subtitle = "{$total} passages";
    if ($prat_id) {
        $subtitle .= " - Dr {$prat->_view}";
    }
    if ($discipline_id) {
        $subtitle .= " - {$discipline->_view}";
    }
    if ($type_adm) {
        $subtitle .= " - " . $listHospis[$type_adm];
    }
    if ($septique) {
        $subtitle .= " - Septiques";
    }
    $options = array('title' => utf8_encode("Nombre de patients par service - {$type_data}"), 'subtitle' => utf8_encode($subtitle), 'xaxis' => array('labelsAngle' => 45, 'ticks' => $ticks), 'yaxis' => array('min' => 0, 'autoscaleMargin' => 1), 'bars' => array('show' => true, 'stacked' => true, 'barWidth' => 0.8), 'HtmlText' => false, 'legend' => array('show' => true, 'position' => 'nw'), 'grid' => array('verticalLines' => false), 'spreadsheet' => array('show' => true, 'csvFileSeparator' => ';', 'decimalSeparator' => ',', 'tabGraphLabel' => utf8_encode('Graphique'), 'tabDataLabel' => utf8_encode('Données'), 'toolbarDownload' => utf8_encode('Fichier CSV'), 'toolbarSelectAll' => utf8_encode('Sélectionner tout le tableau')));
    return array('series' => $series, 'options' => $options);
}
コード例 #11
0
/**
 * $Id: ajax_board_sejours.php 28613 2015-06-16 14:21:17Z aurelie17 $
 *
 * @package    Mediboard
 * @subpackage SSR
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision: 28613 $
 */
CCanDo::checkEdit();
$mode = CValue::get("mode", "count");
$date = CValue::getOrSession("date", CMbDT::date());
$kine_id = CValue::getOrSession("kine_id");
$hide_noevents = CValue::getOrSession("hide_noevents");
$mediuser = new CMediusers();
$mediuser->load($kine_id);
$planning = new CPlanningWeek($date);
// Sejour SSR
$sejour = new CSejour();
$counts = array();
/** @var CSejour[] $sejours */
$sejours = array();
$ds = CSQLDataSource::get("std");
// Sejours pour lesquels le kine est référent
if ($mode == "count" || $mode == "referenced") {
    $join = array();
    $join["patients"] = "patients.patient_id = sejour.patient_id";
    $order = "nom, prenom";
    $join["bilan_ssr"] = "bilan_ssr.sejour_id = sejour.sejour_id";
    $join["technicien"] = "technicien.technicien_id = bilan_ssr.technicien_id";
    $where = array();
コード例 #12
0
ファイル: print_rapport.php プロジェクト: fbone/mediboard4
$filter->_date_max = CValue::getOrSession("_date_max", CMbDT::date());
$filter->prat_id = CValue::getOrSession("prat_id");
$filter->paye = CValue::getOrSession("type");
$prat_id = CValue::get("prat_id", 0);
if (!$prat_id) {
    echo "Vous devez choisir un praticien valide";
    CApp::rip();
}
if ($filter->_date_max > CMbDT::date()) {
    $filter->_date_max = CMbDT::date();
}
$filter->paye = CValue::get("type", 0);
$total = 0;
// Chargement du praticien
$prat = new CMediusers();
$prat->load($filter->prat_id);
// Chargement des plages de ressource
$plages = new CPlageressource();
$where["date"] = "BETWEEN '{$filter->_date_min}' AND '{$filter->_date_max}'";
$where["prat_id"] = "= '{$filter->prat_id}'";
$where["paye"] = "= '{$filter->paye}'";
$order = "date";
$plages = $plages->loadList($where, $order);
foreach ($plages as $key => $value) {
    $total += $value->tarif;
}
$smarty = new CSmartyDP();
$smarty->debugging = false;
$smarty->assign("filter", $filter);
$smarty->assign("prat", $prat);
$smarty->assign("plages", $plages);
コード例 #13
0
            if ($presc && $presc->_id) {
                $presc->countLinesMedsElements($userSel->_id);
            }
            foreach ($_sejour->_ref_documents as $_doc) {
                $_doc->canDo();
            }
        }
    }
}
// Praticien concerné
$user = CMediusers::get();
if ($user->isPraticien()) {
    $praticien = $user;
} else {
    $praticien = new CMediusers();
    $praticien->load(CValue::getOrSession("pratSel", CValue::getOrSession("praticien_id")));
}
$praticien->loadRefFunction();
$praticien->_ref_function->loadRefGroup();
$praticien->canDo();
// Compter les modèles d'étiquettes
$modele_etiquette = new CModeleEtiquette();
$where = array();
$where['object_class'] = "= 'COperation'";
$where["group_id"] = " = '" . CGroups::loadCurrent()->_id . "'";
$nb_modeles_etiquettes_operation = $modele_etiquette->countList($where);
$where['object_class'] = "= 'CSejour'";
$nb_modeles_etiquettes_sejour = $modele_etiquette->countList($where);
$nb_printers = 0;
if (CModule::getActive("printing")) {
    // Chargement des imprimantes pour l'impression d'étiquettes
コード例 #14
0
$chir = CValue::get("chir");
$anesth = CValue::get("anesth");
$object_class = CValue::get("object_class");
$profiles = array("chir" => $chir, "anesth" => $anesth, "user" => $user->_id);
if ($profiles["user"] == $profiles["anesth"] || $profiles["user"] == $profiles["chir"]) {
    unset($profiles["user"]);
}
if (!$profiles["anesth"]) {
    unset($profiles["anesth"]);
}
$listByProfile = array();
$users = array();
foreach ($profiles as $profile => $_user_id) {
    // Chargement du user du profile
    $_user = new CMediusers();
    $_user->load($_user_id);
    $users[$profile] = $_user;
    $list = array();
    if ($type == "ccam") {
        /**
         * Favoris
         */
        if ($mode == "favoris") {
            $condition = "favoris_user = '******'";
            if ($object_class != "") {
                $condition .= " AND object_class = '{$object_class}'";
            }
            $sql = "select favoris_code\r\n          from ccamfavoris\r\n          where {$condition}\r\n          group by favoris_code\r\n          order by favoris_code";
            $codes = $ds->loadlist($sql);
            foreach ($codes as $key => $value) {
                // Attention à bien cloner le code CCAM car on rajoute une champ à la volée
コード例 #15
0
/**
 * Récupération des statistiques du nombre d'interventions par jour
 * selon plusieurs filtres
 *
 * @param string $date          Date de début
 * @param int    $prat_id       Identifiant du praticien
 * @param int    $salle_id      Identifiant de la sall
 * @param int    $bloc_id       Identifiant du bloc
 * @param int    $discipline_id Identifiant de la discipline
 * @param string $codes_ccam    Code CCAM
 * @param string $type_hospi    Type d'hospitalisation
 * @param bool   $hors_plage    Prise en compte des hors plage
 *
 * @return array
 */
function graphActiviteZoom($date, $prat_id = 0, $salle_id = 0, $bloc_id = 0, $func_id = 0, $discipline_id = 0, $codes_ccam = '', $type_hospi = "", $hors_plage = true)
{
    if (!$date) {
        $date = CMbDT::transform("+0 DAY", CMbDT::date(), "%m/%Y");
    }
    $prat = new CMediusers();
    $prat->load($prat_id);
    $salle = new CSalle();
    $salle->load($salle_id);
    $discipline = new CDiscipline();
    $discipline->load($discipline_id);
    // Gestion de la date
    $debut = substr($date, 3, 7) . "-" . substr($date, 0, 2) . "-01";
    $fin = CMbDT::date("+1 MONTH", $debut);
    $fin = CMbDT::date("-1 DAY", $fin);
    $step = "+1 DAY";
    // Tableaux des jours
    $ticks = array();
    $ticks2 = array();
    $serie_total = array('label' => 'Total', 'data' => array(), 'markers' => array('show' => true), 'bars' => array('show' => false));
    for ($i = $debut; $i <= $fin; $i = CMbDT::date($step, $i)) {
        $ticks[] = array(count($ticks), CMbDT::format($i, "%a %d"));
        $ticks2[] = array(count($ticks), CMbDT::format($i, "%d"));
        $serie_total['data'][] = array(count($serie_total['data']), 0);
    }
    $salles = CSalle::getSallesStats($salle_id, $bloc_id);
    $series = array();
    $total = 0;
    foreach ($salles as $salle) {
        $serie = array('data' => array(), 'label' => utf8_encode($salle->nom));
        $query = "SELECT COUNT(operations.operation_id) AS total,\r\n      DATE_FORMAT(operations.date, '%d') AS jour,\r\n      sallesbloc.nom AS nom\r\n      FROM operations\r\n      INNER JOIN sejour ON operations.sejour_id = sejour.sejour_id\r\n      INNER JOIN sallesbloc ON operations.salle_id = sallesbloc.salle_id\r\n      INNER JOIN plagesop ON operations.plageop_id = plagesop.plageop_id\r\n      INNER JOIN users_mediboard ON operations.chir_id = users_mediboard.user_id\r\n      WHERE operations.date BETWEEN '{$debut}' AND '{$fin}'\r\n      AND operations.plageop_id IS NOT NULL\r\n      AND operations.annulee = '0'\r\n      AND sallesbloc.salle_id = '{$salle->_id}'";
        if ($prat_id && !$prat->isFromType(array("Anesthésiste"))) {
            $query .= "\nAND operations.chir_id = '{$prat_id}'";
        }
        if ($prat_id && $prat->isFromType(array("Anesthésiste"))) {
            $query .= "\nAND (operations.anesth_id = '{$prat_id}' OR \r\n                       (plagesop.anesth_id = '{$prat_id}' AND (operations.anesth_id = '0' OR operations.anesth_id IS NULL)))";
        }
        if ($discipline_id) {
            $query .= "\nAND users_mediboard.discipline_id = '{$discipline_id}'";
        }
        if ($codes_ccam) {
            $query .= "\nAND operations.codes_ccam LIKE '%{$codes_ccam}%'";
        }
        if ($type_hospi) {
            $query .= "\nAND sejour.type = '{$type_hospi}'";
        }
        $query .= "\nGROUP BY jour ORDER BY jour";
        $result = $salle->_spec->ds->loadlist($query);
        $result_hors_plage = array();
        if ($hors_plage) {
            $query_hors_plage = "SELECT COUNT(operations.operation_id) AS total,\r\n        DATE_FORMAT(operations.date, '%d') AS jour,\r\n        sallesbloc.nom AS nom\r\n      FROM operations\r\n      INNER JOIN sejour ON operations.sejour_id = sejour.sejour_id\r\n      INNER JOIN sallesbloc ON operations.salle_id = sallesbloc.salle_id\r\n      INNER JOIN users_mediboard ON operations.chir_id = users_mediboard.user_id\r\n      WHERE operations.date BETWEEN '{$debut}' AND '{$fin}'\r\n      AND operations.plageop_id IS NULL\r\n      AND operations.annulee = '0'\r\n      AND sallesbloc.salle_id = '{$salle->_id}'";
            if ($prat_id && !$prat->isFromType(array("Anesthésiste"))) {
                $query_hors_plage .= "\nAND operations.chir_id = '{$prat_id}'";
            }
            if ($prat_id && $prat->isFromType(array("Anesthésiste"))) {
                $query_hors_plage .= "\nAND operations.anesth_id = '{$prat_id}'";
            }
            if ($discipline_id) {
                $query_hors_plage .= "\nAND users_mediboard.discipline_id = '{$discipline_id}'";
            }
            if ($codes_ccam) {
                $query_hors_plage .= "\nAND operations.codes_ccam LIKE '%{$codes_ccam}%'";
            }
            if ($type_hospi) {
                $query_hors_plage .= "\nAND sejour.type = '{$type_hospi}'";
            }
            $query_hors_plage .= "\nGROUP BY jour ORDER BY jour";
            $result_hors_plage = $salle->_spec->ds->loadlist($query_hors_plage);
        }
        foreach ($ticks2 as $i => $tick) {
            $f = true;
            foreach ($result as $r) {
                if ($tick[1] == $r["jour"]) {
                    if ($hors_plage) {
                        foreach ($result_hors_plage as &$_r_h) {
                            if ($tick[1] == $_r_h["jour"]) {
                                $r["total"] += $_r_h["total"];
                                unset($_r_h);
                                break;
                            }
                        }
                    }
                    $serie["data"][] = array($i, $r["total"]);
                    $serie_total["data"][$i][1] += $r["total"];
                    $total += $r["total"];
                    $f = false;
                }
            }
            if ($f) {
                $serie["data"][] = array(count($serie["data"]), 0);
            }
        }
        $series[] = $serie;
    }
    $series[] = $serie_total;
    // Set up the title for the graph
    if ($prat_id && $prat->isFromType(array("Anesthésiste"))) {
        $title = "Nombre d'anesthésie par salle - " . CMbDT::format($debut, "%m/%Y");
        $subtitle = "{$total} anesthésies";
    } else {
        $title = "Nombre d'interventions par salle - " . CMbDT::format($debut, "%m/%Y");
        $subtitle = "{$total} interventions";
    }
    if ($prat_id) {
        $subtitle .= " - Dr {$prat->_view}";
    }
    if ($discipline_id) {
        $subtitle .= " - {$discipline->_view}";
    }
    if ($codes_ccam) {
        $subtitle .= " - CCAM : {$codes_ccam}";
    }
    if ($type_hospi) {
        $subtitle .= " - " . CAppUI::tr("CSejour.type.{$type_hospi}");
    }
    $options = CFlotrGraph::merge("bars", array('title' => utf8_encode($title), 'subtitle' => utf8_encode($subtitle), 'xaxis' => array('ticks' => $ticks), 'bars' => array('stacked' => true, 'barWidth' => 0.8)));
    return array('series' => $series, 'options' => $options);
}
コード例 #16
0
/**
 * Récupération du graphique du nombre moyen de patient
 * en SSPI selon le jour de la semaine
 *
 * @param string $debut         Date de début
 * @param string $fin           Date de fin
 * @param int    $prat_id       Identifiant du praticien
 * @param int    $bloc_id       Identifiant du bloc
 * @param null   $discipline_id Identifiant de la discipline
 * @param string $codeCCAM      Code CCAM
 *
 * @return array
 */
function graphPatRepartJour($debut = null, $fin = null, $prat_id = 0, $bloc_id = 0, $func_id = 0, $discipline_id = null, $codeCCAM = '')
{
    if (!$debut) {
        $debut = CMbDT::date("-1 YEAR");
    }
    if (!$fin) {
        $fin = CMbDT::date();
    }
    $prat = new CMediusers();
    $prat->load($prat_id);
    $discipline = new CDiscipline();
    $discipline->load($discipline_id);
    $ticks = array(array("0", "Dimanche"), array("1", "Lundi"), array("2", "Mardi"), array("3", "Mercredi"), array("4", "Jeudi"), array("5", "Vendredi"), array("6", "Samedi"));
    $bloc = new CBlocOperatoire();
    if ($bloc_id) {
        $bloc->load($bloc_id);
    }
    $series = array();
    $serie = array("data" => array());
    // Nombre de patients par jour de la semaine
    $query = "SELECT COUNT(operations.operation_id) AS total,\n    COUNT(DISTINCT(operations.date)) AS nb_days,\n    DATE_FORMAT(operations.date, '%W') AS jour,\n\t  DATE_FORMAT(operations.date, '%w') AS orderitem\n    FROM operations\n    INNER JOIN sallesbloc ON operations.salle_id = sallesbloc.salle_id\n    LEFT JOIN users_mediboard ON operations.chir_id = users_mediboard.user_id\n    WHERE sallesbloc.stats = '1'\n    AND operations.date BETWEEN '{$debut}' AND '{$fin}'\n    AND operations.annulee = '0'";
    if ($prat_id) {
        $query .= "\nAND operations.chir_id = '{$prat_id}'";
    }
    if ($discipline_id) {
        $query .= "\nAND users_mediboard.discipline_id = '{$discipline_id}'";
    }
    if ($codeCCAM) {
        $query .= "\nAND operations.codes_ccam LIKE '%{$codeCCAM}%'";
    }
    if ($bloc_id) {
        $query .= "\nAND sallesbloc.bloc_id = '{$bloc_id}'";
    }
    $query .= "\nGROUP BY jour ORDER BY orderitem";
    $result = $prat->_spec->ds->loadlist($query);
    foreach ($ticks as $i => $tick) {
        $f = true;
        foreach ($result as $r) {
            if ($i == $r["orderitem"]) {
                $serie["data"][] = array($tick[0], $r["total"] / $r["nb_days"]);
                $f = false;
            }
        }
        if ($f) {
            $serie["data"][] = array(count($serie["data"]), 0);
        }
    }
    $serie["label"] = "moyenne";
    $series[] = $serie;
    // Set up the title for the graph
    $title = "Patients moyens / jour de la semaine";
    $subtitle = "Uniquement les jours d'activité";
    if ($prat_id) {
        $subtitle .= " - Dr {$prat->_view}";
    }
    if ($discipline_id) {
        $subtitle .= " - {$discipline->_view}";
    }
    if ($bloc_id) {
        $subtitle .= " - {$bloc->_view}";
    }
    if ($codeCCAM) {
        $subtitle .= " - CCAM : {$codeCCAM}";
    }
    $options = array('title' => utf8_encode($title), 'subtitle' => utf8_encode($subtitle), 'xaxis' => array('labelsAngle' => 45, 'ticks' => $ticks), 'yaxis' => array('autoscaleMargin' => 1, 'min' => 0), 'lines' => array('show' => true, 'filled' => true, 'fillColor' => '#999'), 'markers' => array('show' => true), 'points' => array('show' => true), 'HtmlText' => false, 'legend' => array('show' => true, 'position' => 'nw'), 'mouse' => array('track' => true, 'relative' => true, 'position' => 'ne'), 'spreadsheet' => array('show' => true, 'csvFileSeparator' => ';', 'decimalSeparator' => ',', 'tabGraphLabel' => utf8_encode('Graphique'), 'tabDataLabel' => utf8_encode('Données'), 'toolbarDownload' => utf8_encode('Fichier CSV'), 'toolbarSelectAll' => utf8_encode('Sélectionner tout le tableau')));
    return array('series' => $series, 'options' => $options);
}
コード例 #17
0
 * @version    $Revision$
 */
CCanDo::checkRead();
$chirSel = CValue::getOrSession("praticien_id", null);
$all_prats = CValue::get("all_prats", 0);
$fin = CValue::get("fin", CMbDT::date());
$fin = CMbDT::date("+1 day", $fin);
$debut = CValue::get("debut", CMbDT::date("-1 week", $fin));
$export = CValue::get("export", 0);
$interv_with_no_codes = CValue::get('interv_with_no_codes', 1);
$mediuser = CMediusers::get();
if ($mediuser->isPraticien()) {
    $chirSel = $mediuser->_id;
}
$user = new CMediusers();
$user->load($chirSel);
$ljoin = array();
$ljoin["plagesop"] = "plagesop.plageop_id = operations.plageop_id";
$where = array();
$where["operations.date"] = "BETWEEN '{$debut}' AND '{$fin}'";
$where["operations.annulee"] = "= '0'";
/**
 * Loading and analysis code above is duplicated for COperation and CConsultation
 * @TODO Unifiy them as CCodables, for chrissake !!
 */
if ($all_prats) {
    $prats = $user->loadPraticiens(PERM_READ);
    $in_prats = CSQLDataSource::prepareIn(array_keys($prats));
    $where[] = "operations.chir_id " . $in_prats . " OR operations.chir_2_id " . $in_prats . " OR operations.chir_3_id " . $in_prats . " OR operations.chir_4_id " . $in_prats;
    $where[] = "operations.anesth_id IS NULL OR operations.anesth_id {$in_prats}";
} else {
コード例 #18
0
ファイル: edit_planning.php プロジェクト: fbone/mediboard4
$correspondantsMedicaux = array();
$medecin_adresse_par = "";
$_function_id = null;
$nb_plages = 0;
$count_next_plage = 0;
// On a fourni l'id du praticien
$chir_id = CAppUI::conf("dPcabinet keepchir") ? CValue::getOrSession("chir_id") : CValue::get("chir_id");
// Nouvelle consultation
if (!$consultation_id) {
    if ($plageconsult_id) {
        // On a fourni une plage de consultation
        $plageConsult->load($plageconsult_id);
    } else {
        if ($chir_id) {
            $chir = new CMediusers();
            $chir->load($chir_id);
        }
    }
    // assign patient if defined in get
    if ($pat_id = CValue::get("pat_id")) {
        // On a fourni l'id du patient
        $pat->load($pat_id);
    }
    if ($date_planning) {
        // On a fourni une date
        $consult->_date = $date_planning;
    }
    if ($heure) {
        // On a fourni une heure
        $consult->heure = $heure;
        $consult->plageconsult_id = $plageconsult_id;
コード例 #19
0
ファイル: CMbObject.class.php プロジェクト: fbone/mediboard4
 /**
  * Charge toutes les aides à la saisie de l'objet pour un utilisateur donné
  *
  * @param int    $user_id        Utilisateur
  * @param string $keywords       Permet de filtrer les aides commançant par le filtre, si non null
  * @param string $depend_value_1 Valeur de la dépendance 1 lié à l'aide
  * @param string $depend_value_2 Valeur de la dépendance 2 lié à l'aide
  * @param string $object_field   Type d'objet concerné
  * @param string $strict         True or False
  *
  * @return void
  */
 function loadAides($user_id, $keywords = null, $depend_value_1 = null, $depend_value_2 = null, $object_field = null, $strict = "true")
 {
     foreach ($this->_specs as $field => $spec) {
         if (isset($spec->helped)) {
             $this->_aides[$field] = array("no_enum" => null);
         }
     }
     // Chargement de l'utilisateur courant
     $user = new CMediusers();
     $user->load($user_id);
     $user->loadRefFunction();
     // Préparation du chargement des aides
     $ds =& $this->_spec->ds;
     // Construction du Where
     $where = array();
     $where[] = "(user_id = '{$user_id}' OR \n      function_id = '{$user->function_id}' OR \n      group_id = '{$user->_ref_function->group_id}')";
     $where["class"] = $ds->prepare("= %", $this->_class);
     if ($strict == "true") {
         if ($depend_value_1) {
             $where["depend_value_1"] = " = '{$depend_value_1}'";
         }
         if ($depend_value_2) {
             $where["depend_value_2"] = " = '{$depend_value_2}'";
         }
     } else {
         if ($depend_value_1) {
             $where[] = "(depend_value_1 = '{$depend_value_1}' OR depend_value_1 IS NULL)";
         }
         if ($depend_value_2) {
             $where[] = "(depend_value_2 = '{$depend_value_2}' OR depend_value_2 IS NULL)";
         }
     }
     if ($object_field) {
         $where["field"] = " = '{$object_field}'";
     }
     // tri par user puis function puis group (ordre inversé pour avoir ce résultat)
     $order = "group_id, function_id, user_id, depend_value_1, depend_value_2, name, text";
     // Chargement des Aides de l'utilisateur
     $aide = new CAideSaisie();
     // TODO: si on veut ajouter un $limit, il faudrait l'ajouter en argument de la fonction loadAides
     $aides = $aide->seek($keywords, $where, null, null, null, $order);
     $this->orderAides($aides, $depend_value_1, $depend_value_2);
 }
コード例 #20
0
ファイル: vw_idx_planning.php プロジェクト: fbone/mediboard4
$ds = CSQLDataSource::get("std");
$date = CValue::getOrSession("date", CMbDT::date());
$canceled = CValue::getOrSession("canceled", 0);
$refresh = CValue::get('refresh', 0);
$nextmonth = CMbDT::date("first day of next month", $date);
$lastmonth = CMbDT::date("first day of previous month", $date);
$sans_anesth = CValue::getOrSession("sans_anesth", 0);
// Sélection du praticien
$mediuser = CMediusers::get();
$listPrat = $mediuser->loadPraticiens(PERM_EDIT);
foreach ($listPrat as $_prat) {
    $_prat->loadRefFunction();
}
$selPrat = CValue::getOrSession("selPrat", $mediuser->isPraticien() ? $mediuser->user_id : null);
$selPraticien = new CMediusers();
$selPraticien->load($selPrat);
$group = CGroups::loadCurrent();
if ($selPraticien->isAnesth()) {
    // Selection des différentes interventions de la journée par service
    $count_ops = array("ambu" => 0, "comp" => 0, "hors_plage" => 0);
    $service = new CService();
    $services = $service->loadGroupList();
    $interv = new COperation();
    $order = "operations.chir_id, operations.time_operation";
    $ljoin = array("plagesop" => "plagesop.plageop_id = operations.plageop_id", "sejour" => "sejour.sejour_id = operations.sejour_id", "affectation" => "affectation.sejour_id = sejour.sejour_id\r\n      AND '{$date}' BETWEEN DATE(affectation.entree)\r\n      AND DATE(affectation.sortie)", "lit" => "lit.lit_id = affectation.lit_id", "chambre" => "chambre.chambre_id = lit.chambre_id", "service" => "service.service_id = chambre.service_id");
    $where_anesth = "operations.anesth_id = '{$selPraticien->_id}' OR plagesop.anesth_id = '{$selPraticien->_id}'";
    if ($sans_anesth) {
        $where_anesth .= " OR operations.anesth_id IS NULL OR plagesop.anesth_id IS NULL";
    }
    $whereAmbu = array("operations.date" => "= '{$date}'", "sejour.type" => "= 'ambu'", "sejour.group_id" => "= '{$group->_id}'");
    $whereAmbu[] = $where_anesth;
コード例 #21
0
    $chir->load($chir_id);
    if (!CUser::checkPassword($chir->_user_username, $password_activite_1)) {
        CAppUI::setMsg("Mot de passe incorrect", UI_MSG_ERROR);
        echo CAppUI::getMsg();
        CApp::rip();
    }
    $object->cloture_activite_1 = 1;
    if ($msg = $object->store()) {
        CAppUI::setMsg($msg, UI_MSG_ERROR);
    } else {
        CAppUI::setMsg("COperation-msg-modify", UI_MSG_OK);
    }
}
if ($password_activite_4) {
    $anesth = new CMediusers();
    $anesth->load($anesth_id);
    if ($anesth->_id) {
        if (!CUser::checkPassword($anesth->_user_username, $password_activite_4)) {
            CAppUI::setMsg("Mot de passe incorrect", UI_MSG_ERROR);
            echo CAppUI::getMsg();
            CApp::rip();
        }
        $object->cloture_activite_4 = 1;
        if ($msg = $object->store()) {
            CAppUI::setMsg($msg, UI_MSG_ERROR);
        } else {
            CAppUI::setMsg("COperation-msg-modify", UI_MSG_OK);
        }
    }
}
// Transmission des actes CCAM
コード例 #22
0
 *
 * @package    Mediboard
 * @subpackage SalleOp
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
// Récupération des paramètres
$date = CValue::getOrSession("date", CMbDT::date());
$salle_id = CValue::getOrSession("salle_id");
$bloc_id = CValue::getOrSession("bloc_id");
$type = CValue::getOrSession("type", "ouverture_salle");
// Récupération de l'utilisateur courant
$user = CUser::get();
$currUser = new CMediusers();
$currUser->load($user->_id);
$currUser->isAnesth();
$currUser->isPraticien();
$salle = new CSalle();
$salle->load($salle_id);
$bloc = new CBlocOperatoire();
$bloc->load($bloc_id);
// Vérification de la check list journalière
$daily_check_lists = array();
$daily_check_list_types = array();
$require_check_list = CAppUI::conf("dPsalleOp CDailyCheckList active", CGroups::loadCurrent()) && $date >= CMbDT::date() && !$currUser->_is_praticien;
if ($require_check_list) {
    if ($bloc->_id) {
        list($check_list_not_validated, $daily_check_list_types, $daily_check_lists) = CDailyCheckList::getCheckLists($bloc, $date, $type);
    } else {
        list($check_list_not_validated, $daily_check_list_types, $daily_check_lists) = CDailyCheckList::getCheckLists($salle, $date, $type);
コード例 #23
0
$min_urgence = CValue::get("min_urgence");
$date_urgence = CValue::get("date_urgence");
$salle_id = CValue::get("salle_id");
$patient_id = CValue::get("pat_id");
$grossesse_id = CValue::get("grossesse_id");
$consult_related_id = CValue::get("consult_related_id");
// L'utilisateur est-il un praticien
$user = $chir = CMediusers::get();
if ($chir->isPraticien() and !$chir_id) {
    $chir_id = $chir->user_id;
}
// Chargement du praticien
$chir = new CMediusers();
if ($chir_id) {
    $testChir = new CMediusers();
    $testChir->load($chir_id);
    if ($testChir->isPraticien()) {
        $chir = $testChir;
    }
}
$chir->loadRefFunction();
$prat = $chir;
// Chargement du patient
$patient = new CPatient();
if ($patient_id && !$operation_id && !$sejour_id) {
    $patient->load($patient_id);
    $patient->loadRefsSejours();
}
// On récupère le séjour
$sejour = new CSejour();
if ($sejour_id && !$operation_id) {
コード例 #24
0
$order_col = CValue::getOrSession("order_col", "_patient");
$show_duree_preop = CAppUI::conf("dPplanningOp COperation show_duree_preop");
$show_hour_anesth = CAppUI::conf("dPhospi show_hour_anesth_mvt");
$mode = CValue::getOrSession("mode", 0);
$prestation_id = CValue::getOrSession("prestation_id");
$hour_instantane = CValue::getOrSession("hour_instantane", CMbDT::format(CMbDT::time(), "%H"));
if (is_array($services_ids)) {
    CMbArray::removeValue("", $services_ids);
}
$services = new CService();
$where = array();
$where["service_id"] = CSQLDataSource::prepareIn($services_ids);
$services = $services->loadList($where);
$update_count = "";
$praticien = new CMediusers();
$praticien->load($praticien_id);
$dmi_active = CModule::getActive("dmi");
$group = CGroups::loadCurrent();
$types_hospi = array("comp", "ambu", "urg", "ssr", "psy");
$type_hospi = CValue::getOrSession("type_hospi", null);
$entrees = array();
$sorties = array();
// Récupération de la liste des services
$where = array();
$where["externe"] = "= '0'";
$where["group_id"] = "= '{$group->_id}'";
// Récupération de la journée à afficher
$date = CValue::getOrSession("date", CMbDT::date());
$limit1 = $date . " 00:00:00";
$limit2 = $date . " 23:59:59";
// Patients placés
コード例 #25
0
 /**
  * @see parent::loadRefsFwd()
  */
 function loadRefsFwd()
 {
     $this->loadCatalogue();
     $this->_ref_realisateur = new CMediusers();
     $this->_ref_realisateur->load($this->realisateur);
 }
コード例 #26
0
    $function = new CFunctions();
    $where = array("actif" => "='1'");
    $functions = $function->loadListWithPerms(PERM_READ, $where);
}
// Récupération du user à ajouter/editer
$object = new CMediusers();
if (CValue::get("no_association")) {
    $object->user_id = $user_id;
    $object->updateFormFields();
    $object->_user_id = $user_id;
    $object->_id = null;
    $object->actif = CValue::get("ldap_user_actif", 1);
    $object->deb_activite = CValue::get("ldap_user_deb_activite");
    $object->fin_activite = CValue::get("ldap_user_fin_activite");
} else {
    $object->load($user_id);
    $object->loadRefFunction();
    $object->loadRefProfile();
}
$object->loadNamedFile("identite.jpg");
$object->loadNamedFile("signature.jpg");
// Savoir s'il est relié au LDAP
if (isset($object->_ref_user)) {
    $object->_ref_user->isLDAPLinked();
}
// Chargement des banques
$banques = array();
if (class_exists("CBanque")) {
    $order = "nom ASC";
    $banque = new CBanque();
    $banques = $banque->loadList(null, $order);
コード例 #27
0
     if ($keyPlace < 0) {
         $listBefore[$keyPlace] =& $consultation;
     }
     if ($consultation->heure >= $plage->fin) {
         $listAfter[$keyPlace] =& $consultation;
     }
     for ($i = 0; $i < $consultation->duree; $i++) {
         if (isset($listPlace[$keyPlace + $i])) {
             $listPlace[$keyPlace + $i]["consultations"][] =& $consultation;
         }
     }
 }
 // Utilisation des prises de rdv
 // Pour ceux de la même fonction
 $user = new CMediusers();
 $user->load($plage->chir_id);
 $function = $user->loadRefFunction();
 if ($function->quotas) {
     $quotas = $function->quotas;
 }
 $listPrat = CConsultation::loadPraticiens(PERM_EDIT, $user->function_id, null, true);
 $listAllPrat = CConsultation::loadPraticiens(null, null, null, true);
 $where = array();
 $where["date"] = $ds->prepare("BETWEEN %1 AND %2", "{$plage->date}", "{$plage->date}");
 $where[] = "libelle != 'automatique' OR libelle IS NULL";
 $where["chir_id"] = " = '{$user->_id}'";
 if ($display_nb_consult == "cab" || $display_nb_consult == "etab") {
     $where["chir_id"] = CSQLDataSource::prepareIn(array_keys($listPrat));
     /** @var CPlageconsult[] $plages_func */
     $plages_func = $plage->loadList($where);
     $utilisation_func = utilisation_rdv($plages_func, $listPlace, $plage);
コード例 #28
0
    if (array_key_exists($curr_plage->chir_id, $listPermPrats)) {
        $listPrats[$curr_plage->chir_id] = $listPermPrats[$curr_plage->chir_id];
    }
}
$opsJour = new COperation();
$where = array();
$where["date"] = "= '{$date}'";
$groupby = "chir_id";
$opsJour = $opsJour->loadList($where, null, null, $groupby);
foreach ($opsJour as $curr_op) {
    if (array_key_exists($curr_op->chir_id, $listPermPrats)) {
        $listPrats[$curr_op->chir_id] = $listPermPrats[$curr_op->chir_id];
    }
}
$listPrats = CMbArray::pluck($listPrats, "_view");
asort($listPrats);
// Selection des plages opératoires de la journée
$praticien = new CMediusers();
if ($praticien->load(CValue::getOrSession("praticien_id"))) {
    $praticien->loadRefsForDay($date);
}
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("vueReduite", false);
$smarty->assign("praticien", $praticien);
$smarty->assign("salle", new CSalle());
$smarty->assign("listBlocs", $listBlocs);
$smarty->assign("listPrats", $listPrats);
$smarty->assign("date", $date);
$smarty->assign("operation_id", $operation_id);
$smarty->display("inc_liste_op_prat.tpl");
コード例 #29
0
 * $Id$
 *
 * @package    Mediboard
 * @subpackage dPstats
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 */
CAppUI::requireLibraryFile("jpgraph/src/mbjpgraph");
CAppUI::requireLibraryFile("jpgraph/src/jpgraph_bar");
$debut = CValue::get("debut", CMbDT::date("-1 YEAR"));
$fin = CValue::get("fin", CMbDT::date());
$prat_id = CValue::get("prat_id", 0);
$service_id = CValue::get("service_id", 0);
$pratSel = new CMediusers();
$pratSel->load($prat_id);
$service = new CSalle();
$service->load($service_id);
$datax = array();
for ($i = $debut; $i <= $fin; $i = CMbDT::date("+1 MONTH", $i)) {
    $datax[] = CMbDT::transform("+0 DAY", $i, "%m/%Y");
}
$sql = "SELECT * FROM service WHERE";
if ($service_id) {
    $sql .= "\nAND id = '{$service_id}'";
}
$ds = CSQLDataSource::get("std");
$services = $ds->loadlist($sql);
$opbysalle = array();
foreach ($services as $service) {
    $id = $service["service_id"];
コード例 #30
0
 * @package    Mediboard
 * @subpackage dPfacturation
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html 
 * @version    $Revision$
 */
CCanDo::checkEdit();
// Période
$filter = new CPlageconsult();
$filter->_date_min = CValue::getOrSession("_date_min");
$filter->_date_max = CValue::getOrSession("_date_max");
// Tri sur les praticiens
$mediuser = CMediusers::get();
$mediuser->loadRefFunction();
$prat = new CMediusers();
$prat->load(CValue::getOrSession("chir"));
if (!$prat->_id) {
    CAppUI::stepMessage(UI_MSG_WARNING, "CMediusers-warning-undefined");
    return;
}
$prat->loadRefFunction();
$listPrat = array($prat->_id => $prat);
$plageconsult = new CPlageconsult();
$ljoin = array();
$ljoin["consultation"] = "consultation.plageconsult_id = plageconsult.plageconsult_id";
$where = array();
$where[] = "\n  (plageconsult.chir_id  <> '{$prat->_id}' AND \n    (plageconsult.remplacant_id = '{$prat->_id}' OR plageconsult.pour_compte_id = '{$prat->_id}'))\n  OR \n  (plageconsult.chir_id  = '{$prat->_id}' AND \n    ((plageconsult.remplacant_id <> '{$prat->_id}' AND plageconsult.remplacant_id IS NOT NULL)\n      OR \n     (plageconsult.pour_compte_id <> '{$prat->_id}' AND plageconsult.pour_compte_id IS NOT NULL))\n   )";
$where["plageconsult.date"] = " BETWEEN '{$filter->_date_min}' AND '{$filter->_date_max}'";
$where["consultation.annule"] = "= '0'";
$order = "chir_id ASC";
$listPlages = $plageconsult->loadList($where, $order, null, null, $ljoin);