/** * @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; }
/** * 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); }
/** * 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; }
* @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);
} // 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}'";
<?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");
$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");
<?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(); }
* 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();
/** * 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); }
/** * $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();
$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);
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
$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
/** * 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); }
/** * 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); }
* @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 {
$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;
/** * 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); }
$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;
$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
* * @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);
$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) {
$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
/** * @see parent::loadRefsFwd() */ function loadRefsFwd() { $this->loadCatalogue(); $this->_ref_realisateur = new CMediusers(); $this->_ref_realisateur->load($this->realisateur); }
$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);
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);
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");
* $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"];
* @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);