本文整理汇总了PHP中CGroups::load方法的典型用法代码示例。如果您正苦于以下问题:PHP CGroups::load方法的具体用法?PHP CGroups::load怎么用?PHP CGroups::load使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类CGroups
的用法示例。
在下文中一共展示了CGroups::load方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: loadRefGroup
function loadRefGroup()
{
if (!$this->_ref_group) {
$this->_ref_group = new CGroups();
$this->_ref_group->load($this->group_id);
}
}
示例2: getHostGroup
/**
* Get group host
*
* @param bool $get_id Only get the ID, not the object
*
* @return CGroups|int|null
*/
static function getHostGroup($get_id = true)
{
if (isset(self::$_host_group)) {
return $get_id ? self::$_host_group->_id : self::$_host_group;
}
$host_group_id = CAppUI::conf("dPstock host_group_id");
if (!$host_group_id) {
$host_group_id = CGroups::loadCurrent()->_id;
}
$group = new CGroups();
$group->load($host_group_id);
self::$_host_group = $group;
if ($get_id) {
return $group->_id;
}
return $group;
}
示例3: storeNDA
/**
* Recording NDA
*
* @param CIdSante400 $NDA Object id400
* @param CSejour $sejour Admit
* @param CInteropSender $sender Sender
*
* @return null|string null if successful otherwise returns and error message
*/
static function storeNDA(CIdSante400 $NDA, CSejour $sejour, CInteropSender $sender)
{
/* Gestion du numéroteur */
$group = new CGroups();
$group->load($sender->group_id);
$group->loadConfigValues();
// Purge du NDA existant sur le séjour et on le remplace par le nouveau
if ($sender->_configs["purge_idex_movements"]) {
// On charge le NDA courant du séjour
$sejour->loadNDA($sender->group_id);
$ref_NDA = $sejour->_ref_NDA;
if ($ref_NDA) {
// Si le NDA actuel est identique à celui qu'on reçoit on ne fait rien
if ($ref_NDA->id400 == $NDA->id400) {
return;
}
// On passe le NDA courant en trash
$ref_NDA->tag = CAppUI::conf("dPplanningOp CSejour tag_dossier_trash") . $ref_NDA->tag;
$ref_NDA->_eai_sender_guid = $sender->_guid;
$ref_NDA->store();
}
// On sauvegarde le nouveau
$NDA->tag = $sender->_tag_sejour;
$NDA->object_class = "CSejour";
$NDA->object_id = $sejour->_id;
$NDA->last_update = CMbDT::dateTime();
$NDA->_eai_sender_guid = $sender->_guid;
return $NDA->store();
}
// Génération du NDA ?
// Non
if (!$group->_configs["smp_idex_generator"]) {
if (!$NDA->id400) {
return null;
}
if ($sejour) {
$NDA->object_id = $sejour->_id;
}
$NDA->last_update = CMbDT::dateTime();
$NDA->_eai_sender_guid = $sender->_guid;
return $NDA->store();
} else {
$NDA_temp = CIdSante400::getMatch("CSejour", $sender->_tag_sejour, null, $sejour->_id);
if ($NDA_temp->_id) {
return;
}
// Pas de NDA passé
if (!$NDA->id400) {
if (!CIncrementer::generateIdex($sejour, $sender->_tag_sejour, $sender->group_id)) {
return CAppUI::tr("CEAISejour-error-generate-idex");
}
return null;
} else {
$incrementer = $sender->loadRefGroup()->loadDomainSupplier("CSejour");
if ($incrementer && $NDA->id400 < $incrementer->range_min || $NDA->id400 > $incrementer->range_max) {
return CAppUI::tr("CEAISejour-idex-not-in-the-range");
}
$NDA->object_id = $sejour->_id;
$NDA->last_update = CMbDT::dateTime();
$NDA->_eai_sender_guid = $sender->_guid;
return $NDA->store();
}
}
}
示例4: CGroups
CAppUI::redirect("m=system&a=module_missing&mod={$m}");
}
$m = "dP{$m}";
}
// Get current module permissions
// these can be further modified by the included action files
$can = $module->canDo();
$a = CAppUI::checkFileName(CValue::get("a", $index));
$u = CAppUI::checkFileName(CValue::get("u", ""));
$dosql = CAppUI::checkFileName(CValue::post("dosql", ""));
$class = CAppUI::checkFileName(CValue::post("@class", ""));
$tab = $a == "index" ? CValue::getOrSession("tab", $tab) : CValue::get("tab");
// set the group in use, put the user group if not allowed
$g = CValue::getOrSessionAbs("g", CAppUI::$instance->user_group);
$indexGroup = new CGroups();
if ($indexGroup->load($g) && !$indexGroup->canRead()) {
$g = CAppUI::$instance->user_group;
CValue::setSessionAbs("g", $g);
}
$user = CAppUI::$user;
// Check whether the password is strong enough
// If account is not a robot
if ($user->_id && !$user->isRobot() && (!($m == "admin" && $tab == "chpwd") && !($m == "admin" && $dosql == "do_chpwd_aed"))) {
if (CAppUI::$instance->weak_password && (!CAppUI::$instance->user_remote || CAppUI::conf("admin CUser apply_all_users"))) {
CAppUI::redirect("m=admin&tab=chpwd&forceChange=1");
}
// If we want to force user to periodically change password
if (CAppUI::conf("admin CUser force_changing_password") || $user->_ref_user->force_change_password) {
// Need to change
if ($user->_ref_user->force_change_password) {
CAppUI::redirect("m=admin&tab=chpwd&forceChange=1");
示例5: CGroups
<?php
/**
* $Id$
*
* @category CDA
* @package Mediboard
* @author SARL OpenXtrem <dev@openxtrem.com>
* @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html
* @version $Revision$
* @link http://www.mediboard.org
*/
$group_type = CValue::post("group_type");
$group_id = CValue::post("group_id");
$group = new CGroups();
$group->load($group_id);
$idex = new CIdSante400();
$idex->tag = "cda_association_code";
$idex->setObject($group);
$idex->loadMatchingObject();
$idex->last_update = CMbDT::dateTime();
$idex->id400 = $group_type;
if ($group_type && ($msg = $idex->store())) {
CAppUI::setMsg($msg, UI_MSG_ERROR);
}
CAppUI::setMsg("Configuration effectué");
示例6: extractData
/**
* @see parent::extractData
*/
function extractData()
{
/** @var CDocumentItem $docItem */
$docItem = $this->mbObject;
$this->realm_code = "FR";
$this->langage = $docItem->language;
//Récupération du dernier log qui correspond à la date de création de cette version
$last_log = $docItem->loadLastLog();
$this->date_creation = $last_log->date;
$this->date_author = $last_log->date;
$this->targetObject = $object = $docItem->loadTargetObject();
if ($object instanceof CConsultAnesth) {
$this->targetObject = $object = $object->loadRefConsultation();
}
$this->practicien = $object->loadRefPraticien();
$this->patient = $object->loadRefPatient();
$this->patient->loadLastINS();
$this->patient->loadIPP();
$this->mbObject = $docItem;
$this->root = CMbOID::getOIDFromClass($docItem, $this->receiver);
$this->practicien->loadRefFunction();
$this->practicien->loadRefOtherSpec();
$group = new CGroups();
$group->load($this->practicien->_group_id);
$this->healt_care = CCdaTools::loadEntryJV("CI-SIS_jdv_healthcareFacilityTypeCode.xml", CIdSante400::getValueFor($group, "cda_association_code"));
if ($docItem instanceof CFile) {
$this->version = "1";
$this->nom = basename($docItem->file_name);
} else {
$this->version = $docItem->version;
$this->nom = $docItem->nom;
}
$this->id_cda_lot = "{$this->root}.{$docItem->_id}";
$this->id_cda = "{$this->id_cda_lot}.{$this->version}";
$confidentialite = "N";
if ($docItem->private) {
$confidentialite = "R";
}
$this->confidentialite = CCdaTools::loadEntryJV("CI-SIS_jdv_confidentialityCode.xml", $confidentialite);
if ($docItem->type_doc) {
$type = explode("^", $docItem->type_doc);
$this->code = CCdaTools::loadEntryJV("CI-SIS_jdv_typeCode.xml", $type[1]);
}
//conformité HL7
$this->templateId[] = $this->createTemplateID("2.16.840.1.113883.2.8.2.1", "HL7 France");
//Conformité CI-SIS
$this->templateId[] = $this->createTemplateID("1.2.250.1.213.1.1.1.1", "CI-SIS");
//Confirmité IHE XSD-SD => contenu non structuré
$this->templateId[] = $this->createTemplateID("1.3.6.1.4.1.19376.1.2.20", "IHE XDS-SD");
$this->industry_code = CCdaTools::loadEntryJV("CI-SIS_jdv_practiceSettingCode.xml", "ETABLISSEMENT");
$mediaType = "application/pdf";
//Génération du PDF
if ($docItem instanceof CFile) {
$path = $docItem->_file_path;
switch ($docItem->file_type) {
case "image/tiff":
$mediaType = "image/tiff";
break;
case "application/pdf":
$mediaType = $docItem->file_type;
$path = CCdaTools::generatePDFA($docItem->_file_path);
break;
case "image/jpeg":
case "image/jpg":
$mediaType = "image/jpeg";
break;
case "application/rtf":
$mediaType = "text/rtf";
break;
default:
$docItem->convertToPDF();
$file = $docItem->loadPDFconverted();
$path = CCdaTools::generatePDFA($file->_file_path);
}
} else {
if ($msg = $docItem->makePDFpreview(1, 0)) {
throw new CMbException($msg);
}
$file = $docItem->_ref_file;
$path = CCdaTools::generatePDFA($file->_file_path);
}
$this->file = $path;
$this->mediaType = $mediaType;
$service["nullflavor"] = null;
switch (get_class($object)) {
case "CSejour":
/** @var CSejour $object CSejour */
$dp = $object->DP;
$service["time_start"] = $object->entree;
$service["time_stop"] = $object->sortie;
$service["executant"] = $object->loadRefPraticien();
if ($dp) {
$service["oid"] = "2.16.840.1.113883.6.3";
$service["code"] = $dp;
$service["type_code"] = "cim10";
} else {
$service["nullflavor"] = "UNK";
//.........这里部分代码省略.........
示例7: onAfterStore
/**
* Trigger after event store
*
* @param CMbObject $mbObject Object
*
* @throws CMbException
*
* @return bool
*/
function onAfterStore(CMbObject $mbObject)
{
if (!$this->isHandled($mbObject)) {
return false;
}
$receiver = $mbObject->_receiver;
if ($mbObject instanceof CCorrespondantPatient) {
$patient = $mbObject->loadRefPatient();
$patient->_receiver = $receiver;
} else {
$patient = $mbObject;
}
// Si Serveur
if (CAppUI::conf('sip server')) {
$echange_hprim = new CEchangeHprim();
if (isset($patient->_eai_exchange_initiator_id)) {
$echange_hprim->load($patient->_eai_exchange_initiator_id);
}
$initiateur = $receiver->_id == $echange_hprim->sender_id ? $echange_hprim->_id : null;
$group = new CGroups();
$group->load($receiver->group_id);
$group->loadConfigValues();
if (!$initiateur && !$group->_configs["sip_notify_all_actors"]) {
return false;
}
$patient->_id400 = null;
$idexPatient = new CIdSante400();
$idexPatient->loadLatestFor($patient, $receiver->_tag_patient);
$patient->_id400 = $idexPatient->id400;
$this->generateTypeEvenement("CHPrimXMLEnregistrementPatient", $patient, true, $initiateur);
} else {
if (!$receiver->isMessageSupported("CHPrimXMLEnregistrementPatient")) {
return false;
}
if (!$patient->_IPP) {
// Génération de l'IPP dans le cas de la création, ce dernier n'était pas créé
if ($msg = $patient->generateIPP()) {
CAppUI::setMsg($msg, UI_MSG_ERROR);
}
$IPP = new CIdSante400();
$IPP->loadLatestFor($patient, $receiver->_tag_patient);
$patient->_IPP = $IPP->id400;
}
// Envoi pas les patients qui n'ont pas d'IPP
if (!$receiver->_configs["send_all_patients"] && !$patient->_IPP) {
return false;
}
$this->sendEvenementPatient("CHPrimXMLEnregistrementPatient", $patient);
if ($receiver->_configs["send_insured_without_admit"]) {
if (!$receiver->isMessageSupported("CHPrimXMLDebiteursVenue")) {
return false;
}
$sejour = new CSejour();
$where = array();
$where["patient_id"] = "= '{$patient->_id}'";
$where["group_id"] = "= '{$receiver->group_id}'";
$datetime = CMbDT::dateTime();
$where["sortie"] = ">= '{$datetime}'";
/** @var CSejour[] $sejours */
$sejours = $sejour->loadList($where);
// On va transmettre les informations sur le débiteur pour le séjour en cours, et ceux à venir
foreach ($sejours as $_sejour) {
if (!$patient->code_regime) {
continue;
}
$_sejour->_receiver = $receiver;
$_sejour->loadLastLog();
$_sejour->loadRefPatient();
if (!$_sejour->_NDA) {
// Génération du NDA dans le cas de la création, ce dernier n'était pas créé
if ($msg = $_sejour->generateNDA()) {
CAppUI::setMsg($msg, UI_MSG_ERROR);
}
$NDA = new CIdSante400();
$NDA->loadLatestFor($_sejour, $receiver->_tag_sejour);
$sejour->_NDA = $NDA->id400;
}
if ($receiver->isMessageSupported("CHPrimXMLDebiteursVenue")) {
$this->sendEvenementPatient("CHPrimXMLDebiteursVenue", $_sejour);
}
}
}
$patient->_IPP = null;
}
return true;
}
示例8: CGroups
/**
* $Id: $
*
* @package Mediboard
* @subpackage dPetablissement
* @author SARL OpenXtrem <dev@openxtrem.com>
* @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html
* @version $Revision: 18985 $
*/
CCanDo::checkRead();
// Récupération du groupe selectionné
$group_id = CValue::getOrSession("group_id");
// Fiche établissement
$etab = new CGroups();
$etab->load($group_id);
// Services d'hospitalisation
$service = new CService();
$service->group_id = $etab->_id;
$service->cancelled = 0;
$service->externe = 0;
/** @var CService[] $services */
$services = $service->loadMatchingList("nom");
foreach ($services as $_service) {
$_service->loadRefsChambres(false);
foreach ($_service->_ref_chambres as $_chambre) {
$_chambre->loadRefsLits(false);
}
}
// Blocs opératoires
$bloc = new CBlocOperatoire();
示例9: onAfterStore
/**
* Trigger after event store
*
* @param CMbObject $mbObject Object
*
* @throws CMbException
*
* @return bool
*/
function onAfterStore(CMbObject $mbObject)
{
if (!$this->isHandled($mbObject)) {
return false;
}
$receiver = $mbObject->_receiver;
// Traitement Sejour
if ($mbObject instanceof CSejour) {
$sejour = $mbObject;
$sejour->loadRefPraticien();
$sejour->loadNDA();
$sejour->loadLastLog();
$sejour->loadRefPatient();
$sejour->loadRefAdresseParPraticien();
// Si Serveur
if (CAppUI::conf('smp server')) {
$echange_hprim = new CEchangeHprim();
if (isset($sejour->_eai_exchange_initiator_id)) {
$echange_hprim->load($sejour->_eai_exchange_initiator_id);
}
$initiateur = $receiver->_id == $echange_hprim->sender_id ? $echange_hprim->_id : null;
$group = new CGroups();
$group->load($receiver->group_id);
$group->loadConfigValues();
$mbObject->_id400 = null;
$idexPatient = new CIdSante400();
$idexPatient->loadLatestFor($sejour, $receiver->_tag_sejour);
$mbObject->_id400 = $idexPatient->id400;
$this->generateTypeEvenement("CHPrimXMLVenuePatient", $sejour, true, $initiateur);
} else {
if (!$receiver->isMessageSupported("CHPrimXMLVenuePatient")) {
return false;
}
if (CGroups::loadCurrent()->_id != $receiver->group_id) {
return false;
}
if (!$sejour->_NDA) {
// Génération du NDA dans le cas de la création, ce dernier n'était pas créé
if ($msg = $sejour->generateNDA()) {
CAppUI::setMsg($msg, UI_MSG_ERROR);
}
$NDA = new CIdSante400();
$NDA->loadLatestFor($sejour, $receiver->_tag_sejour);
$sejour->_NDA = $NDA->id400;
}
if (!$sejour->_ref_patient->_IPP) {
$IPP = new CIdSante400();
//Paramétrage de l'id 400
$IPP->loadLatestFor($sejour->_ref_patient, $receiver->_tag_patient);
$sejour->_ref_patient->_IPP = $IPP->id400;
}
$this->sendEvenementPatient("CHPrimXMLVenuePatient", $sejour);
if ($receiver->isMessageSupported("CHPrimXMLDebiteursVenue") && $sejour->_ref_patient->code_regime) {
$this->sendEvenementPatient("CHPrimXMLDebiteursVenue", $sejour);
}
if ($receiver->isMessageSupported("CHPrimXMLMouvementPatient") && $sejour->_ref_last_log->type == "create") {
$affectation = $sejour->loadRefFirstAffectation();
// $this->sendEvenementPatient("CHPrimXMLMouvementPatient", $affectation);
}
$sejour->_NDA = null;
}
return true;
} elseif ($mbObject instanceof CAffectation) {
$affectation = $mbObject;
$current_log = $affectation->_ref_current_log;
if (!$current_log || $affectation->_no_synchro || !in_array($current_log->type, array("create", "store"))) {
return false;
}
// Cas où :
// * on est l'initiateur du message
// * le destinataire ne supporte pas le message
if (!$receiver->isMessageSupported("CHPrimXMLMouvementPatient")) {
return false;
}
// Affectation non liée à un séjour
$sejour = $affectation->loadRefSejour();
if (!$sejour->_id) {
return false;
}
$sejour->loadRefPatient();
$sejour->_receiver = $receiver;
// Envoi de l'événement
$this->sendEvenementPatient("CHPrimXMLMouvementPatient", $affectation);
}
return true;
}
示例10: CGroups
<?php
/**
* $Id$
*
* @package Mediboard
* @subpackage dPetablissement
* @author SARL OpenXtrem <dev@openxtrem.com>
* @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html
* @version $Revision$
*/
CCanDo::checkRead();
// Récupération du groupe selectionné
$group = new CGroups();
$group->load(CValue::getOrSession("group_id"));
if ($group && $group->_id) {
$group->loadFunctions();
$group->loadRefsNotes();
$group->loadRefLegalEntity();
}
$legal_entity = new CLegalEntity();
$legal_entities = $legal_entity->loadList();
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("group", $group);
$smarty->assign("legal_entities", $legal_entities);
$smarty->display("inc_vw_groups.tpl");
示例11: 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;
}
//.........这里部分代码省略.........
示例12: 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;
}
示例13: storeIPP
/**
* Recording IPP
*
* @param CIdSante400 $IPP Object id400
* @param CPatient $patient Patient
* @param CInteropSender $sender Sender
*
* @return null|string null if successful otherwise returns and error message
*/
static function storeIPP(CIdSante400 $IPP, CPatient $patient, CInteropSender $sender)
{
/* Gestion du numéroteur */
$group = new CGroups();
$group->load($sender->group_id);
$group->loadConfigValues();
// Purge de l'IPP existant sur le patient et on le remplace par le nouveau
if ($sender->_configs && $sender->_configs["purge_idex_movements"]) {
// On charge l'IPP courant du patient
$patient->loadIPP($sender->group_id);
$ref_IPP = $patient->_ref_IPP;
if ($ref_IPP) {
// Si l'IPP actuel est identique à celui qu'on reçoit on ne fait rien
if ($ref_IPP->id400 == $IPP->id400) {
return;
}
// On passe l'IPP courant en trash
$ref_IPP->tag = CAppUI::conf("dPpatients CPatient tag_ipp_trash") . $ref_IPP->tag;
$ref_IPP->_eai_sender_guid = $sender->_guid;
$ref_IPP->store();
$patient->trashIPP($ref_IPP);
}
// On sauvegarde le nouveau
$IPP->tag = $sender->_tag_patient;
$IPP->object_class = "CPatient";
$IPP->object_id = $patient->_id;
$IPP->last_update = CMbDT::dateTime();
$IPP->_eai_sender_guid = $sender->_guid;
return $IPP->store();
}
// Génération de l'IPP ?
/* @todo sip_idex_generator doit être remplacé par isIPPSupplier */
if ($sender->_configs && !$group->_configs["sip_idex_generator"]) {
if (!$IPP->id400) {
return null;
}
if ($patient) {
$IPP->object_id = $patient->_id;
}
$IPP->last_update = CMbDT::dateTime();
$IPP->_eai_sender_guid = $sender->_guid;
return $IPP->store();
} else {
$IPP_temp = CIdSante400::getMatch("CPatient", $sender->_tag_patient, null, $patient->_id);
// Pas d'IPP passé
if (!$IPP->id400) {
if ($IPP_temp->_id) {
return null;
}
if (!CIncrementer::generateIdex($patient, $sender->_tag_patient, $sender->group_id)) {
return CAppUI::tr("CEAIPatient-error-generate-idex");
}
return null;
} else {
// Si j'ai déjà un identifiant
if ($IPP_temp->_id) {
// On passe l'IPP courant en trash
$IPP_temp->tag = CAppUI::conf("dPpatients CPatient tag_ipp_trash") . $IPP_temp->tag;
$IPP_temp->_eai_sender_guid = $sender->_guid;
$IPP_temp->store();
}
$incrementer = $sender->loadRefGroup()->loadDomainSupplier("CPatient");
if ($incrementer && $IPP->id400 < $incrementer->range_min || $IPP->id400 > $incrementer->range_max) {
return CAppUI::tr("CEAIPatient-idex-not-in-the-range");
}
$IPP->object_id = $patient->_id;
$IPP->last_update = CMbDT::dateTime();
$IPP->_eai_sender_guid = $sender->_guid;
return $IPP->store();
}
}
}