Beispiel #1
0
 /**
  * @see parent::loadComplete()
  */
 function loadComplete()
 {
     parent::loadComplete();
     $this->loadIPP();
     $this->loadRefPhotoIdentite();
     $this->loadRefsCorrespondantsPatient();
     $this->loadRefDossierMedical();
     $this->_ref_dossier_medical->canDo();
     $this->_ref_dossier_medical->loadRefsAntecedents();
     $this->_ref_dossier_medical->loadRefsTraitements();
     $prescription = $this->_ref_dossier_medical->loadRefPrescription();
     if ($prescription && is_array($prescription->_ref_prescription_lines)) {
         foreach ($prescription->_ref_prescription_lines as $_line) {
             $_line->loadRefsPrises();
         }
     }
     $this->loadRefLatestConstantes(null, array("poids", "taille"));
     $const_med = $this->_ref_constantes_medicales;
     if ($const_med) {
         $this->_poids = $const_med->poids;
         $this->_taille = $const_med->taille;
     }
 }
$mode = CValue::get("mode", "check");
$request = "SELECT DISTINCT(d.object_id), d.object_class\r\n            FROM `dossier_medical` d\r\n            WHERE d.`object_id` <> '0'\r\n            AND EXISTS (\r\n              SELECT * FROM `dossier_medical` e\r\n              WHERE e.`object_class` = d.`object_class`\r\n              AND e.`object_id` = d.`object_id`\r\n              AND e.`dossier_medical_id` <> d.`dossier_medical_id`\r\n            );";
$resultats = $ds->loadList($request);
CAppUI::stepAjax("Dossiers à corriger: " . count($resultats), UI_MSG_OK);
if ($mode == "repair") {
    $correction = 0;
    foreach ($resultats as $result) {
        //Dossier de références
        $where = array();
        $where["object_class"] = "= '" . $result['object_class'] . "'";
        $where["object_id"] = "= '" . $result['object_id'] . "'";
        $dossier_ok = new CDossierMedical();
        $dossier_ok->loadObject($where, "dossier_medical_id ASC");
        $dossier_ok->loadRefsAntecedents();
        $dossier_ok->loadRefsEtatsDents();
        $dossier_ok->loadRefsTraitements();
        //Chargement des autres dossiers
        $_dossier = new CDossierMedical();
        $where["dossier_medical_id"] = "!= '" . $dossier_ok->_id . "'";
        $dossiers = $_dossier->loadList($where);
        //Merge des dossiers
        foreach ($dossiers as $dossier) {
            /* @var CDossierMedical $dossier*/
            if ($msg = $dossier_ok->merge(array($dossier))) {
                mbTrace($msg);
            } else {
                $correction++;
            }
        }
    }
    CAppUI::stepAjax("Dossiers corrigés: {$correction}", UI_MSG_OK);