Exemple #1
0
 function isSameIpThanLast($login)
 {
     $currentIp = $_SERVER['REMOTE_ADDR'];
     //Recuperation d'une ligne de session valide avec l'user courant
     $date = new clDate();
     $date->addMinutes(-$this->xham->getOption("DureeSession"));
     //eko(whereAmI(),true);
     $param['cw'] = "WHERE last > '" . $date->getDatetime() . "' AND uid = '{$login}' AND idapplication=" . IDAPPLICATION . " order by last desc ";
     $res = $this->xham->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
     //si pas de données présentes, pas de comparaison possible, donc vrai.
     if ($res['INDIC_SVC'][2] == 0) {
         return true;
     }
     //sinon on prend la derniere
     $lastIp = $res['ip'][0];
     //eko($lastIp);
     //eko($_SERVER['REMOTE_ADDR']);
     return $currentIp == $lastIp;
 }
Exemple #2
0
 function genBlocEtatCivil($nomBloc, $mod, $droit, $date = '', $sortie = '')
 {
     global $session;
     global $options;
     // Initialisation des objets et des variables utilisées.
     // Pour générer des formulaires plus loin.
     $form = new clForm();
     // Date d'exécution.
     $now = new clDate();
     // Récupération des options.
     $retourmax = $options->getOption("Dates Patient");
     $tranches = $options->getOption("DatesDécoup Patient");
     // Récupération de la valeur actuelle du bloc.
     $res = '';
     eval("\$res = \$this->patient->get{$nomBloc} ( ) ;");
     // Si une date a été transmise et qu'elle n'est pas nulle, on initialise $res avec cette valeur.
     if ($date) {
         if ($res != "0000-00-00 00:00:00") {
             $res = $date->getDate("d-m-Y H:i");
         } else {
             $res = '';
         }
     }
     // Si toutes ces conditions sont réunies, alors on fait transiter le patient sorti vers la table des patients présents.
     if ($session->getNavi(3) == "mod" . $nomBloc and ($_POST['AnnulerSortie'] or $_POST['AnnulerSortie_x']) and $session->getDroit($this->type . "_EtatCivil", $droit)) {
         $modif = "0000-00-00 00:00:00";
         $this->patient->setAttribut($nomBloc, $modif);
         $this->patient = new clPatient($this->idpatient, "Sortis");
         $this->patient->entrerPatient();
         if ($options->getOption("Module_CCAM")) {
             $ccam = new clCCAMCotationActesDiags($this->paramCCAM);
             $ccam->deleteBAL();
             if ($options->getOption('HprimXML_Actif')) {
                 $hprimXml = new clHprimXML();
             }
         }
         $res = "";
         // Si ces conditions sont réunies, alors on change la date du champs avec la valeur transmise.
     } elseif ($session->getNavi(3) == "mod" . $nomBloc and ($_POST['Valider'] or $_POST['Valider_x']) and $session->getDroit($this->type . "_EtatCivil", $droit)) {
         if ($date) {
             if ($_POST['ValiderMaintenant'] or $_POST['ValiderMaintenant_x']) {
                 $newdate = new clDate();
             } elseif ($_POST["mod" . $nomBloc] == "now") {
                 $newdate = new clDate();
             } else {
                 $newdate = new clDate($_POST["mod" . $nomBloc]);
             }
             $modif = $newdate->getDatetime();
             $res = $newdate->getDate("d-m-Y H:i");
             // Si le paramètre $sortie est vrai, alors on fait transiter le patient présent vers la table des patients sortis.
             if ($sortie) {
                 $this->patient->setAttribut($nomBloc, $modif);
                 $this->patient = new clPatient($this->idpatient, "Presents");
                 clFoRmX_manip::rangerDossMedChrono($this->patient);
                 clFoRmX_manip::rangerDossMedAEV($this->patient);
                 $this->patient->sortirPatient();
                 if ($options->getOption("Module_CCAM")) {
                     $this->paramCCAM["dtFinInterv"] = $this->patient->getDateSortie();
                     $ccam = new clCCAMCotationActesDiags($this->paramCCAM);
                     $ccam->writeBALSorti();
                     if ($options->getOption('HprimXML_Actif')) {
                         $hprimXml = new clHprimXML();
                     }
                 }
                 $this->rien = "sortie";
             }
             // Dans le dernier cas, il s'agit d'un bloc de type "textarea" tout simple à mettre à jour.
         } else {
             $modif = $_POST["mod" . $nomBloc];
             $res = $modif;
         }
         // Mise à jour du patient.
         $session->setLogSup("Modification du bloc {$nomBloc}");
         $this->patient->setAttribut($nomBloc, $modif);
         $this->patient = new clPatient($this->idpatient, $this->type);
         // Dans ce cas, nous devons afficher le formulaire adéquate à la modification du bloc.
     } elseif ($session->getNavi(3) == "mod" . $nomBloc and !$_POST['Annuler'] and !$_POST['Annuler_x']) {
         // Cas des champs de type date.
         $session->setLogSup("Demande de modification du bloc {$nomBloc}");
         if ($date) {
             if ($sortie and $this->patient->getDateExamen() != '0000-00-00 00:00:00') {
                 $dateMin = new clDate($this->patient->getDateExamen());
             } else {
                 $dateMin = new clDate($this->patient->getDateAdmission());
             }
             $dateNow = new clDate();
             if ($tranches >= 5) {
                 $minutes = $dateNow->getMinutes();
                 $minutesless = $minutes % 5;
                 $dateNow->addMinutes(-$minutesless);
             }
             $data[now] = 'Maintenant';
             $min = $dateMin->getTimestamp();
             $t = $dateNow->getTimestamp();
             $data[$t] = $dateNow->getDate("d-m-Y H:i");
             // On limite la taille du select
             $d1 = new clDate();
             $d2 = new clDate($dateMin->getDatetime());
             $duree = new clDuree($d1->getDifference($d2));
             $duree->invertNegatif();
             //if ( $duree->getDays() > 50 ) {
             //    $d1 -> addDays ( -50 ) ;
             //    $min = $d1 -> getTimestamp ( ) ;
             //}
             // On parcourt les dates en fonctions des options.
             for ($i = 0; $dateNow->getTimestamp() >= $min; $i += $tranches) {
                 $t = $dateNow->getTimestamp();
                 $data[$t] = $dateNow->getDate("d-m-Y H:i");
                 $dateNow->addMinutes(-$tranches);
             }
             $f .= $res . "<br />" . $form->genForm(URL);
             /*
             // Préparation de la première date de la liste.
             $now -> addHours ( -$retourmax ) ;
             $min = $now -> getTimestamp ( ) ;
             $now -> addHours ( $retourmax ) ;
             if ( $tranches >= 5 ) {
             	  		$minutes = $now -> getMinutes ( ) ;
             	  		$minutesless = ( $minutes % 5 ) ;
             	  		$now -> addMinutes ( -$minutesless ) ;
             }
             $data[now] = 'Maintenant' ;
             $t = $now -> getTimestamp ( ) ;
             $data[$t] = $now -> getDate ( "d-m-Y H:i" ) ;
             // On parcourt les dates en fonctions des options.
             for ( $i = 0 ; $now -> getTimestamp ( ) >= $min ; $i += $tranches ) {
             	  		$t = $now -> getTimestamp ( ) ;
             	  		$data[$t] = $now -> getDate ( "d-m-Y H:i" ) ;
             	  		$now -> addMinutes ( -$tranches ) ;
             }
             $f .= $res."<br />".$form -> genForm ( URL ) ;
             */
             // S'il ne s'agit pas de la date de sortie et que le patient est sorti,
             // alors on affiche le select contenant la liste des dates possibles.
             if (!($this->type == "Sortis" and $sortie)) {
                 $f .= $form->genSelect("mod" . $nomBloc, 1, $data);
             }
         } else {
             // Cas d'un formulaire de type "textarea" tout simple.
             $f .= $form->genForm(URL);
             $f .= $form->genTextArea("mod" . $nomBloc, $res) . "<br /><center>";
         }
         // Cas d'une date.
         if ($date) {
             // Cas de la date de sortie.
             if ($sortie) {
                 // Cas d'un patient déjà sorti : On affiche seulement un bouton d'annulation de sortie.
                 if ($this->type == "Sortis") {
                     $f .= $form->genImage("AnnulerSortie", "Annuler la sortie", URLIMG . "annulerSortie.gif");
                     $f .= $form->genHidden("navi", $session->genNavi("Liste_Presents", $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                     $f .= $form->genEndForm();
                     // $f .= $form -> genForm ( URL ) ;
                     // $f .= $form -> genImage ( "RetourPatient", "Retour du patient", URLIMGRET ) ;
                     // $f .= $form -> genHidden ( "navi", $session->genNavi ( "Liste_Presents", $this->patient->getID ( ) ) ) ;
                     // Dans les autres cas, on affiche les boutons de validation / annulation de la sortie.
                 } else {
                     $contraintes = new clContraintes($this->patient->getID(), $this->paramCCAM);
                     //formulaire(s) à remplir bloquant la sortie ( pré-contraintes ) ?
                     if (clTuFormxTrigger::getWatcher($this->patient)->isTriggersOnOut()) {
                         $enquetes = clTuFormxTriggerWatcher::getInstance($this->patient);
                         $enquetes->launchTriggersOnOut();
                         //eko("trigers lances, sortie de la fenetre bloquante");
                         return '';
                     } else {
                         if (clTuFormxTrigger::getWatcher($this->patient)->isTriggersWaitingForLauch()) {
                             //eko("watchers en cours, sortie de la fenetre bloquante");
                             return '';
                         } else {
                             if ($contraintes->runCheck()) {
                                 $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
                                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                                 $f .= $form->genEndForm();
                                 $f .= $form->genForm(URL);
                                 $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
                                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                             } else {
                                 $session->setLogSup('Contraintes non respectées pour la sortie');
                                 $this->af .= $contraintes->getContraintes();
                             }
                         }
                     }
                 }
                 // Cas d'un champs date normal : affichage des boutons valider et annuler.
             } else {
                 $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                 $f .= $form->genEndForm();
                 $f .= $form->genForm(URL);
                 $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
                 $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
             }
             // Cas d'un champs normal : affichage des boutons valider et annuler.
         } else {
             $f .= $form->genImage("Valider", "Valider", URLIMGVAL, 'style="border: 0px; background-color: #FFFF99;"');
             $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
             $f .= $form->genEndForm();
             $f .= $form->genForm(URL);
             $f .= $form->genImage("Annuler", "Annuler", URLIMGANN, 'style="border: 0px; background-color: #FFFF99;"');
             $f .= $form->genHidden("navi", $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
         }
         // On ferme la balise du formulaire.
         $f .= "</center>" . $form->genEndForm();
         // On modifie le bloc ModeliXe passé en paramètres.
         $mod->MxText($nomBloc, $f);
         // On signale que le bloc a été modifié.
         $af = 1;
     }
     // S'il n'y a pas eu d'affichage jusqu'à maintenant, il ne s'agit que d'afficher la valeur contenue dans ce bloc.
     if (!$af) {
         // Si le droit de modification est présent, alors nous affichons le lien pour modifier le bloc.
         if ($session->getDroit($this->type . "_EtatCivil", $droit)) {
             if ($date) {
                 $image = URLIMGHOR;
             } else {
                 $image = URLIMGMOD;
             }
             if ($nomBloc == "DateExamen" and $_POST['Medecin'] and $this->patient->getDateExamen() == "0000-00-00 00:00:00" and !$this->patient->getMedecin()) {
                 $date = new clDate();
                 $dateA = new clDate($this->patient->getDateAdmission());
                 if ($date->getTimestamp() > $dateA->getTimestamp()) {
                     $this->patient->setAttribut("DateExamen", $date->getDatetime());
                     $res = $date->getDate("d-m-Y H:i");
                 } else {
                     $dateA->addSeconds(1);
                     $this->patient->setAttribut("DateExamen", $dateA->getDatetime());
                     $res = $dateA->getDate("d-m-Y H:i");
                 }
             }
             if ($nomBloc == "DateExamen" and isset($_POST['Medecin']) and !$_POST['Medecin']) {
                 $this->patient->setAttribut("DateExamen", "0000-00-00 00:00:00");
                 $res = "--";
             }
             if (!$this->export) {
                 if ($nomBloc == "DateSortie") {
                     $retour = '';
                     if ($options->getOption('EnqueteRadio')) {
                         $retour = clListeRadios::getRetour($this->patient->getID(), IDAPPLICATION);
                     }
                     if ($retour) {
                         $mod->MxText("retourRadio", $retour);
                     } else {
                         $questionSortie = $this->getQuestionSortie();
                         if ($questionSortie) {
                             $mod->MxText("retourRadio", $questionSortie);
                         } else {
                             $mod->MxImage("imgModifier" . $nomBloc, $image, "Modifier {$nomBloc}");
                             $mod->MxUrl("lien" . $nomBloc, URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                         }
                     }
                 } else {
                     $mod->MxImage("imgModifier" . $nomBloc, $image, "Modifier {$nomBloc}");
                     $mod->MxUrl("lien" . $nomBloc, URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "mod" . $nomBloc));
                 }
             }
         }
         // Affichage du contenu du bloc s'il existe sinon on affiche la valeur par défaut.
         if ($res) {
             $mod->MxText($nomBloc, nl2br($res));
         } else {
             $mod->MxText($nomBloc, VIDEDEFAUT);
         }
     }
 }
Exemple #3
0
 function setSessionSQL()
 {
     global $options;
     // Date actuelle.
     $date = new clDate();
     // On met à jour la session actuelle.
     $data['nombre'] = "nombre+1";
     $data['last'] = $date->getDatetime();
     $data['localisation'] = $this->navi;
     $data['idapplication'] = IDAPPLICATION;
     // Appel de la classe Requete.
     $requete = new clRequete(BASEXHAM, TABLESACTU, $data);
     // Exécution de la requete.
     $res = $requete->updRecord("uid='" . $this->informations['iduser'] . "' AND type='" . $this->informations['type'] . "' AND idsession='" . $_SESSION['sidtuv2' . $this->index] . "'");
     // Affichage pour débugage.
     if (DEBUGLOGSESSION) {
         print affTab($res);
     }
     // Si la session n'a pas pu mettre à jour, on regarde les différents cas possibles.
     if (!$res['affected_rows']) {
         // La session existe-t-elle ?
         $param['cw'] = "WHERE idsession='" . $_SESSION['sidtuv2' . $this->index] . "'";
         $req = new clResultQuery();
         $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
         // Affichage pour débugage.
         if (DEBUGLOGSESSION) {
             print affTab($res['INDIC_SVC']);
         }
         // Si la session existe.
         if ($res['INDIC_SVC'][2]) {
             // On historise son état actuel.
             unset($data);
             $data['idapplication'] = IDAPPLICATION;
             $data['nombre'] = $res['nombre'][0];
             $data['uid'] = $res['uid'][0];
             $data['type'] = $res['type'][0];
             $data['ip'] = $res['ip'][0];
             $data['dateshisto'] = $res['date'][0];
             $data['dateslast'] = $res['last'][0];
             $data['navigateur'] = $res['navigateur'][0];
             $data['fonctions'] = $res['fonctions'][0];
             $data['equipes'] = $res['equipes'][0];
             $data['organisations'] = $res['organisations'][0];
             // Appel de la classe Requete.
             $requete = new clRequete(BASEXHAM, TABLESHIST, $data);
             // Exécution de la requete.
             $res = $requete->addRecord();
             // Affichage pour débugage.
             if (DEBUGLOGSESSION) {
                 affTab($res);
             }
             // Puis on met à jour cette session.
             unset($data);
             $data['idapplication'] = IDAPPLICATION;
             $data['nombre'] = "1";
             $data['localisation'] = $this->navi;
             $data['uid'] = $this->informations['iduser'];
             $data['type'] = $this->informations['type'];
             $data['ip'] = $_SERVER['REMOTE_ADDR'];
             $data['date'] = $date->getDatetime();
             $data['last'] = $date->getDatetime();
             $data['navigateur'] = $this->informations['navigateur'];
             $data['fonctions'] = implode('|', isset($this->informations['fonctions']) ? $this->informations['fonctions'] : array());
             $data['equipes'] = implode('|', isset($this->informations['service']) ? $this->informations['service'] : array());
             $data['organisations'] = $this->informations['org'];
             // Appel de la classe Requete.
             $requete = new clRequete(BASEXHAM, TABLESACTU, $data);
             // Exécution de la requete.
             $res = $requete->updRecord("idsession='" . $_SESSION['sidtuv2' . $this->index] . "'");
             // Affichage pour débugage.
             if (DEBUGLOGSESSION) {
                 print affTab($res);
             }
         } else {
             // Si la session n'existe pas, on la crée avec les bonnes informations.
             unset($data);
             if ($this->navi != "Importation" and $this->navi != "SW1wb3J0YXRpb24=" and $this->navi != "Q29uZmlndXJhdGlvbnxjcm9u") {
                 $param[cw] = "WHERE uid='" . $this->informations['iduser'] . "'";
                 $req = new clResultQuery();
                 $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
                 if (DEBUGLOGSESSION) {
                     print affTab($res['INDIC_SVC']);
                 }
                 if ($res['INDIC_SVC'][2] and $options->getOption("UniqLogin") and !$_POST['AuthentificationDemandee']) {
                     $this->informations = '';
                     $this->informations['type'] = "Echec";
                     $this->informations['nom'] = "Invité";
                     $this->informations['prenom'] = "Invité";
                     $this->informations['pseudo'] = "Invité";
                     $this->informations['mail'] = "*****@*****.**";
                     $this->informations['iduser'] = "******";
                     $this->informations['idgroupe'] = "1";
                     $this->informations['ip'] = $_SERVER['REMOTE_ADDR'];
                     $this->informations['navigateur'] = $_SERVER["HTTP_USER_AGENT"];
                     $this->informations['fonctions'] = array();
                     $this->informations['service'] = array();
                     $this->informations['org'] = '';
                     // Sauvegarde des informations.
                     $_SESSION['informations'] = $this->informations;
                 } else {
                     $data['idapplication'] = IDAPPLICATION;
                     $data['nombre'] = "1";
                     $data['localisation'] = $this->navi;
                     $data['uid'] = $this->informations['iduser'];
                     $data['type'] = $this->informations['type'];
                     $data['ip'] = $_SERVER['REMOTE_ADDR'];
                     $data['date'] = $date->getDatetime();
                     $data['last'] = $date->getDatetime();
                     $data['idsession'] = $_SESSION['sidtuv2' . $this->index];
                     $data['navigateur'] = $this->informations['navigateur'];
                     $data['fonctions'] = implode('|', isset($this->informations['fonctions']) ? $this->informations['fonctions'] : array());
                     $data['equipes'] = implode('|', isset($this->informations['service']) ? $this->informations['service'] : array());
                     $data['organisations'] = $this->informations['org'];
                     // Appel de la classe Requete.
                     $requete = new clRequete(BASEXHAM, TABLESACTU, $data);
                     // Exécution de la requete.
                     $res = $requete->addRecord();
                     // Affichage pour débugage.
                     if (DEBUGLOGSESSION) {
                         print affTab($res);
                     }
                 }
             }
         }
     }
     if ($options->getOption("UniqLogin")) {
         $requete = new clRequete(BASEXHAM, TABLESACTU);
         // Exécution de la requete.
         $res = $requete->delRecord("uid='" . $this->informations['iduser'] . "' AND last<'" . $date->getDatetime() . "' AND idsession!='" . $_SESSION['sidtuv2' . $this->index] . "'");
         if (DEBUGLOGSESSION) {
             print affTab($res);
         }
     }
     // Maintenant, on historise les sessions qui ne sont plus valides et on les supprime
     // de la table des sessions actuelles.
     $dmax = $options->getOption("DureeSession");
     $dact = $date->getDatetime();
     $date->addMinutes("-{$dmax}");
     $param['cw'] = "WHERE last<'" . $date->getDatetime() . "' AND idapplication=" . IDAPPLICATION;
     $req = new clResultQuery();
     $res = $req->Execute("Fichier", "getSessionsActuelles", $param, "ResultQuery");
     // Affichage pour débugage.
     if (DEBUGLOGSESSION) {
         print affTab($res[INDIC_SVC]);
     }
     for ($i = 0; isset($res['idsactu'][$i]); $i++) {
         unset($data);
         $data['idapplication'] = IDAPPLICATION;
         $data['nombre'] = $res['nombre'][$i];
         $data['uid'] = $res['uid'][$i];
         $data['type'] = $res['type'][$i];
         $data['ip'] = $res['ip'][$i];
         $data['dateshisto'] = $res['date'][$i];
         $data['dateslast'] = $res['last'][$i];
         $data['navigateur'] = $res['navigateur'][$i];
         $data['fonctions'] = $res['fonctions'][$i];
         $data['equipes'] = $res['equipes'][$i];
         $data['organisations'] = $res['organisations'][$i];
         // Appel de la classe Requete.
         $requete = new clRequete(BASEXHAM, TABLESHIST, $data);
         // Exécution de la requete.
         $ras = $requete->addRecord();
         // Affichage pour débugage.
         if (DEBUGLOGSESSION) {
             affTab($ras);
         }
         unset($data);
         $data['idapplication'] = IDAPPLICATION;
         $data['nombre'] = "1";
         // Appel de la classe Requete.
         $requete = new clRequete(BASEXHAM, TABLESACTU, $data);
         // Exécution de la requete.
         $rus = $requete->delRecord("idsession='" . $res['idsession'][$i] . "'");
         // Affichage pour débugage.
         if (DEBUGLOGSESSION) {
             print affTab($rus);
         }
     }
 }
Exemple #4
0
 function genMod()
 {
     global $session;
     global $options;
     if ($session->getDroit("Liste_Radio", "m")) {
         if ($session->getNavi(1) == "valDateRadios") {
             switch ($_REQUEST['typeDate']) {
                 case 'dateB':
                     $data['dt_pec'] = $_REQUEST['valDate'];
                     $data['dt_encours'] = $_REQUEST['valDate'];
                     $data['etat'] = 'b';
                     $session->setLogSup("Radio : prise en charge");
                     break;
                     /*
                     case 'dateC':
                     	$data['dt_encours'] = $_REQUEST['valDate'] ;
                     	$session->setLogSup ( "Radio : en cours" ) ;
                     	$data['etat'] = 'c' ;
                     break;
                     */
                 /*
                 case 'dateC':
                 	$data['dt_encours'] = $_REQUEST['valDate'] ;
                 	$session->setLogSup ( "Radio : en cours" ) ;
                 	$data['etat'] = 'c' ;
                 break;
                 */
                 case 'dateD':
                     $data['dt_fin'] = $_REQUEST['valDate'];
                     $session->setLogSup("Radio : terminée");
                     $data['etat'] = 'd';
                     break;
             }
             $requete = new clRequete(BDD, "radios", $data);
             $requete->updRecord("idradio='" . $session->getNavi(2) . "'");
         } elseif ($session->getNavi(1) == "annDateRadios") {
             switch ($_REQUEST['typeDate']) {
                 case 'dateB':
                     $data['dt_pec'] = '0000-00-00 00:00:00';
                     $data['dt_encours'] = '0000-00-00 00:00:00';
                     $session->setLogSup("Radio : annulation de la prise en charge");
                     $data['etat'] = 'a';
                     break;
                 case 'dateC':
                     /*
                     $data['dt_encours'] = '0000-00-00 00:00:00' ;
                     $session->setLogSup ( "Radio : annulation de 'en cours'" ) ;
                     $data['etat'] = 'b' ;
                     */
                     break;
                 case 'dateD':
                     $data['dt_fin'] = '0000-00-00 00:00:00';
                     $session->setLogSup("Radio : annulation de 'terminée'");
                     $data['etat'] = 'b';
                     break;
             }
             $requete = new clRequete(BDD, "radios", $data);
             $requete->updRecord("idradio='" . $session->getNavi(2) . "'");
         }
         $_SESSION['typeModJS'] = '';
         $req = new clResultQuery();
         $param['cw'] = 'where r.idpatient=p.idpatient and idradio=' . $session->getNavi(2);
         $param['base'] = $this->getBaseFromIdRadio($session->getNavi(2));
         // Exécution de la requête.
         $res = $req->Execute("Fichier", "getRadios", $param, "ResultQuery");
         // print affTab ( $res['INDIC_SVC'] ) ;
         // Chargement du template de modeliXe.
         $mod = new ModeliXe("RadioMod.html");
         $mod->SetModeliXe();
         $mod->MxText("patient", strtoupper($res['nom'][0]) . ' ' . ucfirst(strtolower($res['prenom'][0])));
         $et = $res['etat'][0];
         // ************ //
         // * CREATION * //
         // ************ //
         $mod->MxText("etape.nomEtape", "Création : ");
         $date = new clDate($res['dt_creation'][0]);
         if ($res['dt_creation'][0] != '0000-00-00 00:00:00') {
             $dateA = $date->getDate('d/m/Y H:i');
         } else {
             $dateA = '<span class="red">Non renseignée</span>';
         }
         $mod->MxText("etape.dateEtape", $dateA);
         $mod->MxBloc("etape.formEtape", "delete");
         $mod->MxBloc("etape.annulerEtape", "delete");
         $mod->MxBloc("etape", "loop");
         // ******* //
         // * PEC * //
         // ******* //
         $mod->MxText("etape.nomEtape", "Prise en charge : ");
         $date = new clDate($res['dt_pec'][0]);
         if ($res['dt_pec'][0] != '0000-00-00 00:00:00') {
             $dateB = $date->getDate('d/m/Y H:i');
         } else {
             $dateB = '<span class="red">Non renseignée</span>';
         }
         $mod->MxText("etape.dateEtape", $dateB);
         if ($et == 'a') {
             $mod->MxText("etape.dateEtape", '');
             $datePec = new clDate();
             $dateMin = new clDate($res['dt_creation'][0]);
             $initB = $datePec->getDatetime();
             for ($i = 0; $datePec->getTimestamp() >= $dateMin->getTimestamp() and $i < 3600; $datePec->addMinutes(-1)) {
                 $listeB[$datePec->getDatetime()] = $datePec->getDate('d/m/Y H:i');
                 $i++;
             }
             if ($i == 0) {
                 $datePec = new clDate($res['dt_creation'][0]);
                 $dateMin = new clDate();
                 $initB = $datePec->getDatetime();
                 for ($i = 0; $datePec->getTimestamp() >= $dateMin->getTimestamp() and $i < 3600; $datePec->addMinutes(-1)) {
                     $listeB[$datePec->getDatetime()] = $datePec->getDate('d/m/Y H:i');
                     $i++;
                 }
             }
             $mod->MxSelect("etape.formEtape.valeurEtape", "date", $initB, $listeB);
             $mod->MxHidden("etape.formEtape.hidden", "typeDate=dateB");
             $_SESSION['typeModJS'] = 'dt_pec';
             $mod->MxText("etape.formEtape.ajaxVal", XhamTools::genAjax('onClick', 'valDateRadios', 'navi=' . $session->genNavi('Ajax', 'valDateRadios', $session->getNavi(2))));
         } else {
             $mod->MxBloc("etape.formEtape", "delete");
         }
         if ($et == 'b') {
             $mod->MxHidden("etape.annulerEtape.hidden", "typeDate=dateB");
             $mod->MxText("etape.annulerEtape.ajaxAnn", XhamTools::genAjax('onClick', 'annDateRadios', 'navi=' . $session->genNavi('Ajax', 'annDateRadios', $session->getNavi(2))));
         } else {
             $mod->MxBloc("etape.annulerEtape", "delete");
         }
         $mod->MxBloc("etape", "loop");
         /*
         // ************ //
         // * EN COURS * //
         // ************ //
         $mod -> MxText ( "etape.nomEtape", "En cours : " ) ;
         $date = new clDate ( $res['dt_encours'][0] ) ;
         if ( $res['dt_encours'][0] != '0000-00-00 00:00:00' ) {
         	$dateC = $date -> getDate ( 'd/m/Y H:i' ) ;
         } else $dateC = '<span class="red">Non renseignée</span>' ;
         $mod -> MxText ( "etape.dateEtape", $dateC ) ;
         if ( $et == 'b' ) {
         	$mod -> MxText ( "etape.dateEtape", '' ) ;
         	$datePec = new clDate ( ) ;
         	$dateMin = new clDate ( $res['dt_pec'][0] ) ;
         	$initC = $datePec -> getDatetime ( ) ;
         	for ( $i = 0 ; $datePec -> getTimestamp ( ) >= $dateMin -> getTimestamp ( ) AND $i < 3600 ; $datePec->addMinutes ( -1 ) ) {
         		$listeC[$datePec->getDatetime ( )] = $datePec -> getDate ( 'd/m/Y H:i' ) ;
         		$i++ ;
         	}
         	$mod -> MxSelect ( "etape.formEtape.valeurEtape", "date", $initC, $listeC ) ;
         	$mod -> MxHidden ( "etape.formEtape.hidden", "typeDate=dateC" ) ;
         	$_SESSION['typeModJS'] = 'dt_encours' ;
         	$mod -> MxText ( "etape.formEtape.ajaxVal", XhamTools::genAjax ( 'onClick', 'valDateRadios', 'navi='.$session->genNavi ( 'Ajax', 'valDateRadios', $session->getNavi(2) ) ) ) ;
         } else $mod -> MxBloc ( "etape.formEtape", "delete" ) ;
         if ( $et == 'c' ) {
         	$mod -> MxHidden ( "etape.annulerEtape.hidden", "typeDate=dateC" ) ;
         	$mod -> MxText ( "etape.annulerEtape.ajaxAnn", XhamTools::genAjax ( 'onClick', 'annDateRadios', 'navi='.$session->genNavi ( 'Ajax', 'annDateRadios', $session->getNavi(2) ) ) ) ;
         	     	} else $mod -> MxBloc ( "etape.annulerEtape", "delete" ) ;
         $mod -> MxBloc ( "etape", "loop" ) ;
         */
         // ******* //
         // * FIN * //
         // ******* //
         $mod->MxText("etape.nomEtape", "Terminé : ");
         $date = new clDate($res['dt_fin'][0]);
         if ($res['dt_fin'][0] != '0000-00-00 00:00:00') {
             $dateD = $date->getDate('d/m/Y H:i');
             $mod->MxHidden("etape.annulerEtape.hidden", "typeDate=dateD");
             $mod->MxText("etape.annulerEtape.ajaxAnn", XhamTools::genAjax('onClick', 'annDateRadios', 'navi=' . $session->genNavi('Ajax', 'annDateRadios', $session->getNavi(2))));
         } else {
             $dateD = '<span class="red">Non renseignée</span>';
             $mod->MxBloc("etape.annulerEtape", "delete");
         }
         if ($et != 'b') {
             $mod->MxBloc("etape.formEtape", "delete");
         } else {
             $param['cw'] = " idEvent=" . $res['idpatient'][0] . " and lieuInterv='" . $options->getOption('RadioSalle') . "'";
             $ris = $req->Execute("Fichier", "CCAM_getActesDiagsCotation", $param, "ResultQuery");
             //print affTab ( $ris['INDIC_SVC'] ) ;
             if ($options->getOption("RadioCCAM") and !$ris['INDIC_SVC'][2] and !$_REQUEST['addActe']) {
                 $dateD = '<div id="CotationCCAMRadio" class="red">Cotation CCAM à saisir</span>';
                 $mod->MxBloc("etape.formEtape", "delete");
             } else {
                 $dateD = '';
                 $mod->MxText("etape.dateEtape", '');
                 $datePec = new clDate();
                 $dateMin = new clDate($res['dt_encours'][0]);
                 $initD = $datePec->getDatetime();
                 for ($i = 0; $datePec->getTimestamp() >= $dateMin->getTimestamp() and $i < 3600; $datePec->addMinutes(-1)) {
                     $listeD[$datePec->getDatetime()] = $datePec->getDate('d/m/Y H:i');
                     $i++;
                 }
                 if ($i == 0) {
                     $datePec = new clDate($res['dt_creation'][0]);
                     $dateMin = new clDate();
                     $initB = $datePec->getDatetime();
                     for ($i = 0; $datePec->getTimestamp() >= $dateMin->getTimestamp() and $i < 3600; $datePec->addMinutes(-1)) {
                         $listeD[$datePec->getDatetime()] = $datePec->getDate('d/m/Y H:i');
                         $i++;
                     }
                 }
                 //1
                 $mod->MxSelect("etape.formEtape.valeurEtape", "date", $initD, $listeD);
                 $mod->MxHidden("etape.formEtape.hidden", "typeDate=dateD");
                 $_SESSION['typeModJS'] = 'dt_fin';
                 $mod->MxText("etape.formEtape.ajaxVal", 'onclick="' . XhamTools::genAjax('', 'valDateRadios', 'navi=' . $session->genNavi('Ajax', 'valDateRadios', $session->getNavi(2))) . ';cache(\'mod\');cache(\'arbo\');"');
             }
         }
         $mod->MxText("etape.dateEtape", $dateD);
         $mod->MxBloc("etape", "loop");
         $mod->MxText('idradio', $res['idradio'][0]);
         $mod->MxText('commentaire_radio', $res['commentaire_radio'][0]);
         if ($options->getOption("RadioCCAM")) {
             $listeGen = new clListesGenerales("recup");
             $listeRadiologues = $listeGen->getListeItemsV2("Radiologues", "1", '', '1');
             $aj = XhamTools::genAjax('onChange', 'setRadiologue', 'navi=' . $session->genNavi('Ajax', 'setRadiologue', $session->getNavi(2)));
             $mod->MxSelect("cotation.listeRadiologues", "radiologue", $res['adeli'][0], $listeRadiologues, '', '', 'id="radiologue" style="width: 240px;" ' . $aj);
             if ($res['adeli'][0]) {
                 $mod->MxText("cotation.moduleCCAM", $this->moduleCCAM('get'));
             }
         } else {
             $mod->MxBloc("cotation", "delete");
         }
         return $mod->MxWrite("1");
     }
 }
Exemple #5
-1
 function getContraintes()
 {
     global $session;
     global $options;
     // Chargement du template.
     $mod = new ModeliXe("ErreursSortie.mxt");
     $mod->SetModeliXe();
     // Génération du lien pour fermer.
     $mod->MxImage("imgCloseErreurs", URLIMGFER, "Fermer");
     $mod->MxUrl("lienCloseErreurs", URLNAVI . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2)));
     // Variable de navigation.
     $mod->MxHidden("hidden", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2)));
     $tab = $this->messages;
     // Parcours et affichage des messages d'erreur.
     while (list($key, $val) = each($tab)) {
         $mod->MxText("erreur.nom", $key);
         $mod->MxText("erreur.description", $val);
         $mod->MxBloc("erreur", "loop");
     }
     if ($session->getDroit("Presents_EtatCivil", "a")) {
         $mod->MxHidden("forcer.hiddenForcer", "navi=" . $session->genNavi($session->getNavi(0), $session->getNavi(1), $session->getNavi(2), "modDateSortie"));
         // Pour générer des formulaires plus loin.
         $form = new clForm();
         // Date d'exécution.
         $now = new clDate();
         // Récupération des options.
         $retourmax = $options->getOption("Dates Patient");
         $tranches = $options->getOption("DatesDécoup Patient");
         // Préparation de la première date de la liste.
         $now->addHours(-$retourmax);
         $min = $now->getTimestamp();
         $now->addHours($retourmax);
         if ($tranches >= 5) {
             $minutes = $now->getMinutes();
             $minutesless = $minutes % 5;
             $now->addMinutes(-$minutesless);
         }
         $data[now] = 'Maintenant';
         $t = $now->getTimestamp();
         $data[$t] = $now->getDate("d-m-Y H:i");
         // On parcourt les dates en fonctions des options.
         for ($i = 0; $now->getTimestamp() >= $min; $i += $tranches) {
             $t = $now->getTimestamp();
             $data[$t] = $now->getDate("d-m-Y H:i");
             $now->addMinutes(-$tranches);
         }
         // On génère le select contenant la liste des dates possibles.
         $mod->MxText("forcer.date", $form->genSelect("modDateSortie", 1, $data));
     } else {
         $mod->MxBloc("forcer", "modify", " ");
     }
     // Récupération du code HTML généré.
     $af .= $mod->MxWrite("1");
     return $af;
 }