function contenuBAL_Netforce($res, $type, $tabAsso = array(), $indicateurs = array(), $maxLC = array(), $maxCCAM = array()) { // res contient tous les actes qu'on envoie à la facturation global $options; //eko($indicateurs);eko($maxLC);eko($maxCCAM); //Préparation du champs CONTENU - Initialisation avec les données patients $contenuDiag = ""; $cptDiag = 1; $NGAPjoue = 0; unset($modificateursJoues); reset($res); // Variable pour les majo des actes infirmiers $Majoration_A_Effectuee = "Non"; $idEvent = $this->idEvent; $dateEvent = $this->dateEvent; $dtFinInterv = $this->dtFinInterv; $clDateDeb = new clDate($dateEvent); $clDateFin = new clDate($dtFinInterv); // On va affecter dans une variable le nombre de CONS /*$Nombre_Cons = 0; $req=new clResultQuery; $paramRq["cw"] = "idEvent='".$idEvent."'"; $res=$req->Execute("Fichier","CCAM_getNombreCONS",$paramRq,"ResultQuery"); $Nombre_Cons = $res["nombre"][0]; $tab_Cons[0] = 0; for ( $i=1 ; $i<=$Nombre_Cons ; $i++) $tab_Cons[$i] = 0;*/ if (strcmp($options->getOption('ChoixHeureAffectationActes'), "Heure médiane") == 0) { $nbHeures = $clDateFin->getDifference($clDateDeb) / 3600; $dateMediane = $clDateDeb->addHours($nbHeures / 2); $dateMediane = $clDateDeb->getDate("Y-m-d H:i:s"); $heureCalcule = $dateMediane; } elseif (strcmp($options->getOption('ChoixHeureAffectationActes'), "Heure d'admission") == 0) { $clDateAdm = new clDate($this->dtAdmission); $heureCalcule = $clDateAdm->getDate("Y-m-d H:i:s"); } elseif (strcmp($options->getOption('ChoixHeureAffectationActes'), "Heure d'examen") == 0) { $clDateAdm = new clDate($this->dateEvent); $heureCalcule = $clDateAdm->getDate("Y-m-d H:i:s"); } elseif (strcmp($options->getOption('ChoixHeureAffectationActes'), "Heure de sorti") == 0) { $clDateAdm = $clDateFin; $heureCalcule = $clDateAdm->getDate("Y-m-d H:i:s"); } list($dateActe, $heureActe) = explode(" ", $heureCalcule); list($annee, $mois, $jour) = explode("-", $dateActe); substr($mois, 0, 1) == 0 ? $mois = substr($mois, 1, 1) : ""; substr($jour, 0, 1) == 0 ? $jour = substr($jour, 1, 1) : ""; list($heure, $minute, $seconde) = explode(":", $heureActe); substr($heure, 0, 1) == 0 ? $heure = substr($heure, 1, 1) : ""; $dateActe = mktime(0, 0, 0, $mois, $jour, $annee); if ($heure >= 20 or $heure >= 6 and $heure < 8) { $majoCONS = "N"; } elseif ($heure < 6) { $majoCONS = "NM"; } //Gestion des dimanches if (date("w", $dateActe) == 0 and $majoCONS == "") { $majoCONS = "F"; } //Gestion des jours fériés $dateFerie = new clDate($dateActe); if ($dateFerie->isHoliday() and $majoCONS == "") { $majoCONS = "F"; } for ($i = 0; isset($res[identifiant][$i]); $i++) { $contenuInit = $res[numSejour][$i] . "|" . $res[idu][$i] . "|" . $res[nomu][$i] . "|" . $res[pren][$i] . "|" . $res[sexe][$i] . "|" . $res[dtnai][$i]; $contenuInit3 = "|" . $res[numUFdem][$i]; $dateDem = substr($res[dateDemande][$i], 0, 10); $heureDem = substr($res[dateDemande][$i], 11, 6) . "00"; $dateReal = substr($res[dateEvent][$i], 0, 10); $heureReal = substr($res[dateEvent][$i], 11, 6) . "00"; $contenuInit2 = "|" . $dateDem . "|" . $heureDem; // Cas des consultations spécialisées. if (substr($res[codeActe][$i], 0, 4) == "CONS") { $cotation = explode("+", $res[cotationNGAP][$i]); while (list($key, $val) = each($cotation)) { // On gere le cas des actes du docteur qui prend en charge la patient // Etape1 // Recupere l'indice de facturation list($lc, $coeff) = explode(" ", $val); if ($coeff == 0) { $factu = "non"; $coeff = 1; } else { $factu = "oui"; } // Etape2 // On colle le modificateur sur les consultes specialites $majoNGAP = ""; //eko($lc); if (substr($lc, 0, 1) == "C") { // MAJO CS 1 CSC 1 CNPSY 1 $majoNGAP = $majoCONS; } $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||||{$dateReal}|{$heureReal}|" . $res[nomIntervenant][$i] . "||" . $res[matriculeIntervenant][$i] . "|" . $res[numUFexec][$i] . "||{$lc}|{$coeff}|{$factu}||{$majoNGAP}"; $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite; //eko($contenu); unset($param); $param[DTINS] = date("Y-m-d H:i") . ":00"; $param[ETAT] = "P"; $param[DISCR] = $res[idEvent][$i]; $param[TYPE] = "NGAP"; $param[CONTENU] = $contenu; $majrq = new clRequete(CCAM_BDD, "MBTV2", $param); $sql = $majrq->addRecord(); } unset($paramModif); $paramModif[validDefinitive] = "O"; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("codeActe='" . $res[codeActe][$i] . "' and idDomaine=" . CCAM_IDDOMAINE . " and idEvent=" . $res[idEvent][$i]); } elseif (substr($res[codeActe][$i], 0, 4) == "NGAP") { // Il y aura deux intervenants le docteur et l'infirmier // Donc deux majorations possibles au maximun // La majoration forfaire collée pour l'un des actes ngap du docteur // La majoration forfaire collée pour l'un des actes ngap de l'infirmier $cotation = explode("+", $res[cotationNGAP][$i]); //eko ($cotation); while (list($key, $val) = each($cotation)) { // On gere le cas des actes du docteur qui prend en charge la patient // Etape1 // Recupere l'indice de facturation list($lc, $coeff) = explode(" ", $val); if ($coeff == 0) { $factu = "non"; $coeff = 1; } else { $factu = "oui"; } // Etape2 // On colle le modificateur sur le premier acte ngap du medecin la C ou CS $majoNGAP = ""; //eko($lc); if (substr($lc, 0, 1) == "C" and !$NGAPjoue) { // C ou CS $majoNGAP = $res[modificateurs][$i]; $NGAPjoue = 1; } /*else { if ( !ereg ("AMI",$lc ) and !ereg ("AIS",$lc ) and !ereg ("K",$lc ) and !ereg ("KC",$lc ) and !ereg ("PH",$lc ) and !ereg ("MNO",$lc ) and // LISTE MAJO !ereg ("MGE",$lc ) and !ereg ("MCG",$lc ) and !ereg ("MCC",$lc ) and !ereg ("MPC",$lc ) and !ereg ("MCS",$lc ) and !ereg ("MPJ",$lc ) and !ereg ("MNP",$lc ) and !$NGAPjoue ) { $majoNGAP = $res[modificateurs][$i]; $NGAPjoue = 1; } }*/ // On gere le cas des actes infirmiers //LISTE MAJO pour les actes infirmiers if (ereg("AMI", $lc) || ereg("AIS", $lc) || ereg("K", $lc) || ereg("KC", $lc) || ereg("PH", $lc) || ereg("INFN1", $lc) || ereg("INFN2", $lc) || ereg("MINFD", $lc)) { if (strcmp($this->matriculeIDE, "") == 0) { if (strcmp($options->getOption("codeAdeliInfirmier"), "") == 0) { if (strcmp($this->matriculeIntervenant, "") == 0) { $matriculeIDE = $options->getOption("codeAdeliChefService"); $nomIDE = $this->nomIntervenant; if (!$NGAPjoue) { $majoNGAP = $res[modificateurs][$i]; $NGAPjoue = 1; $Majoration_A_Effectuee = "Oui"; } } else { $matriculeIDE = $this->matriculeIntervenant; $nomIDE = $this->nomIntervenant; if (!$NGAPjoue) { $majoNGAP = $res[modificateurs][$i]; $NGAPjoue = 1; $Majoration_A_Effectuee = "Oui"; } } } else { $matriculeIDE = $options->getOption("codeAdeliInfirmier"); $nomIDE = $this->nomIDE; } } else { $matriculeIDE = $this->matriculeIDE; $nomIDE = $this->nomIDE; } //Premiere version avec la fonction gestionMajorationsActesInfirmiers // et l'option EnvoiMajorationsActesInfirmiers /* // Calcul des majo "NGAP" si on envoi pas les majo des "AMI" et "AIS" if ( !$options->getOption ('EnvoiMajorationsActesInfirmiers') ){ //eko("majo ngap :".$lc); // Concernant les actes infirmiers // Soit on envoie les modificateurs pour les actes AMI et AIS // Soit on envoie les majorations des actes AMI et AIS // Mais pas les deux. //Gestion des modificateurs de nuit et jours fériés pour las actes NGAP infirmiers //Gestion des tranches horaires pour las actes NGAP infirmiers if (($heure>=20 or ($heure>=6 and $heure<8))) $majoNGAP="N"; elseif ($heure<6) $majoNGAP="NM"; //Gestion des dimanches pour las actes NGAP infirmiers if (date("w",$dateActe)==0 and $majoNGAP=="") $majoNGAP="F"; //Gestion des jours fériés pour las actes NGAP infirmiers $dateFerie=new clDate($dateActe); if ($dateFerie->isHoliday() and $majoNGAP=="") $majoNGAP="F"; $modificateurs=$majoNGAP; } */ // Nous avons l'heure if (strcmp($Majoration_A_Effectuee, "Non") == 0) { if ($heure >= 20 && $heure < 23 || $heure >= 5 && $heure < 8) { $MajorationNGAP1 = "N"; $Majoration_A_Effectuee = "Oui"; } if ($heure >= 23 || $heure < 5) { $MajorationNGAP1 = "NM"; $Majoration_A_Effectuee = "Oui"; } // pour les jours féries $dateFerie = new clDate($dateActe); if ($dateFerie->isHoliday() && strcmp($Majoration_A_Effectuee, "Non") == 0) { $MajorationNGAP1 = "F"; $Majoration_A_Effectuee = "Oui"; } // pour les dimanches if (date("w", $dateActe) == 0 && strcmp($Majoration_A_Effectuee, "Non") == 0) { $MajorationNGAP1 = "F"; $Majoration_A_Effectuee = "Oui"; } // pour les samedis if (date("w", $dateActe) == 6 && $heure >= 8 && strcmp($Majoration_A_Effectuee, "Non") == 0) { $MajorationNGAP1 = "F"; $Majoration_A_Effectuee = "Oui"; } $majoNGAP = $MajorationNGAP1; } $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||||{$dateReal}|{$heureReal}|" . $nomIDE . "||" . $matriculeIDE . "|" . $res[numUFexec][$i] . "||{$lc}|{$coeff}|{$factu}||{$majoNGAP}"; $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite; //eko($contenu); // Mise à jour de la table ccam_cotation_acte if (strcmp($type, "creation") == 0) { $paramModif["nomIntervenant"] = $nomIDE; $paramModif["matriculeIntervenant"] = $matriculeIDE; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("idEvent=" . $this->idEvent . " and identifiant=" . $res["identifiant"][$i] . " and idDomaine=" . CCAM_IDDOMAINE); //eko($res["identifiant"][$i]); } } else { $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||||{$dateReal}|{$heureReal}|" . $res[nomIntervenant][$i] . "||" . $res[matriculeIntervenant][$i] . "|" . $res[numUFexec][$i] . "||{$lc}|{$coeff}|{$factu}||{$majoNGAP}"; $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite; //eko($contenu); } unset($param); $param[DTINS] = date("Y-m-d H:i") . ":00"; $param[ETAT] = "P"; $param[DISCR] = $res[idEvent][$i]; $param[TYPE] = "NGAP"; $param[CONTENU] = $contenu; $majrq = new clRequete(CCAM_BDD, "MBTV2", $param); $sql = $majrq->addRecord(); } unset($paramModif); $paramModif[validDefinitive] = "O"; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("codeActe='" . $res[codeActe][$i] . "' and idDomaine=" . CCAM_IDDOMAINE . " and idEvent=" . $res[idEvent][$i]); } else { if ($res[type][$i] == "ACTE") { list($modificateurs1, $modificateurs4) = explode("|", $res[modificateurs][$i]); if ($modificateurs1) { $modificateursCotes = explode("~", $modificateurs1); $modificateurs1 = ""; while (list($key, $val) = each($modificateursCotes)) { if ($val == "F" or $val == "P" or $val == "S") { if (!$modificateursJoues[$val] and !$indicateurs["C"] or $indicateurs["C"] and substr($res[codeActe][$i], 0, 3) == "DEQ") { $modificateurs1 .= "{$val}~"; } //eko("indicC:$indicateurs[C]-val:$val-modif1:$modificateurs1-modifJoueAvant:".$modificateursJoues[$val]); } else { $modificateurs1 .= "{$val}~"; } $modificateursJoues[$val] = 1; //eko("val:$val-modif1:$modificateurs1-modifJoue:".$modificateursJoues[$val]); } /*eko("codeActe:".$res[codeActe][$i]); eko($modificateursCotes); eko("modif1Final:$modificateurs1"); eko($modificateursJoues);*/ if ($modificateurs1) { $modificateurs1 = substr($modificateurs1, 0, -1); } } $modificateurs4 = ""; list($intervenant1, $intervenant4) = explode("|", $res[matriculeIntervenant][$i]); list($nomIntervenant1, $nomIntervenant4) = explode("|", $res[nomIntervenant][$i]); $codeActe = $res[codeActe][$i]; $codeAssociation = $tabAsso[$codeActe]; $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||1|0|{$dateReal}|{$heureReal}|" . $nomIntervenant1 . "||" . $intervenant1 . "|" . $res[numUFexec][$i] . "|" . $modificateurs1 . "|||oui|{$codeAssociation}"; $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite; unset($param); $param[DTINS] = date("Y-m-d H:i") . ":00"; $param[ETAT] = "P"; $param[DISCR] = $res[idEvent][$i]; $param[TYPE] = "CCAM"; $param[CONTENU] = $contenu; $majrq = new clRequete(CCAM_BDD, "MBTV2", $param); $sql = $majrq->addRecord(); if ($res[codeActivite4][$i] == "O") { /*//Recherche du nom de l'anesthésiste dans la liste unset($paramRq); $paramRq[code]=$intervenant4; $paramRq[idDomaine]=CCAM_IDDOMAINE; $paramRq[nomListe]="Anesthésie"; $req=new clResultQuery; $res2=$req->Execute("Fichier","CCAM_getNomMed",$paramRq,"ResultQuery"); //eko($res2[INDIC_SVC]); $nomMed4=$res2[nomItem][0];*/ $contenuSuite = "|{$type}|" . $res[identifiant][$i] . "|" . $res[codeActe][$i] . "||4|0|{$dateReal}|{$heureReal}|" . $nomIntervenant4 . "||" . $intervenant4 . "|" . $res[numUFexec][$i] . "|" . $modificateurs4 . "|||oui|{$codeAssociation}"; $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite; unset($param); $param[DTINS] = date("Y-m-d H:i:") . "00"; $param[ETAT] = "P"; $param[DISCR] = $res[idEvent][$i]; $param[TYPE] = "CCAM"; $param[CONTENU] = $contenu; $majrq = new clRequete(CCAM_BDD, "MBTV2", $param); $sql = $majrq->addRecord(); } unset($paramModif); $paramModif[validDefinitive] = "O"; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("codeActe='" . $res[codeActe][$i] . "' and idDomaine=" . CCAM_IDDOMAINE . " and idEvent=" . $res[idEvent][$i]); } else { $idEvent = $res[idEvent][$i]; /*$numSejour=$res[numSejour][$i]; $idu=$res[idu][$i]; $nomu=$res[nomu][$i]; $pren=$res[pren][$i]; $sexe=$res[sexe][$i]; $dtnai=$res[dtnai][$i]; $numUFdem=$res[numUFdem][$i];*/ $numUFexec = $res[numUFexec][$i]; $nomIntervenant = $res[nomIntervenant][$i]; $matriculeIntervenant = $res[matriculeIntervenant][$i]; $cptDiag == 1 ? $sep = "|" : ($sep = "~"); $contenuDiag .= $res[codeActe][$i] . $sep; $cptDiag++; } // Cas du diagnostic } // Cas des actes CCAM } //for ($i=0;isset($res[identifiant][$i]);$i++) if ($contenuDiag) { /*unset($paramRq); $paramRq[cw]="type='DIAG' and validDefinitive='O' and idEvent=".$res[idEvent][$i]." and idDomaine=".CCAM_IDDOMAINE; $req=new clResultQuery; $res=$req->Execute("Fichier","CCAM_getActesDiagsCotation",$paramRq,"ResultQuery"); //eko($res[INDIC_SVC]); if ($res[INDIC_SVC][2]!=0) $type="modification";*/ $cptDiag--; if ($cptDiag == 1) { $sepDiag = "|"; } else { $sepDiag = ""; } $contenuDiag = substr($contenuDiag, 0, -1); $contenuSuite = "|{$type}|" . $idEvent . "|" . $contenuDiag . $sepDiag . "|||{$dateReal}|{$heureReal}|" . $nomIntervenant . "||" . $matriculeIntervenant . "|" . $numUFexec . "||||"; $contenu = $contenuInit . $contenuInit2 . $contenuInit3 . $contenuSuite; unset($param); $param[DTINS] = date("Y-m-d H:i:") . "00"; $param[ETAT] = "P"; $param[DISCR] = $idEvent; $param[TYPE] = "DIAG"; $param[CONTENU] = $contenu; $majrq = new clRequete(CCAM_BDD, "MBTV2", $param); $sql = $majrq->addRecord(); unset($paramModif); $paramModif[validDefinitive] = "O"; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("type='DIAG' and idEvent=" . $idEvent . " and idDomaine=" . CCAM_IDDOMAINE); } }