/** * $Id: vw_daily_check_item_category.php 25667 2014-11-03 11:07:55Z aurelie17 $ * * @package Mediboard * @subpackage SalleOp * @author SARL OpenXtrem <*****@*****.**> * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html * @version $Revision: 25667 $ */ CCanDo::checkAdmin(); $item_category_id = CValue::getOrSession('item_category_id'); $list_type_id = CValue::get('list_type_id'); $list_type = new CDailyCheckListType(); $list_type->load($list_type_id); $item_category = new CDailyCheckItemCategory(); if ($item_category->load($item_category_id)) { $item_category->loadRefsNotes(); $item_category->loadRefItemTypes(); } else { $item_category->list_type_id = $list_type_id; $item_category->target_class = $list_type->type == "ouverture_salle" ? "CSalle" : "CBlocOperatoire"; } foreach (CDailyCheckList::$_HAS_classes as $_class) { unset($item_category->_specs["target_class"]->_locales[$_class]); } list($targets, $item_categories_by_class) = CDailyCheckItemCategory::getCategoriesTree(); // Création du template $smarty = new CSmartyDP(); $smarty->assign("item_category", $item_category); $smarty->assign("targets", $targets);
/** * Duplicate checklist HAS * * @return void|string */ function duplicate() { $types_checklist = array_intersect(CDailyCheckList::$types, array($this->_type_has)); foreach ($types_checklist as $type_name => $type) { $checklist_type = new CDailyCheckListType(); $checklist_type->group_id = $this->group_id; $checklist_type->check_list_group_id = $this->_id; $checklist_type->type = 'intervention'; $checklist_type->title = CAppUI::tr("CDailyCheckItemCategory.type." . $type_name); $checklist_type->description = CAppUI::tr("CDailyCheckList.{$type}.{$type_name}.small"); $checklist_type->type_validateur = "chir_interv|op|op_panseuse|iade|sagefemme|manipulateur"; if ($msg = $checklist_type->store()) { return $msg; } $where = array(); $where["type"] = " = '{$type_name}'"; $where["target_class"] = " = 'COperation'"; $where["list_type_id"] = " IS NULL"; $_categorie = new CDailyCheckItemCategory(); foreach ($_categorie->loadList($where, "title") as $categorie) { /* @var CDailyCheckItemCategory $categorie*/ $items = $categorie->loadRefItemTypes(); $new_categorie = $categorie; $new_categorie->_id = ""; $new_categorie->list_type_id = $checklist_type->_id; if ($msg = $new_categorie->store()) { return $msg; } foreach ($items as $item) { $new_item = $item; $new_item->_id = ""; $new_item->category_id = $new_categorie->_id; if ($msg = $new_item->store()) { return $msg; } } } } return null; }
$type_personnel = array("op", "op_panseuse"); if (!$check_list->validator_id && $check_list->_id) { $validateurs = explode("|", $check_list->_ref_list_type->type_validateur); $type_personnel = array(); foreach ($validateurs as $valid) { $type_personnel[] = $valid; } } $personnel = CPersonnel::loadListPers(array_unique(array_values($type_personnel)), true, true); // Chargement des praticiens $listChirs = new CMediusers(); $listChirs = $listChirs->loadPraticiens(PERM_DENY); // Chargement des anesths $listAnesths = new CMediusers(); $listAnesths = $listAnesths->loadAnesthesistes(PERM_DENY); $check_item_category = new CDailyCheckItemCategory(); if ($check_list->_ref_list_type->type == "fermeture_salle") { $check_item_category->list_type_id = $check_list->list_type_id; } else { $check_item_category->target_class = $check_list->object_class; $check_item_category->type = $check_list->type; } $check_item_categories = $check_item_category->loadMatchingList("title"); // Création du template $smarty = new CSmartyDP(); $smarty->assign("check_list", $check_list); $smarty->assign("personnel", $personnel); $smarty->assign("list_chirs", $listChirs); $smarty->assign("list_anesths", $listAnesths); $smarty->assign("anesth_id", $anesth_id); $smarty->assign("anesth", $anesth);
// Pas utiliser IN car on les souhaite dans l'ordre spécifié $validateurs = array(); foreach ($validateur_ids as $_id) { $validateur = new CMediusers(); $validateur->load($_id); $validateurs[$_id] = $validateur; } } else { $validateurs = array(); } $object = CMbObject::loadFromGuid($object_guid); // Chargement des 3 check lists de l'OMS $check_lists = array(); $check_item_categories = array(); $check_list = new CDailyCheckList(); $cat = new CDailyCheckItemCategory(); $cat->target_class = $object->_class; // Pre-anesth, pre-op, post-op foreach ($check_list->_specs["type"]->_list as $_type) { if (CDailyCheckList::$types[$_type] != $type_group) { continue; } $list = CDailyCheckList::getList($object, null, $_type); $list->loadItemTypes(); $list->loadRefsFwd(); $list->loadBackRefs('items'); $list->isReadonly(); if ($list->_ref_object instanceof COperation) { $list->_ref_object->loadRefPraticien(); } $check_lists[$_type] = $list;
$item_category_id = CValue::get('item_category_id'); $group_id = CGroups::loadCurrent()->_id; $item_type = new CDailyCheckItemType(); if ($item_type->load($item_type_id)) { $item_type->loadRefsNotes(); } else { $item_type->index = 1; $item_type->category_id = $item_category_id; $item_type->active = "1"; } $item_type->loadRefCategory()->loadRefListType(); $item_category = new CDailyCheckItemCategory(); foreach (CDailyCheckList::$_HAS_classes as $_class) { unset($item_category->_specs["target_class"]->_locales[$_class]); } $category = new CDailyCheckItemCategory(); $category->load($item_category_id); $op = $category->target_class == "COperation" ? 1 : 0; list($targets, $item_categories_by_class) = CDailyCheckItemCategory::getCategoriesTree($op); $target_class_list = array_keys($item_category->_specs["target_class"]->_locales); foreach ($item_categories_by_class as $_class => $item_categories_by_target) { foreach ($item_categories_by_target as $_id => $_categories) { /** @var CDailyCheckItemCategory $_cat */ foreach ($_categories as $_cat) { $_cat->loadBackRefs('item_types', array("`index`", "`title`")); /** @var CDailyCheckItemType $_type */ foreach ($_cat->_back['item_types'] as $_id_type => $_type) { if ($_type->group_id != $group_id) { unset($_cat->_back['item_types'][$_id_type]); } }
if (!$selOp->prat_visite_anesth_id && $selOp->_ref_anesth->_id) { $selOp->prat_visite_anesth_id = $selOp->_ref_anesth->_id; } $selOp->loadLiaisonLibelle(); $listAnesthType = new CTypeAnesth(); $listAnesthType = $listAnesthType->loadGroupList(); // Vérification de la check list journalière $daily_check_list = CDailyCheckList::getList($selOp->_ref_salle, $date); $daily_check_list->loadItemTypes(); $daily_check_list->loadBackRefs('items'); $cat = new CDailyCheckItemCategory(); $cat->target_class = "CSalle"; $daily_check_item_categories = $cat->loadMatchingList(); // Chargement des 3 check lists de l'OMS $operation_check_list = new CDailyCheckList(); $cat = new CDailyCheckItemCategory(); $where_cat = array(); $where_cat["target_class"] = " = 'COperation'"; $where_cat["list_type_id"] = "IS NULL"; $lists = array(); // Pre-anesth, pre-op, post-op foreach ($operation_check_list->_specs["type"]->_list as $type) { $list = CDailyCheckList::getList($selOp, null, $type); $list->loadItemTypes(); $list->loadRefsFwd(); $list->loadBackRefs('items'); $list->isReadonly(); $list->_ref_object->loadRefPraticien(); $operation_check_lists[$type] = $list; $where_cat["type"] = " = '{$type}'"; $operation_check_item_categories[$type] = $cat->loadList($where_cat, "title");