<input type='text' id='crPrenom' name='prenom' placeholder='Prénom' value='' required><br> <input type='text' id='crNom' name='nom' placeholder='NOM' value='' required><br> <input type='radio' name='civilite' value='M' id='civ1' class='crCiv' checked><label for='civ1'>Homme</label><br> <input type='radio' name='civilite' value='F' id='civ2' class='crCiv'><label for='civ2'>Femme</label><br> <input type='text' id='crAdr' name='adresse' placeholder='Adresse' value='' required><br> <input type='text' id='crAdr2' name='adresse2' placeholder='Complément adresse' value=''><br> <input type='text' id='crCP' name='code_postal' placeholder='09000' value='' required><span class='info'>Code postal</span><br> <input type='text' id='crVille' name='ville' placeholder='Ville' value='' required><br> <input type='text' id='crDN' name='date_naissance' placeholder='jj/mm/aaaa' value='' required><span class='info'>Date de naissance</span><br> <input type='text' id='crLN' name='lieu_naissance' placeholder='Ville de naissance' value='' required><br> <input type='text' id='crSecu' name='num_secu' placeholder='1 99 19 99 999 999 99' value='' required><span class='info'>Numéro de sécurité sociale</span><br> <span>Choix du médecin traitant (optionnel)</span><br> <select id='crMedecin' name='id_medecin'><?php echo "<option value='.'>Médecins traitants</option>"; foreach (MedecinRepo::getAll() as $MEDECIN) { echo "<option value='" . $MEDECIN['Id'] . "'>" . $MEDECIN['Nom'] . " " . $MEDECIN['Prenom'] . "</option>"; } ?> </select> <br> <input type='hidden' name='command' value='Patient:add'> <input type='submit' id='sbCreer' value='Créer le patient'> </form> </article> </section> </div>
public function update($params) { if (StaticRepo::checkParam($params['Id'], 'Numeric') && StaticRepo::checkParam($params['Prenom'], 'String45') && StaticRepo::checkParam($params['Nom'], 'String45')) { // si la modification réussit if (MedecinRepo::update($params['Id'], $params['Nom'], $params['Prenom'])) { $_status = 'success'; $_title = 'Médecin modifié!'; $_message = 'Le médecin <strong>' . $params['Prenom'] . ' ' . strtoupper($params['Nom']) . '</strong> a bien été modifié! '; if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { Response::quickResponse(200, json_encode(['status' => $_status, 'title' => $_title, 'message' => $_message])); } else { $response = new Response(); $response->setHeader('Location', 'http://' . $_SERVER['HTTP_HOST'] . '/Medecins.php?status=' . $_status . '&title=' . $_title . '&message=' . $_message); $response->send(); } } else { $_status = 'error'; $_title = 'Erreur de modification!'; $_message = 'La modification a échoué. Réessayez!'; if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { Response::quickResponse(200, json_encode(['status' => $_status, 'title' => $_title, 'message' => $_message])); } else { $response = new Response(); $response->setHeader('Location', 'http://' . $_SERVER['HTTP_HOST'] . '/Medecins.php?status=' . $_status . '&title=' . $_title . '&message=' . $_message); $response->send(); } } // erreur de params } else { $_status = 'error'; $_title = 'Erreur de paramètres!'; $_message = 'Un des champs est incorrect. Réessayez!'; if (!empty($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest') { Response::quickResponse(200, json_encode(['status' => $_status, 'title' => $_title, 'message' => $_message])); } else { $response = new Response(); $response->setHeader('Location', 'http://' . $_SERVER['HTTP_HOST'] . '/Medecins.php?status=' . $_status . '&title=' . $_title . '&message=' . $_message); $response->send(); } } }
public function getSVG($params) { // conversion du mois if (preg_match('/^(\\d{2})\\/(\\d{4})$/', $params['mois'], $m)) { $mois = $m[2] . '-' . $m[1]; } else { $mois = '2015-12'; } // constantes et début <SVG> $days = ['Mon' => 0, 'Tue' => 1, 'Wed' => 2, 'Thu' => 3, 'Fri' => 4, 'Sat' => 5, 'Sun' => 6]; $svgCalendar = "<?xml version='1.0' encoding='UTF-8' standalone='no'?>\n <!-- Created with PHP Maggle !!LAUUUULEU!! -->\n\n <svg\n xmlns:svg='http://www.w3.org/2000/svg'\n xmlns='http://www.w3.org/2000/svg'\n xmlns:xlink='http://www.w3.org/1999/xlink'\n version='1.1'\n width='80%'\n height='auto'\n viewbox='0 0 7700 7000'\n id='svg2'>\n <metadata\n id='metadata7'>\n <rdf:RDF>\n <cc:Work\n rdf:about='>\n <dc:format>image/svg+xml</dc:format>\n <dc:type\n rdf:resource='http://purl.org/dc/dcmitype/StillImage' />\n <dc:title>Calendar</dc:title>\n </cc:Work>\n </rdf:RDF>\n </metadata>\n "; $current = strtotime($mois); //on range les rendez-vous dans un tableau avec leur jour comme clé $RDVTemp = RDVRepo::getByMonth($current); $RDVs = []; foreach ($RDVTemp as $rdv) { if (!isset($RDVs[date('j', strtotime($rdv['DateRDV']))])) { $RDVs[date('j', strtotime($rdv['DateRDV']))] = []; } array_push($RDVs[date('j', strtotime($rdv['DateRDV']))], $rdv); } foreach (range(1, date('t', strtotime($params['mois']))) as $day) { //génération du SVG de la journée //selon si on a une date sur un ou deux chiffres, on adapte $date = strftime("%B %Y", $current); if ($day >= 10) { $xDate = 1500; } else { $xDate = 1000; } //fond général + affichage de la date $svgCalendar .= '<g class="Day_' . $day . '"> <!-- Case du jour --> <rect width="7700" height="7000" x="0" y="0" class="backgroundDay_' . $day . '" style="fill:#fff;fill-opacity:1;stroke:none" /> <!-- Numéro du jour --> <text x="300" y="1000" class="TextDay_' . $day . '" xml:space="preserve" style="font-size:750px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"> <tspan x="300" y="1000" class="TextSpanDay_' . $day . '">' . $day . ' </tspan> </text> <!-- Texte du jour --> <text x="' . $xDate . '" y="1000" class="TextMonthDay_' . $day . '" xml:space="preserve" style="font-size:400px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan x="' . $xDate . '" y="1000" class="TextSpanMonthDay_' . $day . '">' . $date . ' </tspan> </text> '; //on défini le tableau si jamais if (!isset($RDVs[$day])) { $RDVs[$day] = []; } //on parcours les consultations du jour pour les afficher foreach ($RDVs[$day] as $key => $rdv) { $patient = PatientRepo::getById(intval($rdv['Patient_Id'])); $medecin = MedecinRepo::getById(intval($rdv['Medecin_id'])); //couleur suivant le nombre de consultation $color = $key % 2 == 0 ? 'f9f9f9' : 'ececec'; //du svg blablabla $yConsult = 1500 + 700 * $key; $svgCalendar .= '<g class="ConsultationGroupDay' . $day . 'Consult' . $key . '" data-patient="' . $rdv['Patient_Id'] . '" data-medecin="' . $rdv['Medecin_id'] . '"> <rect width="7000" height="700" x="300" y="' . $yConsult . '" class="ConsultationBackgroundDay' . $day . 'Consult' . $key . '" style="fill:#' . $color . ';fill-opacity:1;stroke:none" /> <text x="400" y="' . $yConsult . '" class="ConsultationTextHourDay' . $day . 'Consult' . $key . '" xml:space="preserve" style="font-size:400px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan x="400" y="' . ($yConsult + 500) . '" class="ConsultationTextSpanHourDay' . $day . 'Consult' . $key . '">' . date('G:i', strtotime($rdv['DateRDV'])) . '</tspan></text> <g id="g5136"> <text x="6100" y="' . ($yConsult + 500) . '" id="text5084" xml:space="preserve" style="font-size:400px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#999999;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan x="6100" y="' . ($yConsult + 500) . '" id="tspan5086">' . $rdv['Minute'] . 'mn</tspan></text> <g id="g5224"> <text x="2500" y="' . ($yConsult + 270) . '" id="text5072" xml:space="preserve" style="font-size:250px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan x="2500" y="' . ($yConsult + 270) . '" id="tspan5074">' . $medecin['Prenom'] . '</tspan></text> <text x="3800" y="' . ($yConsult + 270) . '" id="text5186" xml:space="preserve" style="font-size:250px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan x="3800" y="' . ($yConsult + 270) . '" id="tspan5188" style="font-size:250;fill:#4d4d4d;fill-opacity:1">' . $medecin['Nom'] . '</tspan></text> </g> <g id="g5230"> <text x="2500" y="' . ($yConsult + 600) . '" id="text5080" xml:space="preserve" style="font-size:250px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan x="2500" y="' . ($yConsult + 600) . '" id="tspan5082">' . $patient['Prenom'] . '</tspan></text> <text x="3800" y="' . ($yConsult + 600) . '" id="text5194" xml:space="preserve" style="font-size:250px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#4d4d4d;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan x="3800" y="' . ($yConsult + 600) . '" id="tspan5196">' . $patient['Nom'] . '</tspan></text> </g> </g>'; } $svgCalendar .= '</g></g>'; } //on met u fond (sinon on voit les consultation en arrière plan) $svgCalendar .= '</g></g><g class="Calendar">'; $svgCalendar .= '<rect width="7700" height="6000" x="0" y="0" class="BackgroundCalendar" style="fill:#fff";fill-opacity:1;stroke:none" />'; //position x;y de base des jours du calendrier $x = 1100 * $days[date('D', $current)]; $y = 0; //initialisation de variables $cal = []; $week = []; //obligé de séparer la génération des consultation et du calendrier pour organiser le svg foreach (range(1, date('t', strtotime($params['mois']))) as $day) { //génération du svg du calendrier $day = date('D', $current); $day_nbr = date('d', $current); $week[$days[$day]] = date('d', $current); $current = strtotime("+1 day", $current); if ($y / 1100 % 2 == 0) { if ($days[$day] % 2 == 0) { $color = 'f0f0f0'; } else { $color = 'fff'; } $svgCalendar .= '<rect width="1000" height="1000" ry="90" x="' . $x . '" y="' . $y . '" class="day_' . $days[$day] . '" style="fill:#' . $color . ';fill-opacity:1;stroke:none" />'; } else { if ($days[$day] % 2 != 0) { $color = 'f0f0f0'; } else { $color = 'fff'; } $svgCalendar .= '<rect width="1000" height="1000" ry="90" x="' . $x . '" y="' . $y . '" class="day_' . $days[$day] . '" style="fill:#' . $color . ';fill-opacity:1;stroke:none" />'; } $svgCalendar .= '<text x="' . ($x - 700) . '" y="' . ($y + 1100 - 700) . '" class="Textday_' . $days[$day] . '" xml:space="preserve" style="font-size:400px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Sawasdee;-inkscape-font-specification:Sawasdee"><tspan x="' . ($x + 260) . '" y="' . ($y + 1100 - 470) . '" class="TextDay_' . $days[$day] . '">' . $day_nbr . '</tspan></text>'; $x += 1100; if ($days[$day] == 6) { $i = 0; array_push($cal, $week); $week = []; $y += 1100; $x = 0; } } $svgCalendar .= '</g>'; echo $svgCalendar; }
foreach (MedecinRepo::getAll() as $MEDECIN) { if ($medecinOpt == $MEDECIN['Id']) { echo "<option value='" . $MEDECIN['Id'] . "' selected>" . $MEDECIN['Nom'] . " " . $MEDECIN['Prenom'] . "</option>"; } else { echo "<option value='" . $MEDECIN['Id'] . "'>" . $MEDECIN['Nom'] . " " . $MEDECIN['Prenom'] . "</option>"; } } ?> </select> <input id="sbCherche" name="submit" type="submit" value="Lancer la recherche" /> </form> <?php if ($medecinOpt != null) { $medecin = MedecinRepo::getById($_POST['id_medecin']); $stats = StatsRepo::getRDVStat($_POST['id_medecin']); $heures = ($stats['DureeTotale'] - $stats['DureeTotale'] % 60) / 60; $minutes = $stats['DureeTotale'] % 60; echo '<div><strong>' . $medecin['Nom'] . ' ' . $medecin['Prenom'] . '</strong> <p>Nombre total de consultations: ' . $stats['NombreRDV'] . '</p> <p>Durée totale des consultations: ' . $heures . ' Heures et ' . $minutes . ' Minutes</p></div>'; } ?> </article> </section> </div>
<?php /** * Created by PhpStorm. * User: seekdasky * Date: 03/12/15 * Time: 11:52 */ require_once 'autoloader.php'; $jsonP = json_decode(file_get_contents('Docs/PatientExemple.json'), true); $jsonM = json_decode(file_get_contents('Docs/MedecinExemple.json'), true); $jsonR = json_decode(file_get_contents('Docs/RDVExemple.json'), true); var_dump(StaticRepo::testConnexion()); $repo = new PatientRepo(); $repoM = new MedecinRepo(); foreach ($jsonM as $patient) { $repoM->add($patient['Civilite'], $patient['Prenom'], $patient['Nom']); } foreach ($jsonP as $patient) { $repo->add($patient['Civilite'], $patient['Prenom'], $patient['Nom'], $patient['Adresse'], NULL, $patient['Ville'], $patient['CodePostal'], $patient['DateNaissance'], $patient['LieuNaissance'], $patient['NumSecuriteSociale'], $patient['MedecinTraitant']); } foreach ($jsonR as $rdv) { RDVRepo::add($rdv['DateRDV'], $rdv['Duree'], $rdv['Patient_Id'], $rdv['Medecin_Id']); }