Example #1
0
<?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");
Example #2
0
 /**
  * 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");
Example #4
0
 /**
  * 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();
         }
     }
 }
Example #5
0
<?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");
Example #6
0
 /**
  * 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;
 }
Example #7
0
 /**
  * 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();
         }
     }
 }