= '[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';
}
]]>