function envoiNGAPouCCAMdansMBTV2() { /******************************************************************************/ global $fusion; global $table_patient_manuel; global $table_patient_automatique; $idEvent = $this->idEvent; if ($fusion == 0) { $typeIntervevant = $this->typeIntervenant; } else { // On recupere le type de l'intervenant $param[cw] = "WHERE idpatient='" . $idEvent . "'"; $param[table] = $table_patient_automatique; $req = new clResultQuery(); $res5 = $req->Execute("Fichier", "getPatients", $param, "ResultQuery"); unset($param); $param[nomitem] = $res5["medecin_urgences"][0]; $res5 = $req->Execute("Fichier", "getTypeMedecin", $param, "ResultQuery"); switch ($res5[localisation][0]) { case 'U': $typeIntervevant = "URG"; break; case 'P': $typeIntervevant = "PED"; break; case 'F': $typeIntervevant = "SAF"; break; case 'G': $typeIntervevant = "OBS"; break; default: $typeIntervevant = "URG"; break; } } // LISTE MAJO // Il faut gerer le cas des médecins qui prescrivent les actes. Il y a qu'un // seul médecin qui se charge du patient. Si plusieurs il faut en donner // qu'un seul (nom et code adeli). // Donc une mise à jour de la table serait nécessaire. Cette mise // à jour doit etre faite avant d'envoyer les informations dans la // boite aux lettres. Pas dans le cas des anesthesistes des infirmieres et des // consultations spécialistes $paramRq["cw"] = "idEvent=" . $idEvent . " and type='ACTE'"; $requete = new clResultQuery(); $req = new clResultQuery(); $res = $req->Execute("Fichier", "CCAM_getActesDiagsCotation", $paramRq, "ResultQuery"); //eko($res); //Récupération de l'indicateur Lésion multiple $idEvent = $this->idEvent; $lesion = $this->lesion($idEvent); $tabAsso = $this->tabAsso($idEvent, $lesion); //Récupération des tarifs par lettre-clé NGAP et code CCAM $tarifNGAP = $this->tarifNGAP(); $tarifCCAM = $this->tarifCCAM($idEvent); //Tarif NGAP et CCAM à zéro $tarifTotalActesNGAP = 0; $tarifTotalActesCCAM = 0; // Exception DEQP003 +C/CS possible de facturer les deux. // Requete qui retourne le nombre d'actes ccam $paramRq["cw"] = "idEvent=" . $idEvent . " and type='ACTE' and codeActe not like 'NGAP%' and codeActe not like 'CONS%' and envoi_facturation=1"; $requete = new clResultQuery(); $req = new clResultQuery(); $res1 = $req->Execute("Fichier", "CCAM_getActesDiagsCotation", $paramRq, "ResultQuery"); //eko($res1); if ($res1["INDIC_SVC"][2] == 1 and $res1["codeActe"][0] == "DEQP003") { eko("DEQP003"); } else { if (strcmp($typeIntervevant, "URG") == 0) { /////////////////////////////////////////////////////////////////////////////////////////// // // Cas des urgentistes simples. // /////////////////////////////////////////////////////////////////////////////////////////// //On parcourt le tableau res for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { $cotation = explode(" ", $res["cotationNGAP"][$i]); // Presence d'une CS //if ( $cotation[0] == "CS" ) { // Recherche du tarif de la CS //$paramRq["cw"] = "where lc='CS';"; //$resultat = $requete->Execute("Fichier","CCAM_get1TarifNGAP",$paramRq,"ResultQuery"); //$tarifTotalActesNGAP += $resultat["tarif"][0]; //} //LISTE MAJO suivant l'age du patient if (strcmp($cotation[0], "C") == 0 && strcmp($cotation[1], "1") == 0) { // presence d'une C facturable C 1 et non d'une C non facturable C 0 // recherche du tarif de la C $tarifTotalActesNGAP += $tarifNGAP["C"]; } elseif (strcmp($cotation[0], "MGE") == 0) { // presence de la majoration MGE pour une C // recherche du tarif $tarifTotalActesNGAP += $tarifNGAP["MGE"]; } elseif (strcmp($cotation[0], "MNO") == 0) { // presence de la majoration MNO pour une C // recherche du tarif $tarifTotalActesNGAP += $tarifNGAP["MNO"]; } elseif (strcmp($cotation[0], "MCG") == 0) { // presence de la majoration MNO pour une C // recherche du tarif $tarifTotalActesNGAP += $tarifNGAP["MCG"]; } elseif (strcmp($cotation[0], "CS") != 0 && strcmp($cotation[0], "CF") != 0 && strcmp($cotation[0], "CNPSY") != 0 && strcmp($cotation[0], "CSC") != 0 && strcmp($cotation[0], "ATU") != 0 && strcmp($cotation[0], "MTU") != 0) { // On regarde si on est en presence d'un acte CCAM $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); if ($resultat['INDIC_SVC'][2] == 1) { // presence d'un acte CCAM et recherche de son tarif // on tient compte aussi des codes associations $code_associations = $tabAsso["{$code}"]; if (isset($code_associations)) { if ($code_associations == "2") { $tarifTotalActesCCAM += $tarifCCAM["{$code}"] * 50 / 100; //eko ("code association 2"); } elseif ($code_associations == "3") { $tarifTotalActesCCAM += $tarifCCAM["{$code}"] * 75 / 100; //eko ("code association 3"); } else { $tarifTotalActesCCAM += $tarifCCAM["{$code}"]; } } } } } // fin du for eko("CCAM: " . $tarifTotalActesCCAM); eko("NGAP: " . $tarifTotalActesNGAP); // On compare maintenant les tarifs if ($tarifTotalActesCCAM >= $tarifTotalActesNGAP) { //eko ("CCAM"); //eko ($res[INDIC_SVC][2]); for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { if (strcmp($res["type"][$i], "ACTE") == 0) { $cotation = explode(" ", $res["cotationNGAP"][$i]); if (strcmp($cotation[0], "C") == 0 || strcmp($cotation[0], "MGE") == 0 || strcmp($cotation[0], "MNO") == 0 || strcmp($cotation[0], "MCG") == 0) { // Mise à jour de la table ccam_cotations_actes pour indiquer de ne pas // envoyer l'acte à la facturation. unset($paramModif); //eko("code non envoyé"); //eko($res["codeActe"][$i]); $paramModif["envoi_facturation"] = 0; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); //eko ($sql); } else { // On test si on est en presence d'un acte CCAM. Dans ce cas on met à jour la table // ccam_cotations_actes pour indiquer d 'envoyer l'acte CCAM à la facturation $code = $res["codeActe"][$i]; //eko("code envoyé"); //eko($res["codeActe"][$i]); $paramRq["cw"] = "CODE='{$code}';"; $requete = new clResultQuery(); $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); if ($resultat['INDIC_SVC'][2] == 1) { unset($paramModif); $paramModif["envoi_facturation"] = 1; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); } } } } // For } else { // else if ( $tarifTotalActesCCAM >= $tarifTotalActesNGAP ) { // on envoie pas les actes CCAM for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { // Test presence d'un acte if (strcmp($res["type"][$i], "ACTE") == 0) { // On retourne son code NGAP ou CCAM $requete = new clResultQuery(); $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); //eko ($resultat); // Si presence d'un code CCAM if ($resultat['INDIC_SVC'][2] == 1) { unset($paramModif); $paramModif["envoi_facturation"] = 0; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); //eko ($sql); } } } } // else if ( $tarifTotalActesCCAM >= $tarifTotalActesNGAP ) { } elseif (strcmp($typeIntervevant, "PED") == 0) { //On parcourt le tableau res for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { $cotation = explode(" ", $res["cotationNGAP"][$i]); // Presence d'une CS //if ( $cotation[0] == "CS" ) { // Recherche du tarif de la CS //$paramRq["cw"] = "where lc='CS';"; //$resultat = $requete->Execute("Fichier","CCAM_get1TarifNGAP",$paramRq,"ResultQuery"); //$tarifTotalActesNGAP += $resultat["tarif"][0]; //} //LISTE MAJO if (strcmp($cotation[0], "CS") == 0 && strcmp($cotation[1], "1") == 0 && strcmp($res["libelleActe"][$i], "Consultation urgentiste spécialiste") == 0) { // Cas donc ici d'une consultation urgentiste spécialiste (pédiatre) // presence d'une CS facturable CS 1 et non d'une CS non facturable CS 0 // recherche du tarif de la CS $tarifTotalActesNGAP += $tarifNGAP["CS"]; } elseif (strcmp($cotation[0], "MPJ") == 0 && strcmp($res["libelleActe"][$i], "Consultation urgentiste spécialiste") == 0) { // presence de la majoration MPJ pour une CS // recherche du tarif $tarifTotalActesNGAP += $tarifNGAP["MPJ"]; } elseif (strcmp($cotation[0], "MNP") == 0 && strcmp($res["libelleActe"][$i], "Consultation urgentiste spécialiste") == 0) { // presence de la majoration MNP pour une C // recherche du tarif $tarifTotalActesNGAP += $tarifNGAP["MNP"]; } elseif (strcmp($cotation[0], "CS") != 0 && strcmp($cotation[0], "CF") != 0 && strcmp($cotation[0], "CNPSY") != 0 && strcmp($cotation[0], "CSC") != 0 && strcmp($cotation[0], "ATU") != 0 && strcmp($cotation[0], "MTU") != 0) { // On regarde si on est en presence d'un acte CCAM $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); if ($resultat['INDIC_SVC'][2] == 1) { // presence d'un acte CCAM et recherche de son tarif // on tient compte aussi des codes associations $code_associations = $tabAsso["{$code}"]; if (isset($code_associations)) { if ($code_associations == "2") { $tarifTotalActesCCAM += $tarifCCAM["{$code}"] * 50 / 100; //eko ("code association 2"); } elseif ($code_associations == "3") { $tarifTotalActesCCAM += $tarifCCAM["{$code}"] * 75 / 100; //eko ("code association 3"); } else { $tarifTotalActesCCAM += $tarifCCAM["{$code}"]; } } } } } // fin du for eko("CCAM: " . $tarifTotalActesCCAM); eko("NGAP: " . $tarifTotalActesNGAP); // On compare maintenant les tarifs if ($tarifTotalActesCCAM >= $tarifTotalActesNGAP) { //eko ("CCAM"); //eko ($res[INDIC_SVC][2]); for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { if (strcmp($res["type"][$i], "ACTE") == 0) { $cotation = explode(" ", $res["cotationNGAP"][$i]); if ((strcmp($cotation[0], "CS") == 0 || strcmp($cotation[0], "MNP") == 0 || strcmp($cotation[0], "MPJ") == 0) && strcmp($res["libelleActe"][$i], "Consultation urgentiste spécialiste") == 0) { // Mise à jour de la table ccam_cotations_actes pour indiquer de ne pas // envoyer l'acte à la facturation. unset($paramModif); $paramModif["envoi_facturation"] = 0; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); //eko ($sql); } else { // On test si on est en presence d'un acte CCAM. Dans ce cas on met à jour la table // ccam_cotations_actes pour indiquer d 'envoyer l'acte CCAM à la facturation $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $requete = new clResultQuery(); $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); if ($resultat['INDIC_SVC'][2] == 1) { unset($paramModif); $paramModif["envoi_facturation"] = 1; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); } } } } // For } else { // else if ( $tarifTotalActesCCAM >= $tarifTotalActesNGAP ) { // on envoie pas les actes CCAM for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { // Test presence d'un acte if (strcmp($res["type"][$i], "ACTE") == 0) { // On retourne son code NGAP ou CCAM $requete = new clResultQuery(); $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); //eko ($resultat); // Si presence d'un code CCAM if ($resultat['INDIC_SVC'][2] == 1) { unset($paramModif); $paramModif["envoi_facturation"] = 0; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); //eko ($sql); } } } } // else if ( $tarifTotalActesCCAM >= $tarifTotalActesNGAP ) { } elseif (strcmp($typeIntervevant, "SAF") == 0) { eko("sage femme"); // Cas des sages-femmes // On compare la CF et les actes CCAM //On parcourt le tableau res for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { $cotation = explode(" ", $res["cotationNGAP"][$i]); //LISTE MAJO suivant l'age du patient if (strcmp($cotation[0], "CF") == 0 && strcmp($cotation[1], "1") == 0 && strcmp($res["libelleActe"][$i], "Consultation sage-femme") == 0) { // Cas donc ici d'une consultation urgentiste sage femme // presence d'une CF facturable CF 1 et non d'une CF non facturable CF 0 // recherche du tarif de la CF $tarifTotalActesNGAP += $tarifNGAP["CF"]; eko($tarifNGAP); } elseif (strcmp($cotation[0], "CS") != 0 && strcmp($cotation[0], "CF") != 0 && strcmp($cotation[0], "CNPSY") != 0 && strcmp($cotation[0], "CSC") != 0 && strcmp($cotation[0], "ATU") != 0 && strcmp($cotation[0], "MTU") != 0) { // On regarde si on est en presence d'un acte CCAM $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); if ($resultat['INDIC_SVC'][2] == 1) { // presence d'un acte CCAM et recherche de son tarif // on tient compte aussi des codes associations $code_associations = $tabAsso["{$code}"]; if (isset($code_associations)) { if ($code_associations == "2") { $tarifTotalActesCCAM += $tarifCCAM["{$code}"] * 50 / 100; //eko ("code association 2"); } elseif ($code_associations == "3") { $tarifTotalActesCCAM += $tarifCCAM["{$code}"] * 75 / 100; //eko ("code association 3"); } else { $tarifTotalActesCCAM += $tarifCCAM["{$code}"]; } } } } } // fin du for eko("CCAM: " . $tarifTotalActesCCAM); eko("NGAP: " . $tarifTotalActesNGAP); // On compare maintenant les tarifs if ($tarifTotalActesCCAM >= $tarifTotalActesNGAP) { //eko ("CCAM"); //eko ($res[INDIC_SVC][2]); for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { if (strcmp($res["type"][$i], "ACTE") == 0) { $cotation = explode(" ", $res["cotationNGAP"][$i]); if (strcmp($cotation[0], "CF") == 0 && strcmp($res["libelleActe"][$i], "Consultation sage-femme") == 0) { // Mise à jour de la table ccam_cotations_actes pour indiquer de ne pas // envoyer l'acte à la facturation. unset($paramModif); $paramModif["envoi_facturation"] = 0; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); //eko ($sql); } else { // On test si on est en presence d'un acte CCAM. Dans ce cas on met à jour la table // ccam_cotations_actes pour indiquer d 'envoyer l'acte CCAM à la facturation $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $requete = new clResultQuery(); $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); if ($resultat['INDIC_SVC'][2] == 1) { unset($paramModif); $paramModif["envoi_facturation"] = 1; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); } } } } // For } else { // else if ( $tarifTotalActesCCAM >= $tarifTotalActesNGAP ) { // on envoie pas les actes CCAM for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { // Test presence d'un acte if (strcmp($res["type"][$i], "ACTE") == 0) { // On retourne son code NGAP ou CCAM $requete = new clResultQuery(); $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); //eko ($resultat); // Si presence d'un code CCAM if ($resultat['INDIC_SVC'][2] == 1) { unset($paramModif); $paramModif["envoi_facturation"] = 0; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); //eko ($sql); } } } } // else if ( $tarifTotalActesCCAM >= $tarifTotalActesNGAP ) { } elseif (strcmp($typeIntervevant, "OBS") == 0) { // Cas des Gyneco - Obstetrique // On compare la CS et les actes CCAM //On parcourt le tableau res for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { $cotation = explode(" ", $res["cotationNGAP"][$i]); // LISTE MAJO suivant l'age du patient if (strcmp($cotation[0], "CS") == 0 && strcmp($cotation[1], "1") == 0 && strcmp($res["libelleActe"][$i], "Consultation gynécologie et obstétrique") == 0) { // Cas donc ici d'une Consultation Gynécologie et Obstétrique // presence d'une CS facturable CS 1 et non d'une CS non facturable CS 0 // recherche du tarif de la CS $tarifTotalActesNGAP += $tarifNGAP["CS"]; } elseif (strcmp($cotation[0], "CS") != 0 && strcmp($cotation[0], "CF") != 0 && strcmp($cotation[0], "CNPSY") != 0 && strcmp($cotation[0], "CSC") != 0 && strcmp($cotation[0], "ATU") != 0 && strcmp($cotation[0], "MTU") != 0) { // On regarde si on est en presence d'un acte CCAM $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); if ($resultat['INDIC_SVC'][2] == 1) { // presence d'un acte CCAM et recherche de son tarif // on tient compte aussi des codes associations $code_associations = $tabAsso["{$code}"]; if (isset($code_associations)) { if ($code_associations == "2") { $tarifTotalActesCCAM += $tarifCCAM["{$code}"] * 50 / 100; //eko ("code association 2"); } elseif ($code_associations == "3") { $tarifTotalActesCCAM += $tarifCCAM["{$code}"] * 75 / 100; //eko ("code association 3"); } else { $tarifTotalActesCCAM += $tarifCCAM["{$code}"]; } } } } } // fin du for eko("CCAM: " . $tarifTotalActesCCAM); eko("NGAP: " . $tarifTotalActesNGAP); // On compare maintenant les tarifs if ($tarifTotalActesCCAM >= $tarifTotalActesNGAP) { //eko ("CCAM"); //eko ($res[INDIC_SVC][2]); for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { if (strcmp($res["type"][$i], "ACTE") == 0) { $cotation = explode(" ", $res["cotationNGAP"][$i]); if (strcmp($cotation[0], "CS") == 0 && strcmp($res["libelleActe"][$i], "Consultation gynécologie et obstétrique") == 0) { // Mise à jour de la table ccam_cotations_actes pour indiquer de ne pas // envoyer l'acte à la facturation. unset($paramModif); $paramModif["envoi_facturation"] = 0; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); //eko ($sql); } else { // On test si on est en presence d'un acte CCAM. Dans ce cas on met à jour la table // ccam_cotations_actes pour indiquer d 'envoyer l'acte CCAM à la facturation $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $requete = new clResultQuery(); $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); if ($resultat['INDIC_SVC'][2] == 1) { unset($paramModif); $paramModif["envoi_facturation"] = 1; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); } } } } // For } else { // else if ( $tarifTotalActesCCAM >= $tarifTotalActesNGAP ) { // on envoie pas les actes CCAM for ($i = 0; $i < $res['INDIC_SVC'][2]; $i++) { // Test presence d'un acte if (strcmp($res["type"][$i], "ACTE") == 0) { // On retourne son code NGAP ou CCAM $requete = new clResultQuery(); $code = $res["codeActe"][$i]; $paramRq["cw"] = "CODE='{$code}';"; $resultat = $requete->Execute("Fichier", "CCAM_getActesCCAM", $paramRq, "ResultQuery"); //eko ($resultat); // Si presence d'un code CCAM if ($resultat['INDIC_SVC'][2] == 1) { unset($paramModif); $paramModif["envoi_facturation"] = 0; $requete = new clRequete(CCAM_BDD, "ccam_cotation_actes", $paramModif); $sql = $requete->updRecord("identifiant='" . $res["identifiant"][$i] . "'"); //eko ($sql); } } } } // else if ( $tarifTotalActesCCAM >= $tarifTotalActesNGAP ) { } } // fin du else if ($res1["INDIC_SVC"][2] == 1 and $res1["codeActe"][0] == "DEQP003") { // fin de comparaison des tarifs // Gestion de l'envoi des NGAP ou CCAM en fonction du meilleur tarif // dans la boite aux lettres }