Exemplo n.º 1
0
    $position = strpos($listModificateurs, $modificateur->code);
    if ($position !== false) {
        if ($modificateur->_double == "1") {
            $modificateur->_checked = $modificateur->code;
        } elseif ($modificateur->_double == "2") {
            $modificateur->_checked = $modificateur->code . $modificateur->_double;
        } else {
            $modificateur->_checked = null;
        }
    } else {
        $modificateur->_checked = null;
    }
}
/* Vérification et précodage des modificateurs */
if (CAppUI::conf('dPccam CCodeCCAM use_new_association_rules')) {
    CCodageCCAM::precodeModifiers($phase->_modificateurs, $acte, $acte->loadRefObject());
} elseif (!$acte->_id) {
    foreach ($phase->_modificateurs as $modificateur) {
        $modificateur->_checked = $acte->_ref_object->checkModificateur($modificateur->code, CMbDT::time($acte->execution));
    }
}
$acte->getMontantModificateurs($phase->_modificateurs);
// Liste des dents CCAM
$liste_dents = reset(CDentCCAM::loadList());
// Chargement des listes de praticiens
$user = new CMediusers();
$listAnesths = $user->loadAnesthesistes(PERM_DENY);
$listChirs = $user->loadPraticiens(PERM_DENY);
// Création du template
$smarty = new CSmartyDP();
$smarty->assign("acte", $acte);
Exemplo n.º 2
0
 /**
  * Return the CCodageCCAM linked to the given codable and practitioner, and create it if it not exists
  *
  * @param CCodable $codable         The codable object
  * @param integer  $praticien_id    The practitioner id
  * @param integer  $activite        Is the CCodage concern anesthesia activities or other activities
  * @param date     $date            The date
  *
  * @return CCodageCCAM
  */
 public static function get($codable, $praticien_id, $activite = 1, $date = null)
 {
     if (!$date) {
         switch ($codable->_class) {
             case 'CConsultation':
                 $codable->loadRefPlageConsult();
                 $date = $codable->_date;
                 break;
             case 'COperation':
                 $date = $codable->date;
                 break;
             case 'CSejour':
                 return new CCodageCCAM();
         }
     }
     $codage_ccam = new CCodageCCAM();
     $codage_ccam->codable_class = $codable->_class;
     $codage_ccam->codable_id = $codable->_id;
     $codage_ccam->praticien_id = $praticien_id;
     $codage_ccam->loadPraticien();
     $codage_ccam->activite_anesth = $activite == 4 && $codage_ccam->_ref_praticien->isAnesth() ? 1 : 0;
     $codage_ccam->date = $date;
     $codage_ccam->loadMatchingObject();
     if (!$codage_ccam->_id) {
         $codage_ccam->_apply_rules = false;
         $codage_ccam->store();
     }
     return $codage_ccam;
 }
Exemplo n.º 3
0
 /**
  * Charge les actes CCAM codables en fonction des code CCAM fournis
  *
  * @param integer $praticien_id L'id du praticien auquel seront liés les actes
  *
  * @return void
  */
 function loadPossibleActes($praticien_id = 0)
 {
     $this->preparePossibleActes();
     $depassement_affecte = false;
     $depassement_anesth_affecte = false;
     $this->guessActesAssociation();
     // Check if depassement is already set
     $this->loadRefsActesCCAM();
     foreach ($this->_ref_actes_ccam as $_acte) {
         if ($_acte->code_activite == 1 && $_acte->montant_depassement) {
             $depassement_affecte = true;
         }
         if ($_acte->code_activite == 4 && $_acte->montant_depassement) {
             $depassement_anesth_affecte = true;
         }
     }
     // existing acts may only be affected once to possible acts
     $used_actes = array();
     if ($praticien_id) {
         $praticien = CMediusers::get($praticien_id);
         $executant_id = $praticien_id;
     } else {
         $praticien = $this->loadRefPraticien();
         $executant_id = 0;
     }
     $praticien->loadRefDiscipline();
     $this->loadRefPatient()->evalAge();
     $this->loadExtCodesCCAM();
     foreach ($this->_ext_codes_ccam as $code_ccam) {
         foreach ($code_ccam->activites as $activite) {
             foreach ($activite->phases as $phase) {
                 $possible_acte = new CActeCCAM();
                 $possible_acte->montant_depassement = "";
                 $possible_acte->code_acte = $code_ccam->code;
                 $possible_acte->code_activite = $activite->numero;
                 $possible_acte->_anesth = $activite->numero == 4;
                 $possible_acte->code_phase = $phase->phase;
                 $possible_acte->execution = CAppUI::pref("use_acte_date_now") ? CMbDT::dateTime() : $this->_acte_execution;
                 // Affectation du dépassement au premier acte de chirugie
                 if (!$depassement_affecte and $possible_acte->code_activite == 1) {
                     $possible_acte->montant_depassement = $this->_acte_depassement;
                     $depassement_affecte = true;
                 }
                 // Affectation du dépassement au premier acte d'anesthésie
                 if (!$depassement_anesth_affecte and $possible_acte->code_activite == 4) {
                     $possible_acte->montant_depassement = $this->_acte_depassement_anesth;
                     $depassement_anesth_affecte = true;
                 }
                 if (!$praticien_id) {
                     $executant_id = CAppUI::pref("user_executant") ? CMediusers::get()->_id : $this->getExecutantId($possible_acte->code_activite);
                 }
                 $possible_acte->executant_id = $executant_id;
                 $possible_acte->object_class = $this->_class;
                 $possible_acte->object_id = $this->_id;
                 if ($possible_acte->code_activite == 4) {
                     $possible_acte->extension_documentaire = $this->getExtensionDocumentaire($possible_acte->executant_id);
                 }
                 /* Gestion du champ remboursé */
                 if ($code_ccam->remboursement == 1) {
                     /* Cas ou l'acte est remboursable */
                     $possible_acte->rembourse = '1';
                 } else {
                     /* Cas ou l'acte est non */
                     $possible_acte->rembourse = '0';
                 }
                 $possible_acte->updateFormFields();
                 $possible_acte->loadRefExecutant();
                 $possible_acte->loadRefCodeCCAM();
                 if (CAppUI::conf('dPccam CCodeCCAM use_new_association_rules')) {
                     $possible_acte->loadRefCodageCCAM();
                 }
                 $possible_acte->getAnesthAssocie();
                 // Affect a loaded acte if exists
                 foreach ($this->_ref_actes_ccam as $_acte) {
                     if ($_acte->code_acte == $possible_acte->code_acte && $_acte->code_activite == $possible_acte->code_activite && $_acte->code_phase == $possible_acte->code_phase) {
                         if (!isset($used_actes[$_acte->acte_id])) {
                             $possible_acte = $_acte;
                             $used_actes[$_acte->acte_id] = true;
                             break;
                         }
                     }
                 }
                 if ($possible_acte->_id) {
                     $possible_acte->getTarif();
                 } else {
                     $possible_acte->getTarifSansAssociationNiCharge();
                 }
                 // Keep references !
                 $phase->_connected_acte = $possible_acte;
                 $listModificateurs = $phase->_connected_acte->modificateurs;
                 if (!$possible_acte->_id) {
                     $possible_acte->facturable = '1';
                     $possible_acte->checkFacturable();
                     if (CAppUI::conf('dPccam CCodeCCAM use_new_association_rules')) {
                         CCodageCCAM::precodeModifiers($phase->_modificateurs, $possible_acte, $this);
                         $possible_acte->getMontantModificateurs($phase->_modificateurs);
                     } else {
                         $possible_acte->getMontantModificateurs($phase->_modificateurs);
                         foreach ($phase->_modificateurs as $modificateur) {
                             $modificateur->_checked = $this->checkModificateur($modificateur->code, CMbDT::time($phase->_connected_acte->execution));
                         }
                     }
                 } else {
                     // Récupération des modificateurs codés
                     foreach ($phase->_modificateurs as $modificateur) {
                         /* Dans le cas des modificateurs doubles, les 2 composantes peuvent être séparées (IJKO dans le cas de IO par exemple) */
                         if ($modificateur->_double == "2") {
                             $position = strpos($listModificateurs, $modificateur->code[0]) !== false && strpos($listModificateurs, $modificateur->code[1]) !== false;
                         } else {
                             $position = strpos($listModificateurs, $modificateur->code);
                         }
                         if ($position !== false) {
                             if ($modificateur->_double == "1") {
                                 $modificateur->_checked = $modificateur->code;
                             } elseif ($modificateur->_double == "2") {
                                 $modificateur->_checked = $modificateur->code . $modificateur->_double;
                             } else {
                                 $modificateur->_checked = null;
                             }
                         } else {
                             $modificateur->_checked = null;
                         }
                     }
                     /* Vérification et précodage des modificateurs */
                     if (CAppUI::conf('dPccam CCodeCCAM use_new_association_rules')) {
                         CCodageCCAM::precodeModifiers($phase->_modificateurs, $possible_acte, $this);
                     }
                     $possible_acte->getMontantModificateurs($phase->_modificateurs);
                 }
             }
         }
     }
 }
Exemplo n.º 4
0
 /**
  * Charge le codage CCAM associé
  *
  * @return CCodageCCAM|null
  */
 function loadRefCodageCCAM()
 {
     $this->loadRefObject();
     if (isset($this->_ref_object)) {
         return $this->_ref_codage_ccam = CCodageCCAM::get($this->_ref_object, $this->executant_id, $this->code_activite, CMbDT::date(null, $this->execution));
     }
     return null;
 }
Exemplo n.º 5
0
 *  
 * @package    Mediboard
 * @subpackage ccam
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 * @link       http://www.mediboard.org
 */
$codable_id = Cvalue::post('codable_id');
$codable_class = CValue::post('codable_class');
$praticien_id = Cvalue::post('praticien_id');
$date = Cvalue::post('date');
$user_password = CValue::post('user_password');
$lock_all_codages = Cvalue::post('lock_all_codages', 0);
$lock = CValue::post('lock', 1);
$codage = new CCodageCCAM();
$codage->praticien_id = $praticien_id;
$codage->codable_class = $codable_class;
$codage->codable_id = $codable_id;
if ($date && !$lock_all_codages) {
    $codage->date = $date;
}
$codages = $codage->loadMatchingList();
$user = CMediusers::get();
if (CAppUI::conf('ccam CCodable lock_codage_ccam') != 'password' || CAppUI::conf('ccam CCodable lock_codage_ccam') == 'password' && $user->_id && CUser::checkPassword($user->_user_username, $user_password)) {
    foreach ($codages as $_codage) {
        $_codage->locked = $lock;
        $_codage->store();
    }
    $msg = $lock ? 'CCodageCCAM-msg-codage_locked' : 'CCodageCCAM-msg-codage_unlocked';
    CAppUI::setMsg($msg, UI_MSG_OK);
Exemplo n.º 6
0
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 * @link       http://www.mediboard.org
 */
$praticien_id = CValue::get('praticien_id');
$codable_class = CValue::get('codable_class');
$codable_id = CValue::get('codable_id');
$date = Cvalue::get('date');
$lock = CValue::get('lock', 1);
$user = CMediusers::get();
/** @var CCodable $codable */
$codable = CMbObject::loadFromGuid("{$codable_class}-{$codable_id}");
$codage = CCodageCCAM::get($codable, $praticien_id, 1, $date);
if (CAppUI::conf('ccam CCodable lock_codage_ccam') != 'password' && $codable_class != 'CSejour') {
    $codage = new CCodageCCAM();
    $codage->praticien_id = $praticien_id;
    $codage->codable_class = $codable_class;
    $codage->codable_id = $codable_id;
    $codages = $codage->loadMatchingList();
    foreach ($codages as $_codage) {
        $_codage->locked = $lock;
        $_codage->store();
    }
    $msg = $lock ? 'CCodageCCAM-msg-codage_locked' : 'CCodageCCAM-msg-codage_unlocked';
    CAppUI::setMsg($msg, UI_MSG_OK);
    echo CAppUI::getMsg();
    CApp::rip();
}
$smarty = new CSmartyDP();
$smarty->assign('praticien_id', $praticien_id);
Exemplo n.º 7
0
 /**
  * @see parent::getExtensionDocumentaire()
  */
 function getExtensionDocumentaire($executant_id)
 {
     $extension_documentaire = null;
     if (CAppUI::conf('dPccam CCodeCCAM use_new_association_rules')) {
         $codage_ccam = CCodageCCAM::get($this, $executant_id, 4, $this->date);
         $actes = $codage_ccam->loadActesCCAM();
         foreach ($actes as $_acte) {
             if ($_acte->extension_documentaire) {
                 $extension_documentaire = $_acte->extension_documentaire;
                 break;
             }
         }
     }
     if (!$extension_documentaire) {
         /** @var CTypeAnesth $type_anesth */
         $type_anesth = $this->loadFwdRef("type_anesth", true);
         $this->_ref_type_anesth = $type_anesth;
         $extension_documentaire = $type_anesth->ext_doc;
     }
     return $extension_documentaire;
 }
Exemplo n.º 8
0
<?php

/**
 * $Id: $
 *
 * @package    Mediboard
 * @subpackage SalleOp
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision: 23384 $
 */
$codable_class = CValue::get('codable_class', '');
$codable_id = CValue::get('codable_id');
$praticien_id = CValue::get('praticien_id');
$date = CValue::get('date');
$codage = new CCodageCCAM();
$codage->codable_class = $codable_class;
$codage->codable_id = $codable_id;
$codage->praticien_id = $praticien_id;
if ($date) {
    $codage->date = $date;
}
$codages = $codage->loadMatchingList('activite_anesth desc');
foreach ($codages as $_codage) {
    $_codage->canDo();
    if (!$_codage->_can->edit) {
        CAppUI::redirect("m=system&a=access_denied");
    }
    $_codage->loadPraticien()->loadRefFunction();
    $_codage->_ref_praticien->isAnesth();
    $_codage->loadActesCCAM();
Exemplo n.º 9
0
<?php

/**
 * $Id$
 *  
 * @package    Mediboard
 * @subpackage dPccam
 * @author     SARL OpenXtrem <*****@*****.**>
 * @license    GNU General Public License, see http://www.gnu.org/licenses/gpl.html
 * @version    $Revision$
 * @link       http://www.mediboard.org
 */
$codage_id = CValue::get('codage_id', 0);
$acte_id = CValue::get('acte_id', 0);
$codage = new CCodageCCAM();
$codage->load($codage_id);
if ($codage->_id) {
    $codage->canDo();
    if (!$codage->_can->edit) {
        CAppUI::redirect("m=system&a=access_denied");
    }
    $codage->loadCodable();
    $codage->loadPraticien()->loadRefFunction();
    $codage->_ref_praticien->isAnesth();
    $codage->loadActesCCAM();
    $codage->checkRules();
    // Chargement du codable et des actes possibles
    $codage->loadCodable();
    foreach ($codage->_ref_actes_ccam as $_acte) {
        $_acte->getTarif();
        $_activite = $_acte->_ref_code_ccam->activites[$_acte->code_activite];
Exemplo n.º 10
0
             if (!$coded) {
                 $key = "{$_code->code}-{$_activite->numero}-{$_phase->phase}";
                 if (!array_key_exists($key, $uncoded_acts)) {
                     $uncoded_acts[$key] = 1;
                 } else {
                     $uncoded_acts[$key] = $uncoded_acts[$key] + 1;
                 }
             }
         }
     }
 }
 $date = CValue::post('date', $codage->_ref_codable->sortie);
 $days = CMbDT::daysRelative($codage->date . ' 00:00:00', CMbDT::format($date, '%Y-%m-%d 00:00:00'));
 for ($i = 1; $i <= $days; $i++) {
     $_date = CMbDT::date("+{$i} DAYS", $codage->date);
     $_codage = new CCodageCCAM();
     $_codage->praticien_id = $codage->praticien_id;
     $_codage->codable_class = $codage->codable_class;
     $_codage->codable_id = $codage->codable_id;
     $_codage->date = $_date;
     $_codage->loadMatchingObject();
     if ($codage->association_mode == 'user_choice') {
         $_codage->association_mode = $codage->association_mode;
         $_codage->association_rule = $codage->association_rule;
     }
     $_codage->store();
     foreach ($actes as $_acte_id) {
         if (array_key_exists($_acte_id, $codage->_ref_actes_ccam)) {
             $_acte = $codage->_ref_actes_ccam[$_acte_id];
             /* Si il n'y a pas d'acte non coté pour ce code ccam, on l'ajoute au codable */
             $key = "{$_acte->code_acte}-{$_acte->code_activite}-{$_acte->code_phase}";