= '[SIGNAL_PERIODE]'";} if ('[SIGNAL_TOPERIODE]' != '-1') {$subselect = "$subselect AND date_signalement <= '[SIGNAL_TOPERIODE]'";} if ('[CORRECT_PERIODE]' != '-1') {$subselect = "$subselect AND date_correction >= '[CORRECT_PERIODE]'";} if ('[CORRECT_TOPERIODE]' != '-1') {$subselect = "$subselect AND date_correction <= '[CORRECT_TOPERIODE]'";} if ('[GROUP_PERIODE]' != '-1') {$subselect = "$subselect AND v_rss_etat_1.date_groupage >= '[GROUP_PERIODE]'";} if ('[GROUP_TOPERIODE]' != '-1') {$subselect = "$subselect AND v_rss_etat_1.date_groupage <= '[GROUP_TOPERIODE]'";} return "$subselect"; EVAL]]]> '0' "; break; case 'NEXSO' : $select .= " AND v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('S') "; break; case 'NEXGR' : $select .= " AND v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('G','V','F') "; break; case 'NEXVA' : $select .= " AND v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('V','F') "; break; case 'NEXVANFA' : $select .= " AND v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('V') "; break; case 'NEXFA' : $select .= " AND v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('F') "; break; case 'NEXGRNFA' : $select .= " AND v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('G','V') "; break; case 'NEXNFA' : $select .= " AND v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('S','G','V') "; break; case 'EXNEX' : break; case 'EXNEXSO' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('S')) "; break; case 'EXNEXGR' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('G','V','F')) "; break; case 'EXNEXVA' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('V','F')) "; break; case 'EXNEXVANFA' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('V')) "; break; case 'EXNEXFA' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('F')) "; break; case 'EXNEXGRNFA' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('G','V')) "; break; case 'EXNEXNFA' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours <> '0' AND v_rss_1.en_cours_etat IN ('S','G','V')) "; break; // Anciens codes pour compatibilité case 'EXGR' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours_etat IN ('G', 'V')) "; break; case 'EXGV' : $select .= " AND (v_rss_1.en_cours = '0' OR v_rss_1.en_cours_etat = 'V') "; break; case 'GR' : $select .= " AND v_rss_1.en_cours_etat IN ('G', 'V') "; break; default : $select .= ""; break; } } // Sélection des GHM $mode = substr('[GHM]',0,2); $oid = substr('[GHM]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[GHM]'); $oid = PMSI_get_classe_oid('[GHM]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.ghm_id IN (SELECT to_id FROM pmsi.t_ghm_c JOIN pmsi.t_listes_contenu ON to_id = t_ghm_c.oid WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.ghm_id NOT IN (SELECT to_id FROM pmsi.t_ghm_c JOIN pmsi.t_listes_contenu ON to_id = t_ghm_c.oid WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm_c WHERE $section_id = $oid)";} if ($mode == 'CM') {$subselect_select = " v_rss_1.cmd_id = $oid ";} if ($mode == 'GH') {$subselect_select = " v_rss_1.ghm_id = $oid ";} if ($mode == 'CA') {$subselect_select = " v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm_c WHERE severite_ghm_code IN ('V', 'W'))";} if ($mode == 'CW') {$subselect_select = " v_rss_1.ghm_id IN (SELECT to_id FROM pmsi.v_ghm_3 WHERE oid = $oid )";} if ($mode == 'CS') {$subselect_select = " v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm_c WHERE severite_ghm_code = 'S')";} if ($mode == 'SV') {$subselect_select = " v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm_c WHERE severite_ghm_code = '$oid')";} if ($mode == 'C*') {$subselect_select = " v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } $mode = substr('[GHM5]',0,2); $oid = substr('[GHM5]',2); if ($mode == 'C*') {$select = $select. " AND v_rss_1.ghm5_id IN (SELECT oid FROM pmsi.t_ghm5 WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'G5') {$select = $select. " AND v_rss_1.ghm5_id = $oid";} $mode = substr('[GHMSEV]',0,2); $oid = substr('[GHMSEV]',2); if ($mode == 'C*') {$select = $select. " AND v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm WHERE severite ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'SV') { if ($oid=='9'){$select = $select. " AND v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm WHERE severite IN (1,2,3,4))";} else {$select = $select. " AND v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm WHERE severite = '$oid')";} } // Sévérité CTI $oid = substr('[CTISEV]',0); if($oid != '-1'){$select = $select. " AND v_rss_1.severite_cti_code = $oid";} // Sélection des GHS $mode = substr('[GHS]',0,2); $oid = substr('[GHS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[GHS]'); $oid = PMSI_get_classe_oid('[GHS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.ghs_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.ghs_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'C*') {$subselect_select = " v_rss_1.ghs_id IN (SELECT oid FROM pmsi.t_ghs WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'GS') {$subselect_select = " v_rss_1.ghs_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } if (substr('[OAP]',0,2) == 'PO') { $select = $select. ' AND v_rss_1.pole_oap_id = ' . substr('[OAP]',2); } if (substr('[OAP]',0,2) == 'LO') { $select = $select. ' AND v_rss_1.ligne_oap_id = ' . substr('[OAP]',2); } if (substr('[GA]',0,2) == 'GA') { $select = $select. ' AND v_rss_1.groupe_activite_id = ' . substr('[GA]',2); } $mcosToOmit = array(); if ('[MCO_M]' != 'M') { $mcosToOmit[] = "M"; } if ('[MCO_C]' != 'C') { $mcosToOmit[] = "C"; } if ('[MCO_O]' != 'O') { $mcosToOmit[] = "O"; } if ('[MCO_S]' != 'S') { $mcosToOmit[] = "S"; } if ('[MCO_H]' != '*') { $mcosToOmit[] = "*"; } if (!empty($mcosToOmit)) { $mcosToOmitString = "'".implode("','",$mcosToOmit)."'"; $select .= " AND v_rss_1.mcos_code <> ALL(ARRAY[$mcosToOmitString]) "; } // Catégories d'activités de soins $casToOmit = array(); if ('[CAS_C]' != 'C') { $casToOmit[] = "C"; } if ('[CAS_K]' != 'K') { $casToOmit[] = "K"; } if ('[CAS_X]' != 'X') { $casToOmit[] = "X"; } if ('[CAS_N]' != 'N') { $casToOmit[] = "N"; } if ('[CAS_O]' != 'O') { $casToOmit[] = "O"; } if ('[CAS_S]' != 'S') { $casToOmit[] = "S"; } if ('[CAS_W]' != '*') { $casToOmit[] = "*"; $casToOmit[] = "?"; } if (!empty($casToOmit)) { $casToOmitString = "'".implode("','",$casToOmit)."'"; $select .= " AND v_rss_1.cas_code <> ALL(ARRAY[$casToOmitString]) "; } if ('[ACT_URG]' == '*') { $select .= " AND activite_urgence = '1' "; } // Sélection des paramètres personnalisés $mode = substr('[PARAMETRE_PERSONNALISE_RSS_1]',0,2); $oid = substr('[PARAMETRE_PERSONNALISE_RSS_1]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[PARAMETRE_PERSONNALISE_RSS_1]'); $oid = PMSI_get_classe_oid('[PARAMETRE_PERSONNALISE_RSS_1]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_parametres_personnalises_1.parametre_personnalise_1_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_parametres_personnalises_1.parametre_personnalise_1_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_parametres_personnalises_1.parametre_personnalise_1_id IN (SELECT oid FROM pmsi.t_parametre_personnalise_rss_1 WHERE $section_id = $oid)";} if ($mode == 'DT') {$subselect_select = " v_rss_parametres_personnalises_1.parametre_personnalise_1_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } $mode = substr('[PARAMETRE_PERSONNALISE_RSS_2]',0,2); $oid = substr('[PARAMETRE_PERSONNALISE_RSS_2]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[PARAMETRE_PERSONNALISE_RSS_2]'); $oid = PMSI_get_classe_oid('[PARAMETRE_PERSONNALISE_RSS_2]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_parametres_personnalises_2.parametre_personnalise_2_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_parametres_personnalises_2.parametre_personnalise_2_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_parametres_personnalises_2.parametre_personnalise_2_id IN (SELECT oid FROM pmsi.t_parametre_personnalise_rss_2 WHERE $section_id = $oid)";} if ($mode == 'DT') {$subselect_select = " v_rss_parametres_personnalises_2.parametre_personnalise_2_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } // Sélection des médecins $mode = substr('[MEDECIN_RSS]',0,2); $oid = substr('[MEDECIN_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[MEDECIN_RSS]'); $oid = PMSI_get_classe_oid('[MEDECIN_RSS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.medecin_rss_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.medecin_rss_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.medecin_rss_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE $section_id = $oid)";} if ($mode == 'SP') {$subselect_select = " v_medecin_rss_link.specialite_interne_medecin_reference_rss_id = $oid ";} if ($mode == 'SO') {$subselect_select = " v_medecin_rss_link.specialite_medecin_rss_id = $oid ";} if ($mode == 'C*') {$subselect_select = " v_rss_1.medecin_rss_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'MD') {$subselect_select = " v_medecin_rss_link.medecin_reference_rss_id = $oid ";} if ($mode == 'DT') {$subselect_select = " v_medecin_rss_link.medecin_reference_rss_id = $oid ";} if ($mode == 'D2') {$subselect_select = " v_medecin_rss_link.specialite_interne_medecin_reference_rss_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } // Comités médicaux $mode = substr('[COMITE_MEDICAL]',0,2); $oid = substr('[COMITE_MEDICAL]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[COMITE_MEDICAL]'); $oid = PMSI_get_classe_oid('[COMITE_MEDICAL]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.comite_medical_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.comite_medical_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.comite_medical_id IN (SELECT oid FROM pmsi.t_comites_medicaux WHERE $section_id = $oid)";} if ($mode == 'CM') {$subselect_select = " v_rss_1.comite_medical_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } // Sélection des Modes d'entrée, modes de sortie, provenances et destinations // Les ComboBoxes MEN_PROV_RSS_RUM et MSO_DEST_RSS_RUM permettent de choisir si on veut filtrer // les modes d'entrées/Provenances et les modes de sortie/destinations sur les enregistrements RSS ou sur les RUM if (substr('[MODE_ENTREE]',0,1) == 'I') { if ('[MEN_PROV_RSS_RUM]' == 'RUM') { if(substr('[MODE_ENTREE]',1) == 'T'){ $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.mode_entree_rum in ('0','7'))"; } else { $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.mode_entree_rum = '" . substr('[MODE_ENTREE]',1) . "')"; } } else if(substr('[MODE_ENTREE]',1) == 'T'){ $select = $select. " AND v_rss_1.mode_entree in ('0','7')"; }else{ $select = $select. " AND v_rss_1.mode_entree = '" . substr('[MODE_ENTREE]',1) . "'"; } } if (substr('[MODE_ENTREE]',0,1) == 'S') { if ('[MEN_PROV_RSS_RUM]' == 'RUM') { $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.mode_entree_rum <> '" . substr('[MODE_ENTREE]',1) . "')"; } $select = $select. " AND v_rss_1.mode_entree <> '" . substr('[MODE_ENTREE]',1) . "'"; } if (substr('[MODE_SORTIE]',0,1) == 'I') { if ('[MSO_DEST_RSS_RUM]' == 'RUM') { $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.mode_sortie_rum = '" . substr('[MODE_SORTIE]',1) . "')"; } else $select = $select. " AND v_rss_1.mode_sortie = '" . substr('[MODE_SORTIE]',1) . "'"; } if (substr('[MODE_SORTIE]',0,1) == 'S') { if ('[MSO_DEST_RSS_RUM]' == 'RUM') { $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.mode_sortie_rum <> '" . substr('[MODE_SORTIE]',1) . "')"; } $select = $select. " AND v_rss_1.mode_sortie <> '" . substr('[MODE_SORTIE]',1) . "'"; } if (substr('[PROVENANCE]',0,1) == 'I' && strlen('[PROVENANCE]') > 1) { if ('[MEN_PROV_RSS_RUM]' == 'RUM') { $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.provenance_rum = '" . substr('[PROVENANCE]',1) . "')"; } else $select = $select. " AND v_rss_1.provenance = '" . substr('[PROVENANCE]',1) . "'"; } if (substr('[PROVENANCE]',0,1) == 'S' && strlen('[PROVENANCE]') > 1) { if ('[MEN_PROV_RSS_RUM]' == 'RUM') { $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.provenance_rum <> '" . substr('[PROVENANCE]',1) . "')"; } $select = $select. " AND v_rss_1.provenance <> '" . substr('[PROVENANCE]',1) . "'"; } if (substr('[DESTINATION]',0,1) == 'I' && strlen('[DESTINATION]') > 1) { if ('[MSO_DEST_RSS_RUM]' == 'RUM') { $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.destination_rum = '" . substr('[DESTINATION]',1) . "')"; } $select = $select. " AND v_rss_1.destination = '" . substr('[DESTINATION]',1) . "'"; } if (substr('[DESTINATION]',0,1) == 'S' && strlen('[DESTINATION]') > 1) { if ('[MSO_DEST_RSS_RUM]' == 'RUM') { $select = $select . " AND v_rss_1.no_rss in ( SELECT distinct no_rss from pmsi.v_rss_rum_2 WHERE v_rss_rum_2.destination_rum <> '" . substr('[DESTINATION]',1) . "')"; } $select = $select. " AND v_rss_1.destination <> '" . substr('[DESTINATION]',1) . "'"; } // Etablissement de provenance $oid = '[ETAB_PROVE]'; if('[ETAB_PROVE]' != '-1'){ if('[ETAB_PROVE]' == 'SANS'){ $select = $select ." AND (etablissement_provenance_code is null OR etablissement_provenance_code ilike '%**%')"; }else if('[ETAB_PROVE]' == 'AVEC'){ $select = $select ." AND etablissement_provenance_code IS DISTINCT FROM NULL"; }else { $select = $select ." AND etablissement_provenance_id = $oid"; } } // Etablissement de destination $oid = '[ETAB_DEST]'; if('[ETAB_DEST]' != '-1'){ if('[ETAB_DEST]' == 'SANS'){ $select = $select ." AND (etablissement_destination_code is null OR etablissement_destination_code ilike '%**%')"; }else if('[ETAB_DEST]' == 'AVEC'){ $select = $select ." AND etablissement_destination_code IS DISTINCT FROM NULL"; }else { $select = $select ." AND etablissement_destination_id = $oid"; } } // Type de séjour OVALIDE if('[T_TYPE_SEJ_OVALIDE]' == '1'){ $select = $select."AND type_sejour_ovalide = '1'"; }else if ('[T_TYPE_SEJ_OVALIDE]' == '2'){ $select = $select."AND type_sejour_ovalide = '2'"; }else if ('[T_TYPE_SEJ_OVALIDE]' == '3'){ $select = $select."AND type_sejour_ovalide = '3'"; } // Conversion HP,HC $oid = substr('[F_HPHC]',2); if('[F_HPHC]' != '-1'){ if('[F_HPHC]' == 'CO5'){ $select = $select."AND v_rss_1.conversion_hp_hc_id != 0 "; }else{ $select = $select."AND v_rss_1.conversion_hp_hc_id = $oid "; } } // CA_GHS_EXH if ('[F_CA_GHS_EXH]' != '-1') { if ('[F_CA_GHS_EXH]' == 'INTERVAL'){ // Intervalle if('[CA_GHS_EXH_I]' != ''){ $select .= ' AND v_rss_1.ca_ghs + v_rss_1.ca_exh >= ' . intval('[CA_GHS_EXH_I]'); if('[CA_GHS_EXH_I2]' != ''){ $select .= ' AND v_rss_1.ca_ghs + v_rss_1.ca_exh <= ' . intval('[CA_GHS_EXH_I2]'); } }else{ $select .= ' AND v_rss_1.ca_ghs + v_rss_1.ca_exh <= ' . intval('[CA_GHS_EXH2]'); } } //Greater / Lower if ('[F_CA_GHS_EXH]' == 'GREATER'){ $select .= ' AND v_rss_1.ca_ghs + v_rss_1.ca_exh >= ' . intval('[CA_GHS_EXH_GL]'); } if ('[F_CA_GHS_EXH]' == 'LOWER'){ $select .= ' AND v_rss_1.ca_ghs + v_rss_1.ca_exh <= ' . intval('[CA_GHS_EXH_GL]'); } } // RAAC $oid = substr('[F_RAAC]',2); if('[F_RAAC]' != '-1'){ if('[F_RAAC]' == 'RA5'){ $select = $select."AND v_rss_1.raac_id != 0 "; }else{ $select = $select."AND v_rss_1.raac_id = $oid "; } } // NP $oid = substr('[F_NP]',2); if('[F_NP]' != '-1'){ if('[F_NP]' == 'NP5'){ $select = $select."AND v_rss_1.np_id != 0 "; }else{ $select = $select."AND v_rss_1.np_id = $oid "; } } // PASSAGE URGENCE $oid = substr('[F_PASSAGE_URGENCES]', 3); if( '[F_PASSAGE_URGENCES]' != '-1'){ if('[F_PASSAGE_URGENCES]' == 'URG5'){ $select = $select."AND v_passage_urgences_link.passage_urgences_id != 0 "; }else{ $select = $select."AND v_passage_urgences_link.passage_urgences_id = $oid "; } } // rescrit tarifaire $oid = substr('[F_RESC_TARIF]',2); if('[F_RESC_TARIF]' != '-1'){ if('[F_RESC_TARIF]' == 'RT5'){ $select = $select."AND v_rss_1.rescrit_tarif_id != 0 "; }else{ $select = $select."AND v_rss_1.rescrit_tarif_id = $oid "; } } // variable administration de produits de la réserve hospitalière $oid = substr('[F_ADM_PROD_RESHOSPI]',2); if('[F_ADM_PROD_RESHOSPI]' != '-1'){ if('[F_ADM_PROD_RESHOSPI]' == 'AP5'){ $select = $select."AND v_rss_1.adm_prod_reshospi_id != 0 "; }else{ $select = $select."AND v_rss_1.adm_prod_reshospi_id = $oid "; } } // La variable contexte du patient $oid = substr('[F_CTX_PAT]',2); if('[F_CTX_PAT]' != '-1'){ if('[F_CTX_PAT]' == 'CP5'){ $select = $select."AND v_rss_1.contexte_pat_id != 0 "; }else{ $select = $select."AND v_rss_1.contexte_pat_id = $oid "; } } // Nombre d'intervention $oid = substr('[F_NB_INTERV]',2); if('[F_NB_INTERV]' != '-1'){ if('[F_NB_INTERV]' == 'NI5'){ $select = $select."AND v_rss_1.nb_intervention_id != 0 "; }else{ $select = $select."AND v_rss_1.nb_intervention_id = $oid "; } } // Sélection des durées $mode = substr('[T_DUREE_SEJOUR]',0,2); $oid = substr('[T_DUREE_SEJOUR]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[T_DUREE_SEJOUR]'); $oid = PMSI_get_classe_oid('[T_DUREE_SEJOUR]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.duree_sejour IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.duree_sejour NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.duree_sejour IN (SELECT oid FROM pmsi.t_durees_sejour_c WHERE $section_id = $oid)";} if ($mode == 'DU') {$subselect_select = " v_rss_1.duree_sejour = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } else { // Anciennes codifications if ('[T_DUREE_SEJOUR]' == '0') { $select = $select. ' AND v_rss_1.duree_sejour = 0'; } if ('x[T_DUREE_SEJOUR]x' == 'x1x') { $select = $select. ' AND v_rss_1.duree_sejour = 1'; } if ('[T_DUREE_SEJOUR]' == '1EX') { $select = $select. ' AND v_rss_1.duree_sejour >= 1'; } if ('[T_DUREE_SEJOUR]' == '01') { $select = $select. ' AND v_rss_1.duree_sejour <= 1'; } if ('[T_DUREE_SEJOUR]' == '012') { $select = $select. ' AND v_rss_1.duree_sejour <= 2'; } if ('[T_DUREE_SEJOUR]' == '1X') { $select = $select. ' AND v_rss_1.duree_sejour > 1'; } if ('[T_DUREE_SEJOUR]' == '2') { $select = $select. ' AND v_rss_1.duree_sejour = 2'; } if ('[T_DUREE_SEJOUR]' == 'X') { $select = $select. ' AND v_rss_1.duree_sejour > 2'; } if ('[T_DUREE_SEJOUR]' == 'S') { $select = $select. ' AND v_rss_1.nb_seances > 0'; } if ('[T_DUREE_SEJOUR]' == 'SS') { $select = $select. ' AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR]' == 'SAMB') { $select = $select. ' AND (v_rss_1.nb_seances > 0 OR v_rss_1.duree_sejour = 0)'; } if ('[T_DUREE_SEJOUR]' == 'I' && '[DUREE_SEJOUR]' != '' ) { $select = $select. ' AND v_rss_1.duree_sejour >= ' . intval('[DUREE_SEJOUR]'); } if ('[T_DUREE_SEJOUR]' == 'I' && '[DUREE_SEJOUR2]' != '' ) { $select = $select. ' AND v_rss_1.duree_sejour <= ' . intval('[DUREE_SEJOUR2]'); } } // Sélection taux remboursement if ('[TAUX_REMB]' != '' && '[TAUX_REMB2]' != '' ) { $select = $select. ' AND v_rss_1.taux_remboursement >= ' . intval('[TAUX_REMB]') . ' AND v_rss_1.taux_remboursement <= ' . intval('[TAUX_REMB2]'); } if ('[TAUX_REMB]' != '' && '[TAUX_REMB2]' == '') { $select = $select. ' AND v_rss_1.taux_remboursement = ' . intval('[TAUX_REMB]'); } if ('[TAUX_REMB2]' != '' && '[TAUX_REMB]' == '') { $select = $select. ' AND v_rss_1.taux_remboursement <= ' . intval('[TAUX_REMB2]'); } // Ecart par rapport à la DMS if('[T_ECART_DMS]' != '-1') { $operator = ''; $field1 = '[ECART_DMS_FIELD1]'; $field2 = '[ECART_DMS_FIELD2]'; switch([ECART_DMS_OPERATOR]){ case 1 : $operator = '= '.$field1; break; case 2 : $operator = '>= '.$field1; break; case 3 : $operator = '<= '.$field1; break; case 4 : // Si la borne inf est plus grande que la borne sup, on inverse les bornes if (intval($field1) > intval($field2)) $operator = 'BETWEEN '.$field2.' AND '.$field1; else $operator = 'BETWEEN '.$field1.' AND '.$field2; break; case 5 : $operator = '<> '.$field1; break; } $select = $select . ' AND ecart_[VIEW.DMS_FIELD] ' . $operator . ' AND v_rss_1.nb_seances = 0'; } // Nb de diagnostics if ('[T_NB_DIAG_RSS]' != '-1') { $field1 = trim('[NB_DIAG_RSS]'); $field2 = trim('[NB_DIAG_RSS2]'); $type = '[T_NB_DIAG2_RSS]'; $diag_count = ''; $diag_select = ''; if ($field1 != '' && $field2 != '') { $diag_count .= "AND count(diagnostic_id) BETWEEN $field1 AND $field2"; } else if ($field1 != '' && $field2 == '') { $diag_count .= "AND count(diagnostic_id) >= $field1"; } else if ($field1 == '' && $field2 != '') { $diag_count .= "AND count(diagnostic_id) <= $field2"; } switch ($type) { case 'D' : // Tout diagnostic => pas de filtrage. break; case 'DHDD' : $diag_select .= "AND type_diagnostic != 'DD'"; break; case 'DP' : $diag_select .= "AND type_diagnostic_rss = 'DP'"; break; case 'DPRRSS' : $diag_select .= "AND type_diagnostic_rss IN ('DP', 'DR')"; break; case 'DR' : $diag_select .= "AND type_diagnostic_rss = 'DR'"; break; case 'DARSS' : $diag_select .= "AND type_diagnostic_rss = 'DA'"; break; case 'DP2' : $diag_select .= "AND type_diagnostic = 'DP'"; break; case 'DPR' : $diag_select .= "AND type_diagnostic IN ('DP', 'DR')"; break; case 'DRRUM' : $diag_select .= "AND type_diagnostic = 'DR'"; break; case 'DA' : $diag_select .= "AND type_diagnostic IN ('DA', 'DS')"; break; case 'DD' : $diag_select .= "AND type_diagnostic = 'DD'"; break; } $select .= " AND v_rss_1.rss_id IN ( SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE 1=1 $diag_select GROUP BY 1 HAVING 1=1 $diag_count ) "; } // Type de diagnostic if ('[T_DIAG_1_RSS]' != '-1') { $mode = substr('[DIAG_1_RSS]',0,2); $oid = substr('[DIAG_1_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[DIAG_1_RSS]'); $oid = PMSI_get_classe_oid('[DIAG_1_RSS]'); } $diag_select = ''; if ('[T_DIAG_1_RSS]' == 'DP' || '[T_DIAG_1_RSS]' == 'DR') { if ('[T_DIAG_1_RSS]' == 'DP') { if ($mode == 'LI') {$diag_select = "diagnostic_principal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_principal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_principal_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} } else { if ($mode == 'LI') {$diag_select = "diagnostic_relie_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_relie_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_relie_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} } if ($diag_select != '') { $select = $select. " AND v_rss_1.$diag_select"; } } else { if ($mode == 'LI') {$diag_select = "diagnostic_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ('[T_DIAG_1_RSS]' == 'DRRUM') {$diag_select = $diag_select . " AND type_diagnostic = 'DR' ";} if ('[T_DIAG_1_RSS]' == 'DA') {$diag_select = $diag_select . " AND type_diagnostic IN ('DA', 'DS') ";} if ('[T_DIAG_1_RSS]' == 'DPR') {$diag_select = $diag_select . " AND type_diagnostic IN ('DP', 'DR') ";} if ('[T_DIAG_1_RSS]' == 'DP2') {$diag_select = $diag_select . " AND type_diagnostic = 'DP' ";} if ('[T_DIAG_1_RSS]' == 'DD') {$diag_select = $diag_select . " AND type_diagnostic = 'DD' ";} if ('[T_DIAG_1_RSS]' == 'DHDD') {$diag_select = $diag_select . " AND type_diagnostic != 'DD' ";} if ('[T_DIAG_1_RSS]' == 'DPRRSS') {$diag_select = $diag_select . " AND type_diagnostic_rss IN ('DP', 'DR') ";} if ('[T_DIAG_1_RSS]' == 'DARSS') {$diag_select = $diag_select . " AND type_diagnostic_rss = 'DA' ";} if ($diag_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE $diag_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE $diag_select)"; } } } } if ('[T_DIAG_2_RSS]' != '-1') { $mode = substr('[DIAG_2_RSS]',0,2); $oid = substr('[DIAG_2_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[DIAG_2_RSS]'); $oid = PMSI_get_classe_oid('[DIAG_2_RSS]'); } $diag_select = ''; if ('[T_DIAG_2_RSS]' == 'DP' || '[T_DIAG_2_RSS]' == 'DR') { if ('[T_DIAG_2_RSS]' == 'DP') { if ($mode == 'LI') {$diag_select = "diagnostic_principal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_principal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_principal_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} } else { if ($mode == 'LI') {$diag_select = "diagnostic_relie_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_relie_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_relie_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} } if ($diag_select != '') { $select = $select. " AND v_rss_1.$diag_select"; } } else { if ($mode == 'LI') {$diag_select = "diagnostic_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ('[T_DIAG_2_RSS]' == 'DRRUM') {$diag_select = $diag_select . " AND type_diagnostic = 'DR' ";} if ('[T_DIAG_2_RSS]' == 'DA') {$diag_select = $diag_select . " AND type_diagnostic IN ('DA', 'DS') ";} if ('[T_DIAG_2_RSS]' == 'DPR') {$diag_select = $diag_select . " AND type_diagnostic IN ('DP', 'DR') ";} if ('[T_DIAG_2_RSS]' == 'DP2') {$diag_select = $diag_select . " AND type_diagnostic = 'DP' ";} if ('[T_DIAG_2_RSS]' == 'DD') {$diag_select = $diag_select . " AND type_diagnostic = 'DD' ";} if ('[T_DIAG_2_RSS]' == 'DHDD') {$diag_select = $diag_select . " AND type_diagnostic != 'DD' ";} if ('[T_DIAG_2_RSS]' == 'DPRRSS') {$diag_select = $diag_select . " AND type_diagnostic_rss IN ('DP', 'DR') ";} if ('[T_DIAG_2_RSS]' == 'DARSS') {$diag_select = $diag_select . " AND type_diagnostic_rss = 'DA' ";} if ($diag_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE $diag_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE $diag_select)"; } } } } // Type facturation $mode = substr('[TYPFAC]',0,2); $oid = substr('[TYPFAC]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[TYPFAC]', 2, 2, 'type_facturation_section_id'); $oid = PMSI_get_classe_oid('[TYPFAC]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.prestation_principale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.prestation_principale_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.prestation_principale_id IN (SELECT oid FROM pmsi.t_prestations WHERE $section_id = $oid)";} if ($mode == 'DT') {$subselect_select = " v_rss_1.prestation_principale_id = $oid ";} if ($mode == 'PR') {$subselect_select = " v_rss_1.prestation_principale_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } if ('[SEXE]' != '-1') { $select = $select. ' AND v_rss_1.sexe = ' .''. '[SEXE]' .''. ' '; } // Sélection des AGES $mode = substr('[T_AGE]',0,2); $oid = substr('[T_AGE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[T_AGE]'); $oid = PMSI_get_classe_oid('[T_AGE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.age IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.age NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.age IN (SELECT oid FROM pmsi.t_ages_c WHERE $section_id = $oid)";} if ($mode == 'AG') {$subselect_select = " v_rss_1.age = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } else { // Anciennes codifications if ('[T_AGE]' == '0') { $select = $select. ' AND v_rss_1.age = 0'; } if ('[T_AGE]' == '1') { $select = $select. ' AND v_rss_1.age >= 1 AND v_rss_1.age <= 5' ; } if ('[T_AGE]' == '6') { $select = $select. ' AND v_rss_1.age >= 6 AND v_rss_1.age <= 12' ;} if ('[T_AGE]' == '13') { $select = $select. ' AND v_rss_1.age >= 13 AND v_rss_1.age <= 20' ; } if ('[T_AGE]' == '21') { $select = $select. ' AND v_rss_1.age >= 21 AND v_rss_1.age <= 30' ; } if ('[T_AGE]' == '31') { $select = $select. ' AND v_rss_1.age >= 31 AND v_rss_1.age <= 40' ; } if ('[T_AGE]' == '41') { $select = $select. ' AND v_rss_1.age >= 41 AND v_rss_1.age <= 50' ; } if ('[T_AGE]' == '51') { $select = $select. ' AND v_rss_1.age >= 51 AND v_rss_1.age <= 60' ; } if ('[T_AGE]' == '61') { $select = $select. ' AND v_rss_1.age >= 61 AND v_rss_1.age <= 70' ; } if ('[T_AGE]' == '71') { $select = $select. ' AND v_rss_1.age >= 71 AND v_rss_1.age <= 80' ; } if ('[T_AGE]' == '81') { $select = $select. ' AND v_rss_1.age >= 81' ; } if ('[T_AGE]' == 'I' && '[AGE]' != '' && '[AGE2]' != '' ) { $select = $select. ' AND v_rss_1.age >= ' . intval('[AGE]') . ' AND v_rss_1.age <= ' . intval('[AGE2]'); } if ('[T_AGE]' == 'I' && '[AGE]' != '' ) { $select = $select. ' AND v_rss_1.age >= ' . intval('[AGE]'); } if ('[T_AGE]' == 'I' && '[AGE2]' != '' ) { $select = $select. ' AND v_rss_1.age <= ' . intval('[AGE2]'); } } // Sélection des âges en jours $mode = substr('[T_AGE_JOURS]',0,2); $oid = substr('[T_AGE_JOURS]',2); $subselect_select = ''; if ($mode == 'AJ') {$subselect_select = " v_rsa_1.age_jours = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } else { if ('[T_AGE_JOURS]' == 'I' && '[AGE_JOURS]' != '' && '[AGE_JOURS2]' != '' ) { $select = $select. ' AND v_rsa_1.age_jours >= ' . intval('[AGE_JOURS]') . ' AND v_rsa_1.age_jours <= ' . intval('[AGE_JOURS2]'); } if ('[T_AGE_JOURS]' == 'I' && '[AGE_JOURS]' != '' ) { $select = $select. ' AND v_rsa_1.age_jours >= ' . intval('[AGE_JOURS]'); } if ('[T_AGE_JOURS]' == 'I' && '[AGE_JOURS2]' != '' ) { $select = $select. ' AND v_rsa_1.age_jours BETWEEN 0 AND ' . intval('[AGE_JOURS2]'); } } if ('[T_GEST]' != '-1') { if('[GEST]' != ''){ $select .= ' AND v_rss_1.age_gestationnel >= ' . intval('[GEST]'); if('[GEST2]' != ''){ $select .= ' AND v_rss_1.age_gestationnel <= ' . intval('[GEST2]'); } }else{ $select .= ' AND v_rss_1.age_gestationnel <= ' . intval('[GEST2]'); } } if ('[T_POIDS_BEBE]' != '-1') { if('[POIDS_BEBE]' != ''){ $select .= ' AND v_rss_1.poids_bebe >= ' . intval('[POIDS_BEBE]'); if('[POIDS_BEBE2]' != ''){ $select .= ' AND v_rss_1.poids_bebe <= ' . intval('[POIDS_BEBE2]'); } }else{ $select .= ' AND v_rss_1.poids_bebe <= ' . intval('[POIDS_BEBE2]'); } } if ('[NIP]' != '' && Number([NIP]) > 0) { $select .= " AND no_patient IN (".str_replace(' ',',','[NIP]').")"; } // LPP $mode = substr('[LPP_RSS]',0,2); $oid = substr('[LPP_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[LPP_RSS]'); $oid = PMSI_get_classe_oid('[LPP_RSS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "lpp_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "lpp_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LP') {$subselect_select = "lpp_id = $oid ";} if ($mode == 'LS') {$subselect_select = "lpp_id IN (SELECT oid FROM pmsi.t_lpp WHERE $section_id = $oid)";} if ($mode == 'C*') {$subselect_select = "lpp_id IN (SELECT oid FROM pmsi.t_lpp WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_lpp WHERE $subselect_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_lpp WHERE $subselect_select)"; } } // Listes RSS $mode = substr('[LIRSS]',0,2); $oid = substr('[LIRSS]',2); if ($mode == 'F5') {$select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_fiche5_rss WHERE enquete_id = $oid)";} // Etat RSS $mode = substr('[ETAT_RSS]',0,2); $oid = substr('[ETAT_RSS]',2); $subselect_select = ''; if ($mode == 'SL') {$subselect_select = "v_rss_1.etat_sejour = '$oid'";} if ($subselect_select != '') { $select = $select. " AND $subselect_select"; } // UCD $mode = substr('[UCD_RSS]',0,2); $oid = substr('[UCD_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UCD_RSS]'); $oid = PMSI_get_classe_oid('[UCD_RSS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "ucd_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "ucd_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'UC') {$subselect_select = "ucd_id = $oid ";} if ($mode == 'LS') {$subselect_select = "ucd_id IN (SELECT oid FROM pmsi.t_ucd WHERE $section_id = $oid)";} if ($mode == 'C*') {$subselect_select = "ucd_id IN (SELECT oid FROM pmsi.t_ucd WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_ucd WHERE $subselect_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_ucd WHERE $subselect_select)"; } } // Indication UCD RSS $mode = substr('[IUCD_RSS]',0,2); $oid = substr('[IUCD_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[IUCD_RSS]'); $oid = PMSI_get_classe_oid('[IUCD_RSS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "indication_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "indication_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'IU') {$subselect_select = "indication_id = $oid ";} if ($mode == 'LS') {$subselect_select = "indication_id IN (SELECT oid FROM pmsi.t_indication WHERE $section_id = $oid)";} if ($mode == 'C*') {$subselect_select = "indication_id IN (SELECT oid FROM pmsi.t_indication WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id = ANY (SELECT rss_id FROM pmsi.p_rss_ucd WHERE $subselect_select GROUP BY 1)"; } else { $select = $select. " AND v_rss_1.rss_id <> ALL (SELECT rss_id FROM pmsi.p_rss_ucd WHERE $subselect_select GROUP BY 1)"; } } // 1ère UM $mode = substr('[PREMIERE_UM]',0,2); $oid = substr('[PREMIERE_UM]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[PREMIERE_UM]'); $oid = PMSI_get_classe_oid('[PREMIERE_UM]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_premiere_unite_medicale_link.premiere_unite_medicale_id = ANY(ARRAY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'SL') {$subselect_select = " v_premiere_unite_medicale_link.premiere_unite_medicale_id != ALL(ARRAY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'LS') {$subselect_select = " v_premiere_unite_medicale_link.premiere_unite_medicale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)::bigint[])";} if ($mode == 'AN') {$subselect_select = " v_premiere_unite_medicale_link.premiere_unite_medicale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '')::bigint[])";} if ($mode == 'AT') {$subselect_select = " v_premiere_unite_medicale_link.premiere_unite_medicale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')::bigint[])";} if ($mode == 'AU') {$subselect_select = " v_premiere_unite_medicale_link.premiere_unite_medicale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')::bigint[])";} if ($mode == 'UM') {$subselect_select = " v_premiere_unite_medicale_link.premiere_unite_medicale_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } // Unité principale $mode = substr('[UM_PRINCIPALE]',0,2); $oid = substr('[UM_PRINCIPALE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UM_PRINCIPALE]'); $oid = PMSI_get_classe_oid('[UM_PRINCIPALE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.unite_medicale_principale_id = ANY(ARRAY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'SL') {$subselect_select = " v_rss_1.unite_medicale_principale_id != ALL(ARRAY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'LS') {$subselect_select = " v_rss_1.unite_medicale_principale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)::bigint[])";} if ($mode == 'AN') {$subselect_select = " v_rss_1.unite_medicale_principale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '')::bigint[])";} if ($mode == 'AT') {$subselect_select = " v_rss_1.unite_medicale_principale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')::bigint[])";} if ($mode == 'AU') {$subselect_select = " v_rss_1.unite_medicale_principale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')::bigint[])";} if ($mode == 'UM') {$subselect_select = " v_rss_1.unite_medicale_principale_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } // Pole principal $mode = substr('[POLE_PRINCIPAL]',0,2); $oid = substr('[POLE_PRINCIPAL]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[POLE_PRINCIPAL]'); $oid = PMSI_get_classe_oid('[POLE_PRINCIPAL]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " pole_principal_id = ANY(ARRAY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'SL') {$subselect_select = " pole_principal_id != ALL(ARRAY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'LS') {$subselect_select = " pole_principal_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)::bigint[])";} if ($mode == 'DT') {$subselect_select = " pole_principal_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } $mode = substr('[UM_RSS]',0,2); $oid = substr('[UM_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UM_RSS]'); $oid = PMSI_get_classe_oid('[UM_RSS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "unite_medicale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "unite_medicale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = "unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'AN') {$subselect_select = "unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')";} if ($mode == 'AT') {$subselect_select = "unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')";} if ($mode == 'AU') {$subselect_select = "unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')";} if ($mode == 'UM') {$subselect_select = "unite_medicale_id = $oid ";} if ($subselect_select != '') { if ($mode != 'SL' && $mode != 'AN' ) { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_rum WHERE $subselect_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_rum WHERE $subselect_select)"; } } $mode = substr('[UF_RSS]',0,2); $oid = substr('[UF_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UF_RSS]'); $oid = PMSI_get_classe_oid('[UF_RSS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "unite_fonctionnelle_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "unite_fonctionnelle_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = "unite_fonctionnelle_id IN (SELECT oid FROM pmsi.t_unites_fonctionnelles WHERE $section_id = $oid)";} if ($mode == 'UF') {$subselect_select = "unite_fonctionnelle_id = $oid ";} if ($subselect_select != '') { if ($mode != 'SL' ) { $select = $select. " AND v_rss_1.rss_id = ANY (ARRAY(SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect_select)::bigint[])"; } else { $select = $select. " AND v_rss_1.rss_id != ALL (ARRAY(SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect_select)::bigint[])"; } } $mode = substr('[PRESTATION_RSS]',0,2); $oid = substr('[PRESTATION_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[PRESTATION_RSS]'); $oid = PMSI_get_classe_oid('[PRESTATION_RSS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "prestation_id = ANY(ARRAY(SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'SL') {$subselect_select = "prestation_id = ANY(ARRAY(SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'LS') {$subselect_select = "prestation_id = ANY(ARRAY(SELECT oid FROM pmsi.t_prestations WHERE $section_id = $oid)::bigint[])";} if ($mode == 'PR') {$subselect_select = "prestation_id = $oid ";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id = ANY(ARRAY (SELECT rss_id FROM pmsi.p_rsf_detail WHERE $subselect_select GROUP BY 1)::bigint[])"; } else { $select = $select. " AND v_rss_1.rss_id != ALL(ARRAY (SELECT rss_id FROM pmsi.p_rsf_detail WHERE $subselect_select GROUP BY 1)::bigint[])"; } } if('[MONO_UHCD]' === '1'){ $select = $select. " AND v_rss_1.nb_rum = 1 AND v_rss_1.unite_medicale_principale_id IN (SELECT oid FROM pmsi.t_unites_medicales where type_autorisation like '07A')"; }else if('[MONO_UHCD]' === '2'){ $select = $select. " AND (v_rss_1.nb_rum = 1 AND v_rss_1.unite_medicale_principale_id NOT IN (SELECT oid FROM pmsi.t_unites_medicales where type_autorisation like '07A') OR v_rss_1.nb_rum > 1)"; } if ('[ACTE_RSS_SANS_ANESTHESIE]' == 'SANSANESTHESIE') { $select = $select. " AND v_rss_1.avec_anesthesie IS DISTINCT FROM '1' "; } else if ('[ACTE_RSS_SANS_ANESTHESIE]' == 'AVECANESTHESIE') { $select = $select. " AND v_rss_1.avec_anesthesie = '1' "; } // Extension documentaire CCAM if ('[EXTDOC]' != '-1') { $val = ''; if ('[EXTDOC]' != '0') { $val = "[EXTDOC]"; } $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_actes WHERE extension_ccam = '" . $val . "')"; } // Modificateurs CCAM $mode = substr('[RSSMCC]',0,2); $oid = substr('[RSSMCC]',2); if ('[RSSMCC]' != '-1') { if (strlen($oid) == 1) { $select = $select. " AND v_rss_1.rss_id = ANY(ARRAY(SELECT rss_id FROM pmsi.p_rss_actes WHERE ((modificateur_ccam_1 = '$oid'::text) OR (modificateur_ccam_2 = '$oid'::text ) OR (modificateur_ccam_3 = '$oid'::text) OR (modificateur_ccam_4 = '$oid'::text)) GROUP BY 1)::bigint[])"; } else { $select = $select. " AND v_rss_1.rss_id = ANY(ARRAY(SELECT rss_id FROM pmsi.p_rss_actes WHERE (char_length(modificateur_ccam_1 || modificateur_ccam_2 || modificateur_ccam_3 || modificateur_ccam_4) < 4) GROUP BY 1)::bigint[])"; } } // Nb d'actes. if ('[T_NB_ACTE_RSS]' != '-1') { $field1 = trim('[NB_ACTE_RSS]'); $field2 = trim('[NB_ACTE_RSS2]'); $acte_count = ''; if ($field1 != '' && $field2 != '') { $acte_count .= "AND sum(nombre) BETWEEN $field1 AND $field2"; } else if ($field1 != '' && $field2 == '') { $acte_count .= "AND sum(nombre) >= $field1"; } else if ($field1 == '' && $field2 != '') { $acte_count .= "AND sum(nombre) <= $field2"; } $select .= " AND v_rss_1.rss_id = ANY (ARRAY( SELECT rss_id FROM pmsi.p_rss_actes GROUP BY 1 HAVING 1=1 $acte_count )::bigint[] ) "; } // Actes $mode = substr('[ACTE_RSS]',0,2); $oid = substr('[ACTE_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[ACTE_RSS]'); $oid = PMSI_get_classe_oid('[ACTE_RSS]'); } $subselect = ''; if ('[ACTE_RSS_ACTIVITE_CCAM]' != 'P') { if ($mode == 'SC') { switch(substr('[ACTE_RSS]', 2, 1)){ case '1' : $sujet = 'topographie_1_id'; break; case '2' : $sujet = 'topographie_2_id'; break; case '3' : $sujet = 'action_id'; break; case '4' : $sujet = 'technique_id'; break; } $oid = substr('[ACTE_RSS]', 3); $subselect = "acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE $sujet = $oid)"; } if ($mode == 'TA') { $subselect = "acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE type_id = $oid)"; } if ($mode == 'CH') { $niveau_chapitre = substr('[ACTE_RSS]', 2, 1); $oid = substr('[ACTE_RSS]', 3); $subselect = "acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE chapitre_".$niveau_chapitre."_id = $oid)"; } if ($mode == 'C*') { $subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid'))) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid'))))"; } if ($mode == 'LI') {$subselect = "(acte_id = ANY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid))";} if ($mode == 'SL') {$subselect = "(acte_id = ANY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid))";} if ($mode == 'LS') {$subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid))";} if ($mode == 'NO') {$subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid') OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid'))";} if ($mode == 'GX') {$subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0))";} if ($mode == 'GM') {$subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid))";} if ($mode == 'RC') {$subselect = "acte_regroupement_id = $oid ";} if ($mode == 'AC') {$subselect = "(acte_id = $oid OR acte_ccam_descriptif_id = $oid)";} if ('[ACTE_RSS_ACTIVITE_CCAM]' == '1') {$subselect = $subselect . " AND activite_ccam <> '4' ";} if ('[ACTE_RSS_ACTIVITE_CCAM]' == '4') {$subselect = $subselect . " AND activite_ccam = '4' ";} if ($subselect != '') { if (substr($subselect, 0 , 4) == ' AND') { $subselect = substr($subselect, 4); } if ($mode != 'SL') { if ($mode != 'RC') { $select = $select. " AND v_rss_1.rss_id = ANY (SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect)"; } else { $select = $select. " AND v_rss_1.rss_id = ANY (SELECT rss_id FROM pmsi.v_rss_actes_1 WHERE $subselect)"; } } else { $select = $select. " AND v_rss_1.rss_id != ALL (SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect)"; } } } else { if ($mode == 'SC') { switch(substr('[ACTE_RSS]', 2, 1)){ case '1' : $sujet = 'topographie_1_id'; break; case '2' : $sujet = 'topographie_2_id'; break; case '3' : $sujet = 'action_id'; break; case '4' : $sujet = 'technique_id'; break; } $oid = substr('[ACTE_RSS]', 3); $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $sujet = $oid)"; } if ($mode == 'TA') { $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE type_id = $oid)"; } if ($mode == 'CH') { $niveau_chapitre = substr('[ACTE_RSS]', 2, 1); $oid = substr('[ACTE_RSS]', 3); $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE chapitre_".$niveau_chapitre."_id = $oid)"; } if ($mode == 'C*') { $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))"; } if ($mode == 'LI') {$subselect = "v_rss_1.acte_principal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "v_rss_1.acte_principal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid)";} if ($mode == 'NO') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid')";} if ($mode == 'GX') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0)";} if ($mode == 'GM') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid)";} if ($mode == 'RC') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE acte_regroupement_id = $oid)";} if ($mode == 'AC') {$subselect = "v_rss_1.acte_principal_id = $oid ";} if ($subselect != '') { $select = $select. " AND $subselect "; } } // Actes (2) $mode = substr('[ACTE_2_RSS]',0,2); $oid = substr('[ACTE_2_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[ACTE_2_RSS]'); $oid = PMSI_get_classe_oid('[ACTE_2_RSS]'); } $subselect = ''; if ('[ACTE_2_RSS_ACTIVITE_CCAM]' != 'P') { if ($mode == 'SC') { switch(substr('[ACTE_2_RSS]', 2, 1)){ case '1' : $sujet = 'topographie_1_id'; break; case '2' : $sujet = 'topographie_2_id'; break; case '3' : $sujet = 'action_id'; break; case '4' : $sujet = 'technique_id'; break; } $oid = substr('[ACTE_2_RSS]', 3); $subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $sujet = $oid)"; } if ($mode == 'TA') { $subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE type_id = $oid)"; } if ($mode == 'CH') { $niveau_chapitre = substr('[ACTE_2_RSS]', 2, 1); $oid = substr('[ACTE_2_RSS]', 3); $subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE chapitre_".$niveau_chapitre."_id = $oid)"; } if ($mode == 'C*') { $subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid'))) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid'))))"; } if ($mode == 'LI') {$subselect = "(acte_id = ANY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid))";} if ($mode == 'SL') {$subselect = "(acte_id = ANY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid))";} if ($mode == 'LS') {$subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid))";} if ($mode == 'NO') {$subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid') OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid'))";} if ($mode == 'GX') {$subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0))";} if ($mode == 'GM') {$subselect = "(acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid))";} if ($mode == 'RC') {$subselect = "acte_regroupement_id = $oid ";} if ($mode == 'AC') {$subselect = "(acte_id = $oid OR acte_ccam_descriptif_id = $oid)";} if ('[ACTE_2_RSS_ACTIVITE_CCAM]' == '1') {$subselect = $subselect . " AND activite_ccam <> '4' ";} if ('[ACTE_2_RSS_ACTIVITE_CCAM]' == '4') {$subselect = $subselect . " AND activite_ccam = '4' ";} if ($subselect != '') { if (substr($subselect, 0 , 4) == ' AND') { $subselect = substr($subselect, 4); } if ($mode != 'SL') { if ($mode != 'RC') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect)"; } else { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.v_rss_actes_1 WHERE $subselect)"; } } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect)"; } } } else { if ($mode == 'SC') { switch(substr('[ACTE_2_RSS]', 2, 1)){ case '1' : $sujet = 'topographie_1_id'; break; case '2' : $sujet = 'topographie_2_id'; break; case '3' : $sujet = 'action_id'; break; case '4' : $sujet = 'technique_id'; break; } $oid = substr('[ACTE_2_RSS]', 3); $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $sujet = $oid)"; } if ($mode == 'TA') { $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE type_id = $oid)"; } if ($mode == 'CH') { $niveau_chapitre = substr('[ACTE_2_RSS]', 2, 1); $oid = substr('[ACTE_2_RSS]', 3); $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE chapitre_".$niveau_chapitre."_id = $oid)"; } if ($mode == 'C*') { $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))"; } if ($mode == 'LI') {$subselect = "v_rss_1.acte_principal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "v_rss_1.acte_principal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid)";} if ($mode == 'NO') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid')";} if ($mode == 'GX') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0)";} if ($mode == 'GM') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid)";} if ($mode == 'RC') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE acte_regroupement_id = $oid)";} if ($mode == 'AC') {$subselect = "v_rss_1.acte_principal_id = $oid ";} if ($subselect != '') { $select = $select. " AND $subselect "; } } // exécutant Actes $mode = substr('[MEDECIN_ACTE_RSS]',0,2); $oid = substr('[MEDECIN_ACTE_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[MEDECIN_ACTE_RSS]'); $oid = PMSI_get_classe_oid('[MEDECIN_ACTE_RSS]'); } $subselect = ''; if ($mode == 'LI') {$subselect = "medecin_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "medecin_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "medecin_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE $section_id = $oid)";} if ($mode == 'SP') {$subselect = "specialite_interne_medecin_reference_id = $oid ";} if ($mode == 'SO') {$subselect = "specialite_medecin_reference_id = $oid ";} if ($mode == 'C*') {$subselect = "medecin_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'MD') {$subselect = "medecin_reference_id = $oid ";} if ($mode == 'DT') {$subselect = "medecin_reference_id = $oid ";} if ($mode == 'D2') {$subselect = "specialite_interne_medecin_reference_id = $oid ";} if ($subselect != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.v_rss_actes_1 WHERE $subselect)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.v_rss_actes_1 WHERE $subselect)"; } } // médecins rum RSS $mode = substr('[MEDECIN_RUM_RSS]',0,2); $oid = substr('[MEDECIN_RUM_RSS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[MEDECIN_RUM_RSS]'); $oid = PMSI_get_classe_oid('[MEDECIN_RUM_RSS]'); } $subselect = ''; if ($mode == 'LI') {$subselect_ = " v_rss_rum_2.medecin_rum_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_ = " v_rss_rum_2.medecin_rum_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_ = " v_rss_rum_2.medecin_rum_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE $section_id = $oid)";} if ($mode == 'SP') {$subselect_ = " v_rss_rum_2.specialite_medecin_reference_rum_id = $oid ";} if ($mode == 'SO') {$subselect_ = " v_rss_rum_2.specialite_medecin_reference_rum_id = $oid ";} if ($mode == 'C*') {$subselect_ = " v_rss_rum_2.medecin_rum_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'MD') {$subselect_ = " v_rss_rum_2.medecin_rum_id = $oid ";} if ($mode == 'DT') {$subselect_ = " v_rss_rum_2.medecin_rum_id = $oid ";} if ($mode == 'D2') {$subselect_ = " v_rss_rum_2.specialite_medecin_reference_rum_id = $oid ";} if ($subselect_ != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.v_rss_rum_2 WHERE $subselect_)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.v_rss_rum_2 WHERE $subselect_)"; } } // Sélection origine $mode = substr('[CODE_POSTAL]',0,2); $oid = substr('[CODE_POSTAL]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[CODE_POSTAL]'); $oid = PMSI_get_classe_oid('[CODE_POSTAL]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.code_postal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.code_postal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.code_postal_id IN (SELECT oid FROM pmsi.t_codes_postaux_c WHERE $section_id = $oid)";} if ($mode == 'DP') {$subselect_select = " v_rss_1.code_postal_id IN (SELECT oid FROM pmsi.t_codes_postaux_c WHERE departement_id = $oid)";} if ($mode == 'DG') {$subselect_select = " v_rss_1.code_postal_id IN (SELECT oid FROM pmsi.t_codes_postaux_c WHERE departement_id = $oid)";} if ($mode == 'RG') {$subselect_select = " v_rss_1.code_postal_id IN (SELECT oid FROM pmsi.t_codes_postaux_c WHERE region_id = $oid)";} if ($mode == 'GP') {$subselect_select = " v_rss_1.code_postal_id IN (SELECT oid FROM pmsi.t_codes_postaux_c WHERE code_geographique_pmsi_id = $oid)";} if ($mode == 'TS') {$subselect_select = " v_rss_1.code_postal_id IN (SELECT oid FROM pmsi.t_codes_postaux_c WHERE territoire_sante_id = $oid)";} if ($mode == 'CP') {$subselect_select = " v_rss_1.code_postal_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } if ('[DIVERS]' == 'MULTIRUM') { $select = $select. ' AND (v_rss_1.nb_rum > 1 )'; } if ('[DIVERS]' == 'MONORUM') { $select = $select. ' AND (v_rss_1.nb_rum = 1 )'; } if ('[DIVERS]' == 'EXB') { $select = $select. ' AND v_rss_1.nb_exb <> 0 '; } if ('[DIVERS]' == 'OMITFACNUL') { $select = $select. ' AND (v_rss_1.nb_factures_nulles = 0 )'; } if ('[DIVERS]' == 'OMITFACNULBB') { $select = $select. ' AND (v_rss_1.base_remboursement <> 0 )'; } if ('[DIVERS]' == 'OMITBB') { $select = $select. " AND (v_rss_1.ghm_code NOT ILIKE '15%')"; } // IPA if (substr('[IPA]',0,2) == 'II') { // include IPA $select = $select. " AND v_rss_ipa_1.ipa_id = '" . substr('[IPA]',2) . "'"; } if (substr('[IPA]',0,2) == 'SI') { // sauf IPA $select = $select. " AND v_rss_ipa_1.ipa_id <> '" . substr('[IPA]',2) . "'"; } if (substr('[IPA]',0,2) == 'IC') { // include categorie $select = $select. " AND v_rss_ipa_1.categorie_ipa_id = '" . substr('[IPA]',2) . "'"; } if (substr('[IPA]',0,2) == 'SC') { // sauf categorie $select = $select. " AND v_rss_ipa_1.categorie_ipa_id <> '" . substr('[IPA]',2) . "'"; } // Geste Marqueur if (substr('[GESTE_MARQUEUR]',0,1) == 'X') { // Acte Principal diff. de Geste Marqueur principal $select = $select . " AND v_rss_gm_1.gm_code NOT IN ('**', '***', '****') AND v_rss_1.acte_principal_id NOT IN ( SELECT to_id FROM pmsi.t_classes_sections_elements JOIN pmsi.t_classes_sections ON t_classes_sections.oid = t_classes_sections_elements.section_id JOIN pmsi.t_classes ON t_classes.oid = t_classes_sections.classe_id JOIN pmsi.t_listes_tables ON t_listes_tables.oid = t_classes.table_id WHERE t_listes_tables.code = 'ACTE' AND t_classes.sequence = 9 AND t_classes_sections.code = v_rss_gm_1.gm_code )"; } else if (substr('[GESTE_MARQUEUR]',0,1) == 'I') { // include geste marqueur $select = $select. " AND v_rss_gm_1.gm_code = '" . substr('[GESTE_MARQUEUR]',1) . "'"; } else if (substr('[GESTE_MARQUEUR]',0,1) == 'S') { // sauf geste marqueur if (substr('[GESTE_MARQUEUR]',1,1) == '*') { // au moins un geste marqueur $select = $select. " AND v_rss_gm_1.gm_code NOT IN ('**', '***', '****') "; } else { $select = $select. " AND v_rss_gm_1.gm_code <> '" . substr('[GESTE_MARQUEUR]',1) . "'"; } } // Seuils de cancérologie soumise à seuil if ('[SEUIL_CANCERO]' != '-1') { $mode = substr('[SEUIL_CANCERO]', 0, 2); $code = substr('[SEUIL_CANCERO]', 2); switch ($mode) { // Sans code de cancéro case 'SA' : $select .= " AND v_rss_cancero_1.cancero_code IS NULL "; break; // Avec au moins un code cancéro case 'AV' : $select .= " AND v_rss_cancero_1.cancero_code IS DISTINCT FROM NULL "; break; // Avec code de cancéro = case 'II' : $select .= " AND v_rss_cancero_1.cancero_code = '" . $code . "' "; break; // Sans code de cancéro = case 'SI' : $select .= " AND v_rss_cancero_1.cancero_code <> '" . $code . "' "; break; // Avec activité de cancéro = case 'IC' : $select .= " AND v_rss_cancero_1.activite_cancero_code = '" . $code . "'"; break; // Sans activité de cancéro = case 'SC' : $select .= " AND v_rss_cancero_1.activite_cancero_code <> '" . $code . "'"; break; } } // Seuils de cancérologie soumise à seuil principal if ('[SEUIL_CANCERO_PRINCIPAL]' != '-1') { $mode = substr('[SEUIL_CANCERO_PRINCIPAL]', 0, 2); $code = substr('[SEUIL_CANCERO_PRINCIPAL]', 2); switch ($mode) { // Sans code de cancéro case 'SA' : $select .= " AND v_rss_cancero_2022.cancero_principal_code IS NULL "; break; // Avec au moins un code cancéro case 'AV' : $select .= " AND v_rss_cancero_2022.cancero_principal_code IS DISTINCT FROM NULL "; break; // Avec code de cancéro = case 'II' : $select .= " AND v_rss_cancero_2022.cancero_principal_code = '" . $code . "' "; break; // Sans code de cancéro = case 'SI' : $select .= " AND v_rss_cancero_2022.cancero_principal_code <> '" . $code . "' "; break; // Avec activité de cancéro = case 'IC' : $select .= " AND v_rss_cancero_2022.activite_cancero_principal_code = '" . $code . "'"; break; // Sans activité de cancéro = case 'SC' : $select .= " AND v_rss_cancero_2022.activite_cancero_principal_code <> '" . $code . "'"; break; } } if ('[T_GHSASSOS]' != '-1' ) { // avec GHS associé if ('[T_GHSASSOS]' == 'I**') { if ('[GHSASSOS]' != '-1') { $mode = substr('[GHSASSOS]',0,2); $oid = substr('[GHSASSOS]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[GHSASSOS]'); $oid = PMSI_get_classe_oid('[GHSASSOS]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rsf_detail_1.ghs_id = ANY(ARRAY(SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'SL') {$subselect_select = " v_rsf_detail_1.ghs_id = ANY(ARRAY(SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'C*') {$subselect_select = " v_rsf_detail_1.ghs_id = ANY(ARRAY(SELECT oid FROM pmsi.t_ghs WHERE $section_id = $oid)::bigint[])";} if ($mode == 'GS') {$subselect_select = " v_rsf_detail_1.ghs_id = $oid ";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id = ANY(ARRAY (SELECT v_rsf_detail_1.rss_id FROM pmsi.v_rsf_detail_1 JOIN pmsi.v_rss_1 ON v_rss_1.rss_id = v_rsf_detail_1.rss_id WHERE ($subselect_select AND v_rsf_detail_1.ghs_code <> '0' AND v_rss_1.ghs_code <> v_rsf_detail_1.ghs_code) GROUP BY 1)::bigint[])"; } else { $select = $select. " AND v_rss_1.rss_id != ALL(ARRAY (SELECT v_rsf_detail_1.rss_id FROM pmsi.v_rsf_detail_1 JOIN pmsi.v_rss_1 ON v_rss_1.rss_id = v_rsf_detail_1.rss_id WHERE ($subselect_select AND v_rsf_detail_1.ghs_code <> '0' AND v_rss_1.ghs_code <> v_rsf_detail_1.ghs_code) GROUP BY 1)::bigint[])"; } } } else { //[T_GHSASSOS]' == 'I** $select = $select . " AND v_rss_1.rss_id = ANY(ARRAY (SELECT v_rsf_detail_1.rss_id FROM pmsi.v_rsf_detail_1 JOIN pmsi.v_rss_1 ON v_rss_1.rss_id = v_rsf_detail_1.rss_id WHERE ( v_rsf_detail_1.ghs_code <> '0' AND v_rss_1.ghs_code <> v_rsf_detail_1.ghs_code) GROUP BY 1)::bigint[])"; } } // sans GHS associé if ('[T_GHSASSOS]' == 'X**') { '[GHSASSOS]' == '-1"'; $select = $select . " AND v_rss_1.rss_id != ALL(ARRAY (SELECT v_rsf_detail_1.rss_id FROM pmsi.v_rsf_detail_1 JOIN pmsi.v_rss_1 ON v_rss_1.rss_id = v_rsf_detail_1.rss_id WHERE ( v_rsf_detail_1.ghs_code <> '0' AND v_rss_1.ghs_code <> v_rsf_detail_1.ghs_code) GROUP BY 1)::bigint[])"; } } if('[LS_DATA]' == 'CA_OVA_LSDATA_14') { $select = $select. " AND ghm_code in (SELECT ghm_code from pmsi.v_rss_7 v_rss_1 where date_sortie BETWEEN '[PERIODE]' AND '[TOPERIODE]' AND v_rss_1.en_cours = '0' AND v_rss_1.ghm_id IN (SELECT oid FROM pmsi.t_ghm where severite = '1') AND v_rss_1.cas_code not in ('K','X','N','O','S','*','?') AND v_rss_1.mode_sortie ='8' AND nb_rsa_0n >0 )"; } if('[NO_RSS]' != ''){ $no_rss = preg_split("/[\s,]+/",trim('[NO_RSS]')); $no_rss = implode(',',$no_rss); if(substr($no_rss,-1) == ','){ $no_rss = substr($no_rss,0,-1); } $select = $select. " AND v_rss_1.rss_id = ANY (array (SELECT rss_id from pmsi.v_rss_1 where no_rss in (" . $no_rss. ") AND v_rss_1.date_sortie >= '[PERIODE]' group by 1)::bigint[])"; } return $select; // ?> EVAL]]]> = ' . intval('[DELAI_REENTREE]') . ' AND delai <= ' . intval('[DELAI_REENTREE2]');} if ('[DELAI_REENTREE]' != '' ) {return 'AND delai >= ' . intval('[DELAI_REENTREE]');} if ('[DELAI_REENTREE2]' != '' ) {return 'AND delai <= ' . intval('[DELAI_REENTREE2]');} return ''; EVAL]]]> ' . substr('[MODE_ENTREE_REENTREE]',1); } if (substr('[MODE_SORTIE_REENTREE]',0,1) == 'I') { $select = $select. ' AND v_rss_1.mode_sortie = ' . substr('[MODE_SORTIE_REENTREE]',1); } if (substr('[MODE_SORTIE_REENTREE]',0,1) == 'S') { $select = $select. ' AND v_rss_1.mode_sortie <> ' . substr('[MODE_SORTIE_REENTREE]',1); } if (substr('[PROVENANCE_REENTREE]',0,1) == 'I') { $select = $select. ' AND v_rss_1.provenance = ' . substr('[PROVENANCE_REENTREE]',1); } if (substr('[PROVENANCE_REENTREE]',0,1) == 'S') { $select = $select. ' AND v_rss_1.provenance <> ' . substr('[PROVENANCE_REENTREE]',1); } if (substr('[DESTINATION_REENTREE]',0,1) == 'I') { $select = $select. ' AND v_rss_1.destination = ' . substr('[DESTINATION_REENTREE]',1); } if (substr('[DESTINATION_REENTREE]',0,1) == 'S') { $select = $select. ' AND v_rss_1.destination <> ' . substr('[DESTINATION_REENTREE]',1); } // Sélection des durées $mode = substr('[T_DUREE_SEJOUR_REENTREE]',0,2); $oid = substr('[T_DUREE_SEJOUR_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[T_DUREE_SEJOUR_REENTREE]'); $oid = PMSI_get_classe_oid('[T_DUREE_SEJOUR_REENTREE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.duree_sejour IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.duree_sejour NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.duree_sejour IN (SELECT oid FROM pmsi.t_durees_sejour_c WHERE $section_id = $oid)";} if ($mode == 'DU') {$subselect_select = " v_rss_1.duree_sejour = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select AND v_rss_1.nb_seances = 0 "; } else { // Anciennes codifications if ('[T_DUREE_SEJOUR_REENTREE]' == '0') { $select = $select. ' AND v_rss_1.duree_sejour = 0 AND v_rss_1.nb_seances = 0'; } if ('x[T_DUREE_SEJOUR_REENTREE]x' == 'x1x') { $select = $select. ' AND v_rss_1.duree_sejour = 1 AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == '1EX') { $select = $select. ' AND v_rss_1.duree_sejour >= 1 AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == '01') { $select = $select. ' AND v_rss_1.duree_sejour <= 1 AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == '012') { $select = $select. ' AND v_rss_1.duree_sejour <= 2 AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == '1X') { $select = $select. ' AND v_rss_1.duree_sejour > 1 AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == '2') { $select = $select. ' AND v_rss_1.duree_sejour = 2 AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == 'X') { $select = $select. ' AND v_rss_1.duree_sejour > 2 AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == 'S') { $select = $select. ' AND v_rss_1.nb_seances > 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == 'SS') { $select = $select. ' AND v_rss_1.nb_seances = 0'; } if ('[T_DUREE_SEJOUR_REENTREE]' == 'I' && '[DUREE_SEJOUR]' != '' && '[DUREE_SEJOUR2]' != '' ) { $select = $select. ' AND v_rss_1.duree_sejour >= ' . intval('[DUREE_SEJOUR]') . ' AND duree_sejour <= ' . intval('[DUREE_SEJOUR2] AND v_rss_1.nb_seances = 0'); } if ('[T_DUREE_SEJOUR_REENTREE]' == 'I' && '[DUREE_SEJOUR]' != '' ) { $select = $select. ' AND v_rss_1.duree_sejour >= ' . intval('[DUREE_SEJOUR] AND v_rss_1.nb_seances = 0'); } if ('[T_DUREE_SEJOUR_REENTREE]' == 'I' && '[DUREE_SEJOUR2]' != '' ) { $select = $select. ' AND v_rss_1.duree_sejour <= ' . intval('[DUREE_SEJOUR2] AND v_rss_1.nb_seances = 0'); } } if ('[T_DIAG_1_RSS_REENTREE]' != '-1') { $mode = substr('[DIAG_1_RSS_REENTREE]',0,2); $oid = substr('[DIAG_1_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[DIAG_1_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[DIAG_1_RSS_REENTREE]'); } $diag_select = ''; if ('[T_DIAG_1_RSS_REENTREE]' == 'DP' || '[T_DIAG_1_RSS_REENTREE]' == 'DR') { if ('[T_DIAG_1_RSS_REENTREE]' == 'DP') { if ($mode == 'LI') {$diag_select = "diagnostic_principal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_principal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_principal_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} } else { if ($mode == 'LI') {$diag_select = "diagnostic_relie_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_relie_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_relie_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} } if ($diag_select != '') { $select = $select. " AND v_rss_1.$diag_select"; } } else { if ($mode == 'LI') {$diag_select = "diagnostic_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ('[T_DIAG_1_RSS_REENTREE]' == 'DRRUM') {$diag_select = $diag_select . " AND type_diagnostic = 'DR' ";} if ('[T_DIAG_1_RSS_REENTREE]' == 'DA') {$diag_select = $diag_select . " AND type_diagnostic IN ('DA', 'DS') ";} if ('[T_DIAG_1_RSS_REENTREE]' == 'DPR') {$diag_select = $diag_select . " AND type_diagnostic IN ('DP', 'DR') ";} if ('[T_DIAG_1_RSS_REENTREE]' == 'DP2') {$diag_select = $diag_select . " AND type_diagnostic = 'DP' ";} if ('[T_DIAG_1_RSS_REENTREE]' == 'DD') {$diag_select = $diag_select . " AND type_diagnostic = 'DD' ";} if ('[T_DIAG_1_RSS_REENTREE]' == 'DHDD') {$diag_select = $diag_select . " AND type_diagnostic != 'DD' ";} if ($diag_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE $diag_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE $diag_select)"; } } } } if ('[T_DIAG_2_RSS_REENTREE]' != '-1') { $mode = substr('[DIAG_2_RSS_REENTREE]',0,2); $oid = substr('[DIAG_2_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[DIAG_2_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[DIAG_2_RSS_REENTREE]'); } $diag_select = ''; if ('[T_DIAG_2_RSS_REENTREE]' == 'DP' || '[T_DIAG_2_RSS_REENTREE]' == 'DR') { if ('[T_DIAG_2_RSS_REENTREE]' == 'DP') { if ($mode == 'LI') {$diag_select = "diagnostic_principal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_principal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_principal_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_principal_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} } else { if ($mode == 'LI') {$diag_select = "diagnostic_relie_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_relie_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_relie_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_relie_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} } if ($diag_select != '') { $select = $select. " AND v_rss_1.$diag_select"; } } else { if ($mode == 'LI') {$diag_select = "diagnostic_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$diag_select = "diagnostic_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'DG') {$diag_select = "diagnostic_id = $oid ";} if ($mode == 'DR') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE racine_id = $oid)";} if ($mode == 'LS') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE $section_id = $oid)";} if ($mode == 'C*') {$diag_select = "diagnostic_id IN (SELECT oid FROM pmsi.t_diagnostics WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ('[T_DIAG_2_RSS_REENTREE]' == 'DRRUM') {$diag_select = $diag_select . " AND type_diagnostic = 'DR' ";} if ('[T_DIAG_2_RSS_REENTREE]' == 'DA') {$diag_select = $diag_select . " AND type_diagnostic IN ('DA', 'DS') ";} if ('[T_DIAG_2_RSS_REENTREE]' == 'DPR') {$diag_select = $diag_select . " AND type_diagnostic IN ('DP', 'DR') ";} if ('[T_DIAG_2_RSS_REENTREE]' == 'DP2') {$diag_select = $diag_select . " AND type_diagnostic = 'DP' ";} if ('[T_DIAG_2_RSS_REENTREE]' == 'DD') {$diag_select = $diag_select . " AND type_diagnostic = 'DD' ";} if ('[T_DIAG_2_RSS_REENTREE]' == 'DHDD') {$diag_select = $diag_select . " AND type_diagnostic != 'DD' ";} if ($diag_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE $diag_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_diagnostics WHERE $diag_select)"; } } } } // Type facturation $mode = substr('[TYPFAC_REENTREE]',0,2); $oid = substr('[TYPFAC_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[TYPFAC_REENTREE]', 2, 2, 'type_facturation_section_id'); $oid = PMSI_get_classe_oid('[TYPFAC_REENTREE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.prestation_principale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.prestation_principale_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.prestation_principale_id IN (SELECT oid FROM pmsi.t_prestations WHERE $section_id = $oid)";} if ($mode == 'DT') {$subselect_select = " v_rss_1.prestation_principale_id = $oid ";} if ($mode == 'PR') {$subselect_select = " v_rss_1.prestation_principale_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } if ('[SEXE]' != '-1') { $select = $select. ' AND v_rss_1.sexe = ' .''. '[SEXE]' .''. ' '; } $mode = substr('[LPP_RSS_REENTREE]',0,2); $oid = substr('[LPP_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[LPP_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[LPP_RSS_REENTREE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "lpp_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "lpp_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LP') {$subselect_select = "lpp_id = $oid ";} if ($mode == 'LS') {$subselect_select = "lpp_id IN (SELECT oid FROM pmsi.t_lpp WHERE $section_id = $oid)";} if ($mode == 'C*') {$subselect_select = "lpp_id IN (SELECT oid FROM pmsi.t_lpp WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_lpp WHERE $subselect_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_lpp WHERE $subselect_select)"; } } $mode = substr('[UCD_RSS_REENTREE]',0,2); $oid = substr('[UCD_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UCD_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[UCD_RSS_REENTREE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "ucd_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "ucd_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LP') {$subselect_select = "ucd_id = $oid ";} if ($mode == 'LS') {$subselect_select = "ucd_id IN (SELECT oid FROM pmsi.t_ucd WHERE $section_id = $oid)";} if ($mode == 'C*') {$subselect_select = "ucd_id IN (SELECT oid FROM pmsi.t_ucd WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_ucd WHERE $subselect_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_ucd WHERE $subselect_select)"; } } $mode = substr('[UM_PRINCIPALE_REENTREE]',0,2); $oid = substr('[UM_PRINCIPALE_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UM_PRINCIPALE_REENTREE]'); $oid = PMSI_get_classe_oid('[UM_PRINCIPALE_REENTREE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = " v_rss_1.unite_medicale_principale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = " v_rss_1.unite_medicale_principale_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = " v_rss_1.unite_medicale_principale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'AN') {$subselect_select = " v_rss_1.unite_medicale_principale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '')";} if ($mode == 'AT') {$subselect_select = " v_rss_1.unite_medicale_principale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')";} if ($mode == 'AU') {$subselect_select = " v_rss_1.unite_medicale_principale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')";} if ($mode == 'UM') {$subselect_select = " v_rss_1.unite_medicale_principale_id = $oid ";} if ($subselect_select != '') { $select = $select. " AND $subselect_select "; } $mode = substr('[UM_RSS_REENTREE]',0,2); $oid = substr('[UM_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UM_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[UM_RSS_REENTREE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "unite_medicale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "unite_medicale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = "unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'AN') {$subselect_select = "unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')";} if ($mode == 'AT') {$subselect_select = "unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')";} if ($mode == 'AU') {$subselect_select = "unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')";} if ($mode == 'UM') {$subselect_select = "unite_medicale_id = $oid ";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_rum WHERE $subselect_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_rum WHERE $subselect_select)"; } } $mode = substr('[PRESTATION_RSS_REENTREE]',0,2); $oid = substr('[PRESTATION_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[PRESTATION_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[PRESTATION_RSS_REENTREE]'); } $subselect_select = ''; if ($mode == 'LI') {$subselect_select = "prestation_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_select = "prestation_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_select = "prestation_id IN (SELECT oid FROM pmsi.t_prestations WHERE $section_id = $oid)";} if ($mode == 'PR') {$subselect_select = "prestation_id = $oid ";} if ($subselect_select != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rsf_detail WHERE $subselect_select)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rsf_detail WHERE $subselect_select)"; } } if ('[ACTE_RSS_SANS_ANESTHESIE_REENTREE]' == 'SANSANESTHESIE') { $select = $select. " AND v_rss_1.avec_anesthesie IS DISTINCT FROM '1' "; } else if ('[ACTE_RSS_SANS_ANESTHESIE_REENTREE]' == 'AVECANESTHESIE') { $select = $select. " AND v_rss_1.avec_anesthesie = '1' "; } // Actes $mode = substr('[ACTE_RSS_REENTREE]',0,2); $oid = substr('[ACTE_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[ACTE_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[ACTE_RSS_REENTREE]'); } $subselect = ''; if ('[ACTE_RSS_ACTIVITE_CCAM_REENTREE]' != 'P') { if ($mode == 'C*') { $subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))"; } if ($mode == 'LI') {$subselect = "acte_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "acte_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid)";} if ($mode == 'NO') {$subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid')";} if ($mode == 'GX') {$subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0)";} if ($mode == 'GM') {$subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid)";} if ($mode == 'RC') {$subselect = "acte_regroupement_id = $oid ";} if ($mode == 'AC') {$subselect = "acte_id = $oid ";} if ('[ACTE_RSS_ACTIVITE_CCAM_REENTREE]' == '1') {$subselect = $subselect . " AND activite_ccam <> '4' ";} if ('[ACTE_RSS_ACTIVITE_CCAM_REENTREE]' == '4') {$subselect = $subselect . " AND activite_ccam = '4' ";} if ($subselect != '') { if (substr($subselect, 0 , 4) == ' AND') { $subselect = substr($subselect, 4); } if ($mode != 'SL') { if ($mode != 'RC') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect)"; } else { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.v_rss_actes_1 WHERE $subselect)"; } } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect)"; } } } else { if ($mode == 'C*') { $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))"; } if ($mode == 'LI') {$subselect = "v_rss_1.acte_principal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "v_rss_1.acte_principal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid)";} if ($mode == 'NO') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid')";} if ($mode == 'GX') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0)";} if ($mode == 'GM') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid)";} if ($mode == 'RC') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE acte_regroupement_id = $oid)";} if ($mode == 'AC') {$subselect = "v_rss_1.acte_principal_id = $oid ";} if ($subselect != '') { $select = $select. " AND $subselect "; } } // Actes (2) $mode = substr('[ACTE_2_RSS_REENTREE]',0,2); $oid = substr('[ACTE_2_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[ACTE_2_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[ACTE_2_RSS_REENTREE]'); } $subselect = ''; if ('[ACTE_2_RSS_ACTIVITE_CCAM_REENTREE]' != 'P') { if ($mode == 'C*') { $subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))"; } if ($mode == 'LI') {$subselect = "acte_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "acte_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid)";} if ($mode == 'NO') {$subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid')";} if ($mode == 'GX') {$subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0)";} if ($mode == 'GM') {$subselect = "acte_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid)";} if ($mode == 'RC') {$subselect = "acte_regroupement_id = $oid ";} if ($mode == 'AC') {$subselect = "acte_id = $oid ";} if ('[ACTE_2_RSS_ACTIVITE_CCAM_REENTREE]' == '1') {$subselect = $subselect . " AND activite_ccam <> '4' ";} if ('[ACTE_2_RSS_ACTIVITE_CCAM_REENTREE]' == '4') {$subselect = $subselect . " AND activite_ccam = '4' ";} if ($subselect != '') { if (substr($subselect, 0 , 4) == ' AND') { $subselect = substr($subselect, 4); } if ($mode != 'SL') { if ($mode != 'RC') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect)"; } else { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.v_rss_actes_1 WHERE $subselect)"; } } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_actes WHERE $subselect)"; } } } else { if ($mode == 'C*') { $subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))"; } if ($mode == 'LI') {$subselect = "v_rss_1.acte_principal_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "v_rss_1.acte_principal_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE $section_id = $oid)";} if ($mode == 'NO') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE nomenclature = '$oid')";} if ($mode == 'GX') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0)";} if ($mode == 'GM') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid)";} if ($mode == 'RC') {$subselect = "v_rss_1.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE acte_regroupement_id = $oid)";} if ($mode == 'AC') {$subselect = "v_rss_1.acte_principal_id = $oid ";} if ($subselect != '') { $select = $select. " AND $subselect "; } } // exécutant Actes $mode = substr('[MEDECIN_ACTE_RSS_REENTREE]',0,2); $oid = substr('[MEDECIN_ACTE_RSS_REENTREE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[MEDECIN_ACTE_RSS_REENTREE]'); $oid = PMSI_get_classe_oid('[MEDECIN_ACTE_RSS_REENTREE]'); } $subselect = ''; if ($mode == 'LI') {$subselect = "medecin_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "medecin_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "medecin_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE $section_id = $oid)";} if ($mode == 'SP') {$subselect = "specialite_interne_medecin_reference_id = $oid ";} if ($mode == 'SO') {$subselect = "specialite_medecin_reference_id = $oid ";} if ($mode == 'C*') {$subselect = "medecin_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'MD') {$subselect = "medecin_reference_id = $oid ";} if ($mode == 'DT') {$subselect = "medecin_reference_id = $oid ";} if ($mode == 'D2') {$subselect = "specialite_interne_medecin_reference_id = $oid ";} if ($subselect != '') { if ($mode != 'SL') { $select = $select. " AND v_rss_1.rss_id IN (SELECT rss_id FROM pmsi.v_rss_actes_1 WHERE $subselect)"; } else { $select = $select. " AND v_rss_1.rss_id NOT IN (SELECT rss_id FROM pmsi.v_rss_actes_1 WHERE $subselect)"; } } if ('[DIVERS_REENTREE]' == 'MULTIRUM') { $select = $select. ' AND (v_rss_1.nb_rum > 1 )'; } if ('[DIVERS_REENTREE]' == 'MONORUM') { $select = $select. ' AND (v_rss_1.nb_rum = 1 )'; } if ('[DIVERS_REENTREE]' == 'EXB') { $select = $select. ' AND v_rss_1.nb_exb <> 0 '; } if ('[DIVERS_REENTREE]' == 'OMITFACNUL') { $select = $select. ' AND (v_rss_1.nb_factures_nulles = 0 )'; } if ('[DIVERS_REENTREE]' == 'OMITFACNULBB') { $select = $select. ' AND (v_rss_1.base_remboursement <> 0 )'; } if ('[DIVERS_REENTREE]' == 'OMITBB') { $select = $select. " AND (v_rss_1.ghm_code NOT ILIKE '15%')"; } return $select; EVAL]]]> janv 2011 à fév 2011 * Trimestre 2 --> avril 2010 à juin 2010 * Trimestre 3 --> juil 2010 à sept 2010 * Trimestre 4 --> oct 2010 à déc 2010 * * On constate que la période de février 2010 à mars 2010 n'est pas prise en compte pour l'accès * au détail alors qu'elle l'est bien pour l'affichage des résultats. * Cette différence de traitement s'explique par le fait qu'il est impossible de sélectionner * plus d'une période dans les combobox de sélection de période de la vue des justificatifs. */ var annee:String = ''; // Code du trimestre sélectionné (de 1 à 4) row_cod = (SELECT.GROUPBY == 'TRIMSOR') ? ROW.OID1 : ROW.OID2; // Mois de début du trimestre var mois_debut:int = 1 + 3 * (parseInt(row_cod, 10) - 1); // Mois de fin du trimestre var mois_fin:int = 3 * parseInt(row_cod, 10); // Nombre d'années entre le début et la fin de la période d'analyse var nb_annees = parseInt(annee_toperiode, 10) - parseInt(annee_periode, 10); if (SELECT.GROUPBY == 'ASOR') { if (ROW.COD1 == annee_periode && (mois_debut <= parseInt(mois_periode, 10) <= mois_fin)) { return SELECT.PERIODE; } else { annee = ROW.COD1; } } else { if (mois_debut <= parseInt(mois_toperiode, 10)) { if (nb_annees == 0 && mois_debut <= mois_periode) { return SELECT_PERIODE; } else { annee = annee_toperiode; } } else { if (mois_debut <= parseInt(mois_periode, 10) && nb_annees == 1) { return SELECT.PERIODE; } else { annee = (parseInt(annee_toperiode, 10) - 1).toString() } } } if (mois_debut < 10) { annee += '0'; } return annee + mois_debut.toString(); } else if (SELECT.GROUPBY == 'ASOR'|| SELECT.GROUPBY_2 == 'ASOR') { row_cod = (SELECT.GROUPBY == 'ASOR') ? ROW.COD1 : ROW.COD2; if (row_cod == annee_periode) { return SELECT.PERIODE; } else { return row_cod + '01'; } } else { return SELECT.PERIODE; } ]]> = parseInt(mois_toperiode, 10)) { return SELECT.TOPERIODE; } else { if (mois_fin < 10) { annee += '0'; } return annee + mois_fin.toString(); } } else if (SELECT.GROUPBY == 'TRIMSOR' || SELECT.GROUPBY_2 == 'TRIMSOR') { row_cod = (SELECT.GROUPBY == 'TRIMSOR') ? ROW.OID1 : ROW.OID2; var mois_debut:int = 1 + 3 * (parseInt(row_cod, 10) - 1); var mois_fin:int = 3 * parseInt(row_cod, 10); var annee:String = ''; if (SELECT.GROUPBY == 'ASOR') { if (ROW.COD1 == annee_toperiode && (mois_debut <= parseInt(mois_toperiode, 10) <= mois_fin)) { return SELECT.TOPERIODE; } else { annee = ROW.COD1; } } else { if (mois_debut <= parseInt(mois_toperiode, 10) <= mois_fin) { return SELECT.TOPERIODE; } else if (mois_fin < parseInt(mois_toperiode, 10)) { annee = annee_toperiode; } else { annee = (parseInt(annee_toperiode) - 1).toString(); } } if (annee != '') { if (mois_fin < 10) { annee += '0'; } return annee + mois_fin.toString(); } } else if (SELECT.GROUPBY == 'ASOR'|| SELECT.GROUPBY_2 == 'ASOR') { row_cod = (SELECT.GROUPBY == 'ASOR') ? ROW.COD1 : ROW.COD2; if (row_cod == annee_toperiode) { return SELECT.TOPERIODE; } else { return row_cod + '12'; } } else { return SELECT.TOPERIODE; } ]]> annee_toperiode) {return 'MONTH';} else if (annee_toperiode > annee_periode) {return 'QUARTER';} else if (mois_toperiode > mois_periode || mois_periode > mois_toperiode) {return 'MONTH';} else if (jour_toperiode - jour_periode > 7) {return 'WEEK2';} else {return 'DAY';} ]]> 0) { return "DEFAULT"; } else { return "indicateurs[17]"; } EVAL] ]]> 0) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id > 0))";} if ($mode == 'GM') {$subselect = " AND (acte_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid) OR acte_ccam_descriptif_id = ANY (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid))";} if ($mode == 'RC') {$subselect = " AND acte_regroupement_id = $oid ";} if ($mode == 'AC') {$subselect = " AND (acte_id = $oid OR acte_ccam_descriptif_id = $oid)";} if ('[ACTE_ACTIVITE_CCAM]' == '6') {$subselect = $subselect . " AND activite_ccam <> '4' ";} if ('[ACTE_ACTIVITE_CCAM]' == '4') {$subselect = $subselect . " AND activite_ccam = '4' ";} if ('[ACTE_ACTIVITE_CCAM]' == '2') {$subselect = $subselect . " AND activite_ccam = '2' ";} if ('[ACTE_ACTIVITE_CCAM]' == '3') {$subselect = $subselect . " AND activite_ccam = '3' ";} if ('[ACTE_ACTIVITE_CCAM]' == '5') {$subselect = $subselect . " AND activite_ccam = '5' ";} if ('[ACTE_ACTIVITE_CCAM]' == '1') {$subselect = $subselect . " AND activite_ccam = '1' ";} // Modificateurs CCAM $mode = substr('[MCC]',0,2); $code = substr('[MCC]',2); if ($mode == 'MC') { $subselect = $subselect . "AND ((modificateur_ccam_1 = '$code'::text) OR (modificateur_ccam_2 = '$code'::text ) OR (modificateur_ccam_3 = '$code'::text) OR (modificateur_ccam_4 = '$code'::text)) "; } // Association non prévue $mode = substr('[ANP]',0,2); $code = substr('[ANP]',2); if ($mode == 'AN') { $subselect = $subselect . "AND association_nonprevue_ccam = '$code'::text "; } // exécutant Actes $mode = substr('[MEDECIN]',0,2); $oid = substr('[MEDECIN]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[MEDECIN]'); $oid = PMSI_get_classe_oid('[MEDECIN]'); } if ($mode == 'LI') {$subselect = $subselect . " AND medecin_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = $subselect . " AND medecin_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = $subselect . " AND medecin_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE $section_id = $oid)";} if ($mode == 'SP') {$subselect = $subselect . " AND specialite_interne_medecin_reference_id = $oid ";} if ($mode == 'SO') {$subselect = $subselect . " AND specialite_medecin_reference_id = $oid ";} if ($mode == 'C*') {$subselect = $subselect . " AND medecin_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'MD') {$subselect = $subselect . " AND medecin_reference_id = $oid ";} if ($mode == 'DT') {$subselect = $subselect . " AND medecin_reference_id = $oid ";} if ($mode == 'D2') {$subselect = $subselect . " AND specialite_interne_medecin_reference_id = $oid ";} // Pole $mode = substr('[POLE]',0,2); $oid = substr('[POLE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[POLE]'); $oid = PMSI_get_classe_oid('[POLE]'); } if ($mode == 'LI') {$subselect = "$subselect AND pole_rum_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "$subselect AND pole_rum_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "$subselect AND pole_rum_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'DT') {$subselect = "$subselect AND pole_rum_id = $oid ";} // Unité médicale $mode = substr('[UM]',0,2); $oid = substr('[UM]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UM]'); $oid = PMSI_get_classe_oid('[UM]'); } if ($mode == 'LI') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = $subselect . " AND unite_medicale_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'AN') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '')";} if ($mode == 'AT') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')";} if ($mode == 'AU') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')";} if ($mode == 'UM') {$subselect = $subselect . " AND unite_medicale_id = $oid ";} // Unité fonctionnelle $mode = substr('[UF]',0,2); $oid = substr('[UF]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UF]'); $oid = PMSI_get_classe_oid('[UF]'); } if ($mode == 'LI') {$subselect = $subselect . " AND unite_fonctionnelle_id = ANY( ARRAY(SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'SL') {$subselect = $subselect . " AND unite_fonctionnelle_id != ALL (ARRAY(SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'LS') {$subselect = $subselect . " AND unite_fonctionnelle_id = ANY( ARRAY(SELECT oid FROM pmsi.t_unites_fonctionnelles WHERE $section_id = $oid)::bigint[])";} if ($mode == 'UF') {$subselect = $subselect . " AND unite_fonctionnelle_id = $oid ";} if ('[ACTE_EXTENSION_DOC]' != '-1') { $val = ''; if ('[ACTE_EXTENSION_DOC]' != '0') { $val = "[ACTE_EXTENSION_DOC]"; } $subselect = $subselect . " AND extension_ccam = '" . $val . "'"; } return $subselect; EVAL]]]> 0)";} if ($mode == 'GM') {$subselect = " AND v_rss_actes_4.acte_principal_id IN (SELECT oid FROM pmsi.t_actes_c WHERE geste_marqueur_id = $oid)";} if ($mode == 'RC') {$subselect = " AND v_rss_actes_4.acte_principal_regroupement_id = $oid ";} if ($mode == 'AC') {$subselect = " AND v_rss_actes_4.acte_principal_id = $oid ";} // exécutant Actes $mode = substr('[MEDECIN]',0,2); $oid = substr('[MEDECIN]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[MEDECIN]'); $oid = PMSI_get_classe_oid('[MEDECIN]'); } if ($mode == 'LI') {$subselect = $subselect . " AND v_rss_actes_4.medecin_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = $subselect . " AND v_rss_actes_4.medecin_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = $subselect . " AND v_rss_actes_4.medecin_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE $section_id = $oid)";} if ($mode == 'SP') {$subselect = $subselect . " AND v_rss_actes_4.specialite_interne_medecin_reference_id = $oid ";} if ($mode == 'SO') {$subselect = $subselect . " AND v_rss_actes_4.specialite_medecin_reference_id = $oid ";} if ($mode == 'C*') {$subselect = $subselect . " AND v_rss_actes_4.medecin_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'MD') {$subselect = $subselect . " AND v_rss_actes_4.medecin_reference_id = $oid ";} if ($mode == 'DT') {$subselect = $subselect . " AND v_rss_actes_4.medecin_reference_id = $oid ";} if ($mode == 'D2') {$subselect = $subselect . " AND v_rss_actes_4.specialite_interne_medecin_reference_id = $oid ";} // anesthesiste Actes $mode = substr('[ANESTHESISTE]',0,2); $oid = substr('[ANESTHESISTE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[ANESTHESISTE]'); $oid = PMSI_get_classe_oid('[ANESTHESISTE]'); } if ($mode == 'LI') {$subselect = $subselect . " AND v_rss_actes_4.anesthesiste_reference_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = $subselect . " AND v_rss_actes_4.anesthesiste_reference_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = $subselect . " AND v_rss_actes_4.anesthesiste_id IN (SELECT oid FROM pmsi.t_anesthesistes_c WHERE $section_id = $oid)";} if ($mode == 'SP') {$subselect = $subselect . " AND v_rss_actes_4.specialite_interne_anesthesiste_reference_id = $oid ";} if ($mode == 'SO') {$subselect = $subselect . " AND v_rss_actes_4.specialite_anesthesiste_reference_id = $oid ";} if ($mode == 'C*') {$subselect = $subselect . " AND v_rss_actes_4.anesthesiste_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'MD') {$subselect = $subselect . " AND v_rss_actes_4.anesthesiste_reference_id = $oid ";} if ($mode == 'DT') {$subselect = $subselect . " AND v_rss_actes_4.anesthesiste_reference_id = $oid ";} if ($mode == 'D2') {$subselect = $subselect . " AND v_rss_actes_4.specialite_interne_anesthesiste_reference_id = $oid ";} // Pole $mode = substr('[POLE]',0,2); $oid = substr('[POLE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[POLE]'); $oid = PMSI_get_classe_oid('[POLE]'); } if ($mode == 'LI') {$subselect = "$subselect AND pole_rum_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "$subselect AND pole_rum_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "$subselect AND pole_rum_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'DT') {$subselect = "$subselect AND pole_rum_id = $oid ";} // Unité médicale $mode = substr('[UM]',0,2); $oid = substr('[UM]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UM]'); $oid = PMSI_get_classe_oid('[UM]'); } if ($mode == 'LI') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = $subselect . " AND unite_medicale_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'AN') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '')";} if ($mode == 'AT') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation <> '')";} if ($mode == 'AU') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')";} if ($mode == 'UM') {$subselect = $subselect . " AND unite_medicale_id = $oid ";} // Unité fonctionnelle $mode = substr('[UF]',0,2); $oid = substr('[UF]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[UF]'); $oid = PMSI_get_classe_oid('[UF]'); } if ($mode == 'LI') {$subselect = $subselect . " AND v_rss_actes_4.unite_fonctionnelle_id = ANY( ARRAY(SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'SL') {$subselect = $subselect . " AND v_rss_actes_4.unite_fonctionnelle_id != ALL (ARRAY(SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)::bigint[])";} if ($mode == 'LS') {$subselect = $subselect . " AND v_rss_actes_4.unite_fonctionnelle_id = ANY( ARRAY(SELECT oid FROM pmsi.t_unites_fonctionnelles WHERE $section_id = $oid)::bigint[])";} if ($mode == 'UF') {$subselect = $subselect . " AND v_rss_actes_4.unite_fonctionnelle_id = $oid ";} return $subselect; EVAL]]]> = 2 jours $duree = substr('[DATA]', 3, 1); switch ($duree) { case '0' : $select = " CASE WHEN severite_ghm_code = '" . $severite . "' THEN 1 ELSE 0 END "; break; case '1' : $select = " CASE WHEN duree_sejour < 2 AND severite_ghm_code = '" . $severite . "' THEN 1 ELSE 0 END "; break; case '2' : $select = " CASE WHEN duree_sejour >= 2 AND severite_ghm_code = '" . $severite . "' THEN 1 ELSE 0 END "; break; default : $select = " CASE WHEN severite_ghm_code = '1' THEN 1 ELSE 0 END "; } return $select; EVAL]]]> = 2 jours $duree = substr('[DATA]', 3, 1); switch ($duree) { case '0' : $select = " nb_rsa "; break; case '1' : $select = " CASE WHEN duree_sejour < 2 THEN 1 ELSE 0 END "; break; case '2' : $select = " CASE WHEN duree_sejour >= 2 THEN 1 ELSE 0 END "; break; default : $select = " nb_rsa "; } return $select; EVAL]]]> '1' AND traitement_epmsi LIKE '3%' "; } if ('[PRIS_EN_COMPTE]' == '0') { $subselect = $subselect . " AND (non_pris_en_compte = '1' OR traitement_epmsi NOT LIKE '3%') "; } return $subselect; EVAL]]]> '1' AND traitement_epmsi LIKE '3%' "; } if ('[PRIS_EN_COMPTE]' == '0') { $subselect = $subselect . " AND (non_pris_en_compte = '1' OR traitement_epmsi NOT LIKE '3%') "; } // Type UCD $mode = substr('[T_UCD]',0,2); $oid = intval(substr('[T_UCD]',2)); if ($mode == 'TU') {$subselect .= " AND type_ucd_id = $oid ";} // indication UCD $mode = substr('[I_UCD]',0,2); $oid = substr('[I_UCD]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[I_UCD]'); $oid = PMSI_get_classe_oid('[I_UCD]'); } if ($mode == 'LI') {$subselect .= "and indication_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect .= "and indication_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'IU') {$subselect .= "and indication_id = $oid ";} if ($mode == 'LS') {$subselect .= "and indication_id IN (SELECT oid FROM pmsi.t_indication WHERE $section_id = $oid)";} if ($mode == 'C*') {$subselect .= "and indication_id IN (SELECT oid FROM pmsi.t_indication WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} return $subselect; EVAL]]]> '')::bigint[])";} if ($mode == 'AU') {$subselect_u = " unite_medicale_id = ANY(ARRAY (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')::bigint[])";} if ($mode == 'UM') {$subselect_u = " unite_medicale_id = $oid ";} if ($subselect_u != '') { $subselect = $subselect . " AND $subselect_u "; } // Pole $mode = substr('[POLE]',0,2); $oid = substr('[POLE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[POLE]'); $oid = PMSI_get_classe_oid('[POLE]'); } if ($mode == 'LI') {$subselect = "$subselect AND pole_rum_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "$subselect AND pole_rum_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "$subselect AND pole_rum_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'DT') {$subselect = "$subselect AND pole_rum_id = $oid ";} // LAMDA $subselect_u = ''; if ('[LAMDA]' == '1') {$subselect_u = " operation_lamda NOT IN ('2','3')";} if ('[LAMDA]' == '2') {$subselect_u = " operation_lamda IN ('2','3')";} if ($subselect_u == '') {$subselect_u = " operation_lamda NOT IN ('1','2')";} if ($subselect_u != '') { $subselect = $subselect . " AND $subselect_u "; } if ('[UM_AUT]' == 'NA') {$subselect = $subselect . " AND type_autorisation = '' ";} if ('[UM_AUT]' == 'TT') {$subselect = $subselect . " AND type_autorisation <> '' ";} if (substr('[UM_AUT]',0,2) == 'TA') {$subselect = $subselect . " AND type_autorisation = '" . substr('[UM_AUT]',2) . "' ";} if (substr('[UM_HOS]',0,2) == 'MH') {$subselect = $subselect . " AND mode_hospitalisation_id = '" . substr('[UM_HOS]',2) . "' ";} if (substr('[UM_DIS]',0,2) == 'DI') {$subselect = $subselect . " AND mode_hospitalisation_id = '" . substr('[UM_DIS]',2) . "' ";} return $subselect; EVAL]]]> '')";} if ($mode == 'AU') {$subselect = " unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')";} if ($mode == 'UM') {$subselect = " unite_medicale_id = $oid ";} if ($subselect != '') { $subselect = " AND $subselect "; } $mode = substr('[POLE]',0,2); $oid = substr('[POLE]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[POLE]'); $oid = PMSI_get_classe_oid('[POLE]'); } if ($mode == 'LI') {$subselect = "$subselect AND pole_rum_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect = "$subselect AND pole_rum_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect = "$subselect AND pole_rum_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE $section_id = $oid)";} if ($mode == 'DT') {$subselect = "$subselect AND pole_rum_id = $oid ";} if ('[UM_AUT]' == 'NA') {$subselect = $subselect . " AND type_autorisation = '' ";} if ('[UM_AUT]' == 'TT') {$subselect = $subselect . " AND type_autorisation <> '' ";} if (substr('[UM_AUT]',0,2) == 'TA') {$subselect = $subselect . " AND type_autorisation = '" . substr('[UM_AUT]',2) . "' ";} if (substr('[UM_HOS]',0,2) == 'MH') {$subselect = $subselect . " AND mode_hospitalisation_id = '" . substr('[UM_HOS]',2) . "' ";} if (substr('[UM_DIS]',0,2) == 'DI') {$subselect = $subselect . " AND discipline_sae_id = '" . substr('[UM_DIS]',2) . "' ";} if (substr('[MODE_ENTREE_RUM]',0,1) == 'I') {$subselect = $subselect . " AND mode_entree_rum = '" . substr('[MODE_ENTREE_RUM]',1) . "' ";} if (substr('[MODE_ENTREE_RUM]',0,1) == 'S') {$subselect = $subselect . " AND mode_entree_rum <> '" . substr('[MODE_ENTREE_RUM]',1) . "' ";} if (substr('[MODE_SORTIE_RUM]',0,1) == 'I') {$subselect = $subselect . " AND mode_sortie_rum = '" . substr('[MODE_SORTIE_RUM]',1) . "' ";} if (substr('[MODE_SORTIE_RUM]',0,1) == 'S') {$subselect = $subselect . " AND mode_sortie_rum <> '" . substr('[MODE_SORTIE_RUM]',1) . "' ";} if (substr('[PROVENANCE_RUM]',0,1) == 'I') {$subselect = $subselect . " AND provenance_rum = '" . substr('[PROVENANCE_RUM]',1) . "' ";} if (substr('[PROVENANCE_RUM]',0,1) == 'S') {$subselect = $subselect . " AND provenance_rum <> '" . substr('[PROVENANCE_RUM]',1) . "' ";} if (substr('[DESTINATION_RUM]',0,1) == 'I') {$subselect = $subselect . " AND destination_rum = '" . substr('[DESTINATION_RUM]',1) . "' ";} if (substr('[DESTINATION_RUM]',0,1) == 'S') {$subselect = $subselect . " AND destination_rum <> '" . substr('[DESTINATION_RUM]',1) . "' ";} if ('[DUREE_SEJOUR_RUM]' != '' && '[DUREE_SEJOUR_RUM2]' != '' ) {$subselect = $subselect . ' AND duree_sejour_rum BETWEEN ' . intval('[DUREE_SEJOUR_RUM]') . ' AND ' . intval('[DUREE_SEJOUR_RUM2]');} if ('[DUREE_SEJOUR_RUM]' != '' ) {$subselect = $subselect . ' AND duree_sejour_rum >= ' . intval('[DUREE_SEJOUR_RUM]');} if ('[DUREE_SEJOUR_RUM2]' != '' ) {$subselect = $subselect . ' AND duree_sejour_rum <= ' . intval('[DUREE_SEJOUR_RUM2]');} // Sélection des médecins $mode = substr('[MEDECIN_RUM]',0,2); $oid = substr('[MEDECIN_RUM]',2); if ($mode == 'LS') { $section_id = PMSI_get_section_id('[MEDECIN_RUM]'); $oid = PMSI_get_classe_oid('[MEDECIN_RUM]'); } if ($mode == 'LI') {$subselect_ = " v_rss_rum_2.medecin_rum_id IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'SL') {$subselect_ = " v_rss_rum_2.medecin_rum_id NOT IN (SELECT to_id FROM pmsi.t_listes_contenu WHERE liste_id = $oid)";} if ($mode == 'LS') {$subselect_ = " v_rss_rum_2.medecin_rum_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE $section_id = $oid)";} if ($mode == 'SP') {$subselect_ = " v_rss_rum_2.specialite_medecin_reference_rum_id = $oid ";} if ($mode == 'SO') {$subselect_ = " v_rss_rum_2.specialite_medecin_reference_rum_id = $oid ";} if ($mode == 'C*') {$subselect_ = " v_rss_rum_2.medecin_rum_id IN (SELECT oid FROM pmsi.t_medecins_c WHERE code ILIKE ANY (base.cti_select_codes('$oid')))";} if ($mode == 'MD') {$subselect_ = " v_rss_rum_2.medecin_rum_id = $oid ";} if ($mode == 'DT') {$subselect_ = " v_rss_rum_2.medecin_rum_id = $oid ";} if ($mode == 'D2') {$subselect_ = " v_rss_rum_2.specialite_medecin_reference_rum_id = $oid ";} if ($subselect_ != '') { $subselect = $subselect. " AND $subselect_"; } return $subselect; EVAL]]]> '')";} if ($mode == 'AU') {$subselect = $subselect . " AND unite_medicale_id IN (SELECT oid FROM pmsi.t_unites_medicales WHERE type_autorisation = '$oid')";} if ($mode == 'UM') {$subselect = $subselect . $subselect . " AND unite_medicale_id = $oid ";} return $subselect; EVAL]]]> count(DISTINCT v_rss_1.rss_id)"; break; case "NBRUM" : return "SUM(nb_rum_rum)"; break; case "NBRUMA" : return "SUM(nb_rum_avec_autorisation)"; break; case "NBJOU" : return "SUM(duree_sejour_rum)"; break; case "DMS" : return "base.cti_division( SUM(duree_sejour_rum) , SUM(CASE WHEN cmd_code <> '28' THEN nb_rum_rum ELSE 0 END) )"; break; case "NBSEA" : return "SUM(nb_seances_rum)"; break; case "IGS2" : return "SUM(igs2_rum)"; break; case "1ME0" : return "SUM(nb_rum_mode_entree_0)"; break; case "1ME6" : return "SUM(nb_rum_mode_entree_6)"; break; case "1ME7" : return "SUM(nb_rum_mode_entree_7)"; break; case "1ME8" : return "SUM(nb_rum_mode_entree_8)"; break; case "1MS0" : return "SUM(nb_rum_mode_sortie_0)"; break; case "1MS6" : return "SUM(nb_rum_mode_sortie_6)"; break; case "1MS7" : return "SUM(nb_rum_mode_sortie_7)"; break; case "1MS8" : return "SUM(nb_rum_mode_sortie_8)"; break; case "1MS9" : return "SUM(nb_rum_mode_sortie_9)"; break; default : return "SUM(0)"; } } function PMSI_PRESTATION_RUM_data($DATA) { if ($DATA == 'SEJVAL') { return "count(DISTINCT CASE WHEN rum_valorise = '1' THEN v_rss_1.rss_id ELSE NULL END)"; } if ($DATA == 'NB') { return "SUM(v_rsf_detail_1.nombre)"; } if ($DATA == 'RUMVAL') { return "count(DISTINCT CASE WHEN rum_valorise = '1' THEN v_rsf_detail_1.rss_id::text || '-' || no_rum::text ELSE NULL END)"; } if ($DATA == 'DURVAL') { return "base.cti_sum_distinct_on(DISTINCT ARRAY[v_rsf_detail_1.rss_id::text || '-' || no_rum::text, v_rsf_detail_1.duree_sejour_rum::text])"; } if ($DATA == 'BR') { return "SUM(v_rsf_detail_1.base_remboursement_rum)"; } if ($DATA == 'BRMRUM') { return "base.cti_division( SUM(v_rsf_detail_1.base_remboursement_rum), count(DISTINCT CASE WHEN rum_valorise = '1' THEN v_rsf_detail_1.rss_id::text || '-' || no_rum::text ELSE NULL END) )"; } if ($DATA == 'BRMJOU') { return "base.cti_division( SUM(v_rsf_detail_1.base_remboursement_rum), base.cti_sum_distinct_on(DISTINCT CASE WHEN rum_valorise = '1' THEN ARRAY[v_rsf_detail_1.rss_id::text || '-' || no_rum::text, GREATEST(v_rsf_detail_1.duree_sejour_rum,1)::text] ELSE NULL END) )"; } if ($DATA == 'BRHT') { return "SUM(v_rsf_detail_1.base_remboursement_rum_sauf_transition)"; } if ($DATA == 'SR') { return "SUM(v_rsf_detail_1.sejour_remboursable_rum)"; } return "SUM(0)"; } function PMSI_EXC_data($DATA) { switch ($DATA) { case "NBRSS" : return "count(DISTINCT v_rss_1.rss_id)"; break; case "NBERR" : return "count(v_rss_1.rss_id)"; break; case "DELCOR" : return "AVG(delai_correction)"; break; default : return "SUM(0)"; } } function PMSI_CA_data_param_data($LS_DATA, $LS_DATA_COL, $DATA, $DEFAULT="", $CASE="", $PERIODE_DUREE="",$COL) { $wdata = $DATA; if ($LS_DATA != "-1") { $wdata_array_1 = explode("=",$LS_DATA); $wdata_array_2 = $wdata_array_1[1]; $wdata_array = explode(",",$wdata_array_2); $wdata = $wdata_array[$LS_DATA_COL-1]; } if($wdata != ""){ return PMSI_CA_data($wdata, $DEFAULT="", $CASE="", $PERIODE_DUREE="",$COL); } } function PMSI_CA_data($DATA, $DEFAULT="", $CASE="", $PERIODE_DUREE="",$COL) { $caseWhen = ""; $caseElseZero = ""; $caseElseNull = ""; if ($CASE != "") { $caseWhen = "CASE WHEN $CASE THEN"; $caseElseZero = "ELSE 0 END"; $caseElseNull = "ELSE NULL END"; } $colWhen= ""; $colEsleZero = ""; $colElseNull = ""; if ($COL == '1') { $colWhen="CASE WHEN COLUMNCHECKSEQUENCE THEN"; $colEsleZero = "ELSE 0 END"; $colElseNull = "ELSE NULL END"; } switch ($DATA) { case '1.1': // Nombre de séjours return "COUNT(DISTINCT $caseWhen $colWhen v_rss_1.rss_id $colElseNull $caseElseNull)"; break; case '1.2': // Nombre de séjours 0 nuit return "SUM($caseWhen $colWhen nb_rsa_0n $colEsleZero $caseElseZero)"; break; case '1.22': // Taux de séjours 0 nuit return "base.cti_division(SUM($caseWhen $colWhen nb_rsa_0n $colEsleZero $caseElseZero),COUNT(DISTINCT $caseWhen $colWhen v_rss_1.rss_id $colElseNull $caseElseNull))*100"; break; case '1.3': // Nombre de séjours 1 nuit return "SUM($caseWhen $colWhen nb_rsa_1n $colEsleZero $caseElseZero)"; break; case '1.4': // Nombre de séjours > 1 nuit return "SUM($caseWhen $colWhen nb_rsa_2n + nb_rsa_xn $colEsleZero $caseElseZero)"; break; case '1.5': // Nombre de séjours 2 nuit return "SUM($caseWhen $colWhen nb_rsa_2n $colEsleZero $caseElseZero)"; break; case '1.6': // Nombre de séjours > 2 nuits return "SUM($caseWhen $colWhen nb_rsa_xn $colEsleZero $caseElseZero)"; break; case '1.7': // Nombre de séances return "SUM($caseWhen $colWhen nb_seances $colEsleZero $caseElseZero)"; break; case '1.8': // Nombre de patients return "COUNT(DISTINCT $caseWhen $colWhen patient_id $colElseNull $caseElseNull)"; break; case '1.9': // Nombre de journées hospitalisé return "SUM($caseWhen $colWhen duree_sejour $colEsleZero $caseElseZero)"; break; case '1.11': // Nombre de journées d'hospitalisation return "SUM($caseWhen $colWhen duree_sejour + nb_rsa_0n + nb_seances $colEsleZero $caseElseZero)"; break; case '1.12': // Nombre EXH return "SUM($caseWhen $colWhen nb_exh $colEsleZero $caseElseZero)"; break; case '1.13': // Nombre EXB return "SUM($caseWhen $colWhen nb_exb $colEsleZero $caseElseZero)"; break; case '1.14': // Nombre de séjours hospitalisé return "SUM($caseWhen $colWhen nb_rsa_1n + nb_rsa_2n + nb_rsa_xn $colEsleZero $caseElseZero)"; break; case '1.15': // Age moyen des patients return "base.cti_division(SUM($caseWhen $colWhen v_rss_1.age $colEsleZero $caseElseZero),COUNT(DISTINCT $caseWhen $colWhen v_rss_1.rss_id $colElseNull $caseElseNull))"; break; case '10.13': // Age moy public qualifié return "base.cti_division(SUM($caseWhen $colWhen age_public $colEsleZero $caseElseZero),SUM($caseWhen $colWhen nb_rsa_public $colEsleZero $caseElseZero))"; break; case '10.14': // Age moy privé qualifié return "base.cti_division(SUM($caseWhen $colWhen ghm_nat.age_prive $colEsleZero $caseElseZero),SUM($caseWhen $colWhen ghm_nat.nb_rsa_prive $colEsleZero $caseElseZero))"; break; case '1.16': // Séjours dont séances return "SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero)"; break; case '3.1': // DMS return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN duree_sejour ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '3.15': // DMS hospi return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' AND duree_sejour >=1 THEN duree_sejour ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN duree_sejour >=1 THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '2.1': // CA T2A return "SUM($caseWhen $colWhen t2a_facture $colEsleZero $caseElseZero)"; break; case '5.1': // CA T2A 0 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '6.1': // CA T2A 1 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '7.1': // CA T2A hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.2': // CA etablissement, clinique return "SUM($caseWhen $colWhen base_remboursement $colEsleZero $caseElseZero)"; break; case '5.2': // CA etab, cli 0 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN base_remboursement ELSE 0 END $colEsleZero $caseElseZero)"; break; case '6.2': // CA etab, cli 1 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN base_remboursement ELSE 0 END $colEsleZero $caseElseZero)"; break; case '7.2': // CA etab, cli hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN base_remboursement ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.3': // CA moyen etablissement, clinique return "base.cti_division(SUM($caseWhen $colWhen base_remboursement $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '10.2': // CA Clinique journalier return "base.cti_division(SUM($caseWhen $colWhen base_remboursement $colEsleZero $caseElseZero),SUM($caseWhen $colWhen duree_sejour + nb_rsa_0n + nb_seances $colEsleZero $caseElseZero))"; break; case '5.3': // CA moyen etablissement, clinique 0 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN base_remboursement ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '6.3': // CA moyen etablissement, clinique 1 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN base_remboursement ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '7.3': // CA moyen etablissement, clinique hospitalisé return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN base_remboursement ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '2.4': // CA moyen T2A return "base.cti_division(SUM($caseWhen $colWhen t2a_facture $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '5.4': // CA moyen T2A 0 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '6.4': // CA moyen T2A 1 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '7.4': // CA moyen T2A hospitalisé return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '2.5': // CA T2A journalier return "base.cti_division(SUM($caseWhen $colWhen t2a_facture $colEsleZero $caseElseZero),SUM($caseWhen $colWhen duree_sejour + nb_rsa_0n + nb_seances $colEsleZero $caseElseZero))"; break; case '5.5': // CA T2A journalier 0 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen nb_rsa_0n + nb_seances $colEsleZero $caseElseZero))"; break; case '6.5': // CA T2A journalier 1 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen nb_rsa_1n + nb_seances $colEsleZero $caseElseZero))"; break; case '7.5': // CA T2A journalier hospitalisé return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN t2a_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen duree_sejour + nb_seances $colEsleZero $caseElseZero))"; break; case '2.6': // CA GHS facturé return "SUM($caseWhen $colWhen ca_ghs $colEsleZero $caseElseZero)"; break; case '5.6': // CA GHS facturé 0 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN ca_ghs ELSE 0 END $colEsleZero $caseElseZero)"; break; case '6.6': // CA GHS facturé 1 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN ca_ghs ELSE 0 END $colEsleZero $caseElseZero)"; break; case '7.6': // CA GHS facturé hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN ca_ghs ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.7': // CA GHS Théorique return "SUM($caseWhen $colWhen ca_ghs_theorique $colEsleZero $caseElseZero)"; break; case '5.7': // CA GHS Théorique 0 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN ca_ghs_theorique ELSE 0 END $colEsleZero $caseElseZero)"; break; case '6.7': // CA GHS Théorique 1 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN ca_ghs_theorique ELSE 0 END $colEsleZero $caseElseZero)"; break; case '7.7': // CA GHS Théorique hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN ca_ghs_theorique ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.8': // CA moyen GHS return "base.cti_division(SUM($caseWhen $colWhen ca_ghs $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '5.8': // CA moyen GHS 0 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN ca_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '6.8': // CA moyen GHS 1 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN ca_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '7.8': // CA moyen GHS hospitalisé return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN ca_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '2.9': // CA DMI return "SUM($caseWhen $colWhen dmi_facture $colEsleZero $caseElseZero)"; break; case '5.9': // CA DMI 0 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN dmi_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '6.9': // CA DMI 1 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN dmi_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '7.9': // CA DMI hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN dmi_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.17': // CA moyen DMI return "base.cti_division(SUM($caseWhen $colWhen dmi_facture $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '5.17': // CA moyen DMI 0 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN dmi_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '6.17': // CA moyen DMI 1 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN dmi_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '7.17': // CA moyen DMI hospitalisé return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN dmi_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '2.11': // CA PHC return "SUM($caseWhen $colWhen phc_facture $colEsleZero $caseElseZero)"; break; case '5.11': // CA PHC 0 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN phc_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '6.11': // CA PHC 1 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN phc_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '7.11': // CA PHC hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN phc_facture ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.12': // CA moyen PHC return "base.cti_division(SUM($caseWhen $colWhen phc_facture $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '5.12': // CA moyen PHC 0 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN phc_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '6.12': // CA moyen PHC 1 nuit return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN phc_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '7.12': // CA moyen PHC hospitalisé return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN phc_facture ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero))"; break; case '2.13': // CA EXH return "SUM($caseWhen $colWhen ca_exh $colEsleZero $caseElseZero)"; break; case '7.13': // CA EXH hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN ca_exh ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.14': // CA EXB return "SUM($caseWhen $colWhen ca_exb $colEsleZero $caseElseZero)"; break; case '7.14': // CA EXB hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN ca_exb ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.15': // CA manque à gagner EXB return "SUM($caseWhen $colWhen 0 - ca_perte_exb $colEsleZero $caseElseZero)"; break; case '7.15': // CA manque à gagner EXB hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN ca_perte_exb ELSE 0 END $colEsleZero $caseElseZero)"; break; case '2.16': // CA honoraires return "SUM($caseWhen $colWhen honoraires_factures $colEsleZero $caseElseZero)"; break; case '5.16': // CA honoraires 0 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN honoraires_factures ELSE 0 END $colEsleZero $caseElseZero)"; break; case '6.16': // CA honoraires 1 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN honoraires_factures ELSE 0 END $colEsleZero $caseElseZero)"; break; case '7.16': // CA honoraires hospitalisé return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN honoraires_factures ELSE 0 END $colEsleZero $caseElseZero)"; break; case '9.0': // CA total return "SUM($caseWhen $colWhen base_remboursement + honoraires_factures $colEsleZero $caseElseZero)"; break; case '10.0': // CA total 0 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_seances > '0' OR nb_rsa_0n > '0' THEN base_remboursement + honoraires_factures ELSE 0 END $colEsleZero $caseElseZero)"; break; case '10.01': // CA total 1 nuit return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' THEN base_remboursement + honoraires_factures ELSE 0 END $colEsleZero $caseElseZero)"; break; case '10.1': // CA total hospitalisés return "SUM($caseWhen $colWhen CASE WHEN nb_rsa_1n > '0' OR nb_rsa_xn > '0' OR nb_rsa_2n > '0' THEN base_remboursement + honoraires_factures ELSE 0 END $colEsleZero $caseElseZero)"; break; case '9.9': // CA total moyen return "base.cti_division(SUM($caseWhen $colWhen base_remboursement + honoraires_factures $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '9.1': // CA Forfaits return "SUM($caseWhen $colWhen forfait_facture $colEsleZero $caseElseZero)"; break; case '9.3': // Nombre de séjours 0 nuit avec seances return "SUM($caseWhen $colWhen CASE WHEN duree_sejour = '0' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '9.4': // CA Autre return "SUM($caseWhen $colWhen base_remboursement - (t2a_facture + dmi_facture + phc_facture) $colEsleZero $caseElseZero)"; break; case '9.6': // CA Autre T2A return "SUM($caseWhen $colWhen t2a_facture - (ca_ghs + ca_exh + forfait_facture) $colEsleZero $caseElseZero)"; break; case '9.5': // Nombre de GHM return "COUNT(DISTINCT $caseWhen $colWhen v_rss_1.ghm_id $colElseNull $caseElseNull)"; break; case '9.7': // Rehosp même GHM return "SUM($caseWhen $colWhen CASE WHEN rehosp_meme_ghm = '1' THEN ca_perte_exb ELSE 0 END $colEsleZero $caseElseZero)"; break; case '9.8': // Minoration forfaitaire return "SUM($caseWhen $colWhen CASE WHEN rehosp_meme_ghm = '0' AND nb_ghsmin = '1' AND ca_perte_exb > '0' THEN ca_perte_exb ELSE 0 END $colEsleZero $caseElseZero)"; break; case '10': // Nombre CHIR AMBU return "SUM($caseWhen $colWhen CASE WHEN duree_sejour = '0' AND cas_code = 'C' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '10.12': // Nombre décès return "SUM($caseWhen $colWhen CASE WHEN mode_sortie = '9' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '10.11': // DMS GHS nationale return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN dms_nationale_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '3.2': // Ecart DMS return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN duree_sejour ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero)) - base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN dms_nationale_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero)) "; break; case '3.3': // Performance ATIH return "base.cti_division(SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero) * base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN dms_nationale_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero)),SUM($caseWhen $colWhen duree_sejour $colEsleZero $caseElseZero)) "; break; case '3.4': // Performance ANAP return "base.cti_division(SUM($caseWhen $colWhen duree_sejour $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero) * base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN dms_nationale_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))) "; break; case '3.5': // Jours bénéficiaires return "SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] < 0 THEN 0 - ecart_[VIEW.DMS_FIELD] ELSE 0 END $colEsleZero $caseElseZero)"; break; case '3.6': // Jours indus return "SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] > 0 THEN ecart_[VIEW.DMS_FIELD] ELSE 0 END $colEsleZero $caseElseZero)"; break; case '3.7': // Ratio Indus / Bénéficiaires return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] > 0 THEN ecart_[VIEW.DMS_FIELD] ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] < 0 THEN 0 - ecart_[VIEW.DMS_FIELD] ELSE 0 END $colEsleZero $caseElseZero)) "; break; case '3.8': // Séjours < DMS Ref return "SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] < 0 THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '3.9': // Séjours = DMS Ref return "SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] = 0 THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '3.11': // Séjours = DMS Ref + 1 return "SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] = 1 THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '3.12': // Séjours = DMS Ref + 2 return "SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] = 2 THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '3.13': // Séjours = DMS Ref + 3 return "SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] = 3 THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '3.14': // Séjours > DMS Ref + 3 return "SUM($caseWhen $colWhen CASE WHEN ecart_[VIEW.DMS_FIELD] > 3 THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '10.30': // Séjours dans département return "count(DISTINCT $caseWhen $colWhen case when substring(v_rss_1.finess from 1 for 2) = substring(v_rss_1.code_postal from 1 for 2) then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '10.31': // Séjours hors département return "count(DISTINCT $caseWhen $colWhen case when substring(v_rss_1.finess from 1 for 2) != substring(v_rss_1.code_postal from 1 for 2) then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '10.32': // Séjours dans région return "COUNT (DISTINCT $caseWhen $colWhen CASE WHEN (SELECT region_id FROM pmsi.v_codes_postaux_2 where substring(v_rss_1.finess from 1 for 2) = substring(v_codes_postaux_2.code_postal_code from 1 for 2) limit 1) = v_codes_postaux_2.region_id THEN v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '10.33': // Séjours hors région return "COUNT (DISTINCT $caseWhen $colWhen CASE WHEN (SELECT region_id FROM pmsi.v_codes_postaux_2 where substring(v_rss_1.finess from 1 for 2) = substring(v_codes_postaux_2.code_postal_code from 1 for 2) limit 1) != v_codes_postaux_2.region_id THEN v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '10.34': // Séjours patient hommes return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.sexe = '1' THEN CASE WHEN cmd_code = '28' THEN 1 ELSE v_rss_1.nb_rsa END ELSE 0 END $colEsleZero $caseElseZero)"; break; case '10.35': // Séjours patient femmes return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.sexe = '2' THEN CASE WHEN cmd_code = '28' THEN 1 ELSE v_rss_1.nb_rsa END ELSE 0 END $colEsleZero $caseElseZero)"; break; case '10.36': // Age médian séjour return "base.cti_array_median(array_agg(age))"; break; case '11.1': // Nombre de rsa transmis return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '11.2': // RSA en CMD 90 : nombre de RSA groupés dans la CM 90 (groupage en erreur) return "SUM($caseWhen $colWhen CASE WHEN substr(ghm_code,1,2) = '90' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '11.3': // : nombre de RSA correspondant aux séjours 9999 return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.ghs_code ilike '9999%' AND en_cours = '0' AND cas_code not in ('*','?') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '11.4': // dont RSA en J ou T0 return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND duree_sejour = '0' AND ( SUBSTRING(ghm_code,6,1) = 'J' OR ghm_code in ('01M05T','01M07T','01M08T','01M09T','01M10T','01M17T','01M21T','01M22T','01M28T','02M04T','02M05T','02M07T','02M08T','03M02T','03M07T','03M10T','03M11T','04M08T','04M13T','04M14T','04M17T','04M19T','04M20T','04M23T','04M26T','05M06T','05M10T','05M16T','05M23T','06M07T','06M17T','07M04T','07M08T','07M09T','07M14T','08M09T','08M10T','08M14T','08M15T','08M33T','08M34T','08M36T','09M02T','09M03T','09M06T','09M07T','09M10T','09M11T','09M14T','10M09T','10M11T','10M14T','11M03T','11M04T','11M08T','11M10T','11M15T','11M16T','11M19T','12M05T','12M07T','14M03T','16M09T','16M13T','16M15T','17M08T','17M09T','17M15T','17M16T','17M17T','18M10T','19M12T','19M19T','21M04T','21M15T','23M02T','23M10T','23M11T','23M21T','23Z02T')) THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '11.5': // Nb de RSA en UHCD réaffecté return "SUM($caseWhen $colWhen CASE WHEN mode_entree ='8' AND mode_sortie='8' AND duree_sejour > '0' AND en_cours = '0' AND cas_code not in ('*','?') AND top_uhcd='1' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '11.6': // Nombre de séjours/seances total return "SUM($caseWhen $colWhen CASE WHEN type_sejour_ovalide in ('1','2','3') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '11.7': // Type de séjour = Mode Entrée=7 et Mode sortie=7 return "SUM($caseWhen $colWhen CASE WHEN mode_entree = '7' AND mode_sortie = '7' AND type_sejour_ovalide in ('1','2','3') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '11.8': // Type de séjour = Mode Entrée=6 et Mode sortie=6 return "SUM($caseWhen $colWhen CASE WHEN mode_entree = '6' AND mode_sortie = '6' AND type_sejour_ovalide in ('1','2','3') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '11.9': // Type de séjour = multirum return "SUM($caseWhen $colWhen CASE WHEN nb_rum > 1 AND type_sejour_ovalide in ('1','2','3') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '12.1': // Nombre de séjours/seances de type de séjour = GHM niveau J ou T ou duree séjour < 2 (type_sejour_ovalide = '1') return "SUM($caseWhen $colWhen CASE WHEN type_sejour_ovalide = '1' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '12.2': // Nombre de séjours/seances de type de séjour = CM 28 (type_sejour_ovalide = '2') return "SUM($caseWhen $colWhen CASE WHEN type_sejour_ovalide = '2' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '12.3': // Nombre de séjours/seances type de séjour (type_sejour_ovalide = '3') = autres GHM (hors niveau J ou T ou durée de séjour < 2 et CM 28). return "SUM($caseWhen $colWhen CASE WHEN type_sejour_ovalide = '3' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '13.1': // Nombre de séjours en chirurgie return "SUM($caseWhen $colWhen CASE WHEN substring(ghm_code,3,1) = 'C' AND en_cours = '0' AND cas_code not in ('*','?') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '13.2': // Nombre de séjours en chirurgie avec acte opératoire le jour d'entrée return "SUM($caseWhen $colWhen CASE WHEN cas_code ='C' AND en_cours = '0' AND cas_code not in ('*','?') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '13.3': // Nombre de séjours avec sortie transfert ou mutation return "SUM($caseWhen $colWhen CASE WHEN mode_sortie = '6' OR mode_sortie in ('0','7') AND en_cours = '0' AND cas_code not in ('*','?') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '13.4': // Nombre de séjours avec sortie domicile return "SUM($caseWhen $colWhen CASE WHEN mode_sortie = '8' AND en_cours = '0' AND cas_code not in ('*','?') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '13.5': // Nombre de journées d'hospitalisation return "SUM($caseWhen $colWhen duree_sejour + nb_seances $colEsleZero $caseElseZero)"; break; case '13.6': // Nombre de séjours autres GHM return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND cmd_code <> '28' AND ( SUBSTRING(ghm_code,6,1) <> 'J') AND ( ghm_code NOT IN ('01M05T','01M07T','01M08T','01M09T','01M10T','01M17T','01M21T','01M22T','01M28T','02M04T','02M05T','02M07T','02M08T','03M02T','03M07T','03M10T','03M11T','04M08T','04M13T','04M14T','04M17T','04M19T','04M20T','04M23T','04M26T','05M06T','05M10T','05M16T','05M23T','06M07T','06M17T','07M04T','07M08T','07M09T','07M14T','08M09T','08M10T','08M14T','08M15T','08M33T','08M34T','08M36T','09M02T','09M03T','09M06T','09M07T','09M10T','09M11T','09M14T','10M09T','10M11T','10M14T','11M03T','11M04T','11M08T','11M10T','11M15T','11M16T','11M19T','12M05T','12M07T','14M03T','16M09T','16M13T','16M15T','17M08T','17M09T','17M15T','17M16T','17M17T','18M10T','19M12T','19M19T','21M04T','21M15T','23M02T','23M10T','23M11T','23M21T','23Z02T')) THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '13.7': // Nombre de RSA de la CM 28 return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND cmd_code = '28' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '13.8': // Nombre moyen de séances par RSA établissement return "base.cti_division(SUM($caseWhen $colWhen nb_seances $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '13.9' : // Nombre de RSA hors séances return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND cmd_code <> '28' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '14.0' : // Nb décés / rsa return "SUM($caseWhen $colWhen CASE WHEN mode_sortie = '9' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero"; break; case '14.1' : // Ratio décès /rsa base nationale return "base.cti_division(SUM($caseWhen $colWhen ghm_nat.nb_deces_prive $colEsleZero $caseElseZero),SUM($caseWhen $colWhen ghm_nat.nb_rsa_prive $colEsleZero $caseElseZero))*100"; break; case '14.2' : // Nombre séjours / séances niveau J ou T return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND ( SUBSTRING(ghm_code,6,1) = 'J' OR SUBSTRING (ghm_code,6,1) = 'T') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '14.3' : // Nombre séjours / séances niveau 1 ou A return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND ( SUBSTRING(ghm_code,6,1) = '1' OR SUBSTRING (ghm_code,6,1) = 'A') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '14.4' : // Nombre séjours / séances niveau 2 ou B return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND ( SUBSTRING(ghm_code,6,1) = '2' OR SUBSTRING (ghm_code,6,1) = 'B') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '14.5' : // Nombre séjours / séances niveau 3 ou C return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND ( SUBSTRING(ghm_code,6,1) = '3' OR SUBSTRING (ghm_code,6,1) = 'C') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '14.6' : // Nombre séjours / séances niveau 4 ou D return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND ( SUBSTRING(ghm_code,6,1) = '4' OR SUBSTRING (ghm_code,6,1) = 'D') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '14.7' : // Nombre séjours / séances niveau E return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND ( SUBSTRING(ghm_code,6,1) = 'E') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '14.8' : // Nombre séjours / séances niveau Z return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND ( SUBSTRING(ghm_code,6,1) = 'Z') THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '14.9' : // séjours / séances niveau J ou T base nationale return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND (nb_sev_j_prive > 0 OR nb_sev_t_prive > 0) THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '15.1': // Nombre de journées hors CMD28 et niveau J ou T0 return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND (SUBSTRING(ghm_code,6,1) <> 'J' OR ghm_code not in ('01M05T','01M07T','01M08T','01M09T','01M10T','01M17T','01M21T','01M22T','01M28T','02M04T','02M05T','02M07T','02M08T','03M02T','03M07T','03M10T','03M11T','04M08T','04M13T','04M14T','04M17T','04M19T','04M20T','04M23T','04M26T','05M06T','05M10T','05M16T','05M23T','06M07T','06M17T','07M04T','07M08T','07M09T','07M14T','08M09T','08M10T','08M14T','08M15T','08M33T','08M34T','08M36T','09M02T','09M03T','09M06T','09M07T','09M10T','09M11T','09M14T','10M09T','10M11T','10M14T','11M03T','11M04T','11M08T','11M10T','11M15T','11M16T','11M19T','12M05T','12M07T','14M03T','16M09T','16M13T','16M15T','17M08T','17M09T','17M15T','17M16T','17M17T','18M10T','19M12T','19M19T','21M04T','21M15T','23M02T','23M10T','23M11T','23M21T','23Z02T')) AND cmd_code <> '28' THEN duree_sejour ELSE 0 END $colEsleZero $caseElseZero)"; break; case '15.2': // Nombre de journées hors CMD28 et niveau J ou T0 standardisé return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND (SUBSTRING(ghm_code,6,1) <> 'J' OR ghm_code not in ('01M05T','01M07T','01M08T','01M09T','01M10T','01M17T','01M21T','01M22T','01M28T','02M04T','02M05T','02M07T','02M08T','03M02T','03M07T','03M10T','03M11T','04M08T','04M13T','04M14T','04M17T','04M19T','04M20T','04M23T','04M26T','05M06T','05M10T','05M16T','05M23T','06M07T','06M17T','07M04T','07M08T','07M09T','07M14T','08M09T','08M10T','08M14T','08M15T','08M33T','08M34T','08M36T','09M02T','09M03T','09M06T','09M07T','09M10T','09M11T','09M14T','10M09T','10M11T','10M14T','11M03T','11M04T','11M08T','11M10T','11M15T','11M16T','11M19T','12M05T','12M07T','14M03T','16M09T','16M13T','16M15T','17M08T','17M09T','17M15T','17M16T','17M17T','18M10T','19M12T','19M19T','21M04T','21M15T','23M02T','23M10T','23M11T','23M21T','23Z02T')) AND cmd_code <> '28' THEN duree_sejour ELSE 0 END $colEsleZero $caseElseZero)"; break; case '15.3': // Performance globale return "base.cti_division (SUM(),SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND (SUBSTRING(ghm_code,6,1) <> 'J' OR ghm_code not in ('01M05T','01M07T','01M08T','01M09T','01M10T','01M17T','01M21T','01M22T','01M28T','02M04T','02M05T','02M07T','02M08T','03M02T','03M07T','03M10T','03M11T','04M08T','04M13T','04M14T','04M17T','04M19T','04M20T','04M23T','04M26T','05M06T','05M10T','05M16T','05M23T','06M07T','06M17T','07M04T','07M08T','07M09T','07M14T','08M09T','08M10T','08M14T','08M15T','08M33T','08M34T','08M36T','09M02T','09M03T','09M06T','09M07T','09M10T','09M11T','09M14T','10M09T','10M11T','10M14T','11M03T','11M04T','11M08T','11M10T','11M15T','11M16T','11M19T','12M05T','12M07T','14M03T','16M09T','16M13T','16M15T','17M08T','17M09T','17M15T','17M16T','17M17T','18M10T','19M12T','19M19T','21M04T','21M15T','23M02T','23M10T','23M11T','23M21T','23Z02T')) AND cmd_code <> '28' THEN duree_sejour ELSE 0 END $colEsleZero $caseElseZero))"; break; case '15.4': // Nombre de séjours standardisé return "SUM($caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') AND (SUBSTRING(ghm_code,6,1) <> 'J' OR ghm_code not in ('01M05T','01M07T','01M08T','01M09T','01M10T','01M17T','01M21T','01M22T','01M28T','02M04T','02M05T','02M07T','02M08T','03M02T','03M07T','03M10T','03M11T','04M08T','04M13T','04M14T','04M17T','04M19T','04M20T','04M23T','04M26T','05M06T','05M10T','05M16T','05M23T','06M07T','06M17T','07M04T','07M08T','07M09T','07M14T','08M09T','08M10T','08M14T','08M15T','08M33T','08M34T','08M36T','09M02T','09M03T','09M06T','09M07T','09M10T','09M11T','09M14T','10M09T','10M11T','10M14T','11M03T','11M04T','11M08T','11M10T','11M15T','11M16T','11M19T','12M05T','12M07T','14M03T','16M09T','16M13T','16M15T','17M08T','17M09T','17M15T','17M16T','17M17T','18M10T','19M12T','19M19T','21M04T','21M15T','23M02T','23M10T','23M11T','23M21T','23Z02T')) AND cmd_code <> '28' THEN v_rss_1.nb_rsa*dms_nationale_ghs ELSE 0 END $colEsleZero $caseElseZero)"; break; case '15.5': // Diffénce DMS BNat - DMS ETAB return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN dms_nationale_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN v_rss_1.nb_rsa ELSE 0 END $colEsleZero $caseElseZero)) - base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN duree_sejour ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen v_rss_1.nb_rsa $colEsleZero $caseElseZero))"; break; case '15.6': // Nombre de diagnostics return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') THEN diagnostic_principal_id + diagnostic_relie_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '16.1': // Nombre de séjours return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rss_1.rss_id::text,$caseWhen $colWhen (nb_rsa)::text $colElseNull $caseElseNull])"; break; case '16.2': // Nombre de Patients return "COUNT(DISTINCT $caseWhen $colWhen v_rss_1.patient_id $colElseNull $caseElseNull)"; break; case '16.3': // Nombre prestations Quantité de prestations : Nombre x Coefficient return "SUM($caseWhen $colWhen nombre_coefficient $colEsleZero $caseElseZero)"; break; case '16.4': // Montant facturé (BR) return "SUM($caseWhen $colWhen v_rsf_detail_1.base_remboursement $colEsleZero $caseElseZero)"; break; case '16.5': // Montant facturé (BR) Hors coefficient return "SUM($caseWhen $colWhen v_rsf_detail_1.base_remboursement_sauf_transition $colEsleZero $caseElseZero)"; break; case '16.6': // Montant remboursé return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi IN ('30') then v_rsf_detail_1.sejour_remboursable ELSE 0 END $colEsleZero $caseElseZero)"; break; case '16.7': // Nombre de séjours non valorisé return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi IN ('21','22','23','24','25','26') then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '16.8': // Montant non valorisés return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi IN ('21','22','23','24','25','26') then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '16.9': // Nombre de séjours non traités prestation inter-établissement return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi = '12' then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '17.1': // Montant non traités prestation inter-établissement return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi = '12' then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '17.2': // Nombre de séjours non valorisés pb chainage return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi = '21' then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '17.3': // Montant non valorisés pb chainage return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi = '21' then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '17.4': // Nombre de séjours non valorisés pb variable bloquante return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi = '22' then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '17.5': // Montant non valorisés pb variable bloquante return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi = '22' then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '17.6': // Nombre de séjours non valorisés non facturable AM return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('24','31','33') THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '17.7': // Montant non valorisés non facturable AM return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('24','31','33') then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '17.8': // Montant lié à la suppression des SI/SC en cas de limitation return "SUM( $caseWhen $colWhen CASE WHEN prestation_code = 'LIM_SRC' AND v_rsf_detail_1.base_remboursement_sauf_transition < 0 then (v_rsf_detail_1.base_remboursement_sauf_transition)*(-1) ELSE 0 END $colEsleZero $caseElseZero)"; break; case '17.9': // Nombre de séjours valorisés return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '18.1': // Nombre de séjours valorisés en hospitalisation complète return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') and duree_sejour > 0 then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '18.2': // Nombre de séjours sans nuitée return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') THEN nb_rsa_0n ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '18.3': // Nombre de séances valorisés return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND cmd_code = '28' THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '18.4': // Nombre de séjours transmis return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN en_cours = '0' AND cas_code not in ('*','?') THEN v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '18.5': // Montant des séjours supprimés return "SUM( $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi not in ('30','32') then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '19.0': // Nombre de séjours transmis return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text, nb_rsa::text])"; break; case '19.1': // Nombre de séjours Non traités return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('11','12','13','14','15','21','22','23','24','25','26','31','32','33') THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '19.2': // Montant non traités return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('11','12','13','14','15','21','22','23','24','25','26','31','32','33') THEN v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '19.3': // Montant valorisés return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '19.4': // Montant valorisés hospitalisation compléte return "SUM($caseWhen $colWhen CASE WHEN duree_sejour > 0 AND v_rss_1.traitement_epmsi IN ('30') AND prestation_code != 'LIM_SRC' then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '19.5': // Montant valorisés sans nuitée return "SUM($caseWhen $colWhen CASE WHEN duree_sejour = 0 AND v_rss_1.traitement_epmsi IN ('30') AND prestation_code != 'LIM_SRC' AND cmd_code <> '28' then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '19.6': // Montant valorisés des séances return "SUM($caseWhen $colWhen CASE WHEN cmd_code = '28' AND v_rss_1.traitement_epmsi IN ('30') AND prestation_code != 'LIM_SRC' then v_rsf_detail_1.base_remboursement_sauf_transition ELSE 0 END $colEsleZero $caseElseZero)"; break; case '19.7': // Nombre prestations supprimé Quantité de prestations : Nombre x Coefficient return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi not in ('30','32') THEN nombre_coefficient ELSE 0 END $colEsleZero $caseElseZero)"; break; case '19.8': // Séjours taux de remb différent de 100 et montant TM égal à 0 return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text, ($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND v_vidhosp_1.taux_remboursement_utilise <> 100 and v_vidhosp_1.montant_tm = 0 THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '19.9': // Séjours taux de remb égal à 100 et montant TM différent de 0 return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text, ($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND v_vidhosp_1.taux_remboursement_utilise = 100 and v_vidhosp_1.montant_tm <> 0 THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '20.1': // Séjours FJ à la charge de l'assuré et montant FJ égal à 0 return "COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_vidhosp_1.code_pec_fj_id = 2 AND v_vidhosp_1.montant_fj = 0 then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '20.2': // Séjours FJ n'est pas applicable et montant FJ différent de 0 return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,( $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND v_vidhosp_1.code_pec_fj_utilise = 'X' and montant_fj <> 0 THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '20.3' : // Séjours où FJ et DS non compatibles (à voir) return "COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30') AND v_vidhosp_1.code_pec_fj_utilise <> 'X' and 1=0 and (((v_rss_1.duree_sejour * 20) <> v_vidhosp_1.montant_fj) or ((v_rss_1.duree_sejour * 18) <> v_vidhosp_1.montant_fj) or ((v_rss_1.duree_sejour + 1 * 20) <> v_vidhosp_1.montant_fj) OR ((v_rss_1.duree_sejour + 1 * 18) <> v_vidhosp_1.montant_fj)) then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '20.4': // Séjours où mnt BR différent de mnt AM + mnt TM return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,( $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND v_vidhosp_1.base_remboursement <> ( v_vidhosp_1.montant_remboursable_amo + v_vidhosp_1.montant_tm) THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '20.5' : // Séjours de + 30 jours avec exo Tm=2, transfert depuis MCO et Tx remb différent de 100% (**) return "COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_rss_1.duree_sejour > 30 AND v_vidhosp_1.exoneration_tm_code = '2' AND mode_entree = '7' AND provenance = '1' and v_vidhosp_1.taux_remboursement <> 100 then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '20.6': // Autres séjours avec exo Tm=2 et Tx remb=100% (***) return "COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_vidhosp_1.exoneration_tm_code = '2' AND v_vidhosp_1.taux_remboursement = 100 then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull)"; break; case '20.7': // Séjours sans anomalies return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30','31','32','33') then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull) - ( COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_vidhosp_1.taux_remboursement = 100 and v_vidhosp_1.montant_tm <> 0 then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull) + COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_vidhosp_1.code_pec_fj_id = 2 AND v_vidhosp_1.montant_fj = 0 then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull) + COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_vidhosp_1.code_pec_fj_code='X' and montant_fj <> 0 and no_entree <> '' then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull) + COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_vidhosp_1.base_remboursement <> ( v_vidhosp_1.montant_remboursable_amo + v_vidhosp_1.montant_tm) then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull) + COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_rss_1.duree_sejour > 30 AND v_vidhosp_1.exoneration_tm_code = '2' AND mode_entree = '7' AND provenance = '1' and v_vidhosp_1.taux_remboursement <> 100 then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull) + COUNT(DISTINCT $caseWhen $colWhen case when v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_vidhosp_1.exoneration_tm_code = '2' AND v_vidhosp_1.taux_remboursement = 100 then v_rss_1.rss_id ELSE NULL END $colElseNull $caseElseNull) )"; break; case '21.1': // Nombre de séjours EXB return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND nb_exb = 1 AND rehosp_meme_ghm <> '1' THEN nb_rsa ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '21.2': // Nombre de séjours avec réhosp dans le même GHM return "COUNT(DISTINCT $caseWhen $colWhen CASE WHEN (nb_ghsmin = 1 OR rehosp_meme_ghm = '1') AND ca_perte_exb <> 0 THEN v_rss_1.no_rss ELSE NULL END $colElseNull $caseElseNull)"; break; case '21.3': // Montant BR des séjours EXB avec coefficient prudentiel return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rss_1.no_rss::text, ($caseWhen $colWhen CASE WHEN nb_exb <> 0 AND nb_ghsmin = 0 AND rehosp_meme_ghm <> '1' THEN 0 - ca_perte_exb ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '21.4': // Montant BR total des séjours EXB return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rss_1.no_rss::text, ($caseWhen $colWhen CASE WHEN nb_exb <> 0 AND nb_ghsmin = 0 AND rehosp_meme_ghm <> '1' THEN 0 - base_remboursement_exb_sauf_transition_sans_arrondi ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '21.5': // Montant BR des séjours avec réhosp dans le même GHM avec coefficient prudentiel return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rss_1.no_rss::text, ($caseWhen $colWhen CASE WHEN nb_exb = 1 AND rehosp_meme_ghm = '1' THEN 0 - ca_perte_exb ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '21.6': // Montant de séjours avec réhosp dans le même GHM return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rss_1.no_rss::text, ($caseWhen $colWhen CASE WHEN nb_exb = 1 AND rehosp_meme_ghm = '1' THEN 0 - base_remboursement_exb_sauf_transition_sans_arrondi ELSE NULL END $colElseNull $caseElseNull)::text])"; break; case '21.7': // Montant facturé (BR) avec coefficient prudentiel sans déduction montant EXB return "SUM($caseWhen $colWhen v_rsf_detail_1.base_remboursement + ca_perte_exb $colEsleZero $caseElseZero)"; break; case '21.8': // Montant BR sans déduction du montant EXB return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') then v_rsf_detail_1.base_remboursement_sauf_transition - base_remboursement_exb_sauf_transition_sans_arrondi ELSE 0 END $colEsleZero $caseElseZero)"; break; case '21.9': // Montant GHS sans déduction du montant EXB return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND prestation_code='GHS' then v_rsf_detail_1.base_remboursement_sauf_transition - base_remboursement_exb_sauf_transition_sans_arrondi ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.1': //Dt Nb réalisés aux urgences return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND activite_urgence='1' then nombre_coefficient ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.2': //Dt Mnt BR réalisé aux urgences return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND activite_urgence='1' then v_rsf_detail_1.base_remboursement ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.3': //Dt Mnt AM réalisé aux urgences return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') AND activite_urgence='1' then v_rsf_detail_1.sejour_remboursable ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.4': //MT activité programmée hors urgence return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30') then v_rsf_detail_1.sejour_remboursable ELSE 0 END $colEsleZero $caseElseZero) - SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30','31','32','33') AND activite_urgence='1' then v_rsf_detail_1.sejour_remboursable ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.5': //MT BR valorisé par FIDES return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.cas_code not in ('C','K','X','N','O','S') AND v_rsf_total_1.valorise_fides_id = 1 AND v_rss_1.traitement_epmsi IN ('30', '31', '32','33') THEN v_rsf_detail_1.base_remboursement ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.6': //MT BR non valorisé par FIDES return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.cas_code not in ('C','K','X','N','O','S') AND v_rsf_total_1.valorise_fides_id = 0 AND v_rss_1.traitement_epmsi IN ('30', '31', '32','33') THEN v_rsf_detail_1.base_remboursement ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.7': //MT remboursé AM valorisé par FIDES return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.cas_code not in ('C','K','X','N','O','S') AND v_rsf_total_1.valorise_fides_id = 1 AND v_rss_1.traitement_epmsi IN ('30', '31', '32','33') THEN v_rsf_detail_1.sejour_remboursable ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.8': //MT Remboursé AM non valorisé par FIDES return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.cas_code not in ('C','K','X','N','O','S') AND v_rsf_total_1.valorise_fides_id = 0 AND v_rss_1.traitement_epmsi IN ('30', '31', '32','33') THEN v_rsf_detail_1.sejour_remboursable ELSE 0 END $colEsleZero $caseElseZero)"; break; case '22.9': //Dt Nb de prestations valorisé par FIDES return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_rsf_total_1.valorise_fides_id = 1 then nombre_coefficient ELSE 0 END $colEsleZero $caseElseZero)"; break; case '23.1': //Dt Nb de prestations non valorisé par FIDES return "SUM($caseWhen $colWhen CASE WHEN v_rss_1.traitement_epmsi in ('30','31','32','33') AND v_rsf_total_1.valorise_fides_id = 0 then nombre_coefficient ELSE 0 END $colEsleZero $caseElseZero)"; break; case '23.2': //Nb séjours non controlés return "base.cti_sum_distinct_on( DISTINCT ARRAY[v_rsf_detail_1.no_rss::text,(CASE WHEN (v_vidhosp_1.taux_remboursement_utilise <> v_vidhosp_1.taux_remboursement and v_vidhosp_1.taux_remboursement_utilise = 100 and (hospit_nouveau_ne = 1 or prelevement_organe = 1)) OR (code_pec <> '1' AND v_vidhosp_1.taux_remboursement_utilise = 80) THEN nb_rsa ELSE NULL END)::text])"; break; case '23.3': // CA GHS BRUT return "SUM($caseWhen $colWhen v_rss_1.ca_ghs_sans_coefficient $colEsleZero $caseElseZero)"; break; default: return "COUNT(DISTINCT $caseWhen $colWhen v_rss_1.rss_id $colElseNull $caseElseNull)"; } } function PMSI_RSS_data($DATA, $DEFAULT="", $CASE="", $PERIODE_DUREE="",$COL) { $caseWhen = ""; $caseElseZero = ""; $caseElseNull = ""; if ($CASE != "") { $caseWhen = "CASE WHEN $CASE THEN"; $caseElseZero = "ELSE 0 END"; $caseElseNull = "ELSE NULL END"; } $colWhen= ""; $colEsleZero = ""; $colElseNull = ""; if ($COL == '1') { $colWhen="CASE WHEN COLUMNCHECKSEQUENCE THEN"; $colEsleZero = "ELSE 0 END"; $colElseNull = "ELSE NULL END"; } switch ($DATA) { case '1': // Nombre de séjours return "COUNT(DISTINCT $caseWhen $colWhen v_rss_1.rss_id $colElseNull $caseElseNull)"; break; case '2': // Nombre de séjours 0 nuit return "SUM($caseWhen $colWhen nb_rsa_0n $colEsleZero $caseElseZero)"; break; case '3': // Nombre de séjours 1 nuit return "SUM($caseWhen $colWhen nb_rsa_1n $colEsleZero $caseElseZero)"; break; case '3.3': // Nombre de séjours > 1 nuit return "SUM($caseWhen $colWhen nb_rsa_2n + nb_rsa_xn $colEsleZero $caseElseZero)"; break; case '4': // Nombre de séjours 2 nuit return "SUM($caseWhen $colWhen nb_rsa_2n $colEsleZero $caseElseZero)"; break; case '5': // Nombre de séjours > 2 nuits return "SUM($caseWhen $colWhen nb_rsa_xn $colEsleZero $caseElseZero)"; break; case '10': // Nombre CHIR AMBU return "SUM($caseWhen $colWhen CASE WHEN duree_sejour = '0' AND cas_code = 'C' THEN nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '1.16': // Séjours dont séances return "SUM($caseWhen $colWhen nb_rsa $colEsleZero $caseElseZero)"; break; case '6': // Nombre de séances return "SUM($caseWhen $colWhen nb_seances $colEsleZero $caseElseZero)"; break; case '7': // Nombre de journées hospitalisé return "SUM($caseWhen $colWhen duree_sejour $colEsleZero $caseElseZero)"; break; case '1.17': // Nombre de GHM return "COUNT(DISTINCT $caseWhen $colWhen v_rss_1.ghm_id $colElseNull $caseElseNull)"; break; case '9': // Nombre décès return "SUM($caseWhen $colWhen CASE WHEN mode_sortie = '9' THEN nb_rsa ELSE 0 END $colEsleZero $caseElseZero)"; break; case '1.15': // Age moyen des patients return "base.cti_division(SUM($caseWhen $colWhen age $colEsleZero $caseElseZero),COUNT(DISTINCT $caseWhen $colWhen v_rss_1.rss_id $colElseNull $caseElseNull))"; break; case '10.13': // Age moy public qualifié return "base.cti_division(SUM($caseWhen $colWhen age_public $colEsleZero $caseElseZero),SUM($caseWhen $colWhen nb_rsa_public $colEsleZero $caseElseZero))"; break; case '10.14': // Age moy privé qualifié return "base.cti_division(SUM($caseWhen $colWhen ghm_nat.age_prive $colEsleZero $caseElseZero),SUM($caseWhen $colWhen ghm_nat.nb_rsa_prive $colEsleZero $caseElseZero))"; break; case '8': // DMS return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN duree_sejour ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen nb_rsa $colEsleZero $caseElseZero))"; break; case '8.1': // DMS GHS return "base.cti_division(SUM($caseWhen $colWhen CASE WHEN cmd_code <> '28' THEN dms_nationale_ghs ELSE 0 END $colEsleZero $caseElseZero),SUM($caseWhen $colWhen nb_rsa $colEsleZero $caseElseZero))"; break; case '1.8': // Nombre de patients return "COUNT(DISTINCT $caseWhen $colWhen patient_id $colElseNull $caseElseNull)"; break; case '1.11': // Nombre de journées d'hospitalisation return "SUM($caseWhen $colWhen duree_sejour + nb_rsa_0n + nb_seances $colEsleZero $caseElseZero)"; break; case '1.14': // Nombre de séjours hospitalisé return "SUM($caseWhen $colWhen nb_rsa_1n + nb_rsa_2n + nb_rsa_xn $colEsleZero $caseElseZero)"; break; default: return "COUNT(DISTINCT $caseWhen $colWhen v_rss_1.rss_id $colElseNull $caseElseNull)"; } } ]]> v_rss_1.date_sortie THEN '-' || to_char(v_rss_1.date_sortie,'DD/MM/YYYY') ELSE '' END || ')'";} if ($groupby == '6' || $groupby == 'MEDRUM') {$txt_field = $prefixe . '_nom';} if ($groupby == 'EXEC' || $groupby == 'EXECACTE') {$txt_field = $prefixe . '_nom';} if ($groupby == 'ANESTH') {$txt_field = $prefixe . '_nom';} if ($groupby == 'TYPFAC') {$txt_field = $prefixe . '_code';} if ($groupby == 'ASOR') {$txt_field = $prefixe;} if ($groupby == 'TRIMSOR') {$txt_field = "'Trimestre ' || " . $prefixe . "::text";} if ($groupby == 'ATRIMSOR') {$txt_field = "(extract(year FROM v_rss_1.date_sortie)::text || ' Trimestre ' || extract(quarter FROM v_rss_1.date_sortie)::text)";} if ($groupby == 'G_DIAGSEV') {$txt_field = "CASE WHEN diagnostic_severite_fg2023_code = '0' THEN 'Pas de Severite' ELSE 'Niveau ' || diagnostic_severite_fg2023_code END ";} if ($groupby == 'TERSANTE') {$txt_field = "COALESCE(" . $txt_field . ", 'Non renseigné')";} if ($groupby == 'SEUIL_CANCERO' || $groupby == 'SEUIL_CANCERO_ROOT' || $groupby == 'SEUIL_CANCERO_PRINCIPAL_ROOT' || $groupby == 'SEUIL_CANCERO_PRINCIPAL') {$txt_field = "COALESCE(" . $txt_field . ", 'Hors Cancéro. soumise à seuil')";} if ($groupby == 'MENRUM') {$txt_field = $prefixe.'.mode_entree_rum_texte';} if ($groupby == 'MSORUM') {$txt_field = $prefixe.'.mode_sortie_rum_texte';} if ($groupby == 'PR') {$txt_field = "v_modes_entree_link.mode_entree_texte || CASE WHEN v_rss_1.provenance = '' THEN '' ELSE ' - ' || v_provenances_entree_link.provenance_texte END";} if ($groupby == 'DS') {$txt_field = "v_modes_sortie_link.mode_sortie_texte || CASE WHEN v_rss_1.destination = '' THEN '' ELSE ' - ' || v_destinations_sortie_link.destination_texte END";} if ($groupby == 'TX_REMB') {$txt_field = "v_rss_1.taux_remboursement::text || ' %'";} if ($groupby == 'ETAT_EPMSI') {$txt_field = "CASE WHEN traitement_epmsi = '00' THEN 'Dossier en cours' WHEN traitement_epmsi = '11' THEN 'Non traités. CMD 90 hors 90H02Z et 90H03Z' WHEN traitement_epmsi = '12' THEN 'Non traités. Prestation inter_établissement' WHEN traitement_epmsi = '13' THEN 'Non traités. GHS 9999' WHEN traitement_epmsi = '14' THEN 'Sans titre' WHEN traitement_epmsi = '15' THEN 'Cohérence RSF' WHEN traitement_epmsi = '21' THEN 'Non valorisés. Pb chainage' WHEN traitement_epmsi = '22' THEN 'Non valorisés. Pb variable bloquante' WHEN traitement_epmsi = '23' THEN 'Non valorisés. Attente décision droits' WHEN traitement_epmsi = '24' THEN 'Non valorisés. Non facturables AM' WHEN traitement_epmsi = '25' THEN 'Non valorisés. Prélèvement organes patient décédé' WHEN traitement_epmsi = '26' THEN 'Non valorisés. Erreur inconnue (VALOSEJ)' WHEN traitement_epmsi = '30' THEN 'Valorisé' WHEN traitement_epmsi = '31' THEN 'Valorisé (AME)' WHEN traitement_epmsi = '32' THEN 'Valorisé (IVG)' WHEN traitement_epmsi = '33' THEN 'Valorisé (SU)' ELSE 'Code non répertorié' END ";} if ($groupby == 'EXTDOC') {$txt_field = "CASE WHEN extension_ccam = '1' THEN 'Anesthésie générale' WHEN extension_ccam = '2' THEN 'Anesthésie locorégionale péridurale ou épidurale' WHEN extension_ccam = '3' THEN 'Anesthésie locorégionale subarachnoïdienne [rachianesthésie]' WHEN extension_ccam = '4' THEN 'Anesthésie locorégionale plexique ou tronculaire' WHEN extension_ccam = '5' THEN 'Anesthésie locorégionale intraveineuse' WHEN extension_ccam = '6' THEN 'Anesthésie générale ou avec anesthésie locorégionale' ELSE 'Non renseigée' END";} return $txt_field . '::text'; } ]]>