当前位置: 首页>>代码示例>>PHP>>正文


PHP CFunctions::load方法代码示例

本文整理汇总了PHP中CFunctions::load方法的典型用法代码示例。如果您正苦于以下问题:PHP CFunctions::load方法的具体用法?PHP CFunctions::load怎么用?PHP CFunctions::load使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在CFunctions的用法示例。


在下文中一共展示了CFunctions::load方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: loadRefsFwd

 /**
  * @see parent::loadRefsFwd()
  */
 function loadRefsFwd()
 {
     // fonction (cabinet)
     $this->_ref_function = new CFunctions();
     $this->_ref_function->load($this->function_id);
     // rubrique
     $this->_ref_rubrique = new CRubrique();
     $this->_ref_rubrique->load($this->rubrique_id);
     // mode de paiement
     $this->_ref_mode_paiement = new CModePaiement();
     $this->_ref_mode_paiement->load($this->mode_paiement_id);
 }
开发者ID:OpenXtrem,项目名称:mediboard-test,代码行数:15,代码来源:CGestionCab.class.php

示例2: loadRefFunction

 function loadRefFunction()
 {
     if (!$this->_ref_function) {
         $this->_ref_function = new CFunctions();
         $this->_ref_function->load($this->function_id);
     }
 }
开发者ID:OpenXtrem,项目名称:mediboard-test,代码行数:7,代码来源:CCatalogueLabo.class.php

示例3: loadRefsFwd

 /**
  * @see parent::loadRefsFwd()
  */
 function loadRefsFwd()
 {
     $this->_ref_function = new CFunctions();
     $this->_ref_function->load($this->function_id);
 }
开发者ID:OpenXtrem,项目名称:mediboard-test,代码行数:8,代码来源:CEmployeCab.class.php

示例4: CMediusers

 * @version  $Revision$
 * @link     http://www.mediboard.org
 */
global $date, $chir_id, $print;
$print = 1;
$function_id = CValue::get("function_id");
$date = CValue::get("date");
$start = CMbDT::date("this monday", $date);
if ($start > $date) {
    $start = CMbDT::date("last monday", $date);
}
$end = CMbDT::date("next sunday", $start);
$muser = new CMediusers();
$musers = $muser->loadProfessionnelDeSanteByPref(PERM_READ, $function_id);
$function = new CFunctions();
$function->load($function_id);
echo "<h1>" . $function->_view . " (" . CMbDT::format($start, CAppUI::conf('longdate')) . " - " . CMbDT::format($end, CAppUI::conf('longdate')) . ")</h1>";
$pconsult = new CPlageconsult();
$ds = $pconsult->getDS();
$where = array();
$where[] = "chir_id " . $ds->prepareIn(array_keys($musers)) . " OR remplacant_id " . $ds->prepareIn(array_keys($musers));
$where["date"] = " BETWEEN '{$start}' AND '{$end}' ";
/** @var CPlageconsult[] $pconsults */
$pconsults = $pconsult->loadList($where, "date", null, "chir_id");
$pconsults_by_date_and_prat = array();
if (!count($pconsults)) {
    echo "<div class='small-info'>Les praticiens de ce cabinet n'ont pas de plages de consultations sur cette période</div>";
    CApp::rip();
}
foreach ($pconsults as $_pc) {
    $chir_id = CValue::get("chir_id", $_pc->chir_id);
开发者ID:fbone,项目名称:mediboard4,代码行数:31,代码来源:print_planning_function.php

示例5: CFunctions

    }
    // Chargement des affectation
    $_sejour->loadRefsAffectations();
    if ($maternite_active && $_sejour->grossesse_id) {
        $_sejour->_sejours_enfants_ids = CMbArray::pluck($_sejour->loadRefsNaissances(), "sejour_enfant_id");
    }
    // Chargement des modes de sortie
    $_sejour->loadRefEtablissementTransfert();
    $_sejour->loadRefServiceMutation();
    // Chargement des appels
    $_sejour->loadRefsAppel('sortie');
}
// Si la fonction selectionnée n'est pas dans la liste des fonction, on la rajoute
if ($filterFunction && !array_key_exists($filterFunction, $functions)) {
    $_function = new CFunctions();
    $_function->load($filterFunction);
    $functions[$filterFunction] = $_function;
}
$list_mode_sortie = array();
if (CAppUI::conf("dPplanningOp CSejour use_custom_mode_sortie")) {
    $mode_sortie = new CModeSortieSejour();
    $where = array("actif" => "= '1'");
    $list_mode_sortie = $mode_sortie->loadGroupList($where);
}
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("hier", $hier);
$smarty->assign("demain", $demain);
$smarty->assign("date_min", $date_min);
$smarty->assign("date_max", $date_max);
$smarty->assign("date_demain", $date_demain);
开发者ID:OpenXtrem,项目名称:mediboard-test,代码行数:31,代码来源:httpreq_vw_sorties.php

示例6: CFunctions

// Filtre sur les praticiens ou les spécialités
$function = new CFunctions();
$functions = array();
$praticiens = array();
// Aucun filtre de séléctionné : tous les éléments auxquels on a le droit
if (!$filter->_specialite && !$filter->_prat_id) {
    if (!$user->isFromType(array("Anesthésiste")) && !$praticien->isFromType(array("Anesthésiste"))) {
        $functions = $function->loadListWithPerms(PERM_READ);
        $praticiens = $user->loadPraticiens();
    } else {
        $functions = $function->loadList();
        $praticiens = $praticien->loadList();
    }
} elseif ($filter->_specialite) {
    // Filtre sur la specialité : la spec et ses chirs primaires et secondaires
    $function->load($filter->_specialite);
    $function->loadBackRefs("users");
    $function->loadBackRefs("secondary_functions");
    $functions[$function->_id] = $function;
    $praticiens = $function->_back["users"];
    /** @var CSecondaryFunction $sec_func */
    foreach ($function->_back["secondary_functions"] as $sec_func) {
        if (!isset($praticiens[$sec_func->user_id])) {
            $sec_func->loadRefUser();
            $praticiens[$sec_func->user_id] = $sec_func->_ref_user;
        }
    }
} elseif ($filter->_prat_id) {
    // Filtre sur le chir : le chir et ses specs primaires et secondaires
    $praticien->loadRefFunction();
    $praticien->loadBackRefs("secondary_functions");
开发者ID:fbone,项目名称:mediboard4,代码行数:31,代码来源:view_planning.php

示例7: store

 /**
  * @see parent::store()
  * @todo Refactoring complet de la fonction store de la consultation
  *
  *   ANALYSE DU CODE
  *  1. Gestion du désistement
  *  2. Premier if : creation d'une consultation à laquelle on doit attacher
  *     un séjour (conf active): comportement DEPART / ARRIVEE
  *  3. Mise en cache du forfait FSE et facturable : uniquement dans le cas d'un séjour
  *  4. On load le séjour de la consultation
  *  5. On initialise le _adjust_sejour à false
  *  6. Dans le cas ou on a un séjour
  *   6.1. S'il est de type consultation, on ajuste le séjour en fonction du comportement DEPART / ARRIVEE
  *   6.2. Si la plage de consultation a été modifiée, adjust_sejour passe à true et on ajuste le séjour
  *        en fonction du comportement DEPART / ARRIVEE (en passant par l'adjustSejour() )
  *   6.3. Si on a un id (à virer) et que le chrono est modifié en PATIENT_ARRIVE,
  *        si on gère les admissions auto (conf) on met une entrée réelle au séjour
  *  7. Si le patient est modifié, qu'on est pas en train de merger et qu'on a un séjour,
  *     on empeche le store
  *  8. On appelle le parent::store()
  *  9. On passe le forfait SE et facturable au séjour
  * 10. On propage la modification du patient de la consultation au séjour
  * 11. Si on a ajusté le séjour et qu'on est dans un séjour de type conclut et que le séjour
  *     n'a plus de consultations, on essaie de le supprimer, sinon on l'annule
  * 12. Gestion du tarif et précodage des actes (bindTarif)
  * 13. Bind FSE
  * ACTIONS
  * - Faire une fonction comportement_DEPART_ARRIVEE()
  * - Merger le 2, le 6.1 et le 6.2 (et le passer en 2 si possible)
  * - Faire une fonction pour le 6.3, le 7, le 10, le 11
  * - Améliorer les fonctions 12 et 13 en incluant le test du behaviour fields
  *
  * COMPORTEMENT DEPART ARRIVEE
  * modif de la date d'une consultation ayant un séjour sur le modèle DEPART / ARRIVEE:
  * 1. Pour le DEPART :
  * -> on décroche la consultation de son ancien séjour
  * -> on ne touche pas à l'ancien séjour si :
  * - il est de type autre que consultation
  * - il a une entrée réelle
  * - il a d'autres consultations
  * -> sinon on l'annule
  *
  *   2. Pour l'ARRIVEE
  * -> si on a un séjour qui englobe : on la colle dedans
  * -> sinon on crée un séjour de consultation
  *
  *   TESTS A EFFECTUER
  *  0. Création d'un pause
  *  0.1. Déplacement d'une pause
  *  1. Création d'une consultation simple C1 (Séjour S1)
  *  2. Création d'une deuxième consultation le même jour / même patient C2 (Séjour S1)
  *  3. Création d'une troisième consultation le même jour / même patient C3 (Séjour S1)
  *  4. Déplacement de la consultation C1 un autre jour (Séjour S2)
  *  5. Changement du nom du patient C2 (pas de modification car une autre consultation)
  *  6. Déplacement de C3 au même jour (Toujours séjour S1)
  *  7. Annulation de C1 (Suppression ou annulation de S1)
  *  8. Déplacement de C2 et C3 à un autre jour (séjour S3 créé, séjour S1 supprimé ou annulé)
  *  9. Arrivée du patient pour C2 (S3 a une entrée réelle)
  * 10. Déplacement de C3 dans un autre jour (S4)
  * 11. Déplacement de C2 dans un autre jour (S5 et S3 reste tel quel)
  */
 function store()
 {
     $this->completeField('sejour_id', 'heure', 'plageconsult_id', 'si_desistement', 'annule');
     if ($this->si_desistement === null) {
         $this->si_desistement = 0;
     }
     $this->annule = $this->annule === null || $this->annule === '' ? 0 : $this->annule;
     $uf_soins_id = $this->_uf_soins_id;
     // Consultation dans un séjour
     $sejour = new CSejour();
     if (!$this->_id && !$this->sejour_id && CAppUI::conf("dPcabinet CConsultation attach_consult_sejour") && $this->patient_id || $this->_force_create_sejour) {
         // Recherche séjour englobant
         $facturable = $this->_facturable;
         if ($facturable === null) {
             $facturable = 1;
         }
         $this->loadRefPlageConsult();
         $function = new CFunctions();
         if ($this->_function_secondary_id) {
             $function->load($this->_function_secondary_id);
         } else {
             $user = new CMediusers();
             $user->load($this->_ref_chir->_id);
             $function->load($user->function_id);
         }
         $datetime = $this->_datetime;
         $minutes_before_consult_sejour = CAppUI::conf("dPcabinet CConsultation minutes_before_consult_sejour");
         $where = array();
         $where['annule'] = " = '0'";
         $where['type'] = " != 'seances'";
         $where['patient_id'] = " = '{$this->patient_id}'";
         if (!CAppUI::conf("dPcabinet CConsultation search_sejour_all_groups")) {
             $where['group_id'] = " = '{$function->group_id}'";
         }
         $where['facturable'] = " = '{$facturable}'";
         $datetime_before = CMbDT::dateTime("+{$minutes_before_consult_sejour} minute", "{$this->_date} {$this->heure}");
         $where[] = "`sejour`.`entree` <= '{$datetime_before}' AND `sejour`.`sortie` >= '{$datetime}'";
         if (!$this->_force_create_sejour) {
             $sejour->loadObject($where);
//.........这里部分代码省略.........
开发者ID:OpenXtrem,项目名称:mediboard-test,代码行数:101,代码来源:CConsultation.class.php

示例8: loadAllFor

 /**
  * Charge les listes d'un utilisateur
  *
  * @param int $user_id     User ID
  * @param int $function_id Function ID
  *
  * @return self[]
  */
 static function loadAllFor($user_id, $function_id)
 {
     $user = CMediusers::get($user_id);
     $function = new CFunctions();
     $function->load($function_id);
     // Accès aux listes de choix de la fonction et de l'établissement
     $module = CModule::getActive("dPcompteRendu");
     $is_admin = $module && $module->canAdmin();
     $access_function = $is_admin || CAppUI::conf("compteRendu CListeChoix access_function");
     $access_group = $is_admin || CAppUI::conf("compteRendu CListeChoix access_group");
     $listes = array();
     if ($user->_id && !$function_id) {
         $listes["prat"] = array();
     }
     if ($access_function) {
         $listes["func"] = array();
     }
     if ($access_group) {
         $listes["etab"] = array();
     }
     if ($user->_id && !$function_id) {
         foreach ($user->getOwners() as $type => $owner) {
             if (isset($listes[$type])) {
                 $listes[$type] = $owner->loadBackRefs("listes_choix", "nom");
             }
         }
     } else {
         foreach ($function->getOwners() as $type => $owner) {
             if (isset($listes[$type])) {
                 $listes[$type] = $owner->loadBackRefs("listes_choix", "nom");
             }
         }
     }
     return $listes;
 }
开发者ID:fbone,项目名称:mediboard4,代码行数:43,代码来源:CListeChoix.class.php

示例9: insGroupPermission

 /**
  * Ajout de la permission sur son établissement à un utilisateur
  *
  * @return void
  */
 function insGroupPermission()
 {
     $function = new CFunctions();
     $function->load($this->function_id);
     $where = array();
     $where["user_id"] = "= '{$this->user_id}'";
     $where["object_class"] = "= 'CGroups'";
     $where["object_id"] = "= '{$function->group_id}'";
     $perm = new CPermObject();
     if (!$perm->loadObject($where)) {
         $perm = new CPermObject();
         $perm->user_id = $this->user_id;
         $perm->object_class = "CGroups";
         $perm->object_id = $function->group_id;
         $perm->permission = PERM_EDIT;
         $perm->store();
     }
 }
开发者ID:OpenXtrem,项目名称:mediboard-test,代码行数:23,代码来源:CMediusers.class.php

示例10: loadAllModelesFor

 /**
  * Charge tous les modèles pour une classe d'objets associés à un utilisateur
  *
  * @param integer $id           Identifiant du propriétaire
  * @param string  $owner        Type de propriétaire du modèle: prat, func ou etab
  * @param string  $object_class Nom de la classe d'objet, optionnel. Doit être un CMbObject
  * @param string  $type         Type de composant, optionnel
  * @param bool    $fast_edit    Inclue les modèles en édition rapide
  * @param string  $order        Ordre de tri de la liste
  *
  * @return CCompteRendu[][] Par propriétaire: prat => CCompteRendu[], func => CCompteRendu[], etab => CCompteRendu[]
  */
 static function loadAllModelesFor($id, $owner = 'prat', $object_class = null, $type = null, $fast_edit = true, $order = "")
 {
     // Accès aux modèles de la fonction et de l'établissement
     $module = CModule::getActive("dPcompteRendu");
     $is_admin = $module && $module->canAdmin();
     $access_function = $is_admin || CAppUI::conf("compteRendu CCompteRendu access_function");
     $access_group = $is_admin || CAppUI::conf("compteRendu CCompteRendu access_group");
     $modeles = array();
     $modeles["prat"] = array();
     if ($access_function) {
         $modeles["func"] = array();
     }
     if ($access_group) {
         $modeles["etab"] = array();
     }
     if (!$id) {
         return $modeles;
     }
     // Clauses de recherche
     $modele = new CCompteRendu();
     $where = array();
     $where["object_id"] = "IS NULL";
     if ($object_class) {
         $where["object_class"] = "= '{$object_class}'";
     }
     if ($type) {
         $where["type"] = "= '{$type}'";
     }
     if (!$fast_edit) {
         $where["fast_edit"] = " = '0'";
         $where["fast_edit_pdf"] = " = '0'";
     }
     if (!$order) {
         $order = "object_class, type, nom";
     }
     switch ($owner) {
         case 'prat':
             // Modèle du praticien
             $prat = new CMediusers();
             if (!$prat->load($id)) {
                 return $modeles;
             }
             $prat->loadRefFunction();
             $where["user_id"] = "= '{$prat->_id}'";
             $where["function_id"] = "IS NULL";
             $where["group_id"] = "IS NULL";
             $modeles["prat"] = $modele->loadListWithPerms(PERM_READ, $where, $order);
             $sec_func = $prat->loadRefsSecondaryFunctions();
             foreach ($sec_func as $_func) {
                 $where["user_id"] = "IS NULL";
                 $where["function_id"] = "= '{$_func->_id}'";
                 $where["group_id"] = "IS NULL";
                 $modeles["func" . $_func->_id] = $modele->loadListWithPerms(PERM_READ, $where, $order);
             }
         case 'func':
             // Modèle de la fonction
             if (isset($modeles["func"])) {
                 if (isset($prat)) {
                     $func_id = $prat->function_id;
                 } else {
                     $func = new CFunctions();
                     if (!$func->load($id)) {
                         return $modeles;
                     }
                     $func_id = $func->_id;
                 }
                 $where["user_id"] = "IS NULL";
                 $where["function_id"] = "= '{$func_id}'";
                 $where["group_id"] = "IS NULL";
                 $modeles["func"] = $modele->loadListWithPerms(PERM_READ, $where, $order);
             }
         case 'etab':
             // Modèle de l'établissement
             if (isset($modeles["etab"])) {
                 $etab_id = CGroups::loadCurrent()->_id;
                 if ($owner == 'etab') {
                     $etab = new CGroups();
                     if (!$etab->load($id)) {
                         return $modeles;
                     }
                     $etab_id = $etab->_id;
                 } elseif (isset($func)) {
                     $etab_id = $func->group_id;
                 } elseif (isset($func_id)) {
                     $func = new CFunctions();
                     $func->load($func_id);
                     $etab_id = $func->group_id;
                 }
//.........这里部分代码省略.........
开发者ID:OpenXtrem,项目名称:mediboard-test,代码行数:101,代码来源:CCompteRendu.class.php

示例11: CConsultation

$boardItem = CValue::get("boardItem", 1);
$consult = new CConsultation();
$nb_anesth = 0;
$cabinets = CMediusers::loadFonctions(PERM_EDIT, null, "cabinet");
if ($mode_urgence) {
    $group = CGroups::loadCurrent();
    $cabinet_id = $group->service_urgences_id;
}
// Récupération de la liste des praticiens
$praticiens = array();
$cabinet = new CFunctions();
if ($mode_maternite) {
    $praticiens = $mediuser->loadListFromType(array("Sage Femme"));
} elseif ($cabinet_id) {
    $praticiens = CConsultation::loadPraticiens(PERM_EDIT, $cabinet_id, null, true);
    $cabinet->load($cabinet_id);
}
// Praticiens disponibles ?
$all_prats = $praticiens;
if ($consult->_id) {
    $date = $consult->_ref_plageconsult->date;
    CValue::setSession("date", $date);
}
// Récupération des plages de consultation du jour et chargement des références
$listPlages = array();
$heure_limit_matin = CAppUI::conf("dPcabinet CPlageconsult hour_limit_matin");
foreach ($praticiens as $prat) {
    if ($prat->_user_type == 4) {
        $nb_anesth++;
    }
    $listPlage = new CPlageconsult();
开发者ID:fbone,项目名称:mediboard4,代码行数:31,代码来源:vw_journee.php

示例12: CFunctions

        $order = "type {$order_way}, object_class, nom";
        break;
    case "file_category_id":
        $order = "file_category_id {$order_way}, object_class, nom";
}
// Praticien
$user = CMediusers::get($filtre->user_id);
$filtre->user_id = $user->_id;
$owner = "prat";
$owner_id = $filtre->user_id;
$owners = $user->getOwners();
if ($filtre->function_id) {
    $owner = "func";
    $owner_id = $filtre->function_id;
    $func = new CFunctions();
    $func->load($owner_id);
    $owners = array("func" => $func, "etab" => $func->loadRefGroup());
} else {
    $sec_func = $user->loadRefsSecondaryFunctions();
    foreach ($sec_func as $_func) {
        $owners["func" . $_func->_id] = $_func;
    }
}
$modeles = CCompteRendu::loadAllModelesFor($owner_id, $owner, $filtre->object_class, $filtre->type, 1, $order);
if ($filtre->function_id) {
    unset($modeles["prat"]);
}
foreach ($modeles as $key => &$_modeles) {
    /** @var $_modeles CStoredObject[] */
    CStoredObject::massCountBackRefs($_modeles, "documents_generated");
    /** @var $_modele CCompteRendu */
开发者ID:fbone,项目名称:mediboard4,代码行数:31,代码来源:ajax_list_modeles.php

示例13: loadAllPacksFor

 /**
  * Charge les packs pour un propriétaire donné
  * 
  * @param int    $id           identifiant du propriétaire
  * @param string $owner        [optional]
  * @param string $object_class [optional]
  * 
  * @todo: refactor this to be in a super class
  * 
  * @return array
  */
 static function loadAllPacksFor($id, $owner = 'user', $object_class = null)
 {
     // Accès aux packs de modèles de la fonction et de l'établissement
     $module = CModule::getActive("dPcompteRendu");
     $is_admin = $module && $module->canAdmin();
     $access_function = $is_admin || CAppUI::conf("compteRendu CCompteRendu access_function");
     $access_group = $is_admin || CAppUI::conf("compteRendu CCompteRendu access_group");
     $packs = array();
     $packs["prat"] = array();
     if ($access_function) {
         $packs["func"] = array();
     }
     if ($access_group) {
         $packs["etab"] = array();
     }
     // Clauses de recherche
     $pack = new CPack();
     $where = array();
     if ($object_class) {
         $where["object_class"] = "= '{$object_class}'";
     }
     $order = "object_class, nom";
     switch ($owner) {
         case 'prat':
             // Modèle du praticien
             $user = new CMediusers();
             if (!$user->load($id)) {
                 return $packs;
             }
             $user->loadRefFunction();
             $where["user_id"] = "= '{$user->_id}'";
             $where["function_id"] = "IS NULL";
             $where["group_id"] = "IS NULL";
             $packs["prat"] = $pack->loadlist($where, $order);
         case 'func':
             // Modèle de la fonction
             if (isset($packs["func"])) {
                 if (isset($user)) {
                     $func_id = $user->function_id;
                 } else {
                     $func = new CFunctions();
                     if (!$func->load($id)) {
                         return $packs;
                     }
                     $func_id = $func->_id;
                 }
                 $where["user_id"] = "IS NULL";
                 $where["function_id"] = "= '{$func_id}'";
                 $where["group_id"] = "IS NULL";
                 $packs["func"] = $pack->loadlist($where, $order);
             }
         case 'etab':
             // Modèle de l'établissement
             if (isset($packs["etab"])) {
                 $etab_id = CGroups::loadCurrent()->_id;
                 if ($owner == 'etab') {
                     $etab = new CGroups();
                     if (!$etab->load($id)) {
                         return $packs;
                     }
                     $etab_id = $etab->_id;
                 } else {
                     if (isset($func)) {
                         $etab_id = $func->group_id;
                     } else {
                         if (isset($func_id)) {
                             $func = new CFunctions();
                             $func->load($func_id);
                             $etab_id = $func->group_id;
                         }
                     }
                 }
                 $where["user_id"] = "IS NULL";
                 $where["function_id"] = "IS NULL";
                 $where["group_id"] = " = '{$etab_id}'";
                 $packs["etab"] = $pack->loadlist($where, $order);
             }
             break;
         default:
             trigger_error("Wrong type '{$owner}'", E_WARNING);
     }
     return $packs;
 }
开发者ID:OpenXtrem,项目名称:mediboard-test,代码行数:94,代码来源:CPack.class.php

示例14: graphWorkflowOperation

/**
 * Récuparation du graphique du nombre d'interventions annulées le jour même
 *
 * @param string $date_min      Date de début
 * @param string $date_max      Date de fin
 * @param int    $prat_id       Filtre du praticien
 * @param int    $salle_id      Filtre de la salle
 * @param int    $bloc_id       Filtre du bloc
 * @param int    $func_id       Filtre sur un cabinet
 * @param int    $discipline_id Filtre sur une discipline
 * @param string $code_ccam     Code CCAM
 * @param string $type_sejour   Type de séjour
 * @param bool   $hors_plage    Prise en charge des hors plage
 *
 * @return array
 */
function graphWorkflowOperation($date_min = null, $date_max = null, $prat_id = null, $salle_id = null, $bloc_id = null, $func_id = null, $discipline_id = null, $code_ccam = null, $type_sejour = null, $hors_plage = false)
{
    $miner = new COperationWorkflow();
    $miner->warnUsage();
    if (!$date_min) {
        $date_min = CMbDT::date("-1 YEAR");
    }
    if (!$date_max) {
        $date_max = CMbDT::date();
    }
    $date_min = CMbDT::format($date_min, "%Y-%m-01");
    $date_max = CMbDT::transform("+1 MONTH", $date_max, "%Y-%m-01");
    // Series declarations
    $labels = array("op_count" => utf8_encode("Nombre d'interventions"), "creation" => utf8_encode("Planification intervention"), "consult_chir" => utf8_encode("Consultation chirurgicale"), "consult_anesth" => utf8_encode("Consultation anesthésiste"), "visite_anesth" => utf8_encode("Visite anesthésiste"), "creation_consult_chir" => utf8_encode("RDV de consultation chirurgicale"), "creation_consult_anesth" => utf8_encode("RDV de consultation anesthésiste"));
    $salles = CSalle::getSallesStats($salle_id, $bloc_id);
    $query = new CRequest();
    $query->addColumn("DATE_FORMAT(date_operation, '%Y-%m')", "mois");
    $query->addColumn("COUNT(operations.operation_id)", "op_count");
    // Prévention des données négatives aberrantes
    $tolerance_in_days = 0;
    $columns = array("creation", "consult_chir", "consult_anesth", "visite_anesth", "creation_consult_chir", "creation_consult_anesth");
    foreach ($columns as $_column) {
        $field = "date_{$_column}";
        $diff = "DATEDIFF(ow.date_operation, ow.{$field})";
        $query->addColumn("AVG  (IF({$diff} > {$tolerance_in_days}, {$diff}, NULL))", $_column);
        $query->addColumn("COUNT(IF({$diff} > {$tolerance_in_days}, {$diff}, NULL))", "count_{$_column}");
    }
    $query->addTable("operations");
    $query->addLJoin("operation_workflow AS ow ON ow.operation_id = operations.operation_id");
    $query->addWhereClause("date_operation", "BETWEEN '{$date_min}' AND '{$date_max}'");
    $query->addWhereClause("salle_id", CSQLDataSource::prepareIn(array_keys($salles)));
    $query->addGroup("mois");
    $query->addOrder("mois");
    $subtitle = "";
    // Filtre sur hors plage
    if (!$hors_plage) {
        $query->addWhereClause("plageop_id", "IS NOT NULL");
        $subtitle .= " - sans hors plage";
    }
    // Filtre sur le salle (pas besoin de clause supplémentaire)
    if ($salle_id) {
        $salle = reset($salles);
        $subtitle .= " - {$salle->_view}";
    }
    // Filtre sur le praticien
    if ($prat_id) {
        $query->addWhereClause("operations.chir_id", "= '{$prat_id}'");
        $prat = new CMediusers();
        $prat->load($prat_id);
        $subtitle .= " - Dr {$prat->_view}";
    }
    // Filtre sur le cabinet
    if ($func_id) {
        $query->addLJoinClause("users_mediboard", "operations.chir_id = users_mediboard.user_id");
        $query->addWhereClause("users_mediboard.function_id", "= '{$func_id}'");
        $func = new CFunctions();
        $func->load($func_id);
        $subtitle .= " - {$func->_view}";
    }
    // Filtre sur la discipline
    if ($discipline_id) {
        $discipline = new CDiscipline();
        $discipline->load($discipline_id);
        $query->addLJoinClause("users_mediboard", "operations.chir_id = users_mediboard.user_id");
        $query->addWhereClause("users_mediboard.discipline_id", "= '{$discipline_id}'");
        $subtitle .= " - {$discipline->_view}";
    }
    // Filtre sur les codes CCAM
    if ($code_ccam) {
        $query->addWhereClause("operations.codes_ccam", "LIKE '%{$code_ccam}%'");
        $subtitle .= " - CCAM: {$code_ccam}";
    }
    // Filtre sur le type d'hospitalisation
    if ($type_sejour) {
        $query->addLJoinClause("sejour", "sejour.sejour_id = operations.sejour_id");
        $query->addWhereClause("sejour.type", "= '{$type_sejour}'");
        $subtitle .= " - " . CAppUI::tr("CSejour.type.{$type_sejour}");
    }
    // Query result
    $ds = CSQLDataSource::get("std");
    $all_values = $ds->loadHashAssoc($query->makeSelect());
    // Build horizontal ticks
    $months = array();
    $ticks = array();
//.........这里部分代码省略.........
开发者ID:fbone,项目名称:mediboard4,代码行数:101,代码来源:graph_workflow_operation.php


注:本文中的CFunctions::load方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。