<?php /* $Id: view_identifiants.php 12379 2011-06-08 10:13:32Z flaviencrochard $ */ /** * @package Mediboard * @subpackage sante400 * @version $Revision: 12379 $ * @author SARL OpenXtrem * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html */ CCanDo::checkAdmin(); $object_class = CValue::get("object_class"); if (!$object_class) { return; } $object = new $object_class(); $vars = array_keys(CIncrementer::getVars($object)); $vars = array_combine($vars, $vars); foreach ($vars as &$_var) { $_var = "[{$_var}]"; } $vars["VALUE"] = "%06d"; // Création du template $smarty = new CSmartyDP(); $smarty->assign("vars", $vars); $smarty->display("inc_object_vars.tpl");
/** * Génération de l'IPP du patient * * @return null|string */ function generateIPP() { $group = CGroups::loadCurrent(); if (!$group->isIPPSupplier()) { return null; } $this->loadIPP($group->_id); if ($this->_IPP) { return null; } if (!($IPP = CIncrementer::generateIdex($this, self::getTagIPP($group->_id), $group->_id))) { return CAppUI::tr("CIncrementer_undefined"); } $this->_IPP = $IPP->id400; return null; }
<?php /* $Id: view_identifiants.php 12379 2011-06-08 10:13:32Z flaviencrochard $ */ /** * @package Mediboard * @subpackage sante400 * @version $Revision: 12379 $ * @author SARL OpenXtrem * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html */ CCanDo::checkAdmin(); $incrementer_id = CValue::getOrSession("incrementer_id"); $domain_id = CValue::getOrSession("domain_id"); // Récupération due l'incrementeur à ajouter/editer $incrementer = new CIncrementer(); $incrementer->load($incrementer_id); $incrementer->loadMasterDomain($domain_id); // Création du template $smarty = new CSmartyDP(); $smarty->assign("incrementer", $incrementer); $smarty->display("inc_edit_incrementer.tpl");
/** * 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(); } } }
<?php /* $Id: view_identifiants.php 12379 2011-06-08 10:13:32Z flaviencrochard $ */ /** * @package Mediboard * @subpackage sante400 * @version $Revision: 12379 $ * @author SARL OpenXtrem * @license GNU General Public License, see http://www.gnu.org/licenses/gpl.html */ CCanDo::checkAdmin(); $incrementer_id = CValue::getOrSession("incrementer_id"); // Liste des incrémenteurs $incrementer = new CIncrementer(); $incrementers = $incrementer->loadMatchingList(); foreach ($incrementers as $_incrementer) { } // Récupération due l'incrementeur à ajouter/editer $incrementer = new CIncrementer(); $incrementer->load($incrementer_id); // Création du template $smarty = new CSmartyDP(); $smarty->assign("incrementers", $incrementers); $smarty->assign("incrementer", $incrementer); $smarty->display("vw_incrementers.tpl");
/** * Generate NDA * * @return null|string Error message if not null */ function generateNDA() { $group = CGroups::loadCurrent(); if (!$group->isNDASupplier()) { return null; } $this->loadNDA($group->_id); if ($this->_NDA) { return null; } if (!($NDA = CIncrementer::generateIdex($this, self::getTagNDA($group->_id), $group->_id))) { return CAppUI::tr("CIncrementer_undefined"); } return null; }
/** * 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(); } } }