From b1896ea6e78bb1864c4df95235b84c70e3801e85 Mon Sep 17 00:00:00 2001 From: ymi Date: Fri, 19 Sep 2025 11:32:56 +0200 Subject: [PATCH] initial commit --- db/data/dbdata_activite_t_classes.SQL | 96 + .../dbdata_activite_t_classes_sections.SQL | 539 + ...ivite_t_classes_sections_elements_ages.SQL | 178 + ...classes_sections_elements_duree_sejour.SQL | 10058 +++++++ ..._classes_sections_elements_etat_sejour.SQL | 83 + ...asses_sections_elements_forme_activite.SQL | 192 + ...tivite_t_classes_sections_elements_ghm.SQL | 10086 +++++++ ...lasses_sections_elements_prestations_c.SQL | 182 + db/data/dbdata_activite_t_divers.SQL | 52 + db/data/dbdata_activite_t_etat_sejour.SQL | 66 + db/data/dbdata_activite_t_expert_controle.SQL | 137 + ...dbdata_activite_t_expert_controle_rule.SQL | 192 + db/data/dbdata_activite_t_forme_activite.SQL | 102 + .../dbdata_activite_t_indicateur_theme.SQL | 100 + db/data/dbdata_activite_t_indicateurs.SQL | 856 + db/data/dbdata_activite_t_kiwee_params.SQL | 37 + db/data/dbdata_activite_t_listes.SQL | 85 + db/data/dbdata_activite_t_listes_tables.SQL | 155 + db/data/dbdata_activite_t_prestations.SQL | 569 + db/data/dbdata_activite_t_rapports.SQL | 150 + .../dbdata_activite_t_rapports_rubriques.SQL | 1225 + db/data/dbdata_activite_t_severites_cti.SQL | 52 + .../dbdata_activite_t_traitement_epmsi.SQL | 62 + db/data/dbdata_activite_t_type_hospi_pmsi.SQL | 57 + db/data/dbdata_activite_t_type_sejour.SQL | 53 + db/data/dbdata_activite_t_types_gmt.SQL | 37 + db/data/dbdata_activite_t_vue_parametre.SQL | 77 + db/data2/dbdata_activite_t_classes.csv | 19 + .../dbdata_activite_t_classes_sections.csv | 413 + ...ivite_t_classes_sections_elements_ages.csv | 122 + ...classes_sections_elements_duree_sejour.csv | 10001 +++++++ ..._classes_sections_elements_etat_sejour.csv | 27 + ...asses_sections_elements_forme_activite.csv | 136 + ...tivite_t_classes_sections_elements_ghm.csv | 10036 +++++++ ...lasses_sections_elements_prestations_c.csv | 126 + db/data2/dbdata_activite_t_divers.csv | 11 + db/data2/dbdata_activite_t_etat_sejour.csv | 15 + .../dbdata_activite_t_expert_controle.csv | 28 + ...dbdata_activite_t_expert_controle_rule.csv | 122 + db/data2/dbdata_activite_t_forme_activite.csv | 46 + .../dbdata_activite_t_indicateur_theme.csv | 50 + db/data2/dbdata_activite_t_indicateurs.csv | 506 + db/data2/dbdata_activite_t_kiwee_params.csv | 2 + db/data2/dbdata_activite_t_listes.csv | 17 + db/data2/dbdata_activite_t_listes_tables.csv | 106 + db/data2/dbdata_activite_t_prestations.csv | 508 + db/data2/dbdata_activite_t_rapports.csv | 16 + .../dbdata_activite_t_rapports_rubriques.csv | 899 + db/data2/dbdata_activite_t_severites_cti.csv | 10 + .../dbdata_activite_t_traitement_epmsi.csv | 11 + .../dbdata_activite_t_type_hospi_pmsi.csv | 11 + db/data2/dbdata_activite_t_type_sejour.csv | 7 + db/data2/dbdata_activite_t_types_gmt.csv | 5 + db/data2/dbdata_activite_t_vue_parametre.csv | 30 + db/dbsetup_data_activite.XML | 1972 ++ db/dvp_data_apply.bat | 4 + db/dvp_data_extract.bat | 2 + db/hooks/install_db_last_jobs.sql | 5 + db/hooks/post_install_data.sql | 3 + db/hooks/pre_install_data.sql | 9 + db/hooks/pre_install_schema.sql | 136 + .../functions/calcul_encours~da,tx.yaml | 6201 +++++ db/schema2/functions/cti_ajust_encours.yaml | 356 + db/schema2/functions/cti_ajust_fildeleau.yaml | 429 + .../functions/cti_ajust_fildeleau_rsf.yaml | 231 + .../functions/cti_budget_execute_rules.yaml | 591 + .../functions/cti_budget_generate_keys.yaml | 2552 ++ .../cti_budget_translate_list~tx.yaml | 23 + .../functions/cti_calc_duree_occupation.yaml | 83 + .../functions/cti_calcul_hdj_mouvements.yaml | 116 + .../cti_calcul_journees_mouvements.yaml | 1328 + .../cti_cegi_signe_reglement~nu,bia,nua.yaml | 248 + ...xecute_compte_produit_analytique_rule.yaml | 502 + .../cti_filiere_soin_execute_rule.yaml | 740 + db/schema2/functions/cti_gen_0ets.yaml | 194 + db/schema2/functions/cti_gen_dma_ssr.yaml | 577 + db/schema2/functions/cti_gen_dotation.yaml | 249 + .../functions/cti_gen_sejour_effet_tarif.yaml | 576 + .../functions/cti_initialize_tables.yaml | 246 + .../functions/cti_kiwee_sigems_honpatcpt.yaml | 343 + db/schema2/functions/cti_now_activite~tx.yaml | 36 + db/schema2/functions/cti_now~tx,tx.yaml | 75 + ...r~tx,tx,in,in,bi,bi,bi,bi,bi,bi,bi,bi.yaml | 76 + ...dicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi.yaml | 72 + .../cti_prepare_rapport_comp~bi,tx,tx.yaml | 370 + .../cti_prepare_rapport_comp~bi.yaml | 96 + .../cti_prepare_rapport_get_column~tx,tx.yaml | 109 + ...cti_prepare_rapport_indicateurs~bi,tx.yaml | 238 + .../cti_prepare_rapport_maxoid~bi.yaml | 41 + .../cti_prepare_rapport_month~bi.yaml | 67 + .../functions/cti_prepare_rapport~bi.yaml | 75 + .../functions/cti_reorganize_actes_c.yaml | 197 + .../functions/cti_reorganize_ages_c.yaml | 74 + .../cti_reorganize_controle_chiffrier.yaml | 281 + .../cti_reorganize_durees_sejour_c.yaml | 46 + .../cti_reorganize_etages_places.yaml | 166 + .../functions/cti_reorganize_finess_c.yaml | 177 + .../cti_reorganize_forme_activite.yaml | 1480 + .../functions/cti_reorganize_ghm_c.yaml | 328 + .../functions/cti_reorganize_ghmgme_c.yaml | 139 + .../functions/cti_reorganize_ghs_c.yaml | 179 + .../functions/cti_reorganize_gme_c.yaml | 86 + .../functions/cti_reorganize_gmt_c.yaml | 32 + .../cti_reorganize_indicateur_condition.yaml | 1410 + .../functions/cti_reorganize_lieux_c.yaml | 940 + ..._reorganize_medecins_administratifs_c.yaml | 313 + .../functions/cti_reorganize_places.yaml | 939 + db/schema2/functions/cti_reorganize_pole.yaml | 1123 + .../cti_reorganize_rubrique_facture_c~tx.yaml | 175 + .../functions/cti_reorganize_sejour_pmsi.yaml | 966 + .../functions/cti_reorganize_sejours~tx.yaml | 53 + .../cti_reorganize_tiers_payant.yaml | 240 + .../functions/cti_reorganize_ucd_lpp_c.yaml | 746 + db/schema2/functions/cti_solde_auto.yaml | 632 + db/schema2/functions/cti_transform_uf.yaml | 267 + db/schema2/functions/cti_transform_um.yaml | 267 + .../cti_update_schema_classes~tx.yaml | 311 + .../functions/cti_ventilation_lignes~tx.yaml | 373 + ...get_montant_fj_valorise_par_sejour~tx.yaml | 22 + ...om_classement~tx,tx,tx,in,in,tx,tx,tx.yaml | 277 + db/schema2/functions/get_parametre~tx.yaml | 27 + .../get_rapport_columns_case~in,tx.yaml | 36 + .../functions/get_rapport_columns~in.yaml | 48 + .../functions/get_rapport_joins~in.yaml | 67 + .../get_valorisation_gmt_forfaitisables.yaml | 96 + .../get_valorisation_gmt_hc_sans_zf.yaml | 80 + ...isation_gmt_hospitalisation_partielle.yaml | 40 + ...t_valorisation_gmt_non_forfaitisables.yaml | 65 + .../valoriser_sejours_groupes_smr.yaml | 100 + db/schema2/sequences/s_activites.yaml | 5 + db/schema2/sequences/s_bloc.yaml | 5 + .../sequences/s_bloc_motif_intervention.yaml | 5 + db/schema2/sequences/s_bloc_occupation.yaml | 5 + db/schema2/sequences/s_bloc_salle.yaml | 5 + .../sequences/s_bloc_salle_disponibilite.yaml | 5 + db/schema2/sequences/s_budget.yaml | 5 + db/schema2/sequences/s_budget_cle.yaml | 5 + db/schema2/sequences/s_budget_cle_rule.yaml | 5 + db/schema2/sequences/s_budget_indicateur.yaml | 5 + db/schema2/sequences/s_budgets.yaml | 5 + db/schema2/sequences/s_budgets_saisis.yaml | 5 + db/schema2/sequences/s_calcul_encours.yaml | 5 + db/schema2/sequences/s_chart.yaml | 5 + db/schema2/sequences/s_classes.yaml | 5 + db/schema2/sequences/s_classes_sections.yaml | 5 + db/schema2/sequences/s_compte.yaml | 5 + .../s_compte_produit_analytique_rule.yaml | 5 + db/schema2/sequences/s_dashboard.yaml | 5 + db/schema2/sequences/s_dashboard_filter.yaml | 5 + db/schema2/sequences/s_dashboard_onglet.yaml | 5 + db/schema2/sequences/s_dashboard_widget.yaml | 5 + db/schema2/sequences/s_etages.yaml | 5 + db/schema2/sequences/s_etat_sejour.yaml | 5 + db/schema2/sequences/s_expert_controle.yaml | 5 + .../sequences/s_expert_controle_rule.yaml | 5 + db/schema2/sequences/s_factures.yaml | 5 + db/schema2/sequences/s_factures_encours.yaml | 5 + db/schema2/sequences/s_filiere_soin.yaml | 5 + db/schema2/sequences/s_filiere_soin_rule.yaml | 5 + db/schema2/sequences/s_forme_activite.yaml | 5 + .../sequences/s_forme_activite_rule.yaml | 5 + .../sequences/s_indicateur_condition.yaml | 5 + .../s_indicateur_condition_table.yaml | 5 + db/schema2/sequences/s_indicateur_serie.yaml | 5 + db/schema2/sequences/s_indicateur_theme.yaml | 5 + db/schema2/sequences/s_indicateurs.yaml | 5 + db/schema2/sequences/s_journal.yaml | 5 + db/schema2/sequences/s_kiwee_params.yaml | 5 + db/schema2/sequences/s_lieux.yaml | 5 + db/schema2/sequences/s_listes.yaml | 5 + db/schema2/sequences/s_listes_tables.yaml | 5 + db/schema2/sequences/s_lit_historique.yaml | 5 + db/schema2/sequences/s_lits.yaml | 5 + db/schema2/sequences/s_medecins.yaml | 5 + .../s_medecins_traitants_administratifs.yaml | 5 + .../sequences/s_motif_non_facturation.yaml | 5 + .../s_parametre_personnalise_sejour_1.yaml | 5 + .../s_parametre_personnalise_sejour_2.yaml | 5 + db/schema2/sequences/s_pole_rule.yaml | 5 + db/schema2/sequences/s_prestations.yaml | 5 + db/schema2/sequences/s_protocoles.yaml | 5 + db/schema2/sequences/s_rapports.yaml | 5 + db/schema2/sequences/s_rejets_noemie.yaml | 5 + db/schema2/sequences/s_risque.yaml | 5 + .../sequences/s_rubrique_facture_c.yaml | 5 + .../sequences/s_rubriques_facturation.yaml | 5 + db/schema2/sequences/s_sejour.yaml | 5 + db/schema2/sequences/s_sejours.yaml | 5 + db/schema2/sequences/s_service_rubrique.yaml | 5 + .../s_service_rubrique_dotation.yaml | 5 + .../sequences/s_services_facturation.yaml | 5 + .../sequences/s_sigems_transformation_uf.yaml | 5 + .../sequences/s_specialites_medecin.yaml | 5 + db/schema2/sequences/s_tiers_payant.yaml | 5 + db/schema2/sequences/s_transformation.yaml | 5 + .../sequences/s_unites_fonctionnelles.yaml | 5 + db/schema2/sequences/s_unites_medicales.yaml | 5 + .../sequences/s_validation_parametre.yaml | 5 + db/schema2/sequences/s_vue_parametre.yaml | 5 + .../sequences/s_web100t_forcage_uf_soin.yaml | 5 + db/schema2/tables/p_bloc_occupation.yaml | 92 + db/schema2/tables/p_budgets_generes.yaml | 34 + db/schema2/tables/p_chiffrier.yaml | 8 + db/schema2/tables/p_chiffrier_comptable.yaml | 35 + .../p_chiffrier_data_calcule_gliss.yaml | 37 + db/schema2/tables/p_chiffrier_occupation.yaml | 26 + .../p_chiffrier_resultat_calcule_gliss.yaml | 51 + db/schema2/tables/p_chiffrier_shs.yaml | 27 + .../tables/p_consolidation_translation.yaml | 30 + db/schema2/tables/p_coordonnees_patient.yaml | 17 + db/schema2/tables/p_duree_occupation.yaml | 53 + db/schema2/tables/p_ecriture_comptable.yaml | 75 + .../tables/p_expert_sejour_controle.yaml | 34 + .../p_facture_encours_ligne_valorise_c.yaml | 78 + .../tables/p_facture_ligne_valorise_c.yaml | 75 + .../tables/p_facture_solde_tiers_c.yaml | 66 + .../tables/p_facture_solde_tiers_h.yaml | 66 + db/schema2/tables/p_factures.yaml | 438 + db/schema2/tables/p_factures_comptables.yaml | 39 + db/schema2/tables/p_factures_encours.yaml | 155 + .../tables/p_factures_encours_lignes_c.yaml | 118 + db/schema2/tables/p_factures_lignes_c.yaml | 184 + db/schema2/tables/p_factures_lignes_h.yaml | 185 + .../p_factures_lignes_non_facturees_c.yaml | 63 + .../p_factures_lignes_non_facturees_h.yaml | 66 + db/schema2/tables/p_factures_reference.yaml | 357 + .../tables/p_factures_reference_tiers.yaml | 347 + db/schema2/tables/p_factures_rejets.yaml | 28 + db/schema2/tables/p_factures_soldes_c.yaml | 70 + db/schema2/tables/p_factures_soldes_h.yaml | 85 + db/schema2/tables/p_gmt_valorises.yaml | 29 + db/schema2/tables/p_indicateurs_cumules.yaml | 40 + db/schema2/tables/p_intervention.yaml | 42 + db/schema2/tables/p_mouvements_sejour.yaml | 206 + db/schema2/tables/p_oids.yaml | 16 + db/schema2/tables/p_patients.yaml | 29 + db/schema2/tables/p_sejour_effet_tarif.yaml | 134 + db/schema2/tables/p_sejour_filiere_soin.yaml | 14 + db/schema2/tables/p_sejour_lieu.yaml | 26 + db/schema2/tables/p_sejour_pmsi.yaml | 35 + db/schema2/tables/p_sejours.yaml | 406 + db/schema2/tables/p_sejours_assurance.yaml | 48 + db/schema2/tables/p_sejours_budget_cle.yaml | 14 + db/schema2/tables/p_sejours_groupes_smr.yaml | 53 + .../p_sejours_parametres_personnalises.yaml | 14 + db/schema2/tables/p_sejours_preadmission.yaml | 18 + db/schema2/tables/p_sejours_transferts.yaml | 12 + db/schema2/tables/t_actes_c.yaml | 110 + db/schema2/tables/t_activites.yaml | 35 + db/schema2/tables/t_ages_c.yaml | 24 + db/schema2/tables/t_bloc.yaml | 21 + .../tables/t_bloc_motif_intervention.yaml | 27 + db/schema2/tables/t_bloc_salle.yaml | 33 + .../tables/t_bloc_salle_disponibilite.yaml | 27 + db/schema2/tables/t_budget.yaml | 27 + db/schema2/tables/t_budget_cle.yaml | 23 + db/schema2/tables/t_budget_cle_budget.yaml | 18 + db/schema2/tables/t_budget_cle_rule.yaml | 52 + db/schema2/tables/t_budget_indicateur.yaml | 23 + db/schema2/tables/t_budgets.yaml | 31 + db/schema2/tables/t_budgets_saisis.yaml | 111 + db/schema2/tables/t_calcul_encours.yaml | 60 + db/schema2/tables/t_chart.yaml | 26 + db/schema2/tables/t_classes.yaml | 36 + db/schema2/tables/t_classes_sections.yaml | 26 + .../tables/t_classes_sections_elements.yaml | 20 + db/schema2/tables/t_codes_postaux_c.yaml | 100 + db/schema2/tables/t_compte.yaml | 32 + .../t_compte_produit_analytique_rule.yaml | 79 + db/schema2/tables/t_controle_chiffrier.yaml | 55 + db/schema2/tables/t_dashboard.yaml | 14 + db/schema2/tables/t_dashboard_filter.yaml | 13 + db/schema2/tables/t_dashboard_onglet.yaml | 15 + db/schema2/tables/t_dashboard_widget.yaml | 15 + db/schema2/tables/t_divers.yaml | 21 + db/schema2/tables/t_durees_sejour_c.yaml | 21 + ...parametres_services_prestations_histo.yaml | 71 + .../t_encours_histo_sejour_facture_histo.yaml | 45 + db/schema2/tables/t_etages.yaml | 46 + db/schema2/tables/t_etages_historique.yaml | 78 + db/schema2/tables/t_etat_sejour.yaml | 23 + db/schema2/tables/t_expert_controle.yaml | 58 + db/schema2/tables/t_expert_controle_rule.yaml | 20 + db/schema2/tables/t_filiere_soin.yaml | 28 + db/schema2/tables/t_filiere_soin_rule.yaml | 82 + db/schema2/tables/t_finess_c.yaml | 34 + db/schema2/tables/t_forme_activite.yaml | 28 + db/schema2/tables/t_forme_activite_rule.yaml | 73 + db/schema2/tables/t_ghm_c.yaml | 67 + db/schema2/tables/t_ghmgme_c.yaml | 78 + db/schema2/tables/t_ghs_c.yaml | 51 + db/schema2/tables/t_gme_c.yaml | 65 + db/schema2/tables/t_gmt_c.yaml | 16 + db/schema2/tables/t_indicateur_condition.yaml | 39 + .../tables/t_indicateur_condition_table.yaml | 17 + db/schema2/tables/t_indicateur_serie.yaml | 33 + db/schema2/tables/t_indicateur_theme.yaml | 29 + db/schema2/tables/t_indicateurs.yaml | 137 + db/schema2/tables/t_journal.yaml | 18 + db/schema2/tables/t_kiwee_params.yaml | 18 + db/schema2/tables/t_lieux.yaml | 107 + db/schema2/tables/t_lieux_c.yaml | 149 + db/schema2/tables/t_listes.yaml | 48 + db/schema2/tables/t_listes_contenu.yaml | 20 + db/schema2/tables/t_listes_tables.yaml | 18 + db/schema2/tables/t_lit_historique.yaml | 21 + db/schema2/tables/t_lits.yaml | 40 + db/schema2/tables/t_lpp_c.yaml | 76 + .../tables/t_medecins_administratifs.yaml | 67 + .../tables/t_medecins_administratifs_c.yaml | 57 + .../t_medecins_traitants_administratifs.yaml | 56 + .../tables/t_motif_non_facturation.yaml | 26 + .../t_parametre_personnalise_sejour_1.yaml | 23 + .../t_parametre_personnalise_sejour_2.yaml | 23 + db/schema2/tables/t_places.yaml | 70 + db/schema2/tables/t_places_parents.yaml | 44 + db/schema2/tables/t_pole.yaml | 23 + db/schema2/tables/t_pole_rule.yaml | 73 + db/schema2/tables/t_prestations.yaml | 41 + db/schema2/tables/t_protocoles.yaml | 26 + db/schema2/tables/t_providers.yaml | 22 + db/schema2/tables/t_rapport_group.yaml | 15 + db/schema2/tables/t_rapports.yaml | 65 + db/schema2/tables/t_rapports_rubriques.yaml | 147 + db/schema2/tables/t_rejets_noemie.yaml | 19 + db/schema2/tables/t_risque.yaml | 13 + db/schema2/tables/t_rubrique_facture_c.yaml | 70 + .../tables/t_rubriques_facturation.yaml | 42 + db/schema2/tables/t_sejour.yaml | 33 + db/schema2/tables/t_service_rubrique.yaml | 38 + .../tables/t_service_rubrique_dotation.yaml | 27 + db/schema2/tables/t_services_facturation.yaml | 118 + .../t_services_facturation_historique.yaml | 75 + db/schema2/tables/t_severites_cti.yaml | 16 + .../tables/t_sigems_transformation_uf.yaml | 19 + db/schema2/tables/t_specialites_medecin.yaml | 22 + db/schema2/tables/t_tiers_payant.yaml | 76 + db/schema2/tables/t_traitement_epmsi.yaml | 23 + db/schema2/tables/t_transformation.yaml | 38 + db/schema2/tables/t_type_hospi_pmsi.yaml | 22 + db/schema2/tables/t_type_sejour.yaml | 22 + db/schema2/tables/t_types_gmt.yaml | 13 + db/schema2/tables/t_types_tiers_payant.yaml | 12 + db/schema2/tables/t_ucd_c.yaml | 76 + .../tables/t_unites_fonctionnelles.yaml | 59 + .../t_unites_fonctionnelles_historique.yaml | 75 + db/schema2/tables/t_unites_medicales.yaml | 39 + .../tables/t_unites_medicales_historique.yaml | 72 + db/schema2/tables/t_validation_parametre.yaml | 30 + db/schema2/tables/t_vue_parametre.yaml | 30 + .../tables/t_widget_user_parameter.yaml | 34 + db/schema2/views/v_actes_1.yaml | 8 + db/schema2/views/v_actes_2.yaml | 8 + db/schema2/views/v_actes_3.yaml | 73 + db/schema2/views/v_activites_1.yaml | 8 + db/schema2/views/v_activites_2.yaml | 61 + db/schema2/views/v_ages_1.yaml | 16 + db/schema2/views/v_ages_2.yaml | 77 + db/schema2/views/v_alias_periode_1.yaml | 743 + db/schema2/views/v_bloc_occupation_1.yaml | 66 + db/schema2/views/v_budget_cle_1.yaml | 58 + db/schema2/views/v_budget_cle_2.yaml | 8 + db/schema2/views/v_budget_cle_budget_r_1.yaml | 16 + db/schema2/views/v_budgets_saisis_1.yaml | 58 + db/schema2/views/v_budgets_saisis_2.yaml | 53 + db/schema2/views/v_calendrier_1.yaml | 43 + db/schema2/views/v_calendrier_2.yaml | 43 + db/schema2/views/v_calendrier_3.yaml | 25 + db/schema2/views/v_calendrier_4.yaml | 25 + db/schema2/views/v_classes_1.yaml | 87 + db/schema2/views/v_codes_postaux_2.yaml | 18 + db/schema2/views/v_codes_postaux_3.yaml | 170 + db/schema2/views/v_compte_1.yaml | 66 + .../views/v_compte_produit_analytique_1.yaml | 8 + .../v_compte_produit_analytique_link.yaml | 8 + db/schema2/views/v_destinations_sortie_1.yaml | 9 + db/schema2/views/v_destinations_sortie_2.yaml | 23 + db/schema2/views/v_durees_occupation_1.yaml | 8 + db/schema2/views/v_durees_occupation_2.yaml | 32 + db/schema2/views/v_durees_occupation_3.yaml | 12 + db/schema2/views/v_durees_sejour_1.yaml | 8 + db/schema2/views/v_durees_sejour_2.yaml | 73 + db/schema2/views/v_etages_1.yaml | 8 + db/schema2/views/v_etages_2.yaml | 61 + db/schema2/views/v_etat_sejour_1.yaml | 9 + db/schema2/views/v_etat_sejour_2.yaml | 33 + db/schema2/views/v_expert_controle_2.yaml | 69 + .../views/v_expert_sejour_controle_1.yaml | 37 + .../v_facture_encours_ligne_valorise_c_1.yaml | 135 + .../views/v_facture_ligne_valorise_c_1.yaml | 135 + .../views/v_facture_solde_tiers_c_1.yaml | 22 + .../views/v_facture_solde_tiers_c_r_4.yaml | 148 + .../views/v_facture_solde_tiers_h_1.yaml | 22 + .../views/v_facture_solde_tiers_h_r_4.yaml | 148 + .../views/v_facture_solde_tiers_payant_1.yaml | 14 + .../v_facture_solde_tiers_prestation_1.yaml | 8 + .../v_facture_solde_tiers_rubrique_1.yaml | 8 + db/schema2/views/v_factures_1.yaml | 81 + db/schema2/views/v_factures_2.yaml | 535 + db/schema2/views/v_factures_4.yaml | 518 + db/schema2/views/v_factures_4_0.yaml | 269 + db/schema2/views/v_factures_4_1.yaml | 372 + db/schema2/views/v_factures_4_2.yaml | 372 + .../views/v_factures_encours_lignes_c_1.yaml | 194 + .../views/v_factures_encours_lignes_c_2.yaml | 166 + .../views/v_factures_encours_lignes_c_3.yaml | 165 + .../v_factures_encours_lignes_c_r_4.yaml | 195 + db/schema2/views/v_factures_lignes_c_1.yaml | 179 + db/schema2/views/v_factures_lignes_c_2.yaml | 117 + db/schema2/views/v_factures_lignes_c_3.yaml | 58 + db/schema2/views/v_factures_lignes_c_4.yaml | 144 + db/schema2/views/v_factures_lignes_c_5.yaml | 117 + db/schema2/views/v_factures_lignes_c_r_1.yaml | 187 + db/schema2/views/v_factures_lignes_c_r_2.yaml | 187 + db/schema2/views/v_factures_lignes_c_r_3.yaml | 186 + db/schema2/views/v_factures_lignes_c_r_4.yaml | 187 + .../v_factures_lignes_compte_produit_1.yaml | 8 + .../v_factures_lignes_executant_cpt_1.yaml | 18 + .../v_factures_lignes_executant_fac_1.yaml | 18 + db/schema2/views/v_factures_lignes_h_1.yaml | 190 + db/schema2/views/v_factures_lignes_h_2.yaml | 165 + db/schema2/views/v_factures_lignes_h_3.yaml | 188 + db/schema2/views/v_factures_lignes_h_4.yaml | 150 + db/schema2/views/v_factures_lignes_h_r_1.yaml | 211 + db/schema2/views/v_factures_lignes_h_r_2.yaml | 211 + db/schema2/views/v_factures_lignes_h_r_3.yaml | 211 + db/schema2/views/v_factures_lignes_h_r_4.yaml | 211 + .../views/v_factures_lignes_lieu_1.yaml | 36 + db/schema2/views/v_factures_lignes_lpp_1.yaml | 26 + .../views/v_factures_lignes_prestation_1.yaml | 8 + .../views/v_factures_lignes_protocole_1.yaml | 8 + ...es_lignes_rubrique_comptabilisation_1.yaml | 8 + ...actures_lignes_rubrique_facturation_1.yaml | 8 + db/schema2/views/v_factures_lignes_ucd_1.yaml | 26 + db/schema2/views/v_factures_r_1.yaml | 129 + db/schema2/views/v_factures_reference_1.yaml | 569 + .../views/v_factures_reference_r_2.yaml | 416 + .../views/v_factures_reference_r_4.yaml | 416 + .../views/v_factures_reference_r_5.yaml | 416 + .../views/v_factures_reference_tiers_1.yaml | 563 + db/schema2/views/v_factures_rejets_1.yaml | 13 + db/schema2/views/v_factures_soldes_c_1.yaml | 128 + db/schema2/views/v_factures_soldes_c_2.yaml | 145 + db/schema2/views/v_factures_soldes_c_3.yaml | 172 + db/schema2/views/v_factures_soldes_c_r_1.yaml | 142 + db/schema2/views/v_factures_soldes_c_r_4.yaml | 143 + db/schema2/views/v_factures_soldes_h_1.yaml | 32 + db/schema2/views/v_factures_soldes_h_3.yaml | 180 + db/schema2/views/v_factures_soldes_h_r_4.yaml | 134 + db/schema2/views/v_filiere_soin_2.yaml | 68 + .../views/v_filiere_soin_principale_1.yaml | 9 + db/schema2/views/v_finess_1.yaml | 72 + db/schema2/views/v_forme_activite_1.yaml | 9 + db/schema2/views/v_forme_activite_2.yaml | 66 + db/schema2/views/v_ghm_c_1.yaml | 103 + db/schema2/views/v_ghmgme_1.yaml | 195 + db/schema2/views/v_ghs_1.yaml | 19 + db/schema2/views/v_gir_2.yaml | 62 + db/schema2/views/v_gme_1.yaml | 143 + db/schema2/views/v_indicateurs_cumules_1.yaml | 6 + db/schema2/views/v_indicateurs_cumules_2.yaml | 26 + .../views/v_indicateurs_cumules_2b.yaml | 26 + .../views/v_indicateurs_cumules_2c.yaml | 24 + db/schema2/views/v_indicateurs_cumules_3.yaml | 30 + .../views/v_indicateurs_cumules_3c.yaml | 27 + db/schema2/views/v_intervention_1.yaml | 52 + db/schema2/views/v_lieux_1.yaml | 34 + db/schema2/views/v_listes_1.yaml | 134 + db/schema2/views/v_listes_2.yaml | 11 + db/schema2/views/v_listes_3.yaml | 8 + db/schema2/views/v_listes_4.yaml | 178 + db/schema2/views/v_lits_2.yaml | 66 + db/schema2/views/v_lpp_1.yaml | 124 + db/schema2/views/v_medecins_3.yaml | 38 + db/schema2/views/v_medecins_4.yaml | 38 + db/schema2/views/v_medecins_5.yaml | 97 + db/schema2/views/v_medecins_6.yaml | 98 + db/schema2/views/v_medecins_7.yaml | 63 + db/schema2/views/v_modes_entree_1.yaml | 9 + db/schema2/views/v_modes_entree_2.yaml | 23 + db/schema2/views/v_modes_sortie_1.yaml | 9 + db/schema2/views/v_modes_sortie_2.yaml | 23 + db/schema2/views/v_modes_traitement_2.yaml | 9 + db/schema2/views/v_mouvements_sejour_2.yaml | 127 + db/schema2/views/v_mouvements_sejour_4.yaml | 103 + db/schema2/views/v_mouvements_sejour_5.yaml | 123 + .../views/v_mouvements_sejour_lieu_1.yaml | 12 + .../views/v_mouvements_sejour_medecin_1.yaml | 18 + db/schema2/views/v_mouvements_sejour_r_1.yaml | 382 + .../v_parametre_personnalise_sejour_1_2.yaml | 61 + .../v_parametre_personnalise_sejour_2_2.yaml | 61 + db/schema2/views/v_places_1.yaml | 143 + db/schema2/views/v_places_r_1.yaml | 61 + db/schema2/views/v_pole_1.yaml | 8 + db/schema2/views/v_pole_2.yaml | 68 + db/schema2/views/v_prestations_1.yaml | 8 + db/schema2/views/v_prestations_2.yaml | 8 + db/schema2/views/v_prestations_3.yaml | 65 + db/schema2/views/v_prestations_4.yaml | 23 + db/schema2/views/v_protocoles_2.yaml | 62 + db/schema2/views/v_provenances_entree_1.yaml | 9 + db/schema2/views/v_provenances_entree_2.yaml | 23 + .../v_rapports_tables_indicateurs_1.yaml | 73 + db/schema2/views/v_rejets_noemie_1.yaml | 63 + db/schema2/views/v_risque_1.yaml | 5 + db/schema2/views/v_risque_2.yaml | 19 + .../views/v_rubriques_facturation_1.yaml | 8 + .../views/v_rubriques_facturation_2.yaml | 67 + db/schema2/views/v_sejour_effet_tarif_1.yaml | 44 + db/schema2/views/v_sejours_0.yaml | 25 + db/schema2/views/v_sejours_1.yaml | 316 + db/schema2/views/v_sejours_2.yaml | 346 + db/schema2/views/v_sejours_3.yaml | 326 + db/schema2/views/v_sejours_4.yaml | 451 + db/schema2/views/v_sejours_5.yaml | 212 + db/schema2/views/v_sejours_6.yaml | 285 + db/schema2/views/v_sejours_7.yaml | 299 + db/schema2/views/v_sejours_8.yaml | 208 + db/schema2/views/v_sejours_annules.yaml | 210 + db/schema2/views/v_sejours_budget_cle_1.yaml | 10 + ...v_sejours_etablissement_destination_1.yaml | 7 + .../v_sejours_etablissement_provenance_1.yaml | 7 + db/schema2/views/v_sejours_finess_1.yaml | 8 + db/schema2/views/v_sejours_ghm_1.yaml | 26 + db/schema2/views/v_sejours_ghmgme_1.yaml | 45 + db/schema2/views/v_sejours_ghs_1.yaml | 7 + db/schema2/views/v_sejours_gme_1.yaml | 17 + db/schema2/views/v_sejours_lieu_1.yaml | 47 + db/schema2/views/v_sejours_medecin_1.yaml | 18 + .../views/v_sejours_medecin_traitant_1.yaml | 19 + .../v_sejours_parametres_personnalises_1.yaml | 17 + db/schema2/views/v_sejours_r_2.yaml | 194 + db/schema2/views/v_sejours_r_5.yaml | 194 + db/schema2/views/v_sejours_test_join.yaml | 29 + db/schema2/views/v_sejours_type_sejour_1.yaml | 8 + .../views/v_services_facturation_1.yaml | 8 + .../views/v_services_facturation_2.yaml | 68 + db/schema2/views/v_tiers_payant_1.yaml | 18 + db/schema2/views/v_tiers_payant_2.yaml | 81 + db/schema2/views/v_traitement_epmsi_1.yaml | 5 + db/schema2/views/v_type_sejour_1.yaml | 70 + db/schema2/views/v_ucd_1.yaml | 124 + .../views/v_unites_fonctionnelles_2.yaml | 63 + db/schema2/views/v_unites_medicales_2.yaml | 64 + .../activite_clinique/acti000061.txt | 23 + .../activite_clinique/start.txt | 3 + .../activite_honoraire/acti000078.txt | 19 + .../activite_honoraire/start.txt | 3 + .../activite_facturee_et_valorisee/start.txt | 3 + .../controle_des_encours/acti000017.txt | 6 + .../controle_des_encours/start.txt | 3 + .../encours/acti000104.txt | 6 + .../encours/start.txt | 3 + .../evaluation_des_en_cours/acti000105.txt | 6 + .../evaluation_des_en_cours/start.txt | 3 + .../export/acti000007.txt | 6 + .../export/start.txt | 3 + .../comptabilisation_et_en_cours/start.txt | 3 + .../comptes_clients_clinique/acti000022.txt | 8 + .../comptes_clients_clinique/acti000085.txt | 9 + .../comptes_clients_clinique/start.txt | 3 + .../comptes_clients_honoraire/acti000089.txt | 10 + .../comptes_clients_honoraire/start.txt | 3 + .../pages/activite/compte_client/start.txt | 3 + .../pages/activite/essentiels/acti000125.txt | 5 + dokuwiki/pages/activite/essentiels/start.txt | 3 + .../acti000057.txt | 10 + .../start.txt | 3 + .../occupation_sejours/acti000123.txt | 13 + .../localisation/acti000124.txt | 6 + .../occupation_sejours/localisation/start.txt | 3 + .../presents/acti000066.txt | 17 + .../occupation_sejours/presents/start.txt | 3 + .../activite/occupation_sejours/start.txt | 3 + .../pages/activite/population/acti000132.txt | 9 + .../pages/activite/population/acti000133.txt | 8 + dokuwiki/pages/activite/population/start.txt | 3 + .../activite/qualite/benchmark/acti000096.txt | 2 + .../activite/qualite/benchmark/start.txt | 3 + .../chambres_particulieres/acti000099.txt | 3 + .../etudes/chambres_particulieres/start.txt | 3 + .../qualite/etudes/forfaits/acti000102.txt | 2 + .../qualite/etudes/forfaits/start.txt | 3 + .../etudes/interventions/acti00091.txt | 4 + .../qualite/etudes/interventions/start.txt | 3 + .../pages/activite/qualite/etudes/start.txt | 3 + .../activite/qualite/expert/acti000128.txt | 9 + .../pages/activite/qualite/expert/start.txt | 3 + dokuwiki/pages/activite/qualite/start.txt | 3 + .../recherche_par_criteres/acti000033.txt | 4 + .../activite/recherche_par_criteres/start.txt | 3 + dokuwiki/pages/activite/sidebar.txt | 5 + dokuwiki/pages/activite/start.txt | 13 + .../pages/spe/def_donnes_significative.txt | 3 + dokuwiki/pages/spe/def_filtres_passages.txt | 3 + .../pages/spe/def_filtres_prestations.txt | 3 + dokuwiki/pages/spe/def_filtres_sejours.txt | 3 + dokuwiki/pages/spe/def_regroupements.txt | 158 + .../pages/spe/pied_de_page_doc_activite.txt | 14 + .../structure_parametres_et_selections.txt | 12 + dummy | 1 + import_activite/iCTI_calcul_encours.XML | 396 + import_activite/iCTI_calcul_encours.exe | Bin 0 -> 5391872 bytes import_activite/iCTI_calcul_encours.php | 90 + import_activite/iCTI_import_activite.exe | Bin 0 -> 5391872 bytes import_activite/iCTI_import_activite.php | 578 + .../iCTI_import_activite_ANTHADINE.XML | 3223 +++ .../iCTI_import_activite_CALYSTENE.XML | 3751 +++ import_activite/iCTI_import_activite_CEGI.XML | 12216 +++++++++ .../iCTI_import_activite_CERNER.XML | 6895 +++++ .../iCTI_import_activite_CHATAIGNERAIE.XML | 3595 +++ .../iCTI_import_activite_CLINICOM.XML | 6002 +++++ .../iCTI_import_activite_CONSOLIDATION.XML | 5960 ++++ .../iCTI_import_activite_CONSOLIDATION.exe | Bin 0 -> 5391872 bytes .../iCTI_import_activite_CONSOLIDATION.php | 288 + import_activite/iCTI_import_activite_CSIS.XML | 7607 ++++++ import_activite/iCTI_import_activite_DAI.XML | 4128 +++ .../iCTI_import_activite_EDLXPLORE.XML | 3323 +++ .../iCTI_import_activite_FUSION.XML | 3435 +++ .../iCTI_import_activite_HEMAT2A.XML | 3221 +++ import_activite/iCTI_import_activite_HM.XML | 9287 +++++++ .../iCTI_import_activite_MEDERI.XML | 6296 +++++ import_activite/iCTI_import_activite_QSP.XML | 5579 ++++ import_activite/iCTI_import_activite_SANO.XML | 2969 ++ .../iCTI_import_activite_SHARE.XML | 6161 +++++ import_activite/iCTI_import_activite_SHS.XML | 7700 ++++++ .../iCTI_import_activite_SIGEMS.XML | 12436 +++++++++ .../iCTI_import_activite_SIGEMS2.XML | 7692 ++++++ .../iCTI_import_activite_WEB100T.XML | 9975 +++++++ .../iCTI_import_activite_WEB100T2.XML | 9975 +++++++ import_activite/orchestration_sql.yaml | 33 + php/ACTI_getTableRecords.php | 5285 ++++ php/ACTI_setTableRecord.php | 3168 +++ php/expert/ControleExpert.class.php | 279 + php/expert/ControleExpertManager.class.php | 619 + php/expert/RegleExpert.class.php | 276 + php/expert/dictionary.json | 24 + ...tpService_ACTI_budgetManager_getBudget.php | 69 + ...pService_ACTI_budgetManager_getBudgets.php | 69 + ...tpService_ACTI_budgetManager_setBudget.php | 121 + php/httpService_ACTI_consoManager_getData.php | 171 + php/httpService_ACTI_consoManager_setData.php | 210 + php/httpService_ACTI_tableManager_copyRef.php | 58 + ...Service_ACTI_tableManager_getSqlScript.php | 311 + settings.XML | 273 + settings/ACTI000001.XML | 3 + settings/ACTI000002.XML | 3 + settings/ACTI000003.XML | 3 + settings/ACTI000004-2.XML | 36 + settings/ACTI000004-3.XML | 36 + settings/ACTI000004-4.XML | 36 + settings/ACTI000004.XML | 36 + settings/ACTI000006.XML | 545 + settings/ACTI000007.XML | 265 + settings/ACTI000010.XML | 3 + settings/ACTI000013.XML | 265 + settings/ACTI000014.XML | 443 + settings/ACTI000016.XML | 1840 ++ settings/ACTI000017.XML | 7 + settings/ACTI000018.XML | 4064 +++ settings/ACTI000019.XML | 384 + settings/ACTI000020.XML | 3013 +++ settings/ACTI000021.XML | 498 + settings/ACTI000022.XML | 237 + settings/ACTI000023.XML | 237 + settings/ACTI000024.XML | 502 + settings/ACTI000025.XML | 229 + settings/ACTI000026.XML | 3 + settings/ACTI000027.XML | 3 + settings/ACTI000028.XML | 3 + settings/ACTI000029.XML | 1495 + settings/ACTI000030.XML | 216 + settings/ACTI000031.XML | 3 + settings/ACTI000032.XML | 3 + settings/ACTI000033.XML | 362 + settings/ACTI000034.XML | 1049 + settings/ACTI000035.XML | 990 + settings/ACTI000036.XML | 1132 + settings/ACTI000037.XML | 3 + settings/ACTI000038.XML | 3 + settings/ACTI000039.XML | 3 + settings/ACTI000039PLC.XML | 3 + settings/ACTI000040.XML | 3 + settings/ACTI000041.XML | 3 + settings/ACTI000042.XML | 3 + settings/ACTI000043.XML | 3 + settings/ACTI000044.XML | 3 + settings/ACTI000045.XML | 3 + settings/ACTI000046.XML | 3 + settings/ACTI000047.XML | 3 + settings/ACTI000048.XML | 3 + settings/ACTI000049.XML | 3 + settings/ACTI000050.XML | 3 + settings/ACTI000051.XML | 351 + settings/ACTI000052.XML | 1100 + settings/ACTI000053.XML | 932 + settings/ACTI000054.XML | 1390 + settings/ACTI000055.XML | 3 + settings/ACTI000056.XML | 1920 ++ settings/ACTI000057.XML | 1356 + settings/ACTI000058.XML | 502 + settings/ACTI000059.XML | 934 + settings/ACTI000060.XML | 1349 + settings/ACTI000061.XML | 377 + settings/ACTI000062.XML | 1210 + settings/ACTI000063.XML | 3646 +++ settings/ACTI000064.XML | 711 + settings/ACTI000065.XML | 242 + settings/ACTI000066.XML | 384 + settings/ACTI000067.XML | 7 + settings/ACTI000069.XML | 7 + settings/ACTI000070.XML | 3 + settings/ACTI000071.XML | 578 + settings/ACTI000072.XML | 941 + settings/ACTI000073.XML | 3 + settings/ACTI000074.XML | 586 + settings/ACTI000075.XML | 810 + settings/ACTI000077.XML | 457 + settings/ACTI000078.XML | 1460 + settings/ACTI000079.XML | 955 + settings/ACTI000080.XML | 1587 ++ settings/ACTI000081.XML | 777 + settings/ACTI000082.XML | 1037 + settings/ACTI000083.XML | 107 + settings/ACTI000085.XML | 286 + settings/ACTI000086.XML | 587 + settings/ACTI000087.XML | 754 + settings/ACTI000088.XML | 247 + settings/ACTI000089.XML | 236 + settings/ACTI000090.XML | 254 + settings/ACTI000091.XML | 264 + settings/ACTI000092.XML | 928 + settings/ACTI000093.XML | 352 + settings/ACTI000094.XML | 7 + settings/ACTI000095.XML | 5 + settings/ACTI000096.XML | 1906 ++ settings/ACTI000097.XML | 486 + settings/ACTI000098.XML | 711 + settings/ACTI000099.XML | 648 + settings/ACTI000100.XML | 575 + settings/ACTI000101.XML | 103 + settings/ACTI000102.XML | 268 + settings/ACTI000103.XML | 426 + settings/ACTI000104.XML | 580 + settings/ACTI000105.XML | 257 + settings/ACTI000106.XML | 278 + settings/ACTI000107.XML | 415 + settings/ACTI000108.XML | 382 + settings/ACTI000109.XML | 3 + settings/ACTI000110.XML | 3 + settings/ACTI000111.XML | 3 + settings/ACTI000112.XML | 3 + settings/ACTI000113.XML | 3 + settings/ACTI000114.XML | 3 + settings/ACTI000115.XML | 3 + settings/ACTI000116.XML | 3 + settings/ACTI000117.XML | 3 + settings/ACTI000118.XML | 3 + settings/ACTI000119.XML | 3 + settings/ACTI000120.XML | 3 + settings/ACTI000121.XML | 3 + settings/ACTI000123.XML | 1167 + settings/ACTI000124.XML | 348 + settings/ACTI000125.XML | 45 + settings/ACTI000126.XML | 45 + settings/ACTI000127.XML | 3 + settings/ACTI000128.XML | 229 + settings/ACTI000129.XML | 413 + settings/ACTI000130.XML | 3 + settings/ACTI000131.XML | 11 + settings/ACTI000132.XML | 312 + settings/ACTI000133.XML | 278 + settings/ACTI000134.XML | 589 + settings/ACTI000136.XML | 304 + settings/ACTI000137.XML | 990 + settings/ACTI000138.XML | 3 + settings/ACTI000139.XML | 3 + settings/ACTI000140.XML | 740 + settings/ACTI000141.XML | 1113 + settings/ACTI000142.XML | 3 + settings/ACTI000143.XML | 2135 ++ settings/ACTI000144.XML | 377 + settings/ACTI000146.XML | 652 + settings/ACTI000148.XML | 440 + settings/ACTI000149.XML | 1567 ++ settings/ACTI000150.XML | 2565 ++ settings/ACTI000151.XML | 2554 ++ settings/ACTI000152.XML | 2565 ++ settings/ACTI000153.XML | 2634 ++ settings/ACTI000154.XML | 8293 ++++++ settings/ACTI000156.XML | 1653 ++ settings/ACTI000157.XML | 997 + settings/ACTI000158.XML | 1104 + settings/ACTI000159.XML | 4960 ++++ settings/ACTI000160.XML | 994 + settings/ACTI000161.XML | 707 + settings/ACTI000162.XML | 4733 ++++ settings/ACTI000163.XML | 571 + settings/ACTI000165.XML | 4331 +++ settings/ACTI000168.XML | 3 + settings/ACTI000169.XML | 952 + settings/ACTI000170.XML | 500 + settings/ACTI000171.XML | 2691 ++ settings/ACTI000173.XML | 6520 +++++ settings/ACTI000174.XML | 192 + settings/ACTI000181.XML | 3 + settings/ACTI000182.XML | 833 + settings/ACTIKIWEEPARAM.XML | 11 + settings/ACTIS00121.XML | 542 + settings/ACTIS00122.XML | 556 + settings/ACTI_components.XML | 22486 ++++++++++++++++ settings/ACTI_dboptimizer.XML | 1696 ++ settings/ACTI_globals.XML | 3477 +++ .../iCTI_activite_chiffrier_comptable.XML | 23 + .../iCTI_activite_fraicheur.XML | 65 + .../iCTI_activite_integrite_tables.XML | 120 + .../iCTI_activite_nouveau_parametre.XML | 25 + .../iCTI_import_activite.XML | 23 + .../iCTI_import_activite_CONSOLIDATION.XML | 23 + .../admissions/annulations/ACTIANNJSF.XML | 52 + .../admissions/annulations/ACTIANNULA.XML | 52 + .../admissions/preadmissions/ACTIADMJSF.XML | 52 + .../admissions/preadmissions/ACTIPREADM.XML | 52 + swf/CTI_ACTI_BudgetManager.mxml | 455 + swf/CTI_ACTI_ConsoManager.mxml | 599 + swf/CTI_ACTI_Synchronize.mxml | 255 + swf/CTI_ACTI_TablesManager.mxml | 7410 +++++ swf/buildCTI_ACTI_BudgetManager.bat | 9 + swf/buildCTI_ACTI_ConsoManager.bat | 9 + swf/buildCTI_ACTI_Synchronize.bat | 9 + swf/buildCTI_ACTI_TablesManager.bat | 9 + swf/build_activite.bat | 5 + swf/build_activite_silently.bat | 12 + 833 files changed, 418323 insertions(+) create mode 100644 db/data/dbdata_activite_t_classes.SQL create mode 100644 db/data/dbdata_activite_t_classes_sections.SQL create mode 100644 db/data/dbdata_activite_t_classes_sections_elements_ages.SQL create mode 100644 db/data/dbdata_activite_t_classes_sections_elements_duree_sejour.SQL create mode 100644 db/data/dbdata_activite_t_classes_sections_elements_etat_sejour.SQL create mode 100644 db/data/dbdata_activite_t_classes_sections_elements_forme_activite.SQL create mode 100644 db/data/dbdata_activite_t_classes_sections_elements_ghm.SQL create mode 100644 db/data/dbdata_activite_t_classes_sections_elements_prestations_c.SQL create mode 100644 db/data/dbdata_activite_t_divers.SQL create mode 100644 db/data/dbdata_activite_t_etat_sejour.SQL create mode 100644 db/data/dbdata_activite_t_expert_controle.SQL create mode 100644 db/data/dbdata_activite_t_expert_controle_rule.SQL create mode 100644 db/data/dbdata_activite_t_forme_activite.SQL create mode 100644 db/data/dbdata_activite_t_indicateur_theme.SQL create mode 100755 db/data/dbdata_activite_t_indicateurs.SQL create mode 100644 db/data/dbdata_activite_t_kiwee_params.SQL create mode 100644 db/data/dbdata_activite_t_listes.SQL create mode 100644 db/data/dbdata_activite_t_listes_tables.SQL create mode 100644 db/data/dbdata_activite_t_prestations.SQL create mode 100644 db/data/dbdata_activite_t_rapports.SQL create mode 100644 db/data/dbdata_activite_t_rapports_rubriques.SQL create mode 100644 db/data/dbdata_activite_t_severites_cti.SQL create mode 100644 db/data/dbdata_activite_t_traitement_epmsi.SQL create mode 100644 db/data/dbdata_activite_t_type_hospi_pmsi.SQL create mode 100644 db/data/dbdata_activite_t_type_sejour.SQL create mode 100644 db/data/dbdata_activite_t_types_gmt.SQL create mode 100644 db/data/dbdata_activite_t_vue_parametre.SQL create mode 100644 db/data2/dbdata_activite_t_classes.csv create mode 100644 db/data2/dbdata_activite_t_classes_sections.csv create mode 100644 db/data2/dbdata_activite_t_classes_sections_elements_ages.csv create mode 100644 db/data2/dbdata_activite_t_classes_sections_elements_duree_sejour.csv create mode 100644 db/data2/dbdata_activite_t_classes_sections_elements_etat_sejour.csv create mode 100644 db/data2/dbdata_activite_t_classes_sections_elements_forme_activite.csv create mode 100644 db/data2/dbdata_activite_t_classes_sections_elements_ghm.csv create mode 100644 db/data2/dbdata_activite_t_classes_sections_elements_prestations_c.csv create mode 100644 db/data2/dbdata_activite_t_divers.csv create mode 100644 db/data2/dbdata_activite_t_etat_sejour.csv create mode 100644 db/data2/dbdata_activite_t_expert_controle.csv create mode 100644 db/data2/dbdata_activite_t_expert_controle_rule.csv create mode 100644 db/data2/dbdata_activite_t_forme_activite.csv create mode 100644 db/data2/dbdata_activite_t_indicateur_theme.csv create mode 100644 db/data2/dbdata_activite_t_indicateurs.csv create mode 100644 db/data2/dbdata_activite_t_kiwee_params.csv create mode 100644 db/data2/dbdata_activite_t_listes.csv create mode 100644 db/data2/dbdata_activite_t_listes_tables.csv create mode 100644 db/data2/dbdata_activite_t_prestations.csv create mode 100644 db/data2/dbdata_activite_t_rapports.csv create mode 100644 db/data2/dbdata_activite_t_rapports_rubriques.csv create mode 100644 db/data2/dbdata_activite_t_severites_cti.csv create mode 100644 db/data2/dbdata_activite_t_traitement_epmsi.csv create mode 100644 db/data2/dbdata_activite_t_type_hospi_pmsi.csv create mode 100644 db/data2/dbdata_activite_t_type_sejour.csv create mode 100644 db/data2/dbdata_activite_t_types_gmt.csv create mode 100644 db/data2/dbdata_activite_t_vue_parametre.csv create mode 100644 db/dbsetup_data_activite.XML create mode 100644 db/dvp_data_apply.bat create mode 100644 db/dvp_data_extract.bat create mode 100644 db/hooks/install_db_last_jobs.sql create mode 100644 db/hooks/post_install_data.sql create mode 100644 db/hooks/pre_install_data.sql create mode 100644 db/hooks/pre_install_schema.sql create mode 100644 db/schema2/functions/calcul_encours~da,tx.yaml create mode 100644 db/schema2/functions/cti_ajust_encours.yaml create mode 100644 db/schema2/functions/cti_ajust_fildeleau.yaml create mode 100644 db/schema2/functions/cti_ajust_fildeleau_rsf.yaml create mode 100644 db/schema2/functions/cti_budget_execute_rules.yaml create mode 100644 db/schema2/functions/cti_budget_generate_keys.yaml create mode 100644 db/schema2/functions/cti_budget_translate_list~tx.yaml create mode 100644 db/schema2/functions/cti_calc_duree_occupation.yaml create mode 100644 db/schema2/functions/cti_calcul_hdj_mouvements.yaml create mode 100644 db/schema2/functions/cti_calcul_journees_mouvements.yaml create mode 100644 db/schema2/functions/cti_cegi_signe_reglement~nu,bia,nua.yaml create mode 100644 db/schema2/functions/cti_execute_compte_produit_analytique_rule.yaml create mode 100644 db/schema2/functions/cti_filiere_soin_execute_rule.yaml create mode 100644 db/schema2/functions/cti_gen_0ets.yaml create mode 100644 db/schema2/functions/cti_gen_dma_ssr.yaml create mode 100644 db/schema2/functions/cti_gen_dotation.yaml create mode 100644 db/schema2/functions/cti_gen_sejour_effet_tarif.yaml create mode 100644 db/schema2/functions/cti_initialize_tables.yaml create mode 100644 db/schema2/functions/cti_kiwee_sigems_honpatcpt.yaml create mode 100644 db/schema2/functions/cti_now_activite~tx.yaml create mode 100644 db/schema2/functions/cti_now~tx,tx.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport_calc_indicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi,bi,bi.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport_calc_indicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport_comp~bi,tx,tx.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport_comp~bi.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport_get_column~tx,tx.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport_indicateurs~bi,tx.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport_maxoid~bi.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport_month~bi.yaml create mode 100644 db/schema2/functions/cti_prepare_rapport~bi.yaml create mode 100644 db/schema2/functions/cti_reorganize_actes_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_ages_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_controle_chiffrier.yaml create mode 100644 db/schema2/functions/cti_reorganize_durees_sejour_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_etages_places.yaml create mode 100644 db/schema2/functions/cti_reorganize_finess_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_forme_activite.yaml create mode 100644 db/schema2/functions/cti_reorganize_ghm_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_ghmgme_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_ghs_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_gme_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_gmt_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_indicateur_condition.yaml create mode 100644 db/schema2/functions/cti_reorganize_lieux_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_medecins_administratifs_c.yaml create mode 100644 db/schema2/functions/cti_reorganize_places.yaml create mode 100644 db/schema2/functions/cti_reorganize_pole.yaml create mode 100644 db/schema2/functions/cti_reorganize_rubrique_facture_c~tx.yaml create mode 100644 db/schema2/functions/cti_reorganize_sejour_pmsi.yaml create mode 100644 db/schema2/functions/cti_reorganize_sejours~tx.yaml create mode 100644 db/schema2/functions/cti_reorganize_tiers_payant.yaml create mode 100644 db/schema2/functions/cti_reorganize_ucd_lpp_c.yaml create mode 100644 db/schema2/functions/cti_solde_auto.yaml create mode 100644 db/schema2/functions/cti_transform_uf.yaml create mode 100644 db/schema2/functions/cti_transform_um.yaml create mode 100644 db/schema2/functions/cti_update_schema_classes~tx.yaml create mode 100644 db/schema2/functions/cti_ventilation_lignes~tx.yaml create mode 100644 db/schema2/functions/get_montant_fj_valorise_par_sejour~tx.yaml create mode 100644 db/schema2/functions/get_oids_from_classement~tx,tx,tx,in,in,tx,tx,tx.yaml create mode 100644 db/schema2/functions/get_parametre~tx.yaml create mode 100644 db/schema2/functions/get_rapport_columns_case~in,tx.yaml create mode 100644 db/schema2/functions/get_rapport_columns~in.yaml create mode 100644 db/schema2/functions/get_rapport_joins~in.yaml create mode 100644 db/schema2/functions/get_valorisation_gmt_forfaitisables.yaml create mode 100644 db/schema2/functions/get_valorisation_gmt_hc_sans_zf.yaml create mode 100644 db/schema2/functions/get_valorisation_gmt_hospitalisation_partielle.yaml create mode 100644 db/schema2/functions/get_valorisation_gmt_non_forfaitisables.yaml create mode 100644 db/schema2/functions/valoriser_sejours_groupes_smr.yaml create mode 100644 db/schema2/sequences/s_activites.yaml create mode 100644 db/schema2/sequences/s_bloc.yaml create mode 100644 db/schema2/sequences/s_bloc_motif_intervention.yaml create mode 100644 db/schema2/sequences/s_bloc_occupation.yaml create mode 100644 db/schema2/sequences/s_bloc_salle.yaml create mode 100644 db/schema2/sequences/s_bloc_salle_disponibilite.yaml create mode 100644 db/schema2/sequences/s_budget.yaml create mode 100644 db/schema2/sequences/s_budget_cle.yaml create mode 100644 db/schema2/sequences/s_budget_cle_rule.yaml create mode 100644 db/schema2/sequences/s_budget_indicateur.yaml create mode 100644 db/schema2/sequences/s_budgets.yaml create mode 100644 db/schema2/sequences/s_budgets_saisis.yaml create mode 100644 db/schema2/sequences/s_calcul_encours.yaml create mode 100644 db/schema2/sequences/s_chart.yaml create mode 100644 db/schema2/sequences/s_classes.yaml create mode 100644 db/schema2/sequences/s_classes_sections.yaml create mode 100644 db/schema2/sequences/s_compte.yaml create mode 100644 db/schema2/sequences/s_compte_produit_analytique_rule.yaml create mode 100644 db/schema2/sequences/s_dashboard.yaml create mode 100644 db/schema2/sequences/s_dashboard_filter.yaml create mode 100644 db/schema2/sequences/s_dashboard_onglet.yaml create mode 100644 db/schema2/sequences/s_dashboard_widget.yaml create mode 100644 db/schema2/sequences/s_etages.yaml create mode 100644 db/schema2/sequences/s_etat_sejour.yaml create mode 100644 db/schema2/sequences/s_expert_controle.yaml create mode 100644 db/schema2/sequences/s_expert_controle_rule.yaml create mode 100644 db/schema2/sequences/s_factures.yaml create mode 100644 db/schema2/sequences/s_factures_encours.yaml create mode 100644 db/schema2/sequences/s_filiere_soin.yaml create mode 100644 db/schema2/sequences/s_filiere_soin_rule.yaml create mode 100644 db/schema2/sequences/s_forme_activite.yaml create mode 100644 db/schema2/sequences/s_forme_activite_rule.yaml create mode 100644 db/schema2/sequences/s_indicateur_condition.yaml create mode 100644 db/schema2/sequences/s_indicateur_condition_table.yaml create mode 100644 db/schema2/sequences/s_indicateur_serie.yaml create mode 100644 db/schema2/sequences/s_indicateur_theme.yaml create mode 100644 db/schema2/sequences/s_indicateurs.yaml create mode 100644 db/schema2/sequences/s_journal.yaml create mode 100644 db/schema2/sequences/s_kiwee_params.yaml create mode 100644 db/schema2/sequences/s_lieux.yaml create mode 100644 db/schema2/sequences/s_listes.yaml create mode 100644 db/schema2/sequences/s_listes_tables.yaml create mode 100644 db/schema2/sequences/s_lit_historique.yaml create mode 100644 db/schema2/sequences/s_lits.yaml create mode 100644 db/schema2/sequences/s_medecins.yaml create mode 100644 db/schema2/sequences/s_medecins_traitants_administratifs.yaml create mode 100644 db/schema2/sequences/s_motif_non_facturation.yaml create mode 100644 db/schema2/sequences/s_parametre_personnalise_sejour_1.yaml create mode 100644 db/schema2/sequences/s_parametre_personnalise_sejour_2.yaml create mode 100644 db/schema2/sequences/s_pole_rule.yaml create mode 100644 db/schema2/sequences/s_prestations.yaml create mode 100644 db/schema2/sequences/s_protocoles.yaml create mode 100644 db/schema2/sequences/s_rapports.yaml create mode 100644 db/schema2/sequences/s_rejets_noemie.yaml create mode 100644 db/schema2/sequences/s_risque.yaml create mode 100644 db/schema2/sequences/s_rubrique_facture_c.yaml create mode 100644 db/schema2/sequences/s_rubriques_facturation.yaml create mode 100644 db/schema2/sequences/s_sejour.yaml create mode 100644 db/schema2/sequences/s_sejours.yaml create mode 100644 db/schema2/sequences/s_service_rubrique.yaml create mode 100644 db/schema2/sequences/s_service_rubrique_dotation.yaml create mode 100644 db/schema2/sequences/s_services_facturation.yaml create mode 100644 db/schema2/sequences/s_sigems_transformation_uf.yaml create mode 100644 db/schema2/sequences/s_specialites_medecin.yaml create mode 100644 db/schema2/sequences/s_tiers_payant.yaml create mode 100644 db/schema2/sequences/s_transformation.yaml create mode 100644 db/schema2/sequences/s_unites_fonctionnelles.yaml create mode 100644 db/schema2/sequences/s_unites_medicales.yaml create mode 100644 db/schema2/sequences/s_validation_parametre.yaml create mode 100644 db/schema2/sequences/s_vue_parametre.yaml create mode 100644 db/schema2/sequences/s_web100t_forcage_uf_soin.yaml create mode 100644 db/schema2/tables/p_bloc_occupation.yaml create mode 100644 db/schema2/tables/p_budgets_generes.yaml create mode 100644 db/schema2/tables/p_chiffrier.yaml create mode 100644 db/schema2/tables/p_chiffrier_comptable.yaml create mode 100644 db/schema2/tables/p_chiffrier_data_calcule_gliss.yaml create mode 100644 db/schema2/tables/p_chiffrier_occupation.yaml create mode 100644 db/schema2/tables/p_chiffrier_resultat_calcule_gliss.yaml create mode 100644 db/schema2/tables/p_chiffrier_shs.yaml create mode 100644 db/schema2/tables/p_consolidation_translation.yaml create mode 100644 db/schema2/tables/p_coordonnees_patient.yaml create mode 100644 db/schema2/tables/p_duree_occupation.yaml create mode 100644 db/schema2/tables/p_ecriture_comptable.yaml create mode 100644 db/schema2/tables/p_expert_sejour_controle.yaml create mode 100644 db/schema2/tables/p_facture_encours_ligne_valorise_c.yaml create mode 100644 db/schema2/tables/p_facture_ligne_valorise_c.yaml create mode 100644 db/schema2/tables/p_facture_solde_tiers_c.yaml create mode 100644 db/schema2/tables/p_facture_solde_tiers_h.yaml create mode 100644 db/schema2/tables/p_factures.yaml create mode 100644 db/schema2/tables/p_factures_comptables.yaml create mode 100644 db/schema2/tables/p_factures_encours.yaml create mode 100644 db/schema2/tables/p_factures_encours_lignes_c.yaml create mode 100644 db/schema2/tables/p_factures_lignes_c.yaml create mode 100644 db/schema2/tables/p_factures_lignes_h.yaml create mode 100644 db/schema2/tables/p_factures_lignes_non_facturees_c.yaml create mode 100644 db/schema2/tables/p_factures_lignes_non_facturees_h.yaml create mode 100644 db/schema2/tables/p_factures_reference.yaml create mode 100644 db/schema2/tables/p_factures_reference_tiers.yaml create mode 100644 db/schema2/tables/p_factures_rejets.yaml create mode 100644 db/schema2/tables/p_factures_soldes_c.yaml create mode 100644 db/schema2/tables/p_factures_soldes_h.yaml create mode 100644 db/schema2/tables/p_gmt_valorises.yaml create mode 100644 db/schema2/tables/p_indicateurs_cumules.yaml create mode 100644 db/schema2/tables/p_intervention.yaml create mode 100644 db/schema2/tables/p_mouvements_sejour.yaml create mode 100644 db/schema2/tables/p_oids.yaml create mode 100644 db/schema2/tables/p_patients.yaml create mode 100644 db/schema2/tables/p_sejour_effet_tarif.yaml create mode 100644 db/schema2/tables/p_sejour_filiere_soin.yaml create mode 100644 db/schema2/tables/p_sejour_lieu.yaml create mode 100644 db/schema2/tables/p_sejour_pmsi.yaml create mode 100644 db/schema2/tables/p_sejours.yaml create mode 100644 db/schema2/tables/p_sejours_assurance.yaml create mode 100644 db/schema2/tables/p_sejours_budget_cle.yaml create mode 100644 db/schema2/tables/p_sejours_groupes_smr.yaml create mode 100644 db/schema2/tables/p_sejours_parametres_personnalises.yaml create mode 100644 db/schema2/tables/p_sejours_preadmission.yaml create mode 100644 db/schema2/tables/p_sejours_transferts.yaml create mode 100644 db/schema2/tables/t_actes_c.yaml create mode 100644 db/schema2/tables/t_activites.yaml create mode 100644 db/schema2/tables/t_ages_c.yaml create mode 100644 db/schema2/tables/t_bloc.yaml create mode 100644 db/schema2/tables/t_bloc_motif_intervention.yaml create mode 100644 db/schema2/tables/t_bloc_salle.yaml create mode 100644 db/schema2/tables/t_bloc_salle_disponibilite.yaml create mode 100644 db/schema2/tables/t_budget.yaml create mode 100644 db/schema2/tables/t_budget_cle.yaml create mode 100644 db/schema2/tables/t_budget_cle_budget.yaml create mode 100644 db/schema2/tables/t_budget_cle_rule.yaml create mode 100644 db/schema2/tables/t_budget_indicateur.yaml create mode 100644 db/schema2/tables/t_budgets.yaml create mode 100644 db/schema2/tables/t_budgets_saisis.yaml create mode 100644 db/schema2/tables/t_calcul_encours.yaml create mode 100644 db/schema2/tables/t_chart.yaml create mode 100644 db/schema2/tables/t_classes.yaml create mode 100644 db/schema2/tables/t_classes_sections.yaml create mode 100644 db/schema2/tables/t_classes_sections_elements.yaml create mode 100644 db/schema2/tables/t_codes_postaux_c.yaml create mode 100644 db/schema2/tables/t_compte.yaml create mode 100644 db/schema2/tables/t_compte_produit_analytique_rule.yaml create mode 100644 db/schema2/tables/t_controle_chiffrier.yaml create mode 100644 db/schema2/tables/t_dashboard.yaml create mode 100644 db/schema2/tables/t_dashboard_filter.yaml create mode 100644 db/schema2/tables/t_dashboard_onglet.yaml create mode 100644 db/schema2/tables/t_dashboard_widget.yaml create mode 100644 db/schema2/tables/t_divers.yaml create mode 100644 db/schema2/tables/t_durees_sejour_c.yaml create mode 100644 db/schema2/tables/t_encours_calcul_parametres_services_prestations_histo.yaml create mode 100644 db/schema2/tables/t_encours_histo_sejour_facture_histo.yaml create mode 100644 db/schema2/tables/t_etages.yaml create mode 100644 db/schema2/tables/t_etages_historique.yaml create mode 100644 db/schema2/tables/t_etat_sejour.yaml create mode 100644 db/schema2/tables/t_expert_controle.yaml create mode 100644 db/schema2/tables/t_expert_controle_rule.yaml create mode 100644 db/schema2/tables/t_filiere_soin.yaml create mode 100644 db/schema2/tables/t_filiere_soin_rule.yaml create mode 100644 db/schema2/tables/t_finess_c.yaml create mode 100644 db/schema2/tables/t_forme_activite.yaml create mode 100644 db/schema2/tables/t_forme_activite_rule.yaml create mode 100644 db/schema2/tables/t_ghm_c.yaml create mode 100644 db/schema2/tables/t_ghmgme_c.yaml create mode 100644 db/schema2/tables/t_ghs_c.yaml create mode 100644 db/schema2/tables/t_gme_c.yaml create mode 100644 db/schema2/tables/t_gmt_c.yaml create mode 100644 db/schema2/tables/t_indicateur_condition.yaml create mode 100644 db/schema2/tables/t_indicateur_condition_table.yaml create mode 100644 db/schema2/tables/t_indicateur_serie.yaml create mode 100644 db/schema2/tables/t_indicateur_theme.yaml create mode 100644 db/schema2/tables/t_indicateurs.yaml create mode 100644 db/schema2/tables/t_journal.yaml create mode 100644 db/schema2/tables/t_kiwee_params.yaml create mode 100644 db/schema2/tables/t_lieux.yaml create mode 100644 db/schema2/tables/t_lieux_c.yaml create mode 100644 db/schema2/tables/t_listes.yaml create mode 100644 db/schema2/tables/t_listes_contenu.yaml create mode 100644 db/schema2/tables/t_listes_tables.yaml create mode 100644 db/schema2/tables/t_lit_historique.yaml create mode 100644 db/schema2/tables/t_lits.yaml create mode 100644 db/schema2/tables/t_lpp_c.yaml create mode 100644 db/schema2/tables/t_medecins_administratifs.yaml create mode 100644 db/schema2/tables/t_medecins_administratifs_c.yaml create mode 100644 db/schema2/tables/t_medecins_traitants_administratifs.yaml create mode 100644 db/schema2/tables/t_motif_non_facturation.yaml create mode 100644 db/schema2/tables/t_parametre_personnalise_sejour_1.yaml create mode 100644 db/schema2/tables/t_parametre_personnalise_sejour_2.yaml create mode 100644 db/schema2/tables/t_places.yaml create mode 100644 db/schema2/tables/t_places_parents.yaml create mode 100644 db/schema2/tables/t_pole.yaml create mode 100644 db/schema2/tables/t_pole_rule.yaml create mode 100644 db/schema2/tables/t_prestations.yaml create mode 100644 db/schema2/tables/t_protocoles.yaml create mode 100644 db/schema2/tables/t_providers.yaml create mode 100644 db/schema2/tables/t_rapport_group.yaml create mode 100644 db/schema2/tables/t_rapports.yaml create mode 100644 db/schema2/tables/t_rapports_rubriques.yaml create mode 100644 db/schema2/tables/t_rejets_noemie.yaml create mode 100644 db/schema2/tables/t_risque.yaml create mode 100644 db/schema2/tables/t_rubrique_facture_c.yaml create mode 100644 db/schema2/tables/t_rubriques_facturation.yaml create mode 100644 db/schema2/tables/t_sejour.yaml create mode 100644 db/schema2/tables/t_service_rubrique.yaml create mode 100644 db/schema2/tables/t_service_rubrique_dotation.yaml create mode 100644 db/schema2/tables/t_services_facturation.yaml create mode 100644 db/schema2/tables/t_services_facturation_historique.yaml create mode 100644 db/schema2/tables/t_severites_cti.yaml create mode 100644 db/schema2/tables/t_sigems_transformation_uf.yaml create mode 100644 db/schema2/tables/t_specialites_medecin.yaml create mode 100644 db/schema2/tables/t_tiers_payant.yaml create mode 100644 db/schema2/tables/t_traitement_epmsi.yaml create mode 100644 db/schema2/tables/t_transformation.yaml create mode 100644 db/schema2/tables/t_type_hospi_pmsi.yaml create mode 100644 db/schema2/tables/t_type_sejour.yaml create mode 100644 db/schema2/tables/t_types_gmt.yaml create mode 100644 db/schema2/tables/t_types_tiers_payant.yaml create mode 100644 db/schema2/tables/t_ucd_c.yaml create mode 100644 db/schema2/tables/t_unites_fonctionnelles.yaml create mode 100644 db/schema2/tables/t_unites_fonctionnelles_historique.yaml create mode 100644 db/schema2/tables/t_unites_medicales.yaml create mode 100644 db/schema2/tables/t_unites_medicales_historique.yaml create mode 100644 db/schema2/tables/t_validation_parametre.yaml create mode 100644 db/schema2/tables/t_vue_parametre.yaml create mode 100644 db/schema2/tables/t_widget_user_parameter.yaml create mode 100644 db/schema2/views/v_actes_1.yaml create mode 100644 db/schema2/views/v_actes_2.yaml create mode 100644 db/schema2/views/v_actes_3.yaml create mode 100644 db/schema2/views/v_activites_1.yaml create mode 100644 db/schema2/views/v_activites_2.yaml create mode 100644 db/schema2/views/v_ages_1.yaml create mode 100644 db/schema2/views/v_ages_2.yaml create mode 100644 db/schema2/views/v_alias_periode_1.yaml create mode 100644 db/schema2/views/v_bloc_occupation_1.yaml create mode 100644 db/schema2/views/v_budget_cle_1.yaml create mode 100644 db/schema2/views/v_budget_cle_2.yaml create mode 100644 db/schema2/views/v_budget_cle_budget_r_1.yaml create mode 100644 db/schema2/views/v_budgets_saisis_1.yaml create mode 100644 db/schema2/views/v_budgets_saisis_2.yaml create mode 100644 db/schema2/views/v_calendrier_1.yaml create mode 100644 db/schema2/views/v_calendrier_2.yaml create mode 100644 db/schema2/views/v_calendrier_3.yaml create mode 100644 db/schema2/views/v_calendrier_4.yaml create mode 100644 db/schema2/views/v_classes_1.yaml create mode 100644 db/schema2/views/v_codes_postaux_2.yaml create mode 100644 db/schema2/views/v_codes_postaux_3.yaml create mode 100644 db/schema2/views/v_compte_1.yaml create mode 100644 db/schema2/views/v_compte_produit_analytique_1.yaml create mode 100644 db/schema2/views/v_compte_produit_analytique_link.yaml create mode 100644 db/schema2/views/v_destinations_sortie_1.yaml create mode 100644 db/schema2/views/v_destinations_sortie_2.yaml create mode 100644 db/schema2/views/v_durees_occupation_1.yaml create mode 100644 db/schema2/views/v_durees_occupation_2.yaml create mode 100644 db/schema2/views/v_durees_occupation_3.yaml create mode 100644 db/schema2/views/v_durees_sejour_1.yaml create mode 100644 db/schema2/views/v_durees_sejour_2.yaml create mode 100644 db/schema2/views/v_etages_1.yaml create mode 100644 db/schema2/views/v_etages_2.yaml create mode 100644 db/schema2/views/v_etat_sejour_1.yaml create mode 100644 db/schema2/views/v_etat_sejour_2.yaml create mode 100644 db/schema2/views/v_expert_controle_2.yaml create mode 100644 db/schema2/views/v_expert_sejour_controle_1.yaml create mode 100644 db/schema2/views/v_facture_encours_ligne_valorise_c_1.yaml create mode 100644 db/schema2/views/v_facture_ligne_valorise_c_1.yaml create mode 100644 db/schema2/views/v_facture_solde_tiers_c_1.yaml create mode 100644 db/schema2/views/v_facture_solde_tiers_c_r_4.yaml create mode 100644 db/schema2/views/v_facture_solde_tiers_h_1.yaml create mode 100644 db/schema2/views/v_facture_solde_tiers_h_r_4.yaml create mode 100644 db/schema2/views/v_facture_solde_tiers_payant_1.yaml create mode 100644 db/schema2/views/v_facture_solde_tiers_prestation_1.yaml create mode 100644 db/schema2/views/v_facture_solde_tiers_rubrique_1.yaml create mode 100644 db/schema2/views/v_factures_1.yaml create mode 100644 db/schema2/views/v_factures_2.yaml create mode 100644 db/schema2/views/v_factures_4.yaml create mode 100644 db/schema2/views/v_factures_4_0.yaml create mode 100644 db/schema2/views/v_factures_4_1.yaml create mode 100644 db/schema2/views/v_factures_4_2.yaml create mode 100644 db/schema2/views/v_factures_encours_lignes_c_1.yaml create mode 100644 db/schema2/views/v_factures_encours_lignes_c_2.yaml create mode 100644 db/schema2/views/v_factures_encours_lignes_c_3.yaml create mode 100644 db/schema2/views/v_factures_encours_lignes_c_r_4.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_2.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_3.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_4.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_5.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_r_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_r_2.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_r_3.yaml create mode 100644 db/schema2/views/v_factures_lignes_c_r_4.yaml create mode 100644 db/schema2/views/v_factures_lignes_compte_produit_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_executant_cpt_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_executant_fac_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_h_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_h_2.yaml create mode 100644 db/schema2/views/v_factures_lignes_h_3.yaml create mode 100644 db/schema2/views/v_factures_lignes_h_4.yaml create mode 100644 db/schema2/views/v_factures_lignes_h_r_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_h_r_2.yaml create mode 100644 db/schema2/views/v_factures_lignes_h_r_3.yaml create mode 100644 db/schema2/views/v_factures_lignes_h_r_4.yaml create mode 100644 db/schema2/views/v_factures_lignes_lieu_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_lpp_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_prestation_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_protocole_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_rubrique_comptabilisation_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_rubrique_facturation_1.yaml create mode 100644 db/schema2/views/v_factures_lignes_ucd_1.yaml create mode 100644 db/schema2/views/v_factures_r_1.yaml create mode 100644 db/schema2/views/v_factures_reference_1.yaml create mode 100644 db/schema2/views/v_factures_reference_r_2.yaml create mode 100644 db/schema2/views/v_factures_reference_r_4.yaml create mode 100644 db/schema2/views/v_factures_reference_r_5.yaml create mode 100644 db/schema2/views/v_factures_reference_tiers_1.yaml create mode 100644 db/schema2/views/v_factures_rejets_1.yaml create mode 100644 db/schema2/views/v_factures_soldes_c_1.yaml create mode 100644 db/schema2/views/v_factures_soldes_c_2.yaml create mode 100644 db/schema2/views/v_factures_soldes_c_3.yaml create mode 100644 db/schema2/views/v_factures_soldes_c_r_1.yaml create mode 100644 db/schema2/views/v_factures_soldes_c_r_4.yaml create mode 100644 db/schema2/views/v_factures_soldes_h_1.yaml create mode 100644 db/schema2/views/v_factures_soldes_h_3.yaml create mode 100644 db/schema2/views/v_factures_soldes_h_r_4.yaml create mode 100644 db/schema2/views/v_filiere_soin_2.yaml create mode 100644 db/schema2/views/v_filiere_soin_principale_1.yaml create mode 100644 db/schema2/views/v_finess_1.yaml create mode 100644 db/schema2/views/v_forme_activite_1.yaml create mode 100644 db/schema2/views/v_forme_activite_2.yaml create mode 100644 db/schema2/views/v_ghm_c_1.yaml create mode 100644 db/schema2/views/v_ghmgme_1.yaml create mode 100644 db/schema2/views/v_ghs_1.yaml create mode 100644 db/schema2/views/v_gir_2.yaml create mode 100644 db/schema2/views/v_gme_1.yaml create mode 100644 db/schema2/views/v_indicateurs_cumules_1.yaml create mode 100644 db/schema2/views/v_indicateurs_cumules_2.yaml create mode 100644 db/schema2/views/v_indicateurs_cumules_2b.yaml create mode 100644 db/schema2/views/v_indicateurs_cumules_2c.yaml create mode 100644 db/schema2/views/v_indicateurs_cumules_3.yaml create mode 100644 db/schema2/views/v_indicateurs_cumules_3c.yaml create mode 100644 db/schema2/views/v_intervention_1.yaml create mode 100644 db/schema2/views/v_lieux_1.yaml create mode 100644 db/schema2/views/v_listes_1.yaml create mode 100644 db/schema2/views/v_listes_2.yaml create mode 100644 db/schema2/views/v_listes_3.yaml create mode 100644 db/schema2/views/v_listes_4.yaml create mode 100644 db/schema2/views/v_lits_2.yaml create mode 100644 db/schema2/views/v_lpp_1.yaml create mode 100644 db/schema2/views/v_medecins_3.yaml create mode 100644 db/schema2/views/v_medecins_4.yaml create mode 100644 db/schema2/views/v_medecins_5.yaml create mode 100644 db/schema2/views/v_medecins_6.yaml create mode 100644 db/schema2/views/v_medecins_7.yaml create mode 100644 db/schema2/views/v_modes_entree_1.yaml create mode 100644 db/schema2/views/v_modes_entree_2.yaml create mode 100644 db/schema2/views/v_modes_sortie_1.yaml create mode 100644 db/schema2/views/v_modes_sortie_2.yaml create mode 100644 db/schema2/views/v_modes_traitement_2.yaml create mode 100644 db/schema2/views/v_mouvements_sejour_2.yaml create mode 100644 db/schema2/views/v_mouvements_sejour_4.yaml create mode 100644 db/schema2/views/v_mouvements_sejour_5.yaml create mode 100644 db/schema2/views/v_mouvements_sejour_lieu_1.yaml create mode 100644 db/schema2/views/v_mouvements_sejour_medecin_1.yaml create mode 100644 db/schema2/views/v_mouvements_sejour_r_1.yaml create mode 100644 db/schema2/views/v_parametre_personnalise_sejour_1_2.yaml create mode 100644 db/schema2/views/v_parametre_personnalise_sejour_2_2.yaml create mode 100644 db/schema2/views/v_places_1.yaml create mode 100644 db/schema2/views/v_places_r_1.yaml create mode 100644 db/schema2/views/v_pole_1.yaml create mode 100644 db/schema2/views/v_pole_2.yaml create mode 100644 db/schema2/views/v_prestations_1.yaml create mode 100644 db/schema2/views/v_prestations_2.yaml create mode 100644 db/schema2/views/v_prestations_3.yaml create mode 100644 db/schema2/views/v_prestations_4.yaml create mode 100644 db/schema2/views/v_protocoles_2.yaml create mode 100644 db/schema2/views/v_provenances_entree_1.yaml create mode 100644 db/schema2/views/v_provenances_entree_2.yaml create mode 100644 db/schema2/views/v_rapports_tables_indicateurs_1.yaml create mode 100644 db/schema2/views/v_rejets_noemie_1.yaml create mode 100644 db/schema2/views/v_risque_1.yaml create mode 100644 db/schema2/views/v_risque_2.yaml create mode 100644 db/schema2/views/v_rubriques_facturation_1.yaml create mode 100644 db/schema2/views/v_rubriques_facturation_2.yaml create mode 100644 db/schema2/views/v_sejour_effet_tarif_1.yaml create mode 100644 db/schema2/views/v_sejours_0.yaml create mode 100644 db/schema2/views/v_sejours_1.yaml create mode 100644 db/schema2/views/v_sejours_2.yaml create mode 100644 db/schema2/views/v_sejours_3.yaml create mode 100644 db/schema2/views/v_sejours_4.yaml create mode 100644 db/schema2/views/v_sejours_5.yaml create mode 100644 db/schema2/views/v_sejours_6.yaml create mode 100644 db/schema2/views/v_sejours_7.yaml create mode 100644 db/schema2/views/v_sejours_8.yaml create mode 100644 db/schema2/views/v_sejours_annules.yaml create mode 100644 db/schema2/views/v_sejours_budget_cle_1.yaml create mode 100644 db/schema2/views/v_sejours_etablissement_destination_1.yaml create mode 100644 db/schema2/views/v_sejours_etablissement_provenance_1.yaml create mode 100644 db/schema2/views/v_sejours_finess_1.yaml create mode 100644 db/schema2/views/v_sejours_ghm_1.yaml create mode 100644 db/schema2/views/v_sejours_ghmgme_1.yaml create mode 100644 db/schema2/views/v_sejours_ghs_1.yaml create mode 100644 db/schema2/views/v_sejours_gme_1.yaml create mode 100644 db/schema2/views/v_sejours_lieu_1.yaml create mode 100644 db/schema2/views/v_sejours_medecin_1.yaml create mode 100644 db/schema2/views/v_sejours_medecin_traitant_1.yaml create mode 100644 db/schema2/views/v_sejours_parametres_personnalises_1.yaml create mode 100644 db/schema2/views/v_sejours_r_2.yaml create mode 100644 db/schema2/views/v_sejours_r_5.yaml create mode 100644 db/schema2/views/v_sejours_test_join.yaml create mode 100644 db/schema2/views/v_sejours_type_sejour_1.yaml create mode 100644 db/schema2/views/v_services_facturation_1.yaml create mode 100644 db/schema2/views/v_services_facturation_2.yaml create mode 100644 db/schema2/views/v_tiers_payant_1.yaml create mode 100644 db/schema2/views/v_tiers_payant_2.yaml create mode 100644 db/schema2/views/v_traitement_epmsi_1.yaml create mode 100644 db/schema2/views/v_type_sejour_1.yaml create mode 100644 db/schema2/views/v_ucd_1.yaml create mode 100644 db/schema2/views/v_unites_fonctionnelles_2.yaml create mode 100644 db/schema2/views/v_unites_medicales_2.yaml create mode 100755 dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_clinique/acti000061.txt create mode 100644 dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_clinique/start.txt create mode 100755 dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_honoraire/acti000078.txt create mode 100644 dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_honoraire/start.txt create mode 100644 dokuwiki/pages/activite/activite_facturee_et_valorisee/start.txt create mode 100755 dokuwiki/pages/activite/comptabilisation_et_en_cours/controle_des_encours/acti000017.txt create mode 100644 dokuwiki/pages/activite/comptabilisation_et_en_cours/controle_des_encours/start.txt create mode 100755 dokuwiki/pages/activite/comptabilisation_et_en_cours/encours/acti000104.txt create mode 100644 dokuwiki/pages/activite/comptabilisation_et_en_cours/encours/start.txt create mode 100755 dokuwiki/pages/activite/comptabilisation_et_en_cours/evaluation_des_en_cours/acti000105.txt create mode 100644 dokuwiki/pages/activite/comptabilisation_et_en_cours/evaluation_des_en_cours/start.txt create mode 100755 dokuwiki/pages/activite/comptabilisation_et_en_cours/export/acti000007.txt create mode 100644 dokuwiki/pages/activite/comptabilisation_et_en_cours/export/start.txt create mode 100644 dokuwiki/pages/activite/comptabilisation_et_en_cours/start.txt create mode 100755 dokuwiki/pages/activite/compte_client/comptes_clients_clinique/acti000022.txt create mode 100755 dokuwiki/pages/activite/compte_client/comptes_clients_clinique/acti000085.txt create mode 100644 dokuwiki/pages/activite/compte_client/comptes_clients_clinique/start.txt create mode 100755 dokuwiki/pages/activite/compte_client/comptes_clients_honoraire/acti000089.txt create mode 100644 dokuwiki/pages/activite/compte_client/comptes_clients_honoraire/start.txt create mode 100644 dokuwiki/pages/activite/compte_client/start.txt create mode 100755 dokuwiki/pages/activite/essentiels/acti000125.txt create mode 100644 dokuwiki/pages/activite/essentiels/start.txt create mode 100755 dokuwiki/pages/activite/etat_des_dossiers_superviseur_activite/acti000057.txt create mode 100644 dokuwiki/pages/activite/etat_des_dossiers_superviseur_activite/start.txt create mode 100755 dokuwiki/pages/activite/occupation_sejours/acti000123.txt create mode 100755 dokuwiki/pages/activite/occupation_sejours/localisation/acti000124.txt create mode 100644 dokuwiki/pages/activite/occupation_sejours/localisation/start.txt create mode 100755 dokuwiki/pages/activite/occupation_sejours/presents/acti000066.txt create mode 100644 dokuwiki/pages/activite/occupation_sejours/presents/start.txt create mode 100644 dokuwiki/pages/activite/occupation_sejours/start.txt create mode 100755 dokuwiki/pages/activite/population/acti000132.txt create mode 100755 dokuwiki/pages/activite/population/acti000133.txt create mode 100644 dokuwiki/pages/activite/population/start.txt create mode 100644 dokuwiki/pages/activite/qualite/benchmark/acti000096.txt create mode 100644 dokuwiki/pages/activite/qualite/benchmark/start.txt create mode 100755 dokuwiki/pages/activite/qualite/etudes/chambres_particulieres/acti000099.txt create mode 100644 dokuwiki/pages/activite/qualite/etudes/chambres_particulieres/start.txt create mode 100644 dokuwiki/pages/activite/qualite/etudes/forfaits/acti000102.txt create mode 100644 dokuwiki/pages/activite/qualite/etudes/forfaits/start.txt create mode 100755 dokuwiki/pages/activite/qualite/etudes/interventions/acti00091.txt create mode 100644 dokuwiki/pages/activite/qualite/etudes/interventions/start.txt create mode 100644 dokuwiki/pages/activite/qualite/etudes/start.txt create mode 100755 dokuwiki/pages/activite/qualite/expert/acti000128.txt create mode 100644 dokuwiki/pages/activite/qualite/expert/start.txt create mode 100644 dokuwiki/pages/activite/qualite/start.txt create mode 100755 dokuwiki/pages/activite/recherche_par_criteres/acti000033.txt create mode 100644 dokuwiki/pages/activite/recherche_par_criteres/start.txt create mode 100644 dokuwiki/pages/activite/sidebar.txt create mode 100644 dokuwiki/pages/activite/start.txt create mode 100644 dokuwiki/pages/spe/def_donnes_significative.txt create mode 100644 dokuwiki/pages/spe/def_filtres_passages.txt create mode 100644 dokuwiki/pages/spe/def_filtres_prestations.txt create mode 100644 dokuwiki/pages/spe/def_filtres_sejours.txt create mode 100644 dokuwiki/pages/spe/def_regroupements.txt create mode 100644 dokuwiki/pages/spe/pied_de_page_doc_activite.txt create mode 100644 dokuwiki/pages/spe/structure_parametres_et_selections.txt create mode 100644 dummy create mode 100644 import_activite/iCTI_calcul_encours.XML create mode 100644 import_activite/iCTI_calcul_encours.exe create mode 100644 import_activite/iCTI_calcul_encours.php create mode 100644 import_activite/iCTI_import_activite.exe create mode 100644 import_activite/iCTI_import_activite.php create mode 100644 import_activite/iCTI_import_activite_ANTHADINE.XML create mode 100644 import_activite/iCTI_import_activite_CALYSTENE.XML create mode 100644 import_activite/iCTI_import_activite_CEGI.XML create mode 100644 import_activite/iCTI_import_activite_CERNER.XML create mode 100644 import_activite/iCTI_import_activite_CHATAIGNERAIE.XML create mode 100644 import_activite/iCTI_import_activite_CLINICOM.XML create mode 100644 import_activite/iCTI_import_activite_CONSOLIDATION.XML create mode 100644 import_activite/iCTI_import_activite_CONSOLIDATION.exe create mode 100644 import_activite/iCTI_import_activite_CONSOLIDATION.php create mode 100644 import_activite/iCTI_import_activite_CSIS.XML create mode 100644 import_activite/iCTI_import_activite_DAI.XML create mode 100644 import_activite/iCTI_import_activite_EDLXPLORE.XML create mode 100644 import_activite/iCTI_import_activite_FUSION.XML create mode 100644 import_activite/iCTI_import_activite_HEMAT2A.XML create mode 100644 import_activite/iCTI_import_activite_HM.XML create mode 100644 import_activite/iCTI_import_activite_MEDERI.XML create mode 100644 import_activite/iCTI_import_activite_QSP.XML create mode 100644 import_activite/iCTI_import_activite_SANO.XML create mode 100644 import_activite/iCTI_import_activite_SHARE.XML create mode 100644 import_activite/iCTI_import_activite_SHS.XML create mode 100644 import_activite/iCTI_import_activite_SIGEMS.XML create mode 100644 import_activite/iCTI_import_activite_SIGEMS2.XML create mode 100644 import_activite/iCTI_import_activite_WEB100T.XML create mode 100644 import_activite/iCTI_import_activite_WEB100T2.XML create mode 100644 import_activite/orchestration_sql.yaml create mode 100644 php/ACTI_getTableRecords.php create mode 100644 php/ACTI_setTableRecord.php create mode 100644 php/expert/ControleExpert.class.php create mode 100644 php/expert/ControleExpertManager.class.php create mode 100644 php/expert/RegleExpert.class.php create mode 100644 php/expert/dictionary.json create mode 100644 php/httpService_ACTI_budgetManager_getBudget.php create mode 100644 php/httpService_ACTI_budgetManager_getBudgets.php create mode 100644 php/httpService_ACTI_budgetManager_setBudget.php create mode 100644 php/httpService_ACTI_consoManager_getData.php create mode 100644 php/httpService_ACTI_consoManager_setData.php create mode 100644 php/httpService_ACTI_tableManager_copyRef.php create mode 100644 php/httpService_ACTI_tableManager_getSqlScript.php create mode 100644 settings.XML create mode 100644 settings/ACTI000001.XML create mode 100644 settings/ACTI000002.XML create mode 100644 settings/ACTI000003.XML create mode 100644 settings/ACTI000004-2.XML create mode 100644 settings/ACTI000004-3.XML create mode 100644 settings/ACTI000004-4.XML create mode 100644 settings/ACTI000004.XML create mode 100644 settings/ACTI000006.XML create mode 100644 settings/ACTI000007.XML create mode 100644 settings/ACTI000010.XML create mode 100644 settings/ACTI000013.XML create mode 100644 settings/ACTI000014.XML create mode 100644 settings/ACTI000016.XML create mode 100644 settings/ACTI000017.XML create mode 100644 settings/ACTI000018.XML create mode 100644 settings/ACTI000019.XML create mode 100644 settings/ACTI000020.XML create mode 100644 settings/ACTI000021.XML create mode 100644 settings/ACTI000022.XML create mode 100644 settings/ACTI000023.XML create mode 100644 settings/ACTI000024.XML create mode 100644 settings/ACTI000025.XML create mode 100644 settings/ACTI000026.XML create mode 100644 settings/ACTI000027.XML create mode 100644 settings/ACTI000028.XML create mode 100644 settings/ACTI000029.XML create mode 100644 settings/ACTI000030.XML create mode 100644 settings/ACTI000031.XML create mode 100644 settings/ACTI000032.XML create mode 100644 settings/ACTI000033.XML create mode 100644 settings/ACTI000034.XML create mode 100644 settings/ACTI000035.XML create mode 100644 settings/ACTI000036.XML create mode 100644 settings/ACTI000037.XML create mode 100644 settings/ACTI000038.XML create mode 100644 settings/ACTI000039.XML create mode 100644 settings/ACTI000039PLC.XML create mode 100644 settings/ACTI000040.XML create mode 100644 settings/ACTI000041.XML create mode 100644 settings/ACTI000042.XML create mode 100644 settings/ACTI000043.XML create mode 100644 settings/ACTI000044.XML create mode 100644 settings/ACTI000045.XML create mode 100644 settings/ACTI000046.XML create mode 100644 settings/ACTI000047.XML create mode 100644 settings/ACTI000048.XML create mode 100644 settings/ACTI000049.XML create mode 100644 settings/ACTI000050.XML create mode 100644 settings/ACTI000051.XML create mode 100644 settings/ACTI000052.XML create mode 100644 settings/ACTI000053.XML create mode 100644 settings/ACTI000054.XML create mode 100644 settings/ACTI000055.XML create mode 100644 settings/ACTI000056.XML create mode 100755 settings/ACTI000057.XML create mode 100644 settings/ACTI000058.XML create mode 100755 settings/ACTI000059.XML create mode 100755 settings/ACTI000060.XML create mode 100644 settings/ACTI000061.XML create mode 100644 settings/ACTI000062.XML create mode 100644 settings/ACTI000063.XML create mode 100644 settings/ACTI000064.XML create mode 100644 settings/ACTI000065.XML create mode 100644 settings/ACTI000066.XML create mode 100644 settings/ACTI000067.XML create mode 100644 settings/ACTI000069.XML create mode 100644 settings/ACTI000070.XML create mode 100644 settings/ACTI000071.XML create mode 100644 settings/ACTI000072.XML create mode 100644 settings/ACTI000073.XML create mode 100644 settings/ACTI000074.XML create mode 100644 settings/ACTI000075.XML create mode 100644 settings/ACTI000077.XML create mode 100644 settings/ACTI000078.XML create mode 100755 settings/ACTI000079.XML create mode 100644 settings/ACTI000080.XML create mode 100644 settings/ACTI000081.XML create mode 100644 settings/ACTI000082.XML create mode 100644 settings/ACTI000083.XML create mode 100644 settings/ACTI000085.XML create mode 100644 settings/ACTI000086.XML create mode 100644 settings/ACTI000087.XML create mode 100644 settings/ACTI000088.XML create mode 100644 settings/ACTI000089.XML create mode 100644 settings/ACTI000090.XML create mode 100644 settings/ACTI000091.XML create mode 100644 settings/ACTI000092.XML create mode 100644 settings/ACTI000093.XML create mode 100644 settings/ACTI000094.XML create mode 100644 settings/ACTI000095.XML create mode 100644 settings/ACTI000096.XML create mode 100644 settings/ACTI000097.XML create mode 100644 settings/ACTI000098.XML create mode 100644 settings/ACTI000099.XML create mode 100644 settings/ACTI000100.XML create mode 100644 settings/ACTI000101.XML create mode 100644 settings/ACTI000102.XML create mode 100644 settings/ACTI000103.XML create mode 100644 settings/ACTI000104.XML create mode 100644 settings/ACTI000105.XML create mode 100644 settings/ACTI000106.XML create mode 100644 settings/ACTI000107.XML create mode 100644 settings/ACTI000108.XML create mode 100644 settings/ACTI000109.XML create mode 100644 settings/ACTI000110.XML create mode 100644 settings/ACTI000111.XML create mode 100644 settings/ACTI000112.XML create mode 100644 settings/ACTI000113.XML create mode 100644 settings/ACTI000114.XML create mode 100644 settings/ACTI000115.XML create mode 100644 settings/ACTI000116.XML create mode 100644 settings/ACTI000117.XML create mode 100644 settings/ACTI000118.XML create mode 100644 settings/ACTI000119.XML create mode 100644 settings/ACTI000120.XML create mode 100644 settings/ACTI000121.XML create mode 100644 settings/ACTI000123.XML create mode 100644 settings/ACTI000124.XML create mode 100644 settings/ACTI000125.XML create mode 100644 settings/ACTI000126.XML create mode 100644 settings/ACTI000127.XML create mode 100644 settings/ACTI000128.XML create mode 100644 settings/ACTI000129.XML create mode 100644 settings/ACTI000130.XML create mode 100644 settings/ACTI000131.XML create mode 100644 settings/ACTI000132.XML create mode 100644 settings/ACTI000133.XML create mode 100644 settings/ACTI000134.XML create mode 100644 settings/ACTI000136.XML create mode 100644 settings/ACTI000137.XML create mode 100644 settings/ACTI000138.XML create mode 100644 settings/ACTI000139.XML create mode 100644 settings/ACTI000140.XML create mode 100644 settings/ACTI000141.XML create mode 100644 settings/ACTI000142.XML create mode 100644 settings/ACTI000143.XML create mode 100644 settings/ACTI000144.XML create mode 100644 settings/ACTI000146.XML create mode 100644 settings/ACTI000148.XML create mode 100644 settings/ACTI000149.XML create mode 100644 settings/ACTI000150.XML create mode 100644 settings/ACTI000151.XML create mode 100644 settings/ACTI000152.XML create mode 100644 settings/ACTI000153.XML create mode 100644 settings/ACTI000154.XML create mode 100644 settings/ACTI000156.XML create mode 100644 settings/ACTI000157.XML create mode 100644 settings/ACTI000158.XML create mode 100644 settings/ACTI000159.XML create mode 100644 settings/ACTI000160.XML create mode 100644 settings/ACTI000161.XML create mode 100644 settings/ACTI000162.XML create mode 100644 settings/ACTI000163.XML create mode 100644 settings/ACTI000165.XML create mode 100644 settings/ACTI000168.XML create mode 100644 settings/ACTI000169.XML create mode 100644 settings/ACTI000170.XML create mode 100644 settings/ACTI000171.XML create mode 100644 settings/ACTI000173.XML create mode 100644 settings/ACTI000174.XML create mode 100644 settings/ACTI000181.XML create mode 100644 settings/ACTI000182.XML create mode 100644 settings/ACTIKIWEEPARAM.XML create mode 100644 settings/ACTIS00121.XML create mode 100644 settings/ACTIS00122.XML create mode 100755 settings/ACTI_components.XML create mode 100644 settings/ACTI_dboptimizer.XML create mode 100755 settings/ACTI_globals.XML create mode 100644 settings/dashboard_indicators/iCTI_activite_chiffrier_comptable.XML create mode 100644 settings/dashboard_indicators/iCTI_activite_fraicheur.XML create mode 100644 settings/dashboard_indicators/iCTI_activite_integrite_tables.XML create mode 100644 settings/dashboard_indicators/iCTI_activite_nouveau_parametre.XML create mode 100644 settings/dashboard_indicators/iCTI_import_activite.XML create mode 100644 settings/dashboard_indicators/iCTI_import_activite_CONSOLIDATION.XML create mode 100644 settings/views/occupation/admissions/annulations/ACTIANNJSF.XML create mode 100644 settings/views/occupation/admissions/annulations/ACTIANNULA.XML create mode 100644 settings/views/occupation/admissions/preadmissions/ACTIADMJSF.XML create mode 100644 settings/views/occupation/admissions/preadmissions/ACTIPREADM.XML create mode 100644 swf/CTI_ACTI_BudgetManager.mxml create mode 100644 swf/CTI_ACTI_ConsoManager.mxml create mode 100644 swf/CTI_ACTI_Synchronize.mxml create mode 100644 swf/CTI_ACTI_TablesManager.mxml create mode 100644 swf/buildCTI_ACTI_BudgetManager.bat create mode 100644 swf/buildCTI_ACTI_ConsoManager.bat create mode 100644 swf/buildCTI_ACTI_Synchronize.bat create mode 100644 swf/buildCTI_ACTI_TablesManager.bat create mode 100644 swf/build_activite.bat create mode 100644 swf/build_activite_silently.bat diff --git a/db/data/dbdata_activite_t_classes.SQL b/db/data/dbdata_activite_t_classes.SQL new file mode 100644 index 0000000..2ea1598 --- /dev/null +++ b/db/data/dbdata_activite_t_classes.SQL @@ -0,0 +1,96 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_classes.oid = 0 THEN t_classes.oid ELSE 1 END AS oid, + t_classes.code, + t_classes.texte, + t_classes.is_cti, + t_classes.sequence, + t_listes_tables.code as table_code, + t_classes.contenu_by_code, + t_classes.contenu_non_replicable_ailleurs + FROM + activite.t_classes, + activite.t_listes_tables + WHERE 1=1 + AND (is_cti = '1' OR t_classes.code ilike 'CTI_%') + AND table_id = t_listes_tables.oid + ORDER BY t_classes.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + is_cti, + sequence, + table_code, + contenu_by_code, + contenu_non_replicable_ailleurs +) +VALUES +(1, 'CTIGFA1', 'Formes d''activité CTI niveau 1', '1', 1, 'FORMEACTIVITE', '0', '0'), +(1, 'CTIGFA2', 'Formes d''activité CTI niveau 2', '1', 2, 'FORMEACTIVITE', '0', '0'), +(1, 'CTIGFA3', 'Champ satisfaction', '1', 3, 'FORMEACTIVITE', '0', '0'), +(1, 'CTI_DURSEJ', 'Tranches séjours CTI', '1', 9, 'DURSEJ', '0', '0'), +(1, 'CTI_ETA_1', 'Etages CTI', '0', 4, 'ETAGE', '0', '1'), +(1, 'CTI_GHMDA', 'Domaines d''activité ATIH', '1', 9, 'GHM', '0', '0'), +(1, 'CTI_GHMGA', 'Groupes d''activité ATIH', '1', 7, 'GHM', '0', '0'), +(1, 'CTI_GHMGP', 'Groupes de planification ATIH', '1', 8, 'GHM', '0', '0'), +(1, 'CTI_MEDLIBSAL', 'Conditions d''exercice', '1', 1, 'MEDECIN', '0', '1'), +(1, 'CTI_PRC_1', 'Prestations CTI', '0', 4, 'PRESTA_C', '0', '0'), +(1, 'CTI_PREDCA', 'Décomposition CA (CTI)', '1', 9, 'PRESTA_C', '0', '0'), +(1, 'CTI_RUB_1', 'Rubriques CTI', '0', 4, 'RUBRIQUE', '1', '1'), +(1, 'CTI_RUB_2', 'Rubriques détaillées CTI.', '0', 31, 'RUBRIQUE', '0', '1'), +(1, 'CTI_SER_1', 'Services CTI', '0', 4, 'SERVICE_F', '0', '1'), +(1, 'CTI_TAGE', 'Tranches d''âge', '1', 9, 'AGE', '0', '0'), +(1, 'CTI_UF_1', 'Unités Fonctionnelles CTI', '0', 4, 'UF', '0', '1'), +(1, 'ETATSEJN1', 'Etat de séjour CTI niveau 1', '1', 11, 'ETATSEJOUR', '0', '0'), +(1, 'ETATSEJN2', 'Etat de séjour CTI niveau 2', '1', 10, 'ETATSEJOUR', '0', '0') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_classes SET + code = w_dbsetup.code, + texte = w_dbsetup.texte, + table_id = t_listes_tables.oid, + is_cti = w_dbsetup.is_cti, + contenu_by_code = w_dbsetup.contenu_by_code, + contenu_non_replicable_ailleurs = w_dbsetup.contenu_non_replicable_ailleurs +FROM + w_dbsetup, + activite.t_listes_tables +WHERE 1=1 + AND w_dbsetup.table_code = t_listes_tables.code + AND t_classes.sequence = w_dbsetup.sequence + AND t_classes.table_id = t_listes_tables.oid + AND (1!=1 + OR t_classes.code IS DISTINCT FROM w_dbsetup.code + OR t_classes.texte IS DISTINCT FROM w_dbsetup.texte + OR t_classes.table_id IS DISTINCT FROM t_listes_tables.oid + OR t_classes.is_cti IS DISTINCT FROM w_dbsetup.is_cti + OR t_classes.contenu_by_code IS DISTINCT FROM w_dbsetup.contenu_by_code + OR t_classes.contenu_non_replicable_ailleurs IS DISTINCT FROM w_dbsetup.contenu_non_replicable_ailleurs) +; + +INSERT INTO activite.t_classes(code, texte, table_id, is_cti, sequence, contenu_by_code, contenu_non_replicable_ailleurs) + SELECT + w_dbsetup.code, + w_dbsetup.texte, + t_listes_tables.oid, + w_dbsetup.is_cti, + w_dbsetup.sequence, + w_dbsetup.contenu_by_code, + w_dbsetup.contenu_non_replicable_ailleurs + FROM + w_dbsetup, + activite.t_listes_tables + WHERE 1=1 + AND w_dbsetup.table_code = t_listes_tables.code + AND t_listes_tables.oid::text || '-' || w_dbsetup.sequence::text NOT IN (SELECT table_id::text || '-' || sequence::text FROM activite.t_classes) + AND w_dbsetup.texte NOT LIKE '*SUPPRIME%' +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_classes_sections.SQL b/db/data/dbdata_activite_t_classes_sections.SQL new file mode 100644 index 0000000..f3852c6 --- /dev/null +++ b/db/data/dbdata_activite_t_classes_sections.SQL @@ -0,0 +1,539 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_classes_sections.oid = 0 THEN t_classes_sections.oid ELSE 1 END AS oid, + t_classes_sections.code, + t_classes_sections.texte, + t_listes_tables.code as table_code, + t_classes.sequence as classe_sequence, + t_classes_sections.condition, + t_classes_sections.exclude_code, + t_classes_sections.include_code + FROM + activite.t_classes_sections, + activite.t_classes, + activite.t_listes_tables + WHERE 1=1 + AND t_classes_sections.classe_id = t_classes.oid + AND table_id = t_listes_tables.oid + AND (t_classes.is_cti = '1' OR t_classes.code LIKE 'CTI_%') + ORDER BY + t_listes_tables.code, + t_classes.sequence, + t_classes_sections.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + table_code, + classe_sequence, + condition, + exclude_code, + include_code +) +VALUES +(1, 'T01', 'Nouveaux-nés', 'AGE', 9, '', '', ''), +(1, 'T02', '1 - 5 ans', 'AGE', 9, '', '', ''), +(1, 'T03', '6 - 12 ans', 'AGE', 9, '', '', ''), +(1, 'T04', '13 - 20 ans', 'AGE', 9, '', '', ''), +(1, 'T05', '21 - 30 ans', 'AGE', 9, '', '', ''), +(1, 'T06', '31 - 40 ans', 'AGE', 9, '', '', ''), +(1, 'T07', '41 - 50 ans', 'AGE', 9, '', '', ''), +(1, 'T08', '51 - 60 ans', 'AGE', 9, '', '', ''), +(1, 'T09', '61 - 70 ans', 'AGE', 9, '', '', ''), +(1, 'T10', '71 - 80 ans', 'AGE', 9, '', '', ''), +(1, 'T11', '81 ans et plus', 'AGE', 9, '', '', ''), +(1, 'S1', '0 nuit', 'DURSEJ', 9, '', '', ''), +(1, 'S2', '1 nuit', 'DURSEJ', 9, '', '', ''), +(1, 'S3', 'de 2 à 5 nuits', 'DURSEJ', 9, '', '', ''), +(1, 'S4', 'de 6 à 10 nuits', 'DURSEJ', 9, '', '', ''), +(1, 'S5', 'de 11 à 20 nuits', 'DURSEJ', 9, '', '', ''), +(1, 'S6', 'de 21 à 30 nuits', 'DURSEJ', 9, '', '', ''), +(1, 'S7', 'de 31 à 100 nuits', 'DURSEJ', 9, '', '', ''), +(1, 'S8', 'de 101 à 1000 nuits', 'DURSEJ', 9, '', '', ''), +(1, 'S9', 'plus de 1000 nuits', 'DURSEJ', 9, '', '', ''), +(1, 'S1', 'Prévu(s)', 'ETATSEJOUR', 10, '', '', ''), +(1, 'S2', 'Présent(s)', 'ETATSEJOUR', 10, '', '', ''), +(1, 'S3', 'Sorti(s) non groupé(s)', 'ETATSEJOUR', 10, '', '', ''), +(1, 'S4', 'Sorti(s) facturable(s)', 'ETATSEJOUR', 10, '', '', ''), +(1, 'S5', 'Facturé(s) non soldé(s)', 'ETATSEJOUR', 10, '', '', ''), +(1, 'S6', 'Soldé(s)', 'ETATSEJOUR', 10, '', '', ''), +(1, 'S7', 'Fictif(s)', 'ETATSEJOUR', 10, '', '', ''), +(1, 'S8', 'Annulé(s)', 'ETATSEJOUR', 10, '', '', ''), +(1, 'S1', 'Prévu(s)', 'ETATSEJOUR', 11, '', '', ''), +(1, 'S2', 'Présent(s)', 'ETATSEJOUR', 11, '', '', ''), +(1, 'S3', 'Sorti(s) non facturé(s)', 'ETATSEJOUR', 11, '', '', ''), +(1, 'S4', 'Facturé(s) non soldé(s)', 'ETATSEJOUR', 11, '', '', ''), +(1, 'S5', 'Soldé(s)', 'ETATSEJOUR', 11, '', '', ''), +(1, 'S6', 'Annulé(s)', 'ETATSEJOUR', 11, '', '', ''), +(1, '1', 'MCO', 'FORMEACTIVITE', 1, '', '', ''), +(1, '2', 'SSR', 'FORMEACTIVITE', 1, '', '', ''), +(1, '3', 'PSY', 'FORMEACTIVITE', 1, '', '', ''), +(1, '4', 'HAD', 'FORMEACTIVITE', 1, '', '', ''), +(1, '5', 'EHPAD et assimilés', 'FORMEACTIVITE', 1, '', '', ''), +(1, '7', 'Externes', 'FORMEACTIVITE', 1, '', '', ''), +(1, '9', 'Autres', 'FORMEACTIVITE', 1, '', '', ''), +(1, '11', 'MCO Médecine', 'FORMEACTIVITE', 2, '', '', ''), +(1, '12', 'MCO Chirurgie', 'FORMEACTIVITE', 2, '', '', ''), +(1, '13', 'MCO Obstétrique', 'FORMEACTIVITE', 2, '', '', ''), +(1, '14', 'MCO Esthétique', 'FORMEACTIVITE', 2, '', '', ''), +(1, '15', 'MCO Séances', 'FORMEACTIVITE', 2, '', '', ''), +(1, '19', 'MCO Autres', 'FORMEACTIVITE', 2, '', '', ''), +(1, '20', 'SSR', 'FORMEACTIVITE', 2, '', '', ''), +(1, '30', 'PSY', 'FORMEACTIVITE', 2, '', '', ''), +(1, '40', 'HAD', 'FORMEACTIVITE', 2, '', '', ''), +(1, '50', 'EHPAD et assimilés', 'FORMEACTIVITE', 2, '', '', ''), +(1, '70', 'Externes', 'FORMEACTIVITE', 2, '', '', ''), +(1, '99', 'Autres', 'FORMEACTIVITE', 2, '', '', ''), +(1, '11', 'MCOCA', 'FORMEACTIVITE', 3, '', '', ''), +(1, '12', 'MCO48H', 'FORMEACTIVITE', 3, '', '', ''), +(1, '2', 'SSR', 'FORMEACTIVITE', 3, '', '', ''), +(1, '3', 'PSY', 'FORMEACTIVITE', 3, '', '', ''), +(1, '4', 'HAD', 'FORMEACTIVITE', 3, '', '', ''), +(1, '9', 'Autres', 'FORMEACTIVITE', 3, '', '', ''), +(1, 'G001', 'Chirurgies digestives hautes', 'GHM', 7, '', '', ''), +(1, 'G002', 'Chirurgie digestive majeure', 'GHM', 7, '', '', ''), +(1, 'G003', 'Appendicectomies', 'GHM', 7, '', '', ''), +(1, 'G004', 'Hernies', 'GHM', 7, '', '', ''), +(1, 'G005', 'Occlusions, sub-occlusions digestives', 'GHM', 7, '', '', ''), +(1, 'G006', 'Chirurgie mineure grêle/colon', 'GHM', 7, '', '', ''), +(1, 'G007', 'Chirurgies rectum/anus (hors résections)', 'GHM', 7, '', '', ''), +(1, 'G008', 'Autres chirurgies digestives', 'GHM', 7, '', '', ''), +(1, 'G009', 'Cholécystectomies', 'GHM', 7, '', '', ''), +(1, 'G010', 'Autres chirurgies foie, pancréas, voies biliaires', 'GHM', 7, '', '', ''), +(1, 'G011', 'Prise en charge médicale des tumeurs malignes du tube digestif', 'GHM', 7, '', '', ''), +(1, 'G012', 'Ulcères, hémorragies digestives', 'GHM', 7, '', '', ''), +(1, 'G013', 'Suivi de greffes digestives', 'GHM', 7, '', '', ''), +(1, 'G014', 'Maladies inflammatoires de l''intestin', 'GHM', 7, '', '', ''), +(1, 'G015', 'Gastro-entérites et affections du tube digestif', 'GHM', 7, '', '', ''), +(1, 'G016', 'Autres gastroentérites et maladies diverses du tube digestif', 'GHM', 7, '', '', ''), +(1, 'G017', 'Autres affections digestives', 'GHM', 7, '', '', ''), +(1, 'G018', 'Hépatites, cirrhoses', 'GHM', 7, '', '', ''), +(1, 'G019', 'Affections hépatiques sévères et affections du pancréas', 'GHM', 7, '', '', ''), +(1, 'G020', 'Autres affections hépatiques, voies biliaires', 'GHM', 7, '', '', ''), +(1, 'G021', 'Symptômes digestifs', 'GHM', 7, '', '', ''), +(1, 'G022', 'Endoscopies digestives avec ou sans anesthésie', 'GHM', 7, '', '', ''), +(1, 'G023', 'Explorations et surveillance pour affections de l''appareil digestif, du système hépatobiliaire et du pancréas', 'GHM', 7, '', '', ''), +(1, 'G024', 'Chirurgies majeures orthopédiques (dont hanche et fémur genou)', 'GHM', 7, '', '', ''), +(1, 'G025', 'Arthroscopies, Biopsies ostéo-articulaires', 'GHM', 7, '', '', ''), +(1, 'G026', 'Chirurgie Fractures, entorses, luxations, tractions', 'GHM', 7, '', '', ''), +(1, 'G027', 'Ablations matériel', 'GHM', 7, '', '', ''), +(1, 'G028', 'Amputations', 'GHM', 7, '', '', ''), +(1, 'G029', 'Chirurgies main, poignet', 'GHM', 7, '', '', ''), +(1, 'G030', 'Chirurgie pour Ostéomyélites aigües (y compris vertébrales) et arthrites septiques', 'GHM', 7, '', '', ''), +(1, 'G031', 'Chirurgie de la jambe', 'GHM', 7, '', '', ''), +(1, 'G032', 'Chirurgie de la cheville ou du pied', 'GHM', 7, '', '', ''), +(1, 'G033', 'Chirurgie du membre supérieur (hors prothèses)', 'GHM', 7, '', '', ''), +(1, 'G034', 'Chirurgie des tissus mous', 'GHM', 7, '', '', ''), +(1, 'G035', 'Interventions sur le tissu mou pour tumeurs malignes', 'GHM', 7, '', '', ''), +(1, 'G036', 'Traumatismes du bassin et des membres', 'GHM', 7, '', '', ''), +(1, 'G037', 'Polytraumatismes graves', 'GHM', 7, '', '', ''), +(1, 'G038', 'Prise en charge médicale des tumeurs de l''appareil musculosquelettique, du tissu conjonctif et fractures pathologiques', 'GHM', 7, '', '', ''), +(1, 'G039', 'Maladies osseuses et arthropathies', 'GHM', 7, '', '', ''), +(1, 'G040', 'Autres affections rhumatologiques', 'GHM', 7, '', '', ''), +(1, 'G041', 'Chirurgies rachis/moelle', 'GHM', 7, '', '', ''), +(1, 'G042', 'Explorations et surveillance de l''appareil musculosquelettique et du tissu conjonctif', 'GHM', 7, '', '', ''), +(1, 'G043', 'Chirurgies SNC trauma', 'GHM', 7, '', '', ''), +(1, 'G044', 'Chirurgies SNC hors trauma (rachis et moelle exceptés)', 'GHM', 7, '', '', ''), +(1, 'G045', 'Pose stimulateur cérébral / médullaire', 'GHM', 7, '', '', ''), +(1, 'G046', 'Trauma crâniens', 'GHM', 7, '', '', ''), +(1, 'G047', 'Affections dégénératives du système nerveux', 'GHM', 7, '', '', ''), +(1, 'G048', 'Affections nerfs crâniens / moëlle', 'GHM', 7, '', '', ''), +(1, 'G049', 'AVC', 'GHM', 7, '', '', ''), +(1, 'G050', 'Comas non traumatiques', 'GHM', 7, '', '', ''), +(1, 'G051', 'Migraines et céphalées', 'GHM', 7, '', '', ''), +(1, 'G052', 'Convulsions, épilepsie', 'GHM', 7, '', '', ''), +(1, 'G053', 'Infections SNC', 'GHM', 7, '', '', ''), +(1, 'G054', 'Prise en charge médicale des tumeurs système nerveux', 'GHM', 7, '', '', ''), +(1, 'G055', 'Autres affections du système nerveux', 'GHM', 7, '', '', ''), +(1, 'G056', 'Explorations et surveillance pour affections du système nerveux', 'GHM', 7, '', '', ''), +(1, 'G057', 'Cathétérismes thérapeutiques vasculaires et coronariens avec endoprothèse ou prothèses cardiaques', 'GHM', 7, '', '', ''), +(1, 'G058', 'Cathétérismes thérapeutiques vasculaires et coronariens sans endoprothèse', 'GHM', 7, '', '', ''), +(1, 'G059', 'Cathéthérismes diagnostiques vasculaires et coronariens', 'GHM', 7, '', '', ''), +(1, 'G060', 'Cathétérisme thérapeutiques vasculaires du système nerveux', 'GHM', 7, '', '', ''), +(1, 'G061', 'Chirurgies valvulaires', 'GHM', 7, '', '', ''), +(1, 'G062', 'Pontages coronaires', 'GHM', 7, '', '', ''), +(1, 'G063', 'Chirurgie cardiaque, autres', 'GHM', 7, '', '', ''), +(1, 'G064', 'Stimulateurs / défibrillateurs cardiaques', 'GHM', 7, '', '', ''), +(1, 'G065', 'Cardiopathies, valvulopathies', 'GHM', 7, '', '', ''), +(1, 'G066', 'Coronaropathies', 'GHM', 7, '', '', ''), +(1, 'G067', 'Endocardites', 'GHM', 7, '', '', ''), +(1, 'G068', 'Hypertension artérielle', 'GHM', 7, '', '', ''), +(1, 'G069', 'Troubles du rythme/conduction', 'GHM', 7, '', '', ''), +(1, 'G070', 'Cardiologie autres', 'GHM', 7, '', '', ''), +(1, 'G071', 'Explorations et surveillance pour affections de l''appareil circulatoire', 'GHM', 7, '', '', ''), +(1, 'G072', 'Chirurgies majeures revascularisation', 'GHM', 7, '', '', ''), +(1, 'G073', 'Ligatures veines', 'GHM', 7, '', '', ''), +(1, 'G074', 'Autres chirurgies vasculaires', 'GHM', 7, '', '', ''), +(1, 'G075', 'Phlébites, varices et autres troubles vasculaires d''origine veineuse', 'GHM', 7, '', '', ''), +(1, 'G076', 'Chirurgies thoraciques majeures', 'GHM', 7, '', '', ''), +(1, 'G077', 'Autres chirurgies thoraciques', 'GHM', 7, '', '', ''), +(1, 'G078', 'Bronchites, bronchiolites et asthme', 'GHM', 7, '', '', ''), +(1, 'G079', 'Embolies pulmonaires et détresses respiratoires', 'GHM', 7, '', '', ''), +(1, 'G080', 'Infections respiratoires', 'GHM', 7, '', '', ''), +(1, 'G081', 'Prise en charge médicale des tumeurs de l''appareil respiratoire', 'GHM', 7, '', '', ''), +(1, 'G082', 'Affections respiratoires, autres', 'GHM', 7, '', '', ''), +(1, 'G083', 'Explorations et surveillance pour affections de l''appareil respiratoire', 'GHM', 7, '', '', ''), +(1, 'G084', 'Endoscopies bronchiques, avec ou sans anesthésie', 'GHM', 7, '', '', ''), +(1, 'G085', 'Chirurgies ORL majeures', 'GHM', 7, '', '', ''), +(1, 'G086', 'Chirurgie de l''oreille', 'GHM', 7, '', '', ''), +(1, 'G087', 'Amygdalectomies, VG, drains transT', 'GHM', 7, '', '', ''), +(1, 'G088', 'Autres chirurgies ORL', 'GHM', 7, '', '', ''), +(1, 'G089', 'Chirurgie de la bouche', 'GHM', 7, '', '', ''), +(1, 'G090', 'Affections Cavité buccale et dents', 'GHM', 7, '', '', ''), +(1, 'G091', 'Infections ORL', 'GHM', 7, '', '', ''), +(1, 'G092', 'Prise en charge médicale des tumeurs malignes ORL, Stomato', 'GHM', 7, '', '', ''), +(1, 'G093', 'Pathologies ORL et Stomato autres', 'GHM', 7, '', '', ''), +(1, 'G094', 'Explorations et surveillance pour affections ORL', 'GHM', 7, '', '', ''), +(1, 'G095', 'Endoscopies ORL, avec ou sans anesthésie', 'GHM', 7, '', '', ''), +(1, 'G096', 'Chirurgies ophtalmo lourdes', 'GHM', 7, '', '', ''), +(1, 'G097', 'Cataractes', 'GHM', 7, '', '', ''), +(1, 'G098', 'Allogreffes de cornées', 'GHM', 7, '', '', ''), +(1, 'G099', 'Autres chirurgies ophtalmo', 'GHM', 7, '', '', ''), +(1, 'G100', 'Affections oeil', 'GHM', 7, '', '', ''), +(1, 'G101', 'Infections oeil', 'GHM', 7, '', '', ''), +(1, 'G102', 'Explorations et surveillance pour affections de l''oeil', 'GHM', 7, '', '', ''), +(1, 'G103', 'Chirurgie pour tumeurs malignes (app génital fem)', 'GHM', 7, '', '', ''), +(1, 'G104', 'Chirurgies pelviennes majeures (app gen feminin)', 'GHM', 7, '', '', ''), +(1, 'G105', 'Chirurgies utérus / annexes', 'GHM', 7, '', '', ''), +(1, 'G106', 'Autres chirurgies gynécologiques autres que le sein', 'GHM', 7, '', '', ''), +(1, 'G107', 'Chirurgie pour tumeurs malignes sein', 'GHM', 7, '', '', ''), +(1, 'G108', 'Chirurgie du sein hors TM', 'GHM', 7, '', '', ''), +(1, 'G109', 'Prise en charge médicale des tumeurs de l''appareil génital féminin', 'GHM', 7, '', '', ''), +(1, 'G110', 'Autres affections appareil génital féminin', 'GHM', 7, '', '', ''), +(1, 'G111', 'AMP', 'GHM', 7, '', '', ''), +(1, 'G112', 'Infections gynécologiques d''organes autres que le sein', 'GHM', 7, '', '', ''), +(1, 'G113', 'Affections des seins', 'GHM', 7, '', '', ''), +(1, 'G114', 'Prise en charge médicale des tumeurs des seins', 'GHM', 7, '', '', ''), +(1, 'G115', 'Explorations et surveillance gynécologiques et des affections des seins', 'GHM', 7, '', '', ''), +(1, 'G116', 'Accouchements par voie basse', 'GHM', 7, '', '', ''), +(1, 'G117', 'Césariennes', 'GHM', 7, '', '', ''), +(1, 'G118', 'IVG', 'GHM', 7, '', '', ''), +(1, 'G119', 'Affections de ante partum', 'GHM', 7, '', '', ''), +(1, 'G120', 'Affections du post partum', 'GHM', 7, '', '', ''), +(1, 'G121', 'Interruptions médicale de grossesse', 'GHM', 7, '', '', ''), +(1, 'G122', 'Chirurgie du nouveau né', 'GHM', 7, '', '', ''), +(1, 'G123', 'Transferts précoces de nouveau nés', 'GHM', 7, '', '', ''), +(1, 'G124', 'Afections médicales du nouveau né', 'GHM', 7, '', '', ''), +(1, 'G125', 'Décès de nouveau nés', 'GHM', 7, '', '', ''), +(1, 'G126', 'Chirurgies reins, uretères, vessie, glandes surrénales', 'GHM', 7, '', '', ''), +(1, 'G127', 'Chirurgies transurétrales, autres', 'GHM', 7, '', '', ''), +(1, 'G128', 'Chirurgies appareil génital masculin', 'GHM', 7, '', '', ''), +(1, 'G129', 'Circoncisions', 'GHM', 7, '', '', ''), +(1, 'G130', 'Chirurgies pelviennes majeures (urologie)', 'GHM', 7, '', '', ''), +(1, 'G131', 'Chirurgie des tumeurs appareil génital masculin', 'GHM', 7, '', '', ''), +(1, 'G132', 'Prise en charge médicale des tumeurs reins et voies urinaires', 'GHM', 7, '', '', ''), +(1, 'G133', 'Infections reins et voies urinaires, lithiases', 'GHM', 7, '', '', ''), +(1, 'G134', 'Autres affections reins, voies urinaires', 'GHM', 7, '', '', ''), +(1, 'G135', 'Explorations et surveillance pour affections du rein et des voies urinaires', 'GHM', 7, '', '', ''), +(1, 'G136', 'Infections appareil génital masculin', 'GHM', 7, '', '', ''), +(1, 'G137', 'Prise en charge médicale des tumeurs de l''appareil génital masculin', 'GHM', 7, '', '', ''), +(1, 'G138', 'Autres affections appareil génital masculin', 'GHM', 7, '', '', ''), +(1, 'G139', 'Explorations et surveillance des affections de l''appareil génital masculin', 'GHM', 7, '', '', ''), +(1, 'G140', 'Endoscopies génito-urinaires, avec ou sans anesthésie', 'GHM', 7, '', '', ''), +(1, 'G141', 'Chirurgie au cours des tumeurs malignes (hématologie)', 'GHM', 7, '', '', ''), +(1, 'G142', 'Greffes de cellules souches hématopoïétiques', 'GHM', 7, '', '', ''), +(1, 'G143', 'Donneurs de moëlle', 'GHM', 7, '', '', ''), +(1, 'G144', 'Affections hématologiques malignes', 'GHM', 7, '', '', ''), +(1, 'G145', 'Autres Maladies immunitaires, du Sang, des Organes hématopoïétiques, Tumeurs siège imprécis ou diffus', 'GHM', 7, '', '', ''), +(1, 'G146', 'Explorations et surveillance pour affections du sang et des organes hématopoïétiques', 'GHM', 7, '', '', ''), +(1, 'G147', 'Explorations et surveillance pour affections myéloprolifératives et tumeurs de siège imprécis ou diffus', 'GHM', 7, '', '', ''), +(1, 'G148', 'Chimiothérapie hors séances', 'GHM', 7, '', '', ''), +(1, 'G149', 'Radiothérapie hors séances', 'GHM', 7, '', '', ''), +(1, 'G150', 'Chimiothérapie non tumorale hors séances', 'GHM', 7, '', '', ''), +(1, 'G151', 'Maladies virales et fièvres d''origine inconnue', 'GHM', 7, '', '', ''), +(1, 'G152', 'Septicémies', 'GHM', 7, '', '', ''), +(1, 'G153', 'Maladies infectieuses ou parasitaires hors septicémies et maladies virales', 'GHM', 7, '', '', ''), +(1, 'G154', 'Décès secondaire à une maladie infectieuse: séjours de moins de 2 jours', 'GHM', 7, '', '', ''), +(1, 'G155', 'Explorations et surveillance pour maladies infectieuses ou parasitaires', 'GHM', 7, '', '', ''), +(1, 'G156', 'Maladies VIH', 'GHM', 7, '', '', ''), +(1, 'G157', 'Chirurgie des parathyroides, du tractus thyréoglosse, endocrinologie', 'GHM', 7, '', '', ''), +(1, 'G158', 'Chirurgie de la thyroide', 'GHM', 7, '', '', ''), +(1, 'G159', 'Diabète', 'GHM', 7, '', '', ''), +(1, 'G160', 'Maladies endocriniennes hors diabète', 'GHM', 7, '', '', ''), +(1, 'G161', 'Troubles métaboliques, nutritionnels et obésité', 'GHM', 7, '', '', ''), +(1, 'G162', 'Explorations et surveillance pour affections endocriniennes, troubles métaboliques, nutritionnels et obésité', 'GHM', 7, '', '', ''), +(1, 'G163', 'Greffes peau / parages hors brûlures', 'GHM', 7, '', '', ''), +(1, 'G164', 'Intervention peau et tissu sous-cutané', 'GHM', 7, '', '', ''), +(1, 'G165', 'Affections peau et tissu sous-cutané', 'GHM', 7, '', '', ''), +(1, 'G166', 'Infections peau et tissu sous-cutané', 'GHM', 7, '', '', ''), +(1, 'G167', 'Prise en charge médicale des tumeurs de la peau et tissu sous-cutané', 'GHM', 7, '', '', ''), +(1, 'G168', 'Explorations et surveillance des affections de la peau', 'GHM', 7, '', '', ''), +(1, 'G169', 'Brûlures sans acte opératoire classant', 'GHM', 7, '', '', ''), +(1, 'G170', 'Troubles mentaux d''origine organique et retards mentaux', 'GHM', 7, '', '', ''), +(1, 'G171', 'Névroses, psychoses et autres troubles mentaux', 'GHM', 7, '', '', ''), +(1, 'G172', 'Explorations et surveillance pour maladies et troubles mentaux', 'GHM', 7, '', '', ''), +(1, 'G173', 'Toxicomanies et alcoolisme', 'GHM', 7, '', '', ''), +(1, 'G174', 'Allergies', 'GHM', 7, '', '', ''), +(1, 'G175', 'Iatrogénie, intox médicamenteuses et chimiques', 'GHM', 7, '', '', ''), +(1, 'G176', 'Soins palliatifs', 'GHM', 7, '', '', ''), +(1, 'G177', 'Douleurs chroniques', 'GHM', 7, '', '', ''), +(1, 'G178', 'Transplantations d''organes', 'GHM', 7, '', '', ''), +(1, 'G179', 'Chirurgie inter spécialités', 'GHM', 7, '', '', ''), +(1, 'G180', 'Chirurgie esthétique et de confort', 'GHM', 7, '', '', ''), +(1, 'G181', 'Médecine inter spécialités', 'GHM', 7, '', '', ''), +(1, 'G182', 'Allergologie', 'GHM', 7, '', '', ''), +(1, 'G183', 'Explorations nocturnes et apparentées', 'GHM', 7, '', '', ''), +(1, 'G184', 'Suivi thérap.d''affections connues', 'GHM', 7, '', '', ''), +(1, 'G185', 'Explorations et surveillance pour autres motifs de recours aux soins', 'GHM', 7, '', '', ''), +(1, 'G186', 'Rééducation - Convalescence', 'GHM', 7, '', '', ''), +(1, 'G187', 'Séances : dialyse', 'GHM', 7, '', '', ''), +(1, 'G188', 'Séances : transfusion', 'GHM', 7, '', '', ''), +(1, 'G189', 'Séances : radiothérapie', 'GHM', 7, '', '', ''), +(1, 'G190', 'Séances : chimiothérapie', 'GHM', 7, '', '', ''), +(1, 'G191', 'Séances : chimiothérapie non tumorale', 'GHM', 7, '', '', ''), +(1, 'G192', 'Séances : caisson hyperbare', 'GHM', 7, '', '', ''), +(1, 'G193', 'Séances : aphérèse sanguine', 'GHM', 7, '', '', ''), +(1, 'G194', 'Signes et symptômes', 'GHM', 7, '', '', ''), +(1, 'G195', 'Mort-nés', 'GHM', 7, '', '', ''), +(1, 'G196', 'Injections de toxine botulique, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G197', 'Affections du système nerveux sans acte opératoire avec anesthésie, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G198', 'Affections cardiovasculaires sans acte opératoire de la CMD 05, avec anesthésie, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G199', 'Mise en place d''accès vasculaire', 'GHM', 7, '', '', ''), +(1, 'G200', 'Varices avec acte autre que ligature et éveinage, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G201', 'Affections de l''appareil génital féminin sans acte opératoire de la CMD 13, avec anesthésie, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G202', 'Insuffisance rénale, avec dialyse', 'GHM', 7, '', '', ''), +(1, 'G203', 'Autres séj. sans acte, avec anesthésie, en ambulatoire (Aff. myéloP., peau, sein..)', 'GHM', 7, '', '', ''), +(1, 'G204', 'Brûlures chirurgie', 'GHM', 7, '', '', ''), +(1, 'G205', 'Séjours pour douleurs chroniques rebelles comprenant un bloc ou une infiltration, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G206', 'Traumatismes, allergies et empoisonnements sans acte opératoire, avec anesthésie, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G207', 'Actes ORL et stomato divers', 'GHM', 7, '', '', ''), +(1, 'G208', 'Lithotritie extracorporelle de l''appareil urinaire, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G209', 'Séjours comprenant une biopsie prostatique, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G210', 'Traumatismes du rachis', 'GHM', 7, '', '', ''), +(1, 'G211', 'Ostéomyélites aigües (y compris vertébrales) et arthrites septiques', 'GHM', 7, '', '', ''), +(1, 'G212', 'Affections endocriniennes et problèmes alimentaires du nouveau né et du nourisson', 'GHM', 7, '', '', ''), +(1, 'G213', 'Endoscopies digestives thérapeutiques et anesthésie : séjours de moins de 2 jours', 'GHM', 7, '', '', ''), +(1, 'G214', 'Affections digestives sans acte opératoire de la CMD 06, avec anesthésie, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G215', 'Brûlures sans acte opératoire, avec anesthésie, en ambulatoire', 'GHM', 7, '', '', ''), +(1, 'G216', 'Polytraumatismes graves', 'GHM', 7, '', '', ''), +(1, 'G217', 'Activité interventionnelle en Hépato-Gastro-Entérologie', 'GHM', 7, '', '', ''), +(1, 'G999', 'Séjours en Erreur', 'GHM', 7, '', '', ''), +(1, 'C01', 'Transplant. d''organes (hors greffes de moelle & cornée)', 'GHM', 8, '', '', ''), +(1, 'C02', 'Chirurgie du rachis, Neuro-chirurgie', 'GHM', 8, '', '', ''), +(1, 'C03', 'Neurostimulateurs', 'GHM', 8, '', '', ''), +(1, 'C04', 'Chir. cardio-thoracique (hors transplant. d''organe), Pontages aorto-coronariens', 'GHM', 8, '', '', ''), +(1, 'C05', 'Chir. majeure sur le thorax, l''app. respiratoire, interventions sous thoracoscopie', 'GHM', 8, '', '', ''), +(1, 'C06', 'Chir. Digestive majeure : oesophage, estomac, grêle, côlon, rectum', 'GHM', 8, '', '', ''), +(1, 'C07', 'Chir. Viscérale autre : rate, grêle, colon, proctologie, hernies', 'GHM', 8, '', '', ''), +(1, 'C08', 'Chir. hépato-biliaire et pancréatique', 'GHM', 8, '', '', ''), +(1, 'C09', 'Chir. majeure de l''app. Locomoteur: hanche, fémur, genou, épaule', 'GHM', 8, '', '', ''), +(1, 'C10', 'Arthroscopies, Biopsies ostéo-articulaires', 'GHM', 8, '', '', ''), +(1, 'C11', 'Chirurgies autres de l''appareil locomoteur, amputations', 'GHM', 8, '', '', ''), +(1, 'C12', 'Traumatismes multiples graves', 'GHM', 8, '', '', ''), +(1, 'C13', 'Stimulateurs, Défibrillateurs cardiaques', 'GHM', 8, '', '', ''), +(1, 'C14', 'Chirurgie vasculaire', 'GHM', 8, '', '', ''), +(1, 'C15', 'Chirurgie ORL stomato', 'GHM', 8, '', '', ''), +(1, 'C16', 'Chirurgie Ophtalmologique et greffe de cornée', 'GHM', 8, '', '', ''), +(1, 'C17', 'Chirurgie Gynécologique', 'GHM', 8, '', '', ''), +(1, 'C18', 'Chirurgie du sein', 'GHM', 8, '', '', ''), +(1, 'C19', 'Chirurgie Urologique', 'GHM', 8, '', '', ''), +(1, 'C20', 'Chirurgie de l''appareil génital masculin', 'GHM', 8, '', '', ''), +(1, 'C21', 'Chir. pour Aff. des Org. Hématopoiétiques, Lymphomes, Leucémies, Tumeurs SID', 'GHM', 8, '', '', ''), +(1, 'C22', 'Chirurgie de la Thyroide, Parathyroide, du Tractus Thyréoglosse, endocrinologie', 'GHM', 8, '', '', ''), +(1, 'C23', 'Parages de plaies, Greffes de peau, des Tissus S/C', 'GHM', 8, '', '', ''), +(1, 'C24', 'Chirurgie pour brûlures', 'GHM', 8, '', '', ''), +(1, 'C25', 'Chirurgie inter spécialités', 'GHM', 8, '', '', ''), +(1, 'K01', 'Hépato-Gastro-Entérologie, sans acte opératoire, avec anesthésie', 'GHM', 8, '', '', ''), +(1, 'K02', 'Endoscopies digestives et biliaires avec ou sans anesthésie', 'GHM', 8, '', '', ''), +(1, 'K03', 'Neurologie médicale avec Acte classant non opératoire, ou anesthésie', 'GHM', 8, '', '', ''), +(1, 'K04', 'Aff. Cardio-vasculaire avec Acte classant non opératoire, ou anesthésie', 'GHM', 8, '', '', ''), +(1, 'K05', 'Cathétérismes vasculaires diagnostiques et interventionnels', 'GHM', 8, '', '', ''), +(1, 'K06', 'Mise en place d''accès vasculaire', 'GHM', 8, '', '', ''), +(1, 'K07', 'Endoscopies bronchiques, avec ou sans anesthésie', 'GHM', 8, '', '', ''), +(1, 'K08', 'Traumatologie avec acte classant non opératoire ou anesthésie', 'GHM', 8, '', '', ''), +(1, 'K09', 'ORL Stomato avec Acte classant non opératoire et endoscopies', 'GHM', 8, '', '', ''), +(1, 'K10', 'Aff. génito-urinaires avec Acte classant non opératoire et endoscopies', 'GHM', 8, '', '', ''), +(1, 'K11', 'Douleur chroniques, avec bloc ou infiltration, en ambulatoire', 'GHM', 8, '', '', ''), +(1, 'K12', 'Explorations nocturnes, séjours de moins de 2 jours', 'GHM', 8, '', '', ''), +(1, 'K13', 'Dialyse (hors Séances)', 'GHM', 8, '', '', ''), +(1, 'K14', 'Radiothérapie (hors séances)', 'GHM', 8, '', '', ''), +(1, 'K15', 'Autres séj. sans acte, avec anesthésie, en ambulatoire (Aff. myéloP., peau, sein...)', 'GHM', 8, '', '', ''), +(1, 'K16', 'Brûlures sans acte opératoire, avec anesthésie, en ambulatoire', 'GHM', 8, '', '', ''), +(1, 'K17', 'Traumatologie avec acte classant non opératoire ou anesthésie', 'GHM', 8, '', '', ''), +(1, 'N01', 'Chirurgie des nouveau-nés, prématurés et de la période périnatale', 'GHM', 8, '', '', ''), +(1, 'N02', 'Aff. médicales des nouveau-nés, prématurés et de la période périnatale', 'GHM', 8, '', '', ''), +(1, 'N03', 'Mort-nés, décès et transferts précoces de nouveau-nés', 'GHM', 8, '', '', ''), +(1, 'O01', 'Accouchements par voie basse', 'GHM', 8, '', '', ''), +(1, 'O02', 'Césariennes', 'GHM', 8, '', '', ''), +(1, 'O03', 'IVG', 'GHM', 8, '', '', ''), +(1, 'O04', 'Obstétrique autre', 'GHM', 8, '', '', ''), +(1, 'S01', 'Dialyse', 'GHM', 8, '', '', ''), +(1, 'S02', 'Chimiothérapie pour tumeur', 'GHM', 8, '', '', ''), +(1, 'S03', 'Chimiothérapie pour aff. Non tumorale', 'GHM', 8, '', '', ''), +(1, 'S04', 'Radiothérapie', 'GHM', 8, '', '', ''), +(1, 'S05', 'Transfusion', 'GHM', 8, '', '', ''), +(1, 'S06', 'Aphérèse', 'GHM', 8, '', '', ''), +(1, 'S07', 'Oxygénothérapie hyperbare, en séances', 'GHM', 8, '', '', ''), +(1, 'X01', 'Greffe de moelle, Auto et Allogreffes de cellules souches', 'GHM', 8, '', '', ''), +(1, 'X02', 'Hépato-Gastro-Entérologie', 'GHM', 8, '', '', ''), +(1, 'X03', 'Neurologie médicale', 'GHM', 8, '', '', ''), +(1, 'X04', 'Commotions cérébrales, Traumatismes crâniens', 'GHM', 8, '', '', ''), +(1, 'X05', 'Traumatologie et ablation de matériel de l''appareil locomoteur', 'GHM', 8, '', '', ''), +(1, 'X06', 'Rhumatologie', 'GHM', 8, '', '', ''), +(1, 'X07', 'Affections Cardio-vasculaires', 'GHM', 8, '', '', ''), +(1, 'X08', 'Pneumologie', 'GHM', 8, '', '', ''), +(1, 'X09', 'ORL, Stomato', 'GHM', 8, '', '', ''), +(1, 'X10', 'Ophtalmologie', 'GHM', 8, '', '', ''), +(1, 'X11', 'Gynécologie, Sénologie (hors Obstétrique)', 'GHM', 8, '', '', ''), +(1, 'X12', 'Uro-Néphrologie médicale (hors Séances)', 'GHM', 8, '', '', ''), +(1, 'X13', 'Appareil génital masculin', 'GHM', 8, '', '', ''), +(1, 'X14', 'Maladies immunitaires, du Sang, des Organes hématopoïétiques, Tumeurs SID', 'GHM', 8, '', '', ''), +(1, 'X15', 'Diabète, Maladies métaboliques, Endocrinologie (hors complications)', 'GHM', 8, '', '', ''), +(1, 'X16', 'Affections et traumatismes de la peau, gelures', 'GHM', 8, '', '', ''), +(1, 'X17', 'Brûlures', 'GHM', 8, '', '', ''), +(1, 'X18', 'Suivi thérap. d''affections connues, Allergologie, Rééducation, Convalescence', 'GHM', 8, '', '', ''), +(1, 'X19', 'Fièvre, Infection, Septicémie, VIH', 'GHM', 8, '', '', ''), +(1, 'X20', 'Psychiatrie', 'GHM', 8, '', '', ''), +(1, 'X21', 'Effets nocifs, alcool, toxicologie, allergies', 'GHM', 8, '', '', ''), +(1, 'X22', 'Douleur et soins palliatifs', 'GHM', 8, '', '', ''), +(1, 'X23', 'Chimiothérapie (hors séances)', 'GHM', 8, '', '', ''), +(1, 'X24', 'Médecine inter spécialités, Autres symptômes ou motifs médicaux', 'GHM', 8, '', '', ''), +(1, 'X25', 'Traumatismes multiples graves', 'GHM', 8, '', '', ''), +(1, 'X26', 'Chirurgie esthétique et de confort', 'GHM', 8, '', '', ''), +(1, 'Z99', 'Séjours en Erreur', 'GHM', 8, '', '', ''), +(1, 'D01', 'Digestif', 'GHM', 9, '', '', ''), +(1, 'D02', 'Orthopédie traumatologie', 'GHM', 9, '', '', ''), +(1, 'D03', 'Traumatismes multiples ou complexes graves', 'GHM', 9, '', '', ''), +(1, 'D04', 'Rhumatologie', 'GHM', 9, '', '', ''), +(1, 'D05', 'Système nerveux (hors cathétérismes vasculaires diagnostiques et interventionnels)', 'GHM', 9, '', '', ''), +(1, 'D06', 'Cathétérismes vasculaires diagnostiques et interventionnels', 'GHM', 9, '', '', ''), +(1, 'D07', 'Cardio-vasculaire (hors cathétérismes vasculaires diagnostiques et interventionnels)', 'GHM', 9, '', '', ''), +(1, 'D09', 'Pneumologie', 'GHM', 9, '', '', ''), +(1, 'D10', 'ORL, Stomatologie', 'GHM', 9, '', '', ''), +(1, 'D11', 'Ophtalmologie', 'GHM', 9, '', '', ''), +(1, 'D12', 'Gynécologie - sein', 'GHM', 9, '', '', ''), +(1, 'D13', 'Obstétrique', 'GHM', 9, '', '', ''), +(1, 'D14', 'Nouveau-nés et période périnatale', 'GHM', 9, '', '', ''), +(1, 'D15', 'Uro-néphrologie et génital', 'GHM', 9, '', '', ''), +(1, 'D16', 'Hématologie', 'GHM', 9, '', '', ''), +(1, 'D17', 'Chimiothérapie, radiothérapie, hors séances', 'GHM', 9, '', '', ''), +(1, 'D18', 'Maladies infectieuses (dont VIH)', 'GHM', 9, '', '', ''), +(1, 'D19', 'Endocrinologie', 'GHM', 9, '', '', ''), +(1, 'D20', 'Tissu cutané et tissu sous-cutané', 'GHM', 9, '', '', ''), +(1, 'D21', 'Brûlures', 'GHM', 9, '', '', ''), +(1, 'D22', 'Psychiatrie', 'GHM', 9, '', '', ''), +(1, 'D23', 'Toxicologie, Intoxications, Alcool', 'GHM', 9, '', '', ''), +(1, 'D24', 'Douleurs chroniques, Soins palliatifs', 'GHM', 9, '', '', ''), +(1, 'D25', 'Transplant. d''organes', 'GHM', 9, '', '', ''), +(1, 'D26', 'Activités inter spécialités, suivi thérapeutique d''affections connues', 'GHM', 9, '', '', ''), +(1, 'D27', 'Séances', 'GHM', 9, '', '', ''), +(1, 'D90', 'Séjours en erreur', 'GHM', 9, '', '', ''), +(1, '1', 'Libéraux', 'MEDECIN', 1, '', '', ''), +(1, '2', 'Salariés', 'MEDECIN', 1, '', '', ''), +(1, 'S11', 'T2A. GHS', 'PRESTA_C', 9, '', '', ''), +(1, 'S12', 'T2A. EXH', 'PRESTA_C', 9, '', '', ''), +(1, 'S13', 'T2A. Forfaits et suppléments', 'PRESTA_C', 9, '', '', ''), +(1, 'S19', 'T2A. Autres', 'PRESTA_C', 9, '', '', ''), +(1, 'S2', 'DMI', 'PRESTA_C', 9, '', '', ''), +(1, 'S3', 'PHC', 'PRESTA_C', 9, '', '', ''), +(1, 'S1', 'CA Soins.', 'RUBRIQUE', 4, '', '', '[CLASSE:CTI_RUB_2:S01][CLASSE:CTI_RUB_2:S02][CLASSE:CTI_RUB_2:S03][CLASSE:CTI_RUB_2:S04][CLASSE:CTI_RUB_2:S05][CLASSE:CTI_RUB_2:S06]'), +(1, 'S2', 'CA Hotellerie', 'RUBRIQUE', 4, '', '', '[CLASSE:CTI_RUB_2:S11][CLASSE:CTI_RUB_2:S12]'), +(1, 'S3', 'CA UCD / DMI', 'RUBRIQUE', 4, '', '', '[CLASSE:CTI_RUB_2:S21][CLASSE:CTI_RUB_2:S22]'), +(1, 'S8', 'Médecins salariés', 'RUBRIQUE', 4, '', '', '[CLASSE:CTI_RUB_2:S81]'), +(1, 'S9', 'Aucune facturation clinique', 'RUBRIQUE', 4, '', '', '[CLASSE:CTI_RUB_2:S91]'), +(1, 'S01', 'Séjours', 'RUBRIQUE', 31, '', '', ''), +(1, 'S02', 'Forfaits : Suppléments', 'RUBRIQUE', 31, '', '', ''), +(1, 'S03', 'Forfaits : SE', 'RUBRIQUE', 31, '', '', ''), +(1, 'S04', 'Forfaits : ATU', 'RUBRIQUE', 31, '', '', ''), +(1, 'S05', 'Forfaits : Esthétique', 'RUBRIQUE', 31, '', '', ''), +(1, 'S06', 'Forfaits : Externes et divers', 'RUBRIQUE', 31, '', '', ''), +(1, 'S11', 'Chambres particulières', 'RUBRIQUE', 31, '', '', ''), +(1, 'S12', 'Suppléments hoteliers', 'RUBRIQUE', 31, '', '', ''), +(1, 'S21', 'UCD', 'RUBRIQUE', 31, '', '', ''), +(1, 'S22', 'DMI', 'RUBRIQUE', 31, '', '', ''), +(1, 'S81', 'Médecins salariés', 'RUBRIQUE', 31, '', '', ''), +(1, 'S91', 'Aucune facturation clinique', 'RUBRIQUE', 31, '', '', '') +; + +-- 3/3 : Màj de la table iCTI +-- Implémentation oids +ALTER TABLE w_dbsetup ADD COLUMN table_id bigint DEFAULT 0 +; +UPDATE w_dbsetup +SET table_id = t_listes_tables.oid +FROM activite.t_listes_tables +WHERE table_code = t_listes_tables.code +; +ALTER TABLE w_dbsetup ADD COLUMN classe_id bigint DEFAULT 0 +; +UPDATE w_dbsetup +SET classe_id = t_classes.oid +FROM activite.t_classes +WHERE w_dbsetup.classe_sequence = t_classes.sequence AND + w_dbsetup.table_id = t_classes.table_id +; + + +-- Sections à supprimer -> Sections CTI non-livrées +-- La classe CTI_SPE_BUDG est créée et aliméntée lors de l'import activité et n'est pas livrée +DROP TABLE IF EXISTS w_del_sections +; +CREATE TEMP TABLE w_del_sections as ( + SELECT oid FROM activite.t_classes_sections + WHERE classe_id IN ( + SELECT + t_classes.oid + FROM activite.t_classes + WHERE 1=1 + AND is_cti = '1' + AND t_classes.code <> 'CTI_SPE_BUDG' + ) +); + +DELETE FROM activite.t_classes_sections_elements +WHERE section_id IN (SELECT oid FROM w_del_sections); + + +DELETE FROM activite.t_classes_sections +USING +( +SELECT t_classes_sections.classe_id, t_classes_sections.oid +FROM activite.t_classes_sections +LEFT JOIN w_dbsetup ON + w_dbsetup.classe_id = t_classes_sections.classe_id AND + w_dbsetup.code = t_classes_sections.code +WHERE w_dbsetup.oid IS NULL AND + t_classes_sections.classe_id IN (SELECT classe_id FROM w_dbsetup) AND + t_classes_sections.oid NOT IN (SELECT section_id FROM activite.t_classes_sections_elements) +) subview +WHERE subview.classe_id = t_classes_sections.classe_id AND + subview.oid = t_classes_sections.oid +; + +-- Mise à jour +UPDATE activite.t_classes_sections SET + texte = w_dbsetup.texte, + condition = w_dbsetup.condition, + exclude_code = w_dbsetup.exclude_code, + include_code = w_dbsetup.include_code +FROM w_dbsetup +WHERE w_dbsetup.classe_id = t_classes_sections.classe_id AND + w_dbsetup.code = t_classes_sections.code AND + ( + t_classes_sections.texte IS DISTINCT FROM w_dbsetup.texte OR + t_classes_sections.condition IS DISTINCT FROM w_dbsetup.condition OR + t_classes_sections.exclude_code IS DISTINCT FROM w_dbsetup.exclude_code OR + t_classes_sections.include_code IS DISTINCT FROM w_dbsetup.include_code + ) +; + +INSERT INTO activite.t_classes_sections(code, texte, classe_id, condition, exclude_code, include_code) +SELECT + w_dbsetup.code, + w_dbsetup.texte, + w_dbsetup.classe_id, + w_dbsetup.condition, + w_dbsetup.exclude_code, + w_dbsetup.include_code +FROM w_dbsetup +WHERE w_dbsetup.classe_id > 0 AND + (w_dbsetup.code||'@'||w_dbsetup.classe_id::text) + NOT IN (SELECT t_classes_sections.code||'@'||t_classes_sections.classe_id FROM activite.t_classes_sections) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_classes_sections_elements_ages.SQL b/db/data/dbdata_activite_t_classes_sections_elements_ages.SQL new file mode 100644 index 0000000..56029a5 --- /dev/null +++ b/db/data/dbdata_activite_t_classes_sections_elements_ages.SQL @@ -0,0 +1,178 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_classes_sections.code AS section_code, + t_ages.code as to_code, + t_listes_tables.code as table_code, + t_classes.sequence as classe_sequence + FROM + activite.t_classes_sections_elements, + activite.t_classes_sections, + activite.t_classes, + activite.t_listes_tables, + base.t_ages + WHERE 1=1 + AND t_classes_sections_elements.section_id = t_classes_sections.oid + AND t_classes_sections.classe_id = t_classes.oid + AND t_classes.is_cti = '1' + AND table_id = t_listes_tables.oid + AND t_listes_tables.code = 'AGE' + AND t_classes_sections_elements.to_id = t_ages.oid + ORDER BY t_classes.sequence, t_classes_sections.code, t_ages.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + section_code, + to_code, + table_code, + classe_sequence +) +VALUES +('T01', '000', 'AGE', 9), +('T02', '001', 'AGE', 9), +('T02', '002', 'AGE', 9), +('T02', '003', 'AGE', 9), +('T02', '004', 'AGE', 9), +('T02', '005', 'AGE', 9), +('T03', '006', 'AGE', 9), +('T03', '007', 'AGE', 9), +('T03', '008', 'AGE', 9), +('T03', '009', 'AGE', 9), +('T03', '010', 'AGE', 9), +('T03', '011', 'AGE', 9), +('T03', '012', 'AGE', 9), +('T04', '013', 'AGE', 9), +('T04', '014', 'AGE', 9), +('T04', '015', 'AGE', 9), +('T04', '016', 'AGE', 9), +('T04', '017', 'AGE', 9), +('T04', '018', 'AGE', 9), +('T04', '019', 'AGE', 9), +('T04', '020', 'AGE', 9), +('T05', '021', 'AGE', 9), +('T05', '022', 'AGE', 9), +('T05', '023', 'AGE', 9), +('T05', '024', 'AGE', 9), +('T05', '025', 'AGE', 9), +('T05', '026', 'AGE', 9), +('T05', '027', 'AGE', 9), +('T05', '028', 'AGE', 9), +('T05', '029', 'AGE', 9), +('T05', '030', 'AGE', 9), +('T06', '031', 'AGE', 9), +('T06', '032', 'AGE', 9), +('T06', '033', 'AGE', 9), +('T06', '034', 'AGE', 9), +('T06', '035', 'AGE', 9), +('T06', '036', 'AGE', 9), +('T06', '037', 'AGE', 9), +('T06', '038', 'AGE', 9), +('T06', '039', 'AGE', 9), +('T06', '040', 'AGE', 9), +('T07', '041', 'AGE', 9), +('T07', '042', 'AGE', 9), +('T07', '043', 'AGE', 9), +('T07', '044', 'AGE', 9), +('T07', '045', 'AGE', 9), +('T07', '046', 'AGE', 9), +('T07', '047', 'AGE', 9), +('T07', '048', 'AGE', 9), +('T07', '049', 'AGE', 9), +('T07', '050', 'AGE', 9), +('T08', '051', 'AGE', 9), +('T08', '052', 'AGE', 9), +('T08', '053', 'AGE', 9), +('T08', '054', 'AGE', 9), +('T08', '055', 'AGE', 9), +('T08', '056', 'AGE', 9), +('T08', '057', 'AGE', 9), +('T08', '058', 'AGE', 9), +('T08', '059', 'AGE', 9), +('T08', '060', 'AGE', 9), +('T09', '061', 'AGE', 9), +('T09', '062', 'AGE', 9), +('T09', '063', 'AGE', 9), +('T09', '064', 'AGE', 9), +('T09', '065', 'AGE', 9), +('T09', '066', 'AGE', 9), +('T09', '067', 'AGE', 9), +('T09', '068', 'AGE', 9), +('T09', '069', 'AGE', 9), +('T09', '070', 'AGE', 9), +('T10', '071', 'AGE', 9), +('T10', '072', 'AGE', 9), +('T10', '073', 'AGE', 9), +('T10', '074', 'AGE', 9), +('T10', '075', 'AGE', 9), +('T10', '076', 'AGE', 9), +('T10', '077', 'AGE', 9), +('T10', '078', 'AGE', 9), +('T10', '079', 'AGE', 9), +('T10', '080', 'AGE', 9), +('T11', '081', 'AGE', 9), +('T11', '082', 'AGE', 9), +('T11', '083', 'AGE', 9), +('T11', '084', 'AGE', 9), +('T11', '085', 'AGE', 9), +('T11', '086', 'AGE', 9), +('T11', '087', 'AGE', 9), +('T11', '088', 'AGE', 9), +('T11', '089', 'AGE', 9), +('T11', '090', 'AGE', 9), +('T11', '091', 'AGE', 9), +('T11', '092', 'AGE', 9), +('T11', '093', 'AGE', 9), +('T11', '094', 'AGE', 9), +('T11', '095', 'AGE', 9), +('T11', '096', 'AGE', 9), +('T11', '097', 'AGE', 9), +('T11', '098', 'AGE', 9), +('T11', '099', 'AGE', 9), +('T11', '100', 'AGE', 9), +('T11', '101', 'AGE', 9), +('T11', '102', 'AGE', 9), +('T11', '103', 'AGE', 9), +('T11', '104', 'AGE', 9), +('T11', '105', 'AGE', 9), +('T11', '106', 'AGE', 9), +('T11', '107', 'AGE', 9), +('T11', '108', 'AGE', 9), +('T11', '109', 'AGE', 9), +('T11', '110', 'AGE', 9), +('T11', '111', 'AGE', 9), +('T11', '112', 'AGE', 9), +('T11', '113', 'AGE', 9), +('T11', '114', 'AGE', 9), +('T11', '115', 'AGE', 9), +('T11', '116', 'AGE', 9), +('T11', '117', 'AGE', 9), +('T11', '118', 'AGE', 9), +('T11', '119', 'AGE', 9), +('T11', '120', 'AGE', 9) +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_classes_sections_elements(section_id, to_id) +SELECT + t_classes_sections.oid, + t_ages.oid +FROM + w_dbsetup, + activite.t_listes_tables, + activite.t_classes, + activite.t_classes_sections, + base.t_ages +WHERE + w_dbsetup.table_code = t_listes_tables.code + AND t_classes.table_id = t_listes_tables.oid + AND t_classes_sections.classe_id = t_classes.oid + AND w_dbsetup.section_code = t_classes_sections.code + AND w_dbsetup.classe_sequence = t_classes.sequence + AND w_dbsetup.to_code = t_ages.code + AND t_classes_sections.oid::text || '-' || t_ages.oid::text NOT IN (SELECT section_id::text || '-' || to_id::text FROM activite.t_classes_sections_elements); + +SELECT * FROM activite.cti_update_schema_classes('AGE'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_classes_sections_elements_duree_sejour.SQL b/db/data/dbdata_activite_t_classes_sections_elements_duree_sejour.SQL new file mode 100644 index 0000000..91b5f36 --- /dev/null +++ b/db/data/dbdata_activite_t_classes_sections_elements_duree_sejour.SQL @@ -0,0 +1,10058 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_classes_sections.code AS section_code, + t_durees_sejour.code as to_code, + t_listes_tables.code as table_code, + t_classes.sequence as classe_sequence + FROM + activite.t_classes_sections_elements, + activite.t_classes_sections, + activite.t_classes, + activite.t_listes_tables, + base.t_durees_sejour + WHERE + t_classes_sections_elements.section_id = t_classes_sections.oid + AND t_classes_sections.classe_id = t_classes.oid + AND t_classes.is_cti = '1' + AND table_id = t_listes_tables.oid + AND t_listes_tables.code = 'DURSEJ' + AND t_classes_sections_elements.to_id = t_durees_sejour.oid + ORDER BY t_classes.sequence, t_classes_sections.code, t_durees_sejour.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + section_code, + to_code, + table_code, + classe_sequence +) +VALUES +('S1', '0000', 'DURSEJ', 9), +('S2', '0001', 'DURSEJ', 9), +('S3', '0002', 'DURSEJ', 9), +('S3', '0003', 'DURSEJ', 9), +('S3', '0004', 'DURSEJ', 9), +('S3', '0005', 'DURSEJ', 9), +('S4', '0006', 'DURSEJ', 9), +('S4', '0007', 'DURSEJ', 9), +('S4', '0008', 'DURSEJ', 9), +('S4', '0009', 'DURSEJ', 9), +('S4', '0010', 'DURSEJ', 9), +('S5', '0011', 'DURSEJ', 9), +('S5', '0012', 'DURSEJ', 9), +('S5', '0013', 'DURSEJ', 9), +('S5', '0014', 'DURSEJ', 9), +('S5', '0015', 'DURSEJ', 9), +('S5', '0016', 'DURSEJ', 9), +('S5', '0017', 'DURSEJ', 9), +('S5', '0018', 'DURSEJ', 9), +('S5', '0019', 'DURSEJ', 9), +('S5', '0020', 'DURSEJ', 9), +('S6', '0021', 'DURSEJ', 9), +('S6', '0022', 'DURSEJ', 9), +('S6', '0023', 'DURSEJ', 9), +('S6', '0024', 'DURSEJ', 9), +('S6', '0025', 'DURSEJ', 9), +('S6', '0026', 'DURSEJ', 9), +('S6', '0027', 'DURSEJ', 9), +('S6', '0028', 'DURSEJ', 9), +('S6', '0029', 'DURSEJ', 9), +('S6', '0030', 'DURSEJ', 9), +('S7', '0031', 'DURSEJ', 9), +('S7', '0032', 'DURSEJ', 9), +('S7', '0033', 'DURSEJ', 9), +('S7', '0034', 'DURSEJ', 9), +('S7', '0035', 'DURSEJ', 9), +('S7', '0036', 'DURSEJ', 9), +('S7', '0037', 'DURSEJ', 9), +('S7', '0038', 'DURSEJ', 9), +('S7', '0039', 'DURSEJ', 9), +('S7', '0040', 'DURSEJ', 9), +('S7', '0041', 'DURSEJ', 9), +('S7', '0042', 'DURSEJ', 9), +('S7', '0043', 'DURSEJ', 9), +('S7', '0044', 'DURSEJ', 9), +('S7', '0045', 'DURSEJ', 9), +('S7', '0046', 'DURSEJ', 9), +('S7', '0047', 'DURSEJ', 9), +('S7', '0048', 'DURSEJ', 9), +('S7', '0049', 'DURSEJ', 9), +('S7', '0050', 'DURSEJ', 9), +('S7', '0051', 'DURSEJ', 9), +('S7', '0052', 'DURSEJ', 9), +('S7', '0053', 'DURSEJ', 9), +('S7', '0054', 'DURSEJ', 9), +('S7', '0055', 'DURSEJ', 9), +('S7', '0056', 'DURSEJ', 9), +('S7', '0057', 'DURSEJ', 9), +('S7', '0058', 'DURSEJ', 9), +('S7', '0059', 'DURSEJ', 9), +('S7', '0060', 'DURSEJ', 9), +('S7', '0061', 'DURSEJ', 9), +('S7', '0062', 'DURSEJ', 9), +('S7', '0063', 'DURSEJ', 9), +('S7', '0064', 'DURSEJ', 9), +('S7', '0065', 'DURSEJ', 9), +('S7', '0066', 'DURSEJ', 9), +('S7', '0067', 'DURSEJ', 9), +('S7', '0068', 'DURSEJ', 9), +('S7', '0069', 'DURSEJ', 9), +('S7', '0070', 'DURSEJ', 9), +('S7', '0071', 'DURSEJ', 9), +('S7', '0072', 'DURSEJ', 9), +('S7', '0073', 'DURSEJ', 9), +('S7', '0074', 'DURSEJ', 9), +('S7', '0075', 'DURSEJ', 9), +('S7', '0076', 'DURSEJ', 9), +('S7', '0077', 'DURSEJ', 9), +('S7', '0078', 'DURSEJ', 9), +('S7', '0079', 'DURSEJ', 9), +('S7', '0080', 'DURSEJ', 9), +('S7', '0081', 'DURSEJ', 9), +('S7', '0082', 'DURSEJ', 9), +('S7', '0083', 'DURSEJ', 9), +('S7', '0084', 'DURSEJ', 9), +('S7', '0085', 'DURSEJ', 9), +('S7', '0086', 'DURSEJ', 9), +('S7', '0087', 'DURSEJ', 9), +('S7', '0088', 'DURSEJ', 9), +('S7', '0089', 'DURSEJ', 9), +('S7', '0090', 'DURSEJ', 9), +('S7', '0091', 'DURSEJ', 9), +('S7', '0092', 'DURSEJ', 9), +('S7', '0093', 'DURSEJ', 9), +('S7', '0094', 'DURSEJ', 9), +('S7', '0095', 'DURSEJ', 9), +('S7', '0096', 'DURSEJ', 9), +('S7', '0097', 'DURSEJ', 9), +('S7', '0098', 'DURSEJ', 9), +('S7', '0099', 'DURSEJ', 9), +('S7', '0100', 'DURSEJ', 9), +('S8', '0101', 'DURSEJ', 9), +('S8', '0102', 'DURSEJ', 9), +('S8', '0103', 'DURSEJ', 9), +('S8', '0104', 'DURSEJ', 9), +('S8', '0105', 'DURSEJ', 9), +('S8', '0106', 'DURSEJ', 9), +('S8', '0107', 'DURSEJ', 9), +('S8', '0108', 'DURSEJ', 9), +('S8', '0109', 'DURSEJ', 9), +('S8', '0110', 'DURSEJ', 9), +('S8', '0111', 'DURSEJ', 9), +('S8', '0112', 'DURSEJ', 9), +('S8', '0113', 'DURSEJ', 9), +('S8', '0114', 'DURSEJ', 9), +('S8', '0115', 'DURSEJ', 9), +('S8', '0116', 'DURSEJ', 9), +('S8', '0117', 'DURSEJ', 9), +('S8', '0118', 'DURSEJ', 9), +('S8', '0119', 'DURSEJ', 9), +('S8', '0120', 'DURSEJ', 9), +('S8', '0121', 'DURSEJ', 9), +('S8', '0122', 'DURSEJ', 9), +('S8', '0123', 'DURSEJ', 9), +('S8', '0124', 'DURSEJ', 9), +('S8', '0125', 'DURSEJ', 9), +('S8', '0126', 'DURSEJ', 9), +('S8', '0127', 'DURSEJ', 9), +('S8', '0128', 'DURSEJ', 9), +('S8', '0129', 'DURSEJ', 9), +('S8', '0130', 'DURSEJ', 9), +('S8', '0131', 'DURSEJ', 9), +('S8', '0132', 'DURSEJ', 9), +('S8', '0133', 'DURSEJ', 9), +('S8', '0134', 'DURSEJ', 9), +('S8', '0135', 'DURSEJ', 9), +('S8', '0136', 'DURSEJ', 9), +('S8', '0137', 'DURSEJ', 9), +('S8', '0138', 'DURSEJ', 9), +('S8', '0139', 'DURSEJ', 9), +('S8', '0140', 'DURSEJ', 9), +('S8', '0141', 'DURSEJ', 9), +('S8', '0142', 'DURSEJ', 9), +('S8', '0143', 'DURSEJ', 9), +('S8', '0144', 'DURSEJ', 9), +('S8', '0145', 'DURSEJ', 9), +('S8', '0146', 'DURSEJ', 9), +('S8', '0147', 'DURSEJ', 9), +('S8', '0148', 'DURSEJ', 9), +('S8', '0149', 'DURSEJ', 9), +('S8', '0150', 'DURSEJ', 9), +('S8', '0151', 'DURSEJ', 9), +('S8', '0152', 'DURSEJ', 9), +('S8', '0153', 'DURSEJ', 9), +('S8', '0154', 'DURSEJ', 9), +('S8', '0155', 'DURSEJ', 9), +('S8', '0156', 'DURSEJ', 9), +('S8', '0157', 'DURSEJ', 9), +('S8', '0158', 'DURSEJ', 9), +('S8', '0159', 'DURSEJ', 9), +('S8', '0160', 'DURSEJ', 9), +('S8', '0161', 'DURSEJ', 9), +('S8', '0162', 'DURSEJ', 9), +('S8', '0163', 'DURSEJ', 9), +('S8', '0164', 'DURSEJ', 9), +('S8', '0165', 'DURSEJ', 9), +('S8', '0166', 'DURSEJ', 9), +('S8', '0167', 'DURSEJ', 9), +('S8', '0168', 'DURSEJ', 9), +('S8', '0169', 'DURSEJ', 9), +('S8', '0170', 'DURSEJ', 9), +('S8', '0171', 'DURSEJ', 9), +('S8', '0172', 'DURSEJ', 9), +('S8', '0173', 'DURSEJ', 9), +('S8', '0174', 'DURSEJ', 9), +('S8', '0175', 'DURSEJ', 9), +('S8', '0176', 'DURSEJ', 9), +('S8', '0177', 'DURSEJ', 9), +('S8', '0178', 'DURSEJ', 9), +('S8', '0179', 'DURSEJ', 9), +('S8', '0180', 'DURSEJ', 9), +('S8', '0181', 'DURSEJ', 9), +('S8', '0182', 'DURSEJ', 9), +('S8', '0183', 'DURSEJ', 9), +('S8', '0184', 'DURSEJ', 9), +('S8', '0185', 'DURSEJ', 9), +('S8', '0186', 'DURSEJ', 9), +('S8', '0187', 'DURSEJ', 9), +('S8', '0188', 'DURSEJ', 9), +('S8', '0189', 'DURSEJ', 9), +('S8', '0190', 'DURSEJ', 9), +('S8', '0191', 'DURSEJ', 9), +('S8', '0192', 'DURSEJ', 9), +('S8', '0193', 'DURSEJ', 9), +('S8', '0194', 'DURSEJ', 9), +('S8', '0195', 'DURSEJ', 9), +('S8', '0196', 'DURSEJ', 9), +('S8', '0197', 'DURSEJ', 9), +('S8', '0198', 'DURSEJ', 9), +('S8', '0199', 'DURSEJ', 9), +('S8', '0200', 'DURSEJ', 9), +('S8', '0201', 'DURSEJ', 9), +('S8', '0202', 'DURSEJ', 9), +('S8', '0203', 'DURSEJ', 9), +('S8', '0204', 'DURSEJ', 9), +('S8', '0205', 'DURSEJ', 9), +('S8', '0206', 'DURSEJ', 9), +('S8', '0207', 'DURSEJ', 9), +('S8', '0208', 'DURSEJ', 9), +('S8', '0209', 'DURSEJ', 9), +('S8', '0210', 'DURSEJ', 9), +('S8', '0211', 'DURSEJ', 9), +('S8', '0212', 'DURSEJ', 9), +('S8', '0213', 'DURSEJ', 9), +('S8', '0214', 'DURSEJ', 9), +('S8', '0215', 'DURSEJ', 9), +('S8', '0216', 'DURSEJ', 9), +('S8', '0217', 'DURSEJ', 9), +('S8', '0218', 'DURSEJ', 9), +('S8', '0219', 'DURSEJ', 9), +('S8', '0220', 'DURSEJ', 9), +('S8', '0221', 'DURSEJ', 9), +('S8', '0222', 'DURSEJ', 9), +('S8', '0223', 'DURSEJ', 9), +('S8', '0224', 'DURSEJ', 9), +('S8', '0225', 'DURSEJ', 9), +('S8', '0226', 'DURSEJ', 9), +('S8', '0227', 'DURSEJ', 9), +('S8', '0228', 'DURSEJ', 9), +('S8', '0229', 'DURSEJ', 9), +('S8', '0230', 'DURSEJ', 9), +('S8', '0231', 'DURSEJ', 9), +('S8', '0232', 'DURSEJ', 9), +('S8', '0233', 'DURSEJ', 9), +('S8', '0234', 'DURSEJ', 9), +('S8', '0235', 'DURSEJ', 9), +('S8', '0236', 'DURSEJ', 9), +('S8', '0237', 'DURSEJ', 9), +('S8', '0238', 'DURSEJ', 9), +('S8', '0239', 'DURSEJ', 9), +('S8', '0240', 'DURSEJ', 9), +('S8', '0241', 'DURSEJ', 9), +('S8', '0242', 'DURSEJ', 9), +('S8', '0243', 'DURSEJ', 9), +('S8', '0244', 'DURSEJ', 9), +('S8', '0245', 'DURSEJ', 9), +('S8', '0246', 'DURSEJ', 9), +('S8', '0247', 'DURSEJ', 9), +('S8', '0248', 'DURSEJ', 9), +('S8', '0249', 'DURSEJ', 9), +('S8', '0250', 'DURSEJ', 9), +('S8', '0251', 'DURSEJ', 9), +('S8', '0252', 'DURSEJ', 9), +('S8', '0253', 'DURSEJ', 9), +('S8', '0254', 'DURSEJ', 9), +('S8', '0255', 'DURSEJ', 9), +('S8', '0256', 'DURSEJ', 9), +('S8', '0257', 'DURSEJ', 9), +('S8', '0258', 'DURSEJ', 9), +('S8', '0259', 'DURSEJ', 9), +('S8', '0260', 'DURSEJ', 9), +('S8', '0261', 'DURSEJ', 9), +('S8', '0262', 'DURSEJ', 9), +('S8', '0263', 'DURSEJ', 9), +('S8', '0264', 'DURSEJ', 9), +('S8', '0265', 'DURSEJ', 9), +('S8', '0266', 'DURSEJ', 9), +('S8', '0267', 'DURSEJ', 9), +('S8', '0268', 'DURSEJ', 9), +('S8', '0269', 'DURSEJ', 9), +('S8', '0270', 'DURSEJ', 9), +('S8', '0271', 'DURSEJ', 9), +('S8', '0272', 'DURSEJ', 9), +('S8', '0273', 'DURSEJ', 9), +('S8', '0274', 'DURSEJ', 9), +('S8', '0275', 'DURSEJ', 9), +('S8', '0276', 'DURSEJ', 9), +('S8', '0277', 'DURSEJ', 9), +('S8', '0278', 'DURSEJ', 9), +('S8', '0279', 'DURSEJ', 9), +('S8', '0280', 'DURSEJ', 9), +('S8', '0281', 'DURSEJ', 9), +('S8', '0282', 'DURSEJ', 9), +('S8', '0283', 'DURSEJ', 9), +('S8', '0284', 'DURSEJ', 9), +('S8', '0285', 'DURSEJ', 9), +('S8', '0286', 'DURSEJ', 9), +('S8', '0287', 'DURSEJ', 9), +('S8', '0288', 'DURSEJ', 9), +('S8', '0289', 'DURSEJ', 9), +('S8', '0290', 'DURSEJ', 9), +('S8', '0291', 'DURSEJ', 9), +('S8', '0292', 'DURSEJ', 9), +('S8', '0293', 'DURSEJ', 9), +('S8', '0294', 'DURSEJ', 9), +('S8', '0295', 'DURSEJ', 9), +('S8', '0296', 'DURSEJ', 9), +('S8', '0297', 'DURSEJ', 9), +('S8', '0298', 'DURSEJ', 9), +('S8', '0299', 'DURSEJ', 9), +('S8', '0300', 'DURSEJ', 9), +('S8', '0301', 'DURSEJ', 9), +('S8', '0302', 'DURSEJ', 9), +('S8', '0303', 'DURSEJ', 9), +('S8', '0304', 'DURSEJ', 9), +('S8', '0305', 'DURSEJ', 9), +('S8', '0306', 'DURSEJ', 9), +('S8', '0307', 'DURSEJ', 9), +('S8', '0308', 'DURSEJ', 9), +('S8', '0309', 'DURSEJ', 9), +('S8', '0310', 'DURSEJ', 9), +('S8', '0311', 'DURSEJ', 9), +('S8', '0312', 'DURSEJ', 9), +('S8', '0313', 'DURSEJ', 9), +('S8', '0314', 'DURSEJ', 9), +('S8', '0315', 'DURSEJ', 9), +('S8', '0316', 'DURSEJ', 9), +('S8', '0317', 'DURSEJ', 9), +('S8', '0318', 'DURSEJ', 9), +('S8', '0319', 'DURSEJ', 9), +('S8', '0320', 'DURSEJ', 9), +('S8', '0321', 'DURSEJ', 9), +('S8', '0322', 'DURSEJ', 9), +('S8', '0323', 'DURSEJ', 9), +('S8', '0324', 'DURSEJ', 9), +('S8', '0325', 'DURSEJ', 9), +('S8', '0326', 'DURSEJ', 9), +('S8', '0327', 'DURSEJ', 9), +('S8', '0328', 'DURSEJ', 9), +('S8', '0329', 'DURSEJ', 9), +('S8', '0330', 'DURSEJ', 9), +('S8', '0331', 'DURSEJ', 9), +('S8', '0332', 'DURSEJ', 9), +('S8', '0333', 'DURSEJ', 9), +('S8', '0334', 'DURSEJ', 9), +('S8', '0335', 'DURSEJ', 9), +('S8', '0336', 'DURSEJ', 9), +('S8', '0337', 'DURSEJ', 9), +('S8', '0338', 'DURSEJ', 9), +('S8', '0339', 'DURSEJ', 9), +('S8', '0340', 'DURSEJ', 9), +('S8', '0341', 'DURSEJ', 9), +('S8', '0342', 'DURSEJ', 9), +('S8', '0343', 'DURSEJ', 9), +('S8', '0344', 'DURSEJ', 9), +('S8', '0345', 'DURSEJ', 9), +('S8', '0346', 'DURSEJ', 9), +('S8', '0347', 'DURSEJ', 9), +('S8', '0348', 'DURSEJ', 9), +('S8', '0349', 'DURSEJ', 9), +('S8', '0350', 'DURSEJ', 9), +('S8', '0351', 'DURSEJ', 9), +('S8', '0352', 'DURSEJ', 9), +('S8', '0353', 'DURSEJ', 9), +('S8', '0354', 'DURSEJ', 9), +('S8', '0355', 'DURSEJ', 9), +('S8', '0356', 'DURSEJ', 9), +('S8', '0357', 'DURSEJ', 9), +('S8', '0358', 'DURSEJ', 9), +('S8', '0359', 'DURSEJ', 9), +('S8', '0360', 'DURSEJ', 9), +('S8', '0361', 'DURSEJ', 9), +('S8', '0362', 'DURSEJ', 9), +('S8', '0363', 'DURSEJ', 9), +('S8', '0364', 'DURSEJ', 9), +('S8', '0365', 'DURSEJ', 9), +('S8', '0366', 'DURSEJ', 9), +('S8', '0367', 'DURSEJ', 9), +('S8', '0368', 'DURSEJ', 9), +('S8', '0369', 'DURSEJ', 9), +('S8', '0370', 'DURSEJ', 9), +('S8', '0371', 'DURSEJ', 9), +('S8', '0372', 'DURSEJ', 9), +('S8', '0373', 'DURSEJ', 9), +('S8', '0374', 'DURSEJ', 9), +('S8', '0375', 'DURSEJ', 9), +('S8', '0376', 'DURSEJ', 9), +('S8', '0377', 'DURSEJ', 9), +('S8', '0378', 'DURSEJ', 9), +('S8', '0379', 'DURSEJ', 9), +('S8', '0380', 'DURSEJ', 9), +('S8', '0381', 'DURSEJ', 9), +('S8', '0382', 'DURSEJ', 9), +('S8', '0383', 'DURSEJ', 9), +('S8', '0384', 'DURSEJ', 9), +('S8', '0385', 'DURSEJ', 9), +('S8', '0386', 'DURSEJ', 9), +('S8', '0387', 'DURSEJ', 9), +('S8', '0388', 'DURSEJ', 9), +('S8', '0389', 'DURSEJ', 9), +('S8', '0390', 'DURSEJ', 9), +('S8', '0391', 'DURSEJ', 9), +('S8', '0392', 'DURSEJ', 9), +('S8', '0393', 'DURSEJ', 9), +('S8', '0394', 'DURSEJ', 9), +('S8', '0395', 'DURSEJ', 9), +('S8', '0396', 'DURSEJ', 9), +('S8', '0397', 'DURSEJ', 9), +('S8', '0398', 'DURSEJ', 9), +('S8', '0399', 'DURSEJ', 9), +('S8', '0400', 'DURSEJ', 9), +('S8', '0401', 'DURSEJ', 9), +('S8', '0402', 'DURSEJ', 9), +('S8', '0403', 'DURSEJ', 9), +('S8', '0404', 'DURSEJ', 9), +('S8', '0405', 'DURSEJ', 9), +('S8', '0406', 'DURSEJ', 9), +('S8', '0407', 'DURSEJ', 9), +('S8', '0408', 'DURSEJ', 9), +('S8', '0409', 'DURSEJ', 9), +('S8', '0410', 'DURSEJ', 9), +('S8', '0411', 'DURSEJ', 9), +('S8', '0412', 'DURSEJ', 9), +('S8', '0413', 'DURSEJ', 9), +('S8', '0414', 'DURSEJ', 9), +('S8', '0415', 'DURSEJ', 9), +('S8', '0416', 'DURSEJ', 9), +('S8', '0417', 'DURSEJ', 9), +('S8', '0418', 'DURSEJ', 9), +('S8', '0419', 'DURSEJ', 9), +('S8', '0420', 'DURSEJ', 9), +('S8', '0421', 'DURSEJ', 9), +('S8', '0422', 'DURSEJ', 9), +('S8', '0423', 'DURSEJ', 9), +('S8', '0424', 'DURSEJ', 9), +('S8', '0425', 'DURSEJ', 9), +('S8', '0426', 'DURSEJ', 9), +('S8', '0427', 'DURSEJ', 9), +('S8', '0428', 'DURSEJ', 9), +('S8', '0429', 'DURSEJ', 9), +('S8', '0430', 'DURSEJ', 9), +('S8', '0431', 'DURSEJ', 9), +('S8', '0432', 'DURSEJ', 9), +('S8', '0433', 'DURSEJ', 9), +('S8', '0434', 'DURSEJ', 9), +('S8', '0435', 'DURSEJ', 9), +('S8', '0436', 'DURSEJ', 9), +('S8', '0437', 'DURSEJ', 9), +('S8', '0438', 'DURSEJ', 9), +('S8', '0439', 'DURSEJ', 9), +('S8', '0440', 'DURSEJ', 9), +('S8', '0441', 'DURSEJ', 9), +('S8', '0442', 'DURSEJ', 9), +('S8', '0443', 'DURSEJ', 9), +('S8', '0444', 'DURSEJ', 9), +('S8', '0445', 'DURSEJ', 9), +('S8', '0446', 'DURSEJ', 9), +('S8', '0447', 'DURSEJ', 9), +('S8', '0448', 'DURSEJ', 9), +('S8', '0449', 'DURSEJ', 9), +('S8', '0450', 'DURSEJ', 9), +('S8', '0451', 'DURSEJ', 9), +('S8', '0452', 'DURSEJ', 9), +('S8', '0453', 'DURSEJ', 9), +('S8', '0454', 'DURSEJ', 9), +('S8', '0455', 'DURSEJ', 9), +('S8', '0456', 'DURSEJ', 9), +('S8', '0457', 'DURSEJ', 9), +('S8', '0458', 'DURSEJ', 9), +('S8', '0459', 'DURSEJ', 9), +('S8', '0460', 'DURSEJ', 9), +('S8', '0461', 'DURSEJ', 9), +('S8', '0462', 'DURSEJ', 9), +('S8', '0463', 'DURSEJ', 9), +('S8', '0464', 'DURSEJ', 9), +('S8', '0465', 'DURSEJ', 9), +('S8', '0466', 'DURSEJ', 9), +('S8', '0467', 'DURSEJ', 9), +('S8', '0468', 'DURSEJ', 9), +('S8', '0469', 'DURSEJ', 9), +('S8', '0470', 'DURSEJ', 9), +('S8', '0471', 'DURSEJ', 9), +('S8', '0472', 'DURSEJ', 9), +('S8', '0473', 'DURSEJ', 9), +('S8', '0474', 'DURSEJ', 9), +('S8', '0475', 'DURSEJ', 9), +('S8', '0476', 'DURSEJ', 9), +('S8', '0477', 'DURSEJ', 9), +('S8', '0478', 'DURSEJ', 9), +('S8', '0479', 'DURSEJ', 9), +('S8', '0480', 'DURSEJ', 9), +('S8', '0481', 'DURSEJ', 9), +('S8', '0482', 'DURSEJ', 9), +('S8', '0483', 'DURSEJ', 9), +('S8', '0484', 'DURSEJ', 9), +('S8', '0485', 'DURSEJ', 9), +('S8', '0486', 'DURSEJ', 9), +('S8', '0487', 'DURSEJ', 9), +('S8', '0488', 'DURSEJ', 9), +('S8', '0489', 'DURSEJ', 9), +('S8', '0490', 'DURSEJ', 9), +('S8', '0491', 'DURSEJ', 9), +('S8', '0492', 'DURSEJ', 9), +('S8', '0493', 'DURSEJ', 9), +('S8', '0494', 'DURSEJ', 9), +('S8', '0495', 'DURSEJ', 9), +('S8', '0496', 'DURSEJ', 9), +('S8', '0497', 'DURSEJ', 9), +('S8', '0498', 'DURSEJ', 9), +('S8', '0499', 'DURSEJ', 9), +('S8', '0500', 'DURSEJ', 9), +('S8', '0501', 'DURSEJ', 9), +('S8', '0502', 'DURSEJ', 9), +('S8', '0503', 'DURSEJ', 9), +('S8', '0504', 'DURSEJ', 9), +('S8', '0505', 'DURSEJ', 9), +('S8', '0506', 'DURSEJ', 9), +('S8', '0507', 'DURSEJ', 9), +('S8', '0508', 'DURSEJ', 9), +('S8', '0509', 'DURSEJ', 9), +('S8', '0510', 'DURSEJ', 9), +('S8', '0511', 'DURSEJ', 9), +('S8', '0512', 'DURSEJ', 9), +('S8', '0513', 'DURSEJ', 9), +('S8', '0514', 'DURSEJ', 9), +('S8', '0515', 'DURSEJ', 9), +('S8', '0516', 'DURSEJ', 9), +('S8', '0517', 'DURSEJ', 9), +('S8', '0518', 'DURSEJ', 9), +('S8', '0519', 'DURSEJ', 9), +('S8', '0520', 'DURSEJ', 9), +('S8', '0521', 'DURSEJ', 9), +('S8', '0522', 'DURSEJ', 9), +('S8', '0523', 'DURSEJ', 9), +('S8', '0524', 'DURSEJ', 9), +('S8', '0525', 'DURSEJ', 9), +('S8', '0526', 'DURSEJ', 9), +('S8', '0527', 'DURSEJ', 9), +('S8', '0528', 'DURSEJ', 9), +('S8', '0529', 'DURSEJ', 9), +('S8', '0530', 'DURSEJ', 9), +('S8', '0531', 'DURSEJ', 9), +('S8', '0532', 'DURSEJ', 9), +('S8', '0533', 'DURSEJ', 9), +('S8', '0534', 'DURSEJ', 9), +('S8', '0535', 'DURSEJ', 9), +('S8', '0536', 'DURSEJ', 9), +('S8', '0537', 'DURSEJ', 9), +('S8', '0538', 'DURSEJ', 9), +('S8', '0539', 'DURSEJ', 9), +('S8', '0540', 'DURSEJ', 9), +('S8', '0541', 'DURSEJ', 9), +('S8', '0542', 'DURSEJ', 9), +('S8', '0543', 'DURSEJ', 9), +('S8', '0544', 'DURSEJ', 9), +('S8', '0545', 'DURSEJ', 9), +('S8', '0546', 'DURSEJ', 9), +('S8', '0547', 'DURSEJ', 9), +('S8', '0548', 'DURSEJ', 9), +('S8', '0549', 'DURSEJ', 9), +('S8', '0550', 'DURSEJ', 9), +('S8', '0551', 'DURSEJ', 9), +('S8', '0552', 'DURSEJ', 9), +('S8', '0553', 'DURSEJ', 9), +('S8', '0554', 'DURSEJ', 9), +('S8', '0555', 'DURSEJ', 9), +('S8', '0556', 'DURSEJ', 9), +('S8', '0557', 'DURSEJ', 9), +('S8', '0558', 'DURSEJ', 9), +('S8', '0559', 'DURSEJ', 9), +('S8', '0560', 'DURSEJ', 9), +('S8', '0561', 'DURSEJ', 9), +('S8', '0562', 'DURSEJ', 9), +('S8', '0563', 'DURSEJ', 9), +('S8', '0564', 'DURSEJ', 9), +('S8', '0565', 'DURSEJ', 9), +('S8', '0566', 'DURSEJ', 9), +('S8', '0567', 'DURSEJ', 9), +('S8', '0568', 'DURSEJ', 9), +('S8', '0569', 'DURSEJ', 9), +('S8', '0570', 'DURSEJ', 9), +('S8', '0571', 'DURSEJ', 9), +('S8', '0572', 'DURSEJ', 9), +('S8', '0573', 'DURSEJ', 9), +('S8', '0574', 'DURSEJ', 9), +('S8', '0575', 'DURSEJ', 9), +('S8', '0576', 'DURSEJ', 9), +('S8', '0577', 'DURSEJ', 9), +('S8', '0578', 'DURSEJ', 9), +('S8', '0579', 'DURSEJ', 9), +('S8', '0580', 'DURSEJ', 9), +('S8', '0581', 'DURSEJ', 9), +('S8', '0582', 'DURSEJ', 9), +('S8', '0583', 'DURSEJ', 9), +('S8', '0584', 'DURSEJ', 9), +('S8', '0585', 'DURSEJ', 9), +('S8', '0586', 'DURSEJ', 9), +('S8', '0587', 'DURSEJ', 9), +('S8', '0588', 'DURSEJ', 9), +('S8', '0589', 'DURSEJ', 9), +('S8', '0590', 'DURSEJ', 9), +('S8', '0591', 'DURSEJ', 9), +('S8', '0592', 'DURSEJ', 9), +('S8', '0593', 'DURSEJ', 9), +('S8', '0594', 'DURSEJ', 9), +('S8', '0595', 'DURSEJ', 9), +('S8', '0596', 'DURSEJ', 9), +('S8', '0597', 'DURSEJ', 9), +('S8', '0598', 'DURSEJ', 9), +('S8', '0599', 'DURSEJ', 9), +('S8', '0600', 'DURSEJ', 9), +('S8', '0601', 'DURSEJ', 9), +('S8', '0602', 'DURSEJ', 9), +('S8', '0603', 'DURSEJ', 9), +('S8', '0604', 'DURSEJ', 9), +('S8', '0605', 'DURSEJ', 9), +('S8', '0606', 'DURSEJ', 9), +('S8', '0607', 'DURSEJ', 9), +('S8', '0608', 'DURSEJ', 9), +('S8', '0609', 'DURSEJ', 9), +('S8', '0610', 'DURSEJ', 9), +('S8', '0611', 'DURSEJ', 9), +('S8', '0612', 'DURSEJ', 9), +('S8', '0613', 'DURSEJ', 9), +('S8', '0614', 'DURSEJ', 9), +('S8', '0615', 'DURSEJ', 9), +('S8', '0616', 'DURSEJ', 9), +('S8', '0617', 'DURSEJ', 9), +('S8', '0618', 'DURSEJ', 9), +('S8', '0619', 'DURSEJ', 9), +('S8', '0620', 'DURSEJ', 9), +('S8', '0621', 'DURSEJ', 9), +('S8', '0622', 'DURSEJ', 9), +('S8', '0623', 'DURSEJ', 9), +('S8', '0624', 'DURSEJ', 9), +('S8', '0625', 'DURSEJ', 9), +('S8', '0626', 'DURSEJ', 9), +('S8', '0627', 'DURSEJ', 9), +('S8', '0628', 'DURSEJ', 9), +('S8', '0629', 'DURSEJ', 9), +('S8', '0630', 'DURSEJ', 9), +('S8', '0631', 'DURSEJ', 9), +('S8', '0632', 'DURSEJ', 9), +('S8', '0633', 'DURSEJ', 9), +('S8', '0634', 'DURSEJ', 9), +('S8', '0635', 'DURSEJ', 9), +('S8', '0636', 'DURSEJ', 9), +('S8', '0637', 'DURSEJ', 9), +('S8', '0638', 'DURSEJ', 9), +('S8', '0639', 'DURSEJ', 9), +('S8', '0640', 'DURSEJ', 9), +('S8', '0641', 'DURSEJ', 9), +('S8', '0642', 'DURSEJ', 9), +('S8', '0643', 'DURSEJ', 9), +('S8', '0644', 'DURSEJ', 9), +('S8', '0645', 'DURSEJ', 9), +('S8', '0646', 'DURSEJ', 9), +('S8', '0647', 'DURSEJ', 9), +('S8', '0648', 'DURSEJ', 9), +('S8', '0649', 'DURSEJ', 9), +('S8', '0650', 'DURSEJ', 9), +('S8', '0651', 'DURSEJ', 9), +('S8', '0652', 'DURSEJ', 9), +('S8', '0653', 'DURSEJ', 9), +('S8', '0654', 'DURSEJ', 9), +('S8', '0655', 'DURSEJ', 9), +('S8', '0656', 'DURSEJ', 9), +('S8', '0657', 'DURSEJ', 9), +('S8', '0658', 'DURSEJ', 9), +('S8', '0659', 'DURSEJ', 9), +('S8', '0660', 'DURSEJ', 9), +('S8', '0661', 'DURSEJ', 9), +('S8', '0662', 'DURSEJ', 9), +('S8', '0663', 'DURSEJ', 9), +('S8', '0664', 'DURSEJ', 9), +('S8', '0665', 'DURSEJ', 9), +('S8', '0666', 'DURSEJ', 9), +('S8', '0667', 'DURSEJ', 9), +('S8', '0668', 'DURSEJ', 9), +('S8', '0669', 'DURSEJ', 9), +('S8', '0670', 'DURSEJ', 9), +('S8', '0671', 'DURSEJ', 9), +('S8', '0672', 'DURSEJ', 9), +('S8', '0673', 'DURSEJ', 9), +('S8', '0674', 'DURSEJ', 9), +('S8', '0675', 'DURSEJ', 9), +('S8', '0676', 'DURSEJ', 9), +('S8', '0677', 'DURSEJ', 9), +('S8', '0678', 'DURSEJ', 9), +('S8', '0679', 'DURSEJ', 9), +('S8', '0680', 'DURSEJ', 9), +('S8', '0681', 'DURSEJ', 9), +('S8', '0682', 'DURSEJ', 9), +('S8', '0683', 'DURSEJ', 9), +('S8', '0684', 'DURSEJ', 9), +('S8', '0685', 'DURSEJ', 9), +('S8', '0686', 'DURSEJ', 9), +('S8', '0687', 'DURSEJ', 9), +('S8', '0688', 'DURSEJ', 9), +('S8', '0689', 'DURSEJ', 9), +('S8', '0690', 'DURSEJ', 9), +('S8', '0691', 'DURSEJ', 9), +('S8', '0692', 'DURSEJ', 9), +('S8', '0693', 'DURSEJ', 9), +('S8', '0694', 'DURSEJ', 9), +('S8', '0695', 'DURSEJ', 9), +('S8', '0696', 'DURSEJ', 9), +('S8', '0697', 'DURSEJ', 9), +('S8', '0698', 'DURSEJ', 9), +('S8', '0699', 'DURSEJ', 9), +('S8', '0700', 'DURSEJ', 9), +('S8', '0701', 'DURSEJ', 9), +('S8', '0702', 'DURSEJ', 9), +('S8', '0703', 'DURSEJ', 9), +('S8', '0704', 'DURSEJ', 9), +('S8', '0705', 'DURSEJ', 9), +('S8', '0706', 'DURSEJ', 9), +('S8', '0707', 'DURSEJ', 9), +('S8', '0708', 'DURSEJ', 9), +('S8', '0709', 'DURSEJ', 9), +('S8', '0710', 'DURSEJ', 9), +('S8', '0711', 'DURSEJ', 9), +('S8', '0712', 'DURSEJ', 9), +('S8', '0713', 'DURSEJ', 9), +('S8', '0714', 'DURSEJ', 9), +('S8', '0715', 'DURSEJ', 9), +('S8', '0716', 'DURSEJ', 9), +('S8', '0717', 'DURSEJ', 9), +('S8', '0718', 'DURSEJ', 9), +('S8', '0719', 'DURSEJ', 9), +('S8', '0720', 'DURSEJ', 9), +('S8', '0721', 'DURSEJ', 9), +('S8', '0722', 'DURSEJ', 9), +('S8', '0723', 'DURSEJ', 9), +('S8', '0724', 'DURSEJ', 9), +('S8', '0725', 'DURSEJ', 9), +('S8', '0726', 'DURSEJ', 9), +('S8', '0727', 'DURSEJ', 9), +('S8', '0728', 'DURSEJ', 9), +('S8', '0729', 'DURSEJ', 9), +('S8', '0730', 'DURSEJ', 9), +('S8', '0731', 'DURSEJ', 9), +('S8', '0732', 'DURSEJ', 9), +('S8', '0733', 'DURSEJ', 9), +('S8', '0734', 'DURSEJ', 9), +('S8', '0735', 'DURSEJ', 9), +('S8', '0736', 'DURSEJ', 9), +('S8', '0737', 'DURSEJ', 9), +('S8', '0738', 'DURSEJ', 9), +('S8', '0739', 'DURSEJ', 9), +('S8', '0740', 'DURSEJ', 9), +('S8', '0741', 'DURSEJ', 9), +('S8', '0742', 'DURSEJ', 9), +('S8', '0743', 'DURSEJ', 9), +('S8', '0744', 'DURSEJ', 9), +('S8', '0745', 'DURSEJ', 9), +('S8', '0746', 'DURSEJ', 9), +('S8', '0747', 'DURSEJ', 9), +('S8', '0748', 'DURSEJ', 9), +('S8', '0749', 'DURSEJ', 9), +('S8', '0750', 'DURSEJ', 9), +('S8', '0751', 'DURSEJ', 9), +('S8', '0752', 'DURSEJ', 9), +('S8', '0753', 'DURSEJ', 9), +('S8', '0754', 'DURSEJ', 9), +('S8', '0755', 'DURSEJ', 9), +('S8', '0756', 'DURSEJ', 9), +('S8', '0757', 'DURSEJ', 9), +('S8', '0758', 'DURSEJ', 9), +('S8', '0759', 'DURSEJ', 9), +('S8', '0760', 'DURSEJ', 9), +('S8', '0761', 'DURSEJ', 9), +('S8', '0762', 'DURSEJ', 9), +('S8', '0763', 'DURSEJ', 9), +('S8', '0764', 'DURSEJ', 9), +('S8', '0765', 'DURSEJ', 9), +('S8', '0766', 'DURSEJ', 9), +('S8', '0767', 'DURSEJ', 9), +('S8', '0768', 'DURSEJ', 9), +('S8', '0769', 'DURSEJ', 9), +('S8', '0770', 'DURSEJ', 9), +('S8', '0771', 'DURSEJ', 9), +('S8', '0772', 'DURSEJ', 9), +('S8', '0773', 'DURSEJ', 9), +('S8', '0774', 'DURSEJ', 9), +('S8', '0775', 'DURSEJ', 9), +('S8', '0776', 'DURSEJ', 9), +('S8', '0777', 'DURSEJ', 9), +('S8', '0778', 'DURSEJ', 9), +('S8', '0779', 'DURSEJ', 9), +('S8', '0780', 'DURSEJ', 9), +('S8', '0781', 'DURSEJ', 9), +('S8', '0782', 'DURSEJ', 9), +('S8', '0783', 'DURSEJ', 9), +('S8', '0784', 'DURSEJ', 9), +('S8', '0785', 'DURSEJ', 9), +('S8', '0786', 'DURSEJ', 9), +('S8', '0787', 'DURSEJ', 9), +('S8', '0788', 'DURSEJ', 9), +('S8', '0789', 'DURSEJ', 9), +('S8', '0790', 'DURSEJ', 9), +('S8', '0791', 'DURSEJ', 9), +('S8', '0792', 'DURSEJ', 9), +('S8', '0793', 'DURSEJ', 9), +('S8', '0794', 'DURSEJ', 9), +('S8', '0795', 'DURSEJ', 9), +('S8', '0796', 'DURSEJ', 9), +('S8', '0797', 'DURSEJ', 9), +('S8', '0798', 'DURSEJ', 9), +('S8', '0799', 'DURSEJ', 9), +('S8', '0800', 'DURSEJ', 9), +('S8', '0801', 'DURSEJ', 9), +('S8', '0802', 'DURSEJ', 9), +('S8', '0803', 'DURSEJ', 9), +('S8', '0804', 'DURSEJ', 9), +('S8', '0805', 'DURSEJ', 9), +('S8', '0806', 'DURSEJ', 9), +('S8', '0807', 'DURSEJ', 9), +('S8', '0808', 'DURSEJ', 9), +('S8', '0809', 'DURSEJ', 9), +('S8', '0810', 'DURSEJ', 9), +('S8', '0811', 'DURSEJ', 9), +('S8', '0812', 'DURSEJ', 9), +('S8', '0813', 'DURSEJ', 9), +('S8', '0814', 'DURSEJ', 9), +('S8', '0815', 'DURSEJ', 9), +('S8', '0816', 'DURSEJ', 9), +('S8', '0817', 'DURSEJ', 9), +('S8', '0818', 'DURSEJ', 9), +('S8', '0819', 'DURSEJ', 9), +('S8', '0820', 'DURSEJ', 9), +('S8', '0821', 'DURSEJ', 9), +('S8', '0822', 'DURSEJ', 9), +('S8', '0823', 'DURSEJ', 9), +('S8', '0824', 'DURSEJ', 9), +('S8', '0825', 'DURSEJ', 9), +('S8', '0826', 'DURSEJ', 9), +('S8', '0827', 'DURSEJ', 9), +('S8', '0828', 'DURSEJ', 9), +('S8', '0829', 'DURSEJ', 9), +('S8', '0830', 'DURSEJ', 9), +('S8', '0831', 'DURSEJ', 9), +('S8', '0832', 'DURSEJ', 9), +('S8', '0833', 'DURSEJ', 9), +('S8', '0834', 'DURSEJ', 9), +('S8', '0835', 'DURSEJ', 9), +('S8', '0836', 'DURSEJ', 9), +('S8', '0837', 'DURSEJ', 9), +('S8', '0838', 'DURSEJ', 9), +('S8', '0839', 'DURSEJ', 9), +('S8', '0840', 'DURSEJ', 9), +('S8', '0841', 'DURSEJ', 9), +('S8', '0842', 'DURSEJ', 9), +('S8', '0843', 'DURSEJ', 9), +('S8', '0844', 'DURSEJ', 9), +('S8', '0845', 'DURSEJ', 9), +('S8', '0846', 'DURSEJ', 9), +('S8', '0847', 'DURSEJ', 9), +('S8', '0848', 'DURSEJ', 9), +('S8', '0849', 'DURSEJ', 9), +('S8', '0850', 'DURSEJ', 9), +('S8', '0851', 'DURSEJ', 9), +('S8', '0852', 'DURSEJ', 9), +('S8', '0853', 'DURSEJ', 9), +('S8', '0854', 'DURSEJ', 9), +('S8', '0855', 'DURSEJ', 9), +('S8', '0856', 'DURSEJ', 9), +('S8', '0857', 'DURSEJ', 9), +('S8', '0858', 'DURSEJ', 9), +('S8', '0859', 'DURSEJ', 9), +('S8', '0860', 'DURSEJ', 9), +('S8', '0861', 'DURSEJ', 9), +('S8', '0862', 'DURSEJ', 9), +('S8', '0863', 'DURSEJ', 9), +('S8', '0864', 'DURSEJ', 9), +('S8', '0865', 'DURSEJ', 9), +('S8', '0866', 'DURSEJ', 9), +('S8', '0867', 'DURSEJ', 9), +('S8', '0868', 'DURSEJ', 9), +('S8', '0869', 'DURSEJ', 9), +('S8', '0870', 'DURSEJ', 9), +('S8', '0871', 'DURSEJ', 9), +('S8', '0872', 'DURSEJ', 9), +('S8', '0873', 'DURSEJ', 9), +('S8', '0874', 'DURSEJ', 9), +('S8', '0875', 'DURSEJ', 9), +('S8', '0876', 'DURSEJ', 9), +('S8', '0877', 'DURSEJ', 9), +('S8', '0878', 'DURSEJ', 9), +('S8', '0879', 'DURSEJ', 9), +('S8', '0880', 'DURSEJ', 9), +('S8', '0881', 'DURSEJ', 9), +('S8', '0882', 'DURSEJ', 9), +('S8', '0883', 'DURSEJ', 9), +('S8', '0884', 'DURSEJ', 9), +('S8', '0885', 'DURSEJ', 9), +('S8', '0886', 'DURSEJ', 9), +('S8', '0887', 'DURSEJ', 9), +('S8', '0888', 'DURSEJ', 9), +('S8', '0889', 'DURSEJ', 9), +('S8', '0890', 'DURSEJ', 9), +('S8', '0891', 'DURSEJ', 9), +('S8', '0892', 'DURSEJ', 9), +('S8', '0893', 'DURSEJ', 9), +('S8', '0894', 'DURSEJ', 9), +('S8', '0895', 'DURSEJ', 9), +('S8', '0896', 'DURSEJ', 9), +('S8', '0897', 'DURSEJ', 9), +('S8', '0898', 'DURSEJ', 9), +('S8', '0899', 'DURSEJ', 9), +('S8', '0900', 'DURSEJ', 9), +('S8', '0901', 'DURSEJ', 9), +('S8', '0902', 'DURSEJ', 9), +('S8', '0903', 'DURSEJ', 9), +('S8', '0904', 'DURSEJ', 9), +('S8', '0905', 'DURSEJ', 9), +('S8', '0906', 'DURSEJ', 9), +('S8', '0907', 'DURSEJ', 9), +('S8', '0908', 'DURSEJ', 9), +('S8', '0909', 'DURSEJ', 9), +('S8', '0910', 'DURSEJ', 9), +('S8', '0911', 'DURSEJ', 9), +('S8', '0912', 'DURSEJ', 9), +('S8', '0913', 'DURSEJ', 9), +('S8', '0914', 'DURSEJ', 9), +('S8', '0915', 'DURSEJ', 9), +('S8', '0916', 'DURSEJ', 9), +('S8', '0917', 'DURSEJ', 9), +('S8', '0918', 'DURSEJ', 9), +('S8', '0919', 'DURSEJ', 9), +('S8', '0920', 'DURSEJ', 9), +('S8', '0921', 'DURSEJ', 9), +('S8', '0922', 'DURSEJ', 9), +('S8', '0923', 'DURSEJ', 9), +('S8', '0924', 'DURSEJ', 9), +('S8', '0925', 'DURSEJ', 9), +('S8', '0926', 'DURSEJ', 9), +('S8', '0927', 'DURSEJ', 9), +('S8', '0928', 'DURSEJ', 9), +('S8', '0929', 'DURSEJ', 9), +('S8', '0930', 'DURSEJ', 9), +('S8', '0931', 'DURSEJ', 9), +('S8', '0932', 'DURSEJ', 9), +('S8', '0933', 'DURSEJ', 9), +('S8', '0934', 'DURSEJ', 9), +('S8', '0935', 'DURSEJ', 9), +('S8', '0936', 'DURSEJ', 9), +('S8', '0937', 'DURSEJ', 9), +('S8', '0938', 'DURSEJ', 9), +('S8', '0939', 'DURSEJ', 9), +('S8', '0940', 'DURSEJ', 9), +('S8', '0941', 'DURSEJ', 9), +('S8', '0942', 'DURSEJ', 9), +('S8', '0943', 'DURSEJ', 9), +('S8', '0944', 'DURSEJ', 9), +('S8', '0945', 'DURSEJ', 9), +('S8', '0946', 'DURSEJ', 9), +('S8', '0947', 'DURSEJ', 9), +('S8', '0948', 'DURSEJ', 9), +('S8', '0949', 'DURSEJ', 9), +('S8', '0950', 'DURSEJ', 9), +('S8', '0951', 'DURSEJ', 9), +('S8', '0952', 'DURSEJ', 9), +('S8', '0953', 'DURSEJ', 9), +('S8', '0954', 'DURSEJ', 9), +('S8', '0955', 'DURSEJ', 9), +('S8', '0956', 'DURSEJ', 9), +('S8', '0957', 'DURSEJ', 9), +('S8', '0958', 'DURSEJ', 9), +('S8', '0959', 'DURSEJ', 9), +('S8', '0960', 'DURSEJ', 9), +('S8', '0961', 'DURSEJ', 9), +('S8', '0962', 'DURSEJ', 9), +('S8', '0963', 'DURSEJ', 9), +('S8', '0964', 'DURSEJ', 9), +('S8', '0965', 'DURSEJ', 9), +('S8', '0966', 'DURSEJ', 9), +('S8', '0967', 'DURSEJ', 9), +('S8', '0968', 'DURSEJ', 9), +('S8', '0969', 'DURSEJ', 9), +('S8', '0970', 'DURSEJ', 9), +('S8', '0971', 'DURSEJ', 9), +('S8', '0972', 'DURSEJ', 9), +('S8', '0973', 'DURSEJ', 9), +('S8', '0974', 'DURSEJ', 9), +('S8', '0975', 'DURSEJ', 9), +('S8', '0976', 'DURSEJ', 9), +('S8', '0977', 'DURSEJ', 9), +('S8', '0978', 'DURSEJ', 9), +('S8', '0979', 'DURSEJ', 9), +('S8', '0980', 'DURSEJ', 9), +('S8', '0981', 'DURSEJ', 9), +('S8', '0982', 'DURSEJ', 9), +('S8', '0983', 'DURSEJ', 9), +('S8', '0984', 'DURSEJ', 9), +('S8', '0985', 'DURSEJ', 9), +('S8', '0986', 'DURSEJ', 9), +('S8', '0987', 'DURSEJ', 9), +('S8', '0988', 'DURSEJ', 9), +('S8', '0989', 'DURSEJ', 9), +('S8', '0990', 'DURSEJ', 9), +('S8', '0991', 'DURSEJ', 9), +('S8', '0992', 'DURSEJ', 9), +('S8', '0993', 'DURSEJ', 9), +('S8', '0994', 'DURSEJ', 9), +('S8', '0995', 'DURSEJ', 9), +('S8', '0996', 'DURSEJ', 9), +('S8', '0997', 'DURSEJ', 9), +('S8', '0998', 'DURSEJ', 9), +('S8', '0999', 'DURSEJ', 9), +('S8', '1000', 'DURSEJ', 9), +('S9', '1001', 'DURSEJ', 9), +('S9', '1002', 'DURSEJ', 9), +('S9', '1003', 'DURSEJ', 9), +('S9', '1004', 'DURSEJ', 9), +('S9', '1005', 'DURSEJ', 9), +('S9', '1006', 'DURSEJ', 9), +('S9', '1007', 'DURSEJ', 9), +('S9', '1008', 'DURSEJ', 9), +('S9', '1009', 'DURSEJ', 9), +('S9', '1010', 'DURSEJ', 9), +('S9', '1011', 'DURSEJ', 9), +('S9', '1012', 'DURSEJ', 9), +('S9', '1013', 'DURSEJ', 9), +('S9', '1014', 'DURSEJ', 9), +('S9', '1015', 'DURSEJ', 9), +('S9', '1016', 'DURSEJ', 9), +('S9', '1017', 'DURSEJ', 9), +('S9', '1018', 'DURSEJ', 9), +('S9', '1019', 'DURSEJ', 9), +('S9', '1020', 'DURSEJ', 9), +('S9', '1021', 'DURSEJ', 9), +('S9', '1022', 'DURSEJ', 9), +('S9', '1023', 'DURSEJ', 9), +('S9', '1024', 'DURSEJ', 9), +('S9', '1025', 'DURSEJ', 9), +('S9', '1026', 'DURSEJ', 9), +('S9', '1027', 'DURSEJ', 9), +('S9', '1028', 'DURSEJ', 9), +('S9', '1029', 'DURSEJ', 9), +('S9', '1030', 'DURSEJ', 9), +('S9', '1031', 'DURSEJ', 9), +('S9', '1032', 'DURSEJ', 9), +('S9', '1033', 'DURSEJ', 9), +('S9', '1034', 'DURSEJ', 9), +('S9', '1035', 'DURSEJ', 9), +('S9', '1036', 'DURSEJ', 9), +('S9', '1037', 'DURSEJ', 9), +('S9', '1038', 'DURSEJ', 9), +('S9', '1039', 'DURSEJ', 9), +('S9', '1040', 'DURSEJ', 9), +('S9', '1041', 'DURSEJ', 9), +('S9', '1042', 'DURSEJ', 9), +('S9', '1043', 'DURSEJ', 9), +('S9', '1044', 'DURSEJ', 9), +('S9', '1045', 'DURSEJ', 9), +('S9', '1046', 'DURSEJ', 9), +('S9', '1047', 'DURSEJ', 9), +('S9', '1048', 'DURSEJ', 9), +('S9', '1049', 'DURSEJ', 9), +('S9', '1050', 'DURSEJ', 9), +('S9', '1051', 'DURSEJ', 9), +('S9', '1052', 'DURSEJ', 9), +('S9', '1053', 'DURSEJ', 9), +('S9', '1054', 'DURSEJ', 9), +('S9', '1055', 'DURSEJ', 9), +('S9', '1056', 'DURSEJ', 9), +('S9', '1057', 'DURSEJ', 9), +('S9', '1058', 'DURSEJ', 9), +('S9', '1059', 'DURSEJ', 9), +('S9', '1060', 'DURSEJ', 9), +('S9', '1061', 'DURSEJ', 9), +('S9', '1062', 'DURSEJ', 9), +('S9', '1063', 'DURSEJ', 9), +('S9', '1064', 'DURSEJ', 9), +('S9', '1065', 'DURSEJ', 9), +('S9', '1066', 'DURSEJ', 9), +('S9', '1067', 'DURSEJ', 9), +('S9', '1068', 'DURSEJ', 9), +('S9', '1069', 'DURSEJ', 9), +('S9', '1070', 'DURSEJ', 9), +('S9', '1071', 'DURSEJ', 9), +('S9', '1072', 'DURSEJ', 9), +('S9', '1073', 'DURSEJ', 9), +('S9', '1074', 'DURSEJ', 9), +('S9', '1075', 'DURSEJ', 9), +('S9', '1076', 'DURSEJ', 9), +('S9', '1077', 'DURSEJ', 9), +('S9', '1078', 'DURSEJ', 9), +('S9', '1079', 'DURSEJ', 9), +('S9', '1080', 'DURSEJ', 9), +('S9', '1081', 'DURSEJ', 9), +('S9', '1082', 'DURSEJ', 9), +('S9', '1083', 'DURSEJ', 9), +('S9', '1084', 'DURSEJ', 9), +('S9', '1085', 'DURSEJ', 9), +('S9', '1086', 'DURSEJ', 9), +('S9', '1087', 'DURSEJ', 9), +('S9', '1088', 'DURSEJ', 9), +('S9', '1089', 'DURSEJ', 9), +('S9', '1090', 'DURSEJ', 9), +('S9', '1091', 'DURSEJ', 9), +('S9', '1092', 'DURSEJ', 9), +('S9', '1093', 'DURSEJ', 9), +('S9', '1094', 'DURSEJ', 9), +('S9', '1095', 'DURSEJ', 9), +('S9', '1096', 'DURSEJ', 9), +('S9', '1097', 'DURSEJ', 9), +('S9', '1098', 'DURSEJ', 9), +('S9', '1099', 'DURSEJ', 9), +('S9', '1100', 'DURSEJ', 9), +('S9', '1101', 'DURSEJ', 9), +('S9', '1102', 'DURSEJ', 9), +('S9', '1103', 'DURSEJ', 9), +('S9', '1104', 'DURSEJ', 9), +('S9', '1105', 'DURSEJ', 9), +('S9', '1106', 'DURSEJ', 9), +('S9', '1107', 'DURSEJ', 9), +('S9', '1108', 'DURSEJ', 9), +('S9', '1109', 'DURSEJ', 9), +('S9', '1110', 'DURSEJ', 9), +('S9', '1111', 'DURSEJ', 9), +('S9', '1112', 'DURSEJ', 9), +('S9', '1113', 'DURSEJ', 9), +('S9', '1114', 'DURSEJ', 9), +('S9', '1115', 'DURSEJ', 9), +('S9', '1116', 'DURSEJ', 9), +('S9', '1117', 'DURSEJ', 9), +('S9', '1118', 'DURSEJ', 9), +('S9', '1119', 'DURSEJ', 9), +('S9', '1120', 'DURSEJ', 9), +('S9', '1121', 'DURSEJ', 9), +('S9', '1122', 'DURSEJ', 9), +('S9', '1123', 'DURSEJ', 9), +('S9', '1124', 'DURSEJ', 9), +('S9', '1125', 'DURSEJ', 9), +('S9', '1126', 'DURSEJ', 9), +('S9', '1127', 'DURSEJ', 9), +('S9', '1128', 'DURSEJ', 9), +('S9', '1129', 'DURSEJ', 9), +('S9', '1130', 'DURSEJ', 9), +('S9', '1131', 'DURSEJ', 9), +('S9', '1132', 'DURSEJ', 9), +('S9', '1133', 'DURSEJ', 9), +('S9', '1134', 'DURSEJ', 9), +('S9', '1135', 'DURSEJ', 9), +('S9', '1136', 'DURSEJ', 9), +('S9', '1137', 'DURSEJ', 9), +('S9', '1138', 'DURSEJ', 9), +('S9', '1139', 'DURSEJ', 9), +('S9', '1140', 'DURSEJ', 9), +('S9', '1141', 'DURSEJ', 9), +('S9', '1142', 'DURSEJ', 9), +('S9', '1143', 'DURSEJ', 9), +('S9', '1144', 'DURSEJ', 9), +('S9', '1145', 'DURSEJ', 9), +('S9', '1146', 'DURSEJ', 9), +('S9', '1147', 'DURSEJ', 9), +('S9', '1148', 'DURSEJ', 9), +('S9', '1149', 'DURSEJ', 9), +('S9', '1150', 'DURSEJ', 9), +('S9', '1151', 'DURSEJ', 9), +('S9', '1152', 'DURSEJ', 9), +('S9', '1153', 'DURSEJ', 9), +('S9', '1154', 'DURSEJ', 9), +('S9', '1155', 'DURSEJ', 9), +('S9', '1156', 'DURSEJ', 9), +('S9', '1157', 'DURSEJ', 9), +('S9', '1158', 'DURSEJ', 9), +('S9', '1159', 'DURSEJ', 9), +('S9', '1160', 'DURSEJ', 9), +('S9', '1161', 'DURSEJ', 9), +('S9', '1162', 'DURSEJ', 9), +('S9', '1163', 'DURSEJ', 9), +('S9', '1164', 'DURSEJ', 9), +('S9', '1165', 'DURSEJ', 9), +('S9', '1166', 'DURSEJ', 9), +('S9', '1167', 'DURSEJ', 9), +('S9', '1168', 'DURSEJ', 9), +('S9', '1169', 'DURSEJ', 9), +('S9', '1170', 'DURSEJ', 9), +('S9', '1171', 'DURSEJ', 9), +('S9', '1172', 'DURSEJ', 9), +('S9', '1173', 'DURSEJ', 9), +('S9', '1174', 'DURSEJ', 9), +('S9', '1175', 'DURSEJ', 9), +('S9', '1176', 'DURSEJ', 9), +('S9', '1177', 'DURSEJ', 9), +('S9', '1178', 'DURSEJ', 9), +('S9', '1179', 'DURSEJ', 9), +('S9', '1180', 'DURSEJ', 9), +('S9', '1181', 'DURSEJ', 9), +('S9', '1182', 'DURSEJ', 9), +('S9', '1183', 'DURSEJ', 9), +('S9', '1184', 'DURSEJ', 9), +('S9', '1185', 'DURSEJ', 9), +('S9', '1186', 'DURSEJ', 9), +('S9', '1187', 'DURSEJ', 9), +('S9', '1188', 'DURSEJ', 9), +('S9', '1189', 'DURSEJ', 9), +('S9', '1190', 'DURSEJ', 9), +('S9', '1191', 'DURSEJ', 9), +('S9', '1192', 'DURSEJ', 9), +('S9', '1193', 'DURSEJ', 9), +('S9', '1194', 'DURSEJ', 9), +('S9', '1195', 'DURSEJ', 9), +('S9', '1196', 'DURSEJ', 9), +('S9', '1197', 'DURSEJ', 9), +('S9', '1198', 'DURSEJ', 9), +('S9', '1199', 'DURSEJ', 9), +('S9', '1200', 'DURSEJ', 9), +('S9', '1201', 'DURSEJ', 9), +('S9', '1202', 'DURSEJ', 9), +('S9', '1203', 'DURSEJ', 9), +('S9', '1204', 'DURSEJ', 9), +('S9', '1205', 'DURSEJ', 9), +('S9', '1206', 'DURSEJ', 9), +('S9', '1207', 'DURSEJ', 9), +('S9', '1208', 'DURSEJ', 9), +('S9', '1209', 'DURSEJ', 9), +('S9', '1210', 'DURSEJ', 9), +('S9', '1211', 'DURSEJ', 9), +('S9', '1212', 'DURSEJ', 9), +('S9', '1213', 'DURSEJ', 9), +('S9', '1214', 'DURSEJ', 9), +('S9', '1215', 'DURSEJ', 9), +('S9', '1216', 'DURSEJ', 9), +('S9', '1217', 'DURSEJ', 9), +('S9', '1218', 'DURSEJ', 9), +('S9', '1219', 'DURSEJ', 9), +('S9', '1220', 'DURSEJ', 9), +('S9', '1221', 'DURSEJ', 9), +('S9', '1222', 'DURSEJ', 9), +('S9', '1223', 'DURSEJ', 9), +('S9', '1224', 'DURSEJ', 9), +('S9', '1225', 'DURSEJ', 9), +('S9', '1226', 'DURSEJ', 9), +('S9', '1227', 'DURSEJ', 9), +('S9', '1228', 'DURSEJ', 9), +('S9', '1229', 'DURSEJ', 9), +('S9', '1230', 'DURSEJ', 9), +('S9', '1231', 'DURSEJ', 9), +('S9', '1232', 'DURSEJ', 9), +('S9', '1233', 'DURSEJ', 9), +('S9', '1234', 'DURSEJ', 9), +('S9', '1235', 'DURSEJ', 9), +('S9', '1236', 'DURSEJ', 9), +('S9', '1237', 'DURSEJ', 9), +('S9', '1238', 'DURSEJ', 9), +('S9', '1239', 'DURSEJ', 9), +('S9', '1240', 'DURSEJ', 9), +('S9', '1241', 'DURSEJ', 9), +('S9', '1242', 'DURSEJ', 9), +('S9', '1243', 'DURSEJ', 9), +('S9', '1244', 'DURSEJ', 9), +('S9', '1245', 'DURSEJ', 9), +('S9', '1246', 'DURSEJ', 9), +('S9', '1247', 'DURSEJ', 9), +('S9', '1248', 'DURSEJ', 9), +('S9', '1249', 'DURSEJ', 9), +('S9', '1250', 'DURSEJ', 9), +('S9', '1251', 'DURSEJ', 9), +('S9', '1252', 'DURSEJ', 9), +('S9', '1253', 'DURSEJ', 9), +('S9', '1254', 'DURSEJ', 9), +('S9', '1255', 'DURSEJ', 9), +('S9', '1256', 'DURSEJ', 9), +('S9', '1257', 'DURSEJ', 9), +('S9', '1258', 'DURSEJ', 9), +('S9', '1259', 'DURSEJ', 9), +('S9', '1260', 'DURSEJ', 9), +('S9', '1261', 'DURSEJ', 9), +('S9', '1262', 'DURSEJ', 9), +('S9', '1263', 'DURSEJ', 9), +('S9', '1264', 'DURSEJ', 9), +('S9', '1265', 'DURSEJ', 9), +('S9', '1266', 'DURSEJ', 9), +('S9', '1267', 'DURSEJ', 9), +('S9', '1268', 'DURSEJ', 9), +('S9', '1269', 'DURSEJ', 9), +('S9', '1270', 'DURSEJ', 9), +('S9', '1271', 'DURSEJ', 9), +('S9', '1272', 'DURSEJ', 9), +('S9', '1273', 'DURSEJ', 9), +('S9', '1274', 'DURSEJ', 9), +('S9', '1275', 'DURSEJ', 9), +('S9', '1276', 'DURSEJ', 9), +('S9', '1277', 'DURSEJ', 9), +('S9', '1278', 'DURSEJ', 9), +('S9', '1279', 'DURSEJ', 9), +('S9', '1280', 'DURSEJ', 9), +('S9', '1281', 'DURSEJ', 9), +('S9', '1282', 'DURSEJ', 9), +('S9', '1283', 'DURSEJ', 9), +('S9', '1284', 'DURSEJ', 9), +('S9', '1285', 'DURSEJ', 9), +('S9', '1286', 'DURSEJ', 9), +('S9', '1287', 'DURSEJ', 9), +('S9', '1288', 'DURSEJ', 9), +('S9', '1289', 'DURSEJ', 9), +('S9', '1290', 'DURSEJ', 9), +('S9', '1291', 'DURSEJ', 9), +('S9', '1292', 'DURSEJ', 9), +('S9', '1293', 'DURSEJ', 9), +('S9', '1294', 'DURSEJ', 9), +('S9', '1295', 'DURSEJ', 9), +('S9', '1296', 'DURSEJ', 9), +('S9', '1297', 'DURSEJ', 9), +('S9', '1298', 'DURSEJ', 9), +('S9', '1299', 'DURSEJ', 9), +('S9', '1300', 'DURSEJ', 9), +('S9', '1301', 'DURSEJ', 9), +('S9', '1302', 'DURSEJ', 9), +('S9', '1303', 'DURSEJ', 9), +('S9', '1304', 'DURSEJ', 9), +('S9', '1305', 'DURSEJ', 9), +('S9', '1306', 'DURSEJ', 9), +('S9', '1307', 'DURSEJ', 9), +('S9', '1308', 'DURSEJ', 9), +('S9', '1309', 'DURSEJ', 9), +('S9', '1310', 'DURSEJ', 9), +('S9', '1311', 'DURSEJ', 9), +('S9', '1312', 'DURSEJ', 9), +('S9', '1313', 'DURSEJ', 9), +('S9', '1314', 'DURSEJ', 9), +('S9', '1315', 'DURSEJ', 9), +('S9', '1316', 'DURSEJ', 9), +('S9', '1317', 'DURSEJ', 9), +('S9', '1318', 'DURSEJ', 9), +('S9', '1319', 'DURSEJ', 9), +('S9', '1320', 'DURSEJ', 9), +('S9', '1321', 'DURSEJ', 9), +('S9', '1322', 'DURSEJ', 9), +('S9', '1323', 'DURSEJ', 9), +('S9', '1324', 'DURSEJ', 9), +('S9', '1325', 'DURSEJ', 9), +('S9', '1326', 'DURSEJ', 9), +('S9', '1327', 'DURSEJ', 9), +('S9', '1328', 'DURSEJ', 9), +('S9', '1329', 'DURSEJ', 9), +('S9', '1330', 'DURSEJ', 9), +('S9', '1331', 'DURSEJ', 9), +('S9', '1332', 'DURSEJ', 9), +('S9', '1333', 'DURSEJ', 9), +('S9', '1334', 'DURSEJ', 9), +('S9', '1335', 'DURSEJ', 9), +('S9', '1336', 'DURSEJ', 9), +('S9', '1337', 'DURSEJ', 9), +('S9', '1338', 'DURSEJ', 9), +('S9', '1339', 'DURSEJ', 9), +('S9', '1340', 'DURSEJ', 9), +('S9', '1341', 'DURSEJ', 9), +('S9', '1342', 'DURSEJ', 9), +('S9', '1343', 'DURSEJ', 9), +('S9', '1344', 'DURSEJ', 9), +('S9', '1345', 'DURSEJ', 9), +('S9', '1346', 'DURSEJ', 9), +('S9', '1347', 'DURSEJ', 9), +('S9', '1348', 'DURSEJ', 9), +('S9', '1349', 'DURSEJ', 9), +('S9', '1350', 'DURSEJ', 9), +('S9', '1351', 'DURSEJ', 9), +('S9', '1352', 'DURSEJ', 9), +('S9', '1353', 'DURSEJ', 9), +('S9', '1354', 'DURSEJ', 9), +('S9', '1355', 'DURSEJ', 9), +('S9', '1356', 'DURSEJ', 9), +('S9', '1357', 'DURSEJ', 9), +('S9', '1358', 'DURSEJ', 9), +('S9', '1359', 'DURSEJ', 9), +('S9', '1360', 'DURSEJ', 9), +('S9', '1361', 'DURSEJ', 9), +('S9', '1362', 'DURSEJ', 9), +('S9', '1363', 'DURSEJ', 9), +('S9', '1364', 'DURSEJ', 9), +('S9', '1365', 'DURSEJ', 9), +('S9', '1366', 'DURSEJ', 9), +('S9', '1367', 'DURSEJ', 9), +('S9', '1368', 'DURSEJ', 9), +('S9', '1369', 'DURSEJ', 9), +('S9', '1370', 'DURSEJ', 9), +('S9', '1371', 'DURSEJ', 9), +('S9', '1372', 'DURSEJ', 9), +('S9', '1373', 'DURSEJ', 9), +('S9', '1374', 'DURSEJ', 9), +('S9', '1375', 'DURSEJ', 9), +('S9', '1376', 'DURSEJ', 9), +('S9', '1377', 'DURSEJ', 9), +('S9', '1378', 'DURSEJ', 9), +('S9', '1379', 'DURSEJ', 9), +('S9', '1380', 'DURSEJ', 9), +('S9', '1381', 'DURSEJ', 9), +('S9', '1382', 'DURSEJ', 9), +('S9', '1383', 'DURSEJ', 9), +('S9', '1384', 'DURSEJ', 9), +('S9', '1385', 'DURSEJ', 9), +('S9', '1386', 'DURSEJ', 9), +('S9', '1387', 'DURSEJ', 9), +('S9', '1388', 'DURSEJ', 9), +('S9', '1389', 'DURSEJ', 9), +('S9', '1390', 'DURSEJ', 9), +('S9', '1391', 'DURSEJ', 9), +('S9', '1392', 'DURSEJ', 9), +('S9', '1393', 'DURSEJ', 9), +('S9', '1394', 'DURSEJ', 9), +('S9', '1395', 'DURSEJ', 9), +('S9', '1396', 'DURSEJ', 9), +('S9', '1397', 'DURSEJ', 9), +('S9', '1398', 'DURSEJ', 9), +('S9', '1399', 'DURSEJ', 9), +('S9', '1400', 'DURSEJ', 9), +('S9', '1401', 'DURSEJ', 9), +('S9', '1402', 'DURSEJ', 9), +('S9', '1403', 'DURSEJ', 9), +('S9', '1404', 'DURSEJ', 9), +('S9', '1405', 'DURSEJ', 9), +('S9', '1406', 'DURSEJ', 9), +('S9', '1407', 'DURSEJ', 9), +('S9', '1408', 'DURSEJ', 9), +('S9', '1409', 'DURSEJ', 9), +('S9', '1410', 'DURSEJ', 9), +('S9', '1411', 'DURSEJ', 9), +('S9', '1412', 'DURSEJ', 9), +('S9', '1413', 'DURSEJ', 9), +('S9', '1414', 'DURSEJ', 9), +('S9', '1415', 'DURSEJ', 9), +('S9', '1416', 'DURSEJ', 9), +('S9', '1417', 'DURSEJ', 9), +('S9', '1418', 'DURSEJ', 9), +('S9', '1419', 'DURSEJ', 9), +('S9', '1420', 'DURSEJ', 9), +('S9', '1421', 'DURSEJ', 9), +('S9', '1422', 'DURSEJ', 9), +('S9', '1423', 'DURSEJ', 9), +('S9', '1424', 'DURSEJ', 9), +('S9', '1425', 'DURSEJ', 9), +('S9', '1426', 'DURSEJ', 9), +('S9', '1427', 'DURSEJ', 9), +('S9', '1428', 'DURSEJ', 9), +('S9', '1429', 'DURSEJ', 9), +('S9', '1430', 'DURSEJ', 9), +('S9', '1431', 'DURSEJ', 9), +('S9', '1432', 'DURSEJ', 9), +('S9', '1433', 'DURSEJ', 9), +('S9', '1434', 'DURSEJ', 9), +('S9', '1435', 'DURSEJ', 9), +('S9', '1436', 'DURSEJ', 9), +('S9', '1437', 'DURSEJ', 9), +('S9', '1438', 'DURSEJ', 9), +('S9', '1439', 'DURSEJ', 9), +('S9', '1440', 'DURSEJ', 9), +('S9', '1441', 'DURSEJ', 9), +('S9', '1442', 'DURSEJ', 9), +('S9', '1443', 'DURSEJ', 9), +('S9', '1444', 'DURSEJ', 9), +('S9', '1445', 'DURSEJ', 9), +('S9', '1446', 'DURSEJ', 9), +('S9', '1447', 'DURSEJ', 9), +('S9', '1448', 'DURSEJ', 9), +('S9', '1449', 'DURSEJ', 9), +('S9', '1450', 'DURSEJ', 9), +('S9', '1451', 'DURSEJ', 9), +('S9', '1452', 'DURSEJ', 9), +('S9', '1453', 'DURSEJ', 9), +('S9', '1454', 'DURSEJ', 9), +('S9', '1455', 'DURSEJ', 9), +('S9', '1456', 'DURSEJ', 9), +('S9', '1457', 'DURSEJ', 9), +('S9', '1458', 'DURSEJ', 9), +('S9', '1459', 'DURSEJ', 9), +('S9', '1460', 'DURSEJ', 9), +('S9', '1461', 'DURSEJ', 9), +('S9', '1462', 'DURSEJ', 9), +('S9', '1463', 'DURSEJ', 9), +('S9', '1464', 'DURSEJ', 9), +('S9', '1465', 'DURSEJ', 9), +('S9', '1466', 'DURSEJ', 9), +('S9', '1467', 'DURSEJ', 9), +('S9', '1468', 'DURSEJ', 9), +('S9', '1469', 'DURSEJ', 9), +('S9', '1470', 'DURSEJ', 9), +('S9', '1471', 'DURSEJ', 9), +('S9', '1472', 'DURSEJ', 9), +('S9', '1473', 'DURSEJ', 9), +('S9', '1474', 'DURSEJ', 9), +('S9', '1475', 'DURSEJ', 9), +('S9', '1476', 'DURSEJ', 9), +('S9', '1477', 'DURSEJ', 9), +('S9', '1478', 'DURSEJ', 9), +('S9', '1479', 'DURSEJ', 9), +('S9', '1480', 'DURSEJ', 9), +('S9', '1481', 'DURSEJ', 9), +('S9', '1482', 'DURSEJ', 9), +('S9', '1483', 'DURSEJ', 9), +('S9', '1484', 'DURSEJ', 9), +('S9', '1485', 'DURSEJ', 9), +('S9', '1486', 'DURSEJ', 9), +('S9', '1487', 'DURSEJ', 9), +('S9', '1488', 'DURSEJ', 9), +('S9', '1489', 'DURSEJ', 9), +('S9', '1490', 'DURSEJ', 9), +('S9', '1491', 'DURSEJ', 9), +('S9', '1492', 'DURSEJ', 9), +('S9', '1493', 'DURSEJ', 9), +('S9', '1494', 'DURSEJ', 9), +('S9', '1495', 'DURSEJ', 9), +('S9', '1496', 'DURSEJ', 9), +('S9', '1497', 'DURSEJ', 9), +('S9', '1498', 'DURSEJ', 9), +('S9', '1499', 'DURSEJ', 9), +('S9', '1500', 'DURSEJ', 9), +('S9', '1501', 'DURSEJ', 9), +('S9', '1502', 'DURSEJ', 9), +('S9', '1503', 'DURSEJ', 9), +('S9', '1504', 'DURSEJ', 9), +('S9', '1505', 'DURSEJ', 9), +('S9', '1506', 'DURSEJ', 9), +('S9', '1507', 'DURSEJ', 9), +('S9', '1508', 'DURSEJ', 9), +('S9', '1509', 'DURSEJ', 9), +('S9', '1510', 'DURSEJ', 9), +('S9', '1511', 'DURSEJ', 9), +('S9', '1512', 'DURSEJ', 9), +('S9', '1513', 'DURSEJ', 9), +('S9', '1514', 'DURSEJ', 9), +('S9', '1515', 'DURSEJ', 9), +('S9', '1516', 'DURSEJ', 9), +('S9', '1517', 'DURSEJ', 9), +('S9', '1518', 'DURSEJ', 9), +('S9', '1519', 'DURSEJ', 9), +('S9', '1520', 'DURSEJ', 9), +('S9', '1521', 'DURSEJ', 9), +('S9', '1522', 'DURSEJ', 9), +('S9', '1523', 'DURSEJ', 9), +('S9', '1524', 'DURSEJ', 9), +('S9', '1525', 'DURSEJ', 9), +('S9', '1526', 'DURSEJ', 9), +('S9', '1527', 'DURSEJ', 9), +('S9', '1528', 'DURSEJ', 9), +('S9', '1529', 'DURSEJ', 9), +('S9', '1530', 'DURSEJ', 9), +('S9', '1531', 'DURSEJ', 9), +('S9', '1532', 'DURSEJ', 9), +('S9', '1533', 'DURSEJ', 9), +('S9', '1534', 'DURSEJ', 9), +('S9', '1535', 'DURSEJ', 9), +('S9', '1536', 'DURSEJ', 9), +('S9', '1537', 'DURSEJ', 9), +('S9', '1538', 'DURSEJ', 9), +('S9', '1539', 'DURSEJ', 9), +('S9', '1540', 'DURSEJ', 9), +('S9', '1541', 'DURSEJ', 9), +('S9', '1542', 'DURSEJ', 9), +('S9', '1543', 'DURSEJ', 9), +('S9', '1544', 'DURSEJ', 9), +('S9', '1545', 'DURSEJ', 9), +('S9', '1546', 'DURSEJ', 9), +('S9', '1547', 'DURSEJ', 9), +('S9', '1548', 'DURSEJ', 9), +('S9', '1549', 'DURSEJ', 9), +('S9', '1550', 'DURSEJ', 9), +('S9', '1551', 'DURSEJ', 9), +('S9', '1552', 'DURSEJ', 9), +('S9', '1553', 'DURSEJ', 9), +('S9', '1554', 'DURSEJ', 9), +('S9', '1555', 'DURSEJ', 9), +('S9', '1556', 'DURSEJ', 9), +('S9', '1557', 'DURSEJ', 9), +('S9', '1558', 'DURSEJ', 9), +('S9', '1559', 'DURSEJ', 9), +('S9', '1560', 'DURSEJ', 9), +('S9', '1561', 'DURSEJ', 9), +('S9', '1562', 'DURSEJ', 9), +('S9', '1563', 'DURSEJ', 9), +('S9', '1564', 'DURSEJ', 9), +('S9', '1565', 'DURSEJ', 9), +('S9', '1566', 'DURSEJ', 9), +('S9', '1567', 'DURSEJ', 9), +('S9', '1568', 'DURSEJ', 9), +('S9', '1569', 'DURSEJ', 9), +('S9', '1570', 'DURSEJ', 9), +('S9', '1571', 'DURSEJ', 9), +('S9', '1572', 'DURSEJ', 9), +('S9', '1573', 'DURSEJ', 9), +('S9', '1574', 'DURSEJ', 9), +('S9', '1575', 'DURSEJ', 9), +('S9', '1576', 'DURSEJ', 9), +('S9', '1577', 'DURSEJ', 9), +('S9', '1578', 'DURSEJ', 9), +('S9', '1579', 'DURSEJ', 9), +('S9', '1580', 'DURSEJ', 9), +('S9', '1581', 'DURSEJ', 9), +('S9', '1582', 'DURSEJ', 9), +('S9', '1583', 'DURSEJ', 9), +('S9', '1584', 'DURSEJ', 9), +('S9', '1585', 'DURSEJ', 9), +('S9', '1586', 'DURSEJ', 9), +('S9', '1587', 'DURSEJ', 9), +('S9', '1588', 'DURSEJ', 9), +('S9', '1589', 'DURSEJ', 9), +('S9', '1590', 'DURSEJ', 9), +('S9', '1591', 'DURSEJ', 9), +('S9', '1592', 'DURSEJ', 9), +('S9', '1593', 'DURSEJ', 9), +('S9', '1594', 'DURSEJ', 9), +('S9', '1595', 'DURSEJ', 9), +('S9', '1596', 'DURSEJ', 9), +('S9', '1597', 'DURSEJ', 9), +('S9', '1598', 'DURSEJ', 9), +('S9', '1599', 'DURSEJ', 9), +('S9', '1600', 'DURSEJ', 9), +('S9', '1601', 'DURSEJ', 9), +('S9', '1602', 'DURSEJ', 9), +('S9', '1603', 'DURSEJ', 9), +('S9', '1604', 'DURSEJ', 9), +('S9', '1605', 'DURSEJ', 9), +('S9', '1606', 'DURSEJ', 9), +('S9', '1607', 'DURSEJ', 9), +('S9', '1608', 'DURSEJ', 9), +('S9', '1609', 'DURSEJ', 9), +('S9', '1610', 'DURSEJ', 9), +('S9', '1611', 'DURSEJ', 9), +('S9', '1612', 'DURSEJ', 9), +('S9', '1613', 'DURSEJ', 9), +('S9', '1614', 'DURSEJ', 9), +('S9', '1615', 'DURSEJ', 9), +('S9', '1616', 'DURSEJ', 9), +('S9', '1617', 'DURSEJ', 9), +('S9', '1618', 'DURSEJ', 9), +('S9', '1619', 'DURSEJ', 9), +('S9', '1620', 'DURSEJ', 9), +('S9', '1621', 'DURSEJ', 9), +('S9', '1622', 'DURSEJ', 9), +('S9', '1623', 'DURSEJ', 9), +('S9', '1624', 'DURSEJ', 9), +('S9', '1625', 'DURSEJ', 9), +('S9', '1626', 'DURSEJ', 9), +('S9', '1627', 'DURSEJ', 9), +('S9', '1628', 'DURSEJ', 9), +('S9', '1629', 'DURSEJ', 9), +('S9', '1630', 'DURSEJ', 9), +('S9', '1631', 'DURSEJ', 9), +('S9', '1632', 'DURSEJ', 9), +('S9', '1633', 'DURSEJ', 9), +('S9', '1634', 'DURSEJ', 9), +('S9', '1635', 'DURSEJ', 9), +('S9', '1636', 'DURSEJ', 9), +('S9', '1637', 'DURSEJ', 9), +('S9', '1638', 'DURSEJ', 9), +('S9', '1639', 'DURSEJ', 9), +('S9', '1640', 'DURSEJ', 9), +('S9', '1641', 'DURSEJ', 9), +('S9', '1642', 'DURSEJ', 9), +('S9', '1643', 'DURSEJ', 9), +('S9', '1644', 'DURSEJ', 9), +('S9', '1645', 'DURSEJ', 9), +('S9', '1646', 'DURSEJ', 9), +('S9', '1647', 'DURSEJ', 9), +('S9', '1648', 'DURSEJ', 9), +('S9', '1649', 'DURSEJ', 9), +('S9', '1650', 'DURSEJ', 9), +('S9', '1651', 'DURSEJ', 9), +('S9', '1652', 'DURSEJ', 9), +('S9', '1653', 'DURSEJ', 9), +('S9', '1654', 'DURSEJ', 9), +('S9', '1655', 'DURSEJ', 9), +('S9', '1656', 'DURSEJ', 9), +('S9', '1657', 'DURSEJ', 9), +('S9', '1658', 'DURSEJ', 9), +('S9', '1659', 'DURSEJ', 9), +('S9', '1660', 'DURSEJ', 9), +('S9', '1661', 'DURSEJ', 9), +('S9', '1662', 'DURSEJ', 9), +('S9', '1663', 'DURSEJ', 9), +('S9', '1664', 'DURSEJ', 9), +('S9', '1665', 'DURSEJ', 9), +('S9', '1666', 'DURSEJ', 9), +('S9', '1667', 'DURSEJ', 9), +('S9', '1668', 'DURSEJ', 9), +('S9', '1669', 'DURSEJ', 9), +('S9', '1670', 'DURSEJ', 9), +('S9', '1671', 'DURSEJ', 9), +('S9', '1672', 'DURSEJ', 9), +('S9', '1673', 'DURSEJ', 9), +('S9', '1674', 'DURSEJ', 9), +('S9', '1675', 'DURSEJ', 9), +('S9', '1676', 'DURSEJ', 9), +('S9', '1677', 'DURSEJ', 9), +('S9', '1678', 'DURSEJ', 9), +('S9', '1679', 'DURSEJ', 9), +('S9', '1680', 'DURSEJ', 9), +('S9', '1681', 'DURSEJ', 9), +('S9', '1682', 'DURSEJ', 9), +('S9', '1683', 'DURSEJ', 9), +('S9', '1684', 'DURSEJ', 9), +('S9', '1685', 'DURSEJ', 9), +('S9', '1686', 'DURSEJ', 9), +('S9', '1687', 'DURSEJ', 9), +('S9', '1688', 'DURSEJ', 9), +('S9', '1689', 'DURSEJ', 9), +('S9', '1690', 'DURSEJ', 9), +('S9', '1691', 'DURSEJ', 9), +('S9', '1692', 'DURSEJ', 9), +('S9', '1693', 'DURSEJ', 9), +('S9', '1694', 'DURSEJ', 9), +('S9', '1695', 'DURSEJ', 9), +('S9', '1696', 'DURSEJ', 9), +('S9', '1697', 'DURSEJ', 9), +('S9', '1698', 'DURSEJ', 9), +('S9', '1699', 'DURSEJ', 9), +('S9', '1700', 'DURSEJ', 9), +('S9', '1701', 'DURSEJ', 9), +('S9', '1702', 'DURSEJ', 9), +('S9', '1703', 'DURSEJ', 9), +('S9', '1704', 'DURSEJ', 9), +('S9', '1705', 'DURSEJ', 9), +('S9', '1706', 'DURSEJ', 9), +('S9', '1707', 'DURSEJ', 9), +('S9', '1708', 'DURSEJ', 9), +('S9', '1709', 'DURSEJ', 9), +('S9', '1710', 'DURSEJ', 9), +('S9', '1711', 'DURSEJ', 9), +('S9', '1712', 'DURSEJ', 9), +('S9', '1713', 'DURSEJ', 9), +('S9', '1714', 'DURSEJ', 9), +('S9', '1715', 'DURSEJ', 9), +('S9', '1716', 'DURSEJ', 9), +('S9', '1717', 'DURSEJ', 9), +('S9', '1718', 'DURSEJ', 9), +('S9', '1719', 'DURSEJ', 9), +('S9', '1720', 'DURSEJ', 9), +('S9', '1721', 'DURSEJ', 9), +('S9', '1722', 'DURSEJ', 9), +('S9', '1723', 'DURSEJ', 9), +('S9', '1724', 'DURSEJ', 9), +('S9', '1725', 'DURSEJ', 9), +('S9', '1726', 'DURSEJ', 9), +('S9', '1727', 'DURSEJ', 9), +('S9', '1728', 'DURSEJ', 9), +('S9', '1729', 'DURSEJ', 9), +('S9', '1730', 'DURSEJ', 9), +('S9', '1731', 'DURSEJ', 9), +('S9', '1732', 'DURSEJ', 9), +('S9', '1733', 'DURSEJ', 9), +('S9', '1734', 'DURSEJ', 9), +('S9', '1735', 'DURSEJ', 9), +('S9', '1736', 'DURSEJ', 9), +('S9', '1737', 'DURSEJ', 9), +('S9', '1738', 'DURSEJ', 9), +('S9', '1739', 'DURSEJ', 9), +('S9', '1740', 'DURSEJ', 9), +('S9', '1741', 'DURSEJ', 9), +('S9', '1742', 'DURSEJ', 9), +('S9', '1743', 'DURSEJ', 9), +('S9', '1744', 'DURSEJ', 9), +('S9', '1745', 'DURSEJ', 9), +('S9', '1746', 'DURSEJ', 9), +('S9', '1747', 'DURSEJ', 9), +('S9', '1748', 'DURSEJ', 9), +('S9', '1749', 'DURSEJ', 9), +('S9', '1750', 'DURSEJ', 9), +('S9', '1751', 'DURSEJ', 9), +('S9', '1752', 'DURSEJ', 9), +('S9', '1753', 'DURSEJ', 9), +('S9', '1754', 'DURSEJ', 9), +('S9', '1755', 'DURSEJ', 9), +('S9', '1756', 'DURSEJ', 9), +('S9', '1757', 'DURSEJ', 9), +('S9', '1758', 'DURSEJ', 9), +('S9', '1759', 'DURSEJ', 9), +('S9', '1760', 'DURSEJ', 9), +('S9', '1761', 'DURSEJ', 9), +('S9', '1762', 'DURSEJ', 9), +('S9', '1763', 'DURSEJ', 9), +('S9', '1764', 'DURSEJ', 9), +('S9', '1765', 'DURSEJ', 9), +('S9', '1766', 'DURSEJ', 9), +('S9', '1767', 'DURSEJ', 9), +('S9', '1768', 'DURSEJ', 9), +('S9', '1769', 'DURSEJ', 9), +('S9', '1770', 'DURSEJ', 9), +('S9', '1771', 'DURSEJ', 9), +('S9', '1772', 'DURSEJ', 9), +('S9', '1773', 'DURSEJ', 9), +('S9', '1774', 'DURSEJ', 9), +('S9', '1775', 'DURSEJ', 9), +('S9', '1776', 'DURSEJ', 9), +('S9', '1777', 'DURSEJ', 9), +('S9', '1778', 'DURSEJ', 9), +('S9', '1779', 'DURSEJ', 9), +('S9', '1780', 'DURSEJ', 9), +('S9', '1781', 'DURSEJ', 9), +('S9', '1782', 'DURSEJ', 9), +('S9', '1783', 'DURSEJ', 9), +('S9', '1784', 'DURSEJ', 9), +('S9', '1785', 'DURSEJ', 9), +('S9', '1786', 'DURSEJ', 9), +('S9', '1787', 'DURSEJ', 9), +('S9', '1788', 'DURSEJ', 9), +('S9', '1789', 'DURSEJ', 9), +('S9', '1790', 'DURSEJ', 9), +('S9', '1791', 'DURSEJ', 9), +('S9', '1792', 'DURSEJ', 9), +('S9', '1793', 'DURSEJ', 9), +('S9', '1794', 'DURSEJ', 9), +('S9', '1795', 'DURSEJ', 9), +('S9', '1796', 'DURSEJ', 9), +('S9', '1797', 'DURSEJ', 9), +('S9', '1798', 'DURSEJ', 9), +('S9', '1799', 'DURSEJ', 9), +('S9', '1800', 'DURSEJ', 9), +('S9', '1801', 'DURSEJ', 9), +('S9', '1802', 'DURSEJ', 9), +('S9', '1803', 'DURSEJ', 9), +('S9', '1804', 'DURSEJ', 9), +('S9', '1805', 'DURSEJ', 9), +('S9', '1806', 'DURSEJ', 9), +('S9', '1807', 'DURSEJ', 9), +('S9', '1808', 'DURSEJ', 9), +('S9', '1809', 'DURSEJ', 9), +('S9', '1810', 'DURSEJ', 9), +('S9', '1811', 'DURSEJ', 9), +('S9', '1812', 'DURSEJ', 9), +('S9', '1813', 'DURSEJ', 9), +('S9', '1814', 'DURSEJ', 9), +('S9', '1815', 'DURSEJ', 9), +('S9', '1816', 'DURSEJ', 9), +('S9', '1817', 'DURSEJ', 9), +('S9', '1818', 'DURSEJ', 9), +('S9', '1819', 'DURSEJ', 9), +('S9', '1820', 'DURSEJ', 9), +('S9', '1821', 'DURSEJ', 9), +('S9', '1822', 'DURSEJ', 9), +('S9', '1823', 'DURSEJ', 9), +('S9', '1824', 'DURSEJ', 9), +('S9', '1825', 'DURSEJ', 9), +('S9', '1826', 'DURSEJ', 9), +('S9', '1827', 'DURSEJ', 9), +('S9', '1828', 'DURSEJ', 9), +('S9', '1829', 'DURSEJ', 9), +('S9', '1830', 'DURSEJ', 9), +('S9', '1831', 'DURSEJ', 9), +('S9', '1832', 'DURSEJ', 9), +('S9', '1833', 'DURSEJ', 9), +('S9', '1834', 'DURSEJ', 9), +('S9', '1835', 'DURSEJ', 9), +('S9', '1836', 'DURSEJ', 9), +('S9', '1837', 'DURSEJ', 9), +('S9', '1838', 'DURSEJ', 9), +('S9', '1839', 'DURSEJ', 9), +('S9', '1840', 'DURSEJ', 9), +('S9', '1841', 'DURSEJ', 9), +('S9', '1842', 'DURSEJ', 9), +('S9', '1843', 'DURSEJ', 9), +('S9', '1844', 'DURSEJ', 9), +('S9', '1845', 'DURSEJ', 9), +('S9', '1846', 'DURSEJ', 9), +('S9', '1847', 'DURSEJ', 9), +('S9', '1848', 'DURSEJ', 9), +('S9', '1849', 'DURSEJ', 9), +('S9', '1850', 'DURSEJ', 9), +('S9', '1851', 'DURSEJ', 9), +('S9', '1852', 'DURSEJ', 9), +('S9', '1853', 'DURSEJ', 9), +('S9', '1854', 'DURSEJ', 9), +('S9', '1855', 'DURSEJ', 9), +('S9', '1856', 'DURSEJ', 9), +('S9', '1857', 'DURSEJ', 9), +('S9', '1858', 'DURSEJ', 9), +('S9', '1859', 'DURSEJ', 9), +('S9', '1860', 'DURSEJ', 9), +('S9', '1861', 'DURSEJ', 9), +('S9', '1862', 'DURSEJ', 9), +('S9', '1863', 'DURSEJ', 9), +('S9', '1864', 'DURSEJ', 9), +('S9', '1865', 'DURSEJ', 9), +('S9', '1866', 'DURSEJ', 9), +('S9', '1867', 'DURSEJ', 9), +('S9', '1868', 'DURSEJ', 9), +('S9', '1869', 'DURSEJ', 9), +('S9', '1870', 'DURSEJ', 9), +('S9', '1871', 'DURSEJ', 9), +('S9', '1872', 'DURSEJ', 9), +('S9', '1873', 'DURSEJ', 9), +('S9', '1874', 'DURSEJ', 9), +('S9', '1875', 'DURSEJ', 9), +('S9', '1876', 'DURSEJ', 9), +('S9', '1877', 'DURSEJ', 9), +('S9', '1878', 'DURSEJ', 9), +('S9', '1879', 'DURSEJ', 9), +('S9', '1880', 'DURSEJ', 9), +('S9', '1881', 'DURSEJ', 9), +('S9', '1882', 'DURSEJ', 9), +('S9', '1883', 'DURSEJ', 9), +('S9', '1884', 'DURSEJ', 9), +('S9', '1885', 'DURSEJ', 9), +('S9', '1886', 'DURSEJ', 9), +('S9', '1887', 'DURSEJ', 9), +('S9', '1888', 'DURSEJ', 9), +('S9', '1889', 'DURSEJ', 9), +('S9', '1890', 'DURSEJ', 9), +('S9', '1891', 'DURSEJ', 9), +('S9', '1892', 'DURSEJ', 9), +('S9', '1893', 'DURSEJ', 9), +('S9', '1894', 'DURSEJ', 9), +('S9', '1895', 'DURSEJ', 9), +('S9', '1896', 'DURSEJ', 9), +('S9', '1897', 'DURSEJ', 9), +('S9', '1898', 'DURSEJ', 9), +('S9', '1899', 'DURSEJ', 9), +('S9', '1900', 'DURSEJ', 9), +('S9', '1901', 'DURSEJ', 9), +('S9', '1902', 'DURSEJ', 9), +('S9', '1903', 'DURSEJ', 9), +('S9', '1904', 'DURSEJ', 9), +('S9', '1905', 'DURSEJ', 9), +('S9', '1906', 'DURSEJ', 9), +('S9', '1907', 'DURSEJ', 9), +('S9', '1908', 'DURSEJ', 9), +('S9', '1909', 'DURSEJ', 9), +('S9', '1910', 'DURSEJ', 9), +('S9', '1911', 'DURSEJ', 9), +('S9', '1912', 'DURSEJ', 9), +('S9', '1913', 'DURSEJ', 9), +('S9', '1914', 'DURSEJ', 9), +('S9', '1915', 'DURSEJ', 9), +('S9', '1916', 'DURSEJ', 9), +('S9', '1917', 'DURSEJ', 9), +('S9', '1918', 'DURSEJ', 9), +('S9', '1919', 'DURSEJ', 9), +('S9', '1920', 'DURSEJ', 9), +('S9', '1921', 'DURSEJ', 9), +('S9', '1922', 'DURSEJ', 9), +('S9', '1923', 'DURSEJ', 9), +('S9', '1924', 'DURSEJ', 9), +('S9', '1925', 'DURSEJ', 9), +('S9', '1926', 'DURSEJ', 9), +('S9', '1927', 'DURSEJ', 9), +('S9', '1928', 'DURSEJ', 9), +('S9', '1929', 'DURSEJ', 9), +('S9', '1930', 'DURSEJ', 9), +('S9', '1931', 'DURSEJ', 9), +('S9', '1932', 'DURSEJ', 9), +('S9', '1933', 'DURSEJ', 9), +('S9', '1934', 'DURSEJ', 9), +('S9', '1935', 'DURSEJ', 9), +('S9', '1936', 'DURSEJ', 9), +('S9', '1937', 'DURSEJ', 9), +('S9', '1938', 'DURSEJ', 9), +('S9', '1939', 'DURSEJ', 9), +('S9', '1940', 'DURSEJ', 9), +('S9', '1941', 'DURSEJ', 9), +('S9', '1942', 'DURSEJ', 9), +('S9', '1943', 'DURSEJ', 9), +('S9', '1944', 'DURSEJ', 9), +('S9', '1945', 'DURSEJ', 9), +('S9', '1946', 'DURSEJ', 9), +('S9', '1947', 'DURSEJ', 9), +('S9', '1948', 'DURSEJ', 9), +('S9', '1949', 'DURSEJ', 9), +('S9', '1950', 'DURSEJ', 9), +('S9', '1951', 'DURSEJ', 9), +('S9', '1952', 'DURSEJ', 9), +('S9', '1953', 'DURSEJ', 9), +('S9', '1954', 'DURSEJ', 9), +('S9', '1955', 'DURSEJ', 9), +('S9', '1956', 'DURSEJ', 9), +('S9', '1957', 'DURSEJ', 9), +('S9', '1958', 'DURSEJ', 9), +('S9', '1959', 'DURSEJ', 9), +('S9', '1960', 'DURSEJ', 9), +('S9', '1961', 'DURSEJ', 9), +('S9', '1962', 'DURSEJ', 9), +('S9', '1963', 'DURSEJ', 9), +('S9', '1964', 'DURSEJ', 9), +('S9', '1965', 'DURSEJ', 9), +('S9', '1966', 'DURSEJ', 9), +('S9', '1967', 'DURSEJ', 9), +('S9', '1968', 'DURSEJ', 9), +('S9', '1969', 'DURSEJ', 9), +('S9', '1970', 'DURSEJ', 9), +('S9', '1971', 'DURSEJ', 9), +('S9', '1972', 'DURSEJ', 9), +('S9', '1973', 'DURSEJ', 9), +('S9', '1974', 'DURSEJ', 9), +('S9', '1975', 'DURSEJ', 9), +('S9', '1976', 'DURSEJ', 9), +('S9', '1977', 'DURSEJ', 9), +('S9', '1978', 'DURSEJ', 9), +('S9', '1979', 'DURSEJ', 9), +('S9', '1980', 'DURSEJ', 9), +('S9', '1981', 'DURSEJ', 9), +('S9', '1982', 'DURSEJ', 9), +('S9', '1983', 'DURSEJ', 9), +('S9', '1984', 'DURSEJ', 9), +('S9', '1985', 'DURSEJ', 9), +('S9', '1986', 'DURSEJ', 9), +('S9', '1987', 'DURSEJ', 9), +('S9', '1988', 'DURSEJ', 9), +('S9', '1989', 'DURSEJ', 9), +('S9', '1990', 'DURSEJ', 9), +('S9', '1991', 'DURSEJ', 9), +('S9', '1992', 'DURSEJ', 9), +('S9', '1993', 'DURSEJ', 9), +('S9', '1994', 'DURSEJ', 9), +('S9', '1995', 'DURSEJ', 9), +('S9', '1996', 'DURSEJ', 9), +('S9', '1997', 'DURSEJ', 9), +('S9', '1998', 'DURSEJ', 9), +('S9', '1999', 'DURSEJ', 9), +('S9', '2000', 'DURSEJ', 9), +('S9', '2001', 'DURSEJ', 9), +('S9', '2002', 'DURSEJ', 9), +('S9', '2003', 'DURSEJ', 9), +('S9', '2004', 'DURSEJ', 9), +('S9', '2005', 'DURSEJ', 9), +('S9', '2006', 'DURSEJ', 9), +('S9', '2007', 'DURSEJ', 9), +('S9', '2008', 'DURSEJ', 9), +('S9', '2009', 'DURSEJ', 9), +('S9', '2010', 'DURSEJ', 9), +('S9', '2011', 'DURSEJ', 9), +('S9', '2012', 'DURSEJ', 9), +('S9', '2013', 'DURSEJ', 9), +('S9', '2014', 'DURSEJ', 9), +('S9', '2015', 'DURSEJ', 9), +('S9', '2016', 'DURSEJ', 9), +('S9', '2017', 'DURSEJ', 9), +('S9', '2018', 'DURSEJ', 9), +('S9', '2019', 'DURSEJ', 9), +('S9', '2020', 'DURSEJ', 9), +('S9', '2021', 'DURSEJ', 9), +('S9', '2022', 'DURSEJ', 9), +('S9', '2023', 'DURSEJ', 9), +('S9', '2024', 'DURSEJ', 9), +('S9', '2025', 'DURSEJ', 9), +('S9', '2026', 'DURSEJ', 9), +('S9', '2027', 'DURSEJ', 9), +('S9', '2028', 'DURSEJ', 9), +('S9', '2029', 'DURSEJ', 9), +('S9', '2030', 'DURSEJ', 9), +('S9', '2031', 'DURSEJ', 9), +('S9', '2032', 'DURSEJ', 9), +('S9', '2033', 'DURSEJ', 9), +('S9', '2034', 'DURSEJ', 9), +('S9', '2035', 'DURSEJ', 9), +('S9', '2036', 'DURSEJ', 9), +('S9', '2037', 'DURSEJ', 9), +('S9', '2038', 'DURSEJ', 9), +('S9', '2039', 'DURSEJ', 9), +('S9', '2040', 'DURSEJ', 9), +('S9', '2041', 'DURSEJ', 9), +('S9', '2042', 'DURSEJ', 9), +('S9', '2043', 'DURSEJ', 9), +('S9', '2044', 'DURSEJ', 9), +('S9', '2045', 'DURSEJ', 9), +('S9', '2046', 'DURSEJ', 9), +('S9', '2047', 'DURSEJ', 9), +('S9', '2048', 'DURSEJ', 9), +('S9', '2049', 'DURSEJ', 9), +('S9', '2050', 'DURSEJ', 9), +('S9', '2051', 'DURSEJ', 9), +('S9', '2052', 'DURSEJ', 9), +('S9', '2053', 'DURSEJ', 9), +('S9', '2054', 'DURSEJ', 9), +('S9', '2055', 'DURSEJ', 9), +('S9', '2056', 'DURSEJ', 9), +('S9', '2057', 'DURSEJ', 9), +('S9', '2058', 'DURSEJ', 9), +('S9', '2059', 'DURSEJ', 9), +('S9', '2060', 'DURSEJ', 9), +('S9', '2061', 'DURSEJ', 9), +('S9', '2062', 'DURSEJ', 9), +('S9', '2063', 'DURSEJ', 9), +('S9', '2064', 'DURSEJ', 9), +('S9', '2065', 'DURSEJ', 9), +('S9', '2066', 'DURSEJ', 9), +('S9', '2067', 'DURSEJ', 9), +('S9', '2068', 'DURSEJ', 9), +('S9', '2069', 'DURSEJ', 9), +('S9', '2070', 'DURSEJ', 9), +('S9', '2071', 'DURSEJ', 9), +('S9', '2072', 'DURSEJ', 9), +('S9', '2073', 'DURSEJ', 9), +('S9', '2074', 'DURSEJ', 9), +('S9', '2075', 'DURSEJ', 9), +('S9', '2076', 'DURSEJ', 9), +('S9', '2077', 'DURSEJ', 9), +('S9', '2078', 'DURSEJ', 9), +('S9', '2079', 'DURSEJ', 9), +('S9', '2080', 'DURSEJ', 9), +('S9', '2081', 'DURSEJ', 9), +('S9', '2082', 'DURSEJ', 9), +('S9', '2083', 'DURSEJ', 9), +('S9', '2084', 'DURSEJ', 9), +('S9', '2085', 'DURSEJ', 9), +('S9', '2086', 'DURSEJ', 9), +('S9', '2087', 'DURSEJ', 9), +('S9', '2088', 'DURSEJ', 9), +('S9', '2089', 'DURSEJ', 9), +('S9', '2090', 'DURSEJ', 9), +('S9', '2091', 'DURSEJ', 9), +('S9', '2092', 'DURSEJ', 9), +('S9', '2093', 'DURSEJ', 9), +('S9', '2094', 'DURSEJ', 9), +('S9', '2095', 'DURSEJ', 9), +('S9', '2096', 'DURSEJ', 9), +('S9', '2097', 'DURSEJ', 9), +('S9', '2098', 'DURSEJ', 9), +('S9', '2099', 'DURSEJ', 9), +('S9', '2100', 'DURSEJ', 9), +('S9', '2101', 'DURSEJ', 9), +('S9', '2102', 'DURSEJ', 9), +('S9', '2103', 'DURSEJ', 9), +('S9', '2104', 'DURSEJ', 9), +('S9', '2105', 'DURSEJ', 9), +('S9', '2106', 'DURSEJ', 9), +('S9', '2107', 'DURSEJ', 9), +('S9', '2108', 'DURSEJ', 9), +('S9', '2109', 'DURSEJ', 9), +('S9', '2110', 'DURSEJ', 9), +('S9', '2111', 'DURSEJ', 9), +('S9', '2112', 'DURSEJ', 9), +('S9', '2113', 'DURSEJ', 9), +('S9', '2114', 'DURSEJ', 9), +('S9', '2115', 'DURSEJ', 9), +('S9', '2116', 'DURSEJ', 9), +('S9', '2117', 'DURSEJ', 9), +('S9', '2118', 'DURSEJ', 9), +('S9', '2119', 'DURSEJ', 9), +('S9', '2120', 'DURSEJ', 9), +('S9', '2121', 'DURSEJ', 9), +('S9', '2122', 'DURSEJ', 9), +('S9', '2123', 'DURSEJ', 9), +('S9', '2124', 'DURSEJ', 9), +('S9', '2125', 'DURSEJ', 9), +('S9', '2126', 'DURSEJ', 9), +('S9', '2127', 'DURSEJ', 9), +('S9', '2128', 'DURSEJ', 9), +('S9', '2129', 'DURSEJ', 9), +('S9', '2130', 'DURSEJ', 9), +('S9', '2131', 'DURSEJ', 9), +('S9', '2132', 'DURSEJ', 9), +('S9', '2133', 'DURSEJ', 9), +('S9', '2134', 'DURSEJ', 9), +('S9', '2135', 'DURSEJ', 9), +('S9', '2136', 'DURSEJ', 9), +('S9', '2137', 'DURSEJ', 9), +('S9', '2138', 'DURSEJ', 9), +('S9', '2139', 'DURSEJ', 9), +('S9', '2140', 'DURSEJ', 9), +('S9', '2141', 'DURSEJ', 9), +('S9', '2142', 'DURSEJ', 9), +('S9', '2143', 'DURSEJ', 9), +('S9', '2144', 'DURSEJ', 9), +('S9', '2145', 'DURSEJ', 9), +('S9', '2146', 'DURSEJ', 9), +('S9', '2147', 'DURSEJ', 9), +('S9', '2148', 'DURSEJ', 9), +('S9', '2149', 'DURSEJ', 9), +('S9', '2150', 'DURSEJ', 9), +('S9', '2151', 'DURSEJ', 9), +('S9', '2152', 'DURSEJ', 9), +('S9', '2153', 'DURSEJ', 9), +('S9', '2154', 'DURSEJ', 9), +('S9', '2155', 'DURSEJ', 9), +('S9', '2156', 'DURSEJ', 9), +('S9', '2157', 'DURSEJ', 9), +('S9', '2158', 'DURSEJ', 9), +('S9', '2159', 'DURSEJ', 9), +('S9', '2160', 'DURSEJ', 9), +('S9', '2161', 'DURSEJ', 9), +('S9', '2162', 'DURSEJ', 9), +('S9', '2163', 'DURSEJ', 9), +('S9', '2164', 'DURSEJ', 9), +('S9', '2165', 'DURSEJ', 9), +('S9', '2166', 'DURSEJ', 9), +('S9', '2167', 'DURSEJ', 9), +('S9', '2168', 'DURSEJ', 9), +('S9', '2169', 'DURSEJ', 9), +('S9', '2170', 'DURSEJ', 9), +('S9', '2171', 'DURSEJ', 9), +('S9', '2172', 'DURSEJ', 9), +('S9', '2173', 'DURSEJ', 9), +('S9', '2174', 'DURSEJ', 9), +('S9', '2175', 'DURSEJ', 9), +('S9', '2176', 'DURSEJ', 9), +('S9', '2177', 'DURSEJ', 9), +('S9', '2178', 'DURSEJ', 9), +('S9', '2179', 'DURSEJ', 9), +('S9', '2180', 'DURSEJ', 9), +('S9', '2181', 'DURSEJ', 9), +('S9', '2182', 'DURSEJ', 9), +('S9', '2183', 'DURSEJ', 9), +('S9', '2184', 'DURSEJ', 9), +('S9', '2185', 'DURSEJ', 9), +('S9', '2186', 'DURSEJ', 9), +('S9', '2187', 'DURSEJ', 9), +('S9', '2188', 'DURSEJ', 9), +('S9', '2189', 'DURSEJ', 9), +('S9', '2190', 'DURSEJ', 9), +('S9', '2191', 'DURSEJ', 9), +('S9', '2192', 'DURSEJ', 9), +('S9', '2193', 'DURSEJ', 9), +('S9', '2194', 'DURSEJ', 9), +('S9', '2195', 'DURSEJ', 9), +('S9', '2196', 'DURSEJ', 9), +('S9', '2197', 'DURSEJ', 9), +('S9', '2198', 'DURSEJ', 9), +('S9', '2199', 'DURSEJ', 9), +('S9', '2200', 'DURSEJ', 9), +('S9', '2201', 'DURSEJ', 9), +('S9', '2202', 'DURSEJ', 9), +('S9', '2203', 'DURSEJ', 9), +('S9', '2204', 'DURSEJ', 9), +('S9', '2205', 'DURSEJ', 9), +('S9', '2206', 'DURSEJ', 9), +('S9', '2207', 'DURSEJ', 9), +('S9', '2208', 'DURSEJ', 9), +('S9', '2209', 'DURSEJ', 9), +('S9', '2210', 'DURSEJ', 9), +('S9', '2211', 'DURSEJ', 9), +('S9', '2212', 'DURSEJ', 9), +('S9', '2213', 'DURSEJ', 9), +('S9', '2214', 'DURSEJ', 9), +('S9', '2215', 'DURSEJ', 9), +('S9', '2216', 'DURSEJ', 9), +('S9', '2217', 'DURSEJ', 9), +('S9', '2218', 'DURSEJ', 9), +('S9', '2219', 'DURSEJ', 9), +('S9', '2220', 'DURSEJ', 9), +('S9', '2221', 'DURSEJ', 9), +('S9', '2222', 'DURSEJ', 9), +('S9', '2223', 'DURSEJ', 9), +('S9', '2224', 'DURSEJ', 9), +('S9', '2225', 'DURSEJ', 9), +('S9', '2226', 'DURSEJ', 9), +('S9', '2227', 'DURSEJ', 9), +('S9', '2228', 'DURSEJ', 9), +('S9', '2229', 'DURSEJ', 9), +('S9', '2230', 'DURSEJ', 9), +('S9', '2231', 'DURSEJ', 9), +('S9', '2232', 'DURSEJ', 9), +('S9', '2233', 'DURSEJ', 9), +('S9', '2234', 'DURSEJ', 9), +('S9', '2235', 'DURSEJ', 9), +('S9', '2236', 'DURSEJ', 9), +('S9', '2237', 'DURSEJ', 9), +('S9', '2238', 'DURSEJ', 9), +('S9', '2239', 'DURSEJ', 9), +('S9', '2240', 'DURSEJ', 9), +('S9', '2241', 'DURSEJ', 9), +('S9', '2242', 'DURSEJ', 9), +('S9', '2243', 'DURSEJ', 9), +('S9', '2244', 'DURSEJ', 9), +('S9', '2245', 'DURSEJ', 9), +('S9', '2246', 'DURSEJ', 9), +('S9', '2247', 'DURSEJ', 9), +('S9', '2248', 'DURSEJ', 9), +('S9', '2249', 'DURSEJ', 9), +('S9', '2250', 'DURSEJ', 9), +('S9', '2251', 'DURSEJ', 9), +('S9', '2252', 'DURSEJ', 9), +('S9', '2253', 'DURSEJ', 9), +('S9', '2254', 'DURSEJ', 9), +('S9', '2255', 'DURSEJ', 9), +('S9', '2256', 'DURSEJ', 9), +('S9', '2257', 'DURSEJ', 9), +('S9', '2258', 'DURSEJ', 9), +('S9', '2259', 'DURSEJ', 9), +('S9', '2260', 'DURSEJ', 9), +('S9', '2261', 'DURSEJ', 9), +('S9', '2262', 'DURSEJ', 9), +('S9', '2263', 'DURSEJ', 9), +('S9', '2264', 'DURSEJ', 9), +('S9', '2265', 'DURSEJ', 9), +('S9', '2266', 'DURSEJ', 9), +('S9', '2267', 'DURSEJ', 9), +('S9', '2268', 'DURSEJ', 9), +('S9', '2269', 'DURSEJ', 9), +('S9', '2270', 'DURSEJ', 9), +('S9', '2271', 'DURSEJ', 9), +('S9', '2272', 'DURSEJ', 9), +('S9', '2273', 'DURSEJ', 9), +('S9', '2274', 'DURSEJ', 9), +('S9', '2275', 'DURSEJ', 9), +('S9', '2276', 'DURSEJ', 9), +('S9', '2277', 'DURSEJ', 9), +('S9', '2278', 'DURSEJ', 9), +('S9', '2279', 'DURSEJ', 9), +('S9', '2280', 'DURSEJ', 9), +('S9', '2281', 'DURSEJ', 9), +('S9', '2282', 'DURSEJ', 9), +('S9', '2283', 'DURSEJ', 9), +('S9', '2284', 'DURSEJ', 9), +('S9', '2285', 'DURSEJ', 9), +('S9', '2286', 'DURSEJ', 9), +('S9', '2287', 'DURSEJ', 9), +('S9', '2288', 'DURSEJ', 9), +('S9', '2289', 'DURSEJ', 9), +('S9', '2290', 'DURSEJ', 9), +('S9', '2291', 'DURSEJ', 9), +('S9', '2292', 'DURSEJ', 9), +('S9', '2293', 'DURSEJ', 9), +('S9', '2294', 'DURSEJ', 9), +('S9', '2295', 'DURSEJ', 9), +('S9', '2296', 'DURSEJ', 9), +('S9', '2297', 'DURSEJ', 9), +('S9', '2298', 'DURSEJ', 9), +('S9', '2299', 'DURSEJ', 9), +('S9', '2300', 'DURSEJ', 9), +('S9', '2301', 'DURSEJ', 9), +('S9', '2302', 'DURSEJ', 9), +('S9', '2303', 'DURSEJ', 9), +('S9', '2304', 'DURSEJ', 9), +('S9', '2305', 'DURSEJ', 9), +('S9', '2306', 'DURSEJ', 9), +('S9', '2307', 'DURSEJ', 9), +('S9', '2308', 'DURSEJ', 9), +('S9', '2309', 'DURSEJ', 9), +('S9', '2310', 'DURSEJ', 9), +('S9', '2311', 'DURSEJ', 9), +('S9', '2312', 'DURSEJ', 9), +('S9', '2313', 'DURSEJ', 9), +('S9', '2314', 'DURSEJ', 9), +('S9', '2315', 'DURSEJ', 9), +('S9', '2316', 'DURSEJ', 9), +('S9', '2317', 'DURSEJ', 9), +('S9', '2318', 'DURSEJ', 9), +('S9', '2319', 'DURSEJ', 9), +('S9', '2320', 'DURSEJ', 9), +('S9', '2321', 'DURSEJ', 9), +('S9', '2322', 'DURSEJ', 9), +('S9', '2323', 'DURSEJ', 9), +('S9', '2324', 'DURSEJ', 9), +('S9', '2325', 'DURSEJ', 9), +('S9', '2326', 'DURSEJ', 9), +('S9', '2327', 'DURSEJ', 9), +('S9', '2328', 'DURSEJ', 9), +('S9', '2329', 'DURSEJ', 9), +('S9', '2330', 'DURSEJ', 9), +('S9', '2331', 'DURSEJ', 9), +('S9', '2332', 'DURSEJ', 9), +('S9', '2333', 'DURSEJ', 9), +('S9', '2334', 'DURSEJ', 9), +('S9', '2335', 'DURSEJ', 9), +('S9', '2336', 'DURSEJ', 9), +('S9', '2337', 'DURSEJ', 9), +('S9', '2338', 'DURSEJ', 9), +('S9', '2339', 'DURSEJ', 9), +('S9', '2340', 'DURSEJ', 9), +('S9', '2341', 'DURSEJ', 9), +('S9', '2342', 'DURSEJ', 9), +('S9', '2343', 'DURSEJ', 9), +('S9', '2344', 'DURSEJ', 9), +('S9', '2345', 'DURSEJ', 9), +('S9', '2346', 'DURSEJ', 9), +('S9', '2347', 'DURSEJ', 9), +('S9', '2348', 'DURSEJ', 9), +('S9', '2349', 'DURSEJ', 9), +('S9', '2350', 'DURSEJ', 9), +('S9', '2351', 'DURSEJ', 9), +('S9', '2352', 'DURSEJ', 9), +('S9', '2353', 'DURSEJ', 9), +('S9', '2354', 'DURSEJ', 9), +('S9', '2355', 'DURSEJ', 9), +('S9', '2356', 'DURSEJ', 9), +('S9', '2357', 'DURSEJ', 9), +('S9', '2358', 'DURSEJ', 9), +('S9', '2359', 'DURSEJ', 9), +('S9', '2360', 'DURSEJ', 9), +('S9', '2361', 'DURSEJ', 9), +('S9', '2362', 'DURSEJ', 9), +('S9', '2363', 'DURSEJ', 9), +('S9', '2364', 'DURSEJ', 9), +('S9', '2365', 'DURSEJ', 9), +('S9', '2366', 'DURSEJ', 9), +('S9', '2367', 'DURSEJ', 9), +('S9', '2368', 'DURSEJ', 9), +('S9', '2369', 'DURSEJ', 9), +('S9', '2370', 'DURSEJ', 9), +('S9', '2371', 'DURSEJ', 9), +('S9', '2372', 'DURSEJ', 9), +('S9', '2373', 'DURSEJ', 9), +('S9', '2374', 'DURSEJ', 9), +('S9', '2375', 'DURSEJ', 9), +('S9', '2376', 'DURSEJ', 9), +('S9', '2377', 'DURSEJ', 9), +('S9', '2378', 'DURSEJ', 9), +('S9', '2379', 'DURSEJ', 9), +('S9', '2380', 'DURSEJ', 9), +('S9', '2381', 'DURSEJ', 9), +('S9', '2382', 'DURSEJ', 9), +('S9', '2383', 'DURSEJ', 9), +('S9', '2384', 'DURSEJ', 9), +('S9', '2385', 'DURSEJ', 9), +('S9', '2386', 'DURSEJ', 9), +('S9', '2387', 'DURSEJ', 9), +('S9', '2388', 'DURSEJ', 9), +('S9', '2389', 'DURSEJ', 9), +('S9', '2390', 'DURSEJ', 9), +('S9', '2391', 'DURSEJ', 9), +('S9', '2392', 'DURSEJ', 9), +('S9', '2393', 'DURSEJ', 9), +('S9', '2394', 'DURSEJ', 9), +('S9', '2395', 'DURSEJ', 9), +('S9', '2396', 'DURSEJ', 9), +('S9', '2397', 'DURSEJ', 9), +('S9', '2398', 'DURSEJ', 9), +('S9', '2399', 'DURSEJ', 9), +('S9', '2400', 'DURSEJ', 9), +('S9', '2401', 'DURSEJ', 9), +('S9', '2402', 'DURSEJ', 9), +('S9', '2403', 'DURSEJ', 9), +('S9', '2404', 'DURSEJ', 9), +('S9', '2405', 'DURSEJ', 9), +('S9', '2406', 'DURSEJ', 9), +('S9', '2407', 'DURSEJ', 9), +('S9', '2408', 'DURSEJ', 9), +('S9', '2409', 'DURSEJ', 9), +('S9', '2410', 'DURSEJ', 9), +('S9', '2411', 'DURSEJ', 9), +('S9', '2412', 'DURSEJ', 9), +('S9', '2413', 'DURSEJ', 9), +('S9', '2414', 'DURSEJ', 9), +('S9', '2415', 'DURSEJ', 9), +('S9', '2416', 'DURSEJ', 9), +('S9', '2417', 'DURSEJ', 9), +('S9', '2418', 'DURSEJ', 9), +('S9', '2419', 'DURSEJ', 9), +('S9', '2420', 'DURSEJ', 9), +('S9', '2421', 'DURSEJ', 9), +('S9', '2422', 'DURSEJ', 9), +('S9', '2423', 'DURSEJ', 9), +('S9', '2424', 'DURSEJ', 9), +('S9', '2425', 'DURSEJ', 9), +('S9', '2426', 'DURSEJ', 9), +('S9', '2427', 'DURSEJ', 9), +('S9', '2428', 'DURSEJ', 9), +('S9', '2429', 'DURSEJ', 9), +('S9', '2430', 'DURSEJ', 9), +('S9', '2431', 'DURSEJ', 9), +('S9', '2432', 'DURSEJ', 9), +('S9', '2433', 'DURSEJ', 9), +('S9', '2434', 'DURSEJ', 9), +('S9', '2435', 'DURSEJ', 9), +('S9', '2436', 'DURSEJ', 9), +('S9', '2437', 'DURSEJ', 9), +('S9', '2438', 'DURSEJ', 9), +('S9', '2439', 'DURSEJ', 9), +('S9', '2440', 'DURSEJ', 9), +('S9', '2441', 'DURSEJ', 9), +('S9', '2442', 'DURSEJ', 9), +('S9', '2443', 'DURSEJ', 9), +('S9', '2444', 'DURSEJ', 9), +('S9', '2445', 'DURSEJ', 9), +('S9', '2446', 'DURSEJ', 9), +('S9', '2447', 'DURSEJ', 9), +('S9', '2448', 'DURSEJ', 9), +('S9', '2449', 'DURSEJ', 9), +('S9', '2450', 'DURSEJ', 9), +('S9', '2451', 'DURSEJ', 9), +('S9', '2452', 'DURSEJ', 9), +('S9', '2453', 'DURSEJ', 9), +('S9', '2454', 'DURSEJ', 9), +('S9', '2455', 'DURSEJ', 9), +('S9', '2456', 'DURSEJ', 9), +('S9', '2457', 'DURSEJ', 9), +('S9', '2458', 'DURSEJ', 9), +('S9', '2459', 'DURSEJ', 9), +('S9', '2460', 'DURSEJ', 9), +('S9', '2461', 'DURSEJ', 9), +('S9', '2462', 'DURSEJ', 9), +('S9', '2463', 'DURSEJ', 9), +('S9', '2464', 'DURSEJ', 9), +('S9', '2465', 'DURSEJ', 9), +('S9', '2466', 'DURSEJ', 9), +('S9', '2467', 'DURSEJ', 9), +('S9', '2468', 'DURSEJ', 9), +('S9', '2469', 'DURSEJ', 9), +('S9', '2470', 'DURSEJ', 9), +('S9', '2471', 'DURSEJ', 9), +('S9', '2472', 'DURSEJ', 9), +('S9', '2473', 'DURSEJ', 9), +('S9', '2474', 'DURSEJ', 9), +('S9', '2475', 'DURSEJ', 9), +('S9', '2476', 'DURSEJ', 9), +('S9', '2477', 'DURSEJ', 9), +('S9', '2478', 'DURSEJ', 9), +('S9', '2479', 'DURSEJ', 9), +('S9', '2480', 'DURSEJ', 9), +('S9', '2481', 'DURSEJ', 9), +('S9', '2482', 'DURSEJ', 9), +('S9', '2483', 'DURSEJ', 9), +('S9', '2484', 'DURSEJ', 9), +('S9', '2485', 'DURSEJ', 9), +('S9', '2486', 'DURSEJ', 9), +('S9', '2487', 'DURSEJ', 9), +('S9', '2488', 'DURSEJ', 9), +('S9', '2489', 'DURSEJ', 9), +('S9', '2490', 'DURSEJ', 9), +('S9', '2491', 'DURSEJ', 9), +('S9', '2492', 'DURSEJ', 9), +('S9', '2493', 'DURSEJ', 9), +('S9', '2494', 'DURSEJ', 9), +('S9', '2495', 'DURSEJ', 9), +('S9', '2496', 'DURSEJ', 9), +('S9', '2497', 'DURSEJ', 9), +('S9', '2498', 'DURSEJ', 9), +('S9', '2499', 'DURSEJ', 9), +('S9', '2500', 'DURSEJ', 9), +('S9', '2501', 'DURSEJ', 9), +('S9', '2502', 'DURSEJ', 9), +('S9', '2503', 'DURSEJ', 9), +('S9', '2504', 'DURSEJ', 9), +('S9', '2505', 'DURSEJ', 9), +('S9', '2506', 'DURSEJ', 9), +('S9', '2507', 'DURSEJ', 9), +('S9', '2508', 'DURSEJ', 9), +('S9', '2509', 'DURSEJ', 9), +('S9', '2510', 'DURSEJ', 9), +('S9', '2511', 'DURSEJ', 9), +('S9', '2512', 'DURSEJ', 9), +('S9', '2513', 'DURSEJ', 9), +('S9', '2514', 'DURSEJ', 9), +('S9', '2515', 'DURSEJ', 9), +('S9', '2516', 'DURSEJ', 9), +('S9', '2517', 'DURSEJ', 9), +('S9', '2518', 'DURSEJ', 9), +('S9', '2519', 'DURSEJ', 9), +('S9', '2520', 'DURSEJ', 9), +('S9', '2521', 'DURSEJ', 9), +('S9', '2522', 'DURSEJ', 9), +('S9', '2523', 'DURSEJ', 9), +('S9', '2524', 'DURSEJ', 9), +('S9', '2525', 'DURSEJ', 9), +('S9', '2526', 'DURSEJ', 9), +('S9', '2527', 'DURSEJ', 9), +('S9', '2528', 'DURSEJ', 9), +('S9', '2529', 'DURSEJ', 9), +('S9', '2530', 'DURSEJ', 9), +('S9', '2531', 'DURSEJ', 9), +('S9', '2532', 'DURSEJ', 9), +('S9', '2533', 'DURSEJ', 9), +('S9', '2534', 'DURSEJ', 9), +('S9', '2535', 'DURSEJ', 9), +('S9', '2536', 'DURSEJ', 9), +('S9', '2537', 'DURSEJ', 9), +('S9', '2538', 'DURSEJ', 9), +('S9', '2539', 'DURSEJ', 9), +('S9', '2540', 'DURSEJ', 9), +('S9', '2541', 'DURSEJ', 9), +('S9', '2542', 'DURSEJ', 9), +('S9', '2543', 'DURSEJ', 9), +('S9', '2544', 'DURSEJ', 9), +('S9', '2545', 'DURSEJ', 9), +('S9', '2546', 'DURSEJ', 9), +('S9', '2547', 'DURSEJ', 9), +('S9', '2548', 'DURSEJ', 9), +('S9', '2549', 'DURSEJ', 9), +('S9', '2550', 'DURSEJ', 9), +('S9', '2551', 'DURSEJ', 9), +('S9', '2552', 'DURSEJ', 9), +('S9', '2553', 'DURSEJ', 9), +('S9', '2554', 'DURSEJ', 9), +('S9', '2555', 'DURSEJ', 9), +('S9', '2556', 'DURSEJ', 9), +('S9', '2557', 'DURSEJ', 9), +('S9', '2558', 'DURSEJ', 9), +('S9', '2559', 'DURSEJ', 9), +('S9', '2560', 'DURSEJ', 9), +('S9', '2561', 'DURSEJ', 9), +('S9', '2562', 'DURSEJ', 9), +('S9', '2563', 'DURSEJ', 9), +('S9', '2564', 'DURSEJ', 9), +('S9', '2565', 'DURSEJ', 9), +('S9', '2566', 'DURSEJ', 9), +('S9', '2567', 'DURSEJ', 9), +('S9', '2568', 'DURSEJ', 9), +('S9', '2569', 'DURSEJ', 9), +('S9', '2570', 'DURSEJ', 9), +('S9', '2571', 'DURSEJ', 9), +('S9', '2572', 'DURSEJ', 9), +('S9', '2573', 'DURSEJ', 9), +('S9', '2574', 'DURSEJ', 9), +('S9', '2575', 'DURSEJ', 9), +('S9', '2576', 'DURSEJ', 9), +('S9', '2577', 'DURSEJ', 9), +('S9', '2578', 'DURSEJ', 9), +('S9', '2579', 'DURSEJ', 9), +('S9', '2580', 'DURSEJ', 9), +('S9', '2581', 'DURSEJ', 9), +('S9', '2582', 'DURSEJ', 9), +('S9', '2583', 'DURSEJ', 9), +('S9', '2584', 'DURSEJ', 9), +('S9', '2585', 'DURSEJ', 9), +('S9', '2586', 'DURSEJ', 9), +('S9', '2587', 'DURSEJ', 9), +('S9', '2588', 'DURSEJ', 9), +('S9', '2589', 'DURSEJ', 9), +('S9', '2590', 'DURSEJ', 9), +('S9', '2591', 'DURSEJ', 9), +('S9', '2592', 'DURSEJ', 9), +('S9', '2593', 'DURSEJ', 9), +('S9', '2594', 'DURSEJ', 9), +('S9', '2595', 'DURSEJ', 9), +('S9', '2596', 'DURSEJ', 9), +('S9', '2597', 'DURSEJ', 9), +('S9', '2598', 'DURSEJ', 9), +('S9', '2599', 'DURSEJ', 9), +('S9', '2600', 'DURSEJ', 9), +('S9', '2601', 'DURSEJ', 9), +('S9', '2602', 'DURSEJ', 9), +('S9', '2603', 'DURSEJ', 9), +('S9', '2604', 'DURSEJ', 9), +('S9', '2605', 'DURSEJ', 9), +('S9', '2606', 'DURSEJ', 9), +('S9', '2607', 'DURSEJ', 9), +('S9', '2608', 'DURSEJ', 9), +('S9', '2609', 'DURSEJ', 9), +('S9', '2610', 'DURSEJ', 9), +('S9', '2611', 'DURSEJ', 9), +('S9', '2612', 'DURSEJ', 9), +('S9', '2613', 'DURSEJ', 9), +('S9', '2614', 'DURSEJ', 9), +('S9', '2615', 'DURSEJ', 9), +('S9', '2616', 'DURSEJ', 9), +('S9', '2617', 'DURSEJ', 9), +('S9', '2618', 'DURSEJ', 9), +('S9', '2619', 'DURSEJ', 9), +('S9', '2620', 'DURSEJ', 9), +('S9', '2621', 'DURSEJ', 9), +('S9', '2622', 'DURSEJ', 9), +('S9', '2623', 'DURSEJ', 9), +('S9', '2624', 'DURSEJ', 9), +('S9', '2625', 'DURSEJ', 9), +('S9', '2626', 'DURSEJ', 9), +('S9', '2627', 'DURSEJ', 9), +('S9', '2628', 'DURSEJ', 9), +('S9', '2629', 'DURSEJ', 9), +('S9', '2630', 'DURSEJ', 9), +('S9', '2631', 'DURSEJ', 9), +('S9', '2632', 'DURSEJ', 9), +('S9', '2633', 'DURSEJ', 9), +('S9', '2634', 'DURSEJ', 9), +('S9', '2635', 'DURSEJ', 9), +('S9', '2636', 'DURSEJ', 9), +('S9', '2637', 'DURSEJ', 9), +('S9', '2638', 'DURSEJ', 9), +('S9', '2639', 'DURSEJ', 9), +('S9', '2640', 'DURSEJ', 9), +('S9', '2641', 'DURSEJ', 9), +('S9', '2642', 'DURSEJ', 9), +('S9', '2643', 'DURSEJ', 9), +('S9', '2644', 'DURSEJ', 9), +('S9', '2645', 'DURSEJ', 9), +('S9', '2646', 'DURSEJ', 9), +('S9', '2647', 'DURSEJ', 9), +('S9', '2648', 'DURSEJ', 9), +('S9', '2649', 'DURSEJ', 9), +('S9', '2650', 'DURSEJ', 9), +('S9', '2651', 'DURSEJ', 9), +('S9', '2652', 'DURSEJ', 9), +('S9', '2653', 'DURSEJ', 9), +('S9', '2654', 'DURSEJ', 9), +('S9', '2655', 'DURSEJ', 9), +('S9', '2656', 'DURSEJ', 9), +('S9', '2657', 'DURSEJ', 9), +('S9', '2658', 'DURSEJ', 9), +('S9', '2659', 'DURSEJ', 9), +('S9', '2660', 'DURSEJ', 9), +('S9', '2661', 'DURSEJ', 9), +('S9', '2662', 'DURSEJ', 9), +('S9', '2663', 'DURSEJ', 9), +('S9', '2664', 'DURSEJ', 9), +('S9', '2665', 'DURSEJ', 9), +('S9', '2666', 'DURSEJ', 9), +('S9', '2667', 'DURSEJ', 9), +('S9', '2668', 'DURSEJ', 9), +('S9', '2669', 'DURSEJ', 9), +('S9', '2670', 'DURSEJ', 9), +('S9', '2671', 'DURSEJ', 9), +('S9', '2672', 'DURSEJ', 9), +('S9', '2673', 'DURSEJ', 9), +('S9', '2674', 'DURSEJ', 9), +('S9', '2675', 'DURSEJ', 9), +('S9', '2676', 'DURSEJ', 9), +('S9', '2677', 'DURSEJ', 9), +('S9', '2678', 'DURSEJ', 9), +('S9', '2679', 'DURSEJ', 9), +('S9', '2680', 'DURSEJ', 9), +('S9', '2681', 'DURSEJ', 9), +('S9', '2682', 'DURSEJ', 9), +('S9', '2683', 'DURSEJ', 9), +('S9', '2684', 'DURSEJ', 9), +('S9', '2685', 'DURSEJ', 9), +('S9', '2686', 'DURSEJ', 9), +('S9', '2687', 'DURSEJ', 9), +('S9', '2688', 'DURSEJ', 9), +('S9', '2689', 'DURSEJ', 9), +('S9', '2690', 'DURSEJ', 9), +('S9', '2691', 'DURSEJ', 9), +('S9', '2692', 'DURSEJ', 9), +('S9', '2693', 'DURSEJ', 9), +('S9', '2694', 'DURSEJ', 9), +('S9', '2695', 'DURSEJ', 9), +('S9', '2696', 'DURSEJ', 9), +('S9', '2697', 'DURSEJ', 9), +('S9', '2698', 'DURSEJ', 9), +('S9', '2699', 'DURSEJ', 9), +('S9', '2700', 'DURSEJ', 9), +('S9', '2701', 'DURSEJ', 9), +('S9', '2702', 'DURSEJ', 9), +('S9', '2703', 'DURSEJ', 9), +('S9', '2704', 'DURSEJ', 9), +('S9', '2705', 'DURSEJ', 9), +('S9', '2706', 'DURSEJ', 9), +('S9', '2707', 'DURSEJ', 9), +('S9', '2708', 'DURSEJ', 9), +('S9', '2709', 'DURSEJ', 9), +('S9', '2710', 'DURSEJ', 9), +('S9', '2711', 'DURSEJ', 9), +('S9', '2712', 'DURSEJ', 9), +('S9', '2713', 'DURSEJ', 9), +('S9', '2714', 'DURSEJ', 9), +('S9', '2715', 'DURSEJ', 9), +('S9', '2716', 'DURSEJ', 9), +('S9', '2717', 'DURSEJ', 9), +('S9', '2718', 'DURSEJ', 9), +('S9', '2719', 'DURSEJ', 9), +('S9', '2720', 'DURSEJ', 9), +('S9', '2721', 'DURSEJ', 9), +('S9', '2722', 'DURSEJ', 9), +('S9', '2723', 'DURSEJ', 9), +('S9', '2724', 'DURSEJ', 9), +('S9', '2725', 'DURSEJ', 9), +('S9', '2726', 'DURSEJ', 9), +('S9', '2727', 'DURSEJ', 9), +('S9', '2728', 'DURSEJ', 9), +('S9', '2729', 'DURSEJ', 9), +('S9', '2730', 'DURSEJ', 9), +('S9', '2731', 'DURSEJ', 9), +('S9', '2732', 'DURSEJ', 9), +('S9', '2733', 'DURSEJ', 9), +('S9', '2734', 'DURSEJ', 9), +('S9', '2735', 'DURSEJ', 9), +('S9', '2736', 'DURSEJ', 9), +('S9', '2737', 'DURSEJ', 9), +('S9', '2738', 'DURSEJ', 9), +('S9', '2739', 'DURSEJ', 9), +('S9', '2740', 'DURSEJ', 9), +('S9', '2741', 'DURSEJ', 9), +('S9', '2742', 'DURSEJ', 9), +('S9', '2743', 'DURSEJ', 9), +('S9', '2744', 'DURSEJ', 9), +('S9', '2745', 'DURSEJ', 9), +('S9', '2746', 'DURSEJ', 9), +('S9', '2747', 'DURSEJ', 9), +('S9', '2748', 'DURSEJ', 9), +('S9', '2749', 'DURSEJ', 9), +('S9', '2750', 'DURSEJ', 9), +('S9', '2751', 'DURSEJ', 9), +('S9', '2752', 'DURSEJ', 9), +('S9', '2753', 'DURSEJ', 9), +('S9', '2754', 'DURSEJ', 9), +('S9', '2755', 'DURSEJ', 9), +('S9', '2756', 'DURSEJ', 9), +('S9', '2757', 'DURSEJ', 9), +('S9', '2758', 'DURSEJ', 9), +('S9', '2759', 'DURSEJ', 9), +('S9', '2760', 'DURSEJ', 9), +('S9', '2761', 'DURSEJ', 9), +('S9', '2762', 'DURSEJ', 9), +('S9', '2763', 'DURSEJ', 9), +('S9', '2764', 'DURSEJ', 9), +('S9', '2765', 'DURSEJ', 9), +('S9', '2766', 'DURSEJ', 9), +('S9', '2767', 'DURSEJ', 9), +('S9', '2768', 'DURSEJ', 9), +('S9', '2769', 'DURSEJ', 9), +('S9', '2770', 'DURSEJ', 9), +('S9', '2771', 'DURSEJ', 9), +('S9', '2772', 'DURSEJ', 9), +('S9', '2773', 'DURSEJ', 9), +('S9', '2774', 'DURSEJ', 9), +('S9', '2775', 'DURSEJ', 9), +('S9', '2776', 'DURSEJ', 9), +('S9', '2777', 'DURSEJ', 9), +('S9', '2778', 'DURSEJ', 9), +('S9', '2779', 'DURSEJ', 9), +('S9', '2780', 'DURSEJ', 9), +('S9', '2781', 'DURSEJ', 9), +('S9', '2782', 'DURSEJ', 9), +('S9', '2783', 'DURSEJ', 9), +('S9', '2784', 'DURSEJ', 9), +('S9', '2785', 'DURSEJ', 9), +('S9', '2786', 'DURSEJ', 9), +('S9', '2787', 'DURSEJ', 9), +('S9', '2788', 'DURSEJ', 9), +('S9', '2789', 'DURSEJ', 9), +('S9', '2790', 'DURSEJ', 9), +('S9', '2791', 'DURSEJ', 9), +('S9', '2792', 'DURSEJ', 9), +('S9', '2793', 'DURSEJ', 9), +('S9', '2794', 'DURSEJ', 9), +('S9', '2795', 'DURSEJ', 9), +('S9', '2796', 'DURSEJ', 9), +('S9', '2797', 'DURSEJ', 9), +('S9', '2798', 'DURSEJ', 9), +('S9', '2799', 'DURSEJ', 9), +('S9', '2800', 'DURSEJ', 9), +('S9', '2801', 'DURSEJ', 9), +('S9', '2802', 'DURSEJ', 9), +('S9', '2803', 'DURSEJ', 9), +('S9', '2804', 'DURSEJ', 9), +('S9', '2805', 'DURSEJ', 9), +('S9', '2806', 'DURSEJ', 9), +('S9', '2807', 'DURSEJ', 9), +('S9', '2808', 'DURSEJ', 9), +('S9', '2809', 'DURSEJ', 9), +('S9', '2810', 'DURSEJ', 9), +('S9', '2811', 'DURSEJ', 9), +('S9', '2812', 'DURSEJ', 9), +('S9', '2813', 'DURSEJ', 9), +('S9', '2814', 'DURSEJ', 9), +('S9', '2815', 'DURSEJ', 9), +('S9', '2816', 'DURSEJ', 9), +('S9', '2817', 'DURSEJ', 9), +('S9', '2818', 'DURSEJ', 9), +('S9', '2819', 'DURSEJ', 9), +('S9', '2820', 'DURSEJ', 9), +('S9', '2821', 'DURSEJ', 9), +('S9', '2822', 'DURSEJ', 9), +('S9', '2823', 'DURSEJ', 9), +('S9', '2824', 'DURSEJ', 9), +('S9', '2825', 'DURSEJ', 9), +('S9', '2826', 'DURSEJ', 9), +('S9', '2827', 'DURSEJ', 9), +('S9', '2828', 'DURSEJ', 9), +('S9', '2829', 'DURSEJ', 9), +('S9', '2830', 'DURSEJ', 9), +('S9', '2831', 'DURSEJ', 9), +('S9', '2832', 'DURSEJ', 9), +('S9', '2833', 'DURSEJ', 9), +('S9', '2834', 'DURSEJ', 9), +('S9', '2835', 'DURSEJ', 9), +('S9', '2836', 'DURSEJ', 9), +('S9', '2837', 'DURSEJ', 9), +('S9', '2838', 'DURSEJ', 9), +('S9', '2839', 'DURSEJ', 9), +('S9', '2840', 'DURSEJ', 9), +('S9', '2841', 'DURSEJ', 9), +('S9', '2842', 'DURSEJ', 9), +('S9', '2843', 'DURSEJ', 9), +('S9', '2844', 'DURSEJ', 9), +('S9', '2845', 'DURSEJ', 9), +('S9', '2846', 'DURSEJ', 9), +('S9', '2847', 'DURSEJ', 9), +('S9', '2848', 'DURSEJ', 9), +('S9', '2849', 'DURSEJ', 9), +('S9', '2850', 'DURSEJ', 9), +('S9', '2851', 'DURSEJ', 9), +('S9', '2852', 'DURSEJ', 9), +('S9', '2853', 'DURSEJ', 9), +('S9', '2854', 'DURSEJ', 9), +('S9', '2855', 'DURSEJ', 9), +('S9', '2856', 'DURSEJ', 9), +('S9', '2857', 'DURSEJ', 9), +('S9', '2858', 'DURSEJ', 9), +('S9', '2859', 'DURSEJ', 9), +('S9', '2860', 'DURSEJ', 9), +('S9', '2861', 'DURSEJ', 9), +('S9', '2862', 'DURSEJ', 9), +('S9', '2863', 'DURSEJ', 9), +('S9', '2864', 'DURSEJ', 9), +('S9', '2865', 'DURSEJ', 9), +('S9', '2866', 'DURSEJ', 9), +('S9', '2867', 'DURSEJ', 9), +('S9', '2868', 'DURSEJ', 9), +('S9', '2869', 'DURSEJ', 9), +('S9', '2870', 'DURSEJ', 9), +('S9', '2871', 'DURSEJ', 9), +('S9', '2872', 'DURSEJ', 9), +('S9', '2873', 'DURSEJ', 9), +('S9', '2874', 'DURSEJ', 9), +('S9', '2875', 'DURSEJ', 9), +('S9', '2876', 'DURSEJ', 9), +('S9', '2877', 'DURSEJ', 9), +('S9', '2878', 'DURSEJ', 9), +('S9', '2879', 'DURSEJ', 9), +('S9', '2880', 'DURSEJ', 9), +('S9', '2881', 'DURSEJ', 9), +('S9', '2882', 'DURSEJ', 9), +('S9', '2883', 'DURSEJ', 9), +('S9', '2884', 'DURSEJ', 9), +('S9', '2885', 'DURSEJ', 9), +('S9', '2886', 'DURSEJ', 9), +('S9', '2887', 'DURSEJ', 9), +('S9', '2888', 'DURSEJ', 9), +('S9', '2889', 'DURSEJ', 9), +('S9', '2890', 'DURSEJ', 9), +('S9', '2891', 'DURSEJ', 9), +('S9', '2892', 'DURSEJ', 9), +('S9', '2893', 'DURSEJ', 9), +('S9', '2894', 'DURSEJ', 9), +('S9', '2895', 'DURSEJ', 9), +('S9', '2896', 'DURSEJ', 9), +('S9', '2897', 'DURSEJ', 9), +('S9', '2898', 'DURSEJ', 9), +('S9', '2899', 'DURSEJ', 9), +('S9', '2900', 'DURSEJ', 9), +('S9', '2901', 'DURSEJ', 9), +('S9', '2902', 'DURSEJ', 9), +('S9', '2903', 'DURSEJ', 9), +('S9', '2904', 'DURSEJ', 9), +('S9', '2905', 'DURSEJ', 9), +('S9', '2906', 'DURSEJ', 9), +('S9', '2907', 'DURSEJ', 9), +('S9', '2908', 'DURSEJ', 9), +('S9', '2909', 'DURSEJ', 9), +('S9', '2910', 'DURSEJ', 9), +('S9', '2911', 'DURSEJ', 9), +('S9', '2912', 'DURSEJ', 9), +('S9', '2913', 'DURSEJ', 9), +('S9', '2914', 'DURSEJ', 9), +('S9', '2915', 'DURSEJ', 9), +('S9', '2916', 'DURSEJ', 9), +('S9', '2917', 'DURSEJ', 9), +('S9', '2918', 'DURSEJ', 9), +('S9', '2919', 'DURSEJ', 9), +('S9', '2920', 'DURSEJ', 9), +('S9', '2921', 'DURSEJ', 9), +('S9', '2922', 'DURSEJ', 9), +('S9', '2923', 'DURSEJ', 9), +('S9', '2924', 'DURSEJ', 9), +('S9', '2925', 'DURSEJ', 9), +('S9', '2926', 'DURSEJ', 9), +('S9', '2927', 'DURSEJ', 9), +('S9', '2928', 'DURSEJ', 9), +('S9', '2929', 'DURSEJ', 9), +('S9', '2930', 'DURSEJ', 9), +('S9', '2931', 'DURSEJ', 9), +('S9', '2932', 'DURSEJ', 9), +('S9', '2933', 'DURSEJ', 9), +('S9', '2934', 'DURSEJ', 9), +('S9', '2935', 'DURSEJ', 9), +('S9', '2936', 'DURSEJ', 9), +('S9', '2937', 'DURSEJ', 9), +('S9', '2938', 'DURSEJ', 9), +('S9', '2939', 'DURSEJ', 9), +('S9', '2940', 'DURSEJ', 9), +('S9', '2941', 'DURSEJ', 9), +('S9', '2942', 'DURSEJ', 9), +('S9', '2943', 'DURSEJ', 9), +('S9', '2944', 'DURSEJ', 9), +('S9', '2945', 'DURSEJ', 9), +('S9', '2946', 'DURSEJ', 9), +('S9', '2947', 'DURSEJ', 9), +('S9', '2948', 'DURSEJ', 9), +('S9', '2949', 'DURSEJ', 9), +('S9', '2950', 'DURSEJ', 9), +('S9', '2951', 'DURSEJ', 9), +('S9', '2952', 'DURSEJ', 9), +('S9', '2953', 'DURSEJ', 9), +('S9', '2954', 'DURSEJ', 9), +('S9', '2955', 'DURSEJ', 9), +('S9', '2956', 'DURSEJ', 9), +('S9', '2957', 'DURSEJ', 9), +('S9', '2958', 'DURSEJ', 9), +('S9', '2959', 'DURSEJ', 9), +('S9', '2960', 'DURSEJ', 9), +('S9', '2961', 'DURSEJ', 9), +('S9', '2962', 'DURSEJ', 9), +('S9', '2963', 'DURSEJ', 9), +('S9', '2964', 'DURSEJ', 9), +('S9', '2965', 'DURSEJ', 9), +('S9', '2966', 'DURSEJ', 9), +('S9', '2967', 'DURSEJ', 9), +('S9', '2968', 'DURSEJ', 9), +('S9', '2969', 'DURSEJ', 9), +('S9', '2970', 'DURSEJ', 9), +('S9', '2971', 'DURSEJ', 9), +('S9', '2972', 'DURSEJ', 9), +('S9', '2973', 'DURSEJ', 9), +('S9', '2974', 'DURSEJ', 9), +('S9', '2975', 'DURSEJ', 9), +('S9', '2976', 'DURSEJ', 9), +('S9', '2977', 'DURSEJ', 9), +('S9', '2978', 'DURSEJ', 9), +('S9', '2979', 'DURSEJ', 9), +('S9', '2980', 'DURSEJ', 9), +('S9', '2981', 'DURSEJ', 9), +('S9', '2982', 'DURSEJ', 9), +('S9', '2983', 'DURSEJ', 9), +('S9', '2984', 'DURSEJ', 9), +('S9', '2985', 'DURSEJ', 9), +('S9', '2986', 'DURSEJ', 9), +('S9', '2987', 'DURSEJ', 9), +('S9', '2988', 'DURSEJ', 9), +('S9', '2989', 'DURSEJ', 9), +('S9', '2990', 'DURSEJ', 9), +('S9', '2991', 'DURSEJ', 9), +('S9', '2992', 'DURSEJ', 9), +('S9', '2993', 'DURSEJ', 9), +('S9', '2994', 'DURSEJ', 9), +('S9', '2995', 'DURSEJ', 9), +('S9', '2996', 'DURSEJ', 9), +('S9', '2997', 'DURSEJ', 9), +('S9', '2998', 'DURSEJ', 9), +('S9', '2999', 'DURSEJ', 9), +('S9', '3000', 'DURSEJ', 9), +('S9', '3001', 'DURSEJ', 9), +('S9', '3002', 'DURSEJ', 9), +('S9', '3003', 'DURSEJ', 9), +('S9', '3004', 'DURSEJ', 9), +('S9', '3005', 'DURSEJ', 9), +('S9', '3006', 'DURSEJ', 9), +('S9', '3007', 'DURSEJ', 9), +('S9', '3008', 'DURSEJ', 9), +('S9', '3009', 'DURSEJ', 9), +('S9', '3010', 'DURSEJ', 9), +('S9', '3011', 'DURSEJ', 9), +('S9', '3012', 'DURSEJ', 9), +('S9', '3013', 'DURSEJ', 9), +('S9', '3014', 'DURSEJ', 9), +('S9', '3015', 'DURSEJ', 9), +('S9', '3016', 'DURSEJ', 9), +('S9', '3017', 'DURSEJ', 9), +('S9', '3018', 'DURSEJ', 9), +('S9', '3019', 'DURSEJ', 9), +('S9', '3020', 'DURSEJ', 9), +('S9', '3021', 'DURSEJ', 9), +('S9', '3022', 'DURSEJ', 9), +('S9', '3023', 'DURSEJ', 9), +('S9', '3024', 'DURSEJ', 9), +('S9', '3025', 'DURSEJ', 9), +('S9', '3026', 'DURSEJ', 9), +('S9', '3027', 'DURSEJ', 9), +('S9', '3028', 'DURSEJ', 9), +('S9', '3029', 'DURSEJ', 9), +('S9', '3030', 'DURSEJ', 9), +('S9', '3031', 'DURSEJ', 9), +('S9', '3032', 'DURSEJ', 9), +('S9', '3033', 'DURSEJ', 9), +('S9', '3034', 'DURSEJ', 9), +('S9', '3035', 'DURSEJ', 9), +('S9', '3036', 'DURSEJ', 9), +('S9', '3037', 'DURSEJ', 9), +('S9', '3038', 'DURSEJ', 9), +('S9', '3039', 'DURSEJ', 9), +('S9', '3040', 'DURSEJ', 9), +('S9', '3041', 'DURSEJ', 9), +('S9', '3042', 'DURSEJ', 9), +('S9', '3043', 'DURSEJ', 9), +('S9', '3044', 'DURSEJ', 9), +('S9', '3045', 'DURSEJ', 9), +('S9', '3046', 'DURSEJ', 9), +('S9', '3047', 'DURSEJ', 9), +('S9', '3048', 'DURSEJ', 9), +('S9', '3049', 'DURSEJ', 9), +('S9', '3050', 'DURSEJ', 9), +('S9', '3051', 'DURSEJ', 9), +('S9', '3052', 'DURSEJ', 9), +('S9', '3053', 'DURSEJ', 9), +('S9', '3054', 'DURSEJ', 9), +('S9', '3055', 'DURSEJ', 9), +('S9', '3056', 'DURSEJ', 9), +('S9', '3057', 'DURSEJ', 9), +('S9', '3058', 'DURSEJ', 9), +('S9', '3059', 'DURSEJ', 9), +('S9', '3060', 'DURSEJ', 9), +('S9', '3061', 'DURSEJ', 9), +('S9', '3062', 'DURSEJ', 9), +('S9', '3063', 'DURSEJ', 9), +('S9', '3064', 'DURSEJ', 9), +('S9', '3065', 'DURSEJ', 9), +('S9', '3066', 'DURSEJ', 9), +('S9', '3067', 'DURSEJ', 9), +('S9', '3068', 'DURSEJ', 9), +('S9', '3069', 'DURSEJ', 9), +('S9', '3070', 'DURSEJ', 9), +('S9', '3071', 'DURSEJ', 9), +('S9', '3072', 'DURSEJ', 9), +('S9', '3073', 'DURSEJ', 9), +('S9', '3074', 'DURSEJ', 9), +('S9', '3075', 'DURSEJ', 9), +('S9', '3076', 'DURSEJ', 9), +('S9', '3077', 'DURSEJ', 9), +('S9', '3078', 'DURSEJ', 9), +('S9', '3079', 'DURSEJ', 9), +('S9', '3080', 'DURSEJ', 9), +('S9', '3081', 'DURSEJ', 9), +('S9', '3082', 'DURSEJ', 9), +('S9', '3083', 'DURSEJ', 9), +('S9', '3084', 'DURSEJ', 9), +('S9', '3085', 'DURSEJ', 9), +('S9', '3086', 'DURSEJ', 9), +('S9', '3087', 'DURSEJ', 9), +('S9', '3088', 'DURSEJ', 9), +('S9', '3089', 'DURSEJ', 9), +('S9', '3090', 'DURSEJ', 9), +('S9', '3091', 'DURSEJ', 9), +('S9', '3092', 'DURSEJ', 9), +('S9', '3093', 'DURSEJ', 9), +('S9', '3094', 'DURSEJ', 9), +('S9', '3095', 'DURSEJ', 9), +('S9', '3096', 'DURSEJ', 9), +('S9', '3097', 'DURSEJ', 9), +('S9', '3098', 'DURSEJ', 9), +('S9', '3099', 'DURSEJ', 9), +('S9', '3100', 'DURSEJ', 9), +('S9', '3101', 'DURSEJ', 9), +('S9', '3102', 'DURSEJ', 9), +('S9', '3103', 'DURSEJ', 9), +('S9', '3104', 'DURSEJ', 9), +('S9', '3105', 'DURSEJ', 9), +('S9', '3106', 'DURSEJ', 9), +('S9', '3107', 'DURSEJ', 9), +('S9', '3108', 'DURSEJ', 9), +('S9', '3109', 'DURSEJ', 9), +('S9', '3110', 'DURSEJ', 9), +('S9', '3111', 'DURSEJ', 9), +('S9', '3112', 'DURSEJ', 9), +('S9', '3113', 'DURSEJ', 9), +('S9', '3114', 'DURSEJ', 9), +('S9', '3115', 'DURSEJ', 9), +('S9', '3116', 'DURSEJ', 9), +('S9', '3117', 'DURSEJ', 9), +('S9', '3118', 'DURSEJ', 9), +('S9', '3119', 'DURSEJ', 9), +('S9', '3120', 'DURSEJ', 9), +('S9', '3121', 'DURSEJ', 9), +('S9', '3122', 'DURSEJ', 9), +('S9', '3123', 'DURSEJ', 9), +('S9', '3124', 'DURSEJ', 9), +('S9', '3125', 'DURSEJ', 9), +('S9', '3126', 'DURSEJ', 9), +('S9', '3127', 'DURSEJ', 9), +('S9', '3128', 'DURSEJ', 9), +('S9', '3129', 'DURSEJ', 9), +('S9', '3130', 'DURSEJ', 9), +('S9', '3131', 'DURSEJ', 9), +('S9', '3132', 'DURSEJ', 9), +('S9', '3133', 'DURSEJ', 9), +('S9', '3134', 'DURSEJ', 9), +('S9', '3135', 'DURSEJ', 9), +('S9', '3136', 'DURSEJ', 9), +('S9', '3137', 'DURSEJ', 9), +('S9', '3138', 'DURSEJ', 9), +('S9', '3139', 'DURSEJ', 9), +('S9', '3140', 'DURSEJ', 9), +('S9', '3141', 'DURSEJ', 9), +('S9', '3142', 'DURSEJ', 9), +('S9', '3143', 'DURSEJ', 9), +('S9', '3144', 'DURSEJ', 9), +('S9', '3145', 'DURSEJ', 9), +('S9', '3146', 'DURSEJ', 9), +('S9', '3147', 'DURSEJ', 9), +('S9', '3148', 'DURSEJ', 9), +('S9', '3149', 'DURSEJ', 9), +('S9', '3150', 'DURSEJ', 9), +('S9', '3151', 'DURSEJ', 9), +('S9', '3152', 'DURSEJ', 9), +('S9', '3153', 'DURSEJ', 9), +('S9', '3154', 'DURSEJ', 9), +('S9', '3155', 'DURSEJ', 9), +('S9', '3156', 'DURSEJ', 9), +('S9', '3157', 'DURSEJ', 9), +('S9', '3158', 'DURSEJ', 9), +('S9', '3159', 'DURSEJ', 9), +('S9', '3160', 'DURSEJ', 9), +('S9', '3161', 'DURSEJ', 9), +('S9', '3162', 'DURSEJ', 9), +('S9', '3163', 'DURSEJ', 9), +('S9', '3164', 'DURSEJ', 9), +('S9', '3165', 'DURSEJ', 9), +('S9', '3166', 'DURSEJ', 9), +('S9', '3167', 'DURSEJ', 9), +('S9', '3168', 'DURSEJ', 9), +('S9', '3169', 'DURSEJ', 9), +('S9', '3170', 'DURSEJ', 9), +('S9', '3171', 'DURSEJ', 9), +('S9', '3172', 'DURSEJ', 9), +('S9', '3173', 'DURSEJ', 9), +('S9', '3174', 'DURSEJ', 9), +('S9', '3175', 'DURSEJ', 9), +('S9', '3176', 'DURSEJ', 9), +('S9', '3177', 'DURSEJ', 9), +('S9', '3178', 'DURSEJ', 9), +('S9', '3179', 'DURSEJ', 9), +('S9', '3180', 'DURSEJ', 9), +('S9', '3181', 'DURSEJ', 9), +('S9', '3182', 'DURSEJ', 9), +('S9', '3183', 'DURSEJ', 9), +('S9', '3184', 'DURSEJ', 9), +('S9', '3185', 'DURSEJ', 9), +('S9', '3186', 'DURSEJ', 9), +('S9', '3187', 'DURSEJ', 9), +('S9', '3188', 'DURSEJ', 9), +('S9', '3189', 'DURSEJ', 9), +('S9', '3190', 'DURSEJ', 9), +('S9', '3191', 'DURSEJ', 9), +('S9', '3192', 'DURSEJ', 9), +('S9', '3193', 'DURSEJ', 9), +('S9', '3194', 'DURSEJ', 9), +('S9', '3195', 'DURSEJ', 9), +('S9', '3196', 'DURSEJ', 9), +('S9', '3197', 'DURSEJ', 9), +('S9', '3198', 'DURSEJ', 9), +('S9', '3199', 'DURSEJ', 9), +('S9', '3200', 'DURSEJ', 9), +('S9', '3201', 'DURSEJ', 9), +('S9', '3202', 'DURSEJ', 9), +('S9', '3203', 'DURSEJ', 9), +('S9', '3204', 'DURSEJ', 9), +('S9', '3205', 'DURSEJ', 9), +('S9', '3206', 'DURSEJ', 9), +('S9', '3207', 'DURSEJ', 9), +('S9', '3208', 'DURSEJ', 9), +('S9', '3209', 'DURSEJ', 9), +('S9', '3210', 'DURSEJ', 9), +('S9', '3211', 'DURSEJ', 9), +('S9', '3212', 'DURSEJ', 9), +('S9', '3213', 'DURSEJ', 9), +('S9', '3214', 'DURSEJ', 9), +('S9', '3215', 'DURSEJ', 9), +('S9', '3216', 'DURSEJ', 9), +('S9', '3217', 'DURSEJ', 9), +('S9', '3218', 'DURSEJ', 9), +('S9', '3219', 'DURSEJ', 9), +('S9', '3220', 'DURSEJ', 9), +('S9', '3221', 'DURSEJ', 9), +('S9', '3222', 'DURSEJ', 9), +('S9', '3223', 'DURSEJ', 9), +('S9', '3224', 'DURSEJ', 9), +('S9', '3225', 'DURSEJ', 9), +('S9', '3226', 'DURSEJ', 9), +('S9', '3227', 'DURSEJ', 9), +('S9', '3228', 'DURSEJ', 9), +('S9', '3229', 'DURSEJ', 9), +('S9', '3230', 'DURSEJ', 9), +('S9', '3231', 'DURSEJ', 9), +('S9', '3232', 'DURSEJ', 9), +('S9', '3233', 'DURSEJ', 9), +('S9', '3234', 'DURSEJ', 9), +('S9', '3235', 'DURSEJ', 9), +('S9', '3236', 'DURSEJ', 9), +('S9', '3237', 'DURSEJ', 9), +('S9', '3238', 'DURSEJ', 9), +('S9', '3239', 'DURSEJ', 9), +('S9', '3240', 'DURSEJ', 9), +('S9', '3241', 'DURSEJ', 9), +('S9', '3242', 'DURSEJ', 9), +('S9', '3243', 'DURSEJ', 9), +('S9', '3244', 'DURSEJ', 9), +('S9', '3245', 'DURSEJ', 9), +('S9', '3246', 'DURSEJ', 9), +('S9', '3247', 'DURSEJ', 9), +('S9', '3248', 'DURSEJ', 9), +('S9', '3249', 'DURSEJ', 9), +('S9', '3250', 'DURSEJ', 9), +('S9', '3251', 'DURSEJ', 9), +('S9', '3252', 'DURSEJ', 9), +('S9', '3253', 'DURSEJ', 9), +('S9', '3254', 'DURSEJ', 9), +('S9', '3255', 'DURSEJ', 9), +('S9', '3256', 'DURSEJ', 9), +('S9', '3257', 'DURSEJ', 9), +('S9', '3258', 'DURSEJ', 9), +('S9', '3259', 'DURSEJ', 9), +('S9', '3260', 'DURSEJ', 9), +('S9', '3261', 'DURSEJ', 9), +('S9', '3262', 'DURSEJ', 9), +('S9', '3263', 'DURSEJ', 9), +('S9', '3264', 'DURSEJ', 9), +('S9', '3265', 'DURSEJ', 9), +('S9', '3266', 'DURSEJ', 9), +('S9', '3267', 'DURSEJ', 9), +('S9', '3268', 'DURSEJ', 9), +('S9', '3269', 'DURSEJ', 9), +('S9', '3270', 'DURSEJ', 9), +('S9', '3271', 'DURSEJ', 9), +('S9', '3272', 'DURSEJ', 9), +('S9', '3273', 'DURSEJ', 9), +('S9', '3274', 'DURSEJ', 9), +('S9', '3275', 'DURSEJ', 9), +('S9', '3276', 'DURSEJ', 9), +('S9', '3277', 'DURSEJ', 9), +('S9', '3278', 'DURSEJ', 9), +('S9', '3279', 'DURSEJ', 9), +('S9', '3280', 'DURSEJ', 9), +('S9', '3281', 'DURSEJ', 9), +('S9', '3282', 'DURSEJ', 9), +('S9', '3283', 'DURSEJ', 9), +('S9', '3284', 'DURSEJ', 9), +('S9', '3285', 'DURSEJ', 9), +('S9', '3286', 'DURSEJ', 9), +('S9', '3287', 'DURSEJ', 9), +('S9', '3288', 'DURSEJ', 9), +('S9', '3289', 'DURSEJ', 9), +('S9', '3290', 'DURSEJ', 9), +('S9', '3291', 'DURSEJ', 9), +('S9', '3292', 'DURSEJ', 9), +('S9', '3293', 'DURSEJ', 9), +('S9', '3294', 'DURSEJ', 9), +('S9', '3295', 'DURSEJ', 9), +('S9', '3296', 'DURSEJ', 9), +('S9', '3297', 'DURSEJ', 9), +('S9', '3298', 'DURSEJ', 9), +('S9', '3299', 'DURSEJ', 9), +('S9', '3300', 'DURSEJ', 9), +('S9', '3301', 'DURSEJ', 9), +('S9', '3302', 'DURSEJ', 9), +('S9', '3303', 'DURSEJ', 9), +('S9', '3304', 'DURSEJ', 9), +('S9', '3305', 'DURSEJ', 9), +('S9', '3306', 'DURSEJ', 9), +('S9', '3307', 'DURSEJ', 9), +('S9', '3308', 'DURSEJ', 9), +('S9', '3309', 'DURSEJ', 9), +('S9', '3310', 'DURSEJ', 9), +('S9', '3311', 'DURSEJ', 9), +('S9', '3312', 'DURSEJ', 9), +('S9', '3313', 'DURSEJ', 9), +('S9', '3314', 'DURSEJ', 9), +('S9', '3315', 'DURSEJ', 9), +('S9', '3316', 'DURSEJ', 9), +('S9', '3317', 'DURSEJ', 9), +('S9', '3318', 'DURSEJ', 9), +('S9', '3319', 'DURSEJ', 9), +('S9', '3320', 'DURSEJ', 9), +('S9', '3321', 'DURSEJ', 9), +('S9', '3322', 'DURSEJ', 9), +('S9', '3323', 'DURSEJ', 9), +('S9', '3324', 'DURSEJ', 9), +('S9', '3325', 'DURSEJ', 9), +('S9', '3326', 'DURSEJ', 9), +('S9', '3327', 'DURSEJ', 9), +('S9', '3328', 'DURSEJ', 9), +('S9', '3329', 'DURSEJ', 9), +('S9', '3330', 'DURSEJ', 9), +('S9', '3331', 'DURSEJ', 9), +('S9', '3332', 'DURSEJ', 9), +('S9', '3333', 'DURSEJ', 9), +('S9', '3334', 'DURSEJ', 9), +('S9', '3335', 'DURSEJ', 9), +('S9', '3336', 'DURSEJ', 9), +('S9', '3337', 'DURSEJ', 9), +('S9', '3338', 'DURSEJ', 9), +('S9', '3339', 'DURSEJ', 9), +('S9', '3340', 'DURSEJ', 9), +('S9', '3341', 'DURSEJ', 9), +('S9', '3342', 'DURSEJ', 9), +('S9', '3343', 'DURSEJ', 9), +('S9', '3344', 'DURSEJ', 9), +('S9', '3345', 'DURSEJ', 9), +('S9', '3346', 'DURSEJ', 9), +('S9', '3347', 'DURSEJ', 9), +('S9', '3348', 'DURSEJ', 9), +('S9', '3349', 'DURSEJ', 9), +('S9', '3350', 'DURSEJ', 9), +('S9', '3351', 'DURSEJ', 9), +('S9', '3352', 'DURSEJ', 9), +('S9', '3353', 'DURSEJ', 9), +('S9', '3354', 'DURSEJ', 9), +('S9', '3355', 'DURSEJ', 9), +('S9', '3356', 'DURSEJ', 9), +('S9', '3357', 'DURSEJ', 9), +('S9', '3358', 'DURSEJ', 9), +('S9', '3359', 'DURSEJ', 9), +('S9', '3360', 'DURSEJ', 9), +('S9', '3361', 'DURSEJ', 9), +('S9', '3362', 'DURSEJ', 9), +('S9', '3363', 'DURSEJ', 9), +('S9', '3364', 'DURSEJ', 9), +('S9', '3365', 'DURSEJ', 9), +('S9', '3366', 'DURSEJ', 9), +('S9', '3367', 'DURSEJ', 9), +('S9', '3368', 'DURSEJ', 9), +('S9', '3369', 'DURSEJ', 9), +('S9', '3370', 'DURSEJ', 9), +('S9', '3371', 'DURSEJ', 9), +('S9', '3372', 'DURSEJ', 9), +('S9', '3373', 'DURSEJ', 9), +('S9', '3374', 'DURSEJ', 9), +('S9', '3375', 'DURSEJ', 9), +('S9', '3376', 'DURSEJ', 9), +('S9', '3377', 'DURSEJ', 9), +('S9', '3378', 'DURSEJ', 9), +('S9', '3379', 'DURSEJ', 9), +('S9', '3380', 'DURSEJ', 9), +('S9', '3381', 'DURSEJ', 9), +('S9', '3382', 'DURSEJ', 9), +('S9', '3383', 'DURSEJ', 9), +('S9', '3384', 'DURSEJ', 9), +('S9', '3385', 'DURSEJ', 9), +('S9', '3386', 'DURSEJ', 9), +('S9', '3387', 'DURSEJ', 9), +('S9', '3388', 'DURSEJ', 9), +('S9', '3389', 'DURSEJ', 9), +('S9', '3390', 'DURSEJ', 9), +('S9', '3391', 'DURSEJ', 9), +('S9', '3392', 'DURSEJ', 9), +('S9', '3393', 'DURSEJ', 9), +('S9', '3394', 'DURSEJ', 9), +('S9', '3395', 'DURSEJ', 9), +('S9', '3396', 'DURSEJ', 9), +('S9', '3397', 'DURSEJ', 9), +('S9', '3398', 'DURSEJ', 9), +('S9', '3399', 'DURSEJ', 9), +('S9', '3400', 'DURSEJ', 9), +('S9', '3401', 'DURSEJ', 9), +('S9', '3402', 'DURSEJ', 9), +('S9', '3403', 'DURSEJ', 9), +('S9', '3404', 'DURSEJ', 9), +('S9', '3405', 'DURSEJ', 9), +('S9', '3406', 'DURSEJ', 9), +('S9', '3407', 'DURSEJ', 9), +('S9', '3408', 'DURSEJ', 9), +('S9', '3409', 'DURSEJ', 9), +('S9', '3410', 'DURSEJ', 9), +('S9', '3411', 'DURSEJ', 9), +('S9', '3412', 'DURSEJ', 9), +('S9', '3413', 'DURSEJ', 9), +('S9', '3414', 'DURSEJ', 9), +('S9', '3415', 'DURSEJ', 9), +('S9', '3416', 'DURSEJ', 9), +('S9', '3417', 'DURSEJ', 9), +('S9', '3418', 'DURSEJ', 9), +('S9', '3419', 'DURSEJ', 9), +('S9', '3420', 'DURSEJ', 9), +('S9', '3421', 'DURSEJ', 9), +('S9', '3422', 'DURSEJ', 9), +('S9', '3423', 'DURSEJ', 9), +('S9', '3424', 'DURSEJ', 9), +('S9', '3425', 'DURSEJ', 9), +('S9', '3426', 'DURSEJ', 9), +('S9', '3427', 'DURSEJ', 9), +('S9', '3428', 'DURSEJ', 9), +('S9', '3429', 'DURSEJ', 9), +('S9', '3430', 'DURSEJ', 9), +('S9', '3431', 'DURSEJ', 9), +('S9', '3432', 'DURSEJ', 9), +('S9', '3433', 'DURSEJ', 9), +('S9', '3434', 'DURSEJ', 9), +('S9', '3435', 'DURSEJ', 9), +('S9', '3436', 'DURSEJ', 9), +('S9', '3437', 'DURSEJ', 9), +('S9', '3438', 'DURSEJ', 9), +('S9', '3439', 'DURSEJ', 9), +('S9', '3440', 'DURSEJ', 9), +('S9', '3441', 'DURSEJ', 9), +('S9', '3442', 'DURSEJ', 9), +('S9', '3443', 'DURSEJ', 9), +('S9', '3444', 'DURSEJ', 9), +('S9', '3445', 'DURSEJ', 9), +('S9', '3446', 'DURSEJ', 9), +('S9', '3447', 'DURSEJ', 9), +('S9', '3448', 'DURSEJ', 9), +('S9', '3449', 'DURSEJ', 9), +('S9', '3450', 'DURSEJ', 9), +('S9', '3451', 'DURSEJ', 9), +('S9', '3452', 'DURSEJ', 9), +('S9', '3453', 'DURSEJ', 9), +('S9', '3454', 'DURSEJ', 9), +('S9', '3455', 'DURSEJ', 9), +('S9', '3456', 'DURSEJ', 9), +('S9', '3457', 'DURSEJ', 9), +('S9', '3458', 'DURSEJ', 9), +('S9', '3459', 'DURSEJ', 9), +('S9', '3460', 'DURSEJ', 9), +('S9', '3461', 'DURSEJ', 9), +('S9', '3462', 'DURSEJ', 9), +('S9', '3463', 'DURSEJ', 9), +('S9', '3464', 'DURSEJ', 9), +('S9', '3465', 'DURSEJ', 9), +('S9', '3466', 'DURSEJ', 9), +('S9', '3467', 'DURSEJ', 9), +('S9', '3468', 'DURSEJ', 9), +('S9', '3469', 'DURSEJ', 9), +('S9', '3470', 'DURSEJ', 9), +('S9', '3471', 'DURSEJ', 9), +('S9', '3472', 'DURSEJ', 9), +('S9', '3473', 'DURSEJ', 9), +('S9', '3474', 'DURSEJ', 9), +('S9', '3475', 'DURSEJ', 9), +('S9', '3476', 'DURSEJ', 9), +('S9', '3477', 'DURSEJ', 9), +('S9', '3478', 'DURSEJ', 9), +('S9', '3479', 'DURSEJ', 9), +('S9', '3480', 'DURSEJ', 9), +('S9', '3481', 'DURSEJ', 9), +('S9', '3482', 'DURSEJ', 9), +('S9', '3483', 'DURSEJ', 9), +('S9', '3484', 'DURSEJ', 9), +('S9', '3485', 'DURSEJ', 9), +('S9', '3486', 'DURSEJ', 9), +('S9', '3487', 'DURSEJ', 9), +('S9', '3488', 'DURSEJ', 9), +('S9', '3489', 'DURSEJ', 9), +('S9', '3490', 'DURSEJ', 9), +('S9', '3491', 'DURSEJ', 9), +('S9', '3492', 'DURSEJ', 9), +('S9', '3493', 'DURSEJ', 9), +('S9', '3494', 'DURSEJ', 9), +('S9', '3495', 'DURSEJ', 9), +('S9', '3496', 'DURSEJ', 9), +('S9', '3497', 'DURSEJ', 9), +('S9', '3498', 'DURSEJ', 9), +('S9', '3499', 'DURSEJ', 9), +('S9', '3500', 'DURSEJ', 9), +('S9', '3501', 'DURSEJ', 9), +('S9', '3502', 'DURSEJ', 9), +('S9', '3503', 'DURSEJ', 9), +('S9', '3504', 'DURSEJ', 9), +('S9', '3505', 'DURSEJ', 9), +('S9', '3506', 'DURSEJ', 9), +('S9', '3507', 'DURSEJ', 9), +('S9', '3508', 'DURSEJ', 9), +('S9', '3509', 'DURSEJ', 9), +('S9', '3510', 'DURSEJ', 9), +('S9', '3511', 'DURSEJ', 9), +('S9', '3512', 'DURSEJ', 9), +('S9', '3513', 'DURSEJ', 9), +('S9', '3514', 'DURSEJ', 9), +('S9', '3515', 'DURSEJ', 9), +('S9', '3516', 'DURSEJ', 9), +('S9', '3517', 'DURSEJ', 9), +('S9', '3518', 'DURSEJ', 9), +('S9', '3519', 'DURSEJ', 9), +('S9', '3520', 'DURSEJ', 9), +('S9', '3521', 'DURSEJ', 9), +('S9', '3522', 'DURSEJ', 9), +('S9', '3523', 'DURSEJ', 9), +('S9', '3524', 'DURSEJ', 9), +('S9', '3525', 'DURSEJ', 9), +('S9', '3526', 'DURSEJ', 9), +('S9', '3527', 'DURSEJ', 9), +('S9', '3528', 'DURSEJ', 9), +('S9', '3529', 'DURSEJ', 9), +('S9', '3530', 'DURSEJ', 9), +('S9', '3531', 'DURSEJ', 9), +('S9', '3532', 'DURSEJ', 9), +('S9', '3533', 'DURSEJ', 9), +('S9', '3534', 'DURSEJ', 9), +('S9', '3535', 'DURSEJ', 9), +('S9', '3536', 'DURSEJ', 9), +('S9', '3537', 'DURSEJ', 9), +('S9', '3538', 'DURSEJ', 9), +('S9', '3539', 'DURSEJ', 9), +('S9', '3540', 'DURSEJ', 9), +('S9', '3541', 'DURSEJ', 9), +('S9', '3542', 'DURSEJ', 9), +('S9', '3543', 'DURSEJ', 9), +('S9', '3544', 'DURSEJ', 9), +('S9', '3545', 'DURSEJ', 9), +('S9', '3546', 'DURSEJ', 9), +('S9', '3547', 'DURSEJ', 9), +('S9', '3548', 'DURSEJ', 9), +('S9', '3549', 'DURSEJ', 9), +('S9', '3550', 'DURSEJ', 9), +('S9', '3551', 'DURSEJ', 9), +('S9', '3552', 'DURSEJ', 9), +('S9', '3553', 'DURSEJ', 9), +('S9', '3554', 'DURSEJ', 9), +('S9', '3555', 'DURSEJ', 9), +('S9', '3556', 'DURSEJ', 9), +('S9', '3557', 'DURSEJ', 9), +('S9', '3558', 'DURSEJ', 9), +('S9', '3559', 'DURSEJ', 9), +('S9', '3560', 'DURSEJ', 9), +('S9', '3561', 'DURSEJ', 9), +('S9', '3562', 'DURSEJ', 9), +('S9', '3563', 'DURSEJ', 9), +('S9', '3564', 'DURSEJ', 9), +('S9', '3565', 'DURSEJ', 9), +('S9', '3566', 'DURSEJ', 9), +('S9', '3567', 'DURSEJ', 9), +('S9', '3568', 'DURSEJ', 9), +('S9', '3569', 'DURSEJ', 9), +('S9', '3570', 'DURSEJ', 9), +('S9', '3571', 'DURSEJ', 9), +('S9', '3572', 'DURSEJ', 9), +('S9', '3573', 'DURSEJ', 9), +('S9', '3574', 'DURSEJ', 9), +('S9', '3575', 'DURSEJ', 9), +('S9', '3576', 'DURSEJ', 9), +('S9', '3577', 'DURSEJ', 9), +('S9', '3578', 'DURSEJ', 9), +('S9', '3579', 'DURSEJ', 9), +('S9', '3580', 'DURSEJ', 9), +('S9', '3581', 'DURSEJ', 9), +('S9', '3582', 'DURSEJ', 9), +('S9', '3583', 'DURSEJ', 9), +('S9', '3584', 'DURSEJ', 9), +('S9', '3585', 'DURSEJ', 9), +('S9', '3586', 'DURSEJ', 9), +('S9', '3587', 'DURSEJ', 9), +('S9', '3588', 'DURSEJ', 9), +('S9', '3589', 'DURSEJ', 9), +('S9', '3590', 'DURSEJ', 9), +('S9', '3591', 'DURSEJ', 9), +('S9', '3592', 'DURSEJ', 9), +('S9', '3593', 'DURSEJ', 9), +('S9', '3594', 'DURSEJ', 9), +('S9', '3595', 'DURSEJ', 9), +('S9', '3596', 'DURSEJ', 9), +('S9', '3597', 'DURSEJ', 9), +('S9', '3598', 'DURSEJ', 9), +('S9', '3599', 'DURSEJ', 9), +('S9', '3600', 'DURSEJ', 9), +('S9', '3601', 'DURSEJ', 9), +('S9', '3602', 'DURSEJ', 9), +('S9', '3603', 'DURSEJ', 9), +('S9', '3604', 'DURSEJ', 9), +('S9', '3605', 'DURSEJ', 9), +('S9', '3606', 'DURSEJ', 9), +('S9', '3607', 'DURSEJ', 9), +('S9', '3608', 'DURSEJ', 9), +('S9', '3609', 'DURSEJ', 9), +('S9', '3610', 'DURSEJ', 9), +('S9', '3611', 'DURSEJ', 9), +('S9', '3612', 'DURSEJ', 9), +('S9', '3613', 'DURSEJ', 9), +('S9', '3614', 'DURSEJ', 9), +('S9', '3615', 'DURSEJ', 9), +('S9', '3616', 'DURSEJ', 9), +('S9', '3617', 'DURSEJ', 9), +('S9', '3618', 'DURSEJ', 9), +('S9', '3619', 'DURSEJ', 9), +('S9', '3620', 'DURSEJ', 9), +('S9', '3621', 'DURSEJ', 9), +('S9', '3622', 'DURSEJ', 9), +('S9', '3623', 'DURSEJ', 9), +('S9', '3624', 'DURSEJ', 9), +('S9', '3625', 'DURSEJ', 9), +('S9', '3626', 'DURSEJ', 9), +('S9', '3627', 'DURSEJ', 9), +('S9', '3628', 'DURSEJ', 9), +('S9', '3629', 'DURSEJ', 9), +('S9', '3630', 'DURSEJ', 9), +('S9', '3631', 'DURSEJ', 9), +('S9', '3632', 'DURSEJ', 9), +('S9', '3633', 'DURSEJ', 9), +('S9', '3634', 'DURSEJ', 9), +('S9', '3635', 'DURSEJ', 9), +('S9', '3636', 'DURSEJ', 9), +('S9', '3637', 'DURSEJ', 9), +('S9', '3638', 'DURSEJ', 9), +('S9', '3639', 'DURSEJ', 9), +('S9', '3640', 'DURSEJ', 9), +('S9', '3641', 'DURSEJ', 9), +('S9', '3642', 'DURSEJ', 9), +('S9', '3643', 'DURSEJ', 9), +('S9', '3644', 'DURSEJ', 9), +('S9', '3645', 'DURSEJ', 9), +('S9', '3646', 'DURSEJ', 9), +('S9', '3647', 'DURSEJ', 9), +('S9', '3648', 'DURSEJ', 9), +('S9', '3649', 'DURSEJ', 9), +('S9', '3650', 'DURSEJ', 9), +('S9', '3651', 'DURSEJ', 9), +('S9', '3652', 'DURSEJ', 9), +('S9', '3653', 'DURSEJ', 9), +('S9', '3654', 'DURSEJ', 9), +('S9', '3655', 'DURSEJ', 9), +('S9', '3656', 'DURSEJ', 9), +('S9', '3657', 'DURSEJ', 9), +('S9', '3658', 'DURSEJ', 9), +('S9', '3659', 'DURSEJ', 9), +('S9', '3660', 'DURSEJ', 9), +('S9', '3661', 'DURSEJ', 9), +('S9', '3662', 'DURSEJ', 9), +('S9', '3663', 'DURSEJ', 9), +('S9', '3664', 'DURSEJ', 9), +('S9', '3665', 'DURSEJ', 9), +('S9', '3666', 'DURSEJ', 9), +('S9', '3667', 'DURSEJ', 9), +('S9', '3668', 'DURSEJ', 9), +('S9', '3669', 'DURSEJ', 9), +('S9', '3670', 'DURSEJ', 9), +('S9', '3671', 'DURSEJ', 9), +('S9', '3672', 'DURSEJ', 9), +('S9', '3673', 'DURSEJ', 9), +('S9', '3674', 'DURSEJ', 9), +('S9', '3675', 'DURSEJ', 9), +('S9', '3676', 'DURSEJ', 9), +('S9', '3677', 'DURSEJ', 9), +('S9', '3678', 'DURSEJ', 9), +('S9', '3679', 'DURSEJ', 9), +('S9', '3680', 'DURSEJ', 9), +('S9', '3681', 'DURSEJ', 9), +('S9', '3682', 'DURSEJ', 9), +('S9', '3683', 'DURSEJ', 9), +('S9', '3684', 'DURSEJ', 9), +('S9', '3685', 'DURSEJ', 9), +('S9', '3686', 'DURSEJ', 9), +('S9', '3687', 'DURSEJ', 9), +('S9', '3688', 'DURSEJ', 9), +('S9', '3689', 'DURSEJ', 9), +('S9', '3690', 'DURSEJ', 9), +('S9', '3691', 'DURSEJ', 9), +('S9', '3692', 'DURSEJ', 9), +('S9', '3693', 'DURSEJ', 9), +('S9', '3694', 'DURSEJ', 9), +('S9', '3695', 'DURSEJ', 9), +('S9', '3696', 'DURSEJ', 9), +('S9', '3697', 'DURSEJ', 9), +('S9', '3698', 'DURSEJ', 9), +('S9', '3699', 'DURSEJ', 9), +('S9', '3700', 'DURSEJ', 9), +('S9', '3701', 'DURSEJ', 9), +('S9', '3702', 'DURSEJ', 9), +('S9', '3703', 'DURSEJ', 9), +('S9', '3704', 'DURSEJ', 9), +('S9', '3705', 'DURSEJ', 9), +('S9', '3706', 'DURSEJ', 9), +('S9', '3707', 'DURSEJ', 9), +('S9', '3708', 'DURSEJ', 9), +('S9', '3709', 'DURSEJ', 9), +('S9', '3710', 'DURSEJ', 9), +('S9', '3711', 'DURSEJ', 9), +('S9', '3712', 'DURSEJ', 9), +('S9', '3713', 'DURSEJ', 9), +('S9', '3714', 'DURSEJ', 9), +('S9', '3715', 'DURSEJ', 9), +('S9', '3716', 'DURSEJ', 9), +('S9', '3717', 'DURSEJ', 9), +('S9', '3718', 'DURSEJ', 9), +('S9', '3719', 'DURSEJ', 9), +('S9', '3720', 'DURSEJ', 9), +('S9', '3721', 'DURSEJ', 9), +('S9', '3722', 'DURSEJ', 9), +('S9', '3723', 'DURSEJ', 9), +('S9', '3724', 'DURSEJ', 9), +('S9', '3725', 'DURSEJ', 9), +('S9', '3726', 'DURSEJ', 9), +('S9', '3727', 'DURSEJ', 9), +('S9', '3728', 'DURSEJ', 9), +('S9', '3729', 'DURSEJ', 9), +('S9', '3730', 'DURSEJ', 9), +('S9', '3731', 'DURSEJ', 9), +('S9', '3732', 'DURSEJ', 9), +('S9', '3733', 'DURSEJ', 9), +('S9', '3734', 'DURSEJ', 9), +('S9', '3735', 'DURSEJ', 9), +('S9', '3736', 'DURSEJ', 9), +('S9', '3737', 'DURSEJ', 9), +('S9', '3738', 'DURSEJ', 9), +('S9', '3739', 'DURSEJ', 9), +('S9', '3740', 'DURSEJ', 9), +('S9', '3741', 'DURSEJ', 9), +('S9', '3742', 'DURSEJ', 9), +('S9', '3743', 'DURSEJ', 9), +('S9', '3744', 'DURSEJ', 9), +('S9', '3745', 'DURSEJ', 9), +('S9', '3746', 'DURSEJ', 9), +('S9', '3747', 'DURSEJ', 9), +('S9', '3748', 'DURSEJ', 9), +('S9', '3749', 'DURSEJ', 9), +('S9', '3750', 'DURSEJ', 9), +('S9', '3751', 'DURSEJ', 9), +('S9', '3752', 'DURSEJ', 9), +('S9', '3753', 'DURSEJ', 9), +('S9', '3754', 'DURSEJ', 9), +('S9', '3755', 'DURSEJ', 9), +('S9', '3756', 'DURSEJ', 9), +('S9', '3757', 'DURSEJ', 9), +('S9', '3758', 'DURSEJ', 9), +('S9', '3759', 'DURSEJ', 9), +('S9', '3760', 'DURSEJ', 9), +('S9', '3761', 'DURSEJ', 9), +('S9', '3762', 'DURSEJ', 9), +('S9', '3763', 'DURSEJ', 9), +('S9', '3764', 'DURSEJ', 9), +('S9', '3765', 'DURSEJ', 9), +('S9', '3766', 'DURSEJ', 9), +('S9', '3767', 'DURSEJ', 9), +('S9', '3768', 'DURSEJ', 9), +('S9', '3769', 'DURSEJ', 9), +('S9', '3770', 'DURSEJ', 9), +('S9', '3771', 'DURSEJ', 9), +('S9', '3772', 'DURSEJ', 9), +('S9', '3773', 'DURSEJ', 9), +('S9', '3774', 'DURSEJ', 9), +('S9', '3775', 'DURSEJ', 9), +('S9', '3776', 'DURSEJ', 9), +('S9', '3777', 'DURSEJ', 9), +('S9', '3778', 'DURSEJ', 9), +('S9', '3779', 'DURSEJ', 9), +('S9', '3780', 'DURSEJ', 9), +('S9', '3781', 'DURSEJ', 9), +('S9', '3782', 'DURSEJ', 9), +('S9', '3783', 'DURSEJ', 9), +('S9', '3784', 'DURSEJ', 9), +('S9', '3785', 'DURSEJ', 9), +('S9', '3786', 'DURSEJ', 9), +('S9', '3787', 'DURSEJ', 9), +('S9', '3788', 'DURSEJ', 9), +('S9', '3789', 'DURSEJ', 9), +('S9', '3790', 'DURSEJ', 9), +('S9', '3791', 'DURSEJ', 9), +('S9', '3792', 'DURSEJ', 9), +('S9', '3793', 'DURSEJ', 9), +('S9', '3794', 'DURSEJ', 9), +('S9', '3795', 'DURSEJ', 9), +('S9', '3796', 'DURSEJ', 9), +('S9', '3797', 'DURSEJ', 9), +('S9', '3798', 'DURSEJ', 9), +('S9', '3799', 'DURSEJ', 9), +('S9', '3800', 'DURSEJ', 9), +('S9', '3801', 'DURSEJ', 9), +('S9', '3802', 'DURSEJ', 9), +('S9', '3803', 'DURSEJ', 9), +('S9', '3804', 'DURSEJ', 9), +('S9', '3805', 'DURSEJ', 9), +('S9', '3806', 'DURSEJ', 9), +('S9', '3807', 'DURSEJ', 9), +('S9', '3808', 'DURSEJ', 9), +('S9', '3809', 'DURSEJ', 9), +('S9', '3810', 'DURSEJ', 9), +('S9', '3811', 'DURSEJ', 9), +('S9', '3812', 'DURSEJ', 9), +('S9', '3813', 'DURSEJ', 9), +('S9', '3814', 'DURSEJ', 9), +('S9', '3815', 'DURSEJ', 9), +('S9', '3816', 'DURSEJ', 9), +('S9', '3817', 'DURSEJ', 9), +('S9', '3818', 'DURSEJ', 9), +('S9', '3819', 'DURSEJ', 9), +('S9', '3820', 'DURSEJ', 9), +('S9', '3821', 'DURSEJ', 9), +('S9', '3822', 'DURSEJ', 9), +('S9', '3823', 'DURSEJ', 9), +('S9', '3824', 'DURSEJ', 9), +('S9', '3825', 'DURSEJ', 9), +('S9', '3826', 'DURSEJ', 9), +('S9', '3827', 'DURSEJ', 9), +('S9', '3828', 'DURSEJ', 9), +('S9', '3829', 'DURSEJ', 9), +('S9', '3830', 'DURSEJ', 9), +('S9', '3831', 'DURSEJ', 9), +('S9', '3832', 'DURSEJ', 9), +('S9', '3833', 'DURSEJ', 9), +('S9', '3834', 'DURSEJ', 9), +('S9', '3835', 'DURSEJ', 9), +('S9', '3836', 'DURSEJ', 9), +('S9', '3837', 'DURSEJ', 9), +('S9', '3838', 'DURSEJ', 9), +('S9', '3839', 'DURSEJ', 9), +('S9', '3840', 'DURSEJ', 9), +('S9', '3841', 'DURSEJ', 9), +('S9', '3842', 'DURSEJ', 9), +('S9', '3843', 'DURSEJ', 9), +('S9', '3844', 'DURSEJ', 9), +('S9', '3845', 'DURSEJ', 9), +('S9', '3846', 'DURSEJ', 9), +('S9', '3847', 'DURSEJ', 9), +('S9', '3848', 'DURSEJ', 9), +('S9', '3849', 'DURSEJ', 9), +('S9', '3850', 'DURSEJ', 9), +('S9', '3851', 'DURSEJ', 9), +('S9', '3852', 'DURSEJ', 9), +('S9', '3853', 'DURSEJ', 9), +('S9', '3854', 'DURSEJ', 9), +('S9', '3855', 'DURSEJ', 9), +('S9', '3856', 'DURSEJ', 9), +('S9', '3857', 'DURSEJ', 9), +('S9', '3858', 'DURSEJ', 9), +('S9', '3859', 'DURSEJ', 9), +('S9', '3860', 'DURSEJ', 9), +('S9', '3861', 'DURSEJ', 9), +('S9', '3862', 'DURSEJ', 9), +('S9', '3863', 'DURSEJ', 9), +('S9', '3864', 'DURSEJ', 9), +('S9', '3865', 'DURSEJ', 9), +('S9', '3866', 'DURSEJ', 9), +('S9', '3867', 'DURSEJ', 9), +('S9', '3868', 'DURSEJ', 9), +('S9', '3869', 'DURSEJ', 9), +('S9', '3870', 'DURSEJ', 9), +('S9', '3871', 'DURSEJ', 9), +('S9', '3872', 'DURSEJ', 9), +('S9', '3873', 'DURSEJ', 9), +('S9', '3874', 'DURSEJ', 9), +('S9', '3875', 'DURSEJ', 9), +('S9', '3876', 'DURSEJ', 9), +('S9', '3877', 'DURSEJ', 9), +('S9', '3878', 'DURSEJ', 9), +('S9', '3879', 'DURSEJ', 9), +('S9', '3880', 'DURSEJ', 9), +('S9', '3881', 'DURSEJ', 9), +('S9', '3882', 'DURSEJ', 9), +('S9', '3883', 'DURSEJ', 9), +('S9', '3884', 'DURSEJ', 9), +('S9', '3885', 'DURSEJ', 9), +('S9', '3886', 'DURSEJ', 9), +('S9', '3887', 'DURSEJ', 9), +('S9', '3888', 'DURSEJ', 9), +('S9', '3889', 'DURSEJ', 9), +('S9', '3890', 'DURSEJ', 9), +('S9', '3891', 'DURSEJ', 9), +('S9', '3892', 'DURSEJ', 9), +('S9', '3893', 'DURSEJ', 9), +('S9', '3894', 'DURSEJ', 9), +('S9', '3895', 'DURSEJ', 9), +('S9', '3896', 'DURSEJ', 9), +('S9', '3897', 'DURSEJ', 9), +('S9', '3898', 'DURSEJ', 9), +('S9', '3899', 'DURSEJ', 9), +('S9', '3900', 'DURSEJ', 9), +('S9', '3901', 'DURSEJ', 9), +('S9', '3902', 'DURSEJ', 9), +('S9', '3903', 'DURSEJ', 9), +('S9', '3904', 'DURSEJ', 9), +('S9', '3905', 'DURSEJ', 9), +('S9', '3906', 'DURSEJ', 9), +('S9', '3907', 'DURSEJ', 9), +('S9', '3908', 'DURSEJ', 9), +('S9', '3909', 'DURSEJ', 9), +('S9', '3910', 'DURSEJ', 9), +('S9', '3911', 'DURSEJ', 9), +('S9', '3912', 'DURSEJ', 9), +('S9', '3913', 'DURSEJ', 9), +('S9', '3914', 'DURSEJ', 9), +('S9', '3915', 'DURSEJ', 9), +('S9', '3916', 'DURSEJ', 9), +('S9', '3917', 'DURSEJ', 9), +('S9', '3918', 'DURSEJ', 9), +('S9', '3919', 'DURSEJ', 9), +('S9', '3920', 'DURSEJ', 9), +('S9', '3921', 'DURSEJ', 9), +('S9', '3922', 'DURSEJ', 9), +('S9', '3923', 'DURSEJ', 9), +('S9', '3924', 'DURSEJ', 9), +('S9', '3925', 'DURSEJ', 9), +('S9', '3926', 'DURSEJ', 9), +('S9', '3927', 'DURSEJ', 9), +('S9', '3928', 'DURSEJ', 9), +('S9', '3929', 'DURSEJ', 9), +('S9', '3930', 'DURSEJ', 9), +('S9', '3931', 'DURSEJ', 9), +('S9', '3932', 'DURSEJ', 9), +('S9', '3933', 'DURSEJ', 9), +('S9', '3934', 'DURSEJ', 9), +('S9', '3935', 'DURSEJ', 9), +('S9', '3936', 'DURSEJ', 9), +('S9', '3937', 'DURSEJ', 9), +('S9', '3938', 'DURSEJ', 9), +('S9', '3939', 'DURSEJ', 9), +('S9', '3940', 'DURSEJ', 9), +('S9', '3941', 'DURSEJ', 9), +('S9', '3942', 'DURSEJ', 9), +('S9', '3943', 'DURSEJ', 9), +('S9', '3944', 'DURSEJ', 9), +('S9', '3945', 'DURSEJ', 9), +('S9', '3946', 'DURSEJ', 9), +('S9', '3947', 'DURSEJ', 9), +('S9', '3948', 'DURSEJ', 9), +('S9', '3949', 'DURSEJ', 9), +('S9', '3950', 'DURSEJ', 9), +('S9', '3951', 'DURSEJ', 9), +('S9', '3952', 'DURSEJ', 9), +('S9', '3953', 'DURSEJ', 9), +('S9', '3954', 'DURSEJ', 9), +('S9', '3955', 'DURSEJ', 9), +('S9', '3956', 'DURSEJ', 9), +('S9', '3957', 'DURSEJ', 9), +('S9', '3958', 'DURSEJ', 9), +('S9', '3959', 'DURSEJ', 9), +('S9', '3960', 'DURSEJ', 9), +('S9', '3961', 'DURSEJ', 9), +('S9', '3962', 'DURSEJ', 9), +('S9', '3963', 'DURSEJ', 9), +('S9', '3964', 'DURSEJ', 9), +('S9', '3965', 'DURSEJ', 9), +('S9', '3966', 'DURSEJ', 9), +('S9', '3967', 'DURSEJ', 9), +('S9', '3968', 'DURSEJ', 9), +('S9', '3969', 'DURSEJ', 9), +('S9', '3970', 'DURSEJ', 9), +('S9', '3971', 'DURSEJ', 9), +('S9', '3972', 'DURSEJ', 9), +('S9', '3973', 'DURSEJ', 9), +('S9', '3974', 'DURSEJ', 9), +('S9', '3975', 'DURSEJ', 9), +('S9', '3976', 'DURSEJ', 9), +('S9', '3977', 'DURSEJ', 9), +('S9', '3978', 'DURSEJ', 9), +('S9', '3979', 'DURSEJ', 9), +('S9', '3980', 'DURSEJ', 9), +('S9', '3981', 'DURSEJ', 9), +('S9', '3982', 'DURSEJ', 9), +('S9', '3983', 'DURSEJ', 9), +('S9', '3984', 'DURSEJ', 9), +('S9', '3985', 'DURSEJ', 9), +('S9', '3986', 'DURSEJ', 9), +('S9', '3987', 'DURSEJ', 9), +('S9', '3988', 'DURSEJ', 9), +('S9', '3989', 'DURSEJ', 9), +('S9', '3990', 'DURSEJ', 9), +('S9', '3991', 'DURSEJ', 9), +('S9', '3992', 'DURSEJ', 9), +('S9', '3993', 'DURSEJ', 9), +('S9', '3994', 'DURSEJ', 9), +('S9', '3995', 'DURSEJ', 9), +('S9', '3996', 'DURSEJ', 9), +('S9', '3997', 'DURSEJ', 9), +('S9', '3998', 'DURSEJ', 9), +('S9', '3999', 'DURSEJ', 9), +('S9', '4000', 'DURSEJ', 9), +('S9', '4001', 'DURSEJ', 9), +('S9', '4002', 'DURSEJ', 9), +('S9', '4003', 'DURSEJ', 9), +('S9', '4004', 'DURSEJ', 9), +('S9', '4005', 'DURSEJ', 9), +('S9', '4006', 'DURSEJ', 9), +('S9', '4007', 'DURSEJ', 9), +('S9', '4008', 'DURSEJ', 9), +('S9', '4009', 'DURSEJ', 9), +('S9', '4010', 'DURSEJ', 9), +('S9', '4011', 'DURSEJ', 9), +('S9', '4012', 'DURSEJ', 9), +('S9', '4013', 'DURSEJ', 9), +('S9', '4014', 'DURSEJ', 9), +('S9', '4015', 'DURSEJ', 9), +('S9', '4016', 'DURSEJ', 9), +('S9', '4017', 'DURSEJ', 9), +('S9', '4018', 'DURSEJ', 9), +('S9', '4019', 'DURSEJ', 9), +('S9', '4020', 'DURSEJ', 9), +('S9', '4021', 'DURSEJ', 9), +('S9', '4022', 'DURSEJ', 9), +('S9', '4023', 'DURSEJ', 9), +('S9', '4024', 'DURSEJ', 9), +('S9', '4025', 'DURSEJ', 9), +('S9', '4026', 'DURSEJ', 9), +('S9', '4027', 'DURSEJ', 9), +('S9', '4028', 'DURSEJ', 9), +('S9', '4029', 'DURSEJ', 9), +('S9', '4030', 'DURSEJ', 9), +('S9', '4031', 'DURSEJ', 9), +('S9', '4032', 'DURSEJ', 9), +('S9', '4033', 'DURSEJ', 9), +('S9', '4034', 'DURSEJ', 9), +('S9', '4035', 'DURSEJ', 9), +('S9', '4036', 'DURSEJ', 9), +('S9', '4037', 'DURSEJ', 9), +('S9', '4038', 'DURSEJ', 9), +('S9', '4039', 'DURSEJ', 9), +('S9', '4040', 'DURSEJ', 9), +('S9', '4041', 'DURSEJ', 9), +('S9', '4042', 'DURSEJ', 9), +('S9', '4043', 'DURSEJ', 9), +('S9', '4044', 'DURSEJ', 9), +('S9', '4045', 'DURSEJ', 9), +('S9', '4046', 'DURSEJ', 9), +('S9', '4047', 'DURSEJ', 9), +('S9', '4048', 'DURSEJ', 9), +('S9', '4049', 'DURSEJ', 9), +('S9', '4050', 'DURSEJ', 9), +('S9', '4051', 'DURSEJ', 9), +('S9', '4052', 'DURSEJ', 9), +('S9', '4053', 'DURSEJ', 9), +('S9', '4054', 'DURSEJ', 9), +('S9', '4055', 'DURSEJ', 9), +('S9', '4056', 'DURSEJ', 9), +('S9', '4057', 'DURSEJ', 9), +('S9', '4058', 'DURSEJ', 9), +('S9', '4059', 'DURSEJ', 9), +('S9', '4060', 'DURSEJ', 9), +('S9', '4061', 'DURSEJ', 9), +('S9', '4062', 'DURSEJ', 9), +('S9', '4063', 'DURSEJ', 9), +('S9', '4064', 'DURSEJ', 9), +('S9', '4065', 'DURSEJ', 9), +('S9', '4066', 'DURSEJ', 9), +('S9', '4067', 'DURSEJ', 9), +('S9', '4068', 'DURSEJ', 9), +('S9', '4069', 'DURSEJ', 9), +('S9', '4070', 'DURSEJ', 9), +('S9', '4071', 'DURSEJ', 9), +('S9', '4072', 'DURSEJ', 9), +('S9', '4073', 'DURSEJ', 9), +('S9', '4074', 'DURSEJ', 9), +('S9', '4075', 'DURSEJ', 9), +('S9', '4076', 'DURSEJ', 9), +('S9', '4077', 'DURSEJ', 9), +('S9', '4078', 'DURSEJ', 9), +('S9', '4079', 'DURSEJ', 9), +('S9', '4080', 'DURSEJ', 9), +('S9', '4081', 'DURSEJ', 9), +('S9', '4082', 'DURSEJ', 9), +('S9', '4083', 'DURSEJ', 9), +('S9', '4084', 'DURSEJ', 9), +('S9', '4085', 'DURSEJ', 9), +('S9', '4086', 'DURSEJ', 9), +('S9', '4087', 'DURSEJ', 9), +('S9', '4088', 'DURSEJ', 9), +('S9', '4089', 'DURSEJ', 9), +('S9', '4090', 'DURSEJ', 9), +('S9', '4091', 'DURSEJ', 9), +('S9', '4092', 'DURSEJ', 9), +('S9', '4093', 'DURSEJ', 9), +('S9', '4094', 'DURSEJ', 9), +('S9', '4095', 'DURSEJ', 9), +('S9', '4096', 'DURSEJ', 9), +('S9', '4097', 'DURSEJ', 9), +('S9', '4098', 'DURSEJ', 9), +('S9', '4099', 'DURSEJ', 9), +('S9', '4100', 'DURSEJ', 9), +('S9', '4101', 'DURSEJ', 9), +('S9', '4102', 'DURSEJ', 9), +('S9', '4103', 'DURSEJ', 9), +('S9', '4104', 'DURSEJ', 9), +('S9', '4105', 'DURSEJ', 9), +('S9', '4106', 'DURSEJ', 9), +('S9', '4107', 'DURSEJ', 9), +('S9', '4108', 'DURSEJ', 9), +('S9', '4109', 'DURSEJ', 9), +('S9', '4110', 'DURSEJ', 9), +('S9', '4111', 'DURSEJ', 9), +('S9', '4112', 'DURSEJ', 9), +('S9', '4113', 'DURSEJ', 9), +('S9', '4114', 'DURSEJ', 9), +('S9', '4115', 'DURSEJ', 9), +('S9', '4116', 'DURSEJ', 9), +('S9', '4117', 'DURSEJ', 9), +('S9', '4118', 'DURSEJ', 9), +('S9', '4119', 'DURSEJ', 9), +('S9', '4120', 'DURSEJ', 9), +('S9', '4121', 'DURSEJ', 9), +('S9', '4122', 'DURSEJ', 9), +('S9', '4123', 'DURSEJ', 9), +('S9', '4124', 'DURSEJ', 9), +('S9', '4125', 'DURSEJ', 9), +('S9', '4126', 'DURSEJ', 9), +('S9', '4127', 'DURSEJ', 9), +('S9', '4128', 'DURSEJ', 9), +('S9', '4129', 'DURSEJ', 9), +('S9', '4130', 'DURSEJ', 9), +('S9', '4131', 'DURSEJ', 9), +('S9', '4132', 'DURSEJ', 9), +('S9', '4133', 'DURSEJ', 9), +('S9', '4134', 'DURSEJ', 9), +('S9', '4135', 'DURSEJ', 9), +('S9', '4136', 'DURSEJ', 9), +('S9', '4137', 'DURSEJ', 9), +('S9', '4138', 'DURSEJ', 9), +('S9', '4139', 'DURSEJ', 9), +('S9', '4140', 'DURSEJ', 9), +('S9', '4141', 'DURSEJ', 9), +('S9', '4142', 'DURSEJ', 9), +('S9', '4143', 'DURSEJ', 9), +('S9', '4144', 'DURSEJ', 9), +('S9', '4145', 'DURSEJ', 9), +('S9', '4146', 'DURSEJ', 9), +('S9', '4147', 'DURSEJ', 9), +('S9', '4148', 'DURSEJ', 9), +('S9', '4149', 'DURSEJ', 9), +('S9', '4150', 'DURSEJ', 9), +('S9', '4151', 'DURSEJ', 9), +('S9', '4152', 'DURSEJ', 9), +('S9', '4153', 'DURSEJ', 9), +('S9', '4154', 'DURSEJ', 9), +('S9', '4155', 'DURSEJ', 9), +('S9', '4156', 'DURSEJ', 9), +('S9', '4157', 'DURSEJ', 9), +('S9', '4158', 'DURSEJ', 9), +('S9', '4159', 'DURSEJ', 9), +('S9', '4160', 'DURSEJ', 9), +('S9', '4161', 'DURSEJ', 9), +('S9', '4162', 'DURSEJ', 9), +('S9', '4163', 'DURSEJ', 9), +('S9', '4164', 'DURSEJ', 9), +('S9', '4165', 'DURSEJ', 9), +('S9', '4166', 'DURSEJ', 9), +('S9', '4167', 'DURSEJ', 9), +('S9', '4168', 'DURSEJ', 9), +('S9', '4169', 'DURSEJ', 9), +('S9', '4170', 'DURSEJ', 9), +('S9', '4171', 'DURSEJ', 9), +('S9', '4172', 'DURSEJ', 9), +('S9', '4173', 'DURSEJ', 9), +('S9', '4174', 'DURSEJ', 9), +('S9', '4175', 'DURSEJ', 9), +('S9', '4176', 'DURSEJ', 9), +('S9', '4177', 'DURSEJ', 9), +('S9', '4178', 'DURSEJ', 9), +('S9', '4179', 'DURSEJ', 9), +('S9', '4180', 'DURSEJ', 9), +('S9', '4181', 'DURSEJ', 9), +('S9', '4182', 'DURSEJ', 9), +('S9', '4183', 'DURSEJ', 9), +('S9', '4184', 'DURSEJ', 9), +('S9', '4185', 'DURSEJ', 9), +('S9', '4186', 'DURSEJ', 9), +('S9', '4187', 'DURSEJ', 9), +('S9', '4188', 'DURSEJ', 9), +('S9', '4189', 'DURSEJ', 9), +('S9', '4190', 'DURSEJ', 9), +('S9', '4191', 'DURSEJ', 9), +('S9', '4192', 'DURSEJ', 9), +('S9', '4193', 'DURSEJ', 9), +('S9', '4194', 'DURSEJ', 9), +('S9', '4195', 'DURSEJ', 9), +('S9', '4196', 'DURSEJ', 9), +('S9', '4197', 'DURSEJ', 9), +('S9', '4198', 'DURSEJ', 9), +('S9', '4199', 'DURSEJ', 9), +('S9', '4200', 'DURSEJ', 9), +('S9', '4201', 'DURSEJ', 9), +('S9', '4202', 'DURSEJ', 9), +('S9', '4203', 'DURSEJ', 9), +('S9', '4204', 'DURSEJ', 9), +('S9', '4205', 'DURSEJ', 9), +('S9', '4206', 'DURSEJ', 9), +('S9', '4207', 'DURSEJ', 9), +('S9', '4208', 'DURSEJ', 9), +('S9', '4209', 'DURSEJ', 9), +('S9', '4210', 'DURSEJ', 9), +('S9', '4211', 'DURSEJ', 9), +('S9', '4212', 'DURSEJ', 9), +('S9', '4213', 'DURSEJ', 9), +('S9', '4214', 'DURSEJ', 9), +('S9', '4215', 'DURSEJ', 9), +('S9', '4216', 'DURSEJ', 9), +('S9', '4217', 'DURSEJ', 9), +('S9', '4218', 'DURSEJ', 9), +('S9', '4219', 'DURSEJ', 9), +('S9', '4220', 'DURSEJ', 9), +('S9', '4221', 'DURSEJ', 9), +('S9', '4222', 'DURSEJ', 9), +('S9', '4223', 'DURSEJ', 9), +('S9', '4224', 'DURSEJ', 9), +('S9', '4225', 'DURSEJ', 9), +('S9', '4226', 'DURSEJ', 9), +('S9', '4227', 'DURSEJ', 9), +('S9', '4228', 'DURSEJ', 9), +('S9', '4229', 'DURSEJ', 9), +('S9', '4230', 'DURSEJ', 9), +('S9', '4231', 'DURSEJ', 9), +('S9', '4232', 'DURSEJ', 9), +('S9', '4233', 'DURSEJ', 9), +('S9', '4234', 'DURSEJ', 9), +('S9', '4235', 'DURSEJ', 9), +('S9', '4236', 'DURSEJ', 9), +('S9', '4237', 'DURSEJ', 9), +('S9', '4238', 'DURSEJ', 9), +('S9', '4239', 'DURSEJ', 9), +('S9', '4240', 'DURSEJ', 9), +('S9', '4241', 'DURSEJ', 9), +('S9', '4242', 'DURSEJ', 9), +('S9', '4243', 'DURSEJ', 9), +('S9', '4244', 'DURSEJ', 9), +('S9', '4245', 'DURSEJ', 9), +('S9', '4246', 'DURSEJ', 9), +('S9', '4247', 'DURSEJ', 9), +('S9', '4248', 'DURSEJ', 9), +('S9', '4249', 'DURSEJ', 9), +('S9', '4250', 'DURSEJ', 9), +('S9', '4251', 'DURSEJ', 9), +('S9', '4252', 'DURSEJ', 9), +('S9', '4253', 'DURSEJ', 9), +('S9', '4254', 'DURSEJ', 9), +('S9', '4255', 'DURSEJ', 9), +('S9', '4256', 'DURSEJ', 9), +('S9', '4257', 'DURSEJ', 9), +('S9', '4258', 'DURSEJ', 9), +('S9', '4259', 'DURSEJ', 9), +('S9', '4260', 'DURSEJ', 9), +('S9', '4261', 'DURSEJ', 9), +('S9', '4262', 'DURSEJ', 9), +('S9', '4263', 'DURSEJ', 9), +('S9', '4264', 'DURSEJ', 9), +('S9', '4265', 'DURSEJ', 9), +('S9', '4266', 'DURSEJ', 9), +('S9', '4267', 'DURSEJ', 9), +('S9', '4268', 'DURSEJ', 9), +('S9', '4269', 'DURSEJ', 9), +('S9', '4270', 'DURSEJ', 9), +('S9', '4271', 'DURSEJ', 9), +('S9', '4272', 'DURSEJ', 9), +('S9', '4273', 'DURSEJ', 9), +('S9', '4274', 'DURSEJ', 9), +('S9', '4275', 'DURSEJ', 9), +('S9', '4276', 'DURSEJ', 9), +('S9', '4277', 'DURSEJ', 9), +('S9', '4278', 'DURSEJ', 9), +('S9', '4279', 'DURSEJ', 9), +('S9', '4280', 'DURSEJ', 9), +('S9', '4281', 'DURSEJ', 9), +('S9', '4282', 'DURSEJ', 9), +('S9', '4283', 'DURSEJ', 9), +('S9', '4284', 'DURSEJ', 9), +('S9', '4285', 'DURSEJ', 9), +('S9', '4286', 'DURSEJ', 9), +('S9', '4287', 'DURSEJ', 9), +('S9', '4288', 'DURSEJ', 9), +('S9', '4289', 'DURSEJ', 9), +('S9', '4290', 'DURSEJ', 9), +('S9', '4291', 'DURSEJ', 9), +('S9', '4292', 'DURSEJ', 9), +('S9', '4293', 'DURSEJ', 9), +('S9', '4294', 'DURSEJ', 9), +('S9', '4295', 'DURSEJ', 9), +('S9', '4296', 'DURSEJ', 9), +('S9', '4297', 'DURSEJ', 9), +('S9', '4298', 'DURSEJ', 9), +('S9', '4299', 'DURSEJ', 9), +('S9', '4300', 'DURSEJ', 9), +('S9', '4301', 'DURSEJ', 9), +('S9', '4302', 'DURSEJ', 9), +('S9', '4303', 'DURSEJ', 9), +('S9', '4304', 'DURSEJ', 9), +('S9', '4305', 'DURSEJ', 9), +('S9', '4306', 'DURSEJ', 9), +('S9', '4307', 'DURSEJ', 9), +('S9', '4308', 'DURSEJ', 9), +('S9', '4309', 'DURSEJ', 9), +('S9', '4310', 'DURSEJ', 9), +('S9', '4311', 'DURSEJ', 9), +('S9', '4312', 'DURSEJ', 9), +('S9', '4313', 'DURSEJ', 9), +('S9', '4314', 'DURSEJ', 9), +('S9', '4315', 'DURSEJ', 9), +('S9', '4316', 'DURSEJ', 9), +('S9', '4317', 'DURSEJ', 9), +('S9', '4318', 'DURSEJ', 9), +('S9', '4319', 'DURSEJ', 9), +('S9', '4320', 'DURSEJ', 9), +('S9', '4321', 'DURSEJ', 9), +('S9', '4322', 'DURSEJ', 9), +('S9', '4323', 'DURSEJ', 9), +('S9', '4324', 'DURSEJ', 9), +('S9', '4325', 'DURSEJ', 9), +('S9', '4326', 'DURSEJ', 9), +('S9', '4327', 'DURSEJ', 9), +('S9', '4328', 'DURSEJ', 9), +('S9', '4329', 'DURSEJ', 9), +('S9', '4330', 'DURSEJ', 9), +('S9', '4331', 'DURSEJ', 9), +('S9', '4332', 'DURSEJ', 9), +('S9', '4333', 'DURSEJ', 9), +('S9', '4334', 'DURSEJ', 9), +('S9', '4335', 'DURSEJ', 9), +('S9', '4336', 'DURSEJ', 9), +('S9', '4337', 'DURSEJ', 9), +('S9', '4338', 'DURSEJ', 9), +('S9', '4339', 'DURSEJ', 9), +('S9', '4340', 'DURSEJ', 9), +('S9', '4341', 'DURSEJ', 9), +('S9', '4342', 'DURSEJ', 9), +('S9', '4343', 'DURSEJ', 9), +('S9', '4344', 'DURSEJ', 9), +('S9', '4345', 'DURSEJ', 9), +('S9', '4346', 'DURSEJ', 9), +('S9', '4347', 'DURSEJ', 9), +('S9', '4348', 'DURSEJ', 9), +('S9', '4349', 'DURSEJ', 9), +('S9', '4350', 'DURSEJ', 9), +('S9', '4351', 'DURSEJ', 9), +('S9', '4352', 'DURSEJ', 9), +('S9', '4353', 'DURSEJ', 9), +('S9', '4354', 'DURSEJ', 9), +('S9', '4355', 'DURSEJ', 9), +('S9', '4356', 'DURSEJ', 9), +('S9', '4357', 'DURSEJ', 9), +('S9', '4358', 'DURSEJ', 9), +('S9', '4359', 'DURSEJ', 9), +('S9', '4360', 'DURSEJ', 9), +('S9', '4361', 'DURSEJ', 9), +('S9', '4362', 'DURSEJ', 9), +('S9', '4363', 'DURSEJ', 9), +('S9', '4364', 'DURSEJ', 9), +('S9', '4365', 'DURSEJ', 9), +('S9', '4366', 'DURSEJ', 9), +('S9', '4367', 'DURSEJ', 9), +('S9', '4368', 'DURSEJ', 9), +('S9', '4369', 'DURSEJ', 9), +('S9', '4370', 'DURSEJ', 9), +('S9', '4371', 'DURSEJ', 9), +('S9', '4372', 'DURSEJ', 9), +('S9', '4373', 'DURSEJ', 9), +('S9', '4374', 'DURSEJ', 9), +('S9', '4375', 'DURSEJ', 9), +('S9', '4376', 'DURSEJ', 9), +('S9', '4377', 'DURSEJ', 9), +('S9', '4378', 'DURSEJ', 9), +('S9', '4379', 'DURSEJ', 9), +('S9', '4380', 'DURSEJ', 9), +('S9', '4381', 'DURSEJ', 9), +('S9', '4382', 'DURSEJ', 9), +('S9', '4383', 'DURSEJ', 9), +('S9', '4384', 'DURSEJ', 9), +('S9', '4385', 'DURSEJ', 9), +('S9', '4386', 'DURSEJ', 9), +('S9', '4387', 'DURSEJ', 9), +('S9', '4388', 'DURSEJ', 9), +('S9', '4389', 'DURSEJ', 9), +('S9', '4390', 'DURSEJ', 9), +('S9', '4391', 'DURSEJ', 9), +('S9', '4392', 'DURSEJ', 9), +('S9', '4393', 'DURSEJ', 9), +('S9', '4394', 'DURSEJ', 9), +('S9', '4395', 'DURSEJ', 9), +('S9', '4396', 'DURSEJ', 9), +('S9', '4397', 'DURSEJ', 9), +('S9', '4398', 'DURSEJ', 9), +('S9', '4399', 'DURSEJ', 9), +('S9', '4400', 'DURSEJ', 9), +('S9', '4401', 'DURSEJ', 9), +('S9', '4402', 'DURSEJ', 9), +('S9', '4403', 'DURSEJ', 9), +('S9', '4404', 'DURSEJ', 9), +('S9', '4405', 'DURSEJ', 9), +('S9', '4406', 'DURSEJ', 9), +('S9', '4407', 'DURSEJ', 9), +('S9', '4408', 'DURSEJ', 9), +('S9', '4409', 'DURSEJ', 9), +('S9', '4410', 'DURSEJ', 9), +('S9', '4411', 'DURSEJ', 9), +('S9', '4412', 'DURSEJ', 9), +('S9', '4413', 'DURSEJ', 9), +('S9', '4414', 'DURSEJ', 9), +('S9', '4415', 'DURSEJ', 9), +('S9', '4416', 'DURSEJ', 9), +('S9', '4417', 'DURSEJ', 9), +('S9', '4418', 'DURSEJ', 9), +('S9', '4419', 'DURSEJ', 9), +('S9', '4420', 'DURSEJ', 9), +('S9', '4421', 'DURSEJ', 9), +('S9', '4422', 'DURSEJ', 9), +('S9', '4423', 'DURSEJ', 9), +('S9', '4424', 'DURSEJ', 9), +('S9', '4425', 'DURSEJ', 9), +('S9', '4426', 'DURSEJ', 9), +('S9', '4427', 'DURSEJ', 9), +('S9', '4428', 'DURSEJ', 9), +('S9', '4429', 'DURSEJ', 9), +('S9', '4430', 'DURSEJ', 9), +('S9', '4431', 'DURSEJ', 9), +('S9', '4432', 'DURSEJ', 9), +('S9', '4433', 'DURSEJ', 9), +('S9', '4434', 'DURSEJ', 9), +('S9', '4435', 'DURSEJ', 9), +('S9', '4436', 'DURSEJ', 9), +('S9', '4437', 'DURSEJ', 9), +('S9', '4438', 'DURSEJ', 9), +('S9', '4439', 'DURSEJ', 9), +('S9', '4440', 'DURSEJ', 9), +('S9', '4441', 'DURSEJ', 9), +('S9', '4442', 'DURSEJ', 9), +('S9', '4443', 'DURSEJ', 9), +('S9', '4444', 'DURSEJ', 9), +('S9', '4445', 'DURSEJ', 9), +('S9', '4446', 'DURSEJ', 9), +('S9', '4447', 'DURSEJ', 9), +('S9', '4448', 'DURSEJ', 9), +('S9', '4449', 'DURSEJ', 9), +('S9', '4450', 'DURSEJ', 9), +('S9', '4451', 'DURSEJ', 9), +('S9', '4452', 'DURSEJ', 9), +('S9', '4453', 'DURSEJ', 9), +('S9', '4454', 'DURSEJ', 9), +('S9', '4455', 'DURSEJ', 9), +('S9', '4456', 'DURSEJ', 9), +('S9', '4457', 'DURSEJ', 9), +('S9', '4458', 'DURSEJ', 9), +('S9', '4459', 'DURSEJ', 9), +('S9', '4460', 'DURSEJ', 9), +('S9', '4461', 'DURSEJ', 9), +('S9', '4462', 'DURSEJ', 9), +('S9', '4463', 'DURSEJ', 9), +('S9', '4464', 'DURSEJ', 9), +('S9', '4465', 'DURSEJ', 9), +('S9', '4466', 'DURSEJ', 9), +('S9', '4467', 'DURSEJ', 9), +('S9', '4468', 'DURSEJ', 9), +('S9', '4469', 'DURSEJ', 9), +('S9', '4470', 'DURSEJ', 9), +('S9', '4471', 'DURSEJ', 9), +('S9', '4472', 'DURSEJ', 9), +('S9', '4473', 'DURSEJ', 9), +('S9', '4474', 'DURSEJ', 9), +('S9', '4475', 'DURSEJ', 9), +('S9', '4476', 'DURSEJ', 9), +('S9', '4477', 'DURSEJ', 9), +('S9', '4478', 'DURSEJ', 9), +('S9', '4479', 'DURSEJ', 9), +('S9', '4480', 'DURSEJ', 9), +('S9', '4481', 'DURSEJ', 9), +('S9', '4482', 'DURSEJ', 9), +('S9', '4483', 'DURSEJ', 9), +('S9', '4484', 'DURSEJ', 9), +('S9', '4485', 'DURSEJ', 9), +('S9', '4486', 'DURSEJ', 9), +('S9', '4487', 'DURSEJ', 9), +('S9', '4488', 'DURSEJ', 9), +('S9', '4489', 'DURSEJ', 9), +('S9', '4490', 'DURSEJ', 9), +('S9', '4491', 'DURSEJ', 9), +('S9', '4492', 'DURSEJ', 9), +('S9', '4493', 'DURSEJ', 9), +('S9', '4494', 'DURSEJ', 9), +('S9', '4495', 'DURSEJ', 9), +('S9', '4496', 'DURSEJ', 9), +('S9', '4497', 'DURSEJ', 9), +('S9', '4498', 'DURSEJ', 9), +('S9', '4499', 'DURSEJ', 9), +('S9', '4500', 'DURSEJ', 9), +('S9', '4501', 'DURSEJ', 9), +('S9', '4502', 'DURSEJ', 9), +('S9', '4503', 'DURSEJ', 9), +('S9', '4504', 'DURSEJ', 9), +('S9', '4505', 'DURSEJ', 9), +('S9', '4506', 'DURSEJ', 9), +('S9', '4507', 'DURSEJ', 9), +('S9', '4508', 'DURSEJ', 9), +('S9', '4509', 'DURSEJ', 9), +('S9', '4510', 'DURSEJ', 9), +('S9', '4511', 'DURSEJ', 9), +('S9', '4512', 'DURSEJ', 9), +('S9', '4513', 'DURSEJ', 9), +('S9', '4514', 'DURSEJ', 9), +('S9', '4515', 'DURSEJ', 9), +('S9', '4516', 'DURSEJ', 9), +('S9', '4517', 'DURSEJ', 9), +('S9', '4518', 'DURSEJ', 9), +('S9', '4519', 'DURSEJ', 9), +('S9', '4520', 'DURSEJ', 9), +('S9', '4521', 'DURSEJ', 9), +('S9', '4522', 'DURSEJ', 9), +('S9', '4523', 'DURSEJ', 9), +('S9', '4524', 'DURSEJ', 9), +('S9', '4525', 'DURSEJ', 9), +('S9', '4526', 'DURSEJ', 9), +('S9', '4527', 'DURSEJ', 9), +('S9', '4528', 'DURSEJ', 9), +('S9', '4529', 'DURSEJ', 9), +('S9', '4530', 'DURSEJ', 9), +('S9', '4531', 'DURSEJ', 9), +('S9', '4532', 'DURSEJ', 9), +('S9', '4533', 'DURSEJ', 9), +('S9', '4534', 'DURSEJ', 9), +('S9', '4535', 'DURSEJ', 9), +('S9', '4536', 'DURSEJ', 9), +('S9', '4537', 'DURSEJ', 9), +('S9', '4538', 'DURSEJ', 9), +('S9', '4539', 'DURSEJ', 9), +('S9', '4540', 'DURSEJ', 9), +('S9', '4541', 'DURSEJ', 9), +('S9', '4542', 'DURSEJ', 9), +('S9', '4543', 'DURSEJ', 9), +('S9', '4544', 'DURSEJ', 9), +('S9', '4545', 'DURSEJ', 9), +('S9', '4546', 'DURSEJ', 9), +('S9', '4547', 'DURSEJ', 9), +('S9', '4548', 'DURSEJ', 9), +('S9', '4549', 'DURSEJ', 9), +('S9', '4550', 'DURSEJ', 9), +('S9', '4551', 'DURSEJ', 9), +('S9', '4552', 'DURSEJ', 9), +('S9', '4553', 'DURSEJ', 9), +('S9', '4554', 'DURSEJ', 9), +('S9', '4555', 'DURSEJ', 9), +('S9', '4556', 'DURSEJ', 9), +('S9', '4557', 'DURSEJ', 9), +('S9', '4558', 'DURSEJ', 9), +('S9', '4559', 'DURSEJ', 9), +('S9', '4560', 'DURSEJ', 9), +('S9', '4561', 'DURSEJ', 9), +('S9', '4562', 'DURSEJ', 9), +('S9', '4563', 'DURSEJ', 9), +('S9', '4564', 'DURSEJ', 9), +('S9', '4565', 'DURSEJ', 9), +('S9', '4566', 'DURSEJ', 9), +('S9', '4567', 'DURSEJ', 9), +('S9', '4568', 'DURSEJ', 9), +('S9', '4569', 'DURSEJ', 9), +('S9', '4570', 'DURSEJ', 9), +('S9', '4571', 'DURSEJ', 9), +('S9', '4572', 'DURSEJ', 9), +('S9', '4573', 'DURSEJ', 9), +('S9', '4574', 'DURSEJ', 9), +('S9', '4575', 'DURSEJ', 9), +('S9', '4576', 'DURSEJ', 9), +('S9', '4577', 'DURSEJ', 9), +('S9', '4578', 'DURSEJ', 9), +('S9', '4579', 'DURSEJ', 9), +('S9', '4580', 'DURSEJ', 9), +('S9', '4581', 'DURSEJ', 9), +('S9', '4582', 'DURSEJ', 9), +('S9', '4583', 'DURSEJ', 9), +('S9', '4584', 'DURSEJ', 9), +('S9', '4585', 'DURSEJ', 9), +('S9', '4586', 'DURSEJ', 9), +('S9', '4587', 'DURSEJ', 9), +('S9', '4588', 'DURSEJ', 9), +('S9', '4589', 'DURSEJ', 9), +('S9', '4590', 'DURSEJ', 9), +('S9', '4591', 'DURSEJ', 9), +('S9', '4592', 'DURSEJ', 9), +('S9', '4593', 'DURSEJ', 9), +('S9', '4594', 'DURSEJ', 9), +('S9', '4595', 'DURSEJ', 9), +('S9', '4596', 'DURSEJ', 9), +('S9', '4597', 'DURSEJ', 9), +('S9', '4598', 'DURSEJ', 9), +('S9', '4599', 'DURSEJ', 9), +('S9', '4600', 'DURSEJ', 9), +('S9', '4601', 'DURSEJ', 9), +('S9', '4602', 'DURSEJ', 9), +('S9', '4603', 'DURSEJ', 9), +('S9', '4604', 'DURSEJ', 9), +('S9', '4605', 'DURSEJ', 9), +('S9', '4606', 'DURSEJ', 9), +('S9', '4607', 'DURSEJ', 9), +('S9', '4608', 'DURSEJ', 9), +('S9', '4609', 'DURSEJ', 9), +('S9', '4610', 'DURSEJ', 9), +('S9', '4611', 'DURSEJ', 9), +('S9', '4612', 'DURSEJ', 9), +('S9', '4613', 'DURSEJ', 9), +('S9', '4614', 'DURSEJ', 9), +('S9', '4615', 'DURSEJ', 9), +('S9', '4616', 'DURSEJ', 9), +('S9', '4617', 'DURSEJ', 9), +('S9', '4618', 'DURSEJ', 9), +('S9', '4619', 'DURSEJ', 9), +('S9', '4620', 'DURSEJ', 9), +('S9', '4621', 'DURSEJ', 9), +('S9', '4622', 'DURSEJ', 9), +('S9', '4623', 'DURSEJ', 9), +('S9', '4624', 'DURSEJ', 9), +('S9', '4625', 'DURSEJ', 9), +('S9', '4626', 'DURSEJ', 9), +('S9', '4627', 'DURSEJ', 9), +('S9', '4628', 'DURSEJ', 9), +('S9', '4629', 'DURSEJ', 9), +('S9', '4630', 'DURSEJ', 9), +('S9', '4631', 'DURSEJ', 9), +('S9', '4632', 'DURSEJ', 9), +('S9', '4633', 'DURSEJ', 9), +('S9', '4634', 'DURSEJ', 9), +('S9', '4635', 'DURSEJ', 9), +('S9', '4636', 'DURSEJ', 9), +('S9', '4637', 'DURSEJ', 9), +('S9', '4638', 'DURSEJ', 9), +('S9', '4639', 'DURSEJ', 9), +('S9', '4640', 'DURSEJ', 9), +('S9', '4641', 'DURSEJ', 9), +('S9', '4642', 'DURSEJ', 9), +('S9', '4643', 'DURSEJ', 9), +('S9', '4644', 'DURSEJ', 9), +('S9', '4645', 'DURSEJ', 9), +('S9', '4646', 'DURSEJ', 9), +('S9', '4647', 'DURSEJ', 9), +('S9', '4648', 'DURSEJ', 9), +('S9', '4649', 'DURSEJ', 9), +('S9', '4650', 'DURSEJ', 9), +('S9', '4651', 'DURSEJ', 9), +('S9', '4652', 'DURSEJ', 9), +('S9', '4653', 'DURSEJ', 9), +('S9', '4654', 'DURSEJ', 9), +('S9', '4655', 'DURSEJ', 9), +('S9', '4656', 'DURSEJ', 9), +('S9', '4657', 'DURSEJ', 9), +('S9', '4658', 'DURSEJ', 9), +('S9', '4659', 'DURSEJ', 9), +('S9', '4660', 'DURSEJ', 9), +('S9', '4661', 'DURSEJ', 9), +('S9', '4662', 'DURSEJ', 9), +('S9', '4663', 'DURSEJ', 9), +('S9', '4664', 'DURSEJ', 9), +('S9', '4665', 'DURSEJ', 9), +('S9', '4666', 'DURSEJ', 9), +('S9', '4667', 'DURSEJ', 9), +('S9', '4668', 'DURSEJ', 9), +('S9', '4669', 'DURSEJ', 9), +('S9', '4670', 'DURSEJ', 9), +('S9', '4671', 'DURSEJ', 9), +('S9', '4672', 'DURSEJ', 9), +('S9', '4673', 'DURSEJ', 9), +('S9', '4674', 'DURSEJ', 9), +('S9', '4675', 'DURSEJ', 9), +('S9', '4676', 'DURSEJ', 9), +('S9', '4677', 'DURSEJ', 9), +('S9', '4678', 'DURSEJ', 9), +('S9', '4679', 'DURSEJ', 9), +('S9', '4680', 'DURSEJ', 9), +('S9', '4681', 'DURSEJ', 9), +('S9', '4682', 'DURSEJ', 9), +('S9', '4683', 'DURSEJ', 9), +('S9', '4684', 'DURSEJ', 9), +('S9', '4685', 'DURSEJ', 9), +('S9', '4686', 'DURSEJ', 9), +('S9', '4687', 'DURSEJ', 9), +('S9', '4688', 'DURSEJ', 9), +('S9', '4689', 'DURSEJ', 9), +('S9', '4690', 'DURSEJ', 9), +('S9', '4691', 'DURSEJ', 9), +('S9', '4692', 'DURSEJ', 9), +('S9', '4693', 'DURSEJ', 9), +('S9', '4694', 'DURSEJ', 9), +('S9', '4695', 'DURSEJ', 9), +('S9', '4696', 'DURSEJ', 9), +('S9', '4697', 'DURSEJ', 9), +('S9', '4698', 'DURSEJ', 9), +('S9', '4699', 'DURSEJ', 9), +('S9', '4700', 'DURSEJ', 9), +('S9', '4701', 'DURSEJ', 9), +('S9', '4702', 'DURSEJ', 9), +('S9', '4703', 'DURSEJ', 9), +('S9', '4704', 'DURSEJ', 9), +('S9', '4705', 'DURSEJ', 9), +('S9', '4706', 'DURSEJ', 9), +('S9', '4707', 'DURSEJ', 9), +('S9', '4708', 'DURSEJ', 9), +('S9', '4709', 'DURSEJ', 9), +('S9', '4710', 'DURSEJ', 9), +('S9', '4711', 'DURSEJ', 9), +('S9', '4712', 'DURSEJ', 9), +('S9', '4713', 'DURSEJ', 9), +('S9', '4714', 'DURSEJ', 9), +('S9', '4715', 'DURSEJ', 9), +('S9', '4716', 'DURSEJ', 9), +('S9', '4717', 'DURSEJ', 9), +('S9', '4718', 'DURSEJ', 9), +('S9', '4719', 'DURSEJ', 9), +('S9', '4720', 'DURSEJ', 9), +('S9', '4721', 'DURSEJ', 9), +('S9', '4722', 'DURSEJ', 9), +('S9', '4723', 'DURSEJ', 9), +('S9', '4724', 'DURSEJ', 9), +('S9', '4725', 'DURSEJ', 9), +('S9', '4726', 'DURSEJ', 9), +('S9', '4727', 'DURSEJ', 9), +('S9', '4728', 'DURSEJ', 9), +('S9', '4729', 'DURSEJ', 9), +('S9', '4730', 'DURSEJ', 9), +('S9', '4731', 'DURSEJ', 9), +('S9', '4732', 'DURSEJ', 9), +('S9', '4733', 'DURSEJ', 9), +('S9', '4734', 'DURSEJ', 9), +('S9', '4735', 'DURSEJ', 9), +('S9', '4736', 'DURSEJ', 9), +('S9', '4737', 'DURSEJ', 9), +('S9', '4738', 'DURSEJ', 9), +('S9', '4739', 'DURSEJ', 9), +('S9', '4740', 'DURSEJ', 9), +('S9', '4741', 'DURSEJ', 9), +('S9', '4742', 'DURSEJ', 9), +('S9', '4743', 'DURSEJ', 9), +('S9', '4744', 'DURSEJ', 9), +('S9', '4745', 'DURSEJ', 9), +('S9', '4746', 'DURSEJ', 9), +('S9', '4747', 'DURSEJ', 9), +('S9', '4748', 'DURSEJ', 9), +('S9', '4749', 'DURSEJ', 9), +('S9', '4750', 'DURSEJ', 9), +('S9', '4751', 'DURSEJ', 9), +('S9', '4752', 'DURSEJ', 9), +('S9', '4753', 'DURSEJ', 9), +('S9', '4754', 'DURSEJ', 9), +('S9', '4755', 'DURSEJ', 9), +('S9', '4756', 'DURSEJ', 9), +('S9', '4757', 'DURSEJ', 9), +('S9', '4758', 'DURSEJ', 9), +('S9', '4759', 'DURSEJ', 9), +('S9', '4760', 'DURSEJ', 9), +('S9', '4761', 'DURSEJ', 9), +('S9', '4762', 'DURSEJ', 9), +('S9', '4763', 'DURSEJ', 9), +('S9', '4764', 'DURSEJ', 9), +('S9', '4765', 'DURSEJ', 9), +('S9', '4766', 'DURSEJ', 9), +('S9', '4767', 'DURSEJ', 9), +('S9', '4768', 'DURSEJ', 9), +('S9', '4769', 'DURSEJ', 9), +('S9', '4770', 'DURSEJ', 9), +('S9', '4771', 'DURSEJ', 9), +('S9', '4772', 'DURSEJ', 9), +('S9', '4773', 'DURSEJ', 9), +('S9', '4774', 'DURSEJ', 9), +('S9', '4775', 'DURSEJ', 9), +('S9', '4776', 'DURSEJ', 9), +('S9', '4777', 'DURSEJ', 9), +('S9', '4778', 'DURSEJ', 9), +('S9', '4779', 'DURSEJ', 9), +('S9', '4780', 'DURSEJ', 9), +('S9', '4781', 'DURSEJ', 9), +('S9', '4782', 'DURSEJ', 9), +('S9', '4783', 'DURSEJ', 9), +('S9', '4784', 'DURSEJ', 9), +('S9', '4785', 'DURSEJ', 9), +('S9', '4786', 'DURSEJ', 9), +('S9', '4787', 'DURSEJ', 9), +('S9', '4788', 'DURSEJ', 9), +('S9', '4789', 'DURSEJ', 9), +('S9', '4790', 'DURSEJ', 9), +('S9', '4791', 'DURSEJ', 9), +('S9', '4792', 'DURSEJ', 9), +('S9', '4793', 'DURSEJ', 9), +('S9', '4794', 'DURSEJ', 9), +('S9', '4795', 'DURSEJ', 9), +('S9', '4796', 'DURSEJ', 9), +('S9', '4797', 'DURSEJ', 9), +('S9', '4798', 'DURSEJ', 9), +('S9', '4799', 'DURSEJ', 9), +('S9', '4800', 'DURSEJ', 9), +('S9', '4801', 'DURSEJ', 9), +('S9', '4802', 'DURSEJ', 9), +('S9', '4803', 'DURSEJ', 9), +('S9', '4804', 'DURSEJ', 9), +('S9', '4805', 'DURSEJ', 9), +('S9', '4806', 'DURSEJ', 9), +('S9', '4807', 'DURSEJ', 9), +('S9', '4808', 'DURSEJ', 9), +('S9', '4809', 'DURSEJ', 9), +('S9', '4810', 'DURSEJ', 9), +('S9', '4811', 'DURSEJ', 9), +('S9', '4812', 'DURSEJ', 9), +('S9', '4813', 'DURSEJ', 9), +('S9', '4814', 'DURSEJ', 9), +('S9', '4815', 'DURSEJ', 9), +('S9', '4816', 'DURSEJ', 9), +('S9', '4817', 'DURSEJ', 9), +('S9', '4818', 'DURSEJ', 9), +('S9', '4819', 'DURSEJ', 9), +('S9', '4820', 'DURSEJ', 9), +('S9', '4821', 'DURSEJ', 9), +('S9', '4822', 'DURSEJ', 9), +('S9', '4823', 'DURSEJ', 9), +('S9', '4824', 'DURSEJ', 9), +('S9', '4825', 'DURSEJ', 9), +('S9', '4826', 'DURSEJ', 9), +('S9', '4827', 'DURSEJ', 9), +('S9', '4828', 'DURSEJ', 9), +('S9', '4829', 'DURSEJ', 9), +('S9', '4830', 'DURSEJ', 9), +('S9', '4831', 'DURSEJ', 9), +('S9', '4832', 'DURSEJ', 9), +('S9', '4833', 'DURSEJ', 9), +('S9', '4834', 'DURSEJ', 9), +('S9', '4835', 'DURSEJ', 9), +('S9', '4836', 'DURSEJ', 9), +('S9', '4837', 'DURSEJ', 9), +('S9', '4838', 'DURSEJ', 9), +('S9', '4839', 'DURSEJ', 9), +('S9', '4840', 'DURSEJ', 9), +('S9', '4841', 'DURSEJ', 9), +('S9', '4842', 'DURSEJ', 9), +('S9', '4843', 'DURSEJ', 9), +('S9', '4844', 'DURSEJ', 9), +('S9', '4845', 'DURSEJ', 9), +('S9', '4846', 'DURSEJ', 9), +('S9', '4847', 'DURSEJ', 9), +('S9', '4848', 'DURSEJ', 9), +('S9', '4849', 'DURSEJ', 9), +('S9', '4850', 'DURSEJ', 9), +('S9', '4851', 'DURSEJ', 9), +('S9', '4852', 'DURSEJ', 9), +('S9', '4853', 'DURSEJ', 9), +('S9', '4854', 'DURSEJ', 9), +('S9', '4855', 'DURSEJ', 9), +('S9', '4856', 'DURSEJ', 9), +('S9', '4857', 'DURSEJ', 9), +('S9', '4858', 'DURSEJ', 9), +('S9', '4859', 'DURSEJ', 9), +('S9', '4860', 'DURSEJ', 9), +('S9', '4861', 'DURSEJ', 9), +('S9', '4862', 'DURSEJ', 9), +('S9', '4863', 'DURSEJ', 9), +('S9', '4864', 'DURSEJ', 9), +('S9', '4865', 'DURSEJ', 9), +('S9', '4866', 'DURSEJ', 9), +('S9', '4867', 'DURSEJ', 9), +('S9', '4868', 'DURSEJ', 9), +('S9', '4869', 'DURSEJ', 9), +('S9', '4870', 'DURSEJ', 9), +('S9', '4871', 'DURSEJ', 9), +('S9', '4872', 'DURSEJ', 9), +('S9', '4873', 'DURSEJ', 9), +('S9', '4874', 'DURSEJ', 9), +('S9', '4875', 'DURSEJ', 9), +('S9', '4876', 'DURSEJ', 9), +('S9', '4877', 'DURSEJ', 9), +('S9', '4878', 'DURSEJ', 9), +('S9', '4879', 'DURSEJ', 9), +('S9', '4880', 'DURSEJ', 9), +('S9', '4881', 'DURSEJ', 9), +('S9', '4882', 'DURSEJ', 9), +('S9', '4883', 'DURSEJ', 9), +('S9', '4884', 'DURSEJ', 9), +('S9', '4885', 'DURSEJ', 9), +('S9', '4886', 'DURSEJ', 9), +('S9', '4887', 'DURSEJ', 9), +('S9', '4888', 'DURSEJ', 9), +('S9', '4889', 'DURSEJ', 9), +('S9', '4890', 'DURSEJ', 9), +('S9', '4891', 'DURSEJ', 9), +('S9', '4892', 'DURSEJ', 9), +('S9', '4893', 'DURSEJ', 9), +('S9', '4894', 'DURSEJ', 9), +('S9', '4895', 'DURSEJ', 9), +('S9', '4896', 'DURSEJ', 9), +('S9', '4897', 'DURSEJ', 9), +('S9', '4898', 'DURSEJ', 9), +('S9', '4899', 'DURSEJ', 9), +('S9', '4900', 'DURSEJ', 9), +('S9', '4901', 'DURSEJ', 9), +('S9', '4902', 'DURSEJ', 9), +('S9', '4903', 'DURSEJ', 9), +('S9', '4904', 'DURSEJ', 9), +('S9', '4905', 'DURSEJ', 9), +('S9', '4906', 'DURSEJ', 9), +('S9', '4907', 'DURSEJ', 9), +('S9', '4908', 'DURSEJ', 9), +('S9', '4909', 'DURSEJ', 9), +('S9', '4910', 'DURSEJ', 9), +('S9', '4911', 'DURSEJ', 9), +('S9', '4912', 'DURSEJ', 9), +('S9', '4913', 'DURSEJ', 9), +('S9', '4914', 'DURSEJ', 9), +('S9', '4915', 'DURSEJ', 9), +('S9', '4916', 'DURSEJ', 9), +('S9', '4917', 'DURSEJ', 9), +('S9', '4918', 'DURSEJ', 9), +('S9', '4919', 'DURSEJ', 9), +('S9', '4920', 'DURSEJ', 9), +('S9', '4921', 'DURSEJ', 9), +('S9', '4922', 'DURSEJ', 9), +('S9', '4923', 'DURSEJ', 9), +('S9', '4924', 'DURSEJ', 9), +('S9', '4925', 'DURSEJ', 9), +('S9', '4926', 'DURSEJ', 9), +('S9', '4927', 'DURSEJ', 9), +('S9', '4928', 'DURSEJ', 9), +('S9', '4929', 'DURSEJ', 9), +('S9', '4930', 'DURSEJ', 9), +('S9', '4931', 'DURSEJ', 9), +('S9', '4932', 'DURSEJ', 9), +('S9', '4933', 'DURSEJ', 9), +('S9', '4934', 'DURSEJ', 9), +('S9', '4935', 'DURSEJ', 9), +('S9', '4936', 'DURSEJ', 9), +('S9', '4937', 'DURSEJ', 9), +('S9', '4938', 'DURSEJ', 9), +('S9', '4939', 'DURSEJ', 9), +('S9', '4940', 'DURSEJ', 9), +('S9', '4941', 'DURSEJ', 9), +('S9', '4942', 'DURSEJ', 9), +('S9', '4943', 'DURSEJ', 9), +('S9', '4944', 'DURSEJ', 9), +('S9', '4945', 'DURSEJ', 9), +('S9', '4946', 'DURSEJ', 9), +('S9', '4947', 'DURSEJ', 9), +('S9', '4948', 'DURSEJ', 9), +('S9', '4949', 'DURSEJ', 9), +('S9', '4950', 'DURSEJ', 9), +('S9', '4951', 'DURSEJ', 9), +('S9', '4952', 'DURSEJ', 9), +('S9', '4953', 'DURSEJ', 9), +('S9', '4954', 'DURSEJ', 9), +('S9', '4955', 'DURSEJ', 9), +('S9', '4956', 'DURSEJ', 9), +('S9', '4957', 'DURSEJ', 9), +('S9', '4958', 'DURSEJ', 9), +('S9', '4959', 'DURSEJ', 9), +('S9', '4960', 'DURSEJ', 9), +('S9', '4961', 'DURSEJ', 9), +('S9', '4962', 'DURSEJ', 9), +('S9', '4963', 'DURSEJ', 9), +('S9', '4964', 'DURSEJ', 9), +('S9', '4965', 'DURSEJ', 9), +('S9', '4966', 'DURSEJ', 9), +('S9', '4967', 'DURSEJ', 9), +('S9', '4968', 'DURSEJ', 9), +('S9', '4969', 'DURSEJ', 9), +('S9', '4970', 'DURSEJ', 9), +('S9', '4971', 'DURSEJ', 9), +('S9', '4972', 'DURSEJ', 9), +('S9', '4973', 'DURSEJ', 9), +('S9', '4974', 'DURSEJ', 9), +('S9', '4975', 'DURSEJ', 9), +('S9', '4976', 'DURSEJ', 9), +('S9', '4977', 'DURSEJ', 9), +('S9', '4978', 'DURSEJ', 9), +('S9', '4979', 'DURSEJ', 9), +('S9', '4980', 'DURSEJ', 9), +('S9', '4981', 'DURSEJ', 9), +('S9', '4982', 'DURSEJ', 9), +('S9', '4983', 'DURSEJ', 9), +('S9', '4984', 'DURSEJ', 9), +('S9', '4985', 'DURSEJ', 9), +('S9', '4986', 'DURSEJ', 9), +('S9', '4987', 'DURSEJ', 9), +('S9', '4988', 'DURSEJ', 9), +('S9', '4989', 'DURSEJ', 9), +('S9', '4990', 'DURSEJ', 9), +('S9', '4991', 'DURSEJ', 9), +('S9', '4992', 'DURSEJ', 9), +('S9', '4993', 'DURSEJ', 9), +('S9', '4994', 'DURSEJ', 9), +('S9', '4995', 'DURSEJ', 9), +('S9', '4996', 'DURSEJ', 9), +('S9', '4997', 'DURSEJ', 9), +('S9', '4998', 'DURSEJ', 9), +('S9', '4999', 'DURSEJ', 9), +('S9', '5000', 'DURSEJ', 9), +('S9', '5001', 'DURSEJ', 9), +('S9', '5002', 'DURSEJ', 9), +('S9', '5003', 'DURSEJ', 9), +('S9', '5004', 'DURSEJ', 9), +('S9', '5005', 'DURSEJ', 9), +('S9', '5006', 'DURSEJ', 9), +('S9', '5007', 'DURSEJ', 9), +('S9', '5008', 'DURSEJ', 9), +('S9', '5009', 'DURSEJ', 9), +('S9', '5010', 'DURSEJ', 9), +('S9', '5011', 'DURSEJ', 9), +('S9', '5012', 'DURSEJ', 9), +('S9', '5013', 'DURSEJ', 9), +('S9', '5014', 'DURSEJ', 9), +('S9', '5015', 'DURSEJ', 9), +('S9', '5016', 'DURSEJ', 9), +('S9', '5017', 'DURSEJ', 9), +('S9', '5018', 'DURSEJ', 9), +('S9', '5019', 'DURSEJ', 9), +('S9', '5020', 'DURSEJ', 9), +('S9', '5021', 'DURSEJ', 9), +('S9', '5022', 'DURSEJ', 9), +('S9', '5023', 'DURSEJ', 9), +('S9', '5024', 'DURSEJ', 9), +('S9', '5025', 'DURSEJ', 9), +('S9', '5026', 'DURSEJ', 9), +('S9', '5027', 'DURSEJ', 9), +('S9', '5028', 'DURSEJ', 9), +('S9', '5029', 'DURSEJ', 9), +('S9', '5030', 'DURSEJ', 9), +('S9', '5031', 'DURSEJ', 9), +('S9', '5032', 'DURSEJ', 9), +('S9', '5033', 'DURSEJ', 9), +('S9', '5034', 'DURSEJ', 9), +('S9', '5035', 'DURSEJ', 9), +('S9', '5036', 'DURSEJ', 9), +('S9', '5037', 'DURSEJ', 9), +('S9', '5038', 'DURSEJ', 9), +('S9', '5039', 'DURSEJ', 9), +('S9', '5040', 'DURSEJ', 9), +('S9', '5041', 'DURSEJ', 9), +('S9', '5042', 'DURSEJ', 9), +('S9', '5043', 'DURSEJ', 9), +('S9', '5044', 'DURSEJ', 9), +('S9', '5045', 'DURSEJ', 9), +('S9', '5046', 'DURSEJ', 9), +('S9', '5047', 'DURSEJ', 9), +('S9', '5048', 'DURSEJ', 9), +('S9', '5049', 'DURSEJ', 9), +('S9', '5050', 'DURSEJ', 9), +('S9', '5051', 'DURSEJ', 9), +('S9', '5052', 'DURSEJ', 9), +('S9', '5053', 'DURSEJ', 9), +('S9', '5054', 'DURSEJ', 9), +('S9', '5055', 'DURSEJ', 9), +('S9', '5056', 'DURSEJ', 9), +('S9', '5057', 'DURSEJ', 9), +('S9', '5058', 'DURSEJ', 9), +('S9', '5059', 'DURSEJ', 9), +('S9', '5060', 'DURSEJ', 9), +('S9', '5061', 'DURSEJ', 9), +('S9', '5062', 'DURSEJ', 9), +('S9', '5063', 'DURSEJ', 9), +('S9', '5064', 'DURSEJ', 9), +('S9', '5065', 'DURSEJ', 9), +('S9', '5066', 'DURSEJ', 9), +('S9', '5067', 'DURSEJ', 9), +('S9', '5068', 'DURSEJ', 9), +('S9', '5069', 'DURSEJ', 9), +('S9', '5070', 'DURSEJ', 9), +('S9', '5071', 'DURSEJ', 9), +('S9', '5072', 'DURSEJ', 9), +('S9', '5073', 'DURSEJ', 9), +('S9', '5074', 'DURSEJ', 9), +('S9', '5075', 'DURSEJ', 9), +('S9', '5076', 'DURSEJ', 9), +('S9', '5077', 'DURSEJ', 9), +('S9', '5078', 'DURSEJ', 9), +('S9', '5079', 'DURSEJ', 9), +('S9', '5080', 'DURSEJ', 9), +('S9', '5081', 'DURSEJ', 9), +('S9', '5082', 'DURSEJ', 9), +('S9', '5083', 'DURSEJ', 9), +('S9', '5084', 'DURSEJ', 9), +('S9', '5085', 'DURSEJ', 9), +('S9', '5086', 'DURSEJ', 9), +('S9', '5087', 'DURSEJ', 9), +('S9', '5088', 'DURSEJ', 9), +('S9', '5089', 'DURSEJ', 9), +('S9', '5090', 'DURSEJ', 9), +('S9', '5091', 'DURSEJ', 9), +('S9', '5092', 'DURSEJ', 9), +('S9', '5093', 'DURSEJ', 9), +('S9', '5094', 'DURSEJ', 9), +('S9', '5095', 'DURSEJ', 9), +('S9', '5096', 'DURSEJ', 9), +('S9', '5097', 'DURSEJ', 9), +('S9', '5098', 'DURSEJ', 9), +('S9', '5099', 'DURSEJ', 9), +('S9', '5100', 'DURSEJ', 9), +('S9', '5101', 'DURSEJ', 9), +('S9', '5102', 'DURSEJ', 9), +('S9', '5103', 'DURSEJ', 9), +('S9', '5104', 'DURSEJ', 9), +('S9', '5105', 'DURSEJ', 9), +('S9', '5106', 'DURSEJ', 9), +('S9', '5107', 'DURSEJ', 9), +('S9', '5108', 'DURSEJ', 9), +('S9', '5109', 'DURSEJ', 9), +('S9', '5110', 'DURSEJ', 9), +('S9', '5111', 'DURSEJ', 9), +('S9', '5112', 'DURSEJ', 9), +('S9', '5113', 'DURSEJ', 9), +('S9', '5114', 'DURSEJ', 9), +('S9', '5115', 'DURSEJ', 9), +('S9', '5116', 'DURSEJ', 9), +('S9', '5117', 'DURSEJ', 9), +('S9', '5118', 'DURSEJ', 9), +('S9', '5119', 'DURSEJ', 9), +('S9', '5120', 'DURSEJ', 9), +('S9', '5121', 'DURSEJ', 9), +('S9', '5122', 'DURSEJ', 9), +('S9', '5123', 'DURSEJ', 9), +('S9', '5124', 'DURSEJ', 9), +('S9', '5125', 'DURSEJ', 9), +('S9', '5126', 'DURSEJ', 9), +('S9', '5127', 'DURSEJ', 9), +('S9', '5128', 'DURSEJ', 9), +('S9', '5129', 'DURSEJ', 9), +('S9', '5130', 'DURSEJ', 9), +('S9', '5131', 'DURSEJ', 9), +('S9', '5132', 'DURSEJ', 9), +('S9', '5133', 'DURSEJ', 9), +('S9', '5134', 'DURSEJ', 9), +('S9', '5135', 'DURSEJ', 9), +('S9', '5136', 'DURSEJ', 9), +('S9', '5137', 'DURSEJ', 9), +('S9', '5138', 'DURSEJ', 9), +('S9', '5139', 'DURSEJ', 9), +('S9', '5140', 'DURSEJ', 9), +('S9', '5141', 'DURSEJ', 9), +('S9', '5142', 'DURSEJ', 9), +('S9', '5143', 'DURSEJ', 9), +('S9', '5144', 'DURSEJ', 9), +('S9', '5145', 'DURSEJ', 9), +('S9', '5146', 'DURSEJ', 9), +('S9', '5147', 'DURSEJ', 9), +('S9', '5148', 'DURSEJ', 9), +('S9', '5149', 'DURSEJ', 9), +('S9', '5150', 'DURSEJ', 9), +('S9', '5151', 'DURSEJ', 9), +('S9', '5152', 'DURSEJ', 9), +('S9', '5153', 'DURSEJ', 9), +('S9', '5154', 'DURSEJ', 9), +('S9', '5155', 'DURSEJ', 9), +('S9', '5156', 'DURSEJ', 9), +('S9', '5157', 'DURSEJ', 9), +('S9', '5158', 'DURSEJ', 9), +('S9', '5159', 'DURSEJ', 9), +('S9', '5160', 'DURSEJ', 9), +('S9', '5161', 'DURSEJ', 9), +('S9', '5162', 'DURSEJ', 9), +('S9', '5163', 'DURSEJ', 9), +('S9', '5164', 'DURSEJ', 9), +('S9', '5165', 'DURSEJ', 9), +('S9', '5166', 'DURSEJ', 9), +('S9', '5167', 'DURSEJ', 9), +('S9', '5168', 'DURSEJ', 9), +('S9', '5169', 'DURSEJ', 9), +('S9', '5170', 'DURSEJ', 9), +('S9', '5171', 'DURSEJ', 9), +('S9', '5172', 'DURSEJ', 9), +('S9', '5173', 'DURSEJ', 9), +('S9', '5174', 'DURSEJ', 9), +('S9', '5175', 'DURSEJ', 9), +('S9', '5176', 'DURSEJ', 9), +('S9', '5177', 'DURSEJ', 9), +('S9', '5178', 'DURSEJ', 9), +('S9', '5179', 'DURSEJ', 9), +('S9', '5180', 'DURSEJ', 9), +('S9', '5181', 'DURSEJ', 9), +('S9', '5182', 'DURSEJ', 9), +('S9', '5183', 'DURSEJ', 9), +('S9', '5184', 'DURSEJ', 9), +('S9', '5185', 'DURSEJ', 9), +('S9', '5186', 'DURSEJ', 9), +('S9', '5187', 'DURSEJ', 9), +('S9', '5188', 'DURSEJ', 9), +('S9', '5189', 'DURSEJ', 9), +('S9', '5190', 'DURSEJ', 9), +('S9', '5191', 'DURSEJ', 9), +('S9', '5192', 'DURSEJ', 9), +('S9', '5193', 'DURSEJ', 9), +('S9', '5194', 'DURSEJ', 9), +('S9', '5195', 'DURSEJ', 9), +('S9', '5196', 'DURSEJ', 9), +('S9', '5197', 'DURSEJ', 9), +('S9', '5198', 'DURSEJ', 9), +('S9', '5199', 'DURSEJ', 9), +('S9', '5200', 'DURSEJ', 9), +('S9', '5201', 'DURSEJ', 9), +('S9', '5202', 'DURSEJ', 9), +('S9', '5203', 'DURSEJ', 9), +('S9', '5204', 'DURSEJ', 9), +('S9', '5205', 'DURSEJ', 9), +('S9', '5206', 'DURSEJ', 9), +('S9', '5207', 'DURSEJ', 9), +('S9', '5208', 'DURSEJ', 9), +('S9', '5209', 'DURSEJ', 9), +('S9', '5210', 'DURSEJ', 9), +('S9', '5211', 'DURSEJ', 9), +('S9', '5212', 'DURSEJ', 9), +('S9', '5213', 'DURSEJ', 9), +('S9', '5214', 'DURSEJ', 9), +('S9', '5215', 'DURSEJ', 9), +('S9', '5216', 'DURSEJ', 9), +('S9', '5217', 'DURSEJ', 9), +('S9', '5218', 'DURSEJ', 9), +('S9', '5219', 'DURSEJ', 9), +('S9', '5220', 'DURSEJ', 9), +('S9', '5221', 'DURSEJ', 9), +('S9', '5222', 'DURSEJ', 9), +('S9', '5223', 'DURSEJ', 9), +('S9', '5224', 'DURSEJ', 9), +('S9', '5225', 'DURSEJ', 9), +('S9', '5226', 'DURSEJ', 9), +('S9', '5227', 'DURSEJ', 9), +('S9', '5228', 'DURSEJ', 9), +('S9', '5229', 'DURSEJ', 9), +('S9', '5230', 'DURSEJ', 9), +('S9', '5231', 'DURSEJ', 9), +('S9', '5232', 'DURSEJ', 9), +('S9', '5233', 'DURSEJ', 9), +('S9', '5234', 'DURSEJ', 9), +('S9', '5235', 'DURSEJ', 9), +('S9', '5236', 'DURSEJ', 9), +('S9', '5237', 'DURSEJ', 9), +('S9', '5238', 'DURSEJ', 9), +('S9', '5239', 'DURSEJ', 9), +('S9', '5240', 'DURSEJ', 9), +('S9', '5241', 'DURSEJ', 9), +('S9', '5242', 'DURSEJ', 9), +('S9', '5243', 'DURSEJ', 9), +('S9', '5244', 'DURSEJ', 9), +('S9', '5245', 'DURSEJ', 9), +('S9', '5246', 'DURSEJ', 9), +('S9', '5247', 'DURSEJ', 9), +('S9', '5248', 'DURSEJ', 9), +('S9', '5249', 'DURSEJ', 9), +('S9', '5250', 'DURSEJ', 9), +('S9', '5251', 'DURSEJ', 9), +('S9', '5252', 'DURSEJ', 9), +('S9', '5253', 'DURSEJ', 9), +('S9', '5254', 'DURSEJ', 9), +('S9', '5255', 'DURSEJ', 9), +('S9', '5256', 'DURSEJ', 9), +('S9', '5257', 'DURSEJ', 9), +('S9', '5258', 'DURSEJ', 9), +('S9', '5259', 'DURSEJ', 9), +('S9', '5260', 'DURSEJ', 9), +('S9', '5261', 'DURSEJ', 9), +('S9', '5262', 'DURSEJ', 9), +('S9', '5263', 'DURSEJ', 9), +('S9', '5264', 'DURSEJ', 9), +('S9', '5265', 'DURSEJ', 9), +('S9', '5266', 'DURSEJ', 9), +('S9', '5267', 'DURSEJ', 9), +('S9', '5268', 'DURSEJ', 9), +('S9', '5269', 'DURSEJ', 9), +('S9', '5270', 'DURSEJ', 9), +('S9', '5271', 'DURSEJ', 9), +('S9', '5272', 'DURSEJ', 9), +('S9', '5273', 'DURSEJ', 9), +('S9', '5274', 'DURSEJ', 9), +('S9', '5275', 'DURSEJ', 9), +('S9', '5276', 'DURSEJ', 9), +('S9', '5277', 'DURSEJ', 9), +('S9', '5278', 'DURSEJ', 9), +('S9', '5279', 'DURSEJ', 9), +('S9', '5280', 'DURSEJ', 9), +('S9', '5281', 'DURSEJ', 9), +('S9', '5282', 'DURSEJ', 9), +('S9', '5283', 'DURSEJ', 9), +('S9', '5284', 'DURSEJ', 9), +('S9', '5285', 'DURSEJ', 9), +('S9', '5286', 'DURSEJ', 9), +('S9', '5287', 'DURSEJ', 9), +('S9', '5288', 'DURSEJ', 9), +('S9', '5289', 'DURSEJ', 9), +('S9', '5290', 'DURSEJ', 9), +('S9', '5291', 'DURSEJ', 9), +('S9', '5292', 'DURSEJ', 9), +('S9', '5293', 'DURSEJ', 9), +('S9', '5294', 'DURSEJ', 9), +('S9', '5295', 'DURSEJ', 9), +('S9', '5296', 'DURSEJ', 9), +('S9', '5297', 'DURSEJ', 9), +('S9', '5298', 'DURSEJ', 9), +('S9', '5299', 'DURSEJ', 9), +('S9', '5300', 'DURSEJ', 9), +('S9', '5301', 'DURSEJ', 9), +('S9', '5302', 'DURSEJ', 9), +('S9', '5303', 'DURSEJ', 9), +('S9', '5304', 'DURSEJ', 9), +('S9', '5305', 'DURSEJ', 9), +('S9', '5306', 'DURSEJ', 9), +('S9', '5307', 'DURSEJ', 9), +('S9', '5308', 'DURSEJ', 9), +('S9', '5309', 'DURSEJ', 9), +('S9', '5310', 'DURSEJ', 9), +('S9', '5311', 'DURSEJ', 9), +('S9', '5312', 'DURSEJ', 9), +('S9', '5313', 'DURSEJ', 9), +('S9', '5314', 'DURSEJ', 9), +('S9', '5315', 'DURSEJ', 9), +('S9', '5316', 'DURSEJ', 9), +('S9', '5317', 'DURSEJ', 9), +('S9', '5318', 'DURSEJ', 9), +('S9', '5319', 'DURSEJ', 9), +('S9', '5320', 'DURSEJ', 9), +('S9', '5321', 'DURSEJ', 9), +('S9', '5322', 'DURSEJ', 9), +('S9', '5323', 'DURSEJ', 9), +('S9', '5324', 'DURSEJ', 9), +('S9', '5325', 'DURSEJ', 9), +('S9', '5326', 'DURSEJ', 9), +('S9', '5327', 'DURSEJ', 9), +('S9', '5328', 'DURSEJ', 9), +('S9', '5329', 'DURSEJ', 9), +('S9', '5330', 'DURSEJ', 9), +('S9', '5331', 'DURSEJ', 9), +('S9', '5332', 'DURSEJ', 9), +('S9', '5333', 'DURSEJ', 9), +('S9', '5334', 'DURSEJ', 9), +('S9', '5335', 'DURSEJ', 9), +('S9', '5336', 'DURSEJ', 9), +('S9', '5337', 'DURSEJ', 9), +('S9', '5338', 'DURSEJ', 9), +('S9', '5339', 'DURSEJ', 9), +('S9', '5340', 'DURSEJ', 9), +('S9', '5341', 'DURSEJ', 9), +('S9', '5342', 'DURSEJ', 9), +('S9', '5343', 'DURSEJ', 9), +('S9', '5344', 'DURSEJ', 9), +('S9', '5345', 'DURSEJ', 9), +('S9', '5346', 'DURSEJ', 9), +('S9', '5347', 'DURSEJ', 9), +('S9', '5348', 'DURSEJ', 9), +('S9', '5349', 'DURSEJ', 9), +('S9', '5350', 'DURSEJ', 9), +('S9', '5351', 'DURSEJ', 9), +('S9', '5352', 'DURSEJ', 9), +('S9', '5353', 'DURSEJ', 9), +('S9', '5354', 'DURSEJ', 9), +('S9', '5355', 'DURSEJ', 9), +('S9', '5356', 'DURSEJ', 9), +('S9', '5357', 'DURSEJ', 9), +('S9', '5358', 'DURSEJ', 9), +('S9', '5359', 'DURSEJ', 9), +('S9', '5360', 'DURSEJ', 9), +('S9', '5361', 'DURSEJ', 9), +('S9', '5362', 'DURSEJ', 9), +('S9', '5363', 'DURSEJ', 9), +('S9', '5364', 'DURSEJ', 9), +('S9', '5365', 'DURSEJ', 9), +('S9', '5366', 'DURSEJ', 9), +('S9', '5367', 'DURSEJ', 9), +('S9', '5368', 'DURSEJ', 9), +('S9', '5369', 'DURSEJ', 9), +('S9', '5370', 'DURSEJ', 9), +('S9', '5371', 'DURSEJ', 9), +('S9', '5372', 'DURSEJ', 9), +('S9', '5373', 'DURSEJ', 9), +('S9', '5374', 'DURSEJ', 9), +('S9', '5375', 'DURSEJ', 9), +('S9', '5376', 'DURSEJ', 9), +('S9', '5377', 'DURSEJ', 9), +('S9', '5378', 'DURSEJ', 9), +('S9', '5379', 'DURSEJ', 9), +('S9', '5380', 'DURSEJ', 9), +('S9', '5381', 'DURSEJ', 9), +('S9', '5382', 'DURSEJ', 9), +('S9', '5383', 'DURSEJ', 9), +('S9', '5384', 'DURSEJ', 9), +('S9', '5385', 'DURSEJ', 9), +('S9', '5386', 'DURSEJ', 9), +('S9', '5387', 'DURSEJ', 9), +('S9', '5388', 'DURSEJ', 9), +('S9', '5389', 'DURSEJ', 9), +('S9', '5390', 'DURSEJ', 9), +('S9', '5391', 'DURSEJ', 9), +('S9', '5392', 'DURSEJ', 9), +('S9', '5393', 'DURSEJ', 9), +('S9', '5394', 'DURSEJ', 9), +('S9', '5395', 'DURSEJ', 9), +('S9', '5396', 'DURSEJ', 9), +('S9', '5397', 'DURSEJ', 9), +('S9', '5398', 'DURSEJ', 9), +('S9', '5399', 'DURSEJ', 9), +('S9', '5400', 'DURSEJ', 9), +('S9', '5401', 'DURSEJ', 9), +('S9', '5402', 'DURSEJ', 9), +('S9', '5403', 'DURSEJ', 9), +('S9', '5404', 'DURSEJ', 9), +('S9', '5405', 'DURSEJ', 9), +('S9', '5406', 'DURSEJ', 9), +('S9', '5407', 'DURSEJ', 9), +('S9', '5408', 'DURSEJ', 9), +('S9', '5409', 'DURSEJ', 9), +('S9', '5410', 'DURSEJ', 9), +('S9', '5411', 'DURSEJ', 9), +('S9', '5412', 'DURSEJ', 9), +('S9', '5413', 'DURSEJ', 9), +('S9', '5414', 'DURSEJ', 9), +('S9', '5415', 'DURSEJ', 9), +('S9', '5416', 'DURSEJ', 9), +('S9', '5417', 'DURSEJ', 9), +('S9', '5418', 'DURSEJ', 9), +('S9', '5419', 'DURSEJ', 9), +('S9', '5420', 'DURSEJ', 9), +('S9', '5421', 'DURSEJ', 9), +('S9', '5422', 'DURSEJ', 9), +('S9', '5423', 'DURSEJ', 9), +('S9', '5424', 'DURSEJ', 9), +('S9', '5425', 'DURSEJ', 9), +('S9', '5426', 'DURSEJ', 9), +('S9', '5427', 'DURSEJ', 9), +('S9', '5428', 'DURSEJ', 9), +('S9', '5429', 'DURSEJ', 9), +('S9', '5430', 'DURSEJ', 9), +('S9', '5431', 'DURSEJ', 9), +('S9', '5432', 'DURSEJ', 9), +('S9', '5433', 'DURSEJ', 9), +('S9', '5434', 'DURSEJ', 9), +('S9', '5435', 'DURSEJ', 9), +('S9', '5436', 'DURSEJ', 9), +('S9', '5437', 'DURSEJ', 9), +('S9', '5438', 'DURSEJ', 9), +('S9', '5439', 'DURSEJ', 9), +('S9', '5440', 'DURSEJ', 9), +('S9', '5441', 'DURSEJ', 9), +('S9', '5442', 'DURSEJ', 9), +('S9', '5443', 'DURSEJ', 9), +('S9', '5444', 'DURSEJ', 9), +('S9', '5445', 'DURSEJ', 9), +('S9', '5446', 'DURSEJ', 9), +('S9', '5447', 'DURSEJ', 9), +('S9', '5448', 'DURSEJ', 9), +('S9', '5449', 'DURSEJ', 9), +('S9', '5450', 'DURSEJ', 9), +('S9', '5451', 'DURSEJ', 9), +('S9', '5452', 'DURSEJ', 9), +('S9', '5453', 'DURSEJ', 9), +('S9', '5454', 'DURSEJ', 9), +('S9', '5455', 'DURSEJ', 9), +('S9', '5456', 'DURSEJ', 9), +('S9', '5457', 'DURSEJ', 9), +('S9', '5458', 'DURSEJ', 9), +('S9', '5459', 'DURSEJ', 9), +('S9', '5460', 'DURSEJ', 9), +('S9', '5461', 'DURSEJ', 9), +('S9', '5462', 'DURSEJ', 9), +('S9', '5463', 'DURSEJ', 9), +('S9', '5464', 'DURSEJ', 9), +('S9', '5465', 'DURSEJ', 9), +('S9', '5466', 'DURSEJ', 9), +('S9', '5467', 'DURSEJ', 9), +('S9', '5468', 'DURSEJ', 9), +('S9', '5469', 'DURSEJ', 9), +('S9', '5470', 'DURSEJ', 9), +('S9', '5471', 'DURSEJ', 9), +('S9', '5472', 'DURSEJ', 9), +('S9', '5473', 'DURSEJ', 9), +('S9', '5474', 'DURSEJ', 9), +('S9', '5475', 'DURSEJ', 9), +('S9', '5476', 'DURSEJ', 9), +('S9', '5477', 'DURSEJ', 9), +('S9', '5478', 'DURSEJ', 9), +('S9', '5479', 'DURSEJ', 9), +('S9', '5480', 'DURSEJ', 9), +('S9', '5481', 'DURSEJ', 9), +('S9', '5482', 'DURSEJ', 9), +('S9', '5483', 'DURSEJ', 9), +('S9', '5484', 'DURSEJ', 9), +('S9', '5485', 'DURSEJ', 9), +('S9', '5486', 'DURSEJ', 9), +('S9', '5487', 'DURSEJ', 9), +('S9', '5488', 'DURSEJ', 9), +('S9', '5489', 'DURSEJ', 9), +('S9', '5490', 'DURSEJ', 9), +('S9', '5491', 'DURSEJ', 9), +('S9', '5492', 'DURSEJ', 9), +('S9', '5493', 'DURSEJ', 9), +('S9', '5494', 'DURSEJ', 9), +('S9', '5495', 'DURSEJ', 9), +('S9', '5496', 'DURSEJ', 9), +('S9', '5497', 'DURSEJ', 9), +('S9', '5498', 'DURSEJ', 9), +('S9', '5499', 'DURSEJ', 9), +('S9', '5500', 'DURSEJ', 9), +('S9', '5501', 'DURSEJ', 9), +('S9', '5502', 'DURSEJ', 9), +('S9', '5503', 'DURSEJ', 9), +('S9', '5504', 'DURSEJ', 9), +('S9', '5505', 'DURSEJ', 9), +('S9', '5506', 'DURSEJ', 9), +('S9', '5507', 'DURSEJ', 9), +('S9', '5508', 'DURSEJ', 9), +('S9', '5509', 'DURSEJ', 9), +('S9', '5510', 'DURSEJ', 9), +('S9', '5511', 'DURSEJ', 9), +('S9', '5512', 'DURSEJ', 9), +('S9', '5513', 'DURSEJ', 9), +('S9', '5514', 'DURSEJ', 9), +('S9', '5515', 'DURSEJ', 9), +('S9', '5516', 'DURSEJ', 9), +('S9', '5517', 'DURSEJ', 9), +('S9', '5518', 'DURSEJ', 9), +('S9', '5519', 'DURSEJ', 9), +('S9', '5520', 'DURSEJ', 9), +('S9', '5521', 'DURSEJ', 9), +('S9', '5522', 'DURSEJ', 9), +('S9', '5523', 'DURSEJ', 9), +('S9', '5524', 'DURSEJ', 9), +('S9', '5525', 'DURSEJ', 9), +('S9', '5526', 'DURSEJ', 9), +('S9', '5527', 'DURSEJ', 9), +('S9', '5528', 'DURSEJ', 9), +('S9', '5529', 'DURSEJ', 9), +('S9', '5530', 'DURSEJ', 9), +('S9', '5531', 'DURSEJ', 9), +('S9', '5532', 'DURSEJ', 9), +('S9', '5533', 'DURSEJ', 9), +('S9', '5534', 'DURSEJ', 9), +('S9', '5535', 'DURSEJ', 9), +('S9', '5536', 'DURSEJ', 9), +('S9', '5537', 'DURSEJ', 9), +('S9', '5538', 'DURSEJ', 9), +('S9', '5539', 'DURSEJ', 9), +('S9', '5540', 'DURSEJ', 9), +('S9', '5541', 'DURSEJ', 9), +('S9', '5542', 'DURSEJ', 9), +('S9', '5543', 'DURSEJ', 9), +('S9', '5544', 'DURSEJ', 9), +('S9', '5545', 'DURSEJ', 9), +('S9', '5546', 'DURSEJ', 9), +('S9', '5547', 'DURSEJ', 9), +('S9', '5548', 'DURSEJ', 9), +('S9', '5549', 'DURSEJ', 9), +('S9', '5550', 'DURSEJ', 9), +('S9', '5551', 'DURSEJ', 9), +('S9', '5552', 'DURSEJ', 9), +('S9', '5553', 'DURSEJ', 9), +('S9', '5554', 'DURSEJ', 9), +('S9', '5555', 'DURSEJ', 9), +('S9', '5556', 'DURSEJ', 9), +('S9', '5557', 'DURSEJ', 9), +('S9', '5558', 'DURSEJ', 9), +('S9', '5559', 'DURSEJ', 9), +('S9', '5560', 'DURSEJ', 9), +('S9', '5561', 'DURSEJ', 9), +('S9', '5562', 'DURSEJ', 9), +('S9', '5563', 'DURSEJ', 9), +('S9', '5564', 'DURSEJ', 9), +('S9', '5565', 'DURSEJ', 9), +('S9', '5566', 'DURSEJ', 9), +('S9', '5567', 'DURSEJ', 9), +('S9', '5568', 'DURSEJ', 9), +('S9', '5569', 'DURSEJ', 9), +('S9', '5570', 'DURSEJ', 9), +('S9', '5571', 'DURSEJ', 9), +('S9', '5572', 'DURSEJ', 9), +('S9', '5573', 'DURSEJ', 9), +('S9', '5574', 'DURSEJ', 9), +('S9', '5575', 'DURSEJ', 9), +('S9', '5576', 'DURSEJ', 9), +('S9', '5577', 'DURSEJ', 9), +('S9', '5578', 'DURSEJ', 9), +('S9', '5579', 'DURSEJ', 9), +('S9', '5580', 'DURSEJ', 9), +('S9', '5581', 'DURSEJ', 9), +('S9', '5582', 'DURSEJ', 9), +('S9', '5583', 'DURSEJ', 9), +('S9', '5584', 'DURSEJ', 9), +('S9', '5585', 'DURSEJ', 9), +('S9', '5586', 'DURSEJ', 9), +('S9', '5587', 'DURSEJ', 9), +('S9', '5588', 'DURSEJ', 9), +('S9', '5589', 'DURSEJ', 9), +('S9', '5590', 'DURSEJ', 9), +('S9', '5591', 'DURSEJ', 9), +('S9', '5592', 'DURSEJ', 9), +('S9', '5593', 'DURSEJ', 9), +('S9', '5594', 'DURSEJ', 9), +('S9', '5595', 'DURSEJ', 9), +('S9', '5596', 'DURSEJ', 9), +('S9', '5597', 'DURSEJ', 9), +('S9', '5598', 'DURSEJ', 9), +('S9', '5599', 'DURSEJ', 9), +('S9', '5600', 'DURSEJ', 9), +('S9', '5601', 'DURSEJ', 9), +('S9', '5602', 'DURSEJ', 9), +('S9', '5603', 'DURSEJ', 9), +('S9', '5604', 'DURSEJ', 9), +('S9', '5605', 'DURSEJ', 9), +('S9', '5606', 'DURSEJ', 9), +('S9', '5607', 'DURSEJ', 9), +('S9', '5608', 'DURSEJ', 9), +('S9', '5609', 'DURSEJ', 9), +('S9', '5610', 'DURSEJ', 9), +('S9', '5611', 'DURSEJ', 9), +('S9', '5612', 'DURSEJ', 9), +('S9', '5613', 'DURSEJ', 9), +('S9', '5614', 'DURSEJ', 9), +('S9', '5615', 'DURSEJ', 9), +('S9', '5616', 'DURSEJ', 9), +('S9', '5617', 'DURSEJ', 9), +('S9', '5618', 'DURSEJ', 9), +('S9', '5619', 'DURSEJ', 9), +('S9', '5620', 'DURSEJ', 9), +('S9', '5621', 'DURSEJ', 9), +('S9', '5622', 'DURSEJ', 9), +('S9', '5623', 'DURSEJ', 9), +('S9', '5624', 'DURSEJ', 9), +('S9', '5625', 'DURSEJ', 9), +('S9', '5626', 'DURSEJ', 9), +('S9', '5627', 'DURSEJ', 9), +('S9', '5628', 'DURSEJ', 9), +('S9', '5629', 'DURSEJ', 9), +('S9', '5630', 'DURSEJ', 9), +('S9', '5631', 'DURSEJ', 9), +('S9', '5632', 'DURSEJ', 9), +('S9', '5633', 'DURSEJ', 9), +('S9', '5634', 'DURSEJ', 9), +('S9', '5635', 'DURSEJ', 9), +('S9', '5636', 'DURSEJ', 9), +('S9', '5637', 'DURSEJ', 9), +('S9', '5638', 'DURSEJ', 9), +('S9', '5639', 'DURSEJ', 9), +('S9', '5640', 'DURSEJ', 9), +('S9', '5641', 'DURSEJ', 9), +('S9', '5642', 'DURSEJ', 9), +('S9', '5643', 'DURSEJ', 9), +('S9', '5644', 'DURSEJ', 9), +('S9', '5645', 'DURSEJ', 9), +('S9', '5646', 'DURSEJ', 9), +('S9', '5647', 'DURSEJ', 9), +('S9', '5648', 'DURSEJ', 9), +('S9', '5649', 'DURSEJ', 9), +('S9', '5650', 'DURSEJ', 9), +('S9', '5651', 'DURSEJ', 9), +('S9', '5652', 'DURSEJ', 9), +('S9', '5653', 'DURSEJ', 9), +('S9', '5654', 'DURSEJ', 9), +('S9', '5655', 'DURSEJ', 9), +('S9', '5656', 'DURSEJ', 9), +('S9', '5657', 'DURSEJ', 9), +('S9', '5658', 'DURSEJ', 9), +('S9', '5659', 'DURSEJ', 9), +('S9', '5660', 'DURSEJ', 9), +('S9', '5661', 'DURSEJ', 9), +('S9', '5662', 'DURSEJ', 9), +('S9', '5663', 'DURSEJ', 9), +('S9', '5664', 'DURSEJ', 9), +('S9', '5665', 'DURSEJ', 9), +('S9', '5666', 'DURSEJ', 9), +('S9', '5667', 'DURSEJ', 9), +('S9', '5668', 'DURSEJ', 9), +('S9', '5669', 'DURSEJ', 9), +('S9', '5670', 'DURSEJ', 9), +('S9', '5671', 'DURSEJ', 9), +('S9', '5672', 'DURSEJ', 9), +('S9', '5673', 'DURSEJ', 9), +('S9', '5674', 'DURSEJ', 9), +('S9', '5675', 'DURSEJ', 9), +('S9', '5676', 'DURSEJ', 9), +('S9', '5677', 'DURSEJ', 9), +('S9', '5678', 'DURSEJ', 9), +('S9', '5679', 'DURSEJ', 9), +('S9', '5680', 'DURSEJ', 9), +('S9', '5681', 'DURSEJ', 9), +('S9', '5682', 'DURSEJ', 9), +('S9', '5683', 'DURSEJ', 9), +('S9', '5684', 'DURSEJ', 9), +('S9', '5685', 'DURSEJ', 9), +('S9', '5686', 'DURSEJ', 9), +('S9', '5687', 'DURSEJ', 9), +('S9', '5688', 'DURSEJ', 9), +('S9', '5689', 'DURSEJ', 9), +('S9', '5690', 'DURSEJ', 9), +('S9', '5691', 'DURSEJ', 9), +('S9', '5692', 'DURSEJ', 9), +('S9', '5693', 'DURSEJ', 9), +('S9', '5694', 'DURSEJ', 9), +('S9', '5695', 'DURSEJ', 9), +('S9', '5696', 'DURSEJ', 9), +('S9', '5697', 'DURSEJ', 9), +('S9', '5698', 'DURSEJ', 9), +('S9', '5699', 'DURSEJ', 9), +('S9', '5700', 'DURSEJ', 9), +('S9', '5701', 'DURSEJ', 9), +('S9', '5702', 'DURSEJ', 9), +('S9', '5703', 'DURSEJ', 9), +('S9', '5704', 'DURSEJ', 9), +('S9', '5705', 'DURSEJ', 9), +('S9', '5706', 'DURSEJ', 9), +('S9', '5707', 'DURSEJ', 9), +('S9', '5708', 'DURSEJ', 9), +('S9', '5709', 'DURSEJ', 9), +('S9', '5710', 'DURSEJ', 9), +('S9', '5711', 'DURSEJ', 9), +('S9', '5712', 'DURSEJ', 9), +('S9', '5713', 'DURSEJ', 9), +('S9', '5714', 'DURSEJ', 9), +('S9', '5715', 'DURSEJ', 9), +('S9', '5716', 'DURSEJ', 9), +('S9', '5717', 'DURSEJ', 9), +('S9', '5718', 'DURSEJ', 9), +('S9', '5719', 'DURSEJ', 9), +('S9', '5720', 'DURSEJ', 9), +('S9', '5721', 'DURSEJ', 9), +('S9', '5722', 'DURSEJ', 9), +('S9', '5723', 'DURSEJ', 9), +('S9', '5724', 'DURSEJ', 9), +('S9', '5725', 'DURSEJ', 9), +('S9', '5726', 'DURSEJ', 9), +('S9', '5727', 'DURSEJ', 9), +('S9', '5728', 'DURSEJ', 9), +('S9', '5729', 'DURSEJ', 9), +('S9', '5730', 'DURSEJ', 9), +('S9', '5731', 'DURSEJ', 9), +('S9', '5732', 'DURSEJ', 9), +('S9', '5733', 'DURSEJ', 9), +('S9', '5734', 'DURSEJ', 9), +('S9', '5735', 'DURSEJ', 9), +('S9', '5736', 'DURSEJ', 9), +('S9', '5737', 'DURSEJ', 9), +('S9', '5738', 'DURSEJ', 9), +('S9', '5739', 'DURSEJ', 9), +('S9', '5740', 'DURSEJ', 9), +('S9', '5741', 'DURSEJ', 9), +('S9', '5742', 'DURSEJ', 9), +('S9', '5743', 'DURSEJ', 9), +('S9', '5744', 'DURSEJ', 9), +('S9', '5745', 'DURSEJ', 9), +('S9', '5746', 'DURSEJ', 9), +('S9', '5747', 'DURSEJ', 9), +('S9', '5748', 'DURSEJ', 9), +('S9', '5749', 'DURSEJ', 9), +('S9', '5750', 'DURSEJ', 9), +('S9', '5751', 'DURSEJ', 9), +('S9', '5752', 'DURSEJ', 9), +('S9', '5753', 'DURSEJ', 9), +('S9', '5754', 'DURSEJ', 9), +('S9', '5755', 'DURSEJ', 9), +('S9', '5756', 'DURSEJ', 9), +('S9', '5757', 'DURSEJ', 9), +('S9', '5758', 'DURSEJ', 9), +('S9', '5759', 'DURSEJ', 9), +('S9', '5760', 'DURSEJ', 9), +('S9', '5761', 'DURSEJ', 9), +('S9', '5762', 'DURSEJ', 9), +('S9', '5763', 'DURSEJ', 9), +('S9', '5764', 'DURSEJ', 9), +('S9', '5765', 'DURSEJ', 9), +('S9', '5766', 'DURSEJ', 9), +('S9', '5767', 'DURSEJ', 9), +('S9', '5768', 'DURSEJ', 9), +('S9', '5769', 'DURSEJ', 9), +('S9', '5770', 'DURSEJ', 9), +('S9', '5771', 'DURSEJ', 9), +('S9', '5772', 'DURSEJ', 9), +('S9', '5773', 'DURSEJ', 9), +('S9', '5774', 'DURSEJ', 9), +('S9', '5775', 'DURSEJ', 9), +('S9', '5776', 'DURSEJ', 9), +('S9', '5777', 'DURSEJ', 9), +('S9', '5778', 'DURSEJ', 9), +('S9', '5779', 'DURSEJ', 9), +('S9', '5780', 'DURSEJ', 9), +('S9', '5781', 'DURSEJ', 9), +('S9', '5782', 'DURSEJ', 9), +('S9', '5783', 'DURSEJ', 9), +('S9', '5784', 'DURSEJ', 9), +('S9', '5785', 'DURSEJ', 9), +('S9', '5786', 'DURSEJ', 9), +('S9', '5787', 'DURSEJ', 9), +('S9', '5788', 'DURSEJ', 9), +('S9', '5789', 'DURSEJ', 9), +('S9', '5790', 'DURSEJ', 9), +('S9', '5791', 'DURSEJ', 9), +('S9', '5792', 'DURSEJ', 9), +('S9', '5793', 'DURSEJ', 9), +('S9', '5794', 'DURSEJ', 9), +('S9', '5795', 'DURSEJ', 9), +('S9', '5796', 'DURSEJ', 9), +('S9', '5797', 'DURSEJ', 9), +('S9', '5798', 'DURSEJ', 9), +('S9', '5799', 'DURSEJ', 9), +('S9', '5800', 'DURSEJ', 9), +('S9', '5801', 'DURSEJ', 9), +('S9', '5802', 'DURSEJ', 9), +('S9', '5803', 'DURSEJ', 9), +('S9', '5804', 'DURSEJ', 9), +('S9', '5805', 'DURSEJ', 9), +('S9', '5806', 'DURSEJ', 9), +('S9', '5807', 'DURSEJ', 9), +('S9', '5808', 'DURSEJ', 9), +('S9', '5809', 'DURSEJ', 9), +('S9', '5810', 'DURSEJ', 9), +('S9', '5811', 'DURSEJ', 9), +('S9', '5812', 'DURSEJ', 9), +('S9', '5813', 'DURSEJ', 9), +('S9', '5814', 'DURSEJ', 9), +('S9', '5815', 'DURSEJ', 9), +('S9', '5816', 'DURSEJ', 9), +('S9', '5817', 'DURSEJ', 9), +('S9', '5818', 'DURSEJ', 9), +('S9', '5819', 'DURSEJ', 9), +('S9', '5820', 'DURSEJ', 9), +('S9', '5821', 'DURSEJ', 9), +('S9', '5822', 'DURSEJ', 9), +('S9', '5823', 'DURSEJ', 9), +('S9', '5824', 'DURSEJ', 9), +('S9', '5825', 'DURSEJ', 9), +('S9', '5826', 'DURSEJ', 9), +('S9', '5827', 'DURSEJ', 9), +('S9', '5828', 'DURSEJ', 9), +('S9', '5829', 'DURSEJ', 9), +('S9', '5830', 'DURSEJ', 9), +('S9', '5831', 'DURSEJ', 9), +('S9', '5832', 'DURSEJ', 9), +('S9', '5833', 'DURSEJ', 9), +('S9', '5834', 'DURSEJ', 9), +('S9', '5835', 'DURSEJ', 9), +('S9', '5836', 'DURSEJ', 9), +('S9', '5837', 'DURSEJ', 9), +('S9', '5838', 'DURSEJ', 9), +('S9', '5839', 'DURSEJ', 9), +('S9', '5840', 'DURSEJ', 9), +('S9', '5841', 'DURSEJ', 9), +('S9', '5842', 'DURSEJ', 9), +('S9', '5843', 'DURSEJ', 9), +('S9', '5844', 'DURSEJ', 9), +('S9', '5845', 'DURSEJ', 9), +('S9', '5846', 'DURSEJ', 9), +('S9', '5847', 'DURSEJ', 9), +('S9', '5848', 'DURSEJ', 9), +('S9', '5849', 'DURSEJ', 9), +('S9', '5850', 'DURSEJ', 9), +('S9', '5851', 'DURSEJ', 9), +('S9', '5852', 'DURSEJ', 9), +('S9', '5853', 'DURSEJ', 9), +('S9', '5854', 'DURSEJ', 9), +('S9', '5855', 'DURSEJ', 9), +('S9', '5856', 'DURSEJ', 9), +('S9', '5857', 'DURSEJ', 9), +('S9', '5858', 'DURSEJ', 9), +('S9', '5859', 'DURSEJ', 9), +('S9', '5860', 'DURSEJ', 9), +('S9', '5861', 'DURSEJ', 9), +('S9', '5862', 'DURSEJ', 9), +('S9', '5863', 'DURSEJ', 9), +('S9', '5864', 'DURSEJ', 9), +('S9', '5865', 'DURSEJ', 9), +('S9', '5866', 'DURSEJ', 9), +('S9', '5867', 'DURSEJ', 9), +('S9', '5868', 'DURSEJ', 9), +('S9', '5869', 'DURSEJ', 9), +('S9', '5870', 'DURSEJ', 9), +('S9', '5871', 'DURSEJ', 9), +('S9', '5872', 'DURSEJ', 9), +('S9', '5873', 'DURSEJ', 9), +('S9', '5874', 'DURSEJ', 9), +('S9', '5875', 'DURSEJ', 9), +('S9', '5876', 'DURSEJ', 9), +('S9', '5877', 'DURSEJ', 9), +('S9', '5878', 'DURSEJ', 9), +('S9', '5879', 'DURSEJ', 9), +('S9', '5880', 'DURSEJ', 9), +('S9', '5881', 'DURSEJ', 9), +('S9', '5882', 'DURSEJ', 9), +('S9', '5883', 'DURSEJ', 9), +('S9', '5884', 'DURSEJ', 9), +('S9', '5885', 'DURSEJ', 9), +('S9', '5886', 'DURSEJ', 9), +('S9', '5887', 'DURSEJ', 9), +('S9', '5888', 'DURSEJ', 9), +('S9', '5889', 'DURSEJ', 9), +('S9', '5890', 'DURSEJ', 9), +('S9', '5891', 'DURSEJ', 9), +('S9', '5892', 'DURSEJ', 9), +('S9', '5893', 'DURSEJ', 9), +('S9', '5894', 'DURSEJ', 9), +('S9', '5895', 'DURSEJ', 9), +('S9', '5896', 'DURSEJ', 9), +('S9', '5897', 'DURSEJ', 9), +('S9', '5898', 'DURSEJ', 9), +('S9', '5899', 'DURSEJ', 9), +('S9', '5900', 'DURSEJ', 9), +('S9', '5901', 'DURSEJ', 9), +('S9', '5902', 'DURSEJ', 9), +('S9', '5903', 'DURSEJ', 9), +('S9', '5904', 'DURSEJ', 9), +('S9', '5905', 'DURSEJ', 9), +('S9', '5906', 'DURSEJ', 9), +('S9', '5907', 'DURSEJ', 9), +('S9', '5908', 'DURSEJ', 9), +('S9', '5909', 'DURSEJ', 9), +('S9', '5910', 'DURSEJ', 9), +('S9', '5911', 'DURSEJ', 9), +('S9', '5912', 'DURSEJ', 9), +('S9', '5913', 'DURSEJ', 9), +('S9', '5914', 'DURSEJ', 9), +('S9', '5915', 'DURSEJ', 9), +('S9', '5916', 'DURSEJ', 9), +('S9', '5917', 'DURSEJ', 9), +('S9', '5918', 'DURSEJ', 9), +('S9', '5919', 'DURSEJ', 9), +('S9', '5920', 'DURSEJ', 9), +('S9', '5921', 'DURSEJ', 9), +('S9', '5922', 'DURSEJ', 9), +('S9', '5923', 'DURSEJ', 9), +('S9', '5924', 'DURSEJ', 9), +('S9', '5925', 'DURSEJ', 9), +('S9', '5926', 'DURSEJ', 9), +('S9', '5927', 'DURSEJ', 9), +('S9', '5928', 'DURSEJ', 9), +('S9', '5929', 'DURSEJ', 9), +('S9', '5930', 'DURSEJ', 9), +('S9', '5931', 'DURSEJ', 9), +('S9', '5932', 'DURSEJ', 9), +('S9', '5933', 'DURSEJ', 9), +('S9', '5934', 'DURSEJ', 9), +('S9', '5935', 'DURSEJ', 9), +('S9', '5936', 'DURSEJ', 9), +('S9', '5937', 'DURSEJ', 9), +('S9', '5938', 'DURSEJ', 9), +('S9', '5939', 'DURSEJ', 9), +('S9', '5940', 'DURSEJ', 9), +('S9', '5941', 'DURSEJ', 9), +('S9', '5942', 'DURSEJ', 9), +('S9', '5943', 'DURSEJ', 9), +('S9', '5944', 'DURSEJ', 9), +('S9', '5945', 'DURSEJ', 9), +('S9', '5946', 'DURSEJ', 9), +('S9', '5947', 'DURSEJ', 9), +('S9', '5948', 'DURSEJ', 9), +('S9', '5949', 'DURSEJ', 9), +('S9', '5950', 'DURSEJ', 9), +('S9', '5951', 'DURSEJ', 9), +('S9', '5952', 'DURSEJ', 9), +('S9', '5953', 'DURSEJ', 9), +('S9', '5954', 'DURSEJ', 9), +('S9', '5955', 'DURSEJ', 9), +('S9', '5956', 'DURSEJ', 9), +('S9', '5957', 'DURSEJ', 9), +('S9', '5958', 'DURSEJ', 9), +('S9', '5959', 'DURSEJ', 9), +('S9', '5960', 'DURSEJ', 9), +('S9', '5961', 'DURSEJ', 9), +('S9', '5962', 'DURSEJ', 9), +('S9', '5963', 'DURSEJ', 9), +('S9', '5964', 'DURSEJ', 9), +('S9', '5965', 'DURSEJ', 9), +('S9', '5966', 'DURSEJ', 9), +('S9', '5967', 'DURSEJ', 9), +('S9', '5968', 'DURSEJ', 9), +('S9', '5969', 'DURSEJ', 9), +('S9', '5970', 'DURSEJ', 9), +('S9', '5971', 'DURSEJ', 9), +('S9', '5972', 'DURSEJ', 9), +('S9', '5973', 'DURSEJ', 9), +('S9', '5974', 'DURSEJ', 9), +('S9', '5975', 'DURSEJ', 9), +('S9', '5976', 'DURSEJ', 9), +('S9', '5977', 'DURSEJ', 9), +('S9', '5978', 'DURSEJ', 9), +('S9', '5979', 'DURSEJ', 9), +('S9', '5980', 'DURSEJ', 9), +('S9', '5981', 'DURSEJ', 9), +('S9', '5982', 'DURSEJ', 9), +('S9', '5983', 'DURSEJ', 9), +('S9', '5984', 'DURSEJ', 9), +('S9', '5985', 'DURSEJ', 9), +('S9', '5986', 'DURSEJ', 9), +('S9', '5987', 'DURSEJ', 9), +('S9', '5988', 'DURSEJ', 9), +('S9', '5989', 'DURSEJ', 9), +('S9', '5990', 'DURSEJ', 9), +('S9', '5991', 'DURSEJ', 9), +('S9', '5992', 'DURSEJ', 9), +('S9', '5993', 'DURSEJ', 9), +('S9', '5994', 'DURSEJ', 9), +('S9', '5995', 'DURSEJ', 9), +('S9', '5996', 'DURSEJ', 9), +('S9', '5997', 'DURSEJ', 9), +('S9', '5998', 'DURSEJ', 9), +('S9', '5999', 'DURSEJ', 9), +('S9', '6000', 'DURSEJ', 9), +('S9', '6001', 'DURSEJ', 9), +('S9', '6002', 'DURSEJ', 9), +('S9', '6003', 'DURSEJ', 9), +('S9', '6004', 'DURSEJ', 9), +('S9', '6005', 'DURSEJ', 9), +('S9', '6006', 'DURSEJ', 9), +('S9', '6007', 'DURSEJ', 9), +('S9', '6008', 'DURSEJ', 9), +('S9', '6009', 'DURSEJ', 9), +('S9', '6010', 'DURSEJ', 9), +('S9', '6011', 'DURSEJ', 9), +('S9', '6012', 'DURSEJ', 9), +('S9', '6013', 'DURSEJ', 9), +('S9', '6014', 'DURSEJ', 9), +('S9', '6015', 'DURSEJ', 9), +('S9', '6016', 'DURSEJ', 9), +('S9', '6017', 'DURSEJ', 9), +('S9', '6018', 'DURSEJ', 9), +('S9', '6019', 'DURSEJ', 9), +('S9', '6020', 'DURSEJ', 9), +('S9', '6021', 'DURSEJ', 9), +('S9', '6022', 'DURSEJ', 9), +('S9', '6023', 'DURSEJ', 9), +('S9', '6024', 'DURSEJ', 9), +('S9', '6025', 'DURSEJ', 9), +('S9', '6026', 'DURSEJ', 9), +('S9', '6027', 'DURSEJ', 9), +('S9', '6028', 'DURSEJ', 9), +('S9', '6029', 'DURSEJ', 9), +('S9', '6030', 'DURSEJ', 9), +('S9', '6031', 'DURSEJ', 9), +('S9', '6032', 'DURSEJ', 9), +('S9', '6033', 'DURSEJ', 9), +('S9', '6034', 'DURSEJ', 9), +('S9', '6035', 'DURSEJ', 9), +('S9', '6036', 'DURSEJ', 9), +('S9', '6037', 'DURSEJ', 9), +('S9', '6038', 'DURSEJ', 9), +('S9', '6039', 'DURSEJ', 9), +('S9', '6040', 'DURSEJ', 9), +('S9', '6041', 'DURSEJ', 9), +('S9', '6042', 'DURSEJ', 9), +('S9', '6043', 'DURSEJ', 9), +('S9', '6044', 'DURSEJ', 9), +('S9', '6045', 'DURSEJ', 9), +('S9', '6046', 'DURSEJ', 9), +('S9', '6047', 'DURSEJ', 9), +('S9', '6048', 'DURSEJ', 9), +('S9', '6049', 'DURSEJ', 9), +('S9', '6050', 'DURSEJ', 9), +('S9', '6051', 'DURSEJ', 9), +('S9', '6052', 'DURSEJ', 9), +('S9', '6053', 'DURSEJ', 9), +('S9', '6054', 'DURSEJ', 9), +('S9', '6055', 'DURSEJ', 9), +('S9', '6056', 'DURSEJ', 9), +('S9', '6057', 'DURSEJ', 9), +('S9', '6058', 'DURSEJ', 9), +('S9', '6059', 'DURSEJ', 9), +('S9', '6060', 'DURSEJ', 9), +('S9', '6061', 'DURSEJ', 9), +('S9', '6062', 'DURSEJ', 9), +('S9', '6063', 'DURSEJ', 9), +('S9', '6064', 'DURSEJ', 9), +('S9', '6065', 'DURSEJ', 9), +('S9', '6066', 'DURSEJ', 9), +('S9', '6067', 'DURSEJ', 9), +('S9', '6068', 'DURSEJ', 9), +('S9', '6069', 'DURSEJ', 9), +('S9', '6070', 'DURSEJ', 9), +('S9', '6071', 'DURSEJ', 9), +('S9', '6072', 'DURSEJ', 9), +('S9', '6073', 'DURSEJ', 9), +('S9', '6074', 'DURSEJ', 9), +('S9', '6075', 'DURSEJ', 9), +('S9', '6076', 'DURSEJ', 9), +('S9', '6077', 'DURSEJ', 9), +('S9', '6078', 'DURSEJ', 9), +('S9', '6079', 'DURSEJ', 9), +('S9', '6080', 'DURSEJ', 9), +('S9', '6081', 'DURSEJ', 9), +('S9', '6082', 'DURSEJ', 9), +('S9', '6083', 'DURSEJ', 9), +('S9', '6084', 'DURSEJ', 9), +('S9', '6085', 'DURSEJ', 9), +('S9', '6086', 'DURSEJ', 9), +('S9', '6087', 'DURSEJ', 9), +('S9', '6088', 'DURSEJ', 9), +('S9', '6089', 'DURSEJ', 9), +('S9', '6090', 'DURSEJ', 9), +('S9', '6091', 'DURSEJ', 9), +('S9', '6092', 'DURSEJ', 9), +('S9', '6093', 'DURSEJ', 9), +('S9', '6094', 'DURSEJ', 9), +('S9', '6095', 'DURSEJ', 9), +('S9', '6096', 'DURSEJ', 9), +('S9', '6097', 'DURSEJ', 9), +('S9', '6098', 'DURSEJ', 9), +('S9', '6099', 'DURSEJ', 9), +('S9', '6100', 'DURSEJ', 9), +('S9', '6101', 'DURSEJ', 9), +('S9', '6102', 'DURSEJ', 9), +('S9', '6103', 'DURSEJ', 9), +('S9', '6104', 'DURSEJ', 9), +('S9', '6105', 'DURSEJ', 9), +('S9', '6106', 'DURSEJ', 9), +('S9', '6107', 'DURSEJ', 9), +('S9', '6108', 'DURSEJ', 9), +('S9', '6109', 'DURSEJ', 9), +('S9', '6110', 'DURSEJ', 9), +('S9', '6111', 'DURSEJ', 9), +('S9', '6112', 'DURSEJ', 9), +('S9', '6113', 'DURSEJ', 9), +('S9', '6114', 'DURSEJ', 9), +('S9', '6115', 'DURSEJ', 9), +('S9', '6116', 'DURSEJ', 9), +('S9', '6117', 'DURSEJ', 9), +('S9', '6118', 'DURSEJ', 9), +('S9', '6119', 'DURSEJ', 9), +('S9', '6120', 'DURSEJ', 9), +('S9', '6121', 'DURSEJ', 9), +('S9', '6122', 'DURSEJ', 9), +('S9', '6123', 'DURSEJ', 9), +('S9', '6124', 'DURSEJ', 9), +('S9', '6125', 'DURSEJ', 9), +('S9', '6126', 'DURSEJ', 9), +('S9', '6127', 'DURSEJ', 9), +('S9', '6128', 'DURSEJ', 9), +('S9', '6129', 'DURSEJ', 9), +('S9', '6130', 'DURSEJ', 9), +('S9', '6131', 'DURSEJ', 9), +('S9', '6132', 'DURSEJ', 9), +('S9', '6133', 'DURSEJ', 9), +('S9', '6134', 'DURSEJ', 9), +('S9', '6135', 'DURSEJ', 9), +('S9', '6136', 'DURSEJ', 9), +('S9', '6137', 'DURSEJ', 9), +('S9', '6138', 'DURSEJ', 9), +('S9', '6139', 'DURSEJ', 9), +('S9', '6140', 'DURSEJ', 9), +('S9', '6141', 'DURSEJ', 9), +('S9', '6142', 'DURSEJ', 9), +('S9', '6143', 'DURSEJ', 9), +('S9', '6144', 'DURSEJ', 9), +('S9', '6145', 'DURSEJ', 9), +('S9', '6146', 'DURSEJ', 9), +('S9', '6147', 'DURSEJ', 9), +('S9', '6148', 'DURSEJ', 9), +('S9', '6149', 'DURSEJ', 9), +('S9', '6150', 'DURSEJ', 9), +('S9', '6151', 'DURSEJ', 9), +('S9', '6152', 'DURSEJ', 9), +('S9', '6153', 'DURSEJ', 9), +('S9', '6154', 'DURSEJ', 9), +('S9', '6155', 'DURSEJ', 9), +('S9', '6156', 'DURSEJ', 9), +('S9', '6157', 'DURSEJ', 9), +('S9', '6158', 'DURSEJ', 9), +('S9', '6159', 'DURSEJ', 9), +('S9', '6160', 'DURSEJ', 9), +('S9', '6161', 'DURSEJ', 9), +('S9', '6162', 'DURSEJ', 9), +('S9', '6163', 'DURSEJ', 9), +('S9', '6164', 'DURSEJ', 9), +('S9', '6165', 'DURSEJ', 9), +('S9', '6166', 'DURSEJ', 9), +('S9', '6167', 'DURSEJ', 9), +('S9', '6168', 'DURSEJ', 9), +('S9', '6169', 'DURSEJ', 9), +('S9', '6170', 'DURSEJ', 9), +('S9', '6171', 'DURSEJ', 9), +('S9', '6172', 'DURSEJ', 9), +('S9', '6173', 'DURSEJ', 9), +('S9', '6174', 'DURSEJ', 9), +('S9', '6175', 'DURSEJ', 9), +('S9', '6176', 'DURSEJ', 9), +('S9', '6177', 'DURSEJ', 9), +('S9', '6178', 'DURSEJ', 9), +('S9', '6179', 'DURSEJ', 9), +('S9', '6180', 'DURSEJ', 9), +('S9', '6181', 'DURSEJ', 9), +('S9', '6182', 'DURSEJ', 9), +('S9', '6183', 'DURSEJ', 9), +('S9', '6184', 'DURSEJ', 9), +('S9', '6185', 'DURSEJ', 9), +('S9', '6186', 'DURSEJ', 9), +('S9', '6187', 'DURSEJ', 9), +('S9', '6188', 'DURSEJ', 9), +('S9', '6189', 'DURSEJ', 9), +('S9', '6190', 'DURSEJ', 9), +('S9', '6191', 'DURSEJ', 9), +('S9', '6192', 'DURSEJ', 9), +('S9', '6193', 'DURSEJ', 9), +('S9', '6194', 'DURSEJ', 9), +('S9', '6195', 'DURSEJ', 9), +('S9', '6196', 'DURSEJ', 9), +('S9', '6197', 'DURSEJ', 9), +('S9', '6198', 'DURSEJ', 9), +('S9', '6199', 'DURSEJ', 9), +('S9', '6200', 'DURSEJ', 9), +('S9', '6201', 'DURSEJ', 9), +('S9', '6202', 'DURSEJ', 9), +('S9', '6203', 'DURSEJ', 9), +('S9', '6204', 'DURSEJ', 9), +('S9', '6205', 'DURSEJ', 9), +('S9', '6206', 'DURSEJ', 9), +('S9', '6207', 'DURSEJ', 9), +('S9', '6208', 'DURSEJ', 9), +('S9', '6209', 'DURSEJ', 9), +('S9', '6210', 'DURSEJ', 9), +('S9', '6211', 'DURSEJ', 9), +('S9', '6212', 'DURSEJ', 9), +('S9', '6213', 'DURSEJ', 9), +('S9', '6214', 'DURSEJ', 9), +('S9', '6215', 'DURSEJ', 9), +('S9', '6216', 'DURSEJ', 9), +('S9', '6217', 'DURSEJ', 9), +('S9', '6218', 'DURSEJ', 9), +('S9', '6219', 'DURSEJ', 9), +('S9', '6220', 'DURSEJ', 9), +('S9', '6221', 'DURSEJ', 9), +('S9', '6222', 'DURSEJ', 9), +('S9', '6223', 'DURSEJ', 9), +('S9', '6224', 'DURSEJ', 9), +('S9', '6225', 'DURSEJ', 9), +('S9', '6226', 'DURSEJ', 9), +('S9', '6227', 'DURSEJ', 9), +('S9', '6228', 'DURSEJ', 9), +('S9', '6229', 'DURSEJ', 9), +('S9', '6230', 'DURSEJ', 9), +('S9', '6231', 'DURSEJ', 9), +('S9', '6232', 'DURSEJ', 9), +('S9', '6233', 'DURSEJ', 9), +('S9', '6234', 'DURSEJ', 9), +('S9', '6235', 'DURSEJ', 9), +('S9', '6236', 'DURSEJ', 9), +('S9', '6237', 'DURSEJ', 9), +('S9', '6238', 'DURSEJ', 9), +('S9', '6239', 'DURSEJ', 9), +('S9', '6240', 'DURSEJ', 9), +('S9', '6241', 'DURSEJ', 9), +('S9', '6242', 'DURSEJ', 9), +('S9', '6243', 'DURSEJ', 9), +('S9', '6244', 'DURSEJ', 9), +('S9', '6245', 'DURSEJ', 9), +('S9', '6246', 'DURSEJ', 9), +('S9', '6247', 'DURSEJ', 9), +('S9', '6248', 'DURSEJ', 9), +('S9', '6249', 'DURSEJ', 9), +('S9', '6250', 'DURSEJ', 9), +('S9', '6251', 'DURSEJ', 9), +('S9', '6252', 'DURSEJ', 9), +('S9', '6253', 'DURSEJ', 9), +('S9', '6254', 'DURSEJ', 9), +('S9', '6255', 'DURSEJ', 9), +('S9', '6256', 'DURSEJ', 9), +('S9', '6257', 'DURSEJ', 9), +('S9', '6258', 'DURSEJ', 9), +('S9', '6259', 'DURSEJ', 9), +('S9', '6260', 'DURSEJ', 9), +('S9', '6261', 'DURSEJ', 9), +('S9', '6262', 'DURSEJ', 9), +('S9', '6263', 'DURSEJ', 9), +('S9', '6264', 'DURSEJ', 9), +('S9', '6265', 'DURSEJ', 9), +('S9', '6266', 'DURSEJ', 9), +('S9', '6267', 'DURSEJ', 9), +('S9', '6268', 'DURSEJ', 9), +('S9', '6269', 'DURSEJ', 9), +('S9', '6270', 'DURSEJ', 9), +('S9', '6271', 'DURSEJ', 9), +('S9', '6272', 'DURSEJ', 9), +('S9', '6273', 'DURSEJ', 9), +('S9', '6274', 'DURSEJ', 9), +('S9', '6275', 'DURSEJ', 9), +('S9', '6276', 'DURSEJ', 9), +('S9', '6277', 'DURSEJ', 9), +('S9', '6278', 'DURSEJ', 9), +('S9', '6279', 'DURSEJ', 9), +('S9', '6280', 'DURSEJ', 9), +('S9', '6281', 'DURSEJ', 9), +('S9', '6282', 'DURSEJ', 9), +('S9', '6283', 'DURSEJ', 9), +('S9', '6284', 'DURSEJ', 9), +('S9', '6285', 'DURSEJ', 9), +('S9', '6286', 'DURSEJ', 9), +('S9', '6287', 'DURSEJ', 9), +('S9', '6288', 'DURSEJ', 9), +('S9', '6289', 'DURSEJ', 9), +('S9', '6290', 'DURSEJ', 9), +('S9', '6291', 'DURSEJ', 9), +('S9', '6292', 'DURSEJ', 9), +('S9', '6293', 'DURSEJ', 9), +('S9', '6294', 'DURSEJ', 9), +('S9', '6295', 'DURSEJ', 9), +('S9', '6296', 'DURSEJ', 9), +('S9', '6297', 'DURSEJ', 9), +('S9', '6298', 'DURSEJ', 9), +('S9', '6299', 'DURSEJ', 9), +('S9', '6300', 'DURSEJ', 9), +('S9', '6301', 'DURSEJ', 9), +('S9', '6302', 'DURSEJ', 9), +('S9', '6303', 'DURSEJ', 9), +('S9', '6304', 'DURSEJ', 9), +('S9', '6305', 'DURSEJ', 9), +('S9', '6306', 'DURSEJ', 9), +('S9', '6307', 'DURSEJ', 9), +('S9', '6308', 'DURSEJ', 9), +('S9', '6309', 'DURSEJ', 9), +('S9', '6310', 'DURSEJ', 9), +('S9', '6311', 'DURSEJ', 9), +('S9', '6312', 'DURSEJ', 9), +('S9', '6313', 'DURSEJ', 9), +('S9', '6314', 'DURSEJ', 9), +('S9', '6315', 'DURSEJ', 9), +('S9', '6316', 'DURSEJ', 9), +('S9', '6317', 'DURSEJ', 9), +('S9', '6318', 'DURSEJ', 9), +('S9', '6319', 'DURSEJ', 9), +('S9', '6320', 'DURSEJ', 9), +('S9', '6321', 'DURSEJ', 9), +('S9', '6322', 'DURSEJ', 9), +('S9', '6323', 'DURSEJ', 9), +('S9', '6324', 'DURSEJ', 9), +('S9', '6325', 'DURSEJ', 9), +('S9', '6326', 'DURSEJ', 9), +('S9', '6327', 'DURSEJ', 9), +('S9', '6328', 'DURSEJ', 9), +('S9', '6329', 'DURSEJ', 9), +('S9', '6330', 'DURSEJ', 9), +('S9', '6331', 'DURSEJ', 9), +('S9', '6332', 'DURSEJ', 9), +('S9', '6333', 'DURSEJ', 9), +('S9', '6334', 'DURSEJ', 9), +('S9', '6335', 'DURSEJ', 9), +('S9', '6336', 'DURSEJ', 9), +('S9', '6337', 'DURSEJ', 9), +('S9', '6338', 'DURSEJ', 9), +('S9', '6339', 'DURSEJ', 9), +('S9', '6340', 'DURSEJ', 9), +('S9', '6341', 'DURSEJ', 9), +('S9', '6342', 'DURSEJ', 9), +('S9', '6343', 'DURSEJ', 9), +('S9', '6344', 'DURSEJ', 9), +('S9', '6345', 'DURSEJ', 9), +('S9', '6346', 'DURSEJ', 9), +('S9', '6347', 'DURSEJ', 9), +('S9', '6348', 'DURSEJ', 9), +('S9', '6349', 'DURSEJ', 9), +('S9', '6350', 'DURSEJ', 9), +('S9', '6351', 'DURSEJ', 9), +('S9', '6352', 'DURSEJ', 9), +('S9', '6353', 'DURSEJ', 9), +('S9', '6354', 'DURSEJ', 9), +('S9', '6355', 'DURSEJ', 9), +('S9', '6356', 'DURSEJ', 9), +('S9', '6357', 'DURSEJ', 9), +('S9', '6358', 'DURSEJ', 9), +('S9', '6359', 'DURSEJ', 9), +('S9', '6360', 'DURSEJ', 9), +('S9', '6361', 'DURSEJ', 9), +('S9', '6362', 'DURSEJ', 9), +('S9', '6363', 'DURSEJ', 9), +('S9', '6364', 'DURSEJ', 9), +('S9', '6365', 'DURSEJ', 9), +('S9', '6366', 'DURSEJ', 9), +('S9', '6367', 'DURSEJ', 9), +('S9', '6368', 'DURSEJ', 9), +('S9', '6369', 'DURSEJ', 9), +('S9', '6370', 'DURSEJ', 9), +('S9', '6371', 'DURSEJ', 9), +('S9', '6372', 'DURSEJ', 9), +('S9', '6373', 'DURSEJ', 9), +('S9', '6374', 'DURSEJ', 9), +('S9', '6375', 'DURSEJ', 9), +('S9', '6376', 'DURSEJ', 9), +('S9', '6377', 'DURSEJ', 9), +('S9', '6378', 'DURSEJ', 9), +('S9', '6379', 'DURSEJ', 9), +('S9', '6380', 'DURSEJ', 9), +('S9', '6381', 'DURSEJ', 9), +('S9', '6382', 'DURSEJ', 9), +('S9', '6383', 'DURSEJ', 9), +('S9', '6384', 'DURSEJ', 9), +('S9', '6385', 'DURSEJ', 9), +('S9', '6386', 'DURSEJ', 9), +('S9', '6387', 'DURSEJ', 9), +('S9', '6388', 'DURSEJ', 9), +('S9', '6389', 'DURSEJ', 9), +('S9', '6390', 'DURSEJ', 9), +('S9', '6391', 'DURSEJ', 9), +('S9', '6392', 'DURSEJ', 9), +('S9', '6393', 'DURSEJ', 9), +('S9', '6394', 'DURSEJ', 9), +('S9', '6395', 'DURSEJ', 9), +('S9', '6396', 'DURSEJ', 9), +('S9', '6397', 'DURSEJ', 9), +('S9', '6398', 'DURSEJ', 9), +('S9', '6399', 'DURSEJ', 9), +('S9', '6400', 'DURSEJ', 9), +('S9', '6401', 'DURSEJ', 9), +('S9', '6402', 'DURSEJ', 9), +('S9', '6403', 'DURSEJ', 9), +('S9', '6404', 'DURSEJ', 9), +('S9', '6405', 'DURSEJ', 9), +('S9', '6406', 'DURSEJ', 9), +('S9', '6407', 'DURSEJ', 9), +('S9', '6408', 'DURSEJ', 9), +('S9', '6409', 'DURSEJ', 9), +('S9', '6410', 'DURSEJ', 9), +('S9', '6411', 'DURSEJ', 9), +('S9', '6412', 'DURSEJ', 9), +('S9', '6413', 'DURSEJ', 9), +('S9', '6414', 'DURSEJ', 9), +('S9', '6415', 'DURSEJ', 9), +('S9', '6416', 'DURSEJ', 9), +('S9', '6417', 'DURSEJ', 9), +('S9', '6418', 'DURSEJ', 9), +('S9', '6419', 'DURSEJ', 9), +('S9', '6420', 'DURSEJ', 9), +('S9', '6421', 'DURSEJ', 9), +('S9', '6422', 'DURSEJ', 9), +('S9', '6423', 'DURSEJ', 9), +('S9', '6424', 'DURSEJ', 9), +('S9', '6425', 'DURSEJ', 9), +('S9', '6426', 'DURSEJ', 9), +('S9', '6427', 'DURSEJ', 9), +('S9', '6428', 'DURSEJ', 9), +('S9', '6429', 'DURSEJ', 9), +('S9', '6430', 'DURSEJ', 9), +('S9', '6431', 'DURSEJ', 9), +('S9', '6432', 'DURSEJ', 9), +('S9', '6433', 'DURSEJ', 9), +('S9', '6434', 'DURSEJ', 9), +('S9', '6435', 'DURSEJ', 9), +('S9', '6436', 'DURSEJ', 9), +('S9', '6437', 'DURSEJ', 9), +('S9', '6438', 'DURSEJ', 9), +('S9', '6439', 'DURSEJ', 9), +('S9', '6440', 'DURSEJ', 9), +('S9', '6441', 'DURSEJ', 9), +('S9', '6442', 'DURSEJ', 9), +('S9', '6443', 'DURSEJ', 9), +('S9', '6444', 'DURSEJ', 9), +('S9', '6445', 'DURSEJ', 9), +('S9', '6446', 'DURSEJ', 9), +('S9', '6447', 'DURSEJ', 9), +('S9', '6448', 'DURSEJ', 9), +('S9', '6449', 'DURSEJ', 9), +('S9', '6450', 'DURSEJ', 9), +('S9', '6451', 'DURSEJ', 9), +('S9', '6452', 'DURSEJ', 9), +('S9', '6453', 'DURSEJ', 9), +('S9', '6454', 'DURSEJ', 9), +('S9', '6455', 'DURSEJ', 9), +('S9', '6456', 'DURSEJ', 9), +('S9', '6457', 'DURSEJ', 9), +('S9', '6458', 'DURSEJ', 9), +('S9', '6459', 'DURSEJ', 9), +('S9', '6460', 'DURSEJ', 9), +('S9', '6461', 'DURSEJ', 9), +('S9', '6462', 'DURSEJ', 9), +('S9', '6463', 'DURSEJ', 9), +('S9', '6464', 'DURSEJ', 9), +('S9', '6465', 'DURSEJ', 9), +('S9', '6466', 'DURSEJ', 9), +('S9', '6467', 'DURSEJ', 9), +('S9', '6468', 'DURSEJ', 9), +('S9', '6469', 'DURSEJ', 9), +('S9', '6470', 'DURSEJ', 9), +('S9', '6471', 'DURSEJ', 9), +('S9', '6472', 'DURSEJ', 9), +('S9', '6473', 'DURSEJ', 9), +('S9', '6474', 'DURSEJ', 9), +('S9', '6475', 'DURSEJ', 9), +('S9', '6476', 'DURSEJ', 9), +('S9', '6477', 'DURSEJ', 9), +('S9', '6478', 'DURSEJ', 9), +('S9', '6479', 'DURSEJ', 9), +('S9', '6480', 'DURSEJ', 9), +('S9', '6481', 'DURSEJ', 9), +('S9', '6482', 'DURSEJ', 9), +('S9', '6483', 'DURSEJ', 9), +('S9', '6484', 'DURSEJ', 9), +('S9', '6485', 'DURSEJ', 9), +('S9', '6486', 'DURSEJ', 9), +('S9', '6487', 'DURSEJ', 9), +('S9', '6488', 'DURSEJ', 9), +('S9', '6489', 'DURSEJ', 9), +('S9', '6490', 'DURSEJ', 9), +('S9', '6491', 'DURSEJ', 9), +('S9', '6492', 'DURSEJ', 9), +('S9', '6493', 'DURSEJ', 9), +('S9', '6494', 'DURSEJ', 9), +('S9', '6495', 'DURSEJ', 9), +('S9', '6496', 'DURSEJ', 9), +('S9', '6497', 'DURSEJ', 9), +('S9', '6498', 'DURSEJ', 9), +('S9', '6499', 'DURSEJ', 9), +('S9', '6500', 'DURSEJ', 9), +('S9', '6501', 'DURSEJ', 9), +('S9', '6502', 'DURSEJ', 9), +('S9', '6503', 'DURSEJ', 9), +('S9', '6504', 'DURSEJ', 9), +('S9', '6505', 'DURSEJ', 9), +('S9', '6506', 'DURSEJ', 9), +('S9', '6507', 'DURSEJ', 9), +('S9', '6508', 'DURSEJ', 9), +('S9', '6509', 'DURSEJ', 9), +('S9', '6510', 'DURSEJ', 9), +('S9', '6511', 'DURSEJ', 9), +('S9', '6512', 'DURSEJ', 9), +('S9', '6513', 'DURSEJ', 9), +('S9', '6514', 'DURSEJ', 9), +('S9', '6515', 'DURSEJ', 9), +('S9', '6516', 'DURSEJ', 9), +('S9', '6517', 'DURSEJ', 9), +('S9', '6518', 'DURSEJ', 9), +('S9', '6519', 'DURSEJ', 9), +('S9', '6520', 'DURSEJ', 9), +('S9', '6521', 'DURSEJ', 9), +('S9', '6522', 'DURSEJ', 9), +('S9', '6523', 'DURSEJ', 9), +('S9', '6524', 'DURSEJ', 9), +('S9', '6525', 'DURSEJ', 9), +('S9', '6526', 'DURSEJ', 9), +('S9', '6527', 'DURSEJ', 9), +('S9', '6528', 'DURSEJ', 9), +('S9', '6529', 'DURSEJ', 9), +('S9', '6530', 'DURSEJ', 9), +('S9', '6531', 'DURSEJ', 9), +('S9', '6532', 'DURSEJ', 9), +('S9', '6533', 'DURSEJ', 9), +('S9', '6534', 'DURSEJ', 9), +('S9', '6535', 'DURSEJ', 9), +('S9', '6536', 'DURSEJ', 9), +('S9', '6537', 'DURSEJ', 9), +('S9', '6538', 'DURSEJ', 9), +('S9', '6539', 'DURSEJ', 9), +('S9', '6540', 'DURSEJ', 9), +('S9', '6541', 'DURSEJ', 9), +('S9', '6542', 'DURSEJ', 9), +('S9', '6543', 'DURSEJ', 9), +('S9', '6544', 'DURSEJ', 9), +('S9', '6545', 'DURSEJ', 9), +('S9', '6546', 'DURSEJ', 9), +('S9', '6547', 'DURSEJ', 9), +('S9', '6548', 'DURSEJ', 9), +('S9', '6549', 'DURSEJ', 9), +('S9', '6550', 'DURSEJ', 9), +('S9', '6551', 'DURSEJ', 9), +('S9', '6552', 'DURSEJ', 9), +('S9', '6553', 'DURSEJ', 9), +('S9', '6554', 'DURSEJ', 9), +('S9', '6555', 'DURSEJ', 9), +('S9', '6556', 'DURSEJ', 9), +('S9', '6557', 'DURSEJ', 9), +('S9', '6558', 'DURSEJ', 9), +('S9', '6559', 'DURSEJ', 9), +('S9', '6560', 'DURSEJ', 9), +('S9', '6561', 'DURSEJ', 9), +('S9', '6562', 'DURSEJ', 9), +('S9', '6563', 'DURSEJ', 9), +('S9', '6564', 'DURSEJ', 9), +('S9', '6565', 'DURSEJ', 9), +('S9', '6566', 'DURSEJ', 9), +('S9', '6567', 'DURSEJ', 9), +('S9', '6568', 'DURSEJ', 9), +('S9', '6569', 'DURSEJ', 9), +('S9', '6570', 'DURSEJ', 9), +('S9', '6571', 'DURSEJ', 9), +('S9', '6572', 'DURSEJ', 9), +('S9', '6573', 'DURSEJ', 9), +('S9', '6574', 'DURSEJ', 9), +('S9', '6575', 'DURSEJ', 9), +('S9', '6576', 'DURSEJ', 9), +('S9', '6577', 'DURSEJ', 9), +('S9', '6578', 'DURSEJ', 9), +('S9', '6579', 'DURSEJ', 9), +('S9', '6580', 'DURSEJ', 9), +('S9', '6581', 'DURSEJ', 9), +('S9', '6582', 'DURSEJ', 9), +('S9', '6583', 'DURSEJ', 9), +('S9', '6584', 'DURSEJ', 9), +('S9', '6585', 'DURSEJ', 9), +('S9', '6586', 'DURSEJ', 9), +('S9', '6587', 'DURSEJ', 9), +('S9', '6588', 'DURSEJ', 9), +('S9', '6589', 'DURSEJ', 9), +('S9', '6590', 'DURSEJ', 9), +('S9', '6591', 'DURSEJ', 9), +('S9', '6592', 'DURSEJ', 9), +('S9', '6593', 'DURSEJ', 9), +('S9', '6594', 'DURSEJ', 9), +('S9', '6595', 'DURSEJ', 9), +('S9', '6596', 'DURSEJ', 9), +('S9', '6597', 'DURSEJ', 9), +('S9', '6598', 'DURSEJ', 9), +('S9', '6599', 'DURSEJ', 9), +('S9', '6600', 'DURSEJ', 9), +('S9', '6601', 'DURSEJ', 9), +('S9', '6602', 'DURSEJ', 9), +('S9', '6603', 'DURSEJ', 9), +('S9', '6604', 'DURSEJ', 9), +('S9', '6605', 'DURSEJ', 9), +('S9', '6606', 'DURSEJ', 9), +('S9', '6607', 'DURSEJ', 9), +('S9', '6608', 'DURSEJ', 9), +('S9', '6609', 'DURSEJ', 9), +('S9', '6610', 'DURSEJ', 9), +('S9', '6611', 'DURSEJ', 9), +('S9', '6612', 'DURSEJ', 9), +('S9', '6613', 'DURSEJ', 9), +('S9', '6614', 'DURSEJ', 9), +('S9', '6615', 'DURSEJ', 9), +('S9', '6616', 'DURSEJ', 9), +('S9', '6617', 'DURSEJ', 9), +('S9', '6618', 'DURSEJ', 9), +('S9', '6619', 'DURSEJ', 9), +('S9', '6620', 'DURSEJ', 9), +('S9', '6621', 'DURSEJ', 9), +('S9', '6622', 'DURSEJ', 9), +('S9', '6623', 'DURSEJ', 9), +('S9', '6624', 'DURSEJ', 9), +('S9', '6625', 'DURSEJ', 9), +('S9', '6626', 'DURSEJ', 9), +('S9', '6627', 'DURSEJ', 9), +('S9', '6628', 'DURSEJ', 9), +('S9', '6629', 'DURSEJ', 9), +('S9', '6630', 'DURSEJ', 9), +('S9', '6631', 'DURSEJ', 9), +('S9', '6632', 'DURSEJ', 9), +('S9', '6633', 'DURSEJ', 9), +('S9', '6634', 'DURSEJ', 9), +('S9', '6635', 'DURSEJ', 9), +('S9', '6636', 'DURSEJ', 9), +('S9', '6637', 'DURSEJ', 9), +('S9', '6638', 'DURSEJ', 9), +('S9', '6639', 'DURSEJ', 9), +('S9', '6640', 'DURSEJ', 9), +('S9', '6641', 'DURSEJ', 9), +('S9', '6642', 'DURSEJ', 9), +('S9', '6643', 'DURSEJ', 9), +('S9', '6644', 'DURSEJ', 9), +('S9', '6645', 'DURSEJ', 9), +('S9', '6646', 'DURSEJ', 9), +('S9', '6647', 'DURSEJ', 9), +('S9', '6648', 'DURSEJ', 9), +('S9', '6649', 'DURSEJ', 9), +('S9', '6650', 'DURSEJ', 9), +('S9', '6651', 'DURSEJ', 9), +('S9', '6652', 'DURSEJ', 9), +('S9', '6653', 'DURSEJ', 9), +('S9', '6654', 'DURSEJ', 9), +('S9', '6655', 'DURSEJ', 9), +('S9', '6656', 'DURSEJ', 9), +('S9', '6657', 'DURSEJ', 9), +('S9', '6658', 'DURSEJ', 9), +('S9', '6659', 'DURSEJ', 9), +('S9', '6660', 'DURSEJ', 9), +('S9', '6661', 'DURSEJ', 9), +('S9', '6662', 'DURSEJ', 9), +('S9', '6663', 'DURSEJ', 9), +('S9', '6664', 'DURSEJ', 9), +('S9', '6665', 'DURSEJ', 9), +('S9', '6666', 'DURSEJ', 9), +('S9', '6667', 'DURSEJ', 9), +('S9', '6668', 'DURSEJ', 9), +('S9', '6669', 'DURSEJ', 9), +('S9', '6670', 'DURSEJ', 9), +('S9', '6671', 'DURSEJ', 9), +('S9', '6672', 'DURSEJ', 9), +('S9', '6673', 'DURSEJ', 9), +('S9', '6674', 'DURSEJ', 9), +('S9', '6675', 'DURSEJ', 9), +('S9', '6676', 'DURSEJ', 9), +('S9', '6677', 'DURSEJ', 9), +('S9', '6678', 'DURSEJ', 9), +('S9', '6679', 'DURSEJ', 9), +('S9', '6680', 'DURSEJ', 9), +('S9', '6681', 'DURSEJ', 9), +('S9', '6682', 'DURSEJ', 9), +('S9', '6683', 'DURSEJ', 9), +('S9', '6684', 'DURSEJ', 9), +('S9', '6685', 'DURSEJ', 9), +('S9', '6686', 'DURSEJ', 9), +('S9', '6687', 'DURSEJ', 9), +('S9', '6688', 'DURSEJ', 9), +('S9', '6689', 'DURSEJ', 9), +('S9', '6690', 'DURSEJ', 9), +('S9', '6691', 'DURSEJ', 9), +('S9', '6692', 'DURSEJ', 9), +('S9', '6693', 'DURSEJ', 9), +('S9', '6694', 'DURSEJ', 9), +('S9', '6695', 'DURSEJ', 9), +('S9', '6696', 'DURSEJ', 9), +('S9', '6697', 'DURSEJ', 9), +('S9', '6698', 'DURSEJ', 9), +('S9', '6699', 'DURSEJ', 9), +('S9', '6700', 'DURSEJ', 9), +('S9', '6701', 'DURSEJ', 9), +('S9', '6702', 'DURSEJ', 9), +('S9', '6703', 'DURSEJ', 9), +('S9', '6704', 'DURSEJ', 9), +('S9', '6705', 'DURSEJ', 9), +('S9', '6706', 'DURSEJ', 9), +('S9', '6707', 'DURSEJ', 9), +('S9', '6708', 'DURSEJ', 9), +('S9', '6709', 'DURSEJ', 9), +('S9', '6710', 'DURSEJ', 9), +('S9', '6711', 'DURSEJ', 9), +('S9', '6712', 'DURSEJ', 9), +('S9', '6713', 'DURSEJ', 9), +('S9', '6714', 'DURSEJ', 9), +('S9', '6715', 'DURSEJ', 9), +('S9', '6716', 'DURSEJ', 9), +('S9', '6717', 'DURSEJ', 9), +('S9', '6718', 'DURSEJ', 9), +('S9', '6719', 'DURSEJ', 9), +('S9', '6720', 'DURSEJ', 9), +('S9', '6721', 'DURSEJ', 9), +('S9', '6722', 'DURSEJ', 9), +('S9', '6723', 'DURSEJ', 9), +('S9', '6724', 'DURSEJ', 9), +('S9', '6725', 'DURSEJ', 9), +('S9', '6726', 'DURSEJ', 9), +('S9', '6727', 'DURSEJ', 9), +('S9', '6728', 'DURSEJ', 9), +('S9', '6729', 'DURSEJ', 9), +('S9', '6730', 'DURSEJ', 9), +('S9', '6731', 'DURSEJ', 9), +('S9', '6732', 'DURSEJ', 9), +('S9', '6733', 'DURSEJ', 9), +('S9', '6734', 'DURSEJ', 9), +('S9', '6735', 'DURSEJ', 9), +('S9', '6736', 'DURSEJ', 9), +('S9', '6737', 'DURSEJ', 9), +('S9', '6738', 'DURSEJ', 9), +('S9', '6739', 'DURSEJ', 9), +('S9', '6740', 'DURSEJ', 9), +('S9', '6741', 'DURSEJ', 9), +('S9', '6742', 'DURSEJ', 9), +('S9', '6743', 'DURSEJ', 9), +('S9', '6744', 'DURSEJ', 9), +('S9', '6745', 'DURSEJ', 9), +('S9', '6746', 'DURSEJ', 9), +('S9', '6747', 'DURSEJ', 9), +('S9', '6748', 'DURSEJ', 9), +('S9', '6749', 'DURSEJ', 9), +('S9', '6750', 'DURSEJ', 9), +('S9', '6751', 'DURSEJ', 9), +('S9', '6752', 'DURSEJ', 9), +('S9', '6753', 'DURSEJ', 9), +('S9', '6754', 'DURSEJ', 9), +('S9', '6755', 'DURSEJ', 9), +('S9', '6756', 'DURSEJ', 9), +('S9', '6757', 'DURSEJ', 9), +('S9', '6758', 'DURSEJ', 9), +('S9', '6759', 'DURSEJ', 9), +('S9', '6760', 'DURSEJ', 9), +('S9', '6761', 'DURSEJ', 9), +('S9', '6762', 'DURSEJ', 9), +('S9', '6763', 'DURSEJ', 9), +('S9', '6764', 'DURSEJ', 9), +('S9', '6765', 'DURSEJ', 9), +('S9', '6766', 'DURSEJ', 9), +('S9', '6767', 'DURSEJ', 9), +('S9', '6768', 'DURSEJ', 9), +('S9', '6769', 'DURSEJ', 9), +('S9', '6770', 'DURSEJ', 9), +('S9', '6771', 'DURSEJ', 9), +('S9', '6772', 'DURSEJ', 9), +('S9', '6773', 'DURSEJ', 9), +('S9', '6774', 'DURSEJ', 9), +('S9', '6775', 'DURSEJ', 9), +('S9', '6776', 'DURSEJ', 9), +('S9', '6777', 'DURSEJ', 9), +('S9', '6778', 'DURSEJ', 9), +('S9', '6779', 'DURSEJ', 9), +('S9', '6780', 'DURSEJ', 9), +('S9', '6781', 'DURSEJ', 9), +('S9', '6782', 'DURSEJ', 9), +('S9', '6783', 'DURSEJ', 9), +('S9', '6784', 'DURSEJ', 9), +('S9', '6785', 'DURSEJ', 9), +('S9', '6786', 'DURSEJ', 9), +('S9', '6787', 'DURSEJ', 9), +('S9', '6788', 'DURSEJ', 9), +('S9', '6789', 'DURSEJ', 9), +('S9', '6790', 'DURSEJ', 9), +('S9', '6791', 'DURSEJ', 9), +('S9', '6792', 'DURSEJ', 9), +('S9', '6793', 'DURSEJ', 9), +('S9', '6794', 'DURSEJ', 9), +('S9', '6795', 'DURSEJ', 9), +('S9', '6796', 'DURSEJ', 9), +('S9', '6797', 'DURSEJ', 9), +('S9', '6798', 'DURSEJ', 9), +('S9', '6799', 'DURSEJ', 9), +('S9', '6800', 'DURSEJ', 9), +('S9', '6801', 'DURSEJ', 9), +('S9', '6802', 'DURSEJ', 9), +('S9', '6803', 'DURSEJ', 9), +('S9', '6804', 'DURSEJ', 9), +('S9', '6805', 'DURSEJ', 9), +('S9', '6806', 'DURSEJ', 9), +('S9', '6807', 'DURSEJ', 9), +('S9', '6808', 'DURSEJ', 9), +('S9', '6809', 'DURSEJ', 9), +('S9', '6810', 'DURSEJ', 9), +('S9', '6811', 'DURSEJ', 9), +('S9', '6812', 'DURSEJ', 9), +('S9', '6813', 'DURSEJ', 9), +('S9', '6814', 'DURSEJ', 9), +('S9', '6815', 'DURSEJ', 9), +('S9', '6816', 'DURSEJ', 9), +('S9', '6817', 'DURSEJ', 9), +('S9', '6818', 'DURSEJ', 9), +('S9', '6819', 'DURSEJ', 9), +('S9', '6820', 'DURSEJ', 9), +('S9', '6821', 'DURSEJ', 9), +('S9', '6822', 'DURSEJ', 9), +('S9', '6823', 'DURSEJ', 9), +('S9', '6824', 'DURSEJ', 9), +('S9', '6825', 'DURSEJ', 9), +('S9', '6826', 'DURSEJ', 9), +('S9', '6827', 'DURSEJ', 9), +('S9', '6828', 'DURSEJ', 9), +('S9', '6829', 'DURSEJ', 9), +('S9', '6830', 'DURSEJ', 9), +('S9', '6831', 'DURSEJ', 9), +('S9', '6832', 'DURSEJ', 9), +('S9', '6833', 'DURSEJ', 9), +('S9', '6834', 'DURSEJ', 9), +('S9', '6835', 'DURSEJ', 9), +('S9', '6836', 'DURSEJ', 9), +('S9', '6837', 'DURSEJ', 9), +('S9', '6838', 'DURSEJ', 9), +('S9', '6839', 'DURSEJ', 9), +('S9', '6840', 'DURSEJ', 9), +('S9', '6841', 'DURSEJ', 9), +('S9', '6842', 'DURSEJ', 9), +('S9', '6843', 'DURSEJ', 9), +('S9', '6844', 'DURSEJ', 9), +('S9', '6845', 'DURSEJ', 9), +('S9', '6846', 'DURSEJ', 9), +('S9', '6847', 'DURSEJ', 9), +('S9', '6848', 'DURSEJ', 9), +('S9', '6849', 'DURSEJ', 9), +('S9', '6850', 'DURSEJ', 9), +('S9', '6851', 'DURSEJ', 9), +('S9', '6852', 'DURSEJ', 9), +('S9', '6853', 'DURSEJ', 9), +('S9', '6854', 'DURSEJ', 9), +('S9', '6855', 'DURSEJ', 9), +('S9', '6856', 'DURSEJ', 9), +('S9', '6857', 'DURSEJ', 9), +('S9', '6858', 'DURSEJ', 9), +('S9', '6859', 'DURSEJ', 9), +('S9', '6860', 'DURSEJ', 9), +('S9', '6861', 'DURSEJ', 9), +('S9', '6862', 'DURSEJ', 9), +('S9', '6863', 'DURSEJ', 9), +('S9', '6864', 'DURSEJ', 9), +('S9', '6865', 'DURSEJ', 9), +('S9', '6866', 'DURSEJ', 9), +('S9', '6867', 'DURSEJ', 9), +('S9', '6868', 'DURSEJ', 9), +('S9', '6869', 'DURSEJ', 9), +('S9', '6870', 'DURSEJ', 9), +('S9', '6871', 'DURSEJ', 9), +('S9', '6872', 'DURSEJ', 9), +('S9', '6873', 'DURSEJ', 9), +('S9', '6874', 'DURSEJ', 9), +('S9', '6875', 'DURSEJ', 9), +('S9', '6876', 'DURSEJ', 9), +('S9', '6877', 'DURSEJ', 9), +('S9', '6878', 'DURSEJ', 9), +('S9', '6879', 'DURSEJ', 9), +('S9', '6880', 'DURSEJ', 9), +('S9', '6881', 'DURSEJ', 9), +('S9', '6882', 'DURSEJ', 9), +('S9', '6883', 'DURSEJ', 9), +('S9', '6884', 'DURSEJ', 9), +('S9', '6885', 'DURSEJ', 9), +('S9', '6886', 'DURSEJ', 9), +('S9', '6887', 'DURSEJ', 9), +('S9', '6888', 'DURSEJ', 9), +('S9', '6889', 'DURSEJ', 9), +('S9', '6890', 'DURSEJ', 9), +('S9', '6891', 'DURSEJ', 9), +('S9', '6892', 'DURSEJ', 9), +('S9', '6893', 'DURSEJ', 9), +('S9', '6894', 'DURSEJ', 9), +('S9', '6895', 'DURSEJ', 9), +('S9', '6896', 'DURSEJ', 9), +('S9', '6897', 'DURSEJ', 9), +('S9', '6898', 'DURSEJ', 9), +('S9', '6899', 'DURSEJ', 9), +('S9', '6900', 'DURSEJ', 9), +('S9', '6901', 'DURSEJ', 9), +('S9', '6902', 'DURSEJ', 9), +('S9', '6903', 'DURSEJ', 9), +('S9', '6904', 'DURSEJ', 9), +('S9', '6905', 'DURSEJ', 9), +('S9', '6906', 'DURSEJ', 9), +('S9', '6907', 'DURSEJ', 9), +('S9', '6908', 'DURSEJ', 9), +('S9', '6909', 'DURSEJ', 9), +('S9', '6910', 'DURSEJ', 9), +('S9', '6911', 'DURSEJ', 9), +('S9', '6912', 'DURSEJ', 9), +('S9', '6913', 'DURSEJ', 9), +('S9', '6914', 'DURSEJ', 9), +('S9', '6915', 'DURSEJ', 9), +('S9', '6916', 'DURSEJ', 9), +('S9', '6917', 'DURSEJ', 9), +('S9', '6918', 'DURSEJ', 9), +('S9', '6919', 'DURSEJ', 9), +('S9', '6920', 'DURSEJ', 9), +('S9', '6921', 'DURSEJ', 9), +('S9', '6922', 'DURSEJ', 9), +('S9', '6923', 'DURSEJ', 9), +('S9', '6924', 'DURSEJ', 9), +('S9', '6925', 'DURSEJ', 9), +('S9', '6926', 'DURSEJ', 9), +('S9', '6927', 'DURSEJ', 9), +('S9', '6928', 'DURSEJ', 9), +('S9', '6929', 'DURSEJ', 9), +('S9', '6930', 'DURSEJ', 9), +('S9', '6931', 'DURSEJ', 9), +('S9', '6932', 'DURSEJ', 9), +('S9', '6933', 'DURSEJ', 9), +('S9', '6934', 'DURSEJ', 9), +('S9', '6935', 'DURSEJ', 9), +('S9', '6936', 'DURSEJ', 9), +('S9', '6937', 'DURSEJ', 9), +('S9', '6938', 'DURSEJ', 9), +('S9', '6939', 'DURSEJ', 9), +('S9', '6940', 'DURSEJ', 9), +('S9', '6941', 'DURSEJ', 9), +('S9', '6942', 'DURSEJ', 9), +('S9', '6943', 'DURSEJ', 9), +('S9', '6944', 'DURSEJ', 9), +('S9', '6945', 'DURSEJ', 9), +('S9', '6946', 'DURSEJ', 9), +('S9', '6947', 'DURSEJ', 9), +('S9', '6948', 'DURSEJ', 9), +('S9', '6949', 'DURSEJ', 9), +('S9', '6950', 'DURSEJ', 9), +('S9', '6951', 'DURSEJ', 9), +('S9', '6952', 'DURSEJ', 9), +('S9', '6953', 'DURSEJ', 9), +('S9', '6954', 'DURSEJ', 9), +('S9', '6955', 'DURSEJ', 9), +('S9', '6956', 'DURSEJ', 9), +('S9', '6957', 'DURSEJ', 9), +('S9', '6958', 'DURSEJ', 9), +('S9', '6959', 'DURSEJ', 9), +('S9', '6960', 'DURSEJ', 9), +('S9', '6961', 'DURSEJ', 9), +('S9', '6962', 'DURSEJ', 9), +('S9', '6963', 'DURSEJ', 9), +('S9', '6964', 'DURSEJ', 9), +('S9', '6965', 'DURSEJ', 9), +('S9', '6966', 'DURSEJ', 9), +('S9', '6967', 'DURSEJ', 9), +('S9', '6968', 'DURSEJ', 9), +('S9', '6969', 'DURSEJ', 9), +('S9', '6970', 'DURSEJ', 9), +('S9', '6971', 'DURSEJ', 9), +('S9', '6972', 'DURSEJ', 9), +('S9', '6973', 'DURSEJ', 9), +('S9', '6974', 'DURSEJ', 9), +('S9', '6975', 'DURSEJ', 9), +('S9', '6976', 'DURSEJ', 9), +('S9', '6977', 'DURSEJ', 9), +('S9', '6978', 'DURSEJ', 9), +('S9', '6979', 'DURSEJ', 9), +('S9', '6980', 'DURSEJ', 9), +('S9', '6981', 'DURSEJ', 9), +('S9', '6982', 'DURSEJ', 9), +('S9', '6983', 'DURSEJ', 9), +('S9', '6984', 'DURSEJ', 9), +('S9', '6985', 'DURSEJ', 9), +('S9', '6986', 'DURSEJ', 9), +('S9', '6987', 'DURSEJ', 9), +('S9', '6988', 'DURSEJ', 9), +('S9', '6989', 'DURSEJ', 9), +('S9', '6990', 'DURSEJ', 9), +('S9', '6991', 'DURSEJ', 9), +('S9', '6992', 'DURSEJ', 9), +('S9', '6993', 'DURSEJ', 9), +('S9', '6994', 'DURSEJ', 9), +('S9', '6995', 'DURSEJ', 9), +('S9', '6996', 'DURSEJ', 9), +('S9', '6997', 'DURSEJ', 9), +('S9', '6998', 'DURSEJ', 9), +('S9', '6999', 'DURSEJ', 9), +('S9', '7000', 'DURSEJ', 9), +('S9', '7001', 'DURSEJ', 9), +('S9', '7002', 'DURSEJ', 9), +('S9', '7003', 'DURSEJ', 9), +('S9', '7004', 'DURSEJ', 9), +('S9', '7005', 'DURSEJ', 9), +('S9', '7006', 'DURSEJ', 9), +('S9', '7007', 'DURSEJ', 9), +('S9', '7008', 'DURSEJ', 9), +('S9', '7009', 'DURSEJ', 9), +('S9', '7010', 'DURSEJ', 9), +('S9', '7011', 'DURSEJ', 9), +('S9', '7012', 'DURSEJ', 9), +('S9', '7013', 'DURSEJ', 9), +('S9', '7014', 'DURSEJ', 9), +('S9', '7015', 'DURSEJ', 9), +('S9', '7016', 'DURSEJ', 9), +('S9', '7017', 'DURSEJ', 9), +('S9', '7018', 'DURSEJ', 9), +('S9', '7019', 'DURSEJ', 9), +('S9', '7020', 'DURSEJ', 9), +('S9', '7021', 'DURSEJ', 9), +('S9', '7022', 'DURSEJ', 9), +('S9', '7023', 'DURSEJ', 9), +('S9', '7024', 'DURSEJ', 9), +('S9', '7025', 'DURSEJ', 9), +('S9', '7026', 'DURSEJ', 9), +('S9', '7027', 'DURSEJ', 9), +('S9', '7028', 'DURSEJ', 9), +('S9', '7029', 'DURSEJ', 9), +('S9', '7030', 'DURSEJ', 9), +('S9', '7031', 'DURSEJ', 9), +('S9', '7032', 'DURSEJ', 9), +('S9', '7033', 'DURSEJ', 9), +('S9', '7034', 'DURSEJ', 9), +('S9', '7035', 'DURSEJ', 9), +('S9', '7036', 'DURSEJ', 9), +('S9', '7037', 'DURSEJ', 9), +('S9', '7038', 'DURSEJ', 9), +('S9', '7039', 'DURSEJ', 9), +('S9', '7040', 'DURSEJ', 9), +('S9', '7041', 'DURSEJ', 9), +('S9', '7042', 'DURSEJ', 9), +('S9', '7043', 'DURSEJ', 9), +('S9', '7044', 'DURSEJ', 9), +('S9', '7045', 'DURSEJ', 9), +('S9', '7046', 'DURSEJ', 9), +('S9', '7047', 'DURSEJ', 9), +('S9', '7048', 'DURSEJ', 9), +('S9', '7049', 'DURSEJ', 9), +('S9', '7050', 'DURSEJ', 9), +('S9', '7051', 'DURSEJ', 9), +('S9', '7052', 'DURSEJ', 9), +('S9', '7053', 'DURSEJ', 9), +('S9', '7054', 'DURSEJ', 9), +('S9', '7055', 'DURSEJ', 9), +('S9', '7056', 'DURSEJ', 9), +('S9', '7057', 'DURSEJ', 9), +('S9', '7058', 'DURSEJ', 9), +('S9', '7059', 'DURSEJ', 9), +('S9', '7060', 'DURSEJ', 9), +('S9', '7061', 'DURSEJ', 9), +('S9', '7062', 'DURSEJ', 9), +('S9', '7063', 'DURSEJ', 9), +('S9', '7064', 'DURSEJ', 9), +('S9', '7065', 'DURSEJ', 9), +('S9', '7066', 'DURSEJ', 9), +('S9', '7067', 'DURSEJ', 9), +('S9', '7068', 'DURSEJ', 9), +('S9', '7069', 'DURSEJ', 9), +('S9', '7070', 'DURSEJ', 9), +('S9', '7071', 'DURSEJ', 9), +('S9', '7072', 'DURSEJ', 9), +('S9', '7073', 'DURSEJ', 9), +('S9', '7074', 'DURSEJ', 9), +('S9', '7075', 'DURSEJ', 9), +('S9', '7076', 'DURSEJ', 9), +('S9', '7077', 'DURSEJ', 9), +('S9', '7078', 'DURSEJ', 9), +('S9', '7079', 'DURSEJ', 9), +('S9', '7080', 'DURSEJ', 9), +('S9', '7081', 'DURSEJ', 9), +('S9', '7082', 'DURSEJ', 9), +('S9', '7083', 'DURSEJ', 9), +('S9', '7084', 'DURSEJ', 9), +('S9', '7085', 'DURSEJ', 9), +('S9', '7086', 'DURSEJ', 9), +('S9', '7087', 'DURSEJ', 9), +('S9', '7088', 'DURSEJ', 9), +('S9', '7089', 'DURSEJ', 9), +('S9', '7090', 'DURSEJ', 9), +('S9', '7091', 'DURSEJ', 9), +('S9', '7092', 'DURSEJ', 9), +('S9', '7093', 'DURSEJ', 9), +('S9', '7094', 'DURSEJ', 9), +('S9', '7095', 'DURSEJ', 9), +('S9', '7096', 'DURSEJ', 9), +('S9', '7097', 'DURSEJ', 9), +('S9', '7098', 'DURSEJ', 9), +('S9', '7099', 'DURSEJ', 9), +('S9', '7100', 'DURSEJ', 9), +('S9', '7101', 'DURSEJ', 9), +('S9', '7102', 'DURSEJ', 9), +('S9', '7103', 'DURSEJ', 9), +('S9', '7104', 'DURSEJ', 9), +('S9', '7105', 'DURSEJ', 9), +('S9', '7106', 'DURSEJ', 9), +('S9', '7107', 'DURSEJ', 9), +('S9', '7108', 'DURSEJ', 9), +('S9', '7109', 'DURSEJ', 9), +('S9', '7110', 'DURSEJ', 9), +('S9', '7111', 'DURSEJ', 9), +('S9', '7112', 'DURSEJ', 9), +('S9', '7113', 'DURSEJ', 9), +('S9', '7114', 'DURSEJ', 9), +('S9', '7115', 'DURSEJ', 9), +('S9', '7116', 'DURSEJ', 9), +('S9', '7117', 'DURSEJ', 9), +('S9', '7118', 'DURSEJ', 9), +('S9', '7119', 'DURSEJ', 9), +('S9', '7120', 'DURSEJ', 9), +('S9', '7121', 'DURSEJ', 9), +('S9', '7122', 'DURSEJ', 9), +('S9', '7123', 'DURSEJ', 9), +('S9', '7124', 'DURSEJ', 9), +('S9', '7125', 'DURSEJ', 9), +('S9', '7126', 'DURSEJ', 9), +('S9', '7127', 'DURSEJ', 9), +('S9', '7128', 'DURSEJ', 9), +('S9', '7129', 'DURSEJ', 9), +('S9', '7130', 'DURSEJ', 9), +('S9', '7131', 'DURSEJ', 9), +('S9', '7132', 'DURSEJ', 9), +('S9', '7133', 'DURSEJ', 9), +('S9', '7134', 'DURSEJ', 9), +('S9', '7135', 'DURSEJ', 9), +('S9', '7136', 'DURSEJ', 9), +('S9', '7137', 'DURSEJ', 9), +('S9', '7138', 'DURSEJ', 9), +('S9', '7139', 'DURSEJ', 9), +('S9', '7140', 'DURSEJ', 9), +('S9', '7141', 'DURSEJ', 9), +('S9', '7142', 'DURSEJ', 9), +('S9', '7143', 'DURSEJ', 9), +('S9', '7144', 'DURSEJ', 9), +('S9', '7145', 'DURSEJ', 9), +('S9', '7146', 'DURSEJ', 9), +('S9', '7147', 'DURSEJ', 9), +('S9', '7148', 'DURSEJ', 9), +('S9', '7149', 'DURSEJ', 9), +('S9', '7150', 'DURSEJ', 9), +('S9', '7151', 'DURSEJ', 9), +('S9', '7152', 'DURSEJ', 9), +('S9', '7153', 'DURSEJ', 9), +('S9', '7154', 'DURSEJ', 9), +('S9', '7155', 'DURSEJ', 9), +('S9', '7156', 'DURSEJ', 9), +('S9', '7157', 'DURSEJ', 9), +('S9', '7158', 'DURSEJ', 9), +('S9', '7159', 'DURSEJ', 9), +('S9', '7160', 'DURSEJ', 9), +('S9', '7161', 'DURSEJ', 9), +('S9', '7162', 'DURSEJ', 9), +('S9', '7163', 'DURSEJ', 9), +('S9', '7164', 'DURSEJ', 9), +('S9', '7165', 'DURSEJ', 9), +('S9', '7166', 'DURSEJ', 9), +('S9', '7167', 'DURSEJ', 9), +('S9', '7168', 'DURSEJ', 9), +('S9', '7169', 'DURSEJ', 9), +('S9', '7170', 'DURSEJ', 9), +('S9', '7171', 'DURSEJ', 9), +('S9', '7172', 'DURSEJ', 9), +('S9', '7173', 'DURSEJ', 9), +('S9', '7174', 'DURSEJ', 9), +('S9', '7175', 'DURSEJ', 9), +('S9', '7176', 'DURSEJ', 9), +('S9', '7177', 'DURSEJ', 9), +('S9', '7178', 'DURSEJ', 9), +('S9', '7179', 'DURSEJ', 9), +('S9', '7180', 'DURSEJ', 9), +('S9', '7181', 'DURSEJ', 9), +('S9', '7182', 'DURSEJ', 9), +('S9', '7183', 'DURSEJ', 9), +('S9', '7184', 'DURSEJ', 9), +('S9', '7185', 'DURSEJ', 9), +('S9', '7186', 'DURSEJ', 9), +('S9', '7187', 'DURSEJ', 9), +('S9', '7188', 'DURSEJ', 9), +('S9', '7189', 'DURSEJ', 9), +('S9', '7190', 'DURSEJ', 9), +('S9', '7191', 'DURSEJ', 9), +('S9', '7192', 'DURSEJ', 9), +('S9', '7193', 'DURSEJ', 9), +('S9', '7194', 'DURSEJ', 9), +('S9', '7195', 'DURSEJ', 9), +('S9', '7196', 'DURSEJ', 9), +('S9', '7197', 'DURSEJ', 9), +('S9', '7198', 'DURSEJ', 9), +('S9', '7199', 'DURSEJ', 9), +('S9', '7200', 'DURSEJ', 9), +('S9', '7201', 'DURSEJ', 9), +('S9', '7202', 'DURSEJ', 9), +('S9', '7203', 'DURSEJ', 9), +('S9', '7204', 'DURSEJ', 9), +('S9', '7205', 'DURSEJ', 9), +('S9', '7206', 'DURSEJ', 9), +('S9', '7207', 'DURSEJ', 9), +('S9', '7208', 'DURSEJ', 9), +('S9', '7209', 'DURSEJ', 9), +('S9', '7210', 'DURSEJ', 9), +('S9', '7211', 'DURSEJ', 9), +('S9', '7212', 'DURSEJ', 9), +('S9', '7213', 'DURSEJ', 9), +('S9', '7214', 'DURSEJ', 9), +('S9', '7215', 'DURSEJ', 9), +('S9', '7216', 'DURSEJ', 9), +('S9', '7217', 'DURSEJ', 9), +('S9', '7218', 'DURSEJ', 9), +('S9', '7219', 'DURSEJ', 9), +('S9', '7220', 'DURSEJ', 9), +('S9', '7221', 'DURSEJ', 9), +('S9', '7222', 'DURSEJ', 9), +('S9', '7223', 'DURSEJ', 9), +('S9', '7224', 'DURSEJ', 9), +('S9', '7225', 'DURSEJ', 9), +('S9', '7226', 'DURSEJ', 9), +('S9', '7227', 'DURSEJ', 9), +('S9', '7228', 'DURSEJ', 9), +('S9', '7229', 'DURSEJ', 9), +('S9', '7230', 'DURSEJ', 9), +('S9', '7231', 'DURSEJ', 9), +('S9', '7232', 'DURSEJ', 9), +('S9', '7233', 'DURSEJ', 9), +('S9', '7234', 'DURSEJ', 9), +('S9', '7235', 'DURSEJ', 9), +('S9', '7236', 'DURSEJ', 9), +('S9', '7237', 'DURSEJ', 9), +('S9', '7238', 'DURSEJ', 9), +('S9', '7239', 'DURSEJ', 9), +('S9', '7240', 'DURSEJ', 9), +('S9', '7241', 'DURSEJ', 9), +('S9', '7242', 'DURSEJ', 9), +('S9', '7243', 'DURSEJ', 9), +('S9', '7244', 'DURSEJ', 9), +('S9', '7245', 'DURSEJ', 9), +('S9', '7246', 'DURSEJ', 9), +('S9', '7247', 'DURSEJ', 9), +('S9', '7248', 'DURSEJ', 9), +('S9', '7249', 'DURSEJ', 9), +('S9', '7250', 'DURSEJ', 9), +('S9', '7251', 'DURSEJ', 9), +('S9', '7252', 'DURSEJ', 9), +('S9', '7253', 'DURSEJ', 9), +('S9', '7254', 'DURSEJ', 9), +('S9', '7255', 'DURSEJ', 9), +('S9', '7256', 'DURSEJ', 9), +('S9', '7257', 'DURSEJ', 9), +('S9', '7258', 'DURSEJ', 9), +('S9', '7259', 'DURSEJ', 9), +('S9', '7260', 'DURSEJ', 9), +('S9', '7261', 'DURSEJ', 9), +('S9', '7262', 'DURSEJ', 9), +('S9', '7263', 'DURSEJ', 9), +('S9', '7264', 'DURSEJ', 9), +('S9', '7265', 'DURSEJ', 9), +('S9', '7266', 'DURSEJ', 9), +('S9', '7267', 'DURSEJ', 9), +('S9', '7268', 'DURSEJ', 9), +('S9', '7269', 'DURSEJ', 9), +('S9', '7270', 'DURSEJ', 9), +('S9', '7271', 'DURSEJ', 9), +('S9', '7272', 'DURSEJ', 9), +('S9', '7273', 'DURSEJ', 9), +('S9', '7274', 'DURSEJ', 9), +('S9', '7275', 'DURSEJ', 9), +('S9', '7276', 'DURSEJ', 9), +('S9', '7277', 'DURSEJ', 9), +('S9', '7278', 'DURSEJ', 9), +('S9', '7279', 'DURSEJ', 9), +('S9', '7280', 'DURSEJ', 9), +('S9', '7281', 'DURSEJ', 9), +('S9', '7282', 'DURSEJ', 9), +('S9', '7283', 'DURSEJ', 9), +('S9', '7284', 'DURSEJ', 9), +('S9', '7285', 'DURSEJ', 9), +('S9', '7286', 'DURSEJ', 9), +('S9', '7287', 'DURSEJ', 9), +('S9', '7288', 'DURSEJ', 9), +('S9', '7289', 'DURSEJ', 9), +('S9', '7290', 'DURSEJ', 9), +('S9', '7291', 'DURSEJ', 9), +('S9', '7292', 'DURSEJ', 9), +('S9', '7293', 'DURSEJ', 9), +('S9', '7294', 'DURSEJ', 9), +('S9', '7295', 'DURSEJ', 9), +('S9', '7296', 'DURSEJ', 9), +('S9', '7297', 'DURSEJ', 9), +('S9', '7298', 'DURSEJ', 9), +('S9', '7299', 'DURSEJ', 9), +('S9', '7300', 'DURSEJ', 9), +('S9', '7301', 'DURSEJ', 9), +('S9', '7302', 'DURSEJ', 9), +('S9', '7303', 'DURSEJ', 9), +('S9', '7304', 'DURSEJ', 9), +('S9', '7305', 'DURSEJ', 9), +('S9', '7306', 'DURSEJ', 9), +('S9', '7307', 'DURSEJ', 9), +('S9', '7308', 'DURSEJ', 9), +('S9', '7309', 'DURSEJ', 9), +('S9', '7310', 'DURSEJ', 9), +('S9', '7311', 'DURSEJ', 9), +('S9', '7312', 'DURSEJ', 9), +('S9', '7313', 'DURSEJ', 9), +('S9', '7314', 'DURSEJ', 9), +('S9', '7315', 'DURSEJ', 9), +('S9', '7316', 'DURSEJ', 9), +('S9', '7317', 'DURSEJ', 9), +('S9', '7318', 'DURSEJ', 9), +('S9', '7319', 'DURSEJ', 9), +('S9', '7320', 'DURSEJ', 9), +('S9', '7321', 'DURSEJ', 9), +('S9', '7322', 'DURSEJ', 9), +('S9', '7323', 'DURSEJ', 9), +('S9', '7324', 'DURSEJ', 9), +('S9', '7325', 'DURSEJ', 9), +('S9', '7326', 'DURSEJ', 9), +('S9', '7327', 'DURSEJ', 9), +('S9', '7328', 'DURSEJ', 9), +('S9', '7329', 'DURSEJ', 9), +('S9', '7330', 'DURSEJ', 9), +('S9', '7331', 'DURSEJ', 9), +('S9', '7332', 'DURSEJ', 9), +('S9', '7333', 'DURSEJ', 9), +('S9', '7334', 'DURSEJ', 9), +('S9', '7335', 'DURSEJ', 9), +('S9', '7336', 'DURSEJ', 9), +('S9', '7337', 'DURSEJ', 9), +('S9', '7338', 'DURSEJ', 9), +('S9', '7339', 'DURSEJ', 9), +('S9', '7340', 'DURSEJ', 9), +('S9', '7341', 'DURSEJ', 9), +('S9', '7342', 'DURSEJ', 9), +('S9', '7343', 'DURSEJ', 9), +('S9', '7344', 'DURSEJ', 9), +('S9', '7345', 'DURSEJ', 9), +('S9', '7346', 'DURSEJ', 9), +('S9', '7347', 'DURSEJ', 9), +('S9', '7348', 'DURSEJ', 9), +('S9', '7349', 'DURSEJ', 9), +('S9', '7350', 'DURSEJ', 9), +('S9', '7351', 'DURSEJ', 9), +('S9', '7352', 'DURSEJ', 9), +('S9', '7353', 'DURSEJ', 9), +('S9', '7354', 'DURSEJ', 9), +('S9', '7355', 'DURSEJ', 9), +('S9', '7356', 'DURSEJ', 9), +('S9', '7357', 'DURSEJ', 9), +('S9', '7358', 'DURSEJ', 9), +('S9', '7359', 'DURSEJ', 9), +('S9', '7360', 'DURSEJ', 9), +('S9', '7361', 'DURSEJ', 9), +('S9', '7362', 'DURSEJ', 9), +('S9', '7363', 'DURSEJ', 9), +('S9', '7364', 'DURSEJ', 9), +('S9', '7365', 'DURSEJ', 9), +('S9', '7366', 'DURSEJ', 9), +('S9', '7367', 'DURSEJ', 9), +('S9', '7368', 'DURSEJ', 9), +('S9', '7369', 'DURSEJ', 9), +('S9', '7370', 'DURSEJ', 9), +('S9', '7371', 'DURSEJ', 9), +('S9', '7372', 'DURSEJ', 9), +('S9', '7373', 'DURSEJ', 9), +('S9', '7374', 'DURSEJ', 9), +('S9', '7375', 'DURSEJ', 9), +('S9', '7376', 'DURSEJ', 9), +('S9', '7377', 'DURSEJ', 9), +('S9', '7378', 'DURSEJ', 9), +('S9', '7379', 'DURSEJ', 9), +('S9', '7380', 'DURSEJ', 9), +('S9', '7381', 'DURSEJ', 9), +('S9', '7382', 'DURSEJ', 9), +('S9', '7383', 'DURSEJ', 9), +('S9', '7384', 'DURSEJ', 9), +('S9', '7385', 'DURSEJ', 9), +('S9', '7386', 'DURSEJ', 9), +('S9', '7387', 'DURSEJ', 9), +('S9', '7388', 'DURSEJ', 9), +('S9', '7389', 'DURSEJ', 9), +('S9', '7390', 'DURSEJ', 9), +('S9', '7391', 'DURSEJ', 9), +('S9', '7392', 'DURSEJ', 9), +('S9', '7393', 'DURSEJ', 9), +('S9', '7394', 'DURSEJ', 9), +('S9', '7395', 'DURSEJ', 9), +('S9', '7396', 'DURSEJ', 9), +('S9', '7397', 'DURSEJ', 9), +('S9', '7398', 'DURSEJ', 9), +('S9', '7399', 'DURSEJ', 9), +('S9', '7400', 'DURSEJ', 9), +('S9', '7401', 'DURSEJ', 9), +('S9', '7402', 'DURSEJ', 9), +('S9', '7403', 'DURSEJ', 9), +('S9', '7404', 'DURSEJ', 9), +('S9', '7405', 'DURSEJ', 9), +('S9', '7406', 'DURSEJ', 9), +('S9', '7407', 'DURSEJ', 9), +('S9', '7408', 'DURSEJ', 9), +('S9', '7409', 'DURSEJ', 9), +('S9', '7410', 'DURSEJ', 9), +('S9', '7411', 'DURSEJ', 9), +('S9', '7412', 'DURSEJ', 9), +('S9', '7413', 'DURSEJ', 9), +('S9', '7414', 'DURSEJ', 9), +('S9', '7415', 'DURSEJ', 9), +('S9', '7416', 'DURSEJ', 9), +('S9', '7417', 'DURSEJ', 9), +('S9', '7418', 'DURSEJ', 9), +('S9', '7419', 'DURSEJ', 9), +('S9', '7420', 'DURSEJ', 9), +('S9', '7421', 'DURSEJ', 9), +('S9', '7422', 'DURSEJ', 9), +('S9', '7423', 'DURSEJ', 9), +('S9', '7424', 'DURSEJ', 9), +('S9', '7425', 'DURSEJ', 9), +('S9', '7426', 'DURSEJ', 9), +('S9', '7427', 'DURSEJ', 9), +('S9', '7428', 'DURSEJ', 9), +('S9', '7429', 'DURSEJ', 9), +('S9', '7430', 'DURSEJ', 9), +('S9', '7431', 'DURSEJ', 9), +('S9', '7432', 'DURSEJ', 9), +('S9', '7433', 'DURSEJ', 9), +('S9', '7434', 'DURSEJ', 9), +('S9', '7435', 'DURSEJ', 9), +('S9', '7436', 'DURSEJ', 9), +('S9', '7437', 'DURSEJ', 9), +('S9', '7438', 'DURSEJ', 9), +('S9', '7439', 'DURSEJ', 9), +('S9', '7440', 'DURSEJ', 9), +('S9', '7441', 'DURSEJ', 9), +('S9', '7442', 'DURSEJ', 9), +('S9', '7443', 'DURSEJ', 9), +('S9', '7444', 'DURSEJ', 9), +('S9', '7445', 'DURSEJ', 9), +('S9', '7446', 'DURSEJ', 9), +('S9', '7447', 'DURSEJ', 9), +('S9', '7448', 'DURSEJ', 9), +('S9', '7449', 'DURSEJ', 9), +('S9', '7450', 'DURSEJ', 9), +('S9', '7451', 'DURSEJ', 9), +('S9', '7452', 'DURSEJ', 9), +('S9', '7453', 'DURSEJ', 9), +('S9', '7454', 'DURSEJ', 9), +('S9', '7455', 'DURSEJ', 9), +('S9', '7456', 'DURSEJ', 9), +('S9', '7457', 'DURSEJ', 9), +('S9', '7458', 'DURSEJ', 9), +('S9', '7459', 'DURSEJ', 9), +('S9', '7460', 'DURSEJ', 9), +('S9', '7461', 'DURSEJ', 9), +('S9', '7462', 'DURSEJ', 9), +('S9', '7463', 'DURSEJ', 9), +('S9', '7464', 'DURSEJ', 9), +('S9', '7465', 'DURSEJ', 9), +('S9', '7466', 'DURSEJ', 9), +('S9', '7467', 'DURSEJ', 9), +('S9', '7468', 'DURSEJ', 9), +('S9', '7469', 'DURSEJ', 9), +('S9', '7470', 'DURSEJ', 9), +('S9', '7471', 'DURSEJ', 9), +('S9', '7472', 'DURSEJ', 9), +('S9', '7473', 'DURSEJ', 9), +('S9', '7474', 'DURSEJ', 9), +('S9', '7475', 'DURSEJ', 9), +('S9', '7476', 'DURSEJ', 9), +('S9', '7477', 'DURSEJ', 9), +('S9', '7478', 'DURSEJ', 9), +('S9', '7479', 'DURSEJ', 9), +('S9', '7480', 'DURSEJ', 9), +('S9', '7481', 'DURSEJ', 9), +('S9', '7482', 'DURSEJ', 9), +('S9', '7483', 'DURSEJ', 9), +('S9', '7484', 'DURSEJ', 9), +('S9', '7485', 'DURSEJ', 9), +('S9', '7486', 'DURSEJ', 9), +('S9', '7487', 'DURSEJ', 9), +('S9', '7488', 'DURSEJ', 9), +('S9', '7489', 'DURSEJ', 9), +('S9', '7490', 'DURSEJ', 9), +('S9', '7491', 'DURSEJ', 9), +('S9', '7492', 'DURSEJ', 9), +('S9', '7493', 'DURSEJ', 9), +('S9', '7494', 'DURSEJ', 9), +('S9', '7495', 'DURSEJ', 9), +('S9', '7496', 'DURSEJ', 9), +('S9', '7497', 'DURSEJ', 9), +('S9', '7498', 'DURSEJ', 9), +('S9', '7499', 'DURSEJ', 9), +('S9', '7500', 'DURSEJ', 9), +('S9', '7501', 'DURSEJ', 9), +('S9', '7502', 'DURSEJ', 9), +('S9', '7503', 'DURSEJ', 9), +('S9', '7504', 'DURSEJ', 9), +('S9', '7505', 'DURSEJ', 9), +('S9', '7506', 'DURSEJ', 9), +('S9', '7507', 'DURSEJ', 9), +('S9', '7508', 'DURSEJ', 9), +('S9', '7509', 'DURSEJ', 9), +('S9', '7510', 'DURSEJ', 9), +('S9', '7511', 'DURSEJ', 9), +('S9', '7512', 'DURSEJ', 9), +('S9', '7513', 'DURSEJ', 9), +('S9', '7514', 'DURSEJ', 9), +('S9', '7515', 'DURSEJ', 9), +('S9', '7516', 'DURSEJ', 9), +('S9', '7517', 'DURSEJ', 9), +('S9', '7518', 'DURSEJ', 9), +('S9', '7519', 'DURSEJ', 9), +('S9', '7520', 'DURSEJ', 9), +('S9', '7521', 'DURSEJ', 9), +('S9', '7522', 'DURSEJ', 9), +('S9', '7523', 'DURSEJ', 9), +('S9', '7524', 'DURSEJ', 9), +('S9', '7525', 'DURSEJ', 9), +('S9', '7526', 'DURSEJ', 9), +('S9', '7527', 'DURSEJ', 9), +('S9', '7528', 'DURSEJ', 9), +('S9', '7529', 'DURSEJ', 9), +('S9', '7530', 'DURSEJ', 9), +('S9', '7531', 'DURSEJ', 9), +('S9', '7532', 'DURSEJ', 9), +('S9', '7533', 'DURSEJ', 9), +('S9', '7534', 'DURSEJ', 9), +('S9', '7535', 'DURSEJ', 9), +('S9', '7536', 'DURSEJ', 9), +('S9', '7537', 'DURSEJ', 9), +('S9', '7538', 'DURSEJ', 9), +('S9', '7539', 'DURSEJ', 9), +('S9', '7540', 'DURSEJ', 9), +('S9', '7541', 'DURSEJ', 9), +('S9', '7542', 'DURSEJ', 9), +('S9', '7543', 'DURSEJ', 9), +('S9', '7544', 'DURSEJ', 9), +('S9', '7545', 'DURSEJ', 9), +('S9', '7546', 'DURSEJ', 9), +('S9', '7547', 'DURSEJ', 9), +('S9', '7548', 'DURSEJ', 9), +('S9', '7549', 'DURSEJ', 9), +('S9', '7550', 'DURSEJ', 9), +('S9', '7551', 'DURSEJ', 9), +('S9', '7552', 'DURSEJ', 9), +('S9', '7553', 'DURSEJ', 9), +('S9', '7554', 'DURSEJ', 9), +('S9', '7555', 'DURSEJ', 9), +('S9', '7556', 'DURSEJ', 9), +('S9', '7557', 'DURSEJ', 9), +('S9', '7558', 'DURSEJ', 9), +('S9', '7559', 'DURSEJ', 9), +('S9', '7560', 'DURSEJ', 9), +('S9', '7561', 'DURSEJ', 9), +('S9', '7562', 'DURSEJ', 9), +('S9', '7563', 'DURSEJ', 9), +('S9', '7564', 'DURSEJ', 9), +('S9', '7565', 'DURSEJ', 9), +('S9', '7566', 'DURSEJ', 9), +('S9', '7567', 'DURSEJ', 9), +('S9', '7568', 'DURSEJ', 9), +('S9', '7569', 'DURSEJ', 9), +('S9', '7570', 'DURSEJ', 9), +('S9', '7571', 'DURSEJ', 9), +('S9', '7572', 'DURSEJ', 9), +('S9', '7573', 'DURSEJ', 9), +('S9', '7574', 'DURSEJ', 9), +('S9', '7575', 'DURSEJ', 9), +('S9', '7576', 'DURSEJ', 9), +('S9', '7577', 'DURSEJ', 9), +('S9', '7578', 'DURSEJ', 9), +('S9', '7579', 'DURSEJ', 9), +('S9', '7580', 'DURSEJ', 9), +('S9', '7581', 'DURSEJ', 9), +('S9', '7582', 'DURSEJ', 9), +('S9', '7583', 'DURSEJ', 9), +('S9', '7584', 'DURSEJ', 9), +('S9', '7585', 'DURSEJ', 9), +('S9', '7586', 'DURSEJ', 9), +('S9', '7587', 'DURSEJ', 9), +('S9', '7588', 'DURSEJ', 9), +('S9', '7589', 'DURSEJ', 9), +('S9', '7590', 'DURSEJ', 9), +('S9', '7591', 'DURSEJ', 9), +('S9', '7592', 'DURSEJ', 9), +('S9', '7593', 'DURSEJ', 9), +('S9', '7594', 'DURSEJ', 9), +('S9', '7595', 'DURSEJ', 9), +('S9', '7596', 'DURSEJ', 9), +('S9', '7597', 'DURSEJ', 9), +('S9', '7598', 'DURSEJ', 9), +('S9', '7599', 'DURSEJ', 9), +('S9', '7600', 'DURSEJ', 9), +('S9', '7601', 'DURSEJ', 9), +('S9', '7602', 'DURSEJ', 9), +('S9', '7603', 'DURSEJ', 9), +('S9', '7604', 'DURSEJ', 9), +('S9', '7605', 'DURSEJ', 9), +('S9', '7606', 'DURSEJ', 9), +('S9', '7607', 'DURSEJ', 9), +('S9', '7608', 'DURSEJ', 9), +('S9', '7609', 'DURSEJ', 9), +('S9', '7610', 'DURSEJ', 9), +('S9', '7611', 'DURSEJ', 9), +('S9', '7612', 'DURSEJ', 9), +('S9', '7613', 'DURSEJ', 9), +('S9', '7614', 'DURSEJ', 9), +('S9', '7615', 'DURSEJ', 9), +('S9', '7616', 'DURSEJ', 9), +('S9', '7617', 'DURSEJ', 9), +('S9', '7618', 'DURSEJ', 9), +('S9', '7619', 'DURSEJ', 9), +('S9', '7620', 'DURSEJ', 9), +('S9', '7621', 'DURSEJ', 9), +('S9', '7622', 'DURSEJ', 9), +('S9', '7623', 'DURSEJ', 9), +('S9', '7624', 'DURSEJ', 9), +('S9', '7625', 'DURSEJ', 9), +('S9', '7626', 'DURSEJ', 9), +('S9', '7627', 'DURSEJ', 9), +('S9', '7628', 'DURSEJ', 9), +('S9', '7629', 'DURSEJ', 9), +('S9', '7630', 'DURSEJ', 9), +('S9', '7631', 'DURSEJ', 9), +('S9', '7632', 'DURSEJ', 9), +('S9', '7633', 'DURSEJ', 9), +('S9', '7634', 'DURSEJ', 9), +('S9', '7635', 'DURSEJ', 9), +('S9', '7636', 'DURSEJ', 9), +('S9', '7637', 'DURSEJ', 9), +('S9', '7638', 'DURSEJ', 9), +('S9', '7639', 'DURSEJ', 9), +('S9', '7640', 'DURSEJ', 9), +('S9', '7641', 'DURSEJ', 9), +('S9', '7642', 'DURSEJ', 9), +('S9', '7643', 'DURSEJ', 9), +('S9', '7644', 'DURSEJ', 9), +('S9', '7645', 'DURSEJ', 9), +('S9', '7646', 'DURSEJ', 9), +('S9', '7647', 'DURSEJ', 9), +('S9', '7648', 'DURSEJ', 9), +('S9', '7649', 'DURSEJ', 9), +('S9', '7650', 'DURSEJ', 9), +('S9', '7651', 'DURSEJ', 9), +('S9', '7652', 'DURSEJ', 9), +('S9', '7653', 'DURSEJ', 9), +('S9', '7654', 'DURSEJ', 9), +('S9', '7655', 'DURSEJ', 9), +('S9', '7656', 'DURSEJ', 9), +('S9', '7657', 'DURSEJ', 9), +('S9', '7658', 'DURSEJ', 9), +('S9', '7659', 'DURSEJ', 9), +('S9', '7660', 'DURSEJ', 9), +('S9', '7661', 'DURSEJ', 9), +('S9', '7662', 'DURSEJ', 9), +('S9', '7663', 'DURSEJ', 9), +('S9', '7664', 'DURSEJ', 9), +('S9', '7665', 'DURSEJ', 9), +('S9', '7666', 'DURSEJ', 9), +('S9', '7667', 'DURSEJ', 9), +('S9', '7668', 'DURSEJ', 9), +('S9', '7669', 'DURSEJ', 9), +('S9', '7670', 'DURSEJ', 9), +('S9', '7671', 'DURSEJ', 9), +('S9', '7672', 'DURSEJ', 9), +('S9', '7673', 'DURSEJ', 9), +('S9', '7674', 'DURSEJ', 9), +('S9', '7675', 'DURSEJ', 9), +('S9', '7676', 'DURSEJ', 9), +('S9', '7677', 'DURSEJ', 9), +('S9', '7678', 'DURSEJ', 9), +('S9', '7679', 'DURSEJ', 9), +('S9', '7680', 'DURSEJ', 9), +('S9', '7681', 'DURSEJ', 9), +('S9', '7682', 'DURSEJ', 9), +('S9', '7683', 'DURSEJ', 9), +('S9', '7684', 'DURSEJ', 9), +('S9', '7685', 'DURSEJ', 9), +('S9', '7686', 'DURSEJ', 9), +('S9', '7687', 'DURSEJ', 9), +('S9', '7688', 'DURSEJ', 9), +('S9', '7689', 'DURSEJ', 9), +('S9', '7690', 'DURSEJ', 9), +('S9', '7691', 'DURSEJ', 9), +('S9', '7692', 'DURSEJ', 9), +('S9', '7693', 'DURSEJ', 9), +('S9', '7694', 'DURSEJ', 9), +('S9', '7695', 'DURSEJ', 9), +('S9', '7696', 'DURSEJ', 9), +('S9', '7697', 'DURSEJ', 9), +('S9', '7698', 'DURSEJ', 9), +('S9', '7699', 'DURSEJ', 9), +('S9', '7700', 'DURSEJ', 9), +('S9', '7701', 'DURSEJ', 9), +('S9', '7702', 'DURSEJ', 9), +('S9', '7703', 'DURSEJ', 9), +('S9', '7704', 'DURSEJ', 9), +('S9', '7705', 'DURSEJ', 9), +('S9', '7706', 'DURSEJ', 9), +('S9', '7707', 'DURSEJ', 9), +('S9', '7708', 'DURSEJ', 9), +('S9', '7709', 'DURSEJ', 9), +('S9', '7710', 'DURSEJ', 9), +('S9', '7711', 'DURSEJ', 9), +('S9', '7712', 'DURSEJ', 9), +('S9', '7713', 'DURSEJ', 9), +('S9', '7714', 'DURSEJ', 9), +('S9', '7715', 'DURSEJ', 9), +('S9', '7716', 'DURSEJ', 9), +('S9', '7717', 'DURSEJ', 9), +('S9', '7718', 'DURSEJ', 9), +('S9', '7719', 'DURSEJ', 9), +('S9', '7720', 'DURSEJ', 9), +('S9', '7721', 'DURSEJ', 9), +('S9', '7722', 'DURSEJ', 9), +('S9', '7723', 'DURSEJ', 9), +('S9', '7724', 'DURSEJ', 9), +('S9', '7725', 'DURSEJ', 9), +('S9', '7726', 'DURSEJ', 9), +('S9', '7727', 'DURSEJ', 9), +('S9', '7728', 'DURSEJ', 9), +('S9', '7729', 'DURSEJ', 9), +('S9', '7730', 'DURSEJ', 9), +('S9', '7731', 'DURSEJ', 9), +('S9', '7732', 'DURSEJ', 9), +('S9', '7733', 'DURSEJ', 9), +('S9', '7734', 'DURSEJ', 9), +('S9', '7735', 'DURSEJ', 9), +('S9', '7736', 'DURSEJ', 9), +('S9', '7737', 'DURSEJ', 9), +('S9', '7738', 'DURSEJ', 9), +('S9', '7739', 'DURSEJ', 9), +('S9', '7740', 'DURSEJ', 9), +('S9', '7741', 'DURSEJ', 9), +('S9', '7742', 'DURSEJ', 9), +('S9', '7743', 'DURSEJ', 9), +('S9', '7744', 'DURSEJ', 9), +('S9', '7745', 'DURSEJ', 9), +('S9', '7746', 'DURSEJ', 9), +('S9', '7747', 'DURSEJ', 9), +('S9', '7748', 'DURSEJ', 9), +('S9', '7749', 'DURSEJ', 9), +('S9', '7750', 'DURSEJ', 9), +('S9', '7751', 'DURSEJ', 9), +('S9', '7752', 'DURSEJ', 9), +('S9', '7753', 'DURSEJ', 9), +('S9', '7754', 'DURSEJ', 9), +('S9', '7755', 'DURSEJ', 9), +('S9', '7756', 'DURSEJ', 9), +('S9', '7757', 'DURSEJ', 9), +('S9', '7758', 'DURSEJ', 9), +('S9', '7759', 'DURSEJ', 9), +('S9', '7760', 'DURSEJ', 9), +('S9', '7761', 'DURSEJ', 9), +('S9', '7762', 'DURSEJ', 9), +('S9', '7763', 'DURSEJ', 9), +('S9', '7764', 'DURSEJ', 9), +('S9', '7765', 'DURSEJ', 9), +('S9', '7766', 'DURSEJ', 9), +('S9', '7767', 'DURSEJ', 9), +('S9', '7768', 'DURSEJ', 9), +('S9', '7769', 'DURSEJ', 9), +('S9', '7770', 'DURSEJ', 9), +('S9', '7771', 'DURSEJ', 9), +('S9', '7772', 'DURSEJ', 9), +('S9', '7773', 'DURSEJ', 9), +('S9', '7774', 'DURSEJ', 9), +('S9', '7775', 'DURSEJ', 9), +('S9', '7776', 'DURSEJ', 9), +('S9', '7777', 'DURSEJ', 9), +('S9', '7778', 'DURSEJ', 9), +('S9', '7779', 'DURSEJ', 9), +('S9', '7780', 'DURSEJ', 9), +('S9', '7781', 'DURSEJ', 9), +('S9', '7782', 'DURSEJ', 9), +('S9', '7783', 'DURSEJ', 9), +('S9', '7784', 'DURSEJ', 9), +('S9', '7785', 'DURSEJ', 9), +('S9', '7786', 'DURSEJ', 9), +('S9', '7787', 'DURSEJ', 9), +('S9', '7788', 'DURSEJ', 9), +('S9', '7789', 'DURSEJ', 9), +('S9', '7790', 'DURSEJ', 9), +('S9', '7791', 'DURSEJ', 9), +('S9', '7792', 'DURSEJ', 9), +('S9', '7793', 'DURSEJ', 9), +('S9', '7794', 'DURSEJ', 9), +('S9', '7795', 'DURSEJ', 9), +('S9', '7796', 'DURSEJ', 9), +('S9', '7797', 'DURSEJ', 9), +('S9', '7798', 'DURSEJ', 9), +('S9', '7799', 'DURSEJ', 9), +('S9', '7800', 'DURSEJ', 9), +('S9', '7801', 'DURSEJ', 9), +('S9', '7802', 'DURSEJ', 9), +('S9', '7803', 'DURSEJ', 9), +('S9', '7804', 'DURSEJ', 9), +('S9', '7805', 'DURSEJ', 9), +('S9', '7806', 'DURSEJ', 9), +('S9', '7807', 'DURSEJ', 9), +('S9', '7808', 'DURSEJ', 9), +('S9', '7809', 'DURSEJ', 9), +('S9', '7810', 'DURSEJ', 9), +('S9', '7811', 'DURSEJ', 9), +('S9', '7812', 'DURSEJ', 9), +('S9', '7813', 'DURSEJ', 9), +('S9', '7814', 'DURSEJ', 9), +('S9', '7815', 'DURSEJ', 9), +('S9', '7816', 'DURSEJ', 9), +('S9', '7817', 'DURSEJ', 9), +('S9', '7818', 'DURSEJ', 9), +('S9', '7819', 'DURSEJ', 9), +('S9', '7820', 'DURSEJ', 9), +('S9', '7821', 'DURSEJ', 9), +('S9', '7822', 'DURSEJ', 9), +('S9', '7823', 'DURSEJ', 9), +('S9', '7824', 'DURSEJ', 9), +('S9', '7825', 'DURSEJ', 9), +('S9', '7826', 'DURSEJ', 9), +('S9', '7827', 'DURSEJ', 9), +('S9', '7828', 'DURSEJ', 9), +('S9', '7829', 'DURSEJ', 9), +('S9', '7830', 'DURSEJ', 9), +('S9', '7831', 'DURSEJ', 9), +('S9', '7832', 'DURSEJ', 9), +('S9', '7833', 'DURSEJ', 9), +('S9', '7834', 'DURSEJ', 9), +('S9', '7835', 'DURSEJ', 9), +('S9', '7836', 'DURSEJ', 9), +('S9', '7837', 'DURSEJ', 9), +('S9', '7838', 'DURSEJ', 9), +('S9', '7839', 'DURSEJ', 9), +('S9', '7840', 'DURSEJ', 9), +('S9', '7841', 'DURSEJ', 9), +('S9', '7842', 'DURSEJ', 9), +('S9', '7843', 'DURSEJ', 9), +('S9', '7844', 'DURSEJ', 9), +('S9', '7845', 'DURSEJ', 9), +('S9', '7846', 'DURSEJ', 9), +('S9', '7847', 'DURSEJ', 9), +('S9', '7848', 'DURSEJ', 9), +('S9', '7849', 'DURSEJ', 9), +('S9', '7850', 'DURSEJ', 9), +('S9', '7851', 'DURSEJ', 9), +('S9', '7852', 'DURSEJ', 9), +('S9', '7853', 'DURSEJ', 9), +('S9', '7854', 'DURSEJ', 9), +('S9', '7855', 'DURSEJ', 9), +('S9', '7856', 'DURSEJ', 9), +('S9', '7857', 'DURSEJ', 9), +('S9', '7858', 'DURSEJ', 9), +('S9', '7859', 'DURSEJ', 9), +('S9', '7860', 'DURSEJ', 9), +('S9', '7861', 'DURSEJ', 9), +('S9', '7862', 'DURSEJ', 9), +('S9', '7863', 'DURSEJ', 9), +('S9', '7864', 'DURSEJ', 9), +('S9', '7865', 'DURSEJ', 9), +('S9', '7866', 'DURSEJ', 9), +('S9', '7867', 'DURSEJ', 9), +('S9', '7868', 'DURSEJ', 9), +('S9', '7869', 'DURSEJ', 9), +('S9', '7870', 'DURSEJ', 9), +('S9', '7871', 'DURSEJ', 9), +('S9', '7872', 'DURSEJ', 9), +('S9', '7873', 'DURSEJ', 9), +('S9', '7874', 'DURSEJ', 9), +('S9', '7875', 'DURSEJ', 9), +('S9', '7876', 'DURSEJ', 9), +('S9', '7877', 'DURSEJ', 9), +('S9', '7878', 'DURSEJ', 9), +('S9', '7879', 'DURSEJ', 9), +('S9', '7880', 'DURSEJ', 9), +('S9', '7881', 'DURSEJ', 9), +('S9', '7882', 'DURSEJ', 9), +('S9', '7883', 'DURSEJ', 9), +('S9', '7884', 'DURSEJ', 9), +('S9', '7885', 'DURSEJ', 9), +('S9', '7886', 'DURSEJ', 9), +('S9', '7887', 'DURSEJ', 9), +('S9', '7888', 'DURSEJ', 9), +('S9', '7889', 'DURSEJ', 9), +('S9', '7890', 'DURSEJ', 9), +('S9', '7891', 'DURSEJ', 9), +('S9', '7892', 'DURSEJ', 9), +('S9', '7893', 'DURSEJ', 9), +('S9', '7894', 'DURSEJ', 9), +('S9', '7895', 'DURSEJ', 9), +('S9', '7896', 'DURSEJ', 9), +('S9', '7897', 'DURSEJ', 9), +('S9', '7898', 'DURSEJ', 9), +('S9', '7899', 'DURSEJ', 9), +('S9', '7900', 'DURSEJ', 9), +('S9', '7901', 'DURSEJ', 9), +('S9', '7902', 'DURSEJ', 9), +('S9', '7903', 'DURSEJ', 9), +('S9', '7904', 'DURSEJ', 9), +('S9', '7905', 'DURSEJ', 9), +('S9', '7906', 'DURSEJ', 9), +('S9', '7907', 'DURSEJ', 9), +('S9', '7908', 'DURSEJ', 9), +('S9', '7909', 'DURSEJ', 9), +('S9', '7910', 'DURSEJ', 9), +('S9', '7911', 'DURSEJ', 9), +('S9', '7912', 'DURSEJ', 9), +('S9', '7913', 'DURSEJ', 9), +('S9', '7914', 'DURSEJ', 9), +('S9', '7915', 'DURSEJ', 9), +('S9', '7916', 'DURSEJ', 9), +('S9', '7917', 'DURSEJ', 9), +('S9', '7918', 'DURSEJ', 9), +('S9', '7919', 'DURSEJ', 9), +('S9', '7920', 'DURSEJ', 9), +('S9', '7921', 'DURSEJ', 9), +('S9', '7922', 'DURSEJ', 9), +('S9', '7923', 'DURSEJ', 9), +('S9', '7924', 'DURSEJ', 9), +('S9', '7925', 'DURSEJ', 9), +('S9', '7926', 'DURSEJ', 9), +('S9', '7927', 'DURSEJ', 9), +('S9', '7928', 'DURSEJ', 9), +('S9', '7929', 'DURSEJ', 9), +('S9', '7930', 'DURSEJ', 9), +('S9', '7931', 'DURSEJ', 9), +('S9', '7932', 'DURSEJ', 9), +('S9', '7933', 'DURSEJ', 9), +('S9', '7934', 'DURSEJ', 9), +('S9', '7935', 'DURSEJ', 9), +('S9', '7936', 'DURSEJ', 9), +('S9', '7937', 'DURSEJ', 9), +('S9', '7938', 'DURSEJ', 9), +('S9', '7939', 'DURSEJ', 9), +('S9', '7940', 'DURSEJ', 9), +('S9', '7941', 'DURSEJ', 9), +('S9', '7942', 'DURSEJ', 9), +('S9', '7943', 'DURSEJ', 9), +('S9', '7944', 'DURSEJ', 9), +('S9', '7945', 'DURSEJ', 9), +('S9', '7946', 'DURSEJ', 9), +('S9', '7947', 'DURSEJ', 9), +('S9', '7948', 'DURSEJ', 9), +('S9', '7949', 'DURSEJ', 9), +('S9', '7950', 'DURSEJ', 9), +('S9', '7951', 'DURSEJ', 9), +('S9', '7952', 'DURSEJ', 9), +('S9', '7953', 'DURSEJ', 9), +('S9', '7954', 'DURSEJ', 9), +('S9', '7955', 'DURSEJ', 9), +('S9', '7956', 'DURSEJ', 9), +('S9', '7957', 'DURSEJ', 9), +('S9', '7958', 'DURSEJ', 9), +('S9', '7959', 'DURSEJ', 9), +('S9', '7960', 'DURSEJ', 9), +('S9', '7961', 'DURSEJ', 9), +('S9', '7962', 'DURSEJ', 9), +('S9', '7963', 'DURSEJ', 9), +('S9', '7964', 'DURSEJ', 9), +('S9', '7965', 'DURSEJ', 9), +('S9', '7966', 'DURSEJ', 9), +('S9', '7967', 'DURSEJ', 9), +('S9', '7968', 'DURSEJ', 9), +('S9', '7969', 'DURSEJ', 9), +('S9', '7970', 'DURSEJ', 9), +('S9', '7971', 'DURSEJ', 9), +('S9', '7972', 'DURSEJ', 9), +('S9', '7973', 'DURSEJ', 9), +('S9', '7974', 'DURSEJ', 9), +('S9', '7975', 'DURSEJ', 9), +('S9', '7976', 'DURSEJ', 9), +('S9', '7977', 'DURSEJ', 9), +('S9', '7978', 'DURSEJ', 9), +('S9', '7979', 'DURSEJ', 9), +('S9', '7980', 'DURSEJ', 9), +('S9', '7981', 'DURSEJ', 9), +('S9', '7982', 'DURSEJ', 9), +('S9', '7983', 'DURSEJ', 9), +('S9', '7984', 'DURSEJ', 9), +('S9', '7985', 'DURSEJ', 9), +('S9', '7986', 'DURSEJ', 9), +('S9', '7987', 'DURSEJ', 9), +('S9', '7988', 'DURSEJ', 9), +('S9', '7989', 'DURSEJ', 9), +('S9', '7990', 'DURSEJ', 9), +('S9', '7991', 'DURSEJ', 9), +('S9', '7992', 'DURSEJ', 9), +('S9', '7993', 'DURSEJ', 9), +('S9', '7994', 'DURSEJ', 9), +('S9', '7995', 'DURSEJ', 9), +('S9', '7996', 'DURSEJ', 9), +('S9', '7997', 'DURSEJ', 9), +('S9', '7998', 'DURSEJ', 9), +('S9', '7999', 'DURSEJ', 9), +('S9', '8000', 'DURSEJ', 9), +('S9', '8001', 'DURSEJ', 9), +('S9', '8002', 'DURSEJ', 9), +('S9', '8003', 'DURSEJ', 9), +('S9', '8004', 'DURSEJ', 9), +('S9', '8005', 'DURSEJ', 9), +('S9', '8006', 'DURSEJ', 9), +('S9', '8007', 'DURSEJ', 9), +('S9', '8008', 'DURSEJ', 9), +('S9', '8009', 'DURSEJ', 9), +('S9', '8010', 'DURSEJ', 9), +('S9', '8011', 'DURSEJ', 9), +('S9', '8012', 'DURSEJ', 9), +('S9', '8013', 'DURSEJ', 9), +('S9', '8014', 'DURSEJ', 9), +('S9', '8015', 'DURSEJ', 9), +('S9', '8016', 'DURSEJ', 9), +('S9', '8017', 'DURSEJ', 9), +('S9', '8018', 'DURSEJ', 9), +('S9', '8019', 'DURSEJ', 9), +('S9', '8020', 'DURSEJ', 9), +('S9', '8021', 'DURSEJ', 9), +('S9', '8022', 'DURSEJ', 9), +('S9', '8023', 'DURSEJ', 9), +('S9', '8024', 'DURSEJ', 9), +('S9', '8025', 'DURSEJ', 9), +('S9', '8026', 'DURSEJ', 9), +('S9', '8027', 'DURSEJ', 9), +('S9', '8028', 'DURSEJ', 9), +('S9', '8029', 'DURSEJ', 9), +('S9', '8030', 'DURSEJ', 9), +('S9', '8031', 'DURSEJ', 9), +('S9', '8032', 'DURSEJ', 9), +('S9', '8033', 'DURSEJ', 9), +('S9', '8034', 'DURSEJ', 9), +('S9', '8035', 'DURSEJ', 9), +('S9', '8036', 'DURSEJ', 9), +('S9', '8037', 'DURSEJ', 9), +('S9', '8038', 'DURSEJ', 9), +('S9', '8039', 'DURSEJ', 9), +('S9', '8040', 'DURSEJ', 9), +('S9', '8041', 'DURSEJ', 9), +('S9', '8042', 'DURSEJ', 9), +('S9', '8043', 'DURSEJ', 9), +('S9', '8044', 'DURSEJ', 9), +('S9', '8045', 'DURSEJ', 9), +('S9', '8046', 'DURSEJ', 9), +('S9', '8047', 'DURSEJ', 9), +('S9', '8048', 'DURSEJ', 9), +('S9', '8049', 'DURSEJ', 9), +('S9', '8050', 'DURSEJ', 9), +('S9', '8051', 'DURSEJ', 9), +('S9', '8052', 'DURSEJ', 9), +('S9', '8053', 'DURSEJ', 9), +('S9', '8054', 'DURSEJ', 9), +('S9', '8055', 'DURSEJ', 9), +('S9', '8056', 'DURSEJ', 9), +('S9', '8057', 'DURSEJ', 9), +('S9', '8058', 'DURSEJ', 9), +('S9', '8059', 'DURSEJ', 9), +('S9', '8060', 'DURSEJ', 9), +('S9', '8061', 'DURSEJ', 9), +('S9', '8062', 'DURSEJ', 9), +('S9', '8063', 'DURSEJ', 9), +('S9', '8064', 'DURSEJ', 9), +('S9', '8065', 'DURSEJ', 9), +('S9', '8066', 'DURSEJ', 9), +('S9', '8067', 'DURSEJ', 9), +('S9', '8068', 'DURSEJ', 9), +('S9', '8069', 'DURSEJ', 9), +('S9', '8070', 'DURSEJ', 9), +('S9', '8071', 'DURSEJ', 9), +('S9', '8072', 'DURSEJ', 9), +('S9', '8073', 'DURSEJ', 9), +('S9', '8074', 'DURSEJ', 9), +('S9', '8075', 'DURSEJ', 9), +('S9', '8076', 'DURSEJ', 9), +('S9', '8077', 'DURSEJ', 9), +('S9', '8078', 'DURSEJ', 9), +('S9', '8079', 'DURSEJ', 9), +('S9', '8080', 'DURSEJ', 9), +('S9', '8081', 'DURSEJ', 9), +('S9', '8082', 'DURSEJ', 9), +('S9', '8083', 'DURSEJ', 9), +('S9', '8084', 'DURSEJ', 9), +('S9', '8085', 'DURSEJ', 9), +('S9', '8086', 'DURSEJ', 9), +('S9', '8087', 'DURSEJ', 9), +('S9', '8088', 'DURSEJ', 9), +('S9', '8089', 'DURSEJ', 9), +('S9', '8090', 'DURSEJ', 9), +('S9', '8091', 'DURSEJ', 9), +('S9', '8092', 'DURSEJ', 9), +('S9', '8093', 'DURSEJ', 9), +('S9', '8094', 'DURSEJ', 9), +('S9', '8095', 'DURSEJ', 9), +('S9', '8096', 'DURSEJ', 9), +('S9', '8097', 'DURSEJ', 9), +('S9', '8098', 'DURSEJ', 9), +('S9', '8099', 'DURSEJ', 9), +('S9', '8100', 'DURSEJ', 9), +('S9', '8101', 'DURSEJ', 9), +('S9', '8102', 'DURSEJ', 9), +('S9', '8103', 'DURSEJ', 9), +('S9', '8104', 'DURSEJ', 9), +('S9', '8105', 'DURSEJ', 9), +('S9', '8106', 'DURSEJ', 9), +('S9', '8107', 'DURSEJ', 9), +('S9', '8108', 'DURSEJ', 9), +('S9', '8109', 'DURSEJ', 9), +('S9', '8110', 'DURSEJ', 9), +('S9', '8111', 'DURSEJ', 9), +('S9', '8112', 'DURSEJ', 9), +('S9', '8113', 'DURSEJ', 9), +('S9', '8114', 'DURSEJ', 9), +('S9', '8115', 'DURSEJ', 9), +('S9', '8116', 'DURSEJ', 9), +('S9', '8117', 'DURSEJ', 9), +('S9', '8118', 'DURSEJ', 9), +('S9', '8119', 'DURSEJ', 9), +('S9', '8120', 'DURSEJ', 9), +('S9', '8121', 'DURSEJ', 9), +('S9', '8122', 'DURSEJ', 9), +('S9', '8123', 'DURSEJ', 9), +('S9', '8124', 'DURSEJ', 9), +('S9', '8125', 'DURSEJ', 9), +('S9', '8126', 'DURSEJ', 9), +('S9', '8127', 'DURSEJ', 9), +('S9', '8128', 'DURSEJ', 9), +('S9', '8129', 'DURSEJ', 9), +('S9', '8130', 'DURSEJ', 9), +('S9', '8131', 'DURSEJ', 9), +('S9', '8132', 'DURSEJ', 9), +('S9', '8133', 'DURSEJ', 9), +('S9', '8134', 'DURSEJ', 9), +('S9', '8135', 'DURSEJ', 9), +('S9', '8136', 'DURSEJ', 9), +('S9', '8137', 'DURSEJ', 9), +('S9', '8138', 'DURSEJ', 9), +('S9', '8139', 'DURSEJ', 9), +('S9', '8140', 'DURSEJ', 9), +('S9', '8141', 'DURSEJ', 9), +('S9', '8142', 'DURSEJ', 9), +('S9', '8143', 'DURSEJ', 9), +('S9', '8144', 'DURSEJ', 9), +('S9', '8145', 'DURSEJ', 9), +('S9', '8146', 'DURSEJ', 9), +('S9', '8147', 'DURSEJ', 9), +('S9', '8148', 'DURSEJ', 9), +('S9', '8149', 'DURSEJ', 9), +('S9', '8150', 'DURSEJ', 9), +('S9', '8151', 'DURSEJ', 9), +('S9', '8152', 'DURSEJ', 9), +('S9', '8153', 'DURSEJ', 9), +('S9', '8154', 'DURSEJ', 9), +('S9', '8155', 'DURSEJ', 9), +('S9', '8156', 'DURSEJ', 9), +('S9', '8157', 'DURSEJ', 9), +('S9', '8158', 'DURSEJ', 9), +('S9', '8159', 'DURSEJ', 9), +('S9', '8160', 'DURSEJ', 9), +('S9', '8161', 'DURSEJ', 9), +('S9', '8162', 'DURSEJ', 9), +('S9', '8163', 'DURSEJ', 9), +('S9', '8164', 'DURSEJ', 9), +('S9', '8165', 'DURSEJ', 9), +('S9', '8166', 'DURSEJ', 9), +('S9', '8167', 'DURSEJ', 9), +('S9', '8168', 'DURSEJ', 9), +('S9', '8169', 'DURSEJ', 9), +('S9', '8170', 'DURSEJ', 9), +('S9', '8171', 'DURSEJ', 9), +('S9', '8172', 'DURSEJ', 9), +('S9', '8173', 'DURSEJ', 9), +('S9', '8174', 'DURSEJ', 9), +('S9', '8175', 'DURSEJ', 9), +('S9', '8176', 'DURSEJ', 9), +('S9', '8177', 'DURSEJ', 9), +('S9', '8178', 'DURSEJ', 9), +('S9', '8179', 'DURSEJ', 9), +('S9', '8180', 'DURSEJ', 9), +('S9', '8181', 'DURSEJ', 9), +('S9', '8182', 'DURSEJ', 9), +('S9', '8183', 'DURSEJ', 9), +('S9', '8184', 'DURSEJ', 9), +('S9', '8185', 'DURSEJ', 9), +('S9', '8186', 'DURSEJ', 9), +('S9', '8187', 'DURSEJ', 9), +('S9', '8188', 'DURSEJ', 9), +('S9', '8189', 'DURSEJ', 9), +('S9', '8190', 'DURSEJ', 9), +('S9', '8191', 'DURSEJ', 9), +('S9', '8192', 'DURSEJ', 9), +('S9', '8193', 'DURSEJ', 9), +('S9', '8194', 'DURSEJ', 9), +('S9', '8195', 'DURSEJ', 9), +('S9', '8196', 'DURSEJ', 9), +('S9', '8197', 'DURSEJ', 9), +('S9', '8198', 'DURSEJ', 9), +('S9', '8199', 'DURSEJ', 9), +('S9', '8200', 'DURSEJ', 9), +('S9', '8201', 'DURSEJ', 9), +('S9', '8202', 'DURSEJ', 9), +('S9', '8203', 'DURSEJ', 9), +('S9', '8204', 'DURSEJ', 9), +('S9', '8205', 'DURSEJ', 9), +('S9', '8206', 'DURSEJ', 9), +('S9', '8207', 'DURSEJ', 9), +('S9', '8208', 'DURSEJ', 9), +('S9', '8209', 'DURSEJ', 9), +('S9', '8210', 'DURSEJ', 9), +('S9', '8211', 'DURSEJ', 9), +('S9', '8212', 'DURSEJ', 9), +('S9', '8213', 'DURSEJ', 9), +('S9', '8214', 'DURSEJ', 9), +('S9', '8215', 'DURSEJ', 9), +('S9', '8216', 'DURSEJ', 9), +('S9', '8217', 'DURSEJ', 9), +('S9', '8218', 'DURSEJ', 9), +('S9', '8219', 'DURSEJ', 9), +('S9', '8220', 'DURSEJ', 9), +('S9', '8221', 'DURSEJ', 9), +('S9', '8222', 'DURSEJ', 9), +('S9', '8223', 'DURSEJ', 9), +('S9', '8224', 'DURSEJ', 9), +('S9', '8225', 'DURSEJ', 9), +('S9', '8226', 'DURSEJ', 9), +('S9', '8227', 'DURSEJ', 9), +('S9', '8228', 'DURSEJ', 9), +('S9', '8229', 'DURSEJ', 9), +('S9', '8230', 'DURSEJ', 9), +('S9', '8231', 'DURSEJ', 9), +('S9', '8232', 'DURSEJ', 9), +('S9', '8233', 'DURSEJ', 9), +('S9', '8234', 'DURSEJ', 9), +('S9', '8235', 'DURSEJ', 9), +('S9', '8236', 'DURSEJ', 9), +('S9', '8237', 'DURSEJ', 9), +('S9', '8238', 'DURSEJ', 9), +('S9', '8239', 'DURSEJ', 9), +('S9', '8240', 'DURSEJ', 9), +('S9', '8241', 'DURSEJ', 9), +('S9', '8242', 'DURSEJ', 9), +('S9', '8243', 'DURSEJ', 9), +('S9', '8244', 'DURSEJ', 9), +('S9', '8245', 'DURSEJ', 9), +('S9', '8246', 'DURSEJ', 9), +('S9', '8247', 'DURSEJ', 9), +('S9', '8248', 'DURSEJ', 9), +('S9', '8249', 'DURSEJ', 9), +('S9', '8250', 'DURSEJ', 9), +('S9', '8251', 'DURSEJ', 9), +('S9', '8252', 'DURSEJ', 9), +('S9', '8253', 'DURSEJ', 9), +('S9', '8254', 'DURSEJ', 9), +('S9', '8255', 'DURSEJ', 9), +('S9', '8256', 'DURSEJ', 9), +('S9', '8257', 'DURSEJ', 9), +('S9', '8258', 'DURSEJ', 9), +('S9', '8259', 'DURSEJ', 9), +('S9', '8260', 'DURSEJ', 9), +('S9', '8261', 'DURSEJ', 9), +('S9', '8262', 'DURSEJ', 9), +('S9', '8263', 'DURSEJ', 9), +('S9', '8264', 'DURSEJ', 9), +('S9', '8265', 'DURSEJ', 9), +('S9', '8266', 'DURSEJ', 9), +('S9', '8267', 'DURSEJ', 9), +('S9', '8268', 'DURSEJ', 9), +('S9', '8269', 'DURSEJ', 9), +('S9', '8270', 'DURSEJ', 9), +('S9', '8271', 'DURSEJ', 9), +('S9', '8272', 'DURSEJ', 9), +('S9', '8273', 'DURSEJ', 9), +('S9', '8274', 'DURSEJ', 9), +('S9', '8275', 'DURSEJ', 9), +('S9', '8276', 'DURSEJ', 9), +('S9', '8277', 'DURSEJ', 9), +('S9', '8278', 'DURSEJ', 9), +('S9', '8279', 'DURSEJ', 9), +('S9', '8280', 'DURSEJ', 9), +('S9', '8281', 'DURSEJ', 9), +('S9', '8282', 'DURSEJ', 9), +('S9', '8283', 'DURSEJ', 9), +('S9', '8284', 'DURSEJ', 9), +('S9', '8285', 'DURSEJ', 9), +('S9', '8286', 'DURSEJ', 9), +('S9', '8287', 'DURSEJ', 9), +('S9', '8288', 'DURSEJ', 9), +('S9', '8289', 'DURSEJ', 9), +('S9', '8290', 'DURSEJ', 9), +('S9', '8291', 'DURSEJ', 9), +('S9', '8292', 'DURSEJ', 9), +('S9', '8293', 'DURSEJ', 9), +('S9', '8294', 'DURSEJ', 9), +('S9', '8295', 'DURSEJ', 9), +('S9', '8296', 'DURSEJ', 9), +('S9', '8297', 'DURSEJ', 9), +('S9', '8298', 'DURSEJ', 9), +('S9', '8299', 'DURSEJ', 9), +('S9', '8300', 'DURSEJ', 9), +('S9', '8301', 'DURSEJ', 9), +('S9', '8302', 'DURSEJ', 9), +('S9', '8303', 'DURSEJ', 9), +('S9', '8304', 'DURSEJ', 9), +('S9', '8305', 'DURSEJ', 9), +('S9', '8306', 'DURSEJ', 9), +('S9', '8307', 'DURSEJ', 9), +('S9', '8308', 'DURSEJ', 9), +('S9', '8309', 'DURSEJ', 9), +('S9', '8310', 'DURSEJ', 9), +('S9', '8311', 'DURSEJ', 9), +('S9', '8312', 'DURSEJ', 9), +('S9', '8313', 'DURSEJ', 9), +('S9', '8314', 'DURSEJ', 9), +('S9', '8315', 'DURSEJ', 9), +('S9', '8316', 'DURSEJ', 9), +('S9', '8317', 'DURSEJ', 9), +('S9', '8318', 'DURSEJ', 9), +('S9', '8319', 'DURSEJ', 9), +('S9', '8320', 'DURSEJ', 9), +('S9', '8321', 'DURSEJ', 9), +('S9', '8322', 'DURSEJ', 9), +('S9', '8323', 'DURSEJ', 9), +('S9', '8324', 'DURSEJ', 9), +('S9', '8325', 'DURSEJ', 9), +('S9', '8326', 'DURSEJ', 9), +('S9', '8327', 'DURSEJ', 9), +('S9', '8328', 'DURSEJ', 9), +('S9', '8329', 'DURSEJ', 9), +('S9', '8330', 'DURSEJ', 9), +('S9', '8331', 'DURSEJ', 9), +('S9', '8332', 'DURSEJ', 9), +('S9', '8333', 'DURSEJ', 9), +('S9', '8334', 'DURSEJ', 9), +('S9', '8335', 'DURSEJ', 9), +('S9', '8336', 'DURSEJ', 9), +('S9', '8337', 'DURSEJ', 9), +('S9', '8338', 'DURSEJ', 9), +('S9', '8339', 'DURSEJ', 9), +('S9', '8340', 'DURSEJ', 9), +('S9', '8341', 'DURSEJ', 9), +('S9', '8342', 'DURSEJ', 9), +('S9', '8343', 'DURSEJ', 9), +('S9', '8344', 'DURSEJ', 9), +('S9', '8345', 'DURSEJ', 9), +('S9', '8346', 'DURSEJ', 9), +('S9', '8347', 'DURSEJ', 9), +('S9', '8348', 'DURSEJ', 9), +('S9', '8349', 'DURSEJ', 9), +('S9', '8350', 'DURSEJ', 9), +('S9', '8351', 'DURSEJ', 9), +('S9', '8352', 'DURSEJ', 9), +('S9', '8353', 'DURSEJ', 9), +('S9', '8354', 'DURSEJ', 9), +('S9', '8355', 'DURSEJ', 9), +('S9', '8356', 'DURSEJ', 9), +('S9', '8357', 'DURSEJ', 9), +('S9', '8358', 'DURSEJ', 9), +('S9', '8359', 'DURSEJ', 9), +('S9', '8360', 'DURSEJ', 9), +('S9', '8361', 'DURSEJ', 9), +('S9', '8362', 'DURSEJ', 9), +('S9', '8363', 'DURSEJ', 9), +('S9', '8364', 'DURSEJ', 9), +('S9', '8365', 'DURSEJ', 9), +('S9', '8366', 'DURSEJ', 9), +('S9', '8367', 'DURSEJ', 9), +('S9', '8368', 'DURSEJ', 9), +('S9', '8369', 'DURSEJ', 9), +('S9', '8370', 'DURSEJ', 9), +('S9', '8371', 'DURSEJ', 9), +('S9', '8372', 'DURSEJ', 9), +('S9', '8373', 'DURSEJ', 9), +('S9', '8374', 'DURSEJ', 9), +('S9', '8375', 'DURSEJ', 9), +('S9', '8376', 'DURSEJ', 9), +('S9', '8377', 'DURSEJ', 9), +('S9', '8378', 'DURSEJ', 9), +('S9', '8379', 'DURSEJ', 9), +('S9', '8380', 'DURSEJ', 9), +('S9', '8381', 'DURSEJ', 9), +('S9', '8382', 'DURSEJ', 9), +('S9', '8383', 'DURSEJ', 9), +('S9', '8384', 'DURSEJ', 9), +('S9', '8385', 'DURSEJ', 9), +('S9', '8386', 'DURSEJ', 9), +('S9', '8387', 'DURSEJ', 9), +('S9', '8388', 'DURSEJ', 9), +('S9', '8389', 'DURSEJ', 9), +('S9', '8390', 'DURSEJ', 9), +('S9', '8391', 'DURSEJ', 9), +('S9', '8392', 'DURSEJ', 9), +('S9', '8393', 'DURSEJ', 9), +('S9', '8394', 'DURSEJ', 9), +('S9', '8395', 'DURSEJ', 9), +('S9', '8396', 'DURSEJ', 9), +('S9', '8397', 'DURSEJ', 9), +('S9', '8398', 'DURSEJ', 9), +('S9', '8399', 'DURSEJ', 9), +('S9', '8400', 'DURSEJ', 9), +('S9', '8401', 'DURSEJ', 9), +('S9', '8402', 'DURSEJ', 9), +('S9', '8403', 'DURSEJ', 9), +('S9', '8404', 'DURSEJ', 9), +('S9', '8405', 'DURSEJ', 9), +('S9', '8406', 'DURSEJ', 9), +('S9', '8407', 'DURSEJ', 9), +('S9', '8408', 'DURSEJ', 9), +('S9', '8409', 'DURSEJ', 9), +('S9', '8410', 'DURSEJ', 9), +('S9', '8411', 'DURSEJ', 9), +('S9', '8412', 'DURSEJ', 9), +('S9', '8413', 'DURSEJ', 9), +('S9', '8414', 'DURSEJ', 9), +('S9', '8415', 'DURSEJ', 9), +('S9', '8416', 'DURSEJ', 9), +('S9', '8417', 'DURSEJ', 9), +('S9', '8418', 'DURSEJ', 9), +('S9', '8419', 'DURSEJ', 9), +('S9', '8420', 'DURSEJ', 9), +('S9', '8421', 'DURSEJ', 9), +('S9', '8422', 'DURSEJ', 9), +('S9', '8423', 'DURSEJ', 9), +('S9', '8424', 'DURSEJ', 9), +('S9', '8425', 'DURSEJ', 9), +('S9', '8426', 'DURSEJ', 9), +('S9', '8427', 'DURSEJ', 9), +('S9', '8428', 'DURSEJ', 9), +('S9', '8429', 'DURSEJ', 9), +('S9', '8430', 'DURSEJ', 9), +('S9', '8431', 'DURSEJ', 9), +('S9', '8432', 'DURSEJ', 9), +('S9', '8433', 'DURSEJ', 9), +('S9', '8434', 'DURSEJ', 9), +('S9', '8435', 'DURSEJ', 9), +('S9', '8436', 'DURSEJ', 9), +('S9', '8437', 'DURSEJ', 9), +('S9', '8438', 'DURSEJ', 9), +('S9', '8439', 'DURSEJ', 9), +('S9', '8440', 'DURSEJ', 9), +('S9', '8441', 'DURSEJ', 9), +('S9', '8442', 'DURSEJ', 9), +('S9', '8443', 'DURSEJ', 9), +('S9', '8444', 'DURSEJ', 9), +('S9', '8445', 'DURSEJ', 9), +('S9', '8446', 'DURSEJ', 9), +('S9', '8447', 'DURSEJ', 9), +('S9', '8448', 'DURSEJ', 9), +('S9', '8449', 'DURSEJ', 9), +('S9', '8450', 'DURSEJ', 9), +('S9', '8451', 'DURSEJ', 9), +('S9', '8452', 'DURSEJ', 9), +('S9', '8453', 'DURSEJ', 9), +('S9', '8454', 'DURSEJ', 9), +('S9', '8455', 'DURSEJ', 9), +('S9', '8456', 'DURSEJ', 9), +('S9', '8457', 'DURSEJ', 9), +('S9', '8458', 'DURSEJ', 9), +('S9', '8459', 'DURSEJ', 9), +('S9', '8460', 'DURSEJ', 9), +('S9', '8461', 'DURSEJ', 9), +('S9', '8462', 'DURSEJ', 9), +('S9', '8463', 'DURSEJ', 9), +('S9', '8464', 'DURSEJ', 9), +('S9', '8465', 'DURSEJ', 9), +('S9', '8466', 'DURSEJ', 9), +('S9', '8467', 'DURSEJ', 9), +('S9', '8468', 'DURSEJ', 9), +('S9', '8469', 'DURSEJ', 9), +('S9', '8470', 'DURSEJ', 9), +('S9', '8471', 'DURSEJ', 9), +('S9', '8472', 'DURSEJ', 9), +('S9', '8473', 'DURSEJ', 9), +('S9', '8474', 'DURSEJ', 9), +('S9', '8475', 'DURSEJ', 9), +('S9', '8476', 'DURSEJ', 9), +('S9', '8477', 'DURSEJ', 9), +('S9', '8478', 'DURSEJ', 9), +('S9', '8479', 'DURSEJ', 9), +('S9', '8480', 'DURSEJ', 9), +('S9', '8481', 'DURSEJ', 9), +('S9', '8482', 'DURSEJ', 9), +('S9', '8483', 'DURSEJ', 9), +('S9', '8484', 'DURSEJ', 9), +('S9', '8485', 'DURSEJ', 9), +('S9', '8486', 'DURSEJ', 9), +('S9', '8487', 'DURSEJ', 9), +('S9', '8488', 'DURSEJ', 9), +('S9', '8489', 'DURSEJ', 9), +('S9', '8490', 'DURSEJ', 9), +('S9', '8491', 'DURSEJ', 9), +('S9', '8492', 'DURSEJ', 9), +('S9', '8493', 'DURSEJ', 9), +('S9', '8494', 'DURSEJ', 9), +('S9', '8495', 'DURSEJ', 9), +('S9', '8496', 'DURSEJ', 9), +('S9', '8497', 'DURSEJ', 9), +('S9', '8498', 'DURSEJ', 9), +('S9', '8499', 'DURSEJ', 9), +('S9', '8500', 'DURSEJ', 9), +('S9', '8501', 'DURSEJ', 9), +('S9', '8502', 'DURSEJ', 9), +('S9', '8503', 'DURSEJ', 9), +('S9', '8504', 'DURSEJ', 9), +('S9', '8505', 'DURSEJ', 9), +('S9', '8506', 'DURSEJ', 9), +('S9', '8507', 'DURSEJ', 9), +('S9', '8508', 'DURSEJ', 9), +('S9', '8509', 'DURSEJ', 9), +('S9', '8510', 'DURSEJ', 9), +('S9', '8511', 'DURSEJ', 9), +('S9', '8512', 'DURSEJ', 9), +('S9', '8513', 'DURSEJ', 9), +('S9', '8514', 'DURSEJ', 9), +('S9', '8515', 'DURSEJ', 9), +('S9', '8516', 'DURSEJ', 9), +('S9', '8517', 'DURSEJ', 9), +('S9', '8518', 'DURSEJ', 9), +('S9', '8519', 'DURSEJ', 9), +('S9', '8520', 'DURSEJ', 9), +('S9', '8521', 'DURSEJ', 9), +('S9', '8522', 'DURSEJ', 9), +('S9', '8523', 'DURSEJ', 9), +('S9', '8524', 'DURSEJ', 9), +('S9', '8525', 'DURSEJ', 9), +('S9', '8526', 'DURSEJ', 9), +('S9', '8527', 'DURSEJ', 9), +('S9', '8528', 'DURSEJ', 9), +('S9', '8529', 'DURSEJ', 9), +('S9', '8530', 'DURSEJ', 9), +('S9', '8531', 'DURSEJ', 9), +('S9', '8532', 'DURSEJ', 9), +('S9', '8533', 'DURSEJ', 9), +('S9', '8534', 'DURSEJ', 9), +('S9', '8535', 'DURSEJ', 9), +('S9', '8536', 'DURSEJ', 9), +('S9', '8537', 'DURSEJ', 9), +('S9', '8538', 'DURSEJ', 9), +('S9', '8539', 'DURSEJ', 9), +('S9', '8540', 'DURSEJ', 9), +('S9', '8541', 'DURSEJ', 9), +('S9', '8542', 'DURSEJ', 9), +('S9', '8543', 'DURSEJ', 9), +('S9', '8544', 'DURSEJ', 9), +('S9', '8545', 'DURSEJ', 9), +('S9', '8546', 'DURSEJ', 9), +('S9', '8547', 'DURSEJ', 9), +('S9', '8548', 'DURSEJ', 9), +('S9', '8549', 'DURSEJ', 9), +('S9', '8550', 'DURSEJ', 9), +('S9', '8551', 'DURSEJ', 9), +('S9', '8552', 'DURSEJ', 9), +('S9', '8553', 'DURSEJ', 9), +('S9', '8554', 'DURSEJ', 9), +('S9', '8555', 'DURSEJ', 9), +('S9', '8556', 'DURSEJ', 9), +('S9', '8557', 'DURSEJ', 9), +('S9', '8558', 'DURSEJ', 9), +('S9', '8559', 'DURSEJ', 9), +('S9', '8560', 'DURSEJ', 9), +('S9', '8561', 'DURSEJ', 9), +('S9', '8562', 'DURSEJ', 9), +('S9', '8563', 'DURSEJ', 9), +('S9', '8564', 'DURSEJ', 9), +('S9', '8565', 'DURSEJ', 9), +('S9', '8566', 'DURSEJ', 9), +('S9', '8567', 'DURSEJ', 9), +('S9', '8568', 'DURSEJ', 9), +('S9', '8569', 'DURSEJ', 9), +('S9', '8570', 'DURSEJ', 9), +('S9', '8571', 'DURSEJ', 9), +('S9', '8572', 'DURSEJ', 9), +('S9', '8573', 'DURSEJ', 9), +('S9', '8574', 'DURSEJ', 9), +('S9', '8575', 'DURSEJ', 9), +('S9', '8576', 'DURSEJ', 9), +('S9', '8577', 'DURSEJ', 9), +('S9', '8578', 'DURSEJ', 9), +('S9', '8579', 'DURSEJ', 9), +('S9', '8580', 'DURSEJ', 9), +('S9', '8581', 'DURSEJ', 9), +('S9', '8582', 'DURSEJ', 9), +('S9', '8583', 'DURSEJ', 9), +('S9', '8584', 'DURSEJ', 9), +('S9', '8585', 'DURSEJ', 9), +('S9', '8586', 'DURSEJ', 9), +('S9', '8587', 'DURSEJ', 9), +('S9', '8588', 'DURSEJ', 9), +('S9', '8589', 'DURSEJ', 9), +('S9', '8590', 'DURSEJ', 9), +('S9', '8591', 'DURSEJ', 9), +('S9', '8592', 'DURSEJ', 9), +('S9', '8593', 'DURSEJ', 9), +('S9', '8594', 'DURSEJ', 9), +('S9', '8595', 'DURSEJ', 9), +('S9', '8596', 'DURSEJ', 9), +('S9', '8597', 'DURSEJ', 9), +('S9', '8598', 'DURSEJ', 9), +('S9', '8599', 'DURSEJ', 9), +('S9', '8600', 'DURSEJ', 9), +('S9', '8601', 'DURSEJ', 9), +('S9', '8602', 'DURSEJ', 9), +('S9', '8603', 'DURSEJ', 9), +('S9', '8604', 'DURSEJ', 9), +('S9', '8605', 'DURSEJ', 9), +('S9', '8606', 'DURSEJ', 9), +('S9', '8607', 'DURSEJ', 9), +('S9', '8608', 'DURSEJ', 9), +('S9', '8609', 'DURSEJ', 9), +('S9', '8610', 'DURSEJ', 9), +('S9', '8611', 'DURSEJ', 9), +('S9', '8612', 'DURSEJ', 9), +('S9', '8613', 'DURSEJ', 9), +('S9', '8614', 'DURSEJ', 9), +('S9', '8615', 'DURSEJ', 9), +('S9', '8616', 'DURSEJ', 9), +('S9', '8617', 'DURSEJ', 9), +('S9', '8618', 'DURSEJ', 9), +('S9', '8619', 'DURSEJ', 9), +('S9', '8620', 'DURSEJ', 9), +('S9', '8621', 'DURSEJ', 9), +('S9', '8622', 'DURSEJ', 9), +('S9', '8623', 'DURSEJ', 9), +('S9', '8624', 'DURSEJ', 9), +('S9', '8625', 'DURSEJ', 9), +('S9', '8626', 'DURSEJ', 9), +('S9', '8627', 'DURSEJ', 9), +('S9', '8628', 'DURSEJ', 9), +('S9', '8629', 'DURSEJ', 9), +('S9', '8630', 'DURSEJ', 9), +('S9', '8631', 'DURSEJ', 9), +('S9', '8632', 'DURSEJ', 9), +('S9', '8633', 'DURSEJ', 9), +('S9', '8634', 'DURSEJ', 9), +('S9', '8635', 'DURSEJ', 9), +('S9', '8636', 'DURSEJ', 9), +('S9', '8637', 'DURSEJ', 9), +('S9', '8638', 'DURSEJ', 9), +('S9', '8639', 'DURSEJ', 9), +('S9', '8640', 'DURSEJ', 9), +('S9', '8641', 'DURSEJ', 9), +('S9', '8642', 'DURSEJ', 9), +('S9', '8643', 'DURSEJ', 9), +('S9', '8644', 'DURSEJ', 9), +('S9', '8645', 'DURSEJ', 9), +('S9', '8646', 'DURSEJ', 9), +('S9', '8647', 'DURSEJ', 9), +('S9', '8648', 'DURSEJ', 9), +('S9', '8649', 'DURSEJ', 9), +('S9', '8650', 'DURSEJ', 9), +('S9', '8651', 'DURSEJ', 9), +('S9', '8652', 'DURSEJ', 9), +('S9', '8653', 'DURSEJ', 9), +('S9', '8654', 'DURSEJ', 9), +('S9', '8655', 'DURSEJ', 9), +('S9', '8656', 'DURSEJ', 9), +('S9', '8657', 'DURSEJ', 9), +('S9', '8658', 'DURSEJ', 9), +('S9', '8659', 'DURSEJ', 9), +('S9', '8660', 'DURSEJ', 9), +('S9', '8661', 'DURSEJ', 9), +('S9', '8662', 'DURSEJ', 9), +('S9', '8663', 'DURSEJ', 9), +('S9', '8664', 'DURSEJ', 9), +('S9', '8665', 'DURSEJ', 9), +('S9', '8666', 'DURSEJ', 9), +('S9', '8667', 'DURSEJ', 9), +('S9', '8668', 'DURSEJ', 9), +('S9', '8669', 'DURSEJ', 9), +('S9', '8670', 'DURSEJ', 9), +('S9', '8671', 'DURSEJ', 9), +('S9', '8672', 'DURSEJ', 9), +('S9', '8673', 'DURSEJ', 9), +('S9', '8674', 'DURSEJ', 9), +('S9', '8675', 'DURSEJ', 9), +('S9', '8676', 'DURSEJ', 9), +('S9', '8677', 'DURSEJ', 9), +('S9', '8678', 'DURSEJ', 9), +('S9', '8679', 'DURSEJ', 9), +('S9', '8680', 'DURSEJ', 9), +('S9', '8681', 'DURSEJ', 9), +('S9', '8682', 'DURSEJ', 9), +('S9', '8683', 'DURSEJ', 9), +('S9', '8684', 'DURSEJ', 9), +('S9', '8685', 'DURSEJ', 9), +('S9', '8686', 'DURSEJ', 9), +('S9', '8687', 'DURSEJ', 9), +('S9', '8688', 'DURSEJ', 9), +('S9', '8689', 'DURSEJ', 9), +('S9', '8690', 'DURSEJ', 9), +('S9', '8691', 'DURSEJ', 9), +('S9', '8692', 'DURSEJ', 9), +('S9', '8693', 'DURSEJ', 9), +('S9', '8694', 'DURSEJ', 9), +('S9', '8695', 'DURSEJ', 9), +('S9', '8696', 'DURSEJ', 9), +('S9', '8697', 'DURSEJ', 9), +('S9', '8698', 'DURSEJ', 9), +('S9', '8699', 'DURSEJ', 9), +('S9', '8700', 'DURSEJ', 9), +('S9', '8701', 'DURSEJ', 9), +('S9', '8702', 'DURSEJ', 9), +('S9', '8703', 'DURSEJ', 9), +('S9', '8704', 'DURSEJ', 9), +('S9', '8705', 'DURSEJ', 9), +('S9', '8706', 'DURSEJ', 9), +('S9', '8707', 'DURSEJ', 9), +('S9', '8708', 'DURSEJ', 9), +('S9', '8709', 'DURSEJ', 9), +('S9', '8710', 'DURSEJ', 9), +('S9', '8711', 'DURSEJ', 9), +('S9', '8712', 'DURSEJ', 9), +('S9', '8713', 'DURSEJ', 9), +('S9', '8714', 'DURSEJ', 9), +('S9', '8715', 'DURSEJ', 9), +('S9', '8716', 'DURSEJ', 9), +('S9', '8717', 'DURSEJ', 9), +('S9', '8718', 'DURSEJ', 9), +('S9', '8719', 'DURSEJ', 9), +('S9', '8720', 'DURSEJ', 9), +('S9', '8721', 'DURSEJ', 9), +('S9', '8722', 'DURSEJ', 9), +('S9', '8723', 'DURSEJ', 9), +('S9', '8724', 'DURSEJ', 9), +('S9', '8725', 'DURSEJ', 9), +('S9', '8726', 'DURSEJ', 9), +('S9', '8727', 'DURSEJ', 9), +('S9', '8728', 'DURSEJ', 9), +('S9', '8729', 'DURSEJ', 9), +('S9', '8730', 'DURSEJ', 9), +('S9', '8731', 'DURSEJ', 9), +('S9', '8732', 'DURSEJ', 9), +('S9', '8733', 'DURSEJ', 9), +('S9', '8734', 'DURSEJ', 9), +('S9', '8735', 'DURSEJ', 9), +('S9', '8736', 'DURSEJ', 9), +('S9', '8737', 'DURSEJ', 9), +('S9', '8738', 'DURSEJ', 9), +('S9', '8739', 'DURSEJ', 9), +('S9', '8740', 'DURSEJ', 9), +('S9', '8741', 'DURSEJ', 9), +('S9', '8742', 'DURSEJ', 9), +('S9', '8743', 'DURSEJ', 9), +('S9', '8744', 'DURSEJ', 9), +('S9', '8745', 'DURSEJ', 9), +('S9', '8746', 'DURSEJ', 9), +('S9', '8747', 'DURSEJ', 9), +('S9', '8748', 'DURSEJ', 9), +('S9', '8749', 'DURSEJ', 9), +('S9', '8750', 'DURSEJ', 9), +('S9', '8751', 'DURSEJ', 9), +('S9', '8752', 'DURSEJ', 9), +('S9', '8753', 'DURSEJ', 9), +('S9', '8754', 'DURSEJ', 9), +('S9', '8755', 'DURSEJ', 9), +('S9', '8756', 'DURSEJ', 9), +('S9', '8757', 'DURSEJ', 9), +('S9', '8758', 'DURSEJ', 9), +('S9', '8759', 'DURSEJ', 9), +('S9', '8760', 'DURSEJ', 9), +('S9', '8761', 'DURSEJ', 9), +('S9', '8762', 'DURSEJ', 9), +('S9', '8763', 'DURSEJ', 9), +('S9', '8764', 'DURSEJ', 9), +('S9', '8765', 'DURSEJ', 9), +('S9', '8766', 'DURSEJ', 9), +('S9', '8767', 'DURSEJ', 9), +('S9', '8768', 'DURSEJ', 9), +('S9', '8769', 'DURSEJ', 9), +('S9', '8770', 'DURSEJ', 9), +('S9', '8771', 'DURSEJ', 9), +('S9', '8772', 'DURSEJ', 9), +('S9', '8773', 'DURSEJ', 9), +('S9', '8774', 'DURSEJ', 9), +('S9', '8775', 'DURSEJ', 9), +('S9', '8776', 'DURSEJ', 9), +('S9', '8777', 'DURSEJ', 9), +('S9', '8778', 'DURSEJ', 9), +('S9', '8779', 'DURSEJ', 9), +('S9', '8780', 'DURSEJ', 9), +('S9', '8781', 'DURSEJ', 9), +('S9', '8782', 'DURSEJ', 9), +('S9', '8783', 'DURSEJ', 9), +('S9', '8784', 'DURSEJ', 9), +('S9', '8785', 'DURSEJ', 9), +('S9', '8786', 'DURSEJ', 9), +('S9', '8787', 'DURSEJ', 9), +('S9', '8788', 'DURSEJ', 9), +('S9', '8789', 'DURSEJ', 9), +('S9', '8790', 'DURSEJ', 9), +('S9', '8791', 'DURSEJ', 9), +('S9', '8792', 'DURSEJ', 9), +('S9', '8793', 'DURSEJ', 9), +('S9', '8794', 'DURSEJ', 9), +('S9', '8795', 'DURSEJ', 9), +('S9', '8796', 'DURSEJ', 9), +('S9', '8797', 'DURSEJ', 9), +('S9', '8798', 'DURSEJ', 9), +('S9', '8799', 'DURSEJ', 9), +('S9', '8800', 'DURSEJ', 9), +('S9', '8801', 'DURSEJ', 9), +('S9', '8802', 'DURSEJ', 9), +('S9', '8803', 'DURSEJ', 9), +('S9', '8804', 'DURSEJ', 9), +('S9', '8805', 'DURSEJ', 9), +('S9', '8806', 'DURSEJ', 9), +('S9', '8807', 'DURSEJ', 9), +('S9', '8808', 'DURSEJ', 9), +('S9', '8809', 'DURSEJ', 9), +('S9', '8810', 'DURSEJ', 9), +('S9', '8811', 'DURSEJ', 9), +('S9', '8812', 'DURSEJ', 9), +('S9', '8813', 'DURSEJ', 9), +('S9', '8814', 'DURSEJ', 9), +('S9', '8815', 'DURSEJ', 9), +('S9', '8816', 'DURSEJ', 9), +('S9', '8817', 'DURSEJ', 9), +('S9', '8818', 'DURSEJ', 9), +('S9', '8819', 'DURSEJ', 9), +('S9', '8820', 'DURSEJ', 9), +('S9', '8821', 'DURSEJ', 9), +('S9', '8822', 'DURSEJ', 9), +('S9', '8823', 'DURSEJ', 9), +('S9', '8824', 'DURSEJ', 9), +('S9', '8825', 'DURSEJ', 9), +('S9', '8826', 'DURSEJ', 9), +('S9', '8827', 'DURSEJ', 9), +('S9', '8828', 'DURSEJ', 9), +('S9', '8829', 'DURSEJ', 9), +('S9', '8830', 'DURSEJ', 9), +('S9', '8831', 'DURSEJ', 9), +('S9', '8832', 'DURSEJ', 9), +('S9', '8833', 'DURSEJ', 9), +('S9', '8834', 'DURSEJ', 9), +('S9', '8835', 'DURSEJ', 9), +('S9', '8836', 'DURSEJ', 9), +('S9', '8837', 'DURSEJ', 9), +('S9', '8838', 'DURSEJ', 9), +('S9', '8839', 'DURSEJ', 9), +('S9', '8840', 'DURSEJ', 9), +('S9', '8841', 'DURSEJ', 9), +('S9', '8842', 'DURSEJ', 9), +('S9', '8843', 'DURSEJ', 9), +('S9', '8844', 'DURSEJ', 9), +('S9', '8845', 'DURSEJ', 9), +('S9', '8846', 'DURSEJ', 9), +('S9', '8847', 'DURSEJ', 9), +('S9', '8848', 'DURSEJ', 9), +('S9', '8849', 'DURSEJ', 9), +('S9', '8850', 'DURSEJ', 9), +('S9', '8851', 'DURSEJ', 9), +('S9', '8852', 'DURSEJ', 9), +('S9', '8853', 'DURSEJ', 9), +('S9', '8854', 'DURSEJ', 9), +('S9', '8855', 'DURSEJ', 9), +('S9', '8856', 'DURSEJ', 9), +('S9', '8857', 'DURSEJ', 9), +('S9', '8858', 'DURSEJ', 9), +('S9', '8859', 'DURSEJ', 9), +('S9', '8860', 'DURSEJ', 9), +('S9', '8861', 'DURSEJ', 9), +('S9', '8862', 'DURSEJ', 9), +('S9', '8863', 'DURSEJ', 9), +('S9', '8864', 'DURSEJ', 9), +('S9', '8865', 'DURSEJ', 9), +('S9', '8866', 'DURSEJ', 9), +('S9', '8867', 'DURSEJ', 9), +('S9', '8868', 'DURSEJ', 9), +('S9', '8869', 'DURSEJ', 9), +('S9', '8870', 'DURSEJ', 9), +('S9', '8871', 'DURSEJ', 9), +('S9', '8872', 'DURSEJ', 9), +('S9', '8873', 'DURSEJ', 9), +('S9', '8874', 'DURSEJ', 9), +('S9', '8875', 'DURSEJ', 9), +('S9', '8876', 'DURSEJ', 9), +('S9', '8877', 'DURSEJ', 9), +('S9', '8878', 'DURSEJ', 9), +('S9', '8879', 'DURSEJ', 9), +('S9', '8880', 'DURSEJ', 9), +('S9', '8881', 'DURSEJ', 9), +('S9', '8882', 'DURSEJ', 9), +('S9', '8883', 'DURSEJ', 9), +('S9', '8884', 'DURSEJ', 9), +('S9', '8885', 'DURSEJ', 9), +('S9', '8886', 'DURSEJ', 9), +('S9', '8887', 'DURSEJ', 9), +('S9', '8888', 'DURSEJ', 9), +('S9', '8889', 'DURSEJ', 9), +('S9', '8890', 'DURSEJ', 9), +('S9', '8891', 'DURSEJ', 9), +('S9', '8892', 'DURSEJ', 9), +('S9', '8893', 'DURSEJ', 9), +('S9', '8894', 'DURSEJ', 9), +('S9', '8895', 'DURSEJ', 9), +('S9', '8896', 'DURSEJ', 9), +('S9', '8897', 'DURSEJ', 9), +('S9', '8898', 'DURSEJ', 9), +('S9', '8899', 'DURSEJ', 9), +('S9', '8900', 'DURSEJ', 9), +('S9', '8901', 'DURSEJ', 9), +('S9', '8902', 'DURSEJ', 9), +('S9', '8903', 'DURSEJ', 9), +('S9', '8904', 'DURSEJ', 9), +('S9', '8905', 'DURSEJ', 9), +('S9', '8906', 'DURSEJ', 9), +('S9', '8907', 'DURSEJ', 9), +('S9', '8908', 'DURSEJ', 9), +('S9', '8909', 'DURSEJ', 9), +('S9', '8910', 'DURSEJ', 9), +('S9', '8911', 'DURSEJ', 9), +('S9', '8912', 'DURSEJ', 9), +('S9', '8913', 'DURSEJ', 9), +('S9', '8914', 'DURSEJ', 9), +('S9', '8915', 'DURSEJ', 9), +('S9', '8916', 'DURSEJ', 9), +('S9', '8917', 'DURSEJ', 9), +('S9', '8918', 'DURSEJ', 9), +('S9', '8919', 'DURSEJ', 9), +('S9', '8920', 'DURSEJ', 9), +('S9', '8921', 'DURSEJ', 9), +('S9', '8922', 'DURSEJ', 9), +('S9', '8923', 'DURSEJ', 9), +('S9', '8924', 'DURSEJ', 9), +('S9', '8925', 'DURSEJ', 9), +('S9', '8926', 'DURSEJ', 9), +('S9', '8927', 'DURSEJ', 9), +('S9', '8928', 'DURSEJ', 9), +('S9', '8929', 'DURSEJ', 9), +('S9', '8930', 'DURSEJ', 9), +('S9', '8931', 'DURSEJ', 9), +('S9', '8932', 'DURSEJ', 9), +('S9', '8933', 'DURSEJ', 9), +('S9', '8934', 'DURSEJ', 9), +('S9', '8935', 'DURSEJ', 9), +('S9', '8936', 'DURSEJ', 9), +('S9', '8937', 'DURSEJ', 9), +('S9', '8938', 'DURSEJ', 9), +('S9', '8939', 'DURSEJ', 9), +('S9', '8940', 'DURSEJ', 9), +('S9', '8941', 'DURSEJ', 9), +('S9', '8942', 'DURSEJ', 9), +('S9', '8943', 'DURSEJ', 9), +('S9', '8944', 'DURSEJ', 9), +('S9', '8945', 'DURSEJ', 9), +('S9', '8946', 'DURSEJ', 9), +('S9', '8947', 'DURSEJ', 9), +('S9', '8948', 'DURSEJ', 9), +('S9', '8949', 'DURSEJ', 9), +('S9', '8950', 'DURSEJ', 9), +('S9', '8951', 'DURSEJ', 9), +('S9', '8952', 'DURSEJ', 9), +('S9', '8953', 'DURSEJ', 9), +('S9', '8954', 'DURSEJ', 9), +('S9', '8955', 'DURSEJ', 9), +('S9', '8956', 'DURSEJ', 9), +('S9', '8957', 'DURSEJ', 9), +('S9', '8958', 'DURSEJ', 9), +('S9', '8959', 'DURSEJ', 9), +('S9', '8960', 'DURSEJ', 9), +('S9', '8961', 'DURSEJ', 9), +('S9', '8962', 'DURSEJ', 9), +('S9', '8963', 'DURSEJ', 9), +('S9', '8964', 'DURSEJ', 9), +('S9', '8965', 'DURSEJ', 9), +('S9', '8966', 'DURSEJ', 9), +('S9', '8967', 'DURSEJ', 9), +('S9', '8968', 'DURSEJ', 9), +('S9', '8969', 'DURSEJ', 9), +('S9', '8970', 'DURSEJ', 9), +('S9', '8971', 'DURSEJ', 9), +('S9', '8972', 'DURSEJ', 9), +('S9', '8973', 'DURSEJ', 9), +('S9', '8974', 'DURSEJ', 9), +('S9', '8975', 'DURSEJ', 9), +('S9', '8976', 'DURSEJ', 9), +('S9', '8977', 'DURSEJ', 9), +('S9', '8978', 'DURSEJ', 9), +('S9', '8979', 'DURSEJ', 9), +('S9', '8980', 'DURSEJ', 9), +('S9', '8981', 'DURSEJ', 9), +('S9', '8982', 'DURSEJ', 9), +('S9', '8983', 'DURSEJ', 9), +('S9', '8984', 'DURSEJ', 9), +('S9', '8985', 'DURSEJ', 9), +('S9', '8986', 'DURSEJ', 9), +('S9', '8987', 'DURSEJ', 9), +('S9', '8988', 'DURSEJ', 9), +('S9', '8989', 'DURSEJ', 9), +('S9', '8990', 'DURSEJ', 9), +('S9', '8991', 'DURSEJ', 9), +('S9', '8992', 'DURSEJ', 9), +('S9', '8993', 'DURSEJ', 9), +('S9', '8994', 'DURSEJ', 9), +('S9', '8995', 'DURSEJ', 9), +('S9', '8996', 'DURSEJ', 9), +('S9', '8997', 'DURSEJ', 9), +('S9', '8998', 'DURSEJ', 9), +('S9', '8999', 'DURSEJ', 9), +('S9', '9000', 'DURSEJ', 9), +('S9', '9001', 'DURSEJ', 9), +('S9', '9002', 'DURSEJ', 9), +('S9', '9003', 'DURSEJ', 9), +('S9', '9004', 'DURSEJ', 9), +('S9', '9005', 'DURSEJ', 9), +('S9', '9006', 'DURSEJ', 9), +('S9', '9007', 'DURSEJ', 9), +('S9', '9008', 'DURSEJ', 9), +('S9', '9009', 'DURSEJ', 9), +('S9', '9010', 'DURSEJ', 9), +('S9', '9011', 'DURSEJ', 9), +('S9', '9012', 'DURSEJ', 9), +('S9', '9013', 'DURSEJ', 9), +('S9', '9014', 'DURSEJ', 9), +('S9', '9015', 'DURSEJ', 9), +('S9', '9016', 'DURSEJ', 9), +('S9', '9017', 'DURSEJ', 9), +('S9', '9018', 'DURSEJ', 9), +('S9', '9019', 'DURSEJ', 9), +('S9', '9020', 'DURSEJ', 9), +('S9', '9021', 'DURSEJ', 9), +('S9', '9022', 'DURSEJ', 9), +('S9', '9023', 'DURSEJ', 9), +('S9', '9024', 'DURSEJ', 9), +('S9', '9025', 'DURSEJ', 9), +('S9', '9026', 'DURSEJ', 9), +('S9', '9027', 'DURSEJ', 9), +('S9', '9028', 'DURSEJ', 9), +('S9', '9029', 'DURSEJ', 9), +('S9', '9030', 'DURSEJ', 9), +('S9', '9031', 'DURSEJ', 9), +('S9', '9032', 'DURSEJ', 9), +('S9', '9033', 'DURSEJ', 9), +('S9', '9034', 'DURSEJ', 9), +('S9', '9035', 'DURSEJ', 9), +('S9', '9036', 'DURSEJ', 9), +('S9', '9037', 'DURSEJ', 9), +('S9', '9038', 'DURSEJ', 9), +('S9', '9039', 'DURSEJ', 9), +('S9', '9040', 'DURSEJ', 9), +('S9', '9041', 'DURSEJ', 9), +('S9', '9042', 'DURSEJ', 9), +('S9', '9043', 'DURSEJ', 9), +('S9', '9044', 'DURSEJ', 9), +('S9', '9045', 'DURSEJ', 9), +('S9', '9046', 'DURSEJ', 9), +('S9', '9047', 'DURSEJ', 9), +('S9', '9048', 'DURSEJ', 9), +('S9', '9049', 'DURSEJ', 9), +('S9', '9050', 'DURSEJ', 9), +('S9', '9051', 'DURSEJ', 9), +('S9', '9052', 'DURSEJ', 9), +('S9', '9053', 'DURSEJ', 9), +('S9', '9054', 'DURSEJ', 9), +('S9', '9055', 'DURSEJ', 9), +('S9', '9056', 'DURSEJ', 9), +('S9', '9057', 'DURSEJ', 9), +('S9', '9058', 'DURSEJ', 9), +('S9', '9059', 'DURSEJ', 9), +('S9', '9060', 'DURSEJ', 9), +('S9', '9061', 'DURSEJ', 9), +('S9', '9062', 'DURSEJ', 9), +('S9', '9063', 'DURSEJ', 9), +('S9', '9064', 'DURSEJ', 9), +('S9', '9065', 'DURSEJ', 9), +('S9', '9066', 'DURSEJ', 9), +('S9', '9067', 'DURSEJ', 9), +('S9', '9068', 'DURSEJ', 9), +('S9', '9069', 'DURSEJ', 9), +('S9', '9070', 'DURSEJ', 9), +('S9', '9071', 'DURSEJ', 9), +('S9', '9072', 'DURSEJ', 9), +('S9', '9073', 'DURSEJ', 9), +('S9', '9074', 'DURSEJ', 9), +('S9', '9075', 'DURSEJ', 9), +('S9', '9076', 'DURSEJ', 9), +('S9', '9077', 'DURSEJ', 9), +('S9', '9078', 'DURSEJ', 9), +('S9', '9079', 'DURSEJ', 9), +('S9', '9080', 'DURSEJ', 9), +('S9', '9081', 'DURSEJ', 9), +('S9', '9082', 'DURSEJ', 9), +('S9', '9083', 'DURSEJ', 9), +('S9', '9084', 'DURSEJ', 9), +('S9', '9085', 'DURSEJ', 9), +('S9', '9086', 'DURSEJ', 9), +('S9', '9087', 'DURSEJ', 9), +('S9', '9088', 'DURSEJ', 9), +('S9', '9089', 'DURSEJ', 9), +('S9', '9090', 'DURSEJ', 9), +('S9', '9091', 'DURSEJ', 9), +('S9', '9092', 'DURSEJ', 9), +('S9', '9093', 'DURSEJ', 9), +('S9', '9094', 'DURSEJ', 9), +('S9', '9095', 'DURSEJ', 9), +('S9', '9096', 'DURSEJ', 9), +('S9', '9097', 'DURSEJ', 9), +('S9', '9098', 'DURSEJ', 9), +('S9', '9099', 'DURSEJ', 9), +('S9', '9100', 'DURSEJ', 9), +('S9', '9101', 'DURSEJ', 9), +('S9', '9102', 'DURSEJ', 9), +('S9', '9103', 'DURSEJ', 9), +('S9', '9104', 'DURSEJ', 9), +('S9', '9105', 'DURSEJ', 9), +('S9', '9106', 'DURSEJ', 9), +('S9', '9107', 'DURSEJ', 9), +('S9', '9108', 'DURSEJ', 9), +('S9', '9109', 'DURSEJ', 9), +('S9', '9110', 'DURSEJ', 9), +('S9', '9111', 'DURSEJ', 9), +('S9', '9112', 'DURSEJ', 9), +('S9', '9113', 'DURSEJ', 9), +('S9', '9114', 'DURSEJ', 9), +('S9', '9115', 'DURSEJ', 9), +('S9', '9116', 'DURSEJ', 9), +('S9', '9117', 'DURSEJ', 9), +('S9', '9118', 'DURSEJ', 9), +('S9', '9119', 'DURSEJ', 9), +('S9', '9120', 'DURSEJ', 9), +('S9', '9121', 'DURSEJ', 9), +('S9', '9122', 'DURSEJ', 9), +('S9', '9123', 'DURSEJ', 9), +('S9', '9124', 'DURSEJ', 9), +('S9', '9125', 'DURSEJ', 9), +('S9', '9126', 'DURSEJ', 9), +('S9', '9127', 'DURSEJ', 9), +('S9', '9128', 'DURSEJ', 9), +('S9', '9129', 'DURSEJ', 9), +('S9', '9130', 'DURSEJ', 9), +('S9', '9131', 'DURSEJ', 9), +('S9', '9132', 'DURSEJ', 9), +('S9', '9133', 'DURSEJ', 9), +('S9', '9134', 'DURSEJ', 9), +('S9', '9135', 'DURSEJ', 9), +('S9', '9136', 'DURSEJ', 9), +('S9', '9137', 'DURSEJ', 9), +('S9', '9138', 'DURSEJ', 9), +('S9', '9139', 'DURSEJ', 9), +('S9', '9140', 'DURSEJ', 9), +('S9', '9141', 'DURSEJ', 9), +('S9', '9142', 'DURSEJ', 9), +('S9', '9143', 'DURSEJ', 9), +('S9', '9144', 'DURSEJ', 9), +('S9', '9145', 'DURSEJ', 9), +('S9', '9146', 'DURSEJ', 9), +('S9', '9147', 'DURSEJ', 9), +('S9', '9148', 'DURSEJ', 9), +('S9', '9149', 'DURSEJ', 9), +('S9', '9150', 'DURSEJ', 9), +('S9', '9151', 'DURSEJ', 9), +('S9', '9152', 'DURSEJ', 9), +('S9', '9153', 'DURSEJ', 9), +('S9', '9154', 'DURSEJ', 9), +('S9', '9155', 'DURSEJ', 9), +('S9', '9156', 'DURSEJ', 9), +('S9', '9157', 'DURSEJ', 9), +('S9', '9158', 'DURSEJ', 9), +('S9', '9159', 'DURSEJ', 9), +('S9', '9160', 'DURSEJ', 9), +('S9', '9161', 'DURSEJ', 9), +('S9', '9162', 'DURSEJ', 9), +('S9', '9163', 'DURSEJ', 9), +('S9', '9164', 'DURSEJ', 9), +('S9', '9165', 'DURSEJ', 9), +('S9', '9166', 'DURSEJ', 9), +('S9', '9167', 'DURSEJ', 9), +('S9', '9168', 'DURSEJ', 9), +('S9', '9169', 'DURSEJ', 9), +('S9', '9170', 'DURSEJ', 9), +('S9', '9171', 'DURSEJ', 9), +('S9', '9172', 'DURSEJ', 9), +('S9', '9173', 'DURSEJ', 9), +('S9', '9174', 'DURSEJ', 9), +('S9', '9175', 'DURSEJ', 9), +('S9', '9176', 'DURSEJ', 9), +('S9', '9177', 'DURSEJ', 9), +('S9', '9178', 'DURSEJ', 9), +('S9', '9179', 'DURSEJ', 9), +('S9', '9180', 'DURSEJ', 9), +('S9', '9181', 'DURSEJ', 9), +('S9', '9182', 'DURSEJ', 9), +('S9', '9183', 'DURSEJ', 9), +('S9', '9184', 'DURSEJ', 9), +('S9', '9185', 'DURSEJ', 9), +('S9', '9186', 'DURSEJ', 9), +('S9', '9187', 'DURSEJ', 9), +('S9', '9188', 'DURSEJ', 9), +('S9', '9189', 'DURSEJ', 9), +('S9', '9190', 'DURSEJ', 9), +('S9', '9191', 'DURSEJ', 9), +('S9', '9192', 'DURSEJ', 9), +('S9', '9193', 'DURSEJ', 9), +('S9', '9194', 'DURSEJ', 9), +('S9', '9195', 'DURSEJ', 9), +('S9', '9196', 'DURSEJ', 9), +('S9', '9197', 'DURSEJ', 9), +('S9', '9198', 'DURSEJ', 9), +('S9', '9199', 'DURSEJ', 9), +('S9', '9200', 'DURSEJ', 9), +('S9', '9201', 'DURSEJ', 9), +('S9', '9202', 'DURSEJ', 9), +('S9', '9203', 'DURSEJ', 9), +('S9', '9204', 'DURSEJ', 9), +('S9', '9205', 'DURSEJ', 9), +('S9', '9206', 'DURSEJ', 9), +('S9', '9207', 'DURSEJ', 9), +('S9', '9208', 'DURSEJ', 9), +('S9', '9209', 'DURSEJ', 9), +('S9', '9210', 'DURSEJ', 9), +('S9', '9211', 'DURSEJ', 9), +('S9', '9212', 'DURSEJ', 9), +('S9', '9213', 'DURSEJ', 9), +('S9', '9214', 'DURSEJ', 9), +('S9', '9215', 'DURSEJ', 9), +('S9', '9216', 'DURSEJ', 9), +('S9', '9217', 'DURSEJ', 9), +('S9', '9218', 'DURSEJ', 9), +('S9', '9219', 'DURSEJ', 9), +('S9', '9220', 'DURSEJ', 9), +('S9', '9221', 'DURSEJ', 9), +('S9', '9222', 'DURSEJ', 9), +('S9', '9223', 'DURSEJ', 9), +('S9', '9224', 'DURSEJ', 9), +('S9', '9225', 'DURSEJ', 9), +('S9', '9226', 'DURSEJ', 9), +('S9', '9227', 'DURSEJ', 9), +('S9', '9228', 'DURSEJ', 9), +('S9', '9229', 'DURSEJ', 9), +('S9', '9230', 'DURSEJ', 9), +('S9', '9231', 'DURSEJ', 9), +('S9', '9232', 'DURSEJ', 9), +('S9', '9233', 'DURSEJ', 9), +('S9', '9234', 'DURSEJ', 9), +('S9', '9235', 'DURSEJ', 9), +('S9', '9236', 'DURSEJ', 9), +('S9', '9237', 'DURSEJ', 9), +('S9', '9238', 'DURSEJ', 9), +('S9', '9239', 'DURSEJ', 9), +('S9', '9240', 'DURSEJ', 9), +('S9', '9241', 'DURSEJ', 9), +('S9', '9242', 'DURSEJ', 9), +('S9', '9243', 'DURSEJ', 9), +('S9', '9244', 'DURSEJ', 9), +('S9', '9245', 'DURSEJ', 9), +('S9', '9246', 'DURSEJ', 9), +('S9', '9247', 'DURSEJ', 9), +('S9', '9248', 'DURSEJ', 9), +('S9', '9249', 'DURSEJ', 9), +('S9', '9250', 'DURSEJ', 9), +('S9', '9251', 'DURSEJ', 9), +('S9', '9252', 'DURSEJ', 9), +('S9', '9253', 'DURSEJ', 9), +('S9', '9254', 'DURSEJ', 9), +('S9', '9255', 'DURSEJ', 9), +('S9', '9256', 'DURSEJ', 9), +('S9', '9257', 'DURSEJ', 9), +('S9', '9258', 'DURSEJ', 9), +('S9', '9259', 'DURSEJ', 9), +('S9', '9260', 'DURSEJ', 9), +('S9', '9261', 'DURSEJ', 9), +('S9', '9262', 'DURSEJ', 9), +('S9', '9263', 'DURSEJ', 9), +('S9', '9264', 'DURSEJ', 9), +('S9', '9265', 'DURSEJ', 9), +('S9', '9266', 'DURSEJ', 9), +('S9', '9267', 'DURSEJ', 9), +('S9', '9268', 'DURSEJ', 9), +('S9', '9269', 'DURSEJ', 9), +('S9', '9270', 'DURSEJ', 9), +('S9', '9271', 'DURSEJ', 9), +('S9', '9272', 'DURSEJ', 9), +('S9', '9273', 'DURSEJ', 9), +('S9', '9274', 'DURSEJ', 9), +('S9', '9275', 'DURSEJ', 9), +('S9', '9276', 'DURSEJ', 9), +('S9', '9277', 'DURSEJ', 9), +('S9', '9278', 'DURSEJ', 9), +('S9', '9279', 'DURSEJ', 9), +('S9', '9280', 'DURSEJ', 9), +('S9', '9281', 'DURSEJ', 9), +('S9', '9282', 'DURSEJ', 9), +('S9', '9283', 'DURSEJ', 9), +('S9', '9284', 'DURSEJ', 9), +('S9', '9285', 'DURSEJ', 9), +('S9', '9286', 'DURSEJ', 9), +('S9', '9287', 'DURSEJ', 9), +('S9', '9288', 'DURSEJ', 9), +('S9', '9289', 'DURSEJ', 9), +('S9', '9290', 'DURSEJ', 9), +('S9', '9291', 'DURSEJ', 9), +('S9', '9292', 'DURSEJ', 9), +('S9', '9293', 'DURSEJ', 9), +('S9', '9294', 'DURSEJ', 9), +('S9', '9295', 'DURSEJ', 9), +('S9', '9296', 'DURSEJ', 9), +('S9', '9297', 'DURSEJ', 9), +('S9', '9298', 'DURSEJ', 9), +('S9', '9299', 'DURSEJ', 9), +('S9', '9300', 'DURSEJ', 9), +('S9', '9301', 'DURSEJ', 9), +('S9', '9302', 'DURSEJ', 9), +('S9', '9303', 'DURSEJ', 9), +('S9', '9304', 'DURSEJ', 9), +('S9', '9305', 'DURSEJ', 9), +('S9', '9306', 'DURSEJ', 9), +('S9', '9307', 'DURSEJ', 9), +('S9', '9308', 'DURSEJ', 9), +('S9', '9309', 'DURSEJ', 9), +('S9', '9310', 'DURSEJ', 9), +('S9', '9311', 'DURSEJ', 9), +('S9', '9312', 'DURSEJ', 9), +('S9', '9313', 'DURSEJ', 9), +('S9', '9314', 'DURSEJ', 9), +('S9', '9315', 'DURSEJ', 9), +('S9', '9316', 'DURSEJ', 9), +('S9', '9317', 'DURSEJ', 9), +('S9', '9318', 'DURSEJ', 9), +('S9', '9319', 'DURSEJ', 9), +('S9', '9320', 'DURSEJ', 9), +('S9', '9321', 'DURSEJ', 9), +('S9', '9322', 'DURSEJ', 9), +('S9', '9323', 'DURSEJ', 9), +('S9', '9324', 'DURSEJ', 9), +('S9', '9325', 'DURSEJ', 9), +('S9', '9326', 'DURSEJ', 9), +('S9', '9327', 'DURSEJ', 9), +('S9', '9328', 'DURSEJ', 9), +('S9', '9329', 'DURSEJ', 9), +('S9', '9330', 'DURSEJ', 9), +('S9', '9331', 'DURSEJ', 9), +('S9', '9332', 'DURSEJ', 9), +('S9', '9333', 'DURSEJ', 9), +('S9', '9334', 'DURSEJ', 9), +('S9', '9335', 'DURSEJ', 9), +('S9', '9336', 'DURSEJ', 9), +('S9', '9337', 'DURSEJ', 9), +('S9', '9338', 'DURSEJ', 9), +('S9', '9339', 'DURSEJ', 9), +('S9', '9340', 'DURSEJ', 9), +('S9', '9341', 'DURSEJ', 9), +('S9', '9342', 'DURSEJ', 9), +('S9', '9343', 'DURSEJ', 9), +('S9', '9344', 'DURSEJ', 9), +('S9', '9345', 'DURSEJ', 9), +('S9', '9346', 'DURSEJ', 9), +('S9', '9347', 'DURSEJ', 9), +('S9', '9348', 'DURSEJ', 9), +('S9', '9349', 'DURSEJ', 9), +('S9', '9350', 'DURSEJ', 9), +('S9', '9351', 'DURSEJ', 9), +('S9', '9352', 'DURSEJ', 9), +('S9', '9353', 'DURSEJ', 9), +('S9', '9354', 'DURSEJ', 9), +('S9', '9355', 'DURSEJ', 9), +('S9', '9356', 'DURSEJ', 9), +('S9', '9357', 'DURSEJ', 9), +('S9', '9358', 'DURSEJ', 9), +('S9', '9359', 'DURSEJ', 9), +('S9', '9360', 'DURSEJ', 9), +('S9', '9361', 'DURSEJ', 9), +('S9', '9362', 'DURSEJ', 9), +('S9', '9363', 'DURSEJ', 9), +('S9', '9364', 'DURSEJ', 9), +('S9', '9365', 'DURSEJ', 9), +('S9', '9366', 'DURSEJ', 9), +('S9', '9367', 'DURSEJ', 9), +('S9', '9368', 'DURSEJ', 9), +('S9', '9369', 'DURSEJ', 9), +('S9', '9370', 'DURSEJ', 9), +('S9', '9371', 'DURSEJ', 9), +('S9', '9372', 'DURSEJ', 9), +('S9', '9373', 'DURSEJ', 9), +('S9', '9374', 'DURSEJ', 9), +('S9', '9375', 'DURSEJ', 9), +('S9', '9376', 'DURSEJ', 9), +('S9', '9377', 'DURSEJ', 9), +('S9', '9378', 'DURSEJ', 9), +('S9', '9379', 'DURSEJ', 9), +('S9', '9380', 'DURSEJ', 9), +('S9', '9381', 'DURSEJ', 9), +('S9', '9382', 'DURSEJ', 9), +('S9', '9383', 'DURSEJ', 9), +('S9', '9384', 'DURSEJ', 9), +('S9', '9385', 'DURSEJ', 9), +('S9', '9386', 'DURSEJ', 9), +('S9', '9387', 'DURSEJ', 9), +('S9', '9388', 'DURSEJ', 9), +('S9', '9389', 'DURSEJ', 9), +('S9', '9390', 'DURSEJ', 9), +('S9', '9391', 'DURSEJ', 9), +('S9', '9392', 'DURSEJ', 9), +('S9', '9393', 'DURSEJ', 9), +('S9', '9394', 'DURSEJ', 9), +('S9', '9395', 'DURSEJ', 9), +('S9', '9396', 'DURSEJ', 9), +('S9', '9397', 'DURSEJ', 9), +('S9', '9398', 'DURSEJ', 9), +('S9', '9399', 'DURSEJ', 9), +('S9', '9400', 'DURSEJ', 9), +('S9', '9401', 'DURSEJ', 9), +('S9', '9402', 'DURSEJ', 9), +('S9', '9403', 'DURSEJ', 9), +('S9', '9404', 'DURSEJ', 9), +('S9', '9405', 'DURSEJ', 9), +('S9', '9406', 'DURSEJ', 9), +('S9', '9407', 'DURSEJ', 9), +('S9', '9408', 'DURSEJ', 9), +('S9', '9409', 'DURSEJ', 9), +('S9', '9410', 'DURSEJ', 9), +('S9', '9411', 'DURSEJ', 9), +('S9', '9412', 'DURSEJ', 9), +('S9', '9413', 'DURSEJ', 9), +('S9', '9414', 'DURSEJ', 9), +('S9', '9415', 'DURSEJ', 9), +('S9', '9416', 'DURSEJ', 9), +('S9', '9417', 'DURSEJ', 9), +('S9', '9418', 'DURSEJ', 9), +('S9', '9419', 'DURSEJ', 9), +('S9', '9420', 'DURSEJ', 9), +('S9', '9421', 'DURSEJ', 9), +('S9', '9422', 'DURSEJ', 9), +('S9', '9423', 'DURSEJ', 9), +('S9', '9424', 'DURSEJ', 9), +('S9', '9425', 'DURSEJ', 9), +('S9', '9426', 'DURSEJ', 9), +('S9', '9427', 'DURSEJ', 9), +('S9', '9428', 'DURSEJ', 9), +('S9', '9429', 'DURSEJ', 9), +('S9', '9430', 'DURSEJ', 9), +('S9', '9431', 'DURSEJ', 9), +('S9', '9432', 'DURSEJ', 9), +('S9', '9433', 'DURSEJ', 9), +('S9', '9434', 'DURSEJ', 9), +('S9', '9435', 'DURSEJ', 9), +('S9', '9436', 'DURSEJ', 9), +('S9', '9437', 'DURSEJ', 9), +('S9', '9438', 'DURSEJ', 9), +('S9', '9439', 'DURSEJ', 9), +('S9', '9440', 'DURSEJ', 9), +('S9', '9441', 'DURSEJ', 9), +('S9', '9442', 'DURSEJ', 9), +('S9', '9443', 'DURSEJ', 9), +('S9', '9444', 'DURSEJ', 9), +('S9', '9445', 'DURSEJ', 9), +('S9', '9446', 'DURSEJ', 9), +('S9', '9447', 'DURSEJ', 9), +('S9', '9448', 'DURSEJ', 9), +('S9', '9449', 'DURSEJ', 9), +('S9', '9450', 'DURSEJ', 9), +('S9', '9451', 'DURSEJ', 9), +('S9', '9452', 'DURSEJ', 9), +('S9', '9453', 'DURSEJ', 9), +('S9', '9454', 'DURSEJ', 9), +('S9', '9455', 'DURSEJ', 9), +('S9', '9456', 'DURSEJ', 9), +('S9', '9457', 'DURSEJ', 9), +('S9', '9458', 'DURSEJ', 9), +('S9', '9459', 'DURSEJ', 9), +('S9', '9460', 'DURSEJ', 9), +('S9', '9461', 'DURSEJ', 9), +('S9', '9462', 'DURSEJ', 9), +('S9', '9463', 'DURSEJ', 9), +('S9', '9464', 'DURSEJ', 9), +('S9', '9465', 'DURSEJ', 9), +('S9', '9466', 'DURSEJ', 9), +('S9', '9467', 'DURSEJ', 9), +('S9', '9468', 'DURSEJ', 9), +('S9', '9469', 'DURSEJ', 9), +('S9', '9470', 'DURSEJ', 9), +('S9', '9471', 'DURSEJ', 9), +('S9', '9472', 'DURSEJ', 9), +('S9', '9473', 'DURSEJ', 9), +('S9', '9474', 'DURSEJ', 9), +('S9', '9475', 'DURSEJ', 9), +('S9', '9476', 'DURSEJ', 9), +('S9', '9477', 'DURSEJ', 9), +('S9', '9478', 'DURSEJ', 9), +('S9', '9479', 'DURSEJ', 9), +('S9', '9480', 'DURSEJ', 9), +('S9', '9481', 'DURSEJ', 9), +('S9', '9482', 'DURSEJ', 9), +('S9', '9483', 'DURSEJ', 9), +('S9', '9484', 'DURSEJ', 9), +('S9', '9485', 'DURSEJ', 9), +('S9', '9486', 'DURSEJ', 9), +('S9', '9487', 'DURSEJ', 9), +('S9', '9488', 'DURSEJ', 9), +('S9', '9489', 'DURSEJ', 9), +('S9', '9490', 'DURSEJ', 9), +('S9', '9491', 'DURSEJ', 9), +('S9', '9492', 'DURSEJ', 9), +('S9', '9493', 'DURSEJ', 9), +('S9', '9494', 'DURSEJ', 9), +('S9', '9495', 'DURSEJ', 9), +('S9', '9496', 'DURSEJ', 9), +('S9', '9497', 'DURSEJ', 9), +('S9', '9498', 'DURSEJ', 9), +('S9', '9499', 'DURSEJ', 9), +('S9', '9500', 'DURSEJ', 9), +('S9', '9501', 'DURSEJ', 9), +('S9', '9502', 'DURSEJ', 9), +('S9', '9503', 'DURSEJ', 9), +('S9', '9504', 'DURSEJ', 9), +('S9', '9505', 'DURSEJ', 9), +('S9', '9506', 'DURSEJ', 9), +('S9', '9507', 'DURSEJ', 9), +('S9', '9508', 'DURSEJ', 9), +('S9', '9509', 'DURSEJ', 9), +('S9', '9510', 'DURSEJ', 9), +('S9', '9511', 'DURSEJ', 9), +('S9', '9512', 'DURSEJ', 9), +('S9', '9513', 'DURSEJ', 9), +('S9', '9514', 'DURSEJ', 9), +('S9', '9515', 'DURSEJ', 9), +('S9', '9516', 'DURSEJ', 9), +('S9', '9517', 'DURSEJ', 9), +('S9', '9518', 'DURSEJ', 9), +('S9', '9519', 'DURSEJ', 9), +('S9', '9520', 'DURSEJ', 9), +('S9', '9521', 'DURSEJ', 9), +('S9', '9522', 'DURSEJ', 9), +('S9', '9523', 'DURSEJ', 9), +('S9', '9524', 'DURSEJ', 9), +('S9', '9525', 'DURSEJ', 9), +('S9', '9526', 'DURSEJ', 9), +('S9', '9527', 'DURSEJ', 9), +('S9', '9528', 'DURSEJ', 9), +('S9', '9529', 'DURSEJ', 9), +('S9', '9530', 'DURSEJ', 9), +('S9', '9531', 'DURSEJ', 9), +('S9', '9532', 'DURSEJ', 9), +('S9', '9533', 'DURSEJ', 9), +('S9', '9534', 'DURSEJ', 9), +('S9', '9535', 'DURSEJ', 9), +('S9', '9536', 'DURSEJ', 9), +('S9', '9537', 'DURSEJ', 9), +('S9', '9538', 'DURSEJ', 9), +('S9', '9539', 'DURSEJ', 9), +('S9', '9540', 'DURSEJ', 9), +('S9', '9541', 'DURSEJ', 9), +('S9', '9542', 'DURSEJ', 9), +('S9', '9543', 'DURSEJ', 9), +('S9', '9544', 'DURSEJ', 9), +('S9', '9545', 'DURSEJ', 9), +('S9', '9546', 'DURSEJ', 9), +('S9', '9547', 'DURSEJ', 9), +('S9', '9548', 'DURSEJ', 9), +('S9', '9549', 'DURSEJ', 9), +('S9', '9550', 'DURSEJ', 9), +('S9', '9551', 'DURSEJ', 9), +('S9', '9552', 'DURSEJ', 9), +('S9', '9553', 'DURSEJ', 9), +('S9', '9554', 'DURSEJ', 9), +('S9', '9555', 'DURSEJ', 9), +('S9', '9556', 'DURSEJ', 9), +('S9', '9557', 'DURSEJ', 9), +('S9', '9558', 'DURSEJ', 9), +('S9', '9559', 'DURSEJ', 9), +('S9', '9560', 'DURSEJ', 9), +('S9', '9561', 'DURSEJ', 9), +('S9', '9562', 'DURSEJ', 9), +('S9', '9563', 'DURSEJ', 9), +('S9', '9564', 'DURSEJ', 9), +('S9', '9565', 'DURSEJ', 9), +('S9', '9566', 'DURSEJ', 9), +('S9', '9567', 'DURSEJ', 9), +('S9', '9568', 'DURSEJ', 9), +('S9', '9569', 'DURSEJ', 9), +('S9', '9570', 'DURSEJ', 9), +('S9', '9571', 'DURSEJ', 9), +('S9', '9572', 'DURSEJ', 9), +('S9', '9573', 'DURSEJ', 9), +('S9', '9574', 'DURSEJ', 9), +('S9', '9575', 'DURSEJ', 9), +('S9', '9576', 'DURSEJ', 9), +('S9', '9577', 'DURSEJ', 9), +('S9', '9578', 'DURSEJ', 9), +('S9', '9579', 'DURSEJ', 9), +('S9', '9580', 'DURSEJ', 9), +('S9', '9581', 'DURSEJ', 9), +('S9', '9582', 'DURSEJ', 9), +('S9', '9583', 'DURSEJ', 9), +('S9', '9584', 'DURSEJ', 9), +('S9', '9585', 'DURSEJ', 9), +('S9', '9586', 'DURSEJ', 9), +('S9', '9587', 'DURSEJ', 9), +('S9', '9588', 'DURSEJ', 9), +('S9', '9589', 'DURSEJ', 9), +('S9', '9590', 'DURSEJ', 9), +('S9', '9591', 'DURSEJ', 9), +('S9', '9592', 'DURSEJ', 9), +('S9', '9593', 'DURSEJ', 9), +('S9', '9594', 'DURSEJ', 9), +('S9', '9595', 'DURSEJ', 9), +('S9', '9596', 'DURSEJ', 9), +('S9', '9597', 'DURSEJ', 9), +('S9', '9598', 'DURSEJ', 9), +('S9', '9599', 'DURSEJ', 9), +('S9', '9600', 'DURSEJ', 9), +('S9', '9601', 'DURSEJ', 9), +('S9', '9602', 'DURSEJ', 9), +('S9', '9603', 'DURSEJ', 9), +('S9', '9604', 'DURSEJ', 9), +('S9', '9605', 'DURSEJ', 9), +('S9', '9606', 'DURSEJ', 9), +('S9', '9607', 'DURSEJ', 9), +('S9', '9608', 'DURSEJ', 9), +('S9', '9609', 'DURSEJ', 9), +('S9', '9610', 'DURSEJ', 9), +('S9', '9611', 'DURSEJ', 9), +('S9', '9612', 'DURSEJ', 9), +('S9', '9613', 'DURSEJ', 9), +('S9', '9614', 'DURSEJ', 9), +('S9', '9615', 'DURSEJ', 9), +('S9', '9616', 'DURSEJ', 9), +('S9', '9617', 'DURSEJ', 9), +('S9', '9618', 'DURSEJ', 9), +('S9', '9619', 'DURSEJ', 9), +('S9', '9620', 'DURSEJ', 9), +('S9', '9621', 'DURSEJ', 9), +('S9', '9622', 'DURSEJ', 9), +('S9', '9623', 'DURSEJ', 9), +('S9', '9624', 'DURSEJ', 9), +('S9', '9625', 'DURSEJ', 9), +('S9', '9626', 'DURSEJ', 9), +('S9', '9627', 'DURSEJ', 9), +('S9', '9628', 'DURSEJ', 9), +('S9', '9629', 'DURSEJ', 9), +('S9', '9630', 'DURSEJ', 9), +('S9', '9631', 'DURSEJ', 9), +('S9', '9632', 'DURSEJ', 9), +('S9', '9633', 'DURSEJ', 9), +('S9', '9634', 'DURSEJ', 9), +('S9', '9635', 'DURSEJ', 9), +('S9', '9636', 'DURSEJ', 9), +('S9', '9637', 'DURSEJ', 9), +('S9', '9638', 'DURSEJ', 9), +('S9', '9639', 'DURSEJ', 9), +('S9', '9640', 'DURSEJ', 9), +('S9', '9641', 'DURSEJ', 9), +('S9', '9642', 'DURSEJ', 9), +('S9', '9643', 'DURSEJ', 9), +('S9', '9644', 'DURSEJ', 9), +('S9', '9645', 'DURSEJ', 9), +('S9', '9646', 'DURSEJ', 9), +('S9', '9647', 'DURSEJ', 9), +('S9', '9648', 'DURSEJ', 9), +('S9', '9649', 'DURSEJ', 9), +('S9', '9650', 'DURSEJ', 9), +('S9', '9651', 'DURSEJ', 9), +('S9', '9652', 'DURSEJ', 9), +('S9', '9653', 'DURSEJ', 9), +('S9', '9654', 'DURSEJ', 9), +('S9', '9655', 'DURSEJ', 9), +('S9', '9656', 'DURSEJ', 9), +('S9', '9657', 'DURSEJ', 9), +('S9', '9658', 'DURSEJ', 9), +('S9', '9659', 'DURSEJ', 9), +('S9', '9660', 'DURSEJ', 9), +('S9', '9661', 'DURSEJ', 9), +('S9', '9662', 'DURSEJ', 9), +('S9', '9663', 'DURSEJ', 9), +('S9', '9664', 'DURSEJ', 9), +('S9', '9665', 'DURSEJ', 9), +('S9', '9666', 'DURSEJ', 9), +('S9', '9667', 'DURSEJ', 9), +('S9', '9668', 'DURSEJ', 9), +('S9', '9669', 'DURSEJ', 9), +('S9', '9670', 'DURSEJ', 9), +('S9', '9671', 'DURSEJ', 9), +('S9', '9672', 'DURSEJ', 9), +('S9', '9673', 'DURSEJ', 9), +('S9', '9674', 'DURSEJ', 9), +('S9', '9675', 'DURSEJ', 9), +('S9', '9676', 'DURSEJ', 9), +('S9', '9677', 'DURSEJ', 9), +('S9', '9678', 'DURSEJ', 9), +('S9', '9679', 'DURSEJ', 9), +('S9', '9680', 'DURSEJ', 9), +('S9', '9681', 'DURSEJ', 9), +('S9', '9682', 'DURSEJ', 9), +('S9', '9683', 'DURSEJ', 9), +('S9', '9684', 'DURSEJ', 9), +('S9', '9685', 'DURSEJ', 9), +('S9', '9686', 'DURSEJ', 9), +('S9', '9687', 'DURSEJ', 9), +('S9', '9688', 'DURSEJ', 9), +('S9', '9689', 'DURSEJ', 9), +('S9', '9690', 'DURSEJ', 9), +('S9', '9691', 'DURSEJ', 9), +('S9', '9692', 'DURSEJ', 9), +('S9', '9693', 'DURSEJ', 9), +('S9', '9694', 'DURSEJ', 9), +('S9', '9695', 'DURSEJ', 9), +('S9', '9696', 'DURSEJ', 9), +('S9', '9697', 'DURSEJ', 9), +('S9', '9698', 'DURSEJ', 9), +('S9', '9699', 'DURSEJ', 9), +('S9', '9700', 'DURSEJ', 9), +('S9', '9701', 'DURSEJ', 9), +('S9', '9702', 'DURSEJ', 9), +('S9', '9703', 'DURSEJ', 9), +('S9', '9704', 'DURSEJ', 9), +('S9', '9705', 'DURSEJ', 9), +('S9', '9706', 'DURSEJ', 9), +('S9', '9707', 'DURSEJ', 9), +('S9', '9708', 'DURSEJ', 9), +('S9', '9709', 'DURSEJ', 9), +('S9', '9710', 'DURSEJ', 9), +('S9', '9711', 'DURSEJ', 9), +('S9', '9712', 'DURSEJ', 9), +('S9', '9713', 'DURSEJ', 9), +('S9', '9714', 'DURSEJ', 9), +('S9', '9715', 'DURSEJ', 9), +('S9', '9716', 'DURSEJ', 9), +('S9', '9717', 'DURSEJ', 9), +('S9', '9718', 'DURSEJ', 9), +('S9', '9719', 'DURSEJ', 9), +('S9', '9720', 'DURSEJ', 9), +('S9', '9721', 'DURSEJ', 9), +('S9', '9722', 'DURSEJ', 9), +('S9', '9723', 'DURSEJ', 9), +('S9', '9724', 'DURSEJ', 9), +('S9', '9725', 'DURSEJ', 9), +('S9', '9726', 'DURSEJ', 9), +('S9', '9727', 'DURSEJ', 9), +('S9', '9728', 'DURSEJ', 9), +('S9', '9729', 'DURSEJ', 9), +('S9', '9730', 'DURSEJ', 9), +('S9', '9731', 'DURSEJ', 9), +('S9', '9732', 'DURSEJ', 9), +('S9', '9733', 'DURSEJ', 9), +('S9', '9734', 'DURSEJ', 9), +('S9', '9735', 'DURSEJ', 9), +('S9', '9736', 'DURSEJ', 9), +('S9', '9737', 'DURSEJ', 9), +('S9', '9738', 'DURSEJ', 9), +('S9', '9739', 'DURSEJ', 9), +('S9', '9740', 'DURSEJ', 9), +('S9', '9741', 'DURSEJ', 9), +('S9', '9742', 'DURSEJ', 9), +('S9', '9743', 'DURSEJ', 9), +('S9', '9744', 'DURSEJ', 9), +('S9', '9745', 'DURSEJ', 9), +('S9', '9746', 'DURSEJ', 9), +('S9', '9747', 'DURSEJ', 9), +('S9', '9748', 'DURSEJ', 9), +('S9', '9749', 'DURSEJ', 9), +('S9', '9750', 'DURSEJ', 9), +('S9', '9751', 'DURSEJ', 9), +('S9', '9752', 'DURSEJ', 9), +('S9', '9753', 'DURSEJ', 9), +('S9', '9754', 'DURSEJ', 9), +('S9', '9755', 'DURSEJ', 9), +('S9', '9756', 'DURSEJ', 9), +('S9', '9757', 'DURSEJ', 9), +('S9', '9758', 'DURSEJ', 9), +('S9', '9759', 'DURSEJ', 9), +('S9', '9760', 'DURSEJ', 9), +('S9', '9761', 'DURSEJ', 9), +('S9', '9762', 'DURSEJ', 9), +('S9', '9763', 'DURSEJ', 9), +('S9', '9764', 'DURSEJ', 9), +('S9', '9765', 'DURSEJ', 9), +('S9', '9766', 'DURSEJ', 9), +('S9', '9767', 'DURSEJ', 9), +('S9', '9768', 'DURSEJ', 9), +('S9', '9769', 'DURSEJ', 9), +('S9', '9770', 'DURSEJ', 9), +('S9', '9771', 'DURSEJ', 9), +('S9', '9772', 'DURSEJ', 9), +('S9', '9773', 'DURSEJ', 9), +('S9', '9774', 'DURSEJ', 9), +('S9', '9775', 'DURSEJ', 9), +('S9', '9776', 'DURSEJ', 9), +('S9', '9777', 'DURSEJ', 9), +('S9', '9778', 'DURSEJ', 9), +('S9', '9779', 'DURSEJ', 9), +('S9', '9780', 'DURSEJ', 9), +('S9', '9781', 'DURSEJ', 9), +('S9', '9782', 'DURSEJ', 9), +('S9', '9783', 'DURSEJ', 9), +('S9', '9784', 'DURSEJ', 9), +('S9', '9785', 'DURSEJ', 9), +('S9', '9786', 'DURSEJ', 9), +('S9', '9787', 'DURSEJ', 9), +('S9', '9788', 'DURSEJ', 9), +('S9', '9789', 'DURSEJ', 9), +('S9', '9790', 'DURSEJ', 9), +('S9', '9791', 'DURSEJ', 9), +('S9', '9792', 'DURSEJ', 9), +('S9', '9793', 'DURSEJ', 9), +('S9', '9794', 'DURSEJ', 9), +('S9', '9795', 'DURSEJ', 9), +('S9', '9796', 'DURSEJ', 9), +('S9', '9797', 'DURSEJ', 9), +('S9', '9798', 'DURSEJ', 9), +('S9', '9799', 'DURSEJ', 9), +('S9', '9800', 'DURSEJ', 9), +('S9', '9801', 'DURSEJ', 9), +('S9', '9802', 'DURSEJ', 9), +('S9', '9803', 'DURSEJ', 9), +('S9', '9804', 'DURSEJ', 9), +('S9', '9805', 'DURSEJ', 9), +('S9', '9806', 'DURSEJ', 9), +('S9', '9807', 'DURSEJ', 9), +('S9', '9808', 'DURSEJ', 9), +('S9', '9809', 'DURSEJ', 9), +('S9', '9810', 'DURSEJ', 9), +('S9', '9811', 'DURSEJ', 9), +('S9', '9812', 'DURSEJ', 9), +('S9', '9813', 'DURSEJ', 9), +('S9', '9814', 'DURSEJ', 9), +('S9', '9815', 'DURSEJ', 9), +('S9', '9816', 'DURSEJ', 9), +('S9', '9817', 'DURSEJ', 9), +('S9', '9818', 'DURSEJ', 9), +('S9', '9819', 'DURSEJ', 9), +('S9', '9820', 'DURSEJ', 9), +('S9', '9821', 'DURSEJ', 9), +('S9', '9822', 'DURSEJ', 9), +('S9', '9823', 'DURSEJ', 9), +('S9', '9824', 'DURSEJ', 9), +('S9', '9825', 'DURSEJ', 9), +('S9', '9826', 'DURSEJ', 9), +('S9', '9827', 'DURSEJ', 9), +('S9', '9828', 'DURSEJ', 9), +('S9', '9829', 'DURSEJ', 9), +('S9', '9830', 'DURSEJ', 9), +('S9', '9831', 'DURSEJ', 9), +('S9', '9832', 'DURSEJ', 9), +('S9', '9833', 'DURSEJ', 9), +('S9', '9834', 'DURSEJ', 9), +('S9', '9835', 'DURSEJ', 9), +('S9', '9836', 'DURSEJ', 9), +('S9', '9837', 'DURSEJ', 9), +('S9', '9838', 'DURSEJ', 9), +('S9', '9839', 'DURSEJ', 9), +('S9', '9840', 'DURSEJ', 9), +('S9', '9841', 'DURSEJ', 9), +('S9', '9842', 'DURSEJ', 9), +('S9', '9843', 'DURSEJ', 9), +('S9', '9844', 'DURSEJ', 9), +('S9', '9845', 'DURSEJ', 9), +('S9', '9846', 'DURSEJ', 9), +('S9', '9847', 'DURSEJ', 9), +('S9', '9848', 'DURSEJ', 9), +('S9', '9849', 'DURSEJ', 9), +('S9', '9850', 'DURSEJ', 9), +('S9', '9851', 'DURSEJ', 9), +('S9', '9852', 'DURSEJ', 9), +('S9', '9853', 'DURSEJ', 9), +('S9', '9854', 'DURSEJ', 9), +('S9', '9855', 'DURSEJ', 9), +('S9', '9856', 'DURSEJ', 9), +('S9', '9857', 'DURSEJ', 9), +('S9', '9858', 'DURSEJ', 9), +('S9', '9859', 'DURSEJ', 9), +('S9', '9860', 'DURSEJ', 9), +('S9', '9861', 'DURSEJ', 9), +('S9', '9862', 'DURSEJ', 9), +('S9', '9863', 'DURSEJ', 9), +('S9', '9864', 'DURSEJ', 9), +('S9', '9865', 'DURSEJ', 9), +('S9', '9866', 'DURSEJ', 9), +('S9', '9867', 'DURSEJ', 9), +('S9', '9868', 'DURSEJ', 9), +('S9', '9869', 'DURSEJ', 9), +('S9', '9870', 'DURSEJ', 9), +('S9', '9871', 'DURSEJ', 9), +('S9', '9872', 'DURSEJ', 9), +('S9', '9873', 'DURSEJ', 9), +('S9', '9874', 'DURSEJ', 9), +('S9', '9875', 'DURSEJ', 9), +('S9', '9876', 'DURSEJ', 9), +('S9', '9877', 'DURSEJ', 9), +('S9', '9878', 'DURSEJ', 9), +('S9', '9879', 'DURSEJ', 9), +('S9', '9880', 'DURSEJ', 9), +('S9', '9881', 'DURSEJ', 9), +('S9', '9882', 'DURSEJ', 9), +('S9', '9883', 'DURSEJ', 9), +('S9', '9884', 'DURSEJ', 9), +('S9', '9885', 'DURSEJ', 9), +('S9', '9886', 'DURSEJ', 9), +('S9', '9887', 'DURSEJ', 9), +('S9', '9888', 'DURSEJ', 9), +('S9', '9889', 'DURSEJ', 9), +('S9', '9890', 'DURSEJ', 9), +('S9', '9891', 'DURSEJ', 9), +('S9', '9892', 'DURSEJ', 9), +('S9', '9893', 'DURSEJ', 9), +('S9', '9894', 'DURSEJ', 9), +('S9', '9895', 'DURSEJ', 9), +('S9', '9896', 'DURSEJ', 9), +('S9', '9897', 'DURSEJ', 9), +('S9', '9898', 'DURSEJ', 9), +('S9', '9899', 'DURSEJ', 9), +('S9', '9900', 'DURSEJ', 9), +('S9', '9901', 'DURSEJ', 9), +('S9', '9902', 'DURSEJ', 9), +('S9', '9903', 'DURSEJ', 9), +('S9', '9904', 'DURSEJ', 9), +('S9', '9905', 'DURSEJ', 9), +('S9', '9906', 'DURSEJ', 9), +('S9', '9907', 'DURSEJ', 9), +('S9', '9908', 'DURSEJ', 9), +('S9', '9909', 'DURSEJ', 9), +('S9', '9910', 'DURSEJ', 9), +('S9', '9911', 'DURSEJ', 9), +('S9', '9912', 'DURSEJ', 9), +('S9', '9913', 'DURSEJ', 9), +('S9', '9914', 'DURSEJ', 9), +('S9', '9915', 'DURSEJ', 9), +('S9', '9916', 'DURSEJ', 9), +('S9', '9917', 'DURSEJ', 9), +('S9', '9918', 'DURSEJ', 9), +('S9', '9919', 'DURSEJ', 9), +('S9', '9920', 'DURSEJ', 9), +('S9', '9921', 'DURSEJ', 9), +('S9', '9922', 'DURSEJ', 9), +('S9', '9923', 'DURSEJ', 9), +('S9', '9924', 'DURSEJ', 9), +('S9', '9925', 'DURSEJ', 9), +('S9', '9926', 'DURSEJ', 9), +('S9', '9927', 'DURSEJ', 9), +('S9', '9928', 'DURSEJ', 9), +('S9', '9929', 'DURSEJ', 9), +('S9', '9930', 'DURSEJ', 9), +('S9', '9931', 'DURSEJ', 9), +('S9', '9932', 'DURSEJ', 9), +('S9', '9933', 'DURSEJ', 9), +('S9', '9934', 'DURSEJ', 9), +('S9', '9935', 'DURSEJ', 9), +('S9', '9936', 'DURSEJ', 9), +('S9', '9937', 'DURSEJ', 9), +('S9', '9938', 'DURSEJ', 9), +('S9', '9939', 'DURSEJ', 9), +('S9', '9940', 'DURSEJ', 9), +('S9', '9941', 'DURSEJ', 9), +('S9', '9942', 'DURSEJ', 9), +('S9', '9943', 'DURSEJ', 9), +('S9', '9944', 'DURSEJ', 9), +('S9', '9945', 'DURSEJ', 9), +('S9', '9946', 'DURSEJ', 9), +('S9', '9947', 'DURSEJ', 9), +('S9', '9948', 'DURSEJ', 9), +('S9', '9949', 'DURSEJ', 9), +('S9', '9950', 'DURSEJ', 9), +('S9', '9951', 'DURSEJ', 9), +('S9', '9952', 'DURSEJ', 9), +('S9', '9953', 'DURSEJ', 9), +('S9', '9954', 'DURSEJ', 9), +('S9', '9955', 'DURSEJ', 9), +('S9', '9956', 'DURSEJ', 9), +('S9', '9957', 'DURSEJ', 9), +('S9', '9958', 'DURSEJ', 9), +('S9', '9959', 'DURSEJ', 9), +('S9', '9960', 'DURSEJ', 9), +('S9', '9961', 'DURSEJ', 9), +('S9', '9962', 'DURSEJ', 9), +('S9', '9963', 'DURSEJ', 9), +('S9', '9964', 'DURSEJ', 9), +('S9', '9965', 'DURSEJ', 9), +('S9', '9966', 'DURSEJ', 9), +('S9', '9967', 'DURSEJ', 9), +('S9', '9968', 'DURSEJ', 9), +('S9', '9969', 'DURSEJ', 9), +('S9', '9970', 'DURSEJ', 9), +('S9', '9971', 'DURSEJ', 9), +('S9', '9972', 'DURSEJ', 9), +('S9', '9973', 'DURSEJ', 9), +('S9', '9974', 'DURSEJ', 9), +('S9', '9975', 'DURSEJ', 9), +('S9', '9976', 'DURSEJ', 9), +('S9', '9977', 'DURSEJ', 9), +('S9', '9978', 'DURSEJ', 9), +('S9', '9979', 'DURSEJ', 9), +('S9', '9980', 'DURSEJ', 9), +('S9', '9981', 'DURSEJ', 9), +('S9', '9982', 'DURSEJ', 9), +('S9', '9983', 'DURSEJ', 9), +('S9', '9984', 'DURSEJ', 9), +('S9', '9985', 'DURSEJ', 9), +('S9', '9986', 'DURSEJ', 9), +('S9', '9987', 'DURSEJ', 9), +('S9', '9988', 'DURSEJ', 9), +('S9', '9989', 'DURSEJ', 9), +('S9', '9990', 'DURSEJ', 9), +('S9', '9991', 'DURSEJ', 9), +('S9', '9992', 'DURSEJ', 9), +('S9', '9993', 'DURSEJ', 9), +('S9', '9994', 'DURSEJ', 9), +('S9', '9995', 'DURSEJ', 9), +('S9', '9996', 'DURSEJ', 9), +('S9', '9997', 'DURSEJ', 9), +('S9', '9998', 'DURSEJ', 9), +('S9', '9999', 'DURSEJ', 9) +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_classes_sections_elements(section_id, to_id) +SELECT + t_classes_sections.oid, + t_durees_sejour.oid +FROM + w_dbsetup, + activite.t_listes_tables, + activite.t_classes, + activite.t_classes_sections, + base.t_durees_sejour +WHERE + w_dbsetup.table_code = t_listes_tables.code + AND t_classes.table_id = t_listes_tables.oid + AND t_classes_sections.classe_id = t_classes.oid + AND w_dbsetup.section_code = t_classes_sections.code + AND w_dbsetup.classe_sequence = t_classes.sequence + AND w_dbsetup.to_code = t_durees_sejour.code + AND t_classes_sections.oid::text || '-' || t_durees_sejour.oid::text NOT IN (SELECT section_id::text || '-' || to_id::text FROM activite.t_classes_sections_elements); + + +SELECT * FROM activite.cti_update_schema_classes('DURSEJ'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_classes_sections_elements_etat_sejour.SQL b/db/data/dbdata_activite_t_classes_sections_elements_etat_sejour.SQL new file mode 100644 index 0000000..1da2ac1 --- /dev/null +++ b/db/data/dbdata_activite_t_classes_sections_elements_etat_sejour.SQL @@ -0,0 +1,83 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_classes_sections.code AS section_code, + t_etat_sejour.code as to_code, + t_listes_tables.code as table_code, + t_classes.sequence as classe_sequence + FROM + activite.t_classes_sections_elements, + activite.t_classes_sections, + activite.t_classes, + activite.t_listes_tables, + activite.t_etat_sejour + WHERE + t_classes_sections_elements.section_id = t_classes_sections.oid + AND t_classes_sections.classe_id = t_classes.oid + AND t_classes.is_cti = '1' + AND table_id = t_listes_tables.oid + AND t_listes_tables.code = 'ETATSEJOUR' + AND t_classes_sections_elements.to_id = t_etat_sejour.oid + ORDER BY t_classes.sequence, t_classes_sections.code, t_etat_sejour.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + section_code, + to_code, + table_code, + classe_sequence +) +VALUES +('S1', '0', 'ETATSEJOUR', 10), +('S2', '1', 'ETATSEJOUR', 10), +('S2', '2', 'ETATSEJOUR', 10), +('S3', '3', 'ETATSEJOUR', 10), +('S4', '4', 'ETATSEJOUR', 10), +('S4', '5', 'ETATSEJOUR', 10), +('S5', '6', 'ETATSEJOUR', 10), +('S6', '7', 'ETATSEJOUR', 10), +('S6', '8', 'ETATSEJOUR', 10), +('S7', '9', 'ETATSEJOUR', 10), +('S8', 'A', 'ETATSEJOUR', 10), +('S8', 'C', 'ETATSEJOUR', 10), +('S8', 'R', 'ETATSEJOUR', 10), +('S1', '0', 'ETATSEJOUR', 11), +('S1', '9', 'ETATSEJOUR', 11), +('S2', '1', 'ETATSEJOUR', 11), +('S2', '2', 'ETATSEJOUR', 11), +('S3', '3', 'ETATSEJOUR', 11), +('S3', '4', 'ETATSEJOUR', 11), +('S3', '5', 'ETATSEJOUR', 11), +('S4', '6', 'ETATSEJOUR', 11), +('S5', '7', 'ETATSEJOUR', 11), +('S5', '8', 'ETATSEJOUR', 11), +('S6', 'A', 'ETATSEJOUR', 11), +('S6', 'C', 'ETATSEJOUR', 11), +('S6', 'R', 'ETATSEJOUR', 11) +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_classes_sections_elements(section_id, to_id) +SELECT + t_classes_sections.oid, + t_etat_sejour.oid +FROM + w_dbsetup, + activite.t_listes_tables, + activite.t_classes, + activite.t_classes_sections, + activite.t_etat_sejour +WHERE + w_dbsetup.table_code = t_listes_tables.code + AND t_classes.table_id = t_listes_tables.oid + AND t_classes_sections.classe_id = t_classes.oid + AND w_dbsetup.section_code = t_classes_sections.code + AND w_dbsetup.classe_sequence = t_classes.sequence + AND w_dbsetup.to_code = t_etat_sejour.code + AND t_classes_sections.oid::text || '-'::text || t_etat_sejour.oid::text NOT IN (SELECT section_id::text || '-'::text || to_id::text FROM activite.t_classes_sections_elements); + +SELECT * FROM activite.cti_update_schema_classes('ETATSEJOUR'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_classes_sections_elements_forme_activite.SQL b/db/data/dbdata_activite_t_classes_sections_elements_forme_activite.SQL new file mode 100644 index 0000000..39f3223 --- /dev/null +++ b/db/data/dbdata_activite_t_classes_sections_elements_forme_activite.SQL @@ -0,0 +1,192 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_classes_sections.code AS section_code, + t_forme_activite.code as to_code, + t_listes_tables.code as table_code, + t_classes.sequence as classe_sequence + FROM + activite.t_classes_sections_elements, + activite.t_classes_sections, + activite.t_classes, + activite.t_listes_tables, + activite.t_forme_activite + WHERE + t_classes_sections_elements.section_id = t_classes_sections.oid + AND t_classes_sections.classe_id = t_classes.oid + AND t_classes.is_cti = '1' + AND table_id = t_listes_tables.oid + AND t_listes_tables.code = 'FORMEACTIVITE' + AND t_classes_sections_elements.to_id = t_forme_activite.oid + ORDER BY t_classes.sequence, t_classes_sections.code, t_forme_activite.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + section_code, + to_code, + table_code, + classe_sequence +) +VALUES +('1', '111', 'FORMEACTIVITE', 1), +('1', '112', 'FORMEACTIVITE', 1), +('1', '113', 'FORMEACTIVITE', 1), +('1', '114', 'FORMEACTIVITE', 1), +('1', '117', 'FORMEACTIVITE', 1), +('1', '118', 'FORMEACTIVITE', 1), +('1', '119', 'FORMEACTIVITE', 1), +('1', '121', 'FORMEACTIVITE', 1), +('1', '122', 'FORMEACTIVITE', 1), +('1', '123', 'FORMEACTIVITE', 1), +('1', '124', 'FORMEACTIVITE', 1), +('1', '127', 'FORMEACTIVITE', 1), +('1', '128', 'FORMEACTIVITE', 1), +('1', '129', 'FORMEACTIVITE', 1), +('1', '131', 'FORMEACTIVITE', 1), +('1', '132', 'FORMEACTIVITE', 1), +('1', '133', 'FORMEACTIVITE', 1), +('1', '139', 'FORMEACTIVITE', 1), +('2', '211', 'FORMEACTIVITE', 1), +('2', '212', 'FORMEACTIVITE', 1), +('2', '217', 'FORMEACTIVITE', 1), +('2', '218', 'FORMEACTIVITE', 1), +('2', '219', 'FORMEACTIVITE', 1), +('2', '221', 'FORMEACTIVITE', 1), +('2', '222', 'FORMEACTIVITE', 1), +('2', '227', 'FORMEACTIVITE', 1), +('2', '228', 'FORMEACTIVITE', 1), +('2', '229', 'FORMEACTIVITE', 1), +('3', '311', 'FORMEACTIVITE', 1), +('3', '317', 'FORMEACTIVITE', 1), +('3', '318', 'FORMEACTIVITE', 1), +('3', '319', 'FORMEACTIVITE', 1), +('3', '321', 'FORMEACTIVITE', 1), +('3', '327', 'FORMEACTIVITE', 1), +('3', '328', 'FORMEACTIVITE', 1), +('3', '329', 'FORMEACTIVITE', 1), +('4', '401', 'FORMEACTIVITE', 1), +('5', '501', 'FORMEACTIVITE', 1), +('5', '502', 'FORMEACTIVITE', 1), +('5', '503', 'FORMEACTIVITE', 1), +('7', '701', 'FORMEACTIVITE', 1), +('7', '702', 'FORMEACTIVITE', 1), +('7', '709', 'FORMEACTIVITE', 1), +('9', '***', 'FORMEACTIVITE', 1), +('9', '999', 'FORMEACTIVITE', 1), +('11', '111', 'FORMEACTIVITE', 2), +('11', '121', 'FORMEACTIVITE', 2), +('12', '112', 'FORMEACTIVITE', 2), +('12', '122', 'FORMEACTIVITE', 2), +('13', '113', 'FORMEACTIVITE', 2), +('13', '123', 'FORMEACTIVITE', 2), +('14', '114', 'FORMEACTIVITE', 2), +('14', '124', 'FORMEACTIVITE', 2), +('15', '131', 'FORMEACTIVITE', 2), +('15', '132', 'FORMEACTIVITE', 2), +('15', '133', 'FORMEACTIVITE', 2), +('15', '139', 'FORMEACTIVITE', 2), +('19', '117', 'FORMEACTIVITE', 2), +('19', '118', 'FORMEACTIVITE', 2), +('19', '119', 'FORMEACTIVITE', 2), +('19', '127', 'FORMEACTIVITE', 2), +('19', '128', 'FORMEACTIVITE', 2), +('19', '129', 'FORMEACTIVITE', 2), +('20', '211', 'FORMEACTIVITE', 2), +('20', '212', 'FORMEACTIVITE', 2), +('20', '217', 'FORMEACTIVITE', 2), +('20', '218', 'FORMEACTIVITE', 2), +('20', '219', 'FORMEACTIVITE', 2), +('20', '221', 'FORMEACTIVITE', 2), +('20', '222', 'FORMEACTIVITE', 2), +('20', '227', 'FORMEACTIVITE', 2), +('20', '228', 'FORMEACTIVITE', 2), +('20', '229', 'FORMEACTIVITE', 2), +('30', '311', 'FORMEACTIVITE', 2), +('30', '317', 'FORMEACTIVITE', 2), +('30', '318', 'FORMEACTIVITE', 2), +('30', '319', 'FORMEACTIVITE', 2), +('30', '321', 'FORMEACTIVITE', 2), +('30', '327', 'FORMEACTIVITE', 2), +('30', '328', 'FORMEACTIVITE', 2), +('30', '329', 'FORMEACTIVITE', 2), +('40', '401', 'FORMEACTIVITE', 2), +('50', '501', 'FORMEACTIVITE', 2), +('50', '502', 'FORMEACTIVITE', 2), +('50', '503', 'FORMEACTIVITE', 2), +('70', '701', 'FORMEACTIVITE', 2), +('70', '702', 'FORMEACTIVITE', 2), +('70', '709', 'FORMEACTIVITE', 2), +('99', '***', 'FORMEACTIVITE', 2), +('99', '999', 'FORMEACTIVITE', 2), +('11', '121', 'FORMEACTIVITE', 3), +('11', '122', 'FORMEACTIVITE', 3), +('11', '123', 'FORMEACTIVITE', 3), +('11', '124', 'FORMEACTIVITE', 3), +('11', '127', 'FORMEACTIVITE', 3), +('11', '128', 'FORMEACTIVITE', 3), +('11', '129', 'FORMEACTIVITE', 3), +('12', '111', 'FORMEACTIVITE', 3), +('12', '112', 'FORMEACTIVITE', 3), +('12', '113', 'FORMEACTIVITE', 3), +('12', '114', 'FORMEACTIVITE', 3), +('12', '117', 'FORMEACTIVITE', 3), +('12', '118', 'FORMEACTIVITE', 3), +('12', '119', 'FORMEACTIVITE', 3), +('2', '211', 'FORMEACTIVITE', 3), +('2', '212', 'FORMEACTIVITE', 3), +('2', '217', 'FORMEACTIVITE', 3), +('2', '218', 'FORMEACTIVITE', 3), +('2', '219', 'FORMEACTIVITE', 3), +('2', '221', 'FORMEACTIVITE', 3), +('2', '222', 'FORMEACTIVITE', 3), +('2', '227', 'FORMEACTIVITE', 3), +('2', '228', 'FORMEACTIVITE', 3), +('2', '229', 'FORMEACTIVITE', 3), +('3', '311', 'FORMEACTIVITE', 3), +('3', '317', 'FORMEACTIVITE', 3), +('3', '318', 'FORMEACTIVITE', 3), +('3', '319', 'FORMEACTIVITE', 3), +('3', '321', 'FORMEACTIVITE', 3), +('3', '327', 'FORMEACTIVITE', 3), +('3', '328', 'FORMEACTIVITE', 3), +('3', '329', 'FORMEACTIVITE', 3), +('4', '401', 'FORMEACTIVITE', 3), +('9', '***', 'FORMEACTIVITE', 3), +('9', '131', 'FORMEACTIVITE', 3), +('9', '132', 'FORMEACTIVITE', 3), +('9', '133', 'FORMEACTIVITE', 3), +('9', '139', 'FORMEACTIVITE', 3), +('9', '501', 'FORMEACTIVITE', 3), +('9', '502', 'FORMEACTIVITE', 3), +('9', '503', 'FORMEACTIVITE', 3), +('9', '701', 'FORMEACTIVITE', 3), +('9', '702', 'FORMEACTIVITE', 3), +('9', '709', 'FORMEACTIVITE', 3), +('9', '999', 'FORMEACTIVITE', 3) +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_classes_sections_elements(section_id, to_id) +SELECT + t_classes_sections.oid, + t_forme_activite.oid +FROM + w_dbsetup, + activite.t_listes_tables, + activite.t_classes, + activite.t_classes_sections, + activite.t_forme_activite +WHERE + w_dbsetup.table_code = t_listes_tables.code + AND t_classes.table_id = t_listes_tables.oid + AND t_classes_sections.classe_id = t_classes.oid + AND w_dbsetup.section_code = t_classes_sections.code + AND w_dbsetup.classe_sequence = t_classes.sequence + AND w_dbsetup.to_code = t_forme_activite.code + AND t_classes_sections.oid::text || '-'::text || t_forme_activite.oid::text NOT IN (SELECT section_id::text || '-'::text || to_id::text FROM activite.t_classes_sections_elements); + +SELECT * FROM activite.cti_update_schema_classes('FORMEACTIVITE'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_classes_sections_elements_ghm.SQL b/db/data/dbdata_activite_t_classes_sections_elements_ghm.SQL new file mode 100644 index 0000000..d7600ec --- /dev/null +++ b/db/data/dbdata_activite_t_classes_sections_elements_ghm.SQL @@ -0,0 +1,10086 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_classes_sections.code AS section_code, + t_ghm.code as to_code, + t_listes_tables.code as table_code, + t_classes.sequence as classe_sequence + FROM + activite.t_classes_sections_elements, + activite.t_classes_sections, + activite.t_classes, + activite.t_listes_tables, + base.t_ghm + WHERE + t_classes_sections_elements.section_id = t_classes_sections.oid + AND t_classes_sections.classe_id = t_classes.oid + AND t_classes.is_cti = '1' + AND table_id = t_listes_tables.oid + AND t_listes_tables.code = 'GHM' + AND t_classes_sections_elements.to_id = t_ghm.oid + ORDER BY t_classes.sequence, t_classes_sections.code, t_ghm.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + section_code, + to_code, + table_code, + classe_sequence +) +VALUES +('G001', '06C02Z', 'GHM', 7), +('G001', '06C051', 'GHM', 7), +('G001', '06C052', 'GHM', 7), +('G001', '06C053', 'GHM', 7), +('G001', '06C054', 'GHM', 7), +('G001', '06C05Z', 'GHM', 7), +('G001', '06C161', 'GHM', 7), +('G001', '06C162', 'GHM', 7), +('G001', '06C163', 'GHM', 7), +('G001', '06C164', 'GHM', 7), +('G001', '06C16V', 'GHM', 7), +('G001', '06C16W', 'GHM', 7), +('G001', '06C201', 'GHM', 7), +('G001', '06C202', 'GHM', 7), +('G001', '06C203', 'GHM', 7), +('G001', '06C204', 'GHM', 7), +('G001', '06C221', 'GHM', 7), +('G001', '06C222', 'GHM', 7), +('G001', '06C223', 'GHM', 7), +('G001', '06C224', 'GHM', 7), +('G001', '10C04Z', 'GHM', 7), +('G001', '10C091', 'GHM', 7), +('G001', '10C092', 'GHM', 7), +('G001', '10C093', 'GHM', 7), +('G001', '10C094', 'GHM', 7), +('G001', '10C09Z', 'GHM', 7), +('G002', '06C021', 'GHM', 7), +('G002', '06C022', 'GHM', 7), +('G002', '06C023', 'GHM', 7), +('G002', '06C024', 'GHM', 7), +('G002', '06C031', 'GHM', 7), +('G002', '06C032', 'GHM', 7), +('G002', '06C033', 'GHM', 7), +('G002', '06C034', 'GHM', 7), +('G002', '06C03V', 'GHM', 7), +('G002', '06C03W', 'GHM', 7), +('G002', '06C041', 'GHM', 7), +('G002', '06C042', 'GHM', 7), +('G002', '06C043', 'GHM', 7), +('G002', '06C044', 'GHM', 7), +('G002', '06C04V', 'GHM', 7), +('G002', '06C04W', 'GHM', 7), +('G003', '06C081', 'GHM', 7), +('G003', '06C082', 'GHM', 7), +('G003', '06C083', 'GHM', 7), +('G003', '06C084', 'GHM', 7), +('G003', '06C08V', 'GHM', 7), +('G003', '06C08W', 'GHM', 7), +('G003', '06C091', 'GHM', 7), +('G003', '06C092', 'GHM', 7), +('G003', '06C093', 'GHM', 7), +('G003', '06C094', 'GHM', 7), +('G003', '06C09V', 'GHM', 7), +('G003', '06C09W', 'GHM', 7), +('G004', '06C101', 'GHM', 7), +('G004', '06C102', 'GHM', 7), +('G004', '06C103', 'GHM', 7), +('G004', '06C104', 'GHM', 7), +('G004', '06C10J', 'GHM', 7), +('G004', '06C10Z', 'GHM', 7), +('G004', '06C111', 'GHM', 7), +('G004', '06C112', 'GHM', 7), +('G004', '06C113', 'GHM', 7), +('G004', '06C114', 'GHM', 7), +('G004', '06C11J', 'GHM', 7), +('G004', '06C11V', 'GHM', 7), +('G004', '06C11W', 'GHM', 7), +('G004', '06C121', 'GHM', 7), +('G004', '06C122', 'GHM', 7), +('G004', '06C123', 'GHM', 7), +('G004', '06C124', 'GHM', 7), +('G004', '06C12J', 'GHM', 7), +('G004', '06C12V', 'GHM', 7), +('G004', '06C12W', 'GHM', 7), +('G004', '06C241', 'GHM', 7), +('G004', '06C242', 'GHM', 7), +('G004', '06C243', 'GHM', 7), +('G004', '06C244', 'GHM', 7), +('G004', '06C24J', 'GHM', 7), +('G004', '06C251', 'GHM', 7), +('G004', '06C252', 'GHM', 7), +('G004', '06C253', 'GHM', 7), +('G004', '06C254', 'GHM', 7), +('G004', '06C25J', 'GHM', 7), +('G005', '06M061', 'GHM', 7), +('G005', '06M062', 'GHM', 7), +('G005', '06M063', 'GHM', 7), +('G005', '06M064', 'GHM', 7), +('G005', '06M06T', 'GHM', 7), +('G005', '06M06V', 'GHM', 7), +('G005', '06M06W', 'GHM', 7), +('G006', '06C071', 'GHM', 7), +('G006', '06C072', 'GHM', 7), +('G006', '06C073', 'GHM', 7), +('G006', '06C074', 'GHM', 7), +('G006', '06C07V', 'GHM', 7), +('G006', '06C07W', 'GHM', 7), +('G007', '06C141', 'GHM', 7), +('G007', '06C142', 'GHM', 7), +('G007', '06C143', 'GHM', 7), +('G007', '06C144', 'GHM', 7), +('G007', '06C14J', 'GHM', 7), +('G007', '06C14V', 'GHM', 7), +('G007', '06C14W', 'GHM', 7), +('G007', '06C191', 'GHM', 7), +('G007', '06C192', 'GHM', 7), +('G007', '06C193', 'GHM', 7), +('G007', '06C194', 'GHM', 7), +('G007', '06C19J', 'GHM', 7), +('G007', '09C081', 'GHM', 7), +('G007', '09C082', 'GHM', 7), +('G007', '09C083', 'GHM', 7), +('G007', '09C084', 'GHM', 7), +('G007', '09C08J', 'GHM', 7), +('G007', '09C08Z', 'GHM', 7), +('G007', '09C131', 'GHM', 7), +('G007', '09C132', 'GHM', 7), +('G007', '09C133', 'GHM', 7), +('G007', '09C134', 'GHM', 7), +('G007', '09C13J', 'GHM', 7), +('G008', '06C131', 'GHM', 7), +('G008', '06C132', 'GHM', 7), +('G008', '06C133', 'GHM', 7), +('G008', '06C134', 'GHM', 7), +('G008', '06C13V', 'GHM', 7), +('G008', '06C13W', 'GHM', 7), +('G008', '06C151', 'GHM', 7), +('G008', '06C152', 'GHM', 7), +('G008', '06C153', 'GHM', 7), +('G008', '06C154', 'GHM', 7), +('G008', '06C15V', 'GHM', 7), +('G008', '06C15W', 'GHM', 7), +('G008', '06C211', 'GHM', 7), +('G008', '06C212', 'GHM', 7), +('G008', '06C213', 'GHM', 7), +('G008', '06C214', 'GHM', 7), +('G008', '06C231', 'GHM', 7), +('G008', '06C232', 'GHM', 7), +('G008', '06C233', 'GHM', 7), +('G008', '06C234', 'GHM', 7), +('G008', '06C23J', 'GHM', 7), +('G008', '10C131', 'GHM', 7), +('G008', '10C132', 'GHM', 7), +('G008', '10C133', 'GHM', 7), +('G008', '10C134', 'GHM', 7), +('G008', '10C13Z', 'GHM', 7), +('G008', '16C021', 'GHM', 7), +('G008', '16C022', 'GHM', 7), +('G008', '16C023', 'GHM', 7), +('G008', '16C024', 'GHM', 7), +('G008', '16C02Z', 'GHM', 7), +('G009', '07C131', 'GHM', 7), +('G009', '07C132', 'GHM', 7), +('G009', '07C133', 'GHM', 7), +('G009', '07C134', 'GHM', 7), +('G009', '07C141', 'GHM', 7), +('G009', '07C142', 'GHM', 7), +('G009', '07C143', 'GHM', 7), +('G009', '07C144', 'GHM', 7), +('G009', '07C14J', 'GHM', 7), +('G010', '07C061', 'GHM', 7), +('G010', '07C062', 'GHM', 7), +('G010', '07C063', 'GHM', 7), +('G010', '07C064', 'GHM', 7), +('G010', '07C06Z', 'GHM', 7), +('G010', '07C071', 'GHM', 7), +('G010', '07C072', 'GHM', 7), +('G010', '07C073', 'GHM', 7), +('G010', '07C074', 'GHM', 7), +('G010', '07C07Z', 'GHM', 7), +('G010', '07C081', 'GHM', 7), +('G010', '07C082', 'GHM', 7), +('G010', '07C083', 'GHM', 7), +('G010', '07C084', 'GHM', 7), +('G010', '07C08Z', 'GHM', 7), +('G010', '07C091', 'GHM', 7), +('G010', '07C092', 'GHM', 7), +('G010', '07C093', 'GHM', 7), +('G010', '07C094', 'GHM', 7), +('G010', '07C09V', 'GHM', 7), +('G010', '07C09W', 'GHM', 7), +('G010', '07C101', 'GHM', 7), +('G010', '07C102', 'GHM', 7), +('G010', '07C103', 'GHM', 7), +('G010', '07C104', 'GHM', 7), +('G010', '07C10V', 'GHM', 7), +('G010', '07C10W', 'GHM', 7), +('G010', '07C111', 'GHM', 7), +('G010', '07C112', 'GHM', 7), +('G010', '07C113', 'GHM', 7), +('G010', '07C114', 'GHM', 7), +('G010', '07C11V', 'GHM', 7), +('G010', '07C11W', 'GHM', 7), +('G010', '07C121', 'GHM', 7), +('G010', '07C122', 'GHM', 7), +('G010', '07C123', 'GHM', 7), +('G010', '07C124', 'GHM', 7), +('G010', '07C12V', 'GHM', 7), +('G010', '07C12W', 'GHM', 7), +('G011', '06M051', 'GHM', 7), +('G011', '06M052', 'GHM', 7), +('G011', '06M053', 'GHM', 7), +('G011', '06M054', 'GHM', 7), +('G011', '06M05T', 'GHM', 7), +('G011', '06M05V', 'GHM', 7), +('G011', '06M05W', 'GHM', 7), +('G011', '06M131', 'GHM', 7), +('G011', '06M132', 'GHM', 7), +('G011', '06M133', 'GHM', 7), +('G011', '06M134', 'GHM', 7), +('G011', '06M13T', 'GHM', 7), +('G012', '06M041', 'GHM', 7), +('G012', '06M042', 'GHM', 7), +('G012', '06M043', 'GHM', 7), +('G012', '06M044', 'GHM', 7), +('G012', '06M04T', 'GHM', 7), +('G012', '06M04V', 'GHM', 7), +('G012', '06M04W', 'GHM', 7), +('G012', '06M101', 'GHM', 7), +('G012', '06M102', 'GHM', 7), +('G012', '06M103', 'GHM', 7), +('G012', '06M104', 'GHM', 7), +('G012', '06M10Z', 'GHM', 7), +('G012', '06M111', 'GHM', 7), +('G012', '06M112', 'GHM', 7), +('G012', '06M113', 'GHM', 7), +('G012', '06M114', 'GHM', 7), +('G012', '06M11T', 'GHM', 7), +('G012', '06M11V', 'GHM', 7), +('G012', '06M11W', 'GHM', 7), +('G013', '06M15Z', 'GHM', 7), +('G013', '07M121', 'GHM', 7), +('G013', '07M122', 'GHM', 7), +('G013', '07M123', 'GHM', 7), +('G013', '07M124', 'GHM', 7), +('G014', '06M071', 'GHM', 7), +('G014', '06M072', 'GHM', 7), +('G014', '06M073', 'GHM', 7), +('G014', '06M074', 'GHM', 7), +('G014', '06M07T', 'GHM', 7), +('G014', '06M07V', 'GHM', 7), +('G014', '06M07W', 'GHM', 7), +('G015', '06M141', 'GHM', 7), +('G015', '06M142', 'GHM', 7), +('G015', '06M143', 'GHM', 7), +('G015', '06M144', 'GHM', 7), +('G015', '06M17T', 'GHM', 7), +('G015', '06M17Z', 'GHM', 7), +('G015', '06M191', 'GHM', 7), +('G015', '06M192', 'GHM', 7), +('G015', '06M193', 'GHM', 7), +('G015', '06M194', 'GHM', 7), +('G015', '06M201', 'GHM', 7), +('G015', '06M202', 'GHM', 7), +('G015', '06M203', 'GHM', 7), +('G015', '06M204', 'GHM', 7), +('G015', '06M20T', 'GHM', 7), +('G016', '06M021', 'GHM', 7), +('G016', '06M022', 'GHM', 7), +('G016', '06M023', 'GHM', 7), +('G016', '06M024', 'GHM', 7), +('G016', '06M02T', 'GHM', 7), +('G016', '06M02V', 'GHM', 7), +('G016', '06M02W', 'GHM', 7), +('G016', '06M031', 'GHM', 7), +('G016', '06M032', 'GHM', 7), +('G016', '06M033', 'GHM', 7), +('G016', '06M034', 'GHM', 7), +('G016', '06M03T', 'GHM', 7), +('G016', '06M03V', 'GHM', 7), +('G016', '06M03W', 'GHM', 7), +('G017', '06M081', 'GHM', 7), +('G017', '06M082', 'GHM', 7), +('G017', '06M083', 'GHM', 7), +('G017', '06M084', 'GHM', 7), +('G017', '06M08T', 'GHM', 7), +('G017', '06M08Z', 'GHM', 7), +('G017', '06M091', 'GHM', 7), +('G017', '06M092', 'GHM', 7), +('G017', '06M093', 'GHM', 7), +('G017', '06M094', 'GHM', 7), +('G017', '06M09T', 'GHM', 7), +('G017', '06M09V', 'GHM', 7), +('G017', '06M09W', 'GHM', 7), +('G017', '06M211', 'GHM', 7), +('G017', '06M212', 'GHM', 7), +('G017', '06M213', 'GHM', 7), +('G017', '06M214', 'GHM', 7), +('G018', '07M071', 'GHM', 7), +('G018', '07M072', 'GHM', 7), +('G018', '07M073', 'GHM', 7), +('G018', '07M074', 'GHM', 7), +('G018', '07M07T', 'GHM', 7), +('G018', '07M081', 'GHM', 7), +('G018', '07M082', 'GHM', 7), +('G018', '07M083', 'GHM', 7), +('G018', '07M084', 'GHM', 7), +('G018', '07M08T', 'GHM', 7), +('G018', '07M091', 'GHM', 7), +('G018', '07M092', 'GHM', 7), +('G018', '07M093', 'GHM', 7), +('G018', '07M094', 'GHM', 7), +('G018', '07M09T', 'GHM', 7), +('G019', '07M061', 'GHM', 7), +('G019', '07M062', 'GHM', 7), +('G019', '07M063', 'GHM', 7), +('G019', '07M064', 'GHM', 7), +('G019', '07M06T', 'GHM', 7), +('G019', '07M06V', 'GHM', 7), +('G019', '07M06W', 'GHM', 7), +('G019', '07M101', 'GHM', 7), +('G019', '07M102', 'GHM', 7), +('G019', '07M103', 'GHM', 7), +('G019', '07M104', 'GHM', 7), +('G019', '07M10T', 'GHM', 7), +('G019', '07M111', 'GHM', 7), +('G019', '07M112', 'GHM', 7), +('G019', '07M113', 'GHM', 7), +('G019', '07M114', 'GHM', 7), +('G019', '07M11T', 'GHM', 7), +('G019', '07M151', 'GHM', 7), +('G019', '07M152', 'GHM', 7), +('G019', '07M153', 'GHM', 7), +('G019', '07M154', 'GHM', 7), +('G019', '07M15T', 'GHM', 7), +('G020', '07M021', 'GHM', 7), +('G020', '07M022', 'GHM', 7), +('G020', '07M023', 'GHM', 7), +('G020', '07M024', 'GHM', 7), +('G020', '07M02T', 'GHM', 7), +('G020', '07M02V', 'GHM', 7), +('G020', '07M02W', 'GHM', 7), +('G020', '07M041', 'GHM', 7), +('G020', '07M042', 'GHM', 7), +('G020', '07M043', 'GHM', 7), +('G020', '07M044', 'GHM', 7), +('G020', '07M04T', 'GHM', 7), +('G020', '07M04V', 'GHM', 7), +('G020', '07M04W', 'GHM', 7), +('G020', '07M161', 'GHM', 7), +('G020', '07M162', 'GHM', 7), +('G020', '07M163', 'GHM', 7), +('G020', '07M164', 'GHM', 7), +('G021', '06M121', 'GHM', 7), +('G021', '06M122', 'GHM', 7), +('G021', '06M123', 'GHM', 7), +('G021', '06M124', 'GHM', 7), +('G021', '06M12T', 'GHM', 7), +('G021', '06M18T', 'GHM', 7), +('G021', '06M18Z', 'GHM', 7), +('G021', '07M14T', 'GHM', 7), +('G021', '07M14Z', 'GHM', 7), +('G022', '06K03J', 'GHM', 7), +('G022', '06K04J', 'GHM', 7), +('G022', '06K05J', 'GHM', 7), +('G022', '07K02Z', 'GHM', 7), +('G022', '07K04J', 'GHM', 7), +('G022', '07K05J', 'GHM', 7), +('G023', '06M16Z', 'GHM', 7), +('G023', '07M13Z', 'GHM', 7), +('G024', '08C021', 'GHM', 7), +('G024', '08C022', 'GHM', 7), +('G024', '08C023', 'GHM', 7), +('G024', '08C024', 'GHM', 7), +('G024', '08C02Z', 'GHM', 7), +('G024', '08C041', 'GHM', 7), +('G024', '08C042', 'GHM', 7), +('G024', '08C043', 'GHM', 7), +('G024', '08C044', 'GHM', 7), +('G024', '08C04Z', 'GHM', 7), +('G024', '08C221', 'GHM', 7), +('G024', '08C222', 'GHM', 7), +('G024', '08C223', 'GHM', 7), +('G024', '08C224', 'GHM', 7), +('G024', '08C22Z', 'GHM', 7), +('G024', '08C241', 'GHM', 7), +('G024', '08C242', 'GHM', 7), +('G024', '08C243', 'GHM', 7), +('G024', '08C244', 'GHM', 7), +('G024', '08C24Z', 'GHM', 7), +('G024', '08C251', 'GHM', 7), +('G024', '08C252', 'GHM', 7), +('G024', '08C253', 'GHM', 7), +('G024', '08C254', 'GHM', 7), +('G024', '08C25Z', 'GHM', 7), +('G024', '08C471', 'GHM', 7), +('G024', '08C472', 'GHM', 7), +('G024', '08C473', 'GHM', 7), +('G024', '08C474', 'GHM', 7), +('G024', '08C481', 'GHM', 7), +('G024', '08C482', 'GHM', 7), +('G024', '08C483', 'GHM', 7), +('G024', '08C484', 'GHM', 7), +('G024', '08C491', 'GHM', 7), +('G024', '08C492', 'GHM', 7), +('G024', '08C493', 'GHM', 7), +('G024', '08C494', 'GHM', 7), +('G024', '08C501', 'GHM', 7), +('G024', '08C502', 'GHM', 7), +('G024', '08C503', 'GHM', 7), +('G024', '08C504', 'GHM', 7), +('G025', '08C121', 'GHM', 7), +('G025', '08C122', 'GHM', 7), +('G025', '08C123', 'GHM', 7), +('G025', '08C124', 'GHM', 7), +('G025', '08C12J', 'GHM', 7), +('G025', '08C12Z', 'GHM', 7), +('G025', '08C19Z', 'GHM', 7), +('G025', '08C341', 'GHM', 7), +('G025', '08C342', 'GHM', 7), +('G025', '08C343', 'GHM', 7), +('G025', '08C344', 'GHM', 7), +('G025', '08C34J', 'GHM', 7), +('G025', '08C381', 'GHM', 7), +('G025', '08C382', 'GHM', 7), +('G025', '08C383', 'GHM', 7), +('G025', '08C384', 'GHM', 7), +('G025', '08C38J', 'GHM', 7), +('G025', '08C401', 'GHM', 7), +('G025', '08C402', 'GHM', 7), +('G025', '08C403', 'GHM', 7), +('G025', '08C404', 'GHM', 7), +('G025', '08C40J', 'GHM', 7), +('G025', '08C451', 'GHM', 7), +('G025', '08C452', 'GHM', 7), +('G025', '08C453', 'GHM', 7), +('G025', '08C454', 'GHM', 7), +('G025', '08C45J', 'GHM', 7), +('G025', '08C581', 'GHM', 7), +('G025', '08C582', 'GHM', 7), +('G025', '08C583', 'GHM', 7), +('G025', '08C584', 'GHM', 7), +('G025', '08C58J', 'GHM', 7), +('G026', '08K02J', 'GHM', 7), +('G026', '08K031', 'GHM', 7), +('G026', '08K032', 'GHM', 7), +('G026', '08K033', 'GHM', 7), +('G026', '08K034', 'GHM', 7), +('G026', '08K041', 'GHM', 7), +('G026', '08K042', 'GHM', 7), +('G026', '08K043', 'GHM', 7), +('G026', '08K044', 'GHM', 7), +('G026', '08K051', 'GHM', 7), +('G026', '08K052', 'GHM', 7), +('G026', '08K053', 'GHM', 7), +('G026', '08K054', 'GHM', 7), +('G026', '08K05J', 'GHM', 7), +('G026', '08K06Z', 'GHM', 7), +('G026', '08M13Z', 'GHM', 7), +('G027', '08C131', 'GHM', 7), +('G027', '08C132', 'GHM', 7), +('G027', '08C133', 'GHM', 7), +('G027', '08C134', 'GHM', 7), +('G027', '08C13J', 'GHM', 7), +('G027', '08C13Z', 'GHM', 7), +('G027', '08C141', 'GHM', 7), +('G027', '08C142', 'GHM', 7), +('G027', '08C143', 'GHM', 7), +('G027', '08C144', 'GHM', 7), +('G027', '08C14J', 'GHM', 7), +('G027', '08C14Z', 'GHM', 7), +('G028', '05C121', 'GHM', 7), +('G028', '05C122', 'GHM', 7), +('G028', '05C123', 'GHM', 7), +('G028', '05C124', 'GHM', 7), +('G028', '05C12V', 'GHM', 7), +('G028', '05C12W', 'GHM', 7), +('G028', '05C131', 'GHM', 7), +('G028', '05C132', 'GHM', 7), +('G028', '05C133', 'GHM', 7), +('G028', '05C134', 'GHM', 7), +('G028', '05C13J', 'GHM', 7), +('G028', '05C13V', 'GHM', 7), +('G028', '05C13W', 'GHM', 7), +('G028', '08C061', 'GHM', 7), +('G028', '08C062', 'GHM', 7), +('G028', '08C063', 'GHM', 7), +('G028', '08C064', 'GHM', 7), +('G028', '08C06Z', 'GHM', 7), +('G029', '01C07Z', 'GHM', 7), +('G029', '01C131', 'GHM', 7), +('G029', '01C132', 'GHM', 7), +('G029', '01C133', 'GHM', 7), +('G029', '01C134', 'GHM', 7), +('G029', '01C13J', 'GHM', 7), +('G029', '01C13Z', 'GHM', 7), +('G029', '01C141', 'GHM', 7), +('G029', '01C142', 'GHM', 7), +('G029', '01C143', 'GHM', 7), +('G029', '01C144', 'GHM', 7), +('G029', '01C14J', 'GHM', 7), +('G029', '01C151', 'GHM', 7), +('G029', '01C152', 'GHM', 7), +('G029', '01C153', 'GHM', 7), +('G029', '01C154', 'GHM', 7), +('G029', '01C15J', 'GHM', 7), +('G029', '08C17Z', 'GHM', 7), +('G029', '08C411', 'GHM', 7), +('G029', '08C412', 'GHM', 7), +('G029', '08C413', 'GHM', 7), +('G029', '08C414', 'GHM', 7), +('G029', '08C41J', 'GHM', 7), +('G029', '08C431', 'GHM', 7), +('G029', '08C432', 'GHM', 7), +('G029', '08C433', 'GHM', 7), +('G029', '08C434', 'GHM', 7), +('G029', '08C43J', 'GHM', 7), +('G029', '08C441', 'GHM', 7), +('G029', '08C442', 'GHM', 7), +('G029', '08C443', 'GHM', 7), +('G029', '08C444', 'GHM', 7), +('G029', '08C44J', 'GHM', 7), +('G029', '08C591', 'GHM', 7), +('G029', '08C592', 'GHM', 7), +('G029', '08C593', 'GHM', 7), +('G029', '08C594', 'GHM', 7), +('G029', '08C59J', 'GHM', 7), +('G029', '08C601', 'GHM', 7), +('G029', '08C602', 'GHM', 7), +('G029', '08C603', 'GHM', 7), +('G029', '08C604', 'GHM', 7), +('G029', '08C60J', 'GHM', 7), +('G029', '21C041', 'GHM', 7), +('G029', '21C042', 'GHM', 7), +('G029', '21C043', 'GHM', 7), +('G029', '21C044', 'GHM', 7), +('G029', '21C04J', 'GHM', 7), +('G029', '21C04Z', 'GHM', 7), +('G030', '08C561', 'GHM', 7), +('G030', '08C562', 'GHM', 7), +('G030', '08C563', 'GHM', 7), +('G030', '08C564', 'GHM', 7), +('G030', '08C611', 'GHM', 7), +('G030', '08C612', 'GHM', 7), +('G030', '08C613', 'GHM', 7), +('G030', '08C614', 'GHM', 7), +('G030', '08C621', 'GHM', 7), +('G030', '08C622', 'GHM', 7), +('G030', '08C623', 'GHM', 7), +('G030', '08C624', 'GHM', 7), +('G030', '08C62J', 'GHM', 7), +('G031', '08C08Z', 'GHM', 7), +('G031', '08C311', 'GHM', 7), +('G031', '08C312', 'GHM', 7), +('G031', '08C313', 'GHM', 7), +('G031', '08C314', 'GHM', 7), +('G031', '08C321', 'GHM', 7), +('G031', '08C322', 'GHM', 7), +('G031', '08C323', 'GHM', 7), +('G031', '08C324', 'GHM', 7), +('G031', '08C32J', 'GHM', 7), +('G031', '08C531', 'GHM', 7), +('G031', '08C532', 'GHM', 7), +('G031', '08C533', 'GHM', 7), +('G031', '08C534', 'GHM', 7), +('G031', '08C541', 'GHM', 7), +('G031', '08C542', 'GHM', 7), +('G031', '08C543', 'GHM', 7), +('G031', '08C544', 'GHM', 7), +('G031', '08C54J', 'GHM', 7), +('G031', '08C571', 'GHM', 7), +('G031', '08C572', 'GHM', 7), +('G031', '08C573', 'GHM', 7), +('G031', '08C574', 'GHM', 7), +('G031', '08C57J', 'GHM', 7), +('G032', '08C331', 'GHM', 7), +('G032', '08C332', 'GHM', 7), +('G032', '08C333', 'GHM', 7), +('G032', '08C334', 'GHM', 7), +('G032', '08C361', 'GHM', 7), +('G032', '08C362', 'GHM', 7), +('G032', '08C363', 'GHM', 7), +('G032', '08C364', 'GHM', 7), +('G032', '08C36J', 'GHM', 7), +('G032', '08C371', 'GHM', 7), +('G032', '08C372', 'GHM', 7), +('G032', '08C373', 'GHM', 7), +('G032', '08C374', 'GHM', 7), +('G032', '08C37J', 'GHM', 7), +('G032', '08C551', 'GHM', 7), +('G032', '08C552', 'GHM', 7), +('G032', '08C553', 'GHM', 7), +('G032', '08C554', 'GHM', 7), +('G033', '08C351', 'GHM', 7), +('G033', '08C352', 'GHM', 7), +('G033', '08C353', 'GHM', 7), +('G033', '08C354', 'GHM', 7), +('G033', '08C35J', 'GHM', 7), +('G033', '08C391', 'GHM', 7), +('G033', '08C392', 'GHM', 7), +('G033', '08C393', 'GHM', 7), +('G033', '08C394', 'GHM', 7), +('G033', '08C39J', 'GHM', 7), +('G034', '08C421', 'GHM', 7), +('G034', '08C422', 'GHM', 7), +('G034', '08C423', 'GHM', 7), +('G034', '08C424', 'GHM', 7), +('G034', '08C42J', 'GHM', 7), +('G034', '08C461', 'GHM', 7), +('G034', '08C462', 'GHM', 7), +('G034', '08C463', 'GHM', 7), +('G034', '08C464', 'GHM', 7), +('G034', '08C46J', 'GHM', 7), +('G035', '08C291', 'GHM', 7), +('G035', '08C292', 'GHM', 7), +('G035', '08C293', 'GHM', 7), +('G035', '08C294', 'GHM', 7), +('G035', '08C29J', 'GHM', 7), +('G035', '08C29Z', 'GHM', 7), +('G036', '08M02Z', 'GHM', 7), +('G036', '08M041', 'GHM', 7), +('G036', '08M042', 'GHM', 7), +('G036', '08M043', 'GHM', 7), +('G036', '08M044', 'GHM', 7), +('G036', '08M04T', 'GHM', 7), +('G036', '08M04V', 'GHM', 7), +('G036', '08M04W', 'GHM', 7), +('G036', '08M051', 'GHM', 7), +('G036', '08M052', 'GHM', 7), +('G036', '08M053', 'GHM', 7), +('G036', '08M054', 'GHM', 7), +('G036', '08M05T', 'GHM', 7), +('G036', '08M05Z', 'GHM', 7), +('G036', '08M061', 'GHM', 7), +('G036', '08M062', 'GHM', 7), +('G036', '08M063', 'GHM', 7), +('G036', '08M064', 'GHM', 7), +('G036', '08M06T', 'GHM', 7), +('G036', '08M06Z', 'GHM', 7), +('G036', '08M071', 'GHM', 7), +('G036', '08M072', 'GHM', 7), +('G036', '08M073', 'GHM', 7), +('G036', '08M074', 'GHM', 7), +('G036', '08M07T', 'GHM', 7), +('G036', '08M07V', 'GHM', 7), +('G036', '08M07W', 'GHM', 7), +('G036', '08M081', 'GHM', 7), +('G036', '08M082', 'GHM', 7), +('G036', '08M083', 'GHM', 7), +('G036', '08M084', 'GHM', 7), +('G036', '08M08T', 'GHM', 7), +('G036', '08M08Z', 'GHM', 7), +('G036', '08M201', 'GHM', 7), +('G036', '08M202', 'GHM', 7), +('G036', '08M203', 'GHM', 7), +('G036', '08M204', 'GHM', 7), +('G036', '08M211', 'GHM', 7), +('G036', '08M212', 'GHM', 7), +('G036', '08M213', 'GHM', 7), +('G036', '08M214', 'GHM', 7), +('G036', '08M221', 'GHM', 7), +('G036', '08M222', 'GHM', 7), +('G036', '08M223', 'GHM', 7), +('G036', '08M224', 'GHM', 7), +('G036', '08M231', 'GHM', 7), +('G036', '08M232', 'GHM', 7), +('G036', '08M233', 'GHM', 7), +('G036', '08M234', 'GHM', 7), +('G036', '08M331', 'GHM', 7), +('G036', '08M332', 'GHM', 7), +('G036', '08M333', 'GHM', 7), +('G036', '08M334', 'GHM', 7), +('G036', '08M33T', 'GHM', 7), +('G036', '08M371', 'GHM', 7), +('G036', '08M372', 'GHM', 7), +('G036', '08M373', 'GHM', 7), +('G036', '08M374', 'GHM', 7), +('G036', '08M37T', 'GHM', 7), +('G036', '21M061', 'GHM', 7), +('G036', '21M062', 'GHM', 7), +('G036', '21M063', 'GHM', 7), +('G036', '21M064', 'GHM', 7), +('G036', '21M06Z', 'GHM', 7), +('G036', '21M071', 'GHM', 7), +('G036', '21M072', 'GHM', 7), +('G036', '21M073', 'GHM', 7), +('G036', '21M074', 'GHM', 7), +('G036', '21M07T', 'GHM', 7), +('G036', '21M07V', 'GHM', 7), +('G036', '21M07W', 'GHM', 7), +('G037', '26C021', 'GHM', 7), +('G037', '26C022', 'GHM', 7), +('G037', '26C023', 'GHM', 7), +('G037', '26C024', 'GHM', 7), +('G037', '26C02Z', 'GHM', 7), +('G038', '08M241', 'GHM', 7), +('G038', '08M242', 'GHM', 7), +('G038', '08M243', 'GHM', 7), +('G038', '08M244', 'GHM', 7), +('G038', '08M24T', 'GHM', 7), +('G038', '08M251', 'GHM', 7), +('G038', '08M252', 'GHM', 7), +('G038', '08M253', 'GHM', 7), +('G038', '08M254', 'GHM', 7), +('G038', '08M25T', 'GHM', 7), +('G039', '08M091', 'GHM', 7), +('G039', '08M092', 'GHM', 7), +('G039', '08M093', 'GHM', 7), +('G039', '08M094', 'GHM', 7), +('G039', '08M09T', 'GHM', 7), +('G039', '08M09Z', 'GHM', 7), +('G039', '08M101', 'GHM', 7), +('G039', '08M102', 'GHM', 7), +('G039', '08M103', 'GHM', 7), +('G039', '08M104', 'GHM', 7), +('G039', '08M10T', 'GHM', 7), +('G039', '08M10V', 'GHM', 7), +('G039', '08M10W', 'GHM', 7), +('G039', '08M271', 'GHM', 7), +('G039', '08M272', 'GHM', 7), +('G039', '08M273', 'GHM', 7), +('G039', '08M274', 'GHM', 7), +('G039', '08M27T', 'GHM', 7), +('G039', '08M281', 'GHM', 7), +('G039', '08M282', 'GHM', 7), +('G039', '08M283', 'GHM', 7), +('G039', '08M284', 'GHM', 7), +('G039', '08M28T', 'GHM', 7), +('G039', '08M291', 'GHM', 7), +('G039', '08M292', 'GHM', 7), +('G039', '08M293', 'GHM', 7), +('G039', '08M294', 'GHM', 7), +('G039', '08M29T', 'GHM', 7), +('G039', '08M301', 'GHM', 7), +('G039', '08M302', 'GHM', 7), +('G039', '08M303', 'GHM', 7), +('G039', '08M304', 'GHM', 7), +('G039', '08M30T', 'GHM', 7), +('G039', '08M321', 'GHM', 7), +('G039', '08M322', 'GHM', 7), +('G039', '08M323', 'GHM', 7), +('G039', '08M324', 'GHM', 7), +('G039', '08M32T', 'GHM', 7), +('G039', '08M341', 'GHM', 7), +('G039', '08M342', 'GHM', 7), +('G039', '08M343', 'GHM', 7), +('G039', '08M344', 'GHM', 7), +('G039', '08M34T', 'GHM', 7), +('G039', '08M36T', 'GHM', 7), +('G039', '08M36Z', 'GHM', 7), +('G040', '08M141', 'GHM', 7), +('G040', '08M142', 'GHM', 7), +('G040', '08M143', 'GHM', 7), +('G040', '08M144', 'GHM', 7), +('G040', '08M14T', 'GHM', 7), +('G040', '08M14V', 'GHM', 7), +('G040', '08M14W', 'GHM', 7), +('G040', '08M151', 'GHM', 7), +('G040', '08M152', 'GHM', 7), +('G040', '08M153', 'GHM', 7), +('G040', '08M154', 'GHM', 7), +('G040', '08M15T', 'GHM', 7), +('G040', '08M15V', 'GHM', 7), +('G040', '08M15W', 'GHM', 7), +('G040', '08M181', 'GHM', 7), +('G040', '08M182', 'GHM', 7), +('G040', '08M183', 'GHM', 7), +('G040', '08M184', 'GHM', 7), +('G040', '08M18T', 'GHM', 7), +('G040', '08M18Z', 'GHM', 7), +('G040', '08M191', 'GHM', 7), +('G040', '08M192', 'GHM', 7), +('G040', '08M193', 'GHM', 7), +('G040', '08M194', 'GHM', 7), +('G040', '08M19T', 'GHM', 7), +('G040', '08M19V', 'GHM', 7), +('G040', '08M19W', 'GHM', 7), +('G041', '01C051', 'GHM', 7), +('G041', '01C052', 'GHM', 7), +('G041', '01C053', 'GHM', 7), +('G041', '01C054', 'GHM', 7), +('G041', '01C05V', 'GHM', 7), +('G041', '01C05W', 'GHM', 7), +('G041', '08C26Z', 'GHM', 7), +('G041', '08C271', 'GHM', 7), +('G041', '08C272', 'GHM', 7), +('G041', '08C273', 'GHM', 7), +('G041', '08C274', 'GHM', 7), +('G041', '08C27V', 'GHM', 7), +('G041', '08C27W', 'GHM', 7), +('G041', '08C511', 'GHM', 7), +('G041', '08C512', 'GHM', 7), +('G041', '08C513', 'GHM', 7), +('G041', '08C514', 'GHM', 7), +('G041', '08C521', 'GHM', 7), +('G041', '08C522', 'GHM', 7), +('G041', '08C523', 'GHM', 7), +('G041', '08C524', 'GHM', 7), +('G042', '08M35Z', 'GHM', 7), +('G043', '01C031', 'GHM', 7), +('G043', '01C032', 'GHM', 7), +('G043', '01C033', 'GHM', 7), +('G043', '01C034', 'GHM', 7), +('G043', '01C03V', 'GHM', 7), +('G043', '01C03W', 'GHM', 7), +('G044', '01C02Z', 'GHM', 7), +('G044', '01C041', 'GHM', 7), +('G044', '01C042', 'GHM', 7), +('G044', '01C043', 'GHM', 7), +('G044', '01C044', 'GHM', 7), +('G044', '01C04V', 'GHM', 7), +('G044', '01C04W', 'GHM', 7), +('G044', '01C111', 'GHM', 7), +('G044', '01C112', 'GHM', 7), +('G044', '01C113', 'GHM', 7), +('G044', '01C114', 'GHM', 7), +('G044', '01C11Z', 'GHM', 7), +('G044', '01C121', 'GHM', 7), +('G044', '01C122', 'GHM', 7), +('G044', '01C123', 'GHM', 7), +('G044', '01C124', 'GHM', 7), +('G044', '01C12Z', 'GHM', 7), +('G044', '10C021', 'GHM', 7), +('G044', '10C022', 'GHM', 7), +('G044', '10C023', 'GHM', 7), +('G044', '10C024', 'GHM', 7), +('G044', '10C02Z', 'GHM', 7), +('G045', '01C091', 'GHM', 7), +('G045', '01C092', 'GHM', 7), +('G045', '01C093', 'GHM', 7), +('G045', '01C094', 'GHM', 7), +('G045', '01C09Z', 'GHM', 7), +('G045', '01C101', 'GHM', 7), +('G045', '01C102', 'GHM', 7), +('G045', '01C103', 'GHM', 7), +('G045', '01C104', 'GHM', 7), +('G045', '01C10J', 'GHM', 7), +('G045', '01C10Z', 'GHM', 7), +('G046', '01M181', 'GHM', 7), +('G046', '01M182', 'GHM', 7), +('G046', '01M183', 'GHM', 7), +('G046', '01M184', 'GHM', 7), +('G046', '01M18T', 'GHM', 7), +('G046', '01M18V', 'GHM', 7), +('G046', '01M18W', 'GHM', 7), +('G046', '01M191', 'GHM', 7), +('G046', '01M192', 'GHM', 7), +('G046', '01M193', 'GHM', 7), +('G046', '01M194', 'GHM', 7), +('G046', '01M19V', 'GHM', 7), +('G046', '01M19W', 'GHM', 7), +('G046', '01M201', 'GHM', 7), +('G046', '01M202', 'GHM', 7), +('G046', '01M203', 'GHM', 7), +('G046', '01M204', 'GHM', 7), +('G046', '01M20V', 'GHM', 7), +('G046', '01M20W', 'GHM', 7), +('G047', '01M071', 'GHM', 7), +('G047', '01M072', 'GHM', 7), +('G047', '01M073', 'GHM', 7), +('G047', '01M074', 'GHM', 7), +('G047', '01M07T', 'GHM', 7), +('G047', '01M07Z', 'GHM', 7), +('G047', '01M081', 'GHM', 7), +('G047', '01M082', 'GHM', 7), +('G047', '01M083', 'GHM', 7), +('G047', '01M084', 'GHM', 7), +('G047', '01M08T', 'GHM', 7), +('G047', '01M08V', 'GHM', 7), +('G047', '01M08W', 'GHM', 7), +('G047', '01M171', 'GHM', 7), +('G047', '01M172', 'GHM', 7), +('G047', '01M173', 'GHM', 7), +('G047', '01M174', 'GHM', 7), +('G047', '01M17T', 'GHM', 7), +('G047', '01M17V', 'GHM', 7), +('G047', '01M17W', 'GHM', 7), +('G048', '01M091', 'GHM', 7), +('G048', '01M092', 'GHM', 7), +('G048', '01M093', 'GHM', 7), +('G048', '01M094', 'GHM', 7), +('G048', '01M09T', 'GHM', 7), +('G048', '01M09Z', 'GHM', 7), +('G048', '01M111', 'GHM', 7), +('G048', '01M112', 'GHM', 7), +('G048', '01M113', 'GHM', 7), +('G048', '01M114', 'GHM', 7), +('G048', '01M11T', 'GHM', 7), +('G048', '01M11V', 'GHM', 7), +('G048', '01M11W', 'GHM', 7), +('G049', '01M101', 'GHM', 7), +('G049', '01M102', 'GHM', 7), +('G049', '01M103', 'GHM', 7), +('G049', '01M104', 'GHM', 7), +('G049', '01M10T', 'GHM', 7), +('G049', '01M10V', 'GHM', 7), +('G049', '01M10W', 'GHM', 7), +('G049', '01M151', 'GHM', 7), +('G049', '01M152', 'GHM', 7), +('G049', '01M153', 'GHM', 7), +('G049', '01M154', 'GHM', 7), +('G049', '01M15T', 'GHM', 7), +('G049', '01M15Z', 'GHM', 7), +('G049', '01M161', 'GHM', 7), +('G049', '01M162', 'GHM', 7), +('G049', '01M163', 'GHM', 7), +('G049', '01M164', 'GHM', 7), +('G049', '01M16T', 'GHM', 7), +('G049', '01M16Z', 'GHM', 7), +('G049', '01M301', 'GHM', 7), +('G049', '01M302', 'GHM', 7), +('G049', '01M303', 'GHM', 7), +('G049', '01M304', 'GHM', 7), +('G049', '01M30T', 'GHM', 7), +('G049', '01M311', 'GHM', 7), +('G049', '01M312', 'GHM', 7), +('G049', '01M313', 'GHM', 7), +('G049', '01M314', 'GHM', 7), +('G049', '01M31T', 'GHM', 7), +('G049', '01M36E', 'GHM', 7), +('G050', '01M131', 'GHM', 7), +('G050', '01M132', 'GHM', 7), +('G050', '01M133', 'GHM', 7), +('G050', '01M134', 'GHM', 7), +('G050', '01M13Z', 'GHM', 7), +('G051', '01M221', 'GHM', 7), +('G051', '01M222', 'GHM', 7), +('G051', '01M223', 'GHM', 7), +('G051', '01M224', 'GHM', 7), +('G051', '01M22T', 'GHM', 7), +('G051', '01M22Z', 'GHM', 7), +('G052', '01M02Z', 'GHM', 7), +('G052', '01M231', 'GHM', 7), +('G052', '01M232', 'GHM', 7), +('G052', '01M233', 'GHM', 7), +('G052', '01M234', 'GHM', 7), +('G052', '01M23Z', 'GHM', 7), +('G052', '01M241', 'GHM', 7), +('G052', '01M242', 'GHM', 7), +('G052', '01M243', 'GHM', 7), +('G052', '01M244', 'GHM', 7), +('G052', '01M24T', 'GHM', 7), +('G052', '01M24V', 'GHM', 7), +('G052', '01M24W', 'GHM', 7), +('G052', '01M251', 'GHM', 7), +('G052', '01M252', 'GHM', 7), +('G052', '01M253', 'GHM', 7), +('G052', '01M254', 'GHM', 7), +('G052', '01M25T', 'GHM', 7), +('G052', '01M25V', 'GHM', 7), +('G052', '01M25W', 'GHM', 7), +('G053', '01M041', 'GHM', 7), +('G053', '01M042', 'GHM', 7), +('G053', '01M043', 'GHM', 7), +('G053', '01M044', 'GHM', 7), +('G053', '01M04T', 'GHM', 7), +('G053', '01M04Z', 'GHM', 7), +('G053', '01M051', 'GHM', 7), +('G053', '01M052', 'GHM', 7), +('G053', '01M053', 'GHM', 7), +('G053', '01M054', 'GHM', 7), +('G053', '01M05T', 'GHM', 7), +('G053', '01M05V', 'GHM', 7), +('G053', '01M05W', 'GHM', 7), +('G054', '01M261', 'GHM', 7), +('G054', '01M262', 'GHM', 7), +('G054', '01M263', 'GHM', 7), +('G054', '01M264', 'GHM', 7), +('G054', '01M26T', 'GHM', 7), +('G054', '01M271', 'GHM', 7), +('G054', '01M272', 'GHM', 7), +('G054', '01M273', 'GHM', 7), +('G054', '01M274', 'GHM', 7), +('G054', '01M27T', 'GHM', 7), +('G055', '01M121', 'GHM', 7), +('G055', '01M122', 'GHM', 7), +('G055', '01M123', 'GHM', 7), +('G055', '01M124', 'GHM', 7), +('G055', '01M12T', 'GHM', 7), +('G055', '01M12V', 'GHM', 7), +('G055', '01M12W', 'GHM', 7), +('G055', '01M281', 'GHM', 7), +('G055', '01M282', 'GHM', 7), +('G055', '01M283', 'GHM', 7), +('G055', '01M284', 'GHM', 7), +('G055', '01M28T', 'GHM', 7), +('G055', '01M291', 'GHM', 7), +('G055', '01M292', 'GHM', 7), +('G055', '01M293', 'GHM', 7), +('G055', '01M294', 'GHM', 7), +('G055', '01M331', 'GHM', 7), +('G055', '01M332', 'GHM', 7), +('G055', '01M333', 'GHM', 7), +('G055', '01M334', 'GHM', 7), +('G055', '01M34T', 'GHM', 7), +('G055', '01M34Z', 'GHM', 7), +('G055', '01M35T', 'GHM', 7), +('G055', '01M35Z', 'GHM', 7), +('G055', '01M381', 'GHM', 7), +('G055', '01M382', 'GHM', 7), +('G055', '01M383', 'GHM', 7), +('G055', '01M384', 'GHM', 7), +('G055', '01M391', 'GHM', 7), +('G055', '01M392', 'GHM', 7), +('G055', '01M393', 'GHM', 7), +('G055', '01M394', 'GHM', 7), +('G056', '01M32Z', 'GHM', 7), +('G057', '05K03Z', 'GHM', 7), +('G057', '05K04Z', 'GHM', 7), +('G057', '05K051', 'GHM', 7), +('G057', '05K052', 'GHM', 7), +('G057', '05K053', 'GHM', 7), +('G057', '05K054', 'GHM', 7), +('G057', '05K05V', 'GHM', 7), +('G057', '05K05W', 'GHM', 7), +('G057', '05K061', 'GHM', 7), +('G057', '05K062', 'GHM', 7), +('G057', '05K063', 'GHM', 7), +('G057', '05K064', 'GHM', 7), +('G057', '05K06T', 'GHM', 7), +('G057', '05K06V', 'GHM', 7), +('G057', '05K06W', 'GHM', 7), +('G057', '05K211', 'GHM', 7), +('G057', '05K212', 'GHM', 7), +('G057', '05K213', 'GHM', 7), +('G057', '05K214', 'GHM', 7), +('G058', '05K07Z', 'GHM', 7), +('G058', '05K08Z', 'GHM', 7), +('G058', '05K111', 'GHM', 7), +('G058', '05K112', 'GHM', 7), +('G058', '05K113', 'GHM', 7), +('G058', '05K114', 'GHM', 7), +('G058', '05K11T', 'GHM', 7), +('G058', '05K11Z', 'GHM', 7), +('G058', '05K121', 'GHM', 7), +('G058', '05K122', 'GHM', 7), +('G058', '05K123', 'GHM', 7), +('G058', '05K124', 'GHM', 7), +('G058', '05K12Z', 'GHM', 7), +('G058', '05K131', 'GHM', 7), +('G058', '05K132', 'GHM', 7), +('G058', '05K133', 'GHM', 7), +('G058', '05K134', 'GHM', 7), +('G058', '05K13J', 'GHM', 7), +('G058', '05K13Z', 'GHM', 7), +('G058', '05K191', 'GHM', 7), +('G058', '05K192', 'GHM', 7), +('G058', '05K193', 'GHM', 7), +('G058', '05K194', 'GHM', 7), +('G058', '05K201', 'GHM', 7), +('G058', '05K202', 'GHM', 7), +('G058', '05K203', 'GHM', 7), +('G058', '05K204', 'GHM', 7), +('G058', '05K20T', 'GHM', 7), +('G058', '05K221', 'GHM', 7), +('G058', '05K222', 'GHM', 7), +('G058', '05K223', 'GHM', 7), +('G058', '05K224', 'GHM', 7), +('G058', '05K231', 'GHM', 7), +('G058', '05K232', 'GHM', 7), +('G058', '05K233', 'GHM', 7), +('G058', '05K234', 'GHM', 7), +('G058', '05K23J', 'GHM', 7), +('G058', '05K241', 'GHM', 7), +('G058', '05K242', 'GHM', 7), +('G058', '05K243', 'GHM', 7), +('G058', '05K244', 'GHM', 7), +('G058', '05K24J', 'GHM', 7), +('G058', '05K251', 'GHM', 7), +('G058', '05K252', 'GHM', 7), +('G058', '05K253', 'GHM', 7), +('G058', '05K254', 'GHM', 7), +('G058', '05K25J', 'GHM', 7), +('G058', '05K261', 'GHM', 7), +('G058', '05K262', 'GHM', 7), +('G058', '05K263', 'GHM', 7), +('G058', '05K264', 'GHM', 7), +('G058', '05K26J', 'GHM', 7), +('G059', '05K09Z', 'GHM', 7), +('G059', '05K101', 'GHM', 7), +('G059', '05K102', 'GHM', 7), +('G059', '05K103', 'GHM', 7), +('G059', '05K104', 'GHM', 7), +('G059', '05K10J', 'GHM', 7), +('G059', '05K10Z', 'GHM', 7), +('G059', '05K151', 'GHM', 7), +('G059', '05K152', 'GHM', 7), +('G059', '05K153', 'GHM', 7), +('G059', '05K154', 'GHM', 7), +('G059', '05K15J', 'GHM', 7), +('G060', '01K021', 'GHM', 7), +('G060', '01K022', 'GHM', 7), +('G060', '01K023', 'GHM', 7), +('G060', '01K024', 'GHM', 7), +('G060', '01K02Z', 'GHM', 7), +('G060', '01K031', 'GHM', 7), +('G060', '01K032', 'GHM', 7), +('G060', '01K033', 'GHM', 7), +('G060', '01K034', 'GHM', 7), +('G060', '01K03Z', 'GHM', 7), +('G060', '01K071', 'GHM', 7), +('G060', '01K072', 'GHM', 7), +('G060', '01K073', 'GHM', 7), +('G060', '01K074', 'GHM', 7), +('G061', '05C021', 'GHM', 7), +('G061', '05C022', 'GHM', 7), +('G061', '05C023', 'GHM', 7), +('G061', '05C024', 'GHM', 7), +('G061', '05C02Z', 'GHM', 7), +('G061', '05C031', 'GHM', 7), +('G061', '05C032', 'GHM', 7), +('G061', '05C033', 'GHM', 7), +('G061', '05C034', 'GHM', 7), +('G061', '05C03V', 'GHM', 7), +('G061', '05C03W', 'GHM', 7), +('G062', '05C041', 'GHM', 7), +('G062', '05C042', 'GHM', 7), +('G062', '05C043', 'GHM', 7), +('G062', '05C044', 'GHM', 7), +('G062', '05C04V', 'GHM', 7), +('G062', '05C04W', 'GHM', 7), +('G062', '05C051', 'GHM', 7), +('G062', '05C052', 'GHM', 7), +('G062', '05C053', 'GHM', 7), +('G062', '05C054', 'GHM', 7), +('G062', '05C05V', 'GHM', 7), +('G062', '05C05W', 'GHM', 7), +('G063', '05C061', 'GHM', 7), +('G063', '05C062', 'GHM', 7), +('G063', '05C063', 'GHM', 7), +('G063', '05C064', 'GHM', 7), +('G063', '05C06V', 'GHM', 7), +('G063', '05C06W', 'GHM', 7), +('G063', '05C071', 'GHM', 7), +('G063', '05C072', 'GHM', 7), +('G063', '05C073', 'GHM', 7), +('G063', '05C074', 'GHM', 7), +('G063', '05C07Z', 'GHM', 7), +('G063', '05C081', 'GHM', 7), +('G063', '05C082', 'GHM', 7), +('G063', '05C083', 'GHM', 7), +('G063', '05C084', 'GHM', 7), +('G063', '05C08T', 'GHM', 7), +('G063', '05C08V', 'GHM', 7), +('G063', '05C08W', 'GHM', 7), +('G063', '05C091', 'GHM', 7), +('G063', '05C092', 'GHM', 7), +('G063', '05C093', 'GHM', 7), +('G063', '05C094', 'GHM', 7), +('G063', '05C09Z', 'GHM', 7), +('G064', '05C141', 'GHM', 7), +('G064', '05C142', 'GHM', 7), +('G064', '05C143', 'GHM', 7), +('G064', '05C144', 'GHM', 7), +('G064', '05C14J', 'GHM', 7), +('G064', '05C14Z', 'GHM', 7), +('G064', '05C151', 'GHM', 7), +('G064', '05C152', 'GHM', 7), +('G064', '05C153', 'GHM', 7), +('G064', '05C154', 'GHM', 7), +('G064', '05C15T', 'GHM', 7), +('G064', '05C15Z', 'GHM', 7), +('G064', '05C16Z', 'GHM', 7), +('G064', '05C191', 'GHM', 7), +('G064', '05C192', 'GHM', 7), +('G064', '05C193', 'GHM', 7), +('G064', '05C194', 'GHM', 7), +('G064', '05C19T', 'GHM', 7), +('G064', '05C19Z', 'GHM', 7), +('G064', '05C201', 'GHM', 7), +('G064', '05C202', 'GHM', 7), +('G064', '05C203', 'GHM', 7), +('G064', '05C204', 'GHM', 7), +('G064', '05C20Z', 'GHM', 7), +('G064', '05C221', 'GHM', 7), +('G064', '05C222', 'GHM', 7), +('G064', '05C223', 'GHM', 7), +('G064', '05C224', 'GHM', 7), +('G064', '05C22T', 'GHM', 7), +('G065', '05M091', 'GHM', 7), +('G065', '05M092', 'GHM', 7), +('G065', '05M093', 'GHM', 7), +('G065', '05M094', 'GHM', 7), +('G065', '05M09T', 'GHM', 7), +('G065', '05M09V', 'GHM', 7), +('G065', '05M09W', 'GHM', 7), +('G065', '05M101', 'GHM', 7), +('G065', '05M102', 'GHM', 7), +('G065', '05M103', 'GHM', 7), +('G065', '05M104', 'GHM', 7), +('G065', '05M10T', 'GHM', 7), +('G065', '05M10Z', 'GHM', 7), +('G065', '05M111', 'GHM', 7), +('G065', '05M112', 'GHM', 7), +('G065', '05M113', 'GHM', 7), +('G065', '05M114', 'GHM', 7), +('G065', '05M11T', 'GHM', 7), +('G065', '05M11V', 'GHM', 7), +('G065', '05M11W', 'GHM', 7), +('G065', '05M141', 'GHM', 7), +('G065', '05M142', 'GHM', 7), +('G065', '05M143', 'GHM', 7), +('G065', '05M144', 'GHM', 7), +('G065', '05M14Z', 'GHM', 7), +('G066', '05M02E', 'GHM', 7), +('G066', '05M03Z', 'GHM', 7), +('G066', '05M041', 'GHM', 7), +('G066', '05M042', 'GHM', 7), +('G066', '05M043', 'GHM', 7), +('G066', '05M044', 'GHM', 7), +('G066', '05M04T', 'GHM', 7), +('G066', '05M04V', 'GHM', 7), +('G066', '05M04W', 'GHM', 7), +('G066', '05M061', 'GHM', 7), +('G066', '05M062', 'GHM', 7), +('G066', '05M063', 'GHM', 7), +('G066', '05M064', 'GHM', 7), +('G066', '05M06T', 'GHM', 7), +('G066', '05M06V', 'GHM', 7), +('G066', '05M06W', 'GHM', 7), +('G066', '05M161', 'GHM', 7), +('G066', '05M162', 'GHM', 7), +('G066', '05M163', 'GHM', 7), +('G066', '05M164', 'GHM', 7), +('G066', '05M16T', 'GHM', 7), +('G066', '05M16V', 'GHM', 7), +('G066', '05M16W', 'GHM', 7), +('G066', '05M21E', 'GHM', 7), +('G067', '05M181', 'GHM', 7), +('G067', '05M182', 'GHM', 7), +('G067', '05M183', 'GHM', 7), +('G067', '05M184', 'GHM', 7), +('G067', '05M18T', 'GHM', 7), +('G067', '05M18Z', 'GHM', 7), +('G068', '05M151', 'GHM', 7), +('G068', '05M152', 'GHM', 7), +('G068', '05M153', 'GHM', 7), +('G068', '05M154', 'GHM', 7), +('G068', '05M15T', 'GHM', 7), +('G068', '05M15Z', 'GHM', 7), +('G069', '05M081', 'GHM', 7), +('G069', '05M082', 'GHM', 7), +('G069', '05M083', 'GHM', 7), +('G069', '05M084', 'GHM', 7), +('G069', '05M08T', 'GHM', 7), +('G069', '05M08V', 'GHM', 7), +('G069', '05M08W', 'GHM', 7), +('G070', '05M051', 'GHM', 7), +('G070', '05M052', 'GHM', 7), +('G070', '05M053', 'GHM', 7), +('G070', '05M054', 'GHM', 7), +('G070', '05M05T', 'GHM', 7), +('G070', '05M05V', 'GHM', 7), +('G070', '05M05W', 'GHM', 7), +('G070', '05M131', 'GHM', 7), +('G070', '05M132', 'GHM', 7), +('G070', '05M133', 'GHM', 7), +('G070', '05M134', 'GHM', 7), +('G070', '05M13T', 'GHM', 7), +('G070', '05M13Z', 'GHM', 7), +('G070', '05M171', 'GHM', 7), +('G070', '05M172', 'GHM', 7), +('G070', '05M173', 'GHM', 7), +('G070', '05M174', 'GHM', 7), +('G070', '05M17T', 'GHM', 7), +('G070', '05M17V', 'GHM', 7), +('G070', '05M17W', 'GHM', 7), +('G070', '05M191', 'GHM', 7), +('G070', '05M192', 'GHM', 7), +('G070', '05M193', 'GHM', 7), +('G070', '05M194', 'GHM', 7), +('G070', '05M23T', 'GHM', 7), +('G070', '05M23Z', 'GHM', 7), +('G071', '05M20Z', 'GHM', 7), +('G072', '05C101', 'GHM', 7), +('G072', '05C102', 'GHM', 7), +('G072', '05C103', 'GHM', 7), +('G072', '05C104', 'GHM', 7), +('G072', '05C10V', 'GHM', 7), +('G072', '05C10W', 'GHM', 7), +('G073', '05C171', 'GHM', 7), +('G073', '05C172', 'GHM', 7), +('G073', '05C173', 'GHM', 7), +('G073', '05C174', 'GHM', 7), +('G073', '05C17J', 'GHM', 7), +('G073', '05C17V', 'GHM', 7), +('G073', '05C17W', 'GHM', 7), +('G074', '01C061', 'GHM', 7), +('G074', '01C062', 'GHM', 7), +('G074', '01C063', 'GHM', 7), +('G074', '01C064', 'GHM', 7), +('G074', '01C06V', 'GHM', 7), +('G074', '01C06W', 'GHM', 7), +('G074', '05C111', 'GHM', 7), +('G074', '05C112', 'GHM', 7), +('G074', '05C113', 'GHM', 7), +('G074', '05C114', 'GHM', 7), +('G074', '05C11J', 'GHM', 7), +('G074', '05C11V', 'GHM', 7), +('G074', '05C11W', 'GHM', 7), +('G074', '05C211', 'GHM', 7), +('G074', '05C212', 'GHM', 7), +('G074', '05C213', 'GHM', 7), +('G074', '05C214', 'GHM', 7), +('G074', '05C21J', 'GHM', 7), +('G074', '11C091', 'GHM', 7), +('G074', '11C092', 'GHM', 7), +('G074', '11C093', 'GHM', 7), +('G074', '11C094', 'GHM', 7), +('G074', '11C09J', 'GHM', 7), +('G075', '05M071', 'GHM', 7), +('G075', '05M072', 'GHM', 7), +('G075', '05M073', 'GHM', 7), +('G075', '05M074', 'GHM', 7), +('G075', '05M07T', 'GHM', 7), +('G075', '05M07V', 'GHM', 7), +('G075', '05M07W', 'GHM', 7), +('G075', '05M121', 'GHM', 7), +('G075', '05M122', 'GHM', 7), +('G075', '05M123', 'GHM', 7), +('G075', '05M124', 'GHM', 7), +('G075', '05M12T', 'GHM', 7), +('G075', '05M12V', 'GHM', 7), +('G075', '05M12W', 'GHM', 7), +('G076', '04C021', 'GHM', 7), +('G076', '04C022', 'GHM', 7), +('G076', '04C023', 'GHM', 7), +('G076', '04C024', 'GHM', 7), +('G076', '04C02V', 'GHM', 7), +('G076', '04C02W', 'GHM', 7), +('G076', '04C041', 'GHM', 7), +('G076', '04C042', 'GHM', 7), +('G076', '04C043', 'GHM', 7), +('G076', '04C044', 'GHM', 7), +('G077', '04C031', 'GHM', 7), +('G077', '04C032', 'GHM', 7), +('G077', '04C033', 'GHM', 7), +('G077', '04C034', 'GHM', 7), +('G077', '04C03V', 'GHM', 7), +('G077', '04C03W', 'GHM', 7), +('G078', '04M021', 'GHM', 7), +('G078', '04M022', 'GHM', 7), +('G078', '04M023', 'GHM', 7), +('G078', '04M024', 'GHM', 7), +('G078', '04M02T', 'GHM', 7), +('G078', '04M02V', 'GHM', 7), +('G078', '04M02W', 'GHM', 7), +('G078', '04M031', 'GHM', 7), +('G078', '04M032', 'GHM', 7), +('G078', '04M033', 'GHM', 7), +('G078', '04M034', 'GHM', 7), +('G078', '04M03T', 'GHM', 7), +('G078', '04M03V', 'GHM', 7), +('G078', '04M03W', 'GHM', 7), +('G078', '04M081', 'GHM', 7), +('G078', '04M082', 'GHM', 7), +('G078', '04M083', 'GHM', 7), +('G078', '04M084', 'GHM', 7), +('G078', '04M08T', 'GHM', 7), +('G078', '04M08V', 'GHM', 7), +('G078', '04M08W', 'GHM', 7), +('G078', '04M161', 'GHM', 7), +('G078', '04M162', 'GHM', 7), +('G078', '04M163', 'GHM', 7), +('G078', '04M164', 'GHM', 7), +('G078', '04M16T', 'GHM', 7), +('G078', '04M16V', 'GHM', 7), +('G078', '04M16W', 'GHM', 7), +('G078', '04M181', 'GHM', 7), +('G078', '04M182', 'GHM', 7), +('G078', '04M183', 'GHM', 7), +('G078', '04M184', 'GHM', 7), +('G078', '04M18T', 'GHM', 7), +('G079', '04M101', 'GHM', 7), +('G079', '04M102', 'GHM', 7), +('G079', '04M103', 'GHM', 7), +('G079', '04M104', 'GHM', 7), +('G079', '04M10T', 'GHM', 7), +('G079', '04M10V', 'GHM', 7), +('G079', '04M10W', 'GHM', 7), +('G079', '04M131', 'GHM', 7), +('G079', '04M132', 'GHM', 7), +('G079', '04M133', 'GHM', 7), +('G079', '04M134', 'GHM', 7), +('G079', '04M13T', 'GHM', 7), +('G079', '04M13Z', 'GHM', 7), +('G080', '04M041', 'GHM', 7), +('G080', '04M042', 'GHM', 7), +('G080', '04M043', 'GHM', 7), +('G080', '04M044', 'GHM', 7), +('G080', '04M04Z', 'GHM', 7), +('G080', '04M051', 'GHM', 7), +('G080', '04M052', 'GHM', 7), +('G080', '04M053', 'GHM', 7), +('G080', '04M054', 'GHM', 7), +('G080', '04M05T', 'GHM', 7), +('G080', '04M05V', 'GHM', 7), +('G080', '04M05W', 'GHM', 7), +('G080', '04M061', 'GHM', 7), +('G080', '04M062', 'GHM', 7), +('G080', '04M063', 'GHM', 7), +('G080', '04M064', 'GHM', 7), +('G080', '04M06T', 'GHM', 7), +('G080', '04M06Z', 'GHM', 7), +('G080', '04M071', 'GHM', 7), +('G080', '04M072', 'GHM', 7), +('G080', '04M073', 'GHM', 7), +('G080', '04M074', 'GHM', 7), +('G080', '04M07T', 'GHM', 7), +('G080', '04M07V', 'GHM', 7), +('G080', '04M07W', 'GHM', 7), +('G080', '04M191', 'GHM', 7), +('G080', '04M192', 'GHM', 7), +('G080', '04M193', 'GHM', 7), +('G080', '04M194', 'GHM', 7), +('G080', '04M19T', 'GHM', 7), +('G080', '04M201', 'GHM', 7), +('G080', '04M202', 'GHM', 7), +('G080', '04M203', 'GHM', 7), +('G080', '04M204', 'GHM', 7), +('G080', '04M20T', 'GHM', 7), +('G080', '04M251', 'GHM', 7), +('G080', '04M252', 'GHM', 7), +('G080', '04M253', 'GHM', 7), +('G080', '04M254', 'GHM', 7), +('G080', '04M25T', 'GHM', 7), +('G081', '04M091', 'GHM', 7), +('G081', '04M092', 'GHM', 7), +('G081', '04M093', 'GHM', 7), +('G081', '04M094', 'GHM', 7), +('G081', '04M09T', 'GHM', 7), +('G081', '04M09V', 'GHM', 7), +('G081', '04M09W', 'GHM', 7), +('G082', '04M111', 'GHM', 7), +('G082', '04M112', 'GHM', 7), +('G082', '04M113', 'GHM', 7), +('G082', '04M114', 'GHM', 7), +('G082', '04M11V', 'GHM', 7), +('G082', '04M11W', 'GHM', 7), +('G082', '04M121', 'GHM', 7), +('G082', '04M122', 'GHM', 7), +('G082', '04M123', 'GHM', 7), +('G082', '04M124', 'GHM', 7), +('G082', '04M12T', 'GHM', 7), +('G082', '04M12V', 'GHM', 7), +('G082', '04M12W', 'GHM', 7), +('G082', '04M141', 'GHM', 7), +('G082', '04M142', 'GHM', 7), +('G082', '04M143', 'GHM', 7), +('G082', '04M144', 'GHM', 7), +('G082', '04M14T', 'GHM', 7), +('G082', '04M14V', 'GHM', 7), +('G082', '04M14W', 'GHM', 7), +('G082', '04M151', 'GHM', 7), +('G082', '04M152', 'GHM', 7), +('G082', '04M153', 'GHM', 7), +('G082', '04M154', 'GHM', 7), +('G082', '04M15T', 'GHM', 7), +('G082', '04M15V', 'GHM', 7), +('G082', '04M15W', 'GHM', 7), +('G082', '04M171', 'GHM', 7), +('G082', '04M172', 'GHM', 7), +('G082', '04M173', 'GHM', 7), +('G082', '04M174', 'GHM', 7), +('G082', '04M17T', 'GHM', 7), +('G082', '04M17V', 'GHM', 7), +('G082', '04M17W', 'GHM', 7), +('G082', '04M211', 'GHM', 7), +('G082', '04M212', 'GHM', 7), +('G082', '04M213', 'GHM', 7), +('G082', '04M214', 'GHM', 7), +('G082', '04M23T', 'GHM', 7), +('G082', '04M23Z', 'GHM', 7), +('G082', '04M24E', 'GHM', 7), +('G082', '04M261', 'GHM', 7), +('G082', '04M262', 'GHM', 7), +('G082', '04M263', 'GHM', 7), +('G082', '04M264', 'GHM', 7), +('G082', '04M26T', 'GHM', 7), +('G082', '04M271', 'GHM', 7), +('G082', '04M272', 'GHM', 7), +('G082', '04M273', 'GHM', 7), +('G082', '04M274', 'GHM', 7), +('G083', '04M22Z', 'GHM', 7), +('G084', '04K02J', 'GHM', 7), +('G085', '03C191', 'GHM', 7), +('G085', '03C192', 'GHM', 7), +('G085', '03C193', 'GHM', 7), +('G085', '03C194', 'GHM', 7), +('G085', '03C19J', 'GHM', 7), +('G085', '03C19Z', 'GHM', 7), +('G085', '03C251', 'GHM', 7), +('G085', '03C252', 'GHM', 7), +('G085', '03C253', 'GHM', 7), +('G085', '03C254', 'GHM', 7), +('G085', '03C261', 'GHM', 7), +('G085', '03C262', 'GHM', 7), +('G085', '03C263', 'GHM', 7), +('G085', '03C264', 'GHM', 7), +('G085', '08C281', 'GHM', 7), +('G085', '08C282', 'GHM', 7), +('G085', '08C283', 'GHM', 7), +('G085', '08C284', 'GHM', 7), +('G085', '08C28J', 'GHM', 7), +('G085', '08C28Z', 'GHM', 7), +('G086', '03C181', 'GHM', 7), +('G086', '03C182', 'GHM', 7), +('G086', '03C183', 'GHM', 7), +('G086', '03C184', 'GHM', 7), +('G086', '03C18Z', 'GHM', 7), +('G086', '03C201', 'GHM', 7), +('G086', '03C202', 'GHM', 7), +('G086', '03C203', 'GHM', 7), +('G086', '03C204', 'GHM', 7), +('G086', '03C20J', 'GHM', 7), +('G086', '03C20Z', 'GHM', 7), +('G086', '03C211', 'GHM', 7), +('G086', '03C212', 'GHM', 7), +('G086', '03C213', 'GHM', 7), +('G086', '03C214', 'GHM', 7), +('G086', '03C21J', 'GHM', 7), +('G086', '03C21Z', 'GHM', 7), +('G086', '03C301', 'GHM', 7), +('G086', '03C302', 'GHM', 7), +('G086', '03C303', 'GHM', 7), +('G086', '03C304', 'GHM', 7), +('G086', '03C30J', 'GHM', 7), +('G087', '03C101', 'GHM', 7), +('G087', '03C102', 'GHM', 7), +('G087', '03C103', 'GHM', 7), +('G087', '03C104', 'GHM', 7), +('G087', '03C10Z', 'GHM', 7), +('G087', '03C111', 'GHM', 7), +('G087', '03C112', 'GHM', 7), +('G087', '03C113', 'GHM', 7), +('G087', '03C114', 'GHM', 7), +('G087', '03C11Z', 'GHM', 7), +('G087', '03C121', 'GHM', 7), +('G087', '03C122', 'GHM', 7), +('G087', '03C123', 'GHM', 7), +('G087', '03C124', 'GHM', 7), +('G087', '03C12Z', 'GHM', 7), +('G087', '03C131', 'GHM', 7), +('G087', '03C132', 'GHM', 7), +('G087', '03C133', 'GHM', 7), +('G087', '03C134', 'GHM', 7), +('G087', '03C13Z', 'GHM', 7), +('G087', '03C141', 'GHM', 7), +('G087', '03C142', 'GHM', 7), +('G087', '03C143', 'GHM', 7), +('G087', '03C144', 'GHM', 7), +('G087', '03C14J', 'GHM', 7), +('G087', '03C14Z', 'GHM', 7), +('G087', '03C151', 'GHM', 7), +('G087', '03C152', 'GHM', 7), +('G087', '03C153', 'GHM', 7), +('G087', '03C154', 'GHM', 7), +('G087', '03C15J', 'GHM', 7), +('G087', '03C15Z', 'GHM', 7), +('G087', '03C22J', 'GHM', 7), +('G087', '03C27J', 'GHM', 7), +('G087', '03C28J', 'GHM', 7), +('G088', '03C03Z', 'GHM', 7), +('G088', '03C04Z', 'GHM', 7), +('G088', '03C051', 'GHM', 7), +('G088', '03C052', 'GHM', 7), +('G088', '03C053', 'GHM', 7), +('G088', '03C054', 'GHM', 7), +('G088', '03C05T', 'GHM', 7), +('G088', '03C05Z', 'GHM', 7), +('G088', '03C061', 'GHM', 7), +('G088', '03C062', 'GHM', 7), +('G088', '03C063', 'GHM', 7), +('G088', '03C064', 'GHM', 7), +('G088', '03C06J', 'GHM', 7), +('G088', '03C06Z', 'GHM', 7), +('G088', '03C071', 'GHM', 7), +('G088', '03C072', 'GHM', 7), +('G088', '03C073', 'GHM', 7), +('G088', '03C074', 'GHM', 7), +('G088', '03C07J', 'GHM', 7), +('G088', '03C07V', 'GHM', 7), +('G088', '03C07W', 'GHM', 7), +('G088', '03C091', 'GHM', 7), +('G088', '03C092', 'GHM', 7), +('G088', '03C093', 'GHM', 7), +('G088', '03C094', 'GHM', 7), +('G088', '03C09J', 'GHM', 7), +('G088', '03C09Z', 'GHM', 7), +('G088', '03C161', 'GHM', 7), +('G088', '03C162', 'GHM', 7), +('G088', '03C163', 'GHM', 7), +('G088', '03C164', 'GHM', 7), +('G088', '03C16J', 'GHM', 7), +('G088', '03C16V', 'GHM', 7), +('G088', '03C16W', 'GHM', 7), +('G088', '03C241', 'GHM', 7), +('G088', '03C242', 'GHM', 7), +('G088', '03C243', 'GHM', 7), +('G088', '03C244', 'GHM', 7), +('G088', '03C24J', 'GHM', 7), +('G088', '03C291', 'GHM', 7), +('G088', '03C292', 'GHM', 7), +('G088', '03C293', 'GHM', 7), +('G088', '03C294', 'GHM', 7), +('G088', '03C29J', 'GHM', 7), +('G089', '03C171', 'GHM', 7), +('G089', '03C172', 'GHM', 7), +('G089', '03C173', 'GHM', 7), +('G089', '03C174', 'GHM', 7), +('G089', '03C17J', 'GHM', 7), +('G089', '03C17Z', 'GHM', 7), +('G090', '03M101', 'GHM', 7), +('G090', '03M102', 'GHM', 7), +('G090', '03M103', 'GHM', 7), +('G090', '03M104', 'GHM', 7), +('G090', '03M10T', 'GHM', 7), +('G090', '03M10Z', 'GHM', 7), +('G090', '03M111', 'GHM', 7), +('G090', '03M112', 'GHM', 7), +('G090', '03M113', 'GHM', 7), +('G090', '03M114', 'GHM', 7), +('G090', '03M11T', 'GHM', 7), +('G090', '03M11V', 'GHM', 7), +('G090', '03M11W', 'GHM', 7), +('G091', '03M031', 'GHM', 7), +('G091', '03M032', 'GHM', 7), +('G091', '03M033', 'GHM', 7), +('G091', '03M034', 'GHM', 7), +('G091', '03M03T', 'GHM', 7), +('G091', '03M03Z', 'GHM', 7), +('G091', '03M041', 'GHM', 7), +('G091', '03M042', 'GHM', 7), +('G091', '03M043', 'GHM', 7), +('G091', '03M044', 'GHM', 7), +('G091', '03M04T', 'GHM', 7), +('G091', '03M04V', 'GHM', 7), +('G091', '03M04W', 'GHM', 7), +('G091', '03M121', 'GHM', 7), +('G091', '03M122', 'GHM', 7), +('G091', '03M123', 'GHM', 7), +('G091', '03M124', 'GHM', 7), +('G091', '03M131', 'GHM', 7), +('G091', '03M132', 'GHM', 7), +('G091', '03M133', 'GHM', 7), +('G091', '03M134', 'GHM', 7), +('G092', '03M071', 'GHM', 7), +('G092', '03M072', 'GHM', 7), +('G092', '03M073', 'GHM', 7), +('G092', '03M074', 'GHM', 7), +('G092', '03M07T', 'GHM', 7), +('G092', '03M07V', 'GHM', 7), +('G092', '03M07W', 'GHM', 7), +('G093', '03M021', 'GHM', 7), +('G093', '03M022', 'GHM', 7), +('G093', '03M023', 'GHM', 7), +('G093', '03M024', 'GHM', 7), +('G093', '03M02T', 'GHM', 7), +('G093', '03M02Z', 'GHM', 7), +('G093', '03M051', 'GHM', 7), +('G093', '03M052', 'GHM', 7), +('G093', '03M053', 'GHM', 7), +('G093', '03M054', 'GHM', 7), +('G093', '03M05T', 'GHM', 7), +('G093', '03M05Z', 'GHM', 7), +('G093', '03M061', 'GHM', 7), +('G093', '03M062', 'GHM', 7), +('G093', '03M063', 'GHM', 7), +('G093', '03M064', 'GHM', 7), +('G093', '03M06T', 'GHM', 7), +('G093', '03M06Z', 'GHM', 7), +('G093', '03M081', 'GHM', 7), +('G093', '03M082', 'GHM', 7), +('G093', '03M083', 'GHM', 7), +('G093', '03M084', 'GHM', 7), +('G093', '03M08T', 'GHM', 7), +('G093', '03M08Z', 'GHM', 7), +('G093', '03M091', 'GHM', 7), +('G093', '03M092', 'GHM', 7), +('G093', '03M093', 'GHM', 7), +('G093', '03M094', 'GHM', 7), +('G093', '03M09T', 'GHM', 7), +('G093', '03M09V', 'GHM', 7), +('G093', '03M09W', 'GHM', 7), +('G093', '03M15T', 'GHM', 7), +('G093', '03M15Z', 'GHM', 7), +('G094', '03M14Z', 'GHM', 7), +('G095', '03K03J', 'GHM', 7), +('G096', '02C021', 'GHM', 7), +('G096', '02C022', 'GHM', 7), +('G096', '02C023', 'GHM', 7), +('G096', '02C024', 'GHM', 7), +('G096', '02C02J', 'GHM', 7), +('G096', '02C02V', 'GHM', 7), +('G096', '02C02W', 'GHM', 7), +('G096', '02C031', 'GHM', 7), +('G096', '02C032', 'GHM', 7), +('G096', '02C033', 'GHM', 7), +('G096', '02C034', 'GHM', 7), +('G096', '02C03J', 'GHM', 7), +('G096', '02C03Z', 'GHM', 7), +('G096', '02C101', 'GHM', 7), +('G096', '02C102', 'GHM', 7), +('G096', '02C103', 'GHM', 7), +('G096', '02C104', 'GHM', 7), +('G096', '02C10J', 'GHM', 7), +('G096', '02C111', 'GHM', 7), +('G096', '02C112', 'GHM', 7), +('G096', '02C113', 'GHM', 7), +('G096', '02C114', 'GHM', 7), +('G096', '02C11J', 'GHM', 7), +('G097', '02C051', 'GHM', 7), +('G097', '02C052', 'GHM', 7), +('G097', '02C053', 'GHM', 7), +('G097', '02C054', 'GHM', 7), +('G097', '02C05J', 'GHM', 7), +('G097', '02C05Z', 'GHM', 7), +('G097', '02C121', 'GHM', 7), +('G097', '02C122', 'GHM', 7), +('G097', '02C123', 'GHM', 7), +('G097', '02C124', 'GHM', 7), +('G097', '02C12J', 'GHM', 7), +('G098', '02C091', 'GHM', 7), +('G098', '02C092', 'GHM', 7), +('G098', '02C093', 'GHM', 7), +('G098', '02C094', 'GHM', 7), +('G098', '02C09J', 'GHM', 7), +('G098', '02C09Z', 'GHM', 7), +('G099', '02C04Z', 'GHM', 7), +('G099', '02C061', 'GHM', 7), +('G099', '02C062', 'GHM', 7), +('G099', '02C063', 'GHM', 7), +('G099', '02C064', 'GHM', 7), +('G099', '02C06J', 'GHM', 7), +('G099', '02C06Z', 'GHM', 7), +('G099', '02C071', 'GHM', 7), +('G099', '02C072', 'GHM', 7), +('G099', '02C073', 'GHM', 7), +('G099', '02C074', 'GHM', 7), +('G099', '02C07J', 'GHM', 7), +('G099', '02C07Z', 'GHM', 7), +('G099', '02C081', 'GHM', 7), +('G099', '02C082', 'GHM', 7), +('G099', '02C083', 'GHM', 7), +('G099', '02C084', 'GHM', 7), +('G099', '02C08J', 'GHM', 7), +('G099', '02C08V', 'GHM', 7), +('G099', '02C08W', 'GHM', 7), +('G099', '02C131', 'GHM', 7), +('G099', '02C132', 'GHM', 7), +('G099', '02C133', 'GHM', 7), +('G099', '02C134', 'GHM', 7), +('G099', '02C13J', 'GHM', 7), +('G100', '02M021', 'GHM', 7), +('G100', '02M022', 'GHM', 7), +('G100', '02M023', 'GHM', 7), +('G100', '02M024', 'GHM', 7), +('G100', '02M02Z', 'GHM', 7), +('G100', '02M041', 'GHM', 7), +('G100', '02M042', 'GHM', 7), +('G100', '02M043', 'GHM', 7), +('G100', '02M044', 'GHM', 7), +('G100', '02M04T', 'GHM', 7), +('G100', '02M04Z', 'GHM', 7), +('G100', '02M051', 'GHM', 7), +('G100', '02M052', 'GHM', 7), +('G100', '02M053', 'GHM', 7), +('G100', '02M054', 'GHM', 7), +('G100', '02M05T', 'GHM', 7), +('G100', '02M05Z', 'GHM', 7), +('G100', '02M071', 'GHM', 7), +('G100', '02M072', 'GHM', 7), +('G100', '02M073', 'GHM', 7), +('G100', '02M074', 'GHM', 7), +('G100', '02M07T', 'GHM', 7), +('G100', '02M081', 'GHM', 7), +('G100', '02M082', 'GHM', 7), +('G100', '02M083', 'GHM', 7), +('G100', '02M084', 'GHM', 7), +('G100', '02M08T', 'GHM', 7), +('G100', '02M10T', 'GHM', 7), +('G100', '02M10Z', 'GHM', 7), +('G101', '02M031', 'GHM', 7), +('G101', '02M032', 'GHM', 7), +('G101', '02M033', 'GHM', 7), +('G101', '02M034', 'GHM', 7), +('G101', '02M03Z', 'GHM', 7), +('G102', '02M09Z', 'GHM', 7), +('G103', '13C051', 'GHM', 7), +('G103', '13C052', 'GHM', 7), +('G103', '13C053', 'GHM', 7), +('G103', '13C054', 'GHM', 7), +('G103', '13C05Z', 'GHM', 7), +('G103', '13C111', 'GHM', 7), +('G103', '13C112', 'GHM', 7), +('G103', '13C113', 'GHM', 7), +('G103', '13C114', 'GHM', 7), +('G103', '13C11J', 'GHM', 7), +('G103', '13C11Z', 'GHM', 7), +('G103', '13C141', 'GHM', 7), +('G103', '13C142', 'GHM', 7), +('G103', '13C143', 'GHM', 7), +('G103', '13C144', 'GHM', 7), +('G103', '13C14V', 'GHM', 7), +('G103', '13C14W', 'GHM', 7), +('G104', '13C151', 'GHM', 7), +('G104', '13C152', 'GHM', 7), +('G104', '13C153', 'GHM', 7), +('G104', '13C154', 'GHM', 7), +('G104', '13C15V', 'GHM', 7), +('G104', '13C15W', 'GHM', 7), +('G105', '13C031', 'GHM', 7), +('G105', '13C032', 'GHM', 7), +('G105', '13C033', 'GHM', 7), +('G105', '13C034', 'GHM', 7), +('G105', '13C03V', 'GHM', 7), +('G105', '13C03W', 'GHM', 7), +('G105', '13C061', 'GHM', 7), +('G105', '13C062', 'GHM', 7), +('G105', '13C063', 'GHM', 7), +('G105', '13C064', 'GHM', 7), +('G105', '13C06J', 'GHM', 7), +('G105', '13C06Z', 'GHM', 7), +('G105', '13C071', 'GHM', 7), +('G105', '13C072', 'GHM', 7), +('G105', '13C073', 'GHM', 7), +('G105', '13C074', 'GHM', 7), +('G105', '13C07J', 'GHM', 7), +('G105', '13C07V', 'GHM', 7), +('G105', '13C07W', 'GHM', 7), +('G105', '13C091', 'GHM', 7), +('G105', '13C092', 'GHM', 7), +('G105', '13C093', 'GHM', 7), +('G105', '13C094', 'GHM', 7), +('G105', '13C09J', 'GHM', 7), +('G105', '13C09T', 'GHM', 7), +('G105', '13C09Z', 'GHM', 7), +('G105', '13C101', 'GHM', 7), +('G105', '13C102', 'GHM', 7), +('G105', '13C103', 'GHM', 7), +('G105', '13C104', 'GHM', 7), +('G105', '13C10J', 'GHM', 7), +('G105', '13C10T', 'GHM', 7), +('G105', '13C10Z', 'GHM', 7), +('G105', '13C121', 'GHM', 7), +('G105', '13C122', 'GHM', 7), +('G105', '13C123', 'GHM', 7), +('G105', '13C124', 'GHM', 7), +('G105', '13C12J', 'GHM', 7), +('G105', '13C12Z', 'GHM', 7), +('G105', '13C181', 'GHM', 7), +('G105', '13C182', 'GHM', 7), +('G105', '13C183', 'GHM', 7), +('G105', '13C184', 'GHM', 7), +('G105', '13C191', 'GHM', 7), +('G105', '13C192', 'GHM', 7), +('G105', '13C193', 'GHM', 7), +('G105', '13C194', 'GHM', 7), +('G105', '13C19J', 'GHM', 7), +('G105', '13C201', 'GHM', 7), +('G105', '13C202', 'GHM', 7), +('G105', '13C203', 'GHM', 7), +('G105', '13C204', 'GHM', 7), +('G105', '13C20J', 'GHM', 7), +('G106', '13C041', 'GHM', 7), +('G106', '13C042', 'GHM', 7), +('G106', '13C043', 'GHM', 7), +('G106', '13C044', 'GHM', 7), +('G106', '13C04J', 'GHM', 7), +('G106', '13C04V', 'GHM', 7), +('G106', '13C04W', 'GHM', 7), +('G106', '13C081', 'GHM', 7), +('G106', '13C082', 'GHM', 7), +('G106', '13C083', 'GHM', 7), +('G106', '13C084', 'GHM', 7), +('G106', '13C08J', 'GHM', 7), +('G106', '13C08V', 'GHM', 7), +('G106', '13C08W', 'GHM', 7), +('G106', '13C131', 'GHM', 7), +('G106', '13C132', 'GHM', 7), +('G106', '13C133', 'GHM', 7), +('G106', '13C134', 'GHM', 7), +('G106', '13C13T', 'GHM', 7), +('G106', '13C13Z', 'GHM', 7), +('G106', '13C16J', 'GHM', 7), +('G106', '13C171', 'GHM', 7), +('G106', '13C172', 'GHM', 7), +('G106', '13C173', 'GHM', 7), +('G106', '13C174', 'GHM', 7), +('G106', '13C17J', 'GHM', 7), +('G107', '09C041', 'GHM', 7), +('G107', '09C042', 'GHM', 7), +('G107', '09C043', 'GHM', 7), +('G107', '09C044', 'GHM', 7), +('G107', '09C04V', 'GHM', 7), +('G107', '09C04W', 'GHM', 7), +('G107', '09C051', 'GHM', 7), +('G107', '09C052', 'GHM', 7), +('G107', '09C053', 'GHM', 7), +('G107', '09C054', 'GHM', 7), +('G107', '09C05J', 'GHM', 7), +('G107', '09C05V', 'GHM', 7), +('G107', '09C05W', 'GHM', 7), +('G107', '09C111', 'GHM', 7), +('G107', '09C112', 'GHM', 7), +('G107', '09C113', 'GHM', 7), +('G107', '09C114', 'GHM', 7), +('G108', '09C061', 'GHM', 7), +('G108', '09C062', 'GHM', 7), +('G108', '09C063', 'GHM', 7), +('G108', '09C064', 'GHM', 7), +('G108', '09C06T', 'GHM', 7), +('G108', '09C06Z', 'GHM', 7), +('G108', '09C071', 'GHM', 7), +('G108', '09C072', 'GHM', 7), +('G108', '09C073', 'GHM', 7), +('G108', '09C074', 'GHM', 7), +('G108', '09C07J', 'GHM', 7), +('G108', '09C07Z', 'GHM', 7), +('G109', '13M031', 'GHM', 7), +('G109', '13M032', 'GHM', 7), +('G109', '13M033', 'GHM', 7), +('G109', '13M034', 'GHM', 7), +('G109', '13M03T', 'GHM', 7), +('G109', '13M03V', 'GHM', 7), +('G109', '13M03W', 'GHM', 7), +('G109', '13M071', 'GHM', 7), +('G109', '13M072', 'GHM', 7), +('G109', '13M073', 'GHM', 7), +('G109', '13M074', 'GHM', 7), +('G110', '13M041', 'GHM', 7), +('G110', '13M042', 'GHM', 7), +('G110', '13M043', 'GHM', 7), +('G110', '13M044', 'GHM', 7), +('G110', '13M04T', 'GHM', 7), +('G110', '13M04V', 'GHM', 7), +('G110', '13M04W', 'GHM', 7), +('G110', '13M10Z', 'GHM', 7), +('G111', '13M081', 'GHM', 7), +('G111', '13M082', 'GHM', 7), +('G111', '13M083', 'GHM', 7), +('G111', '13M084', 'GHM', 7), +('G112', '13M02Z', 'GHM', 7), +('G112', '13M051', 'GHM', 7), +('G112', '13M052', 'GHM', 7), +('G112', '13M053', 'GHM', 7), +('G112', '13M054', 'GHM', 7), +('G112', '13M061', 'GHM', 7), +('G112', '13M062', 'GHM', 7), +('G112', '13M063', 'GHM', 7), +('G112', '13M064', 'GHM', 7), +('G112', '13M06T', 'GHM', 7), +('G113', '09M091', 'GHM', 7), +('G113', '09M092', 'GHM', 7), +('G113', '09M093', 'GHM', 7), +('G113', '09M094', 'GHM', 7), +('G113', '09M09T', 'GHM', 7), +('G113', '09M09Z', 'GHM', 7), +('G113', '09M15Z', 'GHM', 7), +('G114', '09M101', 'GHM', 7), +('G114', '09M102', 'GHM', 7), +('G114', '09M103', 'GHM', 7), +('G114', '09M104', 'GHM', 7), +('G114', '09M10T', 'GHM', 7), +('G114', '09M10V', 'GHM', 7), +('G114', '09M10W', 'GHM', 7), +('G115', '09M13Z', 'GHM', 7), +('G115', '13M09Z', 'GHM', 7), +('G116', '14C03A', 'GHM', 7), +('G116', '14C03B', 'GHM', 7), +('G116', '14C03C', 'GHM', 7), +('G116', '14C03D', 'GHM', 7), +('G116', '14C03Z', 'GHM', 7), +('G116', '14Z02A', 'GHM', 7), +('G116', '14Z02B', 'GHM', 7), +('G116', '14Z02C', 'GHM', 7), +('G116', '14Z02T', 'GHM', 7), +('G116', '14Z09Z', 'GHM', 7), +('G116', '14Z10A', 'GHM', 7), +('G116', '14Z10B', 'GHM', 7), +('G116', '14Z10T', 'GHM', 7), +('G116', '14Z11A', 'GHM', 7), +('G116', '14Z11B', 'GHM', 7), +('G116', '14Z12A', 'GHM', 7), +('G116', '14Z12B', 'GHM', 7), +('G116', '14Z13A', 'GHM', 7), +('G116', '14Z13B', 'GHM', 7), +('G116', '14Z13C', 'GHM', 7), +('G116', '14Z13D', 'GHM', 7), +('G116', '14Z13T', 'GHM', 7), +('G116', '14Z14A', 'GHM', 7), +('G116', '14Z14B', 'GHM', 7), +('G116', '14Z14C', 'GHM', 7), +('G116', '14Z14D', 'GHM', 7), +('G116', '14Z14T', 'GHM', 7), +('G117', '14C02A', 'GHM', 7), +('G117', '14C02B', 'GHM', 7), +('G117', '14C02C', 'GHM', 7), +('G117', '14C06A', 'GHM', 7), +('G117', '14C06B', 'GHM', 7), +('G117', '14C06C', 'GHM', 7), +('G117', '14C06D', 'GHM', 7), +('G117', '14C07A', 'GHM', 7), +('G117', '14C07B', 'GHM', 7), +('G117', '14C07C', 'GHM', 7), +('G117', '14C07D', 'GHM', 7), +('G117', '14C08A', 'GHM', 7), +('G117', '14C08B', 'GHM', 7), +('G117', '14C08C', 'GHM', 7), +('G117', '14C08D', 'GHM', 7), +('G118', '14Z08Z', 'GHM', 7), +('G119', '14C09A', 'GHM', 7), +('G119', '14C09B', 'GHM', 7), +('G119', '14C10T', 'GHM', 7), +('G119', '14C10Z', 'GHM', 7), +('G119', '14M03A', 'GHM', 7), +('G119', '14M03B', 'GHM', 7), +('G119', '14M03C', 'GHM', 7), +('G119', '14M03D', 'GHM', 7), +('G119', '14M03T', 'GHM', 7), +('G119', '14Z03A', 'GHM', 7), +('G119', '14Z03B', 'GHM', 7), +('G119', '14Z03T', 'GHM', 7), +('G119', '14Z05Z', 'GHM', 7), +('G119', '14Z06T', 'GHM', 7), +('G119', '14Z06Z', 'GHM', 7), +('G119', '14Z07Z', 'GHM', 7), +('G119', '14Z15Z', 'GHM', 7), +('G119', '14Z16T', 'GHM', 7), +('G119', '14Z16Z', 'GHM', 7), +('G120', '14C04T', 'GHM', 7), +('G120', '14C04Z', 'GHM', 7), +('G120', '14M02A', 'GHM', 7), +('G120', '14M02B', 'GHM', 7), +('G120', '14M02T', 'GHM', 7), +('G120', '14M02Z', 'GHM', 7), +('G121', '14C05J', 'GHM', 7), +('G121', '14C05Z', 'GHM', 7), +('G121', '14Z04T', 'GHM', 7), +('G121', '14Z04Z', 'GHM', 7), +('G122', '15C02A', 'GHM', 7), +('G122', '15C02B', 'GHM', 7), +('G122', '15C02Z', 'GHM', 7), +('G122', '15C03A', 'GHM', 7), +('G122', '15C03B', 'GHM', 7), +('G122', '15C03Z', 'GHM', 7), +('G122', '15C04A', 'GHM', 7), +('G122', '15C04B', 'GHM', 7), +('G122', '15C04Z', 'GHM', 7), +('G122', '15C05A', 'GHM', 7), +('G122', '15C05B', 'GHM', 7), +('G122', '15C05Z', 'GHM', 7), +('G122', '15C06A', 'GHM', 7), +('G122', '15C06B', 'GHM', 7), +('G122', '15C06Z', 'GHM', 7), +('G123', '15M02Z', 'GHM', 7), +('G123', '15Z03Z', 'GHM', 7), +('G124', '15M05A', 'GHM', 7), +('G124', '15M05B', 'GHM', 7), +('G124', '15M05C', 'GHM', 7), +('G124', '15M05D', 'GHM', 7), +('G124', '15M06A', 'GHM', 7), +('G124', '15M06B', 'GHM', 7), +('G124', '15M06C', 'GHM', 7), +('G124', '15M06D', 'GHM', 7), +('G124', '15M07A', 'GHM', 7), +('G124', '15M07B', 'GHM', 7), +('G124', '15M07C', 'GHM', 7), +('G124', '15M08A', 'GHM', 7), +('G124', '15M08B', 'GHM', 7), +('G124', '15M08C', 'GHM', 7), +('G124', '15M09A', 'GHM', 7), +('G124', '15M09B', 'GHM', 7), +('G124', '15M09C', 'GHM', 7), +('G124', '15M10A', 'GHM', 7), +('G124', '15M10B', 'GHM', 7), +('G124', '15M10C', 'GHM', 7), +('G124', '15M11A', 'GHM', 7), +('G124', '15M11B', 'GHM', 7), +('G124', '15M11C', 'GHM', 7), +('G124', '15M12A', 'GHM', 7), +('G124', '15M12B', 'GHM', 7), +('G124', '15M13A', 'GHM', 7), +('G124', '15M13B', 'GHM', 7), +('G124', '15M14A', 'GHM', 7), +('G124', '15M14B', 'GHM', 7), +('G124', '15Z02T', 'GHM', 7), +('G124', '15Z02Z', 'GHM', 7), +('G124', '15Z04E', 'GHM', 7), +('G124', '15Z05A', 'GHM', 7), +('G124', '15Z05B', 'GHM', 7), +('G124', '15Z05C', 'GHM', 7), +('G124', '15Z05D', 'GHM', 7), +('G124', '15Z06A', 'GHM', 7), +('G124', '15Z06B', 'GHM', 7), +('G124', '15Z06C', 'GHM', 7), +('G124', '15Z06D', 'GHM', 7), +('G124', '15Z07A', 'GHM', 7), +('G124', '15Z07B', 'GHM', 7), +('G124', '15Z07C', 'GHM', 7), +('G124', '15Z08A', 'GHM', 7), +('G124', '15Z08E', 'GHM', 7), +('G124', '15Z08Z', 'GHM', 7), +('G124', '15Z09A', 'GHM', 7), +('G124', '15Z09Z', 'GHM', 7), +('G125', '15M03E', 'GHM', 7), +('G125', '15M04E', 'GHM', 7), +('G125', '15Z09E', 'GHM', 7), +('G126', '10C031', 'GHM', 7), +('G126', '10C032', 'GHM', 7), +('G126', '10C033', 'GHM', 7), +('G126', '10C034', 'GHM', 7), +('G126', '10C03Z', 'GHM', 7), +('G126', '11C021', 'GHM', 7), +('G126', '11C022', 'GHM', 7), +('G126', '11C023', 'GHM', 7), +('G126', '11C024', 'GHM', 7), +('G126', '11C02V', 'GHM', 7), +('G126', '11C02W', 'GHM', 7), +('G126', '11C031', 'GHM', 7), +('G126', '11C032', 'GHM', 7), +('G126', '11C033', 'GHM', 7), +('G126', '11C034', 'GHM', 7), +('G126', '11C03V', 'GHM', 7), +('G126', '11C03W', 'GHM', 7), +('G126', '11C041', 'GHM', 7), +('G126', '11C042', 'GHM', 7), +('G126', '11C043', 'GHM', 7), +('G126', '11C044', 'GHM', 7), +('G126', '11C04J', 'GHM', 7), +('G126', '11C04Z', 'GHM', 7), +('G126', '11C081', 'GHM', 7), +('G126', '11C082', 'GHM', 7), +('G126', '11C083', 'GHM', 7), +('G126', '11C084', 'GHM', 7), +('G126', '11C08T', 'GHM', 7), +('G126', '11C08V', 'GHM', 7), +('G126', '11C08W', 'GHM', 7), +('G126', '11C101', 'GHM', 7), +('G126', '11C102', 'GHM', 7), +('G126', '11C103', 'GHM', 7), +('G126', '11C104', 'GHM', 7), +('G126', '11C10J', 'GHM', 7), +('G127', '11C051', 'GHM', 7), +('G127', '11C052', 'GHM', 7), +('G127', '11C053', 'GHM', 7), +('G127', '11C054', 'GHM', 7), +('G127', '11C05J', 'GHM', 7), +('G127', '11C05V', 'GHM', 7), +('G127', '11C05W', 'GHM', 7), +('G127', '11C061', 'GHM', 7), +('G127', '11C062', 'GHM', 7), +('G127', '11C063', 'GHM', 7), +('G127', '11C064', 'GHM', 7), +('G127', '11C06Z', 'GHM', 7), +('G127', '11C071', 'GHM', 7), +('G127', '11C072', 'GHM', 7), +('G127', '11C073', 'GHM', 7), +('G127', '11C074', 'GHM', 7), +('G127', '11C07J', 'GHM', 7), +('G127', '11C07Z', 'GHM', 7), +('G127', '11C111', 'GHM', 7), +('G127', '11C112', 'GHM', 7), +('G127', '11C113', 'GHM', 7), +('G127', '11C114', 'GHM', 7), +('G127', '11C11J', 'GHM', 7), +('G127', '11C121', 'GHM', 7), +('G127', '11C122', 'GHM', 7), +('G127', '11C123', 'GHM', 7), +('G127', '11C124', 'GHM', 7), +('G127', '11C12J', 'GHM', 7), +('G127', '11C131', 'GHM', 7), +('G127', '11C132', 'GHM', 7), +('G127', '11C133', 'GHM', 7), +('G127', '11C134', 'GHM', 7), +('G127', '11C13J', 'GHM', 7), +('G128', '12C031', 'GHM', 7), +('G128', '12C032', 'GHM', 7), +('G128', '12C033', 'GHM', 7), +('G128', '12C034', 'GHM', 7), +('G128', '12C03J', 'GHM', 7), +('G128', '12C03Z', 'GHM', 7), +('G128', '12C041', 'GHM', 7), +('G128', '12C042', 'GHM', 7), +('G128', '12C043', 'GHM', 7), +('G128', '12C044', 'GHM', 7), +('G128', '12C04J', 'GHM', 7), +('G128', '12C04V', 'GHM', 7), +('G128', '12C04W', 'GHM', 7), +('G128', '12C061', 'GHM', 7), +('G128', '12C062', 'GHM', 7), +('G128', '12C063', 'GHM', 7), +('G128', '12C064', 'GHM', 7), +('G128', '12C06J', 'GHM', 7), +('G128', '12C06Z', 'GHM', 7), +('G128', '12C071', 'GHM', 7), +('G128', '12C072', 'GHM', 7), +('G128', '12C073', 'GHM', 7), +('G128', '12C074', 'GHM', 7), +('G128', '12C07J', 'GHM', 7), +('G128', '12C07Z', 'GHM', 7), +('G128', '12C101', 'GHM', 7), +('G128', '12C102', 'GHM', 7), +('G128', '12C103', 'GHM', 7), +('G128', '12C104', 'GHM', 7), +('G128', '12C10Z', 'GHM', 7), +('G128', '12C131', 'GHM', 7), +('G128', '12C132', 'GHM', 7), +('G128', '12C133', 'GHM', 7), +('G128', '12C134', 'GHM', 7), +('G128', '12C13J', 'GHM', 7), +('G129', '12C081', 'GHM', 7), +('G129', '12C082', 'GHM', 7), +('G129', '12C083', 'GHM', 7), +('G129', '12C084', 'GHM', 7), +('G129', '12C08J', 'GHM', 7), +('G129', '12C08Z', 'GHM', 7), +('G130', '12C02Z', 'GHM', 7), +('G130', '12C111', 'GHM', 7), +('G130', '12C112', 'GHM', 7), +('G130', '12C113', 'GHM', 7), +('G130', '12C114', 'GHM', 7), +('G130', '12C11Z', 'GHM', 7), +('G130', '12C121', 'GHM', 7), +('G130', '12C122', 'GHM', 7), +('G130', '12C123', 'GHM', 7), +('G130', '12C124', 'GHM', 7), +('G130', '12C12Z', 'GHM', 7), +('G131', '12C051', 'GHM', 7), +('G131', '12C052', 'GHM', 7), +('G131', '12C053', 'GHM', 7), +('G131', '12C054', 'GHM', 7), +('G131', '12C05Z', 'GHM', 7), +('G131', '12C091', 'GHM', 7), +('G131', '12C092', 'GHM', 7), +('G131', '12C093', 'GHM', 7), +('G131', '12C094', 'GHM', 7), +('G131', '12C09Z', 'GHM', 7), +('G132', '11M071', 'GHM', 7), +('G132', '11M072', 'GHM', 7), +('G132', '11M073', 'GHM', 7), +('G132', '11M074', 'GHM', 7), +('G132', '11M07T', 'GHM', 7), +('G132', '11M07V', 'GHM', 7), +('G132', '11M07W', 'GHM', 7), +('G133', '11M021', 'GHM', 7), +('G133', '11M022', 'GHM', 7), +('G133', '11M023', 'GHM', 7), +('G133', '11M024', 'GHM', 7), +('G133', '11M02T', 'GHM', 7), +('G133', '11M02V', 'GHM', 7), +('G133', '11M02W', 'GHM', 7), +('G133', '11M031', 'GHM', 7), +('G133', '11M032', 'GHM', 7), +('G133', '11M033', 'GHM', 7), +('G133', '11M034', 'GHM', 7), +('G133', '11M03T', 'GHM', 7), +('G133', '11M03V', 'GHM', 7), +('G133', '11M03W', 'GHM', 7), +('G133', '11M041', 'GHM', 7), +('G133', '11M042', 'GHM', 7), +('G133', '11M043', 'GHM', 7), +('G133', '11M044', 'GHM', 7), +('G133', '11M04T', 'GHM', 7), +('G133', '11M04V', 'GHM', 7), +('G133', '11M04W', 'GHM', 7), +('G134', '11M061', 'GHM', 7), +('G134', '11M062', 'GHM', 7), +('G134', '11M063', 'GHM', 7), +('G134', '11M064', 'GHM', 7), +('G134', '11M06T', 'GHM', 7), +('G134', '11M06V', 'GHM', 7), +('G134', '11M06W', 'GHM', 7), +('G134', '11M081', 'GHM', 7), +('G134', '11M082', 'GHM', 7), +('G134', '11M083', 'GHM', 7), +('G134', '11M084', 'GHM', 7), +('G134', '11M08T', 'GHM', 7), +('G134', '11M08Z', 'GHM', 7), +('G134', '11M101', 'GHM', 7), +('G134', '11M102', 'GHM', 7), +('G134', '11M103', 'GHM', 7), +('G134', '11M104', 'GHM', 7), +('G134', '11M10T', 'GHM', 7), +('G134', '11M10V', 'GHM', 7), +('G134', '11M10W', 'GHM', 7), +('G134', '11M111', 'GHM', 7), +('G134', '11M112', 'GHM', 7), +('G134', '11M113', 'GHM', 7), +('G134', '11M114', 'GHM', 7), +('G134', '11M11Z', 'GHM', 7), +('G134', '11M121', 'GHM', 7), +('G134', '11M122', 'GHM', 7), +('G134', '11M123', 'GHM', 7), +('G134', '11M124', 'GHM', 7), +('G134', '11M12T', 'GHM', 7), +('G134', '11M12V', 'GHM', 7), +('G134', '11M12W', 'GHM', 7), +('G134', '11M151', 'GHM', 7), +('G134', '11M152', 'GHM', 7), +('G134', '11M153', 'GHM', 7), +('G134', '11M154', 'GHM', 7), +('G134', '11M15T', 'GHM', 7), +('G134', '11M161', 'GHM', 7), +('G134', '11M162', 'GHM', 7), +('G134', '11M163', 'GHM', 7), +('G134', '11M164', 'GHM', 7), +('G134', '11M16T', 'GHM', 7), +('G134', '11M19T', 'GHM', 7), +('G134', '11M19Z', 'GHM', 7), +('G134', '11M201', 'GHM', 7), +('G134', '11M202', 'GHM', 7), +('G134', '11M203', 'GHM', 7), +('G134', '11M204', 'GHM', 7), +('G135', '11M171', 'GHM', 7), +('G135', '11M172', 'GHM', 7), +('G135', '11M173', 'GHM', 7), +('G135', '11M174', 'GHM', 7), +('G135', '11M18Z', 'GHM', 7), +('G136', '12M061', 'GHM', 7), +('G136', '12M062', 'GHM', 7), +('G136', '12M063', 'GHM', 7), +('G136', '12M064', 'GHM', 7), +('G136', '12M06T', 'GHM', 7), +('G136', '12M071', 'GHM', 7), +('G136', '12M072', 'GHM', 7), +('G136', '12M073', 'GHM', 7), +('G136', '12M074', 'GHM', 7), +('G136', '12M07T', 'GHM', 7), +('G137', '12M031', 'GHM', 7), +('G137', '12M032', 'GHM', 7), +('G137', '12M033', 'GHM', 7), +('G137', '12M034', 'GHM', 7), +('G137', '12M03T', 'GHM', 7), +('G137', '12M03V', 'GHM', 7), +('G137', '12M03W', 'GHM', 7), +('G138', '12M041', 'GHM', 7), +('G138', '12M042', 'GHM', 7), +('G138', '12M043', 'GHM', 7), +('G138', '12M044', 'GHM', 7), +('G138', '12M04T', 'GHM', 7), +('G138', '12M04V', 'GHM', 7), +('G138', '12M04W', 'GHM', 7), +('G138', '12M051', 'GHM', 7), +('G138', '12M052', 'GHM', 7), +('G138', '12M053', 'GHM', 7), +('G138', '12M054', 'GHM', 7), +('G138', '12M05T', 'GHM', 7), +('G138', '12M05Z', 'GHM', 7), +('G138', '12M09Z', 'GHM', 7), +('G139', '12M08Z', 'GHM', 7), +('G140', '11K03Z', 'GHM', 7), +('G140', '11K04Z', 'GHM', 7), +('G140', '11K05Z', 'GHM', 7), +('G140', '11K06Z', 'GHM', 7), +('G140', '12K02Z', 'GHM', 7), +('G140', '12K03Z', 'GHM', 7), +('G140', '13K02Z', 'GHM', 7), +('G140', '13K03Z', 'GHM', 7), +('G140', '13K04Z', 'GHM', 7), +('G140', '13K05Z', 'GHM', 7), +('G141', '16C031', 'GHM', 7), +('G141', '16C032', 'GHM', 7), +('G141', '16C033', 'GHM', 7), +('G141', '16C034', 'GHM', 7), +('G141', '16C03J', 'GHM', 7), +('G141', '16C03V', 'GHM', 7), +('G141', '16C03W', 'GHM', 7), +('G141', '17C021', 'GHM', 7), +('G141', '17C022', 'GHM', 7), +('G141', '17C023', 'GHM', 7), +('G141', '17C024', 'GHM', 7), +('G141', '17C02V', 'GHM', 7), +('G141', '17C02W', 'GHM', 7), +('G141', '17C031', 'GHM', 7), +('G141', '17C032', 'GHM', 7), +('G141', '17C033', 'GHM', 7), +('G141', '17C034', 'GHM', 7), +('G141', '17C03J', 'GHM', 7), +('G141', '17C03V', 'GHM', 7), +('G141', '17C03W', 'GHM', 7), +('G141', '17C041', 'GHM', 7), +('G141', '17C042', 'GHM', 7), +('G141', '17C043', 'GHM', 7), +('G141', '17C044', 'GHM', 7), +('G141', '17C04V', 'GHM', 7), +('G141', '17C04W', 'GHM', 7), +('G141', '17C051', 'GHM', 7), +('G141', '17C052', 'GHM', 7), +('G141', '17C053', 'GHM', 7), +('G141', '17C054', 'GHM', 7), +('G141', '17C05J', 'GHM', 7), +('G141', '17C05V', 'GHM', 7), +('G141', '17C05W', 'GHM', 7), +('G141', '17C061', 'GHM', 7), +('G141', '17C062', 'GHM', 7), +('G141', '17C063', 'GHM', 7), +('G141', '17C064', 'GHM', 7), +('G141', '17C071', 'GHM', 7), +('G141', '17C072', 'GHM', 7), +('G141', '17C073', 'GHM', 7), +('G141', '17C074', 'GHM', 7), +('G141', '17C081', 'GHM', 7), +('G141', '17C082', 'GHM', 7), +('G141', '17C083', 'GHM', 7), +('G141', '17C084', 'GHM', 7), +('G141', '17C08J', 'GHM', 7), +('G141', '17M02Z', 'GHM', 7), +('G141', '17M03V', 'GHM', 7), +('G142', '27Z021', 'GHM', 7), +('G142', '27Z022', 'GHM', 7), +('G142', '27Z023', 'GHM', 7), +('G142', '27Z024', 'GHM', 7), +('G142', '27Z02Z', 'GHM', 7), +('G142', '27Z03Z', 'GHM', 7), +('G142', '27Z04J', 'GHM', 7), +('G143', '16M071', 'GHM', 7), +('G143', '16M072', 'GHM', 7), +('G143', '16M073', 'GHM', 7), +('G143', '16M074', 'GHM', 7), +('G144', '17M081', 'GHM', 7), +('G144', '17M082', 'GHM', 7), +('G144', '17M083', 'GHM', 7), +('G144', '17M084', 'GHM', 7), +('G144', '17M08T', 'GHM', 7), +('G144', '17M08Z', 'GHM', 7), +('G144', '17M091', 'GHM', 7), +('G144', '17M092', 'GHM', 7), +('G144', '17M093', 'GHM', 7), +('G144', '17M094', 'GHM', 7), +('G144', '17M09T', 'GHM', 7), +('G144', '17M09V', 'GHM', 7), +('G144', '17M09W', 'GHM', 7), +('G144', '17M111', 'GHM', 7), +('G144', '17M112', 'GHM', 7), +('G144', '17M113', 'GHM', 7), +('G144', '17M114', 'GHM', 7), +('G144', '17M11T', 'GHM', 7), +('G144', '17M121', 'GHM', 7), +('G144', '17M122', 'GHM', 7), +('G144', '17M123', 'GHM', 7), +('G144', '17M124', 'GHM', 7), +('G144', '17M12T', 'GHM', 7), +('G144', '17M151', 'GHM', 7), +('G144', '17M152', 'GHM', 7), +('G144', '17M153', 'GHM', 7), +('G144', '17M154', 'GHM', 7), +('G144', '17M15T', 'GHM', 7), +('G145', '16M061', 'GHM', 7), +('G145', '16M062', 'GHM', 7), +('G145', '16M063', 'GHM', 7), +('G145', '16M064', 'GHM', 7), +('G145', '16M06T', 'GHM', 7), +('G145', '16M081', 'GHM', 7), +('G145', '16M082', 'GHM', 7), +('G145', '16M083', 'GHM', 7), +('G145', '16M084', 'GHM', 7), +('G145', '16M091', 'GHM', 7), +('G145', '16M092', 'GHM', 7), +('G145', '16M093', 'GHM', 7), +('G145', '16M094', 'GHM', 7), +('G145', '16M09T', 'GHM', 7), +('G145', '16M101', 'GHM', 7), +('G145', '16M102', 'GHM', 7), +('G145', '16M103', 'GHM', 7), +('G145', '16M104', 'GHM', 7), +('G145', '16M10T', 'GHM', 7), +('G145', '16M111', 'GHM', 7), +('G145', '16M112', 'GHM', 7), +('G145', '16M113', 'GHM', 7), +('G145', '16M114', 'GHM', 7), +('G145', '16M11T', 'GHM', 7), +('G145', '16M121', 'GHM', 7), +('G145', '16M122', 'GHM', 7), +('G145', '16M123', 'GHM', 7), +('G145', '16M124', 'GHM', 7), +('G145', '16M12T', 'GHM', 7), +('G145', '16M131', 'GHM', 7), +('G145', '16M132', 'GHM', 7), +('G145', '16M133', 'GHM', 7), +('G145', '16M134', 'GHM', 7), +('G145', '16M13T', 'GHM', 7), +('G145', '16M15T', 'GHM', 7), +('G145', '16M15Z', 'GHM', 7), +('G145', '16M161', 'GHM', 7), +('G145', '16M162', 'GHM', 7), +('G145', '16M163', 'GHM', 7), +('G145', '16M164', 'GHM', 7), +('G145', '16M16T', 'GHM', 7), +('G145', '16M171', 'GHM', 7), +('G145', '16M172', 'GHM', 7), +('G145', '16M173', 'GHM', 7), +('G145', '16M174', 'GHM', 7), +('G145', '16M17T', 'GHM', 7), +('G145', '16M181', 'GHM', 7), +('G145', '16M182', 'GHM', 7), +('G145', '16M183', 'GHM', 7), +('G145', '16M184', 'GHM', 7), +('G145', '17M071', 'GHM', 7), +('G145', '17M072', 'GHM', 7), +('G145', '17M073', 'GHM', 7), +('G145', '17M074', 'GHM', 7), +('G145', '17M07T', 'GHM', 7), +('G145', '17M07V', 'GHM', 7), +('G145', '17M07W', 'GHM', 7), +('G145', '17M131', 'GHM', 7), +('G145', '17M132', 'GHM', 7), +('G145', '17M133', 'GHM', 7), +('G145', '17M134', 'GHM', 7), +('G145', '17M13T', 'GHM', 7), +('G145', '17M161', 'GHM', 7), +('G145', '17M162', 'GHM', 7), +('G145', '17M163', 'GHM', 7), +('G145', '17M164', 'GHM', 7), +('G145', '17M16T', 'GHM', 7), +('G145', '17M171', 'GHM', 7), +('G145', '17M172', 'GHM', 7), +('G145', '17M173', 'GHM', 7), +('G145', '17M174', 'GHM', 7), +('G145', '17M17T', 'GHM', 7), +('G146', '16M14Z', 'GHM', 7), +('G147', '17K02Z', 'GHM', 7), +('G147', '17M04Z', 'GHM', 7), +('G147', '17M14Z', 'GHM', 7), +('G148', '17M051', 'GHM', 7), +('G148', '17M052', 'GHM', 7), +('G148', '17M053', 'GHM', 7), +('G148', '17M054', 'GHM', 7), +('G148', '17M05Z', 'GHM', 7), +('G148', '17M061', 'GHM', 7), +('G148', '17M062', 'GHM', 7), +('G148', '17M063', 'GHM', 7), +('G148', '17M064', 'GHM', 7), +('G148', '17M06T', 'GHM', 7), +('G148', '17M06V', 'GHM', 7), +('G148', '17M06W', 'GHM', 7), +('G149', '17K03Z', 'GHM', 7), +('G149', '17K041', 'GHM', 7), +('G149', '17K042', 'GHM', 7), +('G149', '17K043', 'GHM', 7), +('G149', '17K044', 'GHM', 7), +('G149', '17K04Z', 'GHM', 7), +('G149', '17K051', 'GHM', 7), +('G149', '17K052', 'GHM', 7), +('G149', '17K053', 'GHM', 7), +('G149', '17K054', 'GHM', 7), +('G149', '17K05Z', 'GHM', 7), +('G149', '17K061', 'GHM', 7), +('G149', '17K062', 'GHM', 7), +('G149', '17K063', 'GHM', 7), +('G149', '17K064', 'GHM', 7), +('G149', '17K06Z', 'GHM', 7), +('G149', '17K081', 'GHM', 7), +('G149', '17K082', 'GHM', 7), +('G149', '17K083', 'GHM', 7), +('G149', '17K084', 'GHM', 7), +('G149', '17K091', 'GHM', 7), +('G149', '17K092', 'GHM', 7), +('G149', '17K093', 'GHM', 7), +('G149', '17K094', 'GHM', 7), +('G150', '23M091', 'GHM', 7), +('G150', '23M092', 'GHM', 7), +('G150', '23M093', 'GHM', 7), +('G150', '23M094', 'GHM', 7), +('G151', '18M021', 'GHM', 7), +('G151', '18M022', 'GHM', 7), +('G151', '18M023', 'GHM', 7), +('G151', '18M024', 'GHM', 7), +('G151', '18M02V', 'GHM', 7), +('G151', '18M02W', 'GHM', 7), +('G151', '18M031', 'GHM', 7), +('G151', '18M032', 'GHM', 7), +('G151', '18M033', 'GHM', 7), +('G151', '18M034', 'GHM', 7), +('G151', '18M03T', 'GHM', 7), +('G151', '18M03Z', 'GHM', 7), +('G151', '18M041', 'GHM', 7), +('G151', '18M042', 'GHM', 7), +('G151', '18M043', 'GHM', 7), +('G151', '18M044', 'GHM', 7), +('G151', '18M04T', 'GHM', 7), +('G151', '18M04V', 'GHM', 7), +('G151', '18M04W', 'GHM', 7), +('G152', '18M061', 'GHM', 7), +('G152', '18M062', 'GHM', 7), +('G152', '18M063', 'GHM', 7), +('G152', '18M064', 'GHM', 7), +('G152', '18M06Z', 'GHM', 7), +('G152', '18M071', 'GHM', 7), +('G152', '18M072', 'GHM', 7), +('G152', '18M073', 'GHM', 7), +('G152', '18M074', 'GHM', 7), +('G152', '18M07T', 'GHM', 7), +('G152', '18M07V', 'GHM', 7), +('G152', '18M07W', 'GHM', 7), +('G153', '18M091', 'GHM', 7), +('G153', '18M092', 'GHM', 7), +('G153', '18M093', 'GHM', 7), +('G153', '18M094', 'GHM', 7), +('G153', '18M09T', 'GHM', 7), +('G153', '18M101', 'GHM', 7), +('G153', '18M102', 'GHM', 7), +('G153', '18M103', 'GHM', 7), +('G153', '18M104', 'GHM', 7), +('G153', '18M10T', 'GHM', 7), +('G153', '18M111', 'GHM', 7), +('G153', '18M112', 'GHM', 7), +('G153', '18M113', 'GHM', 7), +('G153', '18M114', 'GHM', 7), +('G153', '18M11T', 'GHM', 7), +('G153', '18M14T', 'GHM', 7), +('G153', '18M14Z', 'GHM', 7), +('G153', '18M151', 'GHM', 7), +('G153', '18M152', 'GHM', 7), +('G153', '18M153', 'GHM', 7), +('G153', '18M154', 'GHM', 7), +('G154', '18M13E', 'GHM', 7), +('G155', '18M12Z', 'GHM', 7), +('G156', '23M07J', 'GHM', 7), +('G156', '25M02A', 'GHM', 7), +('G156', '25M02B', 'GHM', 7), +('G156', '25M02C', 'GHM', 7), +('G156', '25M02T', 'GHM', 7), +('G156', '25Z02E', 'GHM', 7), +('G156', '25Z031', 'GHM', 7), +('G156', '25Z032', 'GHM', 7), +('G156', '25Z033', 'GHM', 7), +('G156', '25Z034', 'GHM', 7), +('G156', '25Z03Z', 'GHM', 7), +('G157', '10C051', 'GHM', 7), +('G157', '10C052', 'GHM', 7), +('G157', '10C053', 'GHM', 7), +('G157', '10C054', 'GHM', 7), +('G157', '10C05Z', 'GHM', 7), +('G157', '10C071', 'GHM', 7), +('G157', '10C072', 'GHM', 7), +('G157', '10C073', 'GHM', 7), +('G157', '10C074', 'GHM', 7), +('G157', '10C07Z', 'GHM', 7), +('G157', '10C101', 'GHM', 7), +('G157', '10C102', 'GHM', 7), +('G157', '10C103', 'GHM', 7), +('G157', '10C104', 'GHM', 7), +('G157', '10C10Z', 'GHM', 7), +('G158', '10C111', 'GHM', 7), +('G158', '10C112', 'GHM', 7), +('G158', '10C113', 'GHM', 7), +('G158', '10C114', 'GHM', 7), +('G158', '10C11V', 'GHM', 7), +('G158', '10C11W', 'GHM', 7), +('G158', '10C121', 'GHM', 7), +('G158', '10C122', 'GHM', 7), +('G158', '10C123', 'GHM', 7), +('G158', '10C124', 'GHM', 7), +('G158', '10C12V', 'GHM', 7), +('G158', '10C12W', 'GHM', 7), +('G159', '10M021', 'GHM', 7), +('G159', '10M022', 'GHM', 7), +('G159', '10M023', 'GHM', 7), +('G159', '10M024', 'GHM', 7), +('G159', '10M02T', 'GHM', 7), +('G159', '10M02V', 'GHM', 7), +('G159', '10M02W', 'GHM', 7), +('G159', '10M031', 'GHM', 7), +('G159', '10M032', 'GHM', 7), +('G159', '10M033', 'GHM', 7), +('G159', '10M034', 'GHM', 7), +('G159', '10M03T', 'GHM', 7), +('G159', '10M03Z', 'GHM', 7), +('G159', '10M081', 'GHM', 7), +('G159', '10M082', 'GHM', 7), +('G159', '10M083', 'GHM', 7), +('G159', '10M084', 'GHM', 7), +('G159', '10M08T', 'GHM', 7), +('G159', '23M08J', 'GHM', 7), +('G160', '10M071', 'GHM', 7), +('G160', '10M072', 'GHM', 7), +('G160', '10M073', 'GHM', 7), +('G160', '10M074', 'GHM', 7), +('G160', '10M07T', 'GHM', 7), +('G160', '10M07V', 'GHM', 7), +('G160', '10M07W', 'GHM', 7), +('G160', '10M121', 'GHM', 7), +('G160', '10M122', 'GHM', 7), +('G160', '10M123', 'GHM', 7), +('G160', '10M124', 'GHM', 7), +('G160', '10M12T', 'GHM', 7), +('G160', '10M14T', 'GHM', 7), +('G160', '10M14Z', 'GHM', 7), +('G161', '10M06Z', 'GHM', 7), +('G161', '10M091', 'GHM', 7), +('G161', '10M092', 'GHM', 7), +('G161', '10M093', 'GHM', 7), +('G161', '10M094', 'GHM', 7), +('G161', '10M09T', 'GHM', 7), +('G161', '10M101', 'GHM', 7), +('G161', '10M102', 'GHM', 7), +('G161', '10M103', 'GHM', 7), +('G161', '10M104', 'GHM', 7), +('G161', '10M10T', 'GHM', 7), +('G161', '10M111', 'GHM', 7), +('G161', '10M112', 'GHM', 7), +('G161', '10M113', 'GHM', 7), +('G161', '10M114', 'GHM', 7), +('G161', '10M11T', 'GHM', 7), +('G161', '10M151', 'GHM', 7), +('G161', '10M152', 'GHM', 7), +('G161', '10M153', 'GHM', 7), +('G161', '10M154', 'GHM', 7), +('G161', '10M15T', 'GHM', 7), +('G161', '10M161', 'GHM', 7), +('G161', '10M162', 'GHM', 7), +('G161', '10M163', 'GHM', 7), +('G161', '10M164', 'GHM', 7), +('G161', '10M16T', 'GHM', 7), +('G161', '10M171', 'GHM', 7), +('G161', '10M172', 'GHM', 7), +('G161', '10M173', 'GHM', 7), +('G161', '10M174', 'GHM', 7), +('G161', '10M17T', 'GHM', 7), +('G161', '10M181', 'GHM', 7), +('G161', '10M182', 'GHM', 7), +('G161', '10M183', 'GHM', 7), +('G161', '10M184', 'GHM', 7), +('G161', '10M18T', 'GHM', 7), +('G162', '10M13T', 'GHM', 7), +('G162', '10M13Z', 'GHM', 7), +('G163', '08C201', 'GHM', 7), +('G163', '08C202', 'GHM', 7), +('G163', '08C203', 'GHM', 7), +('G163', '08C204', 'GHM', 7), +('G163', '08C20J', 'GHM', 7), +('G163', '08C20Z', 'GHM', 7), +('G163', '09C021', 'GHM', 7), +('G163', '09C022', 'GHM', 7), +('G163', '09C023', 'GHM', 7), +('G163', '09C024', 'GHM', 7), +('G163', '09C02J', 'GHM', 7), +('G163', '09C02V', 'GHM', 7), +('G163', '09C02W', 'GHM', 7), +('G163', '09C031', 'GHM', 7), +('G163', '09C032', 'GHM', 7), +('G163', '09C033', 'GHM', 7), +('G163', '09C034', 'GHM', 7), +('G163', '09C03J', 'GHM', 7), +('G163', '09C03V', 'GHM', 7), +('G163', '09C03W', 'GHM', 7), +('G163', '09C091', 'GHM', 7), +('G163', '09C092', 'GHM', 7), +('G163', '09C093', 'GHM', 7), +('G163', '09C094', 'GHM', 7), +('G163', '09C09J', 'GHM', 7), +('G163', '09C09Z', 'GHM', 7), +('G163', '09C121', 'GHM', 7), +('G163', '09C122', 'GHM', 7), +('G163', '09C123', 'GHM', 7), +('G163', '09C124', 'GHM', 7), +('G163', '09C12J', 'GHM', 7), +('G163', '21C021', 'GHM', 7), +('G163', '21C022', 'GHM', 7), +('G163', '21C023', 'GHM', 7), +('G163', '21C024', 'GHM', 7), +('G163', '21C02J', 'GHM', 7), +('G163', '21C02Z', 'GHM', 7), +('G163', '21C031', 'GHM', 7), +('G163', '21C032', 'GHM', 7), +('G163', '21C033', 'GHM', 7), +('G163', '21C034', 'GHM', 7), +('G163', '21C03J', 'GHM', 7), +('G163', '21C03Z', 'GHM', 7), +('G163', '21C061', 'GHM', 7), +('G163', '21C062', 'GHM', 7), +('G163', '21C063', 'GHM', 7), +('G163', '21C064', 'GHM', 7), +('G163', '21C06J', 'GHM', 7), +('G164', '09M021', 'GHM', 7), +('G164', '09M022', 'GHM', 7), +('G164', '09M023', 'GHM', 7), +('G164', '09M024', 'GHM', 7), +('G164', '09M02T', 'GHM', 7), +('G164', '09M02Z', 'GHM', 7), +('G164', '09M031', 'GHM', 7), +('G164', '09M032', 'GHM', 7), +('G164', '09M033', 'GHM', 7), +('G164', '09M034', 'GHM', 7), +('G164', '09M03T', 'GHM', 7), +('G164', '09M03V', 'GHM', 7), +('G164', '09M03W', 'GHM', 7), +('G165', '09M061', 'GHM', 7), +('G165', '09M062', 'GHM', 7), +('G165', '09M063', 'GHM', 7), +('G165', '09M064', 'GHM', 7), +('G165', '09M06T', 'GHM', 7), +('G165', '09M06Z', 'GHM', 7), +('G165', '09M071', 'GHM', 7), +('G165', '09M072', 'GHM', 7), +('G165', '09M073', 'GHM', 7), +('G165', '09M074', 'GHM', 7), +('G165', '09M07T', 'GHM', 7), +('G165', '09M07V', 'GHM', 7), +('G165', '09M07W', 'GHM', 7), +('G165', '09M081', 'GHM', 7), +('G165', '09M082', 'GHM', 7), +('G165', '09M083', 'GHM', 7), +('G165', '09M084', 'GHM', 7), +('G165', '09M08T', 'GHM', 7), +('G165', '09M08V', 'GHM', 7), +('G165', '09M08W', 'GHM', 7), +('G165', '09M14T', 'GHM', 7), +('G165', '09M14Z', 'GHM', 7), +('G166', '09M041', 'GHM', 7), +('G166', '09M042', 'GHM', 7), +('G166', '09M043', 'GHM', 7), +('G166', '09M044', 'GHM', 7), +('G166', '09M04T', 'GHM', 7), +('G166', '09M04Z', 'GHM', 7), +('G166', '09M051', 'GHM', 7), +('G166', '09M052', 'GHM', 7), +('G166', '09M053', 'GHM', 7), +('G166', '09M054', 'GHM', 7), +('G166', '09M05T', 'GHM', 7), +('G166', '09M05V', 'GHM', 7), +('G166', '09M05W', 'GHM', 7), +('G167', '09M111', 'GHM', 7), +('G167', '09M112', 'GHM', 7), +('G167', '09M113', 'GHM', 7), +('G167', '09M114', 'GHM', 7), +('G167', '09M11T', 'GHM', 7), +('G168', '09M12Z', 'GHM', 7), +('G169', '22M021', 'GHM', 7), +('G169', '22M022', 'GHM', 7), +('G169', '22M023', 'GHM', 7), +('G169', '22M024', 'GHM', 7), +('G169', '22M02T', 'GHM', 7), +('G169', '22M02Z', 'GHM', 7), +('G169', '22Z021', 'GHM', 7), +('G169', '22Z022', 'GHM', 7), +('G169', '22Z023', 'GHM', 7), +('G169', '22Z024', 'GHM', 7), +('G169', '22Z02Z', 'GHM', 7), +('G169', '22Z03Z', 'GHM', 7), +('G170', '19M061', 'GHM', 7), +('G170', '19M062', 'GHM', 7), +('G170', '19M063', 'GHM', 7), +('G170', '19M064', 'GHM', 7), +('G170', '19M06T', 'GHM', 7), +('G170', '19M06V', 'GHM', 7), +('G170', '19M06W', 'GHM', 7), +('G170', '19M071', 'GHM', 7), +('G170', '19M072', 'GHM', 7), +('G170', '19M073', 'GHM', 7), +('G170', '19M074', 'GHM', 7), +('G170', '19M07T', 'GHM', 7), +('G170', '19M07V', 'GHM', 7), +('G170', '19M07W', 'GHM', 7), +('G171', '19M021', 'GHM', 7), +('G171', '19M022', 'GHM', 7), +('G171', '19M023', 'GHM', 7), +('G171', '19M024', 'GHM', 7), +('G171', '19M02T', 'GHM', 7), +('G171', '19M02V', 'GHM', 7), +('G171', '19M02W', 'GHM', 7), +('G171', '19M03Z', 'GHM', 7), +('G171', '19M04Z', 'GHM', 7), +('G171', '19M05Z', 'GHM', 7), +('G171', '19M08Z', 'GHM', 7), +('G171', '19M09Z', 'GHM', 7), +('G171', '19M101', 'GHM', 7), +('G171', '19M102', 'GHM', 7), +('G171', '19M103', 'GHM', 7), +('G171', '19M104', 'GHM', 7), +('G171', '19M10T', 'GHM', 7), +('G171', '19M10Z', 'GHM', 7), +('G171', '19M111', 'GHM', 7), +('G171', '19M112', 'GHM', 7), +('G171', '19M113', 'GHM', 7), +('G171', '19M114', 'GHM', 7), +('G171', '19M11T', 'GHM', 7), +('G171', '19M11V', 'GHM', 7), +('G171', '19M11W', 'GHM', 7), +('G171', '19M121', 'GHM', 7), +('G171', '19M122', 'GHM', 7), +('G171', '19M123', 'GHM', 7), +('G171', '19M124', 'GHM', 7), +('G171', '19M12T', 'GHM', 7), +('G171', '19M131', 'GHM', 7), +('G171', '19M132', 'GHM', 7), +('G171', '19M133', 'GHM', 7), +('G171', '19M134', 'GHM', 7), +('G171', '19M13T', 'GHM', 7), +('G171', '19M141', 'GHM', 7), +('G171', '19M142', 'GHM', 7), +('G171', '19M143', 'GHM', 7), +('G171', '19M144', 'GHM', 7), +('G171', '19M14T', 'GHM', 7), +('G171', '19M151', 'GHM', 7), +('G171', '19M152', 'GHM', 7), +('G171', '19M153', 'GHM', 7), +('G171', '19M154', 'GHM', 7), +('G171', '19M15T', 'GHM', 7), +('G171', '19M161', 'GHM', 7), +('G171', '19M162', 'GHM', 7), +('G171', '19M163', 'GHM', 7), +('G171', '19M164', 'GHM', 7), +('G171', '19M16T', 'GHM', 7), +('G171', '19M171', 'GHM', 7), +('G171', '19M172', 'GHM', 7), +('G171', '19M173', 'GHM', 7), +('G171', '19M174', 'GHM', 7), +('G171', '19M181', 'GHM', 7), +('G171', '19M182', 'GHM', 7), +('G171', '19M183', 'GHM', 7), +('G171', '19M184', 'GHM', 7), +('G171', '19M18T', 'GHM', 7), +('G171', '19M191', 'GHM', 7), +('G171', '19M192', 'GHM', 7), +('G171', '19M193', 'GHM', 7), +('G171', '19M194', 'GHM', 7), +('G171', '19M19T', 'GHM', 7), +('G171', '19M201', 'GHM', 7), +('G171', '19M202', 'GHM', 7), +('G171', '19M203', 'GHM', 7), +('G171', '19M204', 'GHM', 7), +('G171', '19M20T', 'GHM', 7), +('G171', '19M22T', 'GHM', 7), +('G171', '19M22Z', 'GHM', 7), +('G172', '19M21Z', 'GHM', 7), +('G173', '20Z021', 'GHM', 7), +('G173', '20Z022', 'GHM', 7), +('G173', '20Z023', 'GHM', 7), +('G173', '20Z024', 'GHM', 7), +('G173', '20Z02T', 'GHM', 7), +('G173', '20Z02Z', 'GHM', 7), +('G173', '20Z031', 'GHM', 7), +('G173', '20Z032', 'GHM', 7), +('G173', '20Z033', 'GHM', 7), +('G173', '20Z034', 'GHM', 7), +('G173', '20Z03Z', 'GHM', 7), +('G173', '20Z041', 'GHM', 7), +('G173', '20Z042', 'GHM', 7), +('G173', '20Z043', 'GHM', 7), +('G173', '20Z044', 'GHM', 7), +('G173', '20Z04T', 'GHM', 7), +('G173', '20Z04Z', 'GHM', 7), +('G173', '20Z051', 'GHM', 7), +('G173', '20Z052', 'GHM', 7), +('G173', '20Z053', 'GHM', 7), +('G173', '20Z054', 'GHM', 7), +('G173', '20Z05Z', 'GHM', 7), +('G173', '20Z061', 'GHM', 7), +('G173', '20Z062', 'GHM', 7), +('G173', '20Z063', 'GHM', 7), +('G173', '20Z064', 'GHM', 7), +('G173', '20Z06T', 'GHM', 7), +('G173', '20Z06V', 'GHM', 7), +('G173', '20Z06W', 'GHM', 7), +('G174', '21M041', 'GHM', 7), +('G174', '21M042', 'GHM', 7), +('G174', '21M043', 'GHM', 7), +('G174', '21M044', 'GHM', 7), +('G174', '21M04T', 'GHM', 7), +('G174', '21M04Z', 'GHM', 7), +('G174', '21M051', 'GHM', 7), +('G174', '21M052', 'GHM', 7), +('G174', '21M053', 'GHM', 7), +('G174', '21M054', 'GHM', 7), +('G174', '21M05T', 'GHM', 7), +('G174', '21M05Z', 'GHM', 7), +('G175', '21M021', 'GHM', 7), +('G175', '21M022', 'GHM', 7), +('G175', '21M023', 'GHM', 7), +('G175', '21M024', 'GHM', 7), +('G175', '21M02T', 'GHM', 7), +('G175', '21M02Z', 'GHM', 7), +('G175', '21M101', 'GHM', 7), +('G175', '21M102', 'GHM', 7), +('G175', '21M103', 'GHM', 7), +('G175', '21M104', 'GHM', 7), +('G175', '21M10T', 'GHM', 7), +('G175', '21M111', 'GHM', 7), +('G175', '21M112', 'GHM', 7), +('G175', '21M113', 'GHM', 7), +('G175', '21M114', 'GHM', 7), +('G175', '21M11T', 'GHM', 7), +('G175', '21M121', 'GHM', 7), +('G175', '21M122', 'GHM', 7), +('G175', '21M123', 'GHM', 7), +('G175', '21M124', 'GHM', 7), +('G175', '21M141', 'GHM', 7), +('G175', '21M142', 'GHM', 7), +('G175', '21M143', 'GHM', 7), +('G175', '21M144', 'GHM', 7), +('G175', '21M14T', 'GHM', 7), +('G175', '21M161', 'GHM', 7), +('G175', '21M162', 'GHM', 7), +('G175', '21M163', 'GHM', 7), +('G175', '21M164', 'GHM', 7), +('G175', '21M16T', 'GHM', 7), +('G176', '23Z02T', 'GHM', 7), +('G176', '23Z02Z', 'GHM', 7), +('G177', '01M211', 'GHM', 7), +('G177', '01M212', 'GHM', 7), +('G177', '01M213', 'GHM', 7), +('G177', '01M214', 'GHM', 7), +('G177', '01M21T', 'GHM', 7), +('G177', '01M21Z', 'GHM', 7), +('G178', '27C021', 'GHM', 7), +('G178', '27C022', 'GHM', 7), +('G178', '27C023', 'GHM', 7), +('G178', '27C024', 'GHM', 7), +('G178', '27C02Z', 'GHM', 7), +('G178', '27C031', 'GHM', 7), +('G178', '27C032', 'GHM', 7), +('G178', '27C033', 'GHM', 7), +('G178', '27C034', 'GHM', 7), +('G178', '27C03Z', 'GHM', 7), +('G178', '27C041', 'GHM', 7), +('G178', '27C042', 'GHM', 7), +('G178', '27C043', 'GHM', 7), +('G178', '27C044', 'GHM', 7), +('G178', '27C04Z', 'GHM', 7), +('G178', '27C051', 'GHM', 7), +('G178', '27C052', 'GHM', 7), +('G178', '27C053', 'GHM', 7), +('G178', '27C054', 'GHM', 7), +('G178', '27C05Z', 'GHM', 7), +('G178', '27C061', 'GHM', 7), +('G178', '27C062', 'GHM', 7), +('G178', '27C063', 'GHM', 7), +('G178', '27C064', 'GHM', 7), +('G178', '27C06Z', 'GHM', 7), +('G178', '27C071', 'GHM', 7), +('G178', '27C072', 'GHM', 7), +('G178', '27C073', 'GHM', 7), +('G178', '27C074', 'GHM', 7), +('G178', '27C07Z', 'GHM', 7), +('G179', '01C081', 'GHM', 7), +('G179', '01C082', 'GHM', 7), +('G179', '01C083', 'GHM', 7), +('G179', '01C084', 'GHM', 7), +('G179', '01C08J', 'GHM', 7), +('G179', '01C08V', 'GHM', 7), +('G179', '01C08W', 'GHM', 7), +('G179', '05C181', 'GHM', 7), +('G179', '05C182', 'GHM', 7), +('G179', '05C183', 'GHM', 7), +('G179', '05C184', 'GHM', 7), +('G179', '05C18J', 'GHM', 7), +('G179', '05C18Z', 'GHM', 7), +('G179', '08C211', 'GHM', 7), +('G179', '08C212', 'GHM', 7), +('G179', '08C213', 'GHM', 7), +('G179', '08C214', 'GHM', 7), +('G179', '08C21J', 'GHM', 7), +('G179', '08C21V', 'GHM', 7), +('G179', '08C21W', 'GHM', 7), +('G179', '09C101', 'GHM', 7), +('G179', '09C102', 'GHM', 7), +('G179', '09C103', 'GHM', 7), +('G179', '09C104', 'GHM', 7), +('G179', '09C10J', 'GHM', 7), +('G179', '09C10V', 'GHM', 7), +('G179', '09C10W', 'GHM', 7), +('G179', '09C141', 'GHM', 7), +('G179', '09C142', 'GHM', 7), +('G179', '09C143', 'GHM', 7), +('G179', '09C144', 'GHM', 7), +('G179', '09C14J', 'GHM', 7), +('G179', '09C151', 'GHM', 7), +('G179', '09C152', 'GHM', 7), +('G179', '09C153', 'GHM', 7), +('G179', '09C154', 'GHM', 7), +('G179', '09C15J', 'GHM', 7), +('G179', '09C161', 'GHM', 7), +('G179', '09C162', 'GHM', 7), +('G179', '09C163', 'GHM', 7), +('G179', '09C164', 'GHM', 7), +('G179', '09C171', 'GHM', 7), +('G179', '09C172', 'GHM', 7), +('G179', '09C173', 'GHM', 7), +('G179', '09C174', 'GHM', 7), +('G179', '09C181', 'GHM', 7), +('G179', '09C182', 'GHM', 7), +('G179', '09C183', 'GHM', 7), +('G179', '09C184', 'GHM', 7), +('G179', '09C191', 'GHM', 7), +('G179', '09C192', 'GHM', 7), +('G179', '09C193', 'GHM', 7), +('G179', '09C194', 'GHM', 7), +('G179', '09C201', 'GHM', 7), +('G179', '09C202', 'GHM', 7), +('G179', '09C203', 'GHM', 7), +('G179', '09C204', 'GHM', 7), +('G179', '09C20J', 'GHM', 7), +('G179', '09C211', 'GHM', 7), +('G179', '09C212', 'GHM', 7), +('G179', '09C213', 'GHM', 7), +('G179', '09C214', 'GHM', 7), +('G179', '09C221', 'GHM', 7), +('G179', '09C222', 'GHM', 7), +('G179', '09C223', 'GHM', 7), +('G179', '09C224', 'GHM', 7), +('G179', '09C22J', 'GHM', 7), +('G179', '09C231', 'GHM', 7), +('G179', '09C232', 'GHM', 7), +('G179', '09C233', 'GHM', 7), +('G179', '09C234', 'GHM', 7), +('G179', '09C23J', 'GHM', 7), +('G179', '09C241', 'GHM', 7), +('G179', '09C242', 'GHM', 7), +('G179', '09C243', 'GHM', 7), +('G179', '09C244', 'GHM', 7), +('G179', '09C24J', 'GHM', 7), +('G179', '09C251', 'GHM', 7), +('G179', '09C252', 'GHM', 7), +('G179', '09C253', 'GHM', 7), +('G179', '09C254', 'GHM', 7), +('G179', '09C25J', 'GHM', 7), +('G179', '09C261', 'GHM', 7), +('G179', '09C262', 'GHM', 7), +('G179', '09C263', 'GHM', 7), +('G179', '09C264', 'GHM', 7), +('G179', '09C26J', 'GHM', 7), +('G179', '09C271', 'GHM', 7), +('G179', '09C272', 'GHM', 7), +('G179', '09C273', 'GHM', 7), +('G179', '09C274', 'GHM', 7), +('G179', '09C281', 'GHM', 7), +('G179', '09C282', 'GHM', 7), +('G179', '09C283', 'GHM', 7), +('G179', '09C284', 'GHM', 7), +('G179', '09C28J', 'GHM', 7), +('G179', '09C291', 'GHM', 7), +('G179', '09C292', 'GHM', 7), +('G179', '09C293', 'GHM', 7), +('G179', '09C294', 'GHM', 7), +('G179', '09C29J', 'GHM', 7), +('G179', '09C301', 'GHM', 7), +('G179', '09C302', 'GHM', 7), +('G179', '09C303', 'GHM', 7), +('G179', '09C304', 'GHM', 7), +('G179', '09C30J', 'GHM', 7), +('G179', '09C311', 'GHM', 7), +('G179', '09C312', 'GHM', 7), +('G179', '09C313', 'GHM', 7), +('G179', '09C314', 'GHM', 7), +('G179', '09C31J', 'GHM', 7), +('G179', '09C321', 'GHM', 7), +('G179', '09C322', 'GHM', 7), +('G179', '09C323', 'GHM', 7), +('G179', '09C324', 'GHM', 7), +('G179', '09C32J', 'GHM', 7), +('G179', '09C331', 'GHM', 7), +('G179', '09C332', 'GHM', 7), +('G179', '09C333', 'GHM', 7), +('G179', '09C334', 'GHM', 7), +('G179', '09C341', 'GHM', 7), +('G179', '09C342', 'GHM', 7), +('G179', '09C343', 'GHM', 7), +('G179', '09C344', 'GHM', 7), +('G179', '09C34J', 'GHM', 7), +('G179', '10C081', 'GHM', 7), +('G179', '10C082', 'GHM', 7), +('G179', '10C083', 'GHM', 7), +('G179', '10C084', 'GHM', 7), +('G179', '10C08J', 'GHM', 7), +('G179', '10C08Z', 'GHM', 7), +('G179', '18C021', 'GHM', 7), +('G179', '18C022', 'GHM', 7), +('G179', '18C023', 'GHM', 7), +('G179', '18C024', 'GHM', 7), +('G179', '18C02J', 'GHM', 7), +('G179', '18C02V', 'GHM', 7), +('G179', '18C02W', 'GHM', 7), +('G179', '19C021', 'GHM', 7), +('G179', '19C022', 'GHM', 7), +('G179', '19C023', 'GHM', 7), +('G179', '19C024', 'GHM', 7), +('G179', '19C02Z', 'GHM', 7), +('G179', '21C051', 'GHM', 7), +('G179', '21C052', 'GHM', 7), +('G179', '21C053', 'GHM', 7), +('G179', '21C054', 'GHM', 7), +('G179', '21C05J', 'GHM', 7), +('G179', '21C05V', 'GHM', 7), +('G179', '21C05W', 'GHM', 7), +('G179', '23C021', 'GHM', 7), +('G179', '23C022', 'GHM', 7), +('G179', '23C023', 'GHM', 7), +('G179', '23C024', 'GHM', 7), +('G179', '23C02J', 'GHM', 7), +('G179', '23C02Z', 'GHM', 7), +('G179', '25C021', 'GHM', 7), +('G179', '25C022', 'GHM', 7), +('G179', '25C023', 'GHM', 7), +('G179', '25C024', 'GHM', 7), +('G179', '25C02Z', 'GHM', 7), +('G180', '09Z02A', 'GHM', 7), +('G180', '09Z02B', 'GHM', 7), +('G180', '09Z02Z', 'GHM', 7), +('G180', '23Z03Z', 'GHM', 7), +('G181', '01M37E', 'GHM', 7), +('G181', '05M22E', 'GHM', 7), +('G181', '21M131', 'GHM', 7), +('G181', '21M132', 'GHM', 7), +('G181', '21M133', 'GHM', 7), +('G181', '21M134', 'GHM', 7), +('G181', '21M151', 'GHM', 7), +('G181', '21M152', 'GHM', 7), +('G181', '21M153', 'GHM', 7), +('G181', '21M154', 'GHM', 7), +('G181', '21M15T', 'GHM', 7), +('G181', '23M111', 'GHM', 7), +('G181', '23M112', 'GHM', 7), +('G181', '23M113', 'GHM', 7), +('G181', '23M114', 'GHM', 7), +('G181', '23M11T', 'GHM', 7), +('G181', '23M15Z', 'GHM', 7), +('G182', '23M13Z', 'GHM', 7), +('G182', '23M18Z', 'GHM', 7), +('G182', '23M21T', 'GHM', 7), +('G182', '23M21Z', 'GHM', 7), +('G183', '23K02Z', 'GHM', 7), +('G184', '23M101', 'GHM', 7), +('G184', '23M102', 'GHM', 7), +('G184', '23M103', 'GHM', 7), +('G184', '23M104', 'GHM', 7), +('G184', '23M10T', 'GHM', 7), +('G184', '23M14Z', 'GHM', 7), +('G185', '23M19Z', 'GHM', 7), +('G186', '23M02T', 'GHM', 7), +('G186', '23M02Z', 'GHM', 7), +('G186', '23M16T', 'GHM', 7), +('G186', '23M16Z', 'GHM', 7), +('G187', '28Z01Z', 'GHM', 7), +('G187', '28Z02Z', 'GHM', 7), +('G187', '28Z03Z', 'GHM', 7), +('G187', '28Z04Z', 'GHM', 7), +('G187', '28Z05Z', 'GHM', 7), +('G187', '28Z06Z', 'GHM', 7), +('G188', '28Z14Z', 'GHM', 7), +('G189', '28Z08Z', 'GHM', 7), +('G189', '28Z09Z', 'GHM', 7), +('G189', '28Z10Z', 'GHM', 7), +('G189', '28Z11Z', 'GHM', 7), +('G189', '28Z12Z', 'GHM', 7), +('G189', '28Z13Z', 'GHM', 7), +('G189', '28Z18Z', 'GHM', 7), +('G189', '28Z19Z', 'GHM', 7), +('G189', '28Z20Z', 'GHM', 7), +('G189', '28Z21Z', 'GHM', 7), +('G189', '28Z22Z', 'GHM', 7), +('G189', '28Z23Z', 'GHM', 7), +('G189', '28Z24Z', 'GHM', 7), +('G189', '28Z25Z', 'GHM', 7), +('G190', '28Z07Z', 'GHM', 7), +('G191', '28Z17Z', 'GHM', 7), +('G192', '28Z15Z', 'GHM', 7), +('G193', '28Z16Z', 'GHM', 7), +('G194', '23M04Z', 'GHM', 7), +('G194', '23M05Z', 'GHM', 7), +('G194', '23M061', 'GHM', 7), +('G194', '23M062', 'GHM', 7), +('G194', '23M063', 'GHM', 7), +('G194', '23M064', 'GHM', 7), +('G194', '23M06T', 'GHM', 7), +('G194', '23M06Z', 'GHM', 7), +('G194', '23M20T', 'GHM', 7), +('G194', '23M20Z', 'GHM', 7), +('G195', '15Z10E', 'GHM', 7), +('G196', '01K04J', 'GHM', 7), +('G197', '01K06J', 'GHM', 7), +('G198', '05K17J', 'GHM', 7), +('G199', '05K14Z', 'GHM', 7), +('G199', '11K07Z', 'GHM', 7), +('G200', '05K18J', 'GHM', 7), +('G201', '13K06J', 'GHM', 7), +('G202', '11K021', 'GHM', 7), +('G202', '11K022', 'GHM', 7), +('G202', '11K023', 'GHM', 7), +('G202', '11K024', 'GHM', 7), +('G202', '11K02J', 'GHM', 7), +('G202', '11K02V', 'GHM', 7), +('G202', '11K02W', 'GHM', 7), +('G203', '09K02J', 'GHM', 7), +('G203', '17K07J', 'GHM', 7), +('G203', '23K03J', 'GHM', 7), +('G204', '22C021', 'GHM', 7), +('G204', '22C022', 'GHM', 7), +('G204', '22C023', 'GHM', 7), +('G204', '22C024', 'GHM', 7), +('G204', '22C02J', 'GHM', 7), +('G204', '22C02Z', 'GHM', 7), +('G204', '22C031', 'GHM', 7), +('G204', '22C032', 'GHM', 7), +('G204', '22C033', 'GHM', 7), +('G204', '22C034', 'GHM', 7), +('G204', '22C03Z', 'GHM', 7), +('G205', '01K05J', 'GHM', 7), +('G206', '21K02J', 'GHM', 7), +('G207', '03K021', 'GHM', 7), +('G207', '03K022', 'GHM', 7), +('G207', '03K023', 'GHM', 7), +('G207', '03K024', 'GHM', 7), +('G207', '03K02J', 'GHM', 7), +('G207', '03K02Z', 'GHM', 7), +('G207', '03K04J', 'GHM', 7), +('G208', '11K08J', 'GHM', 7), +('G209', '12K06J', 'GHM', 7), +('G210', '08M261', 'GHM', 7), +('G210', '08M262', 'GHM', 7), +('G210', '08M263', 'GHM', 7), +('G210', '08M264', 'GHM', 7), +('G210', '08M381', 'GHM', 7), +('G210', '08M382', 'GHM', 7), +('G210', '08M383', 'GHM', 7), +('G210', '08M384', 'GHM', 7), +('G210', '08M38T', 'GHM', 7), +('G211', '08M16Z', 'GHM', 7), +('G211', '08M17Z', 'GHM', 7), +('G211', '08M311', 'GHM', 7), +('G211', '08M312', 'GHM', 7), +('G211', '08M313', 'GHM', 7), +('G211', '08M314', 'GHM', 7), +('G211', '08M31T', 'GHM', 7), +('G212', '10M191', 'GHM', 7), +('G212', '10M192', 'GHM', 7), +('G212', '10M193', 'GHM', 7), +('G212', '10M194', 'GHM', 7), +('G212', '10M201', 'GHM', 7), +('G212', '10M202', 'GHM', 7), +('G212', '10M203', 'GHM', 7), +('G212', '10M204', 'GHM', 7), +('G213', '06K02Z', 'GHM', 7), +('G214', '06K06J', 'GHM', 7), +('G215', '22K02J', 'GHM', 7), +('G216', '26M021', 'GHM', 7), +('G216', '26M022', 'GHM', 7), +('G216', '26M023', 'GHM', 7), +('G216', '26M024', 'GHM', 7), +('G216', '26M02Z', 'GHM', 7), +('G217', '07K061', 'GHM', 7), +('G217', '07K062', 'GHM', 7), +('G217', '07K063', 'GHM', 7), +('G217', '07K064', 'GHM', 7), +('G999', '90C01Z', 'GHM', 7), +('G999', '90H01Z', 'GHM', 7), +('G999', '90H02Z', 'GHM', 7), +('G999', '90H03Z', 'GHM', 7), +('G999', '90Z00Z', 'GHM', 7), +('G999', '90Z01Z', 'GHM', 7), +('G999', '90Z02Z', 'GHM', 7), +('G999', '90Z03Z', 'GHM', 7), +('G999', '999999', 'GHM', 7), +('G999', 'ZZZZZZ', 'GHM', 7), +('C01', '27C021', 'GHM', 8), +('C01', '27C022', 'GHM', 8), +('C01', '27C023', 'GHM', 8), +('C01', '27C024', 'GHM', 8), +('C01', '27C02Z', 'GHM', 8), +('C01', '27C031', 'GHM', 8), +('C01', '27C032', 'GHM', 8), +('C01', '27C033', 'GHM', 8), +('C01', '27C034', 'GHM', 8), +('C01', '27C03Z', 'GHM', 8), +('C01', '27C041', 'GHM', 8), +('C01', '27C042', 'GHM', 8), +('C01', '27C043', 'GHM', 8), +('C01', '27C044', 'GHM', 8), +('C01', '27C04Z', 'GHM', 8), +('C01', '27C051', 'GHM', 8), +('C01', '27C052', 'GHM', 8), +('C01', '27C053', 'GHM', 8), +('C01', '27C054', 'GHM', 8), +('C01', '27C05Z', 'GHM', 8), +('C01', '27C061', 'GHM', 8), +('C01', '27C062', 'GHM', 8), +('C01', '27C063', 'GHM', 8), +('C01', '27C064', 'GHM', 8), +('C01', '27C06Z', 'GHM', 8), +('C01', '27C071', 'GHM', 8), +('C01', '27C072', 'GHM', 8), +('C01', '27C073', 'GHM', 8), +('C01', '27C074', 'GHM', 8), +('C01', '27C07Z', 'GHM', 8), +('C02', '01C02Z', 'GHM', 8), +('C02', '01C031', 'GHM', 8), +('C02', '01C032', 'GHM', 8), +('C02', '01C033', 'GHM', 8), +('C02', '01C034', 'GHM', 8), +('C02', '01C03V', 'GHM', 8), +('C02', '01C03W', 'GHM', 8), +('C02', '01C041', 'GHM', 8), +('C02', '01C042', 'GHM', 8), +('C02', '01C043', 'GHM', 8), +('C02', '01C044', 'GHM', 8), +('C02', '01C04V', 'GHM', 8), +('C02', '01C04W', 'GHM', 8), +('C02', '01C051', 'GHM', 8), +('C02', '01C052', 'GHM', 8), +('C02', '01C053', 'GHM', 8), +('C02', '01C054', 'GHM', 8), +('C02', '01C05V', 'GHM', 8), +('C02', '01C05W', 'GHM', 8), +('C02', '01C111', 'GHM', 8), +('C02', '01C112', 'GHM', 8), +('C02', '01C113', 'GHM', 8), +('C02', '01C114', 'GHM', 8), +('C02', '01C11Z', 'GHM', 8), +('C02', '01C121', 'GHM', 8), +('C02', '01C122', 'GHM', 8), +('C02', '01C123', 'GHM', 8), +('C02', '01C124', 'GHM', 8), +('C02', '01C12Z', 'GHM', 8), +('C02', '08C26Z', 'GHM', 8), +('C02', '08C271', 'GHM', 8), +('C02', '08C272', 'GHM', 8), +('C02', '08C273', 'GHM', 8), +('C02', '08C274', 'GHM', 8), +('C02', '08C27V', 'GHM', 8), +('C02', '08C27W', 'GHM', 8), +('C02', '08C511', 'GHM', 8), +('C02', '08C512', 'GHM', 8), +('C02', '08C513', 'GHM', 8), +('C02', '08C514', 'GHM', 8), +('C02', '08C521', 'GHM', 8), +('C02', '08C522', 'GHM', 8), +('C02', '08C523', 'GHM', 8), +('C02', '08C524', 'GHM', 8), +('C02', '10C021', 'GHM', 8), +('C02', '10C022', 'GHM', 8), +('C02', '10C023', 'GHM', 8), +('C02', '10C024', 'GHM', 8), +('C02', '10C02Z', 'GHM', 8), +('C03', '01C091', 'GHM', 8), +('C03', '01C092', 'GHM', 8), +('C03', '01C093', 'GHM', 8), +('C03', '01C094', 'GHM', 8), +('C03', '01C09Z', 'GHM', 8), +('C03', '01C101', 'GHM', 8), +('C03', '01C102', 'GHM', 8), +('C03', '01C103', 'GHM', 8), +('C03', '01C104', 'GHM', 8), +('C03', '01C10J', 'GHM', 8), +('C03', '01C10Z', 'GHM', 8), +('C04', '05C021', 'GHM', 8), +('C04', '05C022', 'GHM', 8), +('C04', '05C023', 'GHM', 8), +('C04', '05C024', 'GHM', 8), +('C04', '05C02Z', 'GHM', 8), +('C04', '05C031', 'GHM', 8), +('C04', '05C032', 'GHM', 8), +('C04', '05C033', 'GHM', 8), +('C04', '05C034', 'GHM', 8), +('C04', '05C03V', 'GHM', 8), +('C04', '05C03W', 'GHM', 8), +('C04', '05C041', 'GHM', 8), +('C04', '05C042', 'GHM', 8), +('C04', '05C043', 'GHM', 8), +('C04', '05C044', 'GHM', 8), +('C04', '05C04V', 'GHM', 8), +('C04', '05C04W', 'GHM', 8), +('C04', '05C051', 'GHM', 8), +('C04', '05C052', 'GHM', 8), +('C04', '05C053', 'GHM', 8), +('C04', '05C054', 'GHM', 8), +('C04', '05C05V', 'GHM', 8), +('C04', '05C05W', 'GHM', 8), +('C04', '05C061', 'GHM', 8), +('C04', '05C062', 'GHM', 8), +('C04', '05C063', 'GHM', 8), +('C04', '05C064', 'GHM', 8), +('C04', '05C06V', 'GHM', 8), +('C04', '05C06W', 'GHM', 8), +('C04', '05C071', 'GHM', 8), +('C04', '05C072', 'GHM', 8), +('C04', '05C073', 'GHM', 8), +('C04', '05C074', 'GHM', 8), +('C04', '05C07Z', 'GHM', 8), +('C04', '05C081', 'GHM', 8), +('C04', '05C082', 'GHM', 8), +('C04', '05C083', 'GHM', 8), +('C04', '05C084', 'GHM', 8), +('C04', '05C08T', 'GHM', 8), +('C04', '05C08V', 'GHM', 8), +('C04', '05C08W', 'GHM', 8), +('C04', '05C091', 'GHM', 8), +('C04', '05C092', 'GHM', 8), +('C04', '05C093', 'GHM', 8), +('C04', '05C094', 'GHM', 8), +('C04', '05C09Z', 'GHM', 8), +('C05', '04C021', 'GHM', 8), +('C05', '04C022', 'GHM', 8), +('C05', '04C023', 'GHM', 8), +('C05', '04C024', 'GHM', 8), +('C05', '04C02V', 'GHM', 8), +('C05', '04C02W', 'GHM', 8), +('C05', '04C031', 'GHM', 8), +('C05', '04C032', 'GHM', 8), +('C05', '04C033', 'GHM', 8), +('C05', '04C034', 'GHM', 8), +('C05', '04C03V', 'GHM', 8), +('C05', '04C03W', 'GHM', 8), +('C05', '04C041', 'GHM', 8), +('C05', '04C042', 'GHM', 8), +('C05', '04C043', 'GHM', 8), +('C05', '04C044', 'GHM', 8), +('C06', '06C021', 'GHM', 8), +('C06', '06C022', 'GHM', 8), +('C06', '06C023', 'GHM', 8), +('C06', '06C024', 'GHM', 8), +('C06', '06C02Z', 'GHM', 8), +('C06', '06C031', 'GHM', 8), +('C06', '06C032', 'GHM', 8), +('C06', '06C033', 'GHM', 8), +('C06', '06C034', 'GHM', 8), +('C06', '06C03V', 'GHM', 8), +('C06', '06C03W', 'GHM', 8), +('C06', '06C041', 'GHM', 8), +('C06', '06C042', 'GHM', 8), +('C06', '06C043', 'GHM', 8), +('C06', '06C044', 'GHM', 8), +('C06', '06C04V', 'GHM', 8), +('C06', '06C04W', 'GHM', 8), +('C06', '06C051', 'GHM', 8), +('C06', '06C052', 'GHM', 8), +('C06', '06C053', 'GHM', 8), +('C06', '06C054', 'GHM', 8), +('C06', '06C05Z', 'GHM', 8), +('C06', '06C161', 'GHM', 8), +('C06', '06C162', 'GHM', 8), +('C06', '06C163', 'GHM', 8), +('C06', '06C164', 'GHM', 8), +('C06', '06C16V', 'GHM', 8), +('C06', '06C16W', 'GHM', 8), +('C06', '06C201', 'GHM', 8), +('C06', '06C202', 'GHM', 8), +('C06', '06C203', 'GHM', 8), +('C06', '06C204', 'GHM', 8), +('C06', '06C221', 'GHM', 8), +('C06', '06C222', 'GHM', 8), +('C06', '06C223', 'GHM', 8), +('C06', '06C224', 'GHM', 8), +('C06', '10C04Z', 'GHM', 8), +('C06', '10C091', 'GHM', 8), +('C06', '10C092', 'GHM', 8), +('C06', '10C093', 'GHM', 8), +('C06', '10C094', 'GHM', 8), +('C06', '10C09Z', 'GHM', 8), +('C07', '06C071', 'GHM', 8), +('C07', '06C072', 'GHM', 8), +('C07', '06C073', 'GHM', 8), +('C07', '06C074', 'GHM', 8), +('C07', '06C07V', 'GHM', 8), +('C07', '06C07W', 'GHM', 8), +('C07', '06C081', 'GHM', 8), +('C07', '06C082', 'GHM', 8), +('C07', '06C083', 'GHM', 8), +('C07', '06C084', 'GHM', 8), +('C07', '06C08V', 'GHM', 8), +('C07', '06C08W', 'GHM', 8), +('C07', '06C091', 'GHM', 8), +('C07', '06C092', 'GHM', 8), +('C07', '06C093', 'GHM', 8), +('C07', '06C094', 'GHM', 8), +('C07', '06C09V', 'GHM', 8), +('C07', '06C09W', 'GHM', 8), +('C07', '06C101', 'GHM', 8), +('C07', '06C102', 'GHM', 8), +('C07', '06C103', 'GHM', 8), +('C07', '06C104', 'GHM', 8), +('C07', '06C10J', 'GHM', 8), +('C07', '06C10Z', 'GHM', 8), +('C07', '06C111', 'GHM', 8), +('C07', '06C112', 'GHM', 8), +('C07', '06C113', 'GHM', 8), +('C07', '06C114', 'GHM', 8), +('C07', '06C11J', 'GHM', 8), +('C07', '06C11V', 'GHM', 8), +('C07', '06C11W', 'GHM', 8), +('C07', '06C121', 'GHM', 8), +('C07', '06C122', 'GHM', 8), +('C07', '06C123', 'GHM', 8), +('C07', '06C124', 'GHM', 8), +('C07', '06C12J', 'GHM', 8), +('C07', '06C12V', 'GHM', 8), +('C07', '06C12W', 'GHM', 8), +('C07', '06C131', 'GHM', 8), +('C07', '06C132', 'GHM', 8), +('C07', '06C133', 'GHM', 8), +('C07', '06C134', 'GHM', 8), +('C07', '06C13V', 'GHM', 8), +('C07', '06C13W', 'GHM', 8), +('C07', '06C141', 'GHM', 8), +('C07', '06C142', 'GHM', 8), +('C07', '06C143', 'GHM', 8), +('C07', '06C144', 'GHM', 8), +('C07', '06C14J', 'GHM', 8), +('C07', '06C14V', 'GHM', 8), +('C07', '06C14W', 'GHM', 8), +('C07', '06C151', 'GHM', 8), +('C07', '06C152', 'GHM', 8), +('C07', '06C153', 'GHM', 8), +('C07', '06C154', 'GHM', 8), +('C07', '06C15V', 'GHM', 8), +('C07', '06C15W', 'GHM', 8), +('C07', '06C191', 'GHM', 8), +('C07', '06C192', 'GHM', 8), +('C07', '06C193', 'GHM', 8), +('C07', '06C194', 'GHM', 8), +('C07', '06C19J', 'GHM', 8), +('C07', '06C211', 'GHM', 8), +('C07', '06C212', 'GHM', 8), +('C07', '06C213', 'GHM', 8), +('C07', '06C214', 'GHM', 8), +('C07', '06C231', 'GHM', 8), +('C07', '06C232', 'GHM', 8), +('C07', '06C233', 'GHM', 8), +('C07', '06C234', 'GHM', 8), +('C07', '06C23J', 'GHM', 8), +('C07', '06C241', 'GHM', 8), +('C07', '06C242', 'GHM', 8), +('C07', '06C243', 'GHM', 8), +('C07', '06C244', 'GHM', 8), +('C07', '06C24J', 'GHM', 8), +('C07', '06C251', 'GHM', 8), +('C07', '06C252', 'GHM', 8), +('C07', '06C253', 'GHM', 8), +('C07', '06C254', 'GHM', 8), +('C07', '06C25J', 'GHM', 8), +('C07', '09C081', 'GHM', 8), +('C07', '09C082', 'GHM', 8), +('C07', '09C083', 'GHM', 8), +('C07', '09C084', 'GHM', 8), +('C07', '09C08J', 'GHM', 8), +('C07', '09C08Z', 'GHM', 8), +('C07', '09C131', 'GHM', 8), +('C07', '09C132', 'GHM', 8), +('C07', '09C133', 'GHM', 8), +('C07', '09C134', 'GHM', 8), +('C07', '09C13J', 'GHM', 8), +('C07', '10C131', 'GHM', 8), +('C07', '10C132', 'GHM', 8), +('C07', '10C133', 'GHM', 8), +('C07', '10C134', 'GHM', 8), +('C07', '10C13Z', 'GHM', 8), +('C07', '16C021', 'GHM', 8), +('C07', '16C022', 'GHM', 8), +('C07', '16C023', 'GHM', 8), +('C07', '16C024', 'GHM', 8), +('C07', '16C02Z', 'GHM', 8), +('C08', '07C061', 'GHM', 8), +('C08', '07C062', 'GHM', 8), +('C08', '07C063', 'GHM', 8), +('C08', '07C064', 'GHM', 8), +('C08', '07C06Z', 'GHM', 8), +('C08', '07C071', 'GHM', 8), +('C08', '07C072', 'GHM', 8), +('C08', '07C073', 'GHM', 8), +('C08', '07C074', 'GHM', 8), +('C08', '07C07Z', 'GHM', 8), +('C08', '07C081', 'GHM', 8), +('C08', '07C082', 'GHM', 8), +('C08', '07C083', 'GHM', 8), +('C08', '07C084', 'GHM', 8), +('C08', '07C08Z', 'GHM', 8), +('C08', '07C091', 'GHM', 8), +('C08', '07C092', 'GHM', 8), +('C08', '07C093', 'GHM', 8), +('C08', '07C094', 'GHM', 8), +('C08', '07C09V', 'GHM', 8), +('C08', '07C09W', 'GHM', 8), +('C08', '07C101', 'GHM', 8), +('C08', '07C102', 'GHM', 8), +('C08', '07C103', 'GHM', 8), +('C08', '07C104', 'GHM', 8), +('C08', '07C10V', 'GHM', 8), +('C08', '07C10W', 'GHM', 8), +('C08', '07C111', 'GHM', 8), +('C08', '07C112', 'GHM', 8), +('C08', '07C113', 'GHM', 8), +('C08', '07C114', 'GHM', 8), +('C08', '07C11V', 'GHM', 8), +('C08', '07C11W', 'GHM', 8), +('C08', '07C121', 'GHM', 8), +('C08', '07C122', 'GHM', 8), +('C08', '07C123', 'GHM', 8), +('C08', '07C124', 'GHM', 8), +('C08', '07C12V', 'GHM', 8), +('C08', '07C12W', 'GHM', 8), +('C08', '07C131', 'GHM', 8), +('C08', '07C132', 'GHM', 8), +('C08', '07C133', 'GHM', 8), +('C08', '07C134', 'GHM', 8), +('C08', '07C141', 'GHM', 8), +('C08', '07C142', 'GHM', 8), +('C08', '07C143', 'GHM', 8), +('C08', '07C144', 'GHM', 8), +('C08', '07C14J', 'GHM', 8), +('C09', '08C021', 'GHM', 8), +('C09', '08C022', 'GHM', 8), +('C09', '08C023', 'GHM', 8), +('C09', '08C024', 'GHM', 8), +('C09', '08C02Z', 'GHM', 8), +('C09', '08C041', 'GHM', 8), +('C09', '08C042', 'GHM', 8), +('C09', '08C043', 'GHM', 8), +('C09', '08C044', 'GHM', 8), +('C09', '08C04Z', 'GHM', 8), +('C09', '08C221', 'GHM', 8), +('C09', '08C222', 'GHM', 8), +('C09', '08C223', 'GHM', 8), +('C09', '08C224', 'GHM', 8), +('C09', '08C22Z', 'GHM', 8), +('C09', '08C241', 'GHM', 8), +('C09', '08C242', 'GHM', 8), +('C09', '08C243', 'GHM', 8), +('C09', '08C244', 'GHM', 8), +('C09', '08C24Z', 'GHM', 8), +('C09', '08C251', 'GHM', 8), +('C09', '08C252', 'GHM', 8), +('C09', '08C253', 'GHM', 8), +('C09', '08C254', 'GHM', 8), +('C09', '08C25Z', 'GHM', 8), +('C09', '08C471', 'GHM', 8), +('C09', '08C472', 'GHM', 8), +('C09', '08C473', 'GHM', 8), +('C09', '08C474', 'GHM', 8), +('C09', '08C481', 'GHM', 8), +('C09', '08C482', 'GHM', 8), +('C09', '08C483', 'GHM', 8), +('C09', '08C484', 'GHM', 8), +('C09', '08C491', 'GHM', 8), +('C09', '08C492', 'GHM', 8), +('C09', '08C493', 'GHM', 8), +('C09', '08C494', 'GHM', 8), +('C09', '08C501', 'GHM', 8), +('C09', '08C502', 'GHM', 8), +('C09', '08C503', 'GHM', 8), +('C09', '08C504', 'GHM', 8), +('C10', '08C121', 'GHM', 8), +('C10', '08C122', 'GHM', 8), +('C10', '08C123', 'GHM', 8), +('C10', '08C124', 'GHM', 8), +('C10', '08C12J', 'GHM', 8), +('C10', '08C12Z', 'GHM', 8), +('C10', '08C19Z', 'GHM', 8), +('C10', '08C341', 'GHM', 8), +('C10', '08C342', 'GHM', 8), +('C10', '08C343', 'GHM', 8), +('C10', '08C344', 'GHM', 8), +('C10', '08C34J', 'GHM', 8), +('C10', '08C381', 'GHM', 8), +('C10', '08C382', 'GHM', 8), +('C10', '08C383', 'GHM', 8), +('C10', '08C384', 'GHM', 8), +('C10', '08C38J', 'GHM', 8), +('C10', '08C401', 'GHM', 8), +('C10', '08C402', 'GHM', 8), +('C10', '08C403', 'GHM', 8), +('C10', '08C404', 'GHM', 8), +('C10', '08C40J', 'GHM', 8), +('C10', '08C451', 'GHM', 8), +('C10', '08C452', 'GHM', 8), +('C10', '08C453', 'GHM', 8), +('C10', '08C454', 'GHM', 8), +('C10', '08C45J', 'GHM', 8), +('C10', '08C581', 'GHM', 8), +('C10', '08C582', 'GHM', 8), +('C10', '08C583', 'GHM', 8), +('C10', '08C584', 'GHM', 8), +('C10', '08C58J', 'GHM', 8), +('C11', '01C07Z', 'GHM', 8), +('C11', '01C131', 'GHM', 8), +('C11', '01C132', 'GHM', 8), +('C11', '01C133', 'GHM', 8), +('C11', '01C134', 'GHM', 8), +('C11', '01C13J', 'GHM', 8), +('C11', '01C13Z', 'GHM', 8), +('C11', '01C141', 'GHM', 8), +('C11', '01C142', 'GHM', 8), +('C11', '01C143', 'GHM', 8), +('C11', '01C144', 'GHM', 8), +('C11', '01C14J', 'GHM', 8), +('C11', '01C151', 'GHM', 8), +('C11', '01C152', 'GHM', 8), +('C11', '01C153', 'GHM', 8), +('C11', '01C154', 'GHM', 8), +('C11', '01C15J', 'GHM', 8), +('C11', '05C121', 'GHM', 8), +('C11', '05C122', 'GHM', 8), +('C11', '05C123', 'GHM', 8), +('C11', '05C124', 'GHM', 8), +('C11', '05C12V', 'GHM', 8), +('C11', '05C12W', 'GHM', 8), +('C11', '05C131', 'GHM', 8), +('C11', '05C132', 'GHM', 8), +('C11', '05C133', 'GHM', 8), +('C11', '05C134', 'GHM', 8), +('C11', '05C13J', 'GHM', 8), +('C11', '05C13V', 'GHM', 8), +('C11', '05C13W', 'GHM', 8), +('C11', '08C061', 'GHM', 8), +('C11', '08C062', 'GHM', 8), +('C11', '08C063', 'GHM', 8), +('C11', '08C064', 'GHM', 8), +('C11', '08C06Z', 'GHM', 8), +('C11', '08C08Z', 'GHM', 8), +('C11', '08C131', 'GHM', 8), +('C11', '08C132', 'GHM', 8), +('C11', '08C133', 'GHM', 8), +('C11', '08C134', 'GHM', 8), +('C11', '08C13J', 'GHM', 8), +('C11', '08C13Z', 'GHM', 8), +('C11', '08C141', 'GHM', 8), +('C11', '08C142', 'GHM', 8), +('C11', '08C143', 'GHM', 8), +('C11', '08C144', 'GHM', 8), +('C11', '08C14J', 'GHM', 8), +('C11', '08C14Z', 'GHM', 8), +('C11', '08C17Z', 'GHM', 8), +('C11', '08C291', 'GHM', 8), +('C11', '08C292', 'GHM', 8), +('C11', '08C293', 'GHM', 8), +('C11', '08C294', 'GHM', 8), +('C11', '08C29J', 'GHM', 8), +('C11', '08C29Z', 'GHM', 8), +('C11', '08C311', 'GHM', 8), +('C11', '08C312', 'GHM', 8), +('C11', '08C313', 'GHM', 8), +('C11', '08C314', 'GHM', 8), +('C11', '08C321', 'GHM', 8), +('C11', '08C322', 'GHM', 8), +('C11', '08C323', 'GHM', 8), +('C11', '08C324', 'GHM', 8), +('C11', '08C32J', 'GHM', 8), +('C11', '08C331', 'GHM', 8), +('C11', '08C332', 'GHM', 8), +('C11', '08C333', 'GHM', 8), +('C11', '08C334', 'GHM', 8), +('C11', '08C351', 'GHM', 8), +('C11', '08C352', 'GHM', 8), +('C11', '08C353', 'GHM', 8), +('C11', '08C354', 'GHM', 8), +('C11', '08C35J', 'GHM', 8), +('C11', '08C361', 'GHM', 8), +('C11', '08C362', 'GHM', 8), +('C11', '08C363', 'GHM', 8), +('C11', '08C364', 'GHM', 8), +('C11', '08C36J', 'GHM', 8), +('C11', '08C371', 'GHM', 8), +('C11', '08C372', 'GHM', 8), +('C11', '08C373', 'GHM', 8), +('C11', '08C374', 'GHM', 8), +('C11', '08C37J', 'GHM', 8), +('C11', '08C391', 'GHM', 8), +('C11', '08C392', 'GHM', 8), +('C11', '08C393', 'GHM', 8), +('C11', '08C394', 'GHM', 8), +('C11', '08C39J', 'GHM', 8), +('C11', '08C411', 'GHM', 8), +('C11', '08C412', 'GHM', 8), +('C11', '08C413', 'GHM', 8), +('C11', '08C414', 'GHM', 8), +('C11', '08C41J', 'GHM', 8), +('C11', '08C421', 'GHM', 8), +('C11', '08C422', 'GHM', 8), +('C11', '08C423', 'GHM', 8), +('C11', '08C424', 'GHM', 8), +('C11', '08C42J', 'GHM', 8), +('C11', '08C431', 'GHM', 8), +('C11', '08C432', 'GHM', 8), +('C11', '08C433', 'GHM', 8), +('C11', '08C434', 'GHM', 8), +('C11', '08C43J', 'GHM', 8), +('C11', '08C441', 'GHM', 8), +('C11', '08C442', 'GHM', 8), +('C11', '08C443', 'GHM', 8), +('C11', '08C444', 'GHM', 8), +('C11', '08C44J', 'GHM', 8), +('C11', '08C461', 'GHM', 8), +('C11', '08C462', 'GHM', 8), +('C11', '08C463', 'GHM', 8), +('C11', '08C464', 'GHM', 8), +('C11', '08C46J', 'GHM', 8), +('C11', '08C531', 'GHM', 8), +('C11', '08C532', 'GHM', 8), +('C11', '08C533', 'GHM', 8), +('C11', '08C534', 'GHM', 8), +('C11', '08C541', 'GHM', 8), +('C11', '08C542', 'GHM', 8), +('C11', '08C543', 'GHM', 8), +('C11', '08C544', 'GHM', 8), +('C11', '08C54J', 'GHM', 8), +('C11', '08C551', 'GHM', 8), +('C11', '08C552', 'GHM', 8), +('C11', '08C553', 'GHM', 8), +('C11', '08C554', 'GHM', 8), +('C11', '08C561', 'GHM', 8), +('C11', '08C562', 'GHM', 8), +('C11', '08C563', 'GHM', 8), +('C11', '08C564', 'GHM', 8), +('C11', '08C571', 'GHM', 8), +('C11', '08C572', 'GHM', 8), +('C11', '08C573', 'GHM', 8), +('C11', '08C574', 'GHM', 8), +('C11', '08C57J', 'GHM', 8), +('C11', '08C591', 'GHM', 8), +('C11', '08C592', 'GHM', 8), +('C11', '08C593', 'GHM', 8), +('C11', '08C594', 'GHM', 8), +('C11', '08C59J', 'GHM', 8), +('C11', '08C601', 'GHM', 8), +('C11', '08C602', 'GHM', 8), +('C11', '08C603', 'GHM', 8), +('C11', '08C604', 'GHM', 8), +('C11', '08C60J', 'GHM', 8), +('C11', '08C611', 'GHM', 8), +('C11', '08C612', 'GHM', 8), +('C11', '08C613', 'GHM', 8), +('C11', '08C614', 'GHM', 8), +('C11', '08C621', 'GHM', 8), +('C11', '08C622', 'GHM', 8), +('C11', '08C623', 'GHM', 8), +('C11', '08C624', 'GHM', 8), +('C11', '08C62J', 'GHM', 8), +('C11', '21C041', 'GHM', 8), +('C11', '21C042', 'GHM', 8), +('C11', '21C043', 'GHM', 8), +('C11', '21C044', 'GHM', 8), +('C11', '21C04J', 'GHM', 8), +('C11', '21C04Z', 'GHM', 8), +('C12', '26C021', 'GHM', 8), +('C12', '26C022', 'GHM', 8), +('C12', '26C023', 'GHM', 8), +('C12', '26C024', 'GHM', 8), +('C12', '26C02Z', 'GHM', 8), +('C13', '05C141', 'GHM', 8), +('C13', '05C142', 'GHM', 8), +('C13', '05C143', 'GHM', 8), +('C13', '05C144', 'GHM', 8), +('C13', '05C14J', 'GHM', 8), +('C13', '05C14Z', 'GHM', 8), +('C13', '05C151', 'GHM', 8), +('C13', '05C152', 'GHM', 8), +('C13', '05C153', 'GHM', 8), +('C13', '05C154', 'GHM', 8), +('C13', '05C15T', 'GHM', 8), +('C13', '05C15Z', 'GHM', 8), +('C13', '05C191', 'GHM', 8), +('C13', '05C192', 'GHM', 8), +('C13', '05C193', 'GHM', 8), +('C13', '05C194', 'GHM', 8), +('C13', '05C19T', 'GHM', 8), +('C13', '05C19Z', 'GHM', 8), +('C13', '05C201', 'GHM', 8), +('C13', '05C202', 'GHM', 8), +('C13', '05C203', 'GHM', 8), +('C13', '05C204', 'GHM', 8), +('C13', '05C20Z', 'GHM', 8), +('C13', '05C221', 'GHM', 8), +('C13', '05C222', 'GHM', 8), +('C13', '05C223', 'GHM', 8), +('C13', '05C224', 'GHM', 8), +('C13', '05C22T', 'GHM', 8), +('C14', '01C061', 'GHM', 8), +('C14', '01C062', 'GHM', 8), +('C14', '01C063', 'GHM', 8), +('C14', '01C064', 'GHM', 8), +('C14', '01C06V', 'GHM', 8), +('C14', '01C06W', 'GHM', 8), +('C14', '05C101', 'GHM', 8), +('C14', '05C102', 'GHM', 8), +('C14', '05C103', 'GHM', 8), +('C14', '05C104', 'GHM', 8), +('C14', '05C10V', 'GHM', 8), +('C14', '05C10W', 'GHM', 8), +('C14', '05C111', 'GHM', 8), +('C14', '05C112', 'GHM', 8), +('C14', '05C113', 'GHM', 8), +('C14', '05C114', 'GHM', 8), +('C14', '05C11J', 'GHM', 8), +('C14', '05C11V', 'GHM', 8), +('C14', '05C11W', 'GHM', 8), +('C14', '05C171', 'GHM', 8), +('C14', '05C172', 'GHM', 8), +('C14', '05C173', 'GHM', 8), +('C14', '05C174', 'GHM', 8), +('C14', '05C17J', 'GHM', 8), +('C14', '05C17V', 'GHM', 8), +('C14', '05C17W', 'GHM', 8), +('C14', '05C211', 'GHM', 8), +('C14', '05C212', 'GHM', 8), +('C14', '05C213', 'GHM', 8), +('C14', '05C214', 'GHM', 8), +('C14', '05C21J', 'GHM', 8), +('C14', '11C091', 'GHM', 8), +('C14', '11C092', 'GHM', 8), +('C14', '11C093', 'GHM', 8), +('C14', '11C094', 'GHM', 8), +('C14', '11C09J', 'GHM', 8), +('C15', '03C03Z', 'GHM', 8), +('C15', '03C04Z', 'GHM', 8), +('C15', '03C051', 'GHM', 8), +('C15', '03C052', 'GHM', 8), +('C15', '03C053', 'GHM', 8), +('C15', '03C054', 'GHM', 8), +('C15', '03C05T', 'GHM', 8), +('C15', '03C05Z', 'GHM', 8), +('C15', '03C061', 'GHM', 8), +('C15', '03C062', 'GHM', 8), +('C15', '03C063', 'GHM', 8), +('C15', '03C064', 'GHM', 8), +('C15', '03C06J', 'GHM', 8), +('C15', '03C06Z', 'GHM', 8), +('C15', '03C071', 'GHM', 8), +('C15', '03C072', 'GHM', 8), +('C15', '03C073', 'GHM', 8), +('C15', '03C074', 'GHM', 8), +('C15', '03C07J', 'GHM', 8), +('C15', '03C07V', 'GHM', 8), +('C15', '03C07W', 'GHM', 8), +('C15', '03C091', 'GHM', 8), +('C15', '03C092', 'GHM', 8), +('C15', '03C093', 'GHM', 8), +('C15', '03C094', 'GHM', 8), +('C15', '03C09J', 'GHM', 8), +('C15', '03C09Z', 'GHM', 8), +('C15', '03C101', 'GHM', 8), +('C15', '03C102', 'GHM', 8), +('C15', '03C103', 'GHM', 8), +('C15', '03C104', 'GHM', 8), +('C15', '03C10Z', 'GHM', 8), +('C15', '03C111', 'GHM', 8), +('C15', '03C112', 'GHM', 8), +('C15', '03C113', 'GHM', 8), +('C15', '03C114', 'GHM', 8), +('C15', '03C11Z', 'GHM', 8), +('C15', '03C121', 'GHM', 8), +('C15', '03C122', 'GHM', 8), +('C15', '03C123', 'GHM', 8), +('C15', '03C124', 'GHM', 8), +('C15', '03C12Z', 'GHM', 8), +('C15', '03C131', 'GHM', 8), +('C15', '03C132', 'GHM', 8), +('C15', '03C133', 'GHM', 8), +('C15', '03C134', 'GHM', 8), +('C15', '03C13Z', 'GHM', 8), +('C15', '03C141', 'GHM', 8), +('C15', '03C142', 'GHM', 8), +('C15', '03C143', 'GHM', 8), +('C15', '03C144', 'GHM', 8), +('C15', '03C14J', 'GHM', 8), +('C15', '03C14Z', 'GHM', 8), +('C15', '03C151', 'GHM', 8), +('C15', '03C152', 'GHM', 8), +('C15', '03C153', 'GHM', 8), +('C15', '03C154', 'GHM', 8), +('C15', '03C15J', 'GHM', 8), +('C15', '03C15Z', 'GHM', 8), +('C15', '03C161', 'GHM', 8), +('C15', '03C162', 'GHM', 8), +('C15', '03C163', 'GHM', 8), +('C15', '03C164', 'GHM', 8), +('C15', '03C16J', 'GHM', 8), +('C15', '03C16V', 'GHM', 8), +('C15', '03C16W', 'GHM', 8), +('C15', '03C171', 'GHM', 8), +('C15', '03C172', 'GHM', 8), +('C15', '03C173', 'GHM', 8), +('C15', '03C174', 'GHM', 8), +('C15', '03C17J', 'GHM', 8), +('C15', '03C17Z', 'GHM', 8), +('C15', '03C181', 'GHM', 8), +('C15', '03C182', 'GHM', 8), +('C15', '03C183', 'GHM', 8), +('C15', '03C184', 'GHM', 8), +('C15', '03C18Z', 'GHM', 8), +('C15', '03C191', 'GHM', 8), +('C15', '03C192', 'GHM', 8), +('C15', '03C193', 'GHM', 8), +('C15', '03C194', 'GHM', 8), +('C15', '03C19J', 'GHM', 8), +('C15', '03C19Z', 'GHM', 8), +('C15', '03C201', 'GHM', 8), +('C15', '03C202', 'GHM', 8), +('C15', '03C203', 'GHM', 8), +('C15', '03C204', 'GHM', 8), +('C15', '03C20J', 'GHM', 8), +('C15', '03C20Z', 'GHM', 8), +('C15', '03C211', 'GHM', 8), +('C15', '03C212', 'GHM', 8), +('C15', '03C213', 'GHM', 8), +('C15', '03C214', 'GHM', 8), +('C15', '03C21J', 'GHM', 8), +('C15', '03C21Z', 'GHM', 8), +('C15', '03C22J', 'GHM', 8), +('C15', '03C241', 'GHM', 8), +('C15', '03C242', 'GHM', 8), +('C15', '03C243', 'GHM', 8), +('C15', '03C244', 'GHM', 8), +('C15', '03C24J', 'GHM', 8), +('C15', '03C251', 'GHM', 8), +('C15', '03C252', 'GHM', 8), +('C15', '03C253', 'GHM', 8), +('C15', '03C254', 'GHM', 8), +('C15', '03C261', 'GHM', 8), +('C15', '03C262', 'GHM', 8), +('C15', '03C263', 'GHM', 8), +('C15', '03C264', 'GHM', 8), +('C15', '03C27J', 'GHM', 8), +('C15', '03C28J', 'GHM', 8), +('C15', '03C291', 'GHM', 8), +('C15', '03C292', 'GHM', 8), +('C15', '03C293', 'GHM', 8), +('C15', '03C294', 'GHM', 8), +('C15', '03C29J', 'GHM', 8), +('C15', '03C301', 'GHM', 8), +('C15', '03C302', 'GHM', 8), +('C15', '03C303', 'GHM', 8), +('C15', '03C304', 'GHM', 8), +('C15', '03C30J', 'GHM', 8), +('C15', '08C281', 'GHM', 8), +('C15', '08C282', 'GHM', 8), +('C15', '08C283', 'GHM', 8), +('C15', '08C284', 'GHM', 8), +('C15', '08C28J', 'GHM', 8), +('C15', '08C28Z', 'GHM', 8), +('C16', '02C021', 'GHM', 8), +('C16', '02C022', 'GHM', 8), +('C16', '02C023', 'GHM', 8), +('C16', '02C024', 'GHM', 8), +('C16', '02C02J', 'GHM', 8), +('C16', '02C02V', 'GHM', 8), +('C16', '02C02W', 'GHM', 8), +('C16', '02C031', 'GHM', 8), +('C16', '02C032', 'GHM', 8), +('C16', '02C033', 'GHM', 8), +('C16', '02C034', 'GHM', 8), +('C16', '02C03J', 'GHM', 8), +('C16', '02C03Z', 'GHM', 8), +('C16', '02C04Z', 'GHM', 8), +('C16', '02C051', 'GHM', 8), +('C16', '02C052', 'GHM', 8), +('C16', '02C053', 'GHM', 8), +('C16', '02C054', 'GHM', 8), +('C16', '02C05J', 'GHM', 8), +('C16', '02C05Z', 'GHM', 8), +('C16', '02C061', 'GHM', 8), +('C16', '02C062', 'GHM', 8), +('C16', '02C063', 'GHM', 8), +('C16', '02C064', 'GHM', 8), +('C16', '02C06J', 'GHM', 8), +('C16', '02C06Z', 'GHM', 8), +('C16', '02C071', 'GHM', 8), +('C16', '02C072', 'GHM', 8), +('C16', '02C073', 'GHM', 8), +('C16', '02C074', 'GHM', 8), +('C16', '02C07J', 'GHM', 8), +('C16', '02C07Z', 'GHM', 8), +('C16', '02C081', 'GHM', 8), +('C16', '02C082', 'GHM', 8), +('C16', '02C083', 'GHM', 8), +('C16', '02C084', 'GHM', 8), +('C16', '02C08J', 'GHM', 8), +('C16', '02C08V', 'GHM', 8), +('C16', '02C08W', 'GHM', 8), +('C16', '02C091', 'GHM', 8), +('C16', '02C092', 'GHM', 8), +('C16', '02C093', 'GHM', 8), +('C16', '02C094', 'GHM', 8), +('C16', '02C09J', 'GHM', 8), +('C16', '02C09Z', 'GHM', 8), +('C16', '02C101', 'GHM', 8), +('C16', '02C102', 'GHM', 8), +('C16', '02C103', 'GHM', 8), +('C16', '02C104', 'GHM', 8), +('C16', '02C10J', 'GHM', 8), +('C16', '02C111', 'GHM', 8), +('C16', '02C112', 'GHM', 8), +('C16', '02C113', 'GHM', 8), +('C16', '02C114', 'GHM', 8), +('C16', '02C11J', 'GHM', 8), +('C16', '02C121', 'GHM', 8), +('C16', '02C122', 'GHM', 8), +('C16', '02C123', 'GHM', 8), +('C16', '02C124', 'GHM', 8), +('C16', '02C12J', 'GHM', 8), +('C16', '02C131', 'GHM', 8), +('C16', '02C132', 'GHM', 8), +('C16', '02C133', 'GHM', 8), +('C16', '02C134', 'GHM', 8), +('C16', '02C13J', 'GHM', 8), +('C17', '13C031', 'GHM', 8), +('C17', '13C032', 'GHM', 8), +('C17', '13C033', 'GHM', 8), +('C17', '13C034', 'GHM', 8), +('C17', '13C03V', 'GHM', 8), +('C17', '13C03W', 'GHM', 8), +('C17', '13C041', 'GHM', 8), +('C17', '13C042', 'GHM', 8), +('C17', '13C043', 'GHM', 8), +('C17', '13C044', 'GHM', 8), +('C17', '13C04J', 'GHM', 8), +('C17', '13C04V', 'GHM', 8), +('C17', '13C04W', 'GHM', 8), +('C17', '13C051', 'GHM', 8), +('C17', '13C052', 'GHM', 8), +('C17', '13C053', 'GHM', 8), +('C17', '13C054', 'GHM', 8), +('C17', '13C05Z', 'GHM', 8), +('C17', '13C061', 'GHM', 8), +('C17', '13C062', 'GHM', 8), +('C17', '13C063', 'GHM', 8), +('C17', '13C064', 'GHM', 8), +('C17', '13C06J', 'GHM', 8), +('C17', '13C06Z', 'GHM', 8), +('C17', '13C071', 'GHM', 8), +('C17', '13C072', 'GHM', 8), +('C17', '13C073', 'GHM', 8), +('C17', '13C074', 'GHM', 8), +('C17', '13C07J', 'GHM', 8), +('C17', '13C07V', 'GHM', 8), +('C17', '13C07W', 'GHM', 8), +('C17', '13C081', 'GHM', 8), +('C17', '13C082', 'GHM', 8), +('C17', '13C083', 'GHM', 8), +('C17', '13C084', 'GHM', 8), +('C17', '13C08J', 'GHM', 8), +('C17', '13C08V', 'GHM', 8), +('C17', '13C08W', 'GHM', 8), +('C17', '13C091', 'GHM', 8), +('C17', '13C092', 'GHM', 8), +('C17', '13C093', 'GHM', 8), +('C17', '13C094', 'GHM', 8), +('C17', '13C09J', 'GHM', 8), +('C17', '13C09T', 'GHM', 8), +('C17', '13C09Z', 'GHM', 8), +('C17', '13C101', 'GHM', 8), +('C17', '13C102', 'GHM', 8), +('C17', '13C103', 'GHM', 8), +('C17', '13C104', 'GHM', 8), +('C17', '13C10J', 'GHM', 8), +('C17', '13C10T', 'GHM', 8), +('C17', '13C10Z', 'GHM', 8), +('C17', '13C111', 'GHM', 8), +('C17', '13C112', 'GHM', 8), +('C17', '13C113', 'GHM', 8), +('C17', '13C114', 'GHM', 8), +('C17', '13C11J', 'GHM', 8), +('C17', '13C11Z', 'GHM', 8), +('C17', '13C121', 'GHM', 8), +('C17', '13C122', 'GHM', 8), +('C17', '13C123', 'GHM', 8), +('C17', '13C124', 'GHM', 8), +('C17', '13C12J', 'GHM', 8), +('C17', '13C12Z', 'GHM', 8), +('C17', '13C131', 'GHM', 8), +('C17', '13C132', 'GHM', 8), +('C17', '13C133', 'GHM', 8), +('C17', '13C134', 'GHM', 8), +('C17', '13C13T', 'GHM', 8), +('C17', '13C13Z', 'GHM', 8), +('C17', '13C141', 'GHM', 8), +('C17', '13C142', 'GHM', 8), +('C17', '13C143', 'GHM', 8), +('C17', '13C144', 'GHM', 8), +('C17', '13C14V', 'GHM', 8), +('C17', '13C14W', 'GHM', 8), +('C17', '13C151', 'GHM', 8), +('C17', '13C152', 'GHM', 8), +('C17', '13C153', 'GHM', 8), +('C17', '13C154', 'GHM', 8), +('C17', '13C15V', 'GHM', 8), +('C17', '13C15W', 'GHM', 8), +('C17', '13C16J', 'GHM', 8), +('C17', '13C171', 'GHM', 8), +('C17', '13C172', 'GHM', 8), +('C17', '13C173', 'GHM', 8), +('C17', '13C174', 'GHM', 8), +('C17', '13C17J', 'GHM', 8), +('C17', '13C181', 'GHM', 8), +('C17', '13C182', 'GHM', 8), +('C17', '13C183', 'GHM', 8), +('C17', '13C184', 'GHM', 8), +('C17', '13C191', 'GHM', 8), +('C17', '13C192', 'GHM', 8), +('C17', '13C193', 'GHM', 8), +('C17', '13C194', 'GHM', 8), +('C17', '13C19J', 'GHM', 8), +('C17', '13C201', 'GHM', 8), +('C17', '13C202', 'GHM', 8), +('C17', '13C203', 'GHM', 8), +('C17', '13C204', 'GHM', 8), +('C17', '13C20J', 'GHM', 8), +('C18', '09C041', 'GHM', 8), +('C18', '09C042', 'GHM', 8), +('C18', '09C043', 'GHM', 8), +('C18', '09C044', 'GHM', 8), +('C18', '09C04V', 'GHM', 8), +('C18', '09C04W', 'GHM', 8), +('C18', '09C051', 'GHM', 8), +('C18', '09C052', 'GHM', 8), +('C18', '09C053', 'GHM', 8), +('C18', '09C054', 'GHM', 8), +('C18', '09C05J', 'GHM', 8), +('C18', '09C05V', 'GHM', 8), +('C18', '09C05W', 'GHM', 8), +('C18', '09C061', 'GHM', 8), +('C18', '09C062', 'GHM', 8), +('C18', '09C063', 'GHM', 8), +('C18', '09C064', 'GHM', 8), +('C18', '09C06T', 'GHM', 8), +('C18', '09C06Z', 'GHM', 8), +('C18', '09C071', 'GHM', 8), +('C18', '09C072', 'GHM', 8), +('C18', '09C073', 'GHM', 8), +('C18', '09C074', 'GHM', 8), +('C18', '09C07J', 'GHM', 8), +('C18', '09C07Z', 'GHM', 8), +('C18', '09C111', 'GHM', 8), +('C18', '09C112', 'GHM', 8), +('C18', '09C113', 'GHM', 8), +('C18', '09C114', 'GHM', 8), +('C19', '10C031', 'GHM', 8), +('C19', '10C032', 'GHM', 8), +('C19', '10C033', 'GHM', 8), +('C19', '10C034', 'GHM', 8), +('C19', '10C03Z', 'GHM', 8), +('C19', '11C021', 'GHM', 8), +('C19', '11C022', 'GHM', 8), +('C19', '11C023', 'GHM', 8), +('C19', '11C024', 'GHM', 8), +('C19', '11C02V', 'GHM', 8), +('C19', '11C02W', 'GHM', 8), +('C19', '11C031', 'GHM', 8), +('C19', '11C032', 'GHM', 8), +('C19', '11C033', 'GHM', 8), +('C19', '11C034', 'GHM', 8), +('C19', '11C03V', 'GHM', 8), +('C19', '11C03W', 'GHM', 8), +('C19', '11C041', 'GHM', 8), +('C19', '11C042', 'GHM', 8), +('C19', '11C043', 'GHM', 8), +('C19', '11C044', 'GHM', 8), +('C19', '11C04J', 'GHM', 8), +('C19', '11C04Z', 'GHM', 8), +('C19', '11C051', 'GHM', 8), +('C19', '11C052', 'GHM', 8), +('C19', '11C053', 'GHM', 8), +('C19', '11C054', 'GHM', 8), +('C19', '11C05J', 'GHM', 8), +('C19', '11C05V', 'GHM', 8), +('C19', '11C05W', 'GHM', 8), +('C19', '11C061', 'GHM', 8), +('C19', '11C062', 'GHM', 8), +('C19', '11C063', 'GHM', 8), +('C19', '11C064', 'GHM', 8), +('C19', '11C06Z', 'GHM', 8), +('C19', '11C071', 'GHM', 8), +('C19', '11C072', 'GHM', 8), +('C19', '11C073', 'GHM', 8), +('C19', '11C074', 'GHM', 8), +('C19', '11C07J', 'GHM', 8), +('C19', '11C07Z', 'GHM', 8), +('C19', '11C081', 'GHM', 8), +('C19', '11C082', 'GHM', 8), +('C19', '11C083', 'GHM', 8), +('C19', '11C084', 'GHM', 8), +('C19', '11C08T', 'GHM', 8), +('C19', '11C08V', 'GHM', 8), +('C19', '11C08W', 'GHM', 8), +('C19', '11C101', 'GHM', 8), +('C19', '11C102', 'GHM', 8), +('C19', '11C103', 'GHM', 8), +('C19', '11C104', 'GHM', 8), +('C19', '11C10J', 'GHM', 8), +('C19', '11C111', 'GHM', 8), +('C19', '11C112', 'GHM', 8), +('C19', '11C113', 'GHM', 8), +('C19', '11C114', 'GHM', 8), +('C19', '11C11J', 'GHM', 8), +('C19', '11C121', 'GHM', 8), +('C19', '11C122', 'GHM', 8), +('C19', '11C123', 'GHM', 8), +('C19', '11C124', 'GHM', 8), +('C19', '11C12J', 'GHM', 8), +('C19', '11C131', 'GHM', 8), +('C19', '11C132', 'GHM', 8), +('C19', '11C133', 'GHM', 8), +('C19', '11C134', 'GHM', 8), +('C19', '11C13J', 'GHM', 8), +('C20', '12C02Z', 'GHM', 8), +('C20', '12C031', 'GHM', 8), +('C20', '12C032', 'GHM', 8), +('C20', '12C033', 'GHM', 8), +('C20', '12C034', 'GHM', 8), +('C20', '12C03J', 'GHM', 8), +('C20', '12C03Z', 'GHM', 8), +('C20', '12C041', 'GHM', 8), +('C20', '12C042', 'GHM', 8), +('C20', '12C043', 'GHM', 8), +('C20', '12C044', 'GHM', 8), +('C20', '12C04J', 'GHM', 8), +('C20', '12C04V', 'GHM', 8), +('C20', '12C04W', 'GHM', 8), +('C20', '12C051', 'GHM', 8), +('C20', '12C052', 'GHM', 8), +('C20', '12C053', 'GHM', 8), +('C20', '12C054', 'GHM', 8), +('C20', '12C05Z', 'GHM', 8), +('C20', '12C061', 'GHM', 8), +('C20', '12C062', 'GHM', 8), +('C20', '12C063', 'GHM', 8), +('C20', '12C064', 'GHM', 8), +('C20', '12C06J', 'GHM', 8), +('C20', '12C06Z', 'GHM', 8), +('C20', '12C071', 'GHM', 8), +('C20', '12C072', 'GHM', 8), +('C20', '12C073', 'GHM', 8), +('C20', '12C074', 'GHM', 8), +('C20', '12C07J', 'GHM', 8), +('C20', '12C07Z', 'GHM', 8), +('C20', '12C081', 'GHM', 8), +('C20', '12C082', 'GHM', 8), +('C20', '12C083', 'GHM', 8), +('C20', '12C084', 'GHM', 8), +('C20', '12C08J', 'GHM', 8), +('C20', '12C08Z', 'GHM', 8), +('C20', '12C091', 'GHM', 8), +('C20', '12C092', 'GHM', 8), +('C20', '12C093', 'GHM', 8), +('C20', '12C094', 'GHM', 8), +('C20', '12C09Z', 'GHM', 8), +('C20', '12C101', 'GHM', 8), +('C20', '12C102', 'GHM', 8), +('C20', '12C103', 'GHM', 8), +('C20', '12C104', 'GHM', 8), +('C20', '12C10Z', 'GHM', 8), +('C20', '12C111', 'GHM', 8), +('C20', '12C112', 'GHM', 8), +('C20', '12C113', 'GHM', 8), +('C20', '12C114', 'GHM', 8), +('C20', '12C11Z', 'GHM', 8), +('C20', '12C121', 'GHM', 8), +('C20', '12C122', 'GHM', 8), +('C20', '12C123', 'GHM', 8), +('C20', '12C124', 'GHM', 8), +('C20', '12C12Z', 'GHM', 8), +('C20', '12C131', 'GHM', 8), +('C20', '12C132', 'GHM', 8), +('C20', '12C133', 'GHM', 8), +('C20', '12C134', 'GHM', 8), +('C20', '12C13J', 'GHM', 8), +('C21', '16C031', 'GHM', 8), +('C21', '16C032', 'GHM', 8), +('C21', '16C033', 'GHM', 8), +('C21', '16C034', 'GHM', 8), +('C21', '16C03J', 'GHM', 8), +('C21', '16C03V', 'GHM', 8), +('C21', '16C03W', 'GHM', 8), +('C21', '17C021', 'GHM', 8), +('C21', '17C022', 'GHM', 8), +('C21', '17C023', 'GHM', 8), +('C21', '17C024', 'GHM', 8), +('C21', '17C02V', 'GHM', 8), +('C21', '17C02W', 'GHM', 8), +('C21', '17C031', 'GHM', 8), +('C21', '17C032', 'GHM', 8), +('C21', '17C033', 'GHM', 8), +('C21', '17C034', 'GHM', 8), +('C21', '17C03J', 'GHM', 8), +('C21', '17C03V', 'GHM', 8), +('C21', '17C03W', 'GHM', 8), +('C21', '17C041', 'GHM', 8), +('C21', '17C042', 'GHM', 8), +('C21', '17C043', 'GHM', 8), +('C21', '17C044', 'GHM', 8), +('C21', '17C04V', 'GHM', 8), +('C21', '17C04W', 'GHM', 8), +('C21', '17C051', 'GHM', 8), +('C21', '17C052', 'GHM', 8), +('C21', '17C053', 'GHM', 8), +('C21', '17C054', 'GHM', 8), +('C21', '17C05J', 'GHM', 8), +('C21', '17C05V', 'GHM', 8), +('C21', '17C05W', 'GHM', 8), +('C21', '17C061', 'GHM', 8), +('C21', '17C062', 'GHM', 8), +('C21', '17C063', 'GHM', 8), +('C21', '17C064', 'GHM', 8), +('C21', '17C071', 'GHM', 8), +('C21', '17C072', 'GHM', 8), +('C21', '17C073', 'GHM', 8), +('C21', '17C074', 'GHM', 8), +('C21', '17C081', 'GHM', 8), +('C21', '17C082', 'GHM', 8), +('C21', '17C083', 'GHM', 8), +('C21', '17C084', 'GHM', 8), +('C21', '17C08J', 'GHM', 8), +('C22', '10C051', 'GHM', 8), +('C22', '10C052', 'GHM', 8), +('C22', '10C053', 'GHM', 8), +('C22', '10C054', 'GHM', 8), +('C22', '10C05Z', 'GHM', 8), +('C22', '10C071', 'GHM', 8), +('C22', '10C072', 'GHM', 8), +('C22', '10C073', 'GHM', 8), +('C22', '10C074', 'GHM', 8), +('C22', '10C07Z', 'GHM', 8), +('C22', '10C101', 'GHM', 8), +('C22', '10C102', 'GHM', 8), +('C22', '10C103', 'GHM', 8), +('C22', '10C104', 'GHM', 8), +('C22', '10C10Z', 'GHM', 8), +('C22', '10C111', 'GHM', 8), +('C22', '10C112', 'GHM', 8), +('C22', '10C113', 'GHM', 8), +('C22', '10C114', 'GHM', 8), +('C22', '10C11V', 'GHM', 8), +('C22', '10C11W', 'GHM', 8), +('C22', '10C121', 'GHM', 8), +('C22', '10C122', 'GHM', 8), +('C22', '10C123', 'GHM', 8), +('C22', '10C124', 'GHM', 8), +('C22', '10C12V', 'GHM', 8), +('C22', '10C12W', 'GHM', 8), +('C23', '08C201', 'GHM', 8), +('C23', '08C202', 'GHM', 8), +('C23', '08C203', 'GHM', 8), +('C23', '08C204', 'GHM', 8), +('C23', '08C20J', 'GHM', 8), +('C23', '08C20Z', 'GHM', 8), +('C23', '09C021', 'GHM', 8), +('C23', '09C022', 'GHM', 8), +('C23', '09C023', 'GHM', 8), +('C23', '09C024', 'GHM', 8), +('C23', '09C02J', 'GHM', 8), +('C23', '09C02V', 'GHM', 8), +('C23', '09C02W', 'GHM', 8), +('C23', '09C031', 'GHM', 8), +('C23', '09C032', 'GHM', 8), +('C23', '09C033', 'GHM', 8), +('C23', '09C034', 'GHM', 8), +('C23', '09C03J', 'GHM', 8), +('C23', '09C03V', 'GHM', 8), +('C23', '09C03W', 'GHM', 8), +('C23', '09C091', 'GHM', 8), +('C23', '09C092', 'GHM', 8), +('C23', '09C093', 'GHM', 8), +('C23', '09C094', 'GHM', 8), +('C23', '09C09J', 'GHM', 8), +('C23', '09C09Z', 'GHM', 8), +('C23', '09C121', 'GHM', 8), +('C23', '09C122', 'GHM', 8), +('C23', '09C123', 'GHM', 8), +('C23', '09C124', 'GHM', 8), +('C23', '09C12J', 'GHM', 8), +('C23', '21C021', 'GHM', 8), +('C23', '21C022', 'GHM', 8), +('C23', '21C023', 'GHM', 8), +('C23', '21C024', 'GHM', 8), +('C23', '21C02J', 'GHM', 8), +('C23', '21C02Z', 'GHM', 8), +('C23', '21C031', 'GHM', 8), +('C23', '21C032', 'GHM', 8), +('C23', '21C033', 'GHM', 8), +('C23', '21C034', 'GHM', 8), +('C23', '21C03J', 'GHM', 8), +('C23', '21C03Z', 'GHM', 8), +('C23', '21C061', 'GHM', 8), +('C23', '21C062', 'GHM', 8), +('C23', '21C063', 'GHM', 8), +('C23', '21C064', 'GHM', 8), +('C23', '21C06J', 'GHM', 8), +('C24', '22C021', 'GHM', 8), +('C24', '22C022', 'GHM', 8), +('C24', '22C023', 'GHM', 8), +('C24', '22C024', 'GHM', 8), +('C24', '22C02J', 'GHM', 8), +('C24', '22C02Z', 'GHM', 8), +('C24', '22C031', 'GHM', 8), +('C24', '22C032', 'GHM', 8), +('C24', '22C033', 'GHM', 8), +('C24', '22C034', 'GHM', 8), +('C24', '22C03Z', 'GHM', 8), +('C25', '01C081', 'GHM', 8), +('C25', '01C082', 'GHM', 8), +('C25', '01C083', 'GHM', 8), +('C25', '01C084', 'GHM', 8), +('C25', '01C08J', 'GHM', 8), +('C25', '01C08V', 'GHM', 8), +('C25', '01C08W', 'GHM', 8), +('C25', '05C181', 'GHM', 8), +('C25', '05C182', 'GHM', 8), +('C25', '05C183', 'GHM', 8), +('C25', '05C184', 'GHM', 8), +('C25', '05C18J', 'GHM', 8), +('C25', '05C18Z', 'GHM', 8), +('C25', '08C211', 'GHM', 8), +('C25', '08C212', 'GHM', 8), +('C25', '08C213', 'GHM', 8), +('C25', '08C214', 'GHM', 8), +('C25', '08C21J', 'GHM', 8), +('C25', '08C21V', 'GHM', 8), +('C25', '08C21W', 'GHM', 8), +('C25', '09C101', 'GHM', 8), +('C25', '09C102', 'GHM', 8), +('C25', '09C103', 'GHM', 8), +('C25', '09C104', 'GHM', 8), +('C25', '09C10J', 'GHM', 8), +('C25', '09C10V', 'GHM', 8), +('C25', '09C10W', 'GHM', 8), +('C25', '09C141', 'GHM', 8), +('C25', '09C142', 'GHM', 8), +('C25', '09C143', 'GHM', 8), +('C25', '09C144', 'GHM', 8), +('C25', '09C14J', 'GHM', 8), +('C25', '09C151', 'GHM', 8), +('C25', '09C152', 'GHM', 8), +('C25', '09C153', 'GHM', 8), +('C25', '09C154', 'GHM', 8), +('C25', '09C15J', 'GHM', 8), +('C25', '09C161', 'GHM', 8), +('C25', '09C162', 'GHM', 8), +('C25', '09C163', 'GHM', 8), +('C25', '09C164', 'GHM', 8), +('C25', '09C171', 'GHM', 8), +('C25', '09C172', 'GHM', 8), +('C25', '09C173', 'GHM', 8), +('C25', '09C174', 'GHM', 8), +('C25', '09C181', 'GHM', 8), +('C25', '09C182', 'GHM', 8), +('C25', '09C183', 'GHM', 8), +('C25', '09C184', 'GHM', 8), +('C25', '09C191', 'GHM', 8), +('C25', '09C192', 'GHM', 8), +('C25', '09C193', 'GHM', 8), +('C25', '09C194', 'GHM', 8), +('C25', '09C201', 'GHM', 8), +('C25', '09C202', 'GHM', 8), +('C25', '09C203', 'GHM', 8), +('C25', '09C204', 'GHM', 8), +('C25', '09C20J', 'GHM', 8), +('C25', '09C211', 'GHM', 8), +('C25', '09C212', 'GHM', 8), +('C25', '09C213', 'GHM', 8), +('C25', '09C214', 'GHM', 8), +('C25', '09C221', 'GHM', 8), +('C25', '09C222', 'GHM', 8), +('C25', '09C223', 'GHM', 8), +('C25', '09C224', 'GHM', 8), +('C25', '09C22J', 'GHM', 8), +('C25', '09C231', 'GHM', 8), +('C25', '09C232', 'GHM', 8), +('C25', '09C233', 'GHM', 8), +('C25', '09C234', 'GHM', 8), +('C25', '09C23J', 'GHM', 8), +('C25', '09C241', 'GHM', 8), +('C25', '09C242', 'GHM', 8), +('C25', '09C243', 'GHM', 8), +('C25', '09C244', 'GHM', 8), +('C25', '09C24J', 'GHM', 8), +('C25', '09C251', 'GHM', 8), +('C25', '09C252', 'GHM', 8), +('C25', '09C253', 'GHM', 8), +('C25', '09C254', 'GHM', 8), +('C25', '09C25J', 'GHM', 8), +('C25', '09C261', 'GHM', 8), +('C25', '09C262', 'GHM', 8), +('C25', '09C263', 'GHM', 8), +('C25', '09C264', 'GHM', 8), +('C25', '09C26J', 'GHM', 8), +('C25', '09C271', 'GHM', 8), +('C25', '09C272', 'GHM', 8), +('C25', '09C273', 'GHM', 8), +('C25', '09C274', 'GHM', 8), +('C25', '09C281', 'GHM', 8), +('C25', '09C282', 'GHM', 8), +('C25', '09C283', 'GHM', 8), +('C25', '09C284', 'GHM', 8), +('C25', '09C28J', 'GHM', 8), +('C25', '09C291', 'GHM', 8), +('C25', '09C292', 'GHM', 8), +('C25', '09C293', 'GHM', 8), +('C25', '09C294', 'GHM', 8), +('C25', '09C29J', 'GHM', 8), +('C25', '09C301', 'GHM', 8), +('C25', '09C302', 'GHM', 8), +('C25', '09C303', 'GHM', 8), +('C25', '09C304', 'GHM', 8), +('C25', '09C30J', 'GHM', 8), +('C25', '09C311', 'GHM', 8), +('C25', '09C312', 'GHM', 8), +('C25', '09C313', 'GHM', 8), +('C25', '09C314', 'GHM', 8), +('C25', '09C31J', 'GHM', 8), +('C25', '09C321', 'GHM', 8), +('C25', '09C322', 'GHM', 8), +('C25', '09C323', 'GHM', 8), +('C25', '09C324', 'GHM', 8), +('C25', '09C32J', 'GHM', 8), +('C25', '09C331', 'GHM', 8), +('C25', '09C332', 'GHM', 8), +('C25', '09C333', 'GHM', 8), +('C25', '09C334', 'GHM', 8), +('C25', '09C341', 'GHM', 8), +('C25', '09C342', 'GHM', 8), +('C25', '09C343', 'GHM', 8), +('C25', '09C344', 'GHM', 8), +('C25', '09C34J', 'GHM', 8), +('C25', '10C081', 'GHM', 8), +('C25', '10C082', 'GHM', 8), +('C25', '10C083', 'GHM', 8), +('C25', '10C084', 'GHM', 8), +('C25', '10C08J', 'GHM', 8), +('C25', '10C08Z', 'GHM', 8), +('C25', '18C021', 'GHM', 8), +('C25', '18C022', 'GHM', 8), +('C25', '18C023', 'GHM', 8), +('C25', '18C024', 'GHM', 8), +('C25', '18C02J', 'GHM', 8), +('C25', '18C02V', 'GHM', 8), +('C25', '18C02W', 'GHM', 8), +('C25', '19C021', 'GHM', 8), +('C25', '19C022', 'GHM', 8), +('C25', '19C023', 'GHM', 8), +('C25', '19C024', 'GHM', 8), +('C25', '19C02Z', 'GHM', 8), +('C25', '21C051', 'GHM', 8), +('C25', '21C052', 'GHM', 8), +('C25', '21C053', 'GHM', 8), +('C25', '21C054', 'GHM', 8), +('C25', '21C05J', 'GHM', 8), +('C25', '21C05V', 'GHM', 8), +('C25', '21C05W', 'GHM', 8), +('C25', '23C021', 'GHM', 8), +('C25', '23C022', 'GHM', 8), +('C25', '23C023', 'GHM', 8), +('C25', '23C024', 'GHM', 8), +('C25', '23C02J', 'GHM', 8), +('C25', '23C02Z', 'GHM', 8), +('C25', '25C021', 'GHM', 8), +('C25', '25C022', 'GHM', 8), +('C25', '25C023', 'GHM', 8), +('C25', '25C024', 'GHM', 8), +('C25', '25C02Z', 'GHM', 8), +('K01', '06K06J', 'GHM', 8), +('K01', '07K061', 'GHM', 8), +('K01', '07K062', 'GHM', 8), +('K01', '07K063', 'GHM', 8), +('K01', '07K064', 'GHM', 8), +('K02', '06K02Z', 'GHM', 8), +('K02', '06K03J', 'GHM', 8), +('K02', '06K04J', 'GHM', 8), +('K02', '06K05J', 'GHM', 8), +('K02', '07K02Z', 'GHM', 8), +('K02', '07K04J', 'GHM', 8), +('K02', '07K05J', 'GHM', 8), +('K03', '01K04J', 'GHM', 8), +('K03', '01K06J', 'GHM', 8), +('K04', '05K17J', 'GHM', 8), +('K04', '05K18J', 'GHM', 8), +('K05', '01K021', 'GHM', 8), +('K05', '01K022', 'GHM', 8), +('K05', '01K023', 'GHM', 8), +('K05', '01K024', 'GHM', 8), +('K05', '01K02Z', 'GHM', 8), +('K05', '01K031', 'GHM', 8), +('K05', '01K032', 'GHM', 8), +('K05', '01K033', 'GHM', 8), +('K05', '01K034', 'GHM', 8), +('K05', '01K03Z', 'GHM', 8), +('K05', '01K071', 'GHM', 8), +('K05', '01K072', 'GHM', 8), +('K05', '01K073', 'GHM', 8), +('K05', '01K074', 'GHM', 8), +('K05', '05C16Z', 'GHM', 8), +('K05', '05K03Z', 'GHM', 8), +('K05', '05K04Z', 'GHM', 8), +('K05', '05K051', 'GHM', 8), +('K05', '05K052', 'GHM', 8), +('K05', '05K053', 'GHM', 8), +('K05', '05K054', 'GHM', 8), +('K05', '05K05V', 'GHM', 8), +('K05', '05K05W', 'GHM', 8), +('K05', '05K061', 'GHM', 8), +('K05', '05K062', 'GHM', 8), +('K05', '05K063', 'GHM', 8), +('K05', '05K064', 'GHM', 8), +('K05', '05K06T', 'GHM', 8), +('K05', '05K06V', 'GHM', 8), +('K05', '05K06W', 'GHM', 8), +('K05', '05K07Z', 'GHM', 8), +('K05', '05K08Z', 'GHM', 8), +('K05', '05K09Z', 'GHM', 8), +('K05', '05K101', 'GHM', 8), +('K05', '05K102', 'GHM', 8), +('K05', '05K103', 'GHM', 8), +('K05', '05K104', 'GHM', 8), +('K05', '05K10J', 'GHM', 8), +('K05', '05K10Z', 'GHM', 8), +('K05', '05K111', 'GHM', 8), +('K05', '05K112', 'GHM', 8), +('K05', '05K113', 'GHM', 8), +('K05', '05K114', 'GHM', 8), +('K05', '05K11T', 'GHM', 8), +('K05', '05K11Z', 'GHM', 8), +('K05', '05K121', 'GHM', 8), +('K05', '05K122', 'GHM', 8), +('K05', '05K123', 'GHM', 8), +('K05', '05K124', 'GHM', 8), +('K05', '05K12Z', 'GHM', 8), +('K05', '05K131', 'GHM', 8), +('K05', '05K132', 'GHM', 8), +('K05', '05K133', 'GHM', 8), +('K05', '05K134', 'GHM', 8), +('K05', '05K13J', 'GHM', 8), +('K05', '05K13Z', 'GHM', 8), +('K05', '05K151', 'GHM', 8), +('K05', '05K152', 'GHM', 8), +('K05', '05K153', 'GHM', 8), +('K05', '05K154', 'GHM', 8), +('K05', '05K15J', 'GHM', 8), +('K05', '05K191', 'GHM', 8), +('K05', '05K192', 'GHM', 8), +('K05', '05K193', 'GHM', 8), +('K05', '05K194', 'GHM', 8), +('K05', '05K201', 'GHM', 8), +('K05', '05K202', 'GHM', 8), +('K05', '05K203', 'GHM', 8), +('K05', '05K204', 'GHM', 8), +('K05', '05K20T', 'GHM', 8), +('K05', '05K211', 'GHM', 8), +('K05', '05K212', 'GHM', 8), +('K05', '05K213', 'GHM', 8), +('K05', '05K214', 'GHM', 8), +('K05', '05K221', 'GHM', 8), +('K05', '05K222', 'GHM', 8), +('K05', '05K223', 'GHM', 8), +('K05', '05K224', 'GHM', 8), +('K05', '05K231', 'GHM', 8), +('K05', '05K232', 'GHM', 8), +('K05', '05K233', 'GHM', 8), +('K05', '05K234', 'GHM', 8), +('K05', '05K23J', 'GHM', 8), +('K05', '05K241', 'GHM', 8), +('K05', '05K242', 'GHM', 8), +('K05', '05K243', 'GHM', 8), +('K05', '05K244', 'GHM', 8), +('K05', '05K24J', 'GHM', 8), +('K05', '05K251', 'GHM', 8), +('K05', '05K252', 'GHM', 8), +('K05', '05K253', 'GHM', 8), +('K05', '05K254', 'GHM', 8), +('K05', '05K25J', 'GHM', 8), +('K05', '05K261', 'GHM', 8), +('K05', '05K262', 'GHM', 8), +('K05', '05K263', 'GHM', 8), +('K05', '05K264', 'GHM', 8), +('K05', '05K26J', 'GHM', 8), +('K05', '05M02E', 'GHM', 8), +('K05', '05M03Z', 'GHM', 8), +('K06', '05K14Z', 'GHM', 8), +('K06', '11K07Z', 'GHM', 8), +('K07', '04K02J', 'GHM', 8), +('K08', '08K02J', 'GHM', 8), +('K08', '08K031', 'GHM', 8), +('K08', '08K032', 'GHM', 8), +('K08', '08K033', 'GHM', 8), +('K08', '08K034', 'GHM', 8), +('K08', '08K041', 'GHM', 8), +('K08', '08K042', 'GHM', 8), +('K08', '08K043', 'GHM', 8), +('K08', '08K044', 'GHM', 8), +('K08', '08K051', 'GHM', 8), +('K08', '08K052', 'GHM', 8), +('K08', '08K053', 'GHM', 8), +('K08', '08K054', 'GHM', 8), +('K08', '08K05J', 'GHM', 8), +('K08', '08K06Z', 'GHM', 8), +('K09', '03K021', 'GHM', 8), +('K09', '03K022', 'GHM', 8), +('K09', '03K023', 'GHM', 8), +('K09', '03K024', 'GHM', 8), +('K09', '03K02J', 'GHM', 8), +('K09', '03K02Z', 'GHM', 8), +('K09', '03K03J', 'GHM', 8), +('K09', '03K04J', 'GHM', 8), +('K10', '11K03Z', 'GHM', 8), +('K10', '11K04Z', 'GHM', 8), +('K10', '11K05Z', 'GHM', 8), +('K10', '11K06Z', 'GHM', 8), +('K10', '11K08J', 'GHM', 8), +('K10', '12K02Z', 'GHM', 8), +('K10', '12K03Z', 'GHM', 8), +('K10', '12K06J', 'GHM', 8), +('K10', '13K02Z', 'GHM', 8), +('K10', '13K03Z', 'GHM', 8), +('K10', '13K04Z', 'GHM', 8), +('K10', '13K05Z', 'GHM', 8), +('K10', '13K06J', 'GHM', 8), +('K11', '01K05J', 'GHM', 8), +('K12', '23K02Z', 'GHM', 8), +('K13', '11K021', 'GHM', 8), +('K13', '11K022', 'GHM', 8), +('K13', '11K023', 'GHM', 8), +('K13', '11K024', 'GHM', 8), +('K13', '11K02J', 'GHM', 8), +('K13', '11K02V', 'GHM', 8), +('K13', '11K02W', 'GHM', 8), +('K14', '17K02Z', 'GHM', 8), +('K14', '17K03Z', 'GHM', 8), +('K14', '17K041', 'GHM', 8), +('K14', '17K042', 'GHM', 8), +('K14', '17K043', 'GHM', 8), +('K14', '17K044', 'GHM', 8), +('K14', '17K04Z', 'GHM', 8), +('K14', '17K051', 'GHM', 8), +('K14', '17K052', 'GHM', 8), +('K14', '17K053', 'GHM', 8), +('K14', '17K054', 'GHM', 8), +('K14', '17K05Z', 'GHM', 8), +('K14', '17K061', 'GHM', 8), +('K14', '17K062', 'GHM', 8), +('K14', '17K063', 'GHM', 8), +('K14', '17K064', 'GHM', 8), +('K14', '17K06Z', 'GHM', 8), +('K14', '17K081', 'GHM', 8), +('K14', '17K082', 'GHM', 8), +('K14', '17K083', 'GHM', 8), +('K14', '17K084', 'GHM', 8), +('K14', '17K091', 'GHM', 8), +('K14', '17K092', 'GHM', 8), +('K14', '17K093', 'GHM', 8), +('K14', '17K094', 'GHM', 8), +('K15', '09K02J', 'GHM', 8), +('K15', '17K07J', 'GHM', 8), +('K15', '23K03J', 'GHM', 8), +('K16', '22K02J', 'GHM', 8), +('K17', '21K02J', 'GHM', 8), +('N01', '15C02A', 'GHM', 8), +('N01', '15C02B', 'GHM', 8), +('N01', '15C02Z', 'GHM', 8), +('N01', '15C03A', 'GHM', 8), +('N01', '15C03B', 'GHM', 8), +('N01', '15C03Z', 'GHM', 8), +('N01', '15C04A', 'GHM', 8), +('N01', '15C04B', 'GHM', 8), +('N01', '15C04Z', 'GHM', 8), +('N01', '15C05A', 'GHM', 8), +('N01', '15C05B', 'GHM', 8), +('N01', '15C05Z', 'GHM', 8), +('N01', '15C06A', 'GHM', 8), +('N01', '15C06B', 'GHM', 8), +('N01', '15C06Z', 'GHM', 8), +('N02', '15M05A', 'GHM', 8), +('N02', '15M05B', 'GHM', 8), +('N02', '15M05C', 'GHM', 8), +('N02', '15M05D', 'GHM', 8), +('N02', '15M06A', 'GHM', 8), +('N02', '15M06B', 'GHM', 8), +('N02', '15M06C', 'GHM', 8), +('N02', '15M06D', 'GHM', 8), +('N02', '15M07A', 'GHM', 8), +('N02', '15M07B', 'GHM', 8), +('N02', '15M07C', 'GHM', 8), +('N02', '15M08A', 'GHM', 8), +('N02', '15M08B', 'GHM', 8), +('N02', '15M08C', 'GHM', 8), +('N02', '15M09A', 'GHM', 8), +('N02', '15M09B', 'GHM', 8), +('N02', '15M09C', 'GHM', 8), +('N02', '15M10A', 'GHM', 8), +('N02', '15M10B', 'GHM', 8), +('N02', '15M10C', 'GHM', 8), +('N02', '15M11A', 'GHM', 8), +('N02', '15M11B', 'GHM', 8), +('N02', '15M11C', 'GHM', 8), +('N02', '15M12A', 'GHM', 8), +('N02', '15M12B', 'GHM', 8), +('N02', '15M13A', 'GHM', 8), +('N02', '15M13B', 'GHM', 8), +('N02', '15M14A', 'GHM', 8), +('N02', '15M14B', 'GHM', 8), +('N02', '15Z02T', 'GHM', 8), +('N02', '15Z02Z', 'GHM', 8), +('N02', '15Z05A', 'GHM', 8), +('N02', '15Z05B', 'GHM', 8), +('N02', '15Z05C', 'GHM', 8), +('N02', '15Z05D', 'GHM', 8), +('N02', '15Z06A', 'GHM', 8), +('N02', '15Z06B', 'GHM', 8), +('N02', '15Z06C', 'GHM', 8), +('N02', '15Z06D', 'GHM', 8), +('N02', '15Z07A', 'GHM', 8), +('N02', '15Z07B', 'GHM', 8), +('N02', '15Z07C', 'GHM', 8), +('N02', '15Z08A', 'GHM', 8), +('N02', '15Z08Z', 'GHM', 8), +('N02', '15Z09A', 'GHM', 8), +('N02', '15Z09Z', 'GHM', 8), +('N03', '15M02Z', 'GHM', 8), +('N03', '15M03E', 'GHM', 8), +('N03', '15M04E', 'GHM', 8), +('N03', '15Z03Z', 'GHM', 8), +('N03', '15Z04E', 'GHM', 8), +('N03', '15Z08E', 'GHM', 8), +('N03', '15Z09E', 'GHM', 8), +('N03', '15Z10E', 'GHM', 8), +('O01', '14C03A', 'GHM', 8), +('O01', '14C03B', 'GHM', 8), +('O01', '14C03C', 'GHM', 8), +('O01', '14C03D', 'GHM', 8), +('O01', '14C03Z', 'GHM', 8), +('O01', '14Z02A', 'GHM', 8), +('O01', '14Z02B', 'GHM', 8), +('O01', '14Z02C', 'GHM', 8), +('O01', '14Z02T', 'GHM', 8), +('O01', '14Z09Z', 'GHM', 8), +('O01', '14Z10A', 'GHM', 8), +('O01', '14Z10B', 'GHM', 8), +('O01', '14Z10T', 'GHM', 8), +('O01', '14Z11A', 'GHM', 8), +('O01', '14Z11B', 'GHM', 8), +('O01', '14Z12A', 'GHM', 8), +('O01', '14Z12B', 'GHM', 8), +('O01', '14Z13A', 'GHM', 8), +('O01', '14Z13B', 'GHM', 8), +('O01', '14Z13C', 'GHM', 8), +('O01', '14Z13D', 'GHM', 8), +('O01', '14Z13T', 'GHM', 8), +('O01', '14Z14A', 'GHM', 8), +('O01', '14Z14B', 'GHM', 8), +('O01', '14Z14C', 'GHM', 8), +('O01', '14Z14D', 'GHM', 8), +('O01', '14Z14T', 'GHM', 8), +('O02', '14C02A', 'GHM', 8), +('O02', '14C02B', 'GHM', 8), +('O02', '14C02C', 'GHM', 8), +('O02', '14C06A', 'GHM', 8), +('O02', '14C06B', 'GHM', 8), +('O02', '14C06C', 'GHM', 8), +('O02', '14C06D', 'GHM', 8), +('O02', '14C07A', 'GHM', 8), +('O02', '14C07B', 'GHM', 8), +('O02', '14C07C', 'GHM', 8), +('O02', '14C07D', 'GHM', 8), +('O02', '14C08A', 'GHM', 8), +('O02', '14C08B', 'GHM', 8), +('O02', '14C08C', 'GHM', 8), +('O02', '14C08D', 'GHM', 8), +('O03', '14Z08Z', 'GHM', 8), +('O04', '14C04T', 'GHM', 8), +('O04', '14C04Z', 'GHM', 8), +('O04', '14C05J', 'GHM', 8), +('O04', '14C05Z', 'GHM', 8), +('O04', '14C09A', 'GHM', 8), +('O04', '14C09B', 'GHM', 8), +('O04', '14C10T', 'GHM', 8), +('O04', '14C10Z', 'GHM', 8), +('O04', '14M02A', 'GHM', 8), +('O04', '14M02B', 'GHM', 8), +('O04', '14M02T', 'GHM', 8), +('O04', '14M02Z', 'GHM', 8), +('O04', '14M03A', 'GHM', 8), +('O04', '14M03B', 'GHM', 8), +('O04', '14M03C', 'GHM', 8), +('O04', '14M03D', 'GHM', 8), +('O04', '14M03T', 'GHM', 8), +('O04', '14Z03A', 'GHM', 8), +('O04', '14Z03B', 'GHM', 8), +('O04', '14Z03T', 'GHM', 8), +('O04', '14Z04T', 'GHM', 8), +('O04', '14Z04Z', 'GHM', 8), +('O04', '14Z05Z', 'GHM', 8), +('O04', '14Z06T', 'GHM', 8), +('O04', '14Z06Z', 'GHM', 8), +('O04', '14Z07Z', 'GHM', 8), +('O04', '14Z15Z', 'GHM', 8), +('O04', '14Z16T', 'GHM', 8), +('O04', '14Z16Z', 'GHM', 8), +('S01', '28Z01Z', 'GHM', 8), +('S01', '28Z02Z', 'GHM', 8), +('S01', '28Z03Z', 'GHM', 8), +('S01', '28Z04Z', 'GHM', 8), +('S01', '28Z05Z', 'GHM', 8), +('S01', '28Z06Z', 'GHM', 8), +('S02', '28Z07Z', 'GHM', 8), +('S03', '28Z17Z', 'GHM', 8), +('S04', '28Z08Z', 'GHM', 8), +('S04', '28Z09Z', 'GHM', 8), +('S04', '28Z10Z', 'GHM', 8), +('S04', '28Z11Z', 'GHM', 8), +('S04', '28Z12Z', 'GHM', 8), +('S04', '28Z13Z', 'GHM', 8), +('S04', '28Z18Z', 'GHM', 8), +('S04', '28Z19Z', 'GHM', 8), +('S04', '28Z20Z', 'GHM', 8), +('S04', '28Z21Z', 'GHM', 8), +('S04', '28Z22Z', 'GHM', 8), +('S04', '28Z23Z', 'GHM', 8), +('S04', '28Z24Z', 'GHM', 8), +('S04', '28Z25Z', 'GHM', 8), +('S05', '28Z14Z', 'GHM', 8), +('S06', '28Z16Z', 'GHM', 8), +('S07', '28Z15Z', 'GHM', 8), +('X01', '27Z021', 'GHM', 8), +('X01', '27Z022', 'GHM', 8), +('X01', '27Z023', 'GHM', 8), +('X01', '27Z024', 'GHM', 8), +('X01', '27Z02Z', 'GHM', 8), +('X01', '27Z03Z', 'GHM', 8), +('X01', '27Z04J', 'GHM', 8), +('X02', '06M021', 'GHM', 8), +('X02', '06M022', 'GHM', 8), +('X02', '06M023', 'GHM', 8), +('X02', '06M024', 'GHM', 8), +('X02', '06M02T', 'GHM', 8), +('X02', '06M02V', 'GHM', 8), +('X02', '06M02W', 'GHM', 8), +('X02', '06M031', 'GHM', 8), +('X02', '06M032', 'GHM', 8), +('X02', '06M033', 'GHM', 8), +('X02', '06M034', 'GHM', 8), +('X02', '06M03T', 'GHM', 8), +('X02', '06M03V', 'GHM', 8), +('X02', '06M03W', 'GHM', 8), +('X02', '06M041', 'GHM', 8), +('X02', '06M042', 'GHM', 8), +('X02', '06M043', 'GHM', 8), +('X02', '06M044', 'GHM', 8), +('X02', '06M04T', 'GHM', 8), +('X02', '06M04V', 'GHM', 8), +('X02', '06M04W', 'GHM', 8), +('X02', '06M051', 'GHM', 8), +('X02', '06M052', 'GHM', 8), +('X02', '06M053', 'GHM', 8), +('X02', '06M054', 'GHM', 8), +('X02', '06M05T', 'GHM', 8), +('X02', '06M05V', 'GHM', 8), +('X02', '06M05W', 'GHM', 8), +('X02', '06M061', 'GHM', 8), +('X02', '06M062', 'GHM', 8), +('X02', '06M063', 'GHM', 8), +('X02', '06M064', 'GHM', 8), +('X02', '06M06T', 'GHM', 8), +('X02', '06M06V', 'GHM', 8), +('X02', '06M06W', 'GHM', 8), +('X02', '06M071', 'GHM', 8), +('X02', '06M072', 'GHM', 8), +('X02', '06M073', 'GHM', 8), +('X02', '06M074', 'GHM', 8), +('X02', '06M07T', 'GHM', 8), +('X02', '06M07V', 'GHM', 8), +('X02', '06M07W', 'GHM', 8), +('X02', '06M081', 'GHM', 8), +('X02', '06M082', 'GHM', 8), +('X02', '06M083', 'GHM', 8), +('X02', '06M084', 'GHM', 8), +('X02', '06M08T', 'GHM', 8), +('X02', '06M08Z', 'GHM', 8), +('X02', '06M091', 'GHM', 8), +('X02', '06M092', 'GHM', 8), +('X02', '06M093', 'GHM', 8), +('X02', '06M094', 'GHM', 8), +('X02', '06M09T', 'GHM', 8), +('X02', '06M09V', 'GHM', 8), +('X02', '06M09W', 'GHM', 8), +('X02', '06M101', 'GHM', 8), +('X02', '06M102', 'GHM', 8), +('X02', '06M103', 'GHM', 8), +('X02', '06M104', 'GHM', 8), +('X02', '06M10Z', 'GHM', 8), +('X02', '06M111', 'GHM', 8), +('X02', '06M112', 'GHM', 8), +('X02', '06M113', 'GHM', 8), +('X02', '06M114', 'GHM', 8), +('X02', '06M11T', 'GHM', 8), +('X02', '06M11V', 'GHM', 8), +('X02', '06M11W', 'GHM', 8), +('X02', '06M121', 'GHM', 8), +('X02', '06M122', 'GHM', 8), +('X02', '06M123', 'GHM', 8), +('X02', '06M124', 'GHM', 8), +('X02', '06M12T', 'GHM', 8), +('X02', '06M131', 'GHM', 8), +('X02', '06M132', 'GHM', 8), +('X02', '06M133', 'GHM', 8), +('X02', '06M134', 'GHM', 8), +('X02', '06M13T', 'GHM', 8), +('X02', '06M141', 'GHM', 8), +('X02', '06M142', 'GHM', 8), +('X02', '06M143', 'GHM', 8), +('X02', '06M144', 'GHM', 8), +('X02', '06M15Z', 'GHM', 8), +('X02', '06M16Z', 'GHM', 8), +('X02', '06M17T', 'GHM', 8), +('X02', '06M17Z', 'GHM', 8), +('X02', '06M18T', 'GHM', 8), +('X02', '06M18Z', 'GHM', 8), +('X02', '06M191', 'GHM', 8), +('X02', '06M192', 'GHM', 8), +('X02', '06M193', 'GHM', 8), +('X02', '06M194', 'GHM', 8), +('X02', '06M201', 'GHM', 8), +('X02', '06M202', 'GHM', 8), +('X02', '06M203', 'GHM', 8), +('X02', '06M204', 'GHM', 8), +('X02', '06M20T', 'GHM', 8), +('X02', '06M211', 'GHM', 8), +('X02', '06M212', 'GHM', 8), +('X02', '06M213', 'GHM', 8), +('X02', '06M214', 'GHM', 8), +('X02', '07M021', 'GHM', 8), +('X02', '07M022', 'GHM', 8), +('X02', '07M023', 'GHM', 8), +('X02', '07M024', 'GHM', 8), +('X02', '07M02T', 'GHM', 8), +('X02', '07M02V', 'GHM', 8), +('X02', '07M02W', 'GHM', 8), +('X02', '07M041', 'GHM', 8), +('X02', '07M042', 'GHM', 8), +('X02', '07M043', 'GHM', 8), +('X02', '07M044', 'GHM', 8), +('X02', '07M04T', 'GHM', 8), +('X02', '07M04V', 'GHM', 8), +('X02', '07M04W', 'GHM', 8), +('X02', '07M061', 'GHM', 8), +('X02', '07M062', 'GHM', 8), +('X02', '07M063', 'GHM', 8), +('X02', '07M064', 'GHM', 8), +('X02', '07M06T', 'GHM', 8), +('X02', '07M06V', 'GHM', 8), +('X02', '07M06W', 'GHM', 8), +('X02', '07M071', 'GHM', 8), +('X02', '07M072', 'GHM', 8), +('X02', '07M073', 'GHM', 8), +('X02', '07M074', 'GHM', 8), +('X02', '07M07T', 'GHM', 8), +('X02', '07M081', 'GHM', 8), +('X02', '07M082', 'GHM', 8), +('X02', '07M083', 'GHM', 8), +('X02', '07M084', 'GHM', 8), +('X02', '07M08T', 'GHM', 8), +('X02', '07M091', 'GHM', 8), +('X02', '07M092', 'GHM', 8), +('X02', '07M093', 'GHM', 8), +('X02', '07M094', 'GHM', 8), +('X02', '07M09T', 'GHM', 8), +('X02', '07M101', 'GHM', 8), +('X02', '07M102', 'GHM', 8), +('X02', '07M103', 'GHM', 8), +('X02', '07M104', 'GHM', 8), +('X02', '07M10T', 'GHM', 8), +('X02', '07M111', 'GHM', 8), +('X02', '07M112', 'GHM', 8), +('X02', '07M113', 'GHM', 8), +('X02', '07M114', 'GHM', 8), +('X02', '07M11T', 'GHM', 8), +('X02', '07M121', 'GHM', 8), +('X02', '07M122', 'GHM', 8), +('X02', '07M123', 'GHM', 8), +('X02', '07M124', 'GHM', 8), +('X02', '07M13Z', 'GHM', 8), +('X02', '07M14T', 'GHM', 8), +('X02', '07M14Z', 'GHM', 8), +('X02', '07M151', 'GHM', 8), +('X02', '07M152', 'GHM', 8), +('X02', '07M153', 'GHM', 8), +('X02', '07M154', 'GHM', 8), +('X02', '07M15T', 'GHM', 8), +('X02', '07M161', 'GHM', 8), +('X02', '07M162', 'GHM', 8), +('X02', '07M163', 'GHM', 8), +('X02', '07M164', 'GHM', 8), +('X03', '01M02Z', 'GHM', 8), +('X03', '01M041', 'GHM', 8), +('X03', '01M042', 'GHM', 8), +('X03', '01M043', 'GHM', 8), +('X03', '01M044', 'GHM', 8), +('X03', '01M04T', 'GHM', 8), +('X03', '01M04Z', 'GHM', 8), +('X03', '01M051', 'GHM', 8), +('X03', '01M052', 'GHM', 8), +('X03', '01M053', 'GHM', 8), +('X03', '01M054', 'GHM', 8), +('X03', '01M05T', 'GHM', 8), +('X03', '01M05V', 'GHM', 8), +('X03', '01M05W', 'GHM', 8), +('X03', '01M071', 'GHM', 8), +('X03', '01M072', 'GHM', 8), +('X03', '01M073', 'GHM', 8), +('X03', '01M074', 'GHM', 8), +('X03', '01M07T', 'GHM', 8), +('X03', '01M07Z', 'GHM', 8), +('X03', '01M081', 'GHM', 8), +('X03', '01M082', 'GHM', 8), +('X03', '01M083', 'GHM', 8), +('X03', '01M084', 'GHM', 8), +('X03', '01M08T', 'GHM', 8), +('X03', '01M08V', 'GHM', 8), +('X03', '01M08W', 'GHM', 8), +('X03', '01M091', 'GHM', 8), +('X03', '01M092', 'GHM', 8), +('X03', '01M093', 'GHM', 8), +('X03', '01M094', 'GHM', 8), +('X03', '01M09T', 'GHM', 8), +('X03', '01M09Z', 'GHM', 8), +('X03', '01M101', 'GHM', 8), +('X03', '01M102', 'GHM', 8), +('X03', '01M103', 'GHM', 8), +('X03', '01M104', 'GHM', 8), +('X03', '01M10T', 'GHM', 8), +('X03', '01M10V', 'GHM', 8), +('X03', '01M10W', 'GHM', 8), +('X03', '01M111', 'GHM', 8), +('X03', '01M112', 'GHM', 8), +('X03', '01M113', 'GHM', 8), +('X03', '01M114', 'GHM', 8), +('X03', '01M11T', 'GHM', 8), +('X03', '01M11V', 'GHM', 8), +('X03', '01M11W', 'GHM', 8), +('X03', '01M121', 'GHM', 8), +('X03', '01M122', 'GHM', 8), +('X03', '01M123', 'GHM', 8), +('X03', '01M124', 'GHM', 8), +('X03', '01M12T', 'GHM', 8), +('X03', '01M12V', 'GHM', 8), +('X03', '01M12W', 'GHM', 8), +('X03', '01M131', 'GHM', 8), +('X03', '01M132', 'GHM', 8), +('X03', '01M133', 'GHM', 8), +('X03', '01M134', 'GHM', 8), +('X03', '01M13Z', 'GHM', 8), +('X03', '01M151', 'GHM', 8), +('X03', '01M152', 'GHM', 8), +('X03', '01M153', 'GHM', 8), +('X03', '01M154', 'GHM', 8), +('X03', '01M15T', 'GHM', 8), +('X03', '01M15Z', 'GHM', 8), +('X03', '01M161', 'GHM', 8), +('X03', '01M162', 'GHM', 8), +('X03', '01M163', 'GHM', 8), +('X03', '01M164', 'GHM', 8), +('X03', '01M16T', 'GHM', 8), +('X03', '01M16Z', 'GHM', 8), +('X03', '01M171', 'GHM', 8), +('X03', '01M172', 'GHM', 8), +('X03', '01M173', 'GHM', 8), +('X03', '01M174', 'GHM', 8), +('X03', '01M17T', 'GHM', 8), +('X03', '01M17V', 'GHM', 8), +('X03', '01M17W', 'GHM', 8), +('X03', '01M221', 'GHM', 8), +('X03', '01M222', 'GHM', 8), +('X03', '01M223', 'GHM', 8), +('X03', '01M224', 'GHM', 8), +('X03', '01M22T', 'GHM', 8), +('X03', '01M22Z', 'GHM', 8), +('X03', '01M231', 'GHM', 8), +('X03', '01M232', 'GHM', 8), +('X03', '01M233', 'GHM', 8), +('X03', '01M234', 'GHM', 8), +('X03', '01M23Z', 'GHM', 8), +('X03', '01M241', 'GHM', 8), +('X03', '01M242', 'GHM', 8), +('X03', '01M243', 'GHM', 8), +('X03', '01M244', 'GHM', 8), +('X03', '01M24T', 'GHM', 8), +('X03', '01M24V', 'GHM', 8), +('X03', '01M24W', 'GHM', 8), +('X03', '01M251', 'GHM', 8), +('X03', '01M252', 'GHM', 8), +('X03', '01M253', 'GHM', 8), +('X03', '01M254', 'GHM', 8), +('X03', '01M25T', 'GHM', 8), +('X03', '01M25V', 'GHM', 8), +('X03', '01M25W', 'GHM', 8), +('X03', '01M261', 'GHM', 8), +('X03', '01M262', 'GHM', 8), +('X03', '01M263', 'GHM', 8), +('X03', '01M264', 'GHM', 8), +('X03', '01M26T', 'GHM', 8), +('X03', '01M271', 'GHM', 8), +('X03', '01M272', 'GHM', 8), +('X03', '01M273', 'GHM', 8), +('X03', '01M274', 'GHM', 8), +('X03', '01M27T', 'GHM', 8), +('X03', '01M281', 'GHM', 8), +('X03', '01M282', 'GHM', 8), +('X03', '01M283', 'GHM', 8), +('X03', '01M284', 'GHM', 8), +('X03', '01M28T', 'GHM', 8), +('X03', '01M291', 'GHM', 8), +('X03', '01M292', 'GHM', 8), +('X03', '01M293', 'GHM', 8), +('X03', '01M294', 'GHM', 8), +('X03', '01M301', 'GHM', 8), +('X03', '01M302', 'GHM', 8), +('X03', '01M303', 'GHM', 8), +('X03', '01M304', 'GHM', 8), +('X03', '01M30T', 'GHM', 8), +('X03', '01M311', 'GHM', 8), +('X03', '01M312', 'GHM', 8), +('X03', '01M313', 'GHM', 8), +('X03', '01M314', 'GHM', 8), +('X03', '01M31T', 'GHM', 8), +('X03', '01M32Z', 'GHM', 8), +('X03', '01M331', 'GHM', 8), +('X03', '01M332', 'GHM', 8), +('X03', '01M333', 'GHM', 8), +('X03', '01M334', 'GHM', 8), +('X03', '01M34T', 'GHM', 8), +('X03', '01M34Z', 'GHM', 8), +('X03', '01M35T', 'GHM', 8), +('X03', '01M35Z', 'GHM', 8), +('X03', '01M36E', 'GHM', 8), +('X03', '01M381', 'GHM', 8), +('X03', '01M382', 'GHM', 8), +('X03', '01M383', 'GHM', 8), +('X03', '01M384', 'GHM', 8), +('X03', '01M391', 'GHM', 8), +('X03', '01M392', 'GHM', 8), +('X03', '01M393', 'GHM', 8), +('X03', '01M394', 'GHM', 8), +('X04', '01M181', 'GHM', 8), +('X04', '01M182', 'GHM', 8), +('X04', '01M183', 'GHM', 8), +('X04', '01M184', 'GHM', 8), +('X04', '01M18T', 'GHM', 8), +('X04', '01M18V', 'GHM', 8), +('X04', '01M18W', 'GHM', 8), +('X04', '01M191', 'GHM', 8), +('X04', '01M192', 'GHM', 8), +('X04', '01M193', 'GHM', 8), +('X04', '01M194', 'GHM', 8), +('X04', '01M19V', 'GHM', 8), +('X04', '01M19W', 'GHM', 8), +('X04', '01M201', 'GHM', 8), +('X04', '01M202', 'GHM', 8), +('X04', '01M203', 'GHM', 8), +('X04', '01M204', 'GHM', 8), +('X04', '01M20V', 'GHM', 8), +('X04', '01M20W', 'GHM', 8), +('X05', '08M02Z', 'GHM', 8), +('X05', '08M041', 'GHM', 8), +('X05', '08M042', 'GHM', 8), +('X05', '08M043', 'GHM', 8), +('X05', '08M044', 'GHM', 8), +('X05', '08M04T', 'GHM', 8), +('X05', '08M04V', 'GHM', 8), +('X05', '08M04W', 'GHM', 8), +('X05', '08M051', 'GHM', 8), +('X05', '08M052', 'GHM', 8), +('X05', '08M053', 'GHM', 8), +('X05', '08M054', 'GHM', 8), +('X05', '08M05T', 'GHM', 8), +('X05', '08M05Z', 'GHM', 8), +('X05', '08M061', 'GHM', 8), +('X05', '08M062', 'GHM', 8), +('X05', '08M063', 'GHM', 8), +('X05', '08M064', 'GHM', 8), +('X05', '08M06T', 'GHM', 8), +('X05', '08M06Z', 'GHM', 8), +('X05', '08M071', 'GHM', 8), +('X05', '08M072', 'GHM', 8), +('X05', '08M073', 'GHM', 8), +('X05', '08M074', 'GHM', 8), +('X05', '08M07T', 'GHM', 8), +('X05', '08M07V', 'GHM', 8), +('X05', '08M07W', 'GHM', 8), +('X05', '08M081', 'GHM', 8), +('X05', '08M082', 'GHM', 8), +('X05', '08M083', 'GHM', 8), +('X05', '08M084', 'GHM', 8), +('X05', '08M08T', 'GHM', 8), +('X05', '08M08Z', 'GHM', 8), +('X05', '08M201', 'GHM', 8), +('X05', '08M202', 'GHM', 8), +('X05', '08M203', 'GHM', 8), +('X05', '08M204', 'GHM', 8), +('X05', '08M211', 'GHM', 8), +('X05', '08M212', 'GHM', 8), +('X05', '08M213', 'GHM', 8), +('X05', '08M214', 'GHM', 8), +('X05', '08M221', 'GHM', 8), +('X05', '08M222', 'GHM', 8), +('X05', '08M223', 'GHM', 8), +('X05', '08M224', 'GHM', 8), +('X05', '08M231', 'GHM', 8), +('X05', '08M232', 'GHM', 8), +('X05', '08M233', 'GHM', 8), +('X05', '08M234', 'GHM', 8), +('X05', '08M261', 'GHM', 8), +('X05', '08M262', 'GHM', 8), +('X05', '08M263', 'GHM', 8), +('X05', '08M264', 'GHM', 8), +('X05', '08M331', 'GHM', 8), +('X05', '08M332', 'GHM', 8), +('X05', '08M333', 'GHM', 8), +('X05', '08M334', 'GHM', 8), +('X05', '08M33T', 'GHM', 8), +('X05', '08M371', 'GHM', 8), +('X05', '08M372', 'GHM', 8), +('X05', '08M373', 'GHM', 8), +('X05', '08M374', 'GHM', 8), +('X05', '08M37T', 'GHM', 8), +('X05', '08M381', 'GHM', 8), +('X05', '08M382', 'GHM', 8), +('X05', '08M383', 'GHM', 8), +('X05', '08M384', 'GHM', 8), +('X05', '08M38T', 'GHM', 8), +('X05', '21M061', 'GHM', 8), +('X05', '21M062', 'GHM', 8), +('X05', '21M063', 'GHM', 8), +('X05', '21M064', 'GHM', 8), +('X05', '21M06Z', 'GHM', 8), +('X05', '21M071', 'GHM', 8), +('X05', '21M072', 'GHM', 8), +('X05', '21M073', 'GHM', 8), +('X05', '21M074', 'GHM', 8), +('X05', '21M07T', 'GHM', 8), +('X05', '21M07V', 'GHM', 8), +('X05', '21M07W', 'GHM', 8), +('X06', '08M01S', 'GHM', 8), +('X06', '08M091', 'GHM', 8), +('X06', '08M092', 'GHM', 8), +('X06', '08M093', 'GHM', 8), +('X06', '08M094', 'GHM', 8), +('X06', '08M09T', 'GHM', 8), +('X06', '08M09Z', 'GHM', 8), +('X06', '08M101', 'GHM', 8), +('X06', '08M102', 'GHM', 8), +('X06', '08M103', 'GHM', 8), +('X06', '08M104', 'GHM', 8), +('X06', '08M10T', 'GHM', 8), +('X06', '08M10V', 'GHM', 8), +('X06', '08M10W', 'GHM', 8), +('X06', '08M13Z', 'GHM', 8), +('X06', '08M141', 'GHM', 8), +('X06', '08M142', 'GHM', 8), +('X06', '08M143', 'GHM', 8), +('X06', '08M144', 'GHM', 8), +('X06', '08M14T', 'GHM', 8), +('X06', '08M14V', 'GHM', 8), +('X06', '08M14W', 'GHM', 8), +('X06', '08M151', 'GHM', 8), +('X06', '08M152', 'GHM', 8), +('X06', '08M153', 'GHM', 8), +('X06', '08M154', 'GHM', 8), +('X06', '08M15T', 'GHM', 8), +('X06', '08M15V', 'GHM', 8), +('X06', '08M15W', 'GHM', 8), +('X06', '08M16Z', 'GHM', 8), +('X06', '08M17Z', 'GHM', 8), +('X06', '08M181', 'GHM', 8), +('X06', '08M182', 'GHM', 8), +('X06', '08M183', 'GHM', 8), +('X06', '08M184', 'GHM', 8), +('X06', '08M18T', 'GHM', 8), +('X06', '08M18Z', 'GHM', 8), +('X06', '08M191', 'GHM', 8), +('X06', '08M192', 'GHM', 8), +('X06', '08M193', 'GHM', 8), +('X06', '08M194', 'GHM', 8), +('X06', '08M19T', 'GHM', 8), +('X06', '08M19V', 'GHM', 8), +('X06', '08M19W', 'GHM', 8), +('X06', '08M241', 'GHM', 8), +('X06', '08M242', 'GHM', 8), +('X06', '08M243', 'GHM', 8), +('X06', '08M244', 'GHM', 8), +('X06', '08M24T', 'GHM', 8), +('X06', '08M251', 'GHM', 8), +('X06', '08M252', 'GHM', 8), +('X06', '08M253', 'GHM', 8), +('X06', '08M254', 'GHM', 8), +('X06', '08M25T', 'GHM', 8), +('X06', '08M271', 'GHM', 8), +('X06', '08M272', 'GHM', 8), +('X06', '08M273', 'GHM', 8), +('X06', '08M274', 'GHM', 8), +('X06', '08M27T', 'GHM', 8), +('X06', '08M281', 'GHM', 8), +('X06', '08M282', 'GHM', 8), +('X06', '08M283', 'GHM', 8), +('X06', '08M284', 'GHM', 8), +('X06', '08M28T', 'GHM', 8), +('X06', '08M291', 'GHM', 8), +('X06', '08M292', 'GHM', 8), +('X06', '08M293', 'GHM', 8), +('X06', '08M294', 'GHM', 8), +('X06', '08M29T', 'GHM', 8), +('X06', '08M301', 'GHM', 8), +('X06', '08M302', 'GHM', 8), +('X06', '08M303', 'GHM', 8), +('X06', '08M304', 'GHM', 8), +('X06', '08M30T', 'GHM', 8), +('X06', '08M311', 'GHM', 8), +('X06', '08M312', 'GHM', 8), +('X06', '08M313', 'GHM', 8), +('X06', '08M314', 'GHM', 8), +('X06', '08M31T', 'GHM', 8), +('X06', '08M321', 'GHM', 8), +('X06', '08M322', 'GHM', 8), +('X06', '08M323', 'GHM', 8), +('X06', '08M324', 'GHM', 8), +('X06', '08M32T', 'GHM', 8), +('X06', '08M341', 'GHM', 8), +('X06', '08M342', 'GHM', 8), +('X06', '08M343', 'GHM', 8), +('X06', '08M344', 'GHM', 8), +('X06', '08M34T', 'GHM', 8), +('X06', '08M35Z', 'GHM', 8), +('X06', '08M36T', 'GHM', 8), +('X06', '08M36Z', 'GHM', 8), +('X07', '05M041', 'GHM', 8), +('X07', '05M042', 'GHM', 8), +('X07', '05M043', 'GHM', 8), +('X07', '05M044', 'GHM', 8), +('X07', '05M04T', 'GHM', 8), +('X07', '05M04V', 'GHM', 8), +('X07', '05M04W', 'GHM', 8), +('X07', '05M051', 'GHM', 8), +('X07', '05M052', 'GHM', 8), +('X07', '05M053', 'GHM', 8), +('X07', '05M054', 'GHM', 8), +('X07', '05M05T', 'GHM', 8), +('X07', '05M05V', 'GHM', 8), +('X07', '05M05W', 'GHM', 8), +('X07', '05M061', 'GHM', 8), +('X07', '05M062', 'GHM', 8), +('X07', '05M063', 'GHM', 8), +('X07', '05M064', 'GHM', 8), +('X07', '05M06T', 'GHM', 8), +('X07', '05M06V', 'GHM', 8), +('X07', '05M06W', 'GHM', 8), +('X07', '05M071', 'GHM', 8), +('X07', '05M072', 'GHM', 8), +('X07', '05M073', 'GHM', 8), +('X07', '05M074', 'GHM', 8), +('X07', '05M07T', 'GHM', 8), +('X07', '05M07V', 'GHM', 8), +('X07', '05M07W', 'GHM', 8), +('X07', '05M081', 'GHM', 8), +('X07', '05M082', 'GHM', 8), +('X07', '05M083', 'GHM', 8), +('X07', '05M084', 'GHM', 8), +('X07', '05M08T', 'GHM', 8), +('X07', '05M08V', 'GHM', 8), +('X07', '05M08W', 'GHM', 8), +('X07', '05M091', 'GHM', 8), +('X07', '05M092', 'GHM', 8), +('X07', '05M093', 'GHM', 8), +('X07', '05M094', 'GHM', 8), +('X07', '05M09T', 'GHM', 8), +('X07', '05M09V', 'GHM', 8), +('X07', '05M09W', 'GHM', 8), +('X07', '05M101', 'GHM', 8), +('X07', '05M102', 'GHM', 8), +('X07', '05M103', 'GHM', 8), +('X07', '05M104', 'GHM', 8), +('X07', '05M10T', 'GHM', 8), +('X07', '05M10Z', 'GHM', 8), +('X07', '05M111', 'GHM', 8), +('X07', '05M112', 'GHM', 8), +('X07', '05M113', 'GHM', 8), +('X07', '05M114', 'GHM', 8), +('X07', '05M11T', 'GHM', 8), +('X07', '05M11V', 'GHM', 8), +('X07', '05M11W', 'GHM', 8), +('X07', '05M121', 'GHM', 8), +('X07', '05M122', 'GHM', 8), +('X07', '05M123', 'GHM', 8), +('X07', '05M124', 'GHM', 8), +('X07', '05M12T', 'GHM', 8), +('X07', '05M12V', 'GHM', 8), +('X07', '05M12W', 'GHM', 8), +('X07', '05M131', 'GHM', 8), +('X07', '05M132', 'GHM', 8), +('X07', '05M133', 'GHM', 8), +('X07', '05M134', 'GHM', 8), +('X07', '05M13T', 'GHM', 8), +('X07', '05M13Z', 'GHM', 8), +('X07', '05M141', 'GHM', 8), +('X07', '05M142', 'GHM', 8), +('X07', '05M143', 'GHM', 8), +('X07', '05M144', 'GHM', 8), +('X07', '05M14Z', 'GHM', 8), +('X07', '05M151', 'GHM', 8), +('X07', '05M152', 'GHM', 8), +('X07', '05M153', 'GHM', 8), +('X07', '05M154', 'GHM', 8), +('X07', '05M15T', 'GHM', 8), +('X07', '05M15Z', 'GHM', 8), +('X07', '05M161', 'GHM', 8), +('X07', '05M162', 'GHM', 8), +('X07', '05M163', 'GHM', 8), +('X07', '05M164', 'GHM', 8), +('X07', '05M16T', 'GHM', 8), +('X07', '05M16V', 'GHM', 8), +('X07', '05M16W', 'GHM', 8), +('X07', '05M171', 'GHM', 8), +('X07', '05M172', 'GHM', 8), +('X07', '05M173', 'GHM', 8), +('X07', '05M174', 'GHM', 8), +('X07', '05M17T', 'GHM', 8), +('X07', '05M17V', 'GHM', 8), +('X07', '05M17W', 'GHM', 8), +('X07', '05M181', 'GHM', 8), +('X07', '05M182', 'GHM', 8), +('X07', '05M183', 'GHM', 8), +('X07', '05M184', 'GHM', 8), +('X07', '05M18T', 'GHM', 8), +('X07', '05M18Z', 'GHM', 8), +('X07', '05M191', 'GHM', 8), +('X07', '05M192', 'GHM', 8), +('X07', '05M193', 'GHM', 8), +('X07', '05M194', 'GHM', 8), +('X07', '05M20Z', 'GHM', 8), +('X07', '05M21E', 'GHM', 8), +('X07', '05M23T', 'GHM', 8), +('X07', '05M23Z', 'GHM', 8), +('X08', '04M021', 'GHM', 8), +('X08', '04M022', 'GHM', 8), +('X08', '04M023', 'GHM', 8), +('X08', '04M024', 'GHM', 8), +('X08', '04M02T', 'GHM', 8), +('X08', '04M02V', 'GHM', 8), +('X08', '04M02W', 'GHM', 8), +('X08', '04M031', 'GHM', 8), +('X08', '04M032', 'GHM', 8), +('X08', '04M033', 'GHM', 8), +('X08', '04M034', 'GHM', 8), +('X08', '04M03T', 'GHM', 8), +('X08', '04M03V', 'GHM', 8), +('X08', '04M03W', 'GHM', 8), +('X08', '04M041', 'GHM', 8), +('X08', '04M042', 'GHM', 8), +('X08', '04M043', 'GHM', 8), +('X08', '04M044', 'GHM', 8), +('X08', '04M04Z', 'GHM', 8), +('X08', '04M051', 'GHM', 8), +('X08', '04M052', 'GHM', 8), +('X08', '04M053', 'GHM', 8), +('X08', '04M054', 'GHM', 8), +('X08', '04M05T', 'GHM', 8), +('X08', '04M05V', 'GHM', 8), +('X08', '04M05W', 'GHM', 8), +('X08', '04M061', 'GHM', 8), +('X08', '04M062', 'GHM', 8), +('X08', '04M063', 'GHM', 8), +('X08', '04M064', 'GHM', 8), +('X08', '04M06T', 'GHM', 8), +('X08', '04M06Z', 'GHM', 8), +('X08', '04M071', 'GHM', 8), +('X08', '04M072', 'GHM', 8), +('X08', '04M073', 'GHM', 8), +('X08', '04M074', 'GHM', 8), +('X08', '04M07T', 'GHM', 8), +('X08', '04M07V', 'GHM', 8), +('X08', '04M07W', 'GHM', 8), +('X08', '04M081', 'GHM', 8), +('X08', '04M082', 'GHM', 8), +('X08', '04M083', 'GHM', 8), +('X08', '04M084', 'GHM', 8), +('X08', '04M08T', 'GHM', 8), +('X08', '04M08V', 'GHM', 8), +('X08', '04M08W', 'GHM', 8), +('X08', '04M091', 'GHM', 8), +('X08', '04M092', 'GHM', 8), +('X08', '04M093', 'GHM', 8), +('X08', '04M094', 'GHM', 8), +('X08', '04M09T', 'GHM', 8), +('X08', '04M09V', 'GHM', 8), +('X08', '04M09W', 'GHM', 8), +('X08', '04M101', 'GHM', 8), +('X08', '04M102', 'GHM', 8), +('X08', '04M103', 'GHM', 8), +('X08', '04M104', 'GHM', 8), +('X08', '04M10T', 'GHM', 8), +('X08', '04M10V', 'GHM', 8), +('X08', '04M10W', 'GHM', 8), +('X08', '04M111', 'GHM', 8), +('X08', '04M112', 'GHM', 8), +('X08', '04M113', 'GHM', 8), +('X08', '04M114', 'GHM', 8), +('X08', '04M11V', 'GHM', 8), +('X08', '04M11W', 'GHM', 8), +('X08', '04M121', 'GHM', 8), +('X08', '04M122', 'GHM', 8), +('X08', '04M123', 'GHM', 8), +('X08', '04M124', 'GHM', 8), +('X08', '04M12T', 'GHM', 8), +('X08', '04M12V', 'GHM', 8), +('X08', '04M12W', 'GHM', 8), +('X08', '04M131', 'GHM', 8), +('X08', '04M132', 'GHM', 8), +('X08', '04M133', 'GHM', 8), +('X08', '04M134', 'GHM', 8), +('X08', '04M13T', 'GHM', 8), +('X08', '04M13Z', 'GHM', 8), +('X08', '04M141', 'GHM', 8), +('X08', '04M142', 'GHM', 8), +('X08', '04M143', 'GHM', 8), +('X08', '04M144', 'GHM', 8), +('X08', '04M14T', 'GHM', 8), +('X08', '04M14V', 'GHM', 8), +('X08', '04M14W', 'GHM', 8), +('X08', '04M151', 'GHM', 8), +('X08', '04M152', 'GHM', 8), +('X08', '04M153', 'GHM', 8), +('X08', '04M154', 'GHM', 8), +('X08', '04M15T', 'GHM', 8), +('X08', '04M15V', 'GHM', 8), +('X08', '04M15W', 'GHM', 8), +('X08', '04M161', 'GHM', 8), +('X08', '04M162', 'GHM', 8), +('X08', '04M163', 'GHM', 8), +('X08', '04M164', 'GHM', 8), +('X08', '04M16T', 'GHM', 8), +('X08', '04M16V', 'GHM', 8), +('X08', '04M16W', 'GHM', 8), +('X08', '04M171', 'GHM', 8), +('X08', '04M172', 'GHM', 8), +('X08', '04M173', 'GHM', 8), +('X08', '04M174', 'GHM', 8), +('X08', '04M17T', 'GHM', 8), +('X08', '04M17V', 'GHM', 8), +('X08', '04M17W', 'GHM', 8), +('X08', '04M181', 'GHM', 8), +('X08', '04M182', 'GHM', 8), +('X08', '04M183', 'GHM', 8), +('X08', '04M184', 'GHM', 8), +('X08', '04M18T', 'GHM', 8), +('X08', '04M191', 'GHM', 8), +('X08', '04M192', 'GHM', 8), +('X08', '04M193', 'GHM', 8), +('X08', '04M194', 'GHM', 8), +('X08', '04M19T', 'GHM', 8), +('X08', '04M201', 'GHM', 8), +('X08', '04M202', 'GHM', 8), +('X08', '04M203', 'GHM', 8), +('X08', '04M204', 'GHM', 8), +('X08', '04M20T', 'GHM', 8), +('X08', '04M211', 'GHM', 8), +('X08', '04M212', 'GHM', 8), +('X08', '04M213', 'GHM', 8), +('X08', '04M214', 'GHM', 8), +('X08', '04M22Z', 'GHM', 8), +('X08', '04M23T', 'GHM', 8), +('X08', '04M23Z', 'GHM', 8), +('X08', '04M24E', 'GHM', 8), +('X08', '04M251', 'GHM', 8), +('X08', '04M252', 'GHM', 8), +('X08', '04M253', 'GHM', 8), +('X08', '04M254', 'GHM', 8), +('X08', '04M25T', 'GHM', 8), +('X08', '04M261', 'GHM', 8), +('X08', '04M262', 'GHM', 8), +('X08', '04M263', 'GHM', 8), +('X08', '04M264', 'GHM', 8), +('X08', '04M26T', 'GHM', 8), +('X08', '04M271', 'GHM', 8), +('X08', '04M272', 'GHM', 8), +('X08', '04M273', 'GHM', 8), +('X08', '04M274', 'GHM', 8), +('X09', '03M021', 'GHM', 8), +('X09', '03M022', 'GHM', 8), +('X09', '03M023', 'GHM', 8), +('X09', '03M024', 'GHM', 8), +('X09', '03M02T', 'GHM', 8), +('X09', '03M02Z', 'GHM', 8), +('X09', '03M031', 'GHM', 8), +('X09', '03M032', 'GHM', 8), +('X09', '03M033', 'GHM', 8), +('X09', '03M034', 'GHM', 8), +('X09', '03M03T', 'GHM', 8), +('X09', '03M03Z', 'GHM', 8), +('X09', '03M041', 'GHM', 8), +('X09', '03M042', 'GHM', 8), +('X09', '03M043', 'GHM', 8), +('X09', '03M044', 'GHM', 8), +('X09', '03M04T', 'GHM', 8), +('X09', '03M04V', 'GHM', 8), +('X09', '03M04W', 'GHM', 8), +('X09', '03M051', 'GHM', 8), +('X09', '03M052', 'GHM', 8), +('X09', '03M053', 'GHM', 8), +('X09', '03M054', 'GHM', 8), +('X09', '03M05T', 'GHM', 8), +('X09', '03M05Z', 'GHM', 8), +('X09', '03M061', 'GHM', 8), +('X09', '03M062', 'GHM', 8), +('X09', '03M063', 'GHM', 8), +('X09', '03M064', 'GHM', 8), +('X09', '03M06T', 'GHM', 8), +('X09', '03M06Z', 'GHM', 8), +('X09', '03M071', 'GHM', 8), +('X09', '03M072', 'GHM', 8), +('X09', '03M073', 'GHM', 8), +('X09', '03M074', 'GHM', 8), +('X09', '03M07T', 'GHM', 8), +('X09', '03M07V', 'GHM', 8), +('X09', '03M07W', 'GHM', 8), +('X09', '03M081', 'GHM', 8), +('X09', '03M082', 'GHM', 8), +('X09', '03M083', 'GHM', 8), +('X09', '03M084', 'GHM', 8), +('X09', '03M08T', 'GHM', 8), +('X09', '03M08Z', 'GHM', 8), +('X09', '03M091', 'GHM', 8), +('X09', '03M092', 'GHM', 8), +('X09', '03M093', 'GHM', 8), +('X09', '03M094', 'GHM', 8), +('X09', '03M09T', 'GHM', 8), +('X09', '03M09V', 'GHM', 8), +('X09', '03M09W', 'GHM', 8), +('X09', '03M101', 'GHM', 8), +('X09', '03M102', 'GHM', 8), +('X09', '03M103', 'GHM', 8), +('X09', '03M104', 'GHM', 8), +('X09', '03M10T', 'GHM', 8), +('X09', '03M10Z', 'GHM', 8), +('X09', '03M111', 'GHM', 8), +('X09', '03M112', 'GHM', 8), +('X09', '03M113', 'GHM', 8), +('X09', '03M114', 'GHM', 8), +('X09', '03M11T', 'GHM', 8), +('X09', '03M11V', 'GHM', 8), +('X09', '03M11W', 'GHM', 8), +('X09', '03M121', 'GHM', 8), +('X09', '03M122', 'GHM', 8), +('X09', '03M123', 'GHM', 8), +('X09', '03M124', 'GHM', 8), +('X09', '03M131', 'GHM', 8), +('X09', '03M132', 'GHM', 8), +('X09', '03M133', 'GHM', 8), +('X09', '03M134', 'GHM', 8), +('X09', '03M14Z', 'GHM', 8), +('X09', '03M15T', 'GHM', 8), +('X09', '03M15Z', 'GHM', 8), +('X10', '02M021', 'GHM', 8), +('X10', '02M022', 'GHM', 8), +('X10', '02M023', 'GHM', 8), +('X10', '02M024', 'GHM', 8), +('X10', '02M02Z', 'GHM', 8), +('X10', '02M031', 'GHM', 8), +('X10', '02M032', 'GHM', 8), +('X10', '02M033', 'GHM', 8), +('X10', '02M034', 'GHM', 8), +('X10', '02M03Z', 'GHM', 8), +('X10', '02M041', 'GHM', 8), +('X10', '02M042', 'GHM', 8), +('X10', '02M043', 'GHM', 8), +('X10', '02M044', 'GHM', 8), +('X10', '02M04T', 'GHM', 8), +('X10', '02M04Z', 'GHM', 8), +('X10', '02M051', 'GHM', 8), +('X10', '02M052', 'GHM', 8), +('X10', '02M053', 'GHM', 8), +('X10', '02M054', 'GHM', 8), +('X10', '02M05T', 'GHM', 8), +('X10', '02M05Z', 'GHM', 8), +('X10', '02M071', 'GHM', 8), +('X10', '02M072', 'GHM', 8), +('X10', '02M073', 'GHM', 8), +('X10', '02M074', 'GHM', 8), +('X10', '02M07T', 'GHM', 8), +('X10', '02M081', 'GHM', 8), +('X10', '02M082', 'GHM', 8), +('X10', '02M083', 'GHM', 8), +('X10', '02M084', 'GHM', 8), +('X10', '02M08T', 'GHM', 8), +('X10', '02M09Z', 'GHM', 8), +('X10', '02M10T', 'GHM', 8), +('X10', '02M10Z', 'GHM', 8), +('X11', '09M091', 'GHM', 8), +('X11', '09M092', 'GHM', 8), +('X11', '09M093', 'GHM', 8), +('X11', '09M094', 'GHM', 8), +('X11', '09M09T', 'GHM', 8), +('X11', '09M09Z', 'GHM', 8), +('X11', '09M101', 'GHM', 8), +('X11', '09M102', 'GHM', 8), +('X11', '09M103', 'GHM', 8), +('X11', '09M104', 'GHM', 8), +('X11', '09M10T', 'GHM', 8), +('X11', '09M10V', 'GHM', 8), +('X11', '09M10W', 'GHM', 8), +('X11', '09M13Z', 'GHM', 8), +('X11', '09M15Z', 'GHM', 8), +('X11', '13M02Z', 'GHM', 8), +('X11', '13M031', 'GHM', 8), +('X11', '13M032', 'GHM', 8), +('X11', '13M033', 'GHM', 8), +('X11', '13M034', 'GHM', 8), +('X11', '13M03T', 'GHM', 8), +('X11', '13M03V', 'GHM', 8), +('X11', '13M03W', 'GHM', 8), +('X11', '13M041', 'GHM', 8), +('X11', '13M042', 'GHM', 8), +('X11', '13M043', 'GHM', 8), +('X11', '13M044', 'GHM', 8), +('X11', '13M04T', 'GHM', 8), +('X11', '13M04V', 'GHM', 8), +('X11', '13M04W', 'GHM', 8), +('X11', '13M051', 'GHM', 8), +('X11', '13M052', 'GHM', 8), +('X11', '13M053', 'GHM', 8), +('X11', '13M054', 'GHM', 8), +('X11', '13M061', 'GHM', 8), +('X11', '13M062', 'GHM', 8), +('X11', '13M063', 'GHM', 8), +('X11', '13M064', 'GHM', 8), +('X11', '13M06T', 'GHM', 8), +('X11', '13M071', 'GHM', 8), +('X11', '13M072', 'GHM', 8), +('X11', '13M073', 'GHM', 8), +('X11', '13M074', 'GHM', 8), +('X11', '13M081', 'GHM', 8), +('X11', '13M082', 'GHM', 8), +('X11', '13M083', 'GHM', 8), +('X11', '13M084', 'GHM', 8), +('X11', '13M09Z', 'GHM', 8), +('X11', '13M10Z', 'GHM', 8), +('X12', '11M021', 'GHM', 8), +('X12', '11M022', 'GHM', 8), +('X12', '11M023', 'GHM', 8), +('X12', '11M024', 'GHM', 8), +('X12', '11M02T', 'GHM', 8), +('X12', '11M02V', 'GHM', 8), +('X12', '11M02W', 'GHM', 8), +('X12', '11M031', 'GHM', 8), +('X12', '11M032', 'GHM', 8), +('X12', '11M033', 'GHM', 8), +('X12', '11M034', 'GHM', 8), +('X12', '11M03T', 'GHM', 8), +('X12', '11M03V', 'GHM', 8), +('X12', '11M03W', 'GHM', 8), +('X12', '11M041', 'GHM', 8), +('X12', '11M042', 'GHM', 8), +('X12', '11M043', 'GHM', 8), +('X12', '11M044', 'GHM', 8), +('X12', '11M04T', 'GHM', 8), +('X12', '11M04V', 'GHM', 8), +('X12', '11M04W', 'GHM', 8), +('X12', '11M061', 'GHM', 8), +('X12', '11M062', 'GHM', 8), +('X12', '11M063', 'GHM', 8), +('X12', '11M064', 'GHM', 8), +('X12', '11M06T', 'GHM', 8), +('X12', '11M06V', 'GHM', 8), +('X12', '11M06W', 'GHM', 8), +('X12', '11M071', 'GHM', 8), +('X12', '11M072', 'GHM', 8), +('X12', '11M073', 'GHM', 8), +('X12', '11M074', 'GHM', 8), +('X12', '11M07T', 'GHM', 8), +('X12', '11M07V', 'GHM', 8), +('X12', '11M07W', 'GHM', 8), +('X12', '11M081', 'GHM', 8), +('X12', '11M082', 'GHM', 8), +('X12', '11M083', 'GHM', 8), +('X12', '11M084', 'GHM', 8), +('X12', '11M08T', 'GHM', 8), +('X12', '11M08Z', 'GHM', 8), +('X12', '11M101', 'GHM', 8), +('X12', '11M102', 'GHM', 8), +('X12', '11M103', 'GHM', 8), +('X12', '11M104', 'GHM', 8), +('X12', '11M10T', 'GHM', 8), +('X12', '11M10V', 'GHM', 8), +('X12', '11M10W', 'GHM', 8), +('X12', '11M111', 'GHM', 8), +('X12', '11M112', 'GHM', 8), +('X12', '11M113', 'GHM', 8), +('X12', '11M114', 'GHM', 8), +('X12', '11M11Z', 'GHM', 8), +('X12', '11M121', 'GHM', 8), +('X12', '11M122', 'GHM', 8), +('X12', '11M123', 'GHM', 8), +('X12', '11M124', 'GHM', 8), +('X12', '11M12T', 'GHM', 8), +('X12', '11M12V', 'GHM', 8), +('X12', '11M12W', 'GHM', 8), +('X12', '11M151', 'GHM', 8), +('X12', '11M152', 'GHM', 8), +('X12', '11M153', 'GHM', 8), +('X12', '11M154', 'GHM', 8), +('X12', '11M15T', 'GHM', 8), +('X12', '11M161', 'GHM', 8), +('X12', '11M162', 'GHM', 8), +('X12', '11M163', 'GHM', 8), +('X12', '11M164', 'GHM', 8), +('X12', '11M16T', 'GHM', 8), +('X12', '11M171', 'GHM', 8), +('X12', '11M172', 'GHM', 8), +('X12', '11M173', 'GHM', 8), +('X12', '11M174', 'GHM', 8), +('X12', '11M18Z', 'GHM', 8), +('X12', '11M19T', 'GHM', 8), +('X12', '11M19Z', 'GHM', 8), +('X12', '11M201', 'GHM', 8), +('X12', '11M202', 'GHM', 8), +('X12', '11M203', 'GHM', 8), +('X12', '11M204', 'GHM', 8), +('X13', '12M031', 'GHM', 8), +('X13', '12M032', 'GHM', 8), +('X13', '12M033', 'GHM', 8), +('X13', '12M034', 'GHM', 8), +('X13', '12M03T', 'GHM', 8), +('X13', '12M03V', 'GHM', 8), +('X13', '12M03W', 'GHM', 8), +('X13', '12M041', 'GHM', 8), +('X13', '12M042', 'GHM', 8), +('X13', '12M043', 'GHM', 8), +('X13', '12M044', 'GHM', 8), +('X13', '12M04T', 'GHM', 8), +('X13', '12M04V', 'GHM', 8), +('X13', '12M04W', 'GHM', 8), +('X13', '12M051', 'GHM', 8), +('X13', '12M052', 'GHM', 8), +('X13', '12M053', 'GHM', 8), +('X13', '12M054', 'GHM', 8), +('X13', '12M05T', 'GHM', 8), +('X13', '12M05Z', 'GHM', 8), +('X13', '12M061', 'GHM', 8), +('X13', '12M062', 'GHM', 8), +('X13', '12M063', 'GHM', 8), +('X13', '12M064', 'GHM', 8), +('X13', '12M06T', 'GHM', 8), +('X13', '12M071', 'GHM', 8), +('X13', '12M072', 'GHM', 8), +('X13', '12M073', 'GHM', 8), +('X13', '12M074', 'GHM', 8), +('X13', '12M07T', 'GHM', 8), +('X13', '12M08Z', 'GHM', 8), +('X13', '12M09Z', 'GHM', 8), +('X14', '16M061', 'GHM', 8), +('X14', '16M062', 'GHM', 8), +('X14', '16M063', 'GHM', 8), +('X14', '16M064', 'GHM', 8), +('X14', '16M06T', 'GHM', 8), +('X14', '16M071', 'GHM', 8), +('X14', '16M072', 'GHM', 8), +('X14', '16M073', 'GHM', 8), +('X14', '16M074', 'GHM', 8), +('X14', '16M081', 'GHM', 8), +('X14', '16M082', 'GHM', 8), +('X14', '16M083', 'GHM', 8), +('X14', '16M084', 'GHM', 8), +('X14', '16M091', 'GHM', 8), +('X14', '16M092', 'GHM', 8), +('X14', '16M093', 'GHM', 8), +('X14', '16M094', 'GHM', 8), +('X14', '16M09T', 'GHM', 8), +('X14', '16M101', 'GHM', 8), +('X14', '16M102', 'GHM', 8), +('X14', '16M103', 'GHM', 8), +('X14', '16M104', 'GHM', 8), +('X14', '16M10T', 'GHM', 8), +('X14', '16M111', 'GHM', 8), +('X14', '16M112', 'GHM', 8), +('X14', '16M113', 'GHM', 8), +('X14', '16M114', 'GHM', 8), +('X14', '16M11T', 'GHM', 8), +('X14', '16M121', 'GHM', 8), +('X14', '16M122', 'GHM', 8), +('X14', '16M123', 'GHM', 8), +('X14', '16M124', 'GHM', 8), +('X14', '16M12T', 'GHM', 8), +('X14', '16M131', 'GHM', 8), +('X14', '16M132', 'GHM', 8), +('X14', '16M133', 'GHM', 8), +('X14', '16M134', 'GHM', 8), +('X14', '16M13T', 'GHM', 8), +('X14', '16M14Z', 'GHM', 8), +('X14', '16M15T', 'GHM', 8), +('X14', '16M15Z', 'GHM', 8), +('X14', '16M161', 'GHM', 8), +('X14', '16M162', 'GHM', 8), +('X14', '16M163', 'GHM', 8), +('X14', '16M164', 'GHM', 8), +('X14', '16M16T', 'GHM', 8), +('X14', '16M171', 'GHM', 8), +('X14', '16M172', 'GHM', 8), +('X14', '16M173', 'GHM', 8), +('X14', '16M174', 'GHM', 8), +('X14', '16M17T', 'GHM', 8), +('X14', '16M181', 'GHM', 8), +('X14', '16M182', 'GHM', 8), +('X14', '16M183', 'GHM', 8), +('X14', '16M184', 'GHM', 8), +('X14', '17M02Z', 'GHM', 8), +('X14', '17M04Z', 'GHM', 8), +('X14', '17M071', 'GHM', 8), +('X14', '17M072', 'GHM', 8), +('X14', '17M073', 'GHM', 8), +('X14', '17M074', 'GHM', 8), +('X14', '17M07T', 'GHM', 8), +('X14', '17M07V', 'GHM', 8), +('X14', '17M07W', 'GHM', 8), +('X14', '17M081', 'GHM', 8), +('X14', '17M082', 'GHM', 8), +('X14', '17M083', 'GHM', 8), +('X14', '17M084', 'GHM', 8), +('X14', '17M08T', 'GHM', 8), +('X14', '17M08Z', 'GHM', 8), +('X14', '17M091', 'GHM', 8), +('X14', '17M092', 'GHM', 8), +('X14', '17M093', 'GHM', 8), +('X14', '17M094', 'GHM', 8), +('X14', '17M09T', 'GHM', 8), +('X14', '17M09V', 'GHM', 8), +('X14', '17M09W', 'GHM', 8), +('X14', '17M111', 'GHM', 8), +('X14', '17M112', 'GHM', 8), +('X14', '17M113', 'GHM', 8), +('X14', '17M114', 'GHM', 8), +('X14', '17M11T', 'GHM', 8), +('X14', '17M121', 'GHM', 8), +('X14', '17M122', 'GHM', 8), +('X14', '17M123', 'GHM', 8), +('X14', '17M124', 'GHM', 8), +('X14', '17M12T', 'GHM', 8), +('X14', '17M131', 'GHM', 8), +('X14', '17M132', 'GHM', 8), +('X14', '17M133', 'GHM', 8), +('X14', '17M134', 'GHM', 8), +('X14', '17M13T', 'GHM', 8), +('X14', '17M14Z', 'GHM', 8), +('X14', '17M151', 'GHM', 8), +('X14', '17M152', 'GHM', 8), +('X14', '17M153', 'GHM', 8), +('X14', '17M154', 'GHM', 8), +('X14', '17M15T', 'GHM', 8), +('X14', '17M161', 'GHM', 8), +('X14', '17M162', 'GHM', 8), +('X14', '17M163', 'GHM', 8), +('X14', '17M164', 'GHM', 8), +('X14', '17M16T', 'GHM', 8), +('X14', '17M171', 'GHM', 8), +('X14', '17M172', 'GHM', 8), +('X14', '17M173', 'GHM', 8), +('X14', '17M174', 'GHM', 8), +('X14', '17M17T', 'GHM', 8), +('X15', '10M021', 'GHM', 8), +('X15', '10M022', 'GHM', 8), +('X15', '10M023', 'GHM', 8), +('X15', '10M024', 'GHM', 8), +('X15', '10M02T', 'GHM', 8), +('X15', '10M02V', 'GHM', 8), +('X15', '10M02W', 'GHM', 8), +('X15', '10M031', 'GHM', 8), +('X15', '10M032', 'GHM', 8), +('X15', '10M033', 'GHM', 8), +('X15', '10M034', 'GHM', 8), +('X15', '10M03T', 'GHM', 8), +('X15', '10M03Z', 'GHM', 8), +('X15', '10M06Z', 'GHM', 8), +('X15', '10M071', 'GHM', 8), +('X15', '10M072', 'GHM', 8), +('X15', '10M073', 'GHM', 8), +('X15', '10M074', 'GHM', 8), +('X15', '10M07T', 'GHM', 8), +('X15', '10M07V', 'GHM', 8), +('X15', '10M07W', 'GHM', 8), +('X15', '10M081', 'GHM', 8), +('X15', '10M082', 'GHM', 8), +('X15', '10M083', 'GHM', 8), +('X15', '10M084', 'GHM', 8), +('X15', '10M08T', 'GHM', 8), +('X15', '10M091', 'GHM', 8), +('X15', '10M092', 'GHM', 8), +('X15', '10M093', 'GHM', 8), +('X15', '10M094', 'GHM', 8), +('X15', '10M09T', 'GHM', 8), +('X15', '10M101', 'GHM', 8), +('X15', '10M102', 'GHM', 8), +('X15', '10M103', 'GHM', 8), +('X15', '10M104', 'GHM', 8), +('X15', '10M10T', 'GHM', 8), +('X15', '10M111', 'GHM', 8), +('X15', '10M112', 'GHM', 8), +('X15', '10M113', 'GHM', 8), +('X15', '10M114', 'GHM', 8), +('X15', '10M11T', 'GHM', 8), +('X15', '10M121', 'GHM', 8), +('X15', '10M122', 'GHM', 8), +('X15', '10M123', 'GHM', 8), +('X15', '10M124', 'GHM', 8), +('X15', '10M12T', 'GHM', 8), +('X15', '10M13T', 'GHM', 8), +('X15', '10M13Z', 'GHM', 8), +('X15', '10M14T', 'GHM', 8), +('X15', '10M14Z', 'GHM', 8), +('X15', '10M151', 'GHM', 8), +('X15', '10M152', 'GHM', 8), +('X15', '10M153', 'GHM', 8), +('X15', '10M154', 'GHM', 8), +('X15', '10M15T', 'GHM', 8), +('X15', '10M161', 'GHM', 8), +('X15', '10M162', 'GHM', 8), +('X15', '10M163', 'GHM', 8), +('X15', '10M164', 'GHM', 8), +('X15', '10M16T', 'GHM', 8), +('X15', '10M171', 'GHM', 8), +('X15', '10M172', 'GHM', 8), +('X15', '10M173', 'GHM', 8), +('X15', '10M174', 'GHM', 8), +('X15', '10M17T', 'GHM', 8), +('X15', '10M181', 'GHM', 8), +('X15', '10M182', 'GHM', 8), +('X15', '10M183', 'GHM', 8), +('X15', '10M184', 'GHM', 8), +('X15', '10M18T', 'GHM', 8), +('X15', '10M191', 'GHM', 8), +('X15', '10M192', 'GHM', 8), +('X15', '10M193', 'GHM', 8), +('X15', '10M194', 'GHM', 8), +('X15', '10M201', 'GHM', 8), +('X15', '10M202', 'GHM', 8), +('X15', '10M203', 'GHM', 8), +('X15', '10M204', 'GHM', 8), +('X15', '23M08J', 'GHM', 8), +('X16', '09M021', 'GHM', 8), +('X16', '09M022', 'GHM', 8), +('X16', '09M023', 'GHM', 8), +('X16', '09M024', 'GHM', 8), +('X16', '09M02T', 'GHM', 8), +('X16', '09M02Z', 'GHM', 8), +('X16', '09M031', 'GHM', 8), +('X16', '09M032', 'GHM', 8), +('X16', '09M033', 'GHM', 8), +('X16', '09M034', 'GHM', 8), +('X16', '09M03T', 'GHM', 8), +('X16', '09M03V', 'GHM', 8), +('X16', '09M03W', 'GHM', 8), +('X16', '09M041', 'GHM', 8), +('X16', '09M042', 'GHM', 8), +('X16', '09M043', 'GHM', 8), +('X16', '09M044', 'GHM', 8), +('X16', '09M04T', 'GHM', 8), +('X16', '09M04Z', 'GHM', 8), +('X16', '09M051', 'GHM', 8), +('X16', '09M052', 'GHM', 8), +('X16', '09M053', 'GHM', 8), +('X16', '09M054', 'GHM', 8), +('X16', '09M05T', 'GHM', 8), +('X16', '09M05V', 'GHM', 8), +('X16', '09M05W', 'GHM', 8), +('X16', '09M061', 'GHM', 8), +('X16', '09M062', 'GHM', 8), +('X16', '09M063', 'GHM', 8), +('X16', '09M064', 'GHM', 8), +('X16', '09M06T', 'GHM', 8), +('X16', '09M06Z', 'GHM', 8), +('X16', '09M071', 'GHM', 8), +('X16', '09M072', 'GHM', 8), +('X16', '09M073', 'GHM', 8), +('X16', '09M074', 'GHM', 8), +('X16', '09M07T', 'GHM', 8), +('X16', '09M07V', 'GHM', 8), +('X16', '09M07W', 'GHM', 8), +('X16', '09M081', 'GHM', 8), +('X16', '09M082', 'GHM', 8), +('X16', '09M083', 'GHM', 8), +('X16', '09M084', 'GHM', 8), +('X16', '09M08T', 'GHM', 8), +('X16', '09M08V', 'GHM', 8), +('X16', '09M08W', 'GHM', 8), +('X16', '09M111', 'GHM', 8), +('X16', '09M112', 'GHM', 8), +('X16', '09M113', 'GHM', 8), +('X16', '09M114', 'GHM', 8), +('X16', '09M11T', 'GHM', 8), +('X16', '09M12Z', 'GHM', 8), +('X16', '09M14T', 'GHM', 8), +('X16', '09M14Z', 'GHM', 8), +('X17', '22M021', 'GHM', 8), +('X17', '22M022', 'GHM', 8), +('X17', '22M023', 'GHM', 8), +('X17', '22M024', 'GHM', 8), +('X17', '22M02T', 'GHM', 8), +('X17', '22M02Z', 'GHM', 8), +('X17', '22Z021', 'GHM', 8), +('X17', '22Z022', 'GHM', 8), +('X17', '22Z023', 'GHM', 8), +('X17', '22Z024', 'GHM', 8), +('X17', '22Z02Z', 'GHM', 8), +('X17', '22Z03Z', 'GHM', 8), +('X18', '23M02T', 'GHM', 8), +('X18', '23M02Z', 'GHM', 8), +('X18', '23M04Z', 'GHM', 8), +('X18', '23M05Z', 'GHM', 8), +('X18', '23M101', 'GHM', 8), +('X18', '23M102', 'GHM', 8), +('X18', '23M103', 'GHM', 8), +('X18', '23M104', 'GHM', 8), +('X18', '23M10T', 'GHM', 8), +('X18', '23M13Z', 'GHM', 8), +('X18', '23M14Z', 'GHM', 8), +('X18', '23M16T', 'GHM', 8), +('X18', '23M16Z', 'GHM', 8), +('X18', '23M18Z', 'GHM', 8), +('X18', '23M19Z', 'GHM', 8), +('X18', '23M21T', 'GHM', 8), +('X18', '23M21Z', 'GHM', 8), +('X19', '18M021', 'GHM', 8), +('X19', '18M022', 'GHM', 8), +('X19', '18M023', 'GHM', 8), +('X19', '18M024', 'GHM', 8), +('X19', '18M02V', 'GHM', 8), +('X19', '18M02W', 'GHM', 8), +('X19', '18M031', 'GHM', 8), +('X19', '18M032', 'GHM', 8), +('X19', '18M033', 'GHM', 8), +('X19', '18M034', 'GHM', 8), +('X19', '18M03T', 'GHM', 8), +('X19', '18M03Z', 'GHM', 8), +('X19', '18M041', 'GHM', 8), +('X19', '18M042', 'GHM', 8), +('X19', '18M043', 'GHM', 8), +('X19', '18M044', 'GHM', 8), +('X19', '18M04T', 'GHM', 8), +('X19', '18M04V', 'GHM', 8), +('X19', '18M04W', 'GHM', 8), +('X19', '18M061', 'GHM', 8), +('X19', '18M062', 'GHM', 8), +('X19', '18M063', 'GHM', 8), +('X19', '18M064', 'GHM', 8), +('X19', '18M06Z', 'GHM', 8), +('X19', '18M071', 'GHM', 8), +('X19', '18M072', 'GHM', 8), +('X19', '18M073', 'GHM', 8), +('X19', '18M074', 'GHM', 8), +('X19', '18M07T', 'GHM', 8), +('X19', '18M07V', 'GHM', 8), +('X19', '18M07W', 'GHM', 8), +('X19', '18M091', 'GHM', 8), +('X19', '18M092', 'GHM', 8), +('X19', '18M093', 'GHM', 8), +('X19', '18M094', 'GHM', 8), +('X19', '18M09T', 'GHM', 8), +('X19', '18M101', 'GHM', 8), +('X19', '18M102', 'GHM', 8), +('X19', '18M103', 'GHM', 8), +('X19', '18M104', 'GHM', 8), +('X19', '18M10T', 'GHM', 8), +('X19', '18M111', 'GHM', 8), +('X19', '18M112', 'GHM', 8), +('X19', '18M113', 'GHM', 8), +('X19', '18M114', 'GHM', 8), +('X19', '18M11T', 'GHM', 8), +('X19', '18M12Z', 'GHM', 8), +('X19', '18M13E', 'GHM', 8), +('X19', '18M14T', 'GHM', 8), +('X19', '18M14Z', 'GHM', 8), +('X19', '18M151', 'GHM', 8), +('X19', '18M152', 'GHM', 8), +('X19', '18M153', 'GHM', 8), +('X19', '18M154', 'GHM', 8), +('X19', '23M07J', 'GHM', 8), +('X19', '25M02A', 'GHM', 8), +('X19', '25M02B', 'GHM', 8), +('X19', '25M02C', 'GHM', 8), +('X19', '25M02T', 'GHM', 8), +('X19', '25Z02E', 'GHM', 8), +('X19', '25Z031', 'GHM', 8), +('X19', '25Z032', 'GHM', 8), +('X19', '25Z033', 'GHM', 8), +('X19', '25Z034', 'GHM', 8), +('X19', '25Z03Z', 'GHM', 8), +('X20', '19M021', 'GHM', 8), +('X20', '19M022', 'GHM', 8), +('X20', '19M023', 'GHM', 8), +('X20', '19M024', 'GHM', 8), +('X20', '19M02T', 'GHM', 8), +('X20', '19M02V', 'GHM', 8), +('X20', '19M02W', 'GHM', 8), +('X20', '19M03Z', 'GHM', 8), +('X20', '19M04Z', 'GHM', 8), +('X20', '19M05Z', 'GHM', 8), +('X20', '19M061', 'GHM', 8), +('X20', '19M062', 'GHM', 8), +('X20', '19M063', 'GHM', 8), +('X20', '19M064', 'GHM', 8), +('X20', '19M06T', 'GHM', 8), +('X20', '19M06V', 'GHM', 8), +('X20', '19M06W', 'GHM', 8), +('X20', '19M071', 'GHM', 8), +('X20', '19M072', 'GHM', 8), +('X20', '19M073', 'GHM', 8), +('X20', '19M074', 'GHM', 8), +('X20', '19M07T', 'GHM', 8), +('X20', '19M07V', 'GHM', 8), +('X20', '19M07W', 'GHM', 8), +('X20', '19M08Z', 'GHM', 8), +('X20', '19M09Z', 'GHM', 8), +('X20', '19M101', 'GHM', 8), +('X20', '19M102', 'GHM', 8), +('X20', '19M103', 'GHM', 8), +('X20', '19M104', 'GHM', 8), +('X20', '19M10T', 'GHM', 8), +('X20', '19M10Z', 'GHM', 8), +('X20', '19M111', 'GHM', 8), +('X20', '19M112', 'GHM', 8), +('X20', '19M113', 'GHM', 8), +('X20', '19M114', 'GHM', 8), +('X20', '19M11T', 'GHM', 8), +('X20', '19M11V', 'GHM', 8), +('X20', '19M11W', 'GHM', 8), +('X20', '19M121', 'GHM', 8), +('X20', '19M122', 'GHM', 8), +('X20', '19M123', 'GHM', 8), +('X20', '19M124', 'GHM', 8), +('X20', '19M12T', 'GHM', 8), +('X20', '19M131', 'GHM', 8), +('X20', '19M132', 'GHM', 8), +('X20', '19M133', 'GHM', 8), +('X20', '19M134', 'GHM', 8), +('X20', '19M13T', 'GHM', 8), +('X20', '19M141', 'GHM', 8), +('X20', '19M142', 'GHM', 8), +('X20', '19M143', 'GHM', 8), +('X20', '19M144', 'GHM', 8), +('X20', '19M14T', 'GHM', 8), +('X20', '19M151', 'GHM', 8), +('X20', '19M152', 'GHM', 8), +('X20', '19M153', 'GHM', 8), +('X20', '19M154', 'GHM', 8), +('X20', '19M15T', 'GHM', 8), +('X20', '19M161', 'GHM', 8), +('X20', '19M162', 'GHM', 8), +('X20', '19M163', 'GHM', 8), +('X20', '19M164', 'GHM', 8), +('X20', '19M16T', 'GHM', 8), +('X20', '19M171', 'GHM', 8), +('X20', '19M172', 'GHM', 8), +('X20', '19M173', 'GHM', 8), +('X20', '19M174', 'GHM', 8), +('X20', '19M181', 'GHM', 8), +('X20', '19M182', 'GHM', 8), +('X20', '19M183', 'GHM', 8), +('X20', '19M184', 'GHM', 8), +('X20', '19M18T', 'GHM', 8), +('X20', '19M191', 'GHM', 8), +('X20', '19M192', 'GHM', 8), +('X20', '19M193', 'GHM', 8), +('X20', '19M194', 'GHM', 8), +('X20', '19M19T', 'GHM', 8), +('X20', '19M201', 'GHM', 8), +('X20', '19M202', 'GHM', 8), +('X20', '19M203', 'GHM', 8), +('X20', '19M204', 'GHM', 8), +('X20', '19M20T', 'GHM', 8), +('X20', '19M21Z', 'GHM', 8), +('X20', '19M22T', 'GHM', 8), +('X20', '19M22Z', 'GHM', 8), +('X21', '20Z021', 'GHM', 8), +('X21', '20Z022', 'GHM', 8), +('X21', '20Z023', 'GHM', 8), +('X21', '20Z024', 'GHM', 8), +('X21', '20Z02T', 'GHM', 8), +('X21', '20Z02Z', 'GHM', 8), +('X21', '20Z031', 'GHM', 8), +('X21', '20Z032', 'GHM', 8), +('X21', '20Z033', 'GHM', 8), +('X21', '20Z034', 'GHM', 8), +('X21', '20Z03Z', 'GHM', 8), +('X21', '20Z041', 'GHM', 8), +('X21', '20Z042', 'GHM', 8), +('X21', '20Z043', 'GHM', 8), +('X21', '20Z044', 'GHM', 8), +('X21', '20Z04T', 'GHM', 8), +('X21', '20Z04Z', 'GHM', 8), +('X21', '20Z051', 'GHM', 8), +('X21', '20Z052', 'GHM', 8), +('X21', '20Z053', 'GHM', 8), +('X21', '20Z054', 'GHM', 8), +('X21', '20Z05Z', 'GHM', 8), +('X21', '20Z061', 'GHM', 8), +('X21', '20Z062', 'GHM', 8), +('X21', '20Z063', 'GHM', 8), +('X21', '20Z064', 'GHM', 8), +('X21', '20Z06T', 'GHM', 8), +('X21', '20Z06V', 'GHM', 8), +('X21', '20Z06W', 'GHM', 8), +('X21', '21M021', 'GHM', 8), +('X21', '21M022', 'GHM', 8), +('X21', '21M023', 'GHM', 8), +('X21', '21M024', 'GHM', 8), +('X21', '21M02T', 'GHM', 8), +('X21', '21M02Z', 'GHM', 8), +('X21', '21M041', 'GHM', 8), +('X21', '21M042', 'GHM', 8), +('X21', '21M043', 'GHM', 8), +('X21', '21M044', 'GHM', 8), +('X21', '21M04T', 'GHM', 8), +('X21', '21M04Z', 'GHM', 8), +('X21', '21M051', 'GHM', 8), +('X21', '21M052', 'GHM', 8), +('X21', '21M053', 'GHM', 8), +('X21', '21M054', 'GHM', 8), +('X21', '21M05T', 'GHM', 8), +('X21', '21M05Z', 'GHM', 8), +('X21', '21M101', 'GHM', 8), +('X21', '21M102', 'GHM', 8), +('X21', '21M103', 'GHM', 8), +('X21', '21M104', 'GHM', 8), +('X21', '21M10T', 'GHM', 8), +('X21', '21M111', 'GHM', 8), +('X21', '21M112', 'GHM', 8), +('X21', '21M113', 'GHM', 8), +('X21', '21M114', 'GHM', 8), +('X21', '21M11T', 'GHM', 8), +('X21', '21M121', 'GHM', 8), +('X21', '21M122', 'GHM', 8), +('X21', '21M123', 'GHM', 8), +('X21', '21M124', 'GHM', 8), +('X21', '21M141', 'GHM', 8), +('X21', '21M142', 'GHM', 8), +('X21', '21M143', 'GHM', 8), +('X21', '21M144', 'GHM', 8), +('X21', '21M14T', 'GHM', 8), +('X21', '21M161', 'GHM', 8), +('X21', '21M162', 'GHM', 8), +('X21', '21M163', 'GHM', 8), +('X21', '21M164', 'GHM', 8), +('X21', '21M16T', 'GHM', 8), +('X22', '01M211', 'GHM', 8), +('X22', '01M212', 'GHM', 8), +('X22', '01M213', 'GHM', 8), +('X22', '01M214', 'GHM', 8), +('X22', '01M21T', 'GHM', 8), +('X22', '01M21Z', 'GHM', 8), +('X22', '23Z02T', 'GHM', 8), +('X22', '23Z02Z', 'GHM', 8), +('X23', '17M051', 'GHM', 8), +('X23', '17M052', 'GHM', 8), +('X23', '17M053', 'GHM', 8), +('X23', '17M054', 'GHM', 8), +('X23', '17M05Z', 'GHM', 8), +('X23', '17M061', 'GHM', 8), +('X23', '17M062', 'GHM', 8), +('X23', '17M063', 'GHM', 8), +('X23', '17M064', 'GHM', 8), +('X23', '17M06T', 'GHM', 8), +('X23', '17M06V', 'GHM', 8), +('X23', '17M06W', 'GHM', 8), +('X23', '23M091', 'GHM', 8), +('X23', '23M092', 'GHM', 8), +('X23', '23M093', 'GHM', 8), +('X23', '23M094', 'GHM', 8), +('X24', '01M37E', 'GHM', 8), +('X24', '05M22E', 'GHM', 8), +('X24', '21M131', 'GHM', 8), +('X24', '21M132', 'GHM', 8), +('X24', '21M133', 'GHM', 8), +('X24', '21M134', 'GHM', 8), +('X24', '21M151', 'GHM', 8), +('X24', '21M152', 'GHM', 8), +('X24', '21M153', 'GHM', 8), +('X24', '21M154', 'GHM', 8), +('X24', '21M15T', 'GHM', 8), +('X24', '23M061', 'GHM', 8), +('X24', '23M062', 'GHM', 8), +('X24', '23M063', 'GHM', 8), +('X24', '23M064', 'GHM', 8), +('X24', '23M06T', 'GHM', 8), +('X24', '23M06Z', 'GHM', 8), +('X24', '23M111', 'GHM', 8), +('X24', '23M112', 'GHM', 8), +('X24', '23M113', 'GHM', 8), +('X24', '23M114', 'GHM', 8), +('X24', '23M11T', 'GHM', 8), +('X24', '23M15Z', 'GHM', 8), +('X24', '23M20T', 'GHM', 8), +('X24', '23M20Z', 'GHM', 8), +('X25', '26M021', 'GHM', 8), +('X25', '26M022', 'GHM', 8), +('X25', '26M023', 'GHM', 8), +('X25', '26M024', 'GHM', 8), +('X25', '26M02Z', 'GHM', 8), +('X26', '09Z02A', 'GHM', 8), +('X26', '09Z02B', 'GHM', 8), +('X26', '09Z02Z', 'GHM', 8), +('X26', '23Z03Z', 'GHM', 8), +('Z99', '90C01Z', 'GHM', 8), +('Z99', '90H01Z', 'GHM', 8), +('Z99', '90H02Z', 'GHM', 8), +('Z99', '90H03Z', 'GHM', 8), +('Z99', '90Z00Z', 'GHM', 8), +('Z99', '90Z01Z', 'GHM', 8), +('Z99', '90Z02Z', 'GHM', 8), +('Z99', '90Z03Z', 'GHM', 8), +('Z99', '999999', 'GHM', 8), +('Z99', 'ZZZZZZ', 'GHM', 8), +('D01', '06C021', 'GHM', 9), +('D01', '06C022', 'GHM', 9), +('D01', '06C023', 'GHM', 9), +('D01', '06C024', 'GHM', 9), +('D01', '06C02Z', 'GHM', 9), +('D01', '06C031', 'GHM', 9), +('D01', '06C032', 'GHM', 9), +('D01', '06C033', 'GHM', 9), +('D01', '06C034', 'GHM', 9), +('D01', '06C03V', 'GHM', 9), +('D01', '06C03W', 'GHM', 9), +('D01', '06C041', 'GHM', 9), +('D01', '06C042', 'GHM', 9), +('D01', '06C043', 'GHM', 9), +('D01', '06C044', 'GHM', 9), +('D01', '06C04V', 'GHM', 9), +('D01', '06C04W', 'GHM', 9), +('D01', '06C051', 'GHM', 9), +('D01', '06C052', 'GHM', 9), +('D01', '06C053', 'GHM', 9), +('D01', '06C054', 'GHM', 9), +('D01', '06C05Z', 'GHM', 9), +('D01', '06C071', 'GHM', 9), +('D01', '06C072', 'GHM', 9), +('D01', '06C073', 'GHM', 9), +('D01', '06C074', 'GHM', 9), +('D01', '06C07V', 'GHM', 9), +('D01', '06C07W', 'GHM', 9), +('D01', '06C081', 'GHM', 9), +('D01', '06C082', 'GHM', 9), +('D01', '06C083', 'GHM', 9), +('D01', '06C084', 'GHM', 9), +('D01', '06C08V', 'GHM', 9), +('D01', '06C08W', 'GHM', 9), +('D01', '06C091', 'GHM', 9), +('D01', '06C092', 'GHM', 9), +('D01', '06C093', 'GHM', 9), +('D01', '06C094', 'GHM', 9), +('D01', '06C09V', 'GHM', 9), +('D01', '06C09W', 'GHM', 9), +('D01', '06C101', 'GHM', 9), +('D01', '06C102', 'GHM', 9), +('D01', '06C103', 'GHM', 9), +('D01', '06C104', 'GHM', 9), +('D01', '06C10J', 'GHM', 9), +('D01', '06C10Z', 'GHM', 9), +('D01', '06C111', 'GHM', 9), +('D01', '06C112', 'GHM', 9), +('D01', '06C113', 'GHM', 9), +('D01', '06C114', 'GHM', 9), +('D01', '06C11J', 'GHM', 9), +('D01', '06C11V', 'GHM', 9), +('D01', '06C11W', 'GHM', 9), +('D01', '06C121', 'GHM', 9), +('D01', '06C122', 'GHM', 9), +('D01', '06C123', 'GHM', 9), +('D01', '06C124', 'GHM', 9), +('D01', '06C12J', 'GHM', 9), +('D01', '06C12V', 'GHM', 9), +('D01', '06C12W', 'GHM', 9), +('D01', '06C131', 'GHM', 9), +('D01', '06C132', 'GHM', 9), +('D01', '06C133', 'GHM', 9), +('D01', '06C134', 'GHM', 9), +('D01', '06C13V', 'GHM', 9), +('D01', '06C13W', 'GHM', 9), +('D01', '06C141', 'GHM', 9), +('D01', '06C142', 'GHM', 9), +('D01', '06C143', 'GHM', 9), +('D01', '06C144', 'GHM', 9), +('D01', '06C14J', 'GHM', 9), +('D01', '06C14V', 'GHM', 9), +('D01', '06C14W', 'GHM', 9), +('D01', '06C151', 'GHM', 9), +('D01', '06C152', 'GHM', 9), +('D01', '06C153', 'GHM', 9), +('D01', '06C154', 'GHM', 9), +('D01', '06C15V', 'GHM', 9), +('D01', '06C15W', 'GHM', 9), +('D01', '06C161', 'GHM', 9), +('D01', '06C162', 'GHM', 9), +('D01', '06C163', 'GHM', 9), +('D01', '06C164', 'GHM', 9), +('D01', '06C16V', 'GHM', 9), +('D01', '06C16W', 'GHM', 9), +('D01', '06C191', 'GHM', 9), +('D01', '06C192', 'GHM', 9), +('D01', '06C193', 'GHM', 9), +('D01', '06C194', 'GHM', 9), +('D01', '06C19J', 'GHM', 9), +('D01', '06C201', 'GHM', 9), +('D01', '06C202', 'GHM', 9), +('D01', '06C203', 'GHM', 9), +('D01', '06C204', 'GHM', 9), +('D01', '06C211', 'GHM', 9), +('D01', '06C212', 'GHM', 9), +('D01', '06C213', 'GHM', 9), +('D01', '06C214', 'GHM', 9), +('D01', '06C221', 'GHM', 9), +('D01', '06C222', 'GHM', 9), +('D01', '06C223', 'GHM', 9), +('D01', '06C224', 'GHM', 9), +('D01', '06C231', 'GHM', 9), +('D01', '06C232', 'GHM', 9), +('D01', '06C233', 'GHM', 9), +('D01', '06C234', 'GHM', 9), +('D01', '06C23J', 'GHM', 9), +('D01', '06C241', 'GHM', 9), +('D01', '06C242', 'GHM', 9), +('D01', '06C243', 'GHM', 9), +('D01', '06C244', 'GHM', 9), +('D01', '06C24J', 'GHM', 9), +('D01', '06C251', 'GHM', 9), +('D01', '06C252', 'GHM', 9), +('D01', '06C253', 'GHM', 9), +('D01', '06C254', 'GHM', 9), +('D01', '06C25J', 'GHM', 9), +('D01', '06K02Z', 'GHM', 9), +('D01', '06K03J', 'GHM', 9), +('D01', '06K04J', 'GHM', 9), +('D01', '06K05J', 'GHM', 9), +('D01', '06K06J', 'GHM', 9), +('D01', '06M021', 'GHM', 9), +('D01', '06M022', 'GHM', 9), +('D01', '06M023', 'GHM', 9), +('D01', '06M024', 'GHM', 9), +('D01', '06M02T', 'GHM', 9), +('D01', '06M02V', 'GHM', 9), +('D01', '06M02W', 'GHM', 9), +('D01', '06M031', 'GHM', 9), +('D01', '06M032', 'GHM', 9), +('D01', '06M033', 'GHM', 9), +('D01', '06M034', 'GHM', 9), +('D01', '06M03T', 'GHM', 9), +('D01', '06M03V', 'GHM', 9), +('D01', '06M03W', 'GHM', 9), +('D01', '06M041', 'GHM', 9), +('D01', '06M042', 'GHM', 9), +('D01', '06M043', 'GHM', 9), +('D01', '06M044', 'GHM', 9), +('D01', '06M04T', 'GHM', 9), +('D01', '06M04V', 'GHM', 9), +('D01', '06M04W', 'GHM', 9), +('D01', '06M051', 'GHM', 9), +('D01', '06M052', 'GHM', 9), +('D01', '06M053', 'GHM', 9), +('D01', '06M054', 'GHM', 9), +('D01', '06M05T', 'GHM', 9), +('D01', '06M05V', 'GHM', 9), +('D01', '06M05W', 'GHM', 9), +('D01', '06M061', 'GHM', 9), +('D01', '06M062', 'GHM', 9), +('D01', '06M063', 'GHM', 9), +('D01', '06M064', 'GHM', 9), +('D01', '06M06T', 'GHM', 9), +('D01', '06M06V', 'GHM', 9), +('D01', '06M06W', 'GHM', 9), +('D01', '06M071', 'GHM', 9), +('D01', '06M072', 'GHM', 9), +('D01', '06M073', 'GHM', 9), +('D01', '06M074', 'GHM', 9), +('D01', '06M07T', 'GHM', 9), +('D01', '06M07V', 'GHM', 9), +('D01', '06M07W', 'GHM', 9), +('D01', '06M081', 'GHM', 9), +('D01', '06M082', 'GHM', 9), +('D01', '06M083', 'GHM', 9), +('D01', '06M084', 'GHM', 9), +('D01', '06M08T', 'GHM', 9), +('D01', '06M08Z', 'GHM', 9), +('D01', '06M091', 'GHM', 9), +('D01', '06M092', 'GHM', 9), +('D01', '06M093', 'GHM', 9), +('D01', '06M094', 'GHM', 9), +('D01', '06M09T', 'GHM', 9), +('D01', '06M09V', 'GHM', 9), +('D01', '06M09W', 'GHM', 9), +('D01', '06M101', 'GHM', 9), +('D01', '06M102', 'GHM', 9), +('D01', '06M103', 'GHM', 9), +('D01', '06M104', 'GHM', 9), +('D01', '06M10Z', 'GHM', 9), +('D01', '06M111', 'GHM', 9), +('D01', '06M112', 'GHM', 9), +('D01', '06M113', 'GHM', 9), +('D01', '06M114', 'GHM', 9), +('D01', '06M11T', 'GHM', 9), +('D01', '06M11V', 'GHM', 9), +('D01', '06M11W', 'GHM', 9), +('D01', '06M121', 'GHM', 9), +('D01', '06M122', 'GHM', 9), +('D01', '06M123', 'GHM', 9), +('D01', '06M124', 'GHM', 9), +('D01', '06M12T', 'GHM', 9), +('D01', '06M131', 'GHM', 9), +('D01', '06M132', 'GHM', 9), +('D01', '06M133', 'GHM', 9), +('D01', '06M134', 'GHM', 9), +('D01', '06M13T', 'GHM', 9), +('D01', '06M141', 'GHM', 9), +('D01', '06M142', 'GHM', 9), +('D01', '06M143', 'GHM', 9), +('D01', '06M144', 'GHM', 9), +('D01', '06M15Z', 'GHM', 9), +('D01', '06M16Z', 'GHM', 9), +('D01', '06M17T', 'GHM', 9), +('D01', '06M17Z', 'GHM', 9), +('D01', '06M18T', 'GHM', 9), +('D01', '06M18Z', 'GHM', 9), +('D01', '06M191', 'GHM', 9), +('D01', '06M192', 'GHM', 9), +('D01', '06M193', 'GHM', 9), +('D01', '06M194', 'GHM', 9), +('D01', '06M201', 'GHM', 9), +('D01', '06M202', 'GHM', 9), +('D01', '06M203', 'GHM', 9), +('D01', '06M204', 'GHM', 9), +('D01', '06M20T', 'GHM', 9), +('D01', '06M211', 'GHM', 9), +('D01', '06M212', 'GHM', 9), +('D01', '06M213', 'GHM', 9), +('D01', '06M214', 'GHM', 9), +('D01', '07C061', 'GHM', 9), +('D01', '07C062', 'GHM', 9), +('D01', '07C063', 'GHM', 9), +('D01', '07C064', 'GHM', 9), +('D01', '07C06Z', 'GHM', 9), +('D01', '07C071', 'GHM', 9), +('D01', '07C072', 'GHM', 9), +('D01', '07C073', 'GHM', 9), +('D01', '07C074', 'GHM', 9), +('D01', '07C07Z', 'GHM', 9), +('D01', '07C081', 'GHM', 9), +('D01', '07C082', 'GHM', 9), +('D01', '07C083', 'GHM', 9), +('D01', '07C084', 'GHM', 9), +('D01', '07C08Z', 'GHM', 9), +('D01', '07C091', 'GHM', 9), +('D01', '07C092', 'GHM', 9), +('D01', '07C093', 'GHM', 9), +('D01', '07C094', 'GHM', 9), +('D01', '07C09V', 'GHM', 9), +('D01', '07C09W', 'GHM', 9), +('D01', '07C101', 'GHM', 9), +('D01', '07C102', 'GHM', 9), +('D01', '07C103', 'GHM', 9), +('D01', '07C104', 'GHM', 9), +('D01', '07C10V', 'GHM', 9), +('D01', '07C10W', 'GHM', 9), +('D01', '07C111', 'GHM', 9), +('D01', '07C112', 'GHM', 9), +('D01', '07C113', 'GHM', 9), +('D01', '07C114', 'GHM', 9), +('D01', '07C11V', 'GHM', 9), +('D01', '07C11W', 'GHM', 9), +('D01', '07C121', 'GHM', 9), +('D01', '07C122', 'GHM', 9), +('D01', '07C123', 'GHM', 9), +('D01', '07C124', 'GHM', 9), +('D01', '07C12V', 'GHM', 9), +('D01', '07C12W', 'GHM', 9), +('D01', '07C131', 'GHM', 9), +('D01', '07C132', 'GHM', 9), +('D01', '07C133', 'GHM', 9), +('D01', '07C134', 'GHM', 9), +('D01', '07C141', 'GHM', 9), +('D01', '07C142', 'GHM', 9), +('D01', '07C143', 'GHM', 9), +('D01', '07C144', 'GHM', 9), +('D01', '07C14J', 'GHM', 9), +('D01', '07K02Z', 'GHM', 9), +('D01', '07K04J', 'GHM', 9), +('D01', '07K05J', 'GHM', 9), +('D01', '07K061', 'GHM', 9), +('D01', '07K062', 'GHM', 9), +('D01', '07K063', 'GHM', 9), +('D01', '07K064', 'GHM', 9), +('D01', '07M021', 'GHM', 9), +('D01', '07M022', 'GHM', 9), +('D01', '07M023', 'GHM', 9), +('D01', '07M024', 'GHM', 9), +('D01', '07M02T', 'GHM', 9), +('D01', '07M02V', 'GHM', 9), +('D01', '07M02W', 'GHM', 9), +('D01', '07M041', 'GHM', 9), +('D01', '07M042', 'GHM', 9), +('D01', '07M043', 'GHM', 9), +('D01', '07M044', 'GHM', 9), +('D01', '07M04T', 'GHM', 9), +('D01', '07M04V', 'GHM', 9), +('D01', '07M04W', 'GHM', 9), +('D01', '07M061', 'GHM', 9), +('D01', '07M062', 'GHM', 9), +('D01', '07M063', 'GHM', 9), +('D01', '07M064', 'GHM', 9), +('D01', '07M06T', 'GHM', 9), +('D01', '07M06V', 'GHM', 9), +('D01', '07M06W', 'GHM', 9), +('D01', '07M071', 'GHM', 9), +('D01', '07M072', 'GHM', 9), +('D01', '07M073', 'GHM', 9), +('D01', '07M074', 'GHM', 9), +('D01', '07M07T', 'GHM', 9), +('D01', '07M081', 'GHM', 9), +('D01', '07M082', 'GHM', 9), +('D01', '07M083', 'GHM', 9), +('D01', '07M084', 'GHM', 9), +('D01', '07M08T', 'GHM', 9), +('D01', '07M091', 'GHM', 9), +('D01', '07M092', 'GHM', 9), +('D01', '07M093', 'GHM', 9), +('D01', '07M094', 'GHM', 9), +('D01', '07M09T', 'GHM', 9), +('D01', '07M101', 'GHM', 9), +('D01', '07M102', 'GHM', 9), +('D01', '07M103', 'GHM', 9), +('D01', '07M104', 'GHM', 9), +('D01', '07M10T', 'GHM', 9), +('D01', '07M111', 'GHM', 9), +('D01', '07M112', 'GHM', 9), +('D01', '07M113', 'GHM', 9), +('D01', '07M114', 'GHM', 9), +('D01', '07M11T', 'GHM', 9), +('D01', '07M121', 'GHM', 9), +('D01', '07M122', 'GHM', 9), +('D01', '07M123', 'GHM', 9), +('D01', '07M124', 'GHM', 9), +('D01', '07M13Z', 'GHM', 9), +('D01', '07M14T', 'GHM', 9), +('D01', '07M14Z', 'GHM', 9), +('D01', '07M151', 'GHM', 9), +('D01', '07M152', 'GHM', 9), +('D01', '07M153', 'GHM', 9), +('D01', '07M154', 'GHM', 9), +('D01', '07M15T', 'GHM', 9), +('D01', '07M161', 'GHM', 9), +('D01', '07M162', 'GHM', 9), +('D01', '07M163', 'GHM', 9), +('D01', '07M164', 'GHM', 9), +('D01', '09C081', 'GHM', 9), +('D01', '09C082', 'GHM', 9), +('D01', '09C083', 'GHM', 9), +('D01', '09C084', 'GHM', 9), +('D01', '09C08J', 'GHM', 9), +('D01', '09C08Z', 'GHM', 9), +('D01', '09C131', 'GHM', 9), +('D01', '09C132', 'GHM', 9), +('D01', '09C133', 'GHM', 9), +('D01', '09C134', 'GHM', 9), +('D01', '09C13J', 'GHM', 9), +('D01', '10C04Z', 'GHM', 9), +('D01', '10C091', 'GHM', 9), +('D01', '10C092', 'GHM', 9), +('D01', '10C093', 'GHM', 9), +('D01', '10C094', 'GHM', 9), +('D01', '10C09Z', 'GHM', 9), +('D01', '10C131', 'GHM', 9), +('D01', '10C132', 'GHM', 9), +('D01', '10C133', 'GHM', 9), +('D01', '10C134', 'GHM', 9), +('D01', '10C13Z', 'GHM', 9), +('D01', '16C021', 'GHM', 9), +('D01', '16C022', 'GHM', 9), +('D01', '16C023', 'GHM', 9), +('D01', '16C024', 'GHM', 9), +('D01', '16C02Z', 'GHM', 9), +('D02', '01C07Z', 'GHM', 9), +('D02', '01C131', 'GHM', 9), +('D02', '01C132', 'GHM', 9), +('D02', '01C133', 'GHM', 9), +('D02', '01C134', 'GHM', 9), +('D02', '01C13J', 'GHM', 9), +('D02', '01C13Z', 'GHM', 9), +('D02', '01C141', 'GHM', 9), +('D02', '01C142', 'GHM', 9), +('D02', '01C143', 'GHM', 9), +('D02', '01C144', 'GHM', 9), +('D02', '01C14J', 'GHM', 9), +('D02', '01C151', 'GHM', 9), +('D02', '01C152', 'GHM', 9), +('D02', '01C153', 'GHM', 9), +('D02', '01C154', 'GHM', 9), +('D02', '01C15J', 'GHM', 9), +('D02', '05C121', 'GHM', 9), +('D02', '05C122', 'GHM', 9), +('D02', '05C123', 'GHM', 9), +('D02', '05C124', 'GHM', 9), +('D02', '05C12V', 'GHM', 9), +('D02', '05C12W', 'GHM', 9), +('D02', '05C131', 'GHM', 9), +('D02', '05C132', 'GHM', 9), +('D02', '05C133', 'GHM', 9), +('D02', '05C134', 'GHM', 9), +('D02', '05C13J', 'GHM', 9), +('D02', '05C13V', 'GHM', 9), +('D02', '05C13W', 'GHM', 9), +('D02', '08C021', 'GHM', 9), +('D02', '08C022', 'GHM', 9), +('D02', '08C023', 'GHM', 9), +('D02', '08C024', 'GHM', 9), +('D02', '08C02Z', 'GHM', 9), +('D02', '08C041', 'GHM', 9), +('D02', '08C042', 'GHM', 9), +('D02', '08C043', 'GHM', 9), +('D02', '08C044', 'GHM', 9), +('D02', '08C04Z', 'GHM', 9), +('D02', '08C061', 'GHM', 9), +('D02', '08C062', 'GHM', 9), +('D02', '08C063', 'GHM', 9), +('D02', '08C064', 'GHM', 9), +('D02', '08C06Z', 'GHM', 9), +('D02', '08C08Z', 'GHM', 9), +('D02', '08C121', 'GHM', 9), +('D02', '08C122', 'GHM', 9), +('D02', '08C123', 'GHM', 9), +('D02', '08C124', 'GHM', 9), +('D02', '08C12J', 'GHM', 9), +('D02', '08C12Z', 'GHM', 9), +('D02', '08C131', 'GHM', 9), +('D02', '08C132', 'GHM', 9), +('D02', '08C133', 'GHM', 9), +('D02', '08C134', 'GHM', 9), +('D02', '08C13J', 'GHM', 9), +('D02', '08C13Z', 'GHM', 9), +('D02', '08C141', 'GHM', 9), +('D02', '08C142', 'GHM', 9), +('D02', '08C143', 'GHM', 9), +('D02', '08C144', 'GHM', 9), +('D02', '08C14J', 'GHM', 9), +('D02', '08C14Z', 'GHM', 9), +('D02', '08C17Z', 'GHM', 9), +('D02', '08C19Z', 'GHM', 9), +('D02', '08C221', 'GHM', 9), +('D02', '08C222', 'GHM', 9), +('D02', '08C223', 'GHM', 9), +('D02', '08C224', 'GHM', 9), +('D02', '08C22Z', 'GHM', 9), +('D02', '08C241', 'GHM', 9), +('D02', '08C242', 'GHM', 9), +('D02', '08C243', 'GHM', 9), +('D02', '08C244', 'GHM', 9), +('D02', '08C24Z', 'GHM', 9), +('D02', '08C251', 'GHM', 9), +('D02', '08C252', 'GHM', 9), +('D02', '08C253', 'GHM', 9), +('D02', '08C254', 'GHM', 9), +('D02', '08C25Z', 'GHM', 9), +('D02', '08C26Z', 'GHM', 9), +('D02', '08C291', 'GHM', 9), +('D02', '08C292', 'GHM', 9), +('D02', '08C293', 'GHM', 9), +('D02', '08C294', 'GHM', 9), +('D02', '08C29J', 'GHM', 9), +('D02', '08C29Z', 'GHM', 9), +('D02', '08C311', 'GHM', 9), +('D02', '08C312', 'GHM', 9), +('D02', '08C313', 'GHM', 9), +('D02', '08C314', 'GHM', 9), +('D02', '08C321', 'GHM', 9), +('D02', '08C322', 'GHM', 9), +('D02', '08C323', 'GHM', 9), +('D02', '08C324', 'GHM', 9), +('D02', '08C32J', 'GHM', 9), +('D02', '08C331', 'GHM', 9), +('D02', '08C332', 'GHM', 9), +('D02', '08C333', 'GHM', 9), +('D02', '08C334', 'GHM', 9), +('D02', '08C341', 'GHM', 9), +('D02', '08C342', 'GHM', 9), +('D02', '08C343', 'GHM', 9), +('D02', '08C344', 'GHM', 9), +('D02', '08C34J', 'GHM', 9), +('D02', '08C351', 'GHM', 9), +('D02', '08C352', 'GHM', 9), +('D02', '08C353', 'GHM', 9), +('D02', '08C354', 'GHM', 9), +('D02', '08C35J', 'GHM', 9), +('D02', '08C361', 'GHM', 9), +('D02', '08C362', 'GHM', 9), +('D02', '08C363', 'GHM', 9), +('D02', '08C364', 'GHM', 9), +('D02', '08C36J', 'GHM', 9), +('D02', '08C371', 'GHM', 9), +('D02', '08C372', 'GHM', 9), +('D02', '08C373', 'GHM', 9), +('D02', '08C374', 'GHM', 9), +('D02', '08C37J', 'GHM', 9), +('D02', '08C381', 'GHM', 9), +('D02', '08C382', 'GHM', 9), +('D02', '08C383', 'GHM', 9), +('D02', '08C384', 'GHM', 9), +('D02', '08C38J', 'GHM', 9), +('D02', '08C391', 'GHM', 9), +('D02', '08C392', 'GHM', 9), +('D02', '08C393', 'GHM', 9), +('D02', '08C394', 'GHM', 9), +('D02', '08C39J', 'GHM', 9), +('D02', '08C401', 'GHM', 9), +('D02', '08C402', 'GHM', 9), +('D02', '08C403', 'GHM', 9), +('D02', '08C404', 'GHM', 9), +('D02', '08C40J', 'GHM', 9), +('D02', '08C411', 'GHM', 9), +('D02', '08C412', 'GHM', 9), +('D02', '08C413', 'GHM', 9), +('D02', '08C414', 'GHM', 9), +('D02', '08C41J', 'GHM', 9), +('D02', '08C421', 'GHM', 9), +('D02', '08C422', 'GHM', 9), +('D02', '08C423', 'GHM', 9), +('D02', '08C424', 'GHM', 9), +('D02', '08C42J', 'GHM', 9), +('D02', '08C431', 'GHM', 9), +('D02', '08C432', 'GHM', 9), +('D02', '08C433', 'GHM', 9), +('D02', '08C434', 'GHM', 9), +('D02', '08C43J', 'GHM', 9), +('D02', '08C441', 'GHM', 9), +('D02', '08C442', 'GHM', 9), +('D02', '08C443', 'GHM', 9), +('D02', '08C444', 'GHM', 9), +('D02', '08C44J', 'GHM', 9), +('D02', '08C451', 'GHM', 9), +('D02', '08C452', 'GHM', 9), +('D02', '08C453', 'GHM', 9), +('D02', '08C454', 'GHM', 9), +('D02', '08C45J', 'GHM', 9), +('D02', '08C461', 'GHM', 9), +('D02', '08C462', 'GHM', 9), +('D02', '08C463', 'GHM', 9), +('D02', '08C464', 'GHM', 9), +('D02', '08C46J', 'GHM', 9), +('D02', '08C471', 'GHM', 9), +('D02', '08C472', 'GHM', 9), +('D02', '08C473', 'GHM', 9), +('D02', '08C474', 'GHM', 9), +('D02', '08C481', 'GHM', 9), +('D02', '08C482', 'GHM', 9), +('D02', '08C483', 'GHM', 9), +('D02', '08C484', 'GHM', 9), +('D02', '08C491', 'GHM', 9), +('D02', '08C492', 'GHM', 9), +('D02', '08C493', 'GHM', 9), +('D02', '08C494', 'GHM', 9), +('D02', '08C501', 'GHM', 9), +('D02', '08C502', 'GHM', 9), +('D02', '08C503', 'GHM', 9), +('D02', '08C504', 'GHM', 9), +('D02', '08C531', 'GHM', 9), +('D02', '08C532', 'GHM', 9), +('D02', '08C533', 'GHM', 9), +('D02', '08C534', 'GHM', 9), +('D02', '08C541', 'GHM', 9), +('D02', '08C542', 'GHM', 9), +('D02', '08C543', 'GHM', 9), +('D02', '08C544', 'GHM', 9), +('D02', '08C54J', 'GHM', 9), +('D02', '08C551', 'GHM', 9), +('D02', '08C552', 'GHM', 9), +('D02', '08C553', 'GHM', 9), +('D02', '08C554', 'GHM', 9), +('D02', '08C561', 'GHM', 9), +('D02', '08C562', 'GHM', 9), +('D02', '08C563', 'GHM', 9), +('D02', '08C564', 'GHM', 9), +('D02', '08C571', 'GHM', 9), +('D02', '08C572', 'GHM', 9), +('D02', '08C573', 'GHM', 9), +('D02', '08C574', 'GHM', 9), +('D02', '08C57J', 'GHM', 9), +('D02', '08C581', 'GHM', 9), +('D02', '08C582', 'GHM', 9), +('D02', '08C583', 'GHM', 9), +('D02', '08C584', 'GHM', 9), +('D02', '08C58J', 'GHM', 9), +('D02', '08C591', 'GHM', 9), +('D02', '08C592', 'GHM', 9), +('D02', '08C593', 'GHM', 9), +('D02', '08C594', 'GHM', 9), +('D02', '08C59J', 'GHM', 9), +('D02', '08C601', 'GHM', 9), +('D02', '08C602', 'GHM', 9), +('D02', '08C603', 'GHM', 9), +('D02', '08C604', 'GHM', 9), +('D02', '08C60J', 'GHM', 9), +('D02', '08C611', 'GHM', 9), +('D02', '08C612', 'GHM', 9), +('D02', '08C613', 'GHM', 9), +('D02', '08C614', 'GHM', 9), +('D02', '08C621', 'GHM', 9), +('D02', '08C622', 'GHM', 9), +('D02', '08C623', 'GHM', 9), +('D02', '08C624', 'GHM', 9), +('D02', '08C62J', 'GHM', 9), +('D02', '08K02J', 'GHM', 9), +('D02', '08K031', 'GHM', 9), +('D02', '08K032', 'GHM', 9), +('D02', '08K033', 'GHM', 9), +('D02', '08K034', 'GHM', 9), +('D02', '08K041', 'GHM', 9), +('D02', '08K042', 'GHM', 9), +('D02', '08K043', 'GHM', 9), +('D02', '08K044', 'GHM', 9), +('D02', '08K051', 'GHM', 9), +('D02', '08K052', 'GHM', 9), +('D02', '08K053', 'GHM', 9), +('D02', '08K054', 'GHM', 9), +('D02', '08K05J', 'GHM', 9), +('D02', '08K06Z', 'GHM', 9), +('D02', '08M02Z', 'GHM', 9), +('D02', '08M041', 'GHM', 9), +('D02', '08M042', 'GHM', 9), +('D02', '08M043', 'GHM', 9), +('D02', '08M044', 'GHM', 9), +('D02', '08M04T', 'GHM', 9), +('D02', '08M04V', 'GHM', 9), +('D02', '08M04W', 'GHM', 9), +('D02', '08M051', 'GHM', 9), +('D02', '08M052', 'GHM', 9), +('D02', '08M053', 'GHM', 9), +('D02', '08M054', 'GHM', 9), +('D02', '08M05T', 'GHM', 9), +('D02', '08M05Z', 'GHM', 9), +('D02', '08M061', 'GHM', 9), +('D02', '08M062', 'GHM', 9), +('D02', '08M063', 'GHM', 9), +('D02', '08M064', 'GHM', 9), +('D02', '08M06T', 'GHM', 9), +('D02', '08M06Z', 'GHM', 9), +('D02', '08M071', 'GHM', 9), +('D02', '08M072', 'GHM', 9), +('D02', '08M073', 'GHM', 9), +('D02', '08M074', 'GHM', 9), +('D02', '08M07T', 'GHM', 9), +('D02', '08M07V', 'GHM', 9), +('D02', '08M07W', 'GHM', 9), +('D02', '08M081', 'GHM', 9), +('D02', '08M082', 'GHM', 9), +('D02', '08M083', 'GHM', 9), +('D02', '08M084', 'GHM', 9), +('D02', '08M08T', 'GHM', 9), +('D02', '08M08Z', 'GHM', 9), +('D02', '08M13Z', 'GHM', 9), +('D02', '08M16Z', 'GHM', 9), +('D02', '08M17Z', 'GHM', 9), +('D02', '08M201', 'GHM', 9), +('D02', '08M202', 'GHM', 9), +('D02', '08M203', 'GHM', 9), +('D02', '08M204', 'GHM', 9), +('D02', '08M211', 'GHM', 9), +('D02', '08M212', 'GHM', 9), +('D02', '08M213', 'GHM', 9), +('D02', '08M214', 'GHM', 9), +('D02', '08M221', 'GHM', 9), +('D02', '08M222', 'GHM', 9), +('D02', '08M223', 'GHM', 9), +('D02', '08M224', 'GHM', 9), +('D02', '08M231', 'GHM', 9), +('D02', '08M232', 'GHM', 9), +('D02', '08M233', 'GHM', 9), +('D02', '08M234', 'GHM', 9), +('D02', '08M261', 'GHM', 9), +('D02', '08M262', 'GHM', 9), +('D02', '08M263', 'GHM', 9), +('D02', '08M264', 'GHM', 9), +('D02', '08M331', 'GHM', 9), +('D02', '08M332', 'GHM', 9), +('D02', '08M333', 'GHM', 9), +('D02', '08M334', 'GHM', 9), +('D02', '08M33T', 'GHM', 9), +('D02', '08M371', 'GHM', 9), +('D02', '08M372', 'GHM', 9), +('D02', '08M373', 'GHM', 9), +('D02', '08M374', 'GHM', 9), +('D02', '08M37T', 'GHM', 9), +('D02', '08M381', 'GHM', 9), +('D02', '08M382', 'GHM', 9), +('D02', '08M383', 'GHM', 9), +('D02', '08M384', 'GHM', 9), +('D02', '08M38T', 'GHM', 9), +('D02', '21C041', 'GHM', 9), +('D02', '21C042', 'GHM', 9), +('D02', '21C043', 'GHM', 9), +('D02', '21C044', 'GHM', 9), +('D02', '21C04J', 'GHM', 9), +('D02', '21C04Z', 'GHM', 9), +('D02', '21M061', 'GHM', 9), +('D02', '21M062', 'GHM', 9), +('D02', '21M063', 'GHM', 9), +('D02', '21M064', 'GHM', 9), +('D02', '21M06Z', 'GHM', 9), +('D02', '21M071', 'GHM', 9), +('D02', '21M072', 'GHM', 9), +('D02', '21M073', 'GHM', 9), +('D02', '21M074', 'GHM', 9), +('D02', '21M07T', 'GHM', 9), +('D02', '21M07V', 'GHM', 9), +('D02', '21M07W', 'GHM', 9), +('D03', '26C021', 'GHM', 9), +('D03', '26C022', 'GHM', 9), +('D03', '26C023', 'GHM', 9), +('D03', '26C024', 'GHM', 9), +('D03', '26C02Z', 'GHM', 9), +('D03', '26M021', 'GHM', 9), +('D03', '26M022', 'GHM', 9), +('D03', '26M023', 'GHM', 9), +('D03', '26M024', 'GHM', 9), +('D03', '26M02Z', 'GHM', 9), +('D04', '08M091', 'GHM', 9), +('D04', '08M092', 'GHM', 9), +('D04', '08M093', 'GHM', 9), +('D04', '08M094', 'GHM', 9), +('D04', '08M09T', 'GHM', 9), +('D04', '08M09Z', 'GHM', 9), +('D04', '08M101', 'GHM', 9), +('D04', '08M102', 'GHM', 9), +('D04', '08M103', 'GHM', 9), +('D04', '08M104', 'GHM', 9), +('D04', '08M10T', 'GHM', 9), +('D04', '08M10V', 'GHM', 9), +('D04', '08M10W', 'GHM', 9), +('D04', '08M141', 'GHM', 9), +('D04', '08M142', 'GHM', 9), +('D04', '08M143', 'GHM', 9), +('D04', '08M144', 'GHM', 9), +('D04', '08M14T', 'GHM', 9), +('D04', '08M14V', 'GHM', 9), +('D04', '08M14W', 'GHM', 9), +('D04', '08M151', 'GHM', 9), +('D04', '08M152', 'GHM', 9), +('D04', '08M153', 'GHM', 9), +('D04', '08M154', 'GHM', 9), +('D04', '08M15T', 'GHM', 9), +('D04', '08M15V', 'GHM', 9), +('D04', '08M15W', 'GHM', 9), +('D04', '08M181', 'GHM', 9), +('D04', '08M182', 'GHM', 9), +('D04', '08M183', 'GHM', 9), +('D04', '08M184', 'GHM', 9), +('D04', '08M18T', 'GHM', 9), +('D04', '08M18Z', 'GHM', 9), +('D04', '08M191', 'GHM', 9), +('D04', '08M192', 'GHM', 9), +('D04', '08M193', 'GHM', 9), +('D04', '08M194', 'GHM', 9), +('D04', '08M19T', 'GHM', 9), +('D04', '08M19V', 'GHM', 9), +('D04', '08M19W', 'GHM', 9), +('D04', '08M241', 'GHM', 9), +('D04', '08M242', 'GHM', 9), +('D04', '08M243', 'GHM', 9), +('D04', '08M244', 'GHM', 9), +('D04', '08M24T', 'GHM', 9), +('D04', '08M251', 'GHM', 9), +('D04', '08M252', 'GHM', 9), +('D04', '08M253', 'GHM', 9), +('D04', '08M254', 'GHM', 9), +('D04', '08M25T', 'GHM', 9), +('D04', '08M271', 'GHM', 9), +('D04', '08M272', 'GHM', 9), +('D04', '08M273', 'GHM', 9), +('D04', '08M274', 'GHM', 9), +('D04', '08M27T', 'GHM', 9), +('D04', '08M281', 'GHM', 9), +('D04', '08M282', 'GHM', 9), +('D04', '08M283', 'GHM', 9), +('D04', '08M284', 'GHM', 9), +('D04', '08M28T', 'GHM', 9), +('D04', '08M291', 'GHM', 9), +('D04', '08M292', 'GHM', 9), +('D04', '08M293', 'GHM', 9), +('D04', '08M294', 'GHM', 9), +('D04', '08M29T', 'GHM', 9), +('D04', '08M301', 'GHM', 9), +('D04', '08M302', 'GHM', 9), +('D04', '08M303', 'GHM', 9), +('D04', '08M304', 'GHM', 9), +('D04', '08M30T', 'GHM', 9), +('D04', '08M311', 'GHM', 9), +('D04', '08M312', 'GHM', 9), +('D04', '08M313', 'GHM', 9), +('D04', '08M314', 'GHM', 9), +('D04', '08M31T', 'GHM', 9), +('D04', '08M321', 'GHM', 9), +('D04', '08M322', 'GHM', 9), +('D04', '08M323', 'GHM', 9), +('D04', '08M324', 'GHM', 9), +('D04', '08M32T', 'GHM', 9), +('D04', '08M341', 'GHM', 9), +('D04', '08M342', 'GHM', 9), +('D04', '08M343', 'GHM', 9), +('D04', '08M344', 'GHM', 9), +('D04', '08M34T', 'GHM', 9), +('D04', '08M35Z', 'GHM', 9), +('D04', '08M36T', 'GHM', 9), +('D04', '08M36Z', 'GHM', 9), +('D05', '01C02Z', 'GHM', 9), +('D05', '01C031', 'GHM', 9), +('D05', '01C032', 'GHM', 9), +('D05', '01C033', 'GHM', 9), +('D05', '01C034', 'GHM', 9), +('D05', '01C03V', 'GHM', 9), +('D05', '01C03W', 'GHM', 9), +('D05', '01C041', 'GHM', 9), +('D05', '01C042', 'GHM', 9), +('D05', '01C043', 'GHM', 9), +('D05', '01C044', 'GHM', 9), +('D05', '01C04V', 'GHM', 9), +('D05', '01C04W', 'GHM', 9), +('D05', '01C051', 'GHM', 9), +('D05', '01C052', 'GHM', 9), +('D05', '01C053', 'GHM', 9), +('D05', '01C054', 'GHM', 9), +('D05', '01C05V', 'GHM', 9), +('D05', '01C05W', 'GHM', 9), +('D05', '01C091', 'GHM', 9), +('D05', '01C092', 'GHM', 9), +('D05', '01C093', 'GHM', 9), +('D05', '01C094', 'GHM', 9), +('D05', '01C09Z', 'GHM', 9), +('D05', '01C101', 'GHM', 9), +('D05', '01C102', 'GHM', 9), +('D05', '01C103', 'GHM', 9), +('D05', '01C104', 'GHM', 9), +('D05', '01C10J', 'GHM', 9), +('D05', '01C10Z', 'GHM', 9), +('D05', '01C111', 'GHM', 9), +('D05', '01C112', 'GHM', 9), +('D05', '01C113', 'GHM', 9), +('D05', '01C114', 'GHM', 9), +('D05', '01C11Z', 'GHM', 9), +('D05', '01C121', 'GHM', 9), +('D05', '01C122', 'GHM', 9), +('D05', '01C123', 'GHM', 9), +('D05', '01C124', 'GHM', 9), +('D05', '01C12Z', 'GHM', 9), +('D05', '01K04J', 'GHM', 9), +('D05', '01K06J', 'GHM', 9), +('D05', '01M02Z', 'GHM', 9), +('D05', '01M041', 'GHM', 9), +('D05', '01M042', 'GHM', 9), +('D05', '01M043', 'GHM', 9), +('D05', '01M044', 'GHM', 9), +('D05', '01M04T', 'GHM', 9), +('D05', '01M04Z', 'GHM', 9), +('D05', '01M051', 'GHM', 9), +('D05', '01M052', 'GHM', 9), +('D05', '01M053', 'GHM', 9), +('D05', '01M054', 'GHM', 9), +('D05', '01M05T', 'GHM', 9), +('D05', '01M05V', 'GHM', 9), +('D05', '01M05W', 'GHM', 9), +('D05', '01M071', 'GHM', 9), +('D05', '01M072', 'GHM', 9), +('D05', '01M073', 'GHM', 9), +('D05', '01M074', 'GHM', 9), +('D05', '01M07T', 'GHM', 9), +('D05', '01M07Z', 'GHM', 9), +('D05', '01M081', 'GHM', 9), +('D05', '01M082', 'GHM', 9), +('D05', '01M083', 'GHM', 9), +('D05', '01M084', 'GHM', 9), +('D05', '01M08T', 'GHM', 9), +('D05', '01M08V', 'GHM', 9), +('D05', '01M08W', 'GHM', 9), +('D05', '01M091', 'GHM', 9), +('D05', '01M092', 'GHM', 9), +('D05', '01M093', 'GHM', 9), +('D05', '01M094', 'GHM', 9), +('D05', '01M09T', 'GHM', 9), +('D05', '01M09Z', 'GHM', 9), +('D05', '01M101', 'GHM', 9), +('D05', '01M102', 'GHM', 9), +('D05', '01M103', 'GHM', 9), +('D05', '01M104', 'GHM', 9), +('D05', '01M10T', 'GHM', 9), +('D05', '01M10V', 'GHM', 9), +('D05', '01M10W', 'GHM', 9), +('D05', '01M111', 'GHM', 9), +('D05', '01M112', 'GHM', 9), +('D05', '01M113', 'GHM', 9), +('D05', '01M114', 'GHM', 9), +('D05', '01M11T', 'GHM', 9), +('D05', '01M11V', 'GHM', 9), +('D05', '01M11W', 'GHM', 9), +('D05', '01M121', 'GHM', 9), +('D05', '01M122', 'GHM', 9), +('D05', '01M123', 'GHM', 9), +('D05', '01M124', 'GHM', 9), +('D05', '01M12T', 'GHM', 9), +('D05', '01M12V', 'GHM', 9), +('D05', '01M12W', 'GHM', 9), +('D05', '01M131', 'GHM', 9), +('D05', '01M132', 'GHM', 9), +('D05', '01M133', 'GHM', 9), +('D05', '01M134', 'GHM', 9), +('D05', '01M13Z', 'GHM', 9), +('D05', '01M151', 'GHM', 9), +('D05', '01M152', 'GHM', 9), +('D05', '01M153', 'GHM', 9), +('D05', '01M154', 'GHM', 9), +('D05', '01M15T', 'GHM', 9), +('D05', '01M15Z', 'GHM', 9), +('D05', '01M161', 'GHM', 9), +('D05', '01M162', 'GHM', 9), +('D05', '01M163', 'GHM', 9), +('D05', '01M164', 'GHM', 9), +('D05', '01M16T', 'GHM', 9), +('D05', '01M16Z', 'GHM', 9), +('D05', '01M171', 'GHM', 9), +('D05', '01M172', 'GHM', 9), +('D05', '01M173', 'GHM', 9), +('D05', '01M174', 'GHM', 9), +('D05', '01M17T', 'GHM', 9), +('D05', '01M17V', 'GHM', 9), +('D05', '01M17W', 'GHM', 9), +('D05', '01M181', 'GHM', 9), +('D05', '01M182', 'GHM', 9), +('D05', '01M183', 'GHM', 9), +('D05', '01M184', 'GHM', 9), +('D05', '01M18T', 'GHM', 9), +('D05', '01M18V', 'GHM', 9), +('D05', '01M18W', 'GHM', 9), +('D05', '01M191', 'GHM', 9), +('D05', '01M192', 'GHM', 9), +('D05', '01M193', 'GHM', 9), +('D05', '01M194', 'GHM', 9), +('D05', '01M19V', 'GHM', 9), +('D05', '01M19W', 'GHM', 9), +('D05', '01M201', 'GHM', 9), +('D05', '01M202', 'GHM', 9), +('D05', '01M203', 'GHM', 9), +('D05', '01M204', 'GHM', 9), +('D05', '01M20V', 'GHM', 9), +('D05', '01M20W', 'GHM', 9), +('D05', '01M221', 'GHM', 9), +('D05', '01M222', 'GHM', 9), +('D05', '01M223', 'GHM', 9), +('D05', '01M224', 'GHM', 9), +('D05', '01M22T', 'GHM', 9), +('D05', '01M22Z', 'GHM', 9), +('D05', '01M231', 'GHM', 9), +('D05', '01M232', 'GHM', 9), +('D05', '01M233', 'GHM', 9), +('D05', '01M234', 'GHM', 9), +('D05', '01M23Z', 'GHM', 9), +('D05', '01M241', 'GHM', 9), +('D05', '01M242', 'GHM', 9), +('D05', '01M243', 'GHM', 9), +('D05', '01M244', 'GHM', 9), +('D05', '01M24T', 'GHM', 9), +('D05', '01M24V', 'GHM', 9), +('D05', '01M24W', 'GHM', 9), +('D05', '01M251', 'GHM', 9), +('D05', '01M252', 'GHM', 9), +('D05', '01M253', 'GHM', 9), +('D05', '01M254', 'GHM', 9), +('D05', '01M25T', 'GHM', 9), +('D05', '01M25V', 'GHM', 9), +('D05', '01M25W', 'GHM', 9), +('D05', '01M261', 'GHM', 9), +('D05', '01M262', 'GHM', 9), +('D05', '01M263', 'GHM', 9), +('D05', '01M264', 'GHM', 9), +('D05', '01M26T', 'GHM', 9), +('D05', '01M271', 'GHM', 9), +('D05', '01M272', 'GHM', 9), +('D05', '01M273', 'GHM', 9), +('D05', '01M274', 'GHM', 9), +('D05', '01M27T', 'GHM', 9), +('D05', '01M281', 'GHM', 9), +('D05', '01M282', 'GHM', 9), +('D05', '01M283', 'GHM', 9), +('D05', '01M284', 'GHM', 9), +('D05', '01M28T', 'GHM', 9), +('D05', '01M291', 'GHM', 9), +('D05', '01M292', 'GHM', 9), +('D05', '01M293', 'GHM', 9), +('D05', '01M294', 'GHM', 9), +('D05', '01M301', 'GHM', 9), +('D05', '01M302', 'GHM', 9), +('D05', '01M303', 'GHM', 9), +('D05', '01M304', 'GHM', 9), +('D05', '01M30T', 'GHM', 9), +('D05', '01M311', 'GHM', 9), +('D05', '01M312', 'GHM', 9), +('D05', '01M313', 'GHM', 9), +('D05', '01M314', 'GHM', 9), +('D05', '01M31T', 'GHM', 9), +('D05', '01M32Z', 'GHM', 9), +('D05', '01M331', 'GHM', 9), +('D05', '01M332', 'GHM', 9), +('D05', '01M333', 'GHM', 9), +('D05', '01M334', 'GHM', 9), +('D05', '01M34T', 'GHM', 9), +('D05', '01M34Z', 'GHM', 9), +('D05', '01M35T', 'GHM', 9), +('D05', '01M35Z', 'GHM', 9), +('D05', '01M36E', 'GHM', 9), +('D05', '01M381', 'GHM', 9), +('D05', '01M382', 'GHM', 9), +('D05', '01M383', 'GHM', 9), +('D05', '01M384', 'GHM', 9), +('D05', '01M391', 'GHM', 9), +('D05', '01M392', 'GHM', 9), +('D05', '01M393', 'GHM', 9), +('D05', '01M394', 'GHM', 9), +('D05', '08C271', 'GHM', 9), +('D05', '08C272', 'GHM', 9), +('D05', '08C273', 'GHM', 9), +('D05', '08C274', 'GHM', 9), +('D05', '08C27V', 'GHM', 9), +('D05', '08C27W', 'GHM', 9), +('D05', '08C511', 'GHM', 9), +('D05', '08C512', 'GHM', 9), +('D05', '08C513', 'GHM', 9), +('D05', '08C514', 'GHM', 9), +('D05', '08C521', 'GHM', 9), +('D05', '08C522', 'GHM', 9), +('D05', '08C523', 'GHM', 9), +('D05', '08C524', 'GHM', 9), +('D05', '10C021', 'GHM', 9), +('D05', '10C022', 'GHM', 9), +('D05', '10C023', 'GHM', 9), +('D05', '10C024', 'GHM', 9), +('D05', '10C02Z', 'GHM', 9), +('D06', '01K021', 'GHM', 9), +('D06', '01K022', 'GHM', 9), +('D06', '01K023', 'GHM', 9), +('D06', '01K024', 'GHM', 9), +('D06', '01K02Z', 'GHM', 9), +('D06', '01K031', 'GHM', 9), +('D06', '01K032', 'GHM', 9), +('D06', '01K033', 'GHM', 9), +('D06', '01K034', 'GHM', 9), +('D06', '01K03Z', 'GHM', 9), +('D06', '01K071', 'GHM', 9), +('D06', '01K072', 'GHM', 9), +('D06', '01K073', 'GHM', 9), +('D06', '01K074', 'GHM', 9), +('D06', '05K03Z', 'GHM', 9), +('D06', '05K04Z', 'GHM', 9), +('D06', '05K051', 'GHM', 9), +('D06', '05K052', 'GHM', 9), +('D06', '05K053', 'GHM', 9), +('D06', '05K054', 'GHM', 9), +('D06', '05K05V', 'GHM', 9), +('D06', '05K05W', 'GHM', 9), +('D06', '05K061', 'GHM', 9), +('D06', '05K062', 'GHM', 9), +('D06', '05K063', 'GHM', 9), +('D06', '05K064', 'GHM', 9), +('D06', '05K06T', 'GHM', 9), +('D06', '05K06V', 'GHM', 9), +('D06', '05K06W', 'GHM', 9), +('D06', '05K07Z', 'GHM', 9), +('D06', '05K08Z', 'GHM', 9), +('D06', '05K09Z', 'GHM', 9), +('D06', '05K101', 'GHM', 9), +('D06', '05K102', 'GHM', 9), +('D06', '05K103', 'GHM', 9), +('D06', '05K104', 'GHM', 9), +('D06', '05K10J', 'GHM', 9), +('D06', '05K10Z', 'GHM', 9), +('D06', '05K111', 'GHM', 9), +('D06', '05K112', 'GHM', 9), +('D06', '05K113', 'GHM', 9), +('D06', '05K114', 'GHM', 9), +('D06', '05K11T', 'GHM', 9), +('D06', '05K11Z', 'GHM', 9), +('D06', '05K121', 'GHM', 9), +('D06', '05K122', 'GHM', 9), +('D06', '05K123', 'GHM', 9), +('D06', '05K124', 'GHM', 9), +('D06', '05K12Z', 'GHM', 9), +('D06', '05K131', 'GHM', 9), +('D06', '05K132', 'GHM', 9), +('D06', '05K133', 'GHM', 9), +('D06', '05K134', 'GHM', 9), +('D06', '05K13J', 'GHM', 9), +('D06', '05K13Z', 'GHM', 9), +('D06', '05K151', 'GHM', 9), +('D06', '05K152', 'GHM', 9), +('D06', '05K153', 'GHM', 9), +('D06', '05K154', 'GHM', 9), +('D06', '05K15J', 'GHM', 9), +('D06', '05K191', 'GHM', 9), +('D06', '05K192', 'GHM', 9), +('D06', '05K193', 'GHM', 9), +('D06', '05K194', 'GHM', 9), +('D06', '05K201', 'GHM', 9), +('D06', '05K202', 'GHM', 9), +('D06', '05K203', 'GHM', 9), +('D06', '05K204', 'GHM', 9), +('D06', '05K20T', 'GHM', 9), +('D06', '05K211', 'GHM', 9), +('D06', '05K212', 'GHM', 9), +('D06', '05K213', 'GHM', 9), +('D06', '05K214', 'GHM', 9), +('D06', '05K221', 'GHM', 9), +('D06', '05K222', 'GHM', 9), +('D06', '05K223', 'GHM', 9), +('D06', '05K224', 'GHM', 9), +('D06', '05K231', 'GHM', 9), +('D06', '05K232', 'GHM', 9), +('D06', '05K233', 'GHM', 9), +('D06', '05K234', 'GHM', 9), +('D06', '05K23J', 'GHM', 9), +('D06', '05K241', 'GHM', 9), +('D06', '05K242', 'GHM', 9), +('D06', '05K243', 'GHM', 9), +('D06', '05K244', 'GHM', 9), +('D06', '05K24J', 'GHM', 9), +('D06', '05K251', 'GHM', 9), +('D06', '05K252', 'GHM', 9), +('D06', '05K253', 'GHM', 9), +('D06', '05K254', 'GHM', 9), +('D06', '05K25J', 'GHM', 9), +('D06', '05K261', 'GHM', 9), +('D06', '05K262', 'GHM', 9), +('D06', '05K263', 'GHM', 9), +('D06', '05K264', 'GHM', 9), +('D06', '05K26J', 'GHM', 9), +('D06', '05M02E', 'GHM', 9), +('D06', '05M03Z', 'GHM', 9), +('D07', '01C061', 'GHM', 9), +('D07', '01C062', 'GHM', 9), +('D07', '01C063', 'GHM', 9), +('D07', '01C064', 'GHM', 9), +('D07', '01C06V', 'GHM', 9), +('D07', '01C06W', 'GHM', 9), +('D07', '05C021', 'GHM', 9), +('D07', '05C022', 'GHM', 9), +('D07', '05C023', 'GHM', 9), +('D07', '05C024', 'GHM', 9), +('D07', '05C02Z', 'GHM', 9), +('D07', '05C031', 'GHM', 9), +('D07', '05C032', 'GHM', 9), +('D07', '05C033', 'GHM', 9), +('D07', '05C034', 'GHM', 9), +('D07', '05C03V', 'GHM', 9), +('D07', '05C03W', 'GHM', 9), +('D07', '05C041', 'GHM', 9), +('D07', '05C042', 'GHM', 9), +('D07', '05C043', 'GHM', 9), +('D07', '05C044', 'GHM', 9), +('D07', '05C04V', 'GHM', 9), +('D07', '05C04W', 'GHM', 9), +('D07', '05C051', 'GHM', 9), +('D07', '05C052', 'GHM', 9), +('D07', '05C053', 'GHM', 9), +('D07', '05C054', 'GHM', 9), +('D07', '05C05V', 'GHM', 9), +('D07', '05C05W', 'GHM', 9), +('D07', '05C061', 'GHM', 9), +('D07', '05C062', 'GHM', 9), +('D07', '05C063', 'GHM', 9), +('D07', '05C064', 'GHM', 9), +('D07', '05C06V', 'GHM', 9), +('D07', '05C06W', 'GHM', 9), +('D07', '05C071', 'GHM', 9), +('D07', '05C072', 'GHM', 9), +('D07', '05C073', 'GHM', 9), +('D07', '05C074', 'GHM', 9), +('D07', '05C07Z', 'GHM', 9), +('D07', '05C081', 'GHM', 9), +('D07', '05C082', 'GHM', 9), +('D07', '05C083', 'GHM', 9), +('D07', '05C084', 'GHM', 9), +('D07', '05C08T', 'GHM', 9), +('D07', '05C08V', 'GHM', 9), +('D07', '05C08W', 'GHM', 9), +('D07', '05C091', 'GHM', 9), +('D07', '05C092', 'GHM', 9), +('D07', '05C093', 'GHM', 9), +('D07', '05C094', 'GHM', 9), +('D07', '05C09Z', 'GHM', 9), +('D07', '05C101', 'GHM', 9), +('D07', '05C102', 'GHM', 9), +('D07', '05C103', 'GHM', 9), +('D07', '05C104', 'GHM', 9), +('D07', '05C10V', 'GHM', 9), +('D07', '05C10W', 'GHM', 9), +('D07', '05C111', 'GHM', 9), +('D07', '05C112', 'GHM', 9), +('D07', '05C113', 'GHM', 9), +('D07', '05C114', 'GHM', 9), +('D07', '05C11J', 'GHM', 9), +('D07', '05C11V', 'GHM', 9), +('D07', '05C11W', 'GHM', 9), +('D07', '05C141', 'GHM', 9), +('D07', '05C142', 'GHM', 9), +('D07', '05C143', 'GHM', 9), +('D07', '05C144', 'GHM', 9), +('D07', '05C14J', 'GHM', 9), +('D07', '05C14Z', 'GHM', 9), +('D07', '05C151', 'GHM', 9), +('D07', '05C152', 'GHM', 9), +('D07', '05C153', 'GHM', 9), +('D07', '05C154', 'GHM', 9), +('D07', '05C15T', 'GHM', 9), +('D07', '05C15Z', 'GHM', 9), +('D07', '05C16Z', 'GHM', 9), +('D07', '05C171', 'GHM', 9), +('D07', '05C172', 'GHM', 9), +('D07', '05C173', 'GHM', 9), +('D07', '05C174', 'GHM', 9), +('D07', '05C17J', 'GHM', 9), +('D07', '05C17V', 'GHM', 9), +('D07', '05C17W', 'GHM', 9), +('D07', '05C191', 'GHM', 9), +('D07', '05C192', 'GHM', 9), +('D07', '05C193', 'GHM', 9), +('D07', '05C194', 'GHM', 9), +('D07', '05C19T', 'GHM', 9), +('D07', '05C19Z', 'GHM', 9), +('D07', '05C201', 'GHM', 9), +('D07', '05C202', 'GHM', 9), +('D07', '05C203', 'GHM', 9), +('D07', '05C204', 'GHM', 9), +('D07', '05C20Z', 'GHM', 9), +('D07', '05C211', 'GHM', 9), +('D07', '05C212', 'GHM', 9), +('D07', '05C213', 'GHM', 9), +('D07', '05C214', 'GHM', 9), +('D07', '05C21J', 'GHM', 9), +('D07', '05C221', 'GHM', 9), +('D07', '05C222', 'GHM', 9), +('D07', '05C223', 'GHM', 9), +('D07', '05C224', 'GHM', 9), +('D07', '05C22T', 'GHM', 9), +('D07', '05K14Z', 'GHM', 9), +('D07', '05K17J', 'GHM', 9), +('D07', '05K18J', 'GHM', 9), +('D07', '05M041', 'GHM', 9), +('D07', '05M042', 'GHM', 9), +('D07', '05M043', 'GHM', 9), +('D07', '05M044', 'GHM', 9), +('D07', '05M04T', 'GHM', 9), +('D07', '05M04V', 'GHM', 9), +('D07', '05M04W', 'GHM', 9), +('D07', '05M051', 'GHM', 9), +('D07', '05M052', 'GHM', 9), +('D07', '05M053', 'GHM', 9), +('D07', '05M054', 'GHM', 9), +('D07', '05M05T', 'GHM', 9), +('D07', '05M05V', 'GHM', 9), +('D07', '05M05W', 'GHM', 9), +('D07', '05M061', 'GHM', 9), +('D07', '05M062', 'GHM', 9), +('D07', '05M063', 'GHM', 9), +('D07', '05M064', 'GHM', 9), +('D07', '05M06T', 'GHM', 9), +('D07', '05M06V', 'GHM', 9), +('D07', '05M06W', 'GHM', 9), +('D07', '05M071', 'GHM', 9), +('D07', '05M072', 'GHM', 9), +('D07', '05M073', 'GHM', 9), +('D07', '05M074', 'GHM', 9), +('D07', '05M07T', 'GHM', 9), +('D07', '05M07V', 'GHM', 9), +('D07', '05M07W', 'GHM', 9), +('D07', '05M081', 'GHM', 9), +('D07', '05M082', 'GHM', 9), +('D07', '05M083', 'GHM', 9), +('D07', '05M084', 'GHM', 9), +('D07', '05M08T', 'GHM', 9), +('D07', '05M08V', 'GHM', 9), +('D07', '05M08W', 'GHM', 9), +('D07', '05M091', 'GHM', 9), +('D07', '05M092', 'GHM', 9), +('D07', '05M093', 'GHM', 9), +('D07', '05M094', 'GHM', 9), +('D07', '05M09T', 'GHM', 9), +('D07', '05M09V', 'GHM', 9), +('D07', '05M09W', 'GHM', 9), +('D07', '05M101', 'GHM', 9), +('D07', '05M102', 'GHM', 9), +('D07', '05M103', 'GHM', 9), +('D07', '05M104', 'GHM', 9), +('D07', '05M10T', 'GHM', 9), +('D07', '05M10Z', 'GHM', 9), +('D07', '05M111', 'GHM', 9), +('D07', '05M112', 'GHM', 9), +('D07', '05M113', 'GHM', 9), +('D07', '05M114', 'GHM', 9), +('D07', '05M11T', 'GHM', 9), +('D07', '05M11V', 'GHM', 9), +('D07', '05M11W', 'GHM', 9), +('D07', '05M121', 'GHM', 9), +('D07', '05M122', 'GHM', 9), +('D07', '05M123', 'GHM', 9), +('D07', '05M124', 'GHM', 9), +('D07', '05M12T', 'GHM', 9), +('D07', '05M12V', 'GHM', 9), +('D07', '05M12W', 'GHM', 9), +('D07', '05M131', 'GHM', 9), +('D07', '05M132', 'GHM', 9), +('D07', '05M133', 'GHM', 9), +('D07', '05M134', 'GHM', 9), +('D07', '05M13T', 'GHM', 9), +('D07', '05M13Z', 'GHM', 9), +('D07', '05M141', 'GHM', 9), +('D07', '05M142', 'GHM', 9), +('D07', '05M143', 'GHM', 9), +('D07', '05M144', 'GHM', 9), +('D07', '05M14Z', 'GHM', 9), +('D07', '05M151', 'GHM', 9), +('D07', '05M152', 'GHM', 9), +('D07', '05M153', 'GHM', 9), +('D07', '05M154', 'GHM', 9), +('D07', '05M15T', 'GHM', 9), +('D07', '05M15Z', 'GHM', 9), +('D07', '05M161', 'GHM', 9), +('D07', '05M162', 'GHM', 9), +('D07', '05M163', 'GHM', 9), +('D07', '05M164', 'GHM', 9), +('D07', '05M16T', 'GHM', 9), +('D07', '05M16V', 'GHM', 9), +('D07', '05M16W', 'GHM', 9), +('D07', '05M171', 'GHM', 9), +('D07', '05M172', 'GHM', 9), +('D07', '05M173', 'GHM', 9), +('D07', '05M174', 'GHM', 9), +('D07', '05M17T', 'GHM', 9), +('D07', '05M17V', 'GHM', 9), +('D07', '05M17W', 'GHM', 9), +('D07', '05M181', 'GHM', 9), +('D07', '05M182', 'GHM', 9), +('D07', '05M183', 'GHM', 9), +('D07', '05M184', 'GHM', 9), +('D07', '05M18T', 'GHM', 9), +('D07', '05M18Z', 'GHM', 9), +('D07', '05M191', 'GHM', 9), +('D07', '05M192', 'GHM', 9), +('D07', '05M193', 'GHM', 9), +('D07', '05M194', 'GHM', 9), +('D07', '05M20Z', 'GHM', 9), +('D07', '05M21E', 'GHM', 9), +('D07', '05M23T', 'GHM', 9), +('D07', '05M23Z', 'GHM', 9), +('D07', '11C091', 'GHM', 9), +('D07', '11C092', 'GHM', 9), +('D07', '11C093', 'GHM', 9), +('D07', '11C094', 'GHM', 9), +('D07', '11C09J', 'GHM', 9), +('D07', '11K07Z', 'GHM', 9), +('D09', '04C021', 'GHM', 9), +('D09', '04C022', 'GHM', 9), +('D09', '04C023', 'GHM', 9), +('D09', '04C024', 'GHM', 9), +('D09', '04C02V', 'GHM', 9), +('D09', '04C02W', 'GHM', 9), +('D09', '04C031', 'GHM', 9), +('D09', '04C032', 'GHM', 9), +('D09', '04C033', 'GHM', 9), +('D09', '04C034', 'GHM', 9), +('D09', '04C03V', 'GHM', 9), +('D09', '04C03W', 'GHM', 9), +('D09', '04C041', 'GHM', 9), +('D09', '04C042', 'GHM', 9), +('D09', '04C043', 'GHM', 9), +('D09', '04C044', 'GHM', 9), +('D09', '04K02J', 'GHM', 9), +('D09', '04M021', 'GHM', 9), +('D09', '04M022', 'GHM', 9), +('D09', '04M023', 'GHM', 9), +('D09', '04M024', 'GHM', 9), +('D09', '04M02T', 'GHM', 9), +('D09', '04M02V', 'GHM', 9), +('D09', '04M02W', 'GHM', 9), +('D09', '04M031', 'GHM', 9), +('D09', '04M032', 'GHM', 9), +('D09', '04M033', 'GHM', 9), +('D09', '04M034', 'GHM', 9), +('D09', '04M03T', 'GHM', 9), +('D09', '04M03V', 'GHM', 9), +('D09', '04M03W', 'GHM', 9), +('D09', '04M041', 'GHM', 9), +('D09', '04M042', 'GHM', 9), +('D09', '04M043', 'GHM', 9), +('D09', '04M044', 'GHM', 9), +('D09', '04M04Z', 'GHM', 9), +('D09', '04M051', 'GHM', 9), +('D09', '04M052', 'GHM', 9), +('D09', '04M053', 'GHM', 9), +('D09', '04M054', 'GHM', 9), +('D09', '04M05T', 'GHM', 9), +('D09', '04M05V', 'GHM', 9), +('D09', '04M05W', 'GHM', 9), +('D09', '04M061', 'GHM', 9), +('D09', '04M062', 'GHM', 9), +('D09', '04M063', 'GHM', 9), +('D09', '04M064', 'GHM', 9), +('D09', '04M06T', 'GHM', 9), +('D09', '04M06Z', 'GHM', 9), +('D09', '04M071', 'GHM', 9), +('D09', '04M072', 'GHM', 9), +('D09', '04M073', 'GHM', 9), +('D09', '04M074', 'GHM', 9), +('D09', '04M07T', 'GHM', 9), +('D09', '04M07V', 'GHM', 9), +('D09', '04M07W', 'GHM', 9), +('D09', '04M081', 'GHM', 9), +('D09', '04M082', 'GHM', 9), +('D09', '04M083', 'GHM', 9), +('D09', '04M084', 'GHM', 9), +('D09', '04M08T', 'GHM', 9), +('D09', '04M08V', 'GHM', 9), +('D09', '04M08W', 'GHM', 9), +('D09', '04M091', 'GHM', 9), +('D09', '04M092', 'GHM', 9), +('D09', '04M093', 'GHM', 9), +('D09', '04M094', 'GHM', 9), +('D09', '04M09T', 'GHM', 9), +('D09', '04M09V', 'GHM', 9), +('D09', '04M09W', 'GHM', 9), +('D09', '04M101', 'GHM', 9), +('D09', '04M102', 'GHM', 9), +('D09', '04M103', 'GHM', 9), +('D09', '04M104', 'GHM', 9), +('D09', '04M10T', 'GHM', 9), +('D09', '04M10V', 'GHM', 9), +('D09', '04M10W', 'GHM', 9), +('D09', '04M111', 'GHM', 9), +('D09', '04M112', 'GHM', 9), +('D09', '04M113', 'GHM', 9), +('D09', '04M114', 'GHM', 9), +('D09', '04M11V', 'GHM', 9), +('D09', '04M11W', 'GHM', 9), +('D09', '04M121', 'GHM', 9), +('D09', '04M122', 'GHM', 9), +('D09', '04M123', 'GHM', 9), +('D09', '04M124', 'GHM', 9), +('D09', '04M12T', 'GHM', 9), +('D09', '04M12V', 'GHM', 9), +('D09', '04M12W', 'GHM', 9), +('D09', '04M131', 'GHM', 9), +('D09', '04M132', 'GHM', 9), +('D09', '04M133', 'GHM', 9), +('D09', '04M134', 'GHM', 9), +('D09', '04M13T', 'GHM', 9), +('D09', '04M13Z', 'GHM', 9), +('D09', '04M141', 'GHM', 9), +('D09', '04M142', 'GHM', 9), +('D09', '04M143', 'GHM', 9), +('D09', '04M144', 'GHM', 9), +('D09', '04M14T', 'GHM', 9), +('D09', '04M14V', 'GHM', 9), +('D09', '04M14W', 'GHM', 9), +('D09', '04M151', 'GHM', 9), +('D09', '04M152', 'GHM', 9), +('D09', '04M153', 'GHM', 9), +('D09', '04M154', 'GHM', 9), +('D09', '04M15T', 'GHM', 9), +('D09', '04M15V', 'GHM', 9), +('D09', '04M15W', 'GHM', 9), +('D09', '04M161', 'GHM', 9), +('D09', '04M162', 'GHM', 9), +('D09', '04M163', 'GHM', 9), +('D09', '04M164', 'GHM', 9), +('D09', '04M16T', 'GHM', 9), +('D09', '04M16V', 'GHM', 9), +('D09', '04M16W', 'GHM', 9), +('D09', '04M171', 'GHM', 9), +('D09', '04M172', 'GHM', 9), +('D09', '04M173', 'GHM', 9), +('D09', '04M174', 'GHM', 9), +('D09', '04M17T', 'GHM', 9), +('D09', '04M17V', 'GHM', 9), +('D09', '04M17W', 'GHM', 9), +('D09', '04M181', 'GHM', 9), +('D09', '04M182', 'GHM', 9), +('D09', '04M183', 'GHM', 9), +('D09', '04M184', 'GHM', 9), +('D09', '04M18T', 'GHM', 9), +('D09', '04M191', 'GHM', 9), +('D09', '04M192', 'GHM', 9), +('D09', '04M193', 'GHM', 9), +('D09', '04M194', 'GHM', 9), +('D09', '04M19T', 'GHM', 9), +('D09', '04M201', 'GHM', 9), +('D09', '04M202', 'GHM', 9), +('D09', '04M203', 'GHM', 9), +('D09', '04M204', 'GHM', 9), +('D09', '04M20T', 'GHM', 9), +('D09', '04M211', 'GHM', 9), +('D09', '04M212', 'GHM', 9), +('D09', '04M213', 'GHM', 9), +('D09', '04M214', 'GHM', 9), +('D09', '04M22Z', 'GHM', 9), +('D09', '04M23T', 'GHM', 9), +('D09', '04M23Z', 'GHM', 9), +('D09', '04M24E', 'GHM', 9), +('D09', '04M251', 'GHM', 9), +('D09', '04M252', 'GHM', 9), +('D09', '04M253', 'GHM', 9), +('D09', '04M254', 'GHM', 9), +('D09', '04M25T', 'GHM', 9), +('D09', '04M261', 'GHM', 9), +('D09', '04M262', 'GHM', 9), +('D09', '04M263', 'GHM', 9), +('D09', '04M264', 'GHM', 9), +('D09', '04M26T', 'GHM', 9), +('D09', '04M271', 'GHM', 9), +('D09', '04M272', 'GHM', 9), +('D09', '04M273', 'GHM', 9), +('D09', '04M274', 'GHM', 9), +('D10', '03C03Z', 'GHM', 9), +('D10', '03C04Z', 'GHM', 9), +('D10', '03C051', 'GHM', 9), +('D10', '03C052', 'GHM', 9), +('D10', '03C053', 'GHM', 9), +('D10', '03C054', 'GHM', 9), +('D10', '03C05T', 'GHM', 9), +('D10', '03C05Z', 'GHM', 9), +('D10', '03C061', 'GHM', 9), +('D10', '03C062', 'GHM', 9), +('D10', '03C063', 'GHM', 9), +('D10', '03C064', 'GHM', 9), +('D10', '03C06J', 'GHM', 9), +('D10', '03C06Z', 'GHM', 9), +('D10', '03C071', 'GHM', 9), +('D10', '03C072', 'GHM', 9), +('D10', '03C073', 'GHM', 9), +('D10', '03C074', 'GHM', 9), +('D10', '03C07J', 'GHM', 9), +('D10', '03C07V', 'GHM', 9), +('D10', '03C07W', 'GHM', 9), +('D10', '03C091', 'GHM', 9), +('D10', '03C092', 'GHM', 9), +('D10', '03C093', 'GHM', 9), +('D10', '03C094', 'GHM', 9), +('D10', '03C09J', 'GHM', 9), +('D10', '03C09Z', 'GHM', 9), +('D10', '03C101', 'GHM', 9), +('D10', '03C102', 'GHM', 9), +('D10', '03C103', 'GHM', 9), +('D10', '03C104', 'GHM', 9), +('D10', '03C10Z', 'GHM', 9), +('D10', '03C111', 'GHM', 9), +('D10', '03C112', 'GHM', 9), +('D10', '03C113', 'GHM', 9), +('D10', '03C114', 'GHM', 9), +('D10', '03C11Z', 'GHM', 9), +('D10', '03C121', 'GHM', 9), +('D10', '03C122', 'GHM', 9), +('D10', '03C123', 'GHM', 9), +('D10', '03C124', 'GHM', 9), +('D10', '03C12Z', 'GHM', 9), +('D10', '03C131', 'GHM', 9), +('D10', '03C132', 'GHM', 9), +('D10', '03C133', 'GHM', 9), +('D10', '03C134', 'GHM', 9), +('D10', '03C13Z', 'GHM', 9), +('D10', '03C141', 'GHM', 9), +('D10', '03C142', 'GHM', 9), +('D10', '03C143', 'GHM', 9), +('D10', '03C144', 'GHM', 9), +('D10', '03C14J', 'GHM', 9), +('D10', '03C14Z', 'GHM', 9), +('D10', '03C151', 'GHM', 9), +('D10', '03C152', 'GHM', 9), +('D10', '03C153', 'GHM', 9), +('D10', '03C154', 'GHM', 9), +('D10', '03C15J', 'GHM', 9), +('D10', '03C15Z', 'GHM', 9), +('D10', '03C161', 'GHM', 9), +('D10', '03C162', 'GHM', 9), +('D10', '03C163', 'GHM', 9), +('D10', '03C164', 'GHM', 9), +('D10', '03C16J', 'GHM', 9), +('D10', '03C16V', 'GHM', 9), +('D10', '03C16W', 'GHM', 9), +('D10', '03C171', 'GHM', 9), +('D10', '03C172', 'GHM', 9), +('D10', '03C173', 'GHM', 9), +('D10', '03C174', 'GHM', 9), +('D10', '03C17J', 'GHM', 9), +('D10', '03C17Z', 'GHM', 9), +('D10', '03C181', 'GHM', 9), +('D10', '03C182', 'GHM', 9), +('D10', '03C183', 'GHM', 9), +('D10', '03C184', 'GHM', 9), +('D10', '03C18Z', 'GHM', 9), +('D10', '03C191', 'GHM', 9), +('D10', '03C192', 'GHM', 9), +('D10', '03C193', 'GHM', 9), +('D10', '03C194', 'GHM', 9), +('D10', '03C19J', 'GHM', 9), +('D10', '03C19Z', 'GHM', 9), +('D10', '03C201', 'GHM', 9), +('D10', '03C202', 'GHM', 9), +('D10', '03C203', 'GHM', 9), +('D10', '03C204', 'GHM', 9), +('D10', '03C20J', 'GHM', 9), +('D10', '03C20Z', 'GHM', 9), +('D10', '03C211', 'GHM', 9), +('D10', '03C212', 'GHM', 9), +('D10', '03C213', 'GHM', 9), +('D10', '03C214', 'GHM', 9), +('D10', '03C21J', 'GHM', 9), +('D10', '03C21Z', 'GHM', 9), +('D10', '03C22J', 'GHM', 9), +('D10', '03C241', 'GHM', 9), +('D10', '03C242', 'GHM', 9), +('D10', '03C243', 'GHM', 9), +('D10', '03C244', 'GHM', 9), +('D10', '03C24J', 'GHM', 9), +('D10', '03C251', 'GHM', 9), +('D10', '03C252', 'GHM', 9), +('D10', '03C253', 'GHM', 9), +('D10', '03C254', 'GHM', 9), +('D10', '03C261', 'GHM', 9), +('D10', '03C262', 'GHM', 9), +('D10', '03C263', 'GHM', 9), +('D10', '03C264', 'GHM', 9), +('D10', '03C27J', 'GHM', 9), +('D10', '03C28J', 'GHM', 9), +('D10', '03C291', 'GHM', 9), +('D10', '03C292', 'GHM', 9), +('D10', '03C293', 'GHM', 9), +('D10', '03C294', 'GHM', 9), +('D10', '03C29J', 'GHM', 9), +('D10', '03C301', 'GHM', 9), +('D10', '03C302', 'GHM', 9), +('D10', '03C303', 'GHM', 9), +('D10', '03C304', 'GHM', 9), +('D10', '03C30J', 'GHM', 9), +('D10', '03K021', 'GHM', 9), +('D10', '03K022', 'GHM', 9), +('D10', '03K023', 'GHM', 9), +('D10', '03K024', 'GHM', 9), +('D10', '03K02J', 'GHM', 9), +('D10', '03K02Z', 'GHM', 9), +('D10', '03K03J', 'GHM', 9), +('D10', '03K04J', 'GHM', 9), +('D10', '03M021', 'GHM', 9), +('D10', '03M022', 'GHM', 9), +('D10', '03M023', 'GHM', 9), +('D10', '03M024', 'GHM', 9), +('D10', '03M02T', 'GHM', 9), +('D10', '03M02Z', 'GHM', 9), +('D10', '03M031', 'GHM', 9), +('D10', '03M032', 'GHM', 9), +('D10', '03M033', 'GHM', 9), +('D10', '03M034', 'GHM', 9), +('D10', '03M03T', 'GHM', 9), +('D10', '03M03Z', 'GHM', 9), +('D10', '03M041', 'GHM', 9), +('D10', '03M042', 'GHM', 9), +('D10', '03M043', 'GHM', 9), +('D10', '03M044', 'GHM', 9), +('D10', '03M04T', 'GHM', 9), +('D10', '03M04V', 'GHM', 9), +('D10', '03M04W', 'GHM', 9), +('D10', '03M051', 'GHM', 9), +('D10', '03M052', 'GHM', 9), +('D10', '03M053', 'GHM', 9), +('D10', '03M054', 'GHM', 9), +('D10', '03M05T', 'GHM', 9), +('D10', '03M05Z', 'GHM', 9), +('D10', '03M061', 'GHM', 9), +('D10', '03M062', 'GHM', 9), +('D10', '03M063', 'GHM', 9), +('D10', '03M064', 'GHM', 9), +('D10', '03M06T', 'GHM', 9), +('D10', '03M06Z', 'GHM', 9), +('D10', '03M071', 'GHM', 9), +('D10', '03M072', 'GHM', 9), +('D10', '03M073', 'GHM', 9), +('D10', '03M074', 'GHM', 9), +('D10', '03M07T', 'GHM', 9), +('D10', '03M07V', 'GHM', 9), +('D10', '03M07W', 'GHM', 9), +('D10', '03M081', 'GHM', 9), +('D10', '03M082', 'GHM', 9), +('D10', '03M083', 'GHM', 9), +('D10', '03M084', 'GHM', 9), +('D10', '03M08T', 'GHM', 9), +('D10', '03M08Z', 'GHM', 9), +('D10', '03M091', 'GHM', 9), +('D10', '03M092', 'GHM', 9), +('D10', '03M093', 'GHM', 9), +('D10', '03M094', 'GHM', 9), +('D10', '03M09T', 'GHM', 9), +('D10', '03M09V', 'GHM', 9), +('D10', '03M09W', 'GHM', 9), +('D10', '03M101', 'GHM', 9), +('D10', '03M102', 'GHM', 9), +('D10', '03M103', 'GHM', 9), +('D10', '03M104', 'GHM', 9), +('D10', '03M10T', 'GHM', 9), +('D10', '03M10Z', 'GHM', 9), +('D10', '03M111', 'GHM', 9), +('D10', '03M112', 'GHM', 9), +('D10', '03M113', 'GHM', 9), +('D10', '03M114', 'GHM', 9), +('D10', '03M11T', 'GHM', 9), +('D10', '03M11V', 'GHM', 9), +('D10', '03M11W', 'GHM', 9), +('D10', '03M121', 'GHM', 9), +('D10', '03M122', 'GHM', 9), +('D10', '03M123', 'GHM', 9), +('D10', '03M124', 'GHM', 9), +('D10', '03M131', 'GHM', 9), +('D10', '03M132', 'GHM', 9), +('D10', '03M133', 'GHM', 9), +('D10', '03M134', 'GHM', 9), +('D10', '03M14Z', 'GHM', 9), +('D10', '03M15T', 'GHM', 9), +('D10', '03M15Z', 'GHM', 9), +('D10', '08C281', 'GHM', 9), +('D10', '08C282', 'GHM', 9), +('D10', '08C283', 'GHM', 9), +('D10', '08C284', 'GHM', 9), +('D10', '08C28J', 'GHM', 9), +('D10', '08C28Z', 'GHM', 9), +('D11', '02C021', 'GHM', 9), +('D11', '02C022', 'GHM', 9), +('D11', '02C023', 'GHM', 9), +('D11', '02C024', 'GHM', 9), +('D11', '02C02J', 'GHM', 9), +('D11', '02C02V', 'GHM', 9), +('D11', '02C02W', 'GHM', 9), +('D11', '02C031', 'GHM', 9), +('D11', '02C032', 'GHM', 9), +('D11', '02C033', 'GHM', 9), +('D11', '02C034', 'GHM', 9), +('D11', '02C03J', 'GHM', 9), +('D11', '02C03Z', 'GHM', 9), +('D11', '02C04Z', 'GHM', 9), +('D11', '02C051', 'GHM', 9), +('D11', '02C052', 'GHM', 9), +('D11', '02C053', 'GHM', 9), +('D11', '02C054', 'GHM', 9), +('D11', '02C05J', 'GHM', 9), +('D11', '02C05Z', 'GHM', 9), +('D11', '02C061', 'GHM', 9), +('D11', '02C062', 'GHM', 9), +('D11', '02C063', 'GHM', 9), +('D11', '02C064', 'GHM', 9), +('D11', '02C06J', 'GHM', 9), +('D11', '02C06Z', 'GHM', 9), +('D11', '02C071', 'GHM', 9), +('D11', '02C072', 'GHM', 9), +('D11', '02C073', 'GHM', 9), +('D11', '02C074', 'GHM', 9), +('D11', '02C07J', 'GHM', 9), +('D11', '02C07Z', 'GHM', 9), +('D11', '02C081', 'GHM', 9), +('D11', '02C082', 'GHM', 9), +('D11', '02C083', 'GHM', 9), +('D11', '02C084', 'GHM', 9), +('D11', '02C08J', 'GHM', 9), +('D11', '02C08V', 'GHM', 9), +('D11', '02C08W', 'GHM', 9), +('D11', '02C091', 'GHM', 9), +('D11', '02C092', 'GHM', 9), +('D11', '02C093', 'GHM', 9), +('D11', '02C094', 'GHM', 9), +('D11', '02C09J', 'GHM', 9), +('D11', '02C09Z', 'GHM', 9), +('D11', '02C101', 'GHM', 9), +('D11', '02C102', 'GHM', 9), +('D11', '02C103', 'GHM', 9), +('D11', '02C104', 'GHM', 9), +('D11', '02C10J', 'GHM', 9), +('D11', '02C111', 'GHM', 9), +('D11', '02C112', 'GHM', 9), +('D11', '02C113', 'GHM', 9), +('D11', '02C114', 'GHM', 9), +('D11', '02C11J', 'GHM', 9), +('D11', '02C121', 'GHM', 9), +('D11', '02C122', 'GHM', 9), +('D11', '02C123', 'GHM', 9), +('D11', '02C124', 'GHM', 9), +('D11', '02C12J', 'GHM', 9), +('D11', '02C131', 'GHM', 9), +('D11', '02C132', 'GHM', 9), +('D11', '02C133', 'GHM', 9), +('D11', '02C134', 'GHM', 9), +('D11', '02C13J', 'GHM', 9), +('D11', '02M021', 'GHM', 9), +('D11', '02M022', 'GHM', 9), +('D11', '02M023', 'GHM', 9), +('D11', '02M024', 'GHM', 9), +('D11', '02M02Z', 'GHM', 9), +('D11', '02M031', 'GHM', 9), +('D11', '02M032', 'GHM', 9), +('D11', '02M033', 'GHM', 9), +('D11', '02M034', 'GHM', 9), +('D11', '02M03Z', 'GHM', 9), +('D11', '02M041', 'GHM', 9), +('D11', '02M042', 'GHM', 9), +('D11', '02M043', 'GHM', 9), +('D11', '02M044', 'GHM', 9), +('D11', '02M04T', 'GHM', 9), +('D11', '02M04Z', 'GHM', 9), +('D11', '02M051', 'GHM', 9), +('D11', '02M052', 'GHM', 9), +('D11', '02M053', 'GHM', 9), +('D11', '02M054', 'GHM', 9), +('D11', '02M05T', 'GHM', 9), +('D11', '02M05Z', 'GHM', 9), +('D11', '02M071', 'GHM', 9), +('D11', '02M072', 'GHM', 9), +('D11', '02M073', 'GHM', 9), +('D11', '02M074', 'GHM', 9), +('D11', '02M07T', 'GHM', 9), +('D11', '02M081', 'GHM', 9), +('D11', '02M082', 'GHM', 9), +('D11', '02M083', 'GHM', 9), +('D11', '02M084', 'GHM', 9), +('D11', '02M08T', 'GHM', 9), +('D11', '02M09Z', 'GHM', 9), +('D11', '02M10T', 'GHM', 9), +('D11', '02M10Z', 'GHM', 9), +('D12', '09C041', 'GHM', 9), +('D12', '09C042', 'GHM', 9), +('D12', '09C043', 'GHM', 9), +('D12', '09C044', 'GHM', 9), +('D12', '09C04V', 'GHM', 9), +('D12', '09C04W', 'GHM', 9), +('D12', '09C051', 'GHM', 9), +('D12', '09C052', 'GHM', 9), +('D12', '09C053', 'GHM', 9), +('D12', '09C054', 'GHM', 9), +('D12', '09C05J', 'GHM', 9), +('D12', '09C05V', 'GHM', 9), +('D12', '09C05W', 'GHM', 9), +('D12', '09C061', 'GHM', 9), +('D12', '09C062', 'GHM', 9), +('D12', '09C063', 'GHM', 9), +('D12', '09C064', 'GHM', 9), +('D12', '09C06T', 'GHM', 9), +('D12', '09C06Z', 'GHM', 9), +('D12', '09C071', 'GHM', 9), +('D12', '09C072', 'GHM', 9), +('D12', '09C073', 'GHM', 9), +('D12', '09C074', 'GHM', 9), +('D12', '09C07J', 'GHM', 9), +('D12', '09C07Z', 'GHM', 9), +('D12', '09C111', 'GHM', 9), +('D12', '09C112', 'GHM', 9), +('D12', '09C113', 'GHM', 9), +('D12', '09C114', 'GHM', 9), +('D12', '09M091', 'GHM', 9), +('D12', '09M092', 'GHM', 9), +('D12', '09M093', 'GHM', 9), +('D12', '09M094', 'GHM', 9), +('D12', '09M09T', 'GHM', 9), +('D12', '09M09Z', 'GHM', 9), +('D12', '09M101', 'GHM', 9), +('D12', '09M102', 'GHM', 9), +('D12', '09M103', 'GHM', 9), +('D12', '09M104', 'GHM', 9), +('D12', '09M10T', 'GHM', 9), +('D12', '09M10V', 'GHM', 9), +('D12', '09M10W', 'GHM', 9), +('D12', '09M13Z', 'GHM', 9), +('D12', '09M15Z', 'GHM', 9), +('D12', '13C031', 'GHM', 9), +('D12', '13C032', 'GHM', 9), +('D12', '13C033', 'GHM', 9), +('D12', '13C034', 'GHM', 9), +('D12', '13C03V', 'GHM', 9), +('D12', '13C03W', 'GHM', 9), +('D12', '13C041', 'GHM', 9), +('D12', '13C042', 'GHM', 9), +('D12', '13C043', 'GHM', 9), +('D12', '13C044', 'GHM', 9), +('D12', '13C04J', 'GHM', 9), +('D12', '13C04V', 'GHM', 9), +('D12', '13C04W', 'GHM', 9), +('D12', '13C051', 'GHM', 9), +('D12', '13C052', 'GHM', 9), +('D12', '13C053', 'GHM', 9), +('D12', '13C054', 'GHM', 9), +('D12', '13C05Z', 'GHM', 9), +('D12', '13C061', 'GHM', 9), +('D12', '13C062', 'GHM', 9), +('D12', '13C063', 'GHM', 9), +('D12', '13C064', 'GHM', 9), +('D12', '13C06J', 'GHM', 9), +('D12', '13C06Z', 'GHM', 9), +('D12', '13C071', 'GHM', 9), +('D12', '13C072', 'GHM', 9), +('D12', '13C073', 'GHM', 9), +('D12', '13C074', 'GHM', 9), +('D12', '13C07J', 'GHM', 9), +('D12', '13C07V', 'GHM', 9), +('D12', '13C07W', 'GHM', 9), +('D12', '13C081', 'GHM', 9), +('D12', '13C082', 'GHM', 9), +('D12', '13C083', 'GHM', 9), +('D12', '13C084', 'GHM', 9), +('D12', '13C08J', 'GHM', 9), +('D12', '13C08V', 'GHM', 9), +('D12', '13C08W', 'GHM', 9), +('D12', '13C091', 'GHM', 9), +('D12', '13C092', 'GHM', 9), +('D12', '13C093', 'GHM', 9), +('D12', '13C094', 'GHM', 9), +('D12', '13C09J', 'GHM', 9), +('D12', '13C09T', 'GHM', 9), +('D12', '13C09Z', 'GHM', 9), +('D12', '13C101', 'GHM', 9), +('D12', '13C102', 'GHM', 9), +('D12', '13C103', 'GHM', 9), +('D12', '13C104', 'GHM', 9), +('D12', '13C10J', 'GHM', 9), +('D12', '13C10T', 'GHM', 9), +('D12', '13C10Z', 'GHM', 9), +('D12', '13C111', 'GHM', 9), +('D12', '13C112', 'GHM', 9), +('D12', '13C113', 'GHM', 9), +('D12', '13C114', 'GHM', 9), +('D12', '13C11J', 'GHM', 9), +('D12', '13C11Z', 'GHM', 9), +('D12', '13C121', 'GHM', 9), +('D12', '13C122', 'GHM', 9), +('D12', '13C123', 'GHM', 9), +('D12', '13C124', 'GHM', 9), +('D12', '13C12J', 'GHM', 9), +('D12', '13C12Z', 'GHM', 9), +('D12', '13C131', 'GHM', 9), +('D12', '13C132', 'GHM', 9), +('D12', '13C133', 'GHM', 9), +('D12', '13C134', 'GHM', 9), +('D12', '13C13T', 'GHM', 9), +('D12', '13C13Z', 'GHM', 9), +('D12', '13C141', 'GHM', 9), +('D12', '13C142', 'GHM', 9), +('D12', '13C143', 'GHM', 9), +('D12', '13C144', 'GHM', 9), +('D12', '13C14V', 'GHM', 9), +('D12', '13C14W', 'GHM', 9), +('D12', '13C151', 'GHM', 9), +('D12', '13C152', 'GHM', 9), +('D12', '13C153', 'GHM', 9), +('D12', '13C154', 'GHM', 9), +('D12', '13C15V', 'GHM', 9), +('D12', '13C15W', 'GHM', 9), +('D12', '13C16J', 'GHM', 9), +('D12', '13C171', 'GHM', 9), +('D12', '13C172', 'GHM', 9), +('D12', '13C173', 'GHM', 9), +('D12', '13C174', 'GHM', 9), +('D12', '13C17J', 'GHM', 9), +('D12', '13C181', 'GHM', 9), +('D12', '13C182', 'GHM', 9), +('D12', '13C183', 'GHM', 9), +('D12', '13C184', 'GHM', 9), +('D12', '13C191', 'GHM', 9), +('D12', '13C192', 'GHM', 9), +('D12', '13C193', 'GHM', 9), +('D12', '13C194', 'GHM', 9), +('D12', '13C19J', 'GHM', 9), +('D12', '13C201', 'GHM', 9), +('D12', '13C202', 'GHM', 9), +('D12', '13C203', 'GHM', 9), +('D12', '13C204', 'GHM', 9), +('D12', '13C20J', 'GHM', 9), +('D12', '13M02Z', 'GHM', 9), +('D12', '13M031', 'GHM', 9), +('D12', '13M032', 'GHM', 9), +('D12', '13M033', 'GHM', 9), +('D12', '13M034', 'GHM', 9), +('D12', '13M03T', 'GHM', 9), +('D12', '13M03V', 'GHM', 9), +('D12', '13M03W', 'GHM', 9), +('D12', '13M041', 'GHM', 9), +('D12', '13M042', 'GHM', 9), +('D12', '13M043', 'GHM', 9), +('D12', '13M044', 'GHM', 9), +('D12', '13M04T', 'GHM', 9), +('D12', '13M04V', 'GHM', 9), +('D12', '13M04W', 'GHM', 9), +('D12', '13M051', 'GHM', 9), +('D12', '13M052', 'GHM', 9), +('D12', '13M053', 'GHM', 9), +('D12', '13M054', 'GHM', 9), +('D12', '13M061', 'GHM', 9), +('D12', '13M062', 'GHM', 9), +('D12', '13M063', 'GHM', 9), +('D12', '13M064', 'GHM', 9), +('D12', '13M06T', 'GHM', 9), +('D12', '13M071', 'GHM', 9), +('D12', '13M072', 'GHM', 9), +('D12', '13M073', 'GHM', 9), +('D12', '13M074', 'GHM', 9), +('D12', '13M081', 'GHM', 9), +('D12', '13M082', 'GHM', 9), +('D12', '13M083', 'GHM', 9), +('D12', '13M084', 'GHM', 9), +('D12', '13M09Z', 'GHM', 9), +('D12', '13M10Z', 'GHM', 9), +('D13', '14C02A', 'GHM', 9), +('D13', '14C02B', 'GHM', 9), +('D13', '14C02C', 'GHM', 9), +('D13', '14C03A', 'GHM', 9), +('D13', '14C03B', 'GHM', 9), +('D13', '14C03C', 'GHM', 9), +('D13', '14C03D', 'GHM', 9), +('D13', '14C03Z', 'GHM', 9), +('D13', '14C04T', 'GHM', 9), +('D13', '14C04Z', 'GHM', 9), +('D13', '14C05J', 'GHM', 9), +('D13', '14C05Z', 'GHM', 9), +('D13', '14C06A', 'GHM', 9), +('D13', '14C06B', 'GHM', 9), +('D13', '14C06C', 'GHM', 9), +('D13', '14C06D', 'GHM', 9), +('D13', '14C07A', 'GHM', 9), +('D13', '14C07B', 'GHM', 9), +('D13', '14C07C', 'GHM', 9), +('D13', '14C07D', 'GHM', 9), +('D13', '14C08A', 'GHM', 9), +('D13', '14C08B', 'GHM', 9), +('D13', '14C08C', 'GHM', 9), +('D13', '14C08D', 'GHM', 9), +('D13', '14C09A', 'GHM', 9), +('D13', '14C09B', 'GHM', 9), +('D13', '14C10T', 'GHM', 9), +('D13', '14C10Z', 'GHM', 9), +('D13', '14M02A', 'GHM', 9), +('D13', '14M02B', 'GHM', 9), +('D13', '14M02T', 'GHM', 9), +('D13', '14M02Z', 'GHM', 9), +('D13', '14M03A', 'GHM', 9), +('D13', '14M03B', 'GHM', 9), +('D13', '14M03C', 'GHM', 9), +('D13', '14M03D', 'GHM', 9), +('D13', '14M03T', 'GHM', 9), +('D13', '14Z02A', 'GHM', 9), +('D13', '14Z02B', 'GHM', 9), +('D13', '14Z02C', 'GHM', 9), +('D13', '14Z02T', 'GHM', 9), +('D13', '14Z03A', 'GHM', 9), +('D13', '14Z03B', 'GHM', 9), +('D13', '14Z03T', 'GHM', 9), +('D13', '14Z04T', 'GHM', 9), +('D13', '14Z04Z', 'GHM', 9), +('D13', '14Z05Z', 'GHM', 9), +('D13', '14Z06T', 'GHM', 9), +('D13', '14Z06Z', 'GHM', 9), +('D13', '14Z07Z', 'GHM', 9), +('D13', '14Z08Z', 'GHM', 9), +('D13', '14Z09Z', 'GHM', 9), +('D13', '14Z10A', 'GHM', 9), +('D13', '14Z10B', 'GHM', 9), +('D13', '14Z10T', 'GHM', 9), +('D13', '14Z11A', 'GHM', 9), +('D13', '14Z11B', 'GHM', 9), +('D13', '14Z12A', 'GHM', 9), +('D13', '14Z12B', 'GHM', 9), +('D13', '14Z13A', 'GHM', 9), +('D13', '14Z13B', 'GHM', 9), +('D13', '14Z13C', 'GHM', 9), +('D13', '14Z13D', 'GHM', 9), +('D13', '14Z13T', 'GHM', 9), +('D13', '14Z14A', 'GHM', 9), +('D13', '14Z14B', 'GHM', 9), +('D13', '14Z14C', 'GHM', 9), +('D13', '14Z14D', 'GHM', 9), +('D13', '14Z14T', 'GHM', 9), +('D13', '14Z15Z', 'GHM', 9), +('D13', '14Z16T', 'GHM', 9), +('D13', '14Z16Z', 'GHM', 9), +('D14', '15C02A', 'GHM', 9), +('D14', '15C02B', 'GHM', 9), +('D14', '15C02Z', 'GHM', 9), +('D14', '15C03A', 'GHM', 9), +('D14', '15C03B', 'GHM', 9), +('D14', '15C03Z', 'GHM', 9), +('D14', '15C04A', 'GHM', 9), +('D14', '15C04B', 'GHM', 9), +('D14', '15C04Z', 'GHM', 9), +('D14', '15C05A', 'GHM', 9), +('D14', '15C05B', 'GHM', 9), +('D14', '15C05Z', 'GHM', 9), +('D14', '15C06A', 'GHM', 9), +('D14', '15C06B', 'GHM', 9), +('D14', '15C06Z', 'GHM', 9), +('D14', '15M02Z', 'GHM', 9), +('D14', '15M03E', 'GHM', 9), +('D14', '15M04E', 'GHM', 9), +('D14', '15M05A', 'GHM', 9), +('D14', '15M05B', 'GHM', 9), +('D14', '15M05C', 'GHM', 9), +('D14', '15M05D', 'GHM', 9), +('D14', '15M06A', 'GHM', 9), +('D14', '15M06B', 'GHM', 9), +('D14', '15M06C', 'GHM', 9), +('D14', '15M06D', 'GHM', 9), +('D14', '15M07A', 'GHM', 9), +('D14', '15M07B', 'GHM', 9), +('D14', '15M07C', 'GHM', 9), +('D14', '15M08A', 'GHM', 9), +('D14', '15M08B', 'GHM', 9), +('D14', '15M08C', 'GHM', 9), +('D14', '15M09A', 'GHM', 9), +('D14', '15M09B', 'GHM', 9), +('D14', '15M09C', 'GHM', 9), +('D14', '15M10A', 'GHM', 9), +('D14', '15M10B', 'GHM', 9), +('D14', '15M10C', 'GHM', 9), +('D14', '15M11A', 'GHM', 9), +('D14', '15M11B', 'GHM', 9), +('D14', '15M11C', 'GHM', 9), +('D14', '15M12A', 'GHM', 9), +('D14', '15M12B', 'GHM', 9), +('D14', '15M13A', 'GHM', 9), +('D14', '15M13B', 'GHM', 9), +('D14', '15M14A', 'GHM', 9), +('D14', '15M14B', 'GHM', 9), +('D14', '15Z02T', 'GHM', 9), +('D14', '15Z02Z', 'GHM', 9), +('D14', '15Z03Z', 'GHM', 9), +('D14', '15Z04E', 'GHM', 9), +('D14', '15Z05A', 'GHM', 9), +('D14', '15Z05B', 'GHM', 9), +('D14', '15Z05C', 'GHM', 9), +('D14', '15Z05D', 'GHM', 9), +('D14', '15Z06A', 'GHM', 9), +('D14', '15Z06B', 'GHM', 9), +('D14', '15Z06C', 'GHM', 9), +('D14', '15Z06D', 'GHM', 9), +('D14', '15Z07A', 'GHM', 9), +('D14', '15Z07B', 'GHM', 9), +('D14', '15Z07C', 'GHM', 9), +('D14', '15Z08A', 'GHM', 9), +('D14', '15Z08E', 'GHM', 9), +('D14', '15Z08Z', 'GHM', 9), +('D14', '15Z09A', 'GHM', 9), +('D14', '15Z09E', 'GHM', 9), +('D14', '15Z09Z', 'GHM', 9), +('D14', '15Z10E', 'GHM', 9), +('D15', '10C031', 'GHM', 9), +('D15', '10C032', 'GHM', 9), +('D15', '10C033', 'GHM', 9), +('D15', '10C034', 'GHM', 9), +('D15', '10C03Z', 'GHM', 9), +('D15', '11C021', 'GHM', 9), +('D15', '11C022', 'GHM', 9), +('D15', '11C023', 'GHM', 9), +('D15', '11C024', 'GHM', 9), +('D15', '11C02V', 'GHM', 9), +('D15', '11C02W', 'GHM', 9), +('D15', '11C031', 'GHM', 9), +('D15', '11C032', 'GHM', 9), +('D15', '11C033', 'GHM', 9), +('D15', '11C034', 'GHM', 9), +('D15', '11C03V', 'GHM', 9), +('D15', '11C03W', 'GHM', 9), +('D15', '11C041', 'GHM', 9), +('D15', '11C042', 'GHM', 9), +('D15', '11C043', 'GHM', 9), +('D15', '11C044', 'GHM', 9), +('D15', '11C04J', 'GHM', 9), +('D15', '11C04Z', 'GHM', 9), +('D15', '11C051', 'GHM', 9), +('D15', '11C052', 'GHM', 9), +('D15', '11C053', 'GHM', 9), +('D15', '11C054', 'GHM', 9), +('D15', '11C05J', 'GHM', 9), +('D15', '11C05V', 'GHM', 9), +('D15', '11C05W', 'GHM', 9), +('D15', '11C061', 'GHM', 9), +('D15', '11C062', 'GHM', 9), +('D15', '11C063', 'GHM', 9), +('D15', '11C064', 'GHM', 9), +('D15', '11C06Z', 'GHM', 9), +('D15', '11C071', 'GHM', 9), +('D15', '11C072', 'GHM', 9), +('D15', '11C073', 'GHM', 9), +('D15', '11C074', 'GHM', 9), +('D15', '11C07J', 'GHM', 9), +('D15', '11C07Z', 'GHM', 9), +('D15', '11C081', 'GHM', 9), +('D15', '11C082', 'GHM', 9), +('D15', '11C083', 'GHM', 9), +('D15', '11C084', 'GHM', 9), +('D15', '11C08T', 'GHM', 9), +('D15', '11C08V', 'GHM', 9), +('D15', '11C08W', 'GHM', 9), +('D15', '11C101', 'GHM', 9), +('D15', '11C102', 'GHM', 9), +('D15', '11C103', 'GHM', 9), +('D15', '11C104', 'GHM', 9), +('D15', '11C10J', 'GHM', 9), +('D15', '11C111', 'GHM', 9), +('D15', '11C112', 'GHM', 9), +('D15', '11C113', 'GHM', 9), +('D15', '11C114', 'GHM', 9), +('D15', '11C11J', 'GHM', 9), +('D15', '11C121', 'GHM', 9), +('D15', '11C122', 'GHM', 9), +('D15', '11C123', 'GHM', 9), +('D15', '11C124', 'GHM', 9), +('D15', '11C12J', 'GHM', 9), +('D15', '11C131', 'GHM', 9), +('D15', '11C132', 'GHM', 9), +('D15', '11C133', 'GHM', 9), +('D15', '11C134', 'GHM', 9), +('D15', '11C13J', 'GHM', 9), +('D15', '11K021', 'GHM', 9), +('D15', '11K022', 'GHM', 9), +('D15', '11K023', 'GHM', 9), +('D15', '11K024', 'GHM', 9), +('D15', '11K02J', 'GHM', 9), +('D15', '11K02V', 'GHM', 9), +('D15', '11K02W', 'GHM', 9), +('D15', '11K03Z', 'GHM', 9), +('D15', '11K04Z', 'GHM', 9), +('D15', '11K05Z', 'GHM', 9), +('D15', '11K06Z', 'GHM', 9), +('D15', '11K08J', 'GHM', 9), +('D15', '11M021', 'GHM', 9), +('D15', '11M022', 'GHM', 9), +('D15', '11M023', 'GHM', 9), +('D15', '11M024', 'GHM', 9), +('D15', '11M02T', 'GHM', 9), +('D15', '11M02V', 'GHM', 9), +('D15', '11M02W', 'GHM', 9), +('D15', '11M031', 'GHM', 9), +('D15', '11M032', 'GHM', 9), +('D15', '11M033', 'GHM', 9), +('D15', '11M034', 'GHM', 9), +('D15', '11M03T', 'GHM', 9), +('D15', '11M03V', 'GHM', 9), +('D15', '11M03W', 'GHM', 9), +('D15', '11M041', 'GHM', 9), +('D15', '11M042', 'GHM', 9), +('D15', '11M043', 'GHM', 9), +('D15', '11M044', 'GHM', 9), +('D15', '11M04T', 'GHM', 9), +('D15', '11M04V', 'GHM', 9), +('D15', '11M04W', 'GHM', 9), +('D15', '11M061', 'GHM', 9), +('D15', '11M062', 'GHM', 9), +('D15', '11M063', 'GHM', 9), +('D15', '11M064', 'GHM', 9), +('D15', '11M06T', 'GHM', 9), +('D15', '11M06V', 'GHM', 9), +('D15', '11M06W', 'GHM', 9), +('D15', '11M071', 'GHM', 9), +('D15', '11M072', 'GHM', 9), +('D15', '11M073', 'GHM', 9), +('D15', '11M074', 'GHM', 9), +('D15', '11M07T', 'GHM', 9), +('D15', '11M07V', 'GHM', 9), +('D15', '11M07W', 'GHM', 9), +('D15', '11M081', 'GHM', 9), +('D15', '11M082', 'GHM', 9), +('D15', '11M083', 'GHM', 9), +('D15', '11M084', 'GHM', 9), +('D15', '11M08T', 'GHM', 9), +('D15', '11M08Z', 'GHM', 9), +('D15', '11M101', 'GHM', 9), +('D15', '11M102', 'GHM', 9), +('D15', '11M103', 'GHM', 9), +('D15', '11M104', 'GHM', 9), +('D15', '11M10T', 'GHM', 9), +('D15', '11M10V', 'GHM', 9), +('D15', '11M10W', 'GHM', 9), +('D15', '11M111', 'GHM', 9), +('D15', '11M112', 'GHM', 9), +('D15', '11M113', 'GHM', 9), +('D15', '11M114', 'GHM', 9), +('D15', '11M11Z', 'GHM', 9), +('D15', '11M121', 'GHM', 9), +('D15', '11M122', 'GHM', 9), +('D15', '11M123', 'GHM', 9), +('D15', '11M124', 'GHM', 9), +('D15', '11M12T', 'GHM', 9), +('D15', '11M12V', 'GHM', 9), +('D15', '11M12W', 'GHM', 9), +('D15', '11M151', 'GHM', 9), +('D15', '11M152', 'GHM', 9), +('D15', '11M153', 'GHM', 9), +('D15', '11M154', 'GHM', 9), +('D15', '11M15T', 'GHM', 9), +('D15', '11M161', 'GHM', 9), +('D15', '11M162', 'GHM', 9), +('D15', '11M163', 'GHM', 9), +('D15', '11M164', 'GHM', 9), +('D15', '11M16T', 'GHM', 9), +('D15', '11M171', 'GHM', 9), +('D15', '11M172', 'GHM', 9), +('D15', '11M173', 'GHM', 9), +('D15', '11M174', 'GHM', 9), +('D15', '11M18Z', 'GHM', 9), +('D15', '11M19T', 'GHM', 9), +('D15', '11M19Z', 'GHM', 9), +('D15', '11M201', 'GHM', 9), +('D15', '11M202', 'GHM', 9), +('D15', '11M203', 'GHM', 9), +('D15', '11M204', 'GHM', 9), +('D15', '12C02Z', 'GHM', 9), +('D15', '12C031', 'GHM', 9), +('D15', '12C032', 'GHM', 9), +('D15', '12C033', 'GHM', 9), +('D15', '12C034', 'GHM', 9), +('D15', '12C03J', 'GHM', 9), +('D15', '12C03Z', 'GHM', 9), +('D15', '12C041', 'GHM', 9), +('D15', '12C042', 'GHM', 9), +('D15', '12C043', 'GHM', 9), +('D15', '12C044', 'GHM', 9), +('D15', '12C04J', 'GHM', 9), +('D15', '12C04V', 'GHM', 9), +('D15', '12C04W', 'GHM', 9), +('D15', '12C051', 'GHM', 9), +('D15', '12C052', 'GHM', 9), +('D15', '12C053', 'GHM', 9), +('D15', '12C054', 'GHM', 9), +('D15', '12C05Z', 'GHM', 9), +('D15', '12C061', 'GHM', 9), +('D15', '12C062', 'GHM', 9), +('D15', '12C063', 'GHM', 9), +('D15', '12C064', 'GHM', 9), +('D15', '12C06J', 'GHM', 9), +('D15', '12C06Z', 'GHM', 9), +('D15', '12C071', 'GHM', 9), +('D15', '12C072', 'GHM', 9), +('D15', '12C073', 'GHM', 9), +('D15', '12C074', 'GHM', 9), +('D15', '12C07J', 'GHM', 9), +('D15', '12C07Z', 'GHM', 9), +('D15', '12C081', 'GHM', 9), +('D15', '12C082', 'GHM', 9), +('D15', '12C083', 'GHM', 9), +('D15', '12C084', 'GHM', 9), +('D15', '12C08J', 'GHM', 9), +('D15', '12C08Z', 'GHM', 9), +('D15', '12C091', 'GHM', 9), +('D15', '12C092', 'GHM', 9), +('D15', '12C093', 'GHM', 9), +('D15', '12C094', 'GHM', 9), +('D15', '12C09Z', 'GHM', 9), +('D15', '12C101', 'GHM', 9), +('D15', '12C102', 'GHM', 9), +('D15', '12C103', 'GHM', 9), +('D15', '12C104', 'GHM', 9), +('D15', '12C10Z', 'GHM', 9), +('D15', '12C111', 'GHM', 9), +('D15', '12C112', 'GHM', 9), +('D15', '12C113', 'GHM', 9), +('D15', '12C114', 'GHM', 9), +('D15', '12C11Z', 'GHM', 9), +('D15', '12C121', 'GHM', 9), +('D15', '12C122', 'GHM', 9), +('D15', '12C123', 'GHM', 9), +('D15', '12C124', 'GHM', 9), +('D15', '12C12Z', 'GHM', 9), +('D15', '12C131', 'GHM', 9), +('D15', '12C132', 'GHM', 9), +('D15', '12C133', 'GHM', 9), +('D15', '12C134', 'GHM', 9), +('D15', '12C13J', 'GHM', 9), +('D15', '12K02Z', 'GHM', 9), +('D15', '12K03Z', 'GHM', 9), +('D15', '12K06J', 'GHM', 9), +('D15', '12M031', 'GHM', 9), +('D15', '12M032', 'GHM', 9), +('D15', '12M033', 'GHM', 9), +('D15', '12M034', 'GHM', 9), +('D15', '12M03T', 'GHM', 9), +('D15', '12M03V', 'GHM', 9), +('D15', '12M03W', 'GHM', 9), +('D15', '12M041', 'GHM', 9), +('D15', '12M042', 'GHM', 9), +('D15', '12M043', 'GHM', 9), +('D15', '12M044', 'GHM', 9), +('D15', '12M04T', 'GHM', 9), +('D15', '12M04V', 'GHM', 9), +('D15', '12M04W', 'GHM', 9), +('D15', '12M051', 'GHM', 9), +('D15', '12M052', 'GHM', 9), +('D15', '12M053', 'GHM', 9), +('D15', '12M054', 'GHM', 9), +('D15', '12M05T', 'GHM', 9), +('D15', '12M05Z', 'GHM', 9), +('D15', '12M061', 'GHM', 9), +('D15', '12M062', 'GHM', 9), +('D15', '12M063', 'GHM', 9), +('D15', '12M064', 'GHM', 9), +('D15', '12M06T', 'GHM', 9), +('D15', '12M071', 'GHM', 9), +('D15', '12M072', 'GHM', 9), +('D15', '12M073', 'GHM', 9), +('D15', '12M074', 'GHM', 9), +('D15', '12M07T', 'GHM', 9), +('D15', '12M08Z', 'GHM', 9), +('D15', '12M09Z', 'GHM', 9), +('D15', '13K02Z', 'GHM', 9), +('D15', '13K03Z', 'GHM', 9), +('D15', '13K04Z', 'GHM', 9), +('D15', '13K05Z', 'GHM', 9), +('D15', '13K06J', 'GHM', 9), +('D16', '16C031', 'GHM', 9), +('D16', '16C032', 'GHM', 9), +('D16', '16C033', 'GHM', 9), +('D16', '16C034', 'GHM', 9), +('D16', '16C03J', 'GHM', 9), +('D16', '16C03V', 'GHM', 9), +('D16', '16C03W', 'GHM', 9), +('D16', '16M061', 'GHM', 9), +('D16', '16M062', 'GHM', 9), +('D16', '16M063', 'GHM', 9), +('D16', '16M064', 'GHM', 9), +('D16', '16M06T', 'GHM', 9), +('D16', '16M071', 'GHM', 9), +('D16', '16M072', 'GHM', 9), +('D16', '16M073', 'GHM', 9), +('D16', '16M074', 'GHM', 9), +('D16', '16M081', 'GHM', 9), +('D16', '16M082', 'GHM', 9), +('D16', '16M083', 'GHM', 9), +('D16', '16M084', 'GHM', 9), +('D16', '16M091', 'GHM', 9), +('D16', '16M092', 'GHM', 9), +('D16', '16M093', 'GHM', 9), +('D16', '16M094', 'GHM', 9), +('D16', '16M09T', 'GHM', 9), +('D16', '16M101', 'GHM', 9), +('D16', '16M102', 'GHM', 9), +('D16', '16M103', 'GHM', 9), +('D16', '16M104', 'GHM', 9), +('D16', '16M10T', 'GHM', 9), +('D16', '16M111', 'GHM', 9), +('D16', '16M112', 'GHM', 9), +('D16', '16M113', 'GHM', 9), +('D16', '16M114', 'GHM', 9), +('D16', '16M11T', 'GHM', 9), +('D16', '16M121', 'GHM', 9), +('D16', '16M122', 'GHM', 9), +('D16', '16M123', 'GHM', 9), +('D16', '16M124', 'GHM', 9), +('D16', '16M12T', 'GHM', 9), +('D16', '16M131', 'GHM', 9), +('D16', '16M132', 'GHM', 9), +('D16', '16M133', 'GHM', 9), +('D16', '16M134', 'GHM', 9), +('D16', '16M13T', 'GHM', 9), +('D16', '16M14Z', 'GHM', 9), +('D16', '16M15T', 'GHM', 9), +('D16', '16M15Z', 'GHM', 9), +('D16', '16M161', 'GHM', 9), +('D16', '16M162', 'GHM', 9), +('D16', '16M163', 'GHM', 9), +('D16', '16M164', 'GHM', 9), +('D16', '16M16T', 'GHM', 9), +('D16', '16M171', 'GHM', 9), +('D16', '16M172', 'GHM', 9), +('D16', '16M173', 'GHM', 9), +('D16', '16M174', 'GHM', 9), +('D16', '16M17T', 'GHM', 9), +('D16', '16M181', 'GHM', 9), +('D16', '16M182', 'GHM', 9), +('D16', '16M183', 'GHM', 9), +('D16', '16M184', 'GHM', 9), +('D16', '17C021', 'GHM', 9), +('D16', '17C022', 'GHM', 9), +('D16', '17C023', 'GHM', 9), +('D16', '17C024', 'GHM', 9), +('D16', '17C02V', 'GHM', 9), +('D16', '17C02W', 'GHM', 9), +('D16', '17C031', 'GHM', 9), +('D16', '17C032', 'GHM', 9), +('D16', '17C033', 'GHM', 9), +('D16', '17C034', 'GHM', 9), +('D16', '17C03J', 'GHM', 9), +('D16', '17C03V', 'GHM', 9), +('D16', '17C03W', 'GHM', 9), +('D16', '17C041', 'GHM', 9), +('D16', '17C042', 'GHM', 9), +('D16', '17C043', 'GHM', 9), +('D16', '17C044', 'GHM', 9), +('D16', '17C04V', 'GHM', 9), +('D16', '17C04W', 'GHM', 9), +('D16', '17C051', 'GHM', 9), +('D16', '17C052', 'GHM', 9), +('D16', '17C053', 'GHM', 9), +('D16', '17C054', 'GHM', 9), +('D16', '17C05J', 'GHM', 9), +('D16', '17C05V', 'GHM', 9), +('D16', '17C05W', 'GHM', 9), +('D16', '17C061', 'GHM', 9), +('D16', '17C062', 'GHM', 9), +('D16', '17C063', 'GHM', 9), +('D16', '17C064', 'GHM', 9), +('D16', '17C071', 'GHM', 9), +('D16', '17C072', 'GHM', 9), +('D16', '17C073', 'GHM', 9), +('D16', '17C074', 'GHM', 9), +('D16', '17C081', 'GHM', 9), +('D16', '17C082', 'GHM', 9), +('D16', '17C083', 'GHM', 9), +('D16', '17C084', 'GHM', 9), +('D16', '17C08J', 'GHM', 9), +('D16', '17M071', 'GHM', 9), +('D16', '17M072', 'GHM', 9), +('D16', '17M073', 'GHM', 9), +('D16', '17M074', 'GHM', 9), +('D16', '17M07T', 'GHM', 9), +('D16', '17M07V', 'GHM', 9), +('D16', '17M07W', 'GHM', 9), +('D16', '17M081', 'GHM', 9), +('D16', '17M082', 'GHM', 9), +('D16', '17M083', 'GHM', 9), +('D16', '17M084', 'GHM', 9), +('D16', '17M08T', 'GHM', 9), +('D16', '17M08Z', 'GHM', 9), +('D16', '17M091', 'GHM', 9), +('D16', '17M092', 'GHM', 9), +('D16', '17M093', 'GHM', 9), +('D16', '17M094', 'GHM', 9), +('D16', '17M09T', 'GHM', 9), +('D16', '17M09V', 'GHM', 9), +('D16', '17M09W', 'GHM', 9), +('D16', '17M111', 'GHM', 9), +('D16', '17M112', 'GHM', 9), +('D16', '17M113', 'GHM', 9), +('D16', '17M114', 'GHM', 9), +('D16', '17M11T', 'GHM', 9), +('D16', '17M121', 'GHM', 9), +('D16', '17M122', 'GHM', 9), +('D16', '17M123', 'GHM', 9), +('D16', '17M124', 'GHM', 9), +('D16', '17M12T', 'GHM', 9), +('D16', '17M131', 'GHM', 9), +('D16', '17M132', 'GHM', 9), +('D16', '17M133', 'GHM', 9), +('D16', '17M134', 'GHM', 9), +('D16', '17M13T', 'GHM', 9), +('D16', '17M14Z', 'GHM', 9), +('D16', '17M151', 'GHM', 9), +('D16', '17M152', 'GHM', 9), +('D16', '17M153', 'GHM', 9), +('D16', '17M154', 'GHM', 9), +('D16', '17M15T', 'GHM', 9), +('D16', '17M161', 'GHM', 9), +('D16', '17M162', 'GHM', 9), +('D16', '17M163', 'GHM', 9), +('D16', '17M164', 'GHM', 9), +('D16', '17M16T', 'GHM', 9), +('D16', '17M171', 'GHM', 9), +('D16', '17M172', 'GHM', 9), +('D16', '17M173', 'GHM', 9), +('D16', '17M174', 'GHM', 9), +('D16', '17M17T', 'GHM', 9), +('D16', '27Z021', 'GHM', 9), +('D16', '27Z022', 'GHM', 9), +('D16', '27Z023', 'GHM', 9), +('D16', '27Z024', 'GHM', 9), +('D16', '27Z02Z', 'GHM', 9), +('D16', '27Z03Z', 'GHM', 9), +('D16', '27Z04J', 'GHM', 9), +('D17', '17K02Z', 'GHM', 9), +('D17', '17K03Z', 'GHM', 9), +('D17', '17K041', 'GHM', 9), +('D17', '17K042', 'GHM', 9), +('D17', '17K043', 'GHM', 9), +('D17', '17K044', 'GHM', 9), +('D17', '17K04Z', 'GHM', 9), +('D17', '17K051', 'GHM', 9), +('D17', '17K052', 'GHM', 9), +('D17', '17K053', 'GHM', 9), +('D17', '17K054', 'GHM', 9), +('D17', '17K05Z', 'GHM', 9), +('D17', '17K061', 'GHM', 9), +('D17', '17K062', 'GHM', 9), +('D17', '17K063', 'GHM', 9), +('D17', '17K064', 'GHM', 9), +('D17', '17K06Z', 'GHM', 9), +('D17', '17K081', 'GHM', 9), +('D17', '17K082', 'GHM', 9), +('D17', '17K083', 'GHM', 9), +('D17', '17K084', 'GHM', 9), +('D17', '17K091', 'GHM', 9), +('D17', '17K092', 'GHM', 9), +('D17', '17K093', 'GHM', 9), +('D17', '17K094', 'GHM', 9), +('D17', '17M02Z', 'GHM', 9), +('D17', '17M04Z', 'GHM', 9), +('D17', '17M051', 'GHM', 9), +('D17', '17M052', 'GHM', 9), +('D17', '17M053', 'GHM', 9), +('D17', '17M054', 'GHM', 9), +('D17', '17M05Z', 'GHM', 9), +('D17', '17M061', 'GHM', 9), +('D17', '17M062', 'GHM', 9), +('D17', '17M063', 'GHM', 9), +('D17', '17M064', 'GHM', 9), +('D17', '17M06T', 'GHM', 9), +('D17', '17M06V', 'GHM', 9), +('D17', '17M06W', 'GHM', 9), +('D17', '23M091', 'GHM', 9), +('D17', '23M092', 'GHM', 9), +('D17', '23M093', 'GHM', 9), +('D17', '23M094', 'GHM', 9), +('D18', '18M021', 'GHM', 9), +('D18', '18M022', 'GHM', 9), +('D18', '18M023', 'GHM', 9), +('D18', '18M024', 'GHM', 9), +('D18', '18M02V', 'GHM', 9), +('D18', '18M02W', 'GHM', 9), +('D18', '18M031', 'GHM', 9), +('D18', '18M032', 'GHM', 9), +('D18', '18M033', 'GHM', 9), +('D18', '18M034', 'GHM', 9), +('D18', '18M03T', 'GHM', 9), +('D18', '18M03Z', 'GHM', 9), +('D18', '18M041', 'GHM', 9), +('D18', '18M042', 'GHM', 9), +('D18', '18M043', 'GHM', 9), +('D18', '18M044', 'GHM', 9), +('D18', '18M04T', 'GHM', 9), +('D18', '18M04V', 'GHM', 9), +('D18', '18M04W', 'GHM', 9), +('D18', '18M061', 'GHM', 9), +('D18', '18M062', 'GHM', 9), +('D18', '18M063', 'GHM', 9), +('D18', '18M064', 'GHM', 9), +('D18', '18M06Z', 'GHM', 9), +('D18', '18M071', 'GHM', 9), +('D18', '18M072', 'GHM', 9), +('D18', '18M073', 'GHM', 9), +('D18', '18M074', 'GHM', 9), +('D18', '18M07T', 'GHM', 9), +('D18', '18M07V', 'GHM', 9), +('D18', '18M07W', 'GHM', 9), +('D18', '18M091', 'GHM', 9), +('D18', '18M092', 'GHM', 9), +('D18', '18M093', 'GHM', 9), +('D18', '18M094', 'GHM', 9), +('D18', '18M09T', 'GHM', 9), +('D18', '18M101', 'GHM', 9), +('D18', '18M102', 'GHM', 9), +('D18', '18M103', 'GHM', 9), +('D18', '18M104', 'GHM', 9), +('D18', '18M10T', 'GHM', 9), +('D18', '18M111', 'GHM', 9), +('D18', '18M112', 'GHM', 9), +('D18', '18M113', 'GHM', 9), +('D18', '18M114', 'GHM', 9), +('D18', '18M11T', 'GHM', 9), +('D18', '18M12Z', 'GHM', 9), +('D18', '18M13E', 'GHM', 9), +('D18', '18M14T', 'GHM', 9), +('D18', '18M14Z', 'GHM', 9), +('D18', '18M151', 'GHM', 9), +('D18', '18M152', 'GHM', 9), +('D18', '18M153', 'GHM', 9), +('D18', '18M154', 'GHM', 9), +('D18', '23M07J', 'GHM', 9), +('D18', '25M02A', 'GHM', 9), +('D18', '25M02B', 'GHM', 9), +('D18', '25M02C', 'GHM', 9), +('D18', '25M02T', 'GHM', 9), +('D18', '25Z02E', 'GHM', 9), +('D18', '25Z031', 'GHM', 9), +('D18', '25Z032', 'GHM', 9), +('D18', '25Z033', 'GHM', 9), +('D18', '25Z034', 'GHM', 9), +('D18', '25Z03Z', 'GHM', 9), +('D19', '10C051', 'GHM', 9), +('D19', '10C052', 'GHM', 9), +('D19', '10C053', 'GHM', 9), +('D19', '10C054', 'GHM', 9), +('D19', '10C05Z', 'GHM', 9), +('D19', '10C071', 'GHM', 9), +('D19', '10C072', 'GHM', 9), +('D19', '10C073', 'GHM', 9), +('D19', '10C074', 'GHM', 9), +('D19', '10C07Z', 'GHM', 9), +('D19', '10C101', 'GHM', 9), +('D19', '10C102', 'GHM', 9), +('D19', '10C103', 'GHM', 9), +('D19', '10C104', 'GHM', 9), +('D19', '10C10Z', 'GHM', 9), +('D19', '10C111', 'GHM', 9), +('D19', '10C112', 'GHM', 9), +('D19', '10C113', 'GHM', 9), +('D19', '10C114', 'GHM', 9), +('D19', '10C11V', 'GHM', 9), +('D19', '10C11W', 'GHM', 9), +('D19', '10C121', 'GHM', 9), +('D19', '10C122', 'GHM', 9), +('D19', '10C123', 'GHM', 9), +('D19', '10C124', 'GHM', 9), +('D19', '10C12V', 'GHM', 9), +('D19', '10C12W', 'GHM', 9), +('D19', '10M021', 'GHM', 9), +('D19', '10M022', 'GHM', 9), +('D19', '10M023', 'GHM', 9), +('D19', '10M024', 'GHM', 9), +('D19', '10M02T', 'GHM', 9), +('D19', '10M02V', 'GHM', 9), +('D19', '10M02W', 'GHM', 9), +('D19', '10M031', 'GHM', 9), +('D19', '10M032', 'GHM', 9), +('D19', '10M033', 'GHM', 9), +('D19', '10M034', 'GHM', 9), +('D19', '10M03T', 'GHM', 9), +('D19', '10M03Z', 'GHM', 9), +('D19', '10M06Z', 'GHM', 9), +('D19', '10M071', 'GHM', 9), +('D19', '10M072', 'GHM', 9), +('D19', '10M073', 'GHM', 9), +('D19', '10M074', 'GHM', 9), +('D19', '10M07T', 'GHM', 9), +('D19', '10M07V', 'GHM', 9), +('D19', '10M07W', 'GHM', 9), +('D19', '10M081', 'GHM', 9), +('D19', '10M082', 'GHM', 9), +('D19', '10M083', 'GHM', 9), +('D19', '10M084', 'GHM', 9), +('D19', '10M08T', 'GHM', 9), +('D19', '10M091', 'GHM', 9), +('D19', '10M092', 'GHM', 9), +('D19', '10M093', 'GHM', 9), +('D19', '10M094', 'GHM', 9), +('D19', '10M09T', 'GHM', 9), +('D19', '10M101', 'GHM', 9), +('D19', '10M102', 'GHM', 9), +('D19', '10M103', 'GHM', 9), +('D19', '10M104', 'GHM', 9), +('D19', '10M10T', 'GHM', 9), +('D19', '10M111', 'GHM', 9), +('D19', '10M112', 'GHM', 9), +('D19', '10M113', 'GHM', 9), +('D19', '10M114', 'GHM', 9), +('D19', '10M11T', 'GHM', 9), +('D19', '10M121', 'GHM', 9), +('D19', '10M122', 'GHM', 9), +('D19', '10M123', 'GHM', 9), +('D19', '10M124', 'GHM', 9), +('D19', '10M12T', 'GHM', 9), +('D19', '10M13T', 'GHM', 9), +('D19', '10M13Z', 'GHM', 9), +('D19', '10M14T', 'GHM', 9), +('D19', '10M14Z', 'GHM', 9), +('D19', '10M151', 'GHM', 9), +('D19', '10M152', 'GHM', 9), +('D19', '10M153', 'GHM', 9), +('D19', '10M154', 'GHM', 9), +('D19', '10M15T', 'GHM', 9), +('D19', '10M161', 'GHM', 9), +('D19', '10M162', 'GHM', 9), +('D19', '10M163', 'GHM', 9), +('D19', '10M164', 'GHM', 9), +('D19', '10M16T', 'GHM', 9), +('D19', '10M171', 'GHM', 9), +('D19', '10M172', 'GHM', 9), +('D19', '10M173', 'GHM', 9), +('D19', '10M174', 'GHM', 9), +('D19', '10M17T', 'GHM', 9), +('D19', '10M181', 'GHM', 9), +('D19', '10M182', 'GHM', 9), +('D19', '10M183', 'GHM', 9), +('D19', '10M184', 'GHM', 9), +('D19', '10M18T', 'GHM', 9), +('D19', '10M191', 'GHM', 9), +('D19', '10M192', 'GHM', 9), +('D19', '10M193', 'GHM', 9), +('D19', '10M194', 'GHM', 9), +('D19', '10M201', 'GHM', 9), +('D19', '10M202', 'GHM', 9), +('D19', '10M203', 'GHM', 9), +('D19', '10M204', 'GHM', 9), +('D19', '23M08J', 'GHM', 9), +('D20', '08C201', 'GHM', 9), +('D20', '08C202', 'GHM', 9), +('D20', '08C203', 'GHM', 9), +('D20', '08C204', 'GHM', 9), +('D20', '08C20J', 'GHM', 9), +('D20', '08C20Z', 'GHM', 9), +('D20', '09C021', 'GHM', 9), +('D20', '09C022', 'GHM', 9), +('D20', '09C023', 'GHM', 9), +('D20', '09C024', 'GHM', 9), +('D20', '09C02J', 'GHM', 9), +('D20', '09C02V', 'GHM', 9), +('D20', '09C02W', 'GHM', 9), +('D20', '09C031', 'GHM', 9), +('D20', '09C032', 'GHM', 9), +('D20', '09C033', 'GHM', 9), +('D20', '09C034', 'GHM', 9), +('D20', '09C03J', 'GHM', 9), +('D20', '09C03V', 'GHM', 9), +('D20', '09C03W', 'GHM', 9), +('D20', '09C091', 'GHM', 9), +('D20', '09C092', 'GHM', 9), +('D20', '09C093', 'GHM', 9), +('D20', '09C094', 'GHM', 9), +('D20', '09C09J', 'GHM', 9), +('D20', '09C09Z', 'GHM', 9), +('D20', '09C121', 'GHM', 9), +('D20', '09C122', 'GHM', 9), +('D20', '09C123', 'GHM', 9), +('D20', '09C124', 'GHM', 9), +('D20', '09C12J', 'GHM', 9), +('D20', '09M021', 'GHM', 9), +('D20', '09M022', 'GHM', 9), +('D20', '09M023', 'GHM', 9), +('D20', '09M024', 'GHM', 9), +('D20', '09M02T', 'GHM', 9), +('D20', '09M02Z', 'GHM', 9), +('D20', '09M031', 'GHM', 9), +('D20', '09M032', 'GHM', 9), +('D20', '09M033', 'GHM', 9), +('D20', '09M034', 'GHM', 9), +('D20', '09M03T', 'GHM', 9), +('D20', '09M03V', 'GHM', 9), +('D20', '09M03W', 'GHM', 9), +('D20', '09M041', 'GHM', 9), +('D20', '09M042', 'GHM', 9), +('D20', '09M043', 'GHM', 9), +('D20', '09M044', 'GHM', 9), +('D20', '09M04T', 'GHM', 9), +('D20', '09M04Z', 'GHM', 9), +('D20', '09M051', 'GHM', 9), +('D20', '09M052', 'GHM', 9), +('D20', '09M053', 'GHM', 9), +('D20', '09M054', 'GHM', 9), +('D20', '09M05T', 'GHM', 9), +('D20', '09M05V', 'GHM', 9), +('D20', '09M05W', 'GHM', 9), +('D20', '09M061', 'GHM', 9), +('D20', '09M062', 'GHM', 9), +('D20', '09M063', 'GHM', 9), +('D20', '09M064', 'GHM', 9), +('D20', '09M06T', 'GHM', 9), +('D20', '09M06Z', 'GHM', 9), +('D20', '09M071', 'GHM', 9), +('D20', '09M072', 'GHM', 9), +('D20', '09M073', 'GHM', 9), +('D20', '09M074', 'GHM', 9), +('D20', '09M07T', 'GHM', 9), +('D20', '09M07V', 'GHM', 9), +('D20', '09M07W', 'GHM', 9), +('D20', '09M081', 'GHM', 9), +('D20', '09M082', 'GHM', 9), +('D20', '09M083', 'GHM', 9), +('D20', '09M084', 'GHM', 9), +('D20', '09M08T', 'GHM', 9), +('D20', '09M08V', 'GHM', 9), +('D20', '09M08W', 'GHM', 9), +('D20', '09M111', 'GHM', 9), +('D20', '09M112', 'GHM', 9), +('D20', '09M113', 'GHM', 9), +('D20', '09M114', 'GHM', 9), +('D20', '09M11T', 'GHM', 9), +('D20', '09M12Z', 'GHM', 9), +('D20', '09M14T', 'GHM', 9), +('D20', '09M14Z', 'GHM', 9), +('D20', '21C021', 'GHM', 9), +('D20', '21C022', 'GHM', 9), +('D20', '21C023', 'GHM', 9), +('D20', '21C024', 'GHM', 9), +('D20', '21C02J', 'GHM', 9), +('D20', '21C02Z', 'GHM', 9), +('D20', '21C031', 'GHM', 9), +('D20', '21C032', 'GHM', 9), +('D20', '21C033', 'GHM', 9), +('D20', '21C034', 'GHM', 9), +('D20', '21C03J', 'GHM', 9), +('D20', '21C03Z', 'GHM', 9), +('D20', '21C061', 'GHM', 9), +('D20', '21C062', 'GHM', 9), +('D20', '21C063', 'GHM', 9), +('D20', '21C064', 'GHM', 9), +('D20', '21C06J', 'GHM', 9), +('D21', '22C021', 'GHM', 9), +('D21', '22C022', 'GHM', 9), +('D21', '22C023', 'GHM', 9), +('D21', '22C024', 'GHM', 9), +('D21', '22C02J', 'GHM', 9), +('D21', '22C02Z', 'GHM', 9), +('D21', '22C031', 'GHM', 9), +('D21', '22C032', 'GHM', 9), +('D21', '22C033', 'GHM', 9), +('D21', '22C034', 'GHM', 9), +('D21', '22C03Z', 'GHM', 9), +('D21', '22K02J', 'GHM', 9), +('D21', '22M021', 'GHM', 9), +('D21', '22M022', 'GHM', 9), +('D21', '22M023', 'GHM', 9), +('D21', '22M024', 'GHM', 9), +('D21', '22M02T', 'GHM', 9), +('D21', '22M02Z', 'GHM', 9), +('D21', '22Z021', 'GHM', 9), +('D21', '22Z022', 'GHM', 9), +('D21', '22Z023', 'GHM', 9), +('D21', '22Z024', 'GHM', 9), +('D21', '22Z02Z', 'GHM', 9), +('D21', '22Z03Z', 'GHM', 9), +('D22', '19M021', 'GHM', 9), +('D22', '19M022', 'GHM', 9), +('D22', '19M023', 'GHM', 9), +('D22', '19M024', 'GHM', 9), +('D22', '19M02T', 'GHM', 9), +('D22', '19M02V', 'GHM', 9), +('D22', '19M02W', 'GHM', 9), +('D22', '19M03Z', 'GHM', 9), +('D22', '19M04Z', 'GHM', 9), +('D22', '19M05Z', 'GHM', 9), +('D22', '19M061', 'GHM', 9), +('D22', '19M062', 'GHM', 9), +('D22', '19M063', 'GHM', 9), +('D22', '19M064', 'GHM', 9), +('D22', '19M06T', 'GHM', 9), +('D22', '19M06V', 'GHM', 9), +('D22', '19M06W', 'GHM', 9), +('D22', '19M071', 'GHM', 9), +('D22', '19M072', 'GHM', 9), +('D22', '19M073', 'GHM', 9), +('D22', '19M074', 'GHM', 9), +('D22', '19M07T', 'GHM', 9), +('D22', '19M07V', 'GHM', 9), +('D22', '19M07W', 'GHM', 9), +('D22', '19M08Z', 'GHM', 9), +('D22', '19M09Z', 'GHM', 9), +('D22', '19M101', 'GHM', 9), +('D22', '19M102', 'GHM', 9), +('D22', '19M103', 'GHM', 9), +('D22', '19M104', 'GHM', 9), +('D22', '19M10T', 'GHM', 9), +('D22', '19M10Z', 'GHM', 9), +('D22', '19M111', 'GHM', 9), +('D22', '19M112', 'GHM', 9), +('D22', '19M113', 'GHM', 9), +('D22', '19M114', 'GHM', 9), +('D22', '19M11T', 'GHM', 9), +('D22', '19M11V', 'GHM', 9), +('D22', '19M11W', 'GHM', 9), +('D22', '19M121', 'GHM', 9), +('D22', '19M122', 'GHM', 9), +('D22', '19M123', 'GHM', 9), +('D22', '19M124', 'GHM', 9), +('D22', '19M12T', 'GHM', 9), +('D22', '19M131', 'GHM', 9), +('D22', '19M132', 'GHM', 9), +('D22', '19M133', 'GHM', 9), +('D22', '19M134', 'GHM', 9), +('D22', '19M13T', 'GHM', 9), +('D22', '19M141', 'GHM', 9), +('D22', '19M142', 'GHM', 9), +('D22', '19M143', 'GHM', 9), +('D22', '19M144', 'GHM', 9), +('D22', '19M14T', 'GHM', 9), +('D22', '19M151', 'GHM', 9), +('D22', '19M152', 'GHM', 9), +('D22', '19M153', 'GHM', 9), +('D22', '19M154', 'GHM', 9), +('D22', '19M15T', 'GHM', 9), +('D22', '19M161', 'GHM', 9), +('D22', '19M162', 'GHM', 9), +('D22', '19M163', 'GHM', 9), +('D22', '19M164', 'GHM', 9), +('D22', '19M16T', 'GHM', 9), +('D22', '19M171', 'GHM', 9), +('D22', '19M172', 'GHM', 9), +('D22', '19M173', 'GHM', 9), +('D22', '19M174', 'GHM', 9), +('D22', '19M181', 'GHM', 9), +('D22', '19M182', 'GHM', 9), +('D22', '19M183', 'GHM', 9), +('D22', '19M184', 'GHM', 9), +('D22', '19M18T', 'GHM', 9), +('D22', '19M191', 'GHM', 9), +('D22', '19M192', 'GHM', 9), +('D22', '19M193', 'GHM', 9), +('D22', '19M194', 'GHM', 9), +('D22', '19M19T', 'GHM', 9), +('D22', '19M201', 'GHM', 9), +('D22', '19M202', 'GHM', 9), +('D22', '19M203', 'GHM', 9), +('D22', '19M204', 'GHM', 9), +('D22', '19M20T', 'GHM', 9), +('D22', '19M21Z', 'GHM', 9), +('D22', '19M22T', 'GHM', 9), +('D22', '19M22Z', 'GHM', 9), +('D23', '20Z021', 'GHM', 9), +('D23', '20Z022', 'GHM', 9), +('D23', '20Z023', 'GHM', 9), +('D23', '20Z024', 'GHM', 9), +('D23', '20Z02T', 'GHM', 9), +('D23', '20Z02Z', 'GHM', 9), +('D23', '20Z031', 'GHM', 9), +('D23', '20Z032', 'GHM', 9), +('D23', '20Z033', 'GHM', 9), +('D23', '20Z034', 'GHM', 9), +('D23', '20Z03Z', 'GHM', 9), +('D23', '20Z041', 'GHM', 9), +('D23', '20Z042', 'GHM', 9), +('D23', '20Z043', 'GHM', 9), +('D23', '20Z044', 'GHM', 9), +('D23', '20Z04T', 'GHM', 9), +('D23', '20Z04Z', 'GHM', 9), +('D23', '20Z051', 'GHM', 9), +('D23', '20Z052', 'GHM', 9), +('D23', '20Z053', 'GHM', 9), +('D23', '20Z054', 'GHM', 9), +('D23', '20Z05Z', 'GHM', 9), +('D23', '20Z061', 'GHM', 9), +('D23', '20Z062', 'GHM', 9), +('D23', '20Z063', 'GHM', 9), +('D23', '20Z064', 'GHM', 9), +('D23', '20Z06T', 'GHM', 9), +('D23', '20Z06V', 'GHM', 9), +('D23', '20Z06W', 'GHM', 9), +('D23', '21M021', 'GHM', 9), +('D23', '21M022', 'GHM', 9), +('D23', '21M023', 'GHM', 9), +('D23', '21M024', 'GHM', 9), +('D23', '21M02T', 'GHM', 9), +('D23', '21M02Z', 'GHM', 9), +('D23', '21M041', 'GHM', 9), +('D23', '21M042', 'GHM', 9), +('D23', '21M043', 'GHM', 9), +('D23', '21M044', 'GHM', 9), +('D23', '21M04T', 'GHM', 9), +('D23', '21M04Z', 'GHM', 9), +('D23', '21M051', 'GHM', 9), +('D23', '21M052', 'GHM', 9), +('D23', '21M053', 'GHM', 9), +('D23', '21M054', 'GHM', 9), +('D23', '21M05T', 'GHM', 9), +('D23', '21M05Z', 'GHM', 9), +('D23', '21M101', 'GHM', 9), +('D23', '21M102', 'GHM', 9), +('D23', '21M103', 'GHM', 9), +('D23', '21M104', 'GHM', 9), +('D23', '21M10T', 'GHM', 9), +('D23', '21M111', 'GHM', 9), +('D23', '21M112', 'GHM', 9), +('D23', '21M113', 'GHM', 9), +('D23', '21M114', 'GHM', 9), +('D23', '21M11T', 'GHM', 9), +('D23', '21M121', 'GHM', 9), +('D23', '21M122', 'GHM', 9), +('D23', '21M123', 'GHM', 9), +('D23', '21M124', 'GHM', 9), +('D23', '21M141', 'GHM', 9), +('D23', '21M142', 'GHM', 9), +('D23', '21M143', 'GHM', 9), +('D23', '21M144', 'GHM', 9), +('D23', '21M14T', 'GHM', 9), +('D23', '21M161', 'GHM', 9), +('D23', '21M162', 'GHM', 9), +('D23', '21M163', 'GHM', 9), +('D23', '21M164', 'GHM', 9), +('D23', '21M16T', 'GHM', 9), +('D24', '01K05J', 'GHM', 9), +('D24', '01M211', 'GHM', 9), +('D24', '01M212', 'GHM', 9), +('D24', '01M213', 'GHM', 9), +('D24', '01M214', 'GHM', 9), +('D24', '01M21T', 'GHM', 9), +('D24', '01M21Z', 'GHM', 9), +('D24', '23Z02T', 'GHM', 9), +('D24', '23Z02Z', 'GHM', 9), +('D25', '27C021', 'GHM', 9), +('D25', '27C022', 'GHM', 9), +('D25', '27C023', 'GHM', 9), +('D25', '27C024', 'GHM', 9), +('D25', '27C02Z', 'GHM', 9), +('D25', '27C031', 'GHM', 9), +('D25', '27C032', 'GHM', 9), +('D25', '27C033', 'GHM', 9), +('D25', '27C034', 'GHM', 9), +('D25', '27C03Z', 'GHM', 9), +('D25', '27C041', 'GHM', 9), +('D25', '27C042', 'GHM', 9), +('D25', '27C043', 'GHM', 9), +('D25', '27C044', 'GHM', 9), +('D25', '27C04Z', 'GHM', 9), +('D25', '27C051', 'GHM', 9), +('D25', '27C052', 'GHM', 9), +('D25', '27C053', 'GHM', 9), +('D25', '27C054', 'GHM', 9), +('D25', '27C05Z', 'GHM', 9), +('D25', '27C061', 'GHM', 9), +('D25', '27C062', 'GHM', 9), +('D25', '27C063', 'GHM', 9), +('D25', '27C064', 'GHM', 9), +('D25', '27C06Z', 'GHM', 9), +('D25', '27C071', 'GHM', 9), +('D25', '27C072', 'GHM', 9), +('D25', '27C073', 'GHM', 9), +('D25', '27C074', 'GHM', 9), +('D25', '27C07Z', 'GHM', 9), +('D26', '01C081', 'GHM', 9), +('D26', '01C082', 'GHM', 9), +('D26', '01C083', 'GHM', 9), +('D26', '01C084', 'GHM', 9), +('D26', '01C08J', 'GHM', 9), +('D26', '01C08V', 'GHM', 9), +('D26', '01C08W', 'GHM', 9), +('D26', '01M37E', 'GHM', 9), +('D26', '05C181', 'GHM', 9), +('D26', '05C182', 'GHM', 9), +('D26', '05C183', 'GHM', 9), +('D26', '05C184', 'GHM', 9), +('D26', '05C18J', 'GHM', 9), +('D26', '05C18Z', 'GHM', 9), +('D26', '05M22E', 'GHM', 9), +('D26', '08C211', 'GHM', 9), +('D26', '08C212', 'GHM', 9), +('D26', '08C213', 'GHM', 9), +('D26', '08C214', 'GHM', 9), +('D26', '08C21J', 'GHM', 9), +('D26', '08C21V', 'GHM', 9), +('D26', '08C21W', 'GHM', 9), +('D26', '08M01S', 'GHM', 9), +('D26', '09C101', 'GHM', 9), +('D26', '09C102', 'GHM', 9), +('D26', '09C103', 'GHM', 9), +('D26', '09C104', 'GHM', 9), +('D26', '09C10J', 'GHM', 9), +('D26', '09C10V', 'GHM', 9), +('D26', '09C10W', 'GHM', 9), +('D26', '09C141', 'GHM', 9), +('D26', '09C142', 'GHM', 9), +('D26', '09C143', 'GHM', 9), +('D26', '09C144', 'GHM', 9), +('D26', '09C14J', 'GHM', 9), +('D26', '09C151', 'GHM', 9), +('D26', '09C152', 'GHM', 9), +('D26', '09C153', 'GHM', 9), +('D26', '09C154', 'GHM', 9), +('D26', '09C15J', 'GHM', 9), +('D26', '09C161', 'GHM', 9), +('D26', '09C162', 'GHM', 9), +('D26', '09C163', 'GHM', 9), +('D26', '09C164', 'GHM', 9), +('D26', '09C171', 'GHM', 9), +('D26', '09C172', 'GHM', 9), +('D26', '09C173', 'GHM', 9), +('D26', '09C174', 'GHM', 9), +('D26', '09C181', 'GHM', 9), +('D26', '09C182', 'GHM', 9), +('D26', '09C183', 'GHM', 9), +('D26', '09C184', 'GHM', 9), +('D26', '09C191', 'GHM', 9), +('D26', '09C192', 'GHM', 9), +('D26', '09C193', 'GHM', 9), +('D26', '09C194', 'GHM', 9), +('D26', '09C201', 'GHM', 9), +('D26', '09C202', 'GHM', 9), +('D26', '09C203', 'GHM', 9), +('D26', '09C204', 'GHM', 9), +('D26', '09C20J', 'GHM', 9), +('D26', '09C211', 'GHM', 9), +('D26', '09C212', 'GHM', 9), +('D26', '09C213', 'GHM', 9), +('D26', '09C214', 'GHM', 9), +('D26', '09C221', 'GHM', 9), +('D26', '09C222', 'GHM', 9), +('D26', '09C223', 'GHM', 9), +('D26', '09C224', 'GHM', 9), +('D26', '09C22J', 'GHM', 9), +('D26', '09C231', 'GHM', 9), +('D26', '09C232', 'GHM', 9), +('D26', '09C233', 'GHM', 9), +('D26', '09C234', 'GHM', 9), +('D26', '09C23J', 'GHM', 9), +('D26', '09C241', 'GHM', 9), +('D26', '09C242', 'GHM', 9), +('D26', '09C243', 'GHM', 9), +('D26', '09C244', 'GHM', 9), +('D26', '09C24J', 'GHM', 9), +('D26', '09C251', 'GHM', 9), +('D26', '09C252', 'GHM', 9), +('D26', '09C253', 'GHM', 9), +('D26', '09C254', 'GHM', 9), +('D26', '09C25J', 'GHM', 9), +('D26', '09C261', 'GHM', 9), +('D26', '09C262', 'GHM', 9), +('D26', '09C263', 'GHM', 9), +('D26', '09C264', 'GHM', 9), +('D26', '09C26J', 'GHM', 9), +('D26', '09C271', 'GHM', 9), +('D26', '09C272', 'GHM', 9), +('D26', '09C273', 'GHM', 9), +('D26', '09C274', 'GHM', 9), +('D26', '09C281', 'GHM', 9), +('D26', '09C282', 'GHM', 9), +('D26', '09C283', 'GHM', 9), +('D26', '09C284', 'GHM', 9), +('D26', '09C28J', 'GHM', 9), +('D26', '09C291', 'GHM', 9), +('D26', '09C292', 'GHM', 9), +('D26', '09C293', 'GHM', 9), +('D26', '09C294', 'GHM', 9), +('D26', '09C29J', 'GHM', 9), +('D26', '09C301', 'GHM', 9), +('D26', '09C302', 'GHM', 9), +('D26', '09C303', 'GHM', 9), +('D26', '09C304', 'GHM', 9), +('D26', '09C30J', 'GHM', 9), +('D26', '09C311', 'GHM', 9), +('D26', '09C312', 'GHM', 9), +('D26', '09C313', 'GHM', 9), +('D26', '09C314', 'GHM', 9), +('D26', '09C31J', 'GHM', 9), +('D26', '09C321', 'GHM', 9), +('D26', '09C322', 'GHM', 9), +('D26', '09C323', 'GHM', 9), +('D26', '09C324', 'GHM', 9), +('D26', '09C32J', 'GHM', 9), +('D26', '09C331', 'GHM', 9), +('D26', '09C332', 'GHM', 9), +('D26', '09C333', 'GHM', 9), +('D26', '09C334', 'GHM', 9), +('D26', '09C341', 'GHM', 9), +('D26', '09C342', 'GHM', 9), +('D26', '09C343', 'GHM', 9), +('D26', '09C344', 'GHM', 9), +('D26', '09C34J', 'GHM', 9), +('D26', '09K02J', 'GHM', 9), +('D26', '09Z02A', 'GHM', 9), +('D26', '09Z02B', 'GHM', 9), +('D26', '09Z02Z', 'GHM', 9), +('D26', '10C081', 'GHM', 9), +('D26', '10C082', 'GHM', 9), +('D26', '10C083', 'GHM', 9), +('D26', '10C084', 'GHM', 9), +('D26', '10C08J', 'GHM', 9), +('D26', '10C08Z', 'GHM', 9), +('D26', '17K07J', 'GHM', 9), +('D26', '18C021', 'GHM', 9), +('D26', '18C022', 'GHM', 9), +('D26', '18C023', 'GHM', 9), +('D26', '18C024', 'GHM', 9), +('D26', '18C02J', 'GHM', 9), +('D26', '18C02V', 'GHM', 9), +('D26', '18C02W', 'GHM', 9), +('D26', '19C021', 'GHM', 9), +('D26', '19C022', 'GHM', 9), +('D26', '19C023', 'GHM', 9), +('D26', '19C024', 'GHM', 9), +('D26', '19C02Z', 'GHM', 9), +('D26', '21C051', 'GHM', 9), +('D26', '21C052', 'GHM', 9), +('D26', '21C053', 'GHM', 9), +('D26', '21C054', 'GHM', 9), +('D26', '21C05J', 'GHM', 9), +('D26', '21C05V', 'GHM', 9), +('D26', '21C05W', 'GHM', 9), +('D26', '21K02J', 'GHM', 9), +('D26', '21M131', 'GHM', 9), +('D26', '21M132', 'GHM', 9), +('D26', '21M133', 'GHM', 9), +('D26', '21M134', 'GHM', 9), +('D26', '21M151', 'GHM', 9), +('D26', '21M152', 'GHM', 9), +('D26', '21M153', 'GHM', 9), +('D26', '21M154', 'GHM', 9), +('D26', '21M15T', 'GHM', 9), +('D26', '23C021', 'GHM', 9), +('D26', '23C022', 'GHM', 9), +('D26', '23C023', 'GHM', 9), +('D26', '23C024', 'GHM', 9), +('D26', '23C02J', 'GHM', 9), +('D26', '23C02Z', 'GHM', 9), +('D26', '23K02Z', 'GHM', 9), +('D26', '23K03J', 'GHM', 9), +('D26', '23M02T', 'GHM', 9), +('D26', '23M02Z', 'GHM', 9), +('D26', '23M04Z', 'GHM', 9), +('D26', '23M05Z', 'GHM', 9), +('D26', '23M061', 'GHM', 9), +('D26', '23M062', 'GHM', 9), +('D26', '23M063', 'GHM', 9), +('D26', '23M064', 'GHM', 9), +('D26', '23M06T', 'GHM', 9), +('D26', '23M06Z', 'GHM', 9), +('D26', '23M101', 'GHM', 9), +('D26', '23M102', 'GHM', 9), +('D26', '23M103', 'GHM', 9), +('D26', '23M104', 'GHM', 9), +('D26', '23M10T', 'GHM', 9), +('D26', '23M111', 'GHM', 9), +('D26', '23M112', 'GHM', 9), +('D26', '23M113', 'GHM', 9), +('D26', '23M114', 'GHM', 9), +('D26', '23M11T', 'GHM', 9), +('D26', '23M13Z', 'GHM', 9), +('D26', '23M14Z', 'GHM', 9), +('D26', '23M15Z', 'GHM', 9), +('D26', '23M16T', 'GHM', 9), +('D26', '23M16Z', 'GHM', 9), +('D26', '23M18Z', 'GHM', 9), +('D26', '23M19Z', 'GHM', 9), +('D26', '23M20T', 'GHM', 9), +('D26', '23M20Z', 'GHM', 9), +('D26', '23M21T', 'GHM', 9), +('D26', '23M21Z', 'GHM', 9), +('D26', '23Z03Z', 'GHM', 9), +('D26', '25C021', 'GHM', 9), +('D26', '25C022', 'GHM', 9), +('D26', '25C023', 'GHM', 9), +('D26', '25C024', 'GHM', 9), +('D26', '25C02Z', 'GHM', 9), +('D27', '28Z01Z', 'GHM', 9), +('D27', '28Z02Z', 'GHM', 9), +('D27', '28Z03Z', 'GHM', 9), +('D27', '28Z04Z', 'GHM', 9), +('D27', '28Z05Z', 'GHM', 9), +('D27', '28Z06Z', 'GHM', 9), +('D27', '28Z07Z', 'GHM', 9), +('D27', '28Z08Z', 'GHM', 9), +('D27', '28Z09Z', 'GHM', 9), +('D27', '28Z10Z', 'GHM', 9), +('D27', '28Z11Z', 'GHM', 9), +('D27', '28Z12Z', 'GHM', 9), +('D27', '28Z13Z', 'GHM', 9), +('D27', '28Z14Z', 'GHM', 9), +('D27', '28Z15Z', 'GHM', 9), +('D27', '28Z16Z', 'GHM', 9), +('D27', '28Z17Z', 'GHM', 9), +('D27', '28Z18Z', 'GHM', 9), +('D27', '28Z19Z', 'GHM', 9), +('D27', '28Z20Z', 'GHM', 9), +('D27', '28Z21Z', 'GHM', 9), +('D27', '28Z22Z', 'GHM', 9), +('D27', '28Z23Z', 'GHM', 9), +('D27', '28Z24Z', 'GHM', 9), +('D27', '28Z25Z', 'GHM', 9), +('D90', '90C01Z', 'GHM', 9), +('D90', '90H01Z', 'GHM', 9), +('D90', '90H02Z', 'GHM', 9), +('D90', '90H03Z', 'GHM', 9), +('D90', '90Z00Z', 'GHM', 9), +('D90', '90Z01Z', 'GHM', 9), +('D90', '90Z02Z', 'GHM', 9), +('D90', '90Z03Z', 'GHM', 9), +('D90', '999999', 'GHM', 9), +('D90', 'ZZZZZZ', 'GHM', 9) +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_classes_sections_elements(section_id, to_id) +SELECT t_classes_sections.oid, t_ghm.oid +FROM w_dbsetup, activite.t_listes_tables, activite.t_classes, activite.t_classes_sections, base.t_ghm +WHERE + w_dbsetup.table_code = t_listes_tables.code + AND t_classes.table_id = t_listes_tables.oid + AND t_classes_sections.classe_id = t_classes.oid + AND w_dbsetup.section_code = t_classes_sections.code + AND w_dbsetup.classe_sequence = t_classes.sequence + AND w_dbsetup.to_code = t_ghm.code + AND t_classes_sections.oid::text || '-' || t_ghm.oid::text NOT IN (SELECT section_id::text || '-' || to_id::text FROM activite.t_classes_sections_elements); + + +SELECT * FROM activite.cti_update_schema_classes('GHM'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_classes_sections_elements_prestations_c.SQL b/db/data/dbdata_activite_t_classes_sections_elements_prestations_c.SQL new file mode 100644 index 0000000..22df3ad --- /dev/null +++ b/db/data/dbdata_activite_t_classes_sections_elements_prestations_c.SQL @@ -0,0 +1,182 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_classes_sections.code AS section_code, + t_prestations.code as to_code, + t_listes_tables.code as table_code, + t_classes.sequence as classe_sequence + FROM + activite.t_classes_sections_elements, + activite.t_classes_sections, + activite.t_classes, + activite.t_listes_tables, + activite.t_prestations + WHERE + t_classes_sections_elements.section_id = t_classes_sections.oid + AND t_classes_sections.classe_id = t_classes.oid + AND t_classes.is_cti = '1' + AND table_id = t_listes_tables.oid + AND t_listes_tables.code = 'PRESTA_C' + AND t_classes_sections_elements.to_id = t_prestations.oid + ORDER BY t_classes.sequence, t_classes_sections.code, t_prestations.code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + section_code, + to_code, + table_code, + classe_sequence +) +VALUES +('S11', 'GHS', 'PRESTA_C', 9), +('S12', 'EXH', 'PRESTA_C', 9), +('S13', 'ANT', 'PRESTA_C', 9), +('S13', 'APE', 'PRESTA_C', 9), +('S13', 'ATU', 'PRESTA_C', 9), +('S13', 'D01', 'PRESTA_C', 9), +('S13', 'D02', 'PRESTA_C', 9), +('S13', 'D03', 'PRESTA_C', 9), +('S13', 'D04', 'PRESTA_C', 9), +('S13', 'D05', 'PRESTA_C', 9), +('S13', 'D06', 'PRESTA_C', 9), +('S13', 'D07', 'PRESTA_C', 9), +('S13', 'D08', 'PRESTA_C', 9), +('S13', 'D09', 'PRESTA_C', 9), +('S13', 'D10', 'PRESTA_C', 9), +('S13', 'D11', 'PRESTA_C', 9), +('S13', 'D12', 'PRESTA_C', 9), +('S13', 'D13', 'PRESTA_C', 9), +('S13', 'D14', 'PRESTA_C', 9), +('S13', 'D15', 'PRESTA_C', 9), +('S13', 'D16', 'PRESTA_C', 9), +('S13', 'D17', 'PRESTA_C', 9), +('S13', 'D18', 'PRESTA_C', 9), +('S13', 'D19', 'PRESTA_C', 9), +('S13', 'D20', 'PRESTA_C', 9), +('S13', 'D21', 'PRESTA_C', 9), +('S13', 'D22', 'PRESTA_C', 9), +('S13', 'D23', 'PRESTA_C', 9), +('S13', 'D24', 'PRESTA_C', 9), +('S13', 'DIP', 'PRESTA_C', 9), +('S13', 'DTP', 'PRESTA_C', 9), +('S13', 'ENT', 'PRESTA_C', 9), +('S13', 'FFM', 'PRESTA_C', 9), +('S13', 'FPU', 'PRESTA_C', 9), +('S13', 'NN1', 'PRESTA_C', 9), +('S13', 'NN2', 'PRESTA_C', 9), +('S13', 'NN3', 'PRESTA_C', 9), +('S13', 'PO1', 'PRESTA_C', 9), +('S13', 'PO2', 'PRESTA_C', 9), +('S13', 'PO3', 'PRESTA_C', 9), +('S13', 'PO4', 'PRESTA_C', 9), +('S13', 'PO5', 'PRESTA_C', 9), +('S13', 'PO6', 'PRESTA_C', 9), +('S13', 'PO7', 'PRESTA_C', 9), +('S13', 'PO8', 'PRESTA_C', 9), +('S13', 'PO9', 'PRESTA_C', 9), +('S13', 'RAP', 'PRESTA_C', 9), +('S13', 'REA', 'PRESTA_C', 9), +('S13', 'REP', 'PRESTA_C', 9), +('S13', 'SE1', 'PRESTA_C', 9), +('S13', 'SE2', 'PRESTA_C', 9), +('S13', 'SE3', 'PRESTA_C', 9), +('S13', 'SE4', 'PRESTA_C', 9), +('S13', 'SE5', 'PRESTA_C', 9), +('S13', 'SE6', 'PRESTA_C', 9), +('S13', 'SE7', 'PRESTA_C', 9), +('S13', 'SFC', 'PRESTA_C', 9), +('S13', 'SNS', 'PRESTA_C', 9), +('S13', 'SRA', 'PRESTA_C', 9), +('S13', 'SRC', 'PRESTA_C', 9), +('S13', 'SSC', 'PRESTA_C', 9), +('S13', 'STF', 'PRESTA_C', 9), +('S19', 'FJA', 'PRESTA_C', 9), +('S19', 'FJC', 'PRESTA_C', 9), +('S19', 'FJL', 'PRESTA_C', 9), +('S19', 'FJR', 'PRESTA_C', 9), +('S19', 'FR2', 'PRESTA_C', 9), +('S19', 'FR3', 'PRESTA_C', 9), +('S19', 'FRL', 'PRESTA_C', 9), +('S19', 'FSD', 'PRESTA_C', 9), +('S19', 'FTG', 'PRESTA_C', 9), +('S19', 'FTN', 'PRESTA_C', 9), +('S19', 'FTR', 'PRESTA_C', 9), +('S19', 'GHT', 'PRESTA_C', 9), +('S19', 'PHJ', 'PRESTA_C', 9), +('S19', 'PJ', 'PRESTA_C', 9), +('S19', 'PMH', 'PRESTA_C', 9), +('S19', 'PY0', 'PRESTA_C', 9), +('S19', 'PY1', 'PRESTA_C', 9), +('S19', 'PY2', 'PRESTA_C', 9), +('S19', 'PY3', 'PRESTA_C', 9), +('S19', 'PY4', 'PRESTA_C', 9), +('S19', 'PY5', 'PRESTA_C', 9), +('S19', 'PY6', 'PRESTA_C', 9), +('S19', 'PY7', 'PRESTA_C', 9), +('S19', 'PY8', 'PRESTA_C', 9), +('S19', 'PY9', 'PRESTA_C', 9), +('S19', 'VDE', 'PRESTA_C', 9), +('S2', 'ETI', 'PRESTA_C', 9), +('S2', 'GLU', 'PRESTA_C', 9), +('S2', 'LEN', 'PRESTA_C', 9), +('S2', 'LUN', 'PRESTA_C', 9), +('S2', 'MAC', 'PRESTA_C', 9), +('S2', 'MAD', 'PRESTA_C', 9), +('S2', 'MAR', 'PRESTA_C', 9), +('S2', 'OP1', 'PRESTA_C', 9), +('S2', 'OP2', 'PRESTA_C', 9), +('S2', 'OP3', 'PRESTA_C', 9), +('S2', 'OP4', 'PRESTA_C', 9), +('S2', 'OP5', 'PRESTA_C', 9), +('S2', 'OP6', 'PRESTA_C', 9), +('S2', 'OPM', 'PRESTA_C', 9), +('S2', 'OPT', 'PRESTA_C', 9), +('S2', 'ORP', 'PRESTA_C', 9), +('S2', 'P', 'PRESTA_C', 9), +('S2', 'PA', 'PRESTA_C', 9), +('S2', 'PAN', 'PRESTA_C', 9), +('S2', 'PAU', 'PRESTA_C', 9), +('S2', 'PEX', 'PRESTA_C', 9), +('S2', 'PII', 'PRESTA_C', 9), +('S2', 'PME', 'PRESTA_C', 9), +('S2', 'POC', 'PRESTA_C', 9), +('S2', 'VEH', 'PRESTA_C', 9), +('S2', 'VER', 'PRESTA_C', 9), +('S3', 'EMI', 'PRESTA_C', 9), +('S3', 'PH1', 'PRESTA_C', 9), +('S3', 'PH4', 'PRESTA_C', 9), +('S3', 'PH7', 'PRESTA_C', 9), +('S3', 'PH8', 'PRESTA_C', 9), +('S3', 'PHH', 'PRESTA_C', 9), +('S3', 'PHP', 'PRESTA_C', 9), +('S3', 'PHQ', 'PRESTA_C', 9), +('S3', 'PHS', 'PRESTA_C', 9), +('S3', 'PHU', 'PRESTA_C', 9), +('S3', 'PMR', 'PRESTA_C', 9) +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_classes_sections_elements(section_id, to_id) +SELECT + t_classes_sections.oid, + t_prestations.oid +FROM + w_dbsetup, + activite.t_listes_tables, + activite.t_classes, + activite.t_classes_sections, + activite.t_prestations +WHERE + w_dbsetup.table_code = t_listes_tables.code + AND t_classes.table_id = t_listes_tables.oid + AND t_classes_sections.classe_id = t_classes.oid + AND w_dbsetup.section_code = t_classes_sections.code + AND w_dbsetup.classe_sequence = t_classes.sequence + AND w_dbsetup.to_code = t_prestations.code + AND t_classes_sections.oid::text || '-'::text || t_prestations.oid::text NOT IN (SELECT section_id::text || '-'::text || to_id::text FROM activite.t_classes_sections_elements); + +SELECT * FROM activite.cti_update_schema_classes('PRESTA_C'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_divers.SQL b/db/data/dbdata_activite_t_divers.SQL new file mode 100644 index 0000000..81fba4a --- /dev/null +++ b/db/data/dbdata_activite_t_divers.SQL @@ -0,0 +1,52 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_divers.code, + t_divers.description, + t_divers.show_info_module, + t_divers.texte, + t_divers.valeur, + t_divers.valeur_date::text + FROM + activite.t_divers + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + code, + description, + show_info_module, + texte, + valeur, + valeur_date +) +VALUES +('DATEFERMETURE', 'Date de fermeture (AAAAMMJJ). Vide si ouvert ', 'f', 'Date fermeture établissement', '', '1970-01-01'), +('EMCHCSSRPSY', '0=1 EMC par séjour, 1=1 EMC par semaine', 'f', 'Mode génération EMC HC SSR ou PSY', '0', '1970-01-01'), +('ETALITCSVFILE', 'Emplacement du fichier CSV qui contient l''historique des places', 'f', 'Emplacement du fichier CSV qui contient l''historique des places', '', '1970-01-01'), +('NOW', 'Date non modifiable', 't', 'Date des derniers mouvements', '', '1970-01-01'), +('NOWCLOTURE', 'Date non modifiable', 't', 'Date clôture', '', '1970-01-01'), +('OPTADM_DAYOUT', '0=JS non inclus sauf DE=DS | 1=JS non inclus | 2=JS inclus', 'f', 'Activite : Comptabilisation du jour de sortie', '0', '1970-01-01'), +('PLACESREF', '', 'f', '', 'ETA', '1970-01-01'), +('SEANCEHOSPIT', '1=Conserver les séances en hospit, 2=Ne conserver que les séances de dialyse, 0=Pas de séance en hospit', 'f', 'Traitement des séances en hospit', '1', '1970-01-01'), +('SIGEMS_CHPDOX', 'Préfixe pour demande CP (separateur virgule et chaque préfixe avec %)', 'f', 'Préfixe pour demande CP', 'P%', '1970-01-01'), +('TAUXSORAVANT', 'par default taux de sortie avant 12hh00', 'f', 'Taux de sortie avant hh:mm', '120000', '1970-01-01') +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_divers(code, description, show_info_module, texte, valeur, valeur_date) + SELECT + w_dbsetup.code, + w_dbsetup.description, + w_dbsetup.show_info_module, + w_dbsetup.texte, + w_dbsetup.valeur, + CASE WHEN w_dbsetup.valeur_date = '' THEN '19700101'::date ELSE w_dbsetup.valeur_date::date END AS valeur_date + FROM + w_dbsetup + WHERE w_dbsetup.code NOT IN (SELECT code from activite.t_divers) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_etat_sejour.SQL b/db/data/dbdata_activite_t_etat_sejour.SQL new file mode 100644 index 0000000..dad7562 --- /dev/null +++ b/db/data/dbdata_activite_t_etat_sejour.SQL @@ -0,0 +1,66 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid, + code, + texte + FROM activite.t_etat_sejour + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte +) +VALUES +(0, '0', 'Prévu(s)'), +(1, '1', 'Présent(s)'), +(1, '2', 'Présent(s) avec facturation partielle'), +(1, '3', 'Sorti(s) non groupé(s)'), +(1, '4', 'Sorti(s) facturable(s)'), +(1, '5', 'Sorti(s) non facturé(s) avec facturation partielle'), +(1, '6', 'Facturé(s) non soldé(s)'), +(1, '7', 'Soldé(s)'), +(1, '8', 'Non facturable(s) ou récusé(s)'), +(1, '9', 'Fictif(s)'), +(1, '?', '???'), +(1, 'A', 'Annulé(s)'), +(1, 'C', 'Suspendu(s)'), +(1, 'R', 'Récusé(s)') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_etat_sejour SET + code = w_dbsetup.code, + texte = w_dbsetup.texte +FROM w_dbsetup +WHERE w_dbsetup.oid = t_etat_sejour.oid AND w_dbsetup.oid = 0; + +UPDATE activite.t_etat_sejour SET + texte = w_dbsetup.texte +FROM w_dbsetup +WHERE 1=1 + AND activite.t_etat_sejour.code = w_dbsetup.code + AND activite.t_etat_sejour.texte IS DISTINCT FROM w_dbsetup.texte +; + +INSERT INTO activite.t_etat_sejour(oid, code, texte) + SELECT oid, code, texte + FROM w_dbsetup + WHERE 1=1 + AND oid = 0 + AND oid NOT IN (SELECT oid FROM activite.t_etat_sejour) +; + +INSERT INTO activite.t_etat_sejour(code, texte) + SELECT code, texte + FROM w_dbsetup + WHERE 1=1 + AND oid <> 0 + AND code NOT IN (SELECT code FROM activite.t_etat_sejour) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_expert_controle.SQL b/db/data/dbdata_activite_t_expert_controle.SQL new file mode 100644 index 0000000..2e70712 --- /dev/null +++ b/db/data/dbdata_activite_t_expert_controle.SQL @@ -0,0 +1,137 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_expert_controle.oid = 0 THEN t_expert_controle.oid ELSE 1 END AS controle_id, + t_expert_controle.code as controle_code, + t_expert_controle.texte as controle_texte, + t_expert_controle.texte_court as controle_texte_court, + t_expert_controle.texte_abrege as controle_texte_abrege, + t_expert_controle.description as controle_description, + t_expert_controle.is_cti as controle_is_cti, + t_expert_controle.etat_cible as controle_etat_cible, + t_prestataires.code as prestataire_code + FROM activite.t_expert_controle + LEFT JOIN base.t_prestataires ON t_prestataires.oid = t_expert_controle.prestataire_id + WHERE t_expert_controle.is_cti = '1' AND t_expert_controle.code <> '' + ORDER BY t_expert_controle.code + LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + controle_id, + controle_code, + controle_texte, + controle_texte_court, + controle_texte_abrege, + controle_description, + controle_is_cti, + controle_etat_cible, + prestataire_code +) +VALUES +(1, 'CTI_0ETS', 'Dossiers sortis sans prestations (Aucune facture ni valorisation)', 'Dossiers sortis sans prestations (Aucune facture ni valorisation)', 'Dossiers sortis sans prestations (Aucune facture ni valorisation)', '', '1', 0, ''), +(1, 'CTI_AMB_DE_X_DS', 'Ambulatoires avec date d''entrée différente de date de sortie', 'Ambulatoires avec date d''entrée différente de date de sortie', 'Ambulatoires avec date d''entrée différente de date de sortie', '', '1', 0, ''), +(1, 'CTI_DEL_FAC_30', 'Séjours non facturés avec délai de facture supérieur à 30 jours', 'Séjours non facturés avec délai de facture supérieur à 30 jours', 'Séjours non facturés avec délai de facture supérieur à 30 jours', '', '1', 0, ''), +(1, 'CTI_DTEXP_DTFAC', 'Date d''expédion antérieure à la date de facturation', 'Date d''expédion antérieure à la date de facturation', 'Date d''expédion antérieure à la date de facturation', '', '1', 0, ''), +(1, 'CTI_DTFAC_DTSOR', 'Date de facturation antérieure à la date de sortie', 'Date de facturation antérieure à la date de sortie', 'Date de facturation antérieure à la date de sortie', '', '1', 0, ''), +(1, 'CTI_DTVEN_DTFAC', 'Date de vente antérieure à la date de facturation', 'Date de vente antérieure à la date de facturation', 'Date de vente antérieure à la date de facturation', '', '1', 0, ''), +(1, 'CTI_DUR_SUP_60', 'Dossiers MCO durée supérieur à 2 mois', 'Dossiers MCO durée supérieur à 2 mois', 'Dossiers MCO durée supérieur à 2 mois', '', '1', 0, ''), +(1, 'CTI_EXT_DE_X_DS', 'Externes avec date d''entrée différente de date de sortie', 'Externes avec date d''entrée différente de date de sortie', 'Externes avec date d''entrée différente de date de sortie', '_c_eNptkMFqwzAMhl9FeFDaU9Pl0EOTgOs6IdR1guuNsZtpNAg4SbGd0cefMwa9DCT4fiE+kDLNP3TZqAvVUMsTlzonrwQEp6daVgsXWQtU1JXMieCljrlspIaSMp6Td3SdGQ2Ba/0Z4y4hwBrRqJy8JMc0Tdmi0pqra0vZrzBunLmSf1wIhK/eBofgZwcWYZg6hFjBmT7ggGOAZA9rNo1+tsGEPgJgAD/1CzwCuhH9Bu7ohjjuVuY++QM+bnaOUovPHTDfePvPv0tg/aYqLhnfZNvluiLbtrGfvyl+AFhcWe0=', '1', 0, ''), +(1, 'CTI_LPP_INC_80', 'LPP inclus dans le GHS dont la consommation est séprieure à 80% du GHS', 'LPP inclus sup. à 80% du GHS', 'LPP inclus sup. à 80% du GHS', '', '1', 0, ''), +(1, 'CTI_LPP_NON_FAC', 'LPP en SUS non facturé', 'LPP en SUS non facturé', 'LPP en SUS non facturé', '', '1', 0, ''), +(1, 'CTI_MULTI_TYPES', 'Séjous avec plus d''un type de séjour (ambu, hospit, seances, externe)', 'Séjous avec plus d''un type de séjour (ambu, hospit, seances, externe)', 'Séjous avec plus d''un type de séjour (ambu, hospit, seances, externe)', '', '1', 0, ''), +(1, 'CTI_MVT_ETA_KO', 'Etages inappropriés', 'Etages inappropriés', 'Etages inappropriés', '_c_eNrFkMFOhDAQhl9lUq/G3XWvQIJs2ZBFIGxjjJdNA8MGU0rTFp/Xo3j2AWzJqvHg2UPTmb/NN/P/AaOPLC3r+5hBVuxowUJySyCn8S4r9r6OggriPNsXIclpylyflgWDNE5oSB5Qt1xyAsfsybWbNYGkzMs6JFfru+12m3gUY7Q+VnGyAN2PA62Lpd6QKO+NRWjRgJmfx0kbaEdpYZKLNozTCw4orQE0FnjXYWNneP16ny0/u6tFEBzEN+oi95IrpUel+9ncBCu/dhSsKnd+TEfBPwdQcQ3t3PHJXoNAaMYWf/nxvhOWnSiLT4cSBt47YwIUThberUbQOCjBmxmUI7lcHMmpbinjIS6ORvfK9qO8YPXbWSwjGj9NWv0h8M90PgEtl6i+', '1', 0, ''), +(1, 'CTI_MVT_ETA_NULL', 'Etage non renseigné', 'Etage non renseigné', 'Etage non renseigné', '_c_eNpFT1ELgjAY/CsfC3rV8jEVlk4Z2ZQ1Inob+CGGTNnWf85/kVbQw8HdcRx3sWI3VdTyTBVwkTOhErInUDGac1GuPI0boBUvRUIqVqhFF7VQUNCMJeSKttVGE7jw+yJ3IYGsrmqZkE14jKIoW6uUYvLS0OxTuCROTIofTyVOL4swoAM3P8anddCOxsOw1dPoDrPXHUKL4EbrewTztdF5mLQDi8Zh35k5DtZRaRw0C/6X0jdJb0M4', '1', 0, ''), +(1, 'CTI_MVT_SER_EXT', 'Services Externes : FSEH - SEUR et Mode de traitement 04', 'Services Externes : FSEH - SEUR et Mode de traitement 04', 'Services Externes : FSEH - SEUR et Mode de traitement 04', '', '1', 0, 'SIGEMS'), +(1, 'CTI_MVT_SER_KO', 'Incompatibilité type de séjour (ESPIC - Ex OQN) et code service', 'Incompatibilité type de séjour (ESPIC - Ex OQN) et code service', 'Incompatibilité type de séjour (ESPIC - Ex OQN) et code service', '_c_eNrFkMFqhDAQhl9lSK+lu9u9qmDduMhaFTeU0ssSdCwpMYYk7vP2WHvuAzRKl6WHnnsI/DMTvpn/Dxh9ZmlZP8YMsmJHCxaSewI5jXdZsZ91FFQQ59m+CElOU+brtCwYpHFCQ/KEpuWKEzhmL77crAkkZV7WIblZP2y322RGMUbrYxUnC9D/ONC6WPSGRLmwDqFFC3Z6G0ZjoR2Ug1EtvX4Yz9ijchbQOuBdh42b4P0yt2jOovGiRZAc5BV2GQjFtTaDNmKyd8FqPj0KVpV/V+NR8M8hVNxAO3V8dLcgEZqhxV+OZu8Jy05HWp8OJfRceGMSNI4OPp1BMNhryZsJtCf5bDzJd/1Rdob4QBojtBOD+sGaj1e5rGjmbcqZL4l/pvMNPfepnA==', '1', 0, ''), +(1, 'CTI_MVT_SER_NULL', 'Service non renseigné', 'Service non renseigné', 'Service non renseigné', '', '1', 0, ''), +(1, 'CTI_PRE_SUP_30', 'Présent depuis plus de 30 jours', 'Présent depuis plus de 30 jours', 'Présent depuis plus de 30 jours', '', '1', 0, ''), +(1, 'CTI_SEJSMR_SUPP90', 'Séjours SMR de plus de 90 jours', 'Séjours SMR de plus de 90 jours', 'Séjours SMR de plus de 90 jours', '', '1', 0, ''), +(1, 'CTI_SEJ_AMB_03', 'Ambulatoires avec Mode de Traitement Hospit complète (03)', 'Ambulatoires avec Mode de Traitement Hospit complète (03)', 'Ambulatoires avec Mode de Traitement Hospit complète (03)', '_c_eNrNU1FPgzAQ/isXTMz2NCZvE0iAwSQyWFhnjMY0HdySmlIIFH+vj+5fWJxxzhhf3UPTu971u7vv7mwS3pMoy5cegTidhylxjCsDktCbx+likF17BV4SL1LHSMKIaD3KUgKRF4SOcYdtySQzYB0/aHVqGhBkSZY7xoXpW5YVDFCEhPl65QUfgNrjNszTT9ld75/rvu2AVdteMFXzFjvQkB30EmETfTfASPBOIZSXrKm7615yte9gV8tC8VpKFEL/fYUG+0ZgC6yHpt0zwbYCx1AxrqO8YKGBoapLDYOgWsYVVigVmBaMbuqu4YrpKGxAhKKuGvGmcGxPhppde7LS58iYa/8ze+eaV/dbV2e274Lc0pNHB6b2xD/bQn4M4AwO6F8uUx3PdwXHnra4wxZlgXQYTKQnc0l5qfOHxySeBSSmm4h6S3/zdFL6GTKgy1v+uioDE747rBE9Gmgx+DpwWE/TOtx/tfcdZyxNqw==', '1', 0, ''), +(1, 'CTI_SEJ_DUR_30', 'Séjours sortis non facturés avec durée de séjour supérieure à 30 jours', 'Séjours sortis non facturés avec durée de séjour supérieure à 30 jours', 'Séjours sortis non facturés avec durée de séjour supérieure à 30 jours', '_c_eNpFjtEKwiAYhV/lxx5gK29VMNMhmY5NIrobzIsitnDzfbvdW+RG0MWBc+DjnEO8vHnlmgv3oO1JWk/RAYGR/KRttXpGauBGV5YiI5XPWTnrQXEhKbqG2HdDh6DV9xz3JQLhjGso2pVHjLFYq7yXTVtzsRVm4iwb+/OsXZ5jihP04zDDq4M+xSVAmGaY0nuJj5BigA/gEjaOFOs4I0Wd9b/Ovjb2OgQ=', '1', 2, ''), +(1, 'CTI_SEJ_DUR_NEG', 'Séjours avec date de sortie antérieure à la date d''entrée', 'Séjours avec date de sortie antérieure à la date d''entrée', 'date sortie < date_entree', '', '1', 0, ''), +(1, 'CTI_SEJ_MED_KO', 'Médecins responsables de séjours inappropriés', 'Médecins responsables de séjours inappropriés', 'Médecins responsables de séjours inappropriés', '_c_eNrFkMFOhDAQhl9lUq/G3ZUrkCCUDVkWCNsY42XTlGJquqVpy/t6tJ59AAsxazx49tBk/k77zfx/TPATKdv+mBGomgI3JEH3CGqcFVWzX+o07iCrq32ToBqXJOiybQiUWY4T9MjNQBVFcKqeg9xtEeRt3fYJutk+RFGULyhCcH/qsnwFhhcH3DdrvUNpLazjMHAL1r9Os7FAx5Ez5y28wazWzsUPnAllgwBJQV6/XBtCUa3NpI3w9i7eLAum8aYL58deGv+z1Y4aGPxIZ3cLkgObBv7LEbcOclKdj7g4H1q4UBGMSdB8dvDhDAfDL1pS5kEHUsgmkMJtWMoukBAIM0I7MalvrHl/kesItkxTznxK/mc6X6nfoLg=', '1', 0, ''), +(1, 'CTI_SEJ_MED_NULL', 'Médecin responsable de séjour non renseigné', 'Médecin responsable de séjour non renseigné', 'Médecin responsable de séjour non renseigné', '_c_eNpFj9EKwjAMRX8lVPB16h7dBnXrZDi7UYuIb9UFUWZXF/1n9xd2IviQcO5NuCSRFgedV2rLNRQyE1LHbMGgFDwr5HrkJKqBl8VaxqwUufY6r6SGnKciZnvsG2MNg11x9HI+Y5BWZaViNpmtwjBMxyithdrVPP0G+o2NUPLHiUL37hFaJKDh1r16Auf7aDxe2JIHuA8Nnq8WeiTXWTIn79mpcR0tkZ7gDPmRJbxe7BAF43VJFNS+/r8lH/HxRzY=', '1', 0, ''), +(1, 'CTI_SEJ_SER_FINESS', 'Service non associé à un établissement', 'Service non associé à un établissement', 'Service non associé à un établissement', '_c_eNpFj8FOhEAQRH+lMiZGT7srNwWSkR02KA5kmBjjbWTbZMwKSIPf61H+wmEvHjqpqnS/VMdWvdi8Mk/SotB7pW0ibgRKJfeFPqw6jWvIsjjoRJQqt8HnlbbIZaYS8Uzj0XVOoCleg91tBbKqrEwiLrb3URRlK8paZZpaZmdg2HhURp/1TqSGht+RcCIGLx/9PDKOfTeFAEzjt28J3aUber4jnjA4hmPuW7/gB3OHZXJvJ89MnxSOrpphaf27/5oJt3iYV2po2NF1vFlLp/GmDvP/cvoH089PUA==', '1', 0, ''), +(1, 'CTI_UCD_INC_80', 'UCD inclus dans GHS dont la consommation est supérieure à 80% du GHS', 'UCD Inclus sup à 80% du GHS', 'UCD Inclus sup à 80% du GHS', '', '1', 0, ''), +(1, 'CTI_UCD_NON_FACT', 'UCD en SUS non facturé', 'UCD en SUS non facturé', 'UCD en SUS non facturé', '', '1', 0, ''), +(1, 'CTI_VAL_SUP_20K', 'Dossiers valorisés > 20 000', 'Dossiers valorisés > 20 000', 'Dossiers valorisés > 20 000', '', '1', 0, '') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_expert_controle SET + texte = w_dbsetup.controle_texte, + texte_court = w_dbsetup.controle_texte_court, + texte_abrege = w_dbsetup.controle_texte_abrege, + description = w_dbsetup.controle_description, + is_cti = w_dbsetup.controle_is_cti, + etat_cible = w_dbsetup.controle_etat_cible, + prestataire_id = COALESCE(t_prestataires.oid, -1) +FROM w_dbsetup + LEFT JOIN base.t_prestataires ON t_prestataires.code = w_dbsetup.prestataire_code +WHERE t_expert_controle.code = w_dbsetup.controle_code +AND ( + t_expert_controle.texte IS DISTINCT FROM w_dbsetup.controle_texte OR + t_expert_controle.texte_court IS DISTINCT FROM w_dbsetup.controle_texte_court OR + t_expert_controle.texte_abrege IS DISTINCT FROM w_dbsetup.controle_texte_abrege OR + t_expert_controle.description IS DISTINCT FROM w_dbsetup.controle_description OR + t_expert_controle.is_cti IS DISTINCT FROM w_dbsetup.controle_is_cti OR + t_expert_controle.etat_cible IS DISTINCT FROM w_dbsetup.controle_etat_cible OR + t_prestataires.code != w_dbsetup.prestataire_code +); + +UPDATE activite.t_expert_controle +SET gravite_id = 5 +WHERE gravite_id IS NULL OR gravite_id NOT IN (0,5,9); + +UPDATE activite.t_expert_controle +SET is_hide = '0' +WHERE is_hide IS NULL OR is_hide NOT IN ('0','1'); + +UPDATE activite.t_expert_controle +SET etat_cible = 0 +WHERE etat_cible IS NULL; + +UPDATE activite.t_expert_controle +SET prestataire_id = -1 +WHERE prestataire_id IS NULL; + +UPDATE activite.t_expert_controle +SET is_active = '1' +WHERE is_active IS NULL; + + +INSERT INTO activite.t_expert_controle( + code, + texte, + texte_court, + texte_abrege, + description, + is_cti, + gravite_id, + is_hide, + etat_cible, + prestataire_id, + is_active + ) +SELECT + w_dbsetup.controle_code, + w_dbsetup.controle_texte, + w_dbsetup.controle_texte_court, + w_dbsetup.controle_texte_abrege, + w_dbsetup.controle_description, + w_dbsetup.controle_is_cti, + 5, + '0', + w_dbsetup.controle_etat_cible, + COALESCE(t_prestataires.oid, -1), + '1' +FROM w_dbsetup + LEFT JOIN base.t_prestataires ON t_prestataires.code = w_dbsetup.prestataire_code +WHERE + w_dbsetup.controle_id <> 0 + AND w_dbsetup.controle_code NOT IN (SELECT code FROM activite.t_expert_controle WHERE code IS NOT NULL); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_expert_controle_rule.SQL b/db/data/dbdata_activite_t_expert_controle_rule.SQL new file mode 100644 index 0000000..528b744 --- /dev/null +++ b/db/data/dbdata_activite_t_expert_controle_rule.SQL @@ -0,0 +1,192 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_expert_controle_rule.oid = 0 THEN t_expert_controle_rule.oid ELSE 1 END AS oid, + t_expert_controle.code AS controle_code, + t_expert_controle_rule.numero, + t_expert_controle_rule.sqlcmd_where, + t_expert_controle_rule.sqlcmd_justificatif, + t_expert_controle_rule.table_id as tab + FROM activite.t_expert_controle_rule + JOIN activite.t_expert_controle ON controle_id = t_expert_controle.oid + WHERE t_expert_controle.is_cti = '1' AND + t_expert_controle.code <> '' + ORDER BY t_expert_controle.code, t_expert_controle_rule.numero + LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + controle_code, + numero, + sqlcmd_where, + sqlcmd_justificatif, + tab +) +VALUES +(1, 'CTI_0ETS', 1, 'code_sorti = 1 AND nb_rubriques_c = 0 AND nb_rubriques_h = 0 AND type_sejour<>3 ', '', 2), +(1, 'CTI_0ETS', 2, '', '', 0), +(1, 'CTI_0ETS', 3, '', '', 0), +(1, 'CTI_AMB_DE_X_DS', 1, 'nb_ambulatoires = 1 AND date != date_sortie', '', 1), +(1, 'CTI_AMB_DE_X_DS', 2, '', '', 0), +(1, 'CTI_AMB_DE_X_DS', 3, '', '', 0), +(1, 'CTI_DEL_FAC_30', 1, 'SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, v_mouvements_sejour_2.est_facture FROM activite.v_sejours_1 JOIN activite.v_mouvements_sejour_2 on v_mouvements_sejour_2.sejour_id=v_sejours_1.sejour_id WHERE ((select valeur_date from activite.t_divers where code=''NOW'')- v_sejours_1.date_sortie) >30 AND v_mouvements_sejour_2.est_facture=''0''', '', 99), +(1, 'CTI_DEL_FAC_30', 2, '', '', 0), +(1, 'CTI_DEL_FAC_30', 3, '', '', 0), +(1, 'CTI_DTEXP_DTFAC', 1, 'date_expedition < date_facture', 'date_expedition, date_facture', 0), +(1, 'CTI_DTEXP_DTFAC', 2, '', '', 0), +(1, 'CTI_DTEXP_DTFAC', 3, '', '', 0), +(1, 'CTI_DTFAC_DTSOR', 1, 'date_facture < date_sortie and date_sortie is distinct from null', 'date_facture', 0), +(1, 'CTI_DTFAC_DTSOR', 2, '', '', 0), +(1, 'CTI_DTFAC_DTSOR', 3, '', '', 0), +(1, 'CTI_DTVEN_DTFAC', 1, 'date_vente < date_facture', 'date_vente, date_facture', 2), +(1, 'CTI_DTVEN_DTFAC', 2, '', '', 0), +(1, 'CTI_DTVEN_DTFAC', 3, '', '', 0), +(1, 'CTI_DUR_SUP_60', 1, 'type_t2a <> 2 and type_t2a <> 3 and duree>60', '', 2), +(1, 'CTI_DUR_SUP_60', 2, '', '', 0), +(1, 'CTI_DUR_SUP_60', 3, '', '', 0), +(1, 'CTI_EXT_DE_X_DS', 1, 'nb_externes = 1 +AND date != date_sortie +AND mode_traitement_code = ''07''', '', 1), +(1, 'CTI_EXT_DE_X_DS', 2, '', '', 0), +(1, 'CTI_EXT_DE_X_DS', 3, '', '', 0), +(1, 'CTI_LPP_INC_80', 1, 'DROP TABLE IF EXISTS w_res; CREATE TEMP TABLE w_res AS SELECT v_sejours_1.sejour_id ,v_sejours_1.no_sejour ,v_sejours_1.date_sortie ,type_sejour ,code_prevu ,v_factures_lignes_c_1.montant_facture ,array_to_string(array_agg(DISTINCT t_lpp.code),'','') AS lpp_codes ,sum(sortie_montant - entree_montant) AS sortie_montant ,round(100*base.cti_division(sum(sortie_montant - entree_montant), v_factures_lignes_c_1.montant_facture),2) AS rapport FROM eco.p_sejours JOIN eco.p_mouvements_articles ON mouvement_id = p_mouvements_articles.oid JOIN activite.v_sejours_1 ON p_sejours.sejour_id = v_sejours_1.sejour_id LEFT JOIN base.t_finess ON v_sejours_1.finess = t_finess.code JOIN eco.t_lpp_c ON lpp_id = t_lpp_c.oid JOIN base.t_lpp ON t_lpp_c.code = t_lpp.code JOIN (SELECT no_sejour ,sum(montant_facture) AS montant_facture FROM activite.v_factures_lignes_c_1 WHERE prestation_code = ''GHS'' GROUP BY 1 ) v_factures_lignes_c_1 ON v_factures_lignes_c_1.no_sejour = p_sejours.no_sejour LEFT JOIN (SELECT no_sejour ,lpp_id ,rubrique_facturation_id ,sum(montant_facture) AS montant_facture FROM activite.v_factures_lignes_c_5 GROUP BY 1,2,3 ) v_factures_lignes_c_5 ON p_sejours.no_sejour = v_factures_lignes_c_5.no_sejour AND ( rubrique_facturation_id IN ( SELECT to_id FROM activite.t_listes LEFT JOIN activite.t_listes_contenu ON liste_id = t_listes.oid WHERE t_listes.code = ''CTI_PROTHESE_R'' ) OR t_lpp_c.oid = v_factures_lignes_c_5.lpp_id ) WHERE p_mouvements_articles.lpp_id != 0 AND type_mouvement_id IN ( SELECT to_id FROM eco.t_classes JOIN eco.t_classes_sections ON classe_id = t_classes.oid JOIN eco.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code = ''CTI_TYPMVT'' AND t_classes_sections.code = ''01'' ) AND sortie_montant != 0 AND v_factures_lignes_c_1.montant_facture > 0 AND v_factures_lignes_c_5.montant_facture IS NULL GROUP BY 1,2,3,4,5,6 HAVING base.cti_division(sum(sortie_montant), v_factures_lignes_c_1.montant_facture) > 0.8; SELECT sejour_id, no_sejour, date_sortie, lpp_codes, montant_facture, sortie_montant, rapport FROM w_res WHERE 1 = 1', 'montant_facture, sortie_montant, rapport', 99), +(1, 'CTI_LPP_INC_80', 2, '', '', 0), +(1, 'CTI_LPP_INC_80', 3, '', '', 0), +(1, 'CTI_LPP_NON_FAC', 1, 'SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, t_lpp.code as lpp_code, t_lpp_sus.date_debut as date_debut_lpp, t_lpp_sus.date_fin as date_fin_lpp, sortie_montant-entree_montant AS sortie_montant, montant_facture FROM eco.p_sejours JOIN eco.p_mouvements_articles ON mouvement_id = p_mouvements_articles.oid JOIN activite.v_sejours_1 ON p_sejours.sejour_id = v_sejours_1.sejour_id JOIN base.t_finess ON v_sejours_1.finess = t_finess.code JOIN eco.t_lpp_c on lpp_id = t_lpp_c.oid JOIN pmsi.t_lpp on t_lpp.code = t_lpp_c.code LEFT JOIN base.t_lpp_sus on t_lpp_sus.lpp_id = t_lpp_c.oid AND date BETWEEN t_lpp_sus.date_debut AND t_lpp_sus.date_fin LEFT JOIN activite.v_factures_lignes_c_5 on p_sejours.no_sejour = v_factures_lignes_c_5.no_sejour AND (rubrique_facturation_id IN ( SELECT to_id FROM activite.t_listes LEFT JOIN activite.t_listes_contenu ON liste_id = t_listes.oid WHERE t_listes.code = ''CTI_PROTHESE_R'') OR v_factures_lignes_c_5.lpp_id = t_lpp_c.oid) WHERE p_mouvements_articles.lpp_id != 0 AND type_mouvement_id IN (SELECT to_id FROM eco.t_classes JOIN eco.t_classes_sections ON classe_id = t_classes.oid JOIN eco.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code = ''CTI_TYPMVT'' and t_classes_sections.code = ''01'') AND t_lpp_sus.date_debut IS NOT NULL AND (sortie_montant-entree_montant) > 0 AND v_factures_lignes_c_5.montant_facture IS NULL AND v_sejours_1.type_sejour = ''1''', 'lpp_code, date_debut_lpp, date_fin_lpp, sortie_montant', 99), +(1, 'CTI_LPP_NON_FAC', 2, '', '', 0), +(1, 'CTI_LPP_NON_FAC', 3, '', '', 0), +(1, 'CTI_MULTI_TYPES', 1, 'SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, nb_ambulatoires, nb_entrees_directes, nb_seances, nb_externes FROM activite.v_mouvements_sejour_2 JOIN activite.v_sejours_1 using (no_sejour) WHERE nb_ambulatoires + nb_entrees_directes + nb_seances + nb_externes > 1', 'nb_ambulatoires, nb_entrees_directes, nb_seances, nb_externes', 99), +(1, 'CTI_MULTI_TYPES', 2, '', '', 0), +(1, 'CTI_MULTI_TYPES', 3, '', '', 0), +(1, 'CTI_MVT_ETA_KO', 1, 'lieu_etage_id IN [LI:CTI_ETA_KO]', 'lieu_etage_code', 1), +(1, 'CTI_MVT_ETA_KO', 2, '', '', 0), +(1, 'CTI_MVT_ETA_KO', 3, '', '', 0), +(1, 'CTI_MVT_ETA_NULL', 1, 'lieu_etage_id = 0 OR lieu_etage_id is null', '', 1), +(1, 'CTI_MVT_ETA_NULL', 2, '', '', 0), +(1, 'CTI_MVT_ETA_NULL', 3, '', '', 0), +(1, 'CTI_MVT_SER_EXT', 1, 'lieu_service_code = ''FSEH_04'' OR lieu_service_code = ''SEUR_04''', 'lieu_service_code', 1), +(1, 'CTI_MVT_SER_EXT', 2, '', '', 0), +(1, 'CTI_MVT_SER_EXT', 3, '', '', 0), +(1, 'CTI_MVT_SER_KO', 1, 'lieu_service_id IN [LI:CTI_SER_KO]', 'lieu_service_code', 1), +(1, 'CTI_MVT_SER_KO', 2, '', '', 0), +(1, 'CTI_MVT_SER_KO', 3, '', '', 0), +(1, 'CTI_MVT_SER_NULL', 1, 'lieu_service_id = 0 OR lieu_service_id is null', '', 1), +(1, 'CTI_MVT_SER_NULL', 2, '', '', 0), +(1, 'CTI_MVT_SER_NULL', 3, '', '', 0), +(1, 'CTI_PRE_SUP_30', 1, 'SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, v_sejours_1.date_entree, v_sejours_1.code_sorti FROM activite.v_sejours_1 WHERE ((select valeur_date from activite.t_divers where code=''NOW'')- v_sejours_1.date_entree) >30 AND v_sejours_1.code_sorti<>''1'' AND v_sejours_1.type_sejour <> ''9'' ', '', 99), +(1, 'CTI_PRE_SUP_30', 2, '', '', 0), +(1, 'CTI_PRE_SUP_30', 3, '', '', 0), +(1, 'CTI_SEJSMR_SUPP90', 1, 'SELECT + v_sejours_1.sejour_id, + v_sejours_1.no_sejour, + v_sejours_1.date_sortie, + v_sejours_1.date_entree, + v_sejours_1.code_sorti +FROM + activite.v_sejours_1 + JOIN activite.t_lieux_c on lieu_sortie_id = t_lieux_c.oid +WHERE + date(now()) - v_sejours_1.date_entree > 90 + AND v_sejours_1.code_sorti <> ''1'' + AND v_sejours_1.type_sejour <> ''9'' + AND t_lieux_c.type_t2a = ''2'' + AND v_sejours_1.mode_traitement_code <> ''04'' + AND NOT EXISTS ( + SELECT + v_sejours_1.no_sejour + FROM + activite.p_factures + WHERE + code_facture = ''1'' + AND v_sejours_1.no_sejour = p_factures.no_sejour + ) +', '', 99), +(1, 'CTI_SEJSMR_SUPP90', 2, '', '', 0), +(1, 'CTI_SEJSMR_SUPP90', 3, '', '', 0), +(1, 'CTI_SEJ_AMB_03', 1, 'mode_traitement_code = ''03'' AND lieu_reference_unite_fonctionnelle_id IN [LI:CTI_UF_AMBU] AND nb_ambulatoires = 1', 'lieu_reference_service_code', 1), +(1, 'CTI_SEJ_AMB_03', 2, '', '', 0), +(1, 'CTI_SEJ_AMB_03', 3, '', '', 0), +(1, 'CTI_SEJ_DUR_30', 1, 'duree > 30', 'duree', 0), +(1, 'CTI_SEJ_DUR_30', 2, '', '', 0), +(1, 'CTI_SEJ_DUR_30', 3, '', '', 0), +(1, 'CTI_SEJ_DUR_NEG', 1, 'date_sortie < date_entree', 'duree', 0), +(1, 'CTI_SEJ_DUR_NEG', 2, '', '', 0), +(1, 'CTI_SEJ_DUR_NEG', 3, '', '', 0), +(1, 'CTI_SEJ_MED_KO', 1, 'medecin_adm_sejour_id IN [LI:CTI_MED_KO]', 'medecin_adm_sejour_code', 0), +(1, 'CTI_SEJ_MED_KO', 2, '', '', 0), +(1, 'CTI_SEJ_MED_KO', 3, '', '', 0), +(1, 'CTI_SEJ_MED_NULL', 1, '((medecin_adm_sejour_id = 0 OR medecin_adm_sejour_id is null)AND (type_sejour<>9))', '', 0), +(1, 'CTI_SEJ_MED_NULL', 2, '', '', 0), +(1, 'CTI_SEJ_MED_NULL', 3, '', '', 0), +(1, 'CTI_SEJ_SER_FINESS', 1, 'SELECT + v_sejours_1.sejour_id, + v_sejours_1.no_sejour, + v_sejours_1.date_sortie, + service_facturation_code +FROM + activite.v_sejours_1 + JOIN + ( + SELECT t_services_facturation.oid, t_services_facturation.code as service_facturation_code, t_finess.code AS finess_code + FROM activite.t_services_facturation + LEFT JOIN base.t_finess on t_finess.oid = t_services_facturation.finess_id + ) subview ON subview.oid = v_sejours_1.lieu_sortie_service_id +WHERE + subview.finess_code is null', 'service_facturation_code', 99), +(1, 'CTI_SEJ_SER_FINESS', 2, '', '', 0), +(1, 'CTI_SEJ_SER_FINESS', 3, '', '', 0), +(1, 'CTI_UCD_INC_80', 1, 'DROP TABLE IF EXISTS w_res; CREATE TEMP TABLE w_res AS SELECT v_sejours_1.sejour_id ,v_sejours_1.no_sejour ,v_sejours_1.date_sortie ,type_sejour ,code_prevu ,v_factures_lignes_c_1.montant_facture ,array_to_string(array_agg(DISTINCT t_ucd.code),'','') AS ucd_codes ,sum(sortie_montant - entree_montant) AS sortie_montant ,round(100*base.cti_division(sum(sortie_montant - entree_montant), v_factures_lignes_c_1.montant_facture),2) AS rapport FROM eco.p_sejours JOIN eco.p_mouvements_articles ON mouvement_id = p_mouvements_articles.oid JOIN activite.v_sejours_1 ON p_sejours.sejour_id = v_sejours_1.sejour_id LEFT JOIN base.t_finess ON v_sejours_1.finess = t_finess.code JOIN eco.t_ucd_c ON ucd_id = t_ucd_c.oid JOIN pmsi.t_ucd ON t_ucd_c.code = t_ucd.code LEFT JOIN pmsi.t_prestations ON t_ucd.prestation_defaut_id = t_prestations.oid LEFT JOIN pmsi.t_ucd_tarifs ON t_ucd_tarifs.ucd_id = t_ucd.oid AND DATE BETWEEN t_ucd_tarifs.date_debut AND LEAST(t_ucd_tarifs.date_fin, top_taa_date_fin) JOIN ( SELECT no_sejour ,sum(montant_facture) AS montant_facture FROM activite.v_factures_lignes_c_1 WHERE prestation_code = ''GHS'' GROUP BY 1 ) v_factures_lignes_c_1 ON v_factures_lignes_c_1.no_sejour = p_sejours.no_sejour LEFT JOIN ( SELECT no_sejour ,ucd_id ,rubrique_facturation_id ,sum(montant_facture) AS montant_facture FROM activite.v_factures_lignes_c_5 GROUP BY 1,2,3 ) v_factures_lignes_c_5 ON p_sejours.no_sejour = v_factures_lignes_c_5.no_sejour AND ( rubrique_facturation_id IN ( SELECT to_id FROM activite.t_listes LEFT JOIN activite.t_listes_contenu ON liste_id = t_listes.oid WHERE t_listes.code = ''CTI_UCD_R'' ) OR t_ucd_c.oid = v_factures_lignes_c_5.ucd_id ) WHERE p_mouvements_articles.ucd_id != 0 AND type_mouvement_id IN ( SELECT to_id FROM eco.t_classes JOIN eco.t_classes_sections ON classe_id = t_classes.oid JOIN eco.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code = ''CTI_TYPMVT'' AND t_classes_sections.code = ''01'' ) AND (sortie_montant - entree_montant) != 0 AND v_factures_lignes_c_1.montant_facture > 0 AND v_factures_lignes_c_5.montant_facture IS NULL GROUP BY 1,2,3,4,5,6 HAVING base.cti_division(sum(sortie_montant), v_factures_lignes_c_1.montant_facture) > 0.8; SELECT sejour_id, no_sejour, date_sortie,ucd_codes, montant_facture, sortie_montant, rapport FROM w_res WHERE 1 = 1', 'ucd_codes, montant_facture, sortie_montant, rapport', 99), +(1, 'CTI_UCD_INC_80', 2, '', '', 0), +(1, 'CTI_UCD_INC_80', 3, '', '', 0), +(1, 'CTI_UCD_NON_FACT', 1, 'SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, t_ucd.code AS ucd_code, t_ucd_tarifs.date_debut AS date_debut_ucd, t_ucd_tarifs.date_fin AS date_fin_ucd, sortie_montant-entree_montant AS sortie_montant FROM eco.p_sejours JOIN eco.p_mouvements_articles ON mouvement_id = p_mouvements_articles.oid JOIN activite.v_sejours_1 ON p_sejours.sejour_id = v_sejours_1.sejour_id JOIN eco.t_ucd_c on ucd_id = t_ucd_c.oid JOIN pmsi.t_ucd on t_ucd_c.code = t_ucd.code JOIN pmsi.t_ucd_tarifs on t_ucd_tarifs.ucd_id = t_ucd.oid AND date BETWEEN t_ucd_tarifs.date_debut AND LEAST(t_ucd_tarifs.date_fin,top_taa_date_fin) LEFT JOIN activite.v_factures_lignes_c_5 on p_sejours.sejour_id = v_factures_lignes_c_5.sejour_id AND (rubrique_facturation_id IN (SELECT to_id FROM activite.t_listes JOIN activite.t_listes_contenu ON t_listes.oid = liste_id WHERE t_listes.code = ''CTI_UCD_R'') OR v_factures_lignes_c_5.lpp_id = t_ucd_c.oid) WHERE p_mouvements_articles.ucd_id != 0 AND sortie_montant != 0 AND v_sejours_1.type_sejour = ''1'' AND v_factures_lignes_c_5.montant_facture is null', 'ucd_code, date_debut_ucd, date_fin_ucd, sortie_montant', 99), +(1, 'CTI_UCD_NON_FACT', 2, '', '', 0), +(1, 'CTI_UCD_NON_FACT', 3, '', '', 0), +(1, 'CTI_VAL_SUP_20K', 1, 'montant_encours>20000', '', 2), +(1, 'CTI_VAL_SUP_20K', 2, '', '', 0), +(1, 'CTI_VAL_SUP_20K', 3, '', '', 0) +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_expert_controle_rule +SET numero = 1 +WHERE numero IS NULL or NUMERO NOT IN (1,2,3); + +UPDATE activite.t_expert_controle_rule +SET + sqlcmd_where = w_dbsetup.sqlcmd_where, + sqlcmd_justificatif = w_dbsetup.sqlcmd_justificatif, + table_id = w_dbsetup.tab +FROM w_dbsetup + JOIN activite.t_expert_controle ON t_expert_controle.code = w_dbsetup.controle_code +WHERE t_expert_controle_rule.controle_id = t_expert_controle.oid AND + t_expert_controle_rule.numero = w_dbsetup.numero AND + ( + t_expert_controle_rule.sqlcmd_where IS DISTINCT FROM w_dbsetup.sqlcmd_where OR + t_expert_controle_rule.table_id IS DISTINCT FROM w_dbsetup.tab OR + t_expert_controle_rule.sqlcmd_justificatif IS DISTINCT FROM w_dbsetup.sqlcmd_justificatif + ); + +INSERT INTO activite.t_expert_controle_rule ( + controle_id, + numero, + sqlcmd_where, + sqlcmd_justificatif, + table_id +) +SELECT + t_expert_controle.oid, + w_dbsetup.numero, + w_dbsetup.sqlcmd_where, + w_dbsetup.sqlcmd_justificatif, + w_dbsetup.tab +FROM w_dbsetup + JOIN activite.t_expert_controle ON t_expert_controle.code = w_dbsetup.controle_code + LEFT JOIN activite.t_expert_controle_rule ON + t_expert_controle_rule.controle_id = t_expert_controle.oid AND + t_expert_controle_rule.numero = w_dbsetup.numero +WHERE t_expert_controle_rule.oid IS NULL; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_forme_activite.SQL b/db/data/dbdata_activite_t_forme_activite.SQL new file mode 100644 index 0000000..c1ff2d1 --- /dev/null +++ b/db/data/dbdata_activite_t_forme_activite.SQL @@ -0,0 +1,102 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid, + code, + texte, + texte_court + FROM activite.t_forme_activite + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + texte_court +) +VALUES +(0, '***', 'Non renseignée', 'Non renseignée'), +(1, '111', 'Hospitalisation complète MCO Médecine', 'Hospitalisation complète MCO Médecine'), +(1, '112', 'Hospitalisation complète MCO Chirurgie', 'Hospitalisation complète MCO Chirurgie'), +(1, '113', 'Hospitalisation complète MCO Obstétrique', 'Hospitalisation complète MCO Obstétrique'), +(1, '114', 'Hospitalisation complète MCO Esthétique', 'Hospitalisation complète MCO Esthétique'), +(1, '117', 'Hospitalisation complète MCO A préciser', 'Hospitalisation complète MCO A préciser'), +(1, '118', 'Hospitalisation complète MCO A préciser', 'Hospitalisation complète MCO A préciser'), +(1, '119', 'Hospitalisation complète MCO Autre', 'Hospitalisation complète MCO Autre'), +(1, '121', 'Hospitalisation de jour MCO Médecine', 'Hospitalisation de jour MCO Médecine'), +(1, '122', 'Hospitalisation de jour MCO Chirurgie', 'Hospitalisation de jour MCO Chirurgie'), +(1, '123', 'Hospitalisation de jour MCO Obstétrique', 'Hospitalisation de jour MCO Obstétrique'), +(1, '124', 'Hospitalisation de jour MCO Esthétique', 'Hospitalisation de jour MCO Esthétique'), +(1, '127', 'Hospitalisation de jour MCO A préciser', 'Hospitalisation de jour MCO A préciser'), +(1, '128', 'Hospitalisation de jour MCO A préciser', 'Hospitalisation de jour MCO A préciser'), +(1, '129', 'Hospitalisation de jour MCO Autre', 'Hospitalisation de jour MCO Autre'), +(1, '131', 'Séances de dialyse', 'Séances de dialyse'), +(1, '132', 'Séances de chimiothérapie', 'Séances de chimiothérapie'), +(1, '133', 'Séances de transfusion', 'Séances de transfusion'), +(1, '139', 'Autres séances', 'Autres séances'), +(1, '211', 'Hospitalisation complète SSR Soins de Suite Médicalisés', 'Hospitalisation complète SSR Soins de Suite Médicalisés'), +(1, '212', 'Hospitalisation complète SSR Rééducation Fonctionnelle', 'Hospitalisation complète SSR Rééducation Fonctionnelle'), +(1, '217', 'Hospitalisation complète SSR A préciser', 'Hospitalisation complète SSR A préciser'), +(1, '218', 'Hospitalisation complète SSR A préciser', 'Hospitalisation complète SSR A préciser'), +(1, '219', 'Hospitalisation complète SSR Autre', 'Hospitalisation complète SSR Autre'), +(1, '221', 'Hospitalisation de jour SSR Soins de Suite Médicalisés', 'Hospitalisation de jour SSR Soins de Suite Médicalisés'), +(1, '222', 'Hospitalisation de jour SSR Rééducation Fonctionnelle', 'Hospitalisation de jour SSR Rééducation Fonctionnelle'), +(1, '227', 'Hospitalisation de jour SSR A préciser', 'Hospitalisation de jour SSR A préciser'), +(1, '228', 'Hospitalisation de jour SSR A préciser', 'Hospitalisation de jour SSR A préciser'), +(1, '229', 'Hospitalisation de jour SSR Autre', 'Hospitalisation de jour SSR Autre'), +(1, '311', 'Hospitalisation complète PSY', 'Hospitalisation complète PSY'), +(1, '317', 'Hospitalisation complète PSY A préciser', 'Hospitalisation complète PSY A préciser'), +(1, '318', 'Hospitalisation complète PSY A préciser', 'Hospitalisation complète PSY A préciser'), +(1, '319', 'Hospitalisation complète PSY Autre', 'Hospitalisation complète PSY Autre'), +(1, '321', 'Hospitalisation de jour PSY', 'Hospitalisation de jour PSY'), +(1, '327', 'Hospitalisation de jour PSY A préciser', 'Hospitalisation de jour PSY A préciser'), +(1, '328', 'Hospitalisation de jour PSY A préciser', 'Hospitalisation de jour PSY A préciser'), +(1, '329', 'Hospitalisation de jour PSY Autre', 'Hospitalisation de jour PSY Autre'), +(1, '401', 'Hospitalisation à Domicile', 'Hospitalisation à Domicile'), +(1, '501', 'EHPAD', 'EHPAD'), +(1, '502', 'USLD', 'USLD'), +(1, '503', 'Foyer de vie', 'Foyer de vie'), +(1, '701', 'Activité SE', 'Activité SE'), +(1, '702', 'Urgences Externes', 'Urgences Externes'), +(1, '709', 'Autres externes', 'Autres externes'), +(1, '999', 'Autres formes d''activité', 'Autres formes d''activité') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_forme_activite SET + code = w_dbsetup.code, + texte = w_dbsetup.texte, texte_court = w_dbsetup.texte_court +FROM w_dbsetup +WHERE w_dbsetup.oid = t_forme_activite.oid AND w_dbsetup.oid = 0; + +UPDATE activite.t_forme_activite SET + texte = w_dbsetup.texte, + texte_court = w_dbsetup.texte +FROM w_dbsetup +WHERE activite.t_forme_activite.code = w_dbsetup.code AND + ( + activite.t_forme_activite.texte IS DISTINCT FROM w_dbsetup.texte OR + activite.t_forme_activite.texte_court IS DISTINCT FROM w_dbsetup.texte_court + ) +; + +INSERT INTO activite.t_forme_activite(oid, code, texte, texte_court) + SELECT oid, code, texte, texte_court + FROM w_dbsetup + WHERE oid = 0 AND + oid NOT IN (SELECT oid FROM activite.t_forme_activite) +; + +INSERT INTO activite.t_forme_activite(code, texte, texte_court) + SELECT code, texte, texte_court + FROM w_dbsetup + WHERE oid <> 0 AND + code NOT IN (SELECT code FROM activite.t_forme_activite WHERE code IS NOT NULL) +; + +SELECT activite.cti_update_schema_classes('FORMEACTIVITE'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_indicateur_theme.SQL b/db/data/dbdata_activite_t_indicateur_theme.SQL new file mode 100644 index 0000000..192be60 --- /dev/null +++ b/db/data/dbdata_activite_t_indicateur_theme.SQL @@ -0,0 +1,100 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_indicateur_theme.oid = 0 THEN t_indicateur_theme.oid ELSE 1 END AS oid, + t_indicateur_theme.code, + t_indicateur_theme.texte, + t_indicateur_theme.level, + COALESCE(t_indicateur_parent_theme.code,'') AS parent_code + FROM activite.t_indicateur_theme + LEFT JOIN activite.t_indicateur_theme t_indicateur_parent_theme ON t_indicateur_theme.parent_id = t_indicateur_parent_theme.oid + ORDER BY 2 LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + level, + parent_code +) +VALUES +(1, '--0', 'Source', 1, ''), +(1, '--1', 'Thèmes principaux', 1, ''), +(1, '--2', 'Période', 1, ''), +(1, '--3', 'Rapports et essentiels', 1, ''), +(1, '--4', 'Type de donnée', 1, ''), +(1, '--DACTE', 'Date acte', 2, '--2'), +(1, '--DCOMPTABLE', 'Date comptable', 2, '--2'), +(1, '--DFACTURE', 'Date facture', 2, '--2'), +(1, '--DGROUPAGE', 'Date groupage', 2, '--2'), +(1, '--DINTERVENTION', 'Date intervention', 2, '--2'), +(1, '--DJOUR', 'Date jour', 2, '--2'), +(1, '--DMOUVEMENT', 'Date mouvement', 2, '--2'), +(1, '--DSORTIE', 'Date sortie', 2, '--2'), +(1, '--DVENTES', 'Date ventes', 2, '--2'), +(1, '--R1', 'Rapports CTI', 2, '--3'), +(1, '--R3', 'Rapports Etablissement', 2, '--3'), +(1, '--S1', 'Indicateurs CTI', 2, '--0'), +(1, '--S2', 'Indicateurs Groupe', 2, '--0'), +(1, '--S3', 'Indicateurs spécifiques Etablissement', 2, '--0'), +(1, '--T0001', 'Superviseur d''activité', 2, '--1'), +(1, '--T0002', 'Occupation', 2, '--1'), +(1, '--T0003', 'Places', 2, '--1'), +(1, '--T0004', 'Facturation Clinique', 2, '--1'), +(1, '--T0005', 'Clients Clinique', 2, '--1'), +(1, '--T0006', 'Facturation Honoraires', 2, '--1'), +(1, '--T0007', 'Clients Honoraire', 2, '--1'), +(1, '--T0008', 'En-cours', 2, '--1'), +(1, '--T0011', 'Occupation bloc', 2, '--1'), +(1, '--T0097', 'Calendrier', 2, '--1'), +(1, '-TS', 'Type de séjour', 1, ''), +(1, '-TS1', 'Hospitalisé', 2, '-TS'), +(1, '-TS2', 'Ambulatoires', 2, '-TS'), +(1, '-TS3', 'Externes', 2, '-TS'), +(1, '-TS5', 'Séances', 2, '-TS'), +(1, 'CA', 'Chiffre d''affaire', 2, '--4'), +(1, 'CACP', 'C.A. Comptabilisé', 3, 'CA'), +(1, 'CAF', 'C.A. Facturé', 3, 'CA'), +(1, 'CAHON', 'C.A. Honoraire', 3, 'CA'), +(1, 'CARG', 'C.A. Réglé', 3, 'CA'), +(1, 'CASL', 'C.A. Solde', 3, 'CA'), +(1, 'CAV', 'C.A. Valorisé', 3, 'CA'), +(1, 'CAVF', 'C.A. Facturé et Valorisé', 3, 'CA'), +(1, 'NBENT', 'Nombre Entrées', 3, 'NOMBRE'), +(1, 'NBJOU', 'Nombre Jours', 3, 'NOMBRE'), +(1, 'NBRUB', 'Nombre Rubriques', 3, 'NOMBRE'), +(1, 'NBSEJ', 'Nombre Séjours', 3, 'NOMBRE'), +(1, 'NBSOR', 'Nombre Sorties', 3, 'NOMBRE'), +(1, 'NOMBRE', 'Nombre', 2, '--4'), +(1, 'TAUX', 'Taux', 2, '--4') +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_indicateur_theme (code, texte, level) +SELECT code, texte, level +FROM w_dbsetup +WHERE code NOT IN (SELECT code FROM activite.t_indicateur_theme WHERE t_indicateur_theme.code IS NOT NULL) +; + +UPDATE activite.t_indicateur_theme SET + texte = w_dbsetup.texte, + level = w_dbsetup.level, + parent_id = COALESCE(t_indicateur_parent_theme.oid,0) +FROM w_dbsetup +LEFT JOIN activite.t_indicateur_theme t_indicateur_parent_theme ON w_dbsetup.parent_code = t_indicateur_parent_theme.code +WHERE t_indicateur_theme.code = w_dbsetup.code AND + ( + t_indicateur_theme.texte IS DISTINCT FROM w_dbsetup.texte OR + t_indicateur_theme.level IS DISTINCT FROM w_dbsetup.level OR + t_indicateur_theme.parent_id IS DISTINCT FROM COALESCE(t_indicateur_parent_theme.oid,0) + ) +; + + +SELECT base.cti_reorganize_indicateur_theme('activite') +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_indicateurs.SQL b/db/data/dbdata_activite_t_indicateurs.SQL new file mode 100755 index 0000000..9236032 --- /dev/null +++ b/db/data/dbdata_activite_t_indicateurs.SQL @@ -0,0 +1,856 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_indicateurs.oid = 0 THEN t_indicateurs.oid ELSE 1 END AS oid, + t_indicateurs.code, + t_indicateurs.table_name, + t_indicateurs.texte, + t_indicateurs.entete_etendue, + t_indicateurs.entete, + t_indicateurs.column_name, + t_indicateurs.is_cti, + t_indicateurs.total_function, + t_indicateurs.output_format, + t_indicateurs.width, + t_indicateurs.dimension_date_1, + t_indicateurs.dimension_date_2, + t_indicateurs.dimension_date_3, + t_indicateurs.dimension_date_4, + t_indicateurs.dimension_date_5, + t_indicateurs.dimension_date, + t_indicateurs_1.code as indicateur_associe_1_code, + t_indicateurs_2.code as indicateur_associe_2_code, + t_indicateurs_3.code as indicateur_associe_3_code, + t_indicateurs_4.code as indicateur_associe_4_code, + t_indicateurs_5.code as indicateur_associe_5_code, + t_indicateurs_6.code as indicateur_associe_6_code, + t_indicateurs_7.code as indicateur_associe_7_code, + t_indicateurs_8.code as indicateur_associe_8_code, + t_indicateurs_9.code as indicateur_associe_9_code, + t_indicateurs_10.code as indicateur_associe_10_code, + t_indicateurs_11.code as indicateur_associe_11_code, + t_indicateurs_12.code as indicateur_associe_12_code, + t_indicateurs_13.code as indicateur_associe_13_code, + t_indicateurs_14.code as indicateur_associe_14_code, + t_indicateurs_15.code as indicateur_associe_15_code, + t_indicateurs_16.code as indicateur_associe_16_code, + t_indicateurs_17.code as indicateur_associe_17_code, + t_indicateurs_18.code as indicateur_associe_18_code, + t_indicateurs_19.code as indicateur_associe_19_code, + t_indicateurs_20.code as indicateur_associe_20_code, + t_indicateurs_reference.code as indicateur_reference_code, + t_indicateurs.is_template, + t_indicateurs_template.code as indicateur_template_code, + COALESCE(t_indicateurs.variable_definition[1],'') AS variable_definition_1, + COALESCE(t_indicateurs.variable_definition[2],'') AS variable_definition_2, + COALESCE(t_indicateurs.variable_definition[3],'') AS variable_definition_3, + COALESCE(t_indicateurs.variable_value[1],'') AS variable_value_1, + COALESCE(t_indicateurs.variable_value[2],'') AS variable_value_2, + COALESCE(t_indicateurs.variable_value[3],'') AS variable_value_3, + COALESCE(t_indicateurs.variable_value_text[1],'') AS variable_value_text_1, + COALESCE(t_indicateurs.variable_value_text[2],'') AS variable_value_text_2, + COALESCE(t_indicateurs.variable_value_text[3],'') AS variable_value_text_3, + t_indicateurs.description, + COALESCE(t_indicateur_theme_1.code,'') AS theme_1_code, + COALESCE(t_indicateur_theme_2.code,'') AS theme_2_code, + COALESCE(t_indicateur_theme_3.code,'') AS theme_3_code, + COALESCE(t_indicateur_theme_4.code,'') AS theme_4_code, + COALESCE(t_indicateur_theme_5.code,'') AS theme_5_code, + COALESCE(t_indicateur_theme_6.code,'') AS theme_6_code, + COALESCE(t_indicateur_theme_7.code,'') AS theme_7_code, + COALESCE(t_indicateur_theme_8.code,'') AS theme_8_code, + COALESCE(t_indicateur_theme_9.code,'') AS theme_9_code + FROM activite.t_indicateurs + LEFT JOIN activite.t_indicateurs t_indicateurs_1 ON (t_indicateurs.indicateur_associe_1_id = t_indicateurs_1.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_2 ON (t_indicateurs.indicateur_associe_2_id = t_indicateurs_2.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_3 ON (t_indicateurs.indicateur_associe_3_id = t_indicateurs_3.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_4 ON (t_indicateurs.indicateur_associe_4_id = t_indicateurs_4.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_5 ON (t_indicateurs.indicateur_associe_5_id = t_indicateurs_5.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_6 ON (t_indicateurs.indicateur_associe_6_id = t_indicateurs_6.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_7 ON (t_indicateurs.indicateur_associe_7_id = t_indicateurs_7.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_8 ON (t_indicateurs.indicateur_associe_8_id = t_indicateurs_8.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_9 ON (t_indicateurs.indicateur_associe_9_id = t_indicateurs_9.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_10 ON (t_indicateurs.indicateur_associe_10_id = t_indicateurs_10.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_11 ON (t_indicateurs.indicateur_associe_11_id = t_indicateurs_11.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_12 ON (t_indicateurs.indicateur_associe_12_id = t_indicateurs_12.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_13 ON (t_indicateurs.indicateur_associe_13_id = t_indicateurs_13.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_14 ON (t_indicateurs.indicateur_associe_14_id = t_indicateurs_14.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_15 ON (t_indicateurs.indicateur_associe_15_id = t_indicateurs_15.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_16 ON (t_indicateurs.indicateur_associe_16_id = t_indicateurs_16.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_17 ON (t_indicateurs.indicateur_associe_17_id = t_indicateurs_17.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_18 ON (t_indicateurs.indicateur_associe_18_id = t_indicateurs_18.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_19 ON (t_indicateurs.indicateur_associe_19_id = t_indicateurs_19.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_20 ON (t_indicateurs.indicateur_associe_20_id = t_indicateurs_20.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_reference ON (t_indicateurs.indicateur_reference_id = t_indicateurs_reference.oid) + LEFT JOIN activite.t_indicateurs t_indicateurs_template ON (t_indicateurs.indicateur_template_id = t_indicateurs_template.oid) + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_1 ON t_indicateur_theme_1.oid = t_indicateurs.theme_id[1] + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_2 ON t_indicateur_theme_2.oid = t_indicateurs.theme_id[2] + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_3 ON t_indicateur_theme_3.oid = t_indicateurs.theme_id[3] + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_4 ON t_indicateur_theme_4.oid = t_indicateurs.theme_id[4] + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_5 ON t_indicateur_theme_5.oid = t_indicateurs.theme_id[5] + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_6 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[6] + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_7 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[7] + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_8 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[8] + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_9 ON t_indicateur_theme_6.oid = t_indicateurs.theme_id[9] + WHERE t_indicateurs.is_cti = '1' AND + t_indicateurs.code LIKE 'CTI%' AND + t_indicateurs.indicateur_reference_id = 0 + ORDER BY t_indicateurs.code + LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + table_name, + texte, + entete_etendue, + entete, + column_name, + is_cti, + total_function, + output_format, + width, + dimension_date_1, + dimension_date_2, + dimension_date_3, + dimension_date_4, + dimension_date_5, + dimension_date, + indicateur_associe_1_code, + indicateur_associe_2_code, + indicateur_associe_3_code, + indicateur_associe_4_code, + indicateur_associe_5_code, + indicateur_associe_6_code, + indicateur_associe_7_code, + indicateur_associe_8_code, + indicateur_associe_9_code, + indicateur_associe_10_code, + indicateur_associe_11_code, + indicateur_associe_12_code, + indicateur_associe_13_code, + indicateur_associe_14_code, + indicateur_associe_15_code, + indicateur_associe_16_code, + indicateur_associe_17_code, + indicateur_associe_18_code, + indicateur_associe_19_code, + indicateur_associe_20_code, + indicateur_reference_code, + is_template, + indicateur_template_code, + variable_definition_1, + variable_definition_2, + variable_definition_3, + variable_value_1, + variable_value_2, + variable_value_3, + variable_value_text_1, + variable_value_text_2, + variable_value_text_3, + description, + theme_1_code, + theme_2_code, + theme_3_code, + theme_4_code, + theme_5_code, + theme_6_code, + theme_7_code, + theme_8_code, + theme_9_code +) +VALUES +(1, 'CTIAGEMOY', '*CALC', 'Age moyen Hospit et Ambu', 'Age moyen Hospit et Ambu', 'Age moy', 'base.cti_division([1], [2])', '1', '*CALC', '#,0', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTIAGESUM', 'CTI_NB_SEJ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Age moyen des patients ayant effectués des séjours dans l''établissement (hors séances)', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTIAGESUM', 'SEJOURS', 'Somme des ages', 'Somme des ages', 'Somme Ages', 'CASE WHEN type_sejour = ''1'' OR type_sejour = ''2'' THEN age ELSE null END', '1', 'SUM', '#', 0, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Somme les o/ooges des patients des séjours en sévérité de type ''1'' et ''2''', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_ADM', 'OCCUPATION', 'NB Admissions sur la période', 'Admissions sur la période', 'Adm Per', 'nb_ambulatoires + CASE WHEN type_sejour = ''5'' THEN 0 ELSE nb_seances END + nb_externes + nb_entrees_directes', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''admissions de patients sur la période choisie', 'NBENT', '', '', '', '', '', '', '', ''), +(1, 'CTI_ADMHCP', 'OCCUPATION', 'SSR - Admissions sur la période (Hospitalisaiton complète)', 'SSR - Admissions sur la période (Hospitalisaiton complète)', 'SSR Adm Per HCOMP', 'CASE WHEN mode_traitement_id = ''3'' THEN GREATEST(nb_ambulatoires, nb_seances, nb_externes, nb_entrees_directes) ELSE 0 END', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''admissions de patients sur la période choisie en Hospitalisation Complète', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_ADMHDJ', 'OCCUPATION', 'SSR - Admissions sur la période (Hospitalisaiton de jour)', 'SSR - Admissions sur la période (Hospitalisaiton de jour)', 'SSR Adm Per HDJ', 'CASE WHEN mode_traitement_id = ''4'' THEN GREATEST(nb_ambulatoires, nb_seances, nb_externes, nb_entrees_directes) ELSE 0 END', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''admissions de patients sur la période choisie en Hospitalisation de Jour', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_ADMPREHCP', '*CALC', 'SSR - Admissions avant période (Hospitalisation complète)', 'SSR - Admissions avant période (Hospitalisation complète)', 'SSR Adm Pre H COMP', '[1] - [2]', '1', '*CALC', '#', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSEJCP', 'CTI_ADMHCP', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''admissions de patients avant la période choisie en Hospitalisation Complète', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_ADMPREHDJ', '*CALC', 'SSR - Admissions avant période (Hospitalisation de jour)', 'SSR - Admissions avant période (Hospitalisation de jour)', 'SSR Adm Pre HDJ', '[1] - [2]', '1', '*CALC', '#', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSEJHDJ', 'CTI_ADMHDJ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''admissions de patients avant la période choisie en Hospitalisation de Jour', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_ADM_PRE', '*CALC', 'NB Admissions avant période', 'Admissions avant période', 'Adm Pre', '[1] - [2]', '1', '*CALC', '#', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSEJO', 'CTI_ADM', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''admissions de patients avant la période choisie', 'NBENT', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_ADM_PRE_PER', '*CALC', 'NB Admissions avant période', 'Admissions avant période', 'Adm < Per', '[1] - [2]', '1', '*CALC', '#', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSEJO', 'CTI_NBENT_SAES', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''admissions de patients avant la période choisie', '-TS1', '-TS2', '-TS3', '-TS5', 'NBENT', 'NBSEJ', '', '', ''), +(1, 'CTI_ATU_MT_ENC', 'FACTURATION_CLINIQUE', 'CA ATU Valorisé Clinique', 'Montant ATU Valorisé Clinique', 'Montant ATU Valorisé Clinique', 'CASE WHEN prestation_code IN (''ATU'',''FPU'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des ATU valorisés', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_ATU_MT_FAC', 'FACTURATION_CLINIQUE', 'CA ATU Facturé', 'Montant ATU facturé', 'Montant ATU facturé', 'CASE WHEN prestation_code IN(''ATU'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des ATU facturés', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_ATU_MT_TOT', 'FACTURATION_CLINIQUE', 'CA ATU Facturé + Valorisé', 'Montant ATU Facturé + Valorisé', 'Montant ATU Facturé + Valorisé', 'CASE WHEN prestation_code IN (''ATU'',''FPU'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des ATU facturés et valorisés', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_ATU_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Rubriques ATU Valorisés', 'Nombre ATU Valorisés', 'Nombre ATU Valorisés', 'CASE WHEN prestation_code IN (''ATU'',''FPU'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''ATU valorisés', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_ATU_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Rubriques ATU facturés', 'Nombre ATU facturés', 'Nombre ATU facturés', 'CASE WHEN prestation_code IN (''ATU'',''FPU'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''ATU facturés', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_ATU_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Rubriques ATU Facturés + Valorisés', 'Nombre ATU Facturé + Valorisé', 'Nombre ATU Facturé + Valorisé', 'CASE WHEN prestation_code IN (''ATU'',''FPU'') THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END', '1', 'SUM', '#', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''ATU facturés et valorisés', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_AUT_MT_ENC', 'FACTURATION_CLINIQUE', 'CA AUTRE Valorisé Clinique', 'Montant "Autres" Valorisé Clinique', 'Montant "Autres" Valorisé Clinique', 'CASE WHEN type_sejour NOT IN(''1'', ''2'', ''3'', ''5'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des ''autres'' valorisés', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_AUT_MT_FAC', 'FACTURATION_CLINIQUE', 'CA AUTRE Facturé', 'Montant "Autres" Facturé', 'Montant "Autres" Facturé', 'CASE WHEN type_sejour NOT IN(''1'', ''2'', ''3'', ''5'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des ''autres'' facturés', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_AUT_MT_TOT', 'FACTURATION_CLINIQUE', 'CA AUTRE Facturé + Valorisé', 'Montant "Autres" Facturé + Valorisé', 'Montant "Autres" Facturé + Valorisé', 'CASE WHEN type_sejour NOT IN(''1'', ''2'', ''3'', ''5'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des ''autres'' facturés et valorisés', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_AUT_NBAUT', 'OCCUPATION', 'NB Séjours "Autres" (occupation)', 'Nombres de séjours "Autres"', 'Nombres de séjours "Autres"', 'DISTINCT CASE WHEN (code_prevu = 0 and type_sejour NOT IN(''1'', ''2'', ''3'', ''5'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ''autres'' de l''établissement', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_AUT_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA AUTRE Valorisés Clinique', 'Nombre séjours "Autres" Valorisés', 'Nombre séjours "Autres" Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and type_sejour NOT IN(''1'', ''2'', ''3'', ''5'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ''autres'' valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_AUT_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA AUTRE facturés Clinique', 'Séjours "Autres" facturés', 'Séjours "Autres" facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and type_sejour NOT IN(''1'', ''2'', ''3'', ''5'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ''autres'' facturés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_AUT_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA AUTRE Facturés + Valorisés Clinique', 'Nombre de séjours "Autres" Facturés + Valorisés', 'Nombre de séjours "Autres" Facturés + Valorisés', 'DISTINCT CASE WHEN ( type_sejour NOT IN(''1'', ''2'', ''3'', ''5'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ''autres'' facturés et valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_CACPTENC_C_12M', '*CALC', 'CA Activité comptable moyen mensuel 12 derniers mois (encours CTI)', 'CA moyen activité comptable', 'CA moyen activite comptable', '[1]+[2]', '1', '*CALC', '0E', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CCAENCVAR_C_12M', 'CTI_MTCPTCLI_C_12M', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires mensuel moyen de l''encours des 12 derniers mois', 'CACP', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_CALNBJ_OUVRE', 'CALENDRIER', 'Nombre de jours ouvrés', 'Nombre de jours ouvrés', 'Jours ouvrés', 'nb_jour_ouvre', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de jours ouvré de la période', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CAMFAC1_DC', '*CALC', 'CA TOTAL Moyen Facturé [HOSP] (date sortie)', 'CA Moyen Total facturé (Hospitalisés) (date sortie)', 'CA Moyen Total facturé (Hospitalisés) (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours hospitalisés (1 nuit minimum) facturés (date sortie)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAMFAC2_DC', '*CALC', 'CA TOTAL Moyen Facturé [AMBU] (date sortie)', 'CA Moyen Total facturé (Ambulatoire) (date sortie)', 'CA Moyen Total facturé (Ambulatoire) (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours ambulatoires (0 nuits) facturés (date sortie)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAMFAC3_DC', '*CALC', 'CA TOTAL Moyen Facturé [EXT] (date sortie)', 'CA Moyen Total facturé (Externe) (date sortie)', 'CA Moyen Total facturé (Externe) (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours externes facturés (date sortie)', '-TS3', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAMFAC5_DC', '*CALC', 'CA TOTAL Moyen Facturé [SEANCE] (date sortie)', 'CA Moyen Total facturé (Séances) (date sortie)', 'CA Moyen Total facturé (Séances) (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séances facturés (date sortie)', '-TS5', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAMFAC_CS', '*CALC', 'CA TOTAL Moyen Facturé (date sortie)', 'CA Moyen facturé (date sortie)', 'CA Moyen facturé (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours facturés (date sortie)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAMFAC_DC', '*CALC', 'CA TOTAL Moyen Facturé (date vente)', 'CA Moyen facturé (date_ventes)', 'CA Moyen facturé (date_ventes)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours facturés (date vente)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_FACT', '*CALC', 'CA moyen Facturé etablissement', 'CA moyen facturé etablissement', 'CA moyen facturé', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FAC_ETAB', 'CTI_NBSEJO', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé moyen', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_MT1_FAC', '*CALC', 'CA SEJOUR moyen [HOSP]', 'CA moyen SEJOUR', 'CA moyen SEJOUR', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MT2_FAC', '*CALC', 'CA SEJOUR moyen [AMBU]', 'CA moyen SEJOUR', 'CA moyen SEJOUR', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours ambulatoires (0 nuits)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MT5_FAC', '*CALC', 'CA SEJOUR moyen [SEANCE]', 'CA moyen', 'CA moyen', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séances', '-TS5', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDA1_FAC', '*CALC', 'CA SEJOUR moyen [HOSP] (date acte)', 'CA moyen SEJOUR', 'CA moyen SEJOUR', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours hospitalisés (1 nuit minimum) (date acte)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDA1_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [HOSP] (date acte)', 'CA moyen SEJOUR Facturé + Valorisé', 'CA moyen SEJOUR Facturé + Valorisé', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours hospitalisés (1 nuit minimum) (date acte)', '-TS1', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDA2_FAC', '*CALC', 'CA SEJOUR moyen [AMBU] (date acte)', 'CA moyen SEJOUR (date acte)', 'CA moyen SEJOUR (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours ambulatoires (0 nuits) (date acte)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDA2_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [AMBU] (date acte)', 'CA moyen SEJOUR Facturé + Valorisé (date acte)', 'CA moyen SEJOUR Facturé + Valorisé (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours ambulatoires (0 nuits) (date acte)', '-TS2', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDA5_FAC', '*CALC', 'CA SEJOUR moyen [SEANCE] (date acte)', 'CA moyen', 'CA moyen', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séances (date acte)', '-TS5', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDA5_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [SEANCE] (date acte)', 'CA moyen SEJOUR Facturé + Valorisé (Séances)', 'CA moyen SEJOUR Facturé + Valorisé (Séances)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séances (date acte)', '-TS5', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDA8_FAC', '*CALC', 'CA SEJOUR moyen (date acte)', 'CA moyen SEJOUR (date acte)', 'CA moyen SEJOUR (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours (date acte)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDA8_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé (date acte)', 'CA moyen SEJOUR Facturé + Valorisé (date acte)', 'CA moyen SEJOUR Facturé + Valorisé (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours (date acte)', 'CAVF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDS1_FAC', '*CALC', 'CA SEJOUR moyen [HOSP] (date sortie)', 'CA moyen SEJOUR', 'CA moyen SEJOUR', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé des séjours hospitalisés (1 nuit minimum) (date sortie)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDS1_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [HOSP] (date sortie)', 'CA moyen SEJOUR Facturé + Valorisé', 'CA moyen SEJOUR Facturé + Valorisé', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours hospitalisés (1 nuit minimum) (date sortie)', '-TS1', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDS2_FAC', '*CALC', 'CA SEJOUR moyen [AMBU] (date sortie)', 'CA moyen SEJOUR (date sortie)', 'CA moyen SEJOUR (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours ambulatoires (0 nuits) (date sortie)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDS2_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [AMBU] (date sortie)', 'CA moyen SEJOUR Facturé + Valorisé (date sortie)', 'CA moyen SEJOUR Facturé + Valorisé (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours ambulatoires (0 nuits) (date sortie)', '-TS2', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDS5_FAC', '*CALC', 'CA SEJOUR moyen [SEANCE] (date sortie)', 'CA moyen', 'CA moyen', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séances (date sortie)', '-TS5', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDS5_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [SEANCE] (date sortie)', 'CA moyen SEJOUR Facturé + Valorisé (Séances)', 'CA moyen SEJOUR Facturé + Valorisé (Séances)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séances (date sortie)', '-TS5', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDS8_FAC', '*CALC', 'CA SEJOUR moyen (date sortie)', 'CA moyen SEJOUR (date sortie)', 'CA moyen SEJOUR (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours (date sortie)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDS8_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé (date sortie)', 'CA moyen SEJOUR Facturé + Valorisé (date sortie)', 'CA moyen SEJOUR Facturé + Valorisé (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours (date sortie)', 'CAVF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDV1_FAC', '*CALC', 'CA SEJOUR moyen [HOSP] (date vente)', 'CA moyen SEJOUR', 'CA moyen SEJOUR', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé des séjours hospitalisés (1 nuit minimum) (date vente)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDV1_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [HOSP] (date vente)', 'CA moyen SEJOUR Facturé + Valorisé', 'CA moyen SEJOUR Facturé + Valorisé', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours hospitalisés (1 nuit minimum) (date vente)', '-TS1', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDV2_FAC', '*CALC', 'CA SEJOUR moyen [AMBU] (date vente)', 'CA moyen SEJOUR (date vente)', 'CA moyen SEJOUR (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours ambulatoires (0 nuits) (date vente)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDV2_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [AMBU] (date vente)', 'CA moyen SEJOUR Facturé + Valorisé (date vente)', 'CA moyen SEJOUR Facturé + Valorisé (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours ambulatoires (0 nuits) (date vente)', '-TS2', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDV5_FAC', '*CALC', 'CA SEJOUR moyen [SEANCE] (date vente)', 'CA moyen', 'CA moyen', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séances (date vente)', '-TS5', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDV5_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé [SEANCE] (date vente)', 'CA moyen SEJOUR Facturé + Valorisé (Séances)', 'CA moyen SEJOUR Facturé + Valorisé (Séances)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séances (date vente)', '-TS5', 'CAVF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDV8_FAC', '*CALC', 'CA SEJOUR moyen (date vente)', 'CA moyen SEJOUR (date vente)', 'CA moyen SEJOUR (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des séjours (date vente)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_MTDV8_TOT', '*CALC', 'CA SEJOUR Moyen Facturé + Valorisé (date vente)', 'CA moyen SEJOUR Facturé + Valorisé (date vente)', 'CA moyen SEJOUR Facturé + Valorisé (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen facturé et valorisé des séjours (date vente)', 'CAVF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_SOINS_CPT', '*CALC', 'CA SOINS Moyen comptabilisé (date vente)', 'CA moyen Soins (date acte)', 'CA moyen Soins (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_T2A_CPT', 'CTI_NBSEJ_SOINS_CPT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé moyen des soins (date vente)', 'CACP', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAM_SOINS_FACVAL#2', '*CALC', 'CA SOINS Moyen Facturé + Valorisé (date sortie)', 'CA moyen Soins (date sortie)', 'CA moyen Soins (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé moyen des soins (date sortie)', 'CAVF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAT_MT1_FAC', '*CALC', 'CA SOINS Moyen [HOSP]', 'CA moyen Soins', 'CA moyen Soins', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins effectués lors des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MT2_FAC', '*CALC', 'CA SOINS Moyen [AMBU]', 'CA moyen Soins', 'CA moyen Soins', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins effectués lors des séjours ambulatoires (0 nuits)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MT5_FAC', '*CALC', 'CA SOINS Moyen [SEANCE]', 'CA moyen', 'CA moyen', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins effectués lors des séances', '-TS5', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTD18_FACVAL', '*CALC', 'CA SOINS Moyen Facturé + Valorisé (date acte)', 'CA moyen Soins (date acte)', 'CA moyen Soins (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_T2A_MT_TOT', 'CTI_EMC', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé moyen des soins (date acte)', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDA2_FAC', '*CALC', 'CA SOINS Moyen [AMBU] (date acte)', 'CA moyen Soins (date acte)', 'CA moyen Soins (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins réalisés lors des séjours ambulatoires (0 nuits) (date acte)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDA5_FAC', '*CALC', 'CA SOINS Moyen [SEANCE] (date acte)', 'CA moyen', 'CA moyen', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins réalisés lors des séances (date acte)', '-TS5', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDA8_FAC', '*CALC', 'CA SOINS Moyen (date acte)', 'CA moyen Soins (date acte)', 'CA moyen Soins (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins (date acte)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDA_FAC', '*CALC', 'CA SOINS Moyen [HOSP] (date acte)', 'CA moyen Soins', 'CA moyen Soins', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDS1_FAC', '*CALC', 'CA SOINS Moyen [HOSP] (date sortie)', 'CA moyen Soins', 'CA moyen Soins', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins réalisés lors des séjours hospitalisés (1 nuit minimum) (date sortie)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDS2_FAC', '*CALC', 'CA SOINS Moyen [AMBU] (date sortie)', 'CA moyen Soins (date sortie)', 'CA moyen Soins (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins réalisés lors des séjours ambulatoires (0 nuits) (date sortie)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDS5_FAC', '*CALC', 'CA SOINS Moyen [SEANCE] (date sortie)', 'CA moyen', 'CA moyen', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins réalisés lors des séances (date sortie)', '-TS5', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDS8_FAC', '*CALC', 'CA SOINS Moyen (date sortie)', 'CA moyen Soins (date sortie)', 'CA moyen Soins (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins (date sortie)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDV1_FAC', '*CALC', 'CA SOINS Moyen [HOSP] (date vente)', 'CA moyen Soins', 'CA moyen Soins', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins réalisés lors des séjours hospitalisés (1 nuit minimum) (date vente)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDV2_FAC', '*CALC', 'CA SOINS Moyen [AMBU] (date vente)', 'CA moyen Soins (date vente)', 'CA moyen Soins (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins réalisés lors des séjours ambulatoires (0 nuits) (date vente)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDV5_FAC', '*CALC', 'CA SOINS Moyen [SEANCE] (date vente)', 'CA moyen', 'CA moyen', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins réalisés lors des séances (date vente)', '-TS5', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CAT_MTDV8_FAC', '*CALC', 'CA SOINS Moyen (date vente)', 'CA moyen Soins (date vente)', 'CA moyen Soins (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des soins (date vente)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CA_COMPT', 'SEJOURS', 'CA comptabilisé total', 'CA comptabilisé etablissement', 'CA Comptabilisé', 'montant_comptabilise', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé total', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_COMPT_EXT', 'SEJOURS', 'CA comptabilisé (Autres- Externes)', 'CA comptabilisé (Autres- Externes)', 'CA comptabilisé (Autres)', 'CASE WHEN type_sejour = ''3'' THEN montant_comptabilise ELSE NULL END', '1', 'SUM', '#E', 70, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé des séjours Autres et Externes', '-TS3', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_COMPT_HC', 'SEJOURS', 'CA comptabilis?ospitalisation complète', 'CA comptabilisé hospitalisation complète', 'CA comptabilisé (HC)', 'CASE WHEN type_sejour = ''1'' THEN montant_comptabilise ELSE NULL END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé des séjours en Hospitalisation Complète (1 nuit minimum)', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_COMP_HJ', 'SEJOURS', 'CA comptrabilisé (Hospitalisation de jour)', 'CA comptrabilisé (Hospitalisation de jour)', 'CA comptrabilisé (HJ)', 'CASE WHEN type_sejour = ''2'' OR type_sejour = ''5'' THEN montant_comptabilise ELSE NULL END', '1', 'SUM', '#E', 70, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_EXP_ETAB', 'SEJOURS', 'CA expédié', 'CA expédié établissement ', 'CA expédié', 'CASE WHEN nb_non_expedie <> 1 THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures expédiées', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_EXP_EXT', 'SEJOURS', 'CA expédié (Autres-externes)', 'CA expédié (Autres-externes)', 'CA expédié (Autres)', 'CASE WHEN type_sejour = ''3'' AND nb_non_expedie <> 1 THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures expédiées en Autres et Externes', '-TS3', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_CA_EXP_HC', 'SEJOURS', 'CA expédié (hospitalisation complète)', 'CA expédié (hospitalisation complète)', 'CA expédié (HC)', 'CASE WHEN type_sejour = ''1'' AND nb_non_expedie <> 1 THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures expédiées pour des séjours en Hospitalisation Complète (1 nuit minimum)', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_EXP_HJ', 'SEJOURS', 'CA expédié (Hospitalisation de jour)', 'CA expédié (Hospitalisation de jour)', 'CA expédié (HJ)', 'CASE WHEN (type_sejour = ''2'' OR type_sejour = ''5'') AND nb_non_expedie <> 1 THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures expédiées pour des séjours en Hospitalisation de Jour (0 nuits)', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_FACT_EXT', 'SEJOURS', 'CA Facturé (Autres = externes)', 'CA facturé (Autres = externes)', 'CA facturé (Autres)', 'CASE WHEN type_sejour = ''3'' THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé en Autres et Externes', '-TS3', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_CA_FACT_HC', 'SEJOURS', 'CA Facturé hospitalisation complète', 'CA facturé hospitalisation complète', 'CA facturé (HC)', 'CASE WHEN type_sejour = ''1'' THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé en Hospitalisation Complète (1 nuit minimum)', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_FACT_HJ', 'SEJOURS', 'CA Facturé (Hospitalisation de jour)', 'CA facturé (Hospitalisation de jour)', 'CA facturé (hj)', 'CASE WHEN type_sejour = ''2'' OR type_sejour = ''5'' THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé en Hospitalisation de Jour (0 nuits)', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_FACT_VAL', 'SEJOURS', 'CA Total', 'CA Total (Facturé + valorisé)', 'CA Total', 'montant_facture_c + montant_encours_c', '1', 'SUM', '#E', 80, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_FACT_VAL_HC', 'SEJOURS', 'CA Facturé + Ca Valorisé (hospitalisation complète)', 'CA facturé + Ca valorisé (hospitalisation complète)', 'CA facturé + Ca valorisé (hc)', 'CASE WHEN type_sejour = ''1'' THEN montant_facture + montant_encours ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours en Hospitalisation Complète (1 nuit minimum)', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_FAC_ETAB', 'SEJOURS', 'CA Facturé Etablissement', 'CA facturé etablissement', 'CA facturé', 'montant_facture_c', '1', 'SUM', '#E', 80, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_FAC_VAL_EXT', '*CALC', 'CA Facturé + Valorisé (Autres-Externes)', 'CA facturé + valorisé (Autres-Externes)', 'CA facturé + valorisé (Autres)', '[1]+[2]', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FACT_EXT', 'CTI_CA_VAL_EXT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours Externes', '-TS3', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_CA_FAC_VAL_EXT-2', '*CALC', 'CA facturé + valorisé (Autres-Externes)', 'CA facturé + valorisé (Autres-Externes)', 'CA facturé + valorisé (Autres)', '[1] + [2]', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FACT_EXT', 'CTI_CA_VAL_EXT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours Externes', '-TS3', 'CAF', 'CAV', '', '', '', '', '', ''), +(1, 'CTI_CA_FAC_VAL_HJ', 'SEJOURS', 'CA Facturé + Valorisé (Hospitalisation de jour)', 'CA facturé + valorisé (Hospitalisation de jour)', 'CA facturé + valorisé (HJ)', 'CASE WHEN type_sejour = ''2'' OR type_sejour = ''5'' THEN montant_facture + montant_encours ELSE NULL END ', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours en Hospitalisation de jour (0 nuits)', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_MOY_FACT_HC', '*CALC', 'CA moyen Facturé hospitalisation complète', 'CA moyen facturé hospitalisation complète', 'CA moyen facturé (HC)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FACT_HC', 'CTI_NBSEJ_HC', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé moyen des séjours en Hospitalisation Complète', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CA_MOY_FACT_VAL_ETAB', '*CALC', 'CA moyen Facturé + Valorisé (Etablissement)', 'CA moyen facturé + valorisé (Etablissement)', 'CA moyen facturé + valorisé', 'base.cti_division([1]+[2],[3])', '1', '*CALC', '#E', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FAC_ETAB', 'CTI_CA_VAL_ETAB', 'CTI_NBSEJO', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé moyen de l''établissement', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CA_MOY_FAC_EXT', '*CALC', 'CA moyen Facturé (Autres = externes)', 'CA moyen facturé (Autres = externes)', 'CA moyen facturé (Autres)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FACT_EXT', 'CTI_NBSEJ_EXT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé moyens des séjours Externes', '-TS3', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CA_MOY_FAC_HJ', '*CALC', 'CA moyen Facturé (Hospitalisation de jour)', 'CA moyen facturé (Hospitalisation de jour)', 'CA moyen facturé (HJ)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FACT_HJ', 'CTI_NBSEJ_HJ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé moyen des séjours en Hospitalisation de Jour', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_CA_MOY_FAC_VAL_EXT', '*CALC', 'CA moyen Facturé + Valorisé (Autres-Externes)', '', '', 'base.cti_division([1] + [2],[3])', '1', '*CALC', '', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FACT_EXT', 'CTI_CA_VAL_EXT', 'CTI_NBSEJ_EXT', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours Externes', '-TS3', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_CA_MOY_FAC_VAL_HJ', '*CALC', 'CA moyen Facturé + Valorisé (Hospitalisation de jour)', 'CA moyen facturé + valorisé (Hospitalisation de jour)', 'CA moyen facturé + valorisé (HJ)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FAC_VAL_HJ', 'CTI_NBSEJ_HJ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours en Hospitalisation de Jour', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_MOY_FCT_VAL_HC', '*CALC', 'CA moyen Facturé + Valorisé (hospitalisation complète)', 'CA moyen facturé + valorisé (hospitalisation complète)', 'CA moyen facturé + valorisé (HC)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 70, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_FACT_VAL_HC', 'CTI_NBSEJ_HC', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_EXP_ETAB', 'SEJOURS', 'CA restant à expédier', 'CA restant à expédier', 'CA restant à expédier', 'montant_non_expedie_c', '1', 'SUM', '#E', 0, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures non expédiées', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_EXP_EXT', 'SEJOURS', 'CA restant à expédier (Autres-Externes)', 'CA restant à expédier (Autres-Externes)', 'CA non expédier (Autres)', 'CASE WHEN type_sejour = ''3'' THEN montant_non_expedie ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures non expédiées des séjours Externes', '-TS3', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_EXP_HC', 'SEJOURS', 'CA restant à expédier (hospitalisation complète)', 'CA restant à expédier (hospitalisation complète)', 'CA restant à expédier (HC)', 'CASE WHEN type_sejour = ''1'' THEN montant_non_expedie ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures non expédiées des séjours en Hospitalisation Complète', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_EXP_HJ', 'SEJOURS', 'CA restant à expédier (Hospitalisation de jour)', 'CA restant à expédier (Hospitalisation de jour)', 'CA restant à expédier (HJ)', 'CASE WHEN (type_sejour = ''2'' OR type_sejour = ''5'') THEN montant_non_expedie ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures non expédiées des séjours en Hospitalisation de Jour', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_SOL', 'SEJOURS', 'CA restant à solder', 'CA restant à solder', 'CA restant à solder', 'CASE WHEN nb_non_solde_0_c <> 0 THEN montant_solde_0_c ELSE 0 END + CASE WHEN nb_non_solde_1_c <> 0 THEN montant_solde_1_c ELSE 0 END + CASE WHEN nb_non_solde_2_c <> 0 THEN montant_solde_2_c ELSE 0 END', '1', 'SUM', '#E', 80, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'CASL', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_SOL_ETAB', 'SEJOURS', 'CA restant à solder établissement', 'CA restant à solder établissement', 'CA restant à solder', 'CASE WHEN nb_non_solde = 1 THEN montant_solde ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures non soldées', 'CASL', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_SOL_EXT', 'SEJOURS', 'CA restant à solder (Autres-Externes)', 'CA restant à solder (Autres-Externes)', 'CA non solder (Autres)', 'CASE WHEN type_sejour = ''3'' AND nb_non_solde = 1 THEN montant_solde ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures non soldées des séjours Externes', '-TS3', 'CASL', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_SOL_HC', 'SEJOURS', 'CA restant à solder (hospitalisation complète)', 'CA restant à solder (hospitalisation complète)', 'CA restant à solder (HC)', 'CASE WHEN type_sejour = ''1'' AND nb_non_solde = 1 THEN montant_solde ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures non soldées des séjours en Hospitalisation complète', 'CASL', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_NON_SOL_HJ', 'SEJOURS', 'CA restant à solder (Hospitalisation de jour)', 'CA restant à solder (Hospitalisation de jour)', 'CA restant à solder (HJ)', 'CASE WHEN (type_sejour = ''2'' OR type_sejour = ''5'') AND nb_non_solde = 1 THEN montant_solde ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures non soldées des séjours en Hospitalisation de Jour', 'CASL', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_RUBMED_MT_CPT', 'FACTURATION_CLINIQUE', 'CA SEJOUR comptabilisé', 'Montant CA SEJOUR comptabilisé', 'Montant CA SEJOUR comptabilisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_comptabilise ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé pour les séjours dans l''établissement', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_SOL_ETAB', 'SEJOURS', 'CA soldé établissement', 'CA soldé établissement', 'CA soldé ', 'CASE WHEN nb_non_solde<> 1 THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 60, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures soldées', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_SOL_EXT', 'SEJOURS', 'CA soldé (Autres-Externes)', 'CA soldé (Autres-Externes)', 'CA soldé (Autres)', 'CASE WHEN type_sejour = ''3'' AND nb_non_solde <> 1 THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures soldées des séjours Externes', '-TS3', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_CA_SOL_HC', 'SEJOURS', 'CA soldé (hospitalisation complète)', 'CA soldé (hospitalisation complète)', 'CA soldé (HC)', 'CASE WHEN type_sejour = ''1'' AND nb_non_solde <> 1 THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures soldées des séjours en Hospitalisation complète (1 nuit minimum)', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_SOL_HJ', 'SEJOURS', 'CA soldé (Hospitalisation de jour)', 'CA soldé (Hospitalisation de jour)', 'CA soldé (HJ)', 'CASE WHEN (type_sejour = ''2'' OR type_sejour = ''5'') AND nb_non_solde <> 1 THEN montant_facture ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des factures soldées des séjours en Hospitalisation de Jour (0 nuits)', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_T2A_CPT', 'FACTURATION_CLINIQUE', 'CA SOINS comptabilisé', 'Montant CA SOINS comptabilisé', 'Montant CA SOINS comptabilisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_comptabilise ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé des soins', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_VAL_ETAB', 'SEJOURS', 'CA Valorisé établissement', 'CA valorisé établissement', 'CA valorisé', 'montant_encours', '1', 'SUM', '#E', 80, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séjours de l''établissement', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_VAL_EXT', 'SEJOURS', 'CA Valorisé (Autres-Externes)', 'CA valorisé (Autres-Externes)', 'CA valorisé (Autres)', 'CASE WHEN type_sejour = ''3'' THEN montant_encours ELSE NULL END', '1', 'SUM', '', 0, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séjours externes', '-TS3', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_VAL_HC', 'SEJOURS', 'CA Valorisé hospitalisation complète', 'CA valorisé hospitalisation complète', 'CA valorisé (HC)', 'CASE WHEN type_sejour = ''1'' THEN montant_encours ELSE NULL END', '1', 'SUM', '#E', 80, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séjours en Hospitalisation Complète', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CA_VAL_HJ', 'SEJOURS', 'CA Valorisé (Hospitalisation de jour)', 'CA valorisé (Hospitalisation de jour)', 'CA valorisé (HJ)', 'CASE WHEN type_sejour = ''2'' OR type_sejour = ''5'' THEN montant_encours ELSE NULL END', '1', 'SUM', '#E', 70, '3', ' ', ' ', ' ', ' ', '3', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séjours en Hospitalisation de Jour', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_CCAACTCOMPTA_C', '*CALC', 'CA Activité comptable (Encours CTI)', 'Montant activité comptable', 'Montant activité comptable', '[1]+[2]', '1', '*CALC', '0E', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MTCPTCLI_C', 'CTI_CCAENCVAR_C', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires de l''activité comptable (encours)', 'CACP', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_CCAACTCOMPTA_SEJOUR_C', '*CALC', 'CA SEJOUR Activité comptable (Encours CTI)', 'CA activité comptable Séjour', 'CA activité comptable Séjour', '[1]+[2]', '1', '*CALC', '0E', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_RUBMED_MT_CPT', 'CTI_CCAENCVAR_SEJOUR_C', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires de l''activité comptable des séjours (encours)', 'CACP', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_CCAACTCOMPTA_SOINS_C', '*CALC', 'CA SOINS Activité comptable (Encours CTI)', 'CA activité comptable Soins', 'CA activité comptable Soins', '[1]+[2]', '1', '*CALC', '0E', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_CA_T2A_CPT', 'CTI_CCAENCVAR_SOINS_C', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires de l''activité comptable des soins (encours)', 'CACP', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_CCAENCDER_C', 'EN_COURS', 'CA encours dernier mois CTI', 'Montant encours', 'Montant encours', 'CASE WHEN code_origine = ''C'' THEN montant_encours ELSE 0 END', '1', 'SUMLASTMONTH', '0E', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires de l''encours du mois précédent', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_CCAENCRECPRE_C', 'EN_COURS', 'CA report encours CTI premier mois', 'Montant report encours', 'Montant report encours', 'CASE WHEN code_origine = ''C'' THEN montant_report_encours ELSE 0 END', '1', 'SUMFIRSTMONTH', '0E', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires du report de l''encours du mois précédent', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_CCAENCREP_C', 'EN_COURS', 'CA report encours CTI', 'Montant report encours', 'Montant report encours', 'CASE WHEN code_origine = ''C'' THEN montant_report_encours ELSE 0 END', '1', 'SUM', '0E', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires du report de l''encours', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_CCAENCVAR_C', 'EN_COURS', 'CA variation encours CTI', 'CA variation encours', 'CA variation encours', 'CASE WHEN code_origine = ''C'' THEN montant_variation_encours ELSE 0 END', '1', 'SUM', '0E', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires de la variation de l''encours', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_CCAENCVAR_C_12M', 'EN_COURS', 'CA variation encours CTI moyen (12 derniers mois)', 'Montant variation encours moyen', 'Montant variation encours moyen', 'CASE WHEN code_origine = ''C'' THEN montant_variation_encours ELSE 0 END', '1', 'AVG12M', '0E', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen de la variation de l''encours sur les 12 derniers mois', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_CCAENCVAR_SEJOUR_C', 'EN_COURS', 'CA SEJOUR variation en-cours', 'Variation en-cours Séjour', 'Variation en-cours Séjour', 'CASE WHEN code_origine = ''C'' AND rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_variation_encours ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires de la variation de l''encours des séjours', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_CCAENCVAR_SOINS_C', 'EN_COURS', 'CA SOINS variation en-cours', 'Variation en-cours Soins', 'Variation en-cours Soins', 'CASE WHEN code_origine = ''C'' AND rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_variation_encours ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires de la variation de l''encours des soins', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_CCAENC_C', 'EN_COURS', 'CA encours CTI', 'Montant encours', 'Montant encours', 'CASE WHEN code_origine = ''C'' THEN montant_encours ELSE 0 END', '1', 'SUM', '0E', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires de l''encours', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_CDELSOLCA_C', '*CALC', 'Délai de solde selon CA (encours CTI)', 'Délai de solde selon CA', 'Délai de solde selon CA', 'base.cti_division(([1]+[2])*365,([3]+[4])*12)', '1', '*CALC', '0j', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_MTSOLCLI_C', 'CTI_CCAENCDER_C', 'CTI_MTCPTCLI_C_12M', 'CTI_CCAENCVAR_C_12M', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Délai de solde selon le Chiffre d''Affaires', 'CACP', 'CASL', 'CAV', '', '', '', '', '', ''), +(1, 'CTI_CPC_MT_CPT', 'FACTURATION_CLINIQUE', 'CA CPC comptabilisé', 'CA chambre particulière comptabilisé', 'CA chambre particulière comptabilisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_comptabilise ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé des chambres particulières', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_DELAIFAC', '*CALC', 'Délai de facturation', 'Délai de facturation', 'Délai de facturation', 'base.cti_division([1] , [2])', '1', '*CALC', '0,0j', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_SUM_DEL_FACTURE', 'CTI_SUM_NB_CALCULES', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Délai de facturation', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_DELAIG', 'SEJOURS', 'Délai de groupage', 'Délai de groupage', 'Délai groupage', 'delai_groupage', '1', 'AVG', '0,0', 0, '2', '5', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Délai de groupage', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_DELAISOL', '*CALC', 'Délai de solde', 'Délai de solde', 'Délai de solde', 'base.cti_division([1] , [2])', '1', '*CALC', '#,0j', 40, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_SUM_DEL_SOLD', 'CTI_NB_SOLDER', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Délai de solde', 'NBJOU', 'NOMBRE', '', '', '', '', '', '', ''), +(1, 'CTI_DEL_GROUPAGE', '*CALC', 'Délai de groupage', 'Délai de groupage', 'Délai de groupage', 'base.cti_division([1] , [2])', '1', '*CALC', '0,0j', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_SUM_DEL_GRP', 'CTI_SUM_NB_GROUPE', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBJOU', 'NOMBRE', '', '', '', '', '', '', ''), +(1, 'CTI_DEP', 'OCCUPATION', 'NB Départs sur la période', 'Départs sur la période', 'Sor Per', 'nb_ambulatoires + CASE WHEN type_sejour = ''5'' THEN 0 ELSE nb_seances END + nb_externes + nb_sorties_directes', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties de patients sur la période', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_DEPCOMP', 'OCCUPATION', 'SSR - Départs sur la période (Hospitalisation complète)', 'SSR- Départs sur la période (Hospitalisation complète)', 'SSR Sor Per H COMP', 'CASE WHEN mode_traitement_id = ''3'' THEN (nb_ambulatoires + CASE WHEN nb_entrees_directes = 1 THEN 0 ELSE nb_seances END + nb_externes + nb_sorties_directes) ELSE 0 END', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties des séjours en Hospitalisation Complète', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_DIA_MT_FAC', 'FACTURATION_CLINIQUE', 'CA DIALYSE Facturé', 'Montant Dialyse Facturé', 'Montant Dialyse Facturé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIA_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des dialyses', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_DIVERS_MT_ENC', 'FACTURATION_CLINIQUE', 'CA DIVERS Valorisé', 'CA [DIVERS] Valorisé', 'CA [DIVERS] Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des divers', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_DIVERS_MT_FAC', 'FACTURATION_CLINIQUE', 'CA DIVERS Facturé', 'CA [DIVERS] facturé', 'CA [DIVERS] facturé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des divers', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_DIVERS_MT_TOT', 'FACTURATION_CLINIQUE', 'CA DIVERS Facturé + Valorisé', 'CA [DIVERS] facturé + Valorisé', 'CA [DIVERS] facturé + Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des divers', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_DIVERS_RUB_ENC', 'FACTURATION_CLINIQUE', 'NB Rubriques DIVERS Valorisées', 'Nombre rubriques [DIVERS] Valorisées', 'Nombre rubriques [DIVERS] Valorisées', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de rubriques valorisées en divers', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_DIVERS_RUB_FAC', 'FACTURATION_CLINIQUE', 'NB Rubriques DIVERS facturées', 'Nombre rubriques [DIVERS] facturées', 'Nombre rubriques [DIVERS] facturées', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de rubriques facturées en divers', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_DIVERS_RUB_TOT', 'FACTURATION_CLINIQUE', 'NB Rubriques DIVERS Facturées + Valorisées', 'Nombre rubriques [DIVERS] Facturées + Valorisées', 'Nombre rubriques [DIVERS] Facturées + Valorisées', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de rubriques facturées et valorisées en divers', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_DMSCP', '*CALC', 'SSR - DMS totale (Nb de Jours + Ambulatoire JSN/Nb Sorties directes + Ambulatoire JSN)', 'DMS totale (Nb de journées + Ambulatoire JSN/Nb Sorties directes + Ambulatoire JSN)', 'DMS totale (Nb de journées + Ambulatoire JSN/Nb Sorties directes + Ambulatoire JSN)', 'CASE WHEN [2] <> 0 THEN [1] / [2] ELSE 0 END', '1', '*CALC', '#,00', 80, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_JRSORCP', 'CTI_SORDIRCOM', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'DMS totale de l''établissement', '-TS1', '-TS2', '-TS5', '', '', '', '', '', ''), +(1, 'CTI_DMSHOS', 'SEJOURS', 'DMS Hospitalisés', 'DMS Hospitalisés', 'DMS Hospitalisés', 'CASE WHEN type_sejour = ''1'' AND code_sorti = ''1'' AND date_sortie > date_entree THEN date_sortie - date_entree ELSE NULL END', '1', 'AVG', '', 0, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'DMS des séjours hospitalisés (1 nuit minimum)', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_DMSR', '*CALC', 'DMS Hospitalisés', 'DMS Hospitalisés', 'DMS Hospitalisés', 'CASE WHEN [2] <> 0 THEN [1] / [2] ELSE 0 END', '1', '*CALC', '#,00', 80, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBJSN', 'CTI_NBSORDIR', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'DMS des séjours hospitalisés (1 nuit minimum)', '-TS1', 'NBJOU', 'NBSOR', '', '', '', '', '', ''), +(1, 'CTI_DMSTOT', '*CALC', 'DMS Hospitalisation', 'DMS Hospitalisation', 'DMS Hospitalisation', 'CASE WHEN [2] <> 0 THEN [1] / [2] ELSE 0 END', '1', '*CALC', '#,00', 80, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NB2_JSN', 'CTI_NBSOR_SA', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'DMS des séjours d''hospitalisation (hors séances)', '-TS1', '-TS2', 'NBJOU', 'NBSOR', '', '', '', '', ''), +(1, 'CTI_EMC', 'OCCUPATION', 'EMC', 'EMC', 'EMC', 'equivalent_malade_complet', '1', 'SUM', '', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Equivalent Malade Complet', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_EMI_MT_FAC', 'FACTURATION_CLINIQUE', 'CA EMI Facturé', 'CA EMI Facturé', 'CA EMI Facturé', 'CASE WHEN prestation_code IN (''EMI'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des prestations de type ''EMI''', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_ENTDIRCOM', 'OCCUPATION', 'SSR - Entrées directes (Hospitalisés COMPLETE)', 'Entrées directes (Hospitalisés COMPLETE)', 'Entrées directes (Hospitalisés COMPETE)', 'CASE WHEN mode_traitement_id = ''3'' THEN nb_entrees_directes ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées directes en Hospitalisation Complète', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_ENTDIRJR', 'OCCUPATION', 'SSR - Entrées directes (Hospitalisés DE JOUR)', 'Entrées directes (Hospitalisés DE JOUR)', 'Entrées directes (Hospitalisés DE JOUR)', 'CASE WHEN mode_traitement_id = ''4'' THEN nb_entrees_directes ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées directes en Hospitalisation de Jour', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXB_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA EXH Valorisés', 'Nombre séjours EXH Valorisés', 'Nombre séjours EXH Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''EXH'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours contenant des prestations de type ''EXH'' valorisées', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXH_JOU_ENC', 'FACTURATION_CLINIQUE', 'NB Jours EXH Valorisées', 'Nombre journées EXH Valorisées', 'Nombre journées EXH Valorisées', 'CASE WHEN prestation_code IN (''EXH'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de jours des séjours contenant des prestations de type ''EXH'' valorisées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXH_JOU_FAC', 'FACTURATION_CLINIQUE', 'NB Jours EXH facturées', 'Nombre journées EXH facturées', 'Nombre journées EXH facturées', 'CASE WHEN prestation_code IN (''EXH'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de jours des séjours contenant des prestations de type ''EXH'' facturées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXH_JOU_TOT', 'FACTURATION_CLINIQUE', 'NB Jours EXH Facturées + Valorisées', 'Total journées EXH Facturées + Valorisées', 'Total journées EXH Facturées + Valorisées', 'CASE WHEN prestation_code IN (''EXH'') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de jours des séjours contenant des prestations de type ''EXH'' facturées et valorisées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXH_MT_ENC', 'FACTURATION_CLINIQUE', 'CA EXH Valorisé', 'Montant EXH Valorisé', 'Montant EXH Valorisé', 'CASE WHEN prestation_code IN (''EXH'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des prestations de type ''EXH''', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXH_MT_FAC', 'FACTURATION_CLINIQUE', 'CA EXH Facturé', 'Montant EXH facturé', 'Montant EXH facturé', 'CASE WHEN prestation_code IN (''EXH'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des prestations de type ''EXH''', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXH_MT_TOT', 'FACTURATION_CLINIQUE', 'CA EXH Facturé + Valorisé', 'Montant EXH facturé + Valorisé', 'Montant EXH facturé + Valorisé', 'CASE WHEN prestation_code IN(''EXH'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des prestations de type ''EXH''', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXH_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA EXH facturés', 'Nombre séjours EXH facturés', 'Nombre séjours EXH facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''EXH'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours facturés comportant des prestations de type ''EXH''', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXH_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA EXH Facturés + Valorisés', 'Nombre séjours EXH Facturés + Valorisés', 'Nombre séjours EXH Facturés + Valorisés', 'DISTINCT CASE WHEN ( prestation_code IN (''EXH'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours facturés et valorisés comportant des prestations de type ''EXH''', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_EXT_MT_ENC', 'FACTURATION_CLINIQUE', 'CA Externes Valorisé Clinique', 'Montant externe Valorisé Clinique', 'Montant externe Valorisé Clinique', 'CASE WHEN type_sejour = ''3'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '-TS3', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_EXT_MT_FAC', 'FACTURATION_CLINIQUE', 'CA Externes Facturé', 'Montant externe facturé', 'Montant externe facturé', 'CASE WHEN type_sejour = ''3'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '-TS3', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_EXT_MT_TOT', 'FACTURATION_CLINIQUE', 'CA Externes Facturé + Valorisé', 'Montant externe Facturé + Valorisé', 'Montant externe Facturé + Valorisé', 'CASE WHEN type_sejour = ''3'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '-TS3', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_EXT_NB_ENC', 'FACTURATION_CLINIQUE', 'NB externes Valorisés Clinique', 'Nombre externes Valorisés', 'Nombre externes Valorisés', 'DISTINCT CASE WHEN nb_rubrique_encours <> 0 and type_sejour = ''3'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '-TS3', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_EXT_NB_FAC', 'FACTURATION_CLINIQUE', 'NB externes facturés Clinique', 'Nombre externes facturés', 'Nombre externes facturés', 'DISTINCT CASE WHEN (nb_rubrique_facture <> 0 and type_sejour = ''3'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '-TS3', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_EXT_NB_TOT', 'FACTURATION_CLINIQUE', 'NB externes Facturés + Valorisés Clinique', 'Nombre d''externes Facturés + Valorisés', 'Nombre d''externes Facturés + Valorisés', 'DISTINCT CASE WHEN (nb_rubrique_facture <> 0 or nb_rubrique_encours <> 0) and type_sejour = ''3'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '-TS3', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_E_1_01', 'OCCUPATION', 'NB Entrees avant période', 'Ent pre periode', 'Ent pre per', 'DISTINCT CASE WHEN date_entree < date_trunc(''year'', date_reference)::date THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées avant le début de la période d''analyse', 'NBENT', '', '', '', '', '', '', '', ''), +(1, 'CTI_FFM_MT_ENC', 'FACTURATION_CLINIQUE', 'CA FFM Valorisé', 'Montant FFM Valorisé Clinique', 'Montant FFM Valorisé Clinique', 'CASE WHEN prestation_code IN (''FFM'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des prestations de type ''FFM''', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_FFM_MT_TOT', 'FACTURATION_CLINIQUE', 'CA FFM Facturé + Valorisé', 'Montant FFM Facturé + Valorisé', 'Montant FFM Facturé + Valorisé', 'CASE WHEN prestation_code IN (''FFM'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des prestations de type ''FFM''', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_FFM_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Rubriques FFM Valorisés', 'Nombre FFM Valorisés', 'Nombre FFM Valorisés', 'CASE WHEN prestation_code IN (''FFM'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de prestations FFM valorisées', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_FFM_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Rubriques FFM facturés', 'Nombre FFM facturés', 'Nombre FFM facturés', 'CASE WHEN prestation_code IN (''FFM'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de prestations FFM facturées', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_FFM_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Rubriques FFM Facturés + Valorisés', 'Nombre FFM Facturé + Valorisé', 'Nombre FFM Facturé + Valorisé', 'CASE WHEN prestation_code IN (''FFM'') THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END', '1', 'SUM', '#', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de prestations FFM facturées et valorisées', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDA1_FAC', '*CALC', 'CA GHS Moyen [HOSP] (date acte)', 'CA moyen GHS (Hospitalisés) (date acte)', 'CA moyen GHS (Hospitalisés) (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS des séjours hospitalisés (1 nuit minimum) (date acte)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDA2_FAC', '*CALC', 'CA GHS Moyen [AMBU] (date acte)', 'CA moyen GHS (Ambulatoire) (date acte)', 'CA moyen GHS (Ambulatoire) (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS des séjours ambulatoires (0 nuits) (date acte)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDA_FAC', '*CALC', 'CA GHS Moyen (date acte)', 'CA moyen GHS (date acte)', 'CA moyen GHS (date acte)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS (date acte)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDS1_FAC', '*CALC', 'CA GHS Moyen [HOSP] (date sortie)', 'CA moyen GHS (Hospitalisés) (date sortie)', 'CA moyen GHS (Hospitalisés) (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS des séjours hospitalisés (1 nuit minimum) (date sortie)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDS2_FAC', '*CALC', 'CA GHS Moyen [AMBU] (date sortie)', 'CA moyen GHS Ambulatoire (date sortie)', 'CA moyen GHS Ambulatoire (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS des séjours ambulatoires (0 nuits) (date sortie)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDS_FAC', '*CALC', 'CA GHS Moyen (date sortie)', 'CA moyen GHS (date sortie)', 'CA moyen GHS (date sortie)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS (date sortie)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDV1_FAC', '*CALC', 'CA GHS Moyen [HOSP] (date vente)', 'CA moyen GHS (Hospitalisés) (date vente)', 'CA moyen GHS (Hospitalisés) (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS des séjours hospitalisés (1 nuit minimum) (date vente)', '-TS1', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDV2_FAC', '*CALC', 'CA GHS Moyen [AMBU] (date vente)', 'CA moyen GHS Ambulatoire (date vente)', 'CA moyen GHS Ambulatoire (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS des séjours ambulatoires (0 nuits) (date vente)', '-TS2', 'CAF', 'NBSEJ', '', '', '', '', '', ''), +(1, 'CTI_GHSM_MTDV_FAC', '*CALC', 'CA GHS Moyen (date vente)', 'CA moyen GHS (date vente)', 'CA moyen GHS (date vente)', 'base.cti_division([1] , [2])', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen des GHS (date vente)', 'CAF', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT1_ENC', 'FACTURATION_CLINIQUE', 'CA GHS Valorisé [HOSP]', 'Montant GHS Valorisé (hospitalisés)', 'Montant GHS Valorisé (hospitalisés)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''1'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des GHS des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT1_FAC', 'FACTURATION_CLINIQUE', 'CA GHS Facturé [HOSP]', 'Montant GHS facturé (hospitalisés)', 'Montant GHS facturé (hospitalisés)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''1'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des GHS des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT1_TOT', 'FACTURATION_CLINIQUE', 'CA GHS Facturé + Valorisé [HOSP]', 'Montant GHS facturé + Valorisé (hospitalisés)', 'Montant GHS facturé + Valorisé (hospitalisés)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''1'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des GHS des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT2_ENC', 'FACTURATION_CLINIQUE', 'CA GHS Valorisé [AMBU]', 'Montant GHS Valorisé (ambulatoire)', 'Montant GHS Valorisé (ambulatoire)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''2'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des GHS des séjours ambulatoires (0 nuits)', '-TS2', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT2_FAC', 'FACTURATION_CLINIQUE', 'CA GHS Facturé [AMBU]', 'Montant GHS facturé (ambulatoire)', 'Montant GHS facturé (ambulatoire)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''2'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des GHS des séjours ambulatoires (0 nuits)', '-TS2', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT2_TOT', 'FACTURATION_CLINIQUE', 'CA GHS Facturé + Valorisé [AMBU]', 'Montant GHS facturé + Valorisé (ambulatoire)', 'Montant GHS facturé + Valorisé (ambulatoire)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''2'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des GHS des séjours ambulatoires (0 nuits)', '-TS2', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT5_ENC', 'FACTURATION_CLINIQUE', 'CA GHS Valorisé [SEANCE]', 'Montant GHS Valorisé (séances)', 'Montant GHS Valorisé (séances)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''5'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des GHS des séances', '-TS5', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT5_FAC', 'FACTURATION_CLINIQUE', 'CA GHS Facturé [SEANCE]', 'Montant GHS facturé (séances)', 'Montant GHS facturé (séances)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''5'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des GHS des séances', '-TS5', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT5_TOT', 'FACTURATION_CLINIQUE', 'CA GHS Facturé + Valorisé [SEANCE]', 'Montant GHS facturé + Valorisé (séances)', 'Montant GHS facturé + Valorisé (séances)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''5'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des GHS des séances', '-TS5', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT_ENC', 'FACTURATION_CLINIQUE', 'CA GHS Valorisé', 'Montant GHS Valorisé', 'Montant GHS Valorisé', 'CASE WHEN prestation_code IN (''GHS'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des GHS', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT_FAC', 'FACTURATION_CLINIQUE', 'CA GHS Facturé', 'Montant GHS facturé', 'Montant GHS facturé', 'CASE WHEN prestation_code IN (''GHS'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des GHS', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_MT_TOT', 'FACTURATION_CLINIQUE', 'CA GHS Facturé + Valorisé', 'Montant GHS facturé + Valorisé', 'Montant GHS facturé + Valorisé', 'CASE WHEN prestation_code IN (''GHS'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des GHS', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB1_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS Valorisés [HOSP]', 'Nombre séjours GHS Valorisés (hospitalisés)', 'Nombre séjours GHS Valorisés (hospitalisés)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''GHS'') and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours hospitalisés (1 nuit minimum) comportant des prestations de type ''GHS'' valorisées', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB1_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS facturés [HOSP]', 'Nombre séjours GHS facturés (hospitalisés)', 'Nombre séjours GHS facturés (hospitalisés)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''GHS'') and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours hospitalisés (1 nuit minimum) comportant des prestations de type ''GHS'' facturées', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB1_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS Facturés + Valorisés [HOSP]', 'Nombre séjours GHS Facturés + Valorisés (hospitalisés)', 'Nombre séjours GHS Facturés + Valorisés (hospitalisés)', 'DISTINCT CASE WHEN ( prestation_code IN (''GHS'') and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours hospitalisés (1 nuit minimum) comportant des prestations de type ''GHS'' facturées et valorisées', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB2_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS Valorisés [AMBU]', 'Nombre séjours GHS Valorisés (ambulatoire)', 'Nombre séjours GHS Valorisé s(ambulatoire)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''GHS'') and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ambulatoires (0 nuits) comportant des prestations de type ''GHS'' valorisées', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB2_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS facturés [AMBU]', 'Nombre séjours GHS facturés (ambulatoire)', 'Nombre séjours GHS facturés (ambulatoire)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''GHS'') and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ambulatoires (0 nuits) comportant des prestations de type ''GHS'' facturées', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB2_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS Facturés + Valorisés [AMBU]', 'Nombre séjours GHS Facturés + Valorisés (ambulatoire)', 'Nombre séjours GHS Facturés + Valorisés (ambulatoire)', 'DISTINCT CASE WHEN ( prestation_code IN (''GHS'') and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ambulatoires (0 nuits) comportant des prestations de type ''GHS'' facturées et valorisées', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB5_ENC', 'FACTURATION_CLINIQUE', 'NB séances GHS Valorisées [SEANCE]', 'Séances GHS Valorisées (séances)', 'Séances GHS Valorisées (séances)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''5'' THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances comportant des prestations de type ''GHS'' valorisées', '-TS5', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB5_FAC', 'FACTURATION_CLINIQUE', 'NB séances GHS facturés [SEANCE]', 'Séances GHS facturés (séances)', 'Séances GHS facturés (séances)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''5'' THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances comportant des prestations de type ''GHS'' facturées', '-TS5', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB5_TOT', 'FACTURATION_CLINIQUE', 'NB séances GHS Facturés + Valorisés [SEANCE]', 'Nombre séances GHS Facturés + Valorisés (séances)', 'Nombre séances GHS Facturés + Valorisés (séances)', 'CASE WHEN prestation_code IN (''GHS'') and type_sejour = ''5'' THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances comportant des prestations de type ''GHS'' facturées et valorisées', '-TS5', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS Valorisés', 'Nombre séjours GHS Valorisés', 'Nombre séjours GHS Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''GHS'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de prestations de type ''GHS'' valorisées', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS facturés', 'Nombre séjours GHS facturés', 'Nombre séjours GHS facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''GHS'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de prestations de type ''GHS'' facturées', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_GHS_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA GHS Facturés + Valorisés', 'Nombre séjours GHS Facturés + Valorisés', 'Nombre séjours GHS Facturés + Valorisés', 'DISTINCT CASE WHEN ( prestation_code IN (''GHS'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de prestations de type ''GHS'' facturées et valorisées', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_JOUR_FAC', 'OCCUPATION', 'NB Jours facturées', 'Nombre journées facturées', 'Jour Fac', 'CASE WHEN date_sortie <= ''[TOPERIODE]'' AND nb_non_facture = 0 THEN nb_jours_f ELSE null END', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_JRSORCP', 'OCCUPATION', 'SSR - Nombres de Jours séjours sortis(Hospitalisés COMPLETE) + Ambulatoires + Séances', 'Nombres de journées séjours sortis (Hospitalisés COMPLETE) + Ambulatoires + Séances', 'Nombres de journées séjours sortis (Hospitalisés COMPLETE) + Ambulatoires + Séances', 'CASE WHEN date_sortie <= ''[TOPERIODE]'' AND mode_traitement_id = ''3'' THEN 1 ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de jours des séjours sortis en Hospitalisation Complète, ambulatoires et séances', '-TS1', '-TS2', '-TS5', '', '', '', '', '', ''), +(1, 'CTI_JRSORJR', 'OCCUPATION', 'SSR - Nombres de Jours séjours sortis(Hospitalisés DE JOUR) + Ambulatoires + Séances', 'Nombres de journées séjours sortis (Hospitalisés DE JOUR) + Ambulatoires + Séances', 'Nombres de journées séjours sortis (Hospitalisés DE JOUR) + Ambulatoires + Séances', 'CASE WHEN date_sortie <= ''[TOPERIODE]'' AND code_sorti = ''1'' AND mode_traitement_id = ''4'' THEN (nb_jours_f + nb_ambulatoires + nb_seances) ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de jours des séjours sortis en Hospitalisation de Jour, ambulatoires et séances', '-TS1', '-TS2', '-TS5', '', '', '', '', '', ''), +(1, 'CTI_MTCOM_H', 'FACTURATION_HONORAIRE', 'CA HONORAIRES comptabilisé', 'Montant comptabilisé Hononoraire', 'Montant comptabilisé Hononoraire', 'montant_comptabilise', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé des honoraires', 'CACP', 'CAHON', '', '', '', '', '', '', ''), +(1, 'CTI_MTCPTCLI_C', 'CLIENTS_CLINIQUE', 'CA Comptabilisé Clinique', 'Montant comptabilisé Clinique', 'Montant comptabilisé Clinique', 'montant_comptabilise', '1', 'SUM', '#E', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé clinique', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_MTCPTCLI_C_12M', 'CLIENTS_CLINIQUE', 'CA Comptabilisé Moyen Clinique (12 derniers mois)', 'Montant comptabilisé Moyen Clinique (Moyenne 12 derniers mois)', 'Montant comptabilisé Moyen Clinique (Moyenne 12 derniers mois)', 'montant_comptabilise', '1', 'AVG12M', '#E', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires moyen comptabilisé clinique sur les 12 derniers mois', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_MTC_CHDS_FAC', '*CALC', 'CA CLINIQUE + HONORAIRES Comptabilisé (Date sortie)', 'Montant Comptabilisé Clinique + Honoraire', 'Montant Comptabilisé Clinique + Honoraire', '[1] + [2]', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé clinique et honoraires (date sortie)', 'CACP', 'CAHON', '', '', '', '', '', '', ''), +(1, 'CTI_MTC_CHDV_FAC', '*CALC', 'CA CLINIQUE + HONORAIRES Comptabilisé (Date vente)', 'Montant Comptabilisé Clinique + Honoraire', 'Montant Comptabilisé Clinique + Honoraire', '[1] + [2]', '1', '*CALC', '#E', 80, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé clinique et honoraires (date vente)', 'CACP', 'CAHON', '', '', '', '', '', '', ''), +(1, 'CTI_MTENC_C', 'FACTURATION_CLINIQUE', 'CA TOTAL Etablissement Valorisé', 'Montant Total Clinique Valorisé', 'Montant Total Clinique Valorisé', 'montant_encours', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé total de l''établissement', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_MTFAC1_C', 'FACTURATION_CLINIQUE', 'CA TOTAL Etablissement Facturé [HOSP]', 'Montant Total Clinique Facturé (Hospitalisés)', 'Montant Total Clinique Facturé (Hospitalisés)', 'CASE WHEN type_sejour = ''1'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_MTFAC2_C', 'FACTURATION_CLINIQUE', 'CA TOTAL Etablissement Facturé [AMBU]', 'Montant Total Clinique Facturé (Ambulatoire)', 'Montant Total Clinique Facturé (Ambulatoire)', 'CASE WHEN type_sejour = ''2'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séjours ambulatoires (0 nuits)', '-TS2', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_MTFAC3_C', 'FACTURATION_CLINIQUE', 'CA TOTAL Etablissement Facturé [EXT]', 'Montant Total Clinique Facturé (Externe)', 'Montant Total Clinique Facturé (Externe)', 'CASE WHEN type_sejour = ''3'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séjours externes', '-TS3', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_MTFAC5_C', 'FACTURATION_CLINIQUE', 'CA TOTAL Etablissement Facturé (Séance)', 'Montant Total Clinique Facturé (Séance)', 'Montant Total Clinique Facturé (Séance)', 'CASE WHEN type_sejour = ''5'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séances', '-TS5', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_MTFAC_C', 'FACTURATION_CLINIQUE', 'CA TOTAL Etablissement Facturé', 'Montant Total Clinique facturé', 'Montant Total Clinique facturé', 'montant_facture', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé total de l''établissement', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_MTFAC_CS', 'FACTURATION_CLINIQUE', 'CA Facturé Clinique (date sortie)', 'Montant facturé Clinique', 'Facturé C', 'montant_facture', '1', 'SUM', '', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé ^ la clinique (date sortie)', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_MTFAC_CV', 'FACTURATION_CLINIQUE', 'CA Facturé Clinique (date ventes)', 'Montant facturé Clinique', 'Facturé C', 'montant_facture', '1', 'SUM', '', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé ^ la clinique (date vente)', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_MTFAC_H', 'FACTURATION_HONORAIRE', 'CA HONORAIRES Facturé', 'Montant facturé Hononoraire', 'Montant facturé Hononoraire', 'montant_facture', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des honoraires', 'CAF', 'CAHON', '', '', '', '', '', '', ''), +(1, 'CTI_MTREG_C', 'CLIENTS_CLINIQUE', 'CA Encaissé Clinique', 'Montant encaissé Clinique', 'Montant encaissé Clinique', 'montant_regle', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires encaissé clinique', 'CARG', '', '', '', '', '', '', '', ''), +(1, 'CTI_MTSOLCLI_C', 'CLIENTS_CLINIQUE', 'CA Solde client', 'Montant solde Clinique', 'Montant solde Clinique', 'montant_solde', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires du solde clients', 'CASL', '', '', '', '', '', '', '', ''), +(1, 'CTI_MTVEN_C', 'FACTURATION_CLINIQUE', 'CA comptabilisé TOTAL', 'Montant comptabilisé Clinique', 'Montant comptabilisé Clinique', 'montant_comptabilise', '1', 'SUM', '#E', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé total', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_MT_FAC_TOT', 'FACTURATION_CLINIQUE', 'CA TOTAL Etablissement Facturé + Valorisé', 'Montant Total Clinique Facturé + Valorisé', 'Montant Total Clinique Facturé + Valorisé', 'montant_facture + montant_encours', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé total', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB2_JSN', 'OCCUPATION', 'NB Jours Hospitalisés + Ambulatoires', 'Nombres de journées (Hospitalisés) + Ambulatoire', 'Nombres de journées (Hospitalisés) + Ambulatoire JS non inclus', 'nb_jours_f + nb_ambulatoires', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées passées en séjours hospitalisés ou ambulatoires', '-TS1', '-TS2', 'NBJOU', '', '', '', '', '', ''), +(1, 'CTI_NB4_JSN', 'OCCUPATION', 'NB Jours Hospitalisés + Ambulatoires + Externes', 'Nombres de journées (Hospitalisés) + Ambulatoires + Externes', 'Nombres de journées (Hospitalisés) + Ambulatoires + Externes JS non inclus', 'nb_jours_f + nb_ambulatoires + nb_externes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées passées en séjours hospitalisés, ambulatoires ou externes', '-TS1', '-TS2', '-TS3', 'NBJOU', '', '', '', '', ''), +(1, 'CTI_NB4_JSNCP', 'OCCUPATION', 'SSR - Nombres de Jours (Hospitalisés COMPLETE) + Ambulatoires + Séances', 'Nombres de journées (Hospitalisés COMPLETE)) + Ambulatoires + Séances', 'Nombres de journées (Hospitalisés COMPLETE)) + Ambulatoires + Externes + Séances JS non inclus', 'CASE WHEN mode_traitement_id = ''3'' THEN (nb_jours_f + nb_ambulatoires + nb_seances) ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées passées en séjours en Hospitalisation Complète ou ambulatoires ou externes ou séances', '-TS1', '-TS2', '-TS5', '', '', '', '', '', ''), +(1, 'CTI_NB4_JSNJR', 'OCCUPATION', 'SSR - Nombres de Jours (Hospitalisés DE JOUR) + Ambulatoires + Séances', 'Nombres de journées (Hospitalisés DE JOUR) + Ambulatoires + Séances', 'Nombres de journées (Hospitalisés DE JOUR) + Ambulatoires + Externes + Séances JS non inclus', 'CASE WHEN mode_traitement_id = ''4'' THEN (nb_jours_f + nb_ambulatoires + nb_seances) ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées passées en séjours en Hospitalisation de Jour ou ambulatoires ou externes ou séances', '-TS1', '-TS2', '-TS5', '', '', '', '', '', ''), +(1, 'CTI_NB5_JSN', 'OCCUPATION', 'NB Jours Hospitalisés + Ambulatoires + Externes + Séances', 'Nombres de journées (Hospitalisés) + Ambulatoires + Externes + Séances', 'Nombres de journées (Hospitalisés) + Ambulatoires + Externes + Séances JS non inclus', 'nb_jours_f + nb_ambulatoires + nb_externes + nb_seances', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées passées en séjours hospitalisés, ambulatoires, externes ou séances', '-TS1', '-TS2', '-TS3', '-TS5', 'NBJOU', '', '', '', ''), +(1, 'CTI_NB6_JFSN', 'OCCUPATION', 'NB Jours facturées (Hospitalisés sortis) + Ambulatoires + Séances', 'Nombres de journées facturées (Hospitalisés sortis) + Ambulatoires + Séances', 'Nombres de journées facturées (Hospitalisés sortis) + Ambulatoires + Externes + Séances JS non inclus', 'CASE WHEN est_facture = ''1'' AND date_sortie <= ''[TOPERIODE]'' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées passées en séjours hospitalisés ou ambulatoires ou externes ou séances', '-TS2', 'NBJOU', '', '', '', '', '', '', ''), +(1, 'CTI_NB6_JNFSN', 'OCCUPATION', 'NB Jours valorisées Hospitalisés + Ambulatoires + Séances', 'Nombres de journées valorisées (Hospitalisés) + Ambulatoires + Séances', 'Nombres de journées valorisées (Hospitalisés) + Ambulatoires + Externes + Séances JS non inclus', 'CASE WHEN est_facture = ''0'' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées valorisées passées en séjours hospitalisés ou ambulatoires ou externes ou séances', '-TS1', '-TS2', '-TS5', 'NBJOU', '', '', '', '', ''), +(1, 'CTI_NB6_JSN', 'OCCUPATION', 'NB Jours (Hospitalisés) + Ambulatoires + Séances', 'Nombres de journées (Hospitalisés) + Ambulatoires + Séances', 'Nombres de journées (Hospitalisés) + Ambulatoires + Séances', 'nb_jours_f + nb_ambulatoires + nb_seances', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées passées en séjours hospitalisés ou ambulatoires ou séances', '-TS2', 'NBJOU', '', '', '', '', '', '', ''), +(1, 'CTI_NBAMB', 'OCCUPATION', 'NB ambulatoires', 'Nombres d''ambulatoires', 'Nombres d''ambulatoires', 'nb_ambulatoires', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours en ambulatoires', '-TS2', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_NBAMBFOR', 'OCCUPATION', 'NB ambulatoires forains', 'Nombres d''ambulatoires forains', 'Ambulatoires forains', 'CASE WHEN nb_ambulatoires <> 0 AND lieu_reference_etage_id IN (SELECT etage_id FROM activite.t_etages_historique WHERE nb_lits_theoriques <> 0) THEN nb_ambulatoires ELSE 0 END', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''ambulatoires forains', '-TS2', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_NBAMBHFOR', 'OCCUPATION', 'Nombre d''ambulatoires en service ambulatoire', 'Nombres d''ambulatoires en service ambulatoire', 'Ambulatoires', 'CASE WHEN nb_ambulatoires <> 0 AND lieu_reference_etage_id IN (SELECT etage_id FROM activite.t_etages_historique WHERE nb_box_ambulatoires_theoriques <> 0) THEN nb_ambulatoires ELSE 0 END', '1', 'SUM', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''ambulatoires', '-TS2', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBAMBSEA', 'OCCUPATION', 'NB Ambulatoires et séances', 'Ambulatoires + séances', 'Ambulatoires + séances', 'nb_ambulatoires + nb_seances', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''ambulatoires et de séances', '-TS2', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_NBCHPO', 'OCCUPATION', 'NB Jours en CPC', 'Chambres particulières occup?', 'Chambres particulières occup?', 'nb_chambres_particulieres_js_non_inclus_f', '1', 'SUM', '', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées passées en chambre particulière', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBDEAD', 'OCCUPATION', 'NB décès', 'Nombre de décès', 'NB décès', 'nb_deces', '1', 'SUM', '', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de décès', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBENTDIR', 'OCCUPATION', 'NB Entrées directes Hospitalisés', 'Entrées directes (Hospitalisés)', 'Entrées directes (Hospitalisés)', 'nb_entrees_directes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées directes des séjours hospitalisés', '-TS1', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_NBENTTE', 'OCCUPATION', 'NB Entrées totales directes et mutations Hospitalisés', 'Entrées totales directes et mutations (Hospitalisés)', 'Entrées totales directes et mutations (Hospitalisés)', 'nb_entrees_directes + nb_entrees_mutation_etage', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées directes et de mutations d''étage des séjours hospitalisés', '-TS1', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_NBENTTOTS', 'OCCUPATION', 'NB Entrées directes et mutations service Hospitalisés', 'Entrées directes et mutations (Hospitalisés)', 'Entrées directes et mutations (Hospitalisés)', 'nb_entrees_directes + nb_entrees_mutation_service', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées directes et de mutations de services des séjours hospitalisés', '-TS1', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_NBENT_SA', 'OCCUPATION', 'NB Entrées directes Hospitalisés + Ambulatoires', 'Entrées directes + Ambulatoires', 'Entrées directes + Ambulatoires', 'nb_ambulatoires + nb_entrees_directes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées directes des séjours hospitalisés et ambulatoires', '-TS1', '-TS2', 'NBENT', '', '', '', '', '', ''), +(1, 'CTI_NBENT_SAE', 'OCCUPATION', 'NB Entrées directes Hospitalisés + Ambulatoires + Externes', 'Entrées directes + Ambulatoires + Externes', 'Entrées directes + Ambulatoires + Externes', 'nb_ambulatoires + nb_externes + nb_entrees_directes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées directes des séjours hospitalisés, ambulatoires et externes', '-TS1', '-TS2', '-TS3', 'NBENT', '', '', '', '', ''), +(1, 'CTI_NBENT_SAES', 'OCCUPATION', 'NB Entrées directes Hospitalisés + Ambulatoires + Externes + Séances', 'Entrées directes + Ambulatoires + Externes + Séances', 'Entrées directes + Ambulatoires + Externes + Séances', 'nb_ambulatoires + nb_externes + nb_entrees_directes + nb_seances', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''entrées directes des séjours hospitalisés, ambulatoires, externes et séances', '-TS1', '-TS2', '-TS3', '-TS5', 'NBENT', '', '', '', ''), +(1, 'CTI_NBEXT', 'OCCUPATION', 'NB externes (occupation)', 'Nombres d''externes', 'Nombres d''externes', 'nb_externes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours en externes', '-TS3', 'NBENT', '', '', '', '', '', '', ''), +(1, 'CTI_NBFACREF', 'SEJOURS', 'NB sorties directes et intermédiaires', 'Nombre de sorties directes et intermédiaires', 'Nombre de sorties directes et interemédiaires', 'no_facture_reference', '1', 'COUNT', '', 0, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes ou intermédiaires', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBFACREF_F', 'SEJOURS', 'NB sorties directes et intermédiaires facturées', 'Nombre de sorties directes et intermédiaires facturées', 'Nombre de sorties directes et intermédiaires facturées', 'CASE WHEN code_facture = ''1'' THEN no_facture_reference ELSE NULL END', '1', 'COUNT', '', 0, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes ou intermédiaires facturées', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBFACREF_NF', 'SEJOURS', 'NB sorties directes et intermédiaires non facturées', 'Nombre de sorties directes et intermédiaires non facturées', 'Nombre de sorties directes et intermédiaires non facturées', 'CASE WHEN code_facture <> ''1'' THEN no_facture_reference ELSE NULL END', '1', 'COUNT', '', 0, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes ou intermédiaires non facturées', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBJAS_FAC', 'OCCUPATION', 'NB Jours facturées (Hospitalisation)', 'Nombres de journées facturées (Hospitalisés) + Ambulatoires + Séances', 'Nombres de journées facturées (Hospitalisés) + Ambulatoires + Externes + Séances JS non inclus', 'CASE WHEN est_facture = ''1'' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées des séjours hospitalisés, ambulatoires, externes et séances', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBJAS_JFSN', 'OCCUPATION', 'NB Jours (Hospitalisés sortis) + Ambulatoires + Seances', 'Nombres de journées (Hospitalisés sortis) + Ambulatoires + Seances', 'Nb J Sor', 'CASE WHEN date_sortie <= ''[TOPERIODE]'' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE NULL END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de jours sortis des séjours hospitalisés, ambulatoires et séances', '-TS1', '-TS2', '-TS5', 'NBJOU', '', '', '', '', ''), +(1, 'CTI_NBJAS_NFAC', 'OCCUPATION', 'NB Jours non facturées (Hospitalisation)', 'Nombres de journées non facturées (Hospitalisés) + Ambulatoires + Séances', 'Nombres de journées non facturées (Hospitalisés) + Ambulatoires + Externes + Séances JS non inclus', 'CASE WHEN est_facture = ''0'' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées non facturées des séjours hospitalisés, ambulatoires, externes et séances', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBJCPSN', 'OCCUPATION', 'NB Jours CPC Hospitalisés', 'Nombres de journées CP (Hospitalisés)', 'Nombres de journées CP (Hospitalisés)', 'nb_jours_cp_f', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées en chambre particulière des séjours hospitalisés', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBJFSN', 'OCCUPATION', 'NB Jours facturées (Hospitalisés sortis)', 'Nombres de journées facturées (Hospitalisés)', 'Nombres de journées facturées (Hospitalisés) JS non inclus', 'CASE WHEN est_facture = ''1'' AND date_sortie <= ''[TOPERIODE]'' THEN nb_jours_f ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées des séjours hospitalisés (JS non inclus)', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBJS', 'OCCUPATION', 'NB Jours Hospitalisés JS inclus', 'Nombres de journées (JS inclus) (Hospitalisés)', 'Nombres de journées (JS inclus) (Hospitalisés)', 'nb_jours_js_inclus', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées des séjours hospitalisés (JS inclus)', '-TS1', 'NBJOU', '', '', '', '', '', '', ''), +(1, 'CTI_NBJSAM', 'OCCUPATION', 'NB Jours Hospitalisés + Ambulatoires JS Inclus', 'Nombre Journées + Ambulatoire (JS Inclus)', 'Nombre Journées + Ambulatoire (JS Inclus)', 'nb_jours_js_inclus + nb_ambulatoires', '1', 'SUM', '', 0, '1', ' ', ' ', ' ', ' ', '1', 'CTI_NBJSN', 'CTI_NBAMB', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées des séjours hospitalisés et ambulatoires (JS non inclus)', '-TS1', '-TS2', 'NBJOU', '', '', '', '', '', ''), +(1, 'CTI_NBJSN', 'OCCUPATION', 'NB Jours Hospitalisés', 'Nombres de journées (Hospitalisés)', 'Nombres de journées (Hospitalisés) JS non inclus', 'nb_jours_f', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées des séjours hospitalisés (JS non inclus)', '-TS1', 'NBJOU', '', '', '', '', '', '', ''), +(1, 'CTI_NBJSNS', 'OCCUPATION', 'NB Jours (Hospitalisés sortis)', 'Nombres de journées (Hospitalisés sortis)', 'Nb J Sor', 'CASE WHEN date_sortie <= ''[TOPERIODE]'' THEN nb_jours_f ELSE NULL END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées des séjours hospitalisés', '-TS1', 'NBJOU', '', '', '', '', '', '', ''), +(1, 'CTI_NBJSSNSSR', 'OCCUPATION', 'SSR - Nombres de Jours facturées Hospitalisés', 'Nombres de journées facturées (Hospitalisés)', 'Nombres de journées facturées (Hospitalisés) JS non inclus', 'CASE WHEN date_sortie <= ''[TOPERIODE]'' THEN 1 ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées des séjours hospitalisés (JS non inclus)', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBJ_FAC', 'OCCUPATION', 'NB Jours facturées (Hospitalisés)', 'Nombres de journées facturées (Hospitalisés)', 'Nombres de journées facturées (Hospitalisés) JS non inclus', 'CASE WHEN est_facture = ''1'' THEN nb_jours_f ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées des séjours hospitalisés (JS non inclus)', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBJ_NFAC', 'OCCUPATION', 'NB Jours non facturées (Hospitalisés)', 'Nombres de journées non facturées (Hospitalisés)', 'Nombres de journées non facturées (Hospitalisés)', 'CASE WHEN est_facture = ''0'' THEN nb_jours_f ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées non facturées des séjours hospitalisés', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBLITS', 'PLACES', 'NB places disponibles', 'Nombre de places disponibles', 'Places', 'CASE WHEN est_ouvert = ''1'' THEN nb_lits_ouverts ELSE NULL END', '1', 'SUM', '#', 50, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de places disponibles', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPLACES', 'PLACES', 'NB lits et places disponibles ', 'Nombre de lits et places disponibles ', 'Nombre de lits et places disponibles ', 'CASE WHEN est_ouvert = ''1'' THEN nb_lits_ouverts ELSE NULL END', '1', 'SUM', '#', 50, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lits et des places disponibles', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPLACES_A', 'PLACES', 'NB lits et places disponibles [AMBU]', 'Nombre de lits et places disponibles (Ambulatoires)', 'Nombre de lits et places disponibles (Ambulatoires)', 'CASE WHEN est_ouvert = ''1'' and type_sejour_id = 2 THEN nb_lits_ouverts ELSE NULL END', '1', 'SUM', '#', 50, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lits et de places disponibles pour les séjours Ambulatoires', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPLACES_CP_H', 'PLACES', 'NB lits et places CP disponibles [HOSP]', 'Nombre de lits et places CP disponibles (Hospitalisés)', 'Nombre de lits et places CP disponibles (Hospitalisés)', 'CASE WHEN est_ouvert = ''1'' and type_sejour_id = 1 THEN nb_lits_cp_ouverts ELSE NULL END', '1', 'SUM', '#', 50, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lits et de places en chambre particulière disponibles pour les séjours hospitalisés', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPLACES_H', 'PLACES', 'NB lits et places disponibles [HOSP]', 'Nombre de lits et places disponibles (Hospitalisés)', 'Nombre de lits et places disponibles (Hospitalisés)', 'CASE WHEN est_ouvert = ''1'' and type_sejour_id = 1 THEN nb_lits_ouverts ELSE NULL END', '1', 'SUM', '#', 50, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lits et de places disponibles pour les séjours hospitalisés', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPLACES_HA', 'PLACES', 'NB lits et places disponibles (Hosp+Ambu)', 'Nombre de lits et places disponibles (Hosp+Ambu)', 'Nombre de lits et places disponibles (Hosp+Ambu)', 'CASE WHEN est_ouvert = ''1'' and type_sejour_id IN (''1'',''2'') THEN nb_lits_ouverts ELSE NULL END', '1', 'SUM', '', 0, '1', ' ', ' ', ' ', ' ', '1', 'CTI_NBPLACES_H', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lits et de places disponibles pour les séjours hospitalisés et ambulatoires', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPLACES_THEOJ', 'PLACES', 'Nombre jours pour calcul moyenne place théorique', 'Nombre jours pour calcul moyenne place théorique ', 'Nb jours pour calcul moyenne place théorique', 'DISTINCT NOFINESS NOPOLE date_reference', '1', 'COUNT', '#', 50, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de jours pour calcul moyenne des places théoriques', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPLACES_THEOM', '*CALC', 'Nombres lits et places théoriques moyen', 'Nombres lits et places théoriques moyen', 'Nb places théoriques', 'base.cti_division([1],[2])', '1', '*CALC', '#', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBPLACES_THEOT', 'CTI_NBPLACES_THEOJ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lits et des places théoriques moyen', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPLACES_THEOT', 'PLACES', 'Nombre lits et places théoriques total', 'Nombre de lits et places théoriques total', 'Nb places théoriques total', 'nb_lits_theoriques', '1', 'SUM', '#', 50, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de lits et des places théoriques (total des journées)', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPRESHCOMP', 'OCCUPATION', 'SSR - Nombre de présents (Date du Jour / Hospitalisation complète)', 'SSR Nombres de présents (Date du Jour / Hospitalisation complète)', 'SSR Nombres de présents (Date du Jour / H COMP)', 'DISTINCT(CASE WHEN (code_sorti= 0 AND code_prevu = 0 AND mode_traitement_id = ''3'' ) THEN no_sejour ELSE NULL END)', '1', 'COUNT', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de patients encore présents en Hospitalisation Complète', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBPRESHDJ', 'OCCUPATION', 'SSR - Nombre de présents (Date du Jour / Hospitalisation de jour)', 'SSR Nombres de présents (Date du Jour / Hospitalisation de jour)', 'SSR Nombres de présents (Date du Jour / HDJ)', 'DISTINCT(CASE WHEN (code_sorti= 0 AND code_prevu = 0 AND mode_traitement_id = ''4'' ) THEN no_sejour ELSE NULL END)', '1', 'COUNT', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de patients encore présents en Hospitalisation de Jour', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSCE', 'OCCUPATION', 'NB séances', 'Nombres de séances', 'Nombres de séances', 'nb_seances', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances', '-TS5', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSCE_CHM', 'OCCUPATION', 'NB séances Chimio', 'Nombres de séances Chimio', 'Nombres de séances Chimio', 'nb_seances_chimio', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances Chimio', '-TS5', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSCE_DIA', 'OCCUPATION', 'NB séances Dialyse', 'Nombres de séances Dialyse', 'Nombres de séances Dialyse', 'nb_seances_dialyse', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances Dialyse', '-TS5', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSCE_DIV', 'OCCUPATION', 'NB séances Autres', 'Nombres de séances Autres', 'Nombres de séances Autres', 'nb_seances_autre', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances Autres', '-TS5', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJCP', 'OCCUPATION', 'SSR - Nombres de séjours - Hospitalisation complète', 'Nombres de séjours - Hospitalisation complète', 'Nombre de séjours - Hospitalisation complète', 'DISTINCT CASE WHEN mode_traitement_id = ''3'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours en Hospitalisation Complète', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJFEM', 'OCCUPATION', 'NB séjours de femmes', 'Nombre de séjours de femmes', 'Nb sej fem', 'DISTINCT CASE WHEN code_sexe = ''2'' THEN no_sejour ELSE null END', '1', 'COUNT', '#', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours de patients féminins', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJHDJ', 'OCCUPATION', 'SSR - Nombres de séjours - Hospitalisation de jour', 'Nombres de séjours - Hospitalisation de jour', 'Nombre de séjours - Hospitalisation de jour', 'DISTINCT CASE WHEN mode_traitement_id = ''4'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours en Hospitalisation de Jour', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJO', 'OCCUPATION', 'NB séjours', 'Nombres de séjours', 'Nombres de séjours', 'DISTINCT no_sejour', '1', 'COUNT', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJ_EXT', 'SEJOURS', 'NB Séjours [EXT]', 'Nombre séjours (Externes)', 'Nombre séjours (Externes)', 'DISTINCT CASE WHEN type_sejour = ''3'' THEN no_sejour ELSE NULL END', '1', 'SUM', '#', 60, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours externes', '-TS3', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJ_HC', 'SEJOURS', 'NB Séjours hospitalisation complète', 'Nombre séjours hospitalisation complète', 'Nombre séjours (hc)', 'DISTINCT CASE WHEN type_sejour = ''1'' THEN no_sejour', '1', 'COUNT', '#', 60, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours en hospitalisation complète', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJ_HJ', 'SEJOURS', 'NB Séjours (hospitalisation de jour)', 'Nombre séjours (hospitalisation de jour, type de séjours = Ambulatoire/Séances) ', 'Nombre séjours (hj)', 'DISTINCT CASE WHEN type_sejour = ''2'' OR type_sejour = ''5'' THEN no_sejour', '1', 'SUM', '#', 60, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours en Hospitalisation de Jour', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJ_SOINS_CPT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS comptabilisé', 'Nombre de séjours comptabilisés CA SOINS', 'Nombre de séjours comptabilisés CA SOINS', 'DISTINCT CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN no_sejour ELSE NULL END', '1', 'COUNT', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours comptabilisé dans le Chiffre d''Affaires des soins', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSEJ_SOR', 'SEJOURS', 'NB séjours', 'Nombre de séjours', 'Nombre de séjours', 'DISTINCT no_sejour', '1', 'COUNT', '#', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NBSORDIR', 'OCCUPATION', 'NB Sorties directes Hospitalisés', 'Sorties directes (Hospitalisés)', 'Sorties directes (Hospitalisés)', 'nb_sorties_directes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes des séjours hospitalisés', '-TS1', 'NBSOR', '', '', '', '', '', '', ''), +(1, 'CTI_NBSOR_SA', 'OCCUPATION', 'NB Sorties directes Hospitalisés + Ambulatoires', 'Sorties directes + Ambulatoires', 'Sorties directes + Ambulatoires', 'nb_ambulatoires + nb_sorties_directes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes des séjours hospitalisés et ambulatoires', '-TS1', '-TS2', 'NBSOR', '', '', '', '', '', ''), +(1, 'CTI_NBSOR_SAE', 'OCCUPATION', 'NB Sorties directes Hospitalisés + Ambulatoires + Externes', 'Sorties directes + Ambulatoires + Externes', 'Sorties directes + Ambulatoires + Externes', 'nb_ambulatoires + nb_externes + nb_sorties_directes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes des séjours hospitalisés, ambulatoires et externes', '-TS1', '-TS2', '-TS3', 'NBSOR', '', '', '', '', ''), +(1, 'CTI_NBSOR_SAES', 'OCCUPATION', 'NB Sorties directes Hospitalisés + Ambulatoires + Externes + Séances', 'Sorties directes + Ambulatoires + Externes + Séances', 'Sorties directes + Ambulatoires + Externes + Séances', 'nb_ambulatoires + nb_externes + nb_sorties_directes + nb_seances', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes des séjours hospitalisés, ambulatoires, externes et séances', '-TS1', '-TS2', '-TS3', '-TS5', 'NBSOR', '', '', '', ''), +(1, 'CTI_NBURG', 'OCCUPATION', 'NB urgences', 'Nombres d''urgences', 'Nombres d''urgences', 'nb_urgences', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre d''urgences', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_ANNULES', 'ANNULATIONS', 'Nombre de séjours annulés ', 'Nombre séjours annulés', '', 'DISTINCT CASE WHEN etat_sejour_code = ''A'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_BEBE', 'OCCUPATION', 'NB Bébés', 'Nombre de Bébés', 'Nombre de Bébés', 'nb_bebes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de bébés', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_FAC', 'SEJOURS', 'NB sorties Facturées', 'Nombre de sorties Facturées', 'Nombre de sorties Facturées', 'DISTINCT CASE WHEN code_sorti = ''1'' AND date_facture != ''2099-12-31'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 60, '2', '5', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours sortis facturés', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_FACTURES', 'SEJOURS', 'Nombre de factures', 'Factures', 'Factures', 'nb_factures', '1', 'SUM', '#', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NOMBRE', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_GP_NFAC', 'SEJOURS', 'À facturer', 'À facturer', 'À facturer', 'nb_non_calcules_groupes', '1', 'SUM', '#', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_GROU', 'SEJOURS', 'NB sorties Groupées non facturées', 'Nombre de sorties Groupées non facturées', 'Nombre de sorties Groupées non facturées', 'CASE WHEN date_facture = ''2099-12-31'' THEN nb_groupe ELSE NULL END', '1', 'SUM', '#', 60, '2', '5', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours groupés sortis non facturés', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_GROUT', 'SEJOURS', 'NB sorties groupées', 'Nombre de sorties groupées', 'Sorties groupées', 'nb_groupe', '1', 'SUM', '#', 0, '2', '5', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours groupés sortis', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_NFAC', 'SEJOURS', 'NB sorties non Facturées', 'Nombre de sorties non Facturées', 'Nombre de sorties non Facturées', 'DISTINCT CASE WHEN montant_facture = 0 THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 60, '2', '4', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours sortis non facturés', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_NGROU', 'SEJOURS', 'NB sorties Non Groupées', 'Nombre de sorties Non Groupées', 'Nombre de sorties Non Groupées', 'nb_non_groupe', '1', 'SUM', '#', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours sortis non groupés', 'NBSOR', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_NGR_SOR', 'SEJOURS', 'Reste à grouper', 'Reste à grouper', 'Reste à grouper', 'nb_non_groupe', '1', 'SUM', '#', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_NONFAC', 'SEJOURS', 'Reste à facturer', 'Reste à facturer', 'Reste à facturer', 'nb_non_calcules', '1', 'SUM', '#', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NOMBRE', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_NON_EXP', 'SEJOURS', 'Reste à expédier', 'Reste à expédier', 'Reste à expédier', 'nb_non_expedie_c', '1', 'SUM', '#', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NOMBRE', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_NON_SOLD', 'SEJOURS', 'Reste à solder', 'Reste à solder', 'Reste à solder', 'nb_non_solde_c', '1', 'SUM', '#', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_PREADM', 'OCCUPATION', 'Nombre de séjours avec préadmission validée', 'Nombre séjours avec préadmission', '', 'nb_preadmission_validee', '1', 'SUM', '', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_PREADM_J1', 'OCCUPATION', 'Nombre de séjours avec préadmission validée à   J-1', 'Nombre séjours avec préadmission J-1', '', 'nb_preadmission_validee_j1', '1', 'SUM', '', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_PREADM_J2', 'OCCUPATION', 'Nombre de séjours avec préadmission validée à    J-2', 'Nombre séjours avec préadmission J-2', '', 'nb_preadmission_validee_j2', '1', 'SUM', '', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_PRESENT', 'OCCUPATION', 'NB présents (Date du Jour)', 'Nombres de présents (Date du Jour)', 'Nombres de présents (Date du Jour)', 'DISTINCT(CASE WHEN (code_sorti= 0 AND code_prevu = 0) THEN no_sejour ELSE NULL END)', '1', 'COUNT', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de patients présents dans l''établissement', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_RECUSES', 'ANNULATIONS', 'Nombre de séjours récusés', 'Nombre séjours récusés', '', 'DISTINCT CASE WHEN etat_sejour_code = ''R'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_SAB', '*CALC', 'NB Sorties directes + Ambulatoires + bébés', 'Sorties directes + Ambulatoires + bébés', 'Sorties Ambu Bb', '[1] + [2] + [3]', '1', '*CALC', '#', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSORDIR', 'CTI_NBAMB', 'CTI_NB_BEBE', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes, ambulatoires et de bébés', '-TS1', '-TS2', 'NBENT', 'NBSOR', '', '', '', '', ''), +(1, 'CTI_NB_SABS', '*CALC', 'NB Sorties directes + Ambulatoires + bébés + séances', 'Sorties directes + Ambulatoires + bébés+ séances', 'Sorties Ambu Bb Sc', '[1] + [2] + [3] + [4]', '1', '*CALC', '#', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSORDIR', 'CTI_NBAMB', 'CTI_NB_BEBE', 'CTI_NBSCE', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes, ambulatoires, de séances et de bébés', '-TS1', '-TS2', '-TS5', 'NBENT', 'NBSOR', '', '', '', ''), +(1, 'CTI_NB_SAE', 'OCCUPATION', 'NB Sorties directes + Ambulatoires + Externes', 'Sorties directes + Ambulatoires + Externes', 'Sorties directes + Ambulatoires + Externes', 'nb_ambulatoires + nb_externes + nb_sorties_directes', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes, ambulatoires et externes', '-TS2', '-TS3', 'NBSOR', '', '', '', '', '', ''), +(1, 'CTI_NB_SEJ', 'SEJOURS', 'NB séjours hospit et ambu', 'Nombre de séjours hospit et ambu', 'Nb sej Hosp Amb', 'DISTINCT CASE WHEN type_sejour = ''1'' OR type_sejour = ''2'' THEN no_sejour ELSE null END', '1', 'COUNT', '#', 0, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours hospitalisés et ambulatoires', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_SEJ_FAEN', 'FACTURATION_CLINIQUE', 'NB Séjours Facturés + Valorisés', 'Séjours Facturés + Valorisés', 'Séjours Facturés + Valorisés', 'DISTINCT no_sejour ', '1', 'COUNT', '#', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours facturés et valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_SEJ_VAL', 'FACTURATION_CLINIQUE', 'NB Séjours Valorisés', 'Séjours Valorisés', 'Séjours Valorisés', 'DISTINCT CASE WHEN est_ligne_facturee = ''0'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_SOLDER', 'SEJOURS', 'NB Séjours Soldés', 'NB_SOLDE', 'NB_SOLDE', 'CASE WHEN nb_non_solde_0_c <> 0 or nb_non_solde_1_c <> 0 or nb_non_solde_2_c <> 0 THEN 0 ELSE 1 END', '1', 'SUM', '0,0', 40, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NOMBRE', '', '', '', '', '', '', '', ''), +(1, 'CTI_NB_SORTOT', 'OCCUPATION', 'NB Sorties totales directes et mutations Hospitalisés', 'Sorties totales directes et mutations (Hospitalisés)', 'Sorties totales directes et mutations (Hospitalisés)', 'nb_sorties_directes + nb_sorties_mutation_etage', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes et de mutations des séjours hospitalisés', '-TS1', 'NBSOR', '', '', '', '', '', '', ''), +(1, 'CTI_NB_SUSPENDUS', 'ANNULATIONS', 'Nombre de séjours suspendus', 'Nombre séjours suspendus', '', 'DISTINCT CASE WHEN etat_sejour_code = ''C'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_JOU_ENC', 'FACTURATION_CLINIQUE', 'NB Jours NN1 Valorisées', 'Nombre journées NN1 Valorisées', 'Nombre journées NN1 Valorisées', 'CASE WHEN prestation_code IN (''NN1'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN1 valorisées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_JOU_FAC', 'FACTURATION_CLINIQUE', 'NB Jours NN1 facturées', 'Nombre journées NN1 facturées', 'Nombre journées NN1 facturées', 'CASE WHEN prestation_code IN (''NN1'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN1 facturées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_JOU_TOT', 'FACTURATION_CLINIQUE', 'NB Jours NN1 Facturées + Valorisées', 'Total journées NN1 Facturées + Valorisées', 'Total journées NN1 Facturées + Valorisées', 'CASE WHEN prestation_code IN (''NN1'') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN1 facturées et valorisées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_MT_ENC', 'FACTURATION_CLINIQUE', 'CA NN1 Valorisé', 'Montant NN1 Valorisé', 'Montant NN1 Valorisé', 'CASE WHEN prestation_code IN (''NN1'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN1 Valorisé', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_MT_FAC', 'FACTURATION_CLINIQUE', 'CA NN1 Facturé', 'Montant NN1 facturé', 'Montant NN1 facturé', 'CASE WHEN prestation_code IN (''NN1'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN1 Facturé', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_MT_TOT', 'FACTURATION_CLINIQUE', 'CA NN1 Facturé + Valorisé', 'Montant NN1 facturé + Valorisé', 'Montant NN1 facturé + Valorisé', 'CASE WHEN prestation_code IN(''NN1'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN1 Facturé + Valorisé', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN1 Valorisés', 'Nombre séjours NN1 Valorisés', 'Nombre séjours NN1 Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''NN1'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN1 Valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN1 facturés', 'Nombre séjours NN1 facturés', 'Nombre séjours NN1 facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''NN1'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN1 Facturés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN1_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN1 Facturés + Valorisés', 'Nombre séjours NN1 Facturés + Valorisés', 'Nombre séjours NN1 Facturés + Valorisés', 'DISTINCT CASE WHEN ( prestation_code IN (''NN1'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN1 Facturés + Valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_JOU_ENC', 'FACTURATION_CLINIQUE', 'NB Jours NN2 Valorisées', 'Nombre journées NN2 Valorisées', 'Nombre journées NN2 Valorisées', 'CASE WHEN prestation_code IN (''NN2'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN2 valorisées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_JOU_FAC', 'FACTURATION_CLINIQUE', 'NB Jours NN2 facturées', 'Nombre journées NN2 facturées', 'Nombre journées NN2 facturées', 'CASE WHEN prestation_code IN (''NN2'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN2 facturées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_JOU_TOT', 'FACTURATION_CLINIQUE', 'NB Jours NN2 Facturées + Valorisées', 'Total journées NN2 Facturées + Valorisées', 'Total journées NN2 Facturées + Valorisées', 'CASE WHEN prestation_code IN (''NN2'') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN2 facturées et valorisées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_MT_ENC', 'FACTURATION_CLINIQUE', 'CA NN2 Valorisé', 'Montant NN2 Valorisé', 'Montant NN2 Valorisé', 'CASE WHEN prestation_code IN (''NN2'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN2 Valorisé', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_MT_FAC', 'FACTURATION_CLINIQUE', 'CA NN2 Facturé', 'Montant NN2 facturé', 'Montant NN2 facturé', 'CASE WHEN prestation_code IN (''NN2'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN2 Facturé', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_MT_TOT', 'FACTURATION_CLINIQUE', 'CA NN2 Facturé + Valorisé', 'Montant NN2 facturé + Valorisé', 'Montant NN2 facturé + Valorisé', 'CASE WHEN prestation_code IN(''NN2'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN2 Facturé + Valorisé', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN2 Valorisés', 'Nombre séjours NN2 Valorisés', 'Nombre séjours NN2 Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''NN2'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN2 Valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN2 facturés', 'Nombre séjours NN2 facturés', 'Nombre séjours NN2 facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''NN2'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN2 Facturés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN2_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN2 Facturés + Valorisés', 'Nombre séjours NN2 Facturés + Valorisés', 'Nombre séjours NN2 Facturés + Valorisés', 'DISTINCT CASE WHEN ( prestation_code IN (''NN2'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN2 Facturés + Valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_JOU_ENC', 'FACTURATION_CLINIQUE', 'NB Jours NN3 Valorisées', 'Nombre journées NN3 Valorisées', 'Nombre journées NN3 Valorisées', 'CASE WHEN prestation_code IN (''NN3'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN3 valorisées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_JOU_FAC', 'FACTURATION_CLINIQUE', 'NB Jours NN3 facturées', 'Nombre journées NN3 facturées', 'Nombre journées NN3 facturées', 'CASE WHEN prestation_code IN (''NN3'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN3 facturées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_JOU_TOT', 'FACTURATION_CLINIQUE', 'NB Jours NN3 Facturées + Valorisées', 'Total journées NN3 Facturées + Valorisées', 'Total journées NN3 Facturées + Valorisées', 'CASE WHEN prestation_code IN (''NN3'') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées NN3 facturées et valorisées', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_MT_ENC', 'FACTURATION_CLINIQUE', 'CA NN3 Valorisé', 'Montant NN3 Valorisé', 'Montant NN3 Valorisé', 'CASE WHEN prestation_code IN (''NN3'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN3 Valorisé', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_MT_FAC', 'FACTURATION_CLINIQUE', 'CA NN3 Facturé', 'Montant NN3 facturé', 'Montant NN3 facturé', 'CASE WHEN prestation_code IN (''NN3'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN3 Facturé', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_MT_TOT', 'FACTURATION_CLINIQUE', 'CA NN3 Facturé + Valorisé', 'Montant NN3 facturé + Valorisé', 'Montant NN3 facturé + Valorisé', 'CASE WHEN prestation_code IN(''NN3'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires NN3 Facturé + Valorisé', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN3 Valorisés', 'Nombre séjours NN3 Valorisés', 'Nombre séjours NN3 Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''NN3'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN3 Valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN3 facturés', 'Nombre séjours NN3 facturés', 'Nombre séjours NN3 facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''NN3'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN3 Facturés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NN3_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA NN3 Facturés + Valorisés', 'Nombre séjours NN3 Facturés + Valorisés', 'Nombre séjours NN3 Facturés + Valorisés', 'DISTINCT CASE WHEN ( prestation_code IN (''NN3'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours NN3 Facturés + Valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NSCPT_C', 'FACTURATION_CLINIQUE', 'NB Séjours Comptabilisés', 'Séjours comptabilisés', 'Séjours comptabilisés', 'DISTINCT CASE WHEN montant_comptabilise <> 0 THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 0, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours comptabilisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NSFAC1_CS', 'FACTURATION_CLINIQUE', 'NB Séjours facturés [HOSP]', 'Nombre séjours Total facturés (Hospitalisés)', 'Nombre séjours Total facturés (Hospitalisés)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours hospitalisés (1 nuit minimum) facturés', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_NSFAC2_CS', 'FACTURATION_CLINIQUE', 'NB Séjours facturés [AMBU]', 'Nombre séjours Total facturés (Ambulatoire)', 'Nombre séjours Total facturés (Ambulatoire)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ambulatoires (0 nuits) facturés', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_NSFAC3_CS', 'FACTURATION_CLINIQUE', 'NB Séjours facturés [EXT]', 'Nombre séjours Total facturés (Externe)', 'Nombre séjours Total facturés (Externe)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and type_sejour = ''3'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours externes facturés', '-TS3', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_NSFAC5_CS', 'FACTURATION_CLINIQUE', 'NB Séjours facturés [SEANCE]', 'Nombre séjours Total facturés (Séances)', 'Nombre séjours Total facturés (Séances)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and type_sejour = ''5'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances facturées', '-TS5', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_NSFACT_CS', 'FACTURATION_CLINIQUE', 'NB séjours facturés', 'Nombre séjours avec facturation', 'Nombre séjours avec facturation', 'DISTINCT CASE WHEN est_ligne_facturee = ''1'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours comportant une facturation', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NSFAC_C', 'FACTURATION_CLINIQUE', 'NB Séjours Facturés', 'Séjours facturés', 'Séjours facturés', 'DISTINCT CASE WHEN est_ligne_facturee = ''1'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours facturés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_NSFAC_CS', 'FACTURATION_CLINIQUE', 'NB séjours facturés', 'Nombre séjours Total facturés', 'Nombre séjours Total facturés', 'DISTINCT CASE WHEN est_ligne_facturee = ''1'' THEN no_sejour ELSE NULL END', '1', 'COUNT', '#', 0, '1', '2', '3', '4', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours facturés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_PORTFOLIO_NEW', '*CALC', 'Portfolio', '', '', '', '1', '*CALC', '#,0', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_PROTH_MT_CPT', 'FACTURATION_CLINIQUE', 'CA PROTHESE Comptabilisé', 'Montant prothèses Facturé', 'Montant prothèses Facturé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN montant_comptabilise ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé des prothèses', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_PROTH_MT_ENC', 'FACTURATION_CLINIQUE', 'CA PROTHESE Valorisé', 'Montant prothèses Valorisé', 'Montant prothèses Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des prothèses', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_PROTH_MT_FAC', 'FACTURATION_CLINIQUE', 'CA PROTHESE Facturé', 'Montant prothèses Facturé', 'Montant prothèses Facturé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des prothèses', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_PROTH_MT_TOT', 'FACTURATION_CLINIQUE', 'CA PROTHESE Facturé + Valorisé', 'Montant prothèses Facturé + Valorisé', 'Montant prothèses Fact + Val', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des prothèses', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_PROTH_RUB_FAC', 'FACTURATION_CLINIQUE', 'NB Rubriques PROTHESE', 'Nombre rubriques prothèses', 'Nombre rubriques prothèses', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '#', 60, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de rubriques de prothèses', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_PSEJFEM', '*CALC', 'Pourcentage de femmes', 'Pourcentage de femmes', 'Pourcentage de femmes', 'base.cti_division([1], [2]) * 100.0', '1', '*CALC', '#,0%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSEJFEM', 'CTI_NBSEJO', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Part des femmes dans la patientèle', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_RAPPORTCALC', '*RAPPORTCALC', 'Calcul d''indicateurs dans le rapport', '', '', '', '1', 'sum', '#', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Pour calculer directement dans la définition du rapport', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_RAT_AMB1_CAT', '*CALC', 'Ratio CA Hospitalisés / CA Total Clinique', 'Ratio CA Hospitalisés / CA Total Clinique', 'Ratio CA Hospitalisés / CA Total Clinique', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Part du Chiffre d''Affaires des séjours hospitalisés (1 nuit minimum) facturés dans le Chiffre d''Affaires total des séjours facturés', '-TS1', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_RAT_AMB2_CAT', '*CALC', 'Ratio CA Ambulatoire / CA Total Clinique', 'Ratio CA Ambulatoire / CA Total Clinique', 'Ratio CA Ambulatoire / CA Total Clinique', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Part du Chiffre d''Affaires des séjours ambulatoires (0 nuits) facturés dans le Chiffre d''Affaires total des séjours facturés', '-TS2', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_RAT_AMB5_CAT', '*CALC', 'Ratio CA Séances / CA Total Clinique', 'Ratio CA Séances / CA Total Clinique', 'Ratio CA Séances / CA Total Clinique', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Part du Chiffre d''Affaires des séances facturées dans le Chiffre d''Affaires total des séjours facturés', '-TS5', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_RAT_AMB_END', '*CALC', 'Ratio nb Ambulatoires / nb sorties Hospitalisés + Ambulatoire', 'Ratio nb Ambulatoires / nb sorties Hospitalisés + Ambulatoire', 'Ratio nb Ambulatoires / nb sorties Hospitalisés + Ambulatoire', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBAMB', 'CTI_NBSOR_SA', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Part du nombre de séjours ambulatoires (0 nuits) sur le nombre total de sorties directes des séjours hospitalisés et ambulatoires', '-TS1', '-TS2', 'NBENT', 'NBSOR', '', '', '', '', ''), +(1, 'CTI_RAT_CAH_CAL', '*CALC', 'Ratio CA Honoraire / Clinique', 'Ratio CA Honoraire / Clinique', 'Ratio CA Hon', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Part du Chiffre d''Affaires comptabilisé pour les honoraires sur la Chiffre d''Affaires comptabilisé total', 'CACP', 'CAHON', '', '', '', '', '', '', ''), +(1, 'CTI_REA_JOU_ENC', 'FACTURATION_CLINIQUE', 'NB Jours REA Valorisées', 'Nombre journées REA Valorisées', 'Nombre journées REA Valorisées', 'CASE WHEN prestation_code IN (''REA'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées valorisées en REA', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_REA_JOU_FAC', 'FACTURATION_CLINIQUE', 'NB Jours REA facturées', 'Nombre journées REA facturées', 'Nombre journées REA facturées', 'CASE WHEN prestation_code IN (''REA'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées en REA', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_REA_JOU_TOT', 'FACTURATION_CLINIQUE', 'NB Jours REA Facturées + Valorisées', 'Total journées REA Facturées + Valorisées', 'Total journées REA Facturées + Valorisées', 'CASE WHEN prestation_code IN (''REA'') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées et valorisées en REA', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_REA_MT_ENC', 'FACTURATION_CLINIQUE', 'CA REA Valorisé', 'Montant REA Valorisé', 'Montant REA Valorisé', 'CASE WHEN prestation_code IN (''REA'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé en REA', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_REA_MT_FAC', 'FACTURATION_CLINIQUE', 'CA REA Facturé', 'Montant REA facturé', 'Montant REA facturé', 'CASE WHEN prestation_code IN (''REA'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé en REA', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_REA_MT_TOT', 'FACTURATION_CLINIQUE', 'CA REA Facturé + Valorisé', 'Montant REA facturé + Valorisé', 'Montant REA facturé + Valorisé', 'CASE WHEN prestation_code IN (''REA'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé en REA', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_REA_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA REA Valorisés', 'Nombre séjours REA Valorisés', 'Nombre séjours REA Valorisés', 'DISTINCT CASE WHEN est_ligne_facturee = ''0'' and prestation_code IN (''REA'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires valorisé en REA', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_REA_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA REA facturés', 'Nombre séjours REA facturés', 'Nombre séjours REA facturés', 'DISTINCT CASE WHEN est_ligne_facturee = ''1'' and prestation_code IN (''REA'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé en REA', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_REA_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA REA Facturés + Valorisés', 'Nombre séjours REA Facturés + Valorisés', 'Nombre séjours REA Facturés + Valorisés', 'DISTINCT CASE WHEN ( prestation_code IN (''REA'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé et valorisé en REA', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT1_ENC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Valorisé [HOSP]', 'Montant CA SEJOUR Valorisé (hospitalisés)', 'Montant CA SEJOUR Valorisé (hospitalisés)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''1'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT1_FAC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé [HOSP]', 'Montant CA SEJOUR factur (hospitalisés)', 'Montant CA SEJOUR factur (hospitalisés)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''1'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT1_TOT', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé + Valorisé [HOSP]', 'Montant CA SEJOUR facturé + enc. (hospitalisés)', 'Montant CA SEJOUR facturé + enc. (hospitalisés)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''1'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT2_ENC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Valorisé [AMBU]', 'Montant CA Séjour Valorisé (ambulatoire)', 'Montant CA Séjour Valorisé (ambulatoire)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''2'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séjours ambulatoires (0 nuits)', '-TS2', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT2_FAC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé [AMBU]', 'Montant CA SEJOUR facturé (ambulatoire)', 'Montant CA SEJOUR facturé (ambulatoire)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''2'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séjours ambulatoires (0 nuits)', '-TS2', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT2_TOT', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé + Valorisé [AMBU]', 'Montant CA SEJOUR facturé + enc. (ambulatoire)', 'Montant CA SEJOUR facturé + enc. (ambulatoire)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''2'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours ambulatoires (0 nuits)', '-TS2', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT3_ENC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Valorisé [EXT]', 'Montant CA SEJOUR Valorisé (Externes)', 'Montant CA SEJOUR Valorisé (Externes)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''3'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séjours externes', '-TS3', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT3_FAC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé [EXT]', 'Montant CA SEJOUR facturé (Externe)', 'Montant CA SEJOUR facturé (Externe)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''3'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séjours externes', '-TS3', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT3_TOT', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé + Valorisé [EXT]', 'Montant CA SEJOUR facturé + enc. (Externe)', 'Montant CA SEJOUR facturé + enc. (Externe)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''3'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours externes', '-TS3', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT5_ENC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Valorisé [SEANCE]', 'Montant CA SEJOUR Valorisé (séances)', 'Montant CA SEJOUR Valorisé (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''5'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séances', '-TS5', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT5_FAC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé [SEANCE]', 'Montant CA SEJOUR facturé (séances)', 'Montant CA SEJOUR facturé (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''5'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séances', '-TS5', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT5_TOT', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé + Valorisé [SEANCE]', 'Montant CA SEJOUR facturé + enc. (séances)', 'Montant CA SEJOUR facturé + enc. (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''5'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séances', '-TS5', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT_ENC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Valorisé', 'Montant CA SEJOUR Valorisé', 'Montant CA SEJOUR Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des séjours', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT_FAC', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé', 'Montant CA SEJOUR facturé', 'Montant CA SEJOUR facturé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des séjours', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_MT_TOT', 'FACTURATION_CLINIQUE', 'CA SEJOUR Facturé + Valorisé', 'Montant CA SEJOUR facturé + Valorisé', 'Montant CA SEJOUR facturé + Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des séjours', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB1_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Valorisés [HOSP]', 'Nombre séjours Valorisés (hospitalisés)', 'Nombre séjours Valorisés (hospitalisés)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours hospitalisés (1 nuit minimum) valorisés', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB1_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR facturés [HOSP]', 'Nombre séjours facturés (hospitalisés)', 'Nombre séjours facturés (hospitalisés)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours hospitalisés (1 nuit minimum) facturés', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB1_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Facturés + Valorisés [HOSP]', 'Nombre SEJOURS Facturés + Valorisés (hospitalisés', 'Nombre SEJOURS Facturés + Valorisés (hospitalisés', 'DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours hospitalisés (1 nuit minimum) facturés et valorisés', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB2_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Valorisés [AMBU]', 'Nombre séjours Valorisés (ambulatoire)', 'Nombre séjours Valorisé s (ambulatoire)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ambulatoires (0 nuits) valorisés', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB2_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR facturés [AMBU]', 'Nombre séjours facturés (ambulatoire)', 'Nombre séjours facturés (ambulatoire)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ambulatoires (0 nuits) facturés', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB2_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Facturés + Valorisés [AMBU]', 'Nombre séjours Facturés + Valorisés (ambulatoire)', 'Nombre séjours Facturés + Valorisés (ambulatoire)', 'DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours ambulatoires (0 nuits) facturés et valorisés', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB3_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Valorisés [EXT]', 'Nombre séjours Valorisés (Externe)', 'Nombre séjours Valorisés (Externe)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''3'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours externes valorisés', '-TS3', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB3_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR facturés [EXT]', 'Nombre séjours facturés (Externe)', 'Nombre séjours facturés (Externe)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''3'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours externes facturés', '-TS3', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB3_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Facturés + Valorisés [EXT]', 'Nombre séjours Facturés + Valorisés (Externe)', 'Nombre séjours Facturés + Valorisés (Externe)', 'DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''3'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours externes facturés et valorisés', '-TS3', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB5_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Valorisés [SEANCE]', 'Nombre séances Valorisés (séances)', 'Nombre séances Valorisés (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''5'' and est_ligne_facturee = ''0'' THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances valorisées', '-TS5', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB5_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR facturés [SEANCE]', 'Nombre séances facturées (séances)', 'Nombre séances facturées (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''5'' and est_ligne_facturee = ''1'' THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances facturées', '-TS5', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB5_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Facturés + Valorisés [SEANCE]', 'Nombre séances Facturées + Valorisées (séances)', 'Nombre séances Facturées + Valorisées (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = ''5'' THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séances facturées et valorisées', '-TS5', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Valorisés', 'Nombre séjours Valorisés', 'Nombre séjours Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R]) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR facturés', 'Nombre séjours facturés', 'Nombre séjours facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R]) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours facturés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_RUBMED_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SEJOUR Facturés + Valorisés', 'Nombre séjours Facturés + Valorisés', 'Nombre séjours Facturés + Valorisés', 'DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_RUBMED_R]) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours facturés et valorisés', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_SEH_MT_CPT', 'FACTURATION_CLINIQUE', 'CA SE comptabilisé', 'Montant SE comptabilisé', 'Montant SE comptabilisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_comptabilise ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires SE comptabilisé', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_SEH_MT_ENC', 'FACTURATION_CLINIQUE', 'CA SE Valorisé Clinique', 'Montant SE Valorisé Clinique', 'Montant SE Valorisé Clinique', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires SE valorisé', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_SEH_MT_FAC', 'FACTURATION_CLINIQUE', 'CA SE Facturé Clinique', 'Montant SE facturés Clinique', 'Montant SE facturés Clinique', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires SE facturé', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_SEH_MT_TOT', 'FACTURATION_CLINIQUE', 'CA SE Facturé + Valorisé', 'Montant SE Facturé + Valorisé', 'Montant SE Facturé + Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_facture + montant_encours ELSE NULL END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires SE facturé et valorisé', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_SEH_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Rubriques SE Valorisés', 'Nombre SE Valorisés', 'Nombre SE Valorisés', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de rubriques SE valorisées', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_SEH_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Rubriques SE facturés', 'Nombre SE facturés', 'Nombre SE facturés', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de rubriques SE facturées', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_SEH_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Rubriques SE Facturés + Valorisés', 'Nombre SE Facturés + Valorisés', 'Nombre SE Facturés + Valorisés', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN nb_rubrique_facture + nb_rubrique_encours ELSE NULL END', '1', 'SUM', '#', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de rubriques SE facturées et valorisées', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_SEP', 'SEP', 'Séparateur', '', '', '', '1', 'SEP', '', 0, ' ', ' ', ' ', ' ', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_SHO_JOU_ENC', 'FACTURATION_CLINIQUE', 'NB Jours CPC Valorisées', 'Nombre journées CP Valorisées', 'Nombre journées CP Valorisées', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées valorisées en chambre particulière', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_SHO_JOU_FAC', 'FACTURATION_CLINIQUE', 'NB Jours CPC facturées', 'Nombre journées CP facturées', 'Nombre journées CP facturées', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées en chambre particulière', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_SHO_JOU_TOT', 'FACTURATION_CLINIQUE', 'NB Jours CPC fact. + val.', 'Nombre journées CP Facturées + Valorisées', 'Nombre journées CP Facturées + Valorisées', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN (nb_rubrique_encours * coefficient) + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées et valorisées en chambre particulière', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_SHO_MT_ENC', 'FACTURATION_CLINIQUE', 'CA CPC Valorisé', 'CA chambre particulière Valorisé', 'CA chambre particulière Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé en chambre particulière', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_SHO_MT_FAC', 'FACTURATION_CLINIQUE', 'CA CPC Facturé', 'CA chambre particulière facturée', 'CA chambre particulière facturée', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé en chambre particulière', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_SHO_MT_TOT', 'FACTURATION_CLINIQUE', 'CA CPC Facturé + Valorisé', 'CA chambre particulière facturée + Valorisé', 'CA chambre particulière facturée + Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé en chambre particulière', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_SNS_NB_FACVAL', 'FACTURATION_CLINIQUE', 'NB Rubriques SNS Facturés + Valorisés', 'Nombre SNS Facturé + Valorisé', 'Nombre SNS Facturé + Valorisé', 'CASE WHEN prestation_code in (''SNS'') THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END', '1', 'SUM', '#', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_SORDIRCOM', 'OCCUPATION', 'SSR - Sorties directes (Hospitalisés COMPLETE)', 'Sorties directes (Hospitalisés COMPLETE)', 'Sorties directes (Hospitalisés COMPLETE)', 'CASE WHEN mode_traitement_id = ''3'' THEN nb_sorties_directes ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes des séjours en Hospitalisation Complète', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_SORDIRJR', 'OCCUPATION', 'SSR - Sorties directes (Hospitalisés DE JOUR)', 'Sorties directes (Hospitalisés DE JOUR)', 'Sorties directes (Hospitalisés DE JOUR)', 'CASE WHEN mode_traitement_id = ''4'' THEN nb_sorties_directes ELSE 0 END', '1', 'SUM', '#', 60, '1', ' ', ' ', ' ', ' ', '1', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties directes des séjours en Hospitalisation de Jour', '-TS1', '', '', '', '', '', '', '', ''), +(1, 'CTI_SOR_POST_PER', '*CALC', 'NB Sorties après période', 'Sorties après période', 'Sor > Per', '[1] - [2]', '1', '*CALC', '', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSEJO', 'CTI_DEP', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de sorties apr', 'NBSEJ', 'NBSOR', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_JOU_ENC', 'FACTURATION_CLINIQUE', 'NB Jours SRC Valorisées', 'Nombre journées SRC Valorisées', 'Nombre journées SRC Valorisées', 'CASE WHEN prestation_code IN (''SRC'', ''SSC'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées valorisées en SRC', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_JOU_FAC', 'FACTURATION_CLINIQUE', 'NB Jours SRC facturées', 'Nombre journées SRC facturées', 'Nombre journées SRC facturées', 'CASE WHEN prestation_code IN (''SRC'', ''SSC'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées en SRC', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_JOU_TOT', 'FACTURATION_CLINIQUE', 'NB Jours SRC Facturées + Valorisées', 'Total journées SRC Facturées + Valorisées', 'Total journées SRC Facturées + Valorisées', 'CASE WHEN prestation_code IN (''SRC'', ''SSC'') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées et valorisées en SRC', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_MT_ENC', 'FACTURATION_CLINIQUE', 'CA SRC Valorisé', 'Montant SRC Valorisé', 'Montant SRC Valorisé', 'CASE WHEN prestation_code IN (''SRC'', ''SSC'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé SRC', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_MT_FAC', 'FACTURATION_CLINIQUE', 'CA SRC Facturé', 'Montant SRC facturé', 'Montant SRC facturé', 'CASE WHEN prestation_code IN (''SRC'', ''SSC'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé SRC', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_MT_TOT', 'FACTURATION_CLINIQUE', 'CA SRC Facturé + Valorisé', 'Montant SRC facturé + Valorisé', 'Montant SRC facturé + Valorisé', 'CASE WHEN prestation_code IN (''SRC'', ''SSC'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé SRC', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SRC Valorisés', 'Nombre séjours SRC Valorisés', 'Nombre séjours SRC Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''SRC'', ''SSC'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires valorisé en SRC', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SRC facturés', 'Nombre séjours SRC facturés', 'Nombre séjours SRC facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''SRC'', ''SSC'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé en SRC', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRC_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SRC Facturés + Valorisés', 'Nombre séjours SRC Facturés + Valorisés', 'Nombre séjours SRC Facturés + Valorisés', 'DISTINCT CASE WHEN ( prestation_code IN (''SRC'', ''SSC'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé et valorisé en SRC', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRUBMED_MT_FAC', 'FACTURATION_CLINIQUE', 'CA SEJOUR sauf Facturé', 'Montant CA SEJOUR facturé', 'Montant CA SEJOUR facturé', 'CASE WHEN rubrique_facturation_id NOT IN [LISTE:CTI_RUBMED_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des séjours non facturés', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_SRUBMED_MT_TOT', 'FACTURATION_CLINIQUE', 'CA SEJOUR sauf Facturé + Valorisé', 'Montant sauf CA SEJOUR facturé + Valorisé', 'Montant sauf CA SEJOUR facturé + Valorisé', 'CASE WHEN rubrique_facturation_id NOT IN [LISTE:CTI_RUBMED_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des séjours non facturés non valorisés', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_ST2A_MT_TOT', 'FACTURATION_CLINIQUE', 'CA SOINS sauf Facturé + Valorisé', 'Montant sauf CA Soins facturé + Valorisé', 'Montant sauf CA Soins facturé + Valorisé', 'CASE WHEN rubrique_facturation_id NOT IN [LISTE:CTI_T2A_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des soins non facturés non valorisés', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_ST2A_NB_FAC', 'FACTURATION_CLINIQUE', 'CA SOINS sauf Facturé', 'Montant sauf CA Soins facturé', 'Montant sauf CA Soins facturé', 'CASE WHEN rubrique_facturation_id NOT IN [LISTE:CTI_T2A_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires des soins non facturés', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_JOU_ENC', 'FACTURATION_CLINIQUE', 'NB Jours STF Valorisées', 'Nombre journées STF Valorisées', 'Nombre journées STF Valorisées', 'CASE WHEN prestation_code IN (''STF'') THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées valorisées en STF', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_JOU_FAC', 'FACTURATION_CLINIQUE', 'NB Jours STF facturées', 'Nombre journées STF facturées', 'Nombre journées STF facturées', 'CASE WHEN prestation_code IN (''STF'') THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées en STF', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_JOU_TOT', 'FACTURATION_CLINIQUE', 'NB Jours STF Facturées + Valorisées', 'Total journées STF Facturées + Valorisées', 'Total journées STF Facturées + Valorisées', 'CASE WHEN prestation_code IN (''STF'') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de journées facturées et valorisées en STF', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_MT_ENC', 'FACTURATION_CLINIQUE', 'CA STF Valorisé', 'Montant STF Valorisé', 'Montant STF Valorisé', 'CASE WHEN prestation_code IN (''STF'') THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé STF', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_MT_FAC', 'FACTURATION_CLINIQUE', 'CA STF Facturé', 'Montant STF facturé', 'Montant STF facturé', 'CASE WHEN prestation_code IN (''STF'') THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé STF', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_MT_TOT', 'FACTURATION_CLINIQUE', 'CA STF Facturé + Valorisé', 'Montant STFfacturé + Valorisé', 'Montant STFfacturé + Valorisé', 'CASE WHEN prestation_code IN (''STF'') THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé STF', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA STF Valorisés', 'Nombre séjours STF Valorisés', 'Nombre séjours STF Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and prestation_code IN (''STF'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires valorisé en STF', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA STF facturés', 'Nombre séjours STF facturés', 'Nombre séjours STF facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and prestation_code IN (''STF'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé en STF', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_STF_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA STF Facturés + Valorisés', 'Nombre séjours STF Facturés + Valorisés', 'Nombre séjours STF Facturés + Valorisés', 'DISTINCT CASE WHEN ( prestation_code IN (''STF'')) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé et valorisé en STF', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUM_DEL_FACTURE', 'SEJOURS', 'SUM delai facturé', 'SUM_DEL_FACTURE', 'SUM_DEL_FACTURE', 'delai_facture', '1', 'SUM', '0,0', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUM_DEL_GRP', 'SEJOURS', 'SUM delai groupage', 'Sum delai groupage', 'Sum delai groupage', 'delai_groupage', '1', 'SUM', '#,0', 40, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NOMBRE', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUM_DEL_SOLD', 'SEJOURS', 'SUM delai Soldé', 'SUM_DEL_SOLD', 'SUM_DEL_SOLD', 'delai_solde_c', '1', 'SUM', '0,0', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBJOU', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUM_NB_CALCULES', 'SEJOURS', 'SUM NB facturé', 'SUM_NB_CALCULES', 'SUM_NB_CALCULES', 'nb_calcules', '1', 'SUM', '0,0', 60, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUM_NB_GROUPE', 'SEJOURS', 'SUM NB groupé', 'SUM NB groupé', 'SUM NB groupé', 'nb_groupe', '1', 'SUM', '#,0', 40, '2', ' ', ' ', ' ', ' ', '2', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NOMBRE', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUPHOT_CA_CPT', 'FACTURATION_CLINIQUE', 'CA comptabilisé Suppléments', 'Montant Comptabilisé Suppléments Hoteliers', 'Montant Comptabilisé Suppléments Hoteliers', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SUPHOT_R] THEN montant_comptabilise ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé en suppléments hôteliers', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUPHOT_ENC', 'FACTURATION_CLINIQUE', 'CA HOTELLERIE Valorisé', 'Montant Suppléments hoteliers Valorisé', 'Montant Suppléments hoteliers Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SUPHOT_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé en suppléments hôteliers', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUPHOT_FAC', 'FACTURATION_CLINIQUE', 'CA HOTELLERIE Facturé', 'Montant Suppléments hoteliers facturés', 'Montant Suppléments hoteliers facturés', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SUPHOT_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé en suppléments hôteliers', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_SUPHOT_TOT', 'FACTURATION_CLINIQUE', 'CA HOTELLERIE Facturé + Valorisé', 'Montant Suppléments hoteliers Facturés + Valorisés', 'Montant Suppléments hoteliers Facturés + Valorisés', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SUPHOT_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé en suppléments hôteliers', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT1_ENC', 'FACTURATION_CLINIQUE', 'CA SOINS Valorisé [HOSP]', 'Montant CA Soins Valorisé (hospitalisés)', 'Montant CA Soins Valorisé (hospitalisés)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''1'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des soins des séjours hospitalisés', '-TS1', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT1_FAC', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé [HOSP]', 'Montant CA Soins facturé (hospitalisés)', 'Montant CA Soins facturé (hospitalisés)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''1'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des soins des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT1_TOT', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé + Valorisé [HOSP]', 'Montant CA Soins facturé + enc. (hospitalisés)', 'Montant CA Soins facturé + enc. (hospitalisés)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''1'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des soins des séjours hospitalisés (1 nuit minimum)', '-TS1', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT2_ENC', 'FACTURATION_CLINIQUE', 'CA SOINS Valorisé [AMBU]', 'Montant CA Soins Valorisé (ambulatoire)', 'Montant CA Soins Valorisé (ambulatoire)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''2'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des soins des séjours ambulatoires', '-TS2', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT2_FAC', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé [AMBU]', 'Montant CA Soins facturé (ambulatoire)', 'Montant CA Soins facturé (ambulatoire)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''2'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des soins des séjours ambulatoires (0 nuits)', '-TS2', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT2_TOT', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé + Valorisé [AMBU]', 'Montant CA Soins facturé + enc. (ambulatoire)', 'Montant CA Soins facturé + enc. (ambulatoire)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''2'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des soins des séjours ambulatoires (0 nuits)', '-TS2', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT3_ENC', 'FACTURATION_CLINIQUE', 'CA SOINS Valorisé [EXT]', 'Montant CA Soins Valorisé (Externe)', 'Montant CA Soins Valorisé (Externe)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''3'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des soins des séjours externes', '-TS3', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT3_FAC', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé [EXT]', 'Montant CA Soins facturé (Externe)', 'Montant CA Soins facturé (Externe)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''3'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des soins des séjours externes', '-TS3', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT3_TOT', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé + Valorisé [EXT]', 'Montant CA Soins facturé + enc. (Externe)', 'Montant CA Soins facturé + enc. (Externe)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''3'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des soins des séjours externes', '-TS3', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT5_ENC', 'FACTURATION_CLINIQUE', 'CA SOINS Valorisé [SEANCE]', 'Montant CA Soins Valorisé (séances)', 'Montant CA Soins Valorisé (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''5'' THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des soins des séances', '-TS5', 'CAV', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT5_FAC', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé [SEANCE]', 'Montant CA Soins facturé (séances)', 'Montant CA Soins facturé (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''5'' THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des soins des séances', '-TS5', 'CAF', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT5_TOT', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé + Valorisé [SEANCE]', 'Montant CA Soins facturé + enc. (séances)', 'Montant CA Soins facturé + enc. (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''5'' THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des soins des séances', '-TS5', 'CAVF', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT_ENC', 'FACTURATION_CLINIQUE', 'CA SOINS Valorisé', 'Montant CA Soins Valorisé', 'Montant CA Soins Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des soins des séjours', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT_FAC', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé', 'Montant CA Soins facturé', 'Montant CA Soins facturé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des soins des séjours', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_MT_TOT', 'FACTURATION_CLINIQUE', 'CA SOINS Facturé + Valorisé', 'Montant CA Soins facturé + Valorisé', 'Montant CA Soins facturé + Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des soins des séjours', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB1_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Valorisés [HOSP]', 'Nombre séjours Soins Valorisés (hospitalisés)', 'Nombre séjours Soins Valorisés (hospitalisés)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires valorisé en soins des séjours hospitalisés (1 nuit minimum)', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB1_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS facturés [HOSP]', 'Nombre séjours Soins facturés (hospitalisés)', 'Nombre séjours Soins facturés (hospitalisés)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé en soins des séjours hospitalisés (1 nuit minimum)', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB1_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Facturés + Valorisés [HOSP]', 'Nombre SEJOURS Facturés + Valorisés (hospitalisés', 'Nombre SEJOURS Facturés + Valorisés (hospitalisés', 'DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''1'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé et valorisé en soins des séjours hospitalisés (1 nuit minimum)', '-TS1', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB2_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Valorisés [AMBU]', 'Nombre séjours Soins Valorisés (ambulatoire)', 'Nombre séjours Soins Valorisés (ambulatoire)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires valorisé en soins des séjours ambulatoires (0 nuits)', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB2_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS facturés [AMBU]', 'Nombre séjours Soins facturés (ambulatoire)', 'Nombre séjours Soins facturés (ambulatoire)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé en soins des séjours ambulatoires (0 nuits)', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB2_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Facturés + Valorisés [AMBU]', 'Nombre séjours Soins Facturés + Valorisés (ambulatoire)', 'Nombre séjours Soins Facturés + Valorisés (ambulatoire)', 'DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''2'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé et valorisé en soins des séjours ambulatoires (0 nuits)', '-TS2', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB3_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Valorisés [EXT]', 'Nombre séjours Soins Valorisés (Externe)', 'Nombre séjours Soins Valorisés (Externe)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''3'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires valorisé en soins des séjours externes', '-TS3', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB3_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS facturés [EXT]', 'Nombre séjours Soins facturés (Externe)', 'Nombre séjours Soins facturés (Externe)', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''3'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé en soins des séjours externes', '-TS3', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB3_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Facturés + Valorisés [EXT]', 'Nombre séjours Soins Facturés + Valorisés (Externe)', 'Nombre séjours Soins Facturés + Valorisés (Externe)', 'DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''3'') THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé et valorisé en soins des séjours externes', '-TS3', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB5_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Valorisés [SEANCE]', 'Nombre séances Valorisés (séances)', 'Nombre séances Valorisés (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''5'' and est_ligne_facturee = ''0'' THEN nb_rubrique_encours ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires valorisé en soins des séances', '-TS5', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB5_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS facturés [SEANCE]', 'Nombre séances facturées (séances)', 'Nombre séances facturées (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''5'' and est_ligne_facturee = ''1'' THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé en soins des séances', '-TS5', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB5_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Facturés + Valorisés [SEANCE]', 'Nombre séances Facturées + Valorisées (séances)', 'Nombre séances Facturées + Valorisées (séances)', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = ''5'' THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END', '1', 'SUM', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé et valorisé en soins des séances', '-TS5', 'NBSEJ', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB_ENC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Valorisés', 'Nombre séjours Soins Valorisés', 'Nombre séjours Soins Valorisés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''0'' and rubrique_facturation_id IN [LISTE:CTI_T2A_R]) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires valorisé en soins des séjours', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB_FAC', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS facturés', 'Nombre séjours Soins facturés', 'Nombre séjours Soins facturés', 'DISTINCT CASE WHEN (est_ligne_facturee = ''1'' and rubrique_facturation_id IN [LISTE:CTI_T2A_R]) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé en soins des séjours', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_T2A_NB_TOT', 'FACTURATION_CLINIQUE', 'NB Séjours CA SOINS Facturés + Valorisés', 'Nombre séjours Soins Facturés + Valorisés', 'Nombre séjours Soins Facturés + Valorisés', 'DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_T2A_R]) THEN no_sejour ELSE NULL END', '1', 'COUNT', '', 0, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de séjours du Chiffre d''Affaires facturé et valorisé en soins des séjours', 'NBSEJ', '', '', '', '', '', '', '', ''), +(1, 'CTI_TXAMBFOR', '*CALC', 'Taux ambulatoires forains', 'Taux ambulatoires forains', 'Taux ambulatoires forains', '(base.cti_division([2] , [1]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBAMB', 'CTI_NBAMBFOR', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux ambulatoires forains', '-TS2', 'NBENT', 'TAUX', '', '', '', '', '', ''), +(1, 'CTI_TXCHP_NBJ', '*CALC', 'Ratio CPC', 'Ratio Chambre particulière', 'Ratio Chambre particulière', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBCHPO', 'CTI_NBJSN', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Part du nombre de journées en chambre particulière dans le nombre de journées hospitalisées', '-TS1', 'NBJOU', '', '', '', '', '', '', ''), +(1, 'CTI_TXFAC_SEJ', '*CALC', 'Taux facturation des séjours', 'Taux de facturation des séjours', 'Tx sej fac', 'base.cti_division([2], [1]) * 100.0', '1', '*CALC', '#,00%', 60, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBSEJO', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Part du nombre de séjours facturés dans le nombre de séjours', 'NBSEJ', 'TAUX', '', '', '', '', '', '', ''), +(1, 'CTI_TX_AM', '*CALC', 'Taux occupation [AMBU]', 'Taux D''occupation (Ambulatoire)', 'Taux D''occupation (Ambulatoire)', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBAMB', 'CTI_NBPLACES_A', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux d''occupation des places des séjours ambulatoires (0 nuits)', '-TS2', 'NBENT', 'TAUX', '-TS1', '', '', '', '', ''), +(1, 'CTI_TX_CP_HO', '*CALC', 'Taux occupation CPC [HOSP]', 'Taux D''occupation CP (Hospitalisés)', 'Taux D''occupation CP (Hospitalisés)', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBJCPSN', 'CTI_NBPLACES_CP_H', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux d''occupation des places en chambre particulière des séjours hospitalisés (1 nuit minimum)', '-TS1', 'NBJOU', 'TAUX', '', '', '', '', '', ''), +(1, 'CTI_TX_FAC', '*CALC', 'Taux facturation des sorties', 'Taux de facturation des sorties', 'Tx fac', 'base.cti_division([1], [2]) * 100.0', '1', '*CALC', '#,00%', 60, ' ', ' ', ' ', ' ', ' ', ' ', '', 'CTI_NBSOR_SAES', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux des sorties facturées sur toutes les sorties', '-TS1', '-TS2', '-TS3', '-TS5', 'NBSOR', '', '', '', ''), +(1, 'CTI_TX_HO', '*CALC', 'Taux occupation [HOSP]', 'Taux D''occupation (Hospitalisés)', 'Taux D''occupation (Hospitalisés)', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NBJSN', 'CTI_NBPLACES_H', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux d''occupation des places des séjours hospitalisés (1 nuit minimum)', '-TS1', 'NBJOU', 'TAUX', '', '', '', '', '', ''), +(1, 'CTI_TX_HOAM', '*CALC', 'Taux occupation (Hospitalisés - Ambulatoire)', 'Taux D''occupation (Hospitalisés - Ambulatoire)', 'Taux D''occupation (Hospitalisés - Ambulatoire)', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NB2_JSN', 'CTI_NBPLACES_HA', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux d''occupation des places des séjours hospitalisés et ambulatoires', '-TS1', '-TS2', 'NBJOU', 'TAUX', '', '', '', '', ''), +(1, 'CTI_TX_HOCOMP', '*CALC', 'SSR - Taux occupation [HOSP]', 'Taux D''occupation (Hospitalisés)', 'Taux D''occupation (Hospitalisés)', '(base.cti_division([1] , [2]) * 100)', '1', '*CALC', '#,00%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_NB4_JSNCP', 'CTI_NBPLACES_H', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux d''occupation des places des séjours hospitalisés (1 nuit minimum)', '-TS1', '-TS2', '-TS5', '', '', '', '', '', ''), +(1, 'CTI_TX_JOUR_FAC', '*CALC', 'Taux Jours facturées (jour de sortie non inclus)', 'Taux de journées facturées (jour de sortie non inclus)', 'Tx Jour Fac', 'base.cti_division([1], [2]) * 100.0', '1', '*CALC', '#,0%', 0, ' ', ' ', ' ', ' ', ' ', ' ', 'CTI_JOUR_FAC', 'CTI_NBJSNS', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Taux du nombre de journées facturées sur le nombre de journées des séjours hospitalisés sortis', '-TS1', 'NBJOU', 'TAUX', '', '', '', '', '', ''), +(1, 'CTI_UCD_MT_CPT', 'FACTURATION_CLINIQUE', 'CA MEDICAMENTS Comptabilisé', 'Montant Médicaments Comptabilisé', 'Montant Médicaments Comptabilisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN montant_comptabilise ELSE 0 END', '1', 'SUM', '#E', 80, '4', ' ', ' ', ' ', ' ', '4', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires comptabilisé des médicaments', 'CACP', '', '', '', '', '', '', '', ''), +(1, 'CTI_UCD_MT_ENC', 'FACTURATION_CLINIQUE', 'CA MEDICAMENTS Valorisé', 'Montant Médicaments Valorisé', 'Montant Médicaments Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des médicaments', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_UCD_MT_FAC', 'FACTURATION_CLINIQUE', 'CA MEDICAMENTS Facturé', 'Montant Médicaments Facturé', 'Montant Médicaments Facturé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des médicaments', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_UCD_MT_TOT', 'FACTURATION_CLINIQUE', 'CA MEDICAMENTS Facturé + Valorisé', 'Montant Médicaments Facturé + Valorisé', 'Montant Médicaments Fac + Val', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN montant_encours + montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des médicaments', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_UCD_RUB_FAC', 'FACTURATION_CLINIQUE', 'NB Rubriques MEDICAMENT', 'Nombre de médicaments [UCD]', 'Nombre de médicaments [UCD]', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '#', 60, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Nombre de rubriques de médicaments présentes sur la période', 'NBRUB', '', '', '', '', '', '', '', ''), +(1, 'CTI_URG_MT_ENC', 'FACTURATION_CLINIQUE', 'CA URGENCES Valorisé', 'Montant urgences Valorisé', 'Montant urgences Valorisé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_URG_R] THEN montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires valorisé des urgences', 'CAV', '', '', '', '', '', '', '', ''), +(1, 'CTI_URG_MT_FAC', 'FACTURATION_CLINIQUE', 'CA URGENCES Facturé', 'Montant urgences Facturé', 'Montant urgences Facturé', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_URG_R] THEN montant_facture ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé des urgences', 'CAF', '', '', '', '', '', '', '', ''), +(1, 'CTI_URG_MT_TOT', 'FACTURATION_CLINIQUE', 'CA URGENCES Facturé + Valorisé', 'Montant urgences Facturé + Valorisé', 'Montant urgences Fact + Val', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_URG_R] THEN montant_facture + montant_encours ELSE 0 END', '1', 'SUM', '#E', 80, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', 'Chiffre d''Affaires facturé et valorisé des urgences', 'CAVF', '', '', '', '', '', '', '', ''), +(1, 'CTI_URG_RUB_FAC', 'FACTURATION_CLINIQUE', 'NB Rubriques URGENCES', 'Nombre rubriques urgences', 'Nombre rubriques urgences', 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_URG_R] THEN nb_rubrique_facture ELSE 0 END', '1', 'SUM', '#', 60, '1', '2', '3', '4', ' ', ' ', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '', '0', '', '', '', '', '', '', '', '', '', '', '', 'NBRUB', '', '', '', '', '', '', '', '') +; + +-- 3/3 : Màj de la table iCTI +-- Suppression des indicateurs en double +DELETE FROM activite.t_indicateurs +USING +( +SELECT code, MIN(oid) AS minoid FROM activite.t_indicateurs WHERE code <> '' GROUP BY 1 HAVING count(*) > 1 +) subview +WHERE t_indicateurs.code = subview.code AND t_indicateurs.oid <> subview.minoid; + +-- Mise à jour indicateurs déjà présents +UPDATE activite.t_indicateurs SET + texte = w_dbsetup.texte, + table_name = w_dbsetup.table_name, + column_name = w_dbsetup.column_name, + is_cti = w_dbsetup.is_cti, + entete = w_dbsetup.entete, + entete_etendue = w_dbsetup.entete_etendue, + total_function = w_dbsetup.total_function, + output_format = w_dbsetup.output_format, + width = w_dbsetup.width, + dimension_date_1 = w_dbsetup.dimension_date_1, + dimension_date_2 = w_dbsetup.dimension_date_2, + dimension_date_3 = w_dbsetup.dimension_date_3, + dimension_date_4 = w_dbsetup.dimension_date_4, + dimension_date_5 = w_dbsetup.dimension_date_5, + dimension_date = w_dbsetup.dimension_date, + is_template = w_dbsetup.is_template, + variable_definition = ARRAY[variable_definition_1,variable_definition_2,variable_definition_3] , + variable_value = ARRAY[variable_value_1,variable_value_2,variable_value_3], + variable_value_text = ARRAY[variable_value_text_1,variable_value_text_2,variable_value_text_3], + description = w_dbsetup.description +FROM w_dbsetup +WHERE t_indicateurs.code = w_dbsetup.code; + +-- Ajout des indicateurs +INSERT INTO activite.t_indicateurs(texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + code, + total_function, + output_format, + width, + dimension_date_1, + dimension_date_2, + dimension_date_3, + dimension_date_4, + dimension_date_5, + dimension_date, + is_template, + variable_definition, + variable_value, + variable_value_text, + description +) +SELECT texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + code, + total_function, + output_format, + width, + dimension_date_1, + dimension_date_2, + dimension_date_3, + dimension_date_4, + dimension_date_5, + dimension_date, + is_template, + ARRAY[variable_definition_1,variable_definition_2,variable_definition_3] , + ARRAY[variable_value_1,variable_value_2,variable_value_3], + ARRAY[variable_value_text_1,variable_value_text_2,variable_value_text_3], + description +FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM activite.t_indicateurs WHERE code IS NOT NULL) +; + +CREATE INDEX i_w_dbsetup +ON w_dbsetup +USING btree +(code) +; + +ANALYZE w_dbsetup +; + +-- Mise à jour des références +UPDATE activite.t_indicateurs SET + indicateur_associe_1_id = COALESCE(t_indicateurs_1.oid,0), + indicateur_associe_2_id = COALESCE(t_indicateurs_2.oid,0), + indicateur_associe_3_id = COALESCE(t_indicateurs_3.oid,0), + indicateur_associe_4_id = COALESCE(t_indicateurs_4.oid,0), + indicateur_associe_5_id = COALESCE(t_indicateurs_5.oid,0), + indicateur_associe_6_id = COALESCE(t_indicateurs_6.oid,0), + indicateur_associe_7_id = COALESCE(t_indicateurs_7.oid,0), + indicateur_associe_8_id = COALESCE(t_indicateurs_8.oid,0), + indicateur_associe_9_id = COALESCE(t_indicateurs_9.oid,0), + indicateur_associe_10_id = COALESCE(t_indicateurs_10.oid,0), + indicateur_associe_11_id = COALESCE(t_indicateurs_11.oid,0), + indicateur_associe_12_id = COALESCE(t_indicateurs_12.oid,0), + indicateur_associe_13_id = COALESCE(t_indicateurs_13.oid,0), + indicateur_associe_14_id = COALESCE(t_indicateurs_14.oid,0), + indicateur_associe_15_id = COALESCE(t_indicateurs_15.oid,0), + indicateur_associe_16_id = COALESCE(t_indicateurs_16.oid,0), + indicateur_associe_17_id = COALESCE(t_indicateurs_17.oid,0), + indicateur_associe_18_id = COALESCE(t_indicateurs_18.oid,0), + indicateur_associe_19_id = COALESCE(t_indicateurs_19.oid,0), + indicateur_associe_20_id = COALESCE(t_indicateurs_20.oid,0), + indicateur_reference_id = COALESCE(t_indicateurs_reference.oid,0), + indicateur_template_id = COALESCE(t_indicateurs_template.oid,0) +FROM w_dbsetup + LEFT JOIN activite.t_indicateurs t_indicateurs_1 ON (w_dbsetup.indicateur_associe_1_code = t_indicateurs_1.code AND w_dbsetup.indicateur_associe_1_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_2 ON (w_dbsetup.indicateur_associe_2_code = t_indicateurs_2.code AND w_dbsetup.indicateur_associe_2_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_3 ON (w_dbsetup.indicateur_associe_3_code = t_indicateurs_3.code AND w_dbsetup.indicateur_associe_3_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_4 ON (w_dbsetup.indicateur_associe_4_code = t_indicateurs_4.code AND w_dbsetup.indicateur_associe_4_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_5 ON (w_dbsetup.indicateur_associe_5_code = t_indicateurs_5.code AND w_dbsetup.indicateur_associe_5_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_6 ON (w_dbsetup.indicateur_associe_6_code = t_indicateurs_6.code AND w_dbsetup.indicateur_associe_6_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_7 ON (w_dbsetup.indicateur_associe_7_code = t_indicateurs_7.code AND w_dbsetup.indicateur_associe_7_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_8 ON (w_dbsetup.indicateur_associe_8_code = t_indicateurs_8.code AND w_dbsetup.indicateur_associe_8_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_9 ON (w_dbsetup.indicateur_associe_9_code = t_indicateurs_9.code AND w_dbsetup.indicateur_associe_9_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_10 ON (w_dbsetup.indicateur_associe_10_code = t_indicateurs_10.code AND w_dbsetup.indicateur_associe_10_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_11 ON (w_dbsetup.indicateur_associe_11_code = t_indicateurs_11.code AND w_dbsetup.indicateur_associe_11_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_12 ON (w_dbsetup.indicateur_associe_12_code = t_indicateurs_12.code AND w_dbsetup.indicateur_associe_12_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_13 ON (w_dbsetup.indicateur_associe_13_code = t_indicateurs_13.code AND w_dbsetup.indicateur_associe_13_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_14 ON (w_dbsetup.indicateur_associe_14_code = t_indicateurs_14.code AND w_dbsetup.indicateur_associe_14_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_15 ON (w_dbsetup.indicateur_associe_15_code = t_indicateurs_15.code AND w_dbsetup.indicateur_associe_15_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_16 ON (w_dbsetup.indicateur_associe_16_code = t_indicateurs_16.code AND w_dbsetup.indicateur_associe_16_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_17 ON (w_dbsetup.indicateur_associe_17_code = t_indicateurs_17.code AND w_dbsetup.indicateur_associe_17_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_18 ON (w_dbsetup.indicateur_associe_18_code = t_indicateurs_18.code AND w_dbsetup.indicateur_associe_18_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_19 ON (w_dbsetup.indicateur_associe_19_code = t_indicateurs_19.code AND w_dbsetup.indicateur_associe_19_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_20 ON (w_dbsetup.indicateur_associe_20_code = t_indicateurs_20.code AND w_dbsetup.indicateur_associe_20_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_reference ON (w_dbsetup.indicateur_reference_code = t_indicateurs_reference.code AND w_dbsetup.indicateur_reference_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_template ON (w_dbsetup.indicateur_template_code = t_indicateurs_template.code AND w_dbsetup.indicateur_template_code <> '') +WHERE t_indicateurs.code = w_dbsetup.code + AND (indicateur_associe_1_code <> '' OR + indicateur_associe_2_code <> '' OR + indicateur_associe_3_code <> '' OR + indicateur_reference_code <> ''); + +-- Thèmes +UPDATE activite.t_indicateurs SET + theme_id = ARRAY[ + t_indicateur_theme_1.oid, + t_indicateur_theme_2.oid, + t_indicateur_theme_3.oid, + t_indicateur_theme_4.oid, + t_indicateur_theme_5.oid, + t_indicateur_theme_6.oid, + t_indicateur_theme_7.oid, + t_indicateur_theme_8.oid, + t_indicateur_theme_9.oid + ] +FROM w_dbsetup +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_1 ON w_dbsetup.theme_1_code = t_indicateur_theme_1.code +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_2 ON w_dbsetup.theme_2_code = t_indicateur_theme_2.code +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_3 ON w_dbsetup.theme_3_code = t_indicateur_theme_3.code +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_4 ON w_dbsetup.theme_4_code = t_indicateur_theme_4.code +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_5 ON w_dbsetup.theme_5_code = t_indicateur_theme_5.code +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_6 ON w_dbsetup.theme_6_code = t_indicateur_theme_6.code +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_7 ON w_dbsetup.theme_7_code = t_indicateur_theme_7.code +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_8 ON w_dbsetup.theme_8_code = t_indicateur_theme_8.code +LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_9 ON w_dbsetup.theme_9_code = t_indicateur_theme_9.code +WHERE t_indicateurs.code = w_dbsetup.code AND + theme_id IS DISTINCT FROM ARRAY[ + t_indicateur_theme_1.oid, + t_indicateur_theme_2.oid, + t_indicateur_theme_3.oid, + t_indicateur_theme_4.oid, + t_indicateur_theme_5.oid, + t_indicateur_theme_6.oid, + t_indicateur_theme_7.oid, + t_indicateur_theme_8.oid, + t_indicateur_theme_9.oid + ] + ; + +-- Réorganisation des indicateurs +SELECT base.cti_reorganize_indicateurs('activite'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_kiwee_params.SQL b/db/data/dbdata_activite_t_kiwee_params.SQL new file mode 100644 index 0000000..d09e984 --- /dev/null +++ b/db/data/dbdata_activite_t_kiwee_params.SQL @@ -0,0 +1,37 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_kiwee_params.code, + t_kiwee_params.texte, + t_kiwee_params.valeur, + t_kiwee_params.description + FROM + activite.t_kiwee_params + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + code, + texte, + valeur, + description +) +VALUES +('RELANCE_HONORAIRE_PAT', 'Relance souhaitée pour les dossiers patient avec solde honoraire positif', 't', 'Coché = Oui, on envoie vers kiwee les dossiers ayant un solde honoraire positif pour relance. Non coché = Non, on envoie que les dossiers avec solde établissement positif') +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_kiwee_params(code, texte, valeur, description) + SELECT + w_dbsetup.code, + w_dbsetup.texte, + w_dbsetup.valeur, + w_dbsetup.description + FROM + w_dbsetup + WHERE w_dbsetup.code NOT IN (SELECT code from activite.t_kiwee_params) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_listes.SQL b/db/data/dbdata_activite_t_listes.SQL new file mode 100644 index 0000000..93f7141 --- /dev/null +++ b/db/data/dbdata_activite_t_listes.SQL @@ -0,0 +1,85 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_listes.oid = 0 THEN t_listes.oid ELSE 1 END AS oid, + t_listes.texte, + t_listes.chapitre, + t_listes.code, + t_listes.is_cti, + t_listes.show_omit, + 'CTI'::text AS utilisateur_createur, + t_listes.est_partagee_modification, + t_listes_tables.name as table_name, + t_listes.contenu_by_code, + t_listes.exclude_code, + t_listes.include_code, + t_listes.contenu_non_replicable_ailleurs + FROM activite.t_listes, activite.t_listes_tables + WHERE (is_cti = '1' OR t_listes.code LIKE 'CTI_%') and table_id = t_listes_tables.oid + ORDER BY 4 + LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + texte, + chapitre, + code, + is_cti, + show_omit, + utilisateur_createur, + est_partagee_modification, + table_name, + contenu_by_code, + exclude_code, + include_code, + contenu_non_replicable_ailleurs +) +VALUES +(1, 'Portail Médecin - Actes à exclure de la liste pour le top 20 Actes CCAM', 'Portail', 'ACT_PORT_CCAM', '1', '1', 'CTI', '1', 't_actes', '0', '', '', '0'), +(1, 'Portail Médecin - Actes à exclure de la liste pour le top 20 Actes NGAP', 'Portail', 'ACT_PORT_NGAP', '1', '1', 'CTI', '1', 't_actes', '0', '', '', '0'), +(1, 'CTI : Dialyse', '', 'CTI_DIA_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '0', '', '', '1'), +(1, 'CTI : CA Divers', '', 'CTI_DIVERS_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S06]', '1'), +(1, 'Etages inappropriés', '', 'CTI_ETA_KO', '0', '0', 'CTI', '1', 't_etages', '0', '', '', '1'), +(1, 'Médecins inappropriés', '', 'CTI_MED_KO', '0', '0', 'CTI', '1', 't_medecins_administratifs', '0', '', '', '1'), +(1, 'CTI : Prothèses', '', 'CTI_PROTHESE_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S22]', '1'), +(1, 'CTI : CA Séjours', '', 'CTI_RUBMED_R', '0', '1', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S01]', '1'), +(1, 'Services inappropriés', '', 'CTI_SER_KO', '0', '0', 'CTI', '1', 't_services_facturation', '0', '', '', '1'), +(1, 'CTI : Forfaits SE (SE à SE4)', '', 'CTI_SE_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S03]', '1'), +(1, 'CTI : Chambre particulière.', '', 'CTI_SHO_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S11]', '1'), +(1, 'CTI : Suppléments Hoteliers', '', 'CTI_SUPHOT_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S12]', '1'), +(1, 'CTI : CA Soins', '', 'CTI_T2A_R', '0', '1', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S01][CLASSE:CTI_RUB_2:S02][CLASSE:CTI_RUB_2:S03][CLASSE:CTI_RUB_2:S04][CLASSE:CTI_RUB_2:S05][CLASSE:CTI_RUB_2:S06]', '1'), +(1, 'CTI : Médicaments', '', 'CTI_UCD_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S21]', '1'), +(1, 'Unités Fonctionnelles Ambulatoires', 'Expert', 'CTI_UF_AMBU', '1', '0', 'CTI', '1', 't_unites_fonctionnelles', '0', '', '', '1'), +(1, 'CTI : Urgences', '', 'CTI_URG_R', '0', '0', 'CTI', '1', 't_rubriques_facturation', '1', '', '[CLASSE:CTI_RUB_2:S04]', '1') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_listes SET + texte = w_dbsetup.texte, + chapitre = w_dbsetup.chapitre, + table_id = t_listes_tables.oid, + is_cti = w_dbsetup.is_cti, + show_omit = w_dbsetup.show_omit, + -- contenu_by_code = w_dbsetup.contenu_by_code, + exclude_code = w_dbsetup.exclude_code, + include_code = w_dbsetup.include_code, + contenu_non_replicable_ailleurs = w_dbsetup.contenu_non_replicable_ailleurs +FROM w_dbsetup, activite.t_listes_tables +WHERE 1=1 + AND w_dbsetup.table_name = t_listes_tables.name + AND t_listes.code = w_dbsetup.code +; + +INSERT INTO activite.t_listes(code, texte, chapitre, table_id, is_cti, show_omit, contenu_by_code, exclude_code, include_code, contenu_non_replicable_ailleurs) + SELECT w_dbsetup.code, w_dbsetup.texte, w_dbsetup.chapitre, t_listes_tables.oid, w_dbsetup.is_cti, w_dbsetup.show_omit, w_dbsetup.contenu_by_code, w_dbsetup.exclude_code, w_dbsetup.include_code, w_dbsetup.contenu_non_replicable_ailleurs + FROM w_dbsetup, activite.t_listes_tables + WHERE w_dbsetup.table_name = t_listes_tables.name AND w_dbsetup.code NOT IN (SELECT code FROM activite.t_listes) AND w_dbsetup.texte NOT LIKE '*SUPPRIME%' +; + +DELETE FROM activite.t_listes WHERE texte like '*SUPPRIME%' AND is_cti = '1' +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_listes_tables.SQL b/db/data/dbdata_activite_t_listes_tables.SQL new file mode 100644 index 0000000..f2f4d3f --- /dev/null +++ b/db/data/dbdata_activite_t_listes_tables.SQL @@ -0,0 +1,155 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid, + name, + texte, + select_cmd, + code + FROM activite.t_listes_tables + ORDER BY code + LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + name, + texte, + select_cmd, + code +) +VALUES +(1, 't_actes', 'Actes', '(SELECT t_actes_c.oid, t_actes_c.code, t_actes_c.texte, ccam_regroupement_code_1 || CASE WHEN t_actes_c.classant = ''Y'' THEN '' (classant)'' ELSE '''' END as complement, ''O'' as utilise +FROM activite.t_actes_c +WHERE t_actes_c.oid > 0 AND nomenclature IN ( ''CCAM'', ''NGAP'') AND t_actes_c.oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''acte_h'') ) +UNION +(SELECT t_actes_c.oid, t_actes_c.code, t_actes_c.texte, ccam_regroupement_code_1 || CASE WHEN t_actes_c.classant = ''Y'' THEN '' (classant)'' ELSE '''' END as complement, ''N'' as utilise +FROM activite.t_actes_c +WHERE t_actes_c.oid > 0 AND nomenclature IN ( ''CCAM'', ''NGAP'') AND t_actes_c.oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''acte_h'') ) +ORDER BY code', 'ACTE'), +(1, 't_activites', '[DICT.ACTI.ACTIVITE#3] +', '(SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM activite.t_activites WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''activite'') UNION SELECT oid, code, texte, ''''::text as complement, ''N'' as utilise FROM activite.t_activites WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''activite'') )ORDER BY code', 'ACTIVITE'), +(1, 't_ages', 'Ages', 'SELECT oid, code, texte, ''''::text as complement, ''O''::text as utilise FROM base.t_ages ORDER BY code', 'AGE'), +(1, 't_budget_cle', 'Clés budgétaires', 'SELECT oid, code AS code, texte AS texte, +''''::text as complement, +''O'' as utilise +FROM activite.t_budget_cle +WHERE oid > 0 ', 'BUDGETCLE'), +(1, 't_codes_postaux', 'Codes postaux', '( +SELECT t_codes_postaux.oid, t_codes_postaux.code, t_codes_postaux.texte, '''' as complement, ''O'' as utilise +FROM base.t_codes_postaux +WHERE + t_codes_postaux.oid > 0 + AND t_codes_postaux.oid in (SELECT oid FROM activite.p_oids WHERE code_table=''c_postaux'') +UNION +SELECT t_codes_postaux.oid, t_codes_postaux.code, t_codes_postaux.texte, '''' as complement, ''N'' as utilise +FROM base.t_codes_postaux +WHERE + t_codes_postaux.oid > 0 + AND t_codes_postaux.oid not in (SELECT oid FROM activite.p_oids WHERE code_table=''c_postaux'') +) +ORDER BY code', 'CODEPOST'), +(1, 't_compte', 'Comptes produit', 'SELECT t_compte.oid AS oid, code AS code, texte AS texte, +''''::text as complement, +(CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END)::text as utilise +FROM activite.t_compte +LEFT JOIN activite.p_oids ON code_table=''compte'' AND t_compte.oid = p_oids.oid +WHERE t_compte.oid > 0 ', 'COMPTE'), +(1, 't_durees_sejour', 'Durées de séjour', 'SELECT oid, code, texte, ''''::text as complement, ''O''::text as utilise FROM base.t_durees_sejour ORDER BY code', 'DURSEJ'), +(1, 't_etages', '[DICT.ACTI.ETAGE#31]', '(SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM activite.t_etages WHERE oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''etage'') UNION SELECT oid, code, texte, ''''::text as complement, ''N'' as utilise FROM activite.t_etages WHERE oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''etage'') )ORDER BY code', 'ETAGE'), +(1, 't_etat_sejour', 'Etat de séjour', 'SELECT oid, code, texte, ''''::text as complement, ''O''::text as utilise FROM activite.t_etat_sejour ORDER BY code', 'ETATSEJOUR'), +(1, 't_expert_controles', 'Controles Expert', 'SELECT oid, code, texte, ''''::text as complement, ''O''::text as utilise +FROM activite.t_expert_controle WHERE oid > 0 +ORDER BY code', 'EXPERTCTL'), +(1, 't_filiere_soin', 'Filières de soin', 'SELECT oid, code, texte, ''''::text as complement, + CASE WHEN oid in (SELECT oid FROM activite.p_oids WHERE code_table IN (''filiere_soin'')) THEN ''O'' ELSE ''N'' END as utilise + FROM activite.t_filiere_soin + ORDER BY 2', 'FILIERESOIN'), +(1, 't_finess', 'Finess', 'SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM activite.t_finess_c WHERE oid > 0 ORDER BY code, texte', 'FINESS'), +(1, 't_forme_activite', 'Formes d''activité', 'SELECT oid, code, texte, ''''::text as complement, + CASE WHEN oid in (SELECT oid FROM activite.p_oids WHERE code_table IN (''forme_activite'')) THEN ''O'' ELSE ''N'' END as utilise + FROM activite.t_forme_activite + ORDER BY 2', 'FORMEACTIVITE'), +(1, 't_ghm_c', 'GHM', 'SELECT t_ghm_c.ghm_id AS oid, ghm_code AS code, ghm_texte AS texte, +cas_text as complement, +(CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END)::text as utilise +FROM activite.t_ghm_c +LEFT JOIN activite.p_oids ON code_table=''ghm'' AND t_ghm_c.ghm_id = p_oids.oid +WHERE t_ghm_c.ghm_id > 0 ', 'GHM'), +(1, 't_ghs', 'GHS', '(SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM base.t_ghs WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''ghs'') UNION SELECT oid, code, texte, ''''::text as complement, ''N'' as utilise FROM base.t_ghs WHERE oid > 0 AND code > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''ghs'') ) ORDER BY code', 'GHS'), +(1, 't_gme_c', 'GME', 'SELECT t_gme_c.gme_id AS oid, gme_code AS code, gme_texte AS texte,''''::text as complement , +(CASE WHEN p_oids.oid IS NOT NULL THEN ''O'' ELSE ''N'' END)::text as utilise +FROM activite.t_gme_c +LEFT JOIN activite.p_oids ON code_table=''gme'' AND t_gme_c.gme_id = p_oids.oid +WHERE t_gme_c.gme_id > 0', 'GME'), +(1, 't_lits', 'Lits', '( +SELECT t_lits.oid, t_etages.code || ''-'' || t_lits.code AS code, t_etages.texte || '' lit '' || t_lits.texte AS texte, ''''::text as complement, ''O'' as utilise FROM activite.t_lits JOIN activite.t_etages ON etage_id = t_etages.oid WHERE t_lits.oid > 0 AND t_lits.oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''lit'') + +UNION + +SELECT t_lits.oid, t_etages.code || ''-'' || t_lits.code AS code, t_etages.texte || '' lit '' || t_lits.texte AS texte, ''''::text as complement, ''N'' as utilise FROM activite.t_lits JOIN activite.t_etages ON etage_id = t_etages.oid WHERE t_lits.oid > 0 AND t_lits.oid NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = ''lit'') + +) ORDER BY code', 'LIT'), +(1, 't_medecins_administratifs', 'Médecins', 'SELECT t_medecins_administratifs.oid + ,t_medecins_administratifs.code + ,t_medecins_administratifs.nom || '' '' || t_medecins_administratifs.prenom AS texte + ,COALESCE(t_specialites_medecin.code || '' '' || t_specialites_medecin.texte,'''')::text AS complement + ,CASE WHEN t_medecins_administratifs.oid IN (SELECT p_oids.oid FROM activite.p_oids WHERE code_table IN (''medecin_s'',''medecin_x'') ) THEN ''O'' ELSE ''N'' END AS utilise + FROM activite.t_medecins_administratifs + LEFT JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + LEFT JOIN base.t_specialites_medecin ON t_medecins.specialite_id = t_specialites_medecin.oid + ORDER BY t_medecins_administratifs.code', 'MEDECIN'), +(1, 't_medecins_traitants_administratifs', 'Médecins traitants', 'SELECT t_medecins_traitants_administratifs.oid + ,t_medecins_traitants_administratifs.code + ,t_medecins_traitants_administratifs.nom || '' '' || t_medecins_traitants_administratifs.prenom AS texte + ,COALESCE(t_medecins_traitants_administratifs.code || '' '' || t_medecins_traitants_administratifs.no_rpps,'''')::text AS complement + ,CASE WHEN t_medecins_traitants_administratifs.oid IN (SELECT p_oids.oid FROM activite.p_oids WHERE code_table IN (''medecin_t'') ) THEN ''O'' ELSE ''N'' END AS utilise + FROM activite.t_medecins_traitants_administratifs + LEFT JOIN base.t_medecins ON t_medecins_traitants_administratifs.medecin_id = t_medecins.oid + LEFT JOIN base.t_specialites_medecin ON t_medecins.specialite_id = t_specialites_medecin.oid + ORDER BY t_medecins_traitants_administratifs.code', 'MEDECIN_TRAITANT'), +(1, 't_prestations', 'Prestations Cliniques', '(SELECT oid, code, texte, norme as complement, ''O'' as utilise FROM activite.t_prestations WHERE oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''prestation_c'') UNION SELECT oid, code, texte, norme as complement, ''N'' as utilise FROM activite.t_prestations WHERE oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''prestation_c'') ) ORDER BY code', 'PRESTA_C'), +(1, 't_prestations', 'Prestations Honoraires', '(SELECT oid, code, texte, norme as complement, ''O'' as utilise FROM activite.t_prestations WHERE oid > 0 AND clinique_honoraire IN (''H'', '''') AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''prestation_h'') UNION SELECT oid, code, texte, norme as complement, ''N'' as utilise FROM activite.t_prestations WHERE oid > 0 AND clinique_honoraire IN (''H'', '''') AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''prestation_h'') )ORDER BY code', 'PRESTA_H'), +(1, 't_rejets_noemie', 'Rejets NOEMIE', 'SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM activite.t_rejets_noemie WHERE oid > 0 ORDER BY code, texte', 'REJETNOEMI'), +(1, 't_rubriques_facturation', 'Rubriques de facturation', '(SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM activite.t_rubriques_facturation WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''rubrique_c'') UNION SELECT oid, code, texte, ''''::text as complement, ''N'' as utilise FROM activite.t_rubriques_facturation WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''rubrique_c'') ) ORDER BY code', 'RUBRIQUE'), +(1, 't_services_facturation', '[DICT.ACTI.SERVICE#31]', '(SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM activite.t_services_facturation WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''service'') UNION SELECT oid, code, texte, ''''::text as complement, ''N'' as utilise FROM activite.t_services_facturation WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''service'') )ORDER BY code', 'SERVICE_F'), +(1, 't_tiers_payant', 'Tiers payant', '(SELECT t_tiers_payant.oid, t_tiers_payant.code, t_tiers_payant.texte as texte, t_types_tiers_payant.texte as complement, ''O'' as utilise +FROM activite.t_tiers_payant, activite.t_types_tiers_payant +WHERE t_tiers_payant.oid > 0 AND t_tiers_payant.type_tiers_payant = t_types_tiers_payant.code + AND t_tiers_payant.oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''tiers_payant'' ) +UNION +SELECT t_tiers_payant.oid, t_tiers_payant.code, t_tiers_payant.texte as texte, t_types_tiers_payant.texte , ''N'' as utilise +FROM activite.t_tiers_payant , activite.t_types_tiers_payant +WHERE t_tiers_payant.oid > 0 AND t_tiers_payant.type_tiers_payant = t_types_tiers_payant.code AND (t_tiers_payant.oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''tiers_payant''))) ORDER BY code', 'TIERSP'), +(1, 't_type_sejour', 'Types de séjour', 'SELECT oid, code, texte, ''''::text as complement, ''O''::text as utilise FROM activite.t_type_sejour ORDER BY code', 'TYPESEJOUR'), +(1, 't_unites_fonctionnelles', '[DICT.ACTI.UF#31]', '(SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM activite.t_unites_fonctionnelles WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''unite_fonctionnelle'') UNION SELECT oid, code, texte, ''''::text as complement, ''N'' as utilise FROM activite.t_unites_fonctionnelles WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''unite_fonctionnelle'') ) ORDER BY code', 'UF'), +(1, 't_unites_medicales', '[DICT.ACTI.UM#31]', '(SELECT oid, code, texte, ''''::text as complement, ''O'' as utilise FROM activite.t_unites_medicales WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = ''unite_medicale'') UNION SELECT oid, code, texte, ''''::text as complement, ''N'' as utilise FROM activite.t_unites_medicales WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = ''unite_medicale'') ) ORDER BY code', 'UM') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_listes_tables SET code = 'PRESTA_C_B' WHERE oid = +(SELECT MIN(oid) FROM activite.t_listes_tables WHERE code = 'PRESTA_C') +AND (SELECT count(*) FROM activite.t_listes_tables WHERE code = 'PRESTA_C') > 1; + +UPDATE activite.t_listes SET table_id = (SELECT oid FROM activite.t_listes_tables WHERE code = 'PRESTA_C') +WHERE table_id IN (SELECT oid FROM activite.t_listes_tables WHERE code = 'PRESTA_C_B'); + +DELETE FROM activite.t_listes_tables WHERE code = 'PRESTA_C_B'; + +UPDATE activite.t_listes_tables SET + code = w_dbsetup.code, + texte = w_dbsetup.texte, + select_cmd = w_dbsetup.select_cmd, + name = w_dbsetup.name +FROM w_dbsetup +WHERE t_listes_tables.code = w_dbsetup.code; + +INSERT INTO activite.t_listes_tables(oid, code, name, texte, select_cmd) + SELECT oid, code, name, texte, select_cmd FROM w_dbsetup WHERE oid = 0 AND oid NOT IN (SELECT oid FROM activite.t_listes_tables); + +INSERT INTO activite.t_listes_tables(code, name, texte, select_cmd) + SELECT code, name, texte, select_cmd FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM activite.t_listes_tables); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_prestations.SQL b/db/data/dbdata_activite_t_prestations.SQL new file mode 100644 index 0000000..616dc00 --- /dev/null +++ b/db/data/dbdata_activite_t_prestations.SQL @@ -0,0 +1,569 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid, + code, + texte, + texte_court, + norme + FROM activite.t_prestations + WHERE norme = 'B2' OR oid = 0 + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + texte_court, + norme +) +VALUES +(0, '***', 'Non renseignee', 'Non renseignee', ''), +(1, 'AAD', 'Autres accessoires traitement a domicile', 'Autres accessoires traitement a domicile', 'B2'), +(1, 'AAR', 'Appareillage assistance respiratoire', 'Appareillage assistance respiratoire', 'B2'), +(1, 'ABA', 'Transport par ambulances agrees', 'Transport par ambulances agrees', 'B2'), +(1, 'ABG', 'Ambulance agree de garde', 'Ambulance agree de garde', 'B2'), +(1, 'ACO', 'Actes d''obstetrique', 'Actes d''obstetrique', 'B2'), +(1, 'ACR', 'Prime accreditation specialiste', 'Prime accreditation specialiste', 'B2'), +(1, 'ADA', 'Actes d''anesthesie', 'Actes d''anesthesie', 'B2'), +(1, 'ADC', 'Actes de chirurgie', 'Actes de chirurgie', 'B2'), +(1, 'ADE', 'Actes d''echographie', 'Actes d''echographie', 'B2'), +(1, 'ADI', 'Actes d''imagerie', 'Actes d''imagerie', 'B2'), +(1, 'ADT', 'Aide au demarrage teletransmission', 'Aide au demarrage teletransmission', 'B2'), +(1, 'AIS', 'Actes infirmiers de soins', 'Actes infirmiers de soins', 'B2'), +(1, 'AMC', 'Actes de kinesitherapie en etablissement', 'Actes de kinesitherapie en etablissement', 'B2'), +(1, 'AMD', 'Intervention+anesthesie duree < ou = 12', 'Intervention+anesthesie duree < ou = 12', 'B2'), +(1, 'AMF', 'Forfait public ivg medicamenteuse', 'Forfait public ivg medicamenteuse', 'B2'), +(1, 'AMI', 'Soins infirmiers', 'Soins infirmiers', 'B2'), +(1, 'AMK', 'Actes de kinesitherapie', 'Actes de kinesitherapie', 'B2'), +(1, 'AMO', 'Seances d''orthophonie', 'Seances d''orthophonie', 'B2'), +(1, 'AMP', 'Soins de pedicurie', 'Soins de pedicurie', 'B2'), +(1, 'AMS', 'Suivi des actes de kinesitherapie', 'Suivi des actes de kinesitherapie', 'B2'), +(1, 'AMT', 'Aide a la maintenance teletransmission', 'Aide a la maintenance teletransmission', 'B2'), +(1, 'AMY', 'Seances d''orthoptie', 'Seances d''orthoptie', 'B2'), +(1, 'ANP', 'Forfait activite non programmee', 'Forfait activite non programmee', 'B2'), +(1, 'ANT', 'Supplement antepartum', 'Supplement antepartum', 'B2'), +(1, 'APD', 'Intervention+anesthesie,24 > duree > 12', 'Intervention+anesthesie,24 > duree > 12', 'B2'), +(1, 'APE', 'Administration de produits et prestations en environnement hospitalier', 'Administration de produits et prestations en environnement hospitalier', 'B2'), +(1, 'APT', 'Aide portable teletransmission', 'Aide portable teletransmission', 'B2'), +(1, 'ARD', 'Aide adhesion rapide au dispositif', 'Aide adhesion rapide au dispositif', 'B2'), +(1, 'ARE', 'Frais d''anesthesie et de reanimation', 'Frais d''anesthesie et de reanimation', 'B2'), +(1, 'ARO', 'Generateur d''aerosol', 'Generateur d''aerosol', 'B2'), +(1, 'AS1', 'Forfait hospitalisation a temps partiel groupe 1', 'Forfait hospitalisation a temps partiel groupe 1', 'B2'), +(1, 'AS2', 'Forfait hospitalisation a temps partiel groupe 2', 'Forfait hospitalisation a temps partiel groupe 2', 'B2'), +(1, 'AS3', 'Forfait hospitalisation a temps partiel 15 %', 'Forfait hospitalisation a temps partiel 15 %', 'B2'), +(1, 'AS4', 'Forfait hospitalisation a temps partiel groupe 2 + fas1', 'Forfait hospitalisation a temps partiel groupe 2 + fas1', 'B2'), +(1, 'AS5', 'Forfait hospitalisation a temps partiel groupe 2 + fas2', 'Forfait hospitalisation a temps partiel groupe 2 + fas2', 'B2'), +(1, 'ASR', 'Astreinte', 'Astreinte', 'B2'), +(1, 'ATD', 'Complement at 150% dentaire', 'Complement at 150% dentaire', 'B2'), +(1, 'ATL', 'Complement at 150% lpp', 'Complement at 150% lpp', 'B2'), +(1, 'ATM', 'Actes techniques medicaux', 'Actes techniques medicaux', 'B2'), +(1, 'ATP', 'Autre moyen de transport', 'Autre moyen de transport', 'B2'), +(1, 'ATU', 'Forfait d''accueil et de traitement des urgences', 'Forfait d''accueil et de traitement des urgences', 'B2'), +(1, 'AXI', 'Actes de prophylaxie et prevention', 'Actes de prophylaxie et prevention', 'B2'), +(1, 'B', 'Actes de biologie', 'Actes de biologie', 'B2'), +(1, 'BDC', 'Consultation de prevention bucco-dentaire', 'Consultation de prevention bucco-dentaire', 'B2'), +(1, 'BR2', 'Consultation et radio 2 cliches de prevention bucco-dentaire', 'Consultation et radio 2 cliches de prevention bucco-dentaire', 'B2'), +(1, 'BR4', 'Consultation et radio 4 cliches de prevention bucco-dentaire', 'Consultation et radio 4 cliches de prevention bucco-dentaire', 'B2'), +(1, 'C', 'Consultation', 'Consultation', 'B2'), +(1, 'CA', 'Consultation approfondie', 'Consultation approfondie', 'B2'), +(1, 'CBM', 'Contrat de bonnes pratiques en zone de montagne', 'Contrat de bonnes pratiques en zone de montagne', 'B2'), +(1, 'CBP', 'Forfait contrat de bonnes pratiques', 'Forfait contrat de bonnes pratiques', 'B2'), +(1, 'CBR', 'Contrat de bonnes pratiques en zone rurale', 'Contrat de bonnes pratiques en zone rurale', 'B2'), +(1, 'CBU', 'Contrat de bonnes pratiques en zone urbaine', 'Contrat de bonnes pratiques en zone urbaine', 'B2'), +(1, 'CDE', 'Consultation specifique de depistage', 'Consultation specifique de depistage', 'B2'), +(1, 'CDF', 'Centre sante dentaire optant - forfait fin', 'Centre sante dentaire optant - forfait fin', 'B2'), +(1, 'CDI', 'Centre sante dentaire optant - forfait debut', 'Centre sante dentaire optant - forfait debut', 'B2'), +(1, 'CDS', 'Centre sante dentaire optant - forfait suivi', 'Centre sante dentaire optant - forfait suivi', 'B2'), +(1, 'CG', 'Consultation suivi de grossesse', 'Consultation suivi de grossesse', 'B2'), +(1, 'CID', 'Centre sante infirmier optant - forfait debut', 'Centre sante infirmier optant - forfait debut', 'B2'), +(1, 'CIF', 'Centre sante infirmier optant - forfait fin', 'Centre sante infirmier optant - forfait fin', 'B2'), +(1, 'CMD', 'Centre sante medical optant - forfait debut', 'Centre sante medical optant - forfait debut', 'B2'), +(1, 'CMF', 'Centre sante medical optant - forfait fin', 'Centre sante medical optant - forfait fin', 'B2'), +(1, 'CMT', 'Centre sante medical optant - forfait tacite', 'Centre sante medical optant - forfait tacite', 'B2'), +(1, 'CNP', 'Consultation neuro-psychiatre', 'Consultation neuro-psychiatre', 'B2'), +(1, 'COR', 'Podo-ortheses', 'Podo-ortheses', 'B2'), +(1, 'CP1', 'Forfait contrat de bonnes pratiques 1', 'Forfait contrat de bonnes pratiques 1', 'B2'), +(1, 'CP2', 'Forfait contrat de bonnes pratiques 2', 'Forfait contrat de bonnes pratiques 2', 'B2'), +(1, 'CP3', 'Forfait contrat de bonnes pratiques 3', 'Forfait contrat de bonnes pratiques 3', 'B2'), +(1, 'CP6', 'Contrat de bonnes pratiques transporteurs 2006', 'Contrat de bonnes pratiques transporteurs 2006', 'B2'), +(1, 'CP7', 'Contrat de bonnes pratiques transporteurs 2007', 'Contrat de bonnes pratiques transporteurs 2007', 'B2'), +(1, 'CP8', 'Contrat de bonnes pratiques transporteurs 2008', 'Contrat de bonnes pratiques transporteurs 2008', 'B2'), +(1, 'CPC', 'Frais de chambre particuliere pour convenance personnelle', 'Frais de chambre particuliere pour convenance personnelle', 'B2'), +(1, 'CPH', 'Copie d''ordonnance', 'Copie d''ordonnance', 'B2'), +(1, 'CPL', 'Forfait contrat de bonnes pratiques laboratoire', 'Forfait contrat de bonnes pratiques laboratoire', 'B2'), +(1, 'CPO', 'Coordination prelevement organe', 'Coordination prelevement organe', 'B2'), +(1, 'CPU', 'Contrat pratique versement unique', 'Contrat pratique versement unique', 'B2'), +(1, 'CRC', 'Complement de remuneration chef de clinique', 'Complement de remuneration chef de clinique', 'B2'), +(1, 'CRD', 'Majoration consultation regulee dimanche et ferie', 'Majoration consultation regulee dimanche et ferie', 'B2'), +(1, 'CRM', 'Majoration consultation regulee milieu de nuit', 'Majoration consultation regulee milieu de nuit', 'B2'), +(1, 'CRN', 'Majoration consultation regulee de nuit', 'Majoration consultation regulee de nuit', 'B2'), +(1, 'CRS', 'Majoration consultation regulee du samedi apres-midi', 'Majoration consultation regulee du samedi apres-midi', 'B2'), +(1, 'CS', 'Consultation specialiste', 'Consultation specialiste', 'B2'), +(1, 'CSC', 'Consultation specifique au cabinet par un cardiologue ou un medecin specialiste en pathologie cardio-vasculaire', 'Consultation specifique au cabinet par un cardiologue ou un medecin specialiste en pathologie cardio-vasculaire', 'B2'), +(1, 'CSI', 'Forfait contrat de sante publique infirmier', 'Forfait contrat de sante publique infirmier', 'B2'), +(1, 'CSL', 'Forfait contrat de sante publique laboratoire', 'Forfait contrat de sante publique laboratoire', 'B2'), +(1, 'CST', 'Contrat de surveillance thermal', 'Contrat de surveillance thermal', 'B2'), +(1, 'D', 'Actes dentaires', 'Actes dentaires', 'B2'), +(1, 'D01', 'Hemodialyse en centre', 'Hemodialyse en centre', 'B2'), +(1, 'D02', 'Autodialyse simple ou assistee', 'Autodialyse simple ou assistee', 'B2'), +(1, 'D03', 'Entrainement hemodialyse a domicile et a l''autodialyse', 'Entrainement hemodialyse a domicile et a l''autodialyse', 'B2'), +(1, 'D04', 'Entrainement a la dpa', 'Entrainement a la dpa', 'B2'), +(1, 'D05', 'Entrainement a la dpca', 'Entrainement a la dpca', 'B2'), +(1, 'D06', 'Hemodialyse a domicile', 'Hemodialyse a domicile', 'B2'), +(1, 'D07', 'Dialyse peritoneale automatisee (dpa)', 'Dialyse peritoneale automatisee (dpa)', 'B2'), +(1, 'D08', 'Dialyse peritoneale continue ambulatoire (dpca)', 'Dialyse peritoneale continue ambulatoire (dpca)', 'B2'), +(1, 'D09', 'Forfait hemodialyse en centre', 'Forfait hemodialyse en centre', 'B2'), +(1, 'D10', 'Forfait hemodialyse en centre pour enfant', 'Forfait hemodialyse en centre pour enfant', 'B2'), +(1, 'D11', 'Forfait hemodialyse en centre', 'Forfait hemodialyse en centre', 'B2'), +(1, 'D12', 'Forfait d''autodialyse simple', 'Forfait d''autodialyse simple', 'B2'), +(1, 'D13', 'Forfait d''autodialyse assistee', 'Forfait d''autodialyse assistee', 'B2'), +(1, 'D14', 'Forfait d''hemodialyse a domicile', 'Forfait d''hemodialyse a domicile', 'B2'), +(1, 'D15', 'Forfait de dialyse peritoneale automatisee (dpa)', 'Forfait de dialyse peritoneale automatisee (dpa)', 'B2'), +(1, 'D16', 'Forfait de dialyse peritoneale continue ambulatoire (dpca)', 'Forfait de dialyse peritoneale continue ambulatoire (dpca)', 'B2'), +(1, 'D17', 'Forfait entrainement hemodialyse a domicile et a l''autodialyse', 'Forfait entrainement hemodialyse a domicile et a l''autodialyse', 'B2'), +(1, 'D18', 'Forfait entrainement a la dpa', 'Forfait entrainement a la dpa', 'B2'), +(1, 'D19', 'Forfait entrainement a la dpa', 'Forfait entrainement a la dpa', 'B2'), +(1, 'D20', 'Forfait d''entrainement a la dialyse peritoneale automatisee a domicile', 'Forfait d''entrainement a la dialyse peritoneale automatisee a domicile', 'B2'), +(1, 'D21', 'Forfait d''entrainement a la dialyse peritoneale continue ambulatoire a domicile', 'Forfait d''entrainement a la dialyse peritoneale continue ambulatoire a domicile', 'B2'), +(1, 'D22', 'Forfait de dialyse peritoneale automatisee pour hospitalisation de 3 a 6 jours', 'Forfait de dialyse peritoneale automatisee pour hospitalisation de 3 a 6 jours', 'B2'), +(1, 'D23', 'Forfait de dialyse peritoneale continue ambulatoire pour hospitalisation de 3 a 6 jours', 'Forfait de dialyse peritoneale continue ambulatoire pour hospitalisation de 3 a 6 jours', 'B2'), +(1, 'D24', 'Forfait d''''entrainement a l''''hemodialyse en unite de dialyse medicalisee', 'Forfait d''''entrainement a l''''hemodialyse en unite de dialyse medicalisee', 'B2'), +(1, 'DC', 'Actes de chirurgie dentaire', 'Actes de chirurgie dentaire', 'B2'), +(1, 'DCC', 'Acte de depistage du cancer colorectal', 'Acte de depistage du cancer colorectal', 'B2'), +(1, 'DEN', 'Acte dentaire ccam', 'Acte dentaire ccam', 'B2'), +(1, 'DI', 'Demarche de soins infirmiers', 'Demarche de soins infirmiers', 'B2'), +(1, 'DIP', 'Supplement journalier dialyse peritoneale', 'Supplement journalier dialyse peritoneale', 'B2'), +(1, 'DPH', 'Deplacement comite regional reconnaissance mp', 'Deplacement comite regional reconnaissance mp', 'B2'), +(1, 'DRT', 'Differentiel referent traitant', 'Differentiel referent traitant', 'B2'), +(1, 'DTP', 'Dialyse tierce personne', 'Dialyse tierce personne', 'B2'), +(1, 'DVO', 'Divers orthese', 'Divers orthese', 'B2'), +(1, 'ECP', 'Examen complementaire crmpp', 'Examen complementaire crmpp', 'B2'), +(1, 'EMI', 'Ecart medicament indemnisable', 'Ecart medicament indemnisable', 'B2'), +(1, 'END', 'Actes d''endodontie', 'Actes d''endodontie', 'B2'), +(1, 'ENT', 'Forfait d''entree', 'Forfait d''entree', 'B2'), +(1, 'ERI', 'Ecart indemnisable retrocession', 'Ecart indemnisable retrocession', 'B2'), +(1, 'ETI', 'Ecart tarif indemnisable', 'Ecart tarif indemnisable', 'B2'), +(1, 'EXH', 'Sejour extreme > seuil haut', 'Sejour extreme > seuil haut', 'B2'), +(1, 'EXS', 'Examen special', 'Examen special', 'B2'), +(1, 'FA1', 'Forfait d''accueil (chirurgie ambulatoire)', 'Forfait d''accueil (chirurgie ambulatoire)', 'B2'), +(1, 'FA2', 'Forfait d''accueil (chirurgie ambulatoire)', 'Forfait d''accueil (chirurgie ambulatoire)', 'B2'), +(1, 'FAE', 'Frais d''accompagnement pour enfant hospitalise', 'Frais d''accompagnement pour enfant hospitalise', 'B2'), +(1, 'FAT', 'Forfait de seance d''aerosol therapie', 'Forfait de seance d''aerosol therapie', 'B2'), +(1, 'FAU', 'Forfait annuel urgence', 'Forfait annuel urgence', 'B2'), +(1, 'FAZ', 'Forfait adhesion zone deficitaire', 'Forfait adhesion zone deficitaire', 'B2'), +(1, 'FCO', 'Forfait consommables onereux (cardiologie)', 'Forfait consommables onereux (cardiologie)', 'B2'), +(1, 'FCS', 'Forfait structure centre de sante', 'Forfait structure centre de sante', 'B2'), +(1, 'FDA', 'Forfait dentaire cmu : protheses adjointes', 'Forfait dentaire cmu : protheses adjointes', 'B2'), +(1, 'FDC', 'Forfait dentaire cmu : protheses conjointes', 'Forfait dentaire cmu : protheses conjointes', 'B2'), +(1, 'FDO', 'Forfait dentaire cmu : protheses orthodontiques', 'Forfait dentaire cmu : protheses orthodontiques', 'B2'), +(1, 'FDR', 'Forfait dentaire cmu : reparation protheses', 'Forfait dentaire cmu : reparation protheses', 'B2'), +(1, 'FE', 'Frais d''environnement', 'Frais d''environnement', 'B2'), +(1, 'FEN', 'Forfait entretien', 'Forfait entretien', 'B2'), +(1, 'FFM', 'Forfait frais de materiel', 'Forfait frais de materiel', 'B2'), +(1, 'FFN', 'Aide a la transmission des flux non securises', 'Aide a la transmission des flux non securises', 'B2'), +(1, 'FFS', 'Aide perenne (facturation feuilles de soins)', 'Aide perenne (facturation feuilles de soins)', 'B2'), +(1, 'FGA', 'Frais de gestion pour centre de grand appareillage', 'Frais de gestion pour centre de grand appareillage', 'B2'), +(1, 'FGP', 'Frais de garde particuliere', 'Frais de garde particuliere', 'B2'), +(1, 'FHT', 'Forfait haute technicite', 'Forfait haute technicite', 'B2'), +(1, 'FHV', 'Forfait honoraires de ville', 'Forfait honoraires de ville', 'B2'), +(1, 'FI1', 'Forfait pdses publique', 'Forfait pdses publique', 'B2'), +(1, 'FI2', 'Forfait centre de depistage anonyme et gratuit', 'Forfait centre de depistage anonyme et gratuit', 'B2'), +(1, 'FI3', 'Forfait perinataux de proximite', 'Forfait perinataux de proximite', 'B2'), +(1, 'FI4', 'Forfait education therapeutique', 'Forfait education therapeutique', 'B2'), +(1, 'FJA', 'Forfait journalier de sortie a la charge de l''assure', 'Forfait journalier de sortie a la charge de l''assure', 'B2'), +(1, 'FJC', 'Forfait journalier seul (du par un organisme complementaire)', 'Forfait journalier seul (du par un organisme complementaire)', 'B2'), +(1, 'FJL', 'Forfait journalier seul (du par le regime local alsacemoselle)', 'Forfait journalier seul (du par le regime local alsacemoselle)', 'B2'), +(1, 'FJR', 'Forfait journalier de sortie a la charge du regime obligatoire', 'Forfait journalier de sortie a la charge du regime obligatoire', 'B2'), +(1, 'FJS', 'Hebergement > 24h', 'Hebergement > 24h', 'B2'), +(1, 'FMC', 'Forfait mensuel de coordinnation', 'Forfait mensuel de coordinnation', 'B2'), +(1, 'FMP', 'Forfait mensuel de participation', 'Forfait mensuel de participation', 'B2'), +(1, 'FMS', 'Forfait mensuel de soins', 'Forfait mensuel de soins', 'B2'), +(1, 'FMV', 'Forfait medicament de ville', 'Forfait medicament de ville', 'B2'), +(1, 'FNN', 'Forfait nouveau ne', 'Forfait nouveau ne', 'B2'), +(1, 'FPA', 'Forfait d''astreinte nuit et ferie en etablissement prive', 'Forfait d''astreinte nuit et ferie en etablissement prive', 'B2'), +(1, 'FPC', 'Forfait prothese conjointe (cmu hors panier de soins)', 'Forfait prothese conjointe (cmu hors panier de soins)', 'B2'), +(1, 'FPE', 'Forfait pediatrique', 'Forfait pediatrique', 'B2'), +(1, 'FPG', 'Forfait de garde nuit et ferie en etablisssement prive', 'Forfait de garde nuit et ferie en etablisssement prive', 'B2'), +(1, 'FPO', 'Forfait orthodontique (cmu hors panier de soins)', 'Forfait orthodontique (cmu hors panier de soins)', 'B2'), +(1, 'FPS', 'Forfait ps - centre de sante', 'Forfait ps - centre de sante', 'B2'), +(1, 'FPU', 'Forfait patient urgences', 'Forfait patient urgences', 'B2'), +(1, 'FR2', 'Forfait technique tarif reduit n°2', 'Forfait technique tarif reduit n°2', 'B2'), +(1, 'FR3', 'Forfait technique tarif reduit n°3', 'Forfait technique tarif reduit n°3', 'B2'), +(1, 'FRL', 'Forfait journalier de sortie a la charge du regime alsacemoselle', 'Forfait journalier de sortie a la charge du regime alsacemoselle', 'B2'), +(1, 'FS', 'Frais de soins', 'Frais de soins', 'B2'), +(1, 'FSD', 'Forfait de securite dermatologique', 'Forfait de securite dermatologique', 'B2'), +(1, 'FSG', 'Frais salle travail accouchement gemellaire ou dystocie', 'Frais salle travail accouchement gemellaire ou dystocie', 'B2'), +(1, 'FSJ', 'Forfait de soins journalier', 'Forfait de soins journalier', 'B2'), +(1, 'FSO', 'Frais de salle d''operation', 'Frais de salle d''operation', 'B2'), +(1, 'FST', 'Frais salle travail accouchement simple', 'Frais salle travail accouchement simple', 'B2'), +(1, 'FSY', 'Frais de salle d''operation en psychiatrie', 'Frais de salle d''operation en psychiatrie', 'B2'), +(1, 'FTG', 'Forfait technique global', 'Forfait technique global', 'B2'), +(1, 'FTN', 'Forfait technique normal', 'Forfait technique normal', 'B2'), +(1, 'FTR', 'Forfait technique reduit', 'Forfait technique reduit', 'B2'), +(1, 'FTS', 'Forfait technique scanner', 'Forfait technique scanner', 'B2'), +(1, 'GHS', 'Groupe homogene de sejour', 'Groupe homogene de sejour', 'B2'), +(1, 'GHT', 'Groupe homogene de tarif', 'Groupe homogene de tarif', 'B2'), +(1, 'GLU', 'Nutriments pour intolerants au gluten', 'Nutriments pour intolerants au gluten', 'B2'), +(1, 'GMT', 'Groupe Medico-Tarifaire', 'Groupe Medico-Tarifaire', 'B2'), +(1, 'GPD', 'Garde pharmacie de dimanche', 'Garde pharmacie de dimanche', 'B2'), +(1, 'GPF', 'Garde pharmacie de ferie', 'Garde pharmacie de ferie', 'B2'), +(1, 'GPN', 'Garde pharmacie de nuit', 'Garde pharmacie de nuit', 'B2'), +(1, 'GS1', 'Vaccin anti grippe hemisphere sud vaxigrip hs', 'Vaccin anti grippe hemisphere sud vaxigrip hs', 'B2'), +(1, 'GS2', 'Vaccin anti grippe hemisphere sud fluarix hs', 'Vaccin anti grippe hemisphere sud fluarix hs', 'B2'), +(1, 'HC', 'Honoraire complexe', 'Honoraire complexe', 'B2'), +(1, 'HCS', 'Acces libre hors coordination des soins', 'Acces libre hors coordination des soins', 'B2'), +(1, 'HD1', 'Honoraires de dispensiation a 100%', 'Honoraires de dispensiation a 100%', 'B2'), +(1, 'HD2', 'Honoraires de dispensiation a 15%', 'Honoraires de dispensiation a 15%', 'B2'), +(1, 'HD4', 'Honoraires de dispensiation a 30%', 'Honoraires de dispensiation a 30%', 'B2'), +(1, 'HD7', 'Honoraires de dispensiation a 65%', 'Honoraires de dispensiation a 65%', 'B2'), +(1, 'HDS', 'Honoraires de dispensation specifique vaccins anti grippaux hemisphere sud', 'Honoraires de dispensation specifique vaccins anti grippaux hemisphere sud', 'B2'), +(1, 'HG1', 'Honoraires de dispensiation grand conditionnement a 100%', 'Honoraires de dispensiation grand conditionnement a 100%', 'B2'), +(1, 'HG2', 'Honoraires de dispensiation grand conditionnement a 15%', 'Honoraires de dispensiation grand conditionnement a 15%', 'B2'), +(1, 'HG4', 'Honoraires de dispensiation grand conditionnement a 30%', 'Honoraires de dispensiation grand conditionnement a 30%', 'B2'), +(1, 'HG7', 'Honoraires de dispensiation grand conditionnement a 65%', 'Honoraires de dispensiation grand conditionnement a 65%', 'B2'), +(1, 'HMP', 'Honoraire comite regionalreconnaissance mp', 'Honoraire comite regionalreconnaissance mp', 'B2'), +(1, 'HN', 'Hors nomenclature', 'Hors nomenclature', 'B2'), +(1, 'HS', 'Honoraires de surveillance', 'Honoraires de surveillance', 'B2'), +(1, 'HTH', 'Forfait hebergement cure thermale', 'Forfait hebergement cure thermale', 'B2'), +(1, 'HUM', 'Produits origine humaine', 'Produits origine humaine', 'B2'), +(1, 'IC', 'Consultation generaliste ivg', 'Consultation generaliste ivg', 'B2'), +(1, 'ICO', 'Actes inlay-core', 'Actes inlay-core', 'B2'), +(1, 'ICS', 'Consultation specialiste ivg', 'Consultation specialiste ivg', 'B2'), +(1, 'ID', 'Indemnite de deplacement', 'Indemnite de deplacement', 'B2'), +(1, 'IF', 'Indemnite forfaitaire de deplacement', 'Indemnite forfaitaire de deplacement', 'B2'), +(1, 'IFA', 'Indemnite forfaitaire de deplacement pour auxiliaires medicaux', 'Indemnite forfaitaire de deplacement pour auxiliaires medicaux', 'B2'), +(1, 'IFN', 'Indemnite forfaitaire deplacement mk neurologique', 'Indemnite forfaitaire deplacement mk neurologique', 'B2'), +(1, 'IFO', 'Indemnite forfaitaire deplacement mk orthopedique et rhumatologique', 'Indemnite forfaitaire deplacement mk orthopedique et rhumatologique', 'B2'), +(1, 'IFP', 'Indemnite forfaitaire deplacement mk pneumologie', 'Indemnite forfaitaire deplacement mk pneumologie', 'B2'), +(1, 'IFR', 'Indemnite forfaitaire deplacement mk rhumatismale', 'Indemnite forfaitaire deplacement mk rhumatismale', 'B2'), +(1, 'IFS', 'Indemnite forfaitaire deplacement mk de sortie', 'Indemnite forfaitaire deplacement mk de sortie', 'B2'), +(1, 'IG', 'Intervention ivg', 'Intervention ivg', 'B2'), +(1, 'IGA', 'Anesthesie ivg', 'Anesthesie ivg', 'B2'), +(1, 'IGB', 'Investigations biologiques', 'Investigations biologiques', 'B2'), +(1, 'IGM', 'Mifegyne - pharmacie ivg', 'Mifegyne - pharmacie ivg', 'B2'), +(1, 'IGP', 'Prostaglandines - pharmacie ivg', 'Prostaglandines - pharmacie ivg', 'B2'), +(1, 'IK', 'Indemnites kilometriques', 'Indemnites kilometriques', 'B2'), +(1, 'IKG', 'Frais de deplacement vacations', 'Frais de deplacement vacations', 'B2'), +(1, 'IKM', 'Indemnite kilometrique montagne', 'Indemnite kilometrique montagne', 'B2'), +(1, 'IKS', 'Indemnite kilometrique speciale (ski-pied-bac)', 'Indemnite kilometrique speciale (ski-pied-bac)', 'B2'), +(1, 'IMD', 'Forfait intervention duree < ou = 12h', 'Forfait intervention duree < ou = 12h', 'B2'), +(1, 'IMI', 'Forfait intervention duree < ou = 12h prive medic', 'Forfait intervention duree < ou = 12h prive medic', 'B2'), +(1, 'IMP', 'Implantologie', 'Implantologie', 'B2'), +(1, 'ING', 'Garde ambulanciere', 'Garde ambulanciere', 'B2'), +(1, 'INO', 'Actes inlay-onlay', 'Actes inlay-onlay', 'B2'), +(1, 'IPD', 'Forfait intervention, 24h > duree > 12h', 'Forfait intervention, 24h > duree > 12h', 'B2'), +(1, 'IVB', 'Verification biologique - ivg', 'Verification biologique - ivg', 'B2'), +(1, 'IVE', 'Verification echographique - ivg', 'Verification echographique - ivg', 'B2'), +(1, 'K', 'Actes de specialite', 'Actes de specialite', 'B2'), +(1, 'KA', 'Actes de chirurgie d''urgence', 'Actes de chirurgie d''urgence', 'B2'), +(1, 'KB', 'Prelevement directeur de laboratoire', 'Prelevement directeur de laboratoire', 'B2'), +(1, 'KC', 'Actes de chirurgie dentaire par stomatologue', 'Actes de chirurgie dentaire par stomatologue', 'B2'), +(1, 'KCC', 'Actes specifiques des chirurgiens', 'Actes specifiques des chirurgiens', 'B2'), +(1, 'KE', 'Actes d''echographie, ecotomographie ou doppler', 'Actes d''echographie, ecotomographie ou doppler', 'B2'), +(1, 'KGP', 'Kit anti grippe', 'Kit anti grippe', 'B2'), +(1, 'KMB', 'Prelevement par ponction veineuse directe pour un medecin biologiste', 'Prelevement par ponction veineuse directe pour un medecin biologiste', 'B2'), +(1, 'KMO', 'Acte en k pour phoniatre', 'Acte en k pour phoniatre', 'B2'), +(1, 'KTH', 'Pratiques medicales complementaires en cure thermale', 'Pratiques medicales complementaires en cure thermale', 'B2'), +(1, 'LAI', 'Lait humain', 'Lait humain', 'B2'), +(1, 'LEN', 'Lentilles optiques', 'Lentilles optiques', 'B2'), +(1, 'LTD', 'Location ligne telephonique dediee', 'Location ligne telephonique dediee', 'B2'), +(1, 'LUN', 'Monture optique (titre ii - chapitre 2 de la lpp)', 'Monture optique (titre ii - chapitre 2 de la lpp)', 'B2'), +(1, 'MA', 'Majoration pour astreinte actes techniques', 'Majoration pour astreinte actes techniques', 'B2'), +(1, 'MAC', 'Materiels et appareils de contention', 'Materiels et appareils de contention', 'B2'), +(1, 'MAD', 'Materiels et appareils de traitements divers', 'Materiels et appareils de traitements divers', 'B2'), +(1, 'MAF', 'Majoration annuelle famille', 'Majoration annuelle famille', 'B2'), +(1, 'MAP', 'Majoration anatomo-cyto-pathologie', 'Majoration anatomo-cyto-pathologie', 'B2'), +(1, 'MAR', 'Marge forfaitaire', 'Marge forfaitaire', 'B2'), +(1, 'MAS', 'Majoration annuelle de synthese', 'Majoration annuelle de synthese', 'B2'), +(1, 'MAU', 'Majoration pour acte unique', 'Majoration pour acte unique', 'B2'), +(1, 'MBB', 'Majoration nourrisson avant 8 jours', 'Majoration nourrisson avant 8 jours', 'B2'), +(1, 'MCC', 'Majoration coordination cardiologue', 'Majoration coordination cardiologue', 'B2'), +(1, 'MCD', 'Majoration specifique pds cliniques dentistes', 'Majoration specifique pds cliniques dentistes', 'B2'), +(1, 'MCE', 'Majoration consultation endocrino', 'Majoration consultation endocrino', 'B2'), +(1, 'MCG', 'Majoration coordination generaliste', 'Majoration coordination generaliste', 'B2'), +(1, 'MCI', 'Majoration de coordination et d''environnement de soins infirmier', 'Majoration de coordination et d''environnement de soins infirmier', 'B2'), +(1, 'MCS', 'Majoration coordination specialiste', 'Majoration coordination specialiste', 'B2'), +(1, 'MD', 'Majoration de deplacement', 'Majoration de deplacement', 'B2'), +(1, 'MDD', 'Majoration de deplacement de dimanche et ferie', 'Majoration de deplacement de dimanche et ferie', 'B2'), +(1, 'MDE', 'Majoration de deplacement pour environnement', 'Majoration de deplacement pour environnement', 'B2'), +(1, 'MDI', 'Majoration de deplacement de mi-nuit 0 a 6 h', 'Majoration de deplacement de mi-nuit 0 a 6 h', 'B2'), +(1, 'MDN', 'Majoration de deplacement de nuit', 'Majoration de deplacement de nuit', 'B2'), +(1, 'MG', 'Majoration pour garde', 'Majoration pour garde', 'B2'), +(1, 'MGC', 'Forfait annuel migac', 'Forfait annuel migac', 'B2'), +(1, 'MGE', 'Majoration generaliste enfant', 'Majoration generaliste enfant', 'B2'), +(1, 'MHU', 'Medicament homeopathique unitaire (a 35 %)', 'Medicament homeopathique unitaire (a 35 %)', 'B2'), +(1, 'MIC', 'Majoration consultation longue et complexe par mt d''un patient insuffisant cardiaque apres hospitalisation pour decompensation', 'Majoration consultation longue et complexe par mt d''un patient insuffisant cardiaque apres hospitalisation pour decompensation', 'B2'), +(1, 'MK1', 'Cures thermales forfait kine 18 seances collectives', 'Cures thermales forfait kine 18 seances collectives', 'B2'), +(1, 'MK2', 'Cures thermales forfait kine 18 seances individuelles', 'Cures thermales forfait kine 18 seances individuelles', 'B2'), +(1, 'MK3', 'Cures thermales forfait kine 9 seances collectives', 'Cures thermales forfait kine 9 seances collectives', 'B2'), +(1, 'MK4', 'Cures thermales forfait kine (9 seances individuelles)', 'Cures thermales forfait kine (9 seances individuelles)', 'B2'), +(1, 'MM', 'Majoration milieu de nuit', 'Majoration milieu de nuit', 'B2'), +(1, 'MNO', 'Majoration nourisson generaliste', 'Majoration nourisson generaliste', 'B2'), +(1, 'MNP', 'Majoration nourisson pediatre', 'Majoration nourisson pediatre', 'B2'), +(1, 'MPC', 'Majoration provisoire cliniciens', 'Majoration provisoire cliniciens', 'B2'), +(1, 'MPE', 'Majoration pediatre enfant', 'Majoration pediatre enfant', 'B2'), +(1, 'MPF', 'Majoration premiere consultation famille', 'Majoration premiere consultation famille', 'B2'), +(1, 'MPI', 'Majoration pharmacie des iles', 'Majoration pharmacie des iles', 'B2'), +(1, 'MPJ', 'Majoration provisoire cliniciens pour - 16ans', 'Majoration provisoire cliniciens pour - 16ans', 'B2'), +(1, 'MPP', 'Majoration de suivi des enfants grands prematures ou atteints de pathologie congenitale grave', 'Majoration grands prema ou patho congenitale', 'B2'), +(1, 'MRD', 'Medecin referent debut', 'Medecin referent debut', 'B2'), +(1, 'MRF', 'Medecin referent fin', 'Medecin referent fin', 'B2'), +(1, 'MSH', 'Majoration de suivi des enfants grands prematures ou atteints de pathologie congenitale grave', 'Majoration grands prema ou patho congenitale', 'B2'), +(1, 'MTA', 'Majoration consultation appareillage', 'Majoration consultation appareillage', 'B2'), +(1, 'MTC', 'Majoration transitoire chirurgiens', 'Majoration transitoire chirurgiens', 'B2'), +(1, 'MTD', 'Acces direct specifique (medecin traitant)', 'Acces direct specifique (medecin traitant)', 'B2'), +(1, 'MTH', 'Hors residence habituel (medecin traitant)', 'Hors residence habituel (medecin traitant)', 'B2'), +(1, 'MTN', 'Nouveau medecin traitant', 'Nouveau medecin traitant', 'B2'), +(1, 'MTO', 'Patient oriente par le medecin traitant', 'Patient oriente par le medecin traitant', 'B2'), +(1, 'MTR', 'Medecin traitant remplace', 'Medecin traitant remplace', 'B2'), +(1, 'MTU', 'Urgence (medecin traitant)', 'Urgence (medecin traitant)', 'B2'), +(1, 'MU', 'Majoration d''urgence', 'Majoration d''urgence', 'B2'), +(1, 'NN1', 'Supplement neonatologie 1', 'Supplement neonatologie 1', 'B2'), +(1, 'NN2', 'Supplement neonatologie 2', 'Supplement neonatologie 2', 'B2'), +(1, 'NN3', 'Supplement neonatologie 3', 'Supplement neonatologie 3', 'B2'), +(1, 'NUT', 'Aliment dietetique', 'Aliment dietetique', 'B2'), +(1, 'OMJ', 'Aide outil de mise a jour vitale', 'Aide outil de mise a jour vitale', 'B2'), +(1, 'OP1', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'B2'), +(1, 'OP2', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'B2'), +(1, 'OP3', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'B2'), +(1, 'OP4', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'B2'), +(1, 'OP5', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'B2'), +(1, 'OP6', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'B2'), +(1, 'OP7', 'Forfait optique no7 multifocaux cmu', 'Forfait optique no7 multifocaux cmu', 'B2'), +(1, 'OPM', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu', 'B2'), +(1, 'OPT', 'Optique (titre ii - chapitre 2 de la lpp) hors verres et montures', 'Optique (titre ii - chapitre 2 de la lpp) hors verres et montures', 'B2'), +(1, 'ORP', 'Orthoprotheses (titre ii - chapitre 7 de la lpp)', 'Orthoprotheses (titre ii - chapitre 7 de la lpp)', 'B2'), +(1, 'ORT', 'Orthopedie dento-faciale par stomatologue', 'Orthopedie dento-faciale par stomatologue', 'B2'), +(1, 'OV1', 'Forfait optique enfant no1 unifocaux (cmu)', 'Forfait optique enfant no1 unifocaux (cmu)', 'B2'), +(1, 'OV2', 'Forfait optique enfant no2 unifocaux (cmu)', 'Forfait optique enfant no2 unifocaux (cmu)', 'B2'), +(1, 'OV3', 'Forfait optique enfant no3 unifocaux (cmu)', 'Forfait optique enfant no3 unifocaux (cmu)', 'B2'), +(1, 'OV4', 'Forfait optique enfant no4 unifocaux (cmu)', 'Forfait optique enfant no4 unifocaux (cmu)', 'B2'), +(1, 'OV5', 'Forfait optique enfant no5 unifocaux (cmu)', 'Forfait optique enfant no5 unifocaux (cmu)', 'B2'), +(1, 'OV6', 'Forfait optique enfant no6 unifocaux (cmu)', 'Forfait optique enfant no6 unifocaux (cmu)', 'B2'), +(1, 'OV7', 'Forfait optique enfant no7 unifocaux (cmu)', 'Forfait optique enfant no7 unifocaux (cmu)', 'B2'), +(1, 'OV8', 'Forfait optique enfant no8 unifocaux (cmu)', 'Forfait optique enfant no7 multifocaux (cmu)', 'B2'), +(1, 'OV9', 'Forfait optique enfant no9 unifocaux (cmu)', 'Forfait optique enfant no7 multifocaux (cmu)', 'B2'), +(1, 'OVA', 'Forfait optique enfant a unifocaux (cmu)', 'Forfait optique enfant a multifocaux (cmu)', 'B2'), +(1, 'OVB', 'Forfait optique enfant b unifocaux (cmu)', 'Forfait optique enfant b multifocaux (cmu)', 'B2'), +(1, 'P', 'Actes anatomo-cyto-pathologie', 'Actes anatomo-cyto-pathologie', 'B2'), +(1, 'PA', 'Ortheses (titre ii - chapitre 1 de la lpp)', 'Ortheses (titre ii - chapitre 1 de la lpp)', 'B2'), +(1, 'PAE', 'Participation assure pour soins externes en etablissement ex dg', 'Participation assure pour soins externes en etablissement ex dg', 'B2'), +(1, 'PAH', 'Participation assure pour hospitalisation en etablissement ex dg', 'Participation assure pour hospitalisation en etablissement ex dg', 'B2'), +(1, 'PAJ', 'Participation assure pour hospitalisation pour benef alsace moselle', 'Participation assure pour hospitalisation pour benef alsace moselle', 'B2'), +(1, 'PAL', 'Participation assure pour soins externes pour benef alsace moselle', 'Participation assure pour soins externes pour benef alsace moselle', 'B2'), +(1, 'PAM', 'Protheses amovibles definitives metalliques', 'Protheses amovibles definitives metalliques', 'B2'), +(1, 'PAN', 'Pansements (titre i - chapitre 4 de la lpp)', 'Pansements (titre i - chapitre 4 de la lpp)', 'B2'), +(1, 'PAP', 'Participation assure', 'Participation assure', 'B2'), +(1, 'PAR', 'Protheses amovibles definitives resine', 'Protheses amovibles definitives resine', 'B2'), +(1, 'PAS', 'Participation assure sejour', 'Participation assure sejour', 'B2'), +(1, 'PAT', 'Participation assure transitoire', 'Participation assure transitoire', 'B2'), +(1, 'PAU', 'Prothese auditive (titre ii - chapitre 3 de la lpp)', 'Prothese auditive (titre ii - chapitre 3 de la lpp)', 'B2'), +(1, 'PAV', 'Participation assure pour soins de ville et soins externes', 'Participation assure pour soins de ville et soins externes', 'B2'), +(1, 'PB', 'Prelevement sanguin par directeur de laboratoire non medecin', 'Prelevement sanguin par directeur de laboratoire non medecin', 'B2'), +(1, 'PDM', 'Dispositif medical', 'Dispositif medical', 'B2'), +(1, 'PDT', 'Protheses dentaires provisoires', 'Protheses dentaires provisoires', 'B2'), +(1, 'PEX', 'Prothese externe non orthopedique (titre ii - chapitre 4 de la lpp)', 'Prothese externe non orthopedique (titre ii - chapitre 4 de la lpp)', 'B2'), +(1, 'PFC', 'Protheses fixes ceramiques', 'Protheses fixes ceramiques', 'B2'), +(1, 'PFM', 'Protheses fixes metalliques', 'Protheses fixes metalliques', 'B2'), +(1, 'PGE', 'Pratique de geolocalisation par dispositif embarque', 'Pratique de geolocalisation par dispositif embarque', 'B2'), +(1, 'PH1', 'Pharmacie 100%', 'Pharmacie 100%', 'B2'), +(1, 'PH2', 'Pharmacie vignette orange 15%', 'Pharmacie vignette orange 15%', 'B2'), +(1, 'PH4', 'Pharmacie vignette bleue 35%', 'Pharmacie vignette bleue 35%', 'B2'), +(1, 'PH7', 'Pharmacie vignette blanche 65%', 'Pharmacie vignette blanche 65%', 'B2'), +(1, 'PH8', 'Pharmacie facturee en sus du ghs', 'Pharmacie facturee en sus du ghs', 'B2'), +(1, 'PH9', 'Pharmacie facturee en sus', 'Pharmacie facturee en sus', 'B2'), +(1, 'PHA', 'Forfait pharmacie accouchement a domicile', 'Forfait pharmacie accouchement a domicile', 'B2'), +(1, 'PHD', 'Pharmacie hospitaliere derogatoire', 'Pharmacie hospitaliere derogatoire', 'B2'), +(1, 'PHH', 'Pharmacie hospitaliere retrocedee (taux 100%)', 'Pharmacie hospitaliere retrocedee (taux 100%)', 'B2'), +(1, 'PHI', 'Medicament avec autorisation d''importation', 'Medicament avec autorisation d''importation', 'B2'), +(1, 'PHJ', 'Forfait pharmaceutique journalier', 'Forfait pharmaceutique journalier', 'B2'), +(1, 'PHM', 'Preparation hospitaliere magistrale', 'Preparation hospitaliere magistrale', 'B2'), +(1, 'PHN', 'Pharmacie non remboursable', 'Pharmacie non remboursable', 'B2'), +(1, 'PHP', 'Preparation hospitaliere', 'Preparation hospitaliere', 'B2'), +(1, 'PHQ', 'Pharmacie hospitaliere retrocedee (taux 35%)', 'Pharmacie hospitaliere retrocedee (taux 35%)', 'B2'), +(1, 'PHS', 'Pharmacie hospitaliere retrocedee (taux 65%)', 'Pharmacie hospitaliere retrocedee (taux 65%)', 'B2'), +(1, 'PHT', 'Pharmacie hospitaliere mmh', 'Pharmacie hospitaliere mmh', 'B2'), +(1, 'PHU', 'Medicament avec autorisation temporaire d''utilisation nominative', 'Medicament avec autorisation temporaire d''utilisation nominative', 'B2'), +(1, 'PHY', 'Medicament AP AC', 'Medicament AP AC', 'B2'), +(1, 'PII', 'Implant inerte (titre iii - chapitres 1, 2 et 3 de la lpp)', 'Implant inerte (titre iii - chapitres 1, 2 et 3 de la lpp)', 'B2'), +(1, 'PIO', 'Processeur pour implant osteo-integre', 'Processeur pour implant osteo-integre', 'B2'), +(1, 'PJ', 'Frais de sejour', 'Frais de sejour', 'B2'), +(1, 'PJC', 'Ticket moderateur relatif aux frais de sejour', 'Ticket moderateur relatif aux frais de sejour', 'B2'), +(1, 'PJE', 'Frais de sejour ime', 'Frais de sejour ime', 'B2'), +(1, 'PM2', 'Preparation magistrale allopathique 15%', 'Preparation magistrale allopathique 15%', 'B2'), +(1, 'PM4', 'Preparation magistrale allopathique 35%', 'Preparation magistrale allopathique 35%', 'B2'), +(1, 'PME', 'Implant mu par electricite (titre iii - chapitre 4 de la lpp)', 'Implant mu par electricite (titre iii - chapitre 4 de la lpp)', 'B2'), +(1, 'PMH', 'Preparation magistrale homeopathique', 'Preparation magistrale homeopathique', 'B2'), +(1, 'PMO', 'Prescription etablie par medecin correspondant dans le parcours de soins', 'Prescription etablie par medecin correspondant dans le parcours de soins', 'B2'), +(1, 'PMP', 'Prescription etablie dans une autre situation du parcours de soins', 'Prescription etablie dans une autre situation du parcours de soins', 'B2'), +(1, 'PMR', 'Preparation magistrale', 'Preparation magistrale', 'B2'), +(1, 'PMS', 'Majoration pmsi', 'Majoration pmsi', 'B2'), +(1, 'PMT', 'Prescription etablie par le medecin traitant', 'Prescription etablie par le medecin traitant', 'B2'), +(1, 'PO1', 'Prelevement organe 1', 'Prelevement organe 1', 'B2'), +(1, 'PO2', 'Prelevement organe 2', 'Prelevement organe 2', 'B2'), +(1, 'PO3', 'Prelevement organe 3', 'Prelevement organe 3', 'B2'), +(1, 'PO4', 'Prelevement organe 4', 'Prelevement organe 4', 'B2'), +(1, 'PO5', 'Prelevement organe 5', 'Prelevement organe 5', 'B2'), +(1, 'PO6', 'Prelevement organe 6', 'Prelevement organe 6', 'B2'), +(1, 'PO7', 'Prelevement organe 7', 'Prelevement organe 7', 'B2'), +(1, 'PO8', 'Prelevement organe 8', 'Prelevement organe 8', 'B2'), +(1, 'PO9', 'Prelevement organe 9', 'Prelevement organe 9', 'B2'), +(1, 'POA', 'Prelevement d''organe a', 'Prelevement d''organe a', 'B2'), +(1, 'POC', 'Prothese oculaire et faciale (titre ii - chapitre 5 de la lpp)', 'Prothese oculaire et faciale (titre ii - chapitre 5 de la lpp)', 'B2'), +(1, 'POD', 'Acte de pedicure-podologue ( diabetique)', 'Acte de pedicure-podologue ( diabetique)', 'B2'), +(1, 'PPH', 'Plan personnalise de sante pharmacie', 'Plan personnalise de sante pharmacie', 'B2'), +(1, 'PPI', 'Preparation pharmaceutique individualisee (allergenes)', 'Preparation pharmaceutique individualisee (allergenes)', 'B2'), +(1, 'PPP', 'Prestation particuliere et pandemie', 'Prestation particuliere et pandemie', 'B2'), +(1, 'PPS', 'Plan personnalise de sante', 'Plan personnalise de sante', 'B2'), +(1, 'PRD', 'Permanence remuneration dimanche et ferie', 'Permanence remuneration dimanche et ferie', 'B2'), +(1, 'PRM', 'Permanence remuneration milieu de nuit', 'Permanence remuneration milieu de nuit', 'B2'), +(1, 'PRN', 'Permanence remuneration de nuit', 'Permanence remuneration de nuit', 'B2'), +(1, 'PRO', 'Prothese dentaire par stomatologue', 'Prothese dentaire par stomatologue', 'B2'), +(1, 'PRS', 'Prime responsabilite professionnelle specialiste', 'Prime responsabilite professionnelle specialiste', 'B2'), +(1, 'PRT', 'Permanence remuneration totale', 'Permanence remuneration totale', 'B2'), +(1, 'PSC', 'Prescription etablie hors parcours de soins', 'Prescription etablie hors parcours de soins', 'B2'), +(1, 'PSM', 'Pied support materiel', 'Pied support materiel', 'B2'), +(1, 'PY0', 'Forfait psychiatrie seance collective 1 intervenant', 'Forfait psychiatrie seance collective 1 intervenant', 'B2'), +(1, 'PY1', 'Forfait psychiatrie seance individuelle', 'Forfait psychiatrie seance individuelle', 'B2'), +(1, 'PY2', 'Forfait psychiatrie seance collective 2 intervenants', 'Forfait psychiatrie seance collective 2 intervenants', 'B2'), +(1, 'PY3', 'Forfait psychiatrie seance individuelle 2 intervenants', 'Forfait psychiatrie seance individuelle 2 intervenants', 'B2'), +(1, 'PY4', 'Forfait psychiatrie seance collective 1 intervenant - 6 a 8 h', 'Forfait psychiatrie seance collective 1 intervenant - 6 a 8 h', 'B2'), +(1, 'PY5', 'Forfait psychiatrie seance individuelle 1 intervenant - 6 a 8 h', 'Forfait psychiatrie seance individuelle 1 intervenant - 6 a 8 h', 'B2'), +(1, 'PY6', 'Forfait psychiatrie seance collective 2 intervenants - 6 a 8 h', 'Forfait psychiatrie seance collective 2 intervenants - 6 a 8 h', 'B2'), +(1, 'PY7', 'Forfait psychiatrie seance individuelle 2 intervenants - 6 a 8 h', 'Forfait psychiatrie seance individuelle 2 intervenants - 6 a 8 h', 'B2'), +(1, 'PY8', 'Forfait psychiatrie de securite sans hebergement', 'Forfait psychiatrie de securite sans hebergement', 'B2'), +(1, 'PY9', 'Forfait psychiatrie d''accueil et de suivi de nuit', 'Forfait psychiatrie d''accueil et de suivi de nuit', 'B2'), +(1, 'RAA', 'Remuneration additionnelle capi', 'Remuneration additionnelle capi', 'B2'), +(1, 'RAC', 'Remuneration des adherents au capi', 'Remuneration des adherents au capi', 'B2'), +(1, 'RAG', 'Forfait pour astreinte de nuit ou samedi matin en etablissement prive', 'Forfait pour astreinte de nuit ou samedi matin en etablissement prive', 'B2'), +(1, 'RAN', 'Forfait pour astreinte de debut de nuit en etablissement prive', 'Forfait pour astreinte de debut de nuit en etablissement prive', 'B2'), +(1, 'RAP', 'Supplement radiotherapie pediatrique', 'Supplement radiotherapie pediatrique', 'B2'), +(1, 'RC1', 'Responsabilite civile chirurgie 1', 'Responsabilite civile chirurgie 1', 'B2'), +(1, 'RC2', 'Responsabilite civile chirurgie 2', 'Responsabilite civile chirurgie 2', 'B2'), +(1, 'RCA', 'Responsabilite civile anesthesie reanimation', 'Responsabilite civile anesthesie reanimation', 'B2'), +(1, 'RCC', 'Redevance chef de clinique', 'Redevance chef de clinique', 'B2'), +(1, 'RCO', 'Responsabilite civile echographie obstetricale', 'Responsabilite civile echographie obstetricale', 'B2'), +(1, 'RCP', 'Responsabilite civile professionnelle', 'Responsabilite civile professionnelle', 'B2'), +(1, 'REA', 'Supplement reanimation', 'Supplement reanimation', 'B2'), +(1, 'REG', 'Forfait regulation', 'Forfait regulation', 'B2'), +(1, 'REP', 'Reanimation pediatrique', 'Reanimation pediatrique', 'B2'), +(1, 'RGD', 'Forfait pour garde de debut de nuit en etablissement prive', 'Forfait pour garde de debut de nuit en etablissement prive', 'B2'), +(1, 'RGN', 'Forfait pour garde de nuit ou samedi matin en etablissement prive', 'Forfait pour garde de nuit ou samedi matin en etablissement prive', 'B2'), +(1, 'RMT', 'Remuneration medecin traitant', 'Remuneration medecin traitant', 'B2'), +(1, 'RNO', 'Renouvellement d''optique', 'Renouvellement d''optique', 'B2'), +(1, 'RPA', 'Remuneration pour astreinte en etablissement prive', 'Remuneration pour astreinte en etablissement prive', 'B2'), +(1, 'RPG', 'Remuneration pour garde en etablissement prive', 'Remuneration pour garde en etablissement prive', 'B2'), +(1, 'RPN', 'Reparations sur prothese', 'Reparations sur prothese', 'B2'), +(1, 'SC', 'Soins conservateurs par dentiste', 'Soins conservateurs par dentiste', 'B2'), +(1, 'SCM', 'Soins conservateurs par medecin', 'Soins conservateurs par medecin', 'B2'), +(1, 'SD', 'Seances de diagnostic', 'Seances de diagnostic', 'B2'), +(1, 'SDE', 'Soins dentaires', 'Soins dentaires', 'B2'), +(1, 'SE1', 'Forfait environnement hospitalier 1', 'Forfait environnement hospitalier 1', 'B2'), +(1, 'SE2', 'Forfait environnement hospitalier 2', 'Forfait environnement hospitalier 2', 'B2'), +(1, 'SE3', 'Forfait environnement hospitalier 3', 'Forfait environnement hospitalier 3', 'B2'), +(1, 'SE4', 'Forfait environnement hospitalier 4', 'Forfait environnement hospitalier 4', 'B2'), +(1, 'SE5', 'Forfait environnement hospitalier 5', 'Forfait environnement hospitalier 5', 'B2'), +(1, 'SE6', 'Forfait environnement hospitalier 6', 'Forfait environnement hospitalier 6', 'B2'), +(1, 'SE6', 'Forfait environnement hospitalier 6', 'Forfait environnement hospitalier 6', 'B2'), +(1, 'SE7', 'Forfait environnement hospitalier 7', 'Forfait environnement hospitalier 7', 'B2'), +(1, 'SES', 'Suite examen de sante', 'Suite examen de sante', 'B2'), +(1, 'SF', 'Actes de sage-femme', 'Actes de sage-femme', 'B2'), +(1, 'SFC', 'Supplement forfait chimiotherapie', 'Supplement forfait chimiotherapie', 'B2'), +(1, 'SFI', 'Soins infirmiers par sage-femme', 'Soins infirmiers par sage-femme', 'B2'), +(1, 'SHO', 'Supplement chambre particuliere pour raison therapeutique', 'Supplement chambre particuliere pour raison therapeutique', 'B2'), +(1, 'SMU', 'Transport par smur', 'Transport par smur', 'B2'), +(1, 'SNG', 'Sang plasma et derives', 'Sang plasma et derives', 'B2'), +(1, 'SNS', 'Frais de seance de soins', 'Frais de seance de soins', 'B2'), +(1, 'SOD', 'Outils de mise a jour pharmaciens specificites dom', 'Outils de mise a jour pharmaciens specificites dom', 'B2'), +(1, 'SP', 'Examen de suivi postnatal', 'Examen de suivi postnatal', 'B2'), +(1, 'SPR', 'Actes de prothese dentaire par chirurgien dentiste', 'Actes de prothese dentaire par chirurgien dentiste', 'B2'), +(1, 'SRA', 'Supplement reanimation', 'Supplement reanimation', 'B2'), +(1, 'SRC', 'Supplement surveillance continue', 'Supplement surveillance continue', 'B2'), +(1, 'SSC', 'Supplement soins continus', 'Supplement soins continus', 'B2'), +(1, 'SSM', 'Supplement pour surveillance malade', 'Supplement pour surveillance malade', 'B2'), +(1, 'STF', 'Forfait soins intensifs', 'Forfait soins intensifs', 'B2'), +(1, 'STH', 'Forfait surveillance medicale thermale', 'Forfait surveillance medicale thermale', 'B2'), +(1, 'SZH', 'Supplement Zone Haute', 'Supplement Zone Haute', 'B2'), +(1, 'TB', 'Prelevement sanguin par technicien de laboratoire', 'Prelevement sanguin par technicien de laboratoire', 'B2'), +(1, 'TCP', 'Acte de tele consultation', 'Acte de tele consultation', 'B2'), +(1, 'TDR', 'Test de diagnostic rapide (acte gratuit)', 'Test de diagnostic rapide (acte gratuit)', 'B2'), +(1, 'TEP', 'Acte de tele expertise', 'Acte de tele expertise', 'B2'), +(1, 'TH1', 'Cures thermales forfait global', 'Cures thermales forfait global', 'B2'), +(1, 'TH2', 'Cures thermales forfait global + kine', 'Cures thermales forfait global + kine', 'B2'), +(1, 'TH3', 'Cures thermales forfait 2eme orientation', 'Cures thermales forfait 2eme orientation', 'B2'), +(1, 'TH4', 'Cures thermales forfait global + kine', 'Cures thermales forfait global + kine', 'B2'), +(1, 'TH5', 'Cures thermales forfait 72 seances hydro', 'Cures thermales forfait 72 seances hydro', 'B2'), +(1, 'THR', 'Forfait surveillance medicale reduit 2eme orientation', 'Forfait surveillance medicale reduit 2eme orientation', 'B2'), +(1, 'TJC', 'Tarif journalier complementaire', 'Tarif journalier complementaire', 'B2'), +(1, 'TNS', 'Traitement nicotinique de substitution', 'Traitement nicotinique de substitution', 'B2'), +(1, 'TO', 'Traitements d''orthopedie dentofaciale par chirurgien dentiste', 'Traitements d''orthopedie dentofaciale par chirurgien dentiste', 'B2'), +(1, 'TSG', 'Frais transport produits sanguins', 'Frais transport produits sanguins', 'B2'), +(1, 'TTH', 'Frais de transport pour cure thermale', 'Frais de transport pour cure thermale', 'B2'), +(1, 'TXA', 'Taxi tarif a', 'Taxi tarif a', 'B2'), +(1, 'TXB', 'Taxi tarif b', 'Taxi tarif b', 'B2'), +(1, 'TXC', 'Taxi tarif c', 'Taxi tarif c', 'B2'), +(1, 'TXD', 'Taxi tarif d', 'Taxi tarif d', 'B2'), +(1, 'TXF', 'Taxi tarif f', 'Taxi tarif f', 'B2'), +(1, 'TXI', 'Transport par taxi', 'Transport par taxi', 'B2'), +(1, 'UPH', 'Urgence pharmacie', 'Urgence pharmacie', 'B2'), +(1, 'V', 'Visite', 'Visite', 'B2'), +(1, 'VA', 'Visite d''urgence (sur site experimental)', 'Visite d''urgence (sur site experimental)', 'B2'), +(1, 'VAC', 'Acte de vaccination grippe h1n1', 'Acte de vaccination grippe h1n1', 'B2'), +(1, 'VDC', 'Videocapsule en cabinet de ville', 'Videocapsule en cabinet de ville', 'B2'), +(1, 'VDE', 'Videocapsule en etablissement', 'Videocapsule en etablissement', 'B2'), +(1, 'VEH', 'Vehicule pour handicapes physiques (titre iv de la lpp)', 'Vehicule pour handicapes physiques (titre iv de la lpp)', 'B2'), +(1, 'VER', 'Verres optiques (titre ii - chapitre 2 de la lpp)', 'Verres optiques (titre ii - chapitre 2 de la lpp)', 'B2'), +(1, 'VGI', 'Remuneration vaccination grippe a infirmiers liberaux', 'Remuneration vaccination grippe a infirmiers liberaux', 'B2'), +(1, 'VGM', 'Remuneration vaccination grippe a medecin', 'Remuneration vaccination grippe a medecin', 'B2'), +(1, 'VL', 'Visite longue et complexe', 'Visite longue et complexe', 'B2'), +(1, 'VNP', 'Visite neuropsychiatre', 'Visite neuropsychiatre', 'B2'), +(1, 'VRD', 'Majoration visite regulee ferie et dimanche', 'Majoration visite regulee ferie et dimanche', 'B2'), +(1, 'VRM', 'Majoration visite regulee milieu de nuit', 'Majoration visite regulee milieu de nuit', 'B2'), +(1, 'VRN', 'Majoration visite regulee nuit', 'Majoration visite regulee nuit', 'B2'), +(1, 'VRS', 'Majoration visite regulee du samedi apres-midi', 'Majoration visite regulee du samedi apres-midi', 'B2'), +(1, 'VS', 'Visite specialiste', 'Visite specialiste', 'B2'), +(1, 'VSL', 'Transport par vehicule sanitaire leger', 'Transport par vehicule sanitaire leger', 'B2'), +(1, 'Z', 'Actes de radiologie dentaire', 'Actes de radiologie dentaire', 'B2'), +(1, 'ZFU', 'Contrat de bonnes pratiques en zone franche urbaine ', 'Contrat de bonnes pratiques en zone franche urbaine ', 'B2') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_prestations SET + code = w_dbsetup.code, + texte = w_dbsetup.texte, texte_court = w_dbsetup.texte_court +FROM w_dbsetup +WHERE w_dbsetup.oid = t_prestations.oid AND w_dbsetup.oid = 0; + +UPDATE activite.t_prestations SET + texte = w_dbsetup.texte, + texte_court = w_dbsetup.texte, + norme = 'B2' +FROM w_dbsetup +WHERE 1=1 + AND activite.t_prestations.code = w_dbsetup.code + AND activite.t_prestations.texte IS DISTINCT FROM w_dbsetup.texte +; + +INSERT INTO activite.t_prestations(oid, code, texte, texte_court, norme) + SELECT oid, code, texte, texte_court, norme + FROM w_dbsetup + WHERE 1=1 + AND oid = 0 + AND oid NOT IN (SELECT oid FROM activite.t_prestations) +; + +INSERT INTO activite.t_prestations(code, texte, texte_court, norme) + SELECT code, texte, texte_court, norme + FROM w_dbsetup + WHERE 1=1 + AND oid <> 0 + AND code NOT IN (SELECT code FROM activite.t_prestations) +; + +SELECT activite.cti_update_schema_classes('PRESTA_C'); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_rapports.SQL b/db/data/dbdata_activite_t_rapports.SQL new file mode 100644 index 0000000..8a48ef4 --- /dev/null +++ b/db/data/dbdata_activite_t_rapports.SQL @@ -0,0 +1,150 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN t_rapports.oid = 0 THEN t_rapports.oid ELSE 1 END AS oid, + t_rapports.code, + t_rapports.texte, + t_rapports.is_cti, + t_rapports.is_essentiel, + t_rapports.essentiel_date_level, + t_rapports.colonnes_essentiel, + t_rapports.entete, + t_rapports.entete_2, + CASE WHEN t_rapports.group_id = 0 THEN t_rapports.group_id ELSE 1 END AS group_id, + t_rapports.is_hide, + array_to_string( + ARRAY[ + COALESCE(t_indicateur_condition_1.external_code::text,''), + COALESCE(t_indicateur_condition_2.external_code::text,''), + COALESCE(t_indicateur_condition_3.external_code::text,''), + COALESCE(t_indicateur_condition_4.external_code::text,'') + ] + ,'||') AS rapport_indicateur_condition_code, + t_rapports.label, + array_to_string(serie_entete,'||') AS serie_entete, + t_rapports.colonnes_essentiel_style + FROM activite.t_rapports + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_1 ON t_rapports.rapport_indicateur_condition_id[1] = t_indicateur_condition_1.oid + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_2 ON t_rapports.rapport_indicateur_condition_id[2] = t_indicateur_condition_2.oid + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_3 ON t_rapports.rapport_indicateur_condition_id[3] = t_indicateur_condition_3.oid + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_4 ON t_rapports.rapport_indicateur_condition_id[4] = t_indicateur_condition_4.oid + WHERE (t_rapports.is_cti = '1' OR t_rapports.code LIKE 'CTI_%') AND + t_rapports.code <> 'CTI_PORTFO' + ORDER BY t_rapports.code + LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + is_cti, + is_essentiel, + essentiel_date_level, + colonnes_essentiel, + entete, + entete_2, + group_id, + is_hide, + rapport_indicateur_condition_code, + label, + serie_entete, + colonnes_essentiel_style +) +VALUES +(1, 'ACTI_ESS_1', 'CTI Essentiels Occupation (ne plus utiliser)', '1', '1', 'M', '', '', '', 1, '1', '||||||', '', '||', ''), +(1, 'ACTI_ESS_2', 'CTI Essentiels Activité DAF (ne plus utiliser)', '1', '1', 'M', '', '', '', 1, '1', '||||||', '', '||', ''), +(1, 'ACTI_ESS_3', 'CTI Essentiels Activité DIM (ne plus utiliser)', '1', '1', 'M', '', '', '', 1, '1', '||||||', '', '||', ''), +(1, 'ACTI_ESS_4', 'CTI Essentiels Activité Direction (ne plus utiliser)', '1', '1', 'M', '', '', '', 1, '1', '||||||', '', '||', ''), +(1, 'ACTI_ESS_5', 'CTI Essentiels Occupation SSR (ne plus utiliser)', '1', '1', 'M', '', '', '', 1, '1', '||||||', '', '||', ''), +(1, 'CTI_ESS_001', 'Occupation', '1', '1', 'M', '', '', '', 1, '0', '||||||', '', '||||||||||||||||', ''), +(1, 'CTI_ESS_002', 'Activité Direction (Date activité)', '1', '1', 'M', '', '', '', 1, '0', '||||||', '', '||', ''), +(1, 'CTI_ESS_003', 'Activité Direction (Date sortie)', '1', '1', 'M', '', '', '', 1, '0', '||||||', '', '||', ''), +(1, 'CTI_ESS_004', 'Activité Comptable (Date ventes)', '1', '1', 'M', '', '', '', 1, '0', '||||||', '', '||', ''), +(1, 'CTI_ESS_006', 'Séjours', '1', '1', 'M', 'ENTETE_ETENDUE|VAP100|DAM100|', '', '', 1, '0', '||||||', '', '||||||||||||||||', ''), +(1, 'CTI_EX1', 'CTI Exemple 1. Activité', '1', '0', 'M', '', '', '', 0, '0', '||||||', '', '||', ''), +(1, 'CTI_EX2', 'CTI Exemple 2. Occupation', '1', '0', 'M', '', '', '', 0, '0', '||||||', '', '||', ''), +(1, 'CTI_EX3', 'CTI Exemple 3. Activité', '1', '0', 'M', '', '', '', 0, '0', '||||||', '', '||', ''), +(1, 'CTI_EX4', 'CTI Exemple 4. Activité', '1', '0', 'M', '', '', '', 0, '0', '||||||', '', '||', ''), +(1, 'CTI_PF_AGG', 'CTI Portfolio', '1', '1', 'M', '', '', '', 1, '1', '||||||', '', '||', '') +; + +-- 3/3 : Màj de la table iCTI +ALTER TABLE w_dbsetup ADD COLUMN to_serie_entete text[]; +UPDATE w_dbsetup SET to_serie_entete = string_to_array(serie_entete,'||'); + + +ALTER TABLE w_dbsetup ADD COLUMN to_rapport_indicateur_condition_code text[]; +UPDATE w_dbsetup SET to_rapport_indicateur_condition_code = string_to_array(rapport_indicateur_condition_code,'||'); + +ALTER TABLE w_dbsetup ADD COLUMN to_rapport_indicateur_condition_id bigint[]; +UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[1] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[1] AND to_rapport_indicateur_condition_code[1] <> ''; +UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[2] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[2] AND to_rapport_indicateur_condition_code[2] <> ''; +UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[3] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[3] AND to_rapport_indicateur_condition_code[3] <> ''; +UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[4] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[4] AND to_rapport_indicateur_condition_code[4] <> ''; +UPDATE w_dbsetup SET to_rapport_indicateur_condition_id = array_remove(to_rapport_indicateur_condition_id,NULL); + +UPDATE activite.t_rapports SET + texte = w_dbsetup.texte, + is_cti = w_dbsetup.is_cti, + is_essentiel = w_dbsetup.is_essentiel, + essentiel_date_level = w_dbsetup.essentiel_date_level, + colonnes_essentiel = w_dbsetup.colonnes_essentiel, + entete = w_dbsetup.entete, + entete_2 = w_dbsetup.entete_2, + group_id = w_dbsetup.group_id, + rapport_indicateur_condition_id = to_rapport_indicateur_condition_id, + label = w_dbsetup.label, + serie_entete = to_serie_entete, + colonnes_essentiel_style = w_dbsetup.colonnes_essentiel_style +FROM w_dbsetup +WHERE t_rapports.code = w_dbsetup.code; + + +INSERT INTO activite.t_rapports(oid, code, texte, is_cti, is_essentiel) +SELECT oid, code, texte, is_cti, is_essentiel +FROM w_dbsetup +WHERE + oid = 0 AND + oid NOT IN (SELECT oid FROM activite.t_rapports); + + +INSERT INTO activite.t_rapports( + code, + texte, + is_cti, + is_essentiel, + essentiel_date_level, + colonnes_essentiel, + entete, + entete_2, + group_id, + is_hide, + rapport_indicateur_condition_id, + label, + serie_entete, + colonnes_essentiel_style + ) +SELECT + code, + texte, + is_cti, + is_essentiel, + essentiel_date_level, + colonnes_essentiel, + entete, + entete_2, + group_id, + is_hide, + to_rapport_indicateur_condition_id, + label, + to_serie_entete, + colonnes_essentiel_style +FROM w_dbsetup +WHERE + oid <> 0 AND + code NOT IN (SELECT code FROM activite.t_rapports); \ No newline at end of file diff --git a/db/data/dbdata_activite_t_rapports_rubriques.SQL b/db/data/dbdata_activite_t_rapports_rubriques.SQL new file mode 100644 index 0000000..9e3bd22 --- /dev/null +++ b/db/data/dbdata_activite_t_rapports_rubriques.SQL @@ -0,0 +1,1225 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_rapports.code AS rapport_code, + t_rapports_rubriques.numero_rubrique, + t_indicateurs.code AS indicateur_code, + COALESCE(t_indicateurs_associes.code, '') as indicateur_associe_code, + t_rapports_rubriques.entete, + t_rapports_rubriques.entete_etendue, + t_rapports_rubriques.output_format, + t_rapports_rubriques.width, + t_rapports_rubriques.row_height, + t_rapports_rubriques.padding, + t_rapports_rubriques.font_size, + t_rapports_rubriques.font_weight, + t_rapports_rubriques.border_thickness, + t_rapports_rubriques.color, + t_rapports_rubriques.background_color, + t_rapports_rubriques.base_nationale, + t_rapports_rubriques.base_nationale_qualifiee, + t_rapports_rubriques.viewlink, + t_rapports_rubriques.viewlink_label, + t_rapports_rubriques.viewlink_param, + t_rapports_rubriques.picto_enabled, + t_rapports_rubriques.positif_is_good, + t_rapports_rubriques.description, + t_rapports_rubriques.description_2, + t_rapports_rubriques.entete_etendue_2, + t_rapports_rubriques.output_format_2, + t_rapports_rubriques.picto_enabled_2, + t_rapports_rubriques.positif_is_good_2, + t_rapports_rubriques.is_hide, + t_rapports_rubriques.specific_viewlink, + t_rapports_rubriques.specific_viewlink_label, + t_rapports_rubriques.specific_viewlink_param, + array_to_string( + ARRAY[ + COALESCE(t_indicateur_condition_1.external_code::text,''), + COALESCE(t_indicateur_condition_2.external_code::text,''), + COALESCE(t_indicateur_condition_3.external_code::text,''), + COALESCE(t_indicateur_condition_4.external_code::text,'') + ],'||')::text AS indicateur_condition_external_code, + t_rapports_rubriques.erase_rapport_indicateur_condition, + t_rapports_rubriques.calc_formula, + t_rapports_rubriques.hide_on_zero_field, + t_rapports_rubriques.field_tag, + array_to_string( + ARRAY[ + COALESCE(t_indicateurs_serie_1.code,''), + COALESCE(t_indicateurs_serie_2.code,''), + COALESCE(t_indicateurs_serie_3.code,''), + COALESCE(t_indicateurs_serie_4.code,''), + COALESCE(t_indicateurs_serie_5.code,''), + COALESCE(t_indicateurs_serie_6.code,''), + COALESCE(t_indicateurs_serie_7.code,''), + COALESCE(t_indicateurs_serie_8.code,''), + COALESCE(t_indicateurs_serie_9.code,'') + ],'||')::text AS serie_indicateur_code, + array_to_string( + ARRAY[ + COALESCE(t_indicateurs_serie_1.table_name,''), + COALESCE(t_indicateurs_serie_2.table_name,''), + COALESCE(t_indicateurs_serie_3.table_name,''), + COALESCE(t_indicateurs_serie_4.table_name,''), + COALESCE(t_indicateurs_serie_5.table_name,''), + COALESCE(t_indicateurs_serie_6.table_name,''), + COALESCE(t_indicateurs_serie_7.table_name,''), + COALESCE(t_indicateurs_serie_8.table_name,''), + COALESCE(t_indicateurs_serie_9.table_name,'') + ],'||')::text AS serie_indicateur_table_name, + array_to_string(t_rapports_rubriques.serie_entete_etendue,'||')::text AS serie_entete_etendue, + array_to_string(t_rapports_rubriques.serie_description,'||')::text AS serie_description, + array_to_string(t_rapports_rubriques.serie_output_format,'||')::text AS serie_output_format, + array_to_string(t_rapports_rubriques.serie_picto_enabled,'||')::text AS serie_picto_enabled, + array_to_string(t_rapports_rubriques.serie_positif_is_good,'||')::text AS serie_positif_is_good + FROM + activite.t_rapports_rubriques + JOIN activite.t_rapports ON t_rapports_rubriques.rapport_id = t_rapports.oid + JOIN activite.t_indicateurs t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_associes ON t_rapports_rubriques.indicateur_associe_id = t_indicateurs_associes.oid AND + t_indicateurs_associes.is_cti IS DISTINCT FROM '0' + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_1 ON t_rapports_rubriques.indicateur_condition_id[1] = t_indicateur_condition_1.oid + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_2 ON t_rapports_rubriques.indicateur_condition_id[2] = t_indicateur_condition_2.oid + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_3 ON t_rapports_rubriques.indicateur_condition_id[3] = t_indicateur_condition_3.oid + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_4 ON t_rapports_rubriques.indicateur_condition_id[4] = t_indicateur_condition_4.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_1 ON t_rapports_rubriques.serie_indicateur_id[1] = t_indicateurs_serie_1.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_2 ON t_rapports_rubriques.serie_indicateur_id[2] = t_indicateurs_serie_2.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_3 ON t_rapports_rubriques.serie_indicateur_id[3] = t_indicateurs_serie_3.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_4 ON t_rapports_rubriques.serie_indicateur_id[4] = t_indicateurs_serie_4.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_5 ON t_rapports_rubriques.serie_indicateur_id[5] = t_indicateurs_serie_5.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_6 ON t_rapports_rubriques.serie_indicateur_id[6] = t_indicateurs_serie_6.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_7 ON t_rapports_rubriques.serie_indicateur_id[7] = t_indicateurs_serie_7.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_8 ON t_rapports_rubriques.serie_indicateur_id[8] = t_indicateurs_serie_8.oid + LEFT JOIN activite.t_indicateurs t_indicateurs_serie_9 ON t_rapports_rubriques.serie_indicateur_id[9] = t_indicateurs_serie_9.oid + WHERE 1=1 + AND t_rapports.is_cti = '1' + AND t_rapports.code <> 'CTI_PORTFO' + AND t_indicateurs.is_cti = '1' + AND t_indicateurs.code <> '' + ORDER BY + t_rapports.code, + t_indicateurs.code, + t_rapports_rubriques.numero_rubrique + LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + rapport_code, + numero_rubrique, + indicateur_code, + indicateur_associe_code, + entete, + entete_etendue, + output_format, + width, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + base_nationale, + base_nationale_qualifiee, + viewlink, + viewlink_label, + viewlink_param, + picto_enabled, + positif_is_good, + description, + description_2, + entete_etendue_2, + output_format_2, + picto_enabled_2, + positif_is_good_2, + is_hide, + specific_viewlink, + specific_viewlink_label, + specific_viewlink_param, + indicateur_condition_external_code, + erase_rapport_indicateur_condition, + calc_formula, + hide_on_zero_field, + field_tag, + serie_indicateur_code, + serie_indicateur_table_name, + serie_entete_etendue, + serie_description, + serie_output_format, + serie_picto_enabled, + serie_positif_is_good +) +VALUES +('ACTI_ESS_1', 4, 'CTI_ADM', '', '', 'Admissions période', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par étage', 'GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADM||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Admissions période||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 3, 'CTI_ADM_PRE', '', '', 'Admissions avant période', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par unité fonctionnelle', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADM_PRE||||||||||||||||', '*CALC||||||||||||||||', 'Admissions avant période||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 5, 'CTI_DEP', '', '', 'Sorties période', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par médecin séjour', 'GROUPBY=MED&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DEP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties période||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 19, 'CTI_DEP', '', '', 'Sorties période', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par service de sortie', 'GROUPBY=SOR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DEP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties période||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 28, 'CTI_DMSR', '', '', 'DMS hospitalisés', '#,0j', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par unité fonctionnelle', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&JSI=2&VIEWTAB=1', '1', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSR||||||||||||||||', '*CALC||||||||||||||||', 'DMS hospitalisés||', '||', '#,0j||', '1||', '0||'), +('ACTI_ESS_1', 27, 'CTI_DMSTOT', '', '', 'DMS établissement (Ambulatoires + Hospit jour de sortie non inclus)', '#,0j', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par services', 'GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSTOT||||||||||||||||', '*CALC||||||||||||||||', 'DMS établissement (Ambulatoires + Hospit jour de sortie non inclus)||', '||', '#,0j||', '1||', '0||'), +('ACTI_ESS_1', 25, 'CTI_NB6_JFSN', '', '', 'Journées hospitalisation facturées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par mois', 'GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JFSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisation facturées||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 15, 'CTI_NB6_JSN', '', '', 'Journées d''hospitalisation (jour sortie non inclus)', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Ocucpation par clé budgétaire', 'GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées d''hospitalisation (jour sortie non inclus)||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 10, 'CTI_NBAMB', '', '', 'Ambulatoires', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par étage de mouvement', 'GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Ambulatoires||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 31, 'CTI_NBDEAD', '', '', 'Nombre de décès', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par mode de sortie', 'GROUPBY=MODE_SORTIE&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&VIEWTAB=0', '1', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBDEAD||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Nombre de décès||', '||', '||', '1||', '0||'), +('ACTI_ESS_1', 8, 'CTI_NBENTDIR', '', '', 'Entrées hospitalisés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par service de mouvement', 'GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENTDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Entrées hospitalisés||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 12, 'CTI_NBEXT', '', '', 'Externes', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par mois', 'GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=3', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBEXT||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Externes||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 24, 'CTI_NBJAS_JFSN', '', '', 'Journées hospitalisation', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', '', 'GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJAS_JFSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisation||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 23, 'CTI_NBJFSN', '', '', 'Journées hospitalisées facturées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par domaine d''activité ATIH et par groupe d''activité ATIH', 'GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJFSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisées facturées||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 14, 'CTI_NBJSN', '', '', 'Journées hospitalisés (jour sortie non inclus)', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par domaine d''activité ATIH et par groupe d''activité ATIH', 'GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisés (jour sortie non inclus)||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 22, 'CTI_NBJSNS', '', '', 'Journées hospitalisées', '#j', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par médecin séjour et par groupe d''activité ATIH', 'GROUPBY=MED&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSNS||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisées||', '||', '#j||', '0||', '0||'), +('ACTI_ESS_1', 11, 'CTI_NBSCE', '', '', 'Séances', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par médecin séjour', 'GROUPBY=MED&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSCE||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séances||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 2, 'CTI_NBSEJO', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par services', 'GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 9, 'CTI_NBSORDIR', '', '', 'Sorties hospitalisés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par unité fonctionnelle de mouvement', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSORDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties hospitalisés||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 13, 'CTI_NB_BEBE', '', '', 'Bébés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par CMD', 'GROUPBY=CMD&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=3', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_BEBE||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Bébés||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 20, 'CTI_NB_FAC#2', '', '', 'Sorties période facturées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par unité fonctionnelle', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_FAC#2||||||||||||||||', 'SEJOURS||||||||||||||||', 'Sorties période facturées||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 30, 'CTI_PSEJFEM', '', '', 'Pourcentage de femmes', '#,0%', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000132', 'Population par âges', 'GROUPBY=AGE&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PSEJFEM||||||||||||||||', '*CALC||||||||||||||||', 'Pourcentage de femmes||', '||', '#,0%||', '0||', '0||'), +('ACTI_ESS_1', 1, 'CTI_SEP', '', '', 'Séjours', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Séjours||', '||', '||', '||', '||'), +('ACTI_ESS_1', 7, 'CTI_SEP', '', '', 'Occupation', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Occupation||', '||', '||', '||', '||'), +('ACTI_ESS_1', 16, 'CTI_SEP', '', '', 'Taux d''occupation', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Taux d''occupation||', '||', '||', '||', '||'), +('ACTI_ESS_1', 18, 'CTI_SEP', '', '', 'Facturation', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Facturation||', '||', '||', '||', '||'), +('ACTI_ESS_1', 26, 'CTI_SEP', '', '', 'Durée moyenne de séjours', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Durée moyenne de séjours||', '||', '||', '||', '||'), +('ACTI_ESS_1', 29, 'CTI_SEP', '', '', 'Population', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Population||', '||', '||', '||', '||'), +('ACTI_ESS_1', 6, 'CTI_SOR_POST_PER', '', '', '', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par mois', 'GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SOR_POST_PER||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '1||', '1||'), +('ACTI_ESS_1', 17, 'CTI_TX_HO', '', '', '', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000124', 'Localisation par etage et jour calendaire', 'GROUPBY=ETRA&GROUPBY_2=JOUR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_TOMOIS&TOPERIODE=VIEW.CURRENT_TOMOIS&JSI=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_HO||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 4, 'CTI_MTFAC_C#4', '', '', 'C.A. Total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par type de séjour et unité fonctionnelle', 'GROUPBY=TSE&GROUPBY_2=UF&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=4&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Total||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 2, 'CTI_NSFACT_CS#4', '', '', 'Séjours facturés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par type de séjour et unité fonctionnelle', 'GROUPBY=TSE&GROUPBY_2=UF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=4&QUELMONTANT=1&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFACT_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours facturés||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 6, 'CTI_PROTH_MT_FAC#4', '', '', 'C.A. prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_PROTHESE_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. prothèses||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 8, 'CTI_SEH_MT_FAC#4', '', '', 'C.A. forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_SE_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. forfaits SE||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 1, 'CTI_SEP', '', '', 'Séjours', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Séjours||', '||', '||', '||', '||'), +('ACTI_ESS_2', 3, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé||', '||', '||', '||', '||'), +('ACTI_ESS_2', 9, 'CTI_SHO_MT_FAC#4', '', '', 'C.A. chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_SHO_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. chambres particulières||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 10, 'CTI_SUPHOT_FAC#4', '', '', 'C.A. suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_SUPHOT_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. suppléments hôteliers||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 5, 'CTI_T2A_MT_FAC#4', '', '', 'C.A. T2A', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par spécilité médicale et médecin séjour', 'GROUPBY=SPM&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_T2A_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. T2A||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 7, 'CTI_UCD_MT_FAC#4', '', '', 'C.A. médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_UCD_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. médicaments||', '||', '||', '1||', '1||'), +('ACTI_ESS_2', 11, 'CTI_URG_MT_FAC#4', '', '', 'C.A. Urgences', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité du dernier mois par mois de sortie', 'GROUPBY=RUF&GROUPBY_2=MOISS&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_TOMOIS&TOPERIODE=VIEW.CURRENT_TOMOIS&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_URG_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_URG_MT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Urgences||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 21, 'CTI_MTENC_C#2', '', '', 'C.A. total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie CTI', 'GROUPBY=SOR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTENC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. total||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 11, 'CTI_MTFAC_C#2', '', '', 'C.A. total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie CTI et par service de sortie', 'GROUPBY=SORCLS04&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. total||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 30, 'CTI_MT_FAC_TOT#2', '', '', 'C.A. total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par mois de sortie', 'GROUPBY=MOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MT_FAC_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. total||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 8, 'CTI_NB6_JFSN', '', '', 'Journées hospitalisation facturées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', '', 'GROUPBY=MSOR&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JFSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisation facturées||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 7, 'CTI_NB6_JSN', '', '', 'Journées hospitalisation', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', '', 'GROUPBY=SORCLS04&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisation||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 6, 'CTI_NBJFSN', '', '', 'Journées hospitalisées facturées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', '', 'GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS08&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJFSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisées facturées||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 5, 'CTI_NBJSN', '', '', 'Journées hospitalisées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', '', 'GROUPBY=MED&GROUPBY_2=GHMCLS08&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisées||', '||', '||', '0||', '0||'), +('ACTI_ESS_3', 4, 'CTI_NB_NFAC#2', '', '', 'Séjours non facturés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par unité fonctionnelle', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2&QUELMONTANT=ENF', '1', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_NFAC#2||||||||||||||||', 'SEJOURS||||||||||||||||', 'Séjours non facturés||', '||', '||', '1||', '0||'), +('ACTI_ESS_3', 2, 'CTI_NB_SEJ_FAEN#2', '', '', 'Séjours sortis', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par type de séjour et par service de sortie', 'GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2&QUELMONTANT=MF-ENF', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours sortis||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 29, 'CTI_NB_SEJ_FAEN#2', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par type de séjour et par service de sortie', 'GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 20, 'CTI_NB_SEJ_VAL#2', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par type de séjour et par service de sortie', 'GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '0||', '0||'), +('ACTI_ESS_3', 10, 'CTI_NSFAC_C#2', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par domaine d''activité ATIH', 'GROUPBY=GHMCLS09&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 3, 'CTI_NSFAC_CS#2', '', '', 'Séjours facturés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par type de séjour CTI et service de sortie', 'GROUPBY=SORCLS04&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_CS#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours facturés||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 22, 'CTI_PROTH_MT_ENC#2', '', '', 'C.A. prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation CTI et par rubrique de facturation', 'GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_PROTHESE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_ENC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. prothèses||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 13, 'CTI_PROTH_MT_FAC#2', '', '', 'C.A. prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation CTI et par médecin séjour', 'GROUPBY=RUFCLS04&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_PROTHESE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. prothèses||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 32, 'CTI_PROTH_MT_TOT#2', '', '', 'C.A. prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation CTI et par médecin séjour', 'GROUPBY=RUFCLS04&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_PROTHESE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. prothèses||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 24, 'CTI_SEH_MT_ENC#2', '', '', 'C.A. forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_ENC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. forfaits SE||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 15, 'CTI_SEH_MT_FAC#2', '', '', 'C.A. forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_SE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. forfaits SE||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 34, 'CTI_SEH_MT_TOT#2', '', '', 'C.A. forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. forfaits SE||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 1, 'CTI_SEP', '', '', 'Séjours', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Séjours||', '||', '||', '||', '||'), +('ACTI_ESS_3', 9, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé||', '||', '||', '||', '||'), +('ACTI_ESS_3', 19, 'CTI_SEP', '', '', 'Chiffre d''affaires valorisé', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires valorisé||', '||', '||', '||', '||'), +('ACTI_ESS_3', 28, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé et valorisé', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé et valorisé||', '||', '||', '||', '||'), +('ACTI_ESS_3', 25, 'CTI_SHO_MT_ENC#2', '', '', 'C.A. chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie et par rubrique de facturation', 'GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SHO_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_ENC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. chambres particulières||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 16, 'CTI_SHO_MT_FAC#2', '', '', 'C.A. chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie et par rubrique de facturation', 'GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_SHO_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. chambres particulières||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 35, 'CTI_SHO_MT_TOT#2', '', '', 'C.A. chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie et rubrique de facturation', 'GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SHO_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. chambres particulières||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 26, 'CTI_SUPHOT_ENC#2', '', '', 'C.A. suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie et par rubrique de facturation CTI', 'GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SUPHOT_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_ENC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. suppléments hôteliers||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 17, 'CTI_SUPHOT_FAC#2', '', '', 'C.A. suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie CTI et par rubrique de facturation CTI', 'GROUPBY=SORCLS04&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_SUPHOT_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. suppléments hôteliers||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 36, 'CTI_SUPHOT_TOT#2', '', '', 'C.A. suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie et rubrique de facturation CTI', 'GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SUPHOT_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. suppléments hôteliers||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 12, 'CTI_T2A_MT_FAC#2', '', '', 'C.A. T2A', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation CTI et par rubrique de facturation', 'GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_T2A_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. T2A||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 31, 'CTI_T2A_MT_TOT#2', '', '', 'C.A. T2A', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation CTI et par rubrique de facturation', 'GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_T2A_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. T2A||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 23, 'CTI_UCD_MT_ENC#2', '', '', 'C.A. médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par service de sortie et par rubrique de facturation CTI', 'GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_UCD_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_ENC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. médicaments||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 14, 'CTI_UCD_MT_FAC#2', '', '', 'C.A. médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par compte et par rubrique de facturation', 'GROUPBY=CPT&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_UCD_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. médicaments||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 33, 'CTI_UCD_MT_TOT#2', '', '', 'C.A. médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par compte et par rubrique de facturation', 'GROUPBY=CPT&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_UCD_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. médicaments||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 27, 'CTI_URG_MT_ENC#2', '', '', 'C.A. urgences', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=1&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_URG_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_URG_MT_ENC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. urgences||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 18, 'CTI_URG_MT_FAC#2', '', '', 'C.A. urgences', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=0&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_URG_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_URG_MT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. urgences||', '||', '||', '1||', '1||'), +('ACTI_ESS_3', 37, 'CTI_URG_MT_TOT#2', '', '', 'C.A. urgences', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=2&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_URG_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_URG_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. urgences||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 17, 'CTI_MTENC_C#1', '', '', 'C.A. total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par mois de sortie', 'GROUPBY=MOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTENC_C#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. total||', '||', '||', '0||', '0||'), +('ACTI_ESS_4', 6, 'CTI_MTFAC_C#1', '', '', 'C.A. total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par classe de service de sortie CTI et par service de sortie', 'GROUPBY=SORCLS04&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC_C#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. total||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 26, 'CTI_MT_FAC_TOT#1', '', '', 'C.A. total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par mois de sortie', 'GROUPBY=MOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MT_FAC_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. total||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 2, 'CTI_NB_SEJ_FAEN#1', '', '', 'Séjours sortis', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par type de séjour et par service de sortie', 'GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=1&QUELMONTANT=MF-ENF', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours sortis||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 25, 'CTI_NB_SEJ_FAEN#1', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par type de séjour et par service de sortie', 'GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 16, 'CTI_NB_SEJ_VAL#1', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par type de séjour et par service de sortie', 'GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '0||', '0||'), +('ACTI_ESS_4', 5, 'CTI_NSFAC_C#1', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par mois d''activité', 'GROUPBY=MOIA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=1', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '0||', '0||'), +('ACTI_ESS_4', 3, 'CTI_NSFAC_CS#1', '', '', 'Séjours facturés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par type de séjour CTI et par service de sortie', 'GROUPBY=SORCLS04&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_CS#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours facturés||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 18, 'CTI_PROTH_MT_ENC#1', '', '', 'C.A. prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation CTI et par rubrique de facturation', 'GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_PROTHESE_R', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_ENC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. prothèses||', '||', '||', '0||', '0||'), +('ACTI_ESS_4', 9, 'CTI_PROTH_MT_FAC#1', '', '', 'C.A. prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation CTI et par médecin séjour', 'GROUPBY=RUFCLS04&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_PROTHESE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. prothèses||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 29, 'CTI_PROTH_MT_TOT#1', '', '', 'C.A. prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation CTI et par médecin séjour', 'GROUPBY=RUFCLS04&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_PROTHESE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. prothèses||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 7, 'CTI_RUBMED_MT_FAC#1', '', '', 'C.A. T2A', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation CTI et par rubrique de facturation', 'GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_RUBMED_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. T2A||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 27, 'CTI_RUBMED_MT_TOT#1', '', '', 'C.A. T2A', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation CTI et par rubrique de facturation', 'GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_RUBMED_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. T2A||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 20, 'CTI_SEH_MT_ENC#1', '', '', 'C.A. forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SE_R', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_ENC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. forfaits SE||', '||', '||', '0||', '0||'), +('ACTI_ESS_4', 11, 'CTI_SEH_MT_FAC#1', '', '', 'C.A. forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_SE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. forfaits SE||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 31, 'CTI_SEH_MT_TOT#1', '', '', 'C.A. forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SE_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. forfaits SE||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 1, 'CTI_SEP', '', '', 'Séjours', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Séjours||', '||', '||', '||', '||'), +('ACTI_ESS_4', 4, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé||', '||', '||', '||', '||'), +('ACTI_ESS_4', 15, 'CTI_SEP', '', '', 'Chiffre d''affaires valorisé', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires valorisé||', '||', '||', '||', '||'), +('ACTI_ESS_4', 24, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé et valorisé', '', 0, 26, 0, 14, 'bold', 2, '0x3399', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé et valorisé||', '||', '||', '||', '||'), +('ACTI_ESS_4', 21, 'CTI_SHO_MT_ENC#1', '', '', 'C.A. chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par service de sortie et par rubrique de facturation', 'GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SHO_R', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_ENC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. chambres particulières||', '||', '||', '0||', '0||'), +('ACTI_ESS_4', 12, 'CTI_SHO_MT_FAC#1', '', '', 'C.A. chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par service de sortie et par rubrique de facturation', 'GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_SHO_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. chambres particulières||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 32, 'CTI_SHO_MT_TOT#1', '', '', 'C.A. chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par service de sortie et rubrique de facturation', 'GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SHO_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. chambres particulières||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 8, 'CTI_SRUBMED_MT_FAC#1', '', '', 'C.A. rubriques non prises en compte', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation CTI et par rubrique de facturation', 'GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#SLCTI_RUBMED_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SRUBMED_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. rubriques non prises en compte||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 28, 'CTI_SRUBMED_MT_TOT#1', '', '', 'C.A. rubriques non prises en compte', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par rubrique de facturation CTI et par rubrique de facturation', 'GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#SLCTI_RUBMED_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SRUBMED_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. rubriques non prises en compte||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 22, 'CTI_SUPHOT_ENC#1', '', '', 'C.A. suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par service de sortie et rubrique de facturation CTI', 'GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SUPHOT_R', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_ENC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. suppléments hôteliers||', '||', '||', '0||', '0||'), +('ACTI_ESS_4', 13, 'CTI_SUPHOT_FAC#1', '', '', 'C.A. suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par service de sortie CTI et par rubrique de facturation CTI', 'GROUPBY=SORCLS04&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_SUPHOT_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. suppléments hôteliers||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 33, 'CTI_SUPHOT_TOT#1', '', '', 'C.A. suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par service de sortie et rubrique de facturation CTI', 'GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SUPHOT_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. suppléments hôteliers||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 19, 'CTI_UCD_MT_ENC#1', '', '', 'C.A. médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par service de sortie et par rubrique de facturation CTI', 'GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_UCD_R', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_ENC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. médicaments||', '||', '||', '0||', '0||'), +('ACTI_ESS_4', 10, 'CTI_UCD_MT_FAC#1', '', '', 'C.A. médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par compte et par rubrique de facturation', 'GROUPBY=CPT&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_UCD_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. médicaments||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 30, 'CTI_UCD_MT_TOT#1', '', '', 'C.A. médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par compte et par rubrique de facturation', 'GROUPBY=CPT&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_UCD_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. médicaments||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 23, 'CTI_URG_MT_ENC#1', '', '', 'C.A. urgences', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=1&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_URG_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_URG_MT_ENC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. urgences||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 14, 'CTI_URG_MT_FAC#1', '', '', 'C.A. urgences', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=0&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_URG_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_URG_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. urgences||', '||', '||', '1||', '1||'), +('ACTI_ESS_4', 34, 'CTI_URG_MT_TOT#1', '', '', 'C.A. urgences', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par rubrique de facturation', 'GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=2&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_URG_R', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_URG_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. urgences||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 5, 'CTI_ADM', '', '', 'Admissions période', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par étage', 'GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADM||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Admissions période||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 11, 'CTI_ADMHCP', '', '', 'Admissions période', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par étage', 'GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADMHCP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Admissions période||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 18, 'CTI_ADMHDJ', '', '', 'Admissions période', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par étage', 'GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT4''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADMHDJ||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Admissions période||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 10, 'CTI_ADMPREHCP', '', '', 'Admissions avant période', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par unité fonctionnelle', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADMPREHCP||||||||||||||||', '*CALC||||||||||||||||', 'Admissions avant période||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 17, 'CTI_ADMPREHDJ', '', '', 'Admissions avant période', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par unité fonctionnelle', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT4''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADMPREHDJ||||||||||||||||', '*CALC||||||||||||||||', 'Admissions avant période||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 4, 'CTI_ADM_PRE', '', '', 'Admissions avant période', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par unité fonctionnelle', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADM_PRE||||||||||||||||', '*CALC||||||||||||||||', 'Admissions avant période||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 6, 'CTI_DEP', '', '', 'Sorties période', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par médecin séjour', 'GROUPBY=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DEP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties période||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 12, 'CTI_DEPCOMP', '', '', 'Sorties période', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par médecin séjour', 'GROUPBY=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DEPCOMP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties période||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 14, 'CTI_DMSCP', '', '', 'DMS (journées hospitalisés séjours sortis / séjours sortis)', '#,0j', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par services', 'GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1&MODETRAITEMENT=''MT3''', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSCP||||||||||||||||', '*CALC||||||||||||||||', 'DMS (journées hospitalisés séjours sortis / séjours sortis)||', '||', '#,0j||', '1||', '1||'), +('ACTI_ESS_5', 26, 'CTI_ENTDIRCOM', '', '', 'Entrées directes', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par service', 'GROUPBY=SERCLS02&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''&VIEWTAB=3', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ENTDIRCOM||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Entrées directes||', '||', '||', '0||', '0||'), +('ACTI_ESS_5', 31, 'CTI_ENTDIRJR', '', '', 'Entrées directes', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par service', 'GROUPBY=SERCLS02&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT4''&VIEWTAB=3', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ENTDIRJR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Entrées directes||', '||', '||', '0||', '0||'), +('ACTI_ESS_5', 28, 'CTI_NB4_JSNCP', '', '', 'Nombre de journées hospitalisés', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par étage', 'GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''&VIEWTAB=3', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB4_JSNCP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Nombre de journées hospitalisés||', '||', '||', '0||', '0||'), +('ACTI_ESS_5', 33, 'CTI_NB4_JSNJR', '', '', 'Nombre de journées hospitalisés', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par étage', 'GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT4''&VIEWTAB=3', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB4_JSNJR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Nombre de journées hospitalisés||', '||', '||', '0||', '0||'), +('ACTI_ESS_5', 24, 'CTI_NB6_JSN', '', '', 'Journées d''hospitalisation', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par clé budgétaire', 'GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées d''hospitalisation||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 35, 'CTI_NB6_JSN', '', '', 'Journées hospitalisation', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par étage', 'GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisation||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 38, 'CTI_NBDEAD', '', '', 'Nombre de décès', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par mode de sortie', 'GROUPBY=MODE_SORTIE&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&VIEWTAB=0', '1', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBDEAD||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Nombre de décès||', '||', '||', '1||', '0||'), +('ACTI_ESS_5', 22, 'CTI_NBENTDIR', '', '', 'Entrées hospitalisés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par service de mouvement', 'GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENTDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Entrées hospitalisés||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 36, 'CTI_NBJFSN', '', '', 'Journées hospitalisation facturées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par mois', 'GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJFSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisation facturées||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 13, 'CTI_NBPRESHCOMP', '', '', 'Séjours non sortis', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par jour calendaire (dernier mois)', 'GROUPBY=JOUR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_MONTH_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBPRESHCOMP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours non sortis||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 19, 'CTI_NBPRESHDJ', '', '', 'Séjours non sortis', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par jour calendaire (dernier mois)', 'GROUPBY=JOUR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_MONTH_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT4''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBPRESHDJ||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours non sortis||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 9, 'CTI_NBSEJCP', '', '', 'Séjours', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par services', 'GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJCP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 16, 'CTI_NBSEJHDJ', '', '', 'Séjours', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par service', 'GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT4''&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJHDJ||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 3, 'CTI_NBSEJO', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par services', 'GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 23, 'CTI_NBSORDIR', '', '', 'Sorties hospitalisés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par unité fonctionnelle de mouvement', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSORDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties hospitalisés||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 7, 'CTI_NB_PRESENT', '', '', 'Séjours non sortis', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par jours calendaires (dernier mois)', 'GROUPBY=JOUR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_MONTH_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_PRESENT||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours non sortis||', '||', '||', '1||', '1||'), +('ACTI_ESS_5', 1, 'CTI_SEP', '', '', 'Séjours', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Séjours||', '||', '||', '||', '||'), +('ACTI_ESS_5', 2, 'CTI_SEP', '', '', 'Synthèse', '', 0, 22, 6, 13, 'bold', 2, '0x0', '0xdddddd', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Synthèse||', '||', '||', '||', '||'), +('ACTI_ESS_5', 8, 'CTI_SEP', '', '', 'Hospitalisation complète', '', 0, 22, 6, 13, 'bold', 2, '0x0', '0xdddddd', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Hospitalisation complète||', '||', '||', '||', '||'), +('ACTI_ESS_5', 15, 'CTI_SEP', '', '', 'Hospitalisation de jour', '', 0, 22, 6, 13, 'bold', 2, '0x0', '0xdddddd', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Hospitalisation de jour||', '||', '||', '||', '||'), +('ACTI_ESS_5', 20, 'CTI_SEP', '', '', 'Occupation', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Occupation||', '||', '||', '||', '||'), +('ACTI_ESS_5', 21, 'CTI_SEP', '', '', 'Synthése', '', 0, 22, 6, 13, 'bold', 2, '0x0', '0xdddddd', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Synthése||', '||', '||', '||', '||'), +('ACTI_ESS_5', 25, 'CTI_SEP', '', '', 'Hospitalisation complète', '', 0, 22, 6, 13, 'bold', 0, '0x0', '0xdddddd', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Hospitalisation complète||', '||', '||', '||', '||'), +('ACTI_ESS_5', 30, 'CTI_SEP', '', '', 'Hospitalisation de jour', '', 0, 22, 6, 13, 'bold', 0, '0x0', '0xdddddd', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Hospitalisation de jour||', '||', '||', '||', '||'), +('ACTI_ESS_5', 34, 'CTI_SEP', '', '', 'Facturation', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Facturation||', '||', '||', '||', '||'), +('ACTI_ESS_5', 37, 'CTI_SEP', '', '', 'Population', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Population||', '||', '||', '||', '||'), +('ACTI_ESS_5', 27, 'CTI_SORDIRCOM', '', '', 'Sorties directes', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par unité fonctionelle', 'GROUPBY=UF&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''&VIEWTAB=3', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SORDIRCOM||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties directes||', '||', '||', '0||', '0||'), +('ACTI_ESS_5', 32, 'CTI_SORDIRJR', '', '', 'Sorties directes', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par unité fonctionelle', 'GROUPBY=UF&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT4''&VIEWTAB=3', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SORDIRJR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties directes||', '||', '||', '0||', '0||'), +('ACTI_ESS_5', 29, 'CTI_TX_HOCOMP', '', '', 'Taux d''occupation', '', 0, 22, 16, 12, '', 0, '', '', '0', '0', 'ACTI000124', 'Localisation par étage et jour calendaire', 'GROUPBY=JOUR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_MONTH_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT=''MT3''', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_HOCOMP||||||||||||||||', '*CALC||||||||||||||||', 'Taux d''occupation||', '||', '||', '0||', '0||'), +('CTI_ESS_001', 3, 'CTI_ADM', '', '', 'Admissions', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par étage d''occupation', 'GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_ADM||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Admissions||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 4, 'CTI_DEP', '', '', 'Départs', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000056', 'Occupation par médecin séjour', 'GROUPBY=MED&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DEP||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Départs||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 24, 'CTI_DMSR', '', '', 'DMS hospitalisés', '#,0j', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par UF d''occupation', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&JSI=2&VIEWTAB=1', '1', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSR||||||||||||||||', '*CALC||||||||||||||||', 'DMS hospitalisés||', '||', '#,0j||', '1||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_001', 23, 'CTI_DMSTOT', '', '', 'DMS hospitalisation', '#,0j', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par Service d''occupation', 'GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1', '1', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSTOT||||||||||||||||', '*CALC||||||||||||||||', 'DMS hospitalisation||', '||', '#,0j||', '1||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_001', 13, 'CTI_NB6_JSN', '', '', 'Journées d''hospitalisation', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Ocucpation par Spécialité et Médecin', 'PERIODE=VIEW.CURRENT_PERIODE & TOPERIODE=VIEW.CURRENT_TOPERIODE & GROUPBY=SPM & GROUPBY_TAB=TREE', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées d''hospitalisation||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 8, 'CTI_NBAMB', '', '', 'Ambulatoires', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par étage d''occupation', 'GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Ambulatoires||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 27, 'CTI_NBDEAD', '', '', 'Nombre de décès', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Séjours par Mode de sortie', 'PERIODE=VIEW.CURRENT_PERIODE & TOPERIODE=VIEW.CURRENT_TOPERIODE & GROUPBY=MODE_SORTIE & GROUPBY_TAB=TAB & _ONGLET_O1_VISIBLE=false & _ONGLET_O2_VISIBLE=false & _ONGLET_O3_VISIBLE=false', '1', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBDEAD||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Nombre de décès||', '||', '||', '1||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_001', 6, 'CTI_NBENTDIR', '', '', 'Entrées hospitalisés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par service d''occupation', 'GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENTDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Entrées hospitalisés||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 10, 'CTI_NBEXT', '', '', 'Externes', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par mois', 'GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=3', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBEXT||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Externes||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 17, 'CTI_NBFACREF', '', '', 'Sorties directes et facturations intermédiaires', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation facturée par service de sortie', 'PERIODE=VIEW.CURRENT_PERIODE & TOPERIODE=VIEW.CURRENT_TOPERIODE & GROUPBY=SOR & GROUPBY_TAB=TAB', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBFACREF||||||||||||||||', 'SEJOURS||||||||||||||||', 'Sorties directes et facturations intermédiaires||', '||', '||', '1||0||||||||||||||', '1||0||||||||||||||'), +('CTI_ESS_001', 18, 'CTI_NBFACREF_F', '', '', 'Dont Facturées', '', 0, 22, 20, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation facturée par unité fonctionnelle', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBFACREF_F||||||||||||||||', 'SEJOURS||||||||||||||||', 'Dont Facturées||', '||', '||', '1||0||||||||||||||', '1||0||||||||||||||'), +('CTI_ESS_001', 19, 'CTI_NBFACREF_NF', '', '', 'Dont non facturées', '', 0, 22, 20, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par étage', 'GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBFACREF_NF||||||||||||||||', 'SEJOURS||||||||||||||||', 'Dont non facturées||', '||', '||', '1||0||||||||||||||', '1||0||||||||||||||'), +('CTI_ESS_001', 21, 'CTI_NBJAS_FAC', '', '', 'Journées hospitalisation facturées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par mois', 'GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJAS_FAC||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisation facturées||', '||', '||', '1||0||||||||||||||', '1||0||||||||||||||'), +('CTI_ESS_001', 12, 'CTI_NBJSN', '', '', 'Journées des hospitalisés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par domaine d''activité ATIH et par groupe d''activité ATIH', 'GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées des hospitalisés||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 20, 'CTI_NBJ_FAC', '', '', 'Journées hospitalisées facturées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Facturation par domaine d''activité ATIH et par groupe d''activité ATIH', 'GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJ_FAC||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées hospitalisées facturées||', '||', '||', '1||0||||||||||||||', '1||0||||||||||||||'), +('CTI_ESS_001', 9, 'CTI_NBSCE', '', '', 'Séances', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par médecin séjour', 'GROUPBY=MED&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSCE||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séances||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 2, 'CTI_NBSEJO', '', '', 'Séjours', '', 0, 22, 10, 12, '0', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par Forme d''activité et UF d''occupation', 'PERIODE=VIEW.CURRENT_PERIODE & TOPERIODE=VIEW.CURRENT_TOPERIODE & GROUPBY=FOA & GROUPBY_TAB=TAB & GROUPBY_2=UF', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 7, 'CTI_NBSORDIR', '', '', 'Sorties hospitalisés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par UF d''occupation', 'GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSORDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Sorties hospitalisés||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 11, 'CTI_NB_BEBE', '', '', 'Bébés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par CMD', 'GROUPBY=CMD&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=3', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_BEBE||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Bébés||', '||', '||', '1||0||0||0||0||0||0||0||0', '1||0||0||0||0||0||0||0||0'), +('CTI_ESS_001', 26, 'CTI_PSEJFEM', '', '', 'Pourcentage de femmes', '#,0%', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000132', 'Pyramide des ages', 'GROUPBY=AGE&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PSEJFEM||||||||||||||||', '*CALC||||||||||||||||', 'Pourcentage de femmes||', '||', '#,0%||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_001', 1, 'CTI_SEP', '', '', 'File active Séjours', '', 0, 26, 0, 14, 'bold', 2, '#c0392b', '#cccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', 'PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'File active Séjours||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_001', 5, 'CTI_SEP', '', '', 'Occupation', '', 0, 26, 0, 14, 'bold', 2, '#c0392b', '#cccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', 'PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Occupation||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_001', 14, 'CTI_SEP', '', '', 'Taux d''occupation', '', 0, 26, 0, 14, 'bold', 2, '#c0392b', '#cccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Taux d''occupation||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_001', 16, 'CTI_SEP', '', '', 'Facturation', '', 0, 26, 0, 14, 'bold', 2, '#c0392b', '#cccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Facturation||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_001', 22, 'CTI_SEP', '', '', 'Durée moyenne de séjours', '', 0, 26, 0, 14, 'bold', 2, '#c0392b', '#cccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Durée moyenne de séjours||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_001', 25, 'CTI_SEP', '', '', 'Population', '', 0, 26, 0, 14, 'bold', 2, '#c0392b', '#cccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Population||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_001', 15, 'CTI_TX_HO', '', '', 'Taux d''occupation (Hospitalisés)', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000124', 'Localisation par etage d''occupation et jour calendaire', 'GROUPBY=ETA&GROUPBY_2=JOUR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_TOMOIS&TOPERIODE=VIEW.CURRENT_TOMOIS&JSI=2', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_HO||||||||||||||||', '*CALC||||||||||||||||', 'Taux d''occupation (Hospitalisés)||', '||', '||', '1||0||||||||||||||', '1||0||||||||||||||'), +('CTI_ESS_002', 22, 'CTI_CAT_MTD18_FACVAL', '', '', 'C.A. Soins Moyen', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Spécialité et Médecin', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAT_MTD18_FACVAL||||||||||||||||', '*CALC||||||||||||||||', 'C.A. Soins Moyen||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 17, 'CTI_EMC', '', '', 'EMC', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Spécialité médecin et Médecin', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_EMC||||||||||||||||', 'OCCUPATION||||||||||||||||', 'EMC||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 12, 'CTI_MTENC_C#1', '', '', 'C.A. Total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=TSE & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTENC_C#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Total||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 7, 'CTI_MTFAC_C#1', '', '', 'C.A. Total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC_C#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Total||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 19, 'CTI_MT_FAC_TOT#1', '', '', 'C.A. Total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Domaine et Groupe d''activité', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=GHMCLS09 & +GROUPBY_TAB=TAB & +GROUPBY_2=GHMCLS07 & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MT_FAC_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Total||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 18, 'CTI_NB6_JSN', '', '', 'Journées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Rubrique CTI et rubrique', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUFCLS31 & +GROUPBY_3=RUF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 2, 'CTI_NBSEJO', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 16, 'CTI_NB_SEJ_FAEN#1', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 4, 'CTI_NB_SEJ_VAL#1', '', '', '', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par mois', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MOISA & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '0||', '0||'), +('CTI_ESS_002', 11, 'CTI_NB_SEJ_VAL#1', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par Rubrique CTI et Rubrique', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 3, 'CTI_NSFAC_C#1', '', '', 'Séjours Facturés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par mois', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MOISA & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours Facturés||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 6, 'CTI_NSFAC_C#1', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par Rubrique CTI et Rubrique', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUFCLS31 & +GROUPBY_3=RUF & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 24, 'CTI_PROTH_MT_TOT#1', '', '', 'C.A. Prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité Prothèses par Médecin', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_PROTHESE_R', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Prothèses||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 13, 'CTI_RUBMED_MT_ENC#1', '', '', 'C.A. Séjour', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_ENC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Séjour||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 8, 'CTI_RUBMED_MT_FAC#1', '', '', 'C.A. Séjour', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Séjour||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 20, 'CTI_RUBMED_MT_TOT#1', '', '', 'C.A. Séjour', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Séjour||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 26, 'CTI_SEH_MT_TOT#1', '', '', 'C.A. Forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité SEh par Médecin', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_SE_R', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Forfaits SE||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 1, 'CTI_SEP', '', '', 'File active facturation', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'File active facturation||', '||', '||', '||', '||'), +('CTI_ESS_002', 5, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé||', '||', '||', '||', '||'), +('CTI_ESS_002', 10, 'CTI_SEP', '', '', 'Chiffre d''affaires valorisé', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires valorisé||', '||', '||', '||', '||'), +('CTI_ESS_002', 15, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé et valorisé', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé et valorisé||', '||', '||', '||', '||'), +('CTI_ESS_002', 23, 'CTI_SEP', '', '', 'Chiffre d''affaires autres prestations', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires autres prestations||', '||', '||', '||', '||'), +('CTI_ESS_002', 27, 'CTI_SHO_MT_TOT#1', '', '', 'C.A. Chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite C.P. par Rubrique', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_SHO_R', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Chambres particulières||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 28, 'CTI_SUPHOT_TOT#1', '', '', 'C.A. Suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité Hotellerie par Rubrique', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_SUPHOT_R', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Suppléments hôteliers||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 14, 'CTI_T2A_MT_ENC#1', '', '', 'C.A. Soins', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_ENC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Soins||', '||', '||', '0||0', '0||0'), +('CTI_ESS_002', 9, 'CTI_T2A_MT_FAC#1', '', '', 'C.A. Soins', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_FAC#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Soins||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 21, 'CTI_T2A_MT_TOT#1', '', '', 'C.A. Soins', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Soins||', '||', '||', '1||0', '1||0'), +('CTI_ESS_002', 25, 'CTI_UCD_MT_TOT#1', '', '', 'C.A. Médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité Médicaments par Médecin', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_UCD_R', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_TOT#1||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Médicaments||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 22, 'CTI_CAM_SOINS_FACVAL#2', '', '', 'C.A. Soins Moyen', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Spécialité et Médecin', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAM_SOINS_FACVAL#2||||||||||||||||', '*CALC||||||||||||||||', 'C.A. Soins Moyen||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 17, 'CTI_EMC', '', '', 'EMC', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Spécialité médecin et Médecin', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_EMC||||||||||||||||', 'OCCUPATION||||||||||||||||', 'EMC||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 12, 'CTI_MTENC_C#2', '', '', 'C.A. Total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=TSE & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTENC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Total||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 7, 'CTI_MTFAC_C#2', '', '', 'C.A. Total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Total||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 19, 'CTI_MT_FAC_TOT#2', '', '', 'C.A. Total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Domaine et Groupe d''activité', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=GHMCLS09 & +GROUPBY_TAB=TAB & +GROUPBY_2=GHMCLS07 & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MT_FAC_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Total||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 18, 'CTI_NB6_JSN', '', '', 'Journées', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Rubrique CTI et rubrique', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUFCLS31 & +GROUPBY_3=RUF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB6_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Journées||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 2, 'CTI_NBSEJO', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000123', 'Occupation par forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Séjours||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 16, 'CTI_NB_SEJ_FAEN#2', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 4, 'CTI_NB_SEJ_VAL#2', '', '', '', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par mois', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MOISA & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '0||', '0||'), +('CTI_ESS_003', 11, 'CTI_NB_SEJ_VAL#2', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par Rubrique CTI et Rubrique', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 3, 'CTI_NSFAC_C#2', '', '', 'Séjours Facturés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par mois', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MOISA & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours Facturés||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 6, 'CTI_NSFAC_C#2', '', '', 'Séjours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par Rubrique CTI et Rubrique', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUFCLS31 & +GROUPBY_3=RUF & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 24, 'CTI_PROTH_MT_TOT#2', '', '', 'C.A. Prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité Prothèses par Médecin', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S22', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Prothèses||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 13, 'CTI_RUBMED_MT_ENC#2', '', '', 'C.A. Séjour', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_ENC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Séjour||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 8, 'CTI_RUBMED_MT_FAC#2', '', '', 'C.A. Séjour', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Séjour||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 20, 'CTI_RUBMED_MT_TOT#2', '', '', 'C.A. Séjour', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Séjour||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 26, 'CTI_SEH_MT_TOT#2', '', '', 'C.A. Forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité SEh par Médecin', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S03', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Forfaits SE||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 1, 'CTI_SEP', '', '', 'File active facturation', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'File active facturation||', '||', '||', '||', '||'), +('CTI_ESS_003', 5, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé||', '||', '||', '||', '||'), +('CTI_ESS_003', 10, 'CTI_SEP', '', '', 'Chiffre d''affaires valorisé', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires valorisé||', '||', '||', '||', '||'), +('CTI_ESS_003', 15, 'CTI_SEP', '', '', 'Chiffre d''affaires facturé et valorisé', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires facturé et valorisé||', '||', '||', '||', '||'), +('CTI_ESS_003', 23, 'CTI_SEP', '', '', 'Chiffre d''affaires autres prestations', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires autres prestations||', '||', '||', '||', '||'), +('CTI_ESS_003', 27, 'CTI_SHO_MT_TOT#2', '', '', 'C.A. Chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite C.P. par Rubrique', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S11', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SHO_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Chambres particulières||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 28, 'CTI_SUPHOT_TOT#2', '', '', 'C.A. Suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité Hotellerie par Rubrique', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S12', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Suppléments hôteliers||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 14, 'CTI_T2A_MT_ENC#2', '', '', 'C.A. Soins', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Valorisation par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_ENC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Soins||', '||', '||', '0||0', '0||0'), +('CTI_ESS_003', 9, 'CTI_T2A_MT_FAC#2', '', '', 'C.A. Soins', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Facturation par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_FAC#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Soins||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 21, 'CTI_T2A_MT_TOT#2', '', '', 'C.A. Soins', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activite par Forme d''activité et UF', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_T2A_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Soins||', '||', '||', '1||0', '1||0'), +('CTI_ESS_003', 25, 'CTI_UCD_MT_TOT#2', '', '', 'C.A. Médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Activité Médicaments par Médecin', 'QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S21', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Médicaments||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 23, 'CTI_CACPTENC_C_12M', '', '', 'C.A. mensuel moyen (12 derniers mois)', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', '', '', '', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CACPTENC_C_12M||||||||||||||||', '*CALC||||||||||||||||', 'C.A. mensuel moyen (12 derniers mois)||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 7, 'CTI_CAM_SOINS_CPT', '', '', 'C.A. Soins Moyen', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation par Spécialité et Médecin', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +QUELMONTANT=2 & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAM_SOINS_CPT||||||||||||||||', '*CALC||||||||||||||||', 'C.A. Soins Moyen||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 5, 'CTI_CA_RUBMED_MT_CPT', '', '', 'C.A. Séjour', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation par Forme d''activité et UF', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +QUELMONTANT=2 & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CA_RUBMED_MT_CPT||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Séjour||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 6, 'CTI_CA_T2A_CPT', '', '', 'C.A. Soins', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation par Forme d''activité et UF', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +QUELMONTANT=2 & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CA_T2A_CPT||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Soins||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 19, 'CTI_CCAACTCOMPTA_C', '', '', 'C.A. Total Activité Comptable', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', '', '', '', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CCAACTCOMPTA_C||||||||||||||||', '*CALC||||||||||||||||', 'C.A. Total Activité Comptable||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 20, 'CTI_CCAACTCOMPTA_SEJOUR_C', '', '', 'C.A. Séjours Activité comptable', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000104', 'Activite comptable par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +OPTION1=MNT & +_ONGLET_O2_VISIBLE=false & +_ONGLET_O3_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S01', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CCAACTCOMPTA_SEJOUR_C||||||||||||||||', '*CALC||||||||||||||||', 'C.A. Séjours Activité comptable||', '||', '||', '0||0', '0||0'), +('CTI_ESS_004', 21, 'CTI_CCAACTCOMPTA_SOINS_C', '', '', 'C.A. Soins Activité comptable', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000104', 'Activité comptable par Forme d''activité et UF', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +OPTION1=MNT & +_ONGLET_O2_VISIBLE=false & +_ONGLET_O3_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_1:S1', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CCAACTCOMPTA_SOINS_C||||||||||||||||', '*CALC||||||||||||||||', 'C.A. Soins Activité comptable||', '||', '||', '0||0', '0||0'), +('CTI_ESS_004', 17, 'CTI_CCAENCDER_C', '', '', 'En-cours du dernier mois', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000104', 'Ecarts d''estimation par Rubrique', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUCCLS04 & +GROUPBY_TAB=TREE & +GROUPBY_2=RUFCLS31 & +OPTION1=MNT', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CCAENCDER_C||||||||||||||||', 'EN_COURS||||||||||||||||', 'En-cours du dernier mois||', '||', '||', '0||0', '0||0'), +('CTI_ESS_004', 25, 'CTI_CCAENCDER_C', '', '', 'En-cours du dernier mois', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', '', '', '', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CCAENCDER_C||||||||||||||||', 'EN_COURS||||||||||||||||', 'En-cours du dernier mois||', '||', '||', '0||0', '0||0'), +('CTI_ESS_004', 15, 'CTI_CCAENCRECPRE_C', '', '', 'Report En-cours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000104', 'Activite comptable par Rubrique', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS31 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUF & +OPTION1=MNT & +_ONGLET_O2_VISIBLE=false & +_ONGLET_O3_VISIBLE=false', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CCAENCRECPRE_C||||||||||||||||', 'EN_COURS||||||||||||||||', 'Report En-cours||', '||', '||', '0||0', '0||0'), +('CTI_ESS_004', 18, 'CTI_CCAENCVAR_C', '', '', 'Variation En-cours', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', '', '', '', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CCAENCVAR_C||||||||||||||||', 'EN_COURS||||||||||||||||', 'Variation En-cours||', '||', '||', '0||0', '0||0'), +('CTI_ESS_004', 26, 'CTI_CDELSOLCA_C', '', '', 'D.M.R.', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', '', '', '', '1', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CDELSOLCA_C||||||||||||||||', '*CALC||||||||||||||||', 'D.M.R.||', '||', '||', '1||0', '0||0'), +('CTI_ESS_004', 12, 'CTI_CPC_MT_CPT', '', '', 'C.A. Chambres particulières', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation C.P. par Rubrique', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S11', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CPC_MT_CPT||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Chambres particulières||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 24, 'CTI_MTSOLCLI_C', '', '', 'Solde Compte client', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000022', 'Compte client par Tiers payant', 'PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=TTP & +GROUPBY_TAB=TAB & +GROUPBY_2=TPY & +QSD=0 & +QMC=0 & +QMR=0', '1', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTSOLCLI_C||||||||||||||||', 'CLIENTS_CLINIQUE||||||||||||||||', 'Solde Compte client||', '||', '||', '1||0', '0||0'), +('CTI_ESS_004', 4, 'CTI_MTVEN_C#4', '', '', 'C.A. Total', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation par Compte', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=CPT & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTVEN_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Total||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 16, 'CTI_MTVEN_C#4', '', '', 'C.A. Ventes', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', '', '', '', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTVEN_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Ventes||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 2, 'CTI_NSCPT_C', '', '', 'Séjours comptabilisés', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation par Forme d''activité et UF', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSCPT_C||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Séjours comptabilisés||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 9, 'CTI_PROTH_MT_CPT', '', '', 'C.A. Prothèses', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation Prothèses par Médecin', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S22', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_PROTH_MT_CPT||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Prothèses||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 11, 'CTI_SEH_MT_CPT', '', '', 'C.A. Forfaits SE', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation SEh par Médecin', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S03', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEH_MT_CPT||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Forfaits SE||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 1, 'CTI_SEP', '', '', 'Séjours', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Séjours||', '||', '||', '||', '||'), +('CTI_ESS_004', 3, 'CTI_SEP', '', '', 'Chiffre d''affaires comptabilisé', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires comptabilisé||', '||', '||', '||', '||'), +('CTI_ESS_004', 8, 'CTI_SEP', '', '', 'Chiffre d''affaires autres prestations', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Chiffre d''affaires autres prestations||', '||', '||', '||', '||'), +('CTI_ESS_004', 14, 'CTI_SEP', '', '', 'Comptabilisation et En-cours', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Comptabilisation et En-cours||', '||', '||', '||', '||'), +('CTI_ESS_004', 22, 'CTI_SEP', '', '', 'Délai Moyen de Règlement', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Délai Moyen de Règlement||', '||', '||', '||', '||'), +('CTI_ESS_004', 13, 'CTI_SUPHOT_CA_CPT', '', '', 'C.A. Suppléments hôteliers', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation Hotellerie par Rubrique', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S12', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SUPHOT_CA_CPT||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Suppléments hôteliers||', '||', '||', '1||0', '1||0'), +('CTI_ESS_004', 10, 'CTI_UCD_MT_CPT', '', '', 'C.A. Médicaments', '', 0, 22, 10, 12, '', 0, '', '', '0', '0', 'ACTI000018', 'Comptabilisation Médicaments par Médecin', 'QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S21', '1', '1', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_UCD_MT_CPT||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'C.A. Médicaments||', '||', '||', '1||0', '1||0'), +('CTI_ESS_006', 10, 'CTI_CA_FACT_VAL', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi par Médecin (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=MED & VIEWTAB = 1', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CA_FACT_VAL||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 9, 'CTI_CA_FAC_ETAB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi par Domaine et groupe d''activité (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=GHMCLS09 & GROUPBY_2 = GHMCLS07 & VIEWTAB=1', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CA_FAC_ETAB||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 13, 'CTI_CA_NON_EXP_ETAB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi par niveau de forme d''activité (Niveau 1) (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=FOACLS01 & VIEWTAB=3', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CA_NON_EXP_ETAB||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 16, 'CTI_CA_NON_SOL', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par mois (Cumul dernier mois)', 'ALIAS_PERIODE=CUM_LAST_MONTH& +GROUPBY=NUMEROMOIS & VIEWTAB=4', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CA_NON_SOL||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 5, 'CTI_CA_VAL_ETAB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délai par mois (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=NUMEROMOIS & VIEWTAB=2', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CA_VAL_ETAB||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 19, 'CTI_DELAIFAC', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par mois (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=NUMEROMOIS', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DELAIFAC||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 20, 'CTI_DELAISOL', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par médecin (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=MED', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DELAISOL||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 18, 'CTI_DEL_GROUPAGE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par mois (Cumul dernier mois)', 'ALIAS_PERIODE=CUM_LAST_MONTH& +GROUPBY=NUMEROMOIS', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DEL_GROUPAGE||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 7, 'CTI_NBSEJ_SOR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délai par UF (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=UFS&VIEWTAB = 1', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJ_SOR||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 8, 'CTI_NB_FACTURES', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par Forme d''activité et UF (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=FOA&GROUPBY_2=UFS & VIEWTAB = 1', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_FACTURES||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 3, 'CTI_NB_GP_NFAC', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par médecin (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=MED', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_GP_NFAC||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 2, 'CTI_NB_NGR_SOR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par mois (Cumul dernier jour)', 'ALIAS_PERIODE=CUM_NOW& +GROUPBY=NUMEROMOIS', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_NGR_SOR||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 4, 'CTI_NB_NONFAC', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par mois (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=NUMEROMOIS', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_NONFAC||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 12, 'CTI_NB_NON_EXP', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi par niveau de forme d''activité (Niveau 2) (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=FOACLS02 & VIEWTAB =3', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_NON_EXP||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 15, 'CTI_NB_NON_SOLD', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', 'ACTI000057', 'Suivi des délais par Tiers payant (Cumul dernière semaine)', 'ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=TPY & VIEWTAB = 4', '0', '0', '', '', '', '', '0', '0', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_NON_SOLD||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '0||0||||||||||||||', '0||0||||||||||||||'), +('CTI_ESS_006', 1, 'CTI_SEP', '', '', 'Reste a facturer', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Reste a facturer||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_006', 6, 'CTI_SEP', '', '', 'Facturation', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Facturation||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_006', 11, 'CTI_SEP', '', '', 'Expédition', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Expédition||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_006', 14, 'CTI_SEP', '', '', 'Solde', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Solde||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_ESS_006', 17, 'CTI_SEP', '', '', 'Délai de traitement', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Délai de traitement||', '||', '||', '||||||||||||||||', '||||||||||||||||'), +('CTI_EX1', 17, 'CTI_MTCOM_H#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTCOM_H#4||||||||||||||||', 'FACTURATION_HONORAIRE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 22, 'CTI_MTENC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTENC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 20, 'CTI_MTFAC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 16, 'CTI_MTVEN_C#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTVEN_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 24, 'CTI_MT_FAC_TOT#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MT_FAC_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 6, 'CTI_NBAMB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 3, 'CTI_NBENTDIR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENTDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 7, 'CTI_NBEXT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBEXT||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 5, 'CTI_NBJSN', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 8, 'CTI_NBSCE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSCE||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 2, 'CTI_NBSEJO', '', '', 'Nombre de séjours Période', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Nombre de séjours Période||', '||', '||', '||', '||'), +('CTI_EX1', 4, 'CTI_NBSORDIR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSORDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 13, 'CTI_NB_GROU#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_GROU#2||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 12, 'CTI_NB_NGROU', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_NGROU||||||||||||||||', 'SEJOURS||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 11, 'CTI_NB_SEJ_FAEN#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 23, 'CTI_NB_SEJ_FAEN#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 21, 'CTI_NB_SEJ_VAL#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 19, 'CTI_NSFAC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 15, 'CTI_NSFAC_CS#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX1', 1, 'CTI_SEP', '', '', 'Occupation', '', 0, 0, 10, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Occupation||', '||', '||', '||', '||'), +('CTI_EX1', 10, 'CTI_SEP', '', '', 'Etat des dossiers', '', 0, 0, 10, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Etat des dossiers||', '||', '||', '||', '||'), +('CTI_EX1', 14, 'CTI_SEP', '', '', 'Activité Etablissement Date de Vente', '', 0, 0, 10, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Etablissement Date de Vente||', '||', '||', '||', '||'), +('CTI_EX1', 18, 'CTI_SEP', '', '', 'Activité Clinique', '', 0, 0, 10, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Clinique||', '||', '||', '||', '||'), +('CTI_EX1', 9, 'CTI_TX_HOAM', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_HOAM||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 40, 'CTI_DMSR', '', '', '', '', 0, 0, 0, 0, 'normal', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSR||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 41, 'CTI_DMSTOT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSTOT||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 25, 'CTI_NB2_JSN', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB2_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 30, 'CTI_NB2_JSN', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB2_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 26, 'CTI_NB5_JSN', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB5_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 3, 'CTI_NBAMB', '', '', '', '', 0, 0, 0, 0, 'normal', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 11, 'CTI_NBAMB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 24, 'CTI_NBAMB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 36, 'CTI_NBAMB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 27, 'CTI_NBCHPO', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBCHPO||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 2, 'CTI_NBENTDIR', '', '', '', '', 0, 0, 0, 0, 'normal', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENTDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 6, 'CTI_NBENT_SA', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENT_SA||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 7, 'CTI_NBENT_SAE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENT_SAE||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 8, 'CTI_NBENT_SAES', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENT_SAES||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 4, 'CTI_NBEXT', '', '', '', '', 0, 0, 0, 0, 'normal', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBEXT||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 12, 'CTI_NBEXT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBEXT||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 23, 'CTI_NBJSN', '', '', '', '', 0, 0, 0, 0, 'normal', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 33, 'CTI_NBJSN', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 31, 'CTI_NBPLACES', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBPLACES||||||||||||||||', 'PLACES||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 34, 'CTI_NBPLACES_H', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBPLACES_H||||||||||||||||', 'PLACES||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 5, 'CTI_NBSCE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSCE||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 13, 'CTI_NBSCE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSCE||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 22, 'CTI_NBSEJO', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 10, 'CTI_NBSORDIR', '', '', '', '', 0, 0, 0, 0, 'normal', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSORDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 14, 'CTI_NBSOR_SA', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSOR_SA||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 16, 'CTI_NBSOR_SAE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSOR_SAE||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 17, 'CTI_NBSOR_SAES', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSOR_SAES||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 20, 'CTI_NBURG', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBURG||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 19, 'CTI_NB_BEBE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_BEBE||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 15, 'CTI_RAT_AMB_END', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RAT_AMB_END||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 1, 'CTI_SEP', '', '', 'Entrées', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc33', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Entrées||', '||', '||', '||', '||'), +('CTI_EX2', 9, 'CTI_SEP', '', '', 'Sorties', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc33', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Sorties||', '||', '||', '||', '||'), +('CTI_EX2', 18, 'CTI_SEP', '', '', 'Compteurs Divers', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc33', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Compteurs Divers||', '||', '||', '||', '||'), +('CTI_EX2', 21, 'CTI_SEP', '', '', 'Journées', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc33', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Journées||', '||', '||', '||', '||'), +('CTI_EX2', 29, 'CTI_SEP', '', '', 'Taux d''occupation', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc33', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Taux d''occupation||', '||', '||', '||', '||'), +('CTI_EX2', 39, 'CTI_SEP', '', '', 'DMS', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc33', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'DMS||', '||', '||', '||', '||'), +('CTI_EX2', 28, 'CTI_TXCHP_NBJ', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TXCHP_NBJ||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 38, 'CTI_TX_AM', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_AM||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 35, 'CTI_TX_HO', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_HO||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX2', 32, 'CTI_TX_HOAM', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_HOAM||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 28, 'CTI_CAMFAC_CS', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAMFAC_CS||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 13, 'CTI_CAMFAC_DC', '', '', 'CA Moyen Facturé', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAMFAC_DC||||||||||||||||', '*CALC||||||||||||||||', 'CA Moyen Facturé||', '||', '||', '||', '||'), +('CTI_EX3', 14, 'CTI_MTCOM_H#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTCOM_H#4||||||||||||||||', 'FACTURATION_HONORAIRE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 16, 'CTI_MTC_CHDV_FAC', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTC_CHDV_FAC||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 30, 'CTI_MTENC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTENC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 19, 'CTI_MTFAC1_C#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC1_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 23, 'CTI_MTFAC2_C#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC2_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 27, 'CTI_MTFAC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 12, 'CTI_MTVEN_C#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTVEN_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 32, 'CTI_MT_FAC_TOT#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MT_FAC_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 6, 'CTI_NBAMB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 3, 'CTI_NBENTDIR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENTDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 7, 'CTI_NBEXT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBEXT||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 5, 'CTI_NBJSN', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 8, 'CTI_NBSCE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSCE||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 2, 'CTI_NBSEJO', '', '', 'Nombre de séjours Période', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Nombre de séjours Période||', '||', '||', '||', '||'), +('CTI_EX3', 4, 'CTI_NBSORDIR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSORDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 31, 'CTI_NB_SEJ_FAEN#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 29, 'CTI_NB_SEJ_VAL#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 18, 'CTI_NSFAC1_CS#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC1_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 22, 'CTI_NSFAC2_CS#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC2_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 26, 'CTI_NSFAC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 11, 'CTI_NSFAC_CS#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 20, 'CTI_RAT_AMB1_CAT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RAT_AMB1_CAT||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 24, 'CTI_RAT_AMB2_CAT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RAT_AMB2_CAT||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 15, 'CTI_RAT_CAH_CAL', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RAT_CAH_CAL||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX3', 1, 'CTI_SEP', '', '', 'Occupation', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Occupation||', '||', '||', '||', '||'), +('CTI_EX3', 10, 'CTI_SEP', '', '', 'Activité Etablissement Date de Vente', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Etablissement Date de Vente||', '||', '||', '||', '||'), +('CTI_EX3', 17, 'CTI_SEP', '', '', 'Activité Hospitalisés : Date de Vente', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc33', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Hospitalisés : Date de Vente||', '||', '||', '||', '||'), +('CTI_EX3', 21, 'CTI_SEP', '', '', 'Activité Ambulatoire : Date de Vente', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc33', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Ambulatoire : Date de Vente||', '||', '||', '||', '||'), +('CTI_EX3', 25, 'CTI_SEP', '', '', 'Activité Clinique Facturée et Valorisée : Date de Sortie', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Clinique Facturée et Valorisée : Date de Sortie||', '||', '||', '||', '||'), +('CTI_EX3', 9, 'CTI_TX_HOAM', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_HOAM||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 47, 'CTI_CAMFAC1_DC', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAMFAC1_DC||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 51, 'CTI_CAMFAC2_DC', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAMFAC2_DC||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 55, 'CTI_CAMFAC5_DC', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAMFAC5_DC||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 39, 'CTI_CAMFAC_CS', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAMFAC_CS||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 19, 'CTI_CAMFAC_DC', '', '', 'CA Moyen Facturé', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_CAMFAC_DC||||||||||||||||', '*CALC||||||||||||||||', 'CA Moyen Facturé||', '||', '||', '||', '||'), +('CTI_EX4', 56, 'CTI_DIA_MT_FAC#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DIA_MT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 14, 'CTI_DMSR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSR||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 15, 'CTI_DMSTOT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_DMSTOT||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 21, 'CTI_MTCOM_H#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTCOM_H#4||||||||||||||||', 'FACTURATION_HONORAIRE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 23, 'CTI_MTC_CHDV_FAC', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTC_CHDV_FAC||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 41, 'CTI_MTENC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTENC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 46, 'CTI_MTFAC1_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC1_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 26, 'CTI_MTFAC1_C#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC1_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 50, 'CTI_MTFAC2_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC2_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 30, 'CTI_MTFAC2_C#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC2_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 54, 'CTI_MTFAC5_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC5_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 34, 'CTI_MTFAC5_C#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC5_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 38, 'CTI_MTFAC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 18, 'CTI_MTVEN_C#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MTVEN_C#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 43, 'CTI_MT_FAC_TOT#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_MT_FAC_TOT#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 10, 'CTI_NB2_JSN', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB2_JSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 6, 'CTI_NBAMB', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBAMB||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 3, 'CTI_NBENTDIR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBENTDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 7, 'CTI_NBEXT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBEXT||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 5, 'CTI_NBJSN', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBJSN||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 11, 'CTI_NBPLACES', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBPLACES||||||||||||||||', 'PLACES||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 8, 'CTI_NBSCE', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSCE||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 2, 'CTI_NBSEJO', '', '', 'Nombre de séjours Période', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSEJO||||||||||||||||', 'OCCUPATION||||||||||||||||', 'Nombre de séjours Période||', '||', '||', '||', '||'), +('CTI_EX4', 4, 'CTI_NBSORDIR', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NBSORDIR||||||||||||||||', 'OCCUPATION||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 42, 'CTI_NB_SEJ_FAEN#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_FAEN#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 40, 'CTI_NB_SEJ_VAL#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NB_SEJ_VAL#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 45, 'CTI_NSFAC1_CS#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC1_CS#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 25, 'CTI_NSFAC1_CS#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC1_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 49, 'CTI_NSFAC2_CS#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC2_CS#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 29, 'CTI_NSFAC2_CS#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC2_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 53, 'CTI_NSFAC5_CS#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC5_CS#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 33, 'CTI_NSFAC5_CS#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC5_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 37, 'CTI_NSFAC_C#2', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_C#2||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 17, 'CTI_NSFAC_CS#4', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_NSFAC_CS#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 27, 'CTI_RAT_AMB1_CAT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RAT_AMB1_CAT||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 31, 'CTI_RAT_AMB2_CAT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RAT_AMB2_CAT||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 35, 'CTI_RAT_AMB5_CAT', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RAT_AMB5_CAT||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 22, 'CTI_RAT_CAH_CAL', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RAT_CAH_CAL||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_EX4', 20, 'CTI_RUBMED_MT_FAC#4', '', 'Montant CA (Hors Pdts refac.)', 'Montant CA (Hors Produits refacturables)', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_RUBMED_MT_FAC#4||||||||||||||||', 'FACTURATION_CLINIQUE||||||||||||||||', 'Montant CA (Hors Produits refacturables)||', '||', '||', '||', '||'), +('CTI_EX4', 1, 'CTI_SEP', '', '', 'Occupation.', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Occupation.||', '||', '||', '||', '||'), +('CTI_EX4', 9, 'CTI_SEP', '', '', 'Taux d''occupation', '', 0, 0, 10, 10, 'bold', 0, '', '0xffff66', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Taux d''occupation||', '||', '||', '||', '||'), +('CTI_EX4', 13, 'CTI_SEP', '', '', 'DMS', '', 0, 0, 10, 10, 'bold', 0, '', '0xffff66', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'DMS||', '||', '||', '||', '||'), +('CTI_EX4', 16, 'CTI_SEP', '', '', 'Activité Etablissement Date de Vente', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Etablissement Date de Vente||', '||', '||', '||', '||'), +('CTI_EX4', 24, 'CTI_SEP', '', '', 'Activité Hospitalisés : Date de Vente', '', 0, 0, 10, 10, 'bold', 0, '', '0xffff66', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Hospitalisés : Date de Vente||', '||', '||', '||', '||'), +('CTI_EX4', 28, 'CTI_SEP', '', '', 'Activité Ambulatoire : Date de Vente', '', 0, 0, 10, 10, 'bold', 0, '', '0xffff66', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Ambulatoire : Date de Vente||', '||', '||', '||', '||'), +('CTI_EX4', 32, 'CTI_SEP', '', '', 'Activité Séances : Date de vente', '', 0, 0, 10, 10, 'bold', 0, '', '0xffff66', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Séances : Date de vente||', '||', '||', '||', '||'), +('CTI_EX4', 36, 'CTI_SEP', '', '', 'Activité Clinique Facturée et Valorisée : Date de Sortie.', '', 0, 0, 0, 14, 'bold', 0, '', '0xffcc00', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Clinique Facturée et Valorisée : Date de Sortie.||', '||', '||', '||', '||'), +('CTI_EX4', 44, 'CTI_SEP', '', '', 'Activité Hospitalisés : Date de Sortie', '', 0, 0, 10, 10, 'bold', 0, '', '0xffff66', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Hospitalisés : Date de Sortie||', '||', '||', '||', '||'), +('CTI_EX4', 48, 'CTI_SEP', '', '', 'Activité Ambulatoire : Date de sortie', '', 0, 0, 10, 10, 'bold', 0, '', '0xffff66', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Activité Ambulatoire : Date de sortie||', '||', '||', '||', '||'), +('CTI_EX4', 52, 'CTI_SEP', '', '', 'Actvité Séances : Date de sortie', '', 0, 0, 10, 10, 'bold', 0, '', '0xffff66', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Actvité Séances : Date de sortie||', '||', '||', '||', '||'), +('CTI_EX4', 12, 'CTI_TX_HOAM', '', '', '', '', 0, 0, 0, 0, '', 0, '', '', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_TX_HOAM||||||||||||||||', '*CALC||||||||||||||||', '||', '||', '||', '||', '||'), +('CTI_PF_AGG', 1, 'CTI_SEP', '', '', 'Portfolio CTI', '', 0, 26, 0, 14, 'bold', 2, '0xc0392b', '0xcccccc', '0', '0', '', '', '', ' ', ' ', '', '', '', '', '', '', '0', '', '', '', '||||||', '0', '', '', '', 'CTI_SEP||||||||||||||||', 'SEP||||||||||||||||', 'Portfolio CTI||', '||', '||', '||', '||') +; + +-- 3/3 : Màj de la table iCTI +-- Sauvegarder les données sources pour rejouer le spécifique +SELECT base.cti_verify_table_encoding('activite','t_rapports_rubriques') +; +DROP TABLE IF EXISTS w_specific_rapports_rubriques ; +CREATE TEMP TABLE w_specific_rapports_rubriques AS +SELECT t_rapports_rubriques.* +FROM activite.t_rapports_rubriques +JOIN activite.t_rapports ON t_rapports_rubriques.rapport_id = t_rapports.oid +WHERE t_rapports.is_essentiel = '1' +; + +ALTER TABLE w_dbsetup ADD COLUMN to_rapport_id bigint DEFAULT 0; +UPDATE w_dbsetup SET to_rapport_id = t_rapports.oid FROM activite.t_rapports WHERE rapport_code = t_rapports.code; + +ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_id bigint DEFAULT 0; +UPDATE w_dbsetup SET to_indicateur_id = t_indicateurs.oid FROM activite.t_indicateurs WHERE indicateur_code = t_indicateurs.code AND t_indicateurs.code <> ''; + +ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_associe_id bigint DEFAULT 0; +UPDATE w_dbsetup SET to_indicateur_associe_id = t_indicateurs.oid FROM activite.t_indicateurs WHERE indicateur_associe_code = t_indicateurs.code AND t_indicateurs.code <> ''; + +ALTER TABLE w_dbsetup ADD COLUMN to_serie_indicateur_code text[]; +UPDATE w_dbsetup SET to_serie_indicateur_code = string_to_array(serie_indicateur_code,'||'); + +ALTER TABLE w_dbsetup ADD COLUMN to_serie_indicateur_id bigint[]; +UPDATE w_dbsetup SET to_serie_indicateur_id[1] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[1] = t_indicateurs.code AND t_indicateurs.code <> ''; +UPDATE w_dbsetup SET to_serie_indicateur_id[2] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[2] = t_indicateurs.code AND t_indicateurs.code <> ''; +UPDATE w_dbsetup SET to_serie_indicateur_id[3] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[3] = t_indicateurs.code AND t_indicateurs.code <> ''; +UPDATE w_dbsetup SET to_serie_indicateur_id[4] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[4] = t_indicateurs.code AND t_indicateurs.code <> ''; +UPDATE w_dbsetup SET to_serie_indicateur_id[5] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[5] = t_indicateurs.code AND t_indicateurs.code <> ''; +UPDATE w_dbsetup SET to_serie_indicateur_id[6] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[6] = t_indicateurs.code AND t_indicateurs.code <> ''; +UPDATE w_dbsetup SET to_serie_indicateur_id[7] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[7] = t_indicateurs.code AND t_indicateurs.code <> ''; +UPDATE w_dbsetup SET to_serie_indicateur_id[8] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[8] = t_indicateurs.code AND t_indicateurs.code <> ''; +UPDATE w_dbsetup SET to_serie_indicateur_id[9] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[9] = t_indicateurs.code AND t_indicateurs.code <> ''; + + +ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_condition_external_code text[]; +UPDATE w_dbsetup SET to_indicateur_condition_external_code = string_to_array(indicateur_condition_external_code,'||'); + + +ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_condition_id bigint[]; +UPDATE w_dbsetup SET to_indicateur_condition_id[1] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[1] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; +UPDATE w_dbsetup SET to_indicateur_condition_id[2] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[2] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; +UPDATE w_dbsetup SET to_indicateur_condition_id[3] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[3] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; +UPDATE w_dbsetup SET to_indicateur_condition_id[4] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[4] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; +UPDATE w_dbsetup SET to_indicateur_condition_id[5] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[5] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; +UPDATE w_dbsetup SET to_indicateur_condition_id[6] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[6] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; +UPDATE w_dbsetup SET to_indicateur_condition_id[7] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[7] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; +UPDATE w_dbsetup SET to_indicateur_condition_id[8] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[8] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; +UPDATE w_dbsetup SET to_indicateur_condition_id[9] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[9] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + + +-- Installer les données CTI +DELETE FROM activite.t_rapports_rubriques +WHERE 1=1 + AND rapport_id IN (SELECT to_rapport_id FROM w_dbsetup) +; + +INSERT INTO activite.t_rapports_rubriques( + rapport_id, + numero_rubrique, + indicateur_id, + indicateur_associe_id, + entete, + entete_etendue, + output_format, + width, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + base_nationale, + base_nationale_qualifiee, + viewlink, + viewlink_label, + viewlink_param, + picto_enabled, + positif_is_good, + description, + description_2, + entete_etendue_2, + output_format_2, + picto_enabled_2, + positif_is_good_2, + is_hide, + specific_viewlink, + specific_viewlink_label, + specific_viewlink_param, + indicateur_condition_id, + erase_rapport_indicateur_condition, + calc_formula, + hide_on_zero_field, + field_tag, + serie_indicateur_id, + serie_entete_etendue, + serie_description, + serie_output_format, + serie_picto_enabled, + serie_positif_is_good + ) +SELECT + to_rapport_id, + numero_rubrique, + to_indicateur_id, + to_indicateur_associe_id, + entete, + entete_etendue, + output_format, + width, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + base_nationale, + base_nationale_qualifiee, + viewlink, + viewlink_label, + viewlink_param, + picto_enabled, + positif_is_good, + description, + description_2, + entete_etendue_2, + output_format_2, + picto_enabled_2, + positif_is_good_2, + is_hide, + specific_viewlink, + specific_viewlink_label, + specific_viewlink_param, + to_indicateur_condition_id, + erase_rapport_indicateur_condition, + calc_formula, + hide_on_zero_field, + field_tag, + to_serie_indicateur_id, + string_to_array(serie_entete_etendue,'||'), + string_to_array(serie_description,'||'), + string_to_array(serie_output_format,'||'), + string_to_array(serie_picto_enabled,'||'), + string_to_array(serie_positif_is_good,'||') +FROM w_dbsetup +WHERE to_rapport_id <> 0 AND to_indicateur_id <> 0 +; + +-- Rejouer le spécifique +UPDATE activite.t_rapports_rubriques SET + is_hide = w_specific_rapports_rubriques.is_hide, + specific_viewlink = CASE WHEN w_specific_rapports_rubriques.specific_viewlink IN ('1', '2') THEN '' ELSE w_specific_rapports_rubriques.specific_viewlink END, + specific_viewlink_label = w_specific_rapports_rubriques.specific_viewlink_label, + specific_viewlink_param = w_specific_rapports_rubriques.specific_viewlink_param +FROM w_specific_rapports_rubriques +WHERE w_specific_rapports_rubriques.rapport_id = t_rapports_rubriques.rapport_id AND + w_specific_rapports_rubriques.indicateur_id = t_rapports_rubriques.indicateur_id AND + w_specific_rapports_rubriques.entete_etendue = t_rapports_rubriques.entete_etendue AND + ( + w_specific_rapports_rubriques.is_hide = '1' OR + w_specific_rapports_rubriques.specific_viewlink <> '' OR + w_specific_rapports_rubriques.specific_viewlink_label <> '' OR + w_specific_rapports_rubriques.specific_viewlink_param <> '' + ) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_severites_cti.SQL b/db/data/dbdata_activite_t_severites_cti.SQL new file mode 100644 index 0000000..10d471d --- /dev/null +++ b/db/data/dbdata_activite_t_severites_cti.SQL @@ -0,0 +1,52 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + severite_id as keepoid, + severite_code, + severite_texte + FROM activite.t_severites_cti + ORDER BY severite_code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + keepoid, + severite_code, + severite_texte +) +VALUES +('0', '**', 'Non renseignee'), +('1', '1', 'Sévérité 1'), +('8', '8', 'Non PMSI'), +('2', 'ABCDE', 'Sévérité ABCDE'), +('3', 'J', 'Sévérité J'), +('4', 'S', 'séances'), +('5', 'T', 'Sévérité T'), +('6', 'Z', 'Sévérité Z'), +('7', 's', 'DS > 2 nuits') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_severites_cti SET + severite_code = w_dbsetup.severite_code, + severite_texte = w_dbsetup.severite_code +FROM w_dbsetup +WHERE w_dbsetup.keepoid = t_severites_cti.severite_id AND w_dbsetup.keepoid = 0; + +UPDATE activite.t_severites_cti SET + severite_texte = w_dbsetup.severite_texte +FROM w_dbsetup +WHERE 1=1 + AND activite.t_severites_cti.severite_code = w_dbsetup.severite_code + AND activite.t_severites_cti.severite_texte IS DISTINCT FROM w_dbsetup.severite_texte +; + +INSERT INTO activite.t_severites_cti(severite_id, severite_code, severite_texte) + SELECT keepoid, severite_code, severite_texte + FROM w_dbsetup + WHERE 1=1 + AND keepoid NOT IN (SELECT severite_id FROM activite.t_severites_cti) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_traitement_epmsi.SQL b/db/data/dbdata_activite_t_traitement_epmsi.SQL new file mode 100644 index 0000000..d1f04db --- /dev/null +++ b/db/data/dbdata_activite_t_traitement_epmsi.SQL @@ -0,0 +1,62 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + oid as keepoid, + code, + texte + FROM activite.t_traitement_epmsi + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + keepoid, + code, + texte +) +VALUES +(0, '**', 'Non renseigné'), +(41, 'EXHAD', 'PMSI HAD Transmis'), +(11, 'EXMCO', 'PMSI MCO Transmis'), +(31, 'EXPSY', 'PMSI PSY Transmis'), +(21, 'EXSSR', 'PMSI SSR Transmis'), +(5, 'HPMSI', 'HORS PMSI'), +(40, 'NEXHAD', 'PMSI HAD Non Transmis'), +(10, 'NEXMCO', 'PMSI MCO Non Transmis'), +(30, 'NEXPSY', 'PMSI PSY Non Transmis'), +(20, 'NEXSSR', 'PMSI SSR Non Transmis') +; + +-- 3/3 : Màj de la table iCTI +UPDATE activite.t_traitement_epmsi SET + code = w_dbsetup.code, + texte = w_dbsetup.texte +FROM w_dbsetup +WHERE w_dbsetup.keepoid = t_traitement_epmsi.oid AND w_dbsetup.keepoid = 0; + +UPDATE activite.t_traitement_epmsi SET + texte = w_dbsetup.texte +FROM w_dbsetup +WHERE 1=1 + AND activite.t_traitement_epmsi.code = w_dbsetup.code + AND activite.t_traitement_epmsi.texte IS DISTINCT FROM w_dbsetup.texte +; + +INSERT INTO activite.t_traitement_epmsi(oid, code, texte) + SELECT keepoid, code, texte + FROM w_dbsetup + WHERE 1=1 + AND keepoid = 0 + AND keepoid NOT IN (SELECT oid FROM activite.t_traitement_epmsi) +; + +INSERT INTO activite.t_traitement_epmsi(oid,code,texte) + SELECT keepoid, code, texte + FROM w_dbsetup + WHERE 1=1 + AND keepoid <> 0 + AND code NOT IN (SELECT code FROM activite.t_traitement_epmsi) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_type_hospi_pmsi.SQL b/db/data/dbdata_activite_t_type_hospi_pmsi.SQL new file mode 100644 index 0000000..0ddf97e --- /dev/null +++ b/db/data/dbdata_activite_t_type_hospi_pmsi.SQL @@ -0,0 +1,57 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid, + code, + texte + FROM activite.t_type_hospi_pmsi + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte +) +VALUES +(1, '11', 'MCO hospitalisés'), +(1, '12', 'MCO Ambulatoires'), +(1, '15', 'MCO Séances'), +(1, '21', 'SSR hospitalisation complète'), +(1, '22', 'SSR hospitalisation partiel'), +(1, '24', 'SSR Autres'), +(1, '30', 'Externes'), +(1, '31', 'PSY hospitalisation complète'), +(1, '32', 'PSY hospitalisation partiel'), +(1, '41', 'HAD') +; + +-- 3/3 : Màj de la table iCTI +UPDATE w_dbsetup SET + oid = w_dbsetup.code::bigint; + +UPDATE activite.t_type_hospi_pmsi SET + oid = w_dbsetup.oid, + code = w_dbsetup.code, + texte = w_dbsetup.texte +FROM w_dbsetup +WHERE w_dbsetup.oid = t_type_hospi_pmsi.oid AND w_dbsetup.oid = 0; + +UPDATE activite.t_type_hospi_pmsi SET + texte = w_dbsetup.texte +FROM w_dbsetup +WHERE 1=1 + AND activite.t_type_hospi_pmsi.code = w_dbsetup.code + AND activite.t_type_hospi_pmsi.texte IS DISTINCT FROM w_dbsetup.texte +; + +INSERT INTO activite.t_type_hospi_pmsi(oid,code,texte) + SELECT oid, code, texte + FROM w_dbsetup + WHERE 1=1 + AND oid NOT IN (SELECT oid FROM activite.t_type_hospi_pmsi) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_type_sejour.SQL b/db/data/dbdata_activite_t_type_sejour.SQL new file mode 100644 index 0000000..a44c7b5 --- /dev/null +++ b/db/data/dbdata_activite_t_type_sejour.SQL @@ -0,0 +1,53 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid, + code, + texte + FROM activite.t_type_sejour + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte +) +VALUES +(1, '0', 'Non renseigné'), +(1, '1', 'Hospitalisé'), +(1, '2', 'Ambulatoires'), +(1, '3', 'Externes'), +(1, '5', 'Séances'), +(1, '9', 'Fictifs') +; + +-- 3/3 : Màj de la table iCTI +UPDATE w_dbsetup SET + oid = w_dbsetup.code::bigint; + +UPDATE activite.t_type_sejour SET + oid = w_dbsetup.oid, + code = w_dbsetup.code, + texte = w_dbsetup.texte +FROM w_dbsetup +WHERE w_dbsetup.oid = t_type_sejour.oid AND w_dbsetup.oid = 0; + +UPDATE activite.t_type_sejour SET + texte = w_dbsetup.texte +FROM w_dbsetup +WHERE 1=1 + AND activite.t_type_sejour.code = w_dbsetup.code + AND activite.t_type_sejour.texte IS DISTINCT FROM w_dbsetup.texte +; + +INSERT INTO activite.t_type_sejour(oid,code,texte) + SELECT oid, code, texte + FROM w_dbsetup + WHERE 1=1 + AND oid NOT IN (SELECT oid FROM activite.t_type_sejour) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_types_gmt.SQL b/db/data/dbdata_activite_t_types_gmt.SQL new file mode 100644 index 0000000..e4e4f11 --- /dev/null +++ b/db/data/dbdata_activite_t_types_gmt.SQL @@ -0,0 +1,37 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + t_types_gmt.code, + t_types_gmt.label, + t_types_gmt.description + FROM + activite.t_types_gmt + ORDER BY code LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + code, + label, + description +) +VALUES +('hc_forfaitisable', 'GMT forfaitisable (Hospitalisation complète)', 'Au moins 50% des séjours d''un même GME (Groupe Médico-Économique) se répartissent sur une période continue de 3 semaines.'), +('hc_non_forfaitisable', 'GMT non forfaitisable (Hospitalisation complète)', 'Le GME ne respecte pas la règle de la forfaitisation (voir description du type_gmt ''hc_forfaitisable'').'), +('hc_sans_zf', 'GMT sans zone forfaitaire (Hospitalisation Complète) ', 'GMT où DZF = FZF = 7 (GMT en 7XXX des séjours en HC post 90 jours, en 8XXX des séjours < 8j avec transfert, décès ou mutation) ou DZF = FZF = 90 (GMT pédiatrie ou soins palliatifs)'), +('hp_hebdomadaire', 'GMT hebdomadaire hospitalisation partielle', 'GMT récupéré des RHA des séjours en hospitalisation partielle.') +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_types_gmt(code, label, description) + SELECT + w_dbsetup.code, + w_dbsetup.label, + w_dbsetup.description + FROM + w_dbsetup + WHERE w_dbsetup.code NOT IN (SELECT code from activite.t_types_gmt) +; \ No newline at end of file diff --git a/db/data/dbdata_activite_t_vue_parametre.SQL b/db/data/dbdata_activite_t_vue_parametre.SQL new file mode 100644 index 0000000..2d10664 --- /dev/null +++ b/db/data/dbdata_activite_t_vue_parametre.SQL @@ -0,0 +1,77 @@ +-- 1/3 : Création de la table temporaire +DROP TABLE IF EXISTS w_dbsetup +; + +CREATE TEMP TABLE w_dbsetup AS + SELECT + CASE WHEN oid = 0 THEN oid ELSE 1 END AS oid, + code, + texte, + array_to_string(data_code, '@') as data_code, + array_to_string(data_entete, '@') as data_entete, + array_to_string(data_format, '@') as data_format, + array_to_string(data_description, '@') as data_description, + position_ratio, + rang + FROM activite.t_vue_parametre + ORDER BY 1 LIMIT 0 +; + +-- 2/3 : Peuplement de la table temporaire +INSERT INTO w_dbsetup( + oid, + code, + texte, + data_code, + data_entete, + data_format, + data_description, + position_ratio, + rang +) +VALUES +(1, 'L_DATA_101', 'CTI : Séjours - C.A Total', 'FAVNBS@MTFACENC@MMTFACENC@0@0@0@0@0@0@0@0@0@0@0@0', 'Séjours total@C.A total@C.A moyen total', '#@#E@#E', 'Séjours facturés et valorisés@C.A facturé et valorisé@C.A Moyen Facturé et valorisé@0@0@0@0@0@0@0@0@0@0@0@0', '000000000000000', 0), +(1, 'L_DATA_1', 'CTI : EMC - C.A Total ', 'FAVEMC@MTFACENC@MMFPVEMC@0@0@0@0@0@0@0@0@0@0@0@0', 'EMC total@C.A total@C.A moyen total EMC', '#@#E@#E', 'Equivalent Malade Complet Facturé ou Valorisé
Calculé d''après l''occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@0@0@0@0@0@0@0@0@0@0@0@0', '000000000000000', 0), +(1, 'L_DATA_2', 'CTI : EMC - C.A Total - Journées', 'FAVEMC@MTFACENC@MMFPVEMC@FAVNBJ@0@0@0@0@0@0@0@0@0@0@0', 'EMC total@C.A total@C.A moyen total EMC@Nombre journées total', '#@#E@#E@#', 'Equivalent Malade Complet Facturé ou Valorisé
Calculé d''après l''occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d''après l''occupation des dossiers facturés ou valorisés sur la base de
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@0@0@0@0@0@0@0@0@0@0@0', '000000000000000', 0), +(1, 'L_DATA_3', 'CTI : EMC - C.A Total - Journées - C.A ( HC & HJ )', 'FAVEMC@MTFACENC@MMFPVEMC@FAVNBJ@FAVNBEMCHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@0@0@0@0@0', 'EMC total@C.A total@C.A moyen total EMC@Nombre journées total@Nombre EMC HC@C.A total HC@C.A moyen total HC@Séjours HJ@C.A total HJ@C.A moyen total HJ@0@0@0@0@0', '#@#E@#E@#@#@#E@#E@#@#E@#E', 'Equivalent Malade Complet Facturé ou Valorisé
Calculé d''après l''occupation des dossiers facturés ou Valorisés sur la base de
- + 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- + 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- + 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d''après l''occupation des dossiers facturés ou valorisés sur la base de
- +Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- + Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- + Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@Nombre EMC en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation complète HC@CA Moyen EMC facturé et valorisé en Hospitalisation complète HC@Nombre de séjours en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation de jour HJ@CA moyen facturé et valorisé en Hospitalisation de jour HJ@0@0@0@0@0', '000000000000000', 0), +(1, 'L_DATA_3_OCC', 'CTI : Facturation : Nombre Patients/ Séjour/EMC - Sorties factuées - Journées facturées', 'NBP@NSEJ@EMC@NSFAC@NSNFAC@NJNS@JRNSORFAC@NJNAS@JRNSORHONFAC@0@0@0@0@0@0', 'Nombre patients@Nombre séjours@EMC@Sor fac@Sor non fac@Journées sortis hospi@Journées fac@Jou+A+S@Jou+A+S fac', '#@#@#@#@#@#j@#j@#j@#j', 'Nombre patients@Nombre séjours@Equivalent malade complet@Nombre sorties facturées@Nombre sorties non facturées@Durée séjours sortis (hospitalisés)@Nombre journées hospitalisés facturées@Nombre journées + ambulatoires + séances (hospitalisation)@Nombre journées d''hospitalisation facturées', '000000000000000', 3), +(1, 'L_DATA_4', 'CTI : EMC - C.A Total - Journées - C.A ( HC & HJ & Autres)', 'FAVEMC@MTFACENC@MMFPVEMC@FAVNBJ@FAVNBEMCHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@FAVNBSHA@FAVMTTHA@FAVCAMAU@0@0', 'EMC total@C.A total@C.A moyen total EMC@Nombre journées total@Nombre EMC HC@C.A total HC@C.A moyen total HC@Séjours HJ@C.A total HJ@C.A moyen total HJ@Séjours AUTRES@C.A total Autres@C.A moyen total Autres@0@0', '#@#E@#E@#@#@#E@#E@#@#E@#E@#@#E@#E', 'Equivalent Malade Complet Facturé ou Valorisé
Calculé d''après l''occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d''après l''occupation des dossiers facturés ou valorisés sur la base de
- +Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- + Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- + Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@Nombre EMC en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation complète HC@CA Moyen EMC facturé et valorisé en Hospitalisation complète HC@Nombre de séjours en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation de jour HJ@CA moyen facturé et valorisé en Hospitalisation de jour HJ@Nombre de séjours en Hospitalisation autre que HC ou HJ@Chiffre d''affaires par Séjour en Hospitalisation autre que HC ou HJ
Hospitalisation autre que HC ou HJ = Types séjour CTI Externes@Chiffre d''affaires Moyen par Séjour en Hospitalisation autre que HC ou HJ
Hospitalisation autre que HC ou HJ = Types séjour CTI Externes@0@0', '000000000000000', 0), +(1, 'L_DATA_5', 'CTI : EMC - C.A Total - Journées - C.A ( HC & HJ & Autres) - DMS', 'FAVEMC@MTFACENC@MMFPVEMC@FAVNBJ@FAVNBEMCHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@FAVNBSHA@FAVMTTHA@FAVCAMAU@FAVDMS@0', 'EMC total@C.A total@C.A moyen total EMC@Nb journées total@Nombre EMC HC@C.A total HC@C.A moyen total HC@Séjours HJ@C.A total HJ@C.A moyen total HJ@Séjours AUTRES@C.A total Autres@C.A moyen total Autres@DMS hospitalisés', '#@#E@#E@#@#@#E@#E@#@#E@#E@#@#E@#E@#,00j', 'Equivalent Malade Complet Facturé ou Valorisé
Calculé d''après l''occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d''après l''occupation des dossiers comptabilisés ou valorisés sur la base de
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@Nombre EMC en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation complète HC@CA Moyen EMC facturé et valorisé en Hospitalisation complète HC@Nombre de séjours en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation de jour HJ@CA moyen facturé et valorisé en Hospitalisation de jour HJ@Nombre de séjours en Hospitalisation autre que HC ou HJ@Chiffre d''affaires par Séjour en Hospitalisation autre que HC ou HJ
Hospitalisation autre que HC ou HJ = Types séjour CTI Externes@Chiffre d''affaires Moyen par Séjour en Hospitalisation autre que HC ou HJ
Hospitalisation autre que HC ou HJ = Types séjour CTI Externes@Rapport entre le nombre de journées de présence des séjours hospitalisés sortis et le nombre de séjours hospitalisés sortis@0', '000000000000000', 0), +(1, 'L_DATA_6', 'CTI : EMC - C.A Total - Journées - Tiers payant', 'EMC@MTFAC@MMTFAC@FACNBJ@NBSEJ@FACNS1@MTFAC1@FACNS2@MTFAC2@FACNS0@MTFAC0@0@0@0@0@0', 'EMC Facturé@C.A facturé@C.A moyen facturé@Nb journées facturée@Séjours Facturé@Séjours AMO@C.A facturé AMO@Séjours AMC@C.A facturé AMC@Séjours Patient@C.A facturé Pat', '#@#E@#E@#@#@#@#E@#@#E@#@#E@#@#E', 'Nombre EMC facturés@C.A facturé@C.A moyen facturé@Nb journées facturée@Séjours Facturé@Séjours AMO@C.A facturé AMO@Séjours AMC@C.A facturé AMC@Séjours Patient@C.A facturé Patient', '000000000000000', 0), +(1, 'L_DATA_7', 'CTI : EMC ( Total - HC - HJ - Autres) - C.A ( Total - HC - HJ - Autres)', 'FAVEMC@MTFACENC@FAVNBEMCHC@FAVNBSHJ@FAVNBSHA@MTENC@FAVMTTHC@FAVMTTHJ@FAVMTTHA@0@0@0@0@0@0@0', 'EMC total@C.A Total@Nb EMC HC@Séjours HJ@Séjours Autres@Dont valorisé@C.A total HC@C.A total HJ@C.A total Autres', '#@#E@#@#@#@#E@#E@#E@#E', 'Equivalent Malade Complet Facturé ou Valorisé
Calculé d''après l''occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@C.A facturé et valorisé@Nombre EMC en Hospitalisation complète HC@Nombre de séjours en Hospitalisation de jour HJ@Nombre de séjours en Hospitalisation autre que HC ou HJ@C.A valorisé@C.A facturé et valorisé en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation autre que HC ou HJ@0@0@0@0@0@0', '000000000000000', 0), +(1, 'L_DATA_8', 'CTI : EMC - C.A : Facturé - valorisé - total ( HJ - HC ) - C.A Autres', 'FAVEMC@MTFACENC@FACMTTHJ@FACMTTHC@VALMTHJT@VALMTHCT@FAVMTTHJ@FAVMTTHC@FAVMTTHA@0@0@0@0@0@0@0', 'EMC total@C.A total@CA facturé HJ@CA facturé HC@C.A Val HJ total@C.A Val HC total@C.A total HJ@C.A total HC@C.A total Autres', '#@#E@#E@#E@#E@#E@#E@#E@#E', 'Equivalent Malade Complet Facturé ou Valorisé
Calculé d''après l''occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@C.A facturé et valorisé@C.A facturé en Hospitalisation de jour HJ@C.A facturé en Hospitalisation complète HC@C.A total valorisé en Hospitalisation de jour HJ ( groupés + Non groupés )@C.A total valorisé en Hospitalisation complète HC ( groupés + Non groupés )@C.A facturé et valorisé en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation autre que HC ou HJ@0@0@0@0@0@0@0', '000000000000000', 0), +(1, 'L_DATA_102', 'x', 'FAVNBS@MTFACENC@MMTFACENC@FAVNBJ@0@0@0@0@0@0@0@0@0@0@0', 'Séjours total@C.A total@C.A moyen total@Nombre journées total', '#@#E@#E@#', 'Séjours facturés et valorisés@C.A facturé et valorisé@C.A Moyen Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d''après l''occupation des dossiers facturés ou valorisés sur la base de
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n''est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d''activité ou date de sortie@0@0@0@0@0@0@0@0@0@0@0', '000000000000000', 0), +(1, 'L_DATA_103', 'CTI : Séjours - C.A Total - Journées - C.A ( HC & HJ )', 'FAVNBS@MTFACENC@MMTFACENC@FAVNBJ@FAVNBSHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@0@0@0@0@0', 'Séjours total@C.A total@C.A moyen total@Nombre journées total@Séjours total HC@C.A total HC@C.A Moyen total HC@Séjours total HJ@C.A total HJ@C.A Moyen total HJ', '#@#E@#E@#@#@#E@#E@#@#E@#E', 'Séjours Facturé et Valorise@C.A Facturé et Valorise@C.A moyen Facturé et Valorise@Nombre journées Facturé et Valorise@Séjours Facturé et Valorise en Hospitalisation complète HC@C.A Facturé et Valorise en Hospitalisation complète HC@C.A Moyen Facturé et Valorise en Hospitalisation complète HC@Séjours Facturé et Valorise en Hospitalisation de jour HJ@C.A Facturé et Valorise en Hospitalisation de jour HJ@C.A Moyen Facturé et Valorise en Hospitalisation de jour HJ', '000000000000000', 0), +(1, 'L_DATA_104', 'CTI : Séjours - C.A Total - Journées - C.A ( HC & HJ & Autres)', 'FAVNBS@MTFACENC@MMTFACENC@FAVNBJ@FAVNBSHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@FAVNBSHA@FAVMTTHA@FAVCAMAU@0@0', 'Séjours total@C.A total@C.A moyen total@Nombre journées total@Séjours total HC@C.A total HC@C.A Moyen total HC@Séjours total HJ@C.A total HJ@C.A Moyen total HJ@Séjours total Autres@C.A total Autres@C.A Moyen total Autres', '#@#E@#E@#@#@#E@#E@#@#E@#E@#@#E@#E', 'Séjours Facturé et Valorise@C.A Facturé et Valorise@C.A moyen Facturé et Valorise@Nombre journées Facturé et Valorise@Séjours Facturé et Valorise en Hospitalisation complète HC@C.A Facturé et Valorise en Hospitalisation complète HC@C.A Moyen Facturé et Valorise en Hospitalisation complète HC@Séjours Facturé et Valorise en Hospitalisation de jour HJ@C.A Facturé et Valorise en Hospitalisation de jour HJ@C.A Moyen Facturé et Valorise en Hospitalisation de jour HJ@Séjours Facturé et Valorise en Hospitalisation autre que HC ou HJ@C.A Facturé et Valorise en Hospitalisation autre que HC ou HJ@C.A Moyen Facturé et Valorise en Hospitalisation autre que HC ou HJ', '000000000000000', 0), +(1, 'L_DATA_105', 'CTI : Séjours - C.A Total - Journées - C.A ( HC & HJ & Autres) - DMS', 'FAVNBS@MTFACENC@MMTFACENC@FAVNBJ@FAVNBSHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@FAVNBSHA@FAVMTTHA@FAVCAMAU@FAVDMS@0', 'Séjours total@C.A total@C.A moyen total@Nombre journées total@Séjours total HC@C.A total HC@C.A Moyen total HC@Séjours total HJ@C.A total HJ@C.A Moyen total HJ@Séjours total Autres@C.A total Autres@C.A Moyen total Autres@DMS hospitalisés', '#@#E@#E@#@#@#E@#E@#@#E@#E@#@#E@#E@#,00j', 'Séjours Facturé et Valorise@C.A Facturé et Valorise@C.A moyen Facturé et Valorise@Nombre journées Facturé et Valorise@Séjours Facturé et Valorise en Hospitalisation complète HC@C.A Facturé et Valorise en Hospitalisation complète HC@C.A Moyen Facturé et Valorise en Hospitalisation complète HC@Séjours Facturé et Valorise en Hospitalisation de jour HJ@C.A Facturé et Valorise en Hospitalisation de jour HJ@C.A Moyen Facturé et Valorise en Hospitalisation de jour HJ@Séjours Facturé et Valorise en Hospitalisation autre que HC ou HJ@C.A Facturé et Valorise en Hospitalisation autre que HC ou HJ@C.A Moyen Facturé et Valorise en Hospitalisation autre que HC ou HJ@Rapport entre le nombre de journées de présence des séjours hospitalisés sortis et le nombre de séjours hospitalisés sortis', '000000000000000', 0), +(1, 'L_DATA_106', 'CTI : Séjours - C.A Total - Journées - Tiers payant', 'NBSEJ@MTFAC@MMTFAC@FACNBJ@NBSEJ@FACNS1@MTFAC1@FACNS2@MTFAC2@FACNS0@MTFAC0@0@0@0@0@0', 'Séjours Facturé@C.A facturé@C.A moyen facturé@Nb journées facturée@Séjours Facturé@Séjours AMO@C.A facturé AMO@Séjours AMC@C.A facturé AMC@Séjours Patient@C.A facturé Pat', '#@#E@#E@#@#@#@#E@#@#E@#@#E@#@#E', 'Séjours Facturé@C.A facturé@C.A moyen facturé@Nombre journées facturée@Séjours Facturé@Séjours AMO@C.A facturé AMO@Séjours AMC@C.A facturé AMC@Séjours Patient@C.A facturé Patient', '000000000000000', 0), +(1, 'L_DATA_107', 'CTI : Séjours ( Total - HC - HJ - Autres) - C.A ( Total - HC - HJ - Autres)', 'FAVNBS@MTFACENC@FAVNBSHC@FAVNBSHJ@FAVNBSHA@MTENC@FAVMTTHC@FAVMTTHJ@FAVMTTHA@0@0@0@0@0@0@0', 'Séjours total@C.A Total@Séjours Total HC@Séjours total HJ@Séjours total Autres@Dont valorisé@C.A total HC@C.A total HJ@C.A total Autres', '#@#E@#@#@#@#E@#E@#E@#E', 'Séjours Facturé et Valorise@C.A Facturé et Valorise@Séjours Facturé et Valorise en Hospitalisation complète HC@Séjours en Hospitalisation de jour HJ@Séjours en Hospitalisation autre que HC ou HJ@Dont valorisé@C.A Facturé et Valorise en Hospitalisation complète HC@C.A Facturé et Valorise en Hospitalisation de jour HJ@C.A Facturé et Valorise en Hospitalisation autre que HC ou HJ', '000000000000000', 0), +(1, 'L_DATA_108', 'CTI : Séjours - C.A : Facturé - valorisé - total ( HJ - HC ) - C.A Autres', 'FAVNBS@MTFACENC@FACMTTHJ@FACMTTHC@VALMTHJT@VALMTHCT@FAVMTTHJ@FAVMTTHC@FAVMTTHA@0@0@0@0@0@0@0', 'Séjours total@C.A Total@CA facturé HJ@CA facturé HC@C.A Val HJ total@C.A Val HC total@C.A total HJ@C.A total HC@C.A total Autres', '#@#E@#E@#E@#E@#E@#E@#E@#E', 'Séjours Facturé et valorisé@C.A Facturé et Valorise@C.A facturé en Hospitalisation de jour HJ@C.A facturé en Hospitalisation complète HC@C.A total valorisé en Hospitalisation de jour HJ ( groupés + Non groupés )@C.A total valorisé en Hospitalisation complète HC ( groupés + Non groupés )@C.A facturé et valorisé en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation autre que HC ou HJ@0@0@0@0@0@0@0', '000000000000000', 0), +(1, 'L_DATA_1_OCC', 'CTI : Occupation : Nombre Patients/ Séjour/EMC - Entrées/Sorties - Ambulatoire/ Séances - Journées', 'NBP@NSEJ@EMC@NED@NEM@NSD@NSM@NAM@NSE@NSEDIA@NSECHM@NSEDIV@NJN@NJNXA@0', 'Nombre patients@Nombre Séjours@EMC@Entrées (hospi)@Entrées + mutations@Sorties (Hospi)@Sorties + Mutations@Nombre Ambulatoire@Nombre séances@séances Dialyse@Séances Chimio@Séances Autres@Journées hospi@Jou+Ext+Ambu', '#@#@#@#@#@#@#@#@#@#@#@#@#j@#j', 'Nombre patients@Nombre Séjours@Equivalent Malade complet@Entrées directes (hospitalisés)@Entrées directes + mutations@Sorties directes (hospitalisés)@Sorties directes (hospitalisés) + Mutations@Nombre Ambulatoire@Nombre séances total@séances Dialyse@Séances Chimio@Séances Autres@Nombre journées hospitalisés@Nombre journées + ambulatoires + externes', '000000000000000', 1), +(1, 'L_DATA_2_OCC', 'CTI : Séjours : Nombre Patients/ Séjour/EMC - Admissions/Sorties - Journées - DMS', 'NBP@NSEJ@EMC@NADPRE@NAD@NSHP@NSDXASSH@NNONSOR@NFULL@NJN@NJNXAS@DMSHES@DMSHON@0@0', 'Nombre patients@Nombre séjours@EMC@Adm < per.@Admissions@Sor Post@Sor+X+A+S-Hors hospi@Séj non sortis@Séj entiers@Journées hospi@Jou+X+A+S@DMS Hospi@DMS HOS+A+S', '#@#@#@#@#@#@#@#@#@#j@#j@#,00j@#,00j', 'Nombre patients@Nombre Séjours@Equivalent Malade complet@Nombre admissions < période@Nombre admissions période@Nombre sorties hors période@Nombre sorties + ambulatoires + externes + séances (hors hospit)@Nombre séjours non sortis@Nombre séjours entiers sur période@Nombre journées (hospitalisés)@Nombre journées + ambulatoires + externes + séances@DMS hospitalisés@DMS hospitalisation (Hospit. + séances + ambulatoires)', '000000000000000', 2), +(1, 'L_DATA_4_OCC', 'CTI : Récapitulatif : Séjour/EMC - Entrées/Sorties(Hospi) - Ambulatoires/séances/externes/Bébés/urgences', 'NBP@NSEJ@EMC@NED@NSD@NAM@NSE@NEX@NPX@NBB@URG@0@0@0@0', 'Nombre patients@Nombre séjours@Equivalent malade complet@Entrées directes (hospi)@Sorties directes (hospi)@Nombre Ambulatoire@Nombre séances@Nombre externes@Passages Ext@Nombre bébés@Urgences', '#@#@#@#@#@#@#@#@#@#', 'Nombre patients@Nombre séjours@Equivalent malade complet@Nombre entrées directes (hospitalisés)@Nombre sorties directes (hospitalisés)@Nombre Ambulatoire@Nombre séances@Nombre externes@Nombre passages externes@Nombre bébés@Urgences', '000000000000000', 4) +; + +-- 3/3 : Màj de la table iCTI +INSERT INTO activite.t_vue_parametre(code, texte, data_code, data_entete, data_format, data_description,position_ratio,rang) + SELECT code, + texte, + string_to_array(data_code, '@') as data_code, + string_to_array(data_entete, '@') as data_entete, + string_to_array(data_format, '@') as data_format, + string_to_array(data_description, '@') as data_description, + position_ratio, + rang + FROM w_dbsetup + WHERE 1=1 + AND code NOT IN (SELECT code FROM activite.t_vue_parametre) +; \ No newline at end of file diff --git a/db/data2/dbdata_activite_t_classes.csv b/db/data2/dbdata_activite_t_classes.csv new file mode 100644 index 0000000..d0669ca --- /dev/null +++ b/db/data2/dbdata_activite_t_classes.csv @@ -0,0 +1,19 @@ +oid|code|texte|is_cti|sequence|table_code|contenu_by_code|contenu_non_replicable_ailleurs +1|CTIGFA1|Formes d'activité CTI niveau 1|1|1|FORMEACTIVITE|0|0 +1|CTIGFA2|Formes d'activité CTI niveau 2|1|2|FORMEACTIVITE|0|0 +1|CTIGFA3|Champ satisfaction|1|3|FORMEACTIVITE|0|0 +1|CTI_DURSEJ|Tranches séjours CTI|1|9|DURSEJ|0|0 +1|CTI_ETA_1|Etages CTI|0|4|ETAGE|0|1 +1|CTI_GHMDA|Domaines d'activité ATIH|1|9|GHM|0|0 +1|CTI_GHMGA|Groupes d'activité ATIH|1|7|GHM|0|0 +1|CTI_GHMGP|Groupes de planification ATIH|1|8|GHM|0|0 +1|CTI_MEDLIBSAL|Conditions d'exercice|1|1|MEDECIN|0|1 +1|CTI_PRC_1|Prestations CTI|0|4|PRESTA_C|0|0 +1|CTI_PREDCA|Décomposition CA (CTI)|1|9|PRESTA_C|0|0 +1|CTI_RUB_1|Rubriques CTI|0|4|RUBRIQUE|1|1 +1|CTI_RUB_2|Rubriques détaillées CTI.|0|31|RUBRIQUE|0|1 +1|CTI_SER_1|Services CTI|0|4|SERVICE_F|0|1 +1|CTI_TAGE|Tranches d'âge|1|9|AGE|0|0 +1|CTI_UF_1|Unités Fonctionnelles CTI|0|4|UF|0|1 +1|ETATSEJN1|Etat de séjour CTI niveau 1|1|11|ETATSEJOUR|0|0 +1|ETATSEJN2|Etat de séjour CTI niveau 2|1|10|ETATSEJOUR|0|0 diff --git a/db/data2/dbdata_activite_t_classes_sections.csv b/db/data2/dbdata_activite_t_classes_sections.csv new file mode 100644 index 0000000..1599077 --- /dev/null +++ b/db/data2/dbdata_activite_t_classes_sections.csv @@ -0,0 +1,413 @@ +oid|code|texte|table_code|classe_sequence|condition|exclude_code|include_code +1|T01|Nouveaux-nés|AGE|9||| +1|T02|1 - 5 ans|AGE|9||| +1|T03|6 - 12 ans|AGE|9||| +1|T04|13 - 20 ans|AGE|9||| +1|T05|21 - 30 ans|AGE|9||| +1|T06|31 - 40 ans|AGE|9||| +1|T07|41 - 50 ans|AGE|9||| +1|T08|51 - 60 ans|AGE|9||| +1|T09|61 - 70 ans|AGE|9||| +1|T10|71 - 80 ans|AGE|9||| +1|T11|81 ans et plus|AGE|9||| +1|S1|0 nuit|DURSEJ|9||| +1|S2|1 nuit|DURSEJ|9||| +1|S3|de 2 à 5 nuits|DURSEJ|9||| +1|S4|de 6 à 10 nuits|DURSEJ|9||| +1|S5|de 11 à 20 nuits|DURSEJ|9||| +1|S6|de 21 à 30 nuits|DURSEJ|9||| +1|S7|de 31 à 100 nuits|DURSEJ|9||| +1|S8|de 101 à 1000 nuits|DURSEJ|9||| +1|S9|plus de 1000 nuits|DURSEJ|9||| +1|S1|Prévu(s)|ETATSEJOUR|10||| +1|S2|Présent(s)|ETATSEJOUR|10||| +1|S3|Sorti(s) non groupé(s)|ETATSEJOUR|10||| +1|S4|Sorti(s) facturable(s)|ETATSEJOUR|10||| +1|S5|Facturé(s) non soldé(s)|ETATSEJOUR|10||| +1|S6|Soldé(s)|ETATSEJOUR|10||| +1|S7|Fictif(s)|ETATSEJOUR|10||| +1|S8|Annulé(s)|ETATSEJOUR|10||| +1|S1|Prévu(s)|ETATSEJOUR|11||| +1|S2|Présent(s)|ETATSEJOUR|11||| +1|S3|Sorti(s) non facturé(s)|ETATSEJOUR|11||| +1|S4|Facturé(s) non soldé(s)|ETATSEJOUR|11||| +1|S5|Soldé(s)|ETATSEJOUR|11||| +1|S6|Annulé(s)|ETATSEJOUR|11||| +1|1|MCO|FORMEACTIVITE|1||| +1|2|SSR|FORMEACTIVITE|1||| +1|3|PSY|FORMEACTIVITE|1||| +1|4|HAD|FORMEACTIVITE|1||| +1|5|EHPAD et assimilés|FORMEACTIVITE|1||| +1|7|Externes|FORMEACTIVITE|1||| +1|9|Autres|FORMEACTIVITE|1||| +1|11|MCO Médecine|FORMEACTIVITE|2||| +1|12|MCO Chirurgie|FORMEACTIVITE|2||| +1|13|MCO Obstétrique|FORMEACTIVITE|2||| +1|14|MCO Esthétique|FORMEACTIVITE|2||| +1|15|MCO Séances|FORMEACTIVITE|2||| +1|19|MCO Autres|FORMEACTIVITE|2||| +1|20|SSR|FORMEACTIVITE|2||| +1|30|PSY|FORMEACTIVITE|2||| +1|40|HAD|FORMEACTIVITE|2||| +1|50|EHPAD et assimilés|FORMEACTIVITE|2||| +1|70|Externes|FORMEACTIVITE|2||| +1|99|Autres|FORMEACTIVITE|2||| +1|11|MCOCA|FORMEACTIVITE|3||| +1|12|MCO48H|FORMEACTIVITE|3||| +1|2|SSR|FORMEACTIVITE|3||| +1|3|PSY|FORMEACTIVITE|3||| +1|4|HAD|FORMEACTIVITE|3||| +1|9|Autres|FORMEACTIVITE|3||| +1|G001|Chirurgies digestives hautes|GHM|7||| +1|G002|Chirurgie digestive majeure|GHM|7||| +1|G003|Appendicectomies|GHM|7||| +1|G004|Hernies|GHM|7||| +1|G005|Occlusions, sub-occlusions digestives|GHM|7||| +1|G006|Chirurgie mineure grêle/colon|GHM|7||| +1|G007|Chirurgies rectum/anus (hors résections)|GHM|7||| +1|G008|Autres chirurgies digestives|GHM|7||| +1|G009|Cholécystectomies|GHM|7||| +1|G010|Autres chirurgies foie, pancréas, voies biliaires|GHM|7||| +1|G011|Prise en charge médicale des tumeurs malignes du tube digestif|GHM|7||| +1|G012|Ulcères, hémorragies digestives|GHM|7||| +1|G013|Suivi de greffes digestives|GHM|7||| +1|G014|Maladies inflammatoires de l'intestin|GHM|7||| +1|G015|Gastro-entérites et affections du tube digestif|GHM|7||| +1|G016|Autres gastroentérites et maladies diverses du tube digestif|GHM|7||| +1|G017|Autres affections digestives|GHM|7||| +1|G018|Hépatites, cirrhoses|GHM|7||| +1|G019|Affections hépatiques sévères et affections du pancréas|GHM|7||| +1|G020|Autres affections hépatiques, voies biliaires|GHM|7||| +1|G021|Symptômes digestifs|GHM|7||| +1|G022|Endoscopies digestives avec ou sans anesthésie|GHM|7||| +1|G023|Explorations et surveillance pour affections de l'appareil digestif, du système hépatobiliaire et du pancréas|GHM|7||| +1|G024|Chirurgies majeures orthopédiques (dont hanche et fémur genou)|GHM|7||| +1|G025|Arthroscopies, Biopsies ostéo-articulaires|GHM|7||| +1|G026|Chirurgie Fractures, entorses, luxations, tractions|GHM|7||| +1|G027|Ablations matériel|GHM|7||| +1|G028|Amputations|GHM|7||| +1|G029|Chirurgies main, poignet|GHM|7||| +1|G030|Chirurgie pour Ostéomyélites aigües (y compris vertébrales) et arthrites septiques|GHM|7||| +1|G031|Chirurgie de la jambe|GHM|7||| +1|G032|Chirurgie de la cheville ou du pied|GHM|7||| +1|G033|Chirurgie du membre supérieur (hors prothèses)|GHM|7||| +1|G034|Chirurgie des tissus mous|GHM|7||| +1|G035|Interventions sur le tissu mou pour tumeurs malignes|GHM|7||| +1|G036|Traumatismes du bassin et des membres|GHM|7||| +1|G037|Polytraumatismes graves|GHM|7||| +1|G038|Prise en charge médicale des tumeurs de l'appareil musculosquelettique, du tissu conjonctif et fractures pathologiques|GHM|7||| +1|G039|Maladies osseuses et arthropathies|GHM|7||| +1|G040|Autres affections rhumatologiques|GHM|7||| +1|G041|Chirurgies rachis/moelle|GHM|7||| +1|G042|Explorations et surveillance de l'appareil musculosquelettique et du tissu conjonctif|GHM|7||| +1|G043|Chirurgies SNC trauma|GHM|7||| +1|G044|Chirurgies SNC hors trauma (rachis et moelle exceptés)|GHM|7||| +1|G045|Pose stimulateur cérébral / médullaire|GHM|7||| +1|G046|Trauma crâniens|GHM|7||| +1|G047|Affections dégénératives du système nerveux|GHM|7||| +1|G048|Affections nerfs crâniens / moëlle|GHM|7||| +1|G049|AVC|GHM|7||| +1|G050|Comas non traumatiques|GHM|7||| +1|G051|Migraines et céphalées|GHM|7||| +1|G052|Convulsions, épilepsie|GHM|7||| +1|G053|Infections SNC|GHM|7||| +1|G054|Prise en charge médicale des tumeurs système nerveux|GHM|7||| +1|G055|Autres affections du système nerveux|GHM|7||| +1|G056|Explorations et surveillance pour affections du système nerveux|GHM|7||| +1|G057|Cathétérismes thérapeutiques vasculaires et coronariens avec endoprothèse ou prothèses cardiaques|GHM|7||| +1|G058|Cathétérismes thérapeutiques vasculaires et coronariens sans endoprothèse|GHM|7||| +1|G059|Cathéthérismes diagnostiques vasculaires et coronariens|GHM|7||| +1|G060|Cathétérisme thérapeutiques vasculaires du système nerveux|GHM|7||| +1|G061|Chirurgies valvulaires|GHM|7||| +1|G062|Pontages coronaires|GHM|7||| +1|G063|Chirurgie cardiaque, autres|GHM|7||| +1|G064|Stimulateurs / défibrillateurs cardiaques|GHM|7||| +1|G065|Cardiopathies, valvulopathies|GHM|7||| +1|G066|Coronaropathies|GHM|7||| +1|G067|Endocardites|GHM|7||| +1|G068|Hypertension artérielle|GHM|7||| +1|G069|Troubles du rythme/conduction|GHM|7||| +1|G070|Cardiologie autres|GHM|7||| +1|G071|Explorations et surveillance pour affections de l'appareil circulatoire|GHM|7||| +1|G072|Chirurgies majeures revascularisation|GHM|7||| +1|G073|Ligatures veines|GHM|7||| +1|G074|Autres chirurgies vasculaires|GHM|7||| +1|G075|Phlébites, varices et autres troubles vasculaires d'origine veineuse|GHM|7||| +1|G076|Chirurgies thoraciques majeures|GHM|7||| +1|G077|Autres chirurgies thoraciques|GHM|7||| +1|G078|Bronchites, bronchiolites et asthme|GHM|7||| +1|G079|Embolies pulmonaires et détresses respiratoires|GHM|7||| +1|G080|Infections respiratoires|GHM|7||| +1|G081|Prise en charge médicale des tumeurs de l'appareil respiratoire|GHM|7||| +1|G082|Affections respiratoires, autres|GHM|7||| +1|G083|Explorations et surveillance pour affections de l'appareil respiratoire|GHM|7||| +1|G084|Endoscopies bronchiques, avec ou sans anesthésie|GHM|7||| +1|G085|Chirurgies ORL majeures|GHM|7||| +1|G086|Chirurgie de l'oreille|GHM|7||| +1|G087|Amygdalectomies, VG, drains transT|GHM|7||| +1|G088|Autres chirurgies ORL|GHM|7||| +1|G089|Chirurgie de la bouche|GHM|7||| +1|G090|Affections Cavité buccale et dents|GHM|7||| +1|G091|Infections ORL|GHM|7||| +1|G092|Prise en charge médicale des tumeurs malignes ORL, Stomato|GHM|7||| +1|G093|Pathologies ORL et Stomato autres|GHM|7||| +1|G094|Explorations et surveillance pour affections ORL|GHM|7||| +1|G095|Endoscopies ORL, avec ou sans anesthésie|GHM|7||| +1|G096|Chirurgies ophtalmo lourdes|GHM|7||| +1|G097|Cataractes|GHM|7||| +1|G098|Allogreffes de cornées|GHM|7||| +1|G099|Autres chirurgies ophtalmo|GHM|7||| +1|G100|Affections oeil|GHM|7||| +1|G101|Infections oeil|GHM|7||| +1|G102|Explorations et surveillance pour affections de l'oeil|GHM|7||| +1|G103|Chirurgie pour tumeurs malignes (app génital fem)|GHM|7||| +1|G104|Chirurgies pelviennes majeures (app gen feminin)|GHM|7||| +1|G105|Chirurgies utérus / annexes|GHM|7||| +1|G106|Autres chirurgies gynécologiques autres que le sein|GHM|7||| +1|G107|Chirurgie pour tumeurs malignes sein|GHM|7||| +1|G108|Chirurgie du sein hors TM|GHM|7||| +1|G109|Prise en charge médicale des tumeurs de l'appareil génital féminin|GHM|7||| +1|G110|Autres affections appareil génital féminin|GHM|7||| +1|G111|AMP|GHM|7||| +1|G112|Infections gynécologiques d'organes autres que le sein|GHM|7||| +1|G113|Affections des seins|GHM|7||| +1|G114|Prise en charge médicale des tumeurs des seins|GHM|7||| +1|G115|Explorations et surveillance gynécologiques et des affections des seins|GHM|7||| +1|G116|Accouchements par voie basse|GHM|7||| +1|G117|Césariennes|GHM|7||| +1|G118|IVG|GHM|7||| +1|G119|Affections de ante partum|GHM|7||| +1|G120|Affections du post partum|GHM|7||| +1|G121|Interruptions médicale de grossesse|GHM|7||| +1|G122|Chirurgie du nouveau né|GHM|7||| +1|G123|Transferts précoces de nouveau nés|GHM|7||| +1|G124|Afections médicales du nouveau né|GHM|7||| +1|G125|Décès de nouveau nés|GHM|7||| +1|G126|Chirurgies reins, uretères, vessie, glandes surrénales|GHM|7||| +1|G127|Chirurgies transurétrales, autres|GHM|7||| +1|G128|Chirurgies appareil génital masculin|GHM|7||| +1|G129|Circoncisions|GHM|7||| +1|G130|Chirurgies pelviennes majeures (urologie)|GHM|7||| +1|G131|Chirurgie des tumeurs appareil génital masculin|GHM|7||| +1|G132|Prise en charge médicale des tumeurs reins et voies urinaires|GHM|7||| +1|G133|Infections reins et voies urinaires, lithiases|GHM|7||| +1|G134|Autres affections reins, voies urinaires|GHM|7||| +1|G135|Explorations et surveillance pour affections du rein et des voies urinaires|GHM|7||| +1|G136|Infections appareil génital masculin|GHM|7||| +1|G137|Prise en charge médicale des tumeurs de l'appareil génital masculin|GHM|7||| +1|G138|Autres affections appareil génital masculin|GHM|7||| +1|G139|Explorations et surveillance des affections de l'appareil génital masculin|GHM|7||| +1|G140|Endoscopies génito-urinaires, avec ou sans anesthésie|GHM|7||| +1|G141|Chirurgie au cours des tumeurs malignes (hématologie)|GHM|7||| +1|G142|Greffes de cellules souches hématopoïétiques|GHM|7||| +1|G143|Donneurs de moëlle|GHM|7||| +1|G144|Affections hématologiques malignes|GHM|7||| +1|G145|Autres Maladies immunitaires, du Sang, des Organes hématopoïétiques, Tumeurs siège imprécis ou diffus|GHM|7||| +1|G146|Explorations et surveillance pour affections du sang et des organes hématopoïétiques|GHM|7||| +1|G147|Explorations et surveillance pour affections myéloprolifératives et tumeurs de siège imprécis ou diffus|GHM|7||| +1|G148|Chimiothérapie hors séances|GHM|7||| +1|G149|Radiothérapie hors séances|GHM|7||| +1|G150|Chimiothérapie non tumorale hors séances|GHM|7||| +1|G151|Maladies virales et fièvres d'origine inconnue|GHM|7||| +1|G152|Septicémies|GHM|7||| +1|G153|Maladies infectieuses ou parasitaires hors septicémies et maladies virales|GHM|7||| +1|G154|Décès secondaire à une maladie infectieuse: séjours de moins de 2 jours|GHM|7||| +1|G155|Explorations et surveillance pour maladies infectieuses ou parasitaires|GHM|7||| +1|G156|Maladies VIH|GHM|7||| +1|G157|Chirurgie des parathyroides, du tractus thyréoglosse, endocrinologie|GHM|7||| +1|G158|Chirurgie de la thyroide|GHM|7||| +1|G159|Diabète|GHM|7||| +1|G160|Maladies endocriniennes hors diabète|GHM|7||| +1|G161|Troubles métaboliques, nutritionnels et obésité|GHM|7||| +1|G162|Explorations et surveillance pour affections endocriniennes, troubles métaboliques, nutritionnels et obésité|GHM|7||| +1|G163|Greffes peau / parages hors brûlures|GHM|7||| +1|G164|Intervention peau et tissu sous-cutané|GHM|7||| +1|G165|Affections peau et tissu sous-cutané|GHM|7||| +1|G166|Infections peau et tissu sous-cutané|GHM|7||| +1|G167|Prise en charge médicale des tumeurs de la peau et tissu sous-cutané|GHM|7||| +1|G168|Explorations et surveillance des affections de la peau|GHM|7||| +1|G169|Brûlures sans acte opératoire classant|GHM|7||| +1|G170|Troubles mentaux d'origine organique et retards mentaux|GHM|7||| +1|G171|Névroses, psychoses et autres troubles mentaux|GHM|7||| +1|G172|Explorations et surveillance pour maladies et troubles mentaux|GHM|7||| +1|G173|Toxicomanies et alcoolisme|GHM|7||| +1|G174|Allergies|GHM|7||| +1|G175|Iatrogénie, intox médicamenteuses et chimiques|GHM|7||| +1|G176|Soins palliatifs|GHM|7||| +1|G177|Douleurs chroniques|GHM|7||| +1|G178|Transplantations d'organes|GHM|7||| +1|G179|Chirurgie inter spécialités|GHM|7||| +1|G180|Chirurgie esthétique et de confort|GHM|7||| +1|G181|Médecine inter spécialités|GHM|7||| +1|G182|Allergologie|GHM|7||| +1|G183|Explorations nocturnes et apparentées|GHM|7||| +1|G184|Suivi thérap.d'affections connues|GHM|7||| +1|G185|Explorations et surveillance pour autres motifs de recours aux soins|GHM|7||| +1|G186|Rééducation - Convalescence|GHM|7||| +1|G187|Séances : dialyse|GHM|7||| +1|G188|Séances : transfusion|GHM|7||| +1|G189|Séances : radiothérapie|GHM|7||| +1|G190|Séances : chimiothérapie|GHM|7||| +1|G191|Séances : chimiothérapie non tumorale|GHM|7||| +1|G192|Séances : caisson hyperbare|GHM|7||| +1|G193|Séances : aphérèse sanguine|GHM|7||| +1|G194|Signes et symptômes|GHM|7||| +1|G195|Mort-nés|GHM|7||| +1|G196|Injections de toxine botulique, en ambulatoire|GHM|7||| +1|G197|Affections du système nerveux sans acte opératoire avec anesthésie, en ambulatoire|GHM|7||| +1|G198|Affections cardiovasculaires sans acte opératoire de la CMD 05, avec anesthésie, en ambulatoire|GHM|7||| +1|G199|Mise en place d'accès vasculaire|GHM|7||| +1|G200|Varices avec acte autre que ligature et éveinage, en ambulatoire|GHM|7||| +1|G201|Affections de l'appareil génital féminin sans acte opératoire de la CMD 13, avec anesthésie, en ambulatoire|GHM|7||| +1|G202|Insuffisance rénale, avec dialyse|GHM|7||| +1|G203|Autres séj. sans acte, avec anesthésie, en ambulatoire (Aff. myéloP., peau, sein..)|GHM|7||| +1|G204|Brûlures chirurgie|GHM|7||| +1|G205|Séjours pour douleurs chroniques rebelles comprenant un bloc ou une infiltration, en ambulatoire|GHM|7||| +1|G206|Traumatismes, allergies et empoisonnements sans acte opératoire, avec anesthésie, en ambulatoire|GHM|7||| +1|G207|Actes ORL et stomato divers|GHM|7||| +1|G208|Lithotritie extracorporelle de l'appareil urinaire, en ambulatoire|GHM|7||| +1|G209|Séjours comprenant une biopsie prostatique, en ambulatoire|GHM|7||| +1|G210|Traumatismes du rachis|GHM|7||| +1|G211|Ostéomyélites aigües (y compris vertébrales) et arthrites septiques|GHM|7||| +1|G212|Affections endocriniennes et problèmes alimentaires du nouveau né et du nourisson|GHM|7||| +1|G213|Endoscopies digestives thérapeutiques et anesthésie : séjours de moins de 2 jours|GHM|7||| +1|G214|Affections digestives sans acte opératoire de la CMD 06, avec anesthésie, en ambulatoire|GHM|7||| +1|G215|Brûlures sans acte opératoire, avec anesthésie, en ambulatoire|GHM|7||| +1|G216|Polytraumatismes graves|GHM|7||| +1|G217|Activité interventionnelle en Hépato-Gastro-Entérologie|GHM|7||| +1|G999|Séjours en Erreur|GHM|7||| +1|C01|Transplant. d'organes (hors greffes de moelle & cornée)|GHM|8||| +1|C02|Chirurgie du rachis, Neuro-chirurgie|GHM|8||| +1|C03|Neurostimulateurs|GHM|8||| +1|C04|Chir. cardio-thoracique (hors transplant. d'organe), Pontages aorto-coronariens|GHM|8||| +1|C05|Chir. majeure sur le thorax, l'app. respiratoire, interventions sous thoracoscopie|GHM|8||| +1|C06|Chir. Digestive majeure : oesophage, estomac, grêle, côlon, rectum|GHM|8||| +1|C07|Chir. Viscérale autre : rate, grêle, colon, proctologie, hernies|GHM|8||| +1|C08|Chir. hépato-biliaire et pancréatique|GHM|8||| +1|C09|Chir. majeure de l'app. Locomoteur: hanche, fémur, genou, épaule|GHM|8||| +1|C10|Arthroscopies, Biopsies ostéo-articulaires|GHM|8||| +1|C11|Chirurgies autres de l'appareil locomoteur, amputations|GHM|8||| +1|C12|Traumatismes multiples graves|GHM|8||| +1|C13|Stimulateurs, Défibrillateurs cardiaques|GHM|8||| +1|C14|Chirurgie vasculaire|GHM|8||| +1|C15|Chirurgie ORL stomato|GHM|8||| +1|C16|Chirurgie Ophtalmologique et greffe de cornée|GHM|8||| +1|C17|Chirurgie Gynécologique|GHM|8||| +1|C18|Chirurgie du sein|GHM|8||| +1|C19|Chirurgie Urologique|GHM|8||| +1|C20|Chirurgie de l'appareil génital masculin|GHM|8||| +1|C21|Chir. pour Aff. des Org. Hématopoiétiques, Lymphomes, Leucémies, Tumeurs SID|GHM|8||| +1|C22|Chirurgie de la Thyroide, Parathyroide, du Tractus Thyréoglosse, endocrinologie|GHM|8||| +1|C23|Parages de plaies, Greffes de peau, des Tissus S/C|GHM|8||| +1|C24|Chirurgie pour brûlures|GHM|8||| +1|C25|Chirurgie inter spécialités|GHM|8||| +1|K01|Hépato-Gastro-Entérologie, sans acte opératoire, avec anesthésie|GHM|8||| +1|K02|Endoscopies digestives et biliaires avec ou sans anesthésie|GHM|8||| +1|K03|Neurologie médicale avec Acte classant non opératoire, ou anesthésie|GHM|8||| +1|K04|Aff. Cardio-vasculaire avec Acte classant non opératoire, ou anesthésie|GHM|8||| +1|K05|Cathétérismes vasculaires diagnostiques et interventionnels|GHM|8||| +1|K06|Mise en place d'accès vasculaire|GHM|8||| +1|K07|Endoscopies bronchiques, avec ou sans anesthésie|GHM|8||| +1|K08|Traumatologie avec acte classant non opératoire ou anesthésie|GHM|8||| +1|K09|ORL Stomato avec Acte classant non opératoire et endoscopies|GHM|8||| +1|K10|Aff. génito-urinaires avec Acte classant non opératoire et endoscopies|GHM|8||| +1|K11|Douleur chroniques, avec bloc ou infiltration, en ambulatoire|GHM|8||| +1|K12|Explorations nocturnes, séjours de moins de 2 jours|GHM|8||| +1|K13|Dialyse (hors Séances)|GHM|8||| +1|K14|Radiothérapie (hors séances)|GHM|8||| +1|K15|Autres séj. sans acte, avec anesthésie, en ambulatoire (Aff. myéloP., peau, sein...)|GHM|8||| +1|K16|Brûlures sans acte opératoire, avec anesthésie, en ambulatoire|GHM|8||| +1|K17|Traumatologie avec acte classant non opératoire ou anesthésie|GHM|8||| +1|N01|Chirurgie des nouveau-nés, prématurés et de la période périnatale|GHM|8||| +1|N02|Aff. médicales des nouveau-nés, prématurés et de la période périnatale|GHM|8||| +1|N03|Mort-nés, décès et transferts précoces de nouveau-nés|GHM|8||| +1|O01|Accouchements par voie basse|GHM|8||| +1|O02|Césariennes|GHM|8||| +1|O03|IVG|GHM|8||| +1|O04|Obstétrique autre|GHM|8||| +1|S01|Dialyse|GHM|8||| +1|S02|Chimiothérapie pour tumeur|GHM|8||| +1|S03|Chimiothérapie pour aff. Non tumorale|GHM|8||| +1|S04|Radiothérapie|GHM|8||| +1|S05|Transfusion|GHM|8||| +1|S06|Aphérèse|GHM|8||| +1|S07|Oxygénothérapie hyperbare, en séances|GHM|8||| +1|X01|Greffe de moelle, Auto et Allogreffes de cellules souches|GHM|8||| +1|X02|Hépato-Gastro-Entérologie|GHM|8||| +1|X03|Neurologie médicale|GHM|8||| +1|X04|Commotions cérébrales, Traumatismes crâniens|GHM|8||| +1|X05|Traumatologie et ablation de matériel de l'appareil locomoteur|GHM|8||| +1|X06|Rhumatologie|GHM|8||| +1|X07|Affections Cardio-vasculaires|GHM|8||| +1|X08|Pneumologie|GHM|8||| +1|X09|ORL, Stomato|GHM|8||| +1|X10|Ophtalmologie|GHM|8||| +1|X11|Gynécologie, Sénologie (hors Obstétrique)|GHM|8||| +1|X12|Uro-Néphrologie médicale (hors Séances)|GHM|8||| +1|X13|Appareil génital masculin|GHM|8||| +1|X14|Maladies immunitaires, du Sang, des Organes hématopoïétiques, Tumeurs SID|GHM|8||| +1|X15|Diabète, Maladies métaboliques, Endocrinologie (hors complications)|GHM|8||| +1|X16|Affections et traumatismes de la peau, gelures|GHM|8||| +1|X17|Brûlures|GHM|8||| +1|X18|Suivi thérap. d'affections connues, Allergologie, Rééducation, Convalescence|GHM|8||| +1|X19|Fièvre, Infection, Septicémie, VIH|GHM|8||| +1|X20|Psychiatrie|GHM|8||| +1|X21|Effets nocifs, alcool, toxicologie, allergies|GHM|8||| +1|X22|Douleur et soins palliatifs|GHM|8||| +1|X23|Chimiothérapie (hors séances)|GHM|8||| +1|X24|Médecine inter spécialités, Autres symptômes ou motifs médicaux|GHM|8||| +1|X25|Traumatismes multiples graves|GHM|8||| +1|X26|Chirurgie esthétique et de confort|GHM|8||| +1|Z99|Séjours en Erreur|GHM|8||| +1|D01|Digestif|GHM|9||| +1|D02|Orthopédie traumatologie|GHM|9||| +1|D03|Traumatismes multiples ou complexes graves|GHM|9||| +1|D04|Rhumatologie|GHM|9||| +1|D05|Système nerveux (hors cathétérismes vasculaires diagnostiques et interventionnels)|GHM|9||| +1|D06|Cathétérismes vasculaires diagnostiques et interventionnels|GHM|9||| +1|D07|Cardio-vasculaire (hors cathétérismes vasculaires diagnostiques et interventionnels)|GHM|9||| +1|D09|Pneumologie|GHM|9||| +1|D10|ORL, Stomatologie|GHM|9||| +1|D11|Ophtalmologie|GHM|9||| +1|D12|Gynécologie - sein|GHM|9||| +1|D13|Obstétrique|GHM|9||| +1|D14|Nouveau-nés et période périnatale|GHM|9||| +1|D15|Uro-néphrologie et génital|GHM|9||| +1|D16|Hématologie|GHM|9||| +1|D17|Chimiothérapie, radiothérapie, hors séances|GHM|9||| +1|D18|Maladies infectieuses (dont VIH)|GHM|9||| +1|D19|Endocrinologie|GHM|9||| +1|D20|Tissu cutané et tissu sous-cutané|GHM|9||| +1|D21|Brûlures|GHM|9||| +1|D22|Psychiatrie|GHM|9||| +1|D23|Toxicologie, Intoxications, Alcool|GHM|9||| +1|D24|Douleurs chroniques, Soins palliatifs|GHM|9||| +1|D25|Transplant. d'organes|GHM|9||| +1|D26|Activités inter spécialités, suivi thérapeutique d'affections connues|GHM|9||| +1|D27|Séances|GHM|9||| +1|D90|Séjours en erreur|GHM|9||| +1|1|Libéraux|MEDECIN|1||| +1|2|Salariés|MEDECIN|1||| +1|S11|T2A. GHS|PRESTA_C|9||| +1|S12|T2A. EXH|PRESTA_C|9||| +1|S13|T2A. Forfaits et suppléments|PRESTA_C|9||| +1|S19|T2A. Autres|PRESTA_C|9||| +1|S2|DMI|PRESTA_C|9||| +1|S3|PHC|PRESTA_C|9||| +1|S1|CA Soins.|RUBRIQUE|4|||[CLASSE:CTI_RUB_2:S01][CLASSE:CTI_RUB_2:S02][CLASSE:CTI_RUB_2:S03][CLASSE:CTI_RUB_2:S04][CLASSE:CTI_RUB_2:S05][CLASSE:CTI_RUB_2:S06] +1|S2|CA Hotellerie|RUBRIQUE|4|||[CLASSE:CTI_RUB_2:S11][CLASSE:CTI_RUB_2:S12] +1|S3|CA UCD / DMI|RUBRIQUE|4|||[CLASSE:CTI_RUB_2:S21][CLASSE:CTI_RUB_2:S22] +1|S8|Médecins salariés|RUBRIQUE|4|||[CLASSE:CTI_RUB_2:S81] +1|S9|Aucune facturation clinique|RUBRIQUE|4|||[CLASSE:CTI_RUB_2:S91] +1|S01|Séjours|RUBRIQUE|31||| +1|S02|Forfaits : Suppléments|RUBRIQUE|31||| +1|S03|Forfaits : SE|RUBRIQUE|31||| +1|S04|Forfaits : ATU|RUBRIQUE|31||| +1|S05|Forfaits : Esthétique|RUBRIQUE|31||| +1|S06|Forfaits : Externes et divers|RUBRIQUE|31||| +1|S11|Chambres particulières|RUBRIQUE|31||| +1|S12|Suppléments hoteliers|RUBRIQUE|31||| +1|S21|UCD|RUBRIQUE|31||| +1|S22|DMI|RUBRIQUE|31||| +1|S81|Médecins salariés|RUBRIQUE|31||| +1|S91|Aucune facturation clinique|RUBRIQUE|31||| diff --git a/db/data2/dbdata_activite_t_classes_sections_elements_ages.csv b/db/data2/dbdata_activite_t_classes_sections_elements_ages.csv new file mode 100644 index 0000000..88ebdc9 --- /dev/null +++ b/db/data2/dbdata_activite_t_classes_sections_elements_ages.csv @@ -0,0 +1,122 @@ +section_code|to_code|table_code|classe_sequence +T01|000|AGE|9 +T02|001|AGE|9 +T02|002|AGE|9 +T02|003|AGE|9 +T02|004|AGE|9 +T02|005|AGE|9 +T03|006|AGE|9 +T03|007|AGE|9 +T03|008|AGE|9 +T03|009|AGE|9 +T03|010|AGE|9 +T03|011|AGE|9 +T03|012|AGE|9 +T04|013|AGE|9 +T04|014|AGE|9 +T04|015|AGE|9 +T04|016|AGE|9 +T04|017|AGE|9 +T04|018|AGE|9 +T04|019|AGE|9 +T04|020|AGE|9 +T05|021|AGE|9 +T05|022|AGE|9 +T05|023|AGE|9 +T05|024|AGE|9 +T05|025|AGE|9 +T05|026|AGE|9 +T05|027|AGE|9 +T05|028|AGE|9 +T05|029|AGE|9 +T05|030|AGE|9 +T06|031|AGE|9 +T06|032|AGE|9 +T06|033|AGE|9 +T06|034|AGE|9 +T06|035|AGE|9 +T06|036|AGE|9 +T06|037|AGE|9 +T06|038|AGE|9 +T06|039|AGE|9 +T06|040|AGE|9 +T07|041|AGE|9 +T07|042|AGE|9 +T07|043|AGE|9 +T07|044|AGE|9 +T07|045|AGE|9 +T07|046|AGE|9 +T07|047|AGE|9 +T07|048|AGE|9 +T07|049|AGE|9 +T07|050|AGE|9 +T08|051|AGE|9 +T08|052|AGE|9 +T08|053|AGE|9 +T08|054|AGE|9 +T08|055|AGE|9 +T08|056|AGE|9 +T08|057|AGE|9 +T08|058|AGE|9 +T08|059|AGE|9 +T08|060|AGE|9 +T09|061|AGE|9 +T09|062|AGE|9 +T09|063|AGE|9 +T09|064|AGE|9 +T09|065|AGE|9 +T09|066|AGE|9 +T09|067|AGE|9 +T09|068|AGE|9 +T09|069|AGE|9 +T09|070|AGE|9 +T10|071|AGE|9 +T10|072|AGE|9 +T10|073|AGE|9 +T10|074|AGE|9 +T10|075|AGE|9 +T10|076|AGE|9 +T10|077|AGE|9 +T10|078|AGE|9 +T10|079|AGE|9 +T10|080|AGE|9 +T11|081|AGE|9 +T11|082|AGE|9 +T11|083|AGE|9 +T11|084|AGE|9 +T11|085|AGE|9 +T11|086|AGE|9 +T11|087|AGE|9 +T11|088|AGE|9 +T11|089|AGE|9 +T11|090|AGE|9 +T11|091|AGE|9 +T11|092|AGE|9 +T11|093|AGE|9 +T11|094|AGE|9 +T11|095|AGE|9 +T11|096|AGE|9 +T11|097|AGE|9 +T11|098|AGE|9 +T11|099|AGE|9 +T11|100|AGE|9 +T11|101|AGE|9 +T11|102|AGE|9 +T11|103|AGE|9 +T11|104|AGE|9 +T11|105|AGE|9 +T11|106|AGE|9 +T11|107|AGE|9 +T11|108|AGE|9 +T11|109|AGE|9 +T11|110|AGE|9 +T11|111|AGE|9 +T11|112|AGE|9 +T11|113|AGE|9 +T11|114|AGE|9 +T11|115|AGE|9 +T11|116|AGE|9 +T11|117|AGE|9 +T11|118|AGE|9 +T11|119|AGE|9 +T11|120|AGE|9 diff --git a/db/data2/dbdata_activite_t_classes_sections_elements_duree_sejour.csv b/db/data2/dbdata_activite_t_classes_sections_elements_duree_sejour.csv new file mode 100644 index 0000000..c9f132a --- /dev/null +++ b/db/data2/dbdata_activite_t_classes_sections_elements_duree_sejour.csv @@ -0,0 +1,10001 @@ +section_code|to_code|table_code|classe_sequence +S1|0000|DURSEJ|9 +S2|0001|DURSEJ|9 +S3|0002|DURSEJ|9 +S3|0003|DURSEJ|9 +S3|0004|DURSEJ|9 +S3|0005|DURSEJ|9 +S4|0006|DURSEJ|9 +S4|0007|DURSEJ|9 +S4|0008|DURSEJ|9 +S4|0009|DURSEJ|9 +S4|0010|DURSEJ|9 +S5|0011|DURSEJ|9 +S5|0012|DURSEJ|9 +S5|0013|DURSEJ|9 +S5|0014|DURSEJ|9 +S5|0015|DURSEJ|9 +S5|0016|DURSEJ|9 +S5|0017|DURSEJ|9 +S5|0018|DURSEJ|9 +S5|0019|DURSEJ|9 +S5|0020|DURSEJ|9 +S6|0021|DURSEJ|9 +S6|0022|DURSEJ|9 +S6|0023|DURSEJ|9 +S6|0024|DURSEJ|9 +S6|0025|DURSEJ|9 +S6|0026|DURSEJ|9 +S6|0027|DURSEJ|9 +S6|0028|DURSEJ|9 +S6|0029|DURSEJ|9 +S6|0030|DURSEJ|9 +S7|0031|DURSEJ|9 +S7|0032|DURSEJ|9 +S7|0033|DURSEJ|9 +S7|0034|DURSEJ|9 +S7|0035|DURSEJ|9 +S7|0036|DURSEJ|9 +S7|0037|DURSEJ|9 +S7|0038|DURSEJ|9 +S7|0039|DURSEJ|9 +S7|0040|DURSEJ|9 +S7|0041|DURSEJ|9 +S7|0042|DURSEJ|9 +S7|0043|DURSEJ|9 +S7|0044|DURSEJ|9 +S7|0045|DURSEJ|9 +S7|0046|DURSEJ|9 +S7|0047|DURSEJ|9 +S7|0048|DURSEJ|9 +S7|0049|DURSEJ|9 +S7|0050|DURSEJ|9 +S7|0051|DURSEJ|9 +S7|0052|DURSEJ|9 +S7|0053|DURSEJ|9 +S7|0054|DURSEJ|9 +S7|0055|DURSEJ|9 +S7|0056|DURSEJ|9 +S7|0057|DURSEJ|9 +S7|0058|DURSEJ|9 +S7|0059|DURSEJ|9 +S7|0060|DURSEJ|9 +S7|0061|DURSEJ|9 +S7|0062|DURSEJ|9 +S7|0063|DURSEJ|9 +S7|0064|DURSEJ|9 +S7|0065|DURSEJ|9 +S7|0066|DURSEJ|9 +S7|0067|DURSEJ|9 +S7|0068|DURSEJ|9 +S7|0069|DURSEJ|9 +S7|0070|DURSEJ|9 +S7|0071|DURSEJ|9 +S7|0072|DURSEJ|9 +S7|0073|DURSEJ|9 +S7|0074|DURSEJ|9 +S7|0075|DURSEJ|9 +S7|0076|DURSEJ|9 +S7|0077|DURSEJ|9 +S7|0078|DURSEJ|9 +S7|0079|DURSEJ|9 +S7|0080|DURSEJ|9 +S7|0081|DURSEJ|9 +S7|0082|DURSEJ|9 +S7|0083|DURSEJ|9 +S7|0084|DURSEJ|9 +S7|0085|DURSEJ|9 +S7|0086|DURSEJ|9 +S7|0087|DURSEJ|9 +S7|0088|DURSEJ|9 +S7|0089|DURSEJ|9 +S7|0090|DURSEJ|9 +S7|0091|DURSEJ|9 +S7|0092|DURSEJ|9 +S7|0093|DURSEJ|9 +S7|0094|DURSEJ|9 +S7|0095|DURSEJ|9 +S7|0096|DURSEJ|9 +S7|0097|DURSEJ|9 +S7|0098|DURSEJ|9 +S7|0099|DURSEJ|9 +S7|0100|DURSEJ|9 +S8|0101|DURSEJ|9 +S8|0102|DURSEJ|9 +S8|0103|DURSEJ|9 +S8|0104|DURSEJ|9 +S8|0105|DURSEJ|9 +S8|0106|DURSEJ|9 +S8|0107|DURSEJ|9 +S8|0108|DURSEJ|9 +S8|0109|DURSEJ|9 +S8|0110|DURSEJ|9 +S8|0111|DURSEJ|9 +S8|0112|DURSEJ|9 +S8|0113|DURSEJ|9 +S8|0114|DURSEJ|9 +S8|0115|DURSEJ|9 +S8|0116|DURSEJ|9 +S8|0117|DURSEJ|9 +S8|0118|DURSEJ|9 +S8|0119|DURSEJ|9 +S8|0120|DURSEJ|9 +S8|0121|DURSEJ|9 +S8|0122|DURSEJ|9 +S8|0123|DURSEJ|9 +S8|0124|DURSEJ|9 +S8|0125|DURSEJ|9 +S8|0126|DURSEJ|9 +S8|0127|DURSEJ|9 +S8|0128|DURSEJ|9 +S8|0129|DURSEJ|9 +S8|0130|DURSEJ|9 +S8|0131|DURSEJ|9 +S8|0132|DURSEJ|9 +S8|0133|DURSEJ|9 +S8|0134|DURSEJ|9 +S8|0135|DURSEJ|9 +S8|0136|DURSEJ|9 +S8|0137|DURSEJ|9 +S8|0138|DURSEJ|9 +S8|0139|DURSEJ|9 +S8|0140|DURSEJ|9 +S8|0141|DURSEJ|9 +S8|0142|DURSEJ|9 +S8|0143|DURSEJ|9 +S8|0144|DURSEJ|9 +S8|0145|DURSEJ|9 +S8|0146|DURSEJ|9 +S8|0147|DURSEJ|9 +S8|0148|DURSEJ|9 +S8|0149|DURSEJ|9 +S8|0150|DURSEJ|9 +S8|0151|DURSEJ|9 +S8|0152|DURSEJ|9 +S8|0153|DURSEJ|9 +S8|0154|DURSEJ|9 +S8|0155|DURSEJ|9 +S8|0156|DURSEJ|9 +S8|0157|DURSEJ|9 +S8|0158|DURSEJ|9 +S8|0159|DURSEJ|9 +S8|0160|DURSEJ|9 +S8|0161|DURSEJ|9 +S8|0162|DURSEJ|9 +S8|0163|DURSEJ|9 +S8|0164|DURSEJ|9 +S8|0165|DURSEJ|9 +S8|0166|DURSEJ|9 +S8|0167|DURSEJ|9 +S8|0168|DURSEJ|9 +S8|0169|DURSEJ|9 +S8|0170|DURSEJ|9 +S8|0171|DURSEJ|9 +S8|0172|DURSEJ|9 +S8|0173|DURSEJ|9 +S8|0174|DURSEJ|9 +S8|0175|DURSEJ|9 +S8|0176|DURSEJ|9 +S8|0177|DURSEJ|9 +S8|0178|DURSEJ|9 +S8|0179|DURSEJ|9 +S8|0180|DURSEJ|9 +S8|0181|DURSEJ|9 +S8|0182|DURSEJ|9 +S8|0183|DURSEJ|9 +S8|0184|DURSEJ|9 +S8|0185|DURSEJ|9 +S8|0186|DURSEJ|9 +S8|0187|DURSEJ|9 +S8|0188|DURSEJ|9 +S8|0189|DURSEJ|9 +S8|0190|DURSEJ|9 +S8|0191|DURSEJ|9 +S8|0192|DURSEJ|9 +S8|0193|DURSEJ|9 +S8|0194|DURSEJ|9 +S8|0195|DURSEJ|9 +S8|0196|DURSEJ|9 +S8|0197|DURSEJ|9 +S8|0198|DURSEJ|9 +S8|0199|DURSEJ|9 +S8|0200|DURSEJ|9 +S8|0201|DURSEJ|9 +S8|0202|DURSEJ|9 +S8|0203|DURSEJ|9 +S8|0204|DURSEJ|9 +S8|0205|DURSEJ|9 +S8|0206|DURSEJ|9 +S8|0207|DURSEJ|9 +S8|0208|DURSEJ|9 +S8|0209|DURSEJ|9 +S8|0210|DURSEJ|9 +S8|0211|DURSEJ|9 +S8|0212|DURSEJ|9 +S8|0213|DURSEJ|9 +S8|0214|DURSEJ|9 +S8|0215|DURSEJ|9 +S8|0216|DURSEJ|9 +S8|0217|DURSEJ|9 +S8|0218|DURSEJ|9 +S8|0219|DURSEJ|9 +S8|0220|DURSEJ|9 +S8|0221|DURSEJ|9 +S8|0222|DURSEJ|9 +S8|0223|DURSEJ|9 +S8|0224|DURSEJ|9 +S8|0225|DURSEJ|9 +S8|0226|DURSEJ|9 +S8|0227|DURSEJ|9 +S8|0228|DURSEJ|9 +S8|0229|DURSEJ|9 +S8|0230|DURSEJ|9 +S8|0231|DURSEJ|9 +S8|0232|DURSEJ|9 +S8|0233|DURSEJ|9 +S8|0234|DURSEJ|9 +S8|0235|DURSEJ|9 +S8|0236|DURSEJ|9 +S8|0237|DURSEJ|9 +S8|0238|DURSEJ|9 +S8|0239|DURSEJ|9 +S8|0240|DURSEJ|9 +S8|0241|DURSEJ|9 +S8|0242|DURSEJ|9 +S8|0243|DURSEJ|9 +S8|0244|DURSEJ|9 +S8|0245|DURSEJ|9 +S8|0246|DURSEJ|9 +S8|0247|DURSEJ|9 +S8|0248|DURSEJ|9 +S8|0249|DURSEJ|9 +S8|0250|DURSEJ|9 +S8|0251|DURSEJ|9 +S8|0252|DURSEJ|9 +S8|0253|DURSEJ|9 +S8|0254|DURSEJ|9 +S8|0255|DURSEJ|9 +S8|0256|DURSEJ|9 +S8|0257|DURSEJ|9 +S8|0258|DURSEJ|9 +S8|0259|DURSEJ|9 +S8|0260|DURSEJ|9 +S8|0261|DURSEJ|9 +S8|0262|DURSEJ|9 +S8|0263|DURSEJ|9 +S8|0264|DURSEJ|9 +S8|0265|DURSEJ|9 +S8|0266|DURSEJ|9 +S8|0267|DURSEJ|9 +S8|0268|DURSEJ|9 +S8|0269|DURSEJ|9 +S8|0270|DURSEJ|9 +S8|0271|DURSEJ|9 +S8|0272|DURSEJ|9 +S8|0273|DURSEJ|9 +S8|0274|DURSEJ|9 +S8|0275|DURSEJ|9 +S8|0276|DURSEJ|9 +S8|0277|DURSEJ|9 +S8|0278|DURSEJ|9 +S8|0279|DURSEJ|9 +S8|0280|DURSEJ|9 +S8|0281|DURSEJ|9 +S8|0282|DURSEJ|9 +S8|0283|DURSEJ|9 +S8|0284|DURSEJ|9 +S8|0285|DURSEJ|9 +S8|0286|DURSEJ|9 +S8|0287|DURSEJ|9 +S8|0288|DURSEJ|9 +S8|0289|DURSEJ|9 +S8|0290|DURSEJ|9 +S8|0291|DURSEJ|9 +S8|0292|DURSEJ|9 +S8|0293|DURSEJ|9 +S8|0294|DURSEJ|9 +S8|0295|DURSEJ|9 +S8|0296|DURSEJ|9 +S8|0297|DURSEJ|9 +S8|0298|DURSEJ|9 +S8|0299|DURSEJ|9 +S8|0300|DURSEJ|9 +S8|0301|DURSEJ|9 +S8|0302|DURSEJ|9 +S8|0303|DURSEJ|9 +S8|0304|DURSEJ|9 +S8|0305|DURSEJ|9 +S8|0306|DURSEJ|9 +S8|0307|DURSEJ|9 +S8|0308|DURSEJ|9 +S8|0309|DURSEJ|9 +S8|0310|DURSEJ|9 +S8|0311|DURSEJ|9 +S8|0312|DURSEJ|9 +S8|0313|DURSEJ|9 +S8|0314|DURSEJ|9 +S8|0315|DURSEJ|9 +S8|0316|DURSEJ|9 +S8|0317|DURSEJ|9 +S8|0318|DURSEJ|9 +S8|0319|DURSEJ|9 +S8|0320|DURSEJ|9 +S8|0321|DURSEJ|9 +S8|0322|DURSEJ|9 +S8|0323|DURSEJ|9 +S8|0324|DURSEJ|9 +S8|0325|DURSEJ|9 +S8|0326|DURSEJ|9 +S8|0327|DURSEJ|9 +S8|0328|DURSEJ|9 +S8|0329|DURSEJ|9 +S8|0330|DURSEJ|9 +S8|0331|DURSEJ|9 +S8|0332|DURSEJ|9 +S8|0333|DURSEJ|9 +S8|0334|DURSEJ|9 +S8|0335|DURSEJ|9 +S8|0336|DURSEJ|9 +S8|0337|DURSEJ|9 +S8|0338|DURSEJ|9 +S8|0339|DURSEJ|9 +S8|0340|DURSEJ|9 +S8|0341|DURSEJ|9 +S8|0342|DURSEJ|9 +S8|0343|DURSEJ|9 +S8|0344|DURSEJ|9 +S8|0345|DURSEJ|9 +S8|0346|DURSEJ|9 +S8|0347|DURSEJ|9 +S8|0348|DURSEJ|9 +S8|0349|DURSEJ|9 +S8|0350|DURSEJ|9 +S8|0351|DURSEJ|9 +S8|0352|DURSEJ|9 +S8|0353|DURSEJ|9 +S8|0354|DURSEJ|9 +S8|0355|DURSEJ|9 +S8|0356|DURSEJ|9 +S8|0357|DURSEJ|9 +S8|0358|DURSEJ|9 +S8|0359|DURSEJ|9 +S8|0360|DURSEJ|9 +S8|0361|DURSEJ|9 +S8|0362|DURSEJ|9 +S8|0363|DURSEJ|9 +S8|0364|DURSEJ|9 +S8|0365|DURSEJ|9 +S8|0366|DURSEJ|9 +S8|0367|DURSEJ|9 +S8|0368|DURSEJ|9 +S8|0369|DURSEJ|9 +S8|0370|DURSEJ|9 +S8|0371|DURSEJ|9 +S8|0372|DURSEJ|9 +S8|0373|DURSEJ|9 +S8|0374|DURSEJ|9 +S8|0375|DURSEJ|9 +S8|0376|DURSEJ|9 +S8|0377|DURSEJ|9 +S8|0378|DURSEJ|9 +S8|0379|DURSEJ|9 +S8|0380|DURSEJ|9 +S8|0381|DURSEJ|9 +S8|0382|DURSEJ|9 +S8|0383|DURSEJ|9 +S8|0384|DURSEJ|9 +S8|0385|DURSEJ|9 +S8|0386|DURSEJ|9 +S8|0387|DURSEJ|9 +S8|0388|DURSEJ|9 +S8|0389|DURSEJ|9 +S8|0390|DURSEJ|9 +S8|0391|DURSEJ|9 +S8|0392|DURSEJ|9 +S8|0393|DURSEJ|9 +S8|0394|DURSEJ|9 +S8|0395|DURSEJ|9 +S8|0396|DURSEJ|9 +S8|0397|DURSEJ|9 +S8|0398|DURSEJ|9 +S8|0399|DURSEJ|9 +S8|0400|DURSEJ|9 +S8|0401|DURSEJ|9 +S8|0402|DURSEJ|9 +S8|0403|DURSEJ|9 +S8|0404|DURSEJ|9 +S8|0405|DURSEJ|9 +S8|0406|DURSEJ|9 +S8|0407|DURSEJ|9 +S8|0408|DURSEJ|9 +S8|0409|DURSEJ|9 +S8|0410|DURSEJ|9 +S8|0411|DURSEJ|9 +S8|0412|DURSEJ|9 +S8|0413|DURSEJ|9 +S8|0414|DURSEJ|9 +S8|0415|DURSEJ|9 +S8|0416|DURSEJ|9 +S8|0417|DURSEJ|9 +S8|0418|DURSEJ|9 +S8|0419|DURSEJ|9 +S8|0420|DURSEJ|9 +S8|0421|DURSEJ|9 +S8|0422|DURSEJ|9 +S8|0423|DURSEJ|9 +S8|0424|DURSEJ|9 +S8|0425|DURSEJ|9 +S8|0426|DURSEJ|9 +S8|0427|DURSEJ|9 +S8|0428|DURSEJ|9 +S8|0429|DURSEJ|9 +S8|0430|DURSEJ|9 +S8|0431|DURSEJ|9 +S8|0432|DURSEJ|9 +S8|0433|DURSEJ|9 +S8|0434|DURSEJ|9 +S8|0435|DURSEJ|9 +S8|0436|DURSEJ|9 +S8|0437|DURSEJ|9 +S8|0438|DURSEJ|9 +S8|0439|DURSEJ|9 +S8|0440|DURSEJ|9 +S8|0441|DURSEJ|9 +S8|0442|DURSEJ|9 +S8|0443|DURSEJ|9 +S8|0444|DURSEJ|9 +S8|0445|DURSEJ|9 +S8|0446|DURSEJ|9 +S8|0447|DURSEJ|9 +S8|0448|DURSEJ|9 +S8|0449|DURSEJ|9 +S8|0450|DURSEJ|9 +S8|0451|DURSEJ|9 +S8|0452|DURSEJ|9 +S8|0453|DURSEJ|9 +S8|0454|DURSEJ|9 +S8|0455|DURSEJ|9 +S8|0456|DURSEJ|9 +S8|0457|DURSEJ|9 +S8|0458|DURSEJ|9 +S8|0459|DURSEJ|9 +S8|0460|DURSEJ|9 +S8|0461|DURSEJ|9 +S8|0462|DURSEJ|9 +S8|0463|DURSEJ|9 +S8|0464|DURSEJ|9 +S8|0465|DURSEJ|9 +S8|0466|DURSEJ|9 +S8|0467|DURSEJ|9 +S8|0468|DURSEJ|9 +S8|0469|DURSEJ|9 +S8|0470|DURSEJ|9 +S8|0471|DURSEJ|9 +S8|0472|DURSEJ|9 +S8|0473|DURSEJ|9 +S8|0474|DURSEJ|9 +S8|0475|DURSEJ|9 +S8|0476|DURSEJ|9 +S8|0477|DURSEJ|9 +S8|0478|DURSEJ|9 +S8|0479|DURSEJ|9 +S8|0480|DURSEJ|9 +S8|0481|DURSEJ|9 +S8|0482|DURSEJ|9 +S8|0483|DURSEJ|9 +S8|0484|DURSEJ|9 +S8|0485|DURSEJ|9 +S8|0486|DURSEJ|9 +S8|0487|DURSEJ|9 +S8|0488|DURSEJ|9 +S8|0489|DURSEJ|9 +S8|0490|DURSEJ|9 +S8|0491|DURSEJ|9 +S8|0492|DURSEJ|9 +S8|0493|DURSEJ|9 +S8|0494|DURSEJ|9 +S8|0495|DURSEJ|9 +S8|0496|DURSEJ|9 +S8|0497|DURSEJ|9 +S8|0498|DURSEJ|9 +S8|0499|DURSEJ|9 +S8|0500|DURSEJ|9 +S8|0501|DURSEJ|9 +S8|0502|DURSEJ|9 +S8|0503|DURSEJ|9 +S8|0504|DURSEJ|9 +S8|0505|DURSEJ|9 +S8|0506|DURSEJ|9 +S8|0507|DURSEJ|9 +S8|0508|DURSEJ|9 +S8|0509|DURSEJ|9 +S8|0510|DURSEJ|9 +S8|0511|DURSEJ|9 +S8|0512|DURSEJ|9 +S8|0513|DURSEJ|9 +S8|0514|DURSEJ|9 +S8|0515|DURSEJ|9 +S8|0516|DURSEJ|9 +S8|0517|DURSEJ|9 +S8|0518|DURSEJ|9 +S8|0519|DURSEJ|9 +S8|0520|DURSEJ|9 +S8|0521|DURSEJ|9 +S8|0522|DURSEJ|9 +S8|0523|DURSEJ|9 +S8|0524|DURSEJ|9 +S8|0525|DURSEJ|9 +S8|0526|DURSEJ|9 +S8|0527|DURSEJ|9 +S8|0528|DURSEJ|9 +S8|0529|DURSEJ|9 +S8|0530|DURSEJ|9 +S8|0531|DURSEJ|9 +S8|0532|DURSEJ|9 +S8|0533|DURSEJ|9 +S8|0534|DURSEJ|9 +S8|0535|DURSEJ|9 +S8|0536|DURSEJ|9 +S8|0537|DURSEJ|9 +S8|0538|DURSEJ|9 +S8|0539|DURSEJ|9 +S8|0540|DURSEJ|9 +S8|0541|DURSEJ|9 +S8|0542|DURSEJ|9 +S8|0543|DURSEJ|9 +S8|0544|DURSEJ|9 +S8|0545|DURSEJ|9 +S8|0546|DURSEJ|9 +S8|0547|DURSEJ|9 +S8|0548|DURSEJ|9 +S8|0549|DURSEJ|9 +S8|0550|DURSEJ|9 +S8|0551|DURSEJ|9 +S8|0552|DURSEJ|9 +S8|0553|DURSEJ|9 +S8|0554|DURSEJ|9 +S8|0555|DURSEJ|9 +S8|0556|DURSEJ|9 +S8|0557|DURSEJ|9 +S8|0558|DURSEJ|9 +S8|0559|DURSEJ|9 +S8|0560|DURSEJ|9 +S8|0561|DURSEJ|9 +S8|0562|DURSEJ|9 +S8|0563|DURSEJ|9 +S8|0564|DURSEJ|9 +S8|0565|DURSEJ|9 +S8|0566|DURSEJ|9 +S8|0567|DURSEJ|9 +S8|0568|DURSEJ|9 +S8|0569|DURSEJ|9 +S8|0570|DURSEJ|9 +S8|0571|DURSEJ|9 +S8|0572|DURSEJ|9 +S8|0573|DURSEJ|9 +S8|0574|DURSEJ|9 +S8|0575|DURSEJ|9 +S8|0576|DURSEJ|9 +S8|0577|DURSEJ|9 +S8|0578|DURSEJ|9 +S8|0579|DURSEJ|9 +S8|0580|DURSEJ|9 +S8|0581|DURSEJ|9 +S8|0582|DURSEJ|9 +S8|0583|DURSEJ|9 +S8|0584|DURSEJ|9 +S8|0585|DURSEJ|9 +S8|0586|DURSEJ|9 +S8|0587|DURSEJ|9 +S8|0588|DURSEJ|9 +S8|0589|DURSEJ|9 +S8|0590|DURSEJ|9 +S8|0591|DURSEJ|9 +S8|0592|DURSEJ|9 +S8|0593|DURSEJ|9 +S8|0594|DURSEJ|9 +S8|0595|DURSEJ|9 +S8|0596|DURSEJ|9 +S8|0597|DURSEJ|9 +S8|0598|DURSEJ|9 +S8|0599|DURSEJ|9 +S8|0600|DURSEJ|9 +S8|0601|DURSEJ|9 +S8|0602|DURSEJ|9 +S8|0603|DURSEJ|9 +S8|0604|DURSEJ|9 +S8|0605|DURSEJ|9 +S8|0606|DURSEJ|9 +S8|0607|DURSEJ|9 +S8|0608|DURSEJ|9 +S8|0609|DURSEJ|9 +S8|0610|DURSEJ|9 +S8|0611|DURSEJ|9 +S8|0612|DURSEJ|9 +S8|0613|DURSEJ|9 +S8|0614|DURSEJ|9 +S8|0615|DURSEJ|9 +S8|0616|DURSEJ|9 +S8|0617|DURSEJ|9 +S8|0618|DURSEJ|9 +S8|0619|DURSEJ|9 +S8|0620|DURSEJ|9 +S8|0621|DURSEJ|9 +S8|0622|DURSEJ|9 +S8|0623|DURSEJ|9 +S8|0624|DURSEJ|9 +S8|0625|DURSEJ|9 +S8|0626|DURSEJ|9 +S8|0627|DURSEJ|9 +S8|0628|DURSEJ|9 +S8|0629|DURSEJ|9 +S8|0630|DURSEJ|9 +S8|0631|DURSEJ|9 +S8|0632|DURSEJ|9 +S8|0633|DURSEJ|9 +S8|0634|DURSEJ|9 +S8|0635|DURSEJ|9 +S8|0636|DURSEJ|9 +S8|0637|DURSEJ|9 +S8|0638|DURSEJ|9 +S8|0639|DURSEJ|9 +S8|0640|DURSEJ|9 +S8|0641|DURSEJ|9 +S8|0642|DURSEJ|9 +S8|0643|DURSEJ|9 +S8|0644|DURSEJ|9 +S8|0645|DURSEJ|9 +S8|0646|DURSEJ|9 +S8|0647|DURSEJ|9 +S8|0648|DURSEJ|9 +S8|0649|DURSEJ|9 +S8|0650|DURSEJ|9 +S8|0651|DURSEJ|9 +S8|0652|DURSEJ|9 +S8|0653|DURSEJ|9 +S8|0654|DURSEJ|9 +S8|0655|DURSEJ|9 +S8|0656|DURSEJ|9 +S8|0657|DURSEJ|9 +S8|0658|DURSEJ|9 +S8|0659|DURSEJ|9 +S8|0660|DURSEJ|9 +S8|0661|DURSEJ|9 +S8|0662|DURSEJ|9 +S8|0663|DURSEJ|9 +S8|0664|DURSEJ|9 +S8|0665|DURSEJ|9 +S8|0666|DURSEJ|9 +S8|0667|DURSEJ|9 +S8|0668|DURSEJ|9 +S8|0669|DURSEJ|9 +S8|0670|DURSEJ|9 +S8|0671|DURSEJ|9 +S8|0672|DURSEJ|9 +S8|0673|DURSEJ|9 +S8|0674|DURSEJ|9 +S8|0675|DURSEJ|9 +S8|0676|DURSEJ|9 +S8|0677|DURSEJ|9 +S8|0678|DURSEJ|9 +S8|0679|DURSEJ|9 +S8|0680|DURSEJ|9 +S8|0681|DURSEJ|9 +S8|0682|DURSEJ|9 +S8|0683|DURSEJ|9 +S8|0684|DURSEJ|9 +S8|0685|DURSEJ|9 +S8|0686|DURSEJ|9 +S8|0687|DURSEJ|9 +S8|0688|DURSEJ|9 +S8|0689|DURSEJ|9 +S8|0690|DURSEJ|9 +S8|0691|DURSEJ|9 +S8|0692|DURSEJ|9 +S8|0693|DURSEJ|9 +S8|0694|DURSEJ|9 +S8|0695|DURSEJ|9 +S8|0696|DURSEJ|9 +S8|0697|DURSEJ|9 +S8|0698|DURSEJ|9 +S8|0699|DURSEJ|9 +S8|0700|DURSEJ|9 +S8|0701|DURSEJ|9 +S8|0702|DURSEJ|9 +S8|0703|DURSEJ|9 +S8|0704|DURSEJ|9 +S8|0705|DURSEJ|9 +S8|0706|DURSEJ|9 +S8|0707|DURSEJ|9 +S8|0708|DURSEJ|9 +S8|0709|DURSEJ|9 +S8|0710|DURSEJ|9 +S8|0711|DURSEJ|9 +S8|0712|DURSEJ|9 +S8|0713|DURSEJ|9 +S8|0714|DURSEJ|9 +S8|0715|DURSEJ|9 +S8|0716|DURSEJ|9 +S8|0717|DURSEJ|9 +S8|0718|DURSEJ|9 +S8|0719|DURSEJ|9 +S8|0720|DURSEJ|9 +S8|0721|DURSEJ|9 +S8|0722|DURSEJ|9 +S8|0723|DURSEJ|9 +S8|0724|DURSEJ|9 +S8|0725|DURSEJ|9 +S8|0726|DURSEJ|9 +S8|0727|DURSEJ|9 +S8|0728|DURSEJ|9 +S8|0729|DURSEJ|9 +S8|0730|DURSEJ|9 +S8|0731|DURSEJ|9 +S8|0732|DURSEJ|9 +S8|0733|DURSEJ|9 +S8|0734|DURSEJ|9 +S8|0735|DURSEJ|9 +S8|0736|DURSEJ|9 +S8|0737|DURSEJ|9 +S8|0738|DURSEJ|9 +S8|0739|DURSEJ|9 +S8|0740|DURSEJ|9 +S8|0741|DURSEJ|9 +S8|0742|DURSEJ|9 +S8|0743|DURSEJ|9 +S8|0744|DURSEJ|9 +S8|0745|DURSEJ|9 +S8|0746|DURSEJ|9 +S8|0747|DURSEJ|9 +S8|0748|DURSEJ|9 +S8|0749|DURSEJ|9 +S8|0750|DURSEJ|9 +S8|0751|DURSEJ|9 +S8|0752|DURSEJ|9 +S8|0753|DURSEJ|9 +S8|0754|DURSEJ|9 +S8|0755|DURSEJ|9 +S8|0756|DURSEJ|9 +S8|0757|DURSEJ|9 +S8|0758|DURSEJ|9 +S8|0759|DURSEJ|9 +S8|0760|DURSEJ|9 +S8|0761|DURSEJ|9 +S8|0762|DURSEJ|9 +S8|0763|DURSEJ|9 +S8|0764|DURSEJ|9 +S8|0765|DURSEJ|9 +S8|0766|DURSEJ|9 +S8|0767|DURSEJ|9 +S8|0768|DURSEJ|9 +S8|0769|DURSEJ|9 +S8|0770|DURSEJ|9 +S8|0771|DURSEJ|9 +S8|0772|DURSEJ|9 +S8|0773|DURSEJ|9 +S8|0774|DURSEJ|9 +S8|0775|DURSEJ|9 +S8|0776|DURSEJ|9 +S8|0777|DURSEJ|9 +S8|0778|DURSEJ|9 +S8|0779|DURSEJ|9 +S8|0780|DURSEJ|9 +S8|0781|DURSEJ|9 +S8|0782|DURSEJ|9 +S8|0783|DURSEJ|9 +S8|0784|DURSEJ|9 +S8|0785|DURSEJ|9 +S8|0786|DURSEJ|9 +S8|0787|DURSEJ|9 +S8|0788|DURSEJ|9 +S8|0789|DURSEJ|9 +S8|0790|DURSEJ|9 +S8|0791|DURSEJ|9 +S8|0792|DURSEJ|9 +S8|0793|DURSEJ|9 +S8|0794|DURSEJ|9 +S8|0795|DURSEJ|9 +S8|0796|DURSEJ|9 +S8|0797|DURSEJ|9 +S8|0798|DURSEJ|9 +S8|0799|DURSEJ|9 +S8|0800|DURSEJ|9 +S8|0801|DURSEJ|9 +S8|0802|DURSEJ|9 +S8|0803|DURSEJ|9 +S8|0804|DURSEJ|9 +S8|0805|DURSEJ|9 +S8|0806|DURSEJ|9 +S8|0807|DURSEJ|9 +S8|0808|DURSEJ|9 +S8|0809|DURSEJ|9 +S8|0810|DURSEJ|9 +S8|0811|DURSEJ|9 +S8|0812|DURSEJ|9 +S8|0813|DURSEJ|9 +S8|0814|DURSEJ|9 +S8|0815|DURSEJ|9 +S8|0816|DURSEJ|9 +S8|0817|DURSEJ|9 +S8|0818|DURSEJ|9 +S8|0819|DURSEJ|9 +S8|0820|DURSEJ|9 +S8|0821|DURSEJ|9 +S8|0822|DURSEJ|9 +S8|0823|DURSEJ|9 +S8|0824|DURSEJ|9 +S8|0825|DURSEJ|9 +S8|0826|DURSEJ|9 +S8|0827|DURSEJ|9 +S8|0828|DURSEJ|9 +S8|0829|DURSEJ|9 +S8|0830|DURSEJ|9 +S8|0831|DURSEJ|9 +S8|0832|DURSEJ|9 +S8|0833|DURSEJ|9 +S8|0834|DURSEJ|9 +S8|0835|DURSEJ|9 +S8|0836|DURSEJ|9 +S8|0837|DURSEJ|9 +S8|0838|DURSEJ|9 +S8|0839|DURSEJ|9 +S8|0840|DURSEJ|9 +S8|0841|DURSEJ|9 +S8|0842|DURSEJ|9 +S8|0843|DURSEJ|9 +S8|0844|DURSEJ|9 +S8|0845|DURSEJ|9 +S8|0846|DURSEJ|9 +S8|0847|DURSEJ|9 +S8|0848|DURSEJ|9 +S8|0849|DURSEJ|9 +S8|0850|DURSEJ|9 +S8|0851|DURSEJ|9 +S8|0852|DURSEJ|9 +S8|0853|DURSEJ|9 +S8|0854|DURSEJ|9 +S8|0855|DURSEJ|9 +S8|0856|DURSEJ|9 +S8|0857|DURSEJ|9 +S8|0858|DURSEJ|9 +S8|0859|DURSEJ|9 +S8|0860|DURSEJ|9 +S8|0861|DURSEJ|9 +S8|0862|DURSEJ|9 +S8|0863|DURSEJ|9 +S8|0864|DURSEJ|9 +S8|0865|DURSEJ|9 +S8|0866|DURSEJ|9 +S8|0867|DURSEJ|9 +S8|0868|DURSEJ|9 +S8|0869|DURSEJ|9 +S8|0870|DURSEJ|9 +S8|0871|DURSEJ|9 +S8|0872|DURSEJ|9 +S8|0873|DURSEJ|9 +S8|0874|DURSEJ|9 +S8|0875|DURSEJ|9 +S8|0876|DURSEJ|9 +S8|0877|DURSEJ|9 +S8|0878|DURSEJ|9 +S8|0879|DURSEJ|9 +S8|0880|DURSEJ|9 +S8|0881|DURSEJ|9 +S8|0882|DURSEJ|9 +S8|0883|DURSEJ|9 +S8|0884|DURSEJ|9 +S8|0885|DURSEJ|9 +S8|0886|DURSEJ|9 +S8|0887|DURSEJ|9 +S8|0888|DURSEJ|9 +S8|0889|DURSEJ|9 +S8|0890|DURSEJ|9 +S8|0891|DURSEJ|9 +S8|0892|DURSEJ|9 +S8|0893|DURSEJ|9 +S8|0894|DURSEJ|9 +S8|0895|DURSEJ|9 +S8|0896|DURSEJ|9 +S8|0897|DURSEJ|9 +S8|0898|DURSEJ|9 +S8|0899|DURSEJ|9 +S8|0900|DURSEJ|9 +S8|0901|DURSEJ|9 +S8|0902|DURSEJ|9 +S8|0903|DURSEJ|9 +S8|0904|DURSEJ|9 +S8|0905|DURSEJ|9 +S8|0906|DURSEJ|9 +S8|0907|DURSEJ|9 +S8|0908|DURSEJ|9 +S8|0909|DURSEJ|9 +S8|0910|DURSEJ|9 +S8|0911|DURSEJ|9 +S8|0912|DURSEJ|9 +S8|0913|DURSEJ|9 +S8|0914|DURSEJ|9 +S8|0915|DURSEJ|9 +S8|0916|DURSEJ|9 +S8|0917|DURSEJ|9 +S8|0918|DURSEJ|9 +S8|0919|DURSEJ|9 +S8|0920|DURSEJ|9 +S8|0921|DURSEJ|9 +S8|0922|DURSEJ|9 +S8|0923|DURSEJ|9 +S8|0924|DURSEJ|9 +S8|0925|DURSEJ|9 +S8|0926|DURSEJ|9 +S8|0927|DURSEJ|9 +S8|0928|DURSEJ|9 +S8|0929|DURSEJ|9 +S8|0930|DURSEJ|9 +S8|0931|DURSEJ|9 +S8|0932|DURSEJ|9 +S8|0933|DURSEJ|9 +S8|0934|DURSEJ|9 +S8|0935|DURSEJ|9 +S8|0936|DURSEJ|9 +S8|0937|DURSEJ|9 +S8|0938|DURSEJ|9 +S8|0939|DURSEJ|9 +S8|0940|DURSEJ|9 +S8|0941|DURSEJ|9 +S8|0942|DURSEJ|9 +S8|0943|DURSEJ|9 +S8|0944|DURSEJ|9 +S8|0945|DURSEJ|9 +S8|0946|DURSEJ|9 +S8|0947|DURSEJ|9 +S8|0948|DURSEJ|9 +S8|0949|DURSEJ|9 +S8|0950|DURSEJ|9 +S8|0951|DURSEJ|9 +S8|0952|DURSEJ|9 +S8|0953|DURSEJ|9 +S8|0954|DURSEJ|9 +S8|0955|DURSEJ|9 +S8|0956|DURSEJ|9 +S8|0957|DURSEJ|9 +S8|0958|DURSEJ|9 +S8|0959|DURSEJ|9 +S8|0960|DURSEJ|9 +S8|0961|DURSEJ|9 +S8|0962|DURSEJ|9 +S8|0963|DURSEJ|9 +S8|0964|DURSEJ|9 +S8|0965|DURSEJ|9 +S8|0966|DURSEJ|9 +S8|0967|DURSEJ|9 +S8|0968|DURSEJ|9 +S8|0969|DURSEJ|9 +S8|0970|DURSEJ|9 +S8|0971|DURSEJ|9 +S8|0972|DURSEJ|9 +S8|0973|DURSEJ|9 +S8|0974|DURSEJ|9 +S8|0975|DURSEJ|9 +S8|0976|DURSEJ|9 +S8|0977|DURSEJ|9 +S8|0978|DURSEJ|9 +S8|0979|DURSEJ|9 +S8|0980|DURSEJ|9 +S8|0981|DURSEJ|9 +S8|0982|DURSEJ|9 +S8|0983|DURSEJ|9 +S8|0984|DURSEJ|9 +S8|0985|DURSEJ|9 +S8|0986|DURSEJ|9 +S8|0987|DURSEJ|9 +S8|0988|DURSEJ|9 +S8|0989|DURSEJ|9 +S8|0990|DURSEJ|9 +S8|0991|DURSEJ|9 +S8|0992|DURSEJ|9 +S8|0993|DURSEJ|9 +S8|0994|DURSEJ|9 +S8|0995|DURSEJ|9 +S8|0996|DURSEJ|9 +S8|0997|DURSEJ|9 +S8|0998|DURSEJ|9 +S8|0999|DURSEJ|9 +S8|1000|DURSEJ|9 +S9|1001|DURSEJ|9 +S9|1002|DURSEJ|9 +S9|1003|DURSEJ|9 +S9|1004|DURSEJ|9 +S9|1005|DURSEJ|9 +S9|1006|DURSEJ|9 +S9|1007|DURSEJ|9 +S9|1008|DURSEJ|9 +S9|1009|DURSEJ|9 +S9|1010|DURSEJ|9 +S9|1011|DURSEJ|9 +S9|1012|DURSEJ|9 +S9|1013|DURSEJ|9 +S9|1014|DURSEJ|9 +S9|1015|DURSEJ|9 +S9|1016|DURSEJ|9 +S9|1017|DURSEJ|9 +S9|1018|DURSEJ|9 +S9|1019|DURSEJ|9 +S9|1020|DURSEJ|9 +S9|1021|DURSEJ|9 +S9|1022|DURSEJ|9 +S9|1023|DURSEJ|9 +S9|1024|DURSEJ|9 +S9|1025|DURSEJ|9 +S9|1026|DURSEJ|9 +S9|1027|DURSEJ|9 +S9|1028|DURSEJ|9 +S9|1029|DURSEJ|9 +S9|1030|DURSEJ|9 +S9|1031|DURSEJ|9 +S9|1032|DURSEJ|9 +S9|1033|DURSEJ|9 +S9|1034|DURSEJ|9 +S9|1035|DURSEJ|9 +S9|1036|DURSEJ|9 +S9|1037|DURSEJ|9 +S9|1038|DURSEJ|9 +S9|1039|DURSEJ|9 +S9|1040|DURSEJ|9 +S9|1041|DURSEJ|9 +S9|1042|DURSEJ|9 +S9|1043|DURSEJ|9 +S9|1044|DURSEJ|9 +S9|1045|DURSEJ|9 +S9|1046|DURSEJ|9 +S9|1047|DURSEJ|9 +S9|1048|DURSEJ|9 +S9|1049|DURSEJ|9 +S9|1050|DURSEJ|9 +S9|1051|DURSEJ|9 +S9|1052|DURSEJ|9 +S9|1053|DURSEJ|9 +S9|1054|DURSEJ|9 +S9|1055|DURSEJ|9 +S9|1056|DURSEJ|9 +S9|1057|DURSEJ|9 +S9|1058|DURSEJ|9 +S9|1059|DURSEJ|9 +S9|1060|DURSEJ|9 +S9|1061|DURSEJ|9 +S9|1062|DURSEJ|9 +S9|1063|DURSEJ|9 +S9|1064|DURSEJ|9 +S9|1065|DURSEJ|9 +S9|1066|DURSEJ|9 +S9|1067|DURSEJ|9 +S9|1068|DURSEJ|9 +S9|1069|DURSEJ|9 +S9|1070|DURSEJ|9 +S9|1071|DURSEJ|9 +S9|1072|DURSEJ|9 +S9|1073|DURSEJ|9 +S9|1074|DURSEJ|9 +S9|1075|DURSEJ|9 +S9|1076|DURSEJ|9 +S9|1077|DURSEJ|9 +S9|1078|DURSEJ|9 +S9|1079|DURSEJ|9 +S9|1080|DURSEJ|9 +S9|1081|DURSEJ|9 +S9|1082|DURSEJ|9 +S9|1083|DURSEJ|9 +S9|1084|DURSEJ|9 +S9|1085|DURSEJ|9 +S9|1086|DURSEJ|9 +S9|1087|DURSEJ|9 +S9|1088|DURSEJ|9 +S9|1089|DURSEJ|9 +S9|1090|DURSEJ|9 +S9|1091|DURSEJ|9 +S9|1092|DURSEJ|9 +S9|1093|DURSEJ|9 +S9|1094|DURSEJ|9 +S9|1095|DURSEJ|9 +S9|1096|DURSEJ|9 +S9|1097|DURSEJ|9 +S9|1098|DURSEJ|9 +S9|1099|DURSEJ|9 +S9|1100|DURSEJ|9 +S9|1101|DURSEJ|9 +S9|1102|DURSEJ|9 +S9|1103|DURSEJ|9 +S9|1104|DURSEJ|9 +S9|1105|DURSEJ|9 +S9|1106|DURSEJ|9 +S9|1107|DURSEJ|9 +S9|1108|DURSEJ|9 +S9|1109|DURSEJ|9 +S9|1110|DURSEJ|9 +S9|1111|DURSEJ|9 +S9|1112|DURSEJ|9 +S9|1113|DURSEJ|9 +S9|1114|DURSEJ|9 +S9|1115|DURSEJ|9 +S9|1116|DURSEJ|9 +S9|1117|DURSEJ|9 +S9|1118|DURSEJ|9 +S9|1119|DURSEJ|9 +S9|1120|DURSEJ|9 +S9|1121|DURSEJ|9 +S9|1122|DURSEJ|9 +S9|1123|DURSEJ|9 +S9|1124|DURSEJ|9 +S9|1125|DURSEJ|9 +S9|1126|DURSEJ|9 +S9|1127|DURSEJ|9 +S9|1128|DURSEJ|9 +S9|1129|DURSEJ|9 +S9|1130|DURSEJ|9 +S9|1131|DURSEJ|9 +S9|1132|DURSEJ|9 +S9|1133|DURSEJ|9 +S9|1134|DURSEJ|9 +S9|1135|DURSEJ|9 +S9|1136|DURSEJ|9 +S9|1137|DURSEJ|9 +S9|1138|DURSEJ|9 +S9|1139|DURSEJ|9 +S9|1140|DURSEJ|9 +S9|1141|DURSEJ|9 +S9|1142|DURSEJ|9 +S9|1143|DURSEJ|9 +S9|1144|DURSEJ|9 +S9|1145|DURSEJ|9 +S9|1146|DURSEJ|9 +S9|1147|DURSEJ|9 +S9|1148|DURSEJ|9 +S9|1149|DURSEJ|9 +S9|1150|DURSEJ|9 +S9|1151|DURSEJ|9 +S9|1152|DURSEJ|9 +S9|1153|DURSEJ|9 +S9|1154|DURSEJ|9 +S9|1155|DURSEJ|9 +S9|1156|DURSEJ|9 +S9|1157|DURSEJ|9 +S9|1158|DURSEJ|9 +S9|1159|DURSEJ|9 +S9|1160|DURSEJ|9 +S9|1161|DURSEJ|9 +S9|1162|DURSEJ|9 +S9|1163|DURSEJ|9 +S9|1164|DURSEJ|9 +S9|1165|DURSEJ|9 +S9|1166|DURSEJ|9 +S9|1167|DURSEJ|9 +S9|1168|DURSEJ|9 +S9|1169|DURSEJ|9 +S9|1170|DURSEJ|9 +S9|1171|DURSEJ|9 +S9|1172|DURSEJ|9 +S9|1173|DURSEJ|9 +S9|1174|DURSEJ|9 +S9|1175|DURSEJ|9 +S9|1176|DURSEJ|9 +S9|1177|DURSEJ|9 +S9|1178|DURSEJ|9 +S9|1179|DURSEJ|9 +S9|1180|DURSEJ|9 +S9|1181|DURSEJ|9 +S9|1182|DURSEJ|9 +S9|1183|DURSEJ|9 +S9|1184|DURSEJ|9 +S9|1185|DURSEJ|9 +S9|1186|DURSEJ|9 +S9|1187|DURSEJ|9 +S9|1188|DURSEJ|9 +S9|1189|DURSEJ|9 +S9|1190|DURSEJ|9 +S9|1191|DURSEJ|9 +S9|1192|DURSEJ|9 +S9|1193|DURSEJ|9 +S9|1194|DURSEJ|9 +S9|1195|DURSEJ|9 +S9|1196|DURSEJ|9 +S9|1197|DURSEJ|9 +S9|1198|DURSEJ|9 +S9|1199|DURSEJ|9 +S9|1200|DURSEJ|9 +S9|1201|DURSEJ|9 +S9|1202|DURSEJ|9 +S9|1203|DURSEJ|9 +S9|1204|DURSEJ|9 +S9|1205|DURSEJ|9 +S9|1206|DURSEJ|9 +S9|1207|DURSEJ|9 +S9|1208|DURSEJ|9 +S9|1209|DURSEJ|9 +S9|1210|DURSEJ|9 +S9|1211|DURSEJ|9 +S9|1212|DURSEJ|9 +S9|1213|DURSEJ|9 +S9|1214|DURSEJ|9 +S9|1215|DURSEJ|9 +S9|1216|DURSEJ|9 +S9|1217|DURSEJ|9 +S9|1218|DURSEJ|9 +S9|1219|DURSEJ|9 +S9|1220|DURSEJ|9 +S9|1221|DURSEJ|9 +S9|1222|DURSEJ|9 +S9|1223|DURSEJ|9 +S9|1224|DURSEJ|9 +S9|1225|DURSEJ|9 +S9|1226|DURSEJ|9 +S9|1227|DURSEJ|9 +S9|1228|DURSEJ|9 +S9|1229|DURSEJ|9 +S9|1230|DURSEJ|9 +S9|1231|DURSEJ|9 +S9|1232|DURSEJ|9 +S9|1233|DURSEJ|9 +S9|1234|DURSEJ|9 +S9|1235|DURSEJ|9 +S9|1236|DURSEJ|9 +S9|1237|DURSEJ|9 +S9|1238|DURSEJ|9 +S9|1239|DURSEJ|9 +S9|1240|DURSEJ|9 +S9|1241|DURSEJ|9 +S9|1242|DURSEJ|9 +S9|1243|DURSEJ|9 +S9|1244|DURSEJ|9 +S9|1245|DURSEJ|9 +S9|1246|DURSEJ|9 +S9|1247|DURSEJ|9 +S9|1248|DURSEJ|9 +S9|1249|DURSEJ|9 +S9|1250|DURSEJ|9 +S9|1251|DURSEJ|9 +S9|1252|DURSEJ|9 +S9|1253|DURSEJ|9 +S9|1254|DURSEJ|9 +S9|1255|DURSEJ|9 +S9|1256|DURSEJ|9 +S9|1257|DURSEJ|9 +S9|1258|DURSEJ|9 +S9|1259|DURSEJ|9 +S9|1260|DURSEJ|9 +S9|1261|DURSEJ|9 +S9|1262|DURSEJ|9 +S9|1263|DURSEJ|9 +S9|1264|DURSEJ|9 +S9|1265|DURSEJ|9 +S9|1266|DURSEJ|9 +S9|1267|DURSEJ|9 +S9|1268|DURSEJ|9 +S9|1269|DURSEJ|9 +S9|1270|DURSEJ|9 +S9|1271|DURSEJ|9 +S9|1272|DURSEJ|9 +S9|1273|DURSEJ|9 +S9|1274|DURSEJ|9 +S9|1275|DURSEJ|9 +S9|1276|DURSEJ|9 +S9|1277|DURSEJ|9 +S9|1278|DURSEJ|9 +S9|1279|DURSEJ|9 +S9|1280|DURSEJ|9 +S9|1281|DURSEJ|9 +S9|1282|DURSEJ|9 +S9|1283|DURSEJ|9 +S9|1284|DURSEJ|9 +S9|1285|DURSEJ|9 +S9|1286|DURSEJ|9 +S9|1287|DURSEJ|9 +S9|1288|DURSEJ|9 +S9|1289|DURSEJ|9 +S9|1290|DURSEJ|9 +S9|1291|DURSEJ|9 +S9|1292|DURSEJ|9 +S9|1293|DURSEJ|9 +S9|1294|DURSEJ|9 +S9|1295|DURSEJ|9 +S9|1296|DURSEJ|9 +S9|1297|DURSEJ|9 +S9|1298|DURSEJ|9 +S9|1299|DURSEJ|9 +S9|1300|DURSEJ|9 +S9|1301|DURSEJ|9 +S9|1302|DURSEJ|9 +S9|1303|DURSEJ|9 +S9|1304|DURSEJ|9 +S9|1305|DURSEJ|9 +S9|1306|DURSEJ|9 +S9|1307|DURSEJ|9 +S9|1308|DURSEJ|9 +S9|1309|DURSEJ|9 +S9|1310|DURSEJ|9 +S9|1311|DURSEJ|9 +S9|1312|DURSEJ|9 +S9|1313|DURSEJ|9 +S9|1314|DURSEJ|9 +S9|1315|DURSEJ|9 +S9|1316|DURSEJ|9 +S9|1317|DURSEJ|9 +S9|1318|DURSEJ|9 +S9|1319|DURSEJ|9 +S9|1320|DURSEJ|9 +S9|1321|DURSEJ|9 +S9|1322|DURSEJ|9 +S9|1323|DURSEJ|9 +S9|1324|DURSEJ|9 +S9|1325|DURSEJ|9 +S9|1326|DURSEJ|9 +S9|1327|DURSEJ|9 +S9|1328|DURSEJ|9 +S9|1329|DURSEJ|9 +S9|1330|DURSEJ|9 +S9|1331|DURSEJ|9 +S9|1332|DURSEJ|9 +S9|1333|DURSEJ|9 +S9|1334|DURSEJ|9 +S9|1335|DURSEJ|9 +S9|1336|DURSEJ|9 +S9|1337|DURSEJ|9 +S9|1338|DURSEJ|9 +S9|1339|DURSEJ|9 +S9|1340|DURSEJ|9 +S9|1341|DURSEJ|9 +S9|1342|DURSEJ|9 +S9|1343|DURSEJ|9 +S9|1344|DURSEJ|9 +S9|1345|DURSEJ|9 +S9|1346|DURSEJ|9 +S9|1347|DURSEJ|9 +S9|1348|DURSEJ|9 +S9|1349|DURSEJ|9 +S9|1350|DURSEJ|9 +S9|1351|DURSEJ|9 +S9|1352|DURSEJ|9 +S9|1353|DURSEJ|9 +S9|1354|DURSEJ|9 +S9|1355|DURSEJ|9 +S9|1356|DURSEJ|9 +S9|1357|DURSEJ|9 +S9|1358|DURSEJ|9 +S9|1359|DURSEJ|9 +S9|1360|DURSEJ|9 +S9|1361|DURSEJ|9 +S9|1362|DURSEJ|9 +S9|1363|DURSEJ|9 +S9|1364|DURSEJ|9 +S9|1365|DURSEJ|9 +S9|1366|DURSEJ|9 +S9|1367|DURSEJ|9 +S9|1368|DURSEJ|9 +S9|1369|DURSEJ|9 +S9|1370|DURSEJ|9 +S9|1371|DURSEJ|9 +S9|1372|DURSEJ|9 +S9|1373|DURSEJ|9 +S9|1374|DURSEJ|9 +S9|1375|DURSEJ|9 +S9|1376|DURSEJ|9 +S9|1377|DURSEJ|9 +S9|1378|DURSEJ|9 +S9|1379|DURSEJ|9 +S9|1380|DURSEJ|9 +S9|1381|DURSEJ|9 +S9|1382|DURSEJ|9 +S9|1383|DURSEJ|9 +S9|1384|DURSEJ|9 +S9|1385|DURSEJ|9 +S9|1386|DURSEJ|9 +S9|1387|DURSEJ|9 +S9|1388|DURSEJ|9 +S9|1389|DURSEJ|9 +S9|1390|DURSEJ|9 +S9|1391|DURSEJ|9 +S9|1392|DURSEJ|9 +S9|1393|DURSEJ|9 +S9|1394|DURSEJ|9 +S9|1395|DURSEJ|9 +S9|1396|DURSEJ|9 +S9|1397|DURSEJ|9 +S9|1398|DURSEJ|9 +S9|1399|DURSEJ|9 +S9|1400|DURSEJ|9 +S9|1401|DURSEJ|9 +S9|1402|DURSEJ|9 +S9|1403|DURSEJ|9 +S9|1404|DURSEJ|9 +S9|1405|DURSEJ|9 +S9|1406|DURSEJ|9 +S9|1407|DURSEJ|9 +S9|1408|DURSEJ|9 +S9|1409|DURSEJ|9 +S9|1410|DURSEJ|9 +S9|1411|DURSEJ|9 +S9|1412|DURSEJ|9 +S9|1413|DURSEJ|9 +S9|1414|DURSEJ|9 +S9|1415|DURSEJ|9 +S9|1416|DURSEJ|9 +S9|1417|DURSEJ|9 +S9|1418|DURSEJ|9 +S9|1419|DURSEJ|9 +S9|1420|DURSEJ|9 +S9|1421|DURSEJ|9 +S9|1422|DURSEJ|9 +S9|1423|DURSEJ|9 +S9|1424|DURSEJ|9 +S9|1425|DURSEJ|9 +S9|1426|DURSEJ|9 +S9|1427|DURSEJ|9 +S9|1428|DURSEJ|9 +S9|1429|DURSEJ|9 +S9|1430|DURSEJ|9 +S9|1431|DURSEJ|9 +S9|1432|DURSEJ|9 +S9|1433|DURSEJ|9 +S9|1434|DURSEJ|9 +S9|1435|DURSEJ|9 +S9|1436|DURSEJ|9 +S9|1437|DURSEJ|9 +S9|1438|DURSEJ|9 +S9|1439|DURSEJ|9 +S9|1440|DURSEJ|9 +S9|1441|DURSEJ|9 +S9|1442|DURSEJ|9 +S9|1443|DURSEJ|9 +S9|1444|DURSEJ|9 +S9|1445|DURSEJ|9 +S9|1446|DURSEJ|9 +S9|1447|DURSEJ|9 +S9|1448|DURSEJ|9 +S9|1449|DURSEJ|9 +S9|1450|DURSEJ|9 +S9|1451|DURSEJ|9 +S9|1452|DURSEJ|9 +S9|1453|DURSEJ|9 +S9|1454|DURSEJ|9 +S9|1455|DURSEJ|9 +S9|1456|DURSEJ|9 +S9|1457|DURSEJ|9 +S9|1458|DURSEJ|9 +S9|1459|DURSEJ|9 +S9|1460|DURSEJ|9 +S9|1461|DURSEJ|9 +S9|1462|DURSEJ|9 +S9|1463|DURSEJ|9 +S9|1464|DURSEJ|9 +S9|1465|DURSEJ|9 +S9|1466|DURSEJ|9 +S9|1467|DURSEJ|9 +S9|1468|DURSEJ|9 +S9|1469|DURSEJ|9 +S9|1470|DURSEJ|9 +S9|1471|DURSEJ|9 +S9|1472|DURSEJ|9 +S9|1473|DURSEJ|9 +S9|1474|DURSEJ|9 +S9|1475|DURSEJ|9 +S9|1476|DURSEJ|9 +S9|1477|DURSEJ|9 +S9|1478|DURSEJ|9 +S9|1479|DURSEJ|9 +S9|1480|DURSEJ|9 +S9|1481|DURSEJ|9 +S9|1482|DURSEJ|9 +S9|1483|DURSEJ|9 +S9|1484|DURSEJ|9 +S9|1485|DURSEJ|9 +S9|1486|DURSEJ|9 +S9|1487|DURSEJ|9 +S9|1488|DURSEJ|9 +S9|1489|DURSEJ|9 +S9|1490|DURSEJ|9 +S9|1491|DURSEJ|9 +S9|1492|DURSEJ|9 +S9|1493|DURSEJ|9 +S9|1494|DURSEJ|9 +S9|1495|DURSEJ|9 +S9|1496|DURSEJ|9 +S9|1497|DURSEJ|9 +S9|1498|DURSEJ|9 +S9|1499|DURSEJ|9 +S9|1500|DURSEJ|9 +S9|1501|DURSEJ|9 +S9|1502|DURSEJ|9 +S9|1503|DURSEJ|9 +S9|1504|DURSEJ|9 +S9|1505|DURSEJ|9 +S9|1506|DURSEJ|9 +S9|1507|DURSEJ|9 +S9|1508|DURSEJ|9 +S9|1509|DURSEJ|9 +S9|1510|DURSEJ|9 +S9|1511|DURSEJ|9 +S9|1512|DURSEJ|9 +S9|1513|DURSEJ|9 +S9|1514|DURSEJ|9 +S9|1515|DURSEJ|9 +S9|1516|DURSEJ|9 +S9|1517|DURSEJ|9 +S9|1518|DURSEJ|9 +S9|1519|DURSEJ|9 +S9|1520|DURSEJ|9 +S9|1521|DURSEJ|9 +S9|1522|DURSEJ|9 +S9|1523|DURSEJ|9 +S9|1524|DURSEJ|9 +S9|1525|DURSEJ|9 +S9|1526|DURSEJ|9 +S9|1527|DURSEJ|9 +S9|1528|DURSEJ|9 +S9|1529|DURSEJ|9 +S9|1530|DURSEJ|9 +S9|1531|DURSEJ|9 +S9|1532|DURSEJ|9 +S9|1533|DURSEJ|9 +S9|1534|DURSEJ|9 +S9|1535|DURSEJ|9 +S9|1536|DURSEJ|9 +S9|1537|DURSEJ|9 +S9|1538|DURSEJ|9 +S9|1539|DURSEJ|9 +S9|1540|DURSEJ|9 +S9|1541|DURSEJ|9 +S9|1542|DURSEJ|9 +S9|1543|DURSEJ|9 +S9|1544|DURSEJ|9 +S9|1545|DURSEJ|9 +S9|1546|DURSEJ|9 +S9|1547|DURSEJ|9 +S9|1548|DURSEJ|9 +S9|1549|DURSEJ|9 +S9|1550|DURSEJ|9 +S9|1551|DURSEJ|9 +S9|1552|DURSEJ|9 +S9|1553|DURSEJ|9 +S9|1554|DURSEJ|9 +S9|1555|DURSEJ|9 +S9|1556|DURSEJ|9 +S9|1557|DURSEJ|9 +S9|1558|DURSEJ|9 +S9|1559|DURSEJ|9 +S9|1560|DURSEJ|9 +S9|1561|DURSEJ|9 +S9|1562|DURSEJ|9 +S9|1563|DURSEJ|9 +S9|1564|DURSEJ|9 +S9|1565|DURSEJ|9 +S9|1566|DURSEJ|9 +S9|1567|DURSEJ|9 +S9|1568|DURSEJ|9 +S9|1569|DURSEJ|9 +S9|1570|DURSEJ|9 +S9|1571|DURSEJ|9 +S9|1572|DURSEJ|9 +S9|1573|DURSEJ|9 +S9|1574|DURSEJ|9 +S9|1575|DURSEJ|9 +S9|1576|DURSEJ|9 +S9|1577|DURSEJ|9 +S9|1578|DURSEJ|9 +S9|1579|DURSEJ|9 +S9|1580|DURSEJ|9 +S9|1581|DURSEJ|9 +S9|1582|DURSEJ|9 +S9|1583|DURSEJ|9 +S9|1584|DURSEJ|9 +S9|1585|DURSEJ|9 +S9|1586|DURSEJ|9 +S9|1587|DURSEJ|9 +S9|1588|DURSEJ|9 +S9|1589|DURSEJ|9 +S9|1590|DURSEJ|9 +S9|1591|DURSEJ|9 +S9|1592|DURSEJ|9 +S9|1593|DURSEJ|9 +S9|1594|DURSEJ|9 +S9|1595|DURSEJ|9 +S9|1596|DURSEJ|9 +S9|1597|DURSEJ|9 +S9|1598|DURSEJ|9 +S9|1599|DURSEJ|9 +S9|1600|DURSEJ|9 +S9|1601|DURSEJ|9 +S9|1602|DURSEJ|9 +S9|1603|DURSEJ|9 +S9|1604|DURSEJ|9 +S9|1605|DURSEJ|9 +S9|1606|DURSEJ|9 +S9|1607|DURSEJ|9 +S9|1608|DURSEJ|9 +S9|1609|DURSEJ|9 +S9|1610|DURSEJ|9 +S9|1611|DURSEJ|9 +S9|1612|DURSEJ|9 +S9|1613|DURSEJ|9 +S9|1614|DURSEJ|9 +S9|1615|DURSEJ|9 +S9|1616|DURSEJ|9 +S9|1617|DURSEJ|9 +S9|1618|DURSEJ|9 +S9|1619|DURSEJ|9 +S9|1620|DURSEJ|9 +S9|1621|DURSEJ|9 +S9|1622|DURSEJ|9 +S9|1623|DURSEJ|9 +S9|1624|DURSEJ|9 +S9|1625|DURSEJ|9 +S9|1626|DURSEJ|9 +S9|1627|DURSEJ|9 +S9|1628|DURSEJ|9 +S9|1629|DURSEJ|9 +S9|1630|DURSEJ|9 +S9|1631|DURSEJ|9 +S9|1632|DURSEJ|9 +S9|1633|DURSEJ|9 +S9|1634|DURSEJ|9 +S9|1635|DURSEJ|9 +S9|1636|DURSEJ|9 +S9|1637|DURSEJ|9 +S9|1638|DURSEJ|9 +S9|1639|DURSEJ|9 +S9|1640|DURSEJ|9 +S9|1641|DURSEJ|9 +S9|1642|DURSEJ|9 +S9|1643|DURSEJ|9 +S9|1644|DURSEJ|9 +S9|1645|DURSEJ|9 +S9|1646|DURSEJ|9 +S9|1647|DURSEJ|9 +S9|1648|DURSEJ|9 +S9|1649|DURSEJ|9 +S9|1650|DURSEJ|9 +S9|1651|DURSEJ|9 +S9|1652|DURSEJ|9 +S9|1653|DURSEJ|9 +S9|1654|DURSEJ|9 +S9|1655|DURSEJ|9 +S9|1656|DURSEJ|9 +S9|1657|DURSEJ|9 +S9|1658|DURSEJ|9 +S9|1659|DURSEJ|9 +S9|1660|DURSEJ|9 +S9|1661|DURSEJ|9 +S9|1662|DURSEJ|9 +S9|1663|DURSEJ|9 +S9|1664|DURSEJ|9 +S9|1665|DURSEJ|9 +S9|1666|DURSEJ|9 +S9|1667|DURSEJ|9 +S9|1668|DURSEJ|9 +S9|1669|DURSEJ|9 +S9|1670|DURSEJ|9 +S9|1671|DURSEJ|9 +S9|1672|DURSEJ|9 +S9|1673|DURSEJ|9 +S9|1674|DURSEJ|9 +S9|1675|DURSEJ|9 +S9|1676|DURSEJ|9 +S9|1677|DURSEJ|9 +S9|1678|DURSEJ|9 +S9|1679|DURSEJ|9 +S9|1680|DURSEJ|9 +S9|1681|DURSEJ|9 +S9|1682|DURSEJ|9 +S9|1683|DURSEJ|9 +S9|1684|DURSEJ|9 +S9|1685|DURSEJ|9 +S9|1686|DURSEJ|9 +S9|1687|DURSEJ|9 +S9|1688|DURSEJ|9 +S9|1689|DURSEJ|9 +S9|1690|DURSEJ|9 +S9|1691|DURSEJ|9 +S9|1692|DURSEJ|9 +S9|1693|DURSEJ|9 +S9|1694|DURSEJ|9 +S9|1695|DURSEJ|9 +S9|1696|DURSEJ|9 +S9|1697|DURSEJ|9 +S9|1698|DURSEJ|9 +S9|1699|DURSEJ|9 +S9|1700|DURSEJ|9 +S9|1701|DURSEJ|9 +S9|1702|DURSEJ|9 +S9|1703|DURSEJ|9 +S9|1704|DURSEJ|9 +S9|1705|DURSEJ|9 +S9|1706|DURSEJ|9 +S9|1707|DURSEJ|9 +S9|1708|DURSEJ|9 +S9|1709|DURSEJ|9 +S9|1710|DURSEJ|9 +S9|1711|DURSEJ|9 +S9|1712|DURSEJ|9 +S9|1713|DURSEJ|9 +S9|1714|DURSEJ|9 +S9|1715|DURSEJ|9 +S9|1716|DURSEJ|9 +S9|1717|DURSEJ|9 +S9|1718|DURSEJ|9 +S9|1719|DURSEJ|9 +S9|1720|DURSEJ|9 +S9|1721|DURSEJ|9 +S9|1722|DURSEJ|9 +S9|1723|DURSEJ|9 +S9|1724|DURSEJ|9 +S9|1725|DURSEJ|9 +S9|1726|DURSEJ|9 +S9|1727|DURSEJ|9 +S9|1728|DURSEJ|9 +S9|1729|DURSEJ|9 +S9|1730|DURSEJ|9 +S9|1731|DURSEJ|9 +S9|1732|DURSEJ|9 +S9|1733|DURSEJ|9 +S9|1734|DURSEJ|9 +S9|1735|DURSEJ|9 +S9|1736|DURSEJ|9 +S9|1737|DURSEJ|9 +S9|1738|DURSEJ|9 +S9|1739|DURSEJ|9 +S9|1740|DURSEJ|9 +S9|1741|DURSEJ|9 +S9|1742|DURSEJ|9 +S9|1743|DURSEJ|9 +S9|1744|DURSEJ|9 +S9|1745|DURSEJ|9 +S9|1746|DURSEJ|9 +S9|1747|DURSEJ|9 +S9|1748|DURSEJ|9 +S9|1749|DURSEJ|9 +S9|1750|DURSEJ|9 +S9|1751|DURSEJ|9 +S9|1752|DURSEJ|9 +S9|1753|DURSEJ|9 +S9|1754|DURSEJ|9 +S9|1755|DURSEJ|9 +S9|1756|DURSEJ|9 +S9|1757|DURSEJ|9 +S9|1758|DURSEJ|9 +S9|1759|DURSEJ|9 +S9|1760|DURSEJ|9 +S9|1761|DURSEJ|9 +S9|1762|DURSEJ|9 +S9|1763|DURSEJ|9 +S9|1764|DURSEJ|9 +S9|1765|DURSEJ|9 +S9|1766|DURSEJ|9 +S9|1767|DURSEJ|9 +S9|1768|DURSEJ|9 +S9|1769|DURSEJ|9 +S9|1770|DURSEJ|9 +S9|1771|DURSEJ|9 +S9|1772|DURSEJ|9 +S9|1773|DURSEJ|9 +S9|1774|DURSEJ|9 +S9|1775|DURSEJ|9 +S9|1776|DURSEJ|9 +S9|1777|DURSEJ|9 +S9|1778|DURSEJ|9 +S9|1779|DURSEJ|9 +S9|1780|DURSEJ|9 +S9|1781|DURSEJ|9 +S9|1782|DURSEJ|9 +S9|1783|DURSEJ|9 +S9|1784|DURSEJ|9 +S9|1785|DURSEJ|9 +S9|1786|DURSEJ|9 +S9|1787|DURSEJ|9 +S9|1788|DURSEJ|9 +S9|1789|DURSEJ|9 +S9|1790|DURSEJ|9 +S9|1791|DURSEJ|9 +S9|1792|DURSEJ|9 +S9|1793|DURSEJ|9 +S9|1794|DURSEJ|9 +S9|1795|DURSEJ|9 +S9|1796|DURSEJ|9 +S9|1797|DURSEJ|9 +S9|1798|DURSEJ|9 +S9|1799|DURSEJ|9 +S9|1800|DURSEJ|9 +S9|1801|DURSEJ|9 +S9|1802|DURSEJ|9 +S9|1803|DURSEJ|9 +S9|1804|DURSEJ|9 +S9|1805|DURSEJ|9 +S9|1806|DURSEJ|9 +S9|1807|DURSEJ|9 +S9|1808|DURSEJ|9 +S9|1809|DURSEJ|9 +S9|1810|DURSEJ|9 +S9|1811|DURSEJ|9 +S9|1812|DURSEJ|9 +S9|1813|DURSEJ|9 +S9|1814|DURSEJ|9 +S9|1815|DURSEJ|9 +S9|1816|DURSEJ|9 +S9|1817|DURSEJ|9 +S9|1818|DURSEJ|9 +S9|1819|DURSEJ|9 +S9|1820|DURSEJ|9 +S9|1821|DURSEJ|9 +S9|1822|DURSEJ|9 +S9|1823|DURSEJ|9 +S9|1824|DURSEJ|9 +S9|1825|DURSEJ|9 +S9|1826|DURSEJ|9 +S9|1827|DURSEJ|9 +S9|1828|DURSEJ|9 +S9|1829|DURSEJ|9 +S9|1830|DURSEJ|9 +S9|1831|DURSEJ|9 +S9|1832|DURSEJ|9 +S9|1833|DURSEJ|9 +S9|1834|DURSEJ|9 +S9|1835|DURSEJ|9 +S9|1836|DURSEJ|9 +S9|1837|DURSEJ|9 +S9|1838|DURSEJ|9 +S9|1839|DURSEJ|9 +S9|1840|DURSEJ|9 +S9|1841|DURSEJ|9 +S9|1842|DURSEJ|9 +S9|1843|DURSEJ|9 +S9|1844|DURSEJ|9 +S9|1845|DURSEJ|9 +S9|1846|DURSEJ|9 +S9|1847|DURSEJ|9 +S9|1848|DURSEJ|9 +S9|1849|DURSEJ|9 +S9|1850|DURSEJ|9 +S9|1851|DURSEJ|9 +S9|1852|DURSEJ|9 +S9|1853|DURSEJ|9 +S9|1854|DURSEJ|9 +S9|1855|DURSEJ|9 +S9|1856|DURSEJ|9 +S9|1857|DURSEJ|9 +S9|1858|DURSEJ|9 +S9|1859|DURSEJ|9 +S9|1860|DURSEJ|9 +S9|1861|DURSEJ|9 +S9|1862|DURSEJ|9 +S9|1863|DURSEJ|9 +S9|1864|DURSEJ|9 +S9|1865|DURSEJ|9 +S9|1866|DURSEJ|9 +S9|1867|DURSEJ|9 +S9|1868|DURSEJ|9 +S9|1869|DURSEJ|9 +S9|1870|DURSEJ|9 +S9|1871|DURSEJ|9 +S9|1872|DURSEJ|9 +S9|1873|DURSEJ|9 +S9|1874|DURSEJ|9 +S9|1875|DURSEJ|9 +S9|1876|DURSEJ|9 +S9|1877|DURSEJ|9 +S9|1878|DURSEJ|9 +S9|1879|DURSEJ|9 +S9|1880|DURSEJ|9 +S9|1881|DURSEJ|9 +S9|1882|DURSEJ|9 +S9|1883|DURSEJ|9 +S9|1884|DURSEJ|9 +S9|1885|DURSEJ|9 +S9|1886|DURSEJ|9 +S9|1887|DURSEJ|9 +S9|1888|DURSEJ|9 +S9|1889|DURSEJ|9 +S9|1890|DURSEJ|9 +S9|1891|DURSEJ|9 +S9|1892|DURSEJ|9 +S9|1893|DURSEJ|9 +S9|1894|DURSEJ|9 +S9|1895|DURSEJ|9 +S9|1896|DURSEJ|9 +S9|1897|DURSEJ|9 +S9|1898|DURSEJ|9 +S9|1899|DURSEJ|9 +S9|1900|DURSEJ|9 +S9|1901|DURSEJ|9 +S9|1902|DURSEJ|9 +S9|1903|DURSEJ|9 +S9|1904|DURSEJ|9 +S9|1905|DURSEJ|9 +S9|1906|DURSEJ|9 +S9|1907|DURSEJ|9 +S9|1908|DURSEJ|9 +S9|1909|DURSEJ|9 +S9|1910|DURSEJ|9 +S9|1911|DURSEJ|9 +S9|1912|DURSEJ|9 +S9|1913|DURSEJ|9 +S9|1914|DURSEJ|9 +S9|1915|DURSEJ|9 +S9|1916|DURSEJ|9 +S9|1917|DURSEJ|9 +S9|1918|DURSEJ|9 +S9|1919|DURSEJ|9 +S9|1920|DURSEJ|9 +S9|1921|DURSEJ|9 +S9|1922|DURSEJ|9 +S9|1923|DURSEJ|9 +S9|1924|DURSEJ|9 +S9|1925|DURSEJ|9 +S9|1926|DURSEJ|9 +S9|1927|DURSEJ|9 +S9|1928|DURSEJ|9 +S9|1929|DURSEJ|9 +S9|1930|DURSEJ|9 +S9|1931|DURSEJ|9 +S9|1932|DURSEJ|9 +S9|1933|DURSEJ|9 +S9|1934|DURSEJ|9 +S9|1935|DURSEJ|9 +S9|1936|DURSEJ|9 +S9|1937|DURSEJ|9 +S9|1938|DURSEJ|9 +S9|1939|DURSEJ|9 +S9|1940|DURSEJ|9 +S9|1941|DURSEJ|9 +S9|1942|DURSEJ|9 +S9|1943|DURSEJ|9 +S9|1944|DURSEJ|9 +S9|1945|DURSEJ|9 +S9|1946|DURSEJ|9 +S9|1947|DURSEJ|9 +S9|1948|DURSEJ|9 +S9|1949|DURSEJ|9 +S9|1950|DURSEJ|9 +S9|1951|DURSEJ|9 +S9|1952|DURSEJ|9 +S9|1953|DURSEJ|9 +S9|1954|DURSEJ|9 +S9|1955|DURSEJ|9 +S9|1956|DURSEJ|9 +S9|1957|DURSEJ|9 +S9|1958|DURSEJ|9 +S9|1959|DURSEJ|9 +S9|1960|DURSEJ|9 +S9|1961|DURSEJ|9 +S9|1962|DURSEJ|9 +S9|1963|DURSEJ|9 +S9|1964|DURSEJ|9 +S9|1965|DURSEJ|9 +S9|1966|DURSEJ|9 +S9|1967|DURSEJ|9 +S9|1968|DURSEJ|9 +S9|1969|DURSEJ|9 +S9|1970|DURSEJ|9 +S9|1971|DURSEJ|9 +S9|1972|DURSEJ|9 +S9|1973|DURSEJ|9 +S9|1974|DURSEJ|9 +S9|1975|DURSEJ|9 +S9|1976|DURSEJ|9 +S9|1977|DURSEJ|9 +S9|1978|DURSEJ|9 +S9|1979|DURSEJ|9 +S9|1980|DURSEJ|9 +S9|1981|DURSEJ|9 +S9|1982|DURSEJ|9 +S9|1983|DURSEJ|9 +S9|1984|DURSEJ|9 +S9|1985|DURSEJ|9 +S9|1986|DURSEJ|9 +S9|1987|DURSEJ|9 +S9|1988|DURSEJ|9 +S9|1989|DURSEJ|9 +S9|1990|DURSEJ|9 +S9|1991|DURSEJ|9 +S9|1992|DURSEJ|9 +S9|1993|DURSEJ|9 +S9|1994|DURSEJ|9 +S9|1995|DURSEJ|9 +S9|1996|DURSEJ|9 +S9|1997|DURSEJ|9 +S9|1998|DURSEJ|9 +S9|1999|DURSEJ|9 +S9|2000|DURSEJ|9 +S9|2001|DURSEJ|9 +S9|2002|DURSEJ|9 +S9|2003|DURSEJ|9 +S9|2004|DURSEJ|9 +S9|2005|DURSEJ|9 +S9|2006|DURSEJ|9 +S9|2007|DURSEJ|9 +S9|2008|DURSEJ|9 +S9|2009|DURSEJ|9 +S9|2010|DURSEJ|9 +S9|2011|DURSEJ|9 +S9|2012|DURSEJ|9 +S9|2013|DURSEJ|9 +S9|2014|DURSEJ|9 +S9|2015|DURSEJ|9 +S9|2016|DURSEJ|9 +S9|2017|DURSEJ|9 +S9|2018|DURSEJ|9 +S9|2019|DURSEJ|9 +S9|2020|DURSEJ|9 +S9|2021|DURSEJ|9 +S9|2022|DURSEJ|9 +S9|2023|DURSEJ|9 +S9|2024|DURSEJ|9 +S9|2025|DURSEJ|9 +S9|2026|DURSEJ|9 +S9|2027|DURSEJ|9 +S9|2028|DURSEJ|9 +S9|2029|DURSEJ|9 +S9|2030|DURSEJ|9 +S9|2031|DURSEJ|9 +S9|2032|DURSEJ|9 +S9|2033|DURSEJ|9 +S9|2034|DURSEJ|9 +S9|2035|DURSEJ|9 +S9|2036|DURSEJ|9 +S9|2037|DURSEJ|9 +S9|2038|DURSEJ|9 +S9|2039|DURSEJ|9 +S9|2040|DURSEJ|9 +S9|2041|DURSEJ|9 +S9|2042|DURSEJ|9 +S9|2043|DURSEJ|9 +S9|2044|DURSEJ|9 +S9|2045|DURSEJ|9 +S9|2046|DURSEJ|9 +S9|2047|DURSEJ|9 +S9|2048|DURSEJ|9 +S9|2049|DURSEJ|9 +S9|2050|DURSEJ|9 +S9|2051|DURSEJ|9 +S9|2052|DURSEJ|9 +S9|2053|DURSEJ|9 +S9|2054|DURSEJ|9 +S9|2055|DURSEJ|9 +S9|2056|DURSEJ|9 +S9|2057|DURSEJ|9 +S9|2058|DURSEJ|9 +S9|2059|DURSEJ|9 +S9|2060|DURSEJ|9 +S9|2061|DURSEJ|9 +S9|2062|DURSEJ|9 +S9|2063|DURSEJ|9 +S9|2064|DURSEJ|9 +S9|2065|DURSEJ|9 +S9|2066|DURSEJ|9 +S9|2067|DURSEJ|9 +S9|2068|DURSEJ|9 +S9|2069|DURSEJ|9 +S9|2070|DURSEJ|9 +S9|2071|DURSEJ|9 +S9|2072|DURSEJ|9 +S9|2073|DURSEJ|9 +S9|2074|DURSEJ|9 +S9|2075|DURSEJ|9 +S9|2076|DURSEJ|9 +S9|2077|DURSEJ|9 +S9|2078|DURSEJ|9 +S9|2079|DURSEJ|9 +S9|2080|DURSEJ|9 +S9|2081|DURSEJ|9 +S9|2082|DURSEJ|9 +S9|2083|DURSEJ|9 +S9|2084|DURSEJ|9 +S9|2085|DURSEJ|9 +S9|2086|DURSEJ|9 +S9|2087|DURSEJ|9 +S9|2088|DURSEJ|9 +S9|2089|DURSEJ|9 +S9|2090|DURSEJ|9 +S9|2091|DURSEJ|9 +S9|2092|DURSEJ|9 +S9|2093|DURSEJ|9 +S9|2094|DURSEJ|9 +S9|2095|DURSEJ|9 +S9|2096|DURSEJ|9 +S9|2097|DURSEJ|9 +S9|2098|DURSEJ|9 +S9|2099|DURSEJ|9 +S9|2100|DURSEJ|9 +S9|2101|DURSEJ|9 +S9|2102|DURSEJ|9 +S9|2103|DURSEJ|9 +S9|2104|DURSEJ|9 +S9|2105|DURSEJ|9 +S9|2106|DURSEJ|9 +S9|2107|DURSEJ|9 +S9|2108|DURSEJ|9 +S9|2109|DURSEJ|9 +S9|2110|DURSEJ|9 +S9|2111|DURSEJ|9 +S9|2112|DURSEJ|9 +S9|2113|DURSEJ|9 +S9|2114|DURSEJ|9 +S9|2115|DURSEJ|9 +S9|2116|DURSEJ|9 +S9|2117|DURSEJ|9 +S9|2118|DURSEJ|9 +S9|2119|DURSEJ|9 +S9|2120|DURSEJ|9 +S9|2121|DURSEJ|9 +S9|2122|DURSEJ|9 +S9|2123|DURSEJ|9 +S9|2124|DURSEJ|9 +S9|2125|DURSEJ|9 +S9|2126|DURSEJ|9 +S9|2127|DURSEJ|9 +S9|2128|DURSEJ|9 +S9|2129|DURSEJ|9 +S9|2130|DURSEJ|9 +S9|2131|DURSEJ|9 +S9|2132|DURSEJ|9 +S9|2133|DURSEJ|9 +S9|2134|DURSEJ|9 +S9|2135|DURSEJ|9 +S9|2136|DURSEJ|9 +S9|2137|DURSEJ|9 +S9|2138|DURSEJ|9 +S9|2139|DURSEJ|9 +S9|2140|DURSEJ|9 +S9|2141|DURSEJ|9 +S9|2142|DURSEJ|9 +S9|2143|DURSEJ|9 +S9|2144|DURSEJ|9 +S9|2145|DURSEJ|9 +S9|2146|DURSEJ|9 +S9|2147|DURSEJ|9 +S9|2148|DURSEJ|9 +S9|2149|DURSEJ|9 +S9|2150|DURSEJ|9 +S9|2151|DURSEJ|9 +S9|2152|DURSEJ|9 +S9|2153|DURSEJ|9 +S9|2154|DURSEJ|9 +S9|2155|DURSEJ|9 +S9|2156|DURSEJ|9 +S9|2157|DURSEJ|9 +S9|2158|DURSEJ|9 +S9|2159|DURSEJ|9 +S9|2160|DURSEJ|9 +S9|2161|DURSEJ|9 +S9|2162|DURSEJ|9 +S9|2163|DURSEJ|9 +S9|2164|DURSEJ|9 +S9|2165|DURSEJ|9 +S9|2166|DURSEJ|9 +S9|2167|DURSEJ|9 +S9|2168|DURSEJ|9 +S9|2169|DURSEJ|9 +S9|2170|DURSEJ|9 +S9|2171|DURSEJ|9 +S9|2172|DURSEJ|9 +S9|2173|DURSEJ|9 +S9|2174|DURSEJ|9 +S9|2175|DURSEJ|9 +S9|2176|DURSEJ|9 +S9|2177|DURSEJ|9 +S9|2178|DURSEJ|9 +S9|2179|DURSEJ|9 +S9|2180|DURSEJ|9 +S9|2181|DURSEJ|9 +S9|2182|DURSEJ|9 +S9|2183|DURSEJ|9 +S9|2184|DURSEJ|9 +S9|2185|DURSEJ|9 +S9|2186|DURSEJ|9 +S9|2187|DURSEJ|9 +S9|2188|DURSEJ|9 +S9|2189|DURSEJ|9 +S9|2190|DURSEJ|9 +S9|2191|DURSEJ|9 +S9|2192|DURSEJ|9 +S9|2193|DURSEJ|9 +S9|2194|DURSEJ|9 +S9|2195|DURSEJ|9 +S9|2196|DURSEJ|9 +S9|2197|DURSEJ|9 +S9|2198|DURSEJ|9 +S9|2199|DURSEJ|9 +S9|2200|DURSEJ|9 +S9|2201|DURSEJ|9 +S9|2202|DURSEJ|9 +S9|2203|DURSEJ|9 +S9|2204|DURSEJ|9 +S9|2205|DURSEJ|9 +S9|2206|DURSEJ|9 +S9|2207|DURSEJ|9 +S9|2208|DURSEJ|9 +S9|2209|DURSEJ|9 +S9|2210|DURSEJ|9 +S9|2211|DURSEJ|9 +S9|2212|DURSEJ|9 +S9|2213|DURSEJ|9 +S9|2214|DURSEJ|9 +S9|2215|DURSEJ|9 +S9|2216|DURSEJ|9 +S9|2217|DURSEJ|9 +S9|2218|DURSEJ|9 +S9|2219|DURSEJ|9 +S9|2220|DURSEJ|9 +S9|2221|DURSEJ|9 +S9|2222|DURSEJ|9 +S9|2223|DURSEJ|9 +S9|2224|DURSEJ|9 +S9|2225|DURSEJ|9 +S9|2226|DURSEJ|9 +S9|2227|DURSEJ|9 +S9|2228|DURSEJ|9 +S9|2229|DURSEJ|9 +S9|2230|DURSEJ|9 +S9|2231|DURSEJ|9 +S9|2232|DURSEJ|9 +S9|2233|DURSEJ|9 +S9|2234|DURSEJ|9 +S9|2235|DURSEJ|9 +S9|2236|DURSEJ|9 +S9|2237|DURSEJ|9 +S9|2238|DURSEJ|9 +S9|2239|DURSEJ|9 +S9|2240|DURSEJ|9 +S9|2241|DURSEJ|9 +S9|2242|DURSEJ|9 +S9|2243|DURSEJ|9 +S9|2244|DURSEJ|9 +S9|2245|DURSEJ|9 +S9|2246|DURSEJ|9 +S9|2247|DURSEJ|9 +S9|2248|DURSEJ|9 +S9|2249|DURSEJ|9 +S9|2250|DURSEJ|9 +S9|2251|DURSEJ|9 +S9|2252|DURSEJ|9 +S9|2253|DURSEJ|9 +S9|2254|DURSEJ|9 +S9|2255|DURSEJ|9 +S9|2256|DURSEJ|9 +S9|2257|DURSEJ|9 +S9|2258|DURSEJ|9 +S9|2259|DURSEJ|9 +S9|2260|DURSEJ|9 +S9|2261|DURSEJ|9 +S9|2262|DURSEJ|9 +S9|2263|DURSEJ|9 +S9|2264|DURSEJ|9 +S9|2265|DURSEJ|9 +S9|2266|DURSEJ|9 +S9|2267|DURSEJ|9 +S9|2268|DURSEJ|9 +S9|2269|DURSEJ|9 +S9|2270|DURSEJ|9 +S9|2271|DURSEJ|9 +S9|2272|DURSEJ|9 +S9|2273|DURSEJ|9 +S9|2274|DURSEJ|9 +S9|2275|DURSEJ|9 +S9|2276|DURSEJ|9 +S9|2277|DURSEJ|9 +S9|2278|DURSEJ|9 +S9|2279|DURSEJ|9 +S9|2280|DURSEJ|9 +S9|2281|DURSEJ|9 +S9|2282|DURSEJ|9 +S9|2283|DURSEJ|9 +S9|2284|DURSEJ|9 +S9|2285|DURSEJ|9 +S9|2286|DURSEJ|9 +S9|2287|DURSEJ|9 +S9|2288|DURSEJ|9 +S9|2289|DURSEJ|9 +S9|2290|DURSEJ|9 +S9|2291|DURSEJ|9 +S9|2292|DURSEJ|9 +S9|2293|DURSEJ|9 +S9|2294|DURSEJ|9 +S9|2295|DURSEJ|9 +S9|2296|DURSEJ|9 +S9|2297|DURSEJ|9 +S9|2298|DURSEJ|9 +S9|2299|DURSEJ|9 +S9|2300|DURSEJ|9 +S9|2301|DURSEJ|9 +S9|2302|DURSEJ|9 +S9|2303|DURSEJ|9 +S9|2304|DURSEJ|9 +S9|2305|DURSEJ|9 +S9|2306|DURSEJ|9 +S9|2307|DURSEJ|9 +S9|2308|DURSEJ|9 +S9|2309|DURSEJ|9 +S9|2310|DURSEJ|9 +S9|2311|DURSEJ|9 +S9|2312|DURSEJ|9 +S9|2313|DURSEJ|9 +S9|2314|DURSEJ|9 +S9|2315|DURSEJ|9 +S9|2316|DURSEJ|9 +S9|2317|DURSEJ|9 +S9|2318|DURSEJ|9 +S9|2319|DURSEJ|9 +S9|2320|DURSEJ|9 +S9|2321|DURSEJ|9 +S9|2322|DURSEJ|9 +S9|2323|DURSEJ|9 +S9|2324|DURSEJ|9 +S9|2325|DURSEJ|9 +S9|2326|DURSEJ|9 +S9|2327|DURSEJ|9 +S9|2328|DURSEJ|9 +S9|2329|DURSEJ|9 +S9|2330|DURSEJ|9 +S9|2331|DURSEJ|9 +S9|2332|DURSEJ|9 +S9|2333|DURSEJ|9 +S9|2334|DURSEJ|9 +S9|2335|DURSEJ|9 +S9|2336|DURSEJ|9 +S9|2337|DURSEJ|9 +S9|2338|DURSEJ|9 +S9|2339|DURSEJ|9 +S9|2340|DURSEJ|9 +S9|2341|DURSEJ|9 +S9|2342|DURSEJ|9 +S9|2343|DURSEJ|9 +S9|2344|DURSEJ|9 +S9|2345|DURSEJ|9 +S9|2346|DURSEJ|9 +S9|2347|DURSEJ|9 +S9|2348|DURSEJ|9 +S9|2349|DURSEJ|9 +S9|2350|DURSEJ|9 +S9|2351|DURSEJ|9 +S9|2352|DURSEJ|9 +S9|2353|DURSEJ|9 +S9|2354|DURSEJ|9 +S9|2355|DURSEJ|9 +S9|2356|DURSEJ|9 +S9|2357|DURSEJ|9 +S9|2358|DURSEJ|9 +S9|2359|DURSEJ|9 +S9|2360|DURSEJ|9 +S9|2361|DURSEJ|9 +S9|2362|DURSEJ|9 +S9|2363|DURSEJ|9 +S9|2364|DURSEJ|9 +S9|2365|DURSEJ|9 +S9|2366|DURSEJ|9 +S9|2367|DURSEJ|9 +S9|2368|DURSEJ|9 +S9|2369|DURSEJ|9 +S9|2370|DURSEJ|9 +S9|2371|DURSEJ|9 +S9|2372|DURSEJ|9 +S9|2373|DURSEJ|9 +S9|2374|DURSEJ|9 +S9|2375|DURSEJ|9 +S9|2376|DURSEJ|9 +S9|2377|DURSEJ|9 +S9|2378|DURSEJ|9 +S9|2379|DURSEJ|9 +S9|2380|DURSEJ|9 +S9|2381|DURSEJ|9 +S9|2382|DURSEJ|9 +S9|2383|DURSEJ|9 +S9|2384|DURSEJ|9 +S9|2385|DURSEJ|9 +S9|2386|DURSEJ|9 +S9|2387|DURSEJ|9 +S9|2388|DURSEJ|9 +S9|2389|DURSEJ|9 +S9|2390|DURSEJ|9 +S9|2391|DURSEJ|9 +S9|2392|DURSEJ|9 +S9|2393|DURSEJ|9 +S9|2394|DURSEJ|9 +S9|2395|DURSEJ|9 +S9|2396|DURSEJ|9 +S9|2397|DURSEJ|9 +S9|2398|DURSEJ|9 +S9|2399|DURSEJ|9 +S9|2400|DURSEJ|9 +S9|2401|DURSEJ|9 +S9|2402|DURSEJ|9 +S9|2403|DURSEJ|9 +S9|2404|DURSEJ|9 +S9|2405|DURSEJ|9 +S9|2406|DURSEJ|9 +S9|2407|DURSEJ|9 +S9|2408|DURSEJ|9 +S9|2409|DURSEJ|9 +S9|2410|DURSEJ|9 +S9|2411|DURSEJ|9 +S9|2412|DURSEJ|9 +S9|2413|DURSEJ|9 +S9|2414|DURSEJ|9 +S9|2415|DURSEJ|9 +S9|2416|DURSEJ|9 +S9|2417|DURSEJ|9 +S9|2418|DURSEJ|9 +S9|2419|DURSEJ|9 +S9|2420|DURSEJ|9 +S9|2421|DURSEJ|9 +S9|2422|DURSEJ|9 +S9|2423|DURSEJ|9 +S9|2424|DURSEJ|9 +S9|2425|DURSEJ|9 +S9|2426|DURSEJ|9 +S9|2427|DURSEJ|9 +S9|2428|DURSEJ|9 +S9|2429|DURSEJ|9 +S9|2430|DURSEJ|9 +S9|2431|DURSEJ|9 +S9|2432|DURSEJ|9 +S9|2433|DURSEJ|9 +S9|2434|DURSEJ|9 +S9|2435|DURSEJ|9 +S9|2436|DURSEJ|9 +S9|2437|DURSEJ|9 +S9|2438|DURSEJ|9 +S9|2439|DURSEJ|9 +S9|2440|DURSEJ|9 +S9|2441|DURSEJ|9 +S9|2442|DURSEJ|9 +S9|2443|DURSEJ|9 +S9|2444|DURSEJ|9 +S9|2445|DURSEJ|9 +S9|2446|DURSEJ|9 +S9|2447|DURSEJ|9 +S9|2448|DURSEJ|9 +S9|2449|DURSEJ|9 +S9|2450|DURSEJ|9 +S9|2451|DURSEJ|9 +S9|2452|DURSEJ|9 +S9|2453|DURSEJ|9 +S9|2454|DURSEJ|9 +S9|2455|DURSEJ|9 +S9|2456|DURSEJ|9 +S9|2457|DURSEJ|9 +S9|2458|DURSEJ|9 +S9|2459|DURSEJ|9 +S9|2460|DURSEJ|9 +S9|2461|DURSEJ|9 +S9|2462|DURSEJ|9 +S9|2463|DURSEJ|9 +S9|2464|DURSEJ|9 +S9|2465|DURSEJ|9 +S9|2466|DURSEJ|9 +S9|2467|DURSEJ|9 +S9|2468|DURSEJ|9 +S9|2469|DURSEJ|9 +S9|2470|DURSEJ|9 +S9|2471|DURSEJ|9 +S9|2472|DURSEJ|9 +S9|2473|DURSEJ|9 +S9|2474|DURSEJ|9 +S9|2475|DURSEJ|9 +S9|2476|DURSEJ|9 +S9|2477|DURSEJ|9 +S9|2478|DURSEJ|9 +S9|2479|DURSEJ|9 +S9|2480|DURSEJ|9 +S9|2481|DURSEJ|9 +S9|2482|DURSEJ|9 +S9|2483|DURSEJ|9 +S9|2484|DURSEJ|9 +S9|2485|DURSEJ|9 +S9|2486|DURSEJ|9 +S9|2487|DURSEJ|9 +S9|2488|DURSEJ|9 +S9|2489|DURSEJ|9 +S9|2490|DURSEJ|9 +S9|2491|DURSEJ|9 +S9|2492|DURSEJ|9 +S9|2493|DURSEJ|9 +S9|2494|DURSEJ|9 +S9|2495|DURSEJ|9 +S9|2496|DURSEJ|9 +S9|2497|DURSEJ|9 +S9|2498|DURSEJ|9 +S9|2499|DURSEJ|9 +S9|2500|DURSEJ|9 +S9|2501|DURSEJ|9 +S9|2502|DURSEJ|9 +S9|2503|DURSEJ|9 +S9|2504|DURSEJ|9 +S9|2505|DURSEJ|9 +S9|2506|DURSEJ|9 +S9|2507|DURSEJ|9 +S9|2508|DURSEJ|9 +S9|2509|DURSEJ|9 +S9|2510|DURSEJ|9 +S9|2511|DURSEJ|9 +S9|2512|DURSEJ|9 +S9|2513|DURSEJ|9 +S9|2514|DURSEJ|9 +S9|2515|DURSEJ|9 +S9|2516|DURSEJ|9 +S9|2517|DURSEJ|9 +S9|2518|DURSEJ|9 +S9|2519|DURSEJ|9 +S9|2520|DURSEJ|9 +S9|2521|DURSEJ|9 +S9|2522|DURSEJ|9 +S9|2523|DURSEJ|9 +S9|2524|DURSEJ|9 +S9|2525|DURSEJ|9 +S9|2526|DURSEJ|9 +S9|2527|DURSEJ|9 +S9|2528|DURSEJ|9 +S9|2529|DURSEJ|9 +S9|2530|DURSEJ|9 +S9|2531|DURSEJ|9 +S9|2532|DURSEJ|9 +S9|2533|DURSEJ|9 +S9|2534|DURSEJ|9 +S9|2535|DURSEJ|9 +S9|2536|DURSEJ|9 +S9|2537|DURSEJ|9 +S9|2538|DURSEJ|9 +S9|2539|DURSEJ|9 +S9|2540|DURSEJ|9 +S9|2541|DURSEJ|9 +S9|2542|DURSEJ|9 +S9|2543|DURSEJ|9 +S9|2544|DURSEJ|9 +S9|2545|DURSEJ|9 +S9|2546|DURSEJ|9 +S9|2547|DURSEJ|9 +S9|2548|DURSEJ|9 +S9|2549|DURSEJ|9 +S9|2550|DURSEJ|9 +S9|2551|DURSEJ|9 +S9|2552|DURSEJ|9 +S9|2553|DURSEJ|9 +S9|2554|DURSEJ|9 +S9|2555|DURSEJ|9 +S9|2556|DURSEJ|9 +S9|2557|DURSEJ|9 +S9|2558|DURSEJ|9 +S9|2559|DURSEJ|9 +S9|2560|DURSEJ|9 +S9|2561|DURSEJ|9 +S9|2562|DURSEJ|9 +S9|2563|DURSEJ|9 +S9|2564|DURSEJ|9 +S9|2565|DURSEJ|9 +S9|2566|DURSEJ|9 +S9|2567|DURSEJ|9 +S9|2568|DURSEJ|9 +S9|2569|DURSEJ|9 +S9|2570|DURSEJ|9 +S9|2571|DURSEJ|9 +S9|2572|DURSEJ|9 +S9|2573|DURSEJ|9 +S9|2574|DURSEJ|9 +S9|2575|DURSEJ|9 +S9|2576|DURSEJ|9 +S9|2577|DURSEJ|9 +S9|2578|DURSEJ|9 +S9|2579|DURSEJ|9 +S9|2580|DURSEJ|9 +S9|2581|DURSEJ|9 +S9|2582|DURSEJ|9 +S9|2583|DURSEJ|9 +S9|2584|DURSEJ|9 +S9|2585|DURSEJ|9 +S9|2586|DURSEJ|9 +S9|2587|DURSEJ|9 +S9|2588|DURSEJ|9 +S9|2589|DURSEJ|9 +S9|2590|DURSEJ|9 +S9|2591|DURSEJ|9 +S9|2592|DURSEJ|9 +S9|2593|DURSEJ|9 +S9|2594|DURSEJ|9 +S9|2595|DURSEJ|9 +S9|2596|DURSEJ|9 +S9|2597|DURSEJ|9 +S9|2598|DURSEJ|9 +S9|2599|DURSEJ|9 +S9|2600|DURSEJ|9 +S9|2601|DURSEJ|9 +S9|2602|DURSEJ|9 +S9|2603|DURSEJ|9 +S9|2604|DURSEJ|9 +S9|2605|DURSEJ|9 +S9|2606|DURSEJ|9 +S9|2607|DURSEJ|9 +S9|2608|DURSEJ|9 +S9|2609|DURSEJ|9 +S9|2610|DURSEJ|9 +S9|2611|DURSEJ|9 +S9|2612|DURSEJ|9 +S9|2613|DURSEJ|9 +S9|2614|DURSEJ|9 +S9|2615|DURSEJ|9 +S9|2616|DURSEJ|9 +S9|2617|DURSEJ|9 +S9|2618|DURSEJ|9 +S9|2619|DURSEJ|9 +S9|2620|DURSEJ|9 +S9|2621|DURSEJ|9 +S9|2622|DURSEJ|9 +S9|2623|DURSEJ|9 +S9|2624|DURSEJ|9 +S9|2625|DURSEJ|9 +S9|2626|DURSEJ|9 +S9|2627|DURSEJ|9 +S9|2628|DURSEJ|9 +S9|2629|DURSEJ|9 +S9|2630|DURSEJ|9 +S9|2631|DURSEJ|9 +S9|2632|DURSEJ|9 +S9|2633|DURSEJ|9 +S9|2634|DURSEJ|9 +S9|2635|DURSEJ|9 +S9|2636|DURSEJ|9 +S9|2637|DURSEJ|9 +S9|2638|DURSEJ|9 +S9|2639|DURSEJ|9 +S9|2640|DURSEJ|9 +S9|2641|DURSEJ|9 +S9|2642|DURSEJ|9 +S9|2643|DURSEJ|9 +S9|2644|DURSEJ|9 +S9|2645|DURSEJ|9 +S9|2646|DURSEJ|9 +S9|2647|DURSEJ|9 +S9|2648|DURSEJ|9 +S9|2649|DURSEJ|9 +S9|2650|DURSEJ|9 +S9|2651|DURSEJ|9 +S9|2652|DURSEJ|9 +S9|2653|DURSEJ|9 +S9|2654|DURSEJ|9 +S9|2655|DURSEJ|9 +S9|2656|DURSEJ|9 +S9|2657|DURSEJ|9 +S9|2658|DURSEJ|9 +S9|2659|DURSEJ|9 +S9|2660|DURSEJ|9 +S9|2661|DURSEJ|9 +S9|2662|DURSEJ|9 +S9|2663|DURSEJ|9 +S9|2664|DURSEJ|9 +S9|2665|DURSEJ|9 +S9|2666|DURSEJ|9 +S9|2667|DURSEJ|9 +S9|2668|DURSEJ|9 +S9|2669|DURSEJ|9 +S9|2670|DURSEJ|9 +S9|2671|DURSEJ|9 +S9|2672|DURSEJ|9 +S9|2673|DURSEJ|9 +S9|2674|DURSEJ|9 +S9|2675|DURSEJ|9 +S9|2676|DURSEJ|9 +S9|2677|DURSEJ|9 +S9|2678|DURSEJ|9 +S9|2679|DURSEJ|9 +S9|2680|DURSEJ|9 +S9|2681|DURSEJ|9 +S9|2682|DURSEJ|9 +S9|2683|DURSEJ|9 +S9|2684|DURSEJ|9 +S9|2685|DURSEJ|9 +S9|2686|DURSEJ|9 +S9|2687|DURSEJ|9 +S9|2688|DURSEJ|9 +S9|2689|DURSEJ|9 +S9|2690|DURSEJ|9 +S9|2691|DURSEJ|9 +S9|2692|DURSEJ|9 +S9|2693|DURSEJ|9 +S9|2694|DURSEJ|9 +S9|2695|DURSEJ|9 +S9|2696|DURSEJ|9 +S9|2697|DURSEJ|9 +S9|2698|DURSEJ|9 +S9|2699|DURSEJ|9 +S9|2700|DURSEJ|9 +S9|2701|DURSEJ|9 +S9|2702|DURSEJ|9 +S9|2703|DURSEJ|9 +S9|2704|DURSEJ|9 +S9|2705|DURSEJ|9 +S9|2706|DURSEJ|9 +S9|2707|DURSEJ|9 +S9|2708|DURSEJ|9 +S9|2709|DURSEJ|9 +S9|2710|DURSEJ|9 +S9|2711|DURSEJ|9 +S9|2712|DURSEJ|9 +S9|2713|DURSEJ|9 +S9|2714|DURSEJ|9 +S9|2715|DURSEJ|9 +S9|2716|DURSEJ|9 +S9|2717|DURSEJ|9 +S9|2718|DURSEJ|9 +S9|2719|DURSEJ|9 +S9|2720|DURSEJ|9 +S9|2721|DURSEJ|9 +S9|2722|DURSEJ|9 +S9|2723|DURSEJ|9 +S9|2724|DURSEJ|9 +S9|2725|DURSEJ|9 +S9|2726|DURSEJ|9 +S9|2727|DURSEJ|9 +S9|2728|DURSEJ|9 +S9|2729|DURSEJ|9 +S9|2730|DURSEJ|9 +S9|2731|DURSEJ|9 +S9|2732|DURSEJ|9 +S9|2733|DURSEJ|9 +S9|2734|DURSEJ|9 +S9|2735|DURSEJ|9 +S9|2736|DURSEJ|9 +S9|2737|DURSEJ|9 +S9|2738|DURSEJ|9 +S9|2739|DURSEJ|9 +S9|2740|DURSEJ|9 +S9|2741|DURSEJ|9 +S9|2742|DURSEJ|9 +S9|2743|DURSEJ|9 +S9|2744|DURSEJ|9 +S9|2745|DURSEJ|9 +S9|2746|DURSEJ|9 +S9|2747|DURSEJ|9 +S9|2748|DURSEJ|9 +S9|2749|DURSEJ|9 +S9|2750|DURSEJ|9 +S9|2751|DURSEJ|9 +S9|2752|DURSEJ|9 +S9|2753|DURSEJ|9 +S9|2754|DURSEJ|9 +S9|2755|DURSEJ|9 +S9|2756|DURSEJ|9 +S9|2757|DURSEJ|9 +S9|2758|DURSEJ|9 +S9|2759|DURSEJ|9 +S9|2760|DURSEJ|9 +S9|2761|DURSEJ|9 +S9|2762|DURSEJ|9 +S9|2763|DURSEJ|9 +S9|2764|DURSEJ|9 +S9|2765|DURSEJ|9 +S9|2766|DURSEJ|9 +S9|2767|DURSEJ|9 +S9|2768|DURSEJ|9 +S9|2769|DURSEJ|9 +S9|2770|DURSEJ|9 +S9|2771|DURSEJ|9 +S9|2772|DURSEJ|9 +S9|2773|DURSEJ|9 +S9|2774|DURSEJ|9 +S9|2775|DURSEJ|9 +S9|2776|DURSEJ|9 +S9|2777|DURSEJ|9 +S9|2778|DURSEJ|9 +S9|2779|DURSEJ|9 +S9|2780|DURSEJ|9 +S9|2781|DURSEJ|9 +S9|2782|DURSEJ|9 +S9|2783|DURSEJ|9 +S9|2784|DURSEJ|9 +S9|2785|DURSEJ|9 +S9|2786|DURSEJ|9 +S9|2787|DURSEJ|9 +S9|2788|DURSEJ|9 +S9|2789|DURSEJ|9 +S9|2790|DURSEJ|9 +S9|2791|DURSEJ|9 +S9|2792|DURSEJ|9 +S9|2793|DURSEJ|9 +S9|2794|DURSEJ|9 +S9|2795|DURSEJ|9 +S9|2796|DURSEJ|9 +S9|2797|DURSEJ|9 +S9|2798|DURSEJ|9 +S9|2799|DURSEJ|9 +S9|2800|DURSEJ|9 +S9|2801|DURSEJ|9 +S9|2802|DURSEJ|9 +S9|2803|DURSEJ|9 +S9|2804|DURSEJ|9 +S9|2805|DURSEJ|9 +S9|2806|DURSEJ|9 +S9|2807|DURSEJ|9 +S9|2808|DURSEJ|9 +S9|2809|DURSEJ|9 +S9|2810|DURSEJ|9 +S9|2811|DURSEJ|9 +S9|2812|DURSEJ|9 +S9|2813|DURSEJ|9 +S9|2814|DURSEJ|9 +S9|2815|DURSEJ|9 +S9|2816|DURSEJ|9 +S9|2817|DURSEJ|9 +S9|2818|DURSEJ|9 +S9|2819|DURSEJ|9 +S9|2820|DURSEJ|9 +S9|2821|DURSEJ|9 +S9|2822|DURSEJ|9 +S9|2823|DURSEJ|9 +S9|2824|DURSEJ|9 +S9|2825|DURSEJ|9 +S9|2826|DURSEJ|9 +S9|2827|DURSEJ|9 +S9|2828|DURSEJ|9 +S9|2829|DURSEJ|9 +S9|2830|DURSEJ|9 +S9|2831|DURSEJ|9 +S9|2832|DURSEJ|9 +S9|2833|DURSEJ|9 +S9|2834|DURSEJ|9 +S9|2835|DURSEJ|9 +S9|2836|DURSEJ|9 +S9|2837|DURSEJ|9 +S9|2838|DURSEJ|9 +S9|2839|DURSEJ|9 +S9|2840|DURSEJ|9 +S9|2841|DURSEJ|9 +S9|2842|DURSEJ|9 +S9|2843|DURSEJ|9 +S9|2844|DURSEJ|9 +S9|2845|DURSEJ|9 +S9|2846|DURSEJ|9 +S9|2847|DURSEJ|9 +S9|2848|DURSEJ|9 +S9|2849|DURSEJ|9 +S9|2850|DURSEJ|9 +S9|2851|DURSEJ|9 +S9|2852|DURSEJ|9 +S9|2853|DURSEJ|9 +S9|2854|DURSEJ|9 +S9|2855|DURSEJ|9 +S9|2856|DURSEJ|9 +S9|2857|DURSEJ|9 +S9|2858|DURSEJ|9 +S9|2859|DURSEJ|9 +S9|2860|DURSEJ|9 +S9|2861|DURSEJ|9 +S9|2862|DURSEJ|9 +S9|2863|DURSEJ|9 +S9|2864|DURSEJ|9 +S9|2865|DURSEJ|9 +S9|2866|DURSEJ|9 +S9|2867|DURSEJ|9 +S9|2868|DURSEJ|9 +S9|2869|DURSEJ|9 +S9|2870|DURSEJ|9 +S9|2871|DURSEJ|9 +S9|2872|DURSEJ|9 +S9|2873|DURSEJ|9 +S9|2874|DURSEJ|9 +S9|2875|DURSEJ|9 +S9|2876|DURSEJ|9 +S9|2877|DURSEJ|9 +S9|2878|DURSEJ|9 +S9|2879|DURSEJ|9 +S9|2880|DURSEJ|9 +S9|2881|DURSEJ|9 +S9|2882|DURSEJ|9 +S9|2883|DURSEJ|9 +S9|2884|DURSEJ|9 +S9|2885|DURSEJ|9 +S9|2886|DURSEJ|9 +S9|2887|DURSEJ|9 +S9|2888|DURSEJ|9 +S9|2889|DURSEJ|9 +S9|2890|DURSEJ|9 +S9|2891|DURSEJ|9 +S9|2892|DURSEJ|9 +S9|2893|DURSEJ|9 +S9|2894|DURSEJ|9 +S9|2895|DURSEJ|9 +S9|2896|DURSEJ|9 +S9|2897|DURSEJ|9 +S9|2898|DURSEJ|9 +S9|2899|DURSEJ|9 +S9|2900|DURSEJ|9 +S9|2901|DURSEJ|9 +S9|2902|DURSEJ|9 +S9|2903|DURSEJ|9 +S9|2904|DURSEJ|9 +S9|2905|DURSEJ|9 +S9|2906|DURSEJ|9 +S9|2907|DURSEJ|9 +S9|2908|DURSEJ|9 +S9|2909|DURSEJ|9 +S9|2910|DURSEJ|9 +S9|2911|DURSEJ|9 +S9|2912|DURSEJ|9 +S9|2913|DURSEJ|9 +S9|2914|DURSEJ|9 +S9|2915|DURSEJ|9 +S9|2916|DURSEJ|9 +S9|2917|DURSEJ|9 +S9|2918|DURSEJ|9 +S9|2919|DURSEJ|9 +S9|2920|DURSEJ|9 +S9|2921|DURSEJ|9 +S9|2922|DURSEJ|9 +S9|2923|DURSEJ|9 +S9|2924|DURSEJ|9 +S9|2925|DURSEJ|9 +S9|2926|DURSEJ|9 +S9|2927|DURSEJ|9 +S9|2928|DURSEJ|9 +S9|2929|DURSEJ|9 +S9|2930|DURSEJ|9 +S9|2931|DURSEJ|9 +S9|2932|DURSEJ|9 +S9|2933|DURSEJ|9 +S9|2934|DURSEJ|9 +S9|2935|DURSEJ|9 +S9|2936|DURSEJ|9 +S9|2937|DURSEJ|9 +S9|2938|DURSEJ|9 +S9|2939|DURSEJ|9 +S9|2940|DURSEJ|9 +S9|2941|DURSEJ|9 +S9|2942|DURSEJ|9 +S9|2943|DURSEJ|9 +S9|2944|DURSEJ|9 +S9|2945|DURSEJ|9 +S9|2946|DURSEJ|9 +S9|2947|DURSEJ|9 +S9|2948|DURSEJ|9 +S9|2949|DURSEJ|9 +S9|2950|DURSEJ|9 +S9|2951|DURSEJ|9 +S9|2952|DURSEJ|9 +S9|2953|DURSEJ|9 +S9|2954|DURSEJ|9 +S9|2955|DURSEJ|9 +S9|2956|DURSEJ|9 +S9|2957|DURSEJ|9 +S9|2958|DURSEJ|9 +S9|2959|DURSEJ|9 +S9|2960|DURSEJ|9 +S9|2961|DURSEJ|9 +S9|2962|DURSEJ|9 +S9|2963|DURSEJ|9 +S9|2964|DURSEJ|9 +S9|2965|DURSEJ|9 +S9|2966|DURSEJ|9 +S9|2967|DURSEJ|9 +S9|2968|DURSEJ|9 +S9|2969|DURSEJ|9 +S9|2970|DURSEJ|9 +S9|2971|DURSEJ|9 +S9|2972|DURSEJ|9 +S9|2973|DURSEJ|9 +S9|2974|DURSEJ|9 +S9|2975|DURSEJ|9 +S9|2976|DURSEJ|9 +S9|2977|DURSEJ|9 +S9|2978|DURSEJ|9 +S9|2979|DURSEJ|9 +S9|2980|DURSEJ|9 +S9|2981|DURSEJ|9 +S9|2982|DURSEJ|9 +S9|2983|DURSEJ|9 +S9|2984|DURSEJ|9 +S9|2985|DURSEJ|9 +S9|2986|DURSEJ|9 +S9|2987|DURSEJ|9 +S9|2988|DURSEJ|9 +S9|2989|DURSEJ|9 +S9|2990|DURSEJ|9 +S9|2991|DURSEJ|9 +S9|2992|DURSEJ|9 +S9|2993|DURSEJ|9 +S9|2994|DURSEJ|9 +S9|2995|DURSEJ|9 +S9|2996|DURSEJ|9 +S9|2997|DURSEJ|9 +S9|2998|DURSEJ|9 +S9|2999|DURSEJ|9 +S9|3000|DURSEJ|9 +S9|3001|DURSEJ|9 +S9|3002|DURSEJ|9 +S9|3003|DURSEJ|9 +S9|3004|DURSEJ|9 +S9|3005|DURSEJ|9 +S9|3006|DURSEJ|9 +S9|3007|DURSEJ|9 +S9|3008|DURSEJ|9 +S9|3009|DURSEJ|9 +S9|3010|DURSEJ|9 +S9|3011|DURSEJ|9 +S9|3012|DURSEJ|9 +S9|3013|DURSEJ|9 +S9|3014|DURSEJ|9 +S9|3015|DURSEJ|9 +S9|3016|DURSEJ|9 +S9|3017|DURSEJ|9 +S9|3018|DURSEJ|9 +S9|3019|DURSEJ|9 +S9|3020|DURSEJ|9 +S9|3021|DURSEJ|9 +S9|3022|DURSEJ|9 +S9|3023|DURSEJ|9 +S9|3024|DURSEJ|9 +S9|3025|DURSEJ|9 +S9|3026|DURSEJ|9 +S9|3027|DURSEJ|9 +S9|3028|DURSEJ|9 +S9|3029|DURSEJ|9 +S9|3030|DURSEJ|9 +S9|3031|DURSEJ|9 +S9|3032|DURSEJ|9 +S9|3033|DURSEJ|9 +S9|3034|DURSEJ|9 +S9|3035|DURSEJ|9 +S9|3036|DURSEJ|9 +S9|3037|DURSEJ|9 +S9|3038|DURSEJ|9 +S9|3039|DURSEJ|9 +S9|3040|DURSEJ|9 +S9|3041|DURSEJ|9 +S9|3042|DURSEJ|9 +S9|3043|DURSEJ|9 +S9|3044|DURSEJ|9 +S9|3045|DURSEJ|9 +S9|3046|DURSEJ|9 +S9|3047|DURSEJ|9 +S9|3048|DURSEJ|9 +S9|3049|DURSEJ|9 +S9|3050|DURSEJ|9 +S9|3051|DURSEJ|9 +S9|3052|DURSEJ|9 +S9|3053|DURSEJ|9 +S9|3054|DURSEJ|9 +S9|3055|DURSEJ|9 +S9|3056|DURSEJ|9 +S9|3057|DURSEJ|9 +S9|3058|DURSEJ|9 +S9|3059|DURSEJ|9 +S9|3060|DURSEJ|9 +S9|3061|DURSEJ|9 +S9|3062|DURSEJ|9 +S9|3063|DURSEJ|9 +S9|3064|DURSEJ|9 +S9|3065|DURSEJ|9 +S9|3066|DURSEJ|9 +S9|3067|DURSEJ|9 +S9|3068|DURSEJ|9 +S9|3069|DURSEJ|9 +S9|3070|DURSEJ|9 +S9|3071|DURSEJ|9 +S9|3072|DURSEJ|9 +S9|3073|DURSEJ|9 +S9|3074|DURSEJ|9 +S9|3075|DURSEJ|9 +S9|3076|DURSEJ|9 +S9|3077|DURSEJ|9 +S9|3078|DURSEJ|9 +S9|3079|DURSEJ|9 +S9|3080|DURSEJ|9 +S9|3081|DURSEJ|9 +S9|3082|DURSEJ|9 +S9|3083|DURSEJ|9 +S9|3084|DURSEJ|9 +S9|3085|DURSEJ|9 +S9|3086|DURSEJ|9 +S9|3087|DURSEJ|9 +S9|3088|DURSEJ|9 +S9|3089|DURSEJ|9 +S9|3090|DURSEJ|9 +S9|3091|DURSEJ|9 +S9|3092|DURSEJ|9 +S9|3093|DURSEJ|9 +S9|3094|DURSEJ|9 +S9|3095|DURSEJ|9 +S9|3096|DURSEJ|9 +S9|3097|DURSEJ|9 +S9|3098|DURSEJ|9 +S9|3099|DURSEJ|9 +S9|3100|DURSEJ|9 +S9|3101|DURSEJ|9 +S9|3102|DURSEJ|9 +S9|3103|DURSEJ|9 +S9|3104|DURSEJ|9 +S9|3105|DURSEJ|9 +S9|3106|DURSEJ|9 +S9|3107|DURSEJ|9 +S9|3108|DURSEJ|9 +S9|3109|DURSEJ|9 +S9|3110|DURSEJ|9 +S9|3111|DURSEJ|9 +S9|3112|DURSEJ|9 +S9|3113|DURSEJ|9 +S9|3114|DURSEJ|9 +S9|3115|DURSEJ|9 +S9|3116|DURSEJ|9 +S9|3117|DURSEJ|9 +S9|3118|DURSEJ|9 +S9|3119|DURSEJ|9 +S9|3120|DURSEJ|9 +S9|3121|DURSEJ|9 +S9|3122|DURSEJ|9 +S9|3123|DURSEJ|9 +S9|3124|DURSEJ|9 +S9|3125|DURSEJ|9 +S9|3126|DURSEJ|9 +S9|3127|DURSEJ|9 +S9|3128|DURSEJ|9 +S9|3129|DURSEJ|9 +S9|3130|DURSEJ|9 +S9|3131|DURSEJ|9 +S9|3132|DURSEJ|9 +S9|3133|DURSEJ|9 +S9|3134|DURSEJ|9 +S9|3135|DURSEJ|9 +S9|3136|DURSEJ|9 +S9|3137|DURSEJ|9 +S9|3138|DURSEJ|9 +S9|3139|DURSEJ|9 +S9|3140|DURSEJ|9 +S9|3141|DURSEJ|9 +S9|3142|DURSEJ|9 +S9|3143|DURSEJ|9 +S9|3144|DURSEJ|9 +S9|3145|DURSEJ|9 +S9|3146|DURSEJ|9 +S9|3147|DURSEJ|9 +S9|3148|DURSEJ|9 +S9|3149|DURSEJ|9 +S9|3150|DURSEJ|9 +S9|3151|DURSEJ|9 +S9|3152|DURSEJ|9 +S9|3153|DURSEJ|9 +S9|3154|DURSEJ|9 +S9|3155|DURSEJ|9 +S9|3156|DURSEJ|9 +S9|3157|DURSEJ|9 +S9|3158|DURSEJ|9 +S9|3159|DURSEJ|9 +S9|3160|DURSEJ|9 +S9|3161|DURSEJ|9 +S9|3162|DURSEJ|9 +S9|3163|DURSEJ|9 +S9|3164|DURSEJ|9 +S9|3165|DURSEJ|9 +S9|3166|DURSEJ|9 +S9|3167|DURSEJ|9 +S9|3168|DURSEJ|9 +S9|3169|DURSEJ|9 +S9|3170|DURSEJ|9 +S9|3171|DURSEJ|9 +S9|3172|DURSEJ|9 +S9|3173|DURSEJ|9 +S9|3174|DURSEJ|9 +S9|3175|DURSEJ|9 +S9|3176|DURSEJ|9 +S9|3177|DURSEJ|9 +S9|3178|DURSEJ|9 +S9|3179|DURSEJ|9 +S9|3180|DURSEJ|9 +S9|3181|DURSEJ|9 +S9|3182|DURSEJ|9 +S9|3183|DURSEJ|9 +S9|3184|DURSEJ|9 +S9|3185|DURSEJ|9 +S9|3186|DURSEJ|9 +S9|3187|DURSEJ|9 +S9|3188|DURSEJ|9 +S9|3189|DURSEJ|9 +S9|3190|DURSEJ|9 +S9|3191|DURSEJ|9 +S9|3192|DURSEJ|9 +S9|3193|DURSEJ|9 +S9|3194|DURSEJ|9 +S9|3195|DURSEJ|9 +S9|3196|DURSEJ|9 +S9|3197|DURSEJ|9 +S9|3198|DURSEJ|9 +S9|3199|DURSEJ|9 +S9|3200|DURSEJ|9 +S9|3201|DURSEJ|9 +S9|3202|DURSEJ|9 +S9|3203|DURSEJ|9 +S9|3204|DURSEJ|9 +S9|3205|DURSEJ|9 +S9|3206|DURSEJ|9 +S9|3207|DURSEJ|9 +S9|3208|DURSEJ|9 +S9|3209|DURSEJ|9 +S9|3210|DURSEJ|9 +S9|3211|DURSEJ|9 +S9|3212|DURSEJ|9 +S9|3213|DURSEJ|9 +S9|3214|DURSEJ|9 +S9|3215|DURSEJ|9 +S9|3216|DURSEJ|9 +S9|3217|DURSEJ|9 +S9|3218|DURSEJ|9 +S9|3219|DURSEJ|9 +S9|3220|DURSEJ|9 +S9|3221|DURSEJ|9 +S9|3222|DURSEJ|9 +S9|3223|DURSEJ|9 +S9|3224|DURSEJ|9 +S9|3225|DURSEJ|9 +S9|3226|DURSEJ|9 +S9|3227|DURSEJ|9 +S9|3228|DURSEJ|9 +S9|3229|DURSEJ|9 +S9|3230|DURSEJ|9 +S9|3231|DURSEJ|9 +S9|3232|DURSEJ|9 +S9|3233|DURSEJ|9 +S9|3234|DURSEJ|9 +S9|3235|DURSEJ|9 +S9|3236|DURSEJ|9 +S9|3237|DURSEJ|9 +S9|3238|DURSEJ|9 +S9|3239|DURSEJ|9 +S9|3240|DURSEJ|9 +S9|3241|DURSEJ|9 +S9|3242|DURSEJ|9 +S9|3243|DURSEJ|9 +S9|3244|DURSEJ|9 +S9|3245|DURSEJ|9 +S9|3246|DURSEJ|9 +S9|3247|DURSEJ|9 +S9|3248|DURSEJ|9 +S9|3249|DURSEJ|9 +S9|3250|DURSEJ|9 +S9|3251|DURSEJ|9 +S9|3252|DURSEJ|9 +S9|3253|DURSEJ|9 +S9|3254|DURSEJ|9 +S9|3255|DURSEJ|9 +S9|3256|DURSEJ|9 +S9|3257|DURSEJ|9 +S9|3258|DURSEJ|9 +S9|3259|DURSEJ|9 +S9|3260|DURSEJ|9 +S9|3261|DURSEJ|9 +S9|3262|DURSEJ|9 +S9|3263|DURSEJ|9 +S9|3264|DURSEJ|9 +S9|3265|DURSEJ|9 +S9|3266|DURSEJ|9 +S9|3267|DURSEJ|9 +S9|3268|DURSEJ|9 +S9|3269|DURSEJ|9 +S9|3270|DURSEJ|9 +S9|3271|DURSEJ|9 +S9|3272|DURSEJ|9 +S9|3273|DURSEJ|9 +S9|3274|DURSEJ|9 +S9|3275|DURSEJ|9 +S9|3276|DURSEJ|9 +S9|3277|DURSEJ|9 +S9|3278|DURSEJ|9 +S9|3279|DURSEJ|9 +S9|3280|DURSEJ|9 +S9|3281|DURSEJ|9 +S9|3282|DURSEJ|9 +S9|3283|DURSEJ|9 +S9|3284|DURSEJ|9 +S9|3285|DURSEJ|9 +S9|3286|DURSEJ|9 +S9|3287|DURSEJ|9 +S9|3288|DURSEJ|9 +S9|3289|DURSEJ|9 +S9|3290|DURSEJ|9 +S9|3291|DURSEJ|9 +S9|3292|DURSEJ|9 +S9|3293|DURSEJ|9 +S9|3294|DURSEJ|9 +S9|3295|DURSEJ|9 +S9|3296|DURSEJ|9 +S9|3297|DURSEJ|9 +S9|3298|DURSEJ|9 +S9|3299|DURSEJ|9 +S9|3300|DURSEJ|9 +S9|3301|DURSEJ|9 +S9|3302|DURSEJ|9 +S9|3303|DURSEJ|9 +S9|3304|DURSEJ|9 +S9|3305|DURSEJ|9 +S9|3306|DURSEJ|9 +S9|3307|DURSEJ|9 +S9|3308|DURSEJ|9 +S9|3309|DURSEJ|9 +S9|3310|DURSEJ|9 +S9|3311|DURSEJ|9 +S9|3312|DURSEJ|9 +S9|3313|DURSEJ|9 +S9|3314|DURSEJ|9 +S9|3315|DURSEJ|9 +S9|3316|DURSEJ|9 +S9|3317|DURSEJ|9 +S9|3318|DURSEJ|9 +S9|3319|DURSEJ|9 +S9|3320|DURSEJ|9 +S9|3321|DURSEJ|9 +S9|3322|DURSEJ|9 +S9|3323|DURSEJ|9 +S9|3324|DURSEJ|9 +S9|3325|DURSEJ|9 +S9|3326|DURSEJ|9 +S9|3327|DURSEJ|9 +S9|3328|DURSEJ|9 +S9|3329|DURSEJ|9 +S9|3330|DURSEJ|9 +S9|3331|DURSEJ|9 +S9|3332|DURSEJ|9 +S9|3333|DURSEJ|9 +S9|3334|DURSEJ|9 +S9|3335|DURSEJ|9 +S9|3336|DURSEJ|9 +S9|3337|DURSEJ|9 +S9|3338|DURSEJ|9 +S9|3339|DURSEJ|9 +S9|3340|DURSEJ|9 +S9|3341|DURSEJ|9 +S9|3342|DURSEJ|9 +S9|3343|DURSEJ|9 +S9|3344|DURSEJ|9 +S9|3345|DURSEJ|9 +S9|3346|DURSEJ|9 +S9|3347|DURSEJ|9 +S9|3348|DURSEJ|9 +S9|3349|DURSEJ|9 +S9|3350|DURSEJ|9 +S9|3351|DURSEJ|9 +S9|3352|DURSEJ|9 +S9|3353|DURSEJ|9 +S9|3354|DURSEJ|9 +S9|3355|DURSEJ|9 +S9|3356|DURSEJ|9 +S9|3357|DURSEJ|9 +S9|3358|DURSEJ|9 +S9|3359|DURSEJ|9 +S9|3360|DURSEJ|9 +S9|3361|DURSEJ|9 +S9|3362|DURSEJ|9 +S9|3363|DURSEJ|9 +S9|3364|DURSEJ|9 +S9|3365|DURSEJ|9 +S9|3366|DURSEJ|9 +S9|3367|DURSEJ|9 +S9|3368|DURSEJ|9 +S9|3369|DURSEJ|9 +S9|3370|DURSEJ|9 +S9|3371|DURSEJ|9 +S9|3372|DURSEJ|9 +S9|3373|DURSEJ|9 +S9|3374|DURSEJ|9 +S9|3375|DURSEJ|9 +S9|3376|DURSEJ|9 +S9|3377|DURSEJ|9 +S9|3378|DURSEJ|9 +S9|3379|DURSEJ|9 +S9|3380|DURSEJ|9 +S9|3381|DURSEJ|9 +S9|3382|DURSEJ|9 +S9|3383|DURSEJ|9 +S9|3384|DURSEJ|9 +S9|3385|DURSEJ|9 +S9|3386|DURSEJ|9 +S9|3387|DURSEJ|9 +S9|3388|DURSEJ|9 +S9|3389|DURSEJ|9 +S9|3390|DURSEJ|9 +S9|3391|DURSEJ|9 +S9|3392|DURSEJ|9 +S9|3393|DURSEJ|9 +S9|3394|DURSEJ|9 +S9|3395|DURSEJ|9 +S9|3396|DURSEJ|9 +S9|3397|DURSEJ|9 +S9|3398|DURSEJ|9 +S9|3399|DURSEJ|9 +S9|3400|DURSEJ|9 +S9|3401|DURSEJ|9 +S9|3402|DURSEJ|9 +S9|3403|DURSEJ|9 +S9|3404|DURSEJ|9 +S9|3405|DURSEJ|9 +S9|3406|DURSEJ|9 +S9|3407|DURSEJ|9 +S9|3408|DURSEJ|9 +S9|3409|DURSEJ|9 +S9|3410|DURSEJ|9 +S9|3411|DURSEJ|9 +S9|3412|DURSEJ|9 +S9|3413|DURSEJ|9 +S9|3414|DURSEJ|9 +S9|3415|DURSEJ|9 +S9|3416|DURSEJ|9 +S9|3417|DURSEJ|9 +S9|3418|DURSEJ|9 +S9|3419|DURSEJ|9 +S9|3420|DURSEJ|9 +S9|3421|DURSEJ|9 +S9|3422|DURSEJ|9 +S9|3423|DURSEJ|9 +S9|3424|DURSEJ|9 +S9|3425|DURSEJ|9 +S9|3426|DURSEJ|9 +S9|3427|DURSEJ|9 +S9|3428|DURSEJ|9 +S9|3429|DURSEJ|9 +S9|3430|DURSEJ|9 +S9|3431|DURSEJ|9 +S9|3432|DURSEJ|9 +S9|3433|DURSEJ|9 +S9|3434|DURSEJ|9 +S9|3435|DURSEJ|9 +S9|3436|DURSEJ|9 +S9|3437|DURSEJ|9 +S9|3438|DURSEJ|9 +S9|3439|DURSEJ|9 +S9|3440|DURSEJ|9 +S9|3441|DURSEJ|9 +S9|3442|DURSEJ|9 +S9|3443|DURSEJ|9 +S9|3444|DURSEJ|9 +S9|3445|DURSEJ|9 +S9|3446|DURSEJ|9 +S9|3447|DURSEJ|9 +S9|3448|DURSEJ|9 +S9|3449|DURSEJ|9 +S9|3450|DURSEJ|9 +S9|3451|DURSEJ|9 +S9|3452|DURSEJ|9 +S9|3453|DURSEJ|9 +S9|3454|DURSEJ|9 +S9|3455|DURSEJ|9 +S9|3456|DURSEJ|9 +S9|3457|DURSEJ|9 +S9|3458|DURSEJ|9 +S9|3459|DURSEJ|9 +S9|3460|DURSEJ|9 +S9|3461|DURSEJ|9 +S9|3462|DURSEJ|9 +S9|3463|DURSEJ|9 +S9|3464|DURSEJ|9 +S9|3465|DURSEJ|9 +S9|3466|DURSEJ|9 +S9|3467|DURSEJ|9 +S9|3468|DURSEJ|9 +S9|3469|DURSEJ|9 +S9|3470|DURSEJ|9 +S9|3471|DURSEJ|9 +S9|3472|DURSEJ|9 +S9|3473|DURSEJ|9 +S9|3474|DURSEJ|9 +S9|3475|DURSEJ|9 +S9|3476|DURSEJ|9 +S9|3477|DURSEJ|9 +S9|3478|DURSEJ|9 +S9|3479|DURSEJ|9 +S9|3480|DURSEJ|9 +S9|3481|DURSEJ|9 +S9|3482|DURSEJ|9 +S9|3483|DURSEJ|9 +S9|3484|DURSEJ|9 +S9|3485|DURSEJ|9 +S9|3486|DURSEJ|9 +S9|3487|DURSEJ|9 +S9|3488|DURSEJ|9 +S9|3489|DURSEJ|9 +S9|3490|DURSEJ|9 +S9|3491|DURSEJ|9 +S9|3492|DURSEJ|9 +S9|3493|DURSEJ|9 +S9|3494|DURSEJ|9 +S9|3495|DURSEJ|9 +S9|3496|DURSEJ|9 +S9|3497|DURSEJ|9 +S9|3498|DURSEJ|9 +S9|3499|DURSEJ|9 +S9|3500|DURSEJ|9 +S9|3501|DURSEJ|9 +S9|3502|DURSEJ|9 +S9|3503|DURSEJ|9 +S9|3504|DURSEJ|9 +S9|3505|DURSEJ|9 +S9|3506|DURSEJ|9 +S9|3507|DURSEJ|9 +S9|3508|DURSEJ|9 +S9|3509|DURSEJ|9 +S9|3510|DURSEJ|9 +S9|3511|DURSEJ|9 +S9|3512|DURSEJ|9 +S9|3513|DURSEJ|9 +S9|3514|DURSEJ|9 +S9|3515|DURSEJ|9 +S9|3516|DURSEJ|9 +S9|3517|DURSEJ|9 +S9|3518|DURSEJ|9 +S9|3519|DURSEJ|9 +S9|3520|DURSEJ|9 +S9|3521|DURSEJ|9 +S9|3522|DURSEJ|9 +S9|3523|DURSEJ|9 +S9|3524|DURSEJ|9 +S9|3525|DURSEJ|9 +S9|3526|DURSEJ|9 +S9|3527|DURSEJ|9 +S9|3528|DURSEJ|9 +S9|3529|DURSEJ|9 +S9|3530|DURSEJ|9 +S9|3531|DURSEJ|9 +S9|3532|DURSEJ|9 +S9|3533|DURSEJ|9 +S9|3534|DURSEJ|9 +S9|3535|DURSEJ|9 +S9|3536|DURSEJ|9 +S9|3537|DURSEJ|9 +S9|3538|DURSEJ|9 +S9|3539|DURSEJ|9 +S9|3540|DURSEJ|9 +S9|3541|DURSEJ|9 +S9|3542|DURSEJ|9 +S9|3543|DURSEJ|9 +S9|3544|DURSEJ|9 +S9|3545|DURSEJ|9 +S9|3546|DURSEJ|9 +S9|3547|DURSEJ|9 +S9|3548|DURSEJ|9 +S9|3549|DURSEJ|9 +S9|3550|DURSEJ|9 +S9|3551|DURSEJ|9 +S9|3552|DURSEJ|9 +S9|3553|DURSEJ|9 +S9|3554|DURSEJ|9 +S9|3555|DURSEJ|9 +S9|3556|DURSEJ|9 +S9|3557|DURSEJ|9 +S9|3558|DURSEJ|9 +S9|3559|DURSEJ|9 +S9|3560|DURSEJ|9 +S9|3561|DURSEJ|9 +S9|3562|DURSEJ|9 +S9|3563|DURSEJ|9 +S9|3564|DURSEJ|9 +S9|3565|DURSEJ|9 +S9|3566|DURSEJ|9 +S9|3567|DURSEJ|9 +S9|3568|DURSEJ|9 +S9|3569|DURSEJ|9 +S9|3570|DURSEJ|9 +S9|3571|DURSEJ|9 +S9|3572|DURSEJ|9 +S9|3573|DURSEJ|9 +S9|3574|DURSEJ|9 +S9|3575|DURSEJ|9 +S9|3576|DURSEJ|9 +S9|3577|DURSEJ|9 +S9|3578|DURSEJ|9 +S9|3579|DURSEJ|9 +S9|3580|DURSEJ|9 +S9|3581|DURSEJ|9 +S9|3582|DURSEJ|9 +S9|3583|DURSEJ|9 +S9|3584|DURSEJ|9 +S9|3585|DURSEJ|9 +S9|3586|DURSEJ|9 +S9|3587|DURSEJ|9 +S9|3588|DURSEJ|9 +S9|3589|DURSEJ|9 +S9|3590|DURSEJ|9 +S9|3591|DURSEJ|9 +S9|3592|DURSEJ|9 +S9|3593|DURSEJ|9 +S9|3594|DURSEJ|9 +S9|3595|DURSEJ|9 +S9|3596|DURSEJ|9 +S9|3597|DURSEJ|9 +S9|3598|DURSEJ|9 +S9|3599|DURSEJ|9 +S9|3600|DURSEJ|9 +S9|3601|DURSEJ|9 +S9|3602|DURSEJ|9 +S9|3603|DURSEJ|9 +S9|3604|DURSEJ|9 +S9|3605|DURSEJ|9 +S9|3606|DURSEJ|9 +S9|3607|DURSEJ|9 +S9|3608|DURSEJ|9 +S9|3609|DURSEJ|9 +S9|3610|DURSEJ|9 +S9|3611|DURSEJ|9 +S9|3612|DURSEJ|9 +S9|3613|DURSEJ|9 +S9|3614|DURSEJ|9 +S9|3615|DURSEJ|9 +S9|3616|DURSEJ|9 +S9|3617|DURSEJ|9 +S9|3618|DURSEJ|9 +S9|3619|DURSEJ|9 +S9|3620|DURSEJ|9 +S9|3621|DURSEJ|9 +S9|3622|DURSEJ|9 +S9|3623|DURSEJ|9 +S9|3624|DURSEJ|9 +S9|3625|DURSEJ|9 +S9|3626|DURSEJ|9 +S9|3627|DURSEJ|9 +S9|3628|DURSEJ|9 +S9|3629|DURSEJ|9 +S9|3630|DURSEJ|9 +S9|3631|DURSEJ|9 +S9|3632|DURSEJ|9 +S9|3633|DURSEJ|9 +S9|3634|DURSEJ|9 +S9|3635|DURSEJ|9 +S9|3636|DURSEJ|9 +S9|3637|DURSEJ|9 +S9|3638|DURSEJ|9 +S9|3639|DURSEJ|9 +S9|3640|DURSEJ|9 +S9|3641|DURSEJ|9 +S9|3642|DURSEJ|9 +S9|3643|DURSEJ|9 +S9|3644|DURSEJ|9 +S9|3645|DURSEJ|9 +S9|3646|DURSEJ|9 +S9|3647|DURSEJ|9 +S9|3648|DURSEJ|9 +S9|3649|DURSEJ|9 +S9|3650|DURSEJ|9 +S9|3651|DURSEJ|9 +S9|3652|DURSEJ|9 +S9|3653|DURSEJ|9 +S9|3654|DURSEJ|9 +S9|3655|DURSEJ|9 +S9|3656|DURSEJ|9 +S9|3657|DURSEJ|9 +S9|3658|DURSEJ|9 +S9|3659|DURSEJ|9 +S9|3660|DURSEJ|9 +S9|3661|DURSEJ|9 +S9|3662|DURSEJ|9 +S9|3663|DURSEJ|9 +S9|3664|DURSEJ|9 +S9|3665|DURSEJ|9 +S9|3666|DURSEJ|9 +S9|3667|DURSEJ|9 +S9|3668|DURSEJ|9 +S9|3669|DURSEJ|9 +S9|3670|DURSEJ|9 +S9|3671|DURSEJ|9 +S9|3672|DURSEJ|9 +S9|3673|DURSEJ|9 +S9|3674|DURSEJ|9 +S9|3675|DURSEJ|9 +S9|3676|DURSEJ|9 +S9|3677|DURSEJ|9 +S9|3678|DURSEJ|9 +S9|3679|DURSEJ|9 +S9|3680|DURSEJ|9 +S9|3681|DURSEJ|9 +S9|3682|DURSEJ|9 +S9|3683|DURSEJ|9 +S9|3684|DURSEJ|9 +S9|3685|DURSEJ|9 +S9|3686|DURSEJ|9 +S9|3687|DURSEJ|9 +S9|3688|DURSEJ|9 +S9|3689|DURSEJ|9 +S9|3690|DURSEJ|9 +S9|3691|DURSEJ|9 +S9|3692|DURSEJ|9 +S9|3693|DURSEJ|9 +S9|3694|DURSEJ|9 +S9|3695|DURSEJ|9 +S9|3696|DURSEJ|9 +S9|3697|DURSEJ|9 +S9|3698|DURSEJ|9 +S9|3699|DURSEJ|9 +S9|3700|DURSEJ|9 +S9|3701|DURSEJ|9 +S9|3702|DURSEJ|9 +S9|3703|DURSEJ|9 +S9|3704|DURSEJ|9 +S9|3705|DURSEJ|9 +S9|3706|DURSEJ|9 +S9|3707|DURSEJ|9 +S9|3708|DURSEJ|9 +S9|3709|DURSEJ|9 +S9|3710|DURSEJ|9 +S9|3711|DURSEJ|9 +S9|3712|DURSEJ|9 +S9|3713|DURSEJ|9 +S9|3714|DURSEJ|9 +S9|3715|DURSEJ|9 +S9|3716|DURSEJ|9 +S9|3717|DURSEJ|9 +S9|3718|DURSEJ|9 +S9|3719|DURSEJ|9 +S9|3720|DURSEJ|9 +S9|3721|DURSEJ|9 +S9|3722|DURSEJ|9 +S9|3723|DURSEJ|9 +S9|3724|DURSEJ|9 +S9|3725|DURSEJ|9 +S9|3726|DURSEJ|9 +S9|3727|DURSEJ|9 +S9|3728|DURSEJ|9 +S9|3729|DURSEJ|9 +S9|3730|DURSEJ|9 +S9|3731|DURSEJ|9 +S9|3732|DURSEJ|9 +S9|3733|DURSEJ|9 +S9|3734|DURSEJ|9 +S9|3735|DURSEJ|9 +S9|3736|DURSEJ|9 +S9|3737|DURSEJ|9 +S9|3738|DURSEJ|9 +S9|3739|DURSEJ|9 +S9|3740|DURSEJ|9 +S9|3741|DURSEJ|9 +S9|3742|DURSEJ|9 +S9|3743|DURSEJ|9 +S9|3744|DURSEJ|9 +S9|3745|DURSEJ|9 +S9|3746|DURSEJ|9 +S9|3747|DURSEJ|9 +S9|3748|DURSEJ|9 +S9|3749|DURSEJ|9 +S9|3750|DURSEJ|9 +S9|3751|DURSEJ|9 +S9|3752|DURSEJ|9 +S9|3753|DURSEJ|9 +S9|3754|DURSEJ|9 +S9|3755|DURSEJ|9 +S9|3756|DURSEJ|9 +S9|3757|DURSEJ|9 +S9|3758|DURSEJ|9 +S9|3759|DURSEJ|9 +S9|3760|DURSEJ|9 +S9|3761|DURSEJ|9 +S9|3762|DURSEJ|9 +S9|3763|DURSEJ|9 +S9|3764|DURSEJ|9 +S9|3765|DURSEJ|9 +S9|3766|DURSEJ|9 +S9|3767|DURSEJ|9 +S9|3768|DURSEJ|9 +S9|3769|DURSEJ|9 +S9|3770|DURSEJ|9 +S9|3771|DURSEJ|9 +S9|3772|DURSEJ|9 +S9|3773|DURSEJ|9 +S9|3774|DURSEJ|9 +S9|3775|DURSEJ|9 +S9|3776|DURSEJ|9 +S9|3777|DURSEJ|9 +S9|3778|DURSEJ|9 +S9|3779|DURSEJ|9 +S9|3780|DURSEJ|9 +S9|3781|DURSEJ|9 +S9|3782|DURSEJ|9 +S9|3783|DURSEJ|9 +S9|3784|DURSEJ|9 +S9|3785|DURSEJ|9 +S9|3786|DURSEJ|9 +S9|3787|DURSEJ|9 +S9|3788|DURSEJ|9 +S9|3789|DURSEJ|9 +S9|3790|DURSEJ|9 +S9|3791|DURSEJ|9 +S9|3792|DURSEJ|9 +S9|3793|DURSEJ|9 +S9|3794|DURSEJ|9 +S9|3795|DURSEJ|9 +S9|3796|DURSEJ|9 +S9|3797|DURSEJ|9 +S9|3798|DURSEJ|9 +S9|3799|DURSEJ|9 +S9|3800|DURSEJ|9 +S9|3801|DURSEJ|9 +S9|3802|DURSEJ|9 +S9|3803|DURSEJ|9 +S9|3804|DURSEJ|9 +S9|3805|DURSEJ|9 +S9|3806|DURSEJ|9 +S9|3807|DURSEJ|9 +S9|3808|DURSEJ|9 +S9|3809|DURSEJ|9 +S9|3810|DURSEJ|9 +S9|3811|DURSEJ|9 +S9|3812|DURSEJ|9 +S9|3813|DURSEJ|9 +S9|3814|DURSEJ|9 +S9|3815|DURSEJ|9 +S9|3816|DURSEJ|9 +S9|3817|DURSEJ|9 +S9|3818|DURSEJ|9 +S9|3819|DURSEJ|9 +S9|3820|DURSEJ|9 +S9|3821|DURSEJ|9 +S9|3822|DURSEJ|9 +S9|3823|DURSEJ|9 +S9|3824|DURSEJ|9 +S9|3825|DURSEJ|9 +S9|3826|DURSEJ|9 +S9|3827|DURSEJ|9 +S9|3828|DURSEJ|9 +S9|3829|DURSEJ|9 +S9|3830|DURSEJ|9 +S9|3831|DURSEJ|9 +S9|3832|DURSEJ|9 +S9|3833|DURSEJ|9 +S9|3834|DURSEJ|9 +S9|3835|DURSEJ|9 +S9|3836|DURSEJ|9 +S9|3837|DURSEJ|9 +S9|3838|DURSEJ|9 +S9|3839|DURSEJ|9 +S9|3840|DURSEJ|9 +S9|3841|DURSEJ|9 +S9|3842|DURSEJ|9 +S9|3843|DURSEJ|9 +S9|3844|DURSEJ|9 +S9|3845|DURSEJ|9 +S9|3846|DURSEJ|9 +S9|3847|DURSEJ|9 +S9|3848|DURSEJ|9 +S9|3849|DURSEJ|9 +S9|3850|DURSEJ|9 +S9|3851|DURSEJ|9 +S9|3852|DURSEJ|9 +S9|3853|DURSEJ|9 +S9|3854|DURSEJ|9 +S9|3855|DURSEJ|9 +S9|3856|DURSEJ|9 +S9|3857|DURSEJ|9 +S9|3858|DURSEJ|9 +S9|3859|DURSEJ|9 +S9|3860|DURSEJ|9 +S9|3861|DURSEJ|9 +S9|3862|DURSEJ|9 +S9|3863|DURSEJ|9 +S9|3864|DURSEJ|9 +S9|3865|DURSEJ|9 +S9|3866|DURSEJ|9 +S9|3867|DURSEJ|9 +S9|3868|DURSEJ|9 +S9|3869|DURSEJ|9 +S9|3870|DURSEJ|9 +S9|3871|DURSEJ|9 +S9|3872|DURSEJ|9 +S9|3873|DURSEJ|9 +S9|3874|DURSEJ|9 +S9|3875|DURSEJ|9 +S9|3876|DURSEJ|9 +S9|3877|DURSEJ|9 +S9|3878|DURSEJ|9 +S9|3879|DURSEJ|9 +S9|3880|DURSEJ|9 +S9|3881|DURSEJ|9 +S9|3882|DURSEJ|9 +S9|3883|DURSEJ|9 +S9|3884|DURSEJ|9 +S9|3885|DURSEJ|9 +S9|3886|DURSEJ|9 +S9|3887|DURSEJ|9 +S9|3888|DURSEJ|9 +S9|3889|DURSEJ|9 +S9|3890|DURSEJ|9 +S9|3891|DURSEJ|9 +S9|3892|DURSEJ|9 +S9|3893|DURSEJ|9 +S9|3894|DURSEJ|9 +S9|3895|DURSEJ|9 +S9|3896|DURSEJ|9 +S9|3897|DURSEJ|9 +S9|3898|DURSEJ|9 +S9|3899|DURSEJ|9 +S9|3900|DURSEJ|9 +S9|3901|DURSEJ|9 +S9|3902|DURSEJ|9 +S9|3903|DURSEJ|9 +S9|3904|DURSEJ|9 +S9|3905|DURSEJ|9 +S9|3906|DURSEJ|9 +S9|3907|DURSEJ|9 +S9|3908|DURSEJ|9 +S9|3909|DURSEJ|9 +S9|3910|DURSEJ|9 +S9|3911|DURSEJ|9 +S9|3912|DURSEJ|9 +S9|3913|DURSEJ|9 +S9|3914|DURSEJ|9 +S9|3915|DURSEJ|9 +S9|3916|DURSEJ|9 +S9|3917|DURSEJ|9 +S9|3918|DURSEJ|9 +S9|3919|DURSEJ|9 +S9|3920|DURSEJ|9 +S9|3921|DURSEJ|9 +S9|3922|DURSEJ|9 +S9|3923|DURSEJ|9 +S9|3924|DURSEJ|9 +S9|3925|DURSEJ|9 +S9|3926|DURSEJ|9 +S9|3927|DURSEJ|9 +S9|3928|DURSEJ|9 +S9|3929|DURSEJ|9 +S9|3930|DURSEJ|9 +S9|3931|DURSEJ|9 +S9|3932|DURSEJ|9 +S9|3933|DURSEJ|9 +S9|3934|DURSEJ|9 +S9|3935|DURSEJ|9 +S9|3936|DURSEJ|9 +S9|3937|DURSEJ|9 +S9|3938|DURSEJ|9 +S9|3939|DURSEJ|9 +S9|3940|DURSEJ|9 +S9|3941|DURSEJ|9 +S9|3942|DURSEJ|9 +S9|3943|DURSEJ|9 +S9|3944|DURSEJ|9 +S9|3945|DURSEJ|9 +S9|3946|DURSEJ|9 +S9|3947|DURSEJ|9 +S9|3948|DURSEJ|9 +S9|3949|DURSEJ|9 +S9|3950|DURSEJ|9 +S9|3951|DURSEJ|9 +S9|3952|DURSEJ|9 +S9|3953|DURSEJ|9 +S9|3954|DURSEJ|9 +S9|3955|DURSEJ|9 +S9|3956|DURSEJ|9 +S9|3957|DURSEJ|9 +S9|3958|DURSEJ|9 +S9|3959|DURSEJ|9 +S9|3960|DURSEJ|9 +S9|3961|DURSEJ|9 +S9|3962|DURSEJ|9 +S9|3963|DURSEJ|9 +S9|3964|DURSEJ|9 +S9|3965|DURSEJ|9 +S9|3966|DURSEJ|9 +S9|3967|DURSEJ|9 +S9|3968|DURSEJ|9 +S9|3969|DURSEJ|9 +S9|3970|DURSEJ|9 +S9|3971|DURSEJ|9 +S9|3972|DURSEJ|9 +S9|3973|DURSEJ|9 +S9|3974|DURSEJ|9 +S9|3975|DURSEJ|9 +S9|3976|DURSEJ|9 +S9|3977|DURSEJ|9 +S9|3978|DURSEJ|9 +S9|3979|DURSEJ|9 +S9|3980|DURSEJ|9 +S9|3981|DURSEJ|9 +S9|3982|DURSEJ|9 +S9|3983|DURSEJ|9 +S9|3984|DURSEJ|9 +S9|3985|DURSEJ|9 +S9|3986|DURSEJ|9 +S9|3987|DURSEJ|9 +S9|3988|DURSEJ|9 +S9|3989|DURSEJ|9 +S9|3990|DURSEJ|9 +S9|3991|DURSEJ|9 +S9|3992|DURSEJ|9 +S9|3993|DURSEJ|9 +S9|3994|DURSEJ|9 +S9|3995|DURSEJ|9 +S9|3996|DURSEJ|9 +S9|3997|DURSEJ|9 +S9|3998|DURSEJ|9 +S9|3999|DURSEJ|9 +S9|4000|DURSEJ|9 +S9|4001|DURSEJ|9 +S9|4002|DURSEJ|9 +S9|4003|DURSEJ|9 +S9|4004|DURSEJ|9 +S9|4005|DURSEJ|9 +S9|4006|DURSEJ|9 +S9|4007|DURSEJ|9 +S9|4008|DURSEJ|9 +S9|4009|DURSEJ|9 +S9|4010|DURSEJ|9 +S9|4011|DURSEJ|9 +S9|4012|DURSEJ|9 +S9|4013|DURSEJ|9 +S9|4014|DURSEJ|9 +S9|4015|DURSEJ|9 +S9|4016|DURSEJ|9 +S9|4017|DURSEJ|9 +S9|4018|DURSEJ|9 +S9|4019|DURSEJ|9 +S9|4020|DURSEJ|9 +S9|4021|DURSEJ|9 +S9|4022|DURSEJ|9 +S9|4023|DURSEJ|9 +S9|4024|DURSEJ|9 +S9|4025|DURSEJ|9 +S9|4026|DURSEJ|9 +S9|4027|DURSEJ|9 +S9|4028|DURSEJ|9 +S9|4029|DURSEJ|9 +S9|4030|DURSEJ|9 +S9|4031|DURSEJ|9 +S9|4032|DURSEJ|9 +S9|4033|DURSEJ|9 +S9|4034|DURSEJ|9 +S9|4035|DURSEJ|9 +S9|4036|DURSEJ|9 +S9|4037|DURSEJ|9 +S9|4038|DURSEJ|9 +S9|4039|DURSEJ|9 +S9|4040|DURSEJ|9 +S9|4041|DURSEJ|9 +S9|4042|DURSEJ|9 +S9|4043|DURSEJ|9 +S9|4044|DURSEJ|9 +S9|4045|DURSEJ|9 +S9|4046|DURSEJ|9 +S9|4047|DURSEJ|9 +S9|4048|DURSEJ|9 +S9|4049|DURSEJ|9 +S9|4050|DURSEJ|9 +S9|4051|DURSEJ|9 +S9|4052|DURSEJ|9 +S9|4053|DURSEJ|9 +S9|4054|DURSEJ|9 +S9|4055|DURSEJ|9 +S9|4056|DURSEJ|9 +S9|4057|DURSEJ|9 +S9|4058|DURSEJ|9 +S9|4059|DURSEJ|9 +S9|4060|DURSEJ|9 +S9|4061|DURSEJ|9 +S9|4062|DURSEJ|9 +S9|4063|DURSEJ|9 +S9|4064|DURSEJ|9 +S9|4065|DURSEJ|9 +S9|4066|DURSEJ|9 +S9|4067|DURSEJ|9 +S9|4068|DURSEJ|9 +S9|4069|DURSEJ|9 +S9|4070|DURSEJ|9 +S9|4071|DURSEJ|9 +S9|4072|DURSEJ|9 +S9|4073|DURSEJ|9 +S9|4074|DURSEJ|9 +S9|4075|DURSEJ|9 +S9|4076|DURSEJ|9 +S9|4077|DURSEJ|9 +S9|4078|DURSEJ|9 +S9|4079|DURSEJ|9 +S9|4080|DURSEJ|9 +S9|4081|DURSEJ|9 +S9|4082|DURSEJ|9 +S9|4083|DURSEJ|9 +S9|4084|DURSEJ|9 +S9|4085|DURSEJ|9 +S9|4086|DURSEJ|9 +S9|4087|DURSEJ|9 +S9|4088|DURSEJ|9 +S9|4089|DURSEJ|9 +S9|4090|DURSEJ|9 +S9|4091|DURSEJ|9 +S9|4092|DURSEJ|9 +S9|4093|DURSEJ|9 +S9|4094|DURSEJ|9 +S9|4095|DURSEJ|9 +S9|4096|DURSEJ|9 +S9|4097|DURSEJ|9 +S9|4098|DURSEJ|9 +S9|4099|DURSEJ|9 +S9|4100|DURSEJ|9 +S9|4101|DURSEJ|9 +S9|4102|DURSEJ|9 +S9|4103|DURSEJ|9 +S9|4104|DURSEJ|9 +S9|4105|DURSEJ|9 +S9|4106|DURSEJ|9 +S9|4107|DURSEJ|9 +S9|4108|DURSEJ|9 +S9|4109|DURSEJ|9 +S9|4110|DURSEJ|9 +S9|4111|DURSEJ|9 +S9|4112|DURSEJ|9 +S9|4113|DURSEJ|9 +S9|4114|DURSEJ|9 +S9|4115|DURSEJ|9 +S9|4116|DURSEJ|9 +S9|4117|DURSEJ|9 +S9|4118|DURSEJ|9 +S9|4119|DURSEJ|9 +S9|4120|DURSEJ|9 +S9|4121|DURSEJ|9 +S9|4122|DURSEJ|9 +S9|4123|DURSEJ|9 +S9|4124|DURSEJ|9 +S9|4125|DURSEJ|9 +S9|4126|DURSEJ|9 +S9|4127|DURSEJ|9 +S9|4128|DURSEJ|9 +S9|4129|DURSEJ|9 +S9|4130|DURSEJ|9 +S9|4131|DURSEJ|9 +S9|4132|DURSEJ|9 +S9|4133|DURSEJ|9 +S9|4134|DURSEJ|9 +S9|4135|DURSEJ|9 +S9|4136|DURSEJ|9 +S9|4137|DURSEJ|9 +S9|4138|DURSEJ|9 +S9|4139|DURSEJ|9 +S9|4140|DURSEJ|9 +S9|4141|DURSEJ|9 +S9|4142|DURSEJ|9 +S9|4143|DURSEJ|9 +S9|4144|DURSEJ|9 +S9|4145|DURSEJ|9 +S9|4146|DURSEJ|9 +S9|4147|DURSEJ|9 +S9|4148|DURSEJ|9 +S9|4149|DURSEJ|9 +S9|4150|DURSEJ|9 +S9|4151|DURSEJ|9 +S9|4152|DURSEJ|9 +S9|4153|DURSEJ|9 +S9|4154|DURSEJ|9 +S9|4155|DURSEJ|9 +S9|4156|DURSEJ|9 +S9|4157|DURSEJ|9 +S9|4158|DURSEJ|9 +S9|4159|DURSEJ|9 +S9|4160|DURSEJ|9 +S9|4161|DURSEJ|9 +S9|4162|DURSEJ|9 +S9|4163|DURSEJ|9 +S9|4164|DURSEJ|9 +S9|4165|DURSEJ|9 +S9|4166|DURSEJ|9 +S9|4167|DURSEJ|9 +S9|4168|DURSEJ|9 +S9|4169|DURSEJ|9 +S9|4170|DURSEJ|9 +S9|4171|DURSEJ|9 +S9|4172|DURSEJ|9 +S9|4173|DURSEJ|9 +S9|4174|DURSEJ|9 +S9|4175|DURSEJ|9 +S9|4176|DURSEJ|9 +S9|4177|DURSEJ|9 +S9|4178|DURSEJ|9 +S9|4179|DURSEJ|9 +S9|4180|DURSEJ|9 +S9|4181|DURSEJ|9 +S9|4182|DURSEJ|9 +S9|4183|DURSEJ|9 +S9|4184|DURSEJ|9 +S9|4185|DURSEJ|9 +S9|4186|DURSEJ|9 +S9|4187|DURSEJ|9 +S9|4188|DURSEJ|9 +S9|4189|DURSEJ|9 +S9|4190|DURSEJ|9 +S9|4191|DURSEJ|9 +S9|4192|DURSEJ|9 +S9|4193|DURSEJ|9 +S9|4194|DURSEJ|9 +S9|4195|DURSEJ|9 +S9|4196|DURSEJ|9 +S9|4197|DURSEJ|9 +S9|4198|DURSEJ|9 +S9|4199|DURSEJ|9 +S9|4200|DURSEJ|9 +S9|4201|DURSEJ|9 +S9|4202|DURSEJ|9 +S9|4203|DURSEJ|9 +S9|4204|DURSEJ|9 +S9|4205|DURSEJ|9 +S9|4206|DURSEJ|9 +S9|4207|DURSEJ|9 +S9|4208|DURSEJ|9 +S9|4209|DURSEJ|9 +S9|4210|DURSEJ|9 +S9|4211|DURSEJ|9 +S9|4212|DURSEJ|9 +S9|4213|DURSEJ|9 +S9|4214|DURSEJ|9 +S9|4215|DURSEJ|9 +S9|4216|DURSEJ|9 +S9|4217|DURSEJ|9 +S9|4218|DURSEJ|9 +S9|4219|DURSEJ|9 +S9|4220|DURSEJ|9 +S9|4221|DURSEJ|9 +S9|4222|DURSEJ|9 +S9|4223|DURSEJ|9 +S9|4224|DURSEJ|9 +S9|4225|DURSEJ|9 +S9|4226|DURSEJ|9 +S9|4227|DURSEJ|9 +S9|4228|DURSEJ|9 +S9|4229|DURSEJ|9 +S9|4230|DURSEJ|9 +S9|4231|DURSEJ|9 +S9|4232|DURSEJ|9 +S9|4233|DURSEJ|9 +S9|4234|DURSEJ|9 +S9|4235|DURSEJ|9 +S9|4236|DURSEJ|9 +S9|4237|DURSEJ|9 +S9|4238|DURSEJ|9 +S9|4239|DURSEJ|9 +S9|4240|DURSEJ|9 +S9|4241|DURSEJ|9 +S9|4242|DURSEJ|9 +S9|4243|DURSEJ|9 +S9|4244|DURSEJ|9 +S9|4245|DURSEJ|9 +S9|4246|DURSEJ|9 +S9|4247|DURSEJ|9 +S9|4248|DURSEJ|9 +S9|4249|DURSEJ|9 +S9|4250|DURSEJ|9 +S9|4251|DURSEJ|9 +S9|4252|DURSEJ|9 +S9|4253|DURSEJ|9 +S9|4254|DURSEJ|9 +S9|4255|DURSEJ|9 +S9|4256|DURSEJ|9 +S9|4257|DURSEJ|9 +S9|4258|DURSEJ|9 +S9|4259|DURSEJ|9 +S9|4260|DURSEJ|9 +S9|4261|DURSEJ|9 +S9|4262|DURSEJ|9 +S9|4263|DURSEJ|9 +S9|4264|DURSEJ|9 +S9|4265|DURSEJ|9 +S9|4266|DURSEJ|9 +S9|4267|DURSEJ|9 +S9|4268|DURSEJ|9 +S9|4269|DURSEJ|9 +S9|4270|DURSEJ|9 +S9|4271|DURSEJ|9 +S9|4272|DURSEJ|9 +S9|4273|DURSEJ|9 +S9|4274|DURSEJ|9 +S9|4275|DURSEJ|9 +S9|4276|DURSEJ|9 +S9|4277|DURSEJ|9 +S9|4278|DURSEJ|9 +S9|4279|DURSEJ|9 +S9|4280|DURSEJ|9 +S9|4281|DURSEJ|9 +S9|4282|DURSEJ|9 +S9|4283|DURSEJ|9 +S9|4284|DURSEJ|9 +S9|4285|DURSEJ|9 +S9|4286|DURSEJ|9 +S9|4287|DURSEJ|9 +S9|4288|DURSEJ|9 +S9|4289|DURSEJ|9 +S9|4290|DURSEJ|9 +S9|4291|DURSEJ|9 +S9|4292|DURSEJ|9 +S9|4293|DURSEJ|9 +S9|4294|DURSEJ|9 +S9|4295|DURSEJ|9 +S9|4296|DURSEJ|9 +S9|4297|DURSEJ|9 +S9|4298|DURSEJ|9 +S9|4299|DURSEJ|9 +S9|4300|DURSEJ|9 +S9|4301|DURSEJ|9 +S9|4302|DURSEJ|9 +S9|4303|DURSEJ|9 +S9|4304|DURSEJ|9 +S9|4305|DURSEJ|9 +S9|4306|DURSEJ|9 +S9|4307|DURSEJ|9 +S9|4308|DURSEJ|9 +S9|4309|DURSEJ|9 +S9|4310|DURSEJ|9 +S9|4311|DURSEJ|9 +S9|4312|DURSEJ|9 +S9|4313|DURSEJ|9 +S9|4314|DURSEJ|9 +S9|4315|DURSEJ|9 +S9|4316|DURSEJ|9 +S9|4317|DURSEJ|9 +S9|4318|DURSEJ|9 +S9|4319|DURSEJ|9 +S9|4320|DURSEJ|9 +S9|4321|DURSEJ|9 +S9|4322|DURSEJ|9 +S9|4323|DURSEJ|9 +S9|4324|DURSEJ|9 +S9|4325|DURSEJ|9 +S9|4326|DURSEJ|9 +S9|4327|DURSEJ|9 +S9|4328|DURSEJ|9 +S9|4329|DURSEJ|9 +S9|4330|DURSEJ|9 +S9|4331|DURSEJ|9 +S9|4332|DURSEJ|9 +S9|4333|DURSEJ|9 +S9|4334|DURSEJ|9 +S9|4335|DURSEJ|9 +S9|4336|DURSEJ|9 +S9|4337|DURSEJ|9 +S9|4338|DURSEJ|9 +S9|4339|DURSEJ|9 +S9|4340|DURSEJ|9 +S9|4341|DURSEJ|9 +S9|4342|DURSEJ|9 +S9|4343|DURSEJ|9 +S9|4344|DURSEJ|9 +S9|4345|DURSEJ|9 +S9|4346|DURSEJ|9 +S9|4347|DURSEJ|9 +S9|4348|DURSEJ|9 +S9|4349|DURSEJ|9 +S9|4350|DURSEJ|9 +S9|4351|DURSEJ|9 +S9|4352|DURSEJ|9 +S9|4353|DURSEJ|9 +S9|4354|DURSEJ|9 +S9|4355|DURSEJ|9 +S9|4356|DURSEJ|9 +S9|4357|DURSEJ|9 +S9|4358|DURSEJ|9 +S9|4359|DURSEJ|9 +S9|4360|DURSEJ|9 +S9|4361|DURSEJ|9 +S9|4362|DURSEJ|9 +S9|4363|DURSEJ|9 +S9|4364|DURSEJ|9 +S9|4365|DURSEJ|9 +S9|4366|DURSEJ|9 +S9|4367|DURSEJ|9 +S9|4368|DURSEJ|9 +S9|4369|DURSEJ|9 +S9|4370|DURSEJ|9 +S9|4371|DURSEJ|9 +S9|4372|DURSEJ|9 +S9|4373|DURSEJ|9 +S9|4374|DURSEJ|9 +S9|4375|DURSEJ|9 +S9|4376|DURSEJ|9 +S9|4377|DURSEJ|9 +S9|4378|DURSEJ|9 +S9|4379|DURSEJ|9 +S9|4380|DURSEJ|9 +S9|4381|DURSEJ|9 +S9|4382|DURSEJ|9 +S9|4383|DURSEJ|9 +S9|4384|DURSEJ|9 +S9|4385|DURSEJ|9 +S9|4386|DURSEJ|9 +S9|4387|DURSEJ|9 +S9|4388|DURSEJ|9 +S9|4389|DURSEJ|9 +S9|4390|DURSEJ|9 +S9|4391|DURSEJ|9 +S9|4392|DURSEJ|9 +S9|4393|DURSEJ|9 +S9|4394|DURSEJ|9 +S9|4395|DURSEJ|9 +S9|4396|DURSEJ|9 +S9|4397|DURSEJ|9 +S9|4398|DURSEJ|9 +S9|4399|DURSEJ|9 +S9|4400|DURSEJ|9 +S9|4401|DURSEJ|9 +S9|4402|DURSEJ|9 +S9|4403|DURSEJ|9 +S9|4404|DURSEJ|9 +S9|4405|DURSEJ|9 +S9|4406|DURSEJ|9 +S9|4407|DURSEJ|9 +S9|4408|DURSEJ|9 +S9|4409|DURSEJ|9 +S9|4410|DURSEJ|9 +S9|4411|DURSEJ|9 +S9|4412|DURSEJ|9 +S9|4413|DURSEJ|9 +S9|4414|DURSEJ|9 +S9|4415|DURSEJ|9 +S9|4416|DURSEJ|9 +S9|4417|DURSEJ|9 +S9|4418|DURSEJ|9 +S9|4419|DURSEJ|9 +S9|4420|DURSEJ|9 +S9|4421|DURSEJ|9 +S9|4422|DURSEJ|9 +S9|4423|DURSEJ|9 +S9|4424|DURSEJ|9 +S9|4425|DURSEJ|9 +S9|4426|DURSEJ|9 +S9|4427|DURSEJ|9 +S9|4428|DURSEJ|9 +S9|4429|DURSEJ|9 +S9|4430|DURSEJ|9 +S9|4431|DURSEJ|9 +S9|4432|DURSEJ|9 +S9|4433|DURSEJ|9 +S9|4434|DURSEJ|9 +S9|4435|DURSEJ|9 +S9|4436|DURSEJ|9 +S9|4437|DURSEJ|9 +S9|4438|DURSEJ|9 +S9|4439|DURSEJ|9 +S9|4440|DURSEJ|9 +S9|4441|DURSEJ|9 +S9|4442|DURSEJ|9 +S9|4443|DURSEJ|9 +S9|4444|DURSEJ|9 +S9|4445|DURSEJ|9 +S9|4446|DURSEJ|9 +S9|4447|DURSEJ|9 +S9|4448|DURSEJ|9 +S9|4449|DURSEJ|9 +S9|4450|DURSEJ|9 +S9|4451|DURSEJ|9 +S9|4452|DURSEJ|9 +S9|4453|DURSEJ|9 +S9|4454|DURSEJ|9 +S9|4455|DURSEJ|9 +S9|4456|DURSEJ|9 +S9|4457|DURSEJ|9 +S9|4458|DURSEJ|9 +S9|4459|DURSEJ|9 +S9|4460|DURSEJ|9 +S9|4461|DURSEJ|9 +S9|4462|DURSEJ|9 +S9|4463|DURSEJ|9 +S9|4464|DURSEJ|9 +S9|4465|DURSEJ|9 +S9|4466|DURSEJ|9 +S9|4467|DURSEJ|9 +S9|4468|DURSEJ|9 +S9|4469|DURSEJ|9 +S9|4470|DURSEJ|9 +S9|4471|DURSEJ|9 +S9|4472|DURSEJ|9 +S9|4473|DURSEJ|9 +S9|4474|DURSEJ|9 +S9|4475|DURSEJ|9 +S9|4476|DURSEJ|9 +S9|4477|DURSEJ|9 +S9|4478|DURSEJ|9 +S9|4479|DURSEJ|9 +S9|4480|DURSEJ|9 +S9|4481|DURSEJ|9 +S9|4482|DURSEJ|9 +S9|4483|DURSEJ|9 +S9|4484|DURSEJ|9 +S9|4485|DURSEJ|9 +S9|4486|DURSEJ|9 +S9|4487|DURSEJ|9 +S9|4488|DURSEJ|9 +S9|4489|DURSEJ|9 +S9|4490|DURSEJ|9 +S9|4491|DURSEJ|9 +S9|4492|DURSEJ|9 +S9|4493|DURSEJ|9 +S9|4494|DURSEJ|9 +S9|4495|DURSEJ|9 +S9|4496|DURSEJ|9 +S9|4497|DURSEJ|9 +S9|4498|DURSEJ|9 +S9|4499|DURSEJ|9 +S9|4500|DURSEJ|9 +S9|4501|DURSEJ|9 +S9|4502|DURSEJ|9 +S9|4503|DURSEJ|9 +S9|4504|DURSEJ|9 +S9|4505|DURSEJ|9 +S9|4506|DURSEJ|9 +S9|4507|DURSEJ|9 +S9|4508|DURSEJ|9 +S9|4509|DURSEJ|9 +S9|4510|DURSEJ|9 +S9|4511|DURSEJ|9 +S9|4512|DURSEJ|9 +S9|4513|DURSEJ|9 +S9|4514|DURSEJ|9 +S9|4515|DURSEJ|9 +S9|4516|DURSEJ|9 +S9|4517|DURSEJ|9 +S9|4518|DURSEJ|9 +S9|4519|DURSEJ|9 +S9|4520|DURSEJ|9 +S9|4521|DURSEJ|9 +S9|4522|DURSEJ|9 +S9|4523|DURSEJ|9 +S9|4524|DURSEJ|9 +S9|4525|DURSEJ|9 +S9|4526|DURSEJ|9 +S9|4527|DURSEJ|9 +S9|4528|DURSEJ|9 +S9|4529|DURSEJ|9 +S9|4530|DURSEJ|9 +S9|4531|DURSEJ|9 +S9|4532|DURSEJ|9 +S9|4533|DURSEJ|9 +S9|4534|DURSEJ|9 +S9|4535|DURSEJ|9 +S9|4536|DURSEJ|9 +S9|4537|DURSEJ|9 +S9|4538|DURSEJ|9 +S9|4539|DURSEJ|9 +S9|4540|DURSEJ|9 +S9|4541|DURSEJ|9 +S9|4542|DURSEJ|9 +S9|4543|DURSEJ|9 +S9|4544|DURSEJ|9 +S9|4545|DURSEJ|9 +S9|4546|DURSEJ|9 +S9|4547|DURSEJ|9 +S9|4548|DURSEJ|9 +S9|4549|DURSEJ|9 +S9|4550|DURSEJ|9 +S9|4551|DURSEJ|9 +S9|4552|DURSEJ|9 +S9|4553|DURSEJ|9 +S9|4554|DURSEJ|9 +S9|4555|DURSEJ|9 +S9|4556|DURSEJ|9 +S9|4557|DURSEJ|9 +S9|4558|DURSEJ|9 +S9|4559|DURSEJ|9 +S9|4560|DURSEJ|9 +S9|4561|DURSEJ|9 +S9|4562|DURSEJ|9 +S9|4563|DURSEJ|9 +S9|4564|DURSEJ|9 +S9|4565|DURSEJ|9 +S9|4566|DURSEJ|9 +S9|4567|DURSEJ|9 +S9|4568|DURSEJ|9 +S9|4569|DURSEJ|9 +S9|4570|DURSEJ|9 +S9|4571|DURSEJ|9 +S9|4572|DURSEJ|9 +S9|4573|DURSEJ|9 +S9|4574|DURSEJ|9 +S9|4575|DURSEJ|9 +S9|4576|DURSEJ|9 +S9|4577|DURSEJ|9 +S9|4578|DURSEJ|9 +S9|4579|DURSEJ|9 +S9|4580|DURSEJ|9 +S9|4581|DURSEJ|9 +S9|4582|DURSEJ|9 +S9|4583|DURSEJ|9 +S9|4584|DURSEJ|9 +S9|4585|DURSEJ|9 +S9|4586|DURSEJ|9 +S9|4587|DURSEJ|9 +S9|4588|DURSEJ|9 +S9|4589|DURSEJ|9 +S9|4590|DURSEJ|9 +S9|4591|DURSEJ|9 +S9|4592|DURSEJ|9 +S9|4593|DURSEJ|9 +S9|4594|DURSEJ|9 +S9|4595|DURSEJ|9 +S9|4596|DURSEJ|9 +S9|4597|DURSEJ|9 +S9|4598|DURSEJ|9 +S9|4599|DURSEJ|9 +S9|4600|DURSEJ|9 +S9|4601|DURSEJ|9 +S9|4602|DURSEJ|9 +S9|4603|DURSEJ|9 +S9|4604|DURSEJ|9 +S9|4605|DURSEJ|9 +S9|4606|DURSEJ|9 +S9|4607|DURSEJ|9 +S9|4608|DURSEJ|9 +S9|4609|DURSEJ|9 +S9|4610|DURSEJ|9 +S9|4611|DURSEJ|9 +S9|4612|DURSEJ|9 +S9|4613|DURSEJ|9 +S9|4614|DURSEJ|9 +S9|4615|DURSEJ|9 +S9|4616|DURSEJ|9 +S9|4617|DURSEJ|9 +S9|4618|DURSEJ|9 +S9|4619|DURSEJ|9 +S9|4620|DURSEJ|9 +S9|4621|DURSEJ|9 +S9|4622|DURSEJ|9 +S9|4623|DURSEJ|9 +S9|4624|DURSEJ|9 +S9|4625|DURSEJ|9 +S9|4626|DURSEJ|9 +S9|4627|DURSEJ|9 +S9|4628|DURSEJ|9 +S9|4629|DURSEJ|9 +S9|4630|DURSEJ|9 +S9|4631|DURSEJ|9 +S9|4632|DURSEJ|9 +S9|4633|DURSEJ|9 +S9|4634|DURSEJ|9 +S9|4635|DURSEJ|9 +S9|4636|DURSEJ|9 +S9|4637|DURSEJ|9 +S9|4638|DURSEJ|9 +S9|4639|DURSEJ|9 +S9|4640|DURSEJ|9 +S9|4641|DURSEJ|9 +S9|4642|DURSEJ|9 +S9|4643|DURSEJ|9 +S9|4644|DURSEJ|9 +S9|4645|DURSEJ|9 +S9|4646|DURSEJ|9 +S9|4647|DURSEJ|9 +S9|4648|DURSEJ|9 +S9|4649|DURSEJ|9 +S9|4650|DURSEJ|9 +S9|4651|DURSEJ|9 +S9|4652|DURSEJ|9 +S9|4653|DURSEJ|9 +S9|4654|DURSEJ|9 +S9|4655|DURSEJ|9 +S9|4656|DURSEJ|9 +S9|4657|DURSEJ|9 +S9|4658|DURSEJ|9 +S9|4659|DURSEJ|9 +S9|4660|DURSEJ|9 +S9|4661|DURSEJ|9 +S9|4662|DURSEJ|9 +S9|4663|DURSEJ|9 +S9|4664|DURSEJ|9 +S9|4665|DURSEJ|9 +S9|4666|DURSEJ|9 +S9|4667|DURSEJ|9 +S9|4668|DURSEJ|9 +S9|4669|DURSEJ|9 +S9|4670|DURSEJ|9 +S9|4671|DURSEJ|9 +S9|4672|DURSEJ|9 +S9|4673|DURSEJ|9 +S9|4674|DURSEJ|9 +S9|4675|DURSEJ|9 +S9|4676|DURSEJ|9 +S9|4677|DURSEJ|9 +S9|4678|DURSEJ|9 +S9|4679|DURSEJ|9 +S9|4680|DURSEJ|9 +S9|4681|DURSEJ|9 +S9|4682|DURSEJ|9 +S9|4683|DURSEJ|9 +S9|4684|DURSEJ|9 +S9|4685|DURSEJ|9 +S9|4686|DURSEJ|9 +S9|4687|DURSEJ|9 +S9|4688|DURSEJ|9 +S9|4689|DURSEJ|9 +S9|4690|DURSEJ|9 +S9|4691|DURSEJ|9 +S9|4692|DURSEJ|9 +S9|4693|DURSEJ|9 +S9|4694|DURSEJ|9 +S9|4695|DURSEJ|9 +S9|4696|DURSEJ|9 +S9|4697|DURSEJ|9 +S9|4698|DURSEJ|9 +S9|4699|DURSEJ|9 +S9|4700|DURSEJ|9 +S9|4701|DURSEJ|9 +S9|4702|DURSEJ|9 +S9|4703|DURSEJ|9 +S9|4704|DURSEJ|9 +S9|4705|DURSEJ|9 +S9|4706|DURSEJ|9 +S9|4707|DURSEJ|9 +S9|4708|DURSEJ|9 +S9|4709|DURSEJ|9 +S9|4710|DURSEJ|9 +S9|4711|DURSEJ|9 +S9|4712|DURSEJ|9 +S9|4713|DURSEJ|9 +S9|4714|DURSEJ|9 +S9|4715|DURSEJ|9 +S9|4716|DURSEJ|9 +S9|4717|DURSEJ|9 +S9|4718|DURSEJ|9 +S9|4719|DURSEJ|9 +S9|4720|DURSEJ|9 +S9|4721|DURSEJ|9 +S9|4722|DURSEJ|9 +S9|4723|DURSEJ|9 +S9|4724|DURSEJ|9 +S9|4725|DURSEJ|9 +S9|4726|DURSEJ|9 +S9|4727|DURSEJ|9 +S9|4728|DURSEJ|9 +S9|4729|DURSEJ|9 +S9|4730|DURSEJ|9 +S9|4731|DURSEJ|9 +S9|4732|DURSEJ|9 +S9|4733|DURSEJ|9 +S9|4734|DURSEJ|9 +S9|4735|DURSEJ|9 +S9|4736|DURSEJ|9 +S9|4737|DURSEJ|9 +S9|4738|DURSEJ|9 +S9|4739|DURSEJ|9 +S9|4740|DURSEJ|9 +S9|4741|DURSEJ|9 +S9|4742|DURSEJ|9 +S9|4743|DURSEJ|9 +S9|4744|DURSEJ|9 +S9|4745|DURSEJ|9 +S9|4746|DURSEJ|9 +S9|4747|DURSEJ|9 +S9|4748|DURSEJ|9 +S9|4749|DURSEJ|9 +S9|4750|DURSEJ|9 +S9|4751|DURSEJ|9 +S9|4752|DURSEJ|9 +S9|4753|DURSEJ|9 +S9|4754|DURSEJ|9 +S9|4755|DURSEJ|9 +S9|4756|DURSEJ|9 +S9|4757|DURSEJ|9 +S9|4758|DURSEJ|9 +S9|4759|DURSEJ|9 +S9|4760|DURSEJ|9 +S9|4761|DURSEJ|9 +S9|4762|DURSEJ|9 +S9|4763|DURSEJ|9 +S9|4764|DURSEJ|9 +S9|4765|DURSEJ|9 +S9|4766|DURSEJ|9 +S9|4767|DURSEJ|9 +S9|4768|DURSEJ|9 +S9|4769|DURSEJ|9 +S9|4770|DURSEJ|9 +S9|4771|DURSEJ|9 +S9|4772|DURSEJ|9 +S9|4773|DURSEJ|9 +S9|4774|DURSEJ|9 +S9|4775|DURSEJ|9 +S9|4776|DURSEJ|9 +S9|4777|DURSEJ|9 +S9|4778|DURSEJ|9 +S9|4779|DURSEJ|9 +S9|4780|DURSEJ|9 +S9|4781|DURSEJ|9 +S9|4782|DURSEJ|9 +S9|4783|DURSEJ|9 +S9|4784|DURSEJ|9 +S9|4785|DURSEJ|9 +S9|4786|DURSEJ|9 +S9|4787|DURSEJ|9 +S9|4788|DURSEJ|9 +S9|4789|DURSEJ|9 +S9|4790|DURSEJ|9 +S9|4791|DURSEJ|9 +S9|4792|DURSEJ|9 +S9|4793|DURSEJ|9 +S9|4794|DURSEJ|9 +S9|4795|DURSEJ|9 +S9|4796|DURSEJ|9 +S9|4797|DURSEJ|9 +S9|4798|DURSEJ|9 +S9|4799|DURSEJ|9 +S9|4800|DURSEJ|9 +S9|4801|DURSEJ|9 +S9|4802|DURSEJ|9 +S9|4803|DURSEJ|9 +S9|4804|DURSEJ|9 +S9|4805|DURSEJ|9 +S9|4806|DURSEJ|9 +S9|4807|DURSEJ|9 +S9|4808|DURSEJ|9 +S9|4809|DURSEJ|9 +S9|4810|DURSEJ|9 +S9|4811|DURSEJ|9 +S9|4812|DURSEJ|9 +S9|4813|DURSEJ|9 +S9|4814|DURSEJ|9 +S9|4815|DURSEJ|9 +S9|4816|DURSEJ|9 +S9|4817|DURSEJ|9 +S9|4818|DURSEJ|9 +S9|4819|DURSEJ|9 +S9|4820|DURSEJ|9 +S9|4821|DURSEJ|9 +S9|4822|DURSEJ|9 +S9|4823|DURSEJ|9 +S9|4824|DURSEJ|9 +S9|4825|DURSEJ|9 +S9|4826|DURSEJ|9 +S9|4827|DURSEJ|9 +S9|4828|DURSEJ|9 +S9|4829|DURSEJ|9 +S9|4830|DURSEJ|9 +S9|4831|DURSEJ|9 +S9|4832|DURSEJ|9 +S9|4833|DURSEJ|9 +S9|4834|DURSEJ|9 +S9|4835|DURSEJ|9 +S9|4836|DURSEJ|9 +S9|4837|DURSEJ|9 +S9|4838|DURSEJ|9 +S9|4839|DURSEJ|9 +S9|4840|DURSEJ|9 +S9|4841|DURSEJ|9 +S9|4842|DURSEJ|9 +S9|4843|DURSEJ|9 +S9|4844|DURSEJ|9 +S9|4845|DURSEJ|9 +S9|4846|DURSEJ|9 +S9|4847|DURSEJ|9 +S9|4848|DURSEJ|9 +S9|4849|DURSEJ|9 +S9|4850|DURSEJ|9 +S9|4851|DURSEJ|9 +S9|4852|DURSEJ|9 +S9|4853|DURSEJ|9 +S9|4854|DURSEJ|9 +S9|4855|DURSEJ|9 +S9|4856|DURSEJ|9 +S9|4857|DURSEJ|9 +S9|4858|DURSEJ|9 +S9|4859|DURSEJ|9 +S9|4860|DURSEJ|9 +S9|4861|DURSEJ|9 +S9|4862|DURSEJ|9 +S9|4863|DURSEJ|9 +S9|4864|DURSEJ|9 +S9|4865|DURSEJ|9 +S9|4866|DURSEJ|9 +S9|4867|DURSEJ|9 +S9|4868|DURSEJ|9 +S9|4869|DURSEJ|9 +S9|4870|DURSEJ|9 +S9|4871|DURSEJ|9 +S9|4872|DURSEJ|9 +S9|4873|DURSEJ|9 +S9|4874|DURSEJ|9 +S9|4875|DURSEJ|9 +S9|4876|DURSEJ|9 +S9|4877|DURSEJ|9 +S9|4878|DURSEJ|9 +S9|4879|DURSEJ|9 +S9|4880|DURSEJ|9 +S9|4881|DURSEJ|9 +S9|4882|DURSEJ|9 +S9|4883|DURSEJ|9 +S9|4884|DURSEJ|9 +S9|4885|DURSEJ|9 +S9|4886|DURSEJ|9 +S9|4887|DURSEJ|9 +S9|4888|DURSEJ|9 +S9|4889|DURSEJ|9 +S9|4890|DURSEJ|9 +S9|4891|DURSEJ|9 +S9|4892|DURSEJ|9 +S9|4893|DURSEJ|9 +S9|4894|DURSEJ|9 +S9|4895|DURSEJ|9 +S9|4896|DURSEJ|9 +S9|4897|DURSEJ|9 +S9|4898|DURSEJ|9 +S9|4899|DURSEJ|9 +S9|4900|DURSEJ|9 +S9|4901|DURSEJ|9 +S9|4902|DURSEJ|9 +S9|4903|DURSEJ|9 +S9|4904|DURSEJ|9 +S9|4905|DURSEJ|9 +S9|4906|DURSEJ|9 +S9|4907|DURSEJ|9 +S9|4908|DURSEJ|9 +S9|4909|DURSEJ|9 +S9|4910|DURSEJ|9 +S9|4911|DURSEJ|9 +S9|4912|DURSEJ|9 +S9|4913|DURSEJ|9 +S9|4914|DURSEJ|9 +S9|4915|DURSEJ|9 +S9|4916|DURSEJ|9 +S9|4917|DURSEJ|9 +S9|4918|DURSEJ|9 +S9|4919|DURSEJ|9 +S9|4920|DURSEJ|9 +S9|4921|DURSEJ|9 +S9|4922|DURSEJ|9 +S9|4923|DURSEJ|9 +S9|4924|DURSEJ|9 +S9|4925|DURSEJ|9 +S9|4926|DURSEJ|9 +S9|4927|DURSEJ|9 +S9|4928|DURSEJ|9 +S9|4929|DURSEJ|9 +S9|4930|DURSEJ|9 +S9|4931|DURSEJ|9 +S9|4932|DURSEJ|9 +S9|4933|DURSEJ|9 +S9|4934|DURSEJ|9 +S9|4935|DURSEJ|9 +S9|4936|DURSEJ|9 +S9|4937|DURSEJ|9 +S9|4938|DURSEJ|9 +S9|4939|DURSEJ|9 +S9|4940|DURSEJ|9 +S9|4941|DURSEJ|9 +S9|4942|DURSEJ|9 +S9|4943|DURSEJ|9 +S9|4944|DURSEJ|9 +S9|4945|DURSEJ|9 +S9|4946|DURSEJ|9 +S9|4947|DURSEJ|9 +S9|4948|DURSEJ|9 +S9|4949|DURSEJ|9 +S9|4950|DURSEJ|9 +S9|4951|DURSEJ|9 +S9|4952|DURSEJ|9 +S9|4953|DURSEJ|9 +S9|4954|DURSEJ|9 +S9|4955|DURSEJ|9 +S9|4956|DURSEJ|9 +S9|4957|DURSEJ|9 +S9|4958|DURSEJ|9 +S9|4959|DURSEJ|9 +S9|4960|DURSEJ|9 +S9|4961|DURSEJ|9 +S9|4962|DURSEJ|9 +S9|4963|DURSEJ|9 +S9|4964|DURSEJ|9 +S9|4965|DURSEJ|9 +S9|4966|DURSEJ|9 +S9|4967|DURSEJ|9 +S9|4968|DURSEJ|9 +S9|4969|DURSEJ|9 +S9|4970|DURSEJ|9 +S9|4971|DURSEJ|9 +S9|4972|DURSEJ|9 +S9|4973|DURSEJ|9 +S9|4974|DURSEJ|9 +S9|4975|DURSEJ|9 +S9|4976|DURSEJ|9 +S9|4977|DURSEJ|9 +S9|4978|DURSEJ|9 +S9|4979|DURSEJ|9 +S9|4980|DURSEJ|9 +S9|4981|DURSEJ|9 +S9|4982|DURSEJ|9 +S9|4983|DURSEJ|9 +S9|4984|DURSEJ|9 +S9|4985|DURSEJ|9 +S9|4986|DURSEJ|9 +S9|4987|DURSEJ|9 +S9|4988|DURSEJ|9 +S9|4989|DURSEJ|9 +S9|4990|DURSEJ|9 +S9|4991|DURSEJ|9 +S9|4992|DURSEJ|9 +S9|4993|DURSEJ|9 +S9|4994|DURSEJ|9 +S9|4995|DURSEJ|9 +S9|4996|DURSEJ|9 +S9|4997|DURSEJ|9 +S9|4998|DURSEJ|9 +S9|4999|DURSEJ|9 +S9|5000|DURSEJ|9 +S9|5001|DURSEJ|9 +S9|5002|DURSEJ|9 +S9|5003|DURSEJ|9 +S9|5004|DURSEJ|9 +S9|5005|DURSEJ|9 +S9|5006|DURSEJ|9 +S9|5007|DURSEJ|9 +S9|5008|DURSEJ|9 +S9|5009|DURSEJ|9 +S9|5010|DURSEJ|9 +S9|5011|DURSEJ|9 +S9|5012|DURSEJ|9 +S9|5013|DURSEJ|9 +S9|5014|DURSEJ|9 +S9|5015|DURSEJ|9 +S9|5016|DURSEJ|9 +S9|5017|DURSEJ|9 +S9|5018|DURSEJ|9 +S9|5019|DURSEJ|9 +S9|5020|DURSEJ|9 +S9|5021|DURSEJ|9 +S9|5022|DURSEJ|9 +S9|5023|DURSEJ|9 +S9|5024|DURSEJ|9 +S9|5025|DURSEJ|9 +S9|5026|DURSEJ|9 +S9|5027|DURSEJ|9 +S9|5028|DURSEJ|9 +S9|5029|DURSEJ|9 +S9|5030|DURSEJ|9 +S9|5031|DURSEJ|9 +S9|5032|DURSEJ|9 +S9|5033|DURSEJ|9 +S9|5034|DURSEJ|9 +S9|5035|DURSEJ|9 +S9|5036|DURSEJ|9 +S9|5037|DURSEJ|9 +S9|5038|DURSEJ|9 +S9|5039|DURSEJ|9 +S9|5040|DURSEJ|9 +S9|5041|DURSEJ|9 +S9|5042|DURSEJ|9 +S9|5043|DURSEJ|9 +S9|5044|DURSEJ|9 +S9|5045|DURSEJ|9 +S9|5046|DURSEJ|9 +S9|5047|DURSEJ|9 +S9|5048|DURSEJ|9 +S9|5049|DURSEJ|9 +S9|5050|DURSEJ|9 +S9|5051|DURSEJ|9 +S9|5052|DURSEJ|9 +S9|5053|DURSEJ|9 +S9|5054|DURSEJ|9 +S9|5055|DURSEJ|9 +S9|5056|DURSEJ|9 +S9|5057|DURSEJ|9 +S9|5058|DURSEJ|9 +S9|5059|DURSEJ|9 +S9|5060|DURSEJ|9 +S9|5061|DURSEJ|9 +S9|5062|DURSEJ|9 +S9|5063|DURSEJ|9 +S9|5064|DURSEJ|9 +S9|5065|DURSEJ|9 +S9|5066|DURSEJ|9 +S9|5067|DURSEJ|9 +S9|5068|DURSEJ|9 +S9|5069|DURSEJ|9 +S9|5070|DURSEJ|9 +S9|5071|DURSEJ|9 +S9|5072|DURSEJ|9 +S9|5073|DURSEJ|9 +S9|5074|DURSEJ|9 +S9|5075|DURSEJ|9 +S9|5076|DURSEJ|9 +S9|5077|DURSEJ|9 +S9|5078|DURSEJ|9 +S9|5079|DURSEJ|9 +S9|5080|DURSEJ|9 +S9|5081|DURSEJ|9 +S9|5082|DURSEJ|9 +S9|5083|DURSEJ|9 +S9|5084|DURSEJ|9 +S9|5085|DURSEJ|9 +S9|5086|DURSEJ|9 +S9|5087|DURSEJ|9 +S9|5088|DURSEJ|9 +S9|5089|DURSEJ|9 +S9|5090|DURSEJ|9 +S9|5091|DURSEJ|9 +S9|5092|DURSEJ|9 +S9|5093|DURSEJ|9 +S9|5094|DURSEJ|9 +S9|5095|DURSEJ|9 +S9|5096|DURSEJ|9 +S9|5097|DURSEJ|9 +S9|5098|DURSEJ|9 +S9|5099|DURSEJ|9 +S9|5100|DURSEJ|9 +S9|5101|DURSEJ|9 +S9|5102|DURSEJ|9 +S9|5103|DURSEJ|9 +S9|5104|DURSEJ|9 +S9|5105|DURSEJ|9 +S9|5106|DURSEJ|9 +S9|5107|DURSEJ|9 +S9|5108|DURSEJ|9 +S9|5109|DURSEJ|9 +S9|5110|DURSEJ|9 +S9|5111|DURSEJ|9 +S9|5112|DURSEJ|9 +S9|5113|DURSEJ|9 +S9|5114|DURSEJ|9 +S9|5115|DURSEJ|9 +S9|5116|DURSEJ|9 +S9|5117|DURSEJ|9 +S9|5118|DURSEJ|9 +S9|5119|DURSEJ|9 +S9|5120|DURSEJ|9 +S9|5121|DURSEJ|9 +S9|5122|DURSEJ|9 +S9|5123|DURSEJ|9 +S9|5124|DURSEJ|9 +S9|5125|DURSEJ|9 +S9|5126|DURSEJ|9 +S9|5127|DURSEJ|9 +S9|5128|DURSEJ|9 +S9|5129|DURSEJ|9 +S9|5130|DURSEJ|9 +S9|5131|DURSEJ|9 +S9|5132|DURSEJ|9 +S9|5133|DURSEJ|9 +S9|5134|DURSEJ|9 +S9|5135|DURSEJ|9 +S9|5136|DURSEJ|9 +S9|5137|DURSEJ|9 +S9|5138|DURSEJ|9 +S9|5139|DURSEJ|9 +S9|5140|DURSEJ|9 +S9|5141|DURSEJ|9 +S9|5142|DURSEJ|9 +S9|5143|DURSEJ|9 +S9|5144|DURSEJ|9 +S9|5145|DURSEJ|9 +S9|5146|DURSEJ|9 +S9|5147|DURSEJ|9 +S9|5148|DURSEJ|9 +S9|5149|DURSEJ|9 +S9|5150|DURSEJ|9 +S9|5151|DURSEJ|9 +S9|5152|DURSEJ|9 +S9|5153|DURSEJ|9 +S9|5154|DURSEJ|9 +S9|5155|DURSEJ|9 +S9|5156|DURSEJ|9 +S9|5157|DURSEJ|9 +S9|5158|DURSEJ|9 +S9|5159|DURSEJ|9 +S9|5160|DURSEJ|9 +S9|5161|DURSEJ|9 +S9|5162|DURSEJ|9 +S9|5163|DURSEJ|9 +S9|5164|DURSEJ|9 +S9|5165|DURSEJ|9 +S9|5166|DURSEJ|9 +S9|5167|DURSEJ|9 +S9|5168|DURSEJ|9 +S9|5169|DURSEJ|9 +S9|5170|DURSEJ|9 +S9|5171|DURSEJ|9 +S9|5172|DURSEJ|9 +S9|5173|DURSEJ|9 +S9|5174|DURSEJ|9 +S9|5175|DURSEJ|9 +S9|5176|DURSEJ|9 +S9|5177|DURSEJ|9 +S9|5178|DURSEJ|9 +S9|5179|DURSEJ|9 +S9|5180|DURSEJ|9 +S9|5181|DURSEJ|9 +S9|5182|DURSEJ|9 +S9|5183|DURSEJ|9 +S9|5184|DURSEJ|9 +S9|5185|DURSEJ|9 +S9|5186|DURSEJ|9 +S9|5187|DURSEJ|9 +S9|5188|DURSEJ|9 +S9|5189|DURSEJ|9 +S9|5190|DURSEJ|9 +S9|5191|DURSEJ|9 +S9|5192|DURSEJ|9 +S9|5193|DURSEJ|9 +S9|5194|DURSEJ|9 +S9|5195|DURSEJ|9 +S9|5196|DURSEJ|9 +S9|5197|DURSEJ|9 +S9|5198|DURSEJ|9 +S9|5199|DURSEJ|9 +S9|5200|DURSEJ|9 +S9|5201|DURSEJ|9 +S9|5202|DURSEJ|9 +S9|5203|DURSEJ|9 +S9|5204|DURSEJ|9 +S9|5205|DURSEJ|9 +S9|5206|DURSEJ|9 +S9|5207|DURSEJ|9 +S9|5208|DURSEJ|9 +S9|5209|DURSEJ|9 +S9|5210|DURSEJ|9 +S9|5211|DURSEJ|9 +S9|5212|DURSEJ|9 +S9|5213|DURSEJ|9 +S9|5214|DURSEJ|9 +S9|5215|DURSEJ|9 +S9|5216|DURSEJ|9 +S9|5217|DURSEJ|9 +S9|5218|DURSEJ|9 +S9|5219|DURSEJ|9 +S9|5220|DURSEJ|9 +S9|5221|DURSEJ|9 +S9|5222|DURSEJ|9 +S9|5223|DURSEJ|9 +S9|5224|DURSEJ|9 +S9|5225|DURSEJ|9 +S9|5226|DURSEJ|9 +S9|5227|DURSEJ|9 +S9|5228|DURSEJ|9 +S9|5229|DURSEJ|9 +S9|5230|DURSEJ|9 +S9|5231|DURSEJ|9 +S9|5232|DURSEJ|9 +S9|5233|DURSEJ|9 +S9|5234|DURSEJ|9 +S9|5235|DURSEJ|9 +S9|5236|DURSEJ|9 +S9|5237|DURSEJ|9 +S9|5238|DURSEJ|9 +S9|5239|DURSEJ|9 +S9|5240|DURSEJ|9 +S9|5241|DURSEJ|9 +S9|5242|DURSEJ|9 +S9|5243|DURSEJ|9 +S9|5244|DURSEJ|9 +S9|5245|DURSEJ|9 +S9|5246|DURSEJ|9 +S9|5247|DURSEJ|9 +S9|5248|DURSEJ|9 +S9|5249|DURSEJ|9 +S9|5250|DURSEJ|9 +S9|5251|DURSEJ|9 +S9|5252|DURSEJ|9 +S9|5253|DURSEJ|9 +S9|5254|DURSEJ|9 +S9|5255|DURSEJ|9 +S9|5256|DURSEJ|9 +S9|5257|DURSEJ|9 +S9|5258|DURSEJ|9 +S9|5259|DURSEJ|9 +S9|5260|DURSEJ|9 +S9|5261|DURSEJ|9 +S9|5262|DURSEJ|9 +S9|5263|DURSEJ|9 +S9|5264|DURSEJ|9 +S9|5265|DURSEJ|9 +S9|5266|DURSEJ|9 +S9|5267|DURSEJ|9 +S9|5268|DURSEJ|9 +S9|5269|DURSEJ|9 +S9|5270|DURSEJ|9 +S9|5271|DURSEJ|9 +S9|5272|DURSEJ|9 +S9|5273|DURSEJ|9 +S9|5274|DURSEJ|9 +S9|5275|DURSEJ|9 +S9|5276|DURSEJ|9 +S9|5277|DURSEJ|9 +S9|5278|DURSEJ|9 +S9|5279|DURSEJ|9 +S9|5280|DURSEJ|9 +S9|5281|DURSEJ|9 +S9|5282|DURSEJ|9 +S9|5283|DURSEJ|9 +S9|5284|DURSEJ|9 +S9|5285|DURSEJ|9 +S9|5286|DURSEJ|9 +S9|5287|DURSEJ|9 +S9|5288|DURSEJ|9 +S9|5289|DURSEJ|9 +S9|5290|DURSEJ|9 +S9|5291|DURSEJ|9 +S9|5292|DURSEJ|9 +S9|5293|DURSEJ|9 +S9|5294|DURSEJ|9 +S9|5295|DURSEJ|9 +S9|5296|DURSEJ|9 +S9|5297|DURSEJ|9 +S9|5298|DURSEJ|9 +S9|5299|DURSEJ|9 +S9|5300|DURSEJ|9 +S9|5301|DURSEJ|9 +S9|5302|DURSEJ|9 +S9|5303|DURSEJ|9 +S9|5304|DURSEJ|9 +S9|5305|DURSEJ|9 +S9|5306|DURSEJ|9 +S9|5307|DURSEJ|9 +S9|5308|DURSEJ|9 +S9|5309|DURSEJ|9 +S9|5310|DURSEJ|9 +S9|5311|DURSEJ|9 +S9|5312|DURSEJ|9 +S9|5313|DURSEJ|9 +S9|5314|DURSEJ|9 +S9|5315|DURSEJ|9 +S9|5316|DURSEJ|9 +S9|5317|DURSEJ|9 +S9|5318|DURSEJ|9 +S9|5319|DURSEJ|9 +S9|5320|DURSEJ|9 +S9|5321|DURSEJ|9 +S9|5322|DURSEJ|9 +S9|5323|DURSEJ|9 +S9|5324|DURSEJ|9 +S9|5325|DURSEJ|9 +S9|5326|DURSEJ|9 +S9|5327|DURSEJ|9 +S9|5328|DURSEJ|9 +S9|5329|DURSEJ|9 +S9|5330|DURSEJ|9 +S9|5331|DURSEJ|9 +S9|5332|DURSEJ|9 +S9|5333|DURSEJ|9 +S9|5334|DURSEJ|9 +S9|5335|DURSEJ|9 +S9|5336|DURSEJ|9 +S9|5337|DURSEJ|9 +S9|5338|DURSEJ|9 +S9|5339|DURSEJ|9 +S9|5340|DURSEJ|9 +S9|5341|DURSEJ|9 +S9|5342|DURSEJ|9 +S9|5343|DURSEJ|9 +S9|5344|DURSEJ|9 +S9|5345|DURSEJ|9 +S9|5346|DURSEJ|9 +S9|5347|DURSEJ|9 +S9|5348|DURSEJ|9 +S9|5349|DURSEJ|9 +S9|5350|DURSEJ|9 +S9|5351|DURSEJ|9 +S9|5352|DURSEJ|9 +S9|5353|DURSEJ|9 +S9|5354|DURSEJ|9 +S9|5355|DURSEJ|9 +S9|5356|DURSEJ|9 +S9|5357|DURSEJ|9 +S9|5358|DURSEJ|9 +S9|5359|DURSEJ|9 +S9|5360|DURSEJ|9 +S9|5361|DURSEJ|9 +S9|5362|DURSEJ|9 +S9|5363|DURSEJ|9 +S9|5364|DURSEJ|9 +S9|5365|DURSEJ|9 +S9|5366|DURSEJ|9 +S9|5367|DURSEJ|9 +S9|5368|DURSEJ|9 +S9|5369|DURSEJ|9 +S9|5370|DURSEJ|9 +S9|5371|DURSEJ|9 +S9|5372|DURSEJ|9 +S9|5373|DURSEJ|9 +S9|5374|DURSEJ|9 +S9|5375|DURSEJ|9 +S9|5376|DURSEJ|9 +S9|5377|DURSEJ|9 +S9|5378|DURSEJ|9 +S9|5379|DURSEJ|9 +S9|5380|DURSEJ|9 +S9|5381|DURSEJ|9 +S9|5382|DURSEJ|9 +S9|5383|DURSEJ|9 +S9|5384|DURSEJ|9 +S9|5385|DURSEJ|9 +S9|5386|DURSEJ|9 +S9|5387|DURSEJ|9 +S9|5388|DURSEJ|9 +S9|5389|DURSEJ|9 +S9|5390|DURSEJ|9 +S9|5391|DURSEJ|9 +S9|5392|DURSEJ|9 +S9|5393|DURSEJ|9 +S9|5394|DURSEJ|9 +S9|5395|DURSEJ|9 +S9|5396|DURSEJ|9 +S9|5397|DURSEJ|9 +S9|5398|DURSEJ|9 +S9|5399|DURSEJ|9 +S9|5400|DURSEJ|9 +S9|5401|DURSEJ|9 +S9|5402|DURSEJ|9 +S9|5403|DURSEJ|9 +S9|5404|DURSEJ|9 +S9|5405|DURSEJ|9 +S9|5406|DURSEJ|9 +S9|5407|DURSEJ|9 +S9|5408|DURSEJ|9 +S9|5409|DURSEJ|9 +S9|5410|DURSEJ|9 +S9|5411|DURSEJ|9 +S9|5412|DURSEJ|9 +S9|5413|DURSEJ|9 +S9|5414|DURSEJ|9 +S9|5415|DURSEJ|9 +S9|5416|DURSEJ|9 +S9|5417|DURSEJ|9 +S9|5418|DURSEJ|9 +S9|5419|DURSEJ|9 +S9|5420|DURSEJ|9 +S9|5421|DURSEJ|9 +S9|5422|DURSEJ|9 +S9|5423|DURSEJ|9 +S9|5424|DURSEJ|9 +S9|5425|DURSEJ|9 +S9|5426|DURSEJ|9 +S9|5427|DURSEJ|9 +S9|5428|DURSEJ|9 +S9|5429|DURSEJ|9 +S9|5430|DURSEJ|9 +S9|5431|DURSEJ|9 +S9|5432|DURSEJ|9 +S9|5433|DURSEJ|9 +S9|5434|DURSEJ|9 +S9|5435|DURSEJ|9 +S9|5436|DURSEJ|9 +S9|5437|DURSEJ|9 +S9|5438|DURSEJ|9 +S9|5439|DURSEJ|9 +S9|5440|DURSEJ|9 +S9|5441|DURSEJ|9 +S9|5442|DURSEJ|9 +S9|5443|DURSEJ|9 +S9|5444|DURSEJ|9 +S9|5445|DURSEJ|9 +S9|5446|DURSEJ|9 +S9|5447|DURSEJ|9 +S9|5448|DURSEJ|9 +S9|5449|DURSEJ|9 +S9|5450|DURSEJ|9 +S9|5451|DURSEJ|9 +S9|5452|DURSEJ|9 +S9|5453|DURSEJ|9 +S9|5454|DURSEJ|9 +S9|5455|DURSEJ|9 +S9|5456|DURSEJ|9 +S9|5457|DURSEJ|9 +S9|5458|DURSEJ|9 +S9|5459|DURSEJ|9 +S9|5460|DURSEJ|9 +S9|5461|DURSEJ|9 +S9|5462|DURSEJ|9 +S9|5463|DURSEJ|9 +S9|5464|DURSEJ|9 +S9|5465|DURSEJ|9 +S9|5466|DURSEJ|9 +S9|5467|DURSEJ|9 +S9|5468|DURSEJ|9 +S9|5469|DURSEJ|9 +S9|5470|DURSEJ|9 +S9|5471|DURSEJ|9 +S9|5472|DURSEJ|9 +S9|5473|DURSEJ|9 +S9|5474|DURSEJ|9 +S9|5475|DURSEJ|9 +S9|5476|DURSEJ|9 +S9|5477|DURSEJ|9 +S9|5478|DURSEJ|9 +S9|5479|DURSEJ|9 +S9|5480|DURSEJ|9 +S9|5481|DURSEJ|9 +S9|5482|DURSEJ|9 +S9|5483|DURSEJ|9 +S9|5484|DURSEJ|9 +S9|5485|DURSEJ|9 +S9|5486|DURSEJ|9 +S9|5487|DURSEJ|9 +S9|5488|DURSEJ|9 +S9|5489|DURSEJ|9 +S9|5490|DURSEJ|9 +S9|5491|DURSEJ|9 +S9|5492|DURSEJ|9 +S9|5493|DURSEJ|9 +S9|5494|DURSEJ|9 +S9|5495|DURSEJ|9 +S9|5496|DURSEJ|9 +S9|5497|DURSEJ|9 +S9|5498|DURSEJ|9 +S9|5499|DURSEJ|9 +S9|5500|DURSEJ|9 +S9|5501|DURSEJ|9 +S9|5502|DURSEJ|9 +S9|5503|DURSEJ|9 +S9|5504|DURSEJ|9 +S9|5505|DURSEJ|9 +S9|5506|DURSEJ|9 +S9|5507|DURSEJ|9 +S9|5508|DURSEJ|9 +S9|5509|DURSEJ|9 +S9|5510|DURSEJ|9 +S9|5511|DURSEJ|9 +S9|5512|DURSEJ|9 +S9|5513|DURSEJ|9 +S9|5514|DURSEJ|9 +S9|5515|DURSEJ|9 +S9|5516|DURSEJ|9 +S9|5517|DURSEJ|9 +S9|5518|DURSEJ|9 +S9|5519|DURSEJ|9 +S9|5520|DURSEJ|9 +S9|5521|DURSEJ|9 +S9|5522|DURSEJ|9 +S9|5523|DURSEJ|9 +S9|5524|DURSEJ|9 +S9|5525|DURSEJ|9 +S9|5526|DURSEJ|9 +S9|5527|DURSEJ|9 +S9|5528|DURSEJ|9 +S9|5529|DURSEJ|9 +S9|5530|DURSEJ|9 +S9|5531|DURSEJ|9 +S9|5532|DURSEJ|9 +S9|5533|DURSEJ|9 +S9|5534|DURSEJ|9 +S9|5535|DURSEJ|9 +S9|5536|DURSEJ|9 +S9|5537|DURSEJ|9 +S9|5538|DURSEJ|9 +S9|5539|DURSEJ|9 +S9|5540|DURSEJ|9 +S9|5541|DURSEJ|9 +S9|5542|DURSEJ|9 +S9|5543|DURSEJ|9 +S9|5544|DURSEJ|9 +S9|5545|DURSEJ|9 +S9|5546|DURSEJ|9 +S9|5547|DURSEJ|9 +S9|5548|DURSEJ|9 +S9|5549|DURSEJ|9 +S9|5550|DURSEJ|9 +S9|5551|DURSEJ|9 +S9|5552|DURSEJ|9 +S9|5553|DURSEJ|9 +S9|5554|DURSEJ|9 +S9|5555|DURSEJ|9 +S9|5556|DURSEJ|9 +S9|5557|DURSEJ|9 +S9|5558|DURSEJ|9 +S9|5559|DURSEJ|9 +S9|5560|DURSEJ|9 +S9|5561|DURSEJ|9 +S9|5562|DURSEJ|9 +S9|5563|DURSEJ|9 +S9|5564|DURSEJ|9 +S9|5565|DURSEJ|9 +S9|5566|DURSEJ|9 +S9|5567|DURSEJ|9 +S9|5568|DURSEJ|9 +S9|5569|DURSEJ|9 +S9|5570|DURSEJ|9 +S9|5571|DURSEJ|9 +S9|5572|DURSEJ|9 +S9|5573|DURSEJ|9 +S9|5574|DURSEJ|9 +S9|5575|DURSEJ|9 +S9|5576|DURSEJ|9 +S9|5577|DURSEJ|9 +S9|5578|DURSEJ|9 +S9|5579|DURSEJ|9 +S9|5580|DURSEJ|9 +S9|5581|DURSEJ|9 +S9|5582|DURSEJ|9 +S9|5583|DURSEJ|9 +S9|5584|DURSEJ|9 +S9|5585|DURSEJ|9 +S9|5586|DURSEJ|9 +S9|5587|DURSEJ|9 +S9|5588|DURSEJ|9 +S9|5589|DURSEJ|9 +S9|5590|DURSEJ|9 +S9|5591|DURSEJ|9 +S9|5592|DURSEJ|9 +S9|5593|DURSEJ|9 +S9|5594|DURSEJ|9 +S9|5595|DURSEJ|9 +S9|5596|DURSEJ|9 +S9|5597|DURSEJ|9 +S9|5598|DURSEJ|9 +S9|5599|DURSEJ|9 +S9|5600|DURSEJ|9 +S9|5601|DURSEJ|9 +S9|5602|DURSEJ|9 +S9|5603|DURSEJ|9 +S9|5604|DURSEJ|9 +S9|5605|DURSEJ|9 +S9|5606|DURSEJ|9 +S9|5607|DURSEJ|9 +S9|5608|DURSEJ|9 +S9|5609|DURSEJ|9 +S9|5610|DURSEJ|9 +S9|5611|DURSEJ|9 +S9|5612|DURSEJ|9 +S9|5613|DURSEJ|9 +S9|5614|DURSEJ|9 +S9|5615|DURSEJ|9 +S9|5616|DURSEJ|9 +S9|5617|DURSEJ|9 +S9|5618|DURSEJ|9 +S9|5619|DURSEJ|9 +S9|5620|DURSEJ|9 +S9|5621|DURSEJ|9 +S9|5622|DURSEJ|9 +S9|5623|DURSEJ|9 +S9|5624|DURSEJ|9 +S9|5625|DURSEJ|9 +S9|5626|DURSEJ|9 +S9|5627|DURSEJ|9 +S9|5628|DURSEJ|9 +S9|5629|DURSEJ|9 +S9|5630|DURSEJ|9 +S9|5631|DURSEJ|9 +S9|5632|DURSEJ|9 +S9|5633|DURSEJ|9 +S9|5634|DURSEJ|9 +S9|5635|DURSEJ|9 +S9|5636|DURSEJ|9 +S9|5637|DURSEJ|9 +S9|5638|DURSEJ|9 +S9|5639|DURSEJ|9 +S9|5640|DURSEJ|9 +S9|5641|DURSEJ|9 +S9|5642|DURSEJ|9 +S9|5643|DURSEJ|9 +S9|5644|DURSEJ|9 +S9|5645|DURSEJ|9 +S9|5646|DURSEJ|9 +S9|5647|DURSEJ|9 +S9|5648|DURSEJ|9 +S9|5649|DURSEJ|9 +S9|5650|DURSEJ|9 +S9|5651|DURSEJ|9 +S9|5652|DURSEJ|9 +S9|5653|DURSEJ|9 +S9|5654|DURSEJ|9 +S9|5655|DURSEJ|9 +S9|5656|DURSEJ|9 +S9|5657|DURSEJ|9 +S9|5658|DURSEJ|9 +S9|5659|DURSEJ|9 +S9|5660|DURSEJ|9 +S9|5661|DURSEJ|9 +S9|5662|DURSEJ|9 +S9|5663|DURSEJ|9 +S9|5664|DURSEJ|9 +S9|5665|DURSEJ|9 +S9|5666|DURSEJ|9 +S9|5667|DURSEJ|9 +S9|5668|DURSEJ|9 +S9|5669|DURSEJ|9 +S9|5670|DURSEJ|9 +S9|5671|DURSEJ|9 +S9|5672|DURSEJ|9 +S9|5673|DURSEJ|9 +S9|5674|DURSEJ|9 +S9|5675|DURSEJ|9 +S9|5676|DURSEJ|9 +S9|5677|DURSEJ|9 +S9|5678|DURSEJ|9 +S9|5679|DURSEJ|9 +S9|5680|DURSEJ|9 +S9|5681|DURSEJ|9 +S9|5682|DURSEJ|9 +S9|5683|DURSEJ|9 +S9|5684|DURSEJ|9 +S9|5685|DURSEJ|9 +S9|5686|DURSEJ|9 +S9|5687|DURSEJ|9 +S9|5688|DURSEJ|9 +S9|5689|DURSEJ|9 +S9|5690|DURSEJ|9 +S9|5691|DURSEJ|9 +S9|5692|DURSEJ|9 +S9|5693|DURSEJ|9 +S9|5694|DURSEJ|9 +S9|5695|DURSEJ|9 +S9|5696|DURSEJ|9 +S9|5697|DURSEJ|9 +S9|5698|DURSEJ|9 +S9|5699|DURSEJ|9 +S9|5700|DURSEJ|9 +S9|5701|DURSEJ|9 +S9|5702|DURSEJ|9 +S9|5703|DURSEJ|9 +S9|5704|DURSEJ|9 +S9|5705|DURSEJ|9 +S9|5706|DURSEJ|9 +S9|5707|DURSEJ|9 +S9|5708|DURSEJ|9 +S9|5709|DURSEJ|9 +S9|5710|DURSEJ|9 +S9|5711|DURSEJ|9 +S9|5712|DURSEJ|9 +S9|5713|DURSEJ|9 +S9|5714|DURSEJ|9 +S9|5715|DURSEJ|9 +S9|5716|DURSEJ|9 +S9|5717|DURSEJ|9 +S9|5718|DURSEJ|9 +S9|5719|DURSEJ|9 +S9|5720|DURSEJ|9 +S9|5721|DURSEJ|9 +S9|5722|DURSEJ|9 +S9|5723|DURSEJ|9 +S9|5724|DURSEJ|9 +S9|5725|DURSEJ|9 +S9|5726|DURSEJ|9 +S9|5727|DURSEJ|9 +S9|5728|DURSEJ|9 +S9|5729|DURSEJ|9 +S9|5730|DURSEJ|9 +S9|5731|DURSEJ|9 +S9|5732|DURSEJ|9 +S9|5733|DURSEJ|9 +S9|5734|DURSEJ|9 +S9|5735|DURSEJ|9 +S9|5736|DURSEJ|9 +S9|5737|DURSEJ|9 +S9|5738|DURSEJ|9 +S9|5739|DURSEJ|9 +S9|5740|DURSEJ|9 +S9|5741|DURSEJ|9 +S9|5742|DURSEJ|9 +S9|5743|DURSEJ|9 +S9|5744|DURSEJ|9 +S9|5745|DURSEJ|9 +S9|5746|DURSEJ|9 +S9|5747|DURSEJ|9 +S9|5748|DURSEJ|9 +S9|5749|DURSEJ|9 +S9|5750|DURSEJ|9 +S9|5751|DURSEJ|9 +S9|5752|DURSEJ|9 +S9|5753|DURSEJ|9 +S9|5754|DURSEJ|9 +S9|5755|DURSEJ|9 +S9|5756|DURSEJ|9 +S9|5757|DURSEJ|9 +S9|5758|DURSEJ|9 +S9|5759|DURSEJ|9 +S9|5760|DURSEJ|9 +S9|5761|DURSEJ|9 +S9|5762|DURSEJ|9 +S9|5763|DURSEJ|9 +S9|5764|DURSEJ|9 +S9|5765|DURSEJ|9 +S9|5766|DURSEJ|9 +S9|5767|DURSEJ|9 +S9|5768|DURSEJ|9 +S9|5769|DURSEJ|9 +S9|5770|DURSEJ|9 +S9|5771|DURSEJ|9 +S9|5772|DURSEJ|9 +S9|5773|DURSEJ|9 +S9|5774|DURSEJ|9 +S9|5775|DURSEJ|9 +S9|5776|DURSEJ|9 +S9|5777|DURSEJ|9 +S9|5778|DURSEJ|9 +S9|5779|DURSEJ|9 +S9|5780|DURSEJ|9 +S9|5781|DURSEJ|9 +S9|5782|DURSEJ|9 +S9|5783|DURSEJ|9 +S9|5784|DURSEJ|9 +S9|5785|DURSEJ|9 +S9|5786|DURSEJ|9 +S9|5787|DURSEJ|9 +S9|5788|DURSEJ|9 +S9|5789|DURSEJ|9 +S9|5790|DURSEJ|9 +S9|5791|DURSEJ|9 +S9|5792|DURSEJ|9 +S9|5793|DURSEJ|9 +S9|5794|DURSEJ|9 +S9|5795|DURSEJ|9 +S9|5796|DURSEJ|9 +S9|5797|DURSEJ|9 +S9|5798|DURSEJ|9 +S9|5799|DURSEJ|9 +S9|5800|DURSEJ|9 +S9|5801|DURSEJ|9 +S9|5802|DURSEJ|9 +S9|5803|DURSEJ|9 +S9|5804|DURSEJ|9 +S9|5805|DURSEJ|9 +S9|5806|DURSEJ|9 +S9|5807|DURSEJ|9 +S9|5808|DURSEJ|9 +S9|5809|DURSEJ|9 +S9|5810|DURSEJ|9 +S9|5811|DURSEJ|9 +S9|5812|DURSEJ|9 +S9|5813|DURSEJ|9 +S9|5814|DURSEJ|9 +S9|5815|DURSEJ|9 +S9|5816|DURSEJ|9 +S9|5817|DURSEJ|9 +S9|5818|DURSEJ|9 +S9|5819|DURSEJ|9 +S9|5820|DURSEJ|9 +S9|5821|DURSEJ|9 +S9|5822|DURSEJ|9 +S9|5823|DURSEJ|9 +S9|5824|DURSEJ|9 +S9|5825|DURSEJ|9 +S9|5826|DURSEJ|9 +S9|5827|DURSEJ|9 +S9|5828|DURSEJ|9 +S9|5829|DURSEJ|9 +S9|5830|DURSEJ|9 +S9|5831|DURSEJ|9 +S9|5832|DURSEJ|9 +S9|5833|DURSEJ|9 +S9|5834|DURSEJ|9 +S9|5835|DURSEJ|9 +S9|5836|DURSEJ|9 +S9|5837|DURSEJ|9 +S9|5838|DURSEJ|9 +S9|5839|DURSEJ|9 +S9|5840|DURSEJ|9 +S9|5841|DURSEJ|9 +S9|5842|DURSEJ|9 +S9|5843|DURSEJ|9 +S9|5844|DURSEJ|9 +S9|5845|DURSEJ|9 +S9|5846|DURSEJ|9 +S9|5847|DURSEJ|9 +S9|5848|DURSEJ|9 +S9|5849|DURSEJ|9 +S9|5850|DURSEJ|9 +S9|5851|DURSEJ|9 +S9|5852|DURSEJ|9 +S9|5853|DURSEJ|9 +S9|5854|DURSEJ|9 +S9|5855|DURSEJ|9 +S9|5856|DURSEJ|9 +S9|5857|DURSEJ|9 +S9|5858|DURSEJ|9 +S9|5859|DURSEJ|9 +S9|5860|DURSEJ|9 +S9|5861|DURSEJ|9 +S9|5862|DURSEJ|9 +S9|5863|DURSEJ|9 +S9|5864|DURSEJ|9 +S9|5865|DURSEJ|9 +S9|5866|DURSEJ|9 +S9|5867|DURSEJ|9 +S9|5868|DURSEJ|9 +S9|5869|DURSEJ|9 +S9|5870|DURSEJ|9 +S9|5871|DURSEJ|9 +S9|5872|DURSEJ|9 +S9|5873|DURSEJ|9 +S9|5874|DURSEJ|9 +S9|5875|DURSEJ|9 +S9|5876|DURSEJ|9 +S9|5877|DURSEJ|9 +S9|5878|DURSEJ|9 +S9|5879|DURSEJ|9 +S9|5880|DURSEJ|9 +S9|5881|DURSEJ|9 +S9|5882|DURSEJ|9 +S9|5883|DURSEJ|9 +S9|5884|DURSEJ|9 +S9|5885|DURSEJ|9 +S9|5886|DURSEJ|9 +S9|5887|DURSEJ|9 +S9|5888|DURSEJ|9 +S9|5889|DURSEJ|9 +S9|5890|DURSEJ|9 +S9|5891|DURSEJ|9 +S9|5892|DURSEJ|9 +S9|5893|DURSEJ|9 +S9|5894|DURSEJ|9 +S9|5895|DURSEJ|9 +S9|5896|DURSEJ|9 +S9|5897|DURSEJ|9 +S9|5898|DURSEJ|9 +S9|5899|DURSEJ|9 +S9|5900|DURSEJ|9 +S9|5901|DURSEJ|9 +S9|5902|DURSEJ|9 +S9|5903|DURSEJ|9 +S9|5904|DURSEJ|9 +S9|5905|DURSEJ|9 +S9|5906|DURSEJ|9 +S9|5907|DURSEJ|9 +S9|5908|DURSEJ|9 +S9|5909|DURSEJ|9 +S9|5910|DURSEJ|9 +S9|5911|DURSEJ|9 +S9|5912|DURSEJ|9 +S9|5913|DURSEJ|9 +S9|5914|DURSEJ|9 +S9|5915|DURSEJ|9 +S9|5916|DURSEJ|9 +S9|5917|DURSEJ|9 +S9|5918|DURSEJ|9 +S9|5919|DURSEJ|9 +S9|5920|DURSEJ|9 +S9|5921|DURSEJ|9 +S9|5922|DURSEJ|9 +S9|5923|DURSEJ|9 +S9|5924|DURSEJ|9 +S9|5925|DURSEJ|9 +S9|5926|DURSEJ|9 +S9|5927|DURSEJ|9 +S9|5928|DURSEJ|9 +S9|5929|DURSEJ|9 +S9|5930|DURSEJ|9 +S9|5931|DURSEJ|9 +S9|5932|DURSEJ|9 +S9|5933|DURSEJ|9 +S9|5934|DURSEJ|9 +S9|5935|DURSEJ|9 +S9|5936|DURSEJ|9 +S9|5937|DURSEJ|9 +S9|5938|DURSEJ|9 +S9|5939|DURSEJ|9 +S9|5940|DURSEJ|9 +S9|5941|DURSEJ|9 +S9|5942|DURSEJ|9 +S9|5943|DURSEJ|9 +S9|5944|DURSEJ|9 +S9|5945|DURSEJ|9 +S9|5946|DURSEJ|9 +S9|5947|DURSEJ|9 +S9|5948|DURSEJ|9 +S9|5949|DURSEJ|9 +S9|5950|DURSEJ|9 +S9|5951|DURSEJ|9 +S9|5952|DURSEJ|9 +S9|5953|DURSEJ|9 +S9|5954|DURSEJ|9 +S9|5955|DURSEJ|9 +S9|5956|DURSEJ|9 +S9|5957|DURSEJ|9 +S9|5958|DURSEJ|9 +S9|5959|DURSEJ|9 +S9|5960|DURSEJ|9 +S9|5961|DURSEJ|9 +S9|5962|DURSEJ|9 +S9|5963|DURSEJ|9 +S9|5964|DURSEJ|9 +S9|5965|DURSEJ|9 +S9|5966|DURSEJ|9 +S9|5967|DURSEJ|9 +S9|5968|DURSEJ|9 +S9|5969|DURSEJ|9 +S9|5970|DURSEJ|9 +S9|5971|DURSEJ|9 +S9|5972|DURSEJ|9 +S9|5973|DURSEJ|9 +S9|5974|DURSEJ|9 +S9|5975|DURSEJ|9 +S9|5976|DURSEJ|9 +S9|5977|DURSEJ|9 +S9|5978|DURSEJ|9 +S9|5979|DURSEJ|9 +S9|5980|DURSEJ|9 +S9|5981|DURSEJ|9 +S9|5982|DURSEJ|9 +S9|5983|DURSEJ|9 +S9|5984|DURSEJ|9 +S9|5985|DURSEJ|9 +S9|5986|DURSEJ|9 +S9|5987|DURSEJ|9 +S9|5988|DURSEJ|9 +S9|5989|DURSEJ|9 +S9|5990|DURSEJ|9 +S9|5991|DURSEJ|9 +S9|5992|DURSEJ|9 +S9|5993|DURSEJ|9 +S9|5994|DURSEJ|9 +S9|5995|DURSEJ|9 +S9|5996|DURSEJ|9 +S9|5997|DURSEJ|9 +S9|5998|DURSEJ|9 +S9|5999|DURSEJ|9 +S9|6000|DURSEJ|9 +S9|6001|DURSEJ|9 +S9|6002|DURSEJ|9 +S9|6003|DURSEJ|9 +S9|6004|DURSEJ|9 +S9|6005|DURSEJ|9 +S9|6006|DURSEJ|9 +S9|6007|DURSEJ|9 +S9|6008|DURSEJ|9 +S9|6009|DURSEJ|9 +S9|6010|DURSEJ|9 +S9|6011|DURSEJ|9 +S9|6012|DURSEJ|9 +S9|6013|DURSEJ|9 +S9|6014|DURSEJ|9 +S9|6015|DURSEJ|9 +S9|6016|DURSEJ|9 +S9|6017|DURSEJ|9 +S9|6018|DURSEJ|9 +S9|6019|DURSEJ|9 +S9|6020|DURSEJ|9 +S9|6021|DURSEJ|9 +S9|6022|DURSEJ|9 +S9|6023|DURSEJ|9 +S9|6024|DURSEJ|9 +S9|6025|DURSEJ|9 +S9|6026|DURSEJ|9 +S9|6027|DURSEJ|9 +S9|6028|DURSEJ|9 +S9|6029|DURSEJ|9 +S9|6030|DURSEJ|9 +S9|6031|DURSEJ|9 +S9|6032|DURSEJ|9 +S9|6033|DURSEJ|9 +S9|6034|DURSEJ|9 +S9|6035|DURSEJ|9 +S9|6036|DURSEJ|9 +S9|6037|DURSEJ|9 +S9|6038|DURSEJ|9 +S9|6039|DURSEJ|9 +S9|6040|DURSEJ|9 +S9|6041|DURSEJ|9 +S9|6042|DURSEJ|9 +S9|6043|DURSEJ|9 +S9|6044|DURSEJ|9 +S9|6045|DURSEJ|9 +S9|6046|DURSEJ|9 +S9|6047|DURSEJ|9 +S9|6048|DURSEJ|9 +S9|6049|DURSEJ|9 +S9|6050|DURSEJ|9 +S9|6051|DURSEJ|9 +S9|6052|DURSEJ|9 +S9|6053|DURSEJ|9 +S9|6054|DURSEJ|9 +S9|6055|DURSEJ|9 +S9|6056|DURSEJ|9 +S9|6057|DURSEJ|9 +S9|6058|DURSEJ|9 +S9|6059|DURSEJ|9 +S9|6060|DURSEJ|9 +S9|6061|DURSEJ|9 +S9|6062|DURSEJ|9 +S9|6063|DURSEJ|9 +S9|6064|DURSEJ|9 +S9|6065|DURSEJ|9 +S9|6066|DURSEJ|9 +S9|6067|DURSEJ|9 +S9|6068|DURSEJ|9 +S9|6069|DURSEJ|9 +S9|6070|DURSEJ|9 +S9|6071|DURSEJ|9 +S9|6072|DURSEJ|9 +S9|6073|DURSEJ|9 +S9|6074|DURSEJ|9 +S9|6075|DURSEJ|9 +S9|6076|DURSEJ|9 +S9|6077|DURSEJ|9 +S9|6078|DURSEJ|9 +S9|6079|DURSEJ|9 +S9|6080|DURSEJ|9 +S9|6081|DURSEJ|9 +S9|6082|DURSEJ|9 +S9|6083|DURSEJ|9 +S9|6084|DURSEJ|9 +S9|6085|DURSEJ|9 +S9|6086|DURSEJ|9 +S9|6087|DURSEJ|9 +S9|6088|DURSEJ|9 +S9|6089|DURSEJ|9 +S9|6090|DURSEJ|9 +S9|6091|DURSEJ|9 +S9|6092|DURSEJ|9 +S9|6093|DURSEJ|9 +S9|6094|DURSEJ|9 +S9|6095|DURSEJ|9 +S9|6096|DURSEJ|9 +S9|6097|DURSEJ|9 +S9|6098|DURSEJ|9 +S9|6099|DURSEJ|9 +S9|6100|DURSEJ|9 +S9|6101|DURSEJ|9 +S9|6102|DURSEJ|9 +S9|6103|DURSEJ|9 +S9|6104|DURSEJ|9 +S9|6105|DURSEJ|9 +S9|6106|DURSEJ|9 +S9|6107|DURSEJ|9 +S9|6108|DURSEJ|9 +S9|6109|DURSEJ|9 +S9|6110|DURSEJ|9 +S9|6111|DURSEJ|9 +S9|6112|DURSEJ|9 +S9|6113|DURSEJ|9 +S9|6114|DURSEJ|9 +S9|6115|DURSEJ|9 +S9|6116|DURSEJ|9 +S9|6117|DURSEJ|9 +S9|6118|DURSEJ|9 +S9|6119|DURSEJ|9 +S9|6120|DURSEJ|9 +S9|6121|DURSEJ|9 +S9|6122|DURSEJ|9 +S9|6123|DURSEJ|9 +S9|6124|DURSEJ|9 +S9|6125|DURSEJ|9 +S9|6126|DURSEJ|9 +S9|6127|DURSEJ|9 +S9|6128|DURSEJ|9 +S9|6129|DURSEJ|9 +S9|6130|DURSEJ|9 +S9|6131|DURSEJ|9 +S9|6132|DURSEJ|9 +S9|6133|DURSEJ|9 +S9|6134|DURSEJ|9 +S9|6135|DURSEJ|9 +S9|6136|DURSEJ|9 +S9|6137|DURSEJ|9 +S9|6138|DURSEJ|9 +S9|6139|DURSEJ|9 +S9|6140|DURSEJ|9 +S9|6141|DURSEJ|9 +S9|6142|DURSEJ|9 +S9|6143|DURSEJ|9 +S9|6144|DURSEJ|9 +S9|6145|DURSEJ|9 +S9|6146|DURSEJ|9 +S9|6147|DURSEJ|9 +S9|6148|DURSEJ|9 +S9|6149|DURSEJ|9 +S9|6150|DURSEJ|9 +S9|6151|DURSEJ|9 +S9|6152|DURSEJ|9 +S9|6153|DURSEJ|9 +S9|6154|DURSEJ|9 +S9|6155|DURSEJ|9 +S9|6156|DURSEJ|9 +S9|6157|DURSEJ|9 +S9|6158|DURSEJ|9 +S9|6159|DURSEJ|9 +S9|6160|DURSEJ|9 +S9|6161|DURSEJ|9 +S9|6162|DURSEJ|9 +S9|6163|DURSEJ|9 +S9|6164|DURSEJ|9 +S9|6165|DURSEJ|9 +S9|6166|DURSEJ|9 +S9|6167|DURSEJ|9 +S9|6168|DURSEJ|9 +S9|6169|DURSEJ|9 +S9|6170|DURSEJ|9 +S9|6171|DURSEJ|9 +S9|6172|DURSEJ|9 +S9|6173|DURSEJ|9 +S9|6174|DURSEJ|9 +S9|6175|DURSEJ|9 +S9|6176|DURSEJ|9 +S9|6177|DURSEJ|9 +S9|6178|DURSEJ|9 +S9|6179|DURSEJ|9 +S9|6180|DURSEJ|9 +S9|6181|DURSEJ|9 +S9|6182|DURSEJ|9 +S9|6183|DURSEJ|9 +S9|6184|DURSEJ|9 +S9|6185|DURSEJ|9 +S9|6186|DURSEJ|9 +S9|6187|DURSEJ|9 +S9|6188|DURSEJ|9 +S9|6189|DURSEJ|9 +S9|6190|DURSEJ|9 +S9|6191|DURSEJ|9 +S9|6192|DURSEJ|9 +S9|6193|DURSEJ|9 +S9|6194|DURSEJ|9 +S9|6195|DURSEJ|9 +S9|6196|DURSEJ|9 +S9|6197|DURSEJ|9 +S9|6198|DURSEJ|9 +S9|6199|DURSEJ|9 +S9|6200|DURSEJ|9 +S9|6201|DURSEJ|9 +S9|6202|DURSEJ|9 +S9|6203|DURSEJ|9 +S9|6204|DURSEJ|9 +S9|6205|DURSEJ|9 +S9|6206|DURSEJ|9 +S9|6207|DURSEJ|9 +S9|6208|DURSEJ|9 +S9|6209|DURSEJ|9 +S9|6210|DURSEJ|9 +S9|6211|DURSEJ|9 +S9|6212|DURSEJ|9 +S9|6213|DURSEJ|9 +S9|6214|DURSEJ|9 +S9|6215|DURSEJ|9 +S9|6216|DURSEJ|9 +S9|6217|DURSEJ|9 +S9|6218|DURSEJ|9 +S9|6219|DURSEJ|9 +S9|6220|DURSEJ|9 +S9|6221|DURSEJ|9 +S9|6222|DURSEJ|9 +S9|6223|DURSEJ|9 +S9|6224|DURSEJ|9 +S9|6225|DURSEJ|9 +S9|6226|DURSEJ|9 +S9|6227|DURSEJ|9 +S9|6228|DURSEJ|9 +S9|6229|DURSEJ|9 +S9|6230|DURSEJ|9 +S9|6231|DURSEJ|9 +S9|6232|DURSEJ|9 +S9|6233|DURSEJ|9 +S9|6234|DURSEJ|9 +S9|6235|DURSEJ|9 +S9|6236|DURSEJ|9 +S9|6237|DURSEJ|9 +S9|6238|DURSEJ|9 +S9|6239|DURSEJ|9 +S9|6240|DURSEJ|9 +S9|6241|DURSEJ|9 +S9|6242|DURSEJ|9 +S9|6243|DURSEJ|9 +S9|6244|DURSEJ|9 +S9|6245|DURSEJ|9 +S9|6246|DURSEJ|9 +S9|6247|DURSEJ|9 +S9|6248|DURSEJ|9 +S9|6249|DURSEJ|9 +S9|6250|DURSEJ|9 +S9|6251|DURSEJ|9 +S9|6252|DURSEJ|9 +S9|6253|DURSEJ|9 +S9|6254|DURSEJ|9 +S9|6255|DURSEJ|9 +S9|6256|DURSEJ|9 +S9|6257|DURSEJ|9 +S9|6258|DURSEJ|9 +S9|6259|DURSEJ|9 +S9|6260|DURSEJ|9 +S9|6261|DURSEJ|9 +S9|6262|DURSEJ|9 +S9|6263|DURSEJ|9 +S9|6264|DURSEJ|9 +S9|6265|DURSEJ|9 +S9|6266|DURSEJ|9 +S9|6267|DURSEJ|9 +S9|6268|DURSEJ|9 +S9|6269|DURSEJ|9 +S9|6270|DURSEJ|9 +S9|6271|DURSEJ|9 +S9|6272|DURSEJ|9 +S9|6273|DURSEJ|9 +S9|6274|DURSEJ|9 +S9|6275|DURSEJ|9 +S9|6276|DURSEJ|9 +S9|6277|DURSEJ|9 +S9|6278|DURSEJ|9 +S9|6279|DURSEJ|9 +S9|6280|DURSEJ|9 +S9|6281|DURSEJ|9 +S9|6282|DURSEJ|9 +S9|6283|DURSEJ|9 +S9|6284|DURSEJ|9 +S9|6285|DURSEJ|9 +S9|6286|DURSEJ|9 +S9|6287|DURSEJ|9 +S9|6288|DURSEJ|9 +S9|6289|DURSEJ|9 +S9|6290|DURSEJ|9 +S9|6291|DURSEJ|9 +S9|6292|DURSEJ|9 +S9|6293|DURSEJ|9 +S9|6294|DURSEJ|9 +S9|6295|DURSEJ|9 +S9|6296|DURSEJ|9 +S9|6297|DURSEJ|9 +S9|6298|DURSEJ|9 +S9|6299|DURSEJ|9 +S9|6300|DURSEJ|9 +S9|6301|DURSEJ|9 +S9|6302|DURSEJ|9 +S9|6303|DURSEJ|9 +S9|6304|DURSEJ|9 +S9|6305|DURSEJ|9 +S9|6306|DURSEJ|9 +S9|6307|DURSEJ|9 +S9|6308|DURSEJ|9 +S9|6309|DURSEJ|9 +S9|6310|DURSEJ|9 +S9|6311|DURSEJ|9 +S9|6312|DURSEJ|9 +S9|6313|DURSEJ|9 +S9|6314|DURSEJ|9 +S9|6315|DURSEJ|9 +S9|6316|DURSEJ|9 +S9|6317|DURSEJ|9 +S9|6318|DURSEJ|9 +S9|6319|DURSEJ|9 +S9|6320|DURSEJ|9 +S9|6321|DURSEJ|9 +S9|6322|DURSEJ|9 +S9|6323|DURSEJ|9 +S9|6324|DURSEJ|9 +S9|6325|DURSEJ|9 +S9|6326|DURSEJ|9 +S9|6327|DURSEJ|9 +S9|6328|DURSEJ|9 +S9|6329|DURSEJ|9 +S9|6330|DURSEJ|9 +S9|6331|DURSEJ|9 +S9|6332|DURSEJ|9 +S9|6333|DURSEJ|9 +S9|6334|DURSEJ|9 +S9|6335|DURSEJ|9 +S9|6336|DURSEJ|9 +S9|6337|DURSEJ|9 +S9|6338|DURSEJ|9 +S9|6339|DURSEJ|9 +S9|6340|DURSEJ|9 +S9|6341|DURSEJ|9 +S9|6342|DURSEJ|9 +S9|6343|DURSEJ|9 +S9|6344|DURSEJ|9 +S9|6345|DURSEJ|9 +S9|6346|DURSEJ|9 +S9|6347|DURSEJ|9 +S9|6348|DURSEJ|9 +S9|6349|DURSEJ|9 +S9|6350|DURSEJ|9 +S9|6351|DURSEJ|9 +S9|6352|DURSEJ|9 +S9|6353|DURSEJ|9 +S9|6354|DURSEJ|9 +S9|6355|DURSEJ|9 +S9|6356|DURSEJ|9 +S9|6357|DURSEJ|9 +S9|6358|DURSEJ|9 +S9|6359|DURSEJ|9 +S9|6360|DURSEJ|9 +S9|6361|DURSEJ|9 +S9|6362|DURSEJ|9 +S9|6363|DURSEJ|9 +S9|6364|DURSEJ|9 +S9|6365|DURSEJ|9 +S9|6366|DURSEJ|9 +S9|6367|DURSEJ|9 +S9|6368|DURSEJ|9 +S9|6369|DURSEJ|9 +S9|6370|DURSEJ|9 +S9|6371|DURSEJ|9 +S9|6372|DURSEJ|9 +S9|6373|DURSEJ|9 +S9|6374|DURSEJ|9 +S9|6375|DURSEJ|9 +S9|6376|DURSEJ|9 +S9|6377|DURSEJ|9 +S9|6378|DURSEJ|9 +S9|6379|DURSEJ|9 +S9|6380|DURSEJ|9 +S9|6381|DURSEJ|9 +S9|6382|DURSEJ|9 +S9|6383|DURSEJ|9 +S9|6384|DURSEJ|9 +S9|6385|DURSEJ|9 +S9|6386|DURSEJ|9 +S9|6387|DURSEJ|9 +S9|6388|DURSEJ|9 +S9|6389|DURSEJ|9 +S9|6390|DURSEJ|9 +S9|6391|DURSEJ|9 +S9|6392|DURSEJ|9 +S9|6393|DURSEJ|9 +S9|6394|DURSEJ|9 +S9|6395|DURSEJ|9 +S9|6396|DURSEJ|9 +S9|6397|DURSEJ|9 +S9|6398|DURSEJ|9 +S9|6399|DURSEJ|9 +S9|6400|DURSEJ|9 +S9|6401|DURSEJ|9 +S9|6402|DURSEJ|9 +S9|6403|DURSEJ|9 +S9|6404|DURSEJ|9 +S9|6405|DURSEJ|9 +S9|6406|DURSEJ|9 +S9|6407|DURSEJ|9 +S9|6408|DURSEJ|9 +S9|6409|DURSEJ|9 +S9|6410|DURSEJ|9 +S9|6411|DURSEJ|9 +S9|6412|DURSEJ|9 +S9|6413|DURSEJ|9 +S9|6414|DURSEJ|9 +S9|6415|DURSEJ|9 +S9|6416|DURSEJ|9 +S9|6417|DURSEJ|9 +S9|6418|DURSEJ|9 +S9|6419|DURSEJ|9 +S9|6420|DURSEJ|9 +S9|6421|DURSEJ|9 +S9|6422|DURSEJ|9 +S9|6423|DURSEJ|9 +S9|6424|DURSEJ|9 +S9|6425|DURSEJ|9 +S9|6426|DURSEJ|9 +S9|6427|DURSEJ|9 +S9|6428|DURSEJ|9 +S9|6429|DURSEJ|9 +S9|6430|DURSEJ|9 +S9|6431|DURSEJ|9 +S9|6432|DURSEJ|9 +S9|6433|DURSEJ|9 +S9|6434|DURSEJ|9 +S9|6435|DURSEJ|9 +S9|6436|DURSEJ|9 +S9|6437|DURSEJ|9 +S9|6438|DURSEJ|9 +S9|6439|DURSEJ|9 +S9|6440|DURSEJ|9 +S9|6441|DURSEJ|9 +S9|6442|DURSEJ|9 +S9|6443|DURSEJ|9 +S9|6444|DURSEJ|9 +S9|6445|DURSEJ|9 +S9|6446|DURSEJ|9 +S9|6447|DURSEJ|9 +S9|6448|DURSEJ|9 +S9|6449|DURSEJ|9 +S9|6450|DURSEJ|9 +S9|6451|DURSEJ|9 +S9|6452|DURSEJ|9 +S9|6453|DURSEJ|9 +S9|6454|DURSEJ|9 +S9|6455|DURSEJ|9 +S9|6456|DURSEJ|9 +S9|6457|DURSEJ|9 +S9|6458|DURSEJ|9 +S9|6459|DURSEJ|9 +S9|6460|DURSEJ|9 +S9|6461|DURSEJ|9 +S9|6462|DURSEJ|9 +S9|6463|DURSEJ|9 +S9|6464|DURSEJ|9 +S9|6465|DURSEJ|9 +S9|6466|DURSEJ|9 +S9|6467|DURSEJ|9 +S9|6468|DURSEJ|9 +S9|6469|DURSEJ|9 +S9|6470|DURSEJ|9 +S9|6471|DURSEJ|9 +S9|6472|DURSEJ|9 +S9|6473|DURSEJ|9 +S9|6474|DURSEJ|9 +S9|6475|DURSEJ|9 +S9|6476|DURSEJ|9 +S9|6477|DURSEJ|9 +S9|6478|DURSEJ|9 +S9|6479|DURSEJ|9 +S9|6480|DURSEJ|9 +S9|6481|DURSEJ|9 +S9|6482|DURSEJ|9 +S9|6483|DURSEJ|9 +S9|6484|DURSEJ|9 +S9|6485|DURSEJ|9 +S9|6486|DURSEJ|9 +S9|6487|DURSEJ|9 +S9|6488|DURSEJ|9 +S9|6489|DURSEJ|9 +S9|6490|DURSEJ|9 +S9|6491|DURSEJ|9 +S9|6492|DURSEJ|9 +S9|6493|DURSEJ|9 +S9|6494|DURSEJ|9 +S9|6495|DURSEJ|9 +S9|6496|DURSEJ|9 +S9|6497|DURSEJ|9 +S9|6498|DURSEJ|9 +S9|6499|DURSEJ|9 +S9|6500|DURSEJ|9 +S9|6501|DURSEJ|9 +S9|6502|DURSEJ|9 +S9|6503|DURSEJ|9 +S9|6504|DURSEJ|9 +S9|6505|DURSEJ|9 +S9|6506|DURSEJ|9 +S9|6507|DURSEJ|9 +S9|6508|DURSEJ|9 +S9|6509|DURSEJ|9 +S9|6510|DURSEJ|9 +S9|6511|DURSEJ|9 +S9|6512|DURSEJ|9 +S9|6513|DURSEJ|9 +S9|6514|DURSEJ|9 +S9|6515|DURSEJ|9 +S9|6516|DURSEJ|9 +S9|6517|DURSEJ|9 +S9|6518|DURSEJ|9 +S9|6519|DURSEJ|9 +S9|6520|DURSEJ|9 +S9|6521|DURSEJ|9 +S9|6522|DURSEJ|9 +S9|6523|DURSEJ|9 +S9|6524|DURSEJ|9 +S9|6525|DURSEJ|9 +S9|6526|DURSEJ|9 +S9|6527|DURSEJ|9 +S9|6528|DURSEJ|9 +S9|6529|DURSEJ|9 +S9|6530|DURSEJ|9 +S9|6531|DURSEJ|9 +S9|6532|DURSEJ|9 +S9|6533|DURSEJ|9 +S9|6534|DURSEJ|9 +S9|6535|DURSEJ|9 +S9|6536|DURSEJ|9 +S9|6537|DURSEJ|9 +S9|6538|DURSEJ|9 +S9|6539|DURSEJ|9 +S9|6540|DURSEJ|9 +S9|6541|DURSEJ|9 +S9|6542|DURSEJ|9 +S9|6543|DURSEJ|9 +S9|6544|DURSEJ|9 +S9|6545|DURSEJ|9 +S9|6546|DURSEJ|9 +S9|6547|DURSEJ|9 +S9|6548|DURSEJ|9 +S9|6549|DURSEJ|9 +S9|6550|DURSEJ|9 +S9|6551|DURSEJ|9 +S9|6552|DURSEJ|9 +S9|6553|DURSEJ|9 +S9|6554|DURSEJ|9 +S9|6555|DURSEJ|9 +S9|6556|DURSEJ|9 +S9|6557|DURSEJ|9 +S9|6558|DURSEJ|9 +S9|6559|DURSEJ|9 +S9|6560|DURSEJ|9 +S9|6561|DURSEJ|9 +S9|6562|DURSEJ|9 +S9|6563|DURSEJ|9 +S9|6564|DURSEJ|9 +S9|6565|DURSEJ|9 +S9|6566|DURSEJ|9 +S9|6567|DURSEJ|9 +S9|6568|DURSEJ|9 +S9|6569|DURSEJ|9 +S9|6570|DURSEJ|9 +S9|6571|DURSEJ|9 +S9|6572|DURSEJ|9 +S9|6573|DURSEJ|9 +S9|6574|DURSEJ|9 +S9|6575|DURSEJ|9 +S9|6576|DURSEJ|9 +S9|6577|DURSEJ|9 +S9|6578|DURSEJ|9 +S9|6579|DURSEJ|9 +S9|6580|DURSEJ|9 +S9|6581|DURSEJ|9 +S9|6582|DURSEJ|9 +S9|6583|DURSEJ|9 +S9|6584|DURSEJ|9 +S9|6585|DURSEJ|9 +S9|6586|DURSEJ|9 +S9|6587|DURSEJ|9 +S9|6588|DURSEJ|9 +S9|6589|DURSEJ|9 +S9|6590|DURSEJ|9 +S9|6591|DURSEJ|9 +S9|6592|DURSEJ|9 +S9|6593|DURSEJ|9 +S9|6594|DURSEJ|9 +S9|6595|DURSEJ|9 +S9|6596|DURSEJ|9 +S9|6597|DURSEJ|9 +S9|6598|DURSEJ|9 +S9|6599|DURSEJ|9 +S9|6600|DURSEJ|9 +S9|6601|DURSEJ|9 +S9|6602|DURSEJ|9 +S9|6603|DURSEJ|9 +S9|6604|DURSEJ|9 +S9|6605|DURSEJ|9 +S9|6606|DURSEJ|9 +S9|6607|DURSEJ|9 +S9|6608|DURSEJ|9 +S9|6609|DURSEJ|9 +S9|6610|DURSEJ|9 +S9|6611|DURSEJ|9 +S9|6612|DURSEJ|9 +S9|6613|DURSEJ|9 +S9|6614|DURSEJ|9 +S9|6615|DURSEJ|9 +S9|6616|DURSEJ|9 +S9|6617|DURSEJ|9 +S9|6618|DURSEJ|9 +S9|6619|DURSEJ|9 +S9|6620|DURSEJ|9 +S9|6621|DURSEJ|9 +S9|6622|DURSEJ|9 +S9|6623|DURSEJ|9 +S9|6624|DURSEJ|9 +S9|6625|DURSEJ|9 +S9|6626|DURSEJ|9 +S9|6627|DURSEJ|9 +S9|6628|DURSEJ|9 +S9|6629|DURSEJ|9 +S9|6630|DURSEJ|9 +S9|6631|DURSEJ|9 +S9|6632|DURSEJ|9 +S9|6633|DURSEJ|9 +S9|6634|DURSEJ|9 +S9|6635|DURSEJ|9 +S9|6636|DURSEJ|9 +S9|6637|DURSEJ|9 +S9|6638|DURSEJ|9 +S9|6639|DURSEJ|9 +S9|6640|DURSEJ|9 +S9|6641|DURSEJ|9 +S9|6642|DURSEJ|9 +S9|6643|DURSEJ|9 +S9|6644|DURSEJ|9 +S9|6645|DURSEJ|9 +S9|6646|DURSEJ|9 +S9|6647|DURSEJ|9 +S9|6648|DURSEJ|9 +S9|6649|DURSEJ|9 +S9|6650|DURSEJ|9 +S9|6651|DURSEJ|9 +S9|6652|DURSEJ|9 +S9|6653|DURSEJ|9 +S9|6654|DURSEJ|9 +S9|6655|DURSEJ|9 +S9|6656|DURSEJ|9 +S9|6657|DURSEJ|9 +S9|6658|DURSEJ|9 +S9|6659|DURSEJ|9 +S9|6660|DURSEJ|9 +S9|6661|DURSEJ|9 +S9|6662|DURSEJ|9 +S9|6663|DURSEJ|9 +S9|6664|DURSEJ|9 +S9|6665|DURSEJ|9 +S9|6666|DURSEJ|9 +S9|6667|DURSEJ|9 +S9|6668|DURSEJ|9 +S9|6669|DURSEJ|9 +S9|6670|DURSEJ|9 +S9|6671|DURSEJ|9 +S9|6672|DURSEJ|9 +S9|6673|DURSEJ|9 +S9|6674|DURSEJ|9 +S9|6675|DURSEJ|9 +S9|6676|DURSEJ|9 +S9|6677|DURSEJ|9 +S9|6678|DURSEJ|9 +S9|6679|DURSEJ|9 +S9|6680|DURSEJ|9 +S9|6681|DURSEJ|9 +S9|6682|DURSEJ|9 +S9|6683|DURSEJ|9 +S9|6684|DURSEJ|9 +S9|6685|DURSEJ|9 +S9|6686|DURSEJ|9 +S9|6687|DURSEJ|9 +S9|6688|DURSEJ|9 +S9|6689|DURSEJ|9 +S9|6690|DURSEJ|9 +S9|6691|DURSEJ|9 +S9|6692|DURSEJ|9 +S9|6693|DURSEJ|9 +S9|6694|DURSEJ|9 +S9|6695|DURSEJ|9 +S9|6696|DURSEJ|9 +S9|6697|DURSEJ|9 +S9|6698|DURSEJ|9 +S9|6699|DURSEJ|9 +S9|6700|DURSEJ|9 +S9|6701|DURSEJ|9 +S9|6702|DURSEJ|9 +S9|6703|DURSEJ|9 +S9|6704|DURSEJ|9 +S9|6705|DURSEJ|9 +S9|6706|DURSEJ|9 +S9|6707|DURSEJ|9 +S9|6708|DURSEJ|9 +S9|6709|DURSEJ|9 +S9|6710|DURSEJ|9 +S9|6711|DURSEJ|9 +S9|6712|DURSEJ|9 +S9|6713|DURSEJ|9 +S9|6714|DURSEJ|9 +S9|6715|DURSEJ|9 +S9|6716|DURSEJ|9 +S9|6717|DURSEJ|9 +S9|6718|DURSEJ|9 +S9|6719|DURSEJ|9 +S9|6720|DURSEJ|9 +S9|6721|DURSEJ|9 +S9|6722|DURSEJ|9 +S9|6723|DURSEJ|9 +S9|6724|DURSEJ|9 +S9|6725|DURSEJ|9 +S9|6726|DURSEJ|9 +S9|6727|DURSEJ|9 +S9|6728|DURSEJ|9 +S9|6729|DURSEJ|9 +S9|6730|DURSEJ|9 +S9|6731|DURSEJ|9 +S9|6732|DURSEJ|9 +S9|6733|DURSEJ|9 +S9|6734|DURSEJ|9 +S9|6735|DURSEJ|9 +S9|6736|DURSEJ|9 +S9|6737|DURSEJ|9 +S9|6738|DURSEJ|9 +S9|6739|DURSEJ|9 +S9|6740|DURSEJ|9 +S9|6741|DURSEJ|9 +S9|6742|DURSEJ|9 +S9|6743|DURSEJ|9 +S9|6744|DURSEJ|9 +S9|6745|DURSEJ|9 +S9|6746|DURSEJ|9 +S9|6747|DURSEJ|9 +S9|6748|DURSEJ|9 +S9|6749|DURSEJ|9 +S9|6750|DURSEJ|9 +S9|6751|DURSEJ|9 +S9|6752|DURSEJ|9 +S9|6753|DURSEJ|9 +S9|6754|DURSEJ|9 +S9|6755|DURSEJ|9 +S9|6756|DURSEJ|9 +S9|6757|DURSEJ|9 +S9|6758|DURSEJ|9 +S9|6759|DURSEJ|9 +S9|6760|DURSEJ|9 +S9|6761|DURSEJ|9 +S9|6762|DURSEJ|9 +S9|6763|DURSEJ|9 +S9|6764|DURSEJ|9 +S9|6765|DURSEJ|9 +S9|6766|DURSEJ|9 +S9|6767|DURSEJ|9 +S9|6768|DURSEJ|9 +S9|6769|DURSEJ|9 +S9|6770|DURSEJ|9 +S9|6771|DURSEJ|9 +S9|6772|DURSEJ|9 +S9|6773|DURSEJ|9 +S9|6774|DURSEJ|9 +S9|6775|DURSEJ|9 +S9|6776|DURSEJ|9 +S9|6777|DURSEJ|9 +S9|6778|DURSEJ|9 +S9|6779|DURSEJ|9 +S9|6780|DURSEJ|9 +S9|6781|DURSEJ|9 +S9|6782|DURSEJ|9 +S9|6783|DURSEJ|9 +S9|6784|DURSEJ|9 +S9|6785|DURSEJ|9 +S9|6786|DURSEJ|9 +S9|6787|DURSEJ|9 +S9|6788|DURSEJ|9 +S9|6789|DURSEJ|9 +S9|6790|DURSEJ|9 +S9|6791|DURSEJ|9 +S9|6792|DURSEJ|9 +S9|6793|DURSEJ|9 +S9|6794|DURSEJ|9 +S9|6795|DURSEJ|9 +S9|6796|DURSEJ|9 +S9|6797|DURSEJ|9 +S9|6798|DURSEJ|9 +S9|6799|DURSEJ|9 +S9|6800|DURSEJ|9 +S9|6801|DURSEJ|9 +S9|6802|DURSEJ|9 +S9|6803|DURSEJ|9 +S9|6804|DURSEJ|9 +S9|6805|DURSEJ|9 +S9|6806|DURSEJ|9 +S9|6807|DURSEJ|9 +S9|6808|DURSEJ|9 +S9|6809|DURSEJ|9 +S9|6810|DURSEJ|9 +S9|6811|DURSEJ|9 +S9|6812|DURSEJ|9 +S9|6813|DURSEJ|9 +S9|6814|DURSEJ|9 +S9|6815|DURSEJ|9 +S9|6816|DURSEJ|9 +S9|6817|DURSEJ|9 +S9|6818|DURSEJ|9 +S9|6819|DURSEJ|9 +S9|6820|DURSEJ|9 +S9|6821|DURSEJ|9 +S9|6822|DURSEJ|9 +S9|6823|DURSEJ|9 +S9|6824|DURSEJ|9 +S9|6825|DURSEJ|9 +S9|6826|DURSEJ|9 +S9|6827|DURSEJ|9 +S9|6828|DURSEJ|9 +S9|6829|DURSEJ|9 +S9|6830|DURSEJ|9 +S9|6831|DURSEJ|9 +S9|6832|DURSEJ|9 +S9|6833|DURSEJ|9 +S9|6834|DURSEJ|9 +S9|6835|DURSEJ|9 +S9|6836|DURSEJ|9 +S9|6837|DURSEJ|9 +S9|6838|DURSEJ|9 +S9|6839|DURSEJ|9 +S9|6840|DURSEJ|9 +S9|6841|DURSEJ|9 +S9|6842|DURSEJ|9 +S9|6843|DURSEJ|9 +S9|6844|DURSEJ|9 +S9|6845|DURSEJ|9 +S9|6846|DURSEJ|9 +S9|6847|DURSEJ|9 +S9|6848|DURSEJ|9 +S9|6849|DURSEJ|9 +S9|6850|DURSEJ|9 +S9|6851|DURSEJ|9 +S9|6852|DURSEJ|9 +S9|6853|DURSEJ|9 +S9|6854|DURSEJ|9 +S9|6855|DURSEJ|9 +S9|6856|DURSEJ|9 +S9|6857|DURSEJ|9 +S9|6858|DURSEJ|9 +S9|6859|DURSEJ|9 +S9|6860|DURSEJ|9 +S9|6861|DURSEJ|9 +S9|6862|DURSEJ|9 +S9|6863|DURSEJ|9 +S9|6864|DURSEJ|9 +S9|6865|DURSEJ|9 +S9|6866|DURSEJ|9 +S9|6867|DURSEJ|9 +S9|6868|DURSEJ|9 +S9|6869|DURSEJ|9 +S9|6870|DURSEJ|9 +S9|6871|DURSEJ|9 +S9|6872|DURSEJ|9 +S9|6873|DURSEJ|9 +S9|6874|DURSEJ|9 +S9|6875|DURSEJ|9 +S9|6876|DURSEJ|9 +S9|6877|DURSEJ|9 +S9|6878|DURSEJ|9 +S9|6879|DURSEJ|9 +S9|6880|DURSEJ|9 +S9|6881|DURSEJ|9 +S9|6882|DURSEJ|9 +S9|6883|DURSEJ|9 +S9|6884|DURSEJ|9 +S9|6885|DURSEJ|9 +S9|6886|DURSEJ|9 +S9|6887|DURSEJ|9 +S9|6888|DURSEJ|9 +S9|6889|DURSEJ|9 +S9|6890|DURSEJ|9 +S9|6891|DURSEJ|9 +S9|6892|DURSEJ|9 +S9|6893|DURSEJ|9 +S9|6894|DURSEJ|9 +S9|6895|DURSEJ|9 +S9|6896|DURSEJ|9 +S9|6897|DURSEJ|9 +S9|6898|DURSEJ|9 +S9|6899|DURSEJ|9 +S9|6900|DURSEJ|9 +S9|6901|DURSEJ|9 +S9|6902|DURSEJ|9 +S9|6903|DURSEJ|9 +S9|6904|DURSEJ|9 +S9|6905|DURSEJ|9 +S9|6906|DURSEJ|9 +S9|6907|DURSEJ|9 +S9|6908|DURSEJ|9 +S9|6909|DURSEJ|9 +S9|6910|DURSEJ|9 +S9|6911|DURSEJ|9 +S9|6912|DURSEJ|9 +S9|6913|DURSEJ|9 +S9|6914|DURSEJ|9 +S9|6915|DURSEJ|9 +S9|6916|DURSEJ|9 +S9|6917|DURSEJ|9 +S9|6918|DURSEJ|9 +S9|6919|DURSEJ|9 +S9|6920|DURSEJ|9 +S9|6921|DURSEJ|9 +S9|6922|DURSEJ|9 +S9|6923|DURSEJ|9 +S9|6924|DURSEJ|9 +S9|6925|DURSEJ|9 +S9|6926|DURSEJ|9 +S9|6927|DURSEJ|9 +S9|6928|DURSEJ|9 +S9|6929|DURSEJ|9 +S9|6930|DURSEJ|9 +S9|6931|DURSEJ|9 +S9|6932|DURSEJ|9 +S9|6933|DURSEJ|9 +S9|6934|DURSEJ|9 +S9|6935|DURSEJ|9 +S9|6936|DURSEJ|9 +S9|6937|DURSEJ|9 +S9|6938|DURSEJ|9 +S9|6939|DURSEJ|9 +S9|6940|DURSEJ|9 +S9|6941|DURSEJ|9 +S9|6942|DURSEJ|9 +S9|6943|DURSEJ|9 +S9|6944|DURSEJ|9 +S9|6945|DURSEJ|9 +S9|6946|DURSEJ|9 +S9|6947|DURSEJ|9 +S9|6948|DURSEJ|9 +S9|6949|DURSEJ|9 +S9|6950|DURSEJ|9 +S9|6951|DURSEJ|9 +S9|6952|DURSEJ|9 +S9|6953|DURSEJ|9 +S9|6954|DURSEJ|9 +S9|6955|DURSEJ|9 +S9|6956|DURSEJ|9 +S9|6957|DURSEJ|9 +S9|6958|DURSEJ|9 +S9|6959|DURSEJ|9 +S9|6960|DURSEJ|9 +S9|6961|DURSEJ|9 +S9|6962|DURSEJ|9 +S9|6963|DURSEJ|9 +S9|6964|DURSEJ|9 +S9|6965|DURSEJ|9 +S9|6966|DURSEJ|9 +S9|6967|DURSEJ|9 +S9|6968|DURSEJ|9 +S9|6969|DURSEJ|9 +S9|6970|DURSEJ|9 +S9|6971|DURSEJ|9 +S9|6972|DURSEJ|9 +S9|6973|DURSEJ|9 +S9|6974|DURSEJ|9 +S9|6975|DURSEJ|9 +S9|6976|DURSEJ|9 +S9|6977|DURSEJ|9 +S9|6978|DURSEJ|9 +S9|6979|DURSEJ|9 +S9|6980|DURSEJ|9 +S9|6981|DURSEJ|9 +S9|6982|DURSEJ|9 +S9|6983|DURSEJ|9 +S9|6984|DURSEJ|9 +S9|6985|DURSEJ|9 +S9|6986|DURSEJ|9 +S9|6987|DURSEJ|9 +S9|6988|DURSEJ|9 +S9|6989|DURSEJ|9 +S9|6990|DURSEJ|9 +S9|6991|DURSEJ|9 +S9|6992|DURSEJ|9 +S9|6993|DURSEJ|9 +S9|6994|DURSEJ|9 +S9|6995|DURSEJ|9 +S9|6996|DURSEJ|9 +S9|6997|DURSEJ|9 +S9|6998|DURSEJ|9 +S9|6999|DURSEJ|9 +S9|7000|DURSEJ|9 +S9|7001|DURSEJ|9 +S9|7002|DURSEJ|9 +S9|7003|DURSEJ|9 +S9|7004|DURSEJ|9 +S9|7005|DURSEJ|9 +S9|7006|DURSEJ|9 +S9|7007|DURSEJ|9 +S9|7008|DURSEJ|9 +S9|7009|DURSEJ|9 +S9|7010|DURSEJ|9 +S9|7011|DURSEJ|9 +S9|7012|DURSEJ|9 +S9|7013|DURSEJ|9 +S9|7014|DURSEJ|9 +S9|7015|DURSEJ|9 +S9|7016|DURSEJ|9 +S9|7017|DURSEJ|9 +S9|7018|DURSEJ|9 +S9|7019|DURSEJ|9 +S9|7020|DURSEJ|9 +S9|7021|DURSEJ|9 +S9|7022|DURSEJ|9 +S9|7023|DURSEJ|9 +S9|7024|DURSEJ|9 +S9|7025|DURSEJ|9 +S9|7026|DURSEJ|9 +S9|7027|DURSEJ|9 +S9|7028|DURSEJ|9 +S9|7029|DURSEJ|9 +S9|7030|DURSEJ|9 +S9|7031|DURSEJ|9 +S9|7032|DURSEJ|9 +S9|7033|DURSEJ|9 +S9|7034|DURSEJ|9 +S9|7035|DURSEJ|9 +S9|7036|DURSEJ|9 +S9|7037|DURSEJ|9 +S9|7038|DURSEJ|9 +S9|7039|DURSEJ|9 +S9|7040|DURSEJ|9 +S9|7041|DURSEJ|9 +S9|7042|DURSEJ|9 +S9|7043|DURSEJ|9 +S9|7044|DURSEJ|9 +S9|7045|DURSEJ|9 +S9|7046|DURSEJ|9 +S9|7047|DURSEJ|9 +S9|7048|DURSEJ|9 +S9|7049|DURSEJ|9 +S9|7050|DURSEJ|9 +S9|7051|DURSEJ|9 +S9|7052|DURSEJ|9 +S9|7053|DURSEJ|9 +S9|7054|DURSEJ|9 +S9|7055|DURSEJ|9 +S9|7056|DURSEJ|9 +S9|7057|DURSEJ|9 +S9|7058|DURSEJ|9 +S9|7059|DURSEJ|9 +S9|7060|DURSEJ|9 +S9|7061|DURSEJ|9 +S9|7062|DURSEJ|9 +S9|7063|DURSEJ|9 +S9|7064|DURSEJ|9 +S9|7065|DURSEJ|9 +S9|7066|DURSEJ|9 +S9|7067|DURSEJ|9 +S9|7068|DURSEJ|9 +S9|7069|DURSEJ|9 +S9|7070|DURSEJ|9 +S9|7071|DURSEJ|9 +S9|7072|DURSEJ|9 +S9|7073|DURSEJ|9 +S9|7074|DURSEJ|9 +S9|7075|DURSEJ|9 +S9|7076|DURSEJ|9 +S9|7077|DURSEJ|9 +S9|7078|DURSEJ|9 +S9|7079|DURSEJ|9 +S9|7080|DURSEJ|9 +S9|7081|DURSEJ|9 +S9|7082|DURSEJ|9 +S9|7083|DURSEJ|9 +S9|7084|DURSEJ|9 +S9|7085|DURSEJ|9 +S9|7086|DURSEJ|9 +S9|7087|DURSEJ|9 +S9|7088|DURSEJ|9 +S9|7089|DURSEJ|9 +S9|7090|DURSEJ|9 +S9|7091|DURSEJ|9 +S9|7092|DURSEJ|9 +S9|7093|DURSEJ|9 +S9|7094|DURSEJ|9 +S9|7095|DURSEJ|9 +S9|7096|DURSEJ|9 +S9|7097|DURSEJ|9 +S9|7098|DURSEJ|9 +S9|7099|DURSEJ|9 +S9|7100|DURSEJ|9 +S9|7101|DURSEJ|9 +S9|7102|DURSEJ|9 +S9|7103|DURSEJ|9 +S9|7104|DURSEJ|9 +S9|7105|DURSEJ|9 +S9|7106|DURSEJ|9 +S9|7107|DURSEJ|9 +S9|7108|DURSEJ|9 +S9|7109|DURSEJ|9 +S9|7110|DURSEJ|9 +S9|7111|DURSEJ|9 +S9|7112|DURSEJ|9 +S9|7113|DURSEJ|9 +S9|7114|DURSEJ|9 +S9|7115|DURSEJ|9 +S9|7116|DURSEJ|9 +S9|7117|DURSEJ|9 +S9|7118|DURSEJ|9 +S9|7119|DURSEJ|9 +S9|7120|DURSEJ|9 +S9|7121|DURSEJ|9 +S9|7122|DURSEJ|9 +S9|7123|DURSEJ|9 +S9|7124|DURSEJ|9 +S9|7125|DURSEJ|9 +S9|7126|DURSEJ|9 +S9|7127|DURSEJ|9 +S9|7128|DURSEJ|9 +S9|7129|DURSEJ|9 +S9|7130|DURSEJ|9 +S9|7131|DURSEJ|9 +S9|7132|DURSEJ|9 +S9|7133|DURSEJ|9 +S9|7134|DURSEJ|9 +S9|7135|DURSEJ|9 +S9|7136|DURSEJ|9 +S9|7137|DURSEJ|9 +S9|7138|DURSEJ|9 +S9|7139|DURSEJ|9 +S9|7140|DURSEJ|9 +S9|7141|DURSEJ|9 +S9|7142|DURSEJ|9 +S9|7143|DURSEJ|9 +S9|7144|DURSEJ|9 +S9|7145|DURSEJ|9 +S9|7146|DURSEJ|9 +S9|7147|DURSEJ|9 +S9|7148|DURSEJ|9 +S9|7149|DURSEJ|9 +S9|7150|DURSEJ|9 +S9|7151|DURSEJ|9 +S9|7152|DURSEJ|9 +S9|7153|DURSEJ|9 +S9|7154|DURSEJ|9 +S9|7155|DURSEJ|9 +S9|7156|DURSEJ|9 +S9|7157|DURSEJ|9 +S9|7158|DURSEJ|9 +S9|7159|DURSEJ|9 +S9|7160|DURSEJ|9 +S9|7161|DURSEJ|9 +S9|7162|DURSEJ|9 +S9|7163|DURSEJ|9 +S9|7164|DURSEJ|9 +S9|7165|DURSEJ|9 +S9|7166|DURSEJ|9 +S9|7167|DURSEJ|9 +S9|7168|DURSEJ|9 +S9|7169|DURSEJ|9 +S9|7170|DURSEJ|9 +S9|7171|DURSEJ|9 +S9|7172|DURSEJ|9 +S9|7173|DURSEJ|9 +S9|7174|DURSEJ|9 +S9|7175|DURSEJ|9 +S9|7176|DURSEJ|9 +S9|7177|DURSEJ|9 +S9|7178|DURSEJ|9 +S9|7179|DURSEJ|9 +S9|7180|DURSEJ|9 +S9|7181|DURSEJ|9 +S9|7182|DURSEJ|9 +S9|7183|DURSEJ|9 +S9|7184|DURSEJ|9 +S9|7185|DURSEJ|9 +S9|7186|DURSEJ|9 +S9|7187|DURSEJ|9 +S9|7188|DURSEJ|9 +S9|7189|DURSEJ|9 +S9|7190|DURSEJ|9 +S9|7191|DURSEJ|9 +S9|7192|DURSEJ|9 +S9|7193|DURSEJ|9 +S9|7194|DURSEJ|9 +S9|7195|DURSEJ|9 +S9|7196|DURSEJ|9 +S9|7197|DURSEJ|9 +S9|7198|DURSEJ|9 +S9|7199|DURSEJ|9 +S9|7200|DURSEJ|9 +S9|7201|DURSEJ|9 +S9|7202|DURSEJ|9 +S9|7203|DURSEJ|9 +S9|7204|DURSEJ|9 +S9|7205|DURSEJ|9 +S9|7206|DURSEJ|9 +S9|7207|DURSEJ|9 +S9|7208|DURSEJ|9 +S9|7209|DURSEJ|9 +S9|7210|DURSEJ|9 +S9|7211|DURSEJ|9 +S9|7212|DURSEJ|9 +S9|7213|DURSEJ|9 +S9|7214|DURSEJ|9 +S9|7215|DURSEJ|9 +S9|7216|DURSEJ|9 +S9|7217|DURSEJ|9 +S9|7218|DURSEJ|9 +S9|7219|DURSEJ|9 +S9|7220|DURSEJ|9 +S9|7221|DURSEJ|9 +S9|7222|DURSEJ|9 +S9|7223|DURSEJ|9 +S9|7224|DURSEJ|9 +S9|7225|DURSEJ|9 +S9|7226|DURSEJ|9 +S9|7227|DURSEJ|9 +S9|7228|DURSEJ|9 +S9|7229|DURSEJ|9 +S9|7230|DURSEJ|9 +S9|7231|DURSEJ|9 +S9|7232|DURSEJ|9 +S9|7233|DURSEJ|9 +S9|7234|DURSEJ|9 +S9|7235|DURSEJ|9 +S9|7236|DURSEJ|9 +S9|7237|DURSEJ|9 +S9|7238|DURSEJ|9 +S9|7239|DURSEJ|9 +S9|7240|DURSEJ|9 +S9|7241|DURSEJ|9 +S9|7242|DURSEJ|9 +S9|7243|DURSEJ|9 +S9|7244|DURSEJ|9 +S9|7245|DURSEJ|9 +S9|7246|DURSEJ|9 +S9|7247|DURSEJ|9 +S9|7248|DURSEJ|9 +S9|7249|DURSEJ|9 +S9|7250|DURSEJ|9 +S9|7251|DURSEJ|9 +S9|7252|DURSEJ|9 +S9|7253|DURSEJ|9 +S9|7254|DURSEJ|9 +S9|7255|DURSEJ|9 +S9|7256|DURSEJ|9 +S9|7257|DURSEJ|9 +S9|7258|DURSEJ|9 +S9|7259|DURSEJ|9 +S9|7260|DURSEJ|9 +S9|7261|DURSEJ|9 +S9|7262|DURSEJ|9 +S9|7263|DURSEJ|9 +S9|7264|DURSEJ|9 +S9|7265|DURSEJ|9 +S9|7266|DURSEJ|9 +S9|7267|DURSEJ|9 +S9|7268|DURSEJ|9 +S9|7269|DURSEJ|9 +S9|7270|DURSEJ|9 +S9|7271|DURSEJ|9 +S9|7272|DURSEJ|9 +S9|7273|DURSEJ|9 +S9|7274|DURSEJ|9 +S9|7275|DURSEJ|9 +S9|7276|DURSEJ|9 +S9|7277|DURSEJ|9 +S9|7278|DURSEJ|9 +S9|7279|DURSEJ|9 +S9|7280|DURSEJ|9 +S9|7281|DURSEJ|9 +S9|7282|DURSEJ|9 +S9|7283|DURSEJ|9 +S9|7284|DURSEJ|9 +S9|7285|DURSEJ|9 +S9|7286|DURSEJ|9 +S9|7287|DURSEJ|9 +S9|7288|DURSEJ|9 +S9|7289|DURSEJ|9 +S9|7290|DURSEJ|9 +S9|7291|DURSEJ|9 +S9|7292|DURSEJ|9 +S9|7293|DURSEJ|9 +S9|7294|DURSEJ|9 +S9|7295|DURSEJ|9 +S9|7296|DURSEJ|9 +S9|7297|DURSEJ|9 +S9|7298|DURSEJ|9 +S9|7299|DURSEJ|9 +S9|7300|DURSEJ|9 +S9|7301|DURSEJ|9 +S9|7302|DURSEJ|9 +S9|7303|DURSEJ|9 +S9|7304|DURSEJ|9 +S9|7305|DURSEJ|9 +S9|7306|DURSEJ|9 +S9|7307|DURSEJ|9 +S9|7308|DURSEJ|9 +S9|7309|DURSEJ|9 +S9|7310|DURSEJ|9 +S9|7311|DURSEJ|9 +S9|7312|DURSEJ|9 +S9|7313|DURSEJ|9 +S9|7314|DURSEJ|9 +S9|7315|DURSEJ|9 +S9|7316|DURSEJ|9 +S9|7317|DURSEJ|9 +S9|7318|DURSEJ|9 +S9|7319|DURSEJ|9 +S9|7320|DURSEJ|9 +S9|7321|DURSEJ|9 +S9|7322|DURSEJ|9 +S9|7323|DURSEJ|9 +S9|7324|DURSEJ|9 +S9|7325|DURSEJ|9 +S9|7326|DURSEJ|9 +S9|7327|DURSEJ|9 +S9|7328|DURSEJ|9 +S9|7329|DURSEJ|9 +S9|7330|DURSEJ|9 +S9|7331|DURSEJ|9 +S9|7332|DURSEJ|9 +S9|7333|DURSEJ|9 +S9|7334|DURSEJ|9 +S9|7335|DURSEJ|9 +S9|7336|DURSEJ|9 +S9|7337|DURSEJ|9 +S9|7338|DURSEJ|9 +S9|7339|DURSEJ|9 +S9|7340|DURSEJ|9 +S9|7341|DURSEJ|9 +S9|7342|DURSEJ|9 +S9|7343|DURSEJ|9 +S9|7344|DURSEJ|9 +S9|7345|DURSEJ|9 +S9|7346|DURSEJ|9 +S9|7347|DURSEJ|9 +S9|7348|DURSEJ|9 +S9|7349|DURSEJ|9 +S9|7350|DURSEJ|9 +S9|7351|DURSEJ|9 +S9|7352|DURSEJ|9 +S9|7353|DURSEJ|9 +S9|7354|DURSEJ|9 +S9|7355|DURSEJ|9 +S9|7356|DURSEJ|9 +S9|7357|DURSEJ|9 +S9|7358|DURSEJ|9 +S9|7359|DURSEJ|9 +S9|7360|DURSEJ|9 +S9|7361|DURSEJ|9 +S9|7362|DURSEJ|9 +S9|7363|DURSEJ|9 +S9|7364|DURSEJ|9 +S9|7365|DURSEJ|9 +S9|7366|DURSEJ|9 +S9|7367|DURSEJ|9 +S9|7368|DURSEJ|9 +S9|7369|DURSEJ|9 +S9|7370|DURSEJ|9 +S9|7371|DURSEJ|9 +S9|7372|DURSEJ|9 +S9|7373|DURSEJ|9 +S9|7374|DURSEJ|9 +S9|7375|DURSEJ|9 +S9|7376|DURSEJ|9 +S9|7377|DURSEJ|9 +S9|7378|DURSEJ|9 +S9|7379|DURSEJ|9 +S9|7380|DURSEJ|9 +S9|7381|DURSEJ|9 +S9|7382|DURSEJ|9 +S9|7383|DURSEJ|9 +S9|7384|DURSEJ|9 +S9|7385|DURSEJ|9 +S9|7386|DURSEJ|9 +S9|7387|DURSEJ|9 +S9|7388|DURSEJ|9 +S9|7389|DURSEJ|9 +S9|7390|DURSEJ|9 +S9|7391|DURSEJ|9 +S9|7392|DURSEJ|9 +S9|7393|DURSEJ|9 +S9|7394|DURSEJ|9 +S9|7395|DURSEJ|9 +S9|7396|DURSEJ|9 +S9|7397|DURSEJ|9 +S9|7398|DURSEJ|9 +S9|7399|DURSEJ|9 +S9|7400|DURSEJ|9 +S9|7401|DURSEJ|9 +S9|7402|DURSEJ|9 +S9|7403|DURSEJ|9 +S9|7404|DURSEJ|9 +S9|7405|DURSEJ|9 +S9|7406|DURSEJ|9 +S9|7407|DURSEJ|9 +S9|7408|DURSEJ|9 +S9|7409|DURSEJ|9 +S9|7410|DURSEJ|9 +S9|7411|DURSEJ|9 +S9|7412|DURSEJ|9 +S9|7413|DURSEJ|9 +S9|7414|DURSEJ|9 +S9|7415|DURSEJ|9 +S9|7416|DURSEJ|9 +S9|7417|DURSEJ|9 +S9|7418|DURSEJ|9 +S9|7419|DURSEJ|9 +S9|7420|DURSEJ|9 +S9|7421|DURSEJ|9 +S9|7422|DURSEJ|9 +S9|7423|DURSEJ|9 +S9|7424|DURSEJ|9 +S9|7425|DURSEJ|9 +S9|7426|DURSEJ|9 +S9|7427|DURSEJ|9 +S9|7428|DURSEJ|9 +S9|7429|DURSEJ|9 +S9|7430|DURSEJ|9 +S9|7431|DURSEJ|9 +S9|7432|DURSEJ|9 +S9|7433|DURSEJ|9 +S9|7434|DURSEJ|9 +S9|7435|DURSEJ|9 +S9|7436|DURSEJ|9 +S9|7437|DURSEJ|9 +S9|7438|DURSEJ|9 +S9|7439|DURSEJ|9 +S9|7440|DURSEJ|9 +S9|7441|DURSEJ|9 +S9|7442|DURSEJ|9 +S9|7443|DURSEJ|9 +S9|7444|DURSEJ|9 +S9|7445|DURSEJ|9 +S9|7446|DURSEJ|9 +S9|7447|DURSEJ|9 +S9|7448|DURSEJ|9 +S9|7449|DURSEJ|9 +S9|7450|DURSEJ|9 +S9|7451|DURSEJ|9 +S9|7452|DURSEJ|9 +S9|7453|DURSEJ|9 +S9|7454|DURSEJ|9 +S9|7455|DURSEJ|9 +S9|7456|DURSEJ|9 +S9|7457|DURSEJ|9 +S9|7458|DURSEJ|9 +S9|7459|DURSEJ|9 +S9|7460|DURSEJ|9 +S9|7461|DURSEJ|9 +S9|7462|DURSEJ|9 +S9|7463|DURSEJ|9 +S9|7464|DURSEJ|9 +S9|7465|DURSEJ|9 +S9|7466|DURSEJ|9 +S9|7467|DURSEJ|9 +S9|7468|DURSEJ|9 +S9|7469|DURSEJ|9 +S9|7470|DURSEJ|9 +S9|7471|DURSEJ|9 +S9|7472|DURSEJ|9 +S9|7473|DURSEJ|9 +S9|7474|DURSEJ|9 +S9|7475|DURSEJ|9 +S9|7476|DURSEJ|9 +S9|7477|DURSEJ|9 +S9|7478|DURSEJ|9 +S9|7479|DURSEJ|9 +S9|7480|DURSEJ|9 +S9|7481|DURSEJ|9 +S9|7482|DURSEJ|9 +S9|7483|DURSEJ|9 +S9|7484|DURSEJ|9 +S9|7485|DURSEJ|9 +S9|7486|DURSEJ|9 +S9|7487|DURSEJ|9 +S9|7488|DURSEJ|9 +S9|7489|DURSEJ|9 +S9|7490|DURSEJ|9 +S9|7491|DURSEJ|9 +S9|7492|DURSEJ|9 +S9|7493|DURSEJ|9 +S9|7494|DURSEJ|9 +S9|7495|DURSEJ|9 +S9|7496|DURSEJ|9 +S9|7497|DURSEJ|9 +S9|7498|DURSEJ|9 +S9|7499|DURSEJ|9 +S9|7500|DURSEJ|9 +S9|7501|DURSEJ|9 +S9|7502|DURSEJ|9 +S9|7503|DURSEJ|9 +S9|7504|DURSEJ|9 +S9|7505|DURSEJ|9 +S9|7506|DURSEJ|9 +S9|7507|DURSEJ|9 +S9|7508|DURSEJ|9 +S9|7509|DURSEJ|9 +S9|7510|DURSEJ|9 +S9|7511|DURSEJ|9 +S9|7512|DURSEJ|9 +S9|7513|DURSEJ|9 +S9|7514|DURSEJ|9 +S9|7515|DURSEJ|9 +S9|7516|DURSEJ|9 +S9|7517|DURSEJ|9 +S9|7518|DURSEJ|9 +S9|7519|DURSEJ|9 +S9|7520|DURSEJ|9 +S9|7521|DURSEJ|9 +S9|7522|DURSEJ|9 +S9|7523|DURSEJ|9 +S9|7524|DURSEJ|9 +S9|7525|DURSEJ|9 +S9|7526|DURSEJ|9 +S9|7527|DURSEJ|9 +S9|7528|DURSEJ|9 +S9|7529|DURSEJ|9 +S9|7530|DURSEJ|9 +S9|7531|DURSEJ|9 +S9|7532|DURSEJ|9 +S9|7533|DURSEJ|9 +S9|7534|DURSEJ|9 +S9|7535|DURSEJ|9 +S9|7536|DURSEJ|9 +S9|7537|DURSEJ|9 +S9|7538|DURSEJ|9 +S9|7539|DURSEJ|9 +S9|7540|DURSEJ|9 +S9|7541|DURSEJ|9 +S9|7542|DURSEJ|9 +S9|7543|DURSEJ|9 +S9|7544|DURSEJ|9 +S9|7545|DURSEJ|9 +S9|7546|DURSEJ|9 +S9|7547|DURSEJ|9 +S9|7548|DURSEJ|9 +S9|7549|DURSEJ|9 +S9|7550|DURSEJ|9 +S9|7551|DURSEJ|9 +S9|7552|DURSEJ|9 +S9|7553|DURSEJ|9 +S9|7554|DURSEJ|9 +S9|7555|DURSEJ|9 +S9|7556|DURSEJ|9 +S9|7557|DURSEJ|9 +S9|7558|DURSEJ|9 +S9|7559|DURSEJ|9 +S9|7560|DURSEJ|9 +S9|7561|DURSEJ|9 +S9|7562|DURSEJ|9 +S9|7563|DURSEJ|9 +S9|7564|DURSEJ|9 +S9|7565|DURSEJ|9 +S9|7566|DURSEJ|9 +S9|7567|DURSEJ|9 +S9|7568|DURSEJ|9 +S9|7569|DURSEJ|9 +S9|7570|DURSEJ|9 +S9|7571|DURSEJ|9 +S9|7572|DURSEJ|9 +S9|7573|DURSEJ|9 +S9|7574|DURSEJ|9 +S9|7575|DURSEJ|9 +S9|7576|DURSEJ|9 +S9|7577|DURSEJ|9 +S9|7578|DURSEJ|9 +S9|7579|DURSEJ|9 +S9|7580|DURSEJ|9 +S9|7581|DURSEJ|9 +S9|7582|DURSEJ|9 +S9|7583|DURSEJ|9 +S9|7584|DURSEJ|9 +S9|7585|DURSEJ|9 +S9|7586|DURSEJ|9 +S9|7587|DURSEJ|9 +S9|7588|DURSEJ|9 +S9|7589|DURSEJ|9 +S9|7590|DURSEJ|9 +S9|7591|DURSEJ|9 +S9|7592|DURSEJ|9 +S9|7593|DURSEJ|9 +S9|7594|DURSEJ|9 +S9|7595|DURSEJ|9 +S9|7596|DURSEJ|9 +S9|7597|DURSEJ|9 +S9|7598|DURSEJ|9 +S9|7599|DURSEJ|9 +S9|7600|DURSEJ|9 +S9|7601|DURSEJ|9 +S9|7602|DURSEJ|9 +S9|7603|DURSEJ|9 +S9|7604|DURSEJ|9 +S9|7605|DURSEJ|9 +S9|7606|DURSEJ|9 +S9|7607|DURSEJ|9 +S9|7608|DURSEJ|9 +S9|7609|DURSEJ|9 +S9|7610|DURSEJ|9 +S9|7611|DURSEJ|9 +S9|7612|DURSEJ|9 +S9|7613|DURSEJ|9 +S9|7614|DURSEJ|9 +S9|7615|DURSEJ|9 +S9|7616|DURSEJ|9 +S9|7617|DURSEJ|9 +S9|7618|DURSEJ|9 +S9|7619|DURSEJ|9 +S9|7620|DURSEJ|9 +S9|7621|DURSEJ|9 +S9|7622|DURSEJ|9 +S9|7623|DURSEJ|9 +S9|7624|DURSEJ|9 +S9|7625|DURSEJ|9 +S9|7626|DURSEJ|9 +S9|7627|DURSEJ|9 +S9|7628|DURSEJ|9 +S9|7629|DURSEJ|9 +S9|7630|DURSEJ|9 +S9|7631|DURSEJ|9 +S9|7632|DURSEJ|9 +S9|7633|DURSEJ|9 +S9|7634|DURSEJ|9 +S9|7635|DURSEJ|9 +S9|7636|DURSEJ|9 +S9|7637|DURSEJ|9 +S9|7638|DURSEJ|9 +S9|7639|DURSEJ|9 +S9|7640|DURSEJ|9 +S9|7641|DURSEJ|9 +S9|7642|DURSEJ|9 +S9|7643|DURSEJ|9 +S9|7644|DURSEJ|9 +S9|7645|DURSEJ|9 +S9|7646|DURSEJ|9 +S9|7647|DURSEJ|9 +S9|7648|DURSEJ|9 +S9|7649|DURSEJ|9 +S9|7650|DURSEJ|9 +S9|7651|DURSEJ|9 +S9|7652|DURSEJ|9 +S9|7653|DURSEJ|9 +S9|7654|DURSEJ|9 +S9|7655|DURSEJ|9 +S9|7656|DURSEJ|9 +S9|7657|DURSEJ|9 +S9|7658|DURSEJ|9 +S9|7659|DURSEJ|9 +S9|7660|DURSEJ|9 +S9|7661|DURSEJ|9 +S9|7662|DURSEJ|9 +S9|7663|DURSEJ|9 +S9|7664|DURSEJ|9 +S9|7665|DURSEJ|9 +S9|7666|DURSEJ|9 +S9|7667|DURSEJ|9 +S9|7668|DURSEJ|9 +S9|7669|DURSEJ|9 +S9|7670|DURSEJ|9 +S9|7671|DURSEJ|9 +S9|7672|DURSEJ|9 +S9|7673|DURSEJ|9 +S9|7674|DURSEJ|9 +S9|7675|DURSEJ|9 +S9|7676|DURSEJ|9 +S9|7677|DURSEJ|9 +S9|7678|DURSEJ|9 +S9|7679|DURSEJ|9 +S9|7680|DURSEJ|9 +S9|7681|DURSEJ|9 +S9|7682|DURSEJ|9 +S9|7683|DURSEJ|9 +S9|7684|DURSEJ|9 +S9|7685|DURSEJ|9 +S9|7686|DURSEJ|9 +S9|7687|DURSEJ|9 +S9|7688|DURSEJ|9 +S9|7689|DURSEJ|9 +S9|7690|DURSEJ|9 +S9|7691|DURSEJ|9 +S9|7692|DURSEJ|9 +S9|7693|DURSEJ|9 +S9|7694|DURSEJ|9 +S9|7695|DURSEJ|9 +S9|7696|DURSEJ|9 +S9|7697|DURSEJ|9 +S9|7698|DURSEJ|9 +S9|7699|DURSEJ|9 +S9|7700|DURSEJ|9 +S9|7701|DURSEJ|9 +S9|7702|DURSEJ|9 +S9|7703|DURSEJ|9 +S9|7704|DURSEJ|9 +S9|7705|DURSEJ|9 +S9|7706|DURSEJ|9 +S9|7707|DURSEJ|9 +S9|7708|DURSEJ|9 +S9|7709|DURSEJ|9 +S9|7710|DURSEJ|9 +S9|7711|DURSEJ|9 +S9|7712|DURSEJ|9 +S9|7713|DURSEJ|9 +S9|7714|DURSEJ|9 +S9|7715|DURSEJ|9 +S9|7716|DURSEJ|9 +S9|7717|DURSEJ|9 +S9|7718|DURSEJ|9 +S9|7719|DURSEJ|9 +S9|7720|DURSEJ|9 +S9|7721|DURSEJ|9 +S9|7722|DURSEJ|9 +S9|7723|DURSEJ|9 +S9|7724|DURSEJ|9 +S9|7725|DURSEJ|9 +S9|7726|DURSEJ|9 +S9|7727|DURSEJ|9 +S9|7728|DURSEJ|9 +S9|7729|DURSEJ|9 +S9|7730|DURSEJ|9 +S9|7731|DURSEJ|9 +S9|7732|DURSEJ|9 +S9|7733|DURSEJ|9 +S9|7734|DURSEJ|9 +S9|7735|DURSEJ|9 +S9|7736|DURSEJ|9 +S9|7737|DURSEJ|9 +S9|7738|DURSEJ|9 +S9|7739|DURSEJ|9 +S9|7740|DURSEJ|9 +S9|7741|DURSEJ|9 +S9|7742|DURSEJ|9 +S9|7743|DURSEJ|9 +S9|7744|DURSEJ|9 +S9|7745|DURSEJ|9 +S9|7746|DURSEJ|9 +S9|7747|DURSEJ|9 +S9|7748|DURSEJ|9 +S9|7749|DURSEJ|9 +S9|7750|DURSEJ|9 +S9|7751|DURSEJ|9 +S9|7752|DURSEJ|9 +S9|7753|DURSEJ|9 +S9|7754|DURSEJ|9 +S9|7755|DURSEJ|9 +S9|7756|DURSEJ|9 +S9|7757|DURSEJ|9 +S9|7758|DURSEJ|9 +S9|7759|DURSEJ|9 +S9|7760|DURSEJ|9 +S9|7761|DURSEJ|9 +S9|7762|DURSEJ|9 +S9|7763|DURSEJ|9 +S9|7764|DURSEJ|9 +S9|7765|DURSEJ|9 +S9|7766|DURSEJ|9 +S9|7767|DURSEJ|9 +S9|7768|DURSEJ|9 +S9|7769|DURSEJ|9 +S9|7770|DURSEJ|9 +S9|7771|DURSEJ|9 +S9|7772|DURSEJ|9 +S9|7773|DURSEJ|9 +S9|7774|DURSEJ|9 +S9|7775|DURSEJ|9 +S9|7776|DURSEJ|9 +S9|7777|DURSEJ|9 +S9|7778|DURSEJ|9 +S9|7779|DURSEJ|9 +S9|7780|DURSEJ|9 +S9|7781|DURSEJ|9 +S9|7782|DURSEJ|9 +S9|7783|DURSEJ|9 +S9|7784|DURSEJ|9 +S9|7785|DURSEJ|9 +S9|7786|DURSEJ|9 +S9|7787|DURSEJ|9 +S9|7788|DURSEJ|9 +S9|7789|DURSEJ|9 +S9|7790|DURSEJ|9 +S9|7791|DURSEJ|9 +S9|7792|DURSEJ|9 +S9|7793|DURSEJ|9 +S9|7794|DURSEJ|9 +S9|7795|DURSEJ|9 +S9|7796|DURSEJ|9 +S9|7797|DURSEJ|9 +S9|7798|DURSEJ|9 +S9|7799|DURSEJ|9 +S9|7800|DURSEJ|9 +S9|7801|DURSEJ|9 +S9|7802|DURSEJ|9 +S9|7803|DURSEJ|9 +S9|7804|DURSEJ|9 +S9|7805|DURSEJ|9 +S9|7806|DURSEJ|9 +S9|7807|DURSEJ|9 +S9|7808|DURSEJ|9 +S9|7809|DURSEJ|9 +S9|7810|DURSEJ|9 +S9|7811|DURSEJ|9 +S9|7812|DURSEJ|9 +S9|7813|DURSEJ|9 +S9|7814|DURSEJ|9 +S9|7815|DURSEJ|9 +S9|7816|DURSEJ|9 +S9|7817|DURSEJ|9 +S9|7818|DURSEJ|9 +S9|7819|DURSEJ|9 +S9|7820|DURSEJ|9 +S9|7821|DURSEJ|9 +S9|7822|DURSEJ|9 +S9|7823|DURSEJ|9 +S9|7824|DURSEJ|9 +S9|7825|DURSEJ|9 +S9|7826|DURSEJ|9 +S9|7827|DURSEJ|9 +S9|7828|DURSEJ|9 +S9|7829|DURSEJ|9 +S9|7830|DURSEJ|9 +S9|7831|DURSEJ|9 +S9|7832|DURSEJ|9 +S9|7833|DURSEJ|9 +S9|7834|DURSEJ|9 +S9|7835|DURSEJ|9 +S9|7836|DURSEJ|9 +S9|7837|DURSEJ|9 +S9|7838|DURSEJ|9 +S9|7839|DURSEJ|9 +S9|7840|DURSEJ|9 +S9|7841|DURSEJ|9 +S9|7842|DURSEJ|9 +S9|7843|DURSEJ|9 +S9|7844|DURSEJ|9 +S9|7845|DURSEJ|9 +S9|7846|DURSEJ|9 +S9|7847|DURSEJ|9 +S9|7848|DURSEJ|9 +S9|7849|DURSEJ|9 +S9|7850|DURSEJ|9 +S9|7851|DURSEJ|9 +S9|7852|DURSEJ|9 +S9|7853|DURSEJ|9 +S9|7854|DURSEJ|9 +S9|7855|DURSEJ|9 +S9|7856|DURSEJ|9 +S9|7857|DURSEJ|9 +S9|7858|DURSEJ|9 +S9|7859|DURSEJ|9 +S9|7860|DURSEJ|9 +S9|7861|DURSEJ|9 +S9|7862|DURSEJ|9 +S9|7863|DURSEJ|9 +S9|7864|DURSEJ|9 +S9|7865|DURSEJ|9 +S9|7866|DURSEJ|9 +S9|7867|DURSEJ|9 +S9|7868|DURSEJ|9 +S9|7869|DURSEJ|9 +S9|7870|DURSEJ|9 +S9|7871|DURSEJ|9 +S9|7872|DURSEJ|9 +S9|7873|DURSEJ|9 +S9|7874|DURSEJ|9 +S9|7875|DURSEJ|9 +S9|7876|DURSEJ|9 +S9|7877|DURSEJ|9 +S9|7878|DURSEJ|9 +S9|7879|DURSEJ|9 +S9|7880|DURSEJ|9 +S9|7881|DURSEJ|9 +S9|7882|DURSEJ|9 +S9|7883|DURSEJ|9 +S9|7884|DURSEJ|9 +S9|7885|DURSEJ|9 +S9|7886|DURSEJ|9 +S9|7887|DURSEJ|9 +S9|7888|DURSEJ|9 +S9|7889|DURSEJ|9 +S9|7890|DURSEJ|9 +S9|7891|DURSEJ|9 +S9|7892|DURSEJ|9 +S9|7893|DURSEJ|9 +S9|7894|DURSEJ|9 +S9|7895|DURSEJ|9 +S9|7896|DURSEJ|9 +S9|7897|DURSEJ|9 +S9|7898|DURSEJ|9 +S9|7899|DURSEJ|9 +S9|7900|DURSEJ|9 +S9|7901|DURSEJ|9 +S9|7902|DURSEJ|9 +S9|7903|DURSEJ|9 +S9|7904|DURSEJ|9 +S9|7905|DURSEJ|9 +S9|7906|DURSEJ|9 +S9|7907|DURSEJ|9 +S9|7908|DURSEJ|9 +S9|7909|DURSEJ|9 +S9|7910|DURSEJ|9 +S9|7911|DURSEJ|9 +S9|7912|DURSEJ|9 +S9|7913|DURSEJ|9 +S9|7914|DURSEJ|9 +S9|7915|DURSEJ|9 +S9|7916|DURSEJ|9 +S9|7917|DURSEJ|9 +S9|7918|DURSEJ|9 +S9|7919|DURSEJ|9 +S9|7920|DURSEJ|9 +S9|7921|DURSEJ|9 +S9|7922|DURSEJ|9 +S9|7923|DURSEJ|9 +S9|7924|DURSEJ|9 +S9|7925|DURSEJ|9 +S9|7926|DURSEJ|9 +S9|7927|DURSEJ|9 +S9|7928|DURSEJ|9 +S9|7929|DURSEJ|9 +S9|7930|DURSEJ|9 +S9|7931|DURSEJ|9 +S9|7932|DURSEJ|9 +S9|7933|DURSEJ|9 +S9|7934|DURSEJ|9 +S9|7935|DURSEJ|9 +S9|7936|DURSEJ|9 +S9|7937|DURSEJ|9 +S9|7938|DURSEJ|9 +S9|7939|DURSEJ|9 +S9|7940|DURSEJ|9 +S9|7941|DURSEJ|9 +S9|7942|DURSEJ|9 +S9|7943|DURSEJ|9 +S9|7944|DURSEJ|9 +S9|7945|DURSEJ|9 +S9|7946|DURSEJ|9 +S9|7947|DURSEJ|9 +S9|7948|DURSEJ|9 +S9|7949|DURSEJ|9 +S9|7950|DURSEJ|9 +S9|7951|DURSEJ|9 +S9|7952|DURSEJ|9 +S9|7953|DURSEJ|9 +S9|7954|DURSEJ|9 +S9|7955|DURSEJ|9 +S9|7956|DURSEJ|9 +S9|7957|DURSEJ|9 +S9|7958|DURSEJ|9 +S9|7959|DURSEJ|9 +S9|7960|DURSEJ|9 +S9|7961|DURSEJ|9 +S9|7962|DURSEJ|9 +S9|7963|DURSEJ|9 +S9|7964|DURSEJ|9 +S9|7965|DURSEJ|9 +S9|7966|DURSEJ|9 +S9|7967|DURSEJ|9 +S9|7968|DURSEJ|9 +S9|7969|DURSEJ|9 +S9|7970|DURSEJ|9 +S9|7971|DURSEJ|9 +S9|7972|DURSEJ|9 +S9|7973|DURSEJ|9 +S9|7974|DURSEJ|9 +S9|7975|DURSEJ|9 +S9|7976|DURSEJ|9 +S9|7977|DURSEJ|9 +S9|7978|DURSEJ|9 +S9|7979|DURSEJ|9 +S9|7980|DURSEJ|9 +S9|7981|DURSEJ|9 +S9|7982|DURSEJ|9 +S9|7983|DURSEJ|9 +S9|7984|DURSEJ|9 +S9|7985|DURSEJ|9 +S9|7986|DURSEJ|9 +S9|7987|DURSEJ|9 +S9|7988|DURSEJ|9 +S9|7989|DURSEJ|9 +S9|7990|DURSEJ|9 +S9|7991|DURSEJ|9 +S9|7992|DURSEJ|9 +S9|7993|DURSEJ|9 +S9|7994|DURSEJ|9 +S9|7995|DURSEJ|9 +S9|7996|DURSEJ|9 +S9|7997|DURSEJ|9 +S9|7998|DURSEJ|9 +S9|7999|DURSEJ|9 +S9|8000|DURSEJ|9 +S9|8001|DURSEJ|9 +S9|8002|DURSEJ|9 +S9|8003|DURSEJ|9 +S9|8004|DURSEJ|9 +S9|8005|DURSEJ|9 +S9|8006|DURSEJ|9 +S9|8007|DURSEJ|9 +S9|8008|DURSEJ|9 +S9|8009|DURSEJ|9 +S9|8010|DURSEJ|9 +S9|8011|DURSEJ|9 +S9|8012|DURSEJ|9 +S9|8013|DURSEJ|9 +S9|8014|DURSEJ|9 +S9|8015|DURSEJ|9 +S9|8016|DURSEJ|9 +S9|8017|DURSEJ|9 +S9|8018|DURSEJ|9 +S9|8019|DURSEJ|9 +S9|8020|DURSEJ|9 +S9|8021|DURSEJ|9 +S9|8022|DURSEJ|9 +S9|8023|DURSEJ|9 +S9|8024|DURSEJ|9 +S9|8025|DURSEJ|9 +S9|8026|DURSEJ|9 +S9|8027|DURSEJ|9 +S9|8028|DURSEJ|9 +S9|8029|DURSEJ|9 +S9|8030|DURSEJ|9 +S9|8031|DURSEJ|9 +S9|8032|DURSEJ|9 +S9|8033|DURSEJ|9 +S9|8034|DURSEJ|9 +S9|8035|DURSEJ|9 +S9|8036|DURSEJ|9 +S9|8037|DURSEJ|9 +S9|8038|DURSEJ|9 +S9|8039|DURSEJ|9 +S9|8040|DURSEJ|9 +S9|8041|DURSEJ|9 +S9|8042|DURSEJ|9 +S9|8043|DURSEJ|9 +S9|8044|DURSEJ|9 +S9|8045|DURSEJ|9 +S9|8046|DURSEJ|9 +S9|8047|DURSEJ|9 +S9|8048|DURSEJ|9 +S9|8049|DURSEJ|9 +S9|8050|DURSEJ|9 +S9|8051|DURSEJ|9 +S9|8052|DURSEJ|9 +S9|8053|DURSEJ|9 +S9|8054|DURSEJ|9 +S9|8055|DURSEJ|9 +S9|8056|DURSEJ|9 +S9|8057|DURSEJ|9 +S9|8058|DURSEJ|9 +S9|8059|DURSEJ|9 +S9|8060|DURSEJ|9 +S9|8061|DURSEJ|9 +S9|8062|DURSEJ|9 +S9|8063|DURSEJ|9 +S9|8064|DURSEJ|9 +S9|8065|DURSEJ|9 +S9|8066|DURSEJ|9 +S9|8067|DURSEJ|9 +S9|8068|DURSEJ|9 +S9|8069|DURSEJ|9 +S9|8070|DURSEJ|9 +S9|8071|DURSEJ|9 +S9|8072|DURSEJ|9 +S9|8073|DURSEJ|9 +S9|8074|DURSEJ|9 +S9|8075|DURSEJ|9 +S9|8076|DURSEJ|9 +S9|8077|DURSEJ|9 +S9|8078|DURSEJ|9 +S9|8079|DURSEJ|9 +S9|8080|DURSEJ|9 +S9|8081|DURSEJ|9 +S9|8082|DURSEJ|9 +S9|8083|DURSEJ|9 +S9|8084|DURSEJ|9 +S9|8085|DURSEJ|9 +S9|8086|DURSEJ|9 +S9|8087|DURSEJ|9 +S9|8088|DURSEJ|9 +S9|8089|DURSEJ|9 +S9|8090|DURSEJ|9 +S9|8091|DURSEJ|9 +S9|8092|DURSEJ|9 +S9|8093|DURSEJ|9 +S9|8094|DURSEJ|9 +S9|8095|DURSEJ|9 +S9|8096|DURSEJ|9 +S9|8097|DURSEJ|9 +S9|8098|DURSEJ|9 +S9|8099|DURSEJ|9 +S9|8100|DURSEJ|9 +S9|8101|DURSEJ|9 +S9|8102|DURSEJ|9 +S9|8103|DURSEJ|9 +S9|8104|DURSEJ|9 +S9|8105|DURSEJ|9 +S9|8106|DURSEJ|9 +S9|8107|DURSEJ|9 +S9|8108|DURSEJ|9 +S9|8109|DURSEJ|9 +S9|8110|DURSEJ|9 +S9|8111|DURSEJ|9 +S9|8112|DURSEJ|9 +S9|8113|DURSEJ|9 +S9|8114|DURSEJ|9 +S9|8115|DURSEJ|9 +S9|8116|DURSEJ|9 +S9|8117|DURSEJ|9 +S9|8118|DURSEJ|9 +S9|8119|DURSEJ|9 +S9|8120|DURSEJ|9 +S9|8121|DURSEJ|9 +S9|8122|DURSEJ|9 +S9|8123|DURSEJ|9 +S9|8124|DURSEJ|9 +S9|8125|DURSEJ|9 +S9|8126|DURSEJ|9 +S9|8127|DURSEJ|9 +S9|8128|DURSEJ|9 +S9|8129|DURSEJ|9 +S9|8130|DURSEJ|9 +S9|8131|DURSEJ|9 +S9|8132|DURSEJ|9 +S9|8133|DURSEJ|9 +S9|8134|DURSEJ|9 +S9|8135|DURSEJ|9 +S9|8136|DURSEJ|9 +S9|8137|DURSEJ|9 +S9|8138|DURSEJ|9 +S9|8139|DURSEJ|9 +S9|8140|DURSEJ|9 +S9|8141|DURSEJ|9 +S9|8142|DURSEJ|9 +S9|8143|DURSEJ|9 +S9|8144|DURSEJ|9 +S9|8145|DURSEJ|9 +S9|8146|DURSEJ|9 +S9|8147|DURSEJ|9 +S9|8148|DURSEJ|9 +S9|8149|DURSEJ|9 +S9|8150|DURSEJ|9 +S9|8151|DURSEJ|9 +S9|8152|DURSEJ|9 +S9|8153|DURSEJ|9 +S9|8154|DURSEJ|9 +S9|8155|DURSEJ|9 +S9|8156|DURSEJ|9 +S9|8157|DURSEJ|9 +S9|8158|DURSEJ|9 +S9|8159|DURSEJ|9 +S9|8160|DURSEJ|9 +S9|8161|DURSEJ|9 +S9|8162|DURSEJ|9 +S9|8163|DURSEJ|9 +S9|8164|DURSEJ|9 +S9|8165|DURSEJ|9 +S9|8166|DURSEJ|9 +S9|8167|DURSEJ|9 +S9|8168|DURSEJ|9 +S9|8169|DURSEJ|9 +S9|8170|DURSEJ|9 +S9|8171|DURSEJ|9 +S9|8172|DURSEJ|9 +S9|8173|DURSEJ|9 +S9|8174|DURSEJ|9 +S9|8175|DURSEJ|9 +S9|8176|DURSEJ|9 +S9|8177|DURSEJ|9 +S9|8178|DURSEJ|9 +S9|8179|DURSEJ|9 +S9|8180|DURSEJ|9 +S9|8181|DURSEJ|9 +S9|8182|DURSEJ|9 +S9|8183|DURSEJ|9 +S9|8184|DURSEJ|9 +S9|8185|DURSEJ|9 +S9|8186|DURSEJ|9 +S9|8187|DURSEJ|9 +S9|8188|DURSEJ|9 +S9|8189|DURSEJ|9 +S9|8190|DURSEJ|9 +S9|8191|DURSEJ|9 +S9|8192|DURSEJ|9 +S9|8193|DURSEJ|9 +S9|8194|DURSEJ|9 +S9|8195|DURSEJ|9 +S9|8196|DURSEJ|9 +S9|8197|DURSEJ|9 +S9|8198|DURSEJ|9 +S9|8199|DURSEJ|9 +S9|8200|DURSEJ|9 +S9|8201|DURSEJ|9 +S9|8202|DURSEJ|9 +S9|8203|DURSEJ|9 +S9|8204|DURSEJ|9 +S9|8205|DURSEJ|9 +S9|8206|DURSEJ|9 +S9|8207|DURSEJ|9 +S9|8208|DURSEJ|9 +S9|8209|DURSEJ|9 +S9|8210|DURSEJ|9 +S9|8211|DURSEJ|9 +S9|8212|DURSEJ|9 +S9|8213|DURSEJ|9 +S9|8214|DURSEJ|9 +S9|8215|DURSEJ|9 +S9|8216|DURSEJ|9 +S9|8217|DURSEJ|9 +S9|8218|DURSEJ|9 +S9|8219|DURSEJ|9 +S9|8220|DURSEJ|9 +S9|8221|DURSEJ|9 +S9|8222|DURSEJ|9 +S9|8223|DURSEJ|9 +S9|8224|DURSEJ|9 +S9|8225|DURSEJ|9 +S9|8226|DURSEJ|9 +S9|8227|DURSEJ|9 +S9|8228|DURSEJ|9 +S9|8229|DURSEJ|9 +S9|8230|DURSEJ|9 +S9|8231|DURSEJ|9 +S9|8232|DURSEJ|9 +S9|8233|DURSEJ|9 +S9|8234|DURSEJ|9 +S9|8235|DURSEJ|9 +S9|8236|DURSEJ|9 +S9|8237|DURSEJ|9 +S9|8238|DURSEJ|9 +S9|8239|DURSEJ|9 +S9|8240|DURSEJ|9 +S9|8241|DURSEJ|9 +S9|8242|DURSEJ|9 +S9|8243|DURSEJ|9 +S9|8244|DURSEJ|9 +S9|8245|DURSEJ|9 +S9|8246|DURSEJ|9 +S9|8247|DURSEJ|9 +S9|8248|DURSEJ|9 +S9|8249|DURSEJ|9 +S9|8250|DURSEJ|9 +S9|8251|DURSEJ|9 +S9|8252|DURSEJ|9 +S9|8253|DURSEJ|9 +S9|8254|DURSEJ|9 +S9|8255|DURSEJ|9 +S9|8256|DURSEJ|9 +S9|8257|DURSEJ|9 +S9|8258|DURSEJ|9 +S9|8259|DURSEJ|9 +S9|8260|DURSEJ|9 +S9|8261|DURSEJ|9 +S9|8262|DURSEJ|9 +S9|8263|DURSEJ|9 +S9|8264|DURSEJ|9 +S9|8265|DURSEJ|9 +S9|8266|DURSEJ|9 +S9|8267|DURSEJ|9 +S9|8268|DURSEJ|9 +S9|8269|DURSEJ|9 +S9|8270|DURSEJ|9 +S9|8271|DURSEJ|9 +S9|8272|DURSEJ|9 +S9|8273|DURSEJ|9 +S9|8274|DURSEJ|9 +S9|8275|DURSEJ|9 +S9|8276|DURSEJ|9 +S9|8277|DURSEJ|9 +S9|8278|DURSEJ|9 +S9|8279|DURSEJ|9 +S9|8280|DURSEJ|9 +S9|8281|DURSEJ|9 +S9|8282|DURSEJ|9 +S9|8283|DURSEJ|9 +S9|8284|DURSEJ|9 +S9|8285|DURSEJ|9 +S9|8286|DURSEJ|9 +S9|8287|DURSEJ|9 +S9|8288|DURSEJ|9 +S9|8289|DURSEJ|9 +S9|8290|DURSEJ|9 +S9|8291|DURSEJ|9 +S9|8292|DURSEJ|9 +S9|8293|DURSEJ|9 +S9|8294|DURSEJ|9 +S9|8295|DURSEJ|9 +S9|8296|DURSEJ|9 +S9|8297|DURSEJ|9 +S9|8298|DURSEJ|9 +S9|8299|DURSEJ|9 +S9|8300|DURSEJ|9 +S9|8301|DURSEJ|9 +S9|8302|DURSEJ|9 +S9|8303|DURSEJ|9 +S9|8304|DURSEJ|9 +S9|8305|DURSEJ|9 +S9|8306|DURSEJ|9 +S9|8307|DURSEJ|9 +S9|8308|DURSEJ|9 +S9|8309|DURSEJ|9 +S9|8310|DURSEJ|9 +S9|8311|DURSEJ|9 +S9|8312|DURSEJ|9 +S9|8313|DURSEJ|9 +S9|8314|DURSEJ|9 +S9|8315|DURSEJ|9 +S9|8316|DURSEJ|9 +S9|8317|DURSEJ|9 +S9|8318|DURSEJ|9 +S9|8319|DURSEJ|9 +S9|8320|DURSEJ|9 +S9|8321|DURSEJ|9 +S9|8322|DURSEJ|9 +S9|8323|DURSEJ|9 +S9|8324|DURSEJ|9 +S9|8325|DURSEJ|9 +S9|8326|DURSEJ|9 +S9|8327|DURSEJ|9 +S9|8328|DURSEJ|9 +S9|8329|DURSEJ|9 +S9|8330|DURSEJ|9 +S9|8331|DURSEJ|9 +S9|8332|DURSEJ|9 +S9|8333|DURSEJ|9 +S9|8334|DURSEJ|9 +S9|8335|DURSEJ|9 +S9|8336|DURSEJ|9 +S9|8337|DURSEJ|9 +S9|8338|DURSEJ|9 +S9|8339|DURSEJ|9 +S9|8340|DURSEJ|9 +S9|8341|DURSEJ|9 +S9|8342|DURSEJ|9 +S9|8343|DURSEJ|9 +S9|8344|DURSEJ|9 +S9|8345|DURSEJ|9 +S9|8346|DURSEJ|9 +S9|8347|DURSEJ|9 +S9|8348|DURSEJ|9 +S9|8349|DURSEJ|9 +S9|8350|DURSEJ|9 +S9|8351|DURSEJ|9 +S9|8352|DURSEJ|9 +S9|8353|DURSEJ|9 +S9|8354|DURSEJ|9 +S9|8355|DURSEJ|9 +S9|8356|DURSEJ|9 +S9|8357|DURSEJ|9 +S9|8358|DURSEJ|9 +S9|8359|DURSEJ|9 +S9|8360|DURSEJ|9 +S9|8361|DURSEJ|9 +S9|8362|DURSEJ|9 +S9|8363|DURSEJ|9 +S9|8364|DURSEJ|9 +S9|8365|DURSEJ|9 +S9|8366|DURSEJ|9 +S9|8367|DURSEJ|9 +S9|8368|DURSEJ|9 +S9|8369|DURSEJ|9 +S9|8370|DURSEJ|9 +S9|8371|DURSEJ|9 +S9|8372|DURSEJ|9 +S9|8373|DURSEJ|9 +S9|8374|DURSEJ|9 +S9|8375|DURSEJ|9 +S9|8376|DURSEJ|9 +S9|8377|DURSEJ|9 +S9|8378|DURSEJ|9 +S9|8379|DURSEJ|9 +S9|8380|DURSEJ|9 +S9|8381|DURSEJ|9 +S9|8382|DURSEJ|9 +S9|8383|DURSEJ|9 +S9|8384|DURSEJ|9 +S9|8385|DURSEJ|9 +S9|8386|DURSEJ|9 +S9|8387|DURSEJ|9 +S9|8388|DURSEJ|9 +S9|8389|DURSEJ|9 +S9|8390|DURSEJ|9 +S9|8391|DURSEJ|9 +S9|8392|DURSEJ|9 +S9|8393|DURSEJ|9 +S9|8394|DURSEJ|9 +S9|8395|DURSEJ|9 +S9|8396|DURSEJ|9 +S9|8397|DURSEJ|9 +S9|8398|DURSEJ|9 +S9|8399|DURSEJ|9 +S9|8400|DURSEJ|9 +S9|8401|DURSEJ|9 +S9|8402|DURSEJ|9 +S9|8403|DURSEJ|9 +S9|8404|DURSEJ|9 +S9|8405|DURSEJ|9 +S9|8406|DURSEJ|9 +S9|8407|DURSEJ|9 +S9|8408|DURSEJ|9 +S9|8409|DURSEJ|9 +S9|8410|DURSEJ|9 +S9|8411|DURSEJ|9 +S9|8412|DURSEJ|9 +S9|8413|DURSEJ|9 +S9|8414|DURSEJ|9 +S9|8415|DURSEJ|9 +S9|8416|DURSEJ|9 +S9|8417|DURSEJ|9 +S9|8418|DURSEJ|9 +S9|8419|DURSEJ|9 +S9|8420|DURSEJ|9 +S9|8421|DURSEJ|9 +S9|8422|DURSEJ|9 +S9|8423|DURSEJ|9 +S9|8424|DURSEJ|9 +S9|8425|DURSEJ|9 +S9|8426|DURSEJ|9 +S9|8427|DURSEJ|9 +S9|8428|DURSEJ|9 +S9|8429|DURSEJ|9 +S9|8430|DURSEJ|9 +S9|8431|DURSEJ|9 +S9|8432|DURSEJ|9 +S9|8433|DURSEJ|9 +S9|8434|DURSEJ|9 +S9|8435|DURSEJ|9 +S9|8436|DURSEJ|9 +S9|8437|DURSEJ|9 +S9|8438|DURSEJ|9 +S9|8439|DURSEJ|9 +S9|8440|DURSEJ|9 +S9|8441|DURSEJ|9 +S9|8442|DURSEJ|9 +S9|8443|DURSEJ|9 +S9|8444|DURSEJ|9 +S9|8445|DURSEJ|9 +S9|8446|DURSEJ|9 +S9|8447|DURSEJ|9 +S9|8448|DURSEJ|9 +S9|8449|DURSEJ|9 +S9|8450|DURSEJ|9 +S9|8451|DURSEJ|9 +S9|8452|DURSEJ|9 +S9|8453|DURSEJ|9 +S9|8454|DURSEJ|9 +S9|8455|DURSEJ|9 +S9|8456|DURSEJ|9 +S9|8457|DURSEJ|9 +S9|8458|DURSEJ|9 +S9|8459|DURSEJ|9 +S9|8460|DURSEJ|9 +S9|8461|DURSEJ|9 +S9|8462|DURSEJ|9 +S9|8463|DURSEJ|9 +S9|8464|DURSEJ|9 +S9|8465|DURSEJ|9 +S9|8466|DURSEJ|9 +S9|8467|DURSEJ|9 +S9|8468|DURSEJ|9 +S9|8469|DURSEJ|9 +S9|8470|DURSEJ|9 +S9|8471|DURSEJ|9 +S9|8472|DURSEJ|9 +S9|8473|DURSEJ|9 +S9|8474|DURSEJ|9 +S9|8475|DURSEJ|9 +S9|8476|DURSEJ|9 +S9|8477|DURSEJ|9 +S9|8478|DURSEJ|9 +S9|8479|DURSEJ|9 +S9|8480|DURSEJ|9 +S9|8481|DURSEJ|9 +S9|8482|DURSEJ|9 +S9|8483|DURSEJ|9 +S9|8484|DURSEJ|9 +S9|8485|DURSEJ|9 +S9|8486|DURSEJ|9 +S9|8487|DURSEJ|9 +S9|8488|DURSEJ|9 +S9|8489|DURSEJ|9 +S9|8490|DURSEJ|9 +S9|8491|DURSEJ|9 +S9|8492|DURSEJ|9 +S9|8493|DURSEJ|9 +S9|8494|DURSEJ|9 +S9|8495|DURSEJ|9 +S9|8496|DURSEJ|9 +S9|8497|DURSEJ|9 +S9|8498|DURSEJ|9 +S9|8499|DURSEJ|9 +S9|8500|DURSEJ|9 +S9|8501|DURSEJ|9 +S9|8502|DURSEJ|9 +S9|8503|DURSEJ|9 +S9|8504|DURSEJ|9 +S9|8505|DURSEJ|9 +S9|8506|DURSEJ|9 +S9|8507|DURSEJ|9 +S9|8508|DURSEJ|9 +S9|8509|DURSEJ|9 +S9|8510|DURSEJ|9 +S9|8511|DURSEJ|9 +S9|8512|DURSEJ|9 +S9|8513|DURSEJ|9 +S9|8514|DURSEJ|9 +S9|8515|DURSEJ|9 +S9|8516|DURSEJ|9 +S9|8517|DURSEJ|9 +S9|8518|DURSEJ|9 +S9|8519|DURSEJ|9 +S9|8520|DURSEJ|9 +S9|8521|DURSEJ|9 +S9|8522|DURSEJ|9 +S9|8523|DURSEJ|9 +S9|8524|DURSEJ|9 +S9|8525|DURSEJ|9 +S9|8526|DURSEJ|9 +S9|8527|DURSEJ|9 +S9|8528|DURSEJ|9 +S9|8529|DURSEJ|9 +S9|8530|DURSEJ|9 +S9|8531|DURSEJ|9 +S9|8532|DURSEJ|9 +S9|8533|DURSEJ|9 +S9|8534|DURSEJ|9 +S9|8535|DURSEJ|9 +S9|8536|DURSEJ|9 +S9|8537|DURSEJ|9 +S9|8538|DURSEJ|9 +S9|8539|DURSEJ|9 +S9|8540|DURSEJ|9 +S9|8541|DURSEJ|9 +S9|8542|DURSEJ|9 +S9|8543|DURSEJ|9 +S9|8544|DURSEJ|9 +S9|8545|DURSEJ|9 +S9|8546|DURSEJ|9 +S9|8547|DURSEJ|9 +S9|8548|DURSEJ|9 +S9|8549|DURSEJ|9 +S9|8550|DURSEJ|9 +S9|8551|DURSEJ|9 +S9|8552|DURSEJ|9 +S9|8553|DURSEJ|9 +S9|8554|DURSEJ|9 +S9|8555|DURSEJ|9 +S9|8556|DURSEJ|9 +S9|8557|DURSEJ|9 +S9|8558|DURSEJ|9 +S9|8559|DURSEJ|9 +S9|8560|DURSEJ|9 +S9|8561|DURSEJ|9 +S9|8562|DURSEJ|9 +S9|8563|DURSEJ|9 +S9|8564|DURSEJ|9 +S9|8565|DURSEJ|9 +S9|8566|DURSEJ|9 +S9|8567|DURSEJ|9 +S9|8568|DURSEJ|9 +S9|8569|DURSEJ|9 +S9|8570|DURSEJ|9 +S9|8571|DURSEJ|9 +S9|8572|DURSEJ|9 +S9|8573|DURSEJ|9 +S9|8574|DURSEJ|9 +S9|8575|DURSEJ|9 +S9|8576|DURSEJ|9 +S9|8577|DURSEJ|9 +S9|8578|DURSEJ|9 +S9|8579|DURSEJ|9 +S9|8580|DURSEJ|9 +S9|8581|DURSEJ|9 +S9|8582|DURSEJ|9 +S9|8583|DURSEJ|9 +S9|8584|DURSEJ|9 +S9|8585|DURSEJ|9 +S9|8586|DURSEJ|9 +S9|8587|DURSEJ|9 +S9|8588|DURSEJ|9 +S9|8589|DURSEJ|9 +S9|8590|DURSEJ|9 +S9|8591|DURSEJ|9 +S9|8592|DURSEJ|9 +S9|8593|DURSEJ|9 +S9|8594|DURSEJ|9 +S9|8595|DURSEJ|9 +S9|8596|DURSEJ|9 +S9|8597|DURSEJ|9 +S9|8598|DURSEJ|9 +S9|8599|DURSEJ|9 +S9|8600|DURSEJ|9 +S9|8601|DURSEJ|9 +S9|8602|DURSEJ|9 +S9|8603|DURSEJ|9 +S9|8604|DURSEJ|9 +S9|8605|DURSEJ|9 +S9|8606|DURSEJ|9 +S9|8607|DURSEJ|9 +S9|8608|DURSEJ|9 +S9|8609|DURSEJ|9 +S9|8610|DURSEJ|9 +S9|8611|DURSEJ|9 +S9|8612|DURSEJ|9 +S9|8613|DURSEJ|9 +S9|8614|DURSEJ|9 +S9|8615|DURSEJ|9 +S9|8616|DURSEJ|9 +S9|8617|DURSEJ|9 +S9|8618|DURSEJ|9 +S9|8619|DURSEJ|9 +S9|8620|DURSEJ|9 +S9|8621|DURSEJ|9 +S9|8622|DURSEJ|9 +S9|8623|DURSEJ|9 +S9|8624|DURSEJ|9 +S9|8625|DURSEJ|9 +S9|8626|DURSEJ|9 +S9|8627|DURSEJ|9 +S9|8628|DURSEJ|9 +S9|8629|DURSEJ|9 +S9|8630|DURSEJ|9 +S9|8631|DURSEJ|9 +S9|8632|DURSEJ|9 +S9|8633|DURSEJ|9 +S9|8634|DURSEJ|9 +S9|8635|DURSEJ|9 +S9|8636|DURSEJ|9 +S9|8637|DURSEJ|9 +S9|8638|DURSEJ|9 +S9|8639|DURSEJ|9 +S9|8640|DURSEJ|9 +S9|8641|DURSEJ|9 +S9|8642|DURSEJ|9 +S9|8643|DURSEJ|9 +S9|8644|DURSEJ|9 +S9|8645|DURSEJ|9 +S9|8646|DURSEJ|9 +S9|8647|DURSEJ|9 +S9|8648|DURSEJ|9 +S9|8649|DURSEJ|9 +S9|8650|DURSEJ|9 +S9|8651|DURSEJ|9 +S9|8652|DURSEJ|9 +S9|8653|DURSEJ|9 +S9|8654|DURSEJ|9 +S9|8655|DURSEJ|9 +S9|8656|DURSEJ|9 +S9|8657|DURSEJ|9 +S9|8658|DURSEJ|9 +S9|8659|DURSEJ|9 +S9|8660|DURSEJ|9 +S9|8661|DURSEJ|9 +S9|8662|DURSEJ|9 +S9|8663|DURSEJ|9 +S9|8664|DURSEJ|9 +S9|8665|DURSEJ|9 +S9|8666|DURSEJ|9 +S9|8667|DURSEJ|9 +S9|8668|DURSEJ|9 +S9|8669|DURSEJ|9 +S9|8670|DURSEJ|9 +S9|8671|DURSEJ|9 +S9|8672|DURSEJ|9 +S9|8673|DURSEJ|9 +S9|8674|DURSEJ|9 +S9|8675|DURSEJ|9 +S9|8676|DURSEJ|9 +S9|8677|DURSEJ|9 +S9|8678|DURSEJ|9 +S9|8679|DURSEJ|9 +S9|8680|DURSEJ|9 +S9|8681|DURSEJ|9 +S9|8682|DURSEJ|9 +S9|8683|DURSEJ|9 +S9|8684|DURSEJ|9 +S9|8685|DURSEJ|9 +S9|8686|DURSEJ|9 +S9|8687|DURSEJ|9 +S9|8688|DURSEJ|9 +S9|8689|DURSEJ|9 +S9|8690|DURSEJ|9 +S9|8691|DURSEJ|9 +S9|8692|DURSEJ|9 +S9|8693|DURSEJ|9 +S9|8694|DURSEJ|9 +S9|8695|DURSEJ|9 +S9|8696|DURSEJ|9 +S9|8697|DURSEJ|9 +S9|8698|DURSEJ|9 +S9|8699|DURSEJ|9 +S9|8700|DURSEJ|9 +S9|8701|DURSEJ|9 +S9|8702|DURSEJ|9 +S9|8703|DURSEJ|9 +S9|8704|DURSEJ|9 +S9|8705|DURSEJ|9 +S9|8706|DURSEJ|9 +S9|8707|DURSEJ|9 +S9|8708|DURSEJ|9 +S9|8709|DURSEJ|9 +S9|8710|DURSEJ|9 +S9|8711|DURSEJ|9 +S9|8712|DURSEJ|9 +S9|8713|DURSEJ|9 +S9|8714|DURSEJ|9 +S9|8715|DURSEJ|9 +S9|8716|DURSEJ|9 +S9|8717|DURSEJ|9 +S9|8718|DURSEJ|9 +S9|8719|DURSEJ|9 +S9|8720|DURSEJ|9 +S9|8721|DURSEJ|9 +S9|8722|DURSEJ|9 +S9|8723|DURSEJ|9 +S9|8724|DURSEJ|9 +S9|8725|DURSEJ|9 +S9|8726|DURSEJ|9 +S9|8727|DURSEJ|9 +S9|8728|DURSEJ|9 +S9|8729|DURSEJ|9 +S9|8730|DURSEJ|9 +S9|8731|DURSEJ|9 +S9|8732|DURSEJ|9 +S9|8733|DURSEJ|9 +S9|8734|DURSEJ|9 +S9|8735|DURSEJ|9 +S9|8736|DURSEJ|9 +S9|8737|DURSEJ|9 +S9|8738|DURSEJ|9 +S9|8739|DURSEJ|9 +S9|8740|DURSEJ|9 +S9|8741|DURSEJ|9 +S9|8742|DURSEJ|9 +S9|8743|DURSEJ|9 +S9|8744|DURSEJ|9 +S9|8745|DURSEJ|9 +S9|8746|DURSEJ|9 +S9|8747|DURSEJ|9 +S9|8748|DURSEJ|9 +S9|8749|DURSEJ|9 +S9|8750|DURSEJ|9 +S9|8751|DURSEJ|9 +S9|8752|DURSEJ|9 +S9|8753|DURSEJ|9 +S9|8754|DURSEJ|9 +S9|8755|DURSEJ|9 +S9|8756|DURSEJ|9 +S9|8757|DURSEJ|9 +S9|8758|DURSEJ|9 +S9|8759|DURSEJ|9 +S9|8760|DURSEJ|9 +S9|8761|DURSEJ|9 +S9|8762|DURSEJ|9 +S9|8763|DURSEJ|9 +S9|8764|DURSEJ|9 +S9|8765|DURSEJ|9 +S9|8766|DURSEJ|9 +S9|8767|DURSEJ|9 +S9|8768|DURSEJ|9 +S9|8769|DURSEJ|9 +S9|8770|DURSEJ|9 +S9|8771|DURSEJ|9 +S9|8772|DURSEJ|9 +S9|8773|DURSEJ|9 +S9|8774|DURSEJ|9 +S9|8775|DURSEJ|9 +S9|8776|DURSEJ|9 +S9|8777|DURSEJ|9 +S9|8778|DURSEJ|9 +S9|8779|DURSEJ|9 +S9|8780|DURSEJ|9 +S9|8781|DURSEJ|9 +S9|8782|DURSEJ|9 +S9|8783|DURSEJ|9 +S9|8784|DURSEJ|9 +S9|8785|DURSEJ|9 +S9|8786|DURSEJ|9 +S9|8787|DURSEJ|9 +S9|8788|DURSEJ|9 +S9|8789|DURSEJ|9 +S9|8790|DURSEJ|9 +S9|8791|DURSEJ|9 +S9|8792|DURSEJ|9 +S9|8793|DURSEJ|9 +S9|8794|DURSEJ|9 +S9|8795|DURSEJ|9 +S9|8796|DURSEJ|9 +S9|8797|DURSEJ|9 +S9|8798|DURSEJ|9 +S9|8799|DURSEJ|9 +S9|8800|DURSEJ|9 +S9|8801|DURSEJ|9 +S9|8802|DURSEJ|9 +S9|8803|DURSEJ|9 +S9|8804|DURSEJ|9 +S9|8805|DURSEJ|9 +S9|8806|DURSEJ|9 +S9|8807|DURSEJ|9 +S9|8808|DURSEJ|9 +S9|8809|DURSEJ|9 +S9|8810|DURSEJ|9 +S9|8811|DURSEJ|9 +S9|8812|DURSEJ|9 +S9|8813|DURSEJ|9 +S9|8814|DURSEJ|9 +S9|8815|DURSEJ|9 +S9|8816|DURSEJ|9 +S9|8817|DURSEJ|9 +S9|8818|DURSEJ|9 +S9|8819|DURSEJ|9 +S9|8820|DURSEJ|9 +S9|8821|DURSEJ|9 +S9|8822|DURSEJ|9 +S9|8823|DURSEJ|9 +S9|8824|DURSEJ|9 +S9|8825|DURSEJ|9 +S9|8826|DURSEJ|9 +S9|8827|DURSEJ|9 +S9|8828|DURSEJ|9 +S9|8829|DURSEJ|9 +S9|8830|DURSEJ|9 +S9|8831|DURSEJ|9 +S9|8832|DURSEJ|9 +S9|8833|DURSEJ|9 +S9|8834|DURSEJ|9 +S9|8835|DURSEJ|9 +S9|8836|DURSEJ|9 +S9|8837|DURSEJ|9 +S9|8838|DURSEJ|9 +S9|8839|DURSEJ|9 +S9|8840|DURSEJ|9 +S9|8841|DURSEJ|9 +S9|8842|DURSEJ|9 +S9|8843|DURSEJ|9 +S9|8844|DURSEJ|9 +S9|8845|DURSEJ|9 +S9|8846|DURSEJ|9 +S9|8847|DURSEJ|9 +S9|8848|DURSEJ|9 +S9|8849|DURSEJ|9 +S9|8850|DURSEJ|9 +S9|8851|DURSEJ|9 +S9|8852|DURSEJ|9 +S9|8853|DURSEJ|9 +S9|8854|DURSEJ|9 +S9|8855|DURSEJ|9 +S9|8856|DURSEJ|9 +S9|8857|DURSEJ|9 +S9|8858|DURSEJ|9 +S9|8859|DURSEJ|9 +S9|8860|DURSEJ|9 +S9|8861|DURSEJ|9 +S9|8862|DURSEJ|9 +S9|8863|DURSEJ|9 +S9|8864|DURSEJ|9 +S9|8865|DURSEJ|9 +S9|8866|DURSEJ|9 +S9|8867|DURSEJ|9 +S9|8868|DURSEJ|9 +S9|8869|DURSEJ|9 +S9|8870|DURSEJ|9 +S9|8871|DURSEJ|9 +S9|8872|DURSEJ|9 +S9|8873|DURSEJ|9 +S9|8874|DURSEJ|9 +S9|8875|DURSEJ|9 +S9|8876|DURSEJ|9 +S9|8877|DURSEJ|9 +S9|8878|DURSEJ|9 +S9|8879|DURSEJ|9 +S9|8880|DURSEJ|9 +S9|8881|DURSEJ|9 +S9|8882|DURSEJ|9 +S9|8883|DURSEJ|9 +S9|8884|DURSEJ|9 +S9|8885|DURSEJ|9 +S9|8886|DURSEJ|9 +S9|8887|DURSEJ|9 +S9|8888|DURSEJ|9 +S9|8889|DURSEJ|9 +S9|8890|DURSEJ|9 +S9|8891|DURSEJ|9 +S9|8892|DURSEJ|9 +S9|8893|DURSEJ|9 +S9|8894|DURSEJ|9 +S9|8895|DURSEJ|9 +S9|8896|DURSEJ|9 +S9|8897|DURSEJ|9 +S9|8898|DURSEJ|9 +S9|8899|DURSEJ|9 +S9|8900|DURSEJ|9 +S9|8901|DURSEJ|9 +S9|8902|DURSEJ|9 +S9|8903|DURSEJ|9 +S9|8904|DURSEJ|9 +S9|8905|DURSEJ|9 +S9|8906|DURSEJ|9 +S9|8907|DURSEJ|9 +S9|8908|DURSEJ|9 +S9|8909|DURSEJ|9 +S9|8910|DURSEJ|9 +S9|8911|DURSEJ|9 +S9|8912|DURSEJ|9 +S9|8913|DURSEJ|9 +S9|8914|DURSEJ|9 +S9|8915|DURSEJ|9 +S9|8916|DURSEJ|9 +S9|8917|DURSEJ|9 +S9|8918|DURSEJ|9 +S9|8919|DURSEJ|9 +S9|8920|DURSEJ|9 +S9|8921|DURSEJ|9 +S9|8922|DURSEJ|9 +S9|8923|DURSEJ|9 +S9|8924|DURSEJ|9 +S9|8925|DURSEJ|9 +S9|8926|DURSEJ|9 +S9|8927|DURSEJ|9 +S9|8928|DURSEJ|9 +S9|8929|DURSEJ|9 +S9|8930|DURSEJ|9 +S9|8931|DURSEJ|9 +S9|8932|DURSEJ|9 +S9|8933|DURSEJ|9 +S9|8934|DURSEJ|9 +S9|8935|DURSEJ|9 +S9|8936|DURSEJ|9 +S9|8937|DURSEJ|9 +S9|8938|DURSEJ|9 +S9|8939|DURSEJ|9 +S9|8940|DURSEJ|9 +S9|8941|DURSEJ|9 +S9|8942|DURSEJ|9 +S9|8943|DURSEJ|9 +S9|8944|DURSEJ|9 +S9|8945|DURSEJ|9 +S9|8946|DURSEJ|9 +S9|8947|DURSEJ|9 +S9|8948|DURSEJ|9 +S9|8949|DURSEJ|9 +S9|8950|DURSEJ|9 +S9|8951|DURSEJ|9 +S9|8952|DURSEJ|9 +S9|8953|DURSEJ|9 +S9|8954|DURSEJ|9 +S9|8955|DURSEJ|9 +S9|8956|DURSEJ|9 +S9|8957|DURSEJ|9 +S9|8958|DURSEJ|9 +S9|8959|DURSEJ|9 +S9|8960|DURSEJ|9 +S9|8961|DURSEJ|9 +S9|8962|DURSEJ|9 +S9|8963|DURSEJ|9 +S9|8964|DURSEJ|9 +S9|8965|DURSEJ|9 +S9|8966|DURSEJ|9 +S9|8967|DURSEJ|9 +S9|8968|DURSEJ|9 +S9|8969|DURSEJ|9 +S9|8970|DURSEJ|9 +S9|8971|DURSEJ|9 +S9|8972|DURSEJ|9 +S9|8973|DURSEJ|9 +S9|8974|DURSEJ|9 +S9|8975|DURSEJ|9 +S9|8976|DURSEJ|9 +S9|8977|DURSEJ|9 +S9|8978|DURSEJ|9 +S9|8979|DURSEJ|9 +S9|8980|DURSEJ|9 +S9|8981|DURSEJ|9 +S9|8982|DURSEJ|9 +S9|8983|DURSEJ|9 +S9|8984|DURSEJ|9 +S9|8985|DURSEJ|9 +S9|8986|DURSEJ|9 +S9|8987|DURSEJ|9 +S9|8988|DURSEJ|9 +S9|8989|DURSEJ|9 +S9|8990|DURSEJ|9 +S9|8991|DURSEJ|9 +S9|8992|DURSEJ|9 +S9|8993|DURSEJ|9 +S9|8994|DURSEJ|9 +S9|8995|DURSEJ|9 +S9|8996|DURSEJ|9 +S9|8997|DURSEJ|9 +S9|8998|DURSEJ|9 +S9|8999|DURSEJ|9 +S9|9000|DURSEJ|9 +S9|9001|DURSEJ|9 +S9|9002|DURSEJ|9 +S9|9003|DURSEJ|9 +S9|9004|DURSEJ|9 +S9|9005|DURSEJ|9 +S9|9006|DURSEJ|9 +S9|9007|DURSEJ|9 +S9|9008|DURSEJ|9 +S9|9009|DURSEJ|9 +S9|9010|DURSEJ|9 +S9|9011|DURSEJ|9 +S9|9012|DURSEJ|9 +S9|9013|DURSEJ|9 +S9|9014|DURSEJ|9 +S9|9015|DURSEJ|9 +S9|9016|DURSEJ|9 +S9|9017|DURSEJ|9 +S9|9018|DURSEJ|9 +S9|9019|DURSEJ|9 +S9|9020|DURSEJ|9 +S9|9021|DURSEJ|9 +S9|9022|DURSEJ|9 +S9|9023|DURSEJ|9 +S9|9024|DURSEJ|9 +S9|9025|DURSEJ|9 +S9|9026|DURSEJ|9 +S9|9027|DURSEJ|9 +S9|9028|DURSEJ|9 +S9|9029|DURSEJ|9 +S9|9030|DURSEJ|9 +S9|9031|DURSEJ|9 +S9|9032|DURSEJ|9 +S9|9033|DURSEJ|9 +S9|9034|DURSEJ|9 +S9|9035|DURSEJ|9 +S9|9036|DURSEJ|9 +S9|9037|DURSEJ|9 +S9|9038|DURSEJ|9 +S9|9039|DURSEJ|9 +S9|9040|DURSEJ|9 +S9|9041|DURSEJ|9 +S9|9042|DURSEJ|9 +S9|9043|DURSEJ|9 +S9|9044|DURSEJ|9 +S9|9045|DURSEJ|9 +S9|9046|DURSEJ|9 +S9|9047|DURSEJ|9 +S9|9048|DURSEJ|9 +S9|9049|DURSEJ|9 +S9|9050|DURSEJ|9 +S9|9051|DURSEJ|9 +S9|9052|DURSEJ|9 +S9|9053|DURSEJ|9 +S9|9054|DURSEJ|9 +S9|9055|DURSEJ|9 +S9|9056|DURSEJ|9 +S9|9057|DURSEJ|9 +S9|9058|DURSEJ|9 +S9|9059|DURSEJ|9 +S9|9060|DURSEJ|9 +S9|9061|DURSEJ|9 +S9|9062|DURSEJ|9 +S9|9063|DURSEJ|9 +S9|9064|DURSEJ|9 +S9|9065|DURSEJ|9 +S9|9066|DURSEJ|9 +S9|9067|DURSEJ|9 +S9|9068|DURSEJ|9 +S9|9069|DURSEJ|9 +S9|9070|DURSEJ|9 +S9|9071|DURSEJ|9 +S9|9072|DURSEJ|9 +S9|9073|DURSEJ|9 +S9|9074|DURSEJ|9 +S9|9075|DURSEJ|9 +S9|9076|DURSEJ|9 +S9|9077|DURSEJ|9 +S9|9078|DURSEJ|9 +S9|9079|DURSEJ|9 +S9|9080|DURSEJ|9 +S9|9081|DURSEJ|9 +S9|9082|DURSEJ|9 +S9|9083|DURSEJ|9 +S9|9084|DURSEJ|9 +S9|9085|DURSEJ|9 +S9|9086|DURSEJ|9 +S9|9087|DURSEJ|9 +S9|9088|DURSEJ|9 +S9|9089|DURSEJ|9 +S9|9090|DURSEJ|9 +S9|9091|DURSEJ|9 +S9|9092|DURSEJ|9 +S9|9093|DURSEJ|9 +S9|9094|DURSEJ|9 +S9|9095|DURSEJ|9 +S9|9096|DURSEJ|9 +S9|9097|DURSEJ|9 +S9|9098|DURSEJ|9 +S9|9099|DURSEJ|9 +S9|9100|DURSEJ|9 +S9|9101|DURSEJ|9 +S9|9102|DURSEJ|9 +S9|9103|DURSEJ|9 +S9|9104|DURSEJ|9 +S9|9105|DURSEJ|9 +S9|9106|DURSEJ|9 +S9|9107|DURSEJ|9 +S9|9108|DURSEJ|9 +S9|9109|DURSEJ|9 +S9|9110|DURSEJ|9 +S9|9111|DURSEJ|9 +S9|9112|DURSEJ|9 +S9|9113|DURSEJ|9 +S9|9114|DURSEJ|9 +S9|9115|DURSEJ|9 +S9|9116|DURSEJ|9 +S9|9117|DURSEJ|9 +S9|9118|DURSEJ|9 +S9|9119|DURSEJ|9 +S9|9120|DURSEJ|9 +S9|9121|DURSEJ|9 +S9|9122|DURSEJ|9 +S9|9123|DURSEJ|9 +S9|9124|DURSEJ|9 +S9|9125|DURSEJ|9 +S9|9126|DURSEJ|9 +S9|9127|DURSEJ|9 +S9|9128|DURSEJ|9 +S9|9129|DURSEJ|9 +S9|9130|DURSEJ|9 +S9|9131|DURSEJ|9 +S9|9132|DURSEJ|9 +S9|9133|DURSEJ|9 +S9|9134|DURSEJ|9 +S9|9135|DURSEJ|9 +S9|9136|DURSEJ|9 +S9|9137|DURSEJ|9 +S9|9138|DURSEJ|9 +S9|9139|DURSEJ|9 +S9|9140|DURSEJ|9 +S9|9141|DURSEJ|9 +S9|9142|DURSEJ|9 +S9|9143|DURSEJ|9 +S9|9144|DURSEJ|9 +S9|9145|DURSEJ|9 +S9|9146|DURSEJ|9 +S9|9147|DURSEJ|9 +S9|9148|DURSEJ|9 +S9|9149|DURSEJ|9 +S9|9150|DURSEJ|9 +S9|9151|DURSEJ|9 +S9|9152|DURSEJ|9 +S9|9153|DURSEJ|9 +S9|9154|DURSEJ|9 +S9|9155|DURSEJ|9 +S9|9156|DURSEJ|9 +S9|9157|DURSEJ|9 +S9|9158|DURSEJ|9 +S9|9159|DURSEJ|9 +S9|9160|DURSEJ|9 +S9|9161|DURSEJ|9 +S9|9162|DURSEJ|9 +S9|9163|DURSEJ|9 +S9|9164|DURSEJ|9 +S9|9165|DURSEJ|9 +S9|9166|DURSEJ|9 +S9|9167|DURSEJ|9 +S9|9168|DURSEJ|9 +S9|9169|DURSEJ|9 +S9|9170|DURSEJ|9 +S9|9171|DURSEJ|9 +S9|9172|DURSEJ|9 +S9|9173|DURSEJ|9 +S9|9174|DURSEJ|9 +S9|9175|DURSEJ|9 +S9|9176|DURSEJ|9 +S9|9177|DURSEJ|9 +S9|9178|DURSEJ|9 +S9|9179|DURSEJ|9 +S9|9180|DURSEJ|9 +S9|9181|DURSEJ|9 +S9|9182|DURSEJ|9 +S9|9183|DURSEJ|9 +S9|9184|DURSEJ|9 +S9|9185|DURSEJ|9 +S9|9186|DURSEJ|9 +S9|9187|DURSEJ|9 +S9|9188|DURSEJ|9 +S9|9189|DURSEJ|9 +S9|9190|DURSEJ|9 +S9|9191|DURSEJ|9 +S9|9192|DURSEJ|9 +S9|9193|DURSEJ|9 +S9|9194|DURSEJ|9 +S9|9195|DURSEJ|9 +S9|9196|DURSEJ|9 +S9|9197|DURSEJ|9 +S9|9198|DURSEJ|9 +S9|9199|DURSEJ|9 +S9|9200|DURSEJ|9 +S9|9201|DURSEJ|9 +S9|9202|DURSEJ|9 +S9|9203|DURSEJ|9 +S9|9204|DURSEJ|9 +S9|9205|DURSEJ|9 +S9|9206|DURSEJ|9 +S9|9207|DURSEJ|9 +S9|9208|DURSEJ|9 +S9|9209|DURSEJ|9 +S9|9210|DURSEJ|9 +S9|9211|DURSEJ|9 +S9|9212|DURSEJ|9 +S9|9213|DURSEJ|9 +S9|9214|DURSEJ|9 +S9|9215|DURSEJ|9 +S9|9216|DURSEJ|9 +S9|9217|DURSEJ|9 +S9|9218|DURSEJ|9 +S9|9219|DURSEJ|9 +S9|9220|DURSEJ|9 +S9|9221|DURSEJ|9 +S9|9222|DURSEJ|9 +S9|9223|DURSEJ|9 +S9|9224|DURSEJ|9 +S9|9225|DURSEJ|9 +S9|9226|DURSEJ|9 +S9|9227|DURSEJ|9 +S9|9228|DURSEJ|9 +S9|9229|DURSEJ|9 +S9|9230|DURSEJ|9 +S9|9231|DURSEJ|9 +S9|9232|DURSEJ|9 +S9|9233|DURSEJ|9 +S9|9234|DURSEJ|9 +S9|9235|DURSEJ|9 +S9|9236|DURSEJ|9 +S9|9237|DURSEJ|9 +S9|9238|DURSEJ|9 +S9|9239|DURSEJ|9 +S9|9240|DURSEJ|9 +S9|9241|DURSEJ|9 +S9|9242|DURSEJ|9 +S9|9243|DURSEJ|9 +S9|9244|DURSEJ|9 +S9|9245|DURSEJ|9 +S9|9246|DURSEJ|9 +S9|9247|DURSEJ|9 +S9|9248|DURSEJ|9 +S9|9249|DURSEJ|9 +S9|9250|DURSEJ|9 +S9|9251|DURSEJ|9 +S9|9252|DURSEJ|9 +S9|9253|DURSEJ|9 +S9|9254|DURSEJ|9 +S9|9255|DURSEJ|9 +S9|9256|DURSEJ|9 +S9|9257|DURSEJ|9 +S9|9258|DURSEJ|9 +S9|9259|DURSEJ|9 +S9|9260|DURSEJ|9 +S9|9261|DURSEJ|9 +S9|9262|DURSEJ|9 +S9|9263|DURSEJ|9 +S9|9264|DURSEJ|9 +S9|9265|DURSEJ|9 +S9|9266|DURSEJ|9 +S9|9267|DURSEJ|9 +S9|9268|DURSEJ|9 +S9|9269|DURSEJ|9 +S9|9270|DURSEJ|9 +S9|9271|DURSEJ|9 +S9|9272|DURSEJ|9 +S9|9273|DURSEJ|9 +S9|9274|DURSEJ|9 +S9|9275|DURSEJ|9 +S9|9276|DURSEJ|9 +S9|9277|DURSEJ|9 +S9|9278|DURSEJ|9 +S9|9279|DURSEJ|9 +S9|9280|DURSEJ|9 +S9|9281|DURSEJ|9 +S9|9282|DURSEJ|9 +S9|9283|DURSEJ|9 +S9|9284|DURSEJ|9 +S9|9285|DURSEJ|9 +S9|9286|DURSEJ|9 +S9|9287|DURSEJ|9 +S9|9288|DURSEJ|9 +S9|9289|DURSEJ|9 +S9|9290|DURSEJ|9 +S9|9291|DURSEJ|9 +S9|9292|DURSEJ|9 +S9|9293|DURSEJ|9 +S9|9294|DURSEJ|9 +S9|9295|DURSEJ|9 +S9|9296|DURSEJ|9 +S9|9297|DURSEJ|9 +S9|9298|DURSEJ|9 +S9|9299|DURSEJ|9 +S9|9300|DURSEJ|9 +S9|9301|DURSEJ|9 +S9|9302|DURSEJ|9 +S9|9303|DURSEJ|9 +S9|9304|DURSEJ|9 +S9|9305|DURSEJ|9 +S9|9306|DURSEJ|9 +S9|9307|DURSEJ|9 +S9|9308|DURSEJ|9 +S9|9309|DURSEJ|9 +S9|9310|DURSEJ|9 +S9|9311|DURSEJ|9 +S9|9312|DURSEJ|9 +S9|9313|DURSEJ|9 +S9|9314|DURSEJ|9 +S9|9315|DURSEJ|9 +S9|9316|DURSEJ|9 +S9|9317|DURSEJ|9 +S9|9318|DURSEJ|9 +S9|9319|DURSEJ|9 +S9|9320|DURSEJ|9 +S9|9321|DURSEJ|9 +S9|9322|DURSEJ|9 +S9|9323|DURSEJ|9 +S9|9324|DURSEJ|9 +S9|9325|DURSEJ|9 +S9|9326|DURSEJ|9 +S9|9327|DURSEJ|9 +S9|9328|DURSEJ|9 +S9|9329|DURSEJ|9 +S9|9330|DURSEJ|9 +S9|9331|DURSEJ|9 +S9|9332|DURSEJ|9 +S9|9333|DURSEJ|9 +S9|9334|DURSEJ|9 +S9|9335|DURSEJ|9 +S9|9336|DURSEJ|9 +S9|9337|DURSEJ|9 +S9|9338|DURSEJ|9 +S9|9339|DURSEJ|9 +S9|9340|DURSEJ|9 +S9|9341|DURSEJ|9 +S9|9342|DURSEJ|9 +S9|9343|DURSEJ|9 +S9|9344|DURSEJ|9 +S9|9345|DURSEJ|9 +S9|9346|DURSEJ|9 +S9|9347|DURSEJ|9 +S9|9348|DURSEJ|9 +S9|9349|DURSEJ|9 +S9|9350|DURSEJ|9 +S9|9351|DURSEJ|9 +S9|9352|DURSEJ|9 +S9|9353|DURSEJ|9 +S9|9354|DURSEJ|9 +S9|9355|DURSEJ|9 +S9|9356|DURSEJ|9 +S9|9357|DURSEJ|9 +S9|9358|DURSEJ|9 +S9|9359|DURSEJ|9 +S9|9360|DURSEJ|9 +S9|9361|DURSEJ|9 +S9|9362|DURSEJ|9 +S9|9363|DURSEJ|9 +S9|9364|DURSEJ|9 +S9|9365|DURSEJ|9 +S9|9366|DURSEJ|9 +S9|9367|DURSEJ|9 +S9|9368|DURSEJ|9 +S9|9369|DURSEJ|9 +S9|9370|DURSEJ|9 +S9|9371|DURSEJ|9 +S9|9372|DURSEJ|9 +S9|9373|DURSEJ|9 +S9|9374|DURSEJ|9 +S9|9375|DURSEJ|9 +S9|9376|DURSEJ|9 +S9|9377|DURSEJ|9 +S9|9378|DURSEJ|9 +S9|9379|DURSEJ|9 +S9|9380|DURSEJ|9 +S9|9381|DURSEJ|9 +S9|9382|DURSEJ|9 +S9|9383|DURSEJ|9 +S9|9384|DURSEJ|9 +S9|9385|DURSEJ|9 +S9|9386|DURSEJ|9 +S9|9387|DURSEJ|9 +S9|9388|DURSEJ|9 +S9|9389|DURSEJ|9 +S9|9390|DURSEJ|9 +S9|9391|DURSEJ|9 +S9|9392|DURSEJ|9 +S9|9393|DURSEJ|9 +S9|9394|DURSEJ|9 +S9|9395|DURSEJ|9 +S9|9396|DURSEJ|9 +S9|9397|DURSEJ|9 +S9|9398|DURSEJ|9 +S9|9399|DURSEJ|9 +S9|9400|DURSEJ|9 +S9|9401|DURSEJ|9 +S9|9402|DURSEJ|9 +S9|9403|DURSEJ|9 +S9|9404|DURSEJ|9 +S9|9405|DURSEJ|9 +S9|9406|DURSEJ|9 +S9|9407|DURSEJ|9 +S9|9408|DURSEJ|9 +S9|9409|DURSEJ|9 +S9|9410|DURSEJ|9 +S9|9411|DURSEJ|9 +S9|9412|DURSEJ|9 +S9|9413|DURSEJ|9 +S9|9414|DURSEJ|9 +S9|9415|DURSEJ|9 +S9|9416|DURSEJ|9 +S9|9417|DURSEJ|9 +S9|9418|DURSEJ|9 +S9|9419|DURSEJ|9 +S9|9420|DURSEJ|9 +S9|9421|DURSEJ|9 +S9|9422|DURSEJ|9 +S9|9423|DURSEJ|9 +S9|9424|DURSEJ|9 +S9|9425|DURSEJ|9 +S9|9426|DURSEJ|9 +S9|9427|DURSEJ|9 +S9|9428|DURSEJ|9 +S9|9429|DURSEJ|9 +S9|9430|DURSEJ|9 +S9|9431|DURSEJ|9 +S9|9432|DURSEJ|9 +S9|9433|DURSEJ|9 +S9|9434|DURSEJ|9 +S9|9435|DURSEJ|9 +S9|9436|DURSEJ|9 +S9|9437|DURSEJ|9 +S9|9438|DURSEJ|9 +S9|9439|DURSEJ|9 +S9|9440|DURSEJ|9 +S9|9441|DURSEJ|9 +S9|9442|DURSEJ|9 +S9|9443|DURSEJ|9 +S9|9444|DURSEJ|9 +S9|9445|DURSEJ|9 +S9|9446|DURSEJ|9 +S9|9447|DURSEJ|9 +S9|9448|DURSEJ|9 +S9|9449|DURSEJ|9 +S9|9450|DURSEJ|9 +S9|9451|DURSEJ|9 +S9|9452|DURSEJ|9 +S9|9453|DURSEJ|9 +S9|9454|DURSEJ|9 +S9|9455|DURSEJ|9 +S9|9456|DURSEJ|9 +S9|9457|DURSEJ|9 +S9|9458|DURSEJ|9 +S9|9459|DURSEJ|9 +S9|9460|DURSEJ|9 +S9|9461|DURSEJ|9 +S9|9462|DURSEJ|9 +S9|9463|DURSEJ|9 +S9|9464|DURSEJ|9 +S9|9465|DURSEJ|9 +S9|9466|DURSEJ|9 +S9|9467|DURSEJ|9 +S9|9468|DURSEJ|9 +S9|9469|DURSEJ|9 +S9|9470|DURSEJ|9 +S9|9471|DURSEJ|9 +S9|9472|DURSEJ|9 +S9|9473|DURSEJ|9 +S9|9474|DURSEJ|9 +S9|9475|DURSEJ|9 +S9|9476|DURSEJ|9 +S9|9477|DURSEJ|9 +S9|9478|DURSEJ|9 +S9|9479|DURSEJ|9 +S9|9480|DURSEJ|9 +S9|9481|DURSEJ|9 +S9|9482|DURSEJ|9 +S9|9483|DURSEJ|9 +S9|9484|DURSEJ|9 +S9|9485|DURSEJ|9 +S9|9486|DURSEJ|9 +S9|9487|DURSEJ|9 +S9|9488|DURSEJ|9 +S9|9489|DURSEJ|9 +S9|9490|DURSEJ|9 +S9|9491|DURSEJ|9 +S9|9492|DURSEJ|9 +S9|9493|DURSEJ|9 +S9|9494|DURSEJ|9 +S9|9495|DURSEJ|9 +S9|9496|DURSEJ|9 +S9|9497|DURSEJ|9 +S9|9498|DURSEJ|9 +S9|9499|DURSEJ|9 +S9|9500|DURSEJ|9 +S9|9501|DURSEJ|9 +S9|9502|DURSEJ|9 +S9|9503|DURSEJ|9 +S9|9504|DURSEJ|9 +S9|9505|DURSEJ|9 +S9|9506|DURSEJ|9 +S9|9507|DURSEJ|9 +S9|9508|DURSEJ|9 +S9|9509|DURSEJ|9 +S9|9510|DURSEJ|9 +S9|9511|DURSEJ|9 +S9|9512|DURSEJ|9 +S9|9513|DURSEJ|9 +S9|9514|DURSEJ|9 +S9|9515|DURSEJ|9 +S9|9516|DURSEJ|9 +S9|9517|DURSEJ|9 +S9|9518|DURSEJ|9 +S9|9519|DURSEJ|9 +S9|9520|DURSEJ|9 +S9|9521|DURSEJ|9 +S9|9522|DURSEJ|9 +S9|9523|DURSEJ|9 +S9|9524|DURSEJ|9 +S9|9525|DURSEJ|9 +S9|9526|DURSEJ|9 +S9|9527|DURSEJ|9 +S9|9528|DURSEJ|9 +S9|9529|DURSEJ|9 +S9|9530|DURSEJ|9 +S9|9531|DURSEJ|9 +S9|9532|DURSEJ|9 +S9|9533|DURSEJ|9 +S9|9534|DURSEJ|9 +S9|9535|DURSEJ|9 +S9|9536|DURSEJ|9 +S9|9537|DURSEJ|9 +S9|9538|DURSEJ|9 +S9|9539|DURSEJ|9 +S9|9540|DURSEJ|9 +S9|9541|DURSEJ|9 +S9|9542|DURSEJ|9 +S9|9543|DURSEJ|9 +S9|9544|DURSEJ|9 +S9|9545|DURSEJ|9 +S9|9546|DURSEJ|9 +S9|9547|DURSEJ|9 +S9|9548|DURSEJ|9 +S9|9549|DURSEJ|9 +S9|9550|DURSEJ|9 +S9|9551|DURSEJ|9 +S9|9552|DURSEJ|9 +S9|9553|DURSEJ|9 +S9|9554|DURSEJ|9 +S9|9555|DURSEJ|9 +S9|9556|DURSEJ|9 +S9|9557|DURSEJ|9 +S9|9558|DURSEJ|9 +S9|9559|DURSEJ|9 +S9|9560|DURSEJ|9 +S9|9561|DURSEJ|9 +S9|9562|DURSEJ|9 +S9|9563|DURSEJ|9 +S9|9564|DURSEJ|9 +S9|9565|DURSEJ|9 +S9|9566|DURSEJ|9 +S9|9567|DURSEJ|9 +S9|9568|DURSEJ|9 +S9|9569|DURSEJ|9 +S9|9570|DURSEJ|9 +S9|9571|DURSEJ|9 +S9|9572|DURSEJ|9 +S9|9573|DURSEJ|9 +S9|9574|DURSEJ|9 +S9|9575|DURSEJ|9 +S9|9576|DURSEJ|9 +S9|9577|DURSEJ|9 +S9|9578|DURSEJ|9 +S9|9579|DURSEJ|9 +S9|9580|DURSEJ|9 +S9|9581|DURSEJ|9 +S9|9582|DURSEJ|9 +S9|9583|DURSEJ|9 +S9|9584|DURSEJ|9 +S9|9585|DURSEJ|9 +S9|9586|DURSEJ|9 +S9|9587|DURSEJ|9 +S9|9588|DURSEJ|9 +S9|9589|DURSEJ|9 +S9|9590|DURSEJ|9 +S9|9591|DURSEJ|9 +S9|9592|DURSEJ|9 +S9|9593|DURSEJ|9 +S9|9594|DURSEJ|9 +S9|9595|DURSEJ|9 +S9|9596|DURSEJ|9 +S9|9597|DURSEJ|9 +S9|9598|DURSEJ|9 +S9|9599|DURSEJ|9 +S9|9600|DURSEJ|9 +S9|9601|DURSEJ|9 +S9|9602|DURSEJ|9 +S9|9603|DURSEJ|9 +S9|9604|DURSEJ|9 +S9|9605|DURSEJ|9 +S9|9606|DURSEJ|9 +S9|9607|DURSEJ|9 +S9|9608|DURSEJ|9 +S9|9609|DURSEJ|9 +S9|9610|DURSEJ|9 +S9|9611|DURSEJ|9 +S9|9612|DURSEJ|9 +S9|9613|DURSEJ|9 +S9|9614|DURSEJ|9 +S9|9615|DURSEJ|9 +S9|9616|DURSEJ|9 +S9|9617|DURSEJ|9 +S9|9618|DURSEJ|9 +S9|9619|DURSEJ|9 +S9|9620|DURSEJ|9 +S9|9621|DURSEJ|9 +S9|9622|DURSEJ|9 +S9|9623|DURSEJ|9 +S9|9624|DURSEJ|9 +S9|9625|DURSEJ|9 +S9|9626|DURSEJ|9 +S9|9627|DURSEJ|9 +S9|9628|DURSEJ|9 +S9|9629|DURSEJ|9 +S9|9630|DURSEJ|9 +S9|9631|DURSEJ|9 +S9|9632|DURSEJ|9 +S9|9633|DURSEJ|9 +S9|9634|DURSEJ|9 +S9|9635|DURSEJ|9 +S9|9636|DURSEJ|9 +S9|9637|DURSEJ|9 +S9|9638|DURSEJ|9 +S9|9639|DURSEJ|9 +S9|9640|DURSEJ|9 +S9|9641|DURSEJ|9 +S9|9642|DURSEJ|9 +S9|9643|DURSEJ|9 +S9|9644|DURSEJ|9 +S9|9645|DURSEJ|9 +S9|9646|DURSEJ|9 +S9|9647|DURSEJ|9 +S9|9648|DURSEJ|9 +S9|9649|DURSEJ|9 +S9|9650|DURSEJ|9 +S9|9651|DURSEJ|9 +S9|9652|DURSEJ|9 +S9|9653|DURSEJ|9 +S9|9654|DURSEJ|9 +S9|9655|DURSEJ|9 +S9|9656|DURSEJ|9 +S9|9657|DURSEJ|9 +S9|9658|DURSEJ|9 +S9|9659|DURSEJ|9 +S9|9660|DURSEJ|9 +S9|9661|DURSEJ|9 +S9|9662|DURSEJ|9 +S9|9663|DURSEJ|9 +S9|9664|DURSEJ|9 +S9|9665|DURSEJ|9 +S9|9666|DURSEJ|9 +S9|9667|DURSEJ|9 +S9|9668|DURSEJ|9 +S9|9669|DURSEJ|9 +S9|9670|DURSEJ|9 +S9|9671|DURSEJ|9 +S9|9672|DURSEJ|9 +S9|9673|DURSEJ|9 +S9|9674|DURSEJ|9 +S9|9675|DURSEJ|9 +S9|9676|DURSEJ|9 +S9|9677|DURSEJ|9 +S9|9678|DURSEJ|9 +S9|9679|DURSEJ|9 +S9|9680|DURSEJ|9 +S9|9681|DURSEJ|9 +S9|9682|DURSEJ|9 +S9|9683|DURSEJ|9 +S9|9684|DURSEJ|9 +S9|9685|DURSEJ|9 +S9|9686|DURSEJ|9 +S9|9687|DURSEJ|9 +S9|9688|DURSEJ|9 +S9|9689|DURSEJ|9 +S9|9690|DURSEJ|9 +S9|9691|DURSEJ|9 +S9|9692|DURSEJ|9 +S9|9693|DURSEJ|9 +S9|9694|DURSEJ|9 +S9|9695|DURSEJ|9 +S9|9696|DURSEJ|9 +S9|9697|DURSEJ|9 +S9|9698|DURSEJ|9 +S9|9699|DURSEJ|9 +S9|9700|DURSEJ|9 +S9|9701|DURSEJ|9 +S9|9702|DURSEJ|9 +S9|9703|DURSEJ|9 +S9|9704|DURSEJ|9 +S9|9705|DURSEJ|9 +S9|9706|DURSEJ|9 +S9|9707|DURSEJ|9 +S9|9708|DURSEJ|9 +S9|9709|DURSEJ|9 +S9|9710|DURSEJ|9 +S9|9711|DURSEJ|9 +S9|9712|DURSEJ|9 +S9|9713|DURSEJ|9 +S9|9714|DURSEJ|9 +S9|9715|DURSEJ|9 +S9|9716|DURSEJ|9 +S9|9717|DURSEJ|9 +S9|9718|DURSEJ|9 +S9|9719|DURSEJ|9 +S9|9720|DURSEJ|9 +S9|9721|DURSEJ|9 +S9|9722|DURSEJ|9 +S9|9723|DURSEJ|9 +S9|9724|DURSEJ|9 +S9|9725|DURSEJ|9 +S9|9726|DURSEJ|9 +S9|9727|DURSEJ|9 +S9|9728|DURSEJ|9 +S9|9729|DURSEJ|9 +S9|9730|DURSEJ|9 +S9|9731|DURSEJ|9 +S9|9732|DURSEJ|9 +S9|9733|DURSEJ|9 +S9|9734|DURSEJ|9 +S9|9735|DURSEJ|9 +S9|9736|DURSEJ|9 +S9|9737|DURSEJ|9 +S9|9738|DURSEJ|9 +S9|9739|DURSEJ|9 +S9|9740|DURSEJ|9 +S9|9741|DURSEJ|9 +S9|9742|DURSEJ|9 +S9|9743|DURSEJ|9 +S9|9744|DURSEJ|9 +S9|9745|DURSEJ|9 +S9|9746|DURSEJ|9 +S9|9747|DURSEJ|9 +S9|9748|DURSEJ|9 +S9|9749|DURSEJ|9 +S9|9750|DURSEJ|9 +S9|9751|DURSEJ|9 +S9|9752|DURSEJ|9 +S9|9753|DURSEJ|9 +S9|9754|DURSEJ|9 +S9|9755|DURSEJ|9 +S9|9756|DURSEJ|9 +S9|9757|DURSEJ|9 +S9|9758|DURSEJ|9 +S9|9759|DURSEJ|9 +S9|9760|DURSEJ|9 +S9|9761|DURSEJ|9 +S9|9762|DURSEJ|9 +S9|9763|DURSEJ|9 +S9|9764|DURSEJ|9 +S9|9765|DURSEJ|9 +S9|9766|DURSEJ|9 +S9|9767|DURSEJ|9 +S9|9768|DURSEJ|9 +S9|9769|DURSEJ|9 +S9|9770|DURSEJ|9 +S9|9771|DURSEJ|9 +S9|9772|DURSEJ|9 +S9|9773|DURSEJ|9 +S9|9774|DURSEJ|9 +S9|9775|DURSEJ|9 +S9|9776|DURSEJ|9 +S9|9777|DURSEJ|9 +S9|9778|DURSEJ|9 +S9|9779|DURSEJ|9 +S9|9780|DURSEJ|9 +S9|9781|DURSEJ|9 +S9|9782|DURSEJ|9 +S9|9783|DURSEJ|9 +S9|9784|DURSEJ|9 +S9|9785|DURSEJ|9 +S9|9786|DURSEJ|9 +S9|9787|DURSEJ|9 +S9|9788|DURSEJ|9 +S9|9789|DURSEJ|9 +S9|9790|DURSEJ|9 +S9|9791|DURSEJ|9 +S9|9792|DURSEJ|9 +S9|9793|DURSEJ|9 +S9|9794|DURSEJ|9 +S9|9795|DURSEJ|9 +S9|9796|DURSEJ|9 +S9|9797|DURSEJ|9 +S9|9798|DURSEJ|9 +S9|9799|DURSEJ|9 +S9|9800|DURSEJ|9 +S9|9801|DURSEJ|9 +S9|9802|DURSEJ|9 +S9|9803|DURSEJ|9 +S9|9804|DURSEJ|9 +S9|9805|DURSEJ|9 +S9|9806|DURSEJ|9 +S9|9807|DURSEJ|9 +S9|9808|DURSEJ|9 +S9|9809|DURSEJ|9 +S9|9810|DURSEJ|9 +S9|9811|DURSEJ|9 +S9|9812|DURSEJ|9 +S9|9813|DURSEJ|9 +S9|9814|DURSEJ|9 +S9|9815|DURSEJ|9 +S9|9816|DURSEJ|9 +S9|9817|DURSEJ|9 +S9|9818|DURSEJ|9 +S9|9819|DURSEJ|9 +S9|9820|DURSEJ|9 +S9|9821|DURSEJ|9 +S9|9822|DURSEJ|9 +S9|9823|DURSEJ|9 +S9|9824|DURSEJ|9 +S9|9825|DURSEJ|9 +S9|9826|DURSEJ|9 +S9|9827|DURSEJ|9 +S9|9828|DURSEJ|9 +S9|9829|DURSEJ|9 +S9|9830|DURSEJ|9 +S9|9831|DURSEJ|9 +S9|9832|DURSEJ|9 +S9|9833|DURSEJ|9 +S9|9834|DURSEJ|9 +S9|9835|DURSEJ|9 +S9|9836|DURSEJ|9 +S9|9837|DURSEJ|9 +S9|9838|DURSEJ|9 +S9|9839|DURSEJ|9 +S9|9840|DURSEJ|9 +S9|9841|DURSEJ|9 +S9|9842|DURSEJ|9 +S9|9843|DURSEJ|9 +S9|9844|DURSEJ|9 +S9|9845|DURSEJ|9 +S9|9846|DURSEJ|9 +S9|9847|DURSEJ|9 +S9|9848|DURSEJ|9 +S9|9849|DURSEJ|9 +S9|9850|DURSEJ|9 +S9|9851|DURSEJ|9 +S9|9852|DURSEJ|9 +S9|9853|DURSEJ|9 +S9|9854|DURSEJ|9 +S9|9855|DURSEJ|9 +S9|9856|DURSEJ|9 +S9|9857|DURSEJ|9 +S9|9858|DURSEJ|9 +S9|9859|DURSEJ|9 +S9|9860|DURSEJ|9 +S9|9861|DURSEJ|9 +S9|9862|DURSEJ|9 +S9|9863|DURSEJ|9 +S9|9864|DURSEJ|9 +S9|9865|DURSEJ|9 +S9|9866|DURSEJ|9 +S9|9867|DURSEJ|9 +S9|9868|DURSEJ|9 +S9|9869|DURSEJ|9 +S9|9870|DURSEJ|9 +S9|9871|DURSEJ|9 +S9|9872|DURSEJ|9 +S9|9873|DURSEJ|9 +S9|9874|DURSEJ|9 +S9|9875|DURSEJ|9 +S9|9876|DURSEJ|9 +S9|9877|DURSEJ|9 +S9|9878|DURSEJ|9 +S9|9879|DURSEJ|9 +S9|9880|DURSEJ|9 +S9|9881|DURSEJ|9 +S9|9882|DURSEJ|9 +S9|9883|DURSEJ|9 +S9|9884|DURSEJ|9 +S9|9885|DURSEJ|9 +S9|9886|DURSEJ|9 +S9|9887|DURSEJ|9 +S9|9888|DURSEJ|9 +S9|9889|DURSEJ|9 +S9|9890|DURSEJ|9 +S9|9891|DURSEJ|9 +S9|9892|DURSEJ|9 +S9|9893|DURSEJ|9 +S9|9894|DURSEJ|9 +S9|9895|DURSEJ|9 +S9|9896|DURSEJ|9 +S9|9897|DURSEJ|9 +S9|9898|DURSEJ|9 +S9|9899|DURSEJ|9 +S9|9900|DURSEJ|9 +S9|9901|DURSEJ|9 +S9|9902|DURSEJ|9 +S9|9903|DURSEJ|9 +S9|9904|DURSEJ|9 +S9|9905|DURSEJ|9 +S9|9906|DURSEJ|9 +S9|9907|DURSEJ|9 +S9|9908|DURSEJ|9 +S9|9909|DURSEJ|9 +S9|9910|DURSEJ|9 +S9|9911|DURSEJ|9 +S9|9912|DURSEJ|9 +S9|9913|DURSEJ|9 +S9|9914|DURSEJ|9 +S9|9915|DURSEJ|9 +S9|9916|DURSEJ|9 +S9|9917|DURSEJ|9 +S9|9918|DURSEJ|9 +S9|9919|DURSEJ|9 +S9|9920|DURSEJ|9 +S9|9921|DURSEJ|9 +S9|9922|DURSEJ|9 +S9|9923|DURSEJ|9 +S9|9924|DURSEJ|9 +S9|9925|DURSEJ|9 +S9|9926|DURSEJ|9 +S9|9927|DURSEJ|9 +S9|9928|DURSEJ|9 +S9|9929|DURSEJ|9 +S9|9930|DURSEJ|9 +S9|9931|DURSEJ|9 +S9|9932|DURSEJ|9 +S9|9933|DURSEJ|9 +S9|9934|DURSEJ|9 +S9|9935|DURSEJ|9 +S9|9936|DURSEJ|9 +S9|9937|DURSEJ|9 +S9|9938|DURSEJ|9 +S9|9939|DURSEJ|9 +S9|9940|DURSEJ|9 +S9|9941|DURSEJ|9 +S9|9942|DURSEJ|9 +S9|9943|DURSEJ|9 +S9|9944|DURSEJ|9 +S9|9945|DURSEJ|9 +S9|9946|DURSEJ|9 +S9|9947|DURSEJ|9 +S9|9948|DURSEJ|9 +S9|9949|DURSEJ|9 +S9|9950|DURSEJ|9 +S9|9951|DURSEJ|9 +S9|9952|DURSEJ|9 +S9|9953|DURSEJ|9 +S9|9954|DURSEJ|9 +S9|9955|DURSEJ|9 +S9|9956|DURSEJ|9 +S9|9957|DURSEJ|9 +S9|9958|DURSEJ|9 +S9|9959|DURSEJ|9 +S9|9960|DURSEJ|9 +S9|9961|DURSEJ|9 +S9|9962|DURSEJ|9 +S9|9963|DURSEJ|9 +S9|9964|DURSEJ|9 +S9|9965|DURSEJ|9 +S9|9966|DURSEJ|9 +S9|9967|DURSEJ|9 +S9|9968|DURSEJ|9 +S9|9969|DURSEJ|9 +S9|9970|DURSEJ|9 +S9|9971|DURSEJ|9 +S9|9972|DURSEJ|9 +S9|9973|DURSEJ|9 +S9|9974|DURSEJ|9 +S9|9975|DURSEJ|9 +S9|9976|DURSEJ|9 +S9|9977|DURSEJ|9 +S9|9978|DURSEJ|9 +S9|9979|DURSEJ|9 +S9|9980|DURSEJ|9 +S9|9981|DURSEJ|9 +S9|9982|DURSEJ|9 +S9|9983|DURSEJ|9 +S9|9984|DURSEJ|9 +S9|9985|DURSEJ|9 +S9|9986|DURSEJ|9 +S9|9987|DURSEJ|9 +S9|9988|DURSEJ|9 +S9|9989|DURSEJ|9 +S9|9990|DURSEJ|9 +S9|9991|DURSEJ|9 +S9|9992|DURSEJ|9 +S9|9993|DURSEJ|9 +S9|9994|DURSEJ|9 +S9|9995|DURSEJ|9 +S9|9996|DURSEJ|9 +S9|9997|DURSEJ|9 +S9|9998|DURSEJ|9 +S9|9999|DURSEJ|9 diff --git a/db/data2/dbdata_activite_t_classes_sections_elements_etat_sejour.csv b/db/data2/dbdata_activite_t_classes_sections_elements_etat_sejour.csv new file mode 100644 index 0000000..67a04a6 --- /dev/null +++ b/db/data2/dbdata_activite_t_classes_sections_elements_etat_sejour.csv @@ -0,0 +1,27 @@ +section_code|to_code|table_code|classe_sequence +S1|0|ETATSEJOUR|10 +S2|1|ETATSEJOUR|10 +S2|2|ETATSEJOUR|10 +S3|3|ETATSEJOUR|10 +S4|4|ETATSEJOUR|10 +S4|5|ETATSEJOUR|10 +S5|6|ETATSEJOUR|10 +S6|7|ETATSEJOUR|10 +S6|8|ETATSEJOUR|10 +S7|9|ETATSEJOUR|10 +S8|A|ETATSEJOUR|10 +S8|C|ETATSEJOUR|10 +S8|R|ETATSEJOUR|10 +S1|0|ETATSEJOUR|11 +S1|9|ETATSEJOUR|11 +S2|1|ETATSEJOUR|11 +S2|2|ETATSEJOUR|11 +S3|3|ETATSEJOUR|11 +S3|4|ETATSEJOUR|11 +S3|5|ETATSEJOUR|11 +S4|6|ETATSEJOUR|11 +S5|7|ETATSEJOUR|11 +S5|8|ETATSEJOUR|11 +S6|A|ETATSEJOUR|11 +S6|C|ETATSEJOUR|11 +S6|R|ETATSEJOUR|11 diff --git a/db/data2/dbdata_activite_t_classes_sections_elements_forme_activite.csv b/db/data2/dbdata_activite_t_classes_sections_elements_forme_activite.csv new file mode 100644 index 0000000..7dff08b --- /dev/null +++ b/db/data2/dbdata_activite_t_classes_sections_elements_forme_activite.csv @@ -0,0 +1,136 @@ +section_code|to_code|table_code|classe_sequence +1|111|FORMEACTIVITE|1 +1|112|FORMEACTIVITE|1 +1|113|FORMEACTIVITE|1 +1|114|FORMEACTIVITE|1 +1|117|FORMEACTIVITE|1 +1|118|FORMEACTIVITE|1 +1|119|FORMEACTIVITE|1 +1|121|FORMEACTIVITE|1 +1|122|FORMEACTIVITE|1 +1|123|FORMEACTIVITE|1 +1|124|FORMEACTIVITE|1 +1|127|FORMEACTIVITE|1 +1|128|FORMEACTIVITE|1 +1|129|FORMEACTIVITE|1 +1|131|FORMEACTIVITE|1 +1|132|FORMEACTIVITE|1 +1|133|FORMEACTIVITE|1 +1|139|FORMEACTIVITE|1 +2|211|FORMEACTIVITE|1 +2|212|FORMEACTIVITE|1 +2|217|FORMEACTIVITE|1 +2|218|FORMEACTIVITE|1 +2|219|FORMEACTIVITE|1 +2|221|FORMEACTIVITE|1 +2|222|FORMEACTIVITE|1 +2|227|FORMEACTIVITE|1 +2|228|FORMEACTIVITE|1 +2|229|FORMEACTIVITE|1 +3|311|FORMEACTIVITE|1 +3|317|FORMEACTIVITE|1 +3|318|FORMEACTIVITE|1 +3|319|FORMEACTIVITE|1 +3|321|FORMEACTIVITE|1 +3|327|FORMEACTIVITE|1 +3|328|FORMEACTIVITE|1 +3|329|FORMEACTIVITE|1 +4|401|FORMEACTIVITE|1 +5|501|FORMEACTIVITE|1 +5|502|FORMEACTIVITE|1 +5|503|FORMEACTIVITE|1 +7|701|FORMEACTIVITE|1 +7|702|FORMEACTIVITE|1 +7|709|FORMEACTIVITE|1 +9|***|FORMEACTIVITE|1 +9|999|FORMEACTIVITE|1 +11|111|FORMEACTIVITE|2 +11|121|FORMEACTIVITE|2 +12|112|FORMEACTIVITE|2 +12|122|FORMEACTIVITE|2 +13|113|FORMEACTIVITE|2 +13|123|FORMEACTIVITE|2 +14|114|FORMEACTIVITE|2 +14|124|FORMEACTIVITE|2 +15|131|FORMEACTIVITE|2 +15|132|FORMEACTIVITE|2 +15|133|FORMEACTIVITE|2 +15|139|FORMEACTIVITE|2 +19|117|FORMEACTIVITE|2 +19|118|FORMEACTIVITE|2 +19|119|FORMEACTIVITE|2 +19|127|FORMEACTIVITE|2 +19|128|FORMEACTIVITE|2 +19|129|FORMEACTIVITE|2 +20|211|FORMEACTIVITE|2 +20|212|FORMEACTIVITE|2 +20|217|FORMEACTIVITE|2 +20|218|FORMEACTIVITE|2 +20|219|FORMEACTIVITE|2 +20|221|FORMEACTIVITE|2 +20|222|FORMEACTIVITE|2 +20|227|FORMEACTIVITE|2 +20|228|FORMEACTIVITE|2 +20|229|FORMEACTIVITE|2 +30|311|FORMEACTIVITE|2 +30|317|FORMEACTIVITE|2 +30|318|FORMEACTIVITE|2 +30|319|FORMEACTIVITE|2 +30|321|FORMEACTIVITE|2 +30|327|FORMEACTIVITE|2 +30|328|FORMEACTIVITE|2 +30|329|FORMEACTIVITE|2 +40|401|FORMEACTIVITE|2 +50|501|FORMEACTIVITE|2 +50|502|FORMEACTIVITE|2 +50|503|FORMEACTIVITE|2 +70|701|FORMEACTIVITE|2 +70|702|FORMEACTIVITE|2 +70|709|FORMEACTIVITE|2 +99|***|FORMEACTIVITE|2 +99|999|FORMEACTIVITE|2 +11|121|FORMEACTIVITE|3 +11|122|FORMEACTIVITE|3 +11|123|FORMEACTIVITE|3 +11|124|FORMEACTIVITE|3 +11|127|FORMEACTIVITE|3 +11|128|FORMEACTIVITE|3 +11|129|FORMEACTIVITE|3 +12|111|FORMEACTIVITE|3 +12|112|FORMEACTIVITE|3 +12|113|FORMEACTIVITE|3 +12|114|FORMEACTIVITE|3 +12|117|FORMEACTIVITE|3 +12|118|FORMEACTIVITE|3 +12|119|FORMEACTIVITE|3 +2|211|FORMEACTIVITE|3 +2|212|FORMEACTIVITE|3 +2|217|FORMEACTIVITE|3 +2|218|FORMEACTIVITE|3 +2|219|FORMEACTIVITE|3 +2|221|FORMEACTIVITE|3 +2|222|FORMEACTIVITE|3 +2|227|FORMEACTIVITE|3 +2|228|FORMEACTIVITE|3 +2|229|FORMEACTIVITE|3 +3|311|FORMEACTIVITE|3 +3|317|FORMEACTIVITE|3 +3|318|FORMEACTIVITE|3 +3|319|FORMEACTIVITE|3 +3|321|FORMEACTIVITE|3 +3|327|FORMEACTIVITE|3 +3|328|FORMEACTIVITE|3 +3|329|FORMEACTIVITE|3 +4|401|FORMEACTIVITE|3 +9|***|FORMEACTIVITE|3 +9|131|FORMEACTIVITE|3 +9|132|FORMEACTIVITE|3 +9|133|FORMEACTIVITE|3 +9|139|FORMEACTIVITE|3 +9|501|FORMEACTIVITE|3 +9|502|FORMEACTIVITE|3 +9|503|FORMEACTIVITE|3 +9|701|FORMEACTIVITE|3 +9|702|FORMEACTIVITE|3 +9|709|FORMEACTIVITE|3 +9|999|FORMEACTIVITE|3 diff --git a/db/data2/dbdata_activite_t_classes_sections_elements_ghm.csv b/db/data2/dbdata_activite_t_classes_sections_elements_ghm.csv new file mode 100644 index 0000000..c83f6e9 --- /dev/null +++ b/db/data2/dbdata_activite_t_classes_sections_elements_ghm.csv @@ -0,0 +1,10036 @@ +section_code|to_code|table_code|classe_sequence +G001|06C02Z|GHM|7 +G001|06C051|GHM|7 +G001|06C052|GHM|7 +G001|06C053|GHM|7 +G001|06C054|GHM|7 +G001|06C05Z|GHM|7 +G001|06C161|GHM|7 +G001|06C162|GHM|7 +G001|06C163|GHM|7 +G001|06C164|GHM|7 +G001|06C16V|GHM|7 +G001|06C16W|GHM|7 +G001|06C201|GHM|7 +G001|06C202|GHM|7 +G001|06C203|GHM|7 +G001|06C204|GHM|7 +G001|06C221|GHM|7 +G001|06C222|GHM|7 +G001|06C223|GHM|7 +G001|06C224|GHM|7 +G001|10C04Z|GHM|7 +G001|10C091|GHM|7 +G001|10C092|GHM|7 +G001|10C093|GHM|7 +G001|10C094|GHM|7 +G001|10C09Z|GHM|7 +G002|06C021|GHM|7 +G002|06C022|GHM|7 +G002|06C023|GHM|7 +G002|06C024|GHM|7 +G002|06C031|GHM|7 +G002|06C032|GHM|7 +G002|06C033|GHM|7 +G002|06C034|GHM|7 +G002|06C03V|GHM|7 +G002|06C03W|GHM|7 +G002|06C041|GHM|7 +G002|06C042|GHM|7 +G002|06C043|GHM|7 +G002|06C044|GHM|7 +G002|06C04V|GHM|7 +G002|06C04W|GHM|7 +G003|06C081|GHM|7 +G003|06C082|GHM|7 +G003|06C083|GHM|7 +G003|06C084|GHM|7 +G003|06C08V|GHM|7 +G003|06C08W|GHM|7 +G003|06C091|GHM|7 +G003|06C092|GHM|7 +G003|06C093|GHM|7 +G003|06C094|GHM|7 +G003|06C09V|GHM|7 +G003|06C09W|GHM|7 +G004|06C101|GHM|7 +G004|06C102|GHM|7 +G004|06C103|GHM|7 +G004|06C104|GHM|7 +G004|06C10J|GHM|7 +G004|06C10Z|GHM|7 +G004|06C111|GHM|7 +G004|06C112|GHM|7 +G004|06C113|GHM|7 +G004|06C114|GHM|7 +G004|06C11J|GHM|7 +G004|06C11V|GHM|7 +G004|06C11W|GHM|7 +G004|06C121|GHM|7 +G004|06C122|GHM|7 +G004|06C123|GHM|7 +G004|06C124|GHM|7 +G004|06C12J|GHM|7 +G004|06C12V|GHM|7 +G004|06C12W|GHM|7 +G004|06C241|GHM|7 +G004|06C242|GHM|7 +G004|06C243|GHM|7 +G004|06C244|GHM|7 +G004|06C24J|GHM|7 +G004|06C251|GHM|7 +G004|06C252|GHM|7 +G004|06C253|GHM|7 +G004|06C254|GHM|7 +G004|06C25J|GHM|7 +G005|06M061|GHM|7 +G005|06M062|GHM|7 +G005|06M063|GHM|7 +G005|06M064|GHM|7 +G005|06M06T|GHM|7 +G005|06M06V|GHM|7 +G005|06M06W|GHM|7 +G006|06C071|GHM|7 +G006|06C072|GHM|7 +G006|06C073|GHM|7 +G006|06C074|GHM|7 +G006|06C07V|GHM|7 +G006|06C07W|GHM|7 +G007|06C141|GHM|7 +G007|06C142|GHM|7 +G007|06C143|GHM|7 +G007|06C144|GHM|7 +G007|06C14J|GHM|7 +G007|06C14V|GHM|7 +G007|06C14W|GHM|7 +G007|06C191|GHM|7 +G007|06C192|GHM|7 +G007|06C193|GHM|7 +G007|06C194|GHM|7 +G007|06C19J|GHM|7 +G007|09C081|GHM|7 +G007|09C082|GHM|7 +G007|09C083|GHM|7 +G007|09C084|GHM|7 +G007|09C08J|GHM|7 +G007|09C08Z|GHM|7 +G007|09C131|GHM|7 +G007|09C132|GHM|7 +G007|09C133|GHM|7 +G007|09C134|GHM|7 +G007|09C13J|GHM|7 +G008|06C131|GHM|7 +G008|06C132|GHM|7 +G008|06C133|GHM|7 +G008|06C134|GHM|7 +G008|06C13V|GHM|7 +G008|06C13W|GHM|7 +G008|06C151|GHM|7 +G008|06C152|GHM|7 +G008|06C153|GHM|7 +G008|06C154|GHM|7 +G008|06C15V|GHM|7 +G008|06C15W|GHM|7 +G008|06C211|GHM|7 +G008|06C212|GHM|7 +G008|06C213|GHM|7 +G008|06C214|GHM|7 +G008|06C231|GHM|7 +G008|06C232|GHM|7 +G008|06C233|GHM|7 +G008|06C234|GHM|7 +G008|06C23J|GHM|7 +G008|10C131|GHM|7 +G008|10C132|GHM|7 +G008|10C133|GHM|7 +G008|10C134|GHM|7 +G008|10C13Z|GHM|7 +G008|16C021|GHM|7 +G008|16C022|GHM|7 +G008|16C023|GHM|7 +G008|16C024|GHM|7 +G008|16C02Z|GHM|7 +G009|07C131|GHM|7 +G009|07C132|GHM|7 +G009|07C133|GHM|7 +G009|07C134|GHM|7 +G009|07C141|GHM|7 +G009|07C142|GHM|7 +G009|07C143|GHM|7 +G009|07C144|GHM|7 +G009|07C14J|GHM|7 +G010|07C061|GHM|7 +G010|07C062|GHM|7 +G010|07C063|GHM|7 +G010|07C064|GHM|7 +G010|07C06Z|GHM|7 +G010|07C071|GHM|7 +G010|07C072|GHM|7 +G010|07C073|GHM|7 +G010|07C074|GHM|7 +G010|07C07Z|GHM|7 +G010|07C081|GHM|7 +G010|07C082|GHM|7 +G010|07C083|GHM|7 +G010|07C084|GHM|7 +G010|07C08Z|GHM|7 +G010|07C091|GHM|7 +G010|07C092|GHM|7 +G010|07C093|GHM|7 +G010|07C094|GHM|7 +G010|07C09V|GHM|7 +G010|07C09W|GHM|7 +G010|07C101|GHM|7 +G010|07C102|GHM|7 +G010|07C103|GHM|7 +G010|07C104|GHM|7 +G010|07C10V|GHM|7 +G010|07C10W|GHM|7 +G010|07C111|GHM|7 +G010|07C112|GHM|7 +G010|07C113|GHM|7 +G010|07C114|GHM|7 +G010|07C11V|GHM|7 +G010|07C11W|GHM|7 +G010|07C121|GHM|7 +G010|07C122|GHM|7 +G010|07C123|GHM|7 +G010|07C124|GHM|7 +G010|07C12V|GHM|7 +G010|07C12W|GHM|7 +G011|06M051|GHM|7 +G011|06M052|GHM|7 +G011|06M053|GHM|7 +G011|06M054|GHM|7 +G011|06M05T|GHM|7 +G011|06M05V|GHM|7 +G011|06M05W|GHM|7 +G011|06M131|GHM|7 +G011|06M132|GHM|7 +G011|06M133|GHM|7 +G011|06M134|GHM|7 +G011|06M13T|GHM|7 +G012|06M041|GHM|7 +G012|06M042|GHM|7 +G012|06M043|GHM|7 +G012|06M044|GHM|7 +G012|06M04T|GHM|7 +G012|06M04V|GHM|7 +G012|06M04W|GHM|7 +G012|06M101|GHM|7 +G012|06M102|GHM|7 +G012|06M103|GHM|7 +G012|06M104|GHM|7 +G012|06M10Z|GHM|7 +G012|06M111|GHM|7 +G012|06M112|GHM|7 +G012|06M113|GHM|7 +G012|06M114|GHM|7 +G012|06M11T|GHM|7 +G012|06M11V|GHM|7 +G012|06M11W|GHM|7 +G013|06M15Z|GHM|7 +G013|07M121|GHM|7 +G013|07M122|GHM|7 +G013|07M123|GHM|7 +G013|07M124|GHM|7 +G014|06M071|GHM|7 +G014|06M072|GHM|7 +G014|06M073|GHM|7 +G014|06M074|GHM|7 +G014|06M07T|GHM|7 +G014|06M07V|GHM|7 +G014|06M07W|GHM|7 +G015|06M141|GHM|7 +G015|06M142|GHM|7 +G015|06M143|GHM|7 +G015|06M144|GHM|7 +G015|06M17T|GHM|7 +G015|06M17Z|GHM|7 +G015|06M191|GHM|7 +G015|06M192|GHM|7 +G015|06M193|GHM|7 +G015|06M194|GHM|7 +G015|06M201|GHM|7 +G015|06M202|GHM|7 +G015|06M203|GHM|7 +G015|06M204|GHM|7 +G015|06M20T|GHM|7 +G016|06M021|GHM|7 +G016|06M022|GHM|7 +G016|06M023|GHM|7 +G016|06M024|GHM|7 +G016|06M02T|GHM|7 +G016|06M02V|GHM|7 +G016|06M02W|GHM|7 +G016|06M031|GHM|7 +G016|06M032|GHM|7 +G016|06M033|GHM|7 +G016|06M034|GHM|7 +G016|06M03T|GHM|7 +G016|06M03V|GHM|7 +G016|06M03W|GHM|7 +G017|06M081|GHM|7 +G017|06M082|GHM|7 +G017|06M083|GHM|7 +G017|06M084|GHM|7 +G017|06M08T|GHM|7 +G017|06M08Z|GHM|7 +G017|06M091|GHM|7 +G017|06M092|GHM|7 +G017|06M093|GHM|7 +G017|06M094|GHM|7 +G017|06M09T|GHM|7 +G017|06M09V|GHM|7 +G017|06M09W|GHM|7 +G017|06M211|GHM|7 +G017|06M212|GHM|7 +G017|06M213|GHM|7 +G017|06M214|GHM|7 +G018|07M071|GHM|7 +G018|07M072|GHM|7 +G018|07M073|GHM|7 +G018|07M074|GHM|7 +G018|07M07T|GHM|7 +G018|07M081|GHM|7 +G018|07M082|GHM|7 +G018|07M083|GHM|7 +G018|07M084|GHM|7 +G018|07M08T|GHM|7 +G018|07M091|GHM|7 +G018|07M092|GHM|7 +G018|07M093|GHM|7 +G018|07M094|GHM|7 +G018|07M09T|GHM|7 +G019|07M061|GHM|7 +G019|07M062|GHM|7 +G019|07M063|GHM|7 +G019|07M064|GHM|7 +G019|07M06T|GHM|7 +G019|07M06V|GHM|7 +G019|07M06W|GHM|7 +G019|07M101|GHM|7 +G019|07M102|GHM|7 +G019|07M103|GHM|7 +G019|07M104|GHM|7 +G019|07M10T|GHM|7 +G019|07M111|GHM|7 +G019|07M112|GHM|7 +G019|07M113|GHM|7 +G019|07M114|GHM|7 +G019|07M11T|GHM|7 +G019|07M151|GHM|7 +G019|07M152|GHM|7 +G019|07M153|GHM|7 +G019|07M154|GHM|7 +G019|07M15T|GHM|7 +G020|07M021|GHM|7 +G020|07M022|GHM|7 +G020|07M023|GHM|7 +G020|07M024|GHM|7 +G020|07M02T|GHM|7 +G020|07M02V|GHM|7 +G020|07M02W|GHM|7 +G020|07M041|GHM|7 +G020|07M042|GHM|7 +G020|07M043|GHM|7 +G020|07M044|GHM|7 +G020|07M04T|GHM|7 +G020|07M04V|GHM|7 +G020|07M04W|GHM|7 +G020|07M161|GHM|7 +G020|07M162|GHM|7 +G020|07M163|GHM|7 +G020|07M164|GHM|7 +G021|06M121|GHM|7 +G021|06M122|GHM|7 +G021|06M123|GHM|7 +G021|06M124|GHM|7 +G021|06M12T|GHM|7 +G021|06M18T|GHM|7 +G021|06M18Z|GHM|7 +G021|07M14T|GHM|7 +G021|07M14Z|GHM|7 +G022|06K03J|GHM|7 +G022|06K04J|GHM|7 +G022|06K05J|GHM|7 +G022|07K02Z|GHM|7 +G022|07K04J|GHM|7 +G022|07K05J|GHM|7 +G023|06M16Z|GHM|7 +G023|07M13Z|GHM|7 +G024|08C021|GHM|7 +G024|08C022|GHM|7 +G024|08C023|GHM|7 +G024|08C024|GHM|7 +G024|08C02Z|GHM|7 +G024|08C041|GHM|7 +G024|08C042|GHM|7 +G024|08C043|GHM|7 +G024|08C044|GHM|7 +G024|08C04Z|GHM|7 +G024|08C221|GHM|7 +G024|08C222|GHM|7 +G024|08C223|GHM|7 +G024|08C224|GHM|7 +G024|08C22Z|GHM|7 +G024|08C241|GHM|7 +G024|08C242|GHM|7 +G024|08C243|GHM|7 +G024|08C244|GHM|7 +G024|08C24Z|GHM|7 +G024|08C251|GHM|7 +G024|08C252|GHM|7 +G024|08C253|GHM|7 +G024|08C254|GHM|7 +G024|08C25Z|GHM|7 +G024|08C471|GHM|7 +G024|08C472|GHM|7 +G024|08C473|GHM|7 +G024|08C474|GHM|7 +G024|08C481|GHM|7 +G024|08C482|GHM|7 +G024|08C483|GHM|7 +G024|08C484|GHM|7 +G024|08C491|GHM|7 +G024|08C492|GHM|7 +G024|08C493|GHM|7 +G024|08C494|GHM|7 +G024|08C501|GHM|7 +G024|08C502|GHM|7 +G024|08C503|GHM|7 +G024|08C504|GHM|7 +G025|08C121|GHM|7 +G025|08C122|GHM|7 +G025|08C123|GHM|7 +G025|08C124|GHM|7 +G025|08C12J|GHM|7 +G025|08C12Z|GHM|7 +G025|08C19Z|GHM|7 +G025|08C341|GHM|7 +G025|08C342|GHM|7 +G025|08C343|GHM|7 +G025|08C344|GHM|7 +G025|08C34J|GHM|7 +G025|08C381|GHM|7 +G025|08C382|GHM|7 +G025|08C383|GHM|7 +G025|08C384|GHM|7 +G025|08C38J|GHM|7 +G025|08C401|GHM|7 +G025|08C402|GHM|7 +G025|08C403|GHM|7 +G025|08C404|GHM|7 +G025|08C40J|GHM|7 +G025|08C451|GHM|7 +G025|08C452|GHM|7 +G025|08C453|GHM|7 +G025|08C454|GHM|7 +G025|08C45J|GHM|7 +G025|08C581|GHM|7 +G025|08C582|GHM|7 +G025|08C583|GHM|7 +G025|08C584|GHM|7 +G025|08C58J|GHM|7 +G026|08K02J|GHM|7 +G026|08K031|GHM|7 +G026|08K032|GHM|7 +G026|08K033|GHM|7 +G026|08K034|GHM|7 +G026|08K041|GHM|7 +G026|08K042|GHM|7 +G026|08K043|GHM|7 +G026|08K044|GHM|7 +G026|08K051|GHM|7 +G026|08K052|GHM|7 +G026|08K053|GHM|7 +G026|08K054|GHM|7 +G026|08K05J|GHM|7 +G026|08K06Z|GHM|7 +G026|08M13Z|GHM|7 +G027|08C131|GHM|7 +G027|08C132|GHM|7 +G027|08C133|GHM|7 +G027|08C134|GHM|7 +G027|08C13J|GHM|7 +G027|08C13Z|GHM|7 +G027|08C141|GHM|7 +G027|08C142|GHM|7 +G027|08C143|GHM|7 +G027|08C144|GHM|7 +G027|08C14J|GHM|7 +G027|08C14Z|GHM|7 +G028|05C121|GHM|7 +G028|05C122|GHM|7 +G028|05C123|GHM|7 +G028|05C124|GHM|7 +G028|05C12V|GHM|7 +G028|05C12W|GHM|7 +G028|05C131|GHM|7 +G028|05C132|GHM|7 +G028|05C133|GHM|7 +G028|05C134|GHM|7 +G028|05C13J|GHM|7 +G028|05C13V|GHM|7 +G028|05C13W|GHM|7 +G028|08C061|GHM|7 +G028|08C062|GHM|7 +G028|08C063|GHM|7 +G028|08C064|GHM|7 +G028|08C06Z|GHM|7 +G029|01C07Z|GHM|7 +G029|01C131|GHM|7 +G029|01C132|GHM|7 +G029|01C133|GHM|7 +G029|01C134|GHM|7 +G029|01C13J|GHM|7 +G029|01C13Z|GHM|7 +G029|01C141|GHM|7 +G029|01C142|GHM|7 +G029|01C143|GHM|7 +G029|01C144|GHM|7 +G029|01C14J|GHM|7 +G029|01C151|GHM|7 +G029|01C152|GHM|7 +G029|01C153|GHM|7 +G029|01C154|GHM|7 +G029|01C15J|GHM|7 +G029|08C17Z|GHM|7 +G029|08C411|GHM|7 +G029|08C412|GHM|7 +G029|08C413|GHM|7 +G029|08C414|GHM|7 +G029|08C41J|GHM|7 +G029|08C431|GHM|7 +G029|08C432|GHM|7 +G029|08C433|GHM|7 +G029|08C434|GHM|7 +G029|08C43J|GHM|7 +G029|08C441|GHM|7 +G029|08C442|GHM|7 +G029|08C443|GHM|7 +G029|08C444|GHM|7 +G029|08C44J|GHM|7 +G029|08C591|GHM|7 +G029|08C592|GHM|7 +G029|08C593|GHM|7 +G029|08C594|GHM|7 +G029|08C59J|GHM|7 +G029|08C601|GHM|7 +G029|08C602|GHM|7 +G029|08C603|GHM|7 +G029|08C604|GHM|7 +G029|08C60J|GHM|7 +G029|21C041|GHM|7 +G029|21C042|GHM|7 +G029|21C043|GHM|7 +G029|21C044|GHM|7 +G029|21C04J|GHM|7 +G029|21C04Z|GHM|7 +G030|08C561|GHM|7 +G030|08C562|GHM|7 +G030|08C563|GHM|7 +G030|08C564|GHM|7 +G030|08C611|GHM|7 +G030|08C612|GHM|7 +G030|08C613|GHM|7 +G030|08C614|GHM|7 +G030|08C621|GHM|7 +G030|08C622|GHM|7 +G030|08C623|GHM|7 +G030|08C624|GHM|7 +G030|08C62J|GHM|7 +G031|08C08Z|GHM|7 +G031|08C311|GHM|7 +G031|08C312|GHM|7 +G031|08C313|GHM|7 +G031|08C314|GHM|7 +G031|08C321|GHM|7 +G031|08C322|GHM|7 +G031|08C323|GHM|7 +G031|08C324|GHM|7 +G031|08C32J|GHM|7 +G031|08C531|GHM|7 +G031|08C532|GHM|7 +G031|08C533|GHM|7 +G031|08C534|GHM|7 +G031|08C541|GHM|7 +G031|08C542|GHM|7 +G031|08C543|GHM|7 +G031|08C544|GHM|7 +G031|08C54J|GHM|7 +G031|08C571|GHM|7 +G031|08C572|GHM|7 +G031|08C573|GHM|7 +G031|08C574|GHM|7 +G031|08C57J|GHM|7 +G032|08C331|GHM|7 +G032|08C332|GHM|7 +G032|08C333|GHM|7 +G032|08C334|GHM|7 +G032|08C361|GHM|7 +G032|08C362|GHM|7 +G032|08C363|GHM|7 +G032|08C364|GHM|7 +G032|08C36J|GHM|7 +G032|08C371|GHM|7 +G032|08C372|GHM|7 +G032|08C373|GHM|7 +G032|08C374|GHM|7 +G032|08C37J|GHM|7 +G032|08C551|GHM|7 +G032|08C552|GHM|7 +G032|08C553|GHM|7 +G032|08C554|GHM|7 +G033|08C351|GHM|7 +G033|08C352|GHM|7 +G033|08C353|GHM|7 +G033|08C354|GHM|7 +G033|08C35J|GHM|7 +G033|08C391|GHM|7 +G033|08C392|GHM|7 +G033|08C393|GHM|7 +G033|08C394|GHM|7 +G033|08C39J|GHM|7 +G034|08C421|GHM|7 +G034|08C422|GHM|7 +G034|08C423|GHM|7 +G034|08C424|GHM|7 +G034|08C42J|GHM|7 +G034|08C461|GHM|7 +G034|08C462|GHM|7 +G034|08C463|GHM|7 +G034|08C464|GHM|7 +G034|08C46J|GHM|7 +G035|08C291|GHM|7 +G035|08C292|GHM|7 +G035|08C293|GHM|7 +G035|08C294|GHM|7 +G035|08C29J|GHM|7 +G035|08C29Z|GHM|7 +G036|08M02Z|GHM|7 +G036|08M041|GHM|7 +G036|08M042|GHM|7 +G036|08M043|GHM|7 +G036|08M044|GHM|7 +G036|08M04T|GHM|7 +G036|08M04V|GHM|7 +G036|08M04W|GHM|7 +G036|08M051|GHM|7 +G036|08M052|GHM|7 +G036|08M053|GHM|7 +G036|08M054|GHM|7 +G036|08M05T|GHM|7 +G036|08M05Z|GHM|7 +G036|08M061|GHM|7 +G036|08M062|GHM|7 +G036|08M063|GHM|7 +G036|08M064|GHM|7 +G036|08M06T|GHM|7 +G036|08M06Z|GHM|7 +G036|08M071|GHM|7 +G036|08M072|GHM|7 +G036|08M073|GHM|7 +G036|08M074|GHM|7 +G036|08M07T|GHM|7 +G036|08M07V|GHM|7 +G036|08M07W|GHM|7 +G036|08M081|GHM|7 +G036|08M082|GHM|7 +G036|08M083|GHM|7 +G036|08M084|GHM|7 +G036|08M08T|GHM|7 +G036|08M08Z|GHM|7 +G036|08M201|GHM|7 +G036|08M202|GHM|7 +G036|08M203|GHM|7 +G036|08M204|GHM|7 +G036|08M211|GHM|7 +G036|08M212|GHM|7 +G036|08M213|GHM|7 +G036|08M214|GHM|7 +G036|08M221|GHM|7 +G036|08M222|GHM|7 +G036|08M223|GHM|7 +G036|08M224|GHM|7 +G036|08M231|GHM|7 +G036|08M232|GHM|7 +G036|08M233|GHM|7 +G036|08M234|GHM|7 +G036|08M331|GHM|7 +G036|08M332|GHM|7 +G036|08M333|GHM|7 +G036|08M334|GHM|7 +G036|08M33T|GHM|7 +G036|08M371|GHM|7 +G036|08M372|GHM|7 +G036|08M373|GHM|7 +G036|08M374|GHM|7 +G036|08M37T|GHM|7 +G036|21M061|GHM|7 +G036|21M062|GHM|7 +G036|21M063|GHM|7 +G036|21M064|GHM|7 +G036|21M06Z|GHM|7 +G036|21M071|GHM|7 +G036|21M072|GHM|7 +G036|21M073|GHM|7 +G036|21M074|GHM|7 +G036|21M07T|GHM|7 +G036|21M07V|GHM|7 +G036|21M07W|GHM|7 +G037|26C021|GHM|7 +G037|26C022|GHM|7 +G037|26C023|GHM|7 +G037|26C024|GHM|7 +G037|26C02Z|GHM|7 +G038|08M241|GHM|7 +G038|08M242|GHM|7 +G038|08M243|GHM|7 +G038|08M244|GHM|7 +G038|08M24T|GHM|7 +G038|08M251|GHM|7 +G038|08M252|GHM|7 +G038|08M253|GHM|7 +G038|08M254|GHM|7 +G038|08M25T|GHM|7 +G039|08M091|GHM|7 +G039|08M092|GHM|7 +G039|08M093|GHM|7 +G039|08M094|GHM|7 +G039|08M09T|GHM|7 +G039|08M09Z|GHM|7 +G039|08M101|GHM|7 +G039|08M102|GHM|7 +G039|08M103|GHM|7 +G039|08M104|GHM|7 +G039|08M10T|GHM|7 +G039|08M10V|GHM|7 +G039|08M10W|GHM|7 +G039|08M271|GHM|7 +G039|08M272|GHM|7 +G039|08M273|GHM|7 +G039|08M274|GHM|7 +G039|08M27T|GHM|7 +G039|08M281|GHM|7 +G039|08M282|GHM|7 +G039|08M283|GHM|7 +G039|08M284|GHM|7 +G039|08M28T|GHM|7 +G039|08M291|GHM|7 +G039|08M292|GHM|7 +G039|08M293|GHM|7 +G039|08M294|GHM|7 +G039|08M29T|GHM|7 +G039|08M301|GHM|7 +G039|08M302|GHM|7 +G039|08M303|GHM|7 +G039|08M304|GHM|7 +G039|08M30T|GHM|7 +G039|08M321|GHM|7 +G039|08M322|GHM|7 +G039|08M323|GHM|7 +G039|08M324|GHM|7 +G039|08M32T|GHM|7 +G039|08M341|GHM|7 +G039|08M342|GHM|7 +G039|08M343|GHM|7 +G039|08M344|GHM|7 +G039|08M34T|GHM|7 +G039|08M36T|GHM|7 +G039|08M36Z|GHM|7 +G040|08M141|GHM|7 +G040|08M142|GHM|7 +G040|08M143|GHM|7 +G040|08M144|GHM|7 +G040|08M14T|GHM|7 +G040|08M14V|GHM|7 +G040|08M14W|GHM|7 +G040|08M151|GHM|7 +G040|08M152|GHM|7 +G040|08M153|GHM|7 +G040|08M154|GHM|7 +G040|08M15T|GHM|7 +G040|08M15V|GHM|7 +G040|08M15W|GHM|7 +G040|08M181|GHM|7 +G040|08M182|GHM|7 +G040|08M183|GHM|7 +G040|08M184|GHM|7 +G040|08M18T|GHM|7 +G040|08M18Z|GHM|7 +G040|08M191|GHM|7 +G040|08M192|GHM|7 +G040|08M193|GHM|7 +G040|08M194|GHM|7 +G040|08M19T|GHM|7 +G040|08M19V|GHM|7 +G040|08M19W|GHM|7 +G041|01C051|GHM|7 +G041|01C052|GHM|7 +G041|01C053|GHM|7 +G041|01C054|GHM|7 +G041|01C05V|GHM|7 +G041|01C05W|GHM|7 +G041|08C26Z|GHM|7 +G041|08C271|GHM|7 +G041|08C272|GHM|7 +G041|08C273|GHM|7 +G041|08C274|GHM|7 +G041|08C27V|GHM|7 +G041|08C27W|GHM|7 +G041|08C511|GHM|7 +G041|08C512|GHM|7 +G041|08C513|GHM|7 +G041|08C514|GHM|7 +G041|08C521|GHM|7 +G041|08C522|GHM|7 +G041|08C523|GHM|7 +G041|08C524|GHM|7 +G042|08M35Z|GHM|7 +G043|01C031|GHM|7 +G043|01C032|GHM|7 +G043|01C033|GHM|7 +G043|01C034|GHM|7 +G043|01C03V|GHM|7 +G043|01C03W|GHM|7 +G044|01C02Z|GHM|7 +G044|01C041|GHM|7 +G044|01C042|GHM|7 +G044|01C043|GHM|7 +G044|01C044|GHM|7 +G044|01C04V|GHM|7 +G044|01C04W|GHM|7 +G044|01C111|GHM|7 +G044|01C112|GHM|7 +G044|01C113|GHM|7 +G044|01C114|GHM|7 +G044|01C11Z|GHM|7 +G044|01C121|GHM|7 +G044|01C122|GHM|7 +G044|01C123|GHM|7 +G044|01C124|GHM|7 +G044|01C12Z|GHM|7 +G044|10C021|GHM|7 +G044|10C022|GHM|7 +G044|10C023|GHM|7 +G044|10C024|GHM|7 +G044|10C02Z|GHM|7 +G045|01C091|GHM|7 +G045|01C092|GHM|7 +G045|01C093|GHM|7 +G045|01C094|GHM|7 +G045|01C09Z|GHM|7 +G045|01C101|GHM|7 +G045|01C102|GHM|7 +G045|01C103|GHM|7 +G045|01C104|GHM|7 +G045|01C10J|GHM|7 +G045|01C10Z|GHM|7 +G046|01M181|GHM|7 +G046|01M182|GHM|7 +G046|01M183|GHM|7 +G046|01M184|GHM|7 +G046|01M18T|GHM|7 +G046|01M18V|GHM|7 +G046|01M18W|GHM|7 +G046|01M191|GHM|7 +G046|01M192|GHM|7 +G046|01M193|GHM|7 +G046|01M194|GHM|7 +G046|01M19V|GHM|7 +G046|01M19W|GHM|7 +G046|01M201|GHM|7 +G046|01M202|GHM|7 +G046|01M203|GHM|7 +G046|01M204|GHM|7 +G046|01M20V|GHM|7 +G046|01M20W|GHM|7 +G047|01M071|GHM|7 +G047|01M072|GHM|7 +G047|01M073|GHM|7 +G047|01M074|GHM|7 +G047|01M07T|GHM|7 +G047|01M07Z|GHM|7 +G047|01M081|GHM|7 +G047|01M082|GHM|7 +G047|01M083|GHM|7 +G047|01M084|GHM|7 +G047|01M08T|GHM|7 +G047|01M08V|GHM|7 +G047|01M08W|GHM|7 +G047|01M171|GHM|7 +G047|01M172|GHM|7 +G047|01M173|GHM|7 +G047|01M174|GHM|7 +G047|01M17T|GHM|7 +G047|01M17V|GHM|7 +G047|01M17W|GHM|7 +G048|01M091|GHM|7 +G048|01M092|GHM|7 +G048|01M093|GHM|7 +G048|01M094|GHM|7 +G048|01M09T|GHM|7 +G048|01M09Z|GHM|7 +G048|01M111|GHM|7 +G048|01M112|GHM|7 +G048|01M113|GHM|7 +G048|01M114|GHM|7 +G048|01M11T|GHM|7 +G048|01M11V|GHM|7 +G048|01M11W|GHM|7 +G049|01M101|GHM|7 +G049|01M102|GHM|7 +G049|01M103|GHM|7 +G049|01M104|GHM|7 +G049|01M10T|GHM|7 +G049|01M10V|GHM|7 +G049|01M10W|GHM|7 +G049|01M151|GHM|7 +G049|01M152|GHM|7 +G049|01M153|GHM|7 +G049|01M154|GHM|7 +G049|01M15T|GHM|7 +G049|01M15Z|GHM|7 +G049|01M161|GHM|7 +G049|01M162|GHM|7 +G049|01M163|GHM|7 +G049|01M164|GHM|7 +G049|01M16T|GHM|7 +G049|01M16Z|GHM|7 +G049|01M301|GHM|7 +G049|01M302|GHM|7 +G049|01M303|GHM|7 +G049|01M304|GHM|7 +G049|01M30T|GHM|7 +G049|01M311|GHM|7 +G049|01M312|GHM|7 +G049|01M313|GHM|7 +G049|01M314|GHM|7 +G049|01M31T|GHM|7 +G049|01M36E|GHM|7 +G050|01M131|GHM|7 +G050|01M132|GHM|7 +G050|01M133|GHM|7 +G050|01M134|GHM|7 +G050|01M13Z|GHM|7 +G051|01M221|GHM|7 +G051|01M222|GHM|7 +G051|01M223|GHM|7 +G051|01M224|GHM|7 +G051|01M22T|GHM|7 +G051|01M22Z|GHM|7 +G052|01M02Z|GHM|7 +G052|01M231|GHM|7 +G052|01M232|GHM|7 +G052|01M233|GHM|7 +G052|01M234|GHM|7 +G052|01M23Z|GHM|7 +G052|01M241|GHM|7 +G052|01M242|GHM|7 +G052|01M243|GHM|7 +G052|01M244|GHM|7 +G052|01M24T|GHM|7 +G052|01M24V|GHM|7 +G052|01M24W|GHM|7 +G052|01M251|GHM|7 +G052|01M252|GHM|7 +G052|01M253|GHM|7 +G052|01M254|GHM|7 +G052|01M25T|GHM|7 +G052|01M25V|GHM|7 +G052|01M25W|GHM|7 +G053|01M041|GHM|7 +G053|01M042|GHM|7 +G053|01M043|GHM|7 +G053|01M044|GHM|7 +G053|01M04T|GHM|7 +G053|01M04Z|GHM|7 +G053|01M051|GHM|7 +G053|01M052|GHM|7 +G053|01M053|GHM|7 +G053|01M054|GHM|7 +G053|01M05T|GHM|7 +G053|01M05V|GHM|7 +G053|01M05W|GHM|7 +G054|01M261|GHM|7 +G054|01M262|GHM|7 +G054|01M263|GHM|7 +G054|01M264|GHM|7 +G054|01M26T|GHM|7 +G054|01M271|GHM|7 +G054|01M272|GHM|7 +G054|01M273|GHM|7 +G054|01M274|GHM|7 +G054|01M27T|GHM|7 +G055|01M121|GHM|7 +G055|01M122|GHM|7 +G055|01M123|GHM|7 +G055|01M124|GHM|7 +G055|01M12T|GHM|7 +G055|01M12V|GHM|7 +G055|01M12W|GHM|7 +G055|01M281|GHM|7 +G055|01M282|GHM|7 +G055|01M283|GHM|7 +G055|01M284|GHM|7 +G055|01M28T|GHM|7 +G055|01M291|GHM|7 +G055|01M292|GHM|7 +G055|01M293|GHM|7 +G055|01M294|GHM|7 +G055|01M331|GHM|7 +G055|01M332|GHM|7 +G055|01M333|GHM|7 +G055|01M334|GHM|7 +G055|01M34T|GHM|7 +G055|01M34Z|GHM|7 +G055|01M35T|GHM|7 +G055|01M35Z|GHM|7 +G055|01M381|GHM|7 +G055|01M382|GHM|7 +G055|01M383|GHM|7 +G055|01M384|GHM|7 +G055|01M391|GHM|7 +G055|01M392|GHM|7 +G055|01M393|GHM|7 +G055|01M394|GHM|7 +G056|01M32Z|GHM|7 +G057|05K03Z|GHM|7 +G057|05K04Z|GHM|7 +G057|05K051|GHM|7 +G057|05K052|GHM|7 +G057|05K053|GHM|7 +G057|05K054|GHM|7 +G057|05K05V|GHM|7 +G057|05K05W|GHM|7 +G057|05K061|GHM|7 +G057|05K062|GHM|7 +G057|05K063|GHM|7 +G057|05K064|GHM|7 +G057|05K06T|GHM|7 +G057|05K06V|GHM|7 +G057|05K06W|GHM|7 +G057|05K211|GHM|7 +G057|05K212|GHM|7 +G057|05K213|GHM|7 +G057|05K214|GHM|7 +G058|05K07Z|GHM|7 +G058|05K08Z|GHM|7 +G058|05K111|GHM|7 +G058|05K112|GHM|7 +G058|05K113|GHM|7 +G058|05K114|GHM|7 +G058|05K11T|GHM|7 +G058|05K11Z|GHM|7 +G058|05K121|GHM|7 +G058|05K122|GHM|7 +G058|05K123|GHM|7 +G058|05K124|GHM|7 +G058|05K12Z|GHM|7 +G058|05K131|GHM|7 +G058|05K132|GHM|7 +G058|05K133|GHM|7 +G058|05K134|GHM|7 +G058|05K13J|GHM|7 +G058|05K13Z|GHM|7 +G058|05K191|GHM|7 +G058|05K192|GHM|7 +G058|05K193|GHM|7 +G058|05K194|GHM|7 +G058|05K201|GHM|7 +G058|05K202|GHM|7 +G058|05K203|GHM|7 +G058|05K204|GHM|7 +G058|05K20T|GHM|7 +G058|05K221|GHM|7 +G058|05K222|GHM|7 +G058|05K223|GHM|7 +G058|05K224|GHM|7 +G058|05K231|GHM|7 +G058|05K232|GHM|7 +G058|05K233|GHM|7 +G058|05K234|GHM|7 +G058|05K23J|GHM|7 +G058|05K241|GHM|7 +G058|05K242|GHM|7 +G058|05K243|GHM|7 +G058|05K244|GHM|7 +G058|05K24J|GHM|7 +G058|05K251|GHM|7 +G058|05K252|GHM|7 +G058|05K253|GHM|7 +G058|05K254|GHM|7 +G058|05K25J|GHM|7 +G058|05K261|GHM|7 +G058|05K262|GHM|7 +G058|05K263|GHM|7 +G058|05K264|GHM|7 +G058|05K26J|GHM|7 +G059|05K09Z|GHM|7 +G059|05K101|GHM|7 +G059|05K102|GHM|7 +G059|05K103|GHM|7 +G059|05K104|GHM|7 +G059|05K10J|GHM|7 +G059|05K10Z|GHM|7 +G059|05K151|GHM|7 +G059|05K152|GHM|7 +G059|05K153|GHM|7 +G059|05K154|GHM|7 +G059|05K15J|GHM|7 +G060|01K021|GHM|7 +G060|01K022|GHM|7 +G060|01K023|GHM|7 +G060|01K024|GHM|7 +G060|01K02Z|GHM|7 +G060|01K031|GHM|7 +G060|01K032|GHM|7 +G060|01K033|GHM|7 +G060|01K034|GHM|7 +G060|01K03Z|GHM|7 +G060|01K071|GHM|7 +G060|01K072|GHM|7 +G060|01K073|GHM|7 +G060|01K074|GHM|7 +G061|05C021|GHM|7 +G061|05C022|GHM|7 +G061|05C023|GHM|7 +G061|05C024|GHM|7 +G061|05C02Z|GHM|7 +G061|05C031|GHM|7 +G061|05C032|GHM|7 +G061|05C033|GHM|7 +G061|05C034|GHM|7 +G061|05C03V|GHM|7 +G061|05C03W|GHM|7 +G062|05C041|GHM|7 +G062|05C042|GHM|7 +G062|05C043|GHM|7 +G062|05C044|GHM|7 +G062|05C04V|GHM|7 +G062|05C04W|GHM|7 +G062|05C051|GHM|7 +G062|05C052|GHM|7 +G062|05C053|GHM|7 +G062|05C054|GHM|7 +G062|05C05V|GHM|7 +G062|05C05W|GHM|7 +G063|05C061|GHM|7 +G063|05C062|GHM|7 +G063|05C063|GHM|7 +G063|05C064|GHM|7 +G063|05C06V|GHM|7 +G063|05C06W|GHM|7 +G063|05C071|GHM|7 +G063|05C072|GHM|7 +G063|05C073|GHM|7 +G063|05C074|GHM|7 +G063|05C07Z|GHM|7 +G063|05C081|GHM|7 +G063|05C082|GHM|7 +G063|05C083|GHM|7 +G063|05C084|GHM|7 +G063|05C08T|GHM|7 +G063|05C08V|GHM|7 +G063|05C08W|GHM|7 +G063|05C091|GHM|7 +G063|05C092|GHM|7 +G063|05C093|GHM|7 +G063|05C094|GHM|7 +G063|05C09Z|GHM|7 +G064|05C141|GHM|7 +G064|05C142|GHM|7 +G064|05C143|GHM|7 +G064|05C144|GHM|7 +G064|05C14J|GHM|7 +G064|05C14Z|GHM|7 +G064|05C151|GHM|7 +G064|05C152|GHM|7 +G064|05C153|GHM|7 +G064|05C154|GHM|7 +G064|05C15T|GHM|7 +G064|05C15Z|GHM|7 +G064|05C16Z|GHM|7 +G064|05C191|GHM|7 +G064|05C192|GHM|7 +G064|05C193|GHM|7 +G064|05C194|GHM|7 +G064|05C19T|GHM|7 +G064|05C19Z|GHM|7 +G064|05C201|GHM|7 +G064|05C202|GHM|7 +G064|05C203|GHM|7 +G064|05C204|GHM|7 +G064|05C20Z|GHM|7 +G064|05C221|GHM|7 +G064|05C222|GHM|7 +G064|05C223|GHM|7 +G064|05C224|GHM|7 +G064|05C22T|GHM|7 +G065|05M091|GHM|7 +G065|05M092|GHM|7 +G065|05M093|GHM|7 +G065|05M094|GHM|7 +G065|05M09T|GHM|7 +G065|05M09V|GHM|7 +G065|05M09W|GHM|7 +G065|05M101|GHM|7 +G065|05M102|GHM|7 +G065|05M103|GHM|7 +G065|05M104|GHM|7 +G065|05M10T|GHM|7 +G065|05M10Z|GHM|7 +G065|05M111|GHM|7 +G065|05M112|GHM|7 +G065|05M113|GHM|7 +G065|05M114|GHM|7 +G065|05M11T|GHM|7 +G065|05M11V|GHM|7 +G065|05M11W|GHM|7 +G065|05M141|GHM|7 +G065|05M142|GHM|7 +G065|05M143|GHM|7 +G065|05M144|GHM|7 +G065|05M14Z|GHM|7 +G066|05M02E|GHM|7 +G066|05M03Z|GHM|7 +G066|05M041|GHM|7 +G066|05M042|GHM|7 +G066|05M043|GHM|7 +G066|05M044|GHM|7 +G066|05M04T|GHM|7 +G066|05M04V|GHM|7 +G066|05M04W|GHM|7 +G066|05M061|GHM|7 +G066|05M062|GHM|7 +G066|05M063|GHM|7 +G066|05M064|GHM|7 +G066|05M06T|GHM|7 +G066|05M06V|GHM|7 +G066|05M06W|GHM|7 +G066|05M161|GHM|7 +G066|05M162|GHM|7 +G066|05M163|GHM|7 +G066|05M164|GHM|7 +G066|05M16T|GHM|7 +G066|05M16V|GHM|7 +G066|05M16W|GHM|7 +G066|05M21E|GHM|7 +G067|05M181|GHM|7 +G067|05M182|GHM|7 +G067|05M183|GHM|7 +G067|05M184|GHM|7 +G067|05M18T|GHM|7 +G067|05M18Z|GHM|7 +G068|05M151|GHM|7 +G068|05M152|GHM|7 +G068|05M153|GHM|7 +G068|05M154|GHM|7 +G068|05M15T|GHM|7 +G068|05M15Z|GHM|7 +G069|05M081|GHM|7 +G069|05M082|GHM|7 +G069|05M083|GHM|7 +G069|05M084|GHM|7 +G069|05M08T|GHM|7 +G069|05M08V|GHM|7 +G069|05M08W|GHM|7 +G070|05M051|GHM|7 +G070|05M052|GHM|7 +G070|05M053|GHM|7 +G070|05M054|GHM|7 +G070|05M05T|GHM|7 +G070|05M05V|GHM|7 +G070|05M05W|GHM|7 +G070|05M131|GHM|7 +G070|05M132|GHM|7 +G070|05M133|GHM|7 +G070|05M134|GHM|7 +G070|05M13T|GHM|7 +G070|05M13Z|GHM|7 +G070|05M171|GHM|7 +G070|05M172|GHM|7 +G070|05M173|GHM|7 +G070|05M174|GHM|7 +G070|05M17T|GHM|7 +G070|05M17V|GHM|7 +G070|05M17W|GHM|7 +G070|05M191|GHM|7 +G070|05M192|GHM|7 +G070|05M193|GHM|7 +G070|05M194|GHM|7 +G070|05M23T|GHM|7 +G070|05M23Z|GHM|7 +G071|05M20Z|GHM|7 +G072|05C101|GHM|7 +G072|05C102|GHM|7 +G072|05C103|GHM|7 +G072|05C104|GHM|7 +G072|05C10V|GHM|7 +G072|05C10W|GHM|7 +G073|05C171|GHM|7 +G073|05C172|GHM|7 +G073|05C173|GHM|7 +G073|05C174|GHM|7 +G073|05C17J|GHM|7 +G073|05C17V|GHM|7 +G073|05C17W|GHM|7 +G074|01C061|GHM|7 +G074|01C062|GHM|7 +G074|01C063|GHM|7 +G074|01C064|GHM|7 +G074|01C06V|GHM|7 +G074|01C06W|GHM|7 +G074|05C111|GHM|7 +G074|05C112|GHM|7 +G074|05C113|GHM|7 +G074|05C114|GHM|7 +G074|05C11J|GHM|7 +G074|05C11V|GHM|7 +G074|05C11W|GHM|7 +G074|05C211|GHM|7 +G074|05C212|GHM|7 +G074|05C213|GHM|7 +G074|05C214|GHM|7 +G074|05C21J|GHM|7 +G074|11C091|GHM|7 +G074|11C092|GHM|7 +G074|11C093|GHM|7 +G074|11C094|GHM|7 +G074|11C09J|GHM|7 +G075|05M071|GHM|7 +G075|05M072|GHM|7 +G075|05M073|GHM|7 +G075|05M074|GHM|7 +G075|05M07T|GHM|7 +G075|05M07V|GHM|7 +G075|05M07W|GHM|7 +G075|05M121|GHM|7 +G075|05M122|GHM|7 +G075|05M123|GHM|7 +G075|05M124|GHM|7 +G075|05M12T|GHM|7 +G075|05M12V|GHM|7 +G075|05M12W|GHM|7 +G076|04C021|GHM|7 +G076|04C022|GHM|7 +G076|04C023|GHM|7 +G076|04C024|GHM|7 +G076|04C02V|GHM|7 +G076|04C02W|GHM|7 +G076|04C041|GHM|7 +G076|04C042|GHM|7 +G076|04C043|GHM|7 +G076|04C044|GHM|7 +G077|04C031|GHM|7 +G077|04C032|GHM|7 +G077|04C033|GHM|7 +G077|04C034|GHM|7 +G077|04C03V|GHM|7 +G077|04C03W|GHM|7 +G078|04M021|GHM|7 +G078|04M022|GHM|7 +G078|04M023|GHM|7 +G078|04M024|GHM|7 +G078|04M02T|GHM|7 +G078|04M02V|GHM|7 +G078|04M02W|GHM|7 +G078|04M031|GHM|7 +G078|04M032|GHM|7 +G078|04M033|GHM|7 +G078|04M034|GHM|7 +G078|04M03T|GHM|7 +G078|04M03V|GHM|7 +G078|04M03W|GHM|7 +G078|04M081|GHM|7 +G078|04M082|GHM|7 +G078|04M083|GHM|7 +G078|04M084|GHM|7 +G078|04M08T|GHM|7 +G078|04M08V|GHM|7 +G078|04M08W|GHM|7 +G078|04M161|GHM|7 +G078|04M162|GHM|7 +G078|04M163|GHM|7 +G078|04M164|GHM|7 +G078|04M16T|GHM|7 +G078|04M16V|GHM|7 +G078|04M16W|GHM|7 +G078|04M181|GHM|7 +G078|04M182|GHM|7 +G078|04M183|GHM|7 +G078|04M184|GHM|7 +G078|04M18T|GHM|7 +G079|04M101|GHM|7 +G079|04M102|GHM|7 +G079|04M103|GHM|7 +G079|04M104|GHM|7 +G079|04M10T|GHM|7 +G079|04M10V|GHM|7 +G079|04M10W|GHM|7 +G079|04M131|GHM|7 +G079|04M132|GHM|7 +G079|04M133|GHM|7 +G079|04M134|GHM|7 +G079|04M13T|GHM|7 +G079|04M13Z|GHM|7 +G080|04M041|GHM|7 +G080|04M042|GHM|7 +G080|04M043|GHM|7 +G080|04M044|GHM|7 +G080|04M04Z|GHM|7 +G080|04M051|GHM|7 +G080|04M052|GHM|7 +G080|04M053|GHM|7 +G080|04M054|GHM|7 +G080|04M05T|GHM|7 +G080|04M05V|GHM|7 +G080|04M05W|GHM|7 +G080|04M061|GHM|7 +G080|04M062|GHM|7 +G080|04M063|GHM|7 +G080|04M064|GHM|7 +G080|04M06T|GHM|7 +G080|04M06Z|GHM|7 +G080|04M071|GHM|7 +G080|04M072|GHM|7 +G080|04M073|GHM|7 +G080|04M074|GHM|7 +G080|04M07T|GHM|7 +G080|04M07V|GHM|7 +G080|04M07W|GHM|7 +G080|04M191|GHM|7 +G080|04M192|GHM|7 +G080|04M193|GHM|7 +G080|04M194|GHM|7 +G080|04M19T|GHM|7 +G080|04M201|GHM|7 +G080|04M202|GHM|7 +G080|04M203|GHM|7 +G080|04M204|GHM|7 +G080|04M20T|GHM|7 +G080|04M251|GHM|7 +G080|04M252|GHM|7 +G080|04M253|GHM|7 +G080|04M254|GHM|7 +G080|04M25T|GHM|7 +G081|04M091|GHM|7 +G081|04M092|GHM|7 +G081|04M093|GHM|7 +G081|04M094|GHM|7 +G081|04M09T|GHM|7 +G081|04M09V|GHM|7 +G081|04M09W|GHM|7 +G082|04M111|GHM|7 +G082|04M112|GHM|7 +G082|04M113|GHM|7 +G082|04M114|GHM|7 +G082|04M11V|GHM|7 +G082|04M11W|GHM|7 +G082|04M121|GHM|7 +G082|04M122|GHM|7 +G082|04M123|GHM|7 +G082|04M124|GHM|7 +G082|04M12T|GHM|7 +G082|04M12V|GHM|7 +G082|04M12W|GHM|7 +G082|04M141|GHM|7 +G082|04M142|GHM|7 +G082|04M143|GHM|7 +G082|04M144|GHM|7 +G082|04M14T|GHM|7 +G082|04M14V|GHM|7 +G082|04M14W|GHM|7 +G082|04M151|GHM|7 +G082|04M152|GHM|7 +G082|04M153|GHM|7 +G082|04M154|GHM|7 +G082|04M15T|GHM|7 +G082|04M15V|GHM|7 +G082|04M15W|GHM|7 +G082|04M171|GHM|7 +G082|04M172|GHM|7 +G082|04M173|GHM|7 +G082|04M174|GHM|7 +G082|04M17T|GHM|7 +G082|04M17V|GHM|7 +G082|04M17W|GHM|7 +G082|04M211|GHM|7 +G082|04M212|GHM|7 +G082|04M213|GHM|7 +G082|04M214|GHM|7 +G082|04M23T|GHM|7 +G082|04M23Z|GHM|7 +G082|04M24E|GHM|7 +G082|04M261|GHM|7 +G082|04M262|GHM|7 +G082|04M263|GHM|7 +G082|04M264|GHM|7 +G082|04M26T|GHM|7 +G082|04M271|GHM|7 +G082|04M272|GHM|7 +G082|04M273|GHM|7 +G082|04M274|GHM|7 +G083|04M22Z|GHM|7 +G084|04K02J|GHM|7 +G085|03C191|GHM|7 +G085|03C192|GHM|7 +G085|03C193|GHM|7 +G085|03C194|GHM|7 +G085|03C19J|GHM|7 +G085|03C19Z|GHM|7 +G085|03C251|GHM|7 +G085|03C252|GHM|7 +G085|03C253|GHM|7 +G085|03C254|GHM|7 +G085|03C261|GHM|7 +G085|03C262|GHM|7 +G085|03C263|GHM|7 +G085|03C264|GHM|7 +G085|08C281|GHM|7 +G085|08C282|GHM|7 +G085|08C283|GHM|7 +G085|08C284|GHM|7 +G085|08C28J|GHM|7 +G085|08C28Z|GHM|7 +G086|03C181|GHM|7 +G086|03C182|GHM|7 +G086|03C183|GHM|7 +G086|03C184|GHM|7 +G086|03C18Z|GHM|7 +G086|03C201|GHM|7 +G086|03C202|GHM|7 +G086|03C203|GHM|7 +G086|03C204|GHM|7 +G086|03C20J|GHM|7 +G086|03C20Z|GHM|7 +G086|03C211|GHM|7 +G086|03C212|GHM|7 +G086|03C213|GHM|7 +G086|03C214|GHM|7 +G086|03C21J|GHM|7 +G086|03C21Z|GHM|7 +G086|03C301|GHM|7 +G086|03C302|GHM|7 +G086|03C303|GHM|7 +G086|03C304|GHM|7 +G086|03C30J|GHM|7 +G087|03C101|GHM|7 +G087|03C102|GHM|7 +G087|03C103|GHM|7 +G087|03C104|GHM|7 +G087|03C10Z|GHM|7 +G087|03C111|GHM|7 +G087|03C112|GHM|7 +G087|03C113|GHM|7 +G087|03C114|GHM|7 +G087|03C11Z|GHM|7 +G087|03C121|GHM|7 +G087|03C122|GHM|7 +G087|03C123|GHM|7 +G087|03C124|GHM|7 +G087|03C12Z|GHM|7 +G087|03C131|GHM|7 +G087|03C132|GHM|7 +G087|03C133|GHM|7 +G087|03C134|GHM|7 +G087|03C13Z|GHM|7 +G087|03C141|GHM|7 +G087|03C142|GHM|7 +G087|03C143|GHM|7 +G087|03C144|GHM|7 +G087|03C14J|GHM|7 +G087|03C14Z|GHM|7 +G087|03C151|GHM|7 +G087|03C152|GHM|7 +G087|03C153|GHM|7 +G087|03C154|GHM|7 +G087|03C15J|GHM|7 +G087|03C15Z|GHM|7 +G087|03C22J|GHM|7 +G087|03C27J|GHM|7 +G087|03C28J|GHM|7 +G088|03C03Z|GHM|7 +G088|03C04Z|GHM|7 +G088|03C051|GHM|7 +G088|03C052|GHM|7 +G088|03C053|GHM|7 +G088|03C054|GHM|7 +G088|03C05T|GHM|7 +G088|03C05Z|GHM|7 +G088|03C061|GHM|7 +G088|03C062|GHM|7 +G088|03C063|GHM|7 +G088|03C064|GHM|7 +G088|03C06J|GHM|7 +G088|03C06Z|GHM|7 +G088|03C071|GHM|7 +G088|03C072|GHM|7 +G088|03C073|GHM|7 +G088|03C074|GHM|7 +G088|03C07J|GHM|7 +G088|03C07V|GHM|7 +G088|03C07W|GHM|7 +G088|03C091|GHM|7 +G088|03C092|GHM|7 +G088|03C093|GHM|7 +G088|03C094|GHM|7 +G088|03C09J|GHM|7 +G088|03C09Z|GHM|7 +G088|03C161|GHM|7 +G088|03C162|GHM|7 +G088|03C163|GHM|7 +G088|03C164|GHM|7 +G088|03C16J|GHM|7 +G088|03C16V|GHM|7 +G088|03C16W|GHM|7 +G088|03C241|GHM|7 +G088|03C242|GHM|7 +G088|03C243|GHM|7 +G088|03C244|GHM|7 +G088|03C24J|GHM|7 +G088|03C291|GHM|7 +G088|03C292|GHM|7 +G088|03C293|GHM|7 +G088|03C294|GHM|7 +G088|03C29J|GHM|7 +G089|03C171|GHM|7 +G089|03C172|GHM|7 +G089|03C173|GHM|7 +G089|03C174|GHM|7 +G089|03C17J|GHM|7 +G089|03C17Z|GHM|7 +G090|03M101|GHM|7 +G090|03M102|GHM|7 +G090|03M103|GHM|7 +G090|03M104|GHM|7 +G090|03M10T|GHM|7 +G090|03M10Z|GHM|7 +G090|03M111|GHM|7 +G090|03M112|GHM|7 +G090|03M113|GHM|7 +G090|03M114|GHM|7 +G090|03M11T|GHM|7 +G090|03M11V|GHM|7 +G090|03M11W|GHM|7 +G091|03M031|GHM|7 +G091|03M032|GHM|7 +G091|03M033|GHM|7 +G091|03M034|GHM|7 +G091|03M03T|GHM|7 +G091|03M03Z|GHM|7 +G091|03M041|GHM|7 +G091|03M042|GHM|7 +G091|03M043|GHM|7 +G091|03M044|GHM|7 +G091|03M04T|GHM|7 +G091|03M04V|GHM|7 +G091|03M04W|GHM|7 +G091|03M121|GHM|7 +G091|03M122|GHM|7 +G091|03M123|GHM|7 +G091|03M124|GHM|7 +G091|03M131|GHM|7 +G091|03M132|GHM|7 +G091|03M133|GHM|7 +G091|03M134|GHM|7 +G092|03M071|GHM|7 +G092|03M072|GHM|7 +G092|03M073|GHM|7 +G092|03M074|GHM|7 +G092|03M07T|GHM|7 +G092|03M07V|GHM|7 +G092|03M07W|GHM|7 +G093|03M021|GHM|7 +G093|03M022|GHM|7 +G093|03M023|GHM|7 +G093|03M024|GHM|7 +G093|03M02T|GHM|7 +G093|03M02Z|GHM|7 +G093|03M051|GHM|7 +G093|03M052|GHM|7 +G093|03M053|GHM|7 +G093|03M054|GHM|7 +G093|03M05T|GHM|7 +G093|03M05Z|GHM|7 +G093|03M061|GHM|7 +G093|03M062|GHM|7 +G093|03M063|GHM|7 +G093|03M064|GHM|7 +G093|03M06T|GHM|7 +G093|03M06Z|GHM|7 +G093|03M081|GHM|7 +G093|03M082|GHM|7 +G093|03M083|GHM|7 +G093|03M084|GHM|7 +G093|03M08T|GHM|7 +G093|03M08Z|GHM|7 +G093|03M091|GHM|7 +G093|03M092|GHM|7 +G093|03M093|GHM|7 +G093|03M094|GHM|7 +G093|03M09T|GHM|7 +G093|03M09V|GHM|7 +G093|03M09W|GHM|7 +G093|03M15T|GHM|7 +G093|03M15Z|GHM|7 +G094|03M14Z|GHM|7 +G095|03K03J|GHM|7 +G096|02C021|GHM|7 +G096|02C022|GHM|7 +G096|02C023|GHM|7 +G096|02C024|GHM|7 +G096|02C02J|GHM|7 +G096|02C02V|GHM|7 +G096|02C02W|GHM|7 +G096|02C031|GHM|7 +G096|02C032|GHM|7 +G096|02C033|GHM|7 +G096|02C034|GHM|7 +G096|02C03J|GHM|7 +G096|02C03Z|GHM|7 +G096|02C101|GHM|7 +G096|02C102|GHM|7 +G096|02C103|GHM|7 +G096|02C104|GHM|7 +G096|02C10J|GHM|7 +G096|02C111|GHM|7 +G096|02C112|GHM|7 +G096|02C113|GHM|7 +G096|02C114|GHM|7 +G096|02C11J|GHM|7 +G097|02C051|GHM|7 +G097|02C052|GHM|7 +G097|02C053|GHM|7 +G097|02C054|GHM|7 +G097|02C05J|GHM|7 +G097|02C05Z|GHM|7 +G097|02C121|GHM|7 +G097|02C122|GHM|7 +G097|02C123|GHM|7 +G097|02C124|GHM|7 +G097|02C12J|GHM|7 +G098|02C091|GHM|7 +G098|02C092|GHM|7 +G098|02C093|GHM|7 +G098|02C094|GHM|7 +G098|02C09J|GHM|7 +G098|02C09Z|GHM|7 +G099|02C04Z|GHM|7 +G099|02C061|GHM|7 +G099|02C062|GHM|7 +G099|02C063|GHM|7 +G099|02C064|GHM|7 +G099|02C06J|GHM|7 +G099|02C06Z|GHM|7 +G099|02C071|GHM|7 +G099|02C072|GHM|7 +G099|02C073|GHM|7 +G099|02C074|GHM|7 +G099|02C07J|GHM|7 +G099|02C07Z|GHM|7 +G099|02C081|GHM|7 +G099|02C082|GHM|7 +G099|02C083|GHM|7 +G099|02C084|GHM|7 +G099|02C08J|GHM|7 +G099|02C08V|GHM|7 +G099|02C08W|GHM|7 +G099|02C131|GHM|7 +G099|02C132|GHM|7 +G099|02C133|GHM|7 +G099|02C134|GHM|7 +G099|02C13J|GHM|7 +G100|02M021|GHM|7 +G100|02M022|GHM|7 +G100|02M023|GHM|7 +G100|02M024|GHM|7 +G100|02M02Z|GHM|7 +G100|02M041|GHM|7 +G100|02M042|GHM|7 +G100|02M043|GHM|7 +G100|02M044|GHM|7 +G100|02M04T|GHM|7 +G100|02M04Z|GHM|7 +G100|02M051|GHM|7 +G100|02M052|GHM|7 +G100|02M053|GHM|7 +G100|02M054|GHM|7 +G100|02M05T|GHM|7 +G100|02M05Z|GHM|7 +G100|02M071|GHM|7 +G100|02M072|GHM|7 +G100|02M073|GHM|7 +G100|02M074|GHM|7 +G100|02M07T|GHM|7 +G100|02M081|GHM|7 +G100|02M082|GHM|7 +G100|02M083|GHM|7 +G100|02M084|GHM|7 +G100|02M08T|GHM|7 +G100|02M10T|GHM|7 +G100|02M10Z|GHM|7 +G101|02M031|GHM|7 +G101|02M032|GHM|7 +G101|02M033|GHM|7 +G101|02M034|GHM|7 +G101|02M03Z|GHM|7 +G102|02M09Z|GHM|7 +G103|13C051|GHM|7 +G103|13C052|GHM|7 +G103|13C053|GHM|7 +G103|13C054|GHM|7 +G103|13C05Z|GHM|7 +G103|13C111|GHM|7 +G103|13C112|GHM|7 +G103|13C113|GHM|7 +G103|13C114|GHM|7 +G103|13C11J|GHM|7 +G103|13C11Z|GHM|7 +G103|13C141|GHM|7 +G103|13C142|GHM|7 +G103|13C143|GHM|7 +G103|13C144|GHM|7 +G103|13C14V|GHM|7 +G103|13C14W|GHM|7 +G104|13C151|GHM|7 +G104|13C152|GHM|7 +G104|13C153|GHM|7 +G104|13C154|GHM|7 +G104|13C15V|GHM|7 +G104|13C15W|GHM|7 +G105|13C031|GHM|7 +G105|13C032|GHM|7 +G105|13C033|GHM|7 +G105|13C034|GHM|7 +G105|13C03V|GHM|7 +G105|13C03W|GHM|7 +G105|13C061|GHM|7 +G105|13C062|GHM|7 +G105|13C063|GHM|7 +G105|13C064|GHM|7 +G105|13C06J|GHM|7 +G105|13C06Z|GHM|7 +G105|13C071|GHM|7 +G105|13C072|GHM|7 +G105|13C073|GHM|7 +G105|13C074|GHM|7 +G105|13C07J|GHM|7 +G105|13C07V|GHM|7 +G105|13C07W|GHM|7 +G105|13C091|GHM|7 +G105|13C092|GHM|7 +G105|13C093|GHM|7 +G105|13C094|GHM|7 +G105|13C09J|GHM|7 +G105|13C09T|GHM|7 +G105|13C09Z|GHM|7 +G105|13C101|GHM|7 +G105|13C102|GHM|7 +G105|13C103|GHM|7 +G105|13C104|GHM|7 +G105|13C10J|GHM|7 +G105|13C10T|GHM|7 +G105|13C10Z|GHM|7 +G105|13C121|GHM|7 +G105|13C122|GHM|7 +G105|13C123|GHM|7 +G105|13C124|GHM|7 +G105|13C12J|GHM|7 +G105|13C12Z|GHM|7 +G105|13C181|GHM|7 +G105|13C182|GHM|7 +G105|13C183|GHM|7 +G105|13C184|GHM|7 +G105|13C191|GHM|7 +G105|13C192|GHM|7 +G105|13C193|GHM|7 +G105|13C194|GHM|7 +G105|13C19J|GHM|7 +G105|13C201|GHM|7 +G105|13C202|GHM|7 +G105|13C203|GHM|7 +G105|13C204|GHM|7 +G105|13C20J|GHM|7 +G106|13C041|GHM|7 +G106|13C042|GHM|7 +G106|13C043|GHM|7 +G106|13C044|GHM|7 +G106|13C04J|GHM|7 +G106|13C04V|GHM|7 +G106|13C04W|GHM|7 +G106|13C081|GHM|7 +G106|13C082|GHM|7 +G106|13C083|GHM|7 +G106|13C084|GHM|7 +G106|13C08J|GHM|7 +G106|13C08V|GHM|7 +G106|13C08W|GHM|7 +G106|13C131|GHM|7 +G106|13C132|GHM|7 +G106|13C133|GHM|7 +G106|13C134|GHM|7 +G106|13C13T|GHM|7 +G106|13C13Z|GHM|7 +G106|13C16J|GHM|7 +G106|13C171|GHM|7 +G106|13C172|GHM|7 +G106|13C173|GHM|7 +G106|13C174|GHM|7 +G106|13C17J|GHM|7 +G107|09C041|GHM|7 +G107|09C042|GHM|7 +G107|09C043|GHM|7 +G107|09C044|GHM|7 +G107|09C04V|GHM|7 +G107|09C04W|GHM|7 +G107|09C051|GHM|7 +G107|09C052|GHM|7 +G107|09C053|GHM|7 +G107|09C054|GHM|7 +G107|09C05J|GHM|7 +G107|09C05V|GHM|7 +G107|09C05W|GHM|7 +G107|09C111|GHM|7 +G107|09C112|GHM|7 +G107|09C113|GHM|7 +G107|09C114|GHM|7 +G108|09C061|GHM|7 +G108|09C062|GHM|7 +G108|09C063|GHM|7 +G108|09C064|GHM|7 +G108|09C06T|GHM|7 +G108|09C06Z|GHM|7 +G108|09C071|GHM|7 +G108|09C072|GHM|7 +G108|09C073|GHM|7 +G108|09C074|GHM|7 +G108|09C07J|GHM|7 +G108|09C07Z|GHM|7 +G109|13M031|GHM|7 +G109|13M032|GHM|7 +G109|13M033|GHM|7 +G109|13M034|GHM|7 +G109|13M03T|GHM|7 +G109|13M03V|GHM|7 +G109|13M03W|GHM|7 +G109|13M071|GHM|7 +G109|13M072|GHM|7 +G109|13M073|GHM|7 +G109|13M074|GHM|7 +G110|13M041|GHM|7 +G110|13M042|GHM|7 +G110|13M043|GHM|7 +G110|13M044|GHM|7 +G110|13M04T|GHM|7 +G110|13M04V|GHM|7 +G110|13M04W|GHM|7 +G110|13M10Z|GHM|7 +G111|13M081|GHM|7 +G111|13M082|GHM|7 +G111|13M083|GHM|7 +G111|13M084|GHM|7 +G112|13M02Z|GHM|7 +G112|13M051|GHM|7 +G112|13M052|GHM|7 +G112|13M053|GHM|7 +G112|13M054|GHM|7 +G112|13M061|GHM|7 +G112|13M062|GHM|7 +G112|13M063|GHM|7 +G112|13M064|GHM|7 +G112|13M06T|GHM|7 +G113|09M091|GHM|7 +G113|09M092|GHM|7 +G113|09M093|GHM|7 +G113|09M094|GHM|7 +G113|09M09T|GHM|7 +G113|09M09Z|GHM|7 +G113|09M15Z|GHM|7 +G114|09M101|GHM|7 +G114|09M102|GHM|7 +G114|09M103|GHM|7 +G114|09M104|GHM|7 +G114|09M10T|GHM|7 +G114|09M10V|GHM|7 +G114|09M10W|GHM|7 +G115|09M13Z|GHM|7 +G115|13M09Z|GHM|7 +G116|14C03A|GHM|7 +G116|14C03B|GHM|7 +G116|14C03C|GHM|7 +G116|14C03D|GHM|7 +G116|14C03Z|GHM|7 +G116|14Z02A|GHM|7 +G116|14Z02B|GHM|7 +G116|14Z02C|GHM|7 +G116|14Z02T|GHM|7 +G116|14Z09Z|GHM|7 +G116|14Z10A|GHM|7 +G116|14Z10B|GHM|7 +G116|14Z10T|GHM|7 +G116|14Z11A|GHM|7 +G116|14Z11B|GHM|7 +G116|14Z12A|GHM|7 +G116|14Z12B|GHM|7 +G116|14Z13A|GHM|7 +G116|14Z13B|GHM|7 +G116|14Z13C|GHM|7 +G116|14Z13D|GHM|7 +G116|14Z13T|GHM|7 +G116|14Z14A|GHM|7 +G116|14Z14B|GHM|7 +G116|14Z14C|GHM|7 +G116|14Z14D|GHM|7 +G116|14Z14T|GHM|7 +G117|14C02A|GHM|7 +G117|14C02B|GHM|7 +G117|14C02C|GHM|7 +G117|14C06A|GHM|7 +G117|14C06B|GHM|7 +G117|14C06C|GHM|7 +G117|14C06D|GHM|7 +G117|14C07A|GHM|7 +G117|14C07B|GHM|7 +G117|14C07C|GHM|7 +G117|14C07D|GHM|7 +G117|14C08A|GHM|7 +G117|14C08B|GHM|7 +G117|14C08C|GHM|7 +G117|14C08D|GHM|7 +G118|14Z08Z|GHM|7 +G119|14C09A|GHM|7 +G119|14C09B|GHM|7 +G119|14C10T|GHM|7 +G119|14C10Z|GHM|7 +G119|14M03A|GHM|7 +G119|14M03B|GHM|7 +G119|14M03C|GHM|7 +G119|14M03D|GHM|7 +G119|14M03T|GHM|7 +G119|14Z03A|GHM|7 +G119|14Z03B|GHM|7 +G119|14Z03T|GHM|7 +G119|14Z05Z|GHM|7 +G119|14Z06T|GHM|7 +G119|14Z06Z|GHM|7 +G119|14Z07Z|GHM|7 +G119|14Z15Z|GHM|7 +G119|14Z16T|GHM|7 +G119|14Z16Z|GHM|7 +G120|14C04T|GHM|7 +G120|14C04Z|GHM|7 +G120|14M02A|GHM|7 +G120|14M02B|GHM|7 +G120|14M02T|GHM|7 +G120|14M02Z|GHM|7 +G121|14C05J|GHM|7 +G121|14C05Z|GHM|7 +G121|14Z04T|GHM|7 +G121|14Z04Z|GHM|7 +G122|15C02A|GHM|7 +G122|15C02B|GHM|7 +G122|15C02Z|GHM|7 +G122|15C03A|GHM|7 +G122|15C03B|GHM|7 +G122|15C03Z|GHM|7 +G122|15C04A|GHM|7 +G122|15C04B|GHM|7 +G122|15C04Z|GHM|7 +G122|15C05A|GHM|7 +G122|15C05B|GHM|7 +G122|15C05Z|GHM|7 +G122|15C06A|GHM|7 +G122|15C06B|GHM|7 +G122|15C06Z|GHM|7 +G123|15M02Z|GHM|7 +G123|15Z03Z|GHM|7 +G124|15M05A|GHM|7 +G124|15M05B|GHM|7 +G124|15M05C|GHM|7 +G124|15M05D|GHM|7 +G124|15M06A|GHM|7 +G124|15M06B|GHM|7 +G124|15M06C|GHM|7 +G124|15M06D|GHM|7 +G124|15M07A|GHM|7 +G124|15M07B|GHM|7 +G124|15M07C|GHM|7 +G124|15M08A|GHM|7 +G124|15M08B|GHM|7 +G124|15M08C|GHM|7 +G124|15M09A|GHM|7 +G124|15M09B|GHM|7 +G124|15M09C|GHM|7 +G124|15M10A|GHM|7 +G124|15M10B|GHM|7 +G124|15M10C|GHM|7 +G124|15M11A|GHM|7 +G124|15M11B|GHM|7 +G124|15M11C|GHM|7 +G124|15M12A|GHM|7 +G124|15M12B|GHM|7 +G124|15M13A|GHM|7 +G124|15M13B|GHM|7 +G124|15M14A|GHM|7 +G124|15M14B|GHM|7 +G124|15Z02T|GHM|7 +G124|15Z02Z|GHM|7 +G124|15Z04E|GHM|7 +G124|15Z05A|GHM|7 +G124|15Z05B|GHM|7 +G124|15Z05C|GHM|7 +G124|15Z05D|GHM|7 +G124|15Z06A|GHM|7 +G124|15Z06B|GHM|7 +G124|15Z06C|GHM|7 +G124|15Z06D|GHM|7 +G124|15Z07A|GHM|7 +G124|15Z07B|GHM|7 +G124|15Z07C|GHM|7 +G124|15Z08A|GHM|7 +G124|15Z08E|GHM|7 +G124|15Z08Z|GHM|7 +G124|15Z09A|GHM|7 +G124|15Z09Z|GHM|7 +G125|15M03E|GHM|7 +G125|15M04E|GHM|7 +G125|15Z09E|GHM|7 +G126|10C031|GHM|7 +G126|10C032|GHM|7 +G126|10C033|GHM|7 +G126|10C034|GHM|7 +G126|10C03Z|GHM|7 +G126|11C021|GHM|7 +G126|11C022|GHM|7 +G126|11C023|GHM|7 +G126|11C024|GHM|7 +G126|11C02V|GHM|7 +G126|11C02W|GHM|7 +G126|11C031|GHM|7 +G126|11C032|GHM|7 +G126|11C033|GHM|7 +G126|11C034|GHM|7 +G126|11C03V|GHM|7 +G126|11C03W|GHM|7 +G126|11C041|GHM|7 +G126|11C042|GHM|7 +G126|11C043|GHM|7 +G126|11C044|GHM|7 +G126|11C04J|GHM|7 +G126|11C04Z|GHM|7 +G126|11C081|GHM|7 +G126|11C082|GHM|7 +G126|11C083|GHM|7 +G126|11C084|GHM|7 +G126|11C08T|GHM|7 +G126|11C08V|GHM|7 +G126|11C08W|GHM|7 +G126|11C101|GHM|7 +G126|11C102|GHM|7 +G126|11C103|GHM|7 +G126|11C104|GHM|7 +G126|11C10J|GHM|7 +G127|11C051|GHM|7 +G127|11C052|GHM|7 +G127|11C053|GHM|7 +G127|11C054|GHM|7 +G127|11C05J|GHM|7 +G127|11C05V|GHM|7 +G127|11C05W|GHM|7 +G127|11C061|GHM|7 +G127|11C062|GHM|7 +G127|11C063|GHM|7 +G127|11C064|GHM|7 +G127|11C06Z|GHM|7 +G127|11C071|GHM|7 +G127|11C072|GHM|7 +G127|11C073|GHM|7 +G127|11C074|GHM|7 +G127|11C07J|GHM|7 +G127|11C07Z|GHM|7 +G127|11C111|GHM|7 +G127|11C112|GHM|7 +G127|11C113|GHM|7 +G127|11C114|GHM|7 +G127|11C11J|GHM|7 +G127|11C121|GHM|7 +G127|11C122|GHM|7 +G127|11C123|GHM|7 +G127|11C124|GHM|7 +G127|11C12J|GHM|7 +G127|11C131|GHM|7 +G127|11C132|GHM|7 +G127|11C133|GHM|7 +G127|11C134|GHM|7 +G127|11C13J|GHM|7 +G128|12C031|GHM|7 +G128|12C032|GHM|7 +G128|12C033|GHM|7 +G128|12C034|GHM|7 +G128|12C03J|GHM|7 +G128|12C03Z|GHM|7 +G128|12C041|GHM|7 +G128|12C042|GHM|7 +G128|12C043|GHM|7 +G128|12C044|GHM|7 +G128|12C04J|GHM|7 +G128|12C04V|GHM|7 +G128|12C04W|GHM|7 +G128|12C061|GHM|7 +G128|12C062|GHM|7 +G128|12C063|GHM|7 +G128|12C064|GHM|7 +G128|12C06J|GHM|7 +G128|12C06Z|GHM|7 +G128|12C071|GHM|7 +G128|12C072|GHM|7 +G128|12C073|GHM|7 +G128|12C074|GHM|7 +G128|12C07J|GHM|7 +G128|12C07Z|GHM|7 +G128|12C101|GHM|7 +G128|12C102|GHM|7 +G128|12C103|GHM|7 +G128|12C104|GHM|7 +G128|12C10Z|GHM|7 +G128|12C131|GHM|7 +G128|12C132|GHM|7 +G128|12C133|GHM|7 +G128|12C134|GHM|7 +G128|12C13J|GHM|7 +G129|12C081|GHM|7 +G129|12C082|GHM|7 +G129|12C083|GHM|7 +G129|12C084|GHM|7 +G129|12C08J|GHM|7 +G129|12C08Z|GHM|7 +G130|12C02Z|GHM|7 +G130|12C111|GHM|7 +G130|12C112|GHM|7 +G130|12C113|GHM|7 +G130|12C114|GHM|7 +G130|12C11Z|GHM|7 +G130|12C121|GHM|7 +G130|12C122|GHM|7 +G130|12C123|GHM|7 +G130|12C124|GHM|7 +G130|12C12Z|GHM|7 +G131|12C051|GHM|7 +G131|12C052|GHM|7 +G131|12C053|GHM|7 +G131|12C054|GHM|7 +G131|12C05Z|GHM|7 +G131|12C091|GHM|7 +G131|12C092|GHM|7 +G131|12C093|GHM|7 +G131|12C094|GHM|7 +G131|12C09Z|GHM|7 +G132|11M071|GHM|7 +G132|11M072|GHM|7 +G132|11M073|GHM|7 +G132|11M074|GHM|7 +G132|11M07T|GHM|7 +G132|11M07V|GHM|7 +G132|11M07W|GHM|7 +G133|11M021|GHM|7 +G133|11M022|GHM|7 +G133|11M023|GHM|7 +G133|11M024|GHM|7 +G133|11M02T|GHM|7 +G133|11M02V|GHM|7 +G133|11M02W|GHM|7 +G133|11M031|GHM|7 +G133|11M032|GHM|7 +G133|11M033|GHM|7 +G133|11M034|GHM|7 +G133|11M03T|GHM|7 +G133|11M03V|GHM|7 +G133|11M03W|GHM|7 +G133|11M041|GHM|7 +G133|11M042|GHM|7 +G133|11M043|GHM|7 +G133|11M044|GHM|7 +G133|11M04T|GHM|7 +G133|11M04V|GHM|7 +G133|11M04W|GHM|7 +G134|11M061|GHM|7 +G134|11M062|GHM|7 +G134|11M063|GHM|7 +G134|11M064|GHM|7 +G134|11M06T|GHM|7 +G134|11M06V|GHM|7 +G134|11M06W|GHM|7 +G134|11M081|GHM|7 +G134|11M082|GHM|7 +G134|11M083|GHM|7 +G134|11M084|GHM|7 +G134|11M08T|GHM|7 +G134|11M08Z|GHM|7 +G134|11M101|GHM|7 +G134|11M102|GHM|7 +G134|11M103|GHM|7 +G134|11M104|GHM|7 +G134|11M10T|GHM|7 +G134|11M10V|GHM|7 +G134|11M10W|GHM|7 +G134|11M111|GHM|7 +G134|11M112|GHM|7 +G134|11M113|GHM|7 +G134|11M114|GHM|7 +G134|11M11Z|GHM|7 +G134|11M121|GHM|7 +G134|11M122|GHM|7 +G134|11M123|GHM|7 +G134|11M124|GHM|7 +G134|11M12T|GHM|7 +G134|11M12V|GHM|7 +G134|11M12W|GHM|7 +G134|11M151|GHM|7 +G134|11M152|GHM|7 +G134|11M153|GHM|7 +G134|11M154|GHM|7 +G134|11M15T|GHM|7 +G134|11M161|GHM|7 +G134|11M162|GHM|7 +G134|11M163|GHM|7 +G134|11M164|GHM|7 +G134|11M16T|GHM|7 +G134|11M19T|GHM|7 +G134|11M19Z|GHM|7 +G134|11M201|GHM|7 +G134|11M202|GHM|7 +G134|11M203|GHM|7 +G134|11M204|GHM|7 +G135|11M171|GHM|7 +G135|11M172|GHM|7 +G135|11M173|GHM|7 +G135|11M174|GHM|7 +G135|11M18Z|GHM|7 +G136|12M061|GHM|7 +G136|12M062|GHM|7 +G136|12M063|GHM|7 +G136|12M064|GHM|7 +G136|12M06T|GHM|7 +G136|12M071|GHM|7 +G136|12M072|GHM|7 +G136|12M073|GHM|7 +G136|12M074|GHM|7 +G136|12M07T|GHM|7 +G137|12M031|GHM|7 +G137|12M032|GHM|7 +G137|12M033|GHM|7 +G137|12M034|GHM|7 +G137|12M03T|GHM|7 +G137|12M03V|GHM|7 +G137|12M03W|GHM|7 +G138|12M041|GHM|7 +G138|12M042|GHM|7 +G138|12M043|GHM|7 +G138|12M044|GHM|7 +G138|12M04T|GHM|7 +G138|12M04V|GHM|7 +G138|12M04W|GHM|7 +G138|12M051|GHM|7 +G138|12M052|GHM|7 +G138|12M053|GHM|7 +G138|12M054|GHM|7 +G138|12M05T|GHM|7 +G138|12M05Z|GHM|7 +G138|12M09Z|GHM|7 +G139|12M08Z|GHM|7 +G140|11K03Z|GHM|7 +G140|11K04Z|GHM|7 +G140|11K05Z|GHM|7 +G140|11K06Z|GHM|7 +G140|12K02Z|GHM|7 +G140|12K03Z|GHM|7 +G140|13K02Z|GHM|7 +G140|13K03Z|GHM|7 +G140|13K04Z|GHM|7 +G140|13K05Z|GHM|7 +G141|16C031|GHM|7 +G141|16C032|GHM|7 +G141|16C033|GHM|7 +G141|16C034|GHM|7 +G141|16C03J|GHM|7 +G141|16C03V|GHM|7 +G141|16C03W|GHM|7 +G141|17C021|GHM|7 +G141|17C022|GHM|7 +G141|17C023|GHM|7 +G141|17C024|GHM|7 +G141|17C02V|GHM|7 +G141|17C02W|GHM|7 +G141|17C031|GHM|7 +G141|17C032|GHM|7 +G141|17C033|GHM|7 +G141|17C034|GHM|7 +G141|17C03J|GHM|7 +G141|17C03V|GHM|7 +G141|17C03W|GHM|7 +G141|17C041|GHM|7 +G141|17C042|GHM|7 +G141|17C043|GHM|7 +G141|17C044|GHM|7 +G141|17C04V|GHM|7 +G141|17C04W|GHM|7 +G141|17C051|GHM|7 +G141|17C052|GHM|7 +G141|17C053|GHM|7 +G141|17C054|GHM|7 +G141|17C05J|GHM|7 +G141|17C05V|GHM|7 +G141|17C05W|GHM|7 +G141|17C061|GHM|7 +G141|17C062|GHM|7 +G141|17C063|GHM|7 +G141|17C064|GHM|7 +G141|17C071|GHM|7 +G141|17C072|GHM|7 +G141|17C073|GHM|7 +G141|17C074|GHM|7 +G141|17C081|GHM|7 +G141|17C082|GHM|7 +G141|17C083|GHM|7 +G141|17C084|GHM|7 +G141|17C08J|GHM|7 +G141|17M02Z|GHM|7 +G141|17M03V|GHM|7 +G142|27Z021|GHM|7 +G142|27Z022|GHM|7 +G142|27Z023|GHM|7 +G142|27Z024|GHM|7 +G142|27Z02Z|GHM|7 +G142|27Z03Z|GHM|7 +G142|27Z04J|GHM|7 +G143|16M071|GHM|7 +G143|16M072|GHM|7 +G143|16M073|GHM|7 +G143|16M074|GHM|7 +G144|17M081|GHM|7 +G144|17M082|GHM|7 +G144|17M083|GHM|7 +G144|17M084|GHM|7 +G144|17M08T|GHM|7 +G144|17M08Z|GHM|7 +G144|17M091|GHM|7 +G144|17M092|GHM|7 +G144|17M093|GHM|7 +G144|17M094|GHM|7 +G144|17M09T|GHM|7 +G144|17M09V|GHM|7 +G144|17M09W|GHM|7 +G144|17M111|GHM|7 +G144|17M112|GHM|7 +G144|17M113|GHM|7 +G144|17M114|GHM|7 +G144|17M11T|GHM|7 +G144|17M121|GHM|7 +G144|17M122|GHM|7 +G144|17M123|GHM|7 +G144|17M124|GHM|7 +G144|17M12T|GHM|7 +G144|17M151|GHM|7 +G144|17M152|GHM|7 +G144|17M153|GHM|7 +G144|17M154|GHM|7 +G144|17M15T|GHM|7 +G145|16M061|GHM|7 +G145|16M062|GHM|7 +G145|16M063|GHM|7 +G145|16M064|GHM|7 +G145|16M06T|GHM|7 +G145|16M081|GHM|7 +G145|16M082|GHM|7 +G145|16M083|GHM|7 +G145|16M084|GHM|7 +G145|16M091|GHM|7 +G145|16M092|GHM|7 +G145|16M093|GHM|7 +G145|16M094|GHM|7 +G145|16M09T|GHM|7 +G145|16M101|GHM|7 +G145|16M102|GHM|7 +G145|16M103|GHM|7 +G145|16M104|GHM|7 +G145|16M10T|GHM|7 +G145|16M111|GHM|7 +G145|16M112|GHM|7 +G145|16M113|GHM|7 +G145|16M114|GHM|7 +G145|16M11T|GHM|7 +G145|16M121|GHM|7 +G145|16M122|GHM|7 +G145|16M123|GHM|7 +G145|16M124|GHM|7 +G145|16M12T|GHM|7 +G145|16M131|GHM|7 +G145|16M132|GHM|7 +G145|16M133|GHM|7 +G145|16M134|GHM|7 +G145|16M13T|GHM|7 +G145|16M15T|GHM|7 +G145|16M15Z|GHM|7 +G145|16M161|GHM|7 +G145|16M162|GHM|7 +G145|16M163|GHM|7 +G145|16M164|GHM|7 +G145|16M16T|GHM|7 +G145|16M171|GHM|7 +G145|16M172|GHM|7 +G145|16M173|GHM|7 +G145|16M174|GHM|7 +G145|16M17T|GHM|7 +G145|16M181|GHM|7 +G145|16M182|GHM|7 +G145|16M183|GHM|7 +G145|16M184|GHM|7 +G145|17M071|GHM|7 +G145|17M072|GHM|7 +G145|17M073|GHM|7 +G145|17M074|GHM|7 +G145|17M07T|GHM|7 +G145|17M07V|GHM|7 +G145|17M07W|GHM|7 +G145|17M131|GHM|7 +G145|17M132|GHM|7 +G145|17M133|GHM|7 +G145|17M134|GHM|7 +G145|17M13T|GHM|7 +G145|17M161|GHM|7 +G145|17M162|GHM|7 +G145|17M163|GHM|7 +G145|17M164|GHM|7 +G145|17M16T|GHM|7 +G145|17M171|GHM|7 +G145|17M172|GHM|7 +G145|17M173|GHM|7 +G145|17M174|GHM|7 +G145|17M17T|GHM|7 +G146|16M14Z|GHM|7 +G147|17K02Z|GHM|7 +G147|17M04Z|GHM|7 +G147|17M14Z|GHM|7 +G148|17M051|GHM|7 +G148|17M052|GHM|7 +G148|17M053|GHM|7 +G148|17M054|GHM|7 +G148|17M05Z|GHM|7 +G148|17M061|GHM|7 +G148|17M062|GHM|7 +G148|17M063|GHM|7 +G148|17M064|GHM|7 +G148|17M06T|GHM|7 +G148|17M06V|GHM|7 +G148|17M06W|GHM|7 +G149|17K03Z|GHM|7 +G149|17K041|GHM|7 +G149|17K042|GHM|7 +G149|17K043|GHM|7 +G149|17K044|GHM|7 +G149|17K04Z|GHM|7 +G149|17K051|GHM|7 +G149|17K052|GHM|7 +G149|17K053|GHM|7 +G149|17K054|GHM|7 +G149|17K05Z|GHM|7 +G149|17K061|GHM|7 +G149|17K062|GHM|7 +G149|17K063|GHM|7 +G149|17K064|GHM|7 +G149|17K06Z|GHM|7 +G149|17K081|GHM|7 +G149|17K082|GHM|7 +G149|17K083|GHM|7 +G149|17K084|GHM|7 +G149|17K091|GHM|7 +G149|17K092|GHM|7 +G149|17K093|GHM|7 +G149|17K094|GHM|7 +G150|23M091|GHM|7 +G150|23M092|GHM|7 +G150|23M093|GHM|7 +G150|23M094|GHM|7 +G151|18M021|GHM|7 +G151|18M022|GHM|7 +G151|18M023|GHM|7 +G151|18M024|GHM|7 +G151|18M02V|GHM|7 +G151|18M02W|GHM|7 +G151|18M031|GHM|7 +G151|18M032|GHM|7 +G151|18M033|GHM|7 +G151|18M034|GHM|7 +G151|18M03T|GHM|7 +G151|18M03Z|GHM|7 +G151|18M041|GHM|7 +G151|18M042|GHM|7 +G151|18M043|GHM|7 +G151|18M044|GHM|7 +G151|18M04T|GHM|7 +G151|18M04V|GHM|7 +G151|18M04W|GHM|7 +G152|18M061|GHM|7 +G152|18M062|GHM|7 +G152|18M063|GHM|7 +G152|18M064|GHM|7 +G152|18M06Z|GHM|7 +G152|18M071|GHM|7 +G152|18M072|GHM|7 +G152|18M073|GHM|7 +G152|18M074|GHM|7 +G152|18M07T|GHM|7 +G152|18M07V|GHM|7 +G152|18M07W|GHM|7 +G153|18M091|GHM|7 +G153|18M092|GHM|7 +G153|18M093|GHM|7 +G153|18M094|GHM|7 +G153|18M09T|GHM|7 +G153|18M101|GHM|7 +G153|18M102|GHM|7 +G153|18M103|GHM|7 +G153|18M104|GHM|7 +G153|18M10T|GHM|7 +G153|18M111|GHM|7 +G153|18M112|GHM|7 +G153|18M113|GHM|7 +G153|18M114|GHM|7 +G153|18M11T|GHM|7 +G153|18M14T|GHM|7 +G153|18M14Z|GHM|7 +G153|18M151|GHM|7 +G153|18M152|GHM|7 +G153|18M153|GHM|7 +G153|18M154|GHM|7 +G154|18M13E|GHM|7 +G155|18M12Z|GHM|7 +G156|23M07J|GHM|7 +G156|25M02A|GHM|7 +G156|25M02B|GHM|7 +G156|25M02C|GHM|7 +G156|25M02T|GHM|7 +G156|25Z02E|GHM|7 +G156|25Z031|GHM|7 +G156|25Z032|GHM|7 +G156|25Z033|GHM|7 +G156|25Z034|GHM|7 +G156|25Z03Z|GHM|7 +G157|10C051|GHM|7 +G157|10C052|GHM|7 +G157|10C053|GHM|7 +G157|10C054|GHM|7 +G157|10C05Z|GHM|7 +G157|10C071|GHM|7 +G157|10C072|GHM|7 +G157|10C073|GHM|7 +G157|10C074|GHM|7 +G157|10C07Z|GHM|7 +G157|10C101|GHM|7 +G157|10C102|GHM|7 +G157|10C103|GHM|7 +G157|10C104|GHM|7 +G157|10C10Z|GHM|7 +G158|10C111|GHM|7 +G158|10C112|GHM|7 +G158|10C113|GHM|7 +G158|10C114|GHM|7 +G158|10C11V|GHM|7 +G158|10C11W|GHM|7 +G158|10C121|GHM|7 +G158|10C122|GHM|7 +G158|10C123|GHM|7 +G158|10C124|GHM|7 +G158|10C12V|GHM|7 +G158|10C12W|GHM|7 +G159|10M021|GHM|7 +G159|10M022|GHM|7 +G159|10M023|GHM|7 +G159|10M024|GHM|7 +G159|10M02T|GHM|7 +G159|10M02V|GHM|7 +G159|10M02W|GHM|7 +G159|10M031|GHM|7 +G159|10M032|GHM|7 +G159|10M033|GHM|7 +G159|10M034|GHM|7 +G159|10M03T|GHM|7 +G159|10M03Z|GHM|7 +G159|10M081|GHM|7 +G159|10M082|GHM|7 +G159|10M083|GHM|7 +G159|10M084|GHM|7 +G159|10M08T|GHM|7 +G159|23M08J|GHM|7 +G160|10M071|GHM|7 +G160|10M072|GHM|7 +G160|10M073|GHM|7 +G160|10M074|GHM|7 +G160|10M07T|GHM|7 +G160|10M07V|GHM|7 +G160|10M07W|GHM|7 +G160|10M121|GHM|7 +G160|10M122|GHM|7 +G160|10M123|GHM|7 +G160|10M124|GHM|7 +G160|10M12T|GHM|7 +G160|10M14T|GHM|7 +G160|10M14Z|GHM|7 +G161|10M06Z|GHM|7 +G161|10M091|GHM|7 +G161|10M092|GHM|7 +G161|10M093|GHM|7 +G161|10M094|GHM|7 +G161|10M09T|GHM|7 +G161|10M101|GHM|7 +G161|10M102|GHM|7 +G161|10M103|GHM|7 +G161|10M104|GHM|7 +G161|10M10T|GHM|7 +G161|10M111|GHM|7 +G161|10M112|GHM|7 +G161|10M113|GHM|7 +G161|10M114|GHM|7 +G161|10M11T|GHM|7 +G161|10M151|GHM|7 +G161|10M152|GHM|7 +G161|10M153|GHM|7 +G161|10M154|GHM|7 +G161|10M15T|GHM|7 +G161|10M161|GHM|7 +G161|10M162|GHM|7 +G161|10M163|GHM|7 +G161|10M164|GHM|7 +G161|10M16T|GHM|7 +G161|10M171|GHM|7 +G161|10M172|GHM|7 +G161|10M173|GHM|7 +G161|10M174|GHM|7 +G161|10M17T|GHM|7 +G161|10M181|GHM|7 +G161|10M182|GHM|7 +G161|10M183|GHM|7 +G161|10M184|GHM|7 +G161|10M18T|GHM|7 +G162|10M13T|GHM|7 +G162|10M13Z|GHM|7 +G163|08C201|GHM|7 +G163|08C202|GHM|7 +G163|08C203|GHM|7 +G163|08C204|GHM|7 +G163|08C20J|GHM|7 +G163|08C20Z|GHM|7 +G163|09C021|GHM|7 +G163|09C022|GHM|7 +G163|09C023|GHM|7 +G163|09C024|GHM|7 +G163|09C02J|GHM|7 +G163|09C02V|GHM|7 +G163|09C02W|GHM|7 +G163|09C031|GHM|7 +G163|09C032|GHM|7 +G163|09C033|GHM|7 +G163|09C034|GHM|7 +G163|09C03J|GHM|7 +G163|09C03V|GHM|7 +G163|09C03W|GHM|7 +G163|09C091|GHM|7 +G163|09C092|GHM|7 +G163|09C093|GHM|7 +G163|09C094|GHM|7 +G163|09C09J|GHM|7 +G163|09C09Z|GHM|7 +G163|09C121|GHM|7 +G163|09C122|GHM|7 +G163|09C123|GHM|7 +G163|09C124|GHM|7 +G163|09C12J|GHM|7 +G163|21C021|GHM|7 +G163|21C022|GHM|7 +G163|21C023|GHM|7 +G163|21C024|GHM|7 +G163|21C02J|GHM|7 +G163|21C02Z|GHM|7 +G163|21C031|GHM|7 +G163|21C032|GHM|7 +G163|21C033|GHM|7 +G163|21C034|GHM|7 +G163|21C03J|GHM|7 +G163|21C03Z|GHM|7 +G163|21C061|GHM|7 +G163|21C062|GHM|7 +G163|21C063|GHM|7 +G163|21C064|GHM|7 +G163|21C06J|GHM|7 +G164|09M021|GHM|7 +G164|09M022|GHM|7 +G164|09M023|GHM|7 +G164|09M024|GHM|7 +G164|09M02T|GHM|7 +G164|09M02Z|GHM|7 +G164|09M031|GHM|7 +G164|09M032|GHM|7 +G164|09M033|GHM|7 +G164|09M034|GHM|7 +G164|09M03T|GHM|7 +G164|09M03V|GHM|7 +G164|09M03W|GHM|7 +G165|09M061|GHM|7 +G165|09M062|GHM|7 +G165|09M063|GHM|7 +G165|09M064|GHM|7 +G165|09M06T|GHM|7 +G165|09M06Z|GHM|7 +G165|09M071|GHM|7 +G165|09M072|GHM|7 +G165|09M073|GHM|7 +G165|09M074|GHM|7 +G165|09M07T|GHM|7 +G165|09M07V|GHM|7 +G165|09M07W|GHM|7 +G165|09M081|GHM|7 +G165|09M082|GHM|7 +G165|09M083|GHM|7 +G165|09M084|GHM|7 +G165|09M08T|GHM|7 +G165|09M08V|GHM|7 +G165|09M08W|GHM|7 +G165|09M14T|GHM|7 +G165|09M14Z|GHM|7 +G166|09M041|GHM|7 +G166|09M042|GHM|7 +G166|09M043|GHM|7 +G166|09M044|GHM|7 +G166|09M04T|GHM|7 +G166|09M04Z|GHM|7 +G166|09M051|GHM|7 +G166|09M052|GHM|7 +G166|09M053|GHM|7 +G166|09M054|GHM|7 +G166|09M05T|GHM|7 +G166|09M05V|GHM|7 +G166|09M05W|GHM|7 +G167|09M111|GHM|7 +G167|09M112|GHM|7 +G167|09M113|GHM|7 +G167|09M114|GHM|7 +G167|09M11T|GHM|7 +G168|09M12Z|GHM|7 +G169|22M021|GHM|7 +G169|22M022|GHM|7 +G169|22M023|GHM|7 +G169|22M024|GHM|7 +G169|22M02T|GHM|7 +G169|22M02Z|GHM|7 +G169|22Z021|GHM|7 +G169|22Z022|GHM|7 +G169|22Z023|GHM|7 +G169|22Z024|GHM|7 +G169|22Z02Z|GHM|7 +G169|22Z03Z|GHM|7 +G170|19M061|GHM|7 +G170|19M062|GHM|7 +G170|19M063|GHM|7 +G170|19M064|GHM|7 +G170|19M06T|GHM|7 +G170|19M06V|GHM|7 +G170|19M06W|GHM|7 +G170|19M071|GHM|7 +G170|19M072|GHM|7 +G170|19M073|GHM|7 +G170|19M074|GHM|7 +G170|19M07T|GHM|7 +G170|19M07V|GHM|7 +G170|19M07W|GHM|7 +G171|19M021|GHM|7 +G171|19M022|GHM|7 +G171|19M023|GHM|7 +G171|19M024|GHM|7 +G171|19M02T|GHM|7 +G171|19M02V|GHM|7 +G171|19M02W|GHM|7 +G171|19M03Z|GHM|7 +G171|19M04Z|GHM|7 +G171|19M05Z|GHM|7 +G171|19M08Z|GHM|7 +G171|19M09Z|GHM|7 +G171|19M101|GHM|7 +G171|19M102|GHM|7 +G171|19M103|GHM|7 +G171|19M104|GHM|7 +G171|19M10T|GHM|7 +G171|19M10Z|GHM|7 +G171|19M111|GHM|7 +G171|19M112|GHM|7 +G171|19M113|GHM|7 +G171|19M114|GHM|7 +G171|19M11T|GHM|7 +G171|19M11V|GHM|7 +G171|19M11W|GHM|7 +G171|19M121|GHM|7 +G171|19M122|GHM|7 +G171|19M123|GHM|7 +G171|19M124|GHM|7 +G171|19M12T|GHM|7 +G171|19M131|GHM|7 +G171|19M132|GHM|7 +G171|19M133|GHM|7 +G171|19M134|GHM|7 +G171|19M13T|GHM|7 +G171|19M141|GHM|7 +G171|19M142|GHM|7 +G171|19M143|GHM|7 +G171|19M144|GHM|7 +G171|19M14T|GHM|7 +G171|19M151|GHM|7 +G171|19M152|GHM|7 +G171|19M153|GHM|7 +G171|19M154|GHM|7 +G171|19M15T|GHM|7 +G171|19M161|GHM|7 +G171|19M162|GHM|7 +G171|19M163|GHM|7 +G171|19M164|GHM|7 +G171|19M16T|GHM|7 +G171|19M171|GHM|7 +G171|19M172|GHM|7 +G171|19M173|GHM|7 +G171|19M174|GHM|7 +G171|19M181|GHM|7 +G171|19M182|GHM|7 +G171|19M183|GHM|7 +G171|19M184|GHM|7 +G171|19M18T|GHM|7 +G171|19M191|GHM|7 +G171|19M192|GHM|7 +G171|19M193|GHM|7 +G171|19M194|GHM|7 +G171|19M19T|GHM|7 +G171|19M201|GHM|7 +G171|19M202|GHM|7 +G171|19M203|GHM|7 +G171|19M204|GHM|7 +G171|19M20T|GHM|7 +G171|19M22T|GHM|7 +G171|19M22Z|GHM|7 +G172|19M21Z|GHM|7 +G173|20Z021|GHM|7 +G173|20Z022|GHM|7 +G173|20Z023|GHM|7 +G173|20Z024|GHM|7 +G173|20Z02T|GHM|7 +G173|20Z02Z|GHM|7 +G173|20Z031|GHM|7 +G173|20Z032|GHM|7 +G173|20Z033|GHM|7 +G173|20Z034|GHM|7 +G173|20Z03Z|GHM|7 +G173|20Z041|GHM|7 +G173|20Z042|GHM|7 +G173|20Z043|GHM|7 +G173|20Z044|GHM|7 +G173|20Z04T|GHM|7 +G173|20Z04Z|GHM|7 +G173|20Z051|GHM|7 +G173|20Z052|GHM|7 +G173|20Z053|GHM|7 +G173|20Z054|GHM|7 +G173|20Z05Z|GHM|7 +G173|20Z061|GHM|7 +G173|20Z062|GHM|7 +G173|20Z063|GHM|7 +G173|20Z064|GHM|7 +G173|20Z06T|GHM|7 +G173|20Z06V|GHM|7 +G173|20Z06W|GHM|7 +G174|21M041|GHM|7 +G174|21M042|GHM|7 +G174|21M043|GHM|7 +G174|21M044|GHM|7 +G174|21M04T|GHM|7 +G174|21M04Z|GHM|7 +G174|21M051|GHM|7 +G174|21M052|GHM|7 +G174|21M053|GHM|7 +G174|21M054|GHM|7 +G174|21M05T|GHM|7 +G174|21M05Z|GHM|7 +G175|21M021|GHM|7 +G175|21M022|GHM|7 +G175|21M023|GHM|7 +G175|21M024|GHM|7 +G175|21M02T|GHM|7 +G175|21M02Z|GHM|7 +G175|21M101|GHM|7 +G175|21M102|GHM|7 +G175|21M103|GHM|7 +G175|21M104|GHM|7 +G175|21M10T|GHM|7 +G175|21M111|GHM|7 +G175|21M112|GHM|7 +G175|21M113|GHM|7 +G175|21M114|GHM|7 +G175|21M11T|GHM|7 +G175|21M121|GHM|7 +G175|21M122|GHM|7 +G175|21M123|GHM|7 +G175|21M124|GHM|7 +G175|21M141|GHM|7 +G175|21M142|GHM|7 +G175|21M143|GHM|7 +G175|21M144|GHM|7 +G175|21M14T|GHM|7 +G175|21M161|GHM|7 +G175|21M162|GHM|7 +G175|21M163|GHM|7 +G175|21M164|GHM|7 +G175|21M16T|GHM|7 +G176|23Z02T|GHM|7 +G176|23Z02Z|GHM|7 +G177|01M211|GHM|7 +G177|01M212|GHM|7 +G177|01M213|GHM|7 +G177|01M214|GHM|7 +G177|01M21T|GHM|7 +G177|01M21Z|GHM|7 +G178|27C021|GHM|7 +G178|27C022|GHM|7 +G178|27C023|GHM|7 +G178|27C024|GHM|7 +G178|27C02Z|GHM|7 +G178|27C031|GHM|7 +G178|27C032|GHM|7 +G178|27C033|GHM|7 +G178|27C034|GHM|7 +G178|27C03Z|GHM|7 +G178|27C041|GHM|7 +G178|27C042|GHM|7 +G178|27C043|GHM|7 +G178|27C044|GHM|7 +G178|27C04Z|GHM|7 +G178|27C051|GHM|7 +G178|27C052|GHM|7 +G178|27C053|GHM|7 +G178|27C054|GHM|7 +G178|27C05Z|GHM|7 +G178|27C061|GHM|7 +G178|27C062|GHM|7 +G178|27C063|GHM|7 +G178|27C064|GHM|7 +G178|27C06Z|GHM|7 +G178|27C071|GHM|7 +G178|27C072|GHM|7 +G178|27C073|GHM|7 +G178|27C074|GHM|7 +G178|27C07Z|GHM|7 +G179|01C081|GHM|7 +G179|01C082|GHM|7 +G179|01C083|GHM|7 +G179|01C084|GHM|7 +G179|01C08J|GHM|7 +G179|01C08V|GHM|7 +G179|01C08W|GHM|7 +G179|05C181|GHM|7 +G179|05C182|GHM|7 +G179|05C183|GHM|7 +G179|05C184|GHM|7 +G179|05C18J|GHM|7 +G179|05C18Z|GHM|7 +G179|08C211|GHM|7 +G179|08C212|GHM|7 +G179|08C213|GHM|7 +G179|08C214|GHM|7 +G179|08C21J|GHM|7 +G179|08C21V|GHM|7 +G179|08C21W|GHM|7 +G179|09C101|GHM|7 +G179|09C102|GHM|7 +G179|09C103|GHM|7 +G179|09C104|GHM|7 +G179|09C10J|GHM|7 +G179|09C10V|GHM|7 +G179|09C10W|GHM|7 +G179|09C141|GHM|7 +G179|09C142|GHM|7 +G179|09C143|GHM|7 +G179|09C144|GHM|7 +G179|09C14J|GHM|7 +G179|09C151|GHM|7 +G179|09C152|GHM|7 +G179|09C153|GHM|7 +G179|09C154|GHM|7 +G179|09C15J|GHM|7 +G179|09C161|GHM|7 +G179|09C162|GHM|7 +G179|09C163|GHM|7 +G179|09C164|GHM|7 +G179|09C171|GHM|7 +G179|09C172|GHM|7 +G179|09C173|GHM|7 +G179|09C174|GHM|7 +G179|09C181|GHM|7 +G179|09C182|GHM|7 +G179|09C183|GHM|7 +G179|09C184|GHM|7 +G179|09C191|GHM|7 +G179|09C192|GHM|7 +G179|09C193|GHM|7 +G179|09C194|GHM|7 +G179|09C201|GHM|7 +G179|09C202|GHM|7 +G179|09C203|GHM|7 +G179|09C204|GHM|7 +G179|09C20J|GHM|7 +G179|09C211|GHM|7 +G179|09C212|GHM|7 +G179|09C213|GHM|7 +G179|09C214|GHM|7 +G179|09C221|GHM|7 +G179|09C222|GHM|7 +G179|09C223|GHM|7 +G179|09C224|GHM|7 +G179|09C22J|GHM|7 +G179|09C231|GHM|7 +G179|09C232|GHM|7 +G179|09C233|GHM|7 +G179|09C234|GHM|7 +G179|09C23J|GHM|7 +G179|09C241|GHM|7 +G179|09C242|GHM|7 +G179|09C243|GHM|7 +G179|09C244|GHM|7 +G179|09C24J|GHM|7 +G179|09C251|GHM|7 +G179|09C252|GHM|7 +G179|09C253|GHM|7 +G179|09C254|GHM|7 +G179|09C25J|GHM|7 +G179|09C261|GHM|7 +G179|09C262|GHM|7 +G179|09C263|GHM|7 +G179|09C264|GHM|7 +G179|09C26J|GHM|7 +G179|09C271|GHM|7 +G179|09C272|GHM|7 +G179|09C273|GHM|7 +G179|09C274|GHM|7 +G179|09C281|GHM|7 +G179|09C282|GHM|7 +G179|09C283|GHM|7 +G179|09C284|GHM|7 +G179|09C28J|GHM|7 +G179|09C291|GHM|7 +G179|09C292|GHM|7 +G179|09C293|GHM|7 +G179|09C294|GHM|7 +G179|09C29J|GHM|7 +G179|09C301|GHM|7 +G179|09C302|GHM|7 +G179|09C303|GHM|7 +G179|09C304|GHM|7 +G179|09C30J|GHM|7 +G179|09C311|GHM|7 +G179|09C312|GHM|7 +G179|09C313|GHM|7 +G179|09C314|GHM|7 +G179|09C31J|GHM|7 +G179|09C321|GHM|7 +G179|09C322|GHM|7 +G179|09C323|GHM|7 +G179|09C324|GHM|7 +G179|09C32J|GHM|7 +G179|09C331|GHM|7 +G179|09C332|GHM|7 +G179|09C333|GHM|7 +G179|09C334|GHM|7 +G179|09C341|GHM|7 +G179|09C342|GHM|7 +G179|09C343|GHM|7 +G179|09C344|GHM|7 +G179|09C34J|GHM|7 +G179|10C081|GHM|7 +G179|10C082|GHM|7 +G179|10C083|GHM|7 +G179|10C084|GHM|7 +G179|10C08J|GHM|7 +G179|10C08Z|GHM|7 +G179|18C021|GHM|7 +G179|18C022|GHM|7 +G179|18C023|GHM|7 +G179|18C024|GHM|7 +G179|18C02J|GHM|7 +G179|18C02V|GHM|7 +G179|18C02W|GHM|7 +G179|19C021|GHM|7 +G179|19C022|GHM|7 +G179|19C023|GHM|7 +G179|19C024|GHM|7 +G179|19C02Z|GHM|7 +G179|21C051|GHM|7 +G179|21C052|GHM|7 +G179|21C053|GHM|7 +G179|21C054|GHM|7 +G179|21C05J|GHM|7 +G179|21C05V|GHM|7 +G179|21C05W|GHM|7 +G179|23C021|GHM|7 +G179|23C022|GHM|7 +G179|23C023|GHM|7 +G179|23C024|GHM|7 +G179|23C02J|GHM|7 +G179|23C02Z|GHM|7 +G179|25C021|GHM|7 +G179|25C022|GHM|7 +G179|25C023|GHM|7 +G179|25C024|GHM|7 +G179|25C02Z|GHM|7 +G180|09Z02A|GHM|7 +G180|09Z02B|GHM|7 +G180|09Z02Z|GHM|7 +G180|23Z03Z|GHM|7 +G181|01M37E|GHM|7 +G181|05M22E|GHM|7 +G181|21M131|GHM|7 +G181|21M132|GHM|7 +G181|21M133|GHM|7 +G181|21M134|GHM|7 +G181|21M151|GHM|7 +G181|21M152|GHM|7 +G181|21M153|GHM|7 +G181|21M154|GHM|7 +G181|21M15T|GHM|7 +G181|23M111|GHM|7 +G181|23M112|GHM|7 +G181|23M113|GHM|7 +G181|23M114|GHM|7 +G181|23M11T|GHM|7 +G181|23M15Z|GHM|7 +G182|23M13Z|GHM|7 +G182|23M18Z|GHM|7 +G182|23M21T|GHM|7 +G182|23M21Z|GHM|7 +G183|23K02Z|GHM|7 +G184|23M101|GHM|7 +G184|23M102|GHM|7 +G184|23M103|GHM|7 +G184|23M104|GHM|7 +G184|23M10T|GHM|7 +G184|23M14Z|GHM|7 +G185|23M19Z|GHM|7 +G186|23M02T|GHM|7 +G186|23M02Z|GHM|7 +G186|23M16T|GHM|7 +G186|23M16Z|GHM|7 +G187|28Z01Z|GHM|7 +G187|28Z02Z|GHM|7 +G187|28Z03Z|GHM|7 +G187|28Z04Z|GHM|7 +G187|28Z05Z|GHM|7 +G187|28Z06Z|GHM|7 +G188|28Z14Z|GHM|7 +G189|28Z08Z|GHM|7 +G189|28Z09Z|GHM|7 +G189|28Z10Z|GHM|7 +G189|28Z11Z|GHM|7 +G189|28Z12Z|GHM|7 +G189|28Z13Z|GHM|7 +G189|28Z18Z|GHM|7 +G189|28Z19Z|GHM|7 +G189|28Z20Z|GHM|7 +G189|28Z21Z|GHM|7 +G189|28Z22Z|GHM|7 +G189|28Z23Z|GHM|7 +G189|28Z24Z|GHM|7 +G189|28Z25Z|GHM|7 +G190|28Z07Z|GHM|7 +G191|28Z17Z|GHM|7 +G192|28Z15Z|GHM|7 +G193|28Z16Z|GHM|7 +G194|23M04Z|GHM|7 +G194|23M05Z|GHM|7 +G194|23M061|GHM|7 +G194|23M062|GHM|7 +G194|23M063|GHM|7 +G194|23M064|GHM|7 +G194|23M06T|GHM|7 +G194|23M06Z|GHM|7 +G194|23M20T|GHM|7 +G194|23M20Z|GHM|7 +G195|15Z10E|GHM|7 +G196|01K04J|GHM|7 +G197|01K06J|GHM|7 +G198|05K17J|GHM|7 +G199|05K14Z|GHM|7 +G199|11K07Z|GHM|7 +G200|05K18J|GHM|7 +G201|13K06J|GHM|7 +G202|11K021|GHM|7 +G202|11K022|GHM|7 +G202|11K023|GHM|7 +G202|11K024|GHM|7 +G202|11K02J|GHM|7 +G202|11K02V|GHM|7 +G202|11K02W|GHM|7 +G203|09K02J|GHM|7 +G203|17K07J|GHM|7 +G203|23K03J|GHM|7 +G204|22C021|GHM|7 +G204|22C022|GHM|7 +G204|22C023|GHM|7 +G204|22C024|GHM|7 +G204|22C02J|GHM|7 +G204|22C02Z|GHM|7 +G204|22C031|GHM|7 +G204|22C032|GHM|7 +G204|22C033|GHM|7 +G204|22C034|GHM|7 +G204|22C03Z|GHM|7 +G205|01K05J|GHM|7 +G206|21K02J|GHM|7 +G207|03K021|GHM|7 +G207|03K022|GHM|7 +G207|03K023|GHM|7 +G207|03K024|GHM|7 +G207|03K02J|GHM|7 +G207|03K02Z|GHM|7 +G207|03K04J|GHM|7 +G208|11K08J|GHM|7 +G209|12K06J|GHM|7 +G210|08M261|GHM|7 +G210|08M262|GHM|7 +G210|08M263|GHM|7 +G210|08M264|GHM|7 +G210|08M381|GHM|7 +G210|08M382|GHM|7 +G210|08M383|GHM|7 +G210|08M384|GHM|7 +G210|08M38T|GHM|7 +G211|08M16Z|GHM|7 +G211|08M17Z|GHM|7 +G211|08M311|GHM|7 +G211|08M312|GHM|7 +G211|08M313|GHM|7 +G211|08M314|GHM|7 +G211|08M31T|GHM|7 +G212|10M191|GHM|7 +G212|10M192|GHM|7 +G212|10M193|GHM|7 +G212|10M194|GHM|7 +G212|10M201|GHM|7 +G212|10M202|GHM|7 +G212|10M203|GHM|7 +G212|10M204|GHM|7 +G213|06K02Z|GHM|7 +G214|06K06J|GHM|7 +G215|22K02J|GHM|7 +G216|26M021|GHM|7 +G216|26M022|GHM|7 +G216|26M023|GHM|7 +G216|26M024|GHM|7 +G216|26M02Z|GHM|7 +G217|07K061|GHM|7 +G217|07K062|GHM|7 +G217|07K063|GHM|7 +G217|07K064|GHM|7 +G999|90C01Z|GHM|7 +G999|90H01Z|GHM|7 +G999|90H02Z|GHM|7 +G999|90H03Z|GHM|7 +G999|90Z00Z|GHM|7 +G999|90Z01Z|GHM|7 +G999|90Z02Z|GHM|7 +G999|90Z03Z|GHM|7 +G999|999999|GHM|7 +G999|ZZZZZZ|GHM|7 +C01|27C021|GHM|8 +C01|27C022|GHM|8 +C01|27C023|GHM|8 +C01|27C024|GHM|8 +C01|27C02Z|GHM|8 +C01|27C031|GHM|8 +C01|27C032|GHM|8 +C01|27C033|GHM|8 +C01|27C034|GHM|8 +C01|27C03Z|GHM|8 +C01|27C041|GHM|8 +C01|27C042|GHM|8 +C01|27C043|GHM|8 +C01|27C044|GHM|8 +C01|27C04Z|GHM|8 +C01|27C051|GHM|8 +C01|27C052|GHM|8 +C01|27C053|GHM|8 +C01|27C054|GHM|8 +C01|27C05Z|GHM|8 +C01|27C061|GHM|8 +C01|27C062|GHM|8 +C01|27C063|GHM|8 +C01|27C064|GHM|8 +C01|27C06Z|GHM|8 +C01|27C071|GHM|8 +C01|27C072|GHM|8 +C01|27C073|GHM|8 +C01|27C074|GHM|8 +C01|27C07Z|GHM|8 +C02|01C02Z|GHM|8 +C02|01C031|GHM|8 +C02|01C032|GHM|8 +C02|01C033|GHM|8 +C02|01C034|GHM|8 +C02|01C03V|GHM|8 +C02|01C03W|GHM|8 +C02|01C041|GHM|8 +C02|01C042|GHM|8 +C02|01C043|GHM|8 +C02|01C044|GHM|8 +C02|01C04V|GHM|8 +C02|01C04W|GHM|8 +C02|01C051|GHM|8 +C02|01C052|GHM|8 +C02|01C053|GHM|8 +C02|01C054|GHM|8 +C02|01C05V|GHM|8 +C02|01C05W|GHM|8 +C02|01C111|GHM|8 +C02|01C112|GHM|8 +C02|01C113|GHM|8 +C02|01C114|GHM|8 +C02|01C11Z|GHM|8 +C02|01C121|GHM|8 +C02|01C122|GHM|8 +C02|01C123|GHM|8 +C02|01C124|GHM|8 +C02|01C12Z|GHM|8 +C02|08C26Z|GHM|8 +C02|08C271|GHM|8 +C02|08C272|GHM|8 +C02|08C273|GHM|8 +C02|08C274|GHM|8 +C02|08C27V|GHM|8 +C02|08C27W|GHM|8 +C02|08C511|GHM|8 +C02|08C512|GHM|8 +C02|08C513|GHM|8 +C02|08C514|GHM|8 +C02|08C521|GHM|8 +C02|08C522|GHM|8 +C02|08C523|GHM|8 +C02|08C524|GHM|8 +C02|10C021|GHM|8 +C02|10C022|GHM|8 +C02|10C023|GHM|8 +C02|10C024|GHM|8 +C02|10C02Z|GHM|8 +C03|01C091|GHM|8 +C03|01C092|GHM|8 +C03|01C093|GHM|8 +C03|01C094|GHM|8 +C03|01C09Z|GHM|8 +C03|01C101|GHM|8 +C03|01C102|GHM|8 +C03|01C103|GHM|8 +C03|01C104|GHM|8 +C03|01C10J|GHM|8 +C03|01C10Z|GHM|8 +C04|05C021|GHM|8 +C04|05C022|GHM|8 +C04|05C023|GHM|8 +C04|05C024|GHM|8 +C04|05C02Z|GHM|8 +C04|05C031|GHM|8 +C04|05C032|GHM|8 +C04|05C033|GHM|8 +C04|05C034|GHM|8 +C04|05C03V|GHM|8 +C04|05C03W|GHM|8 +C04|05C041|GHM|8 +C04|05C042|GHM|8 +C04|05C043|GHM|8 +C04|05C044|GHM|8 +C04|05C04V|GHM|8 +C04|05C04W|GHM|8 +C04|05C051|GHM|8 +C04|05C052|GHM|8 +C04|05C053|GHM|8 +C04|05C054|GHM|8 +C04|05C05V|GHM|8 +C04|05C05W|GHM|8 +C04|05C061|GHM|8 +C04|05C062|GHM|8 +C04|05C063|GHM|8 +C04|05C064|GHM|8 +C04|05C06V|GHM|8 +C04|05C06W|GHM|8 +C04|05C071|GHM|8 +C04|05C072|GHM|8 +C04|05C073|GHM|8 +C04|05C074|GHM|8 +C04|05C07Z|GHM|8 +C04|05C081|GHM|8 +C04|05C082|GHM|8 +C04|05C083|GHM|8 +C04|05C084|GHM|8 +C04|05C08T|GHM|8 +C04|05C08V|GHM|8 +C04|05C08W|GHM|8 +C04|05C091|GHM|8 +C04|05C092|GHM|8 +C04|05C093|GHM|8 +C04|05C094|GHM|8 +C04|05C09Z|GHM|8 +C05|04C021|GHM|8 +C05|04C022|GHM|8 +C05|04C023|GHM|8 +C05|04C024|GHM|8 +C05|04C02V|GHM|8 +C05|04C02W|GHM|8 +C05|04C031|GHM|8 +C05|04C032|GHM|8 +C05|04C033|GHM|8 +C05|04C034|GHM|8 +C05|04C03V|GHM|8 +C05|04C03W|GHM|8 +C05|04C041|GHM|8 +C05|04C042|GHM|8 +C05|04C043|GHM|8 +C05|04C044|GHM|8 +C06|06C021|GHM|8 +C06|06C022|GHM|8 +C06|06C023|GHM|8 +C06|06C024|GHM|8 +C06|06C02Z|GHM|8 +C06|06C031|GHM|8 +C06|06C032|GHM|8 +C06|06C033|GHM|8 +C06|06C034|GHM|8 +C06|06C03V|GHM|8 +C06|06C03W|GHM|8 +C06|06C041|GHM|8 +C06|06C042|GHM|8 +C06|06C043|GHM|8 +C06|06C044|GHM|8 +C06|06C04V|GHM|8 +C06|06C04W|GHM|8 +C06|06C051|GHM|8 +C06|06C052|GHM|8 +C06|06C053|GHM|8 +C06|06C054|GHM|8 +C06|06C05Z|GHM|8 +C06|06C161|GHM|8 +C06|06C162|GHM|8 +C06|06C163|GHM|8 +C06|06C164|GHM|8 +C06|06C16V|GHM|8 +C06|06C16W|GHM|8 +C06|06C201|GHM|8 +C06|06C202|GHM|8 +C06|06C203|GHM|8 +C06|06C204|GHM|8 +C06|06C221|GHM|8 +C06|06C222|GHM|8 +C06|06C223|GHM|8 +C06|06C224|GHM|8 +C06|10C04Z|GHM|8 +C06|10C091|GHM|8 +C06|10C092|GHM|8 +C06|10C093|GHM|8 +C06|10C094|GHM|8 +C06|10C09Z|GHM|8 +C07|06C071|GHM|8 +C07|06C072|GHM|8 +C07|06C073|GHM|8 +C07|06C074|GHM|8 +C07|06C07V|GHM|8 +C07|06C07W|GHM|8 +C07|06C081|GHM|8 +C07|06C082|GHM|8 +C07|06C083|GHM|8 +C07|06C084|GHM|8 +C07|06C08V|GHM|8 +C07|06C08W|GHM|8 +C07|06C091|GHM|8 +C07|06C092|GHM|8 +C07|06C093|GHM|8 +C07|06C094|GHM|8 +C07|06C09V|GHM|8 +C07|06C09W|GHM|8 +C07|06C101|GHM|8 +C07|06C102|GHM|8 +C07|06C103|GHM|8 +C07|06C104|GHM|8 +C07|06C10J|GHM|8 +C07|06C10Z|GHM|8 +C07|06C111|GHM|8 +C07|06C112|GHM|8 +C07|06C113|GHM|8 +C07|06C114|GHM|8 +C07|06C11J|GHM|8 +C07|06C11V|GHM|8 +C07|06C11W|GHM|8 +C07|06C121|GHM|8 +C07|06C122|GHM|8 +C07|06C123|GHM|8 +C07|06C124|GHM|8 +C07|06C12J|GHM|8 +C07|06C12V|GHM|8 +C07|06C12W|GHM|8 +C07|06C131|GHM|8 +C07|06C132|GHM|8 +C07|06C133|GHM|8 +C07|06C134|GHM|8 +C07|06C13V|GHM|8 +C07|06C13W|GHM|8 +C07|06C141|GHM|8 +C07|06C142|GHM|8 +C07|06C143|GHM|8 +C07|06C144|GHM|8 +C07|06C14J|GHM|8 +C07|06C14V|GHM|8 +C07|06C14W|GHM|8 +C07|06C151|GHM|8 +C07|06C152|GHM|8 +C07|06C153|GHM|8 +C07|06C154|GHM|8 +C07|06C15V|GHM|8 +C07|06C15W|GHM|8 +C07|06C191|GHM|8 +C07|06C192|GHM|8 +C07|06C193|GHM|8 +C07|06C194|GHM|8 +C07|06C19J|GHM|8 +C07|06C211|GHM|8 +C07|06C212|GHM|8 +C07|06C213|GHM|8 +C07|06C214|GHM|8 +C07|06C231|GHM|8 +C07|06C232|GHM|8 +C07|06C233|GHM|8 +C07|06C234|GHM|8 +C07|06C23J|GHM|8 +C07|06C241|GHM|8 +C07|06C242|GHM|8 +C07|06C243|GHM|8 +C07|06C244|GHM|8 +C07|06C24J|GHM|8 +C07|06C251|GHM|8 +C07|06C252|GHM|8 +C07|06C253|GHM|8 +C07|06C254|GHM|8 +C07|06C25J|GHM|8 +C07|09C081|GHM|8 +C07|09C082|GHM|8 +C07|09C083|GHM|8 +C07|09C084|GHM|8 +C07|09C08J|GHM|8 +C07|09C08Z|GHM|8 +C07|09C131|GHM|8 +C07|09C132|GHM|8 +C07|09C133|GHM|8 +C07|09C134|GHM|8 +C07|09C13J|GHM|8 +C07|10C131|GHM|8 +C07|10C132|GHM|8 +C07|10C133|GHM|8 +C07|10C134|GHM|8 +C07|10C13Z|GHM|8 +C07|16C021|GHM|8 +C07|16C022|GHM|8 +C07|16C023|GHM|8 +C07|16C024|GHM|8 +C07|16C02Z|GHM|8 +C08|07C061|GHM|8 +C08|07C062|GHM|8 +C08|07C063|GHM|8 +C08|07C064|GHM|8 +C08|07C06Z|GHM|8 +C08|07C071|GHM|8 +C08|07C072|GHM|8 +C08|07C073|GHM|8 +C08|07C074|GHM|8 +C08|07C07Z|GHM|8 +C08|07C081|GHM|8 +C08|07C082|GHM|8 +C08|07C083|GHM|8 +C08|07C084|GHM|8 +C08|07C08Z|GHM|8 +C08|07C091|GHM|8 +C08|07C092|GHM|8 +C08|07C093|GHM|8 +C08|07C094|GHM|8 +C08|07C09V|GHM|8 +C08|07C09W|GHM|8 +C08|07C101|GHM|8 +C08|07C102|GHM|8 +C08|07C103|GHM|8 +C08|07C104|GHM|8 +C08|07C10V|GHM|8 +C08|07C10W|GHM|8 +C08|07C111|GHM|8 +C08|07C112|GHM|8 +C08|07C113|GHM|8 +C08|07C114|GHM|8 +C08|07C11V|GHM|8 +C08|07C11W|GHM|8 +C08|07C121|GHM|8 +C08|07C122|GHM|8 +C08|07C123|GHM|8 +C08|07C124|GHM|8 +C08|07C12V|GHM|8 +C08|07C12W|GHM|8 +C08|07C131|GHM|8 +C08|07C132|GHM|8 +C08|07C133|GHM|8 +C08|07C134|GHM|8 +C08|07C141|GHM|8 +C08|07C142|GHM|8 +C08|07C143|GHM|8 +C08|07C144|GHM|8 +C08|07C14J|GHM|8 +C09|08C021|GHM|8 +C09|08C022|GHM|8 +C09|08C023|GHM|8 +C09|08C024|GHM|8 +C09|08C02Z|GHM|8 +C09|08C041|GHM|8 +C09|08C042|GHM|8 +C09|08C043|GHM|8 +C09|08C044|GHM|8 +C09|08C04Z|GHM|8 +C09|08C221|GHM|8 +C09|08C222|GHM|8 +C09|08C223|GHM|8 +C09|08C224|GHM|8 +C09|08C22Z|GHM|8 +C09|08C241|GHM|8 +C09|08C242|GHM|8 +C09|08C243|GHM|8 +C09|08C244|GHM|8 +C09|08C24Z|GHM|8 +C09|08C251|GHM|8 +C09|08C252|GHM|8 +C09|08C253|GHM|8 +C09|08C254|GHM|8 +C09|08C25Z|GHM|8 +C09|08C471|GHM|8 +C09|08C472|GHM|8 +C09|08C473|GHM|8 +C09|08C474|GHM|8 +C09|08C481|GHM|8 +C09|08C482|GHM|8 +C09|08C483|GHM|8 +C09|08C484|GHM|8 +C09|08C491|GHM|8 +C09|08C492|GHM|8 +C09|08C493|GHM|8 +C09|08C494|GHM|8 +C09|08C501|GHM|8 +C09|08C502|GHM|8 +C09|08C503|GHM|8 +C09|08C504|GHM|8 +C10|08C121|GHM|8 +C10|08C122|GHM|8 +C10|08C123|GHM|8 +C10|08C124|GHM|8 +C10|08C12J|GHM|8 +C10|08C12Z|GHM|8 +C10|08C19Z|GHM|8 +C10|08C341|GHM|8 +C10|08C342|GHM|8 +C10|08C343|GHM|8 +C10|08C344|GHM|8 +C10|08C34J|GHM|8 +C10|08C381|GHM|8 +C10|08C382|GHM|8 +C10|08C383|GHM|8 +C10|08C384|GHM|8 +C10|08C38J|GHM|8 +C10|08C401|GHM|8 +C10|08C402|GHM|8 +C10|08C403|GHM|8 +C10|08C404|GHM|8 +C10|08C40J|GHM|8 +C10|08C451|GHM|8 +C10|08C452|GHM|8 +C10|08C453|GHM|8 +C10|08C454|GHM|8 +C10|08C45J|GHM|8 +C10|08C581|GHM|8 +C10|08C582|GHM|8 +C10|08C583|GHM|8 +C10|08C584|GHM|8 +C10|08C58J|GHM|8 +C11|01C07Z|GHM|8 +C11|01C131|GHM|8 +C11|01C132|GHM|8 +C11|01C133|GHM|8 +C11|01C134|GHM|8 +C11|01C13J|GHM|8 +C11|01C13Z|GHM|8 +C11|01C141|GHM|8 +C11|01C142|GHM|8 +C11|01C143|GHM|8 +C11|01C144|GHM|8 +C11|01C14J|GHM|8 +C11|01C151|GHM|8 +C11|01C152|GHM|8 +C11|01C153|GHM|8 +C11|01C154|GHM|8 +C11|01C15J|GHM|8 +C11|05C121|GHM|8 +C11|05C122|GHM|8 +C11|05C123|GHM|8 +C11|05C124|GHM|8 +C11|05C12V|GHM|8 +C11|05C12W|GHM|8 +C11|05C131|GHM|8 +C11|05C132|GHM|8 +C11|05C133|GHM|8 +C11|05C134|GHM|8 +C11|05C13J|GHM|8 +C11|05C13V|GHM|8 +C11|05C13W|GHM|8 +C11|08C061|GHM|8 +C11|08C062|GHM|8 +C11|08C063|GHM|8 +C11|08C064|GHM|8 +C11|08C06Z|GHM|8 +C11|08C08Z|GHM|8 +C11|08C131|GHM|8 +C11|08C132|GHM|8 +C11|08C133|GHM|8 +C11|08C134|GHM|8 +C11|08C13J|GHM|8 +C11|08C13Z|GHM|8 +C11|08C141|GHM|8 +C11|08C142|GHM|8 +C11|08C143|GHM|8 +C11|08C144|GHM|8 +C11|08C14J|GHM|8 +C11|08C14Z|GHM|8 +C11|08C17Z|GHM|8 +C11|08C291|GHM|8 +C11|08C292|GHM|8 +C11|08C293|GHM|8 +C11|08C294|GHM|8 +C11|08C29J|GHM|8 +C11|08C29Z|GHM|8 +C11|08C311|GHM|8 +C11|08C312|GHM|8 +C11|08C313|GHM|8 +C11|08C314|GHM|8 +C11|08C321|GHM|8 +C11|08C322|GHM|8 +C11|08C323|GHM|8 +C11|08C324|GHM|8 +C11|08C32J|GHM|8 +C11|08C331|GHM|8 +C11|08C332|GHM|8 +C11|08C333|GHM|8 +C11|08C334|GHM|8 +C11|08C351|GHM|8 +C11|08C352|GHM|8 +C11|08C353|GHM|8 +C11|08C354|GHM|8 +C11|08C35J|GHM|8 +C11|08C361|GHM|8 +C11|08C362|GHM|8 +C11|08C363|GHM|8 +C11|08C364|GHM|8 +C11|08C36J|GHM|8 +C11|08C371|GHM|8 +C11|08C372|GHM|8 +C11|08C373|GHM|8 +C11|08C374|GHM|8 +C11|08C37J|GHM|8 +C11|08C391|GHM|8 +C11|08C392|GHM|8 +C11|08C393|GHM|8 +C11|08C394|GHM|8 +C11|08C39J|GHM|8 +C11|08C411|GHM|8 +C11|08C412|GHM|8 +C11|08C413|GHM|8 +C11|08C414|GHM|8 +C11|08C41J|GHM|8 +C11|08C421|GHM|8 +C11|08C422|GHM|8 +C11|08C423|GHM|8 +C11|08C424|GHM|8 +C11|08C42J|GHM|8 +C11|08C431|GHM|8 +C11|08C432|GHM|8 +C11|08C433|GHM|8 +C11|08C434|GHM|8 +C11|08C43J|GHM|8 +C11|08C441|GHM|8 +C11|08C442|GHM|8 +C11|08C443|GHM|8 +C11|08C444|GHM|8 +C11|08C44J|GHM|8 +C11|08C461|GHM|8 +C11|08C462|GHM|8 +C11|08C463|GHM|8 +C11|08C464|GHM|8 +C11|08C46J|GHM|8 +C11|08C531|GHM|8 +C11|08C532|GHM|8 +C11|08C533|GHM|8 +C11|08C534|GHM|8 +C11|08C541|GHM|8 +C11|08C542|GHM|8 +C11|08C543|GHM|8 +C11|08C544|GHM|8 +C11|08C54J|GHM|8 +C11|08C551|GHM|8 +C11|08C552|GHM|8 +C11|08C553|GHM|8 +C11|08C554|GHM|8 +C11|08C561|GHM|8 +C11|08C562|GHM|8 +C11|08C563|GHM|8 +C11|08C564|GHM|8 +C11|08C571|GHM|8 +C11|08C572|GHM|8 +C11|08C573|GHM|8 +C11|08C574|GHM|8 +C11|08C57J|GHM|8 +C11|08C591|GHM|8 +C11|08C592|GHM|8 +C11|08C593|GHM|8 +C11|08C594|GHM|8 +C11|08C59J|GHM|8 +C11|08C601|GHM|8 +C11|08C602|GHM|8 +C11|08C603|GHM|8 +C11|08C604|GHM|8 +C11|08C60J|GHM|8 +C11|08C611|GHM|8 +C11|08C612|GHM|8 +C11|08C613|GHM|8 +C11|08C614|GHM|8 +C11|08C621|GHM|8 +C11|08C622|GHM|8 +C11|08C623|GHM|8 +C11|08C624|GHM|8 +C11|08C62J|GHM|8 +C11|21C041|GHM|8 +C11|21C042|GHM|8 +C11|21C043|GHM|8 +C11|21C044|GHM|8 +C11|21C04J|GHM|8 +C11|21C04Z|GHM|8 +C12|26C021|GHM|8 +C12|26C022|GHM|8 +C12|26C023|GHM|8 +C12|26C024|GHM|8 +C12|26C02Z|GHM|8 +C13|05C141|GHM|8 +C13|05C142|GHM|8 +C13|05C143|GHM|8 +C13|05C144|GHM|8 +C13|05C14J|GHM|8 +C13|05C14Z|GHM|8 +C13|05C151|GHM|8 +C13|05C152|GHM|8 +C13|05C153|GHM|8 +C13|05C154|GHM|8 +C13|05C15T|GHM|8 +C13|05C15Z|GHM|8 +C13|05C191|GHM|8 +C13|05C192|GHM|8 +C13|05C193|GHM|8 +C13|05C194|GHM|8 +C13|05C19T|GHM|8 +C13|05C19Z|GHM|8 +C13|05C201|GHM|8 +C13|05C202|GHM|8 +C13|05C203|GHM|8 +C13|05C204|GHM|8 +C13|05C20Z|GHM|8 +C13|05C221|GHM|8 +C13|05C222|GHM|8 +C13|05C223|GHM|8 +C13|05C224|GHM|8 +C13|05C22T|GHM|8 +C14|01C061|GHM|8 +C14|01C062|GHM|8 +C14|01C063|GHM|8 +C14|01C064|GHM|8 +C14|01C06V|GHM|8 +C14|01C06W|GHM|8 +C14|05C101|GHM|8 +C14|05C102|GHM|8 +C14|05C103|GHM|8 +C14|05C104|GHM|8 +C14|05C10V|GHM|8 +C14|05C10W|GHM|8 +C14|05C111|GHM|8 +C14|05C112|GHM|8 +C14|05C113|GHM|8 +C14|05C114|GHM|8 +C14|05C11J|GHM|8 +C14|05C11V|GHM|8 +C14|05C11W|GHM|8 +C14|05C171|GHM|8 +C14|05C172|GHM|8 +C14|05C173|GHM|8 +C14|05C174|GHM|8 +C14|05C17J|GHM|8 +C14|05C17V|GHM|8 +C14|05C17W|GHM|8 +C14|05C211|GHM|8 +C14|05C212|GHM|8 +C14|05C213|GHM|8 +C14|05C214|GHM|8 +C14|05C21J|GHM|8 +C14|11C091|GHM|8 +C14|11C092|GHM|8 +C14|11C093|GHM|8 +C14|11C094|GHM|8 +C14|11C09J|GHM|8 +C15|03C03Z|GHM|8 +C15|03C04Z|GHM|8 +C15|03C051|GHM|8 +C15|03C052|GHM|8 +C15|03C053|GHM|8 +C15|03C054|GHM|8 +C15|03C05T|GHM|8 +C15|03C05Z|GHM|8 +C15|03C061|GHM|8 +C15|03C062|GHM|8 +C15|03C063|GHM|8 +C15|03C064|GHM|8 +C15|03C06J|GHM|8 +C15|03C06Z|GHM|8 +C15|03C071|GHM|8 +C15|03C072|GHM|8 +C15|03C073|GHM|8 +C15|03C074|GHM|8 +C15|03C07J|GHM|8 +C15|03C07V|GHM|8 +C15|03C07W|GHM|8 +C15|03C091|GHM|8 +C15|03C092|GHM|8 +C15|03C093|GHM|8 +C15|03C094|GHM|8 +C15|03C09J|GHM|8 +C15|03C09Z|GHM|8 +C15|03C101|GHM|8 +C15|03C102|GHM|8 +C15|03C103|GHM|8 +C15|03C104|GHM|8 +C15|03C10Z|GHM|8 +C15|03C111|GHM|8 +C15|03C112|GHM|8 +C15|03C113|GHM|8 +C15|03C114|GHM|8 +C15|03C11Z|GHM|8 +C15|03C121|GHM|8 +C15|03C122|GHM|8 +C15|03C123|GHM|8 +C15|03C124|GHM|8 +C15|03C12Z|GHM|8 +C15|03C131|GHM|8 +C15|03C132|GHM|8 +C15|03C133|GHM|8 +C15|03C134|GHM|8 +C15|03C13Z|GHM|8 +C15|03C141|GHM|8 +C15|03C142|GHM|8 +C15|03C143|GHM|8 +C15|03C144|GHM|8 +C15|03C14J|GHM|8 +C15|03C14Z|GHM|8 +C15|03C151|GHM|8 +C15|03C152|GHM|8 +C15|03C153|GHM|8 +C15|03C154|GHM|8 +C15|03C15J|GHM|8 +C15|03C15Z|GHM|8 +C15|03C161|GHM|8 +C15|03C162|GHM|8 +C15|03C163|GHM|8 +C15|03C164|GHM|8 +C15|03C16J|GHM|8 +C15|03C16V|GHM|8 +C15|03C16W|GHM|8 +C15|03C171|GHM|8 +C15|03C172|GHM|8 +C15|03C173|GHM|8 +C15|03C174|GHM|8 +C15|03C17J|GHM|8 +C15|03C17Z|GHM|8 +C15|03C181|GHM|8 +C15|03C182|GHM|8 +C15|03C183|GHM|8 +C15|03C184|GHM|8 +C15|03C18Z|GHM|8 +C15|03C191|GHM|8 +C15|03C192|GHM|8 +C15|03C193|GHM|8 +C15|03C194|GHM|8 +C15|03C19J|GHM|8 +C15|03C19Z|GHM|8 +C15|03C201|GHM|8 +C15|03C202|GHM|8 +C15|03C203|GHM|8 +C15|03C204|GHM|8 +C15|03C20J|GHM|8 +C15|03C20Z|GHM|8 +C15|03C211|GHM|8 +C15|03C212|GHM|8 +C15|03C213|GHM|8 +C15|03C214|GHM|8 +C15|03C21J|GHM|8 +C15|03C21Z|GHM|8 +C15|03C22J|GHM|8 +C15|03C241|GHM|8 +C15|03C242|GHM|8 +C15|03C243|GHM|8 +C15|03C244|GHM|8 +C15|03C24J|GHM|8 +C15|03C251|GHM|8 +C15|03C252|GHM|8 +C15|03C253|GHM|8 +C15|03C254|GHM|8 +C15|03C261|GHM|8 +C15|03C262|GHM|8 +C15|03C263|GHM|8 +C15|03C264|GHM|8 +C15|03C27J|GHM|8 +C15|03C28J|GHM|8 +C15|03C291|GHM|8 +C15|03C292|GHM|8 +C15|03C293|GHM|8 +C15|03C294|GHM|8 +C15|03C29J|GHM|8 +C15|03C301|GHM|8 +C15|03C302|GHM|8 +C15|03C303|GHM|8 +C15|03C304|GHM|8 +C15|03C30J|GHM|8 +C15|08C281|GHM|8 +C15|08C282|GHM|8 +C15|08C283|GHM|8 +C15|08C284|GHM|8 +C15|08C28J|GHM|8 +C15|08C28Z|GHM|8 +C16|02C021|GHM|8 +C16|02C022|GHM|8 +C16|02C023|GHM|8 +C16|02C024|GHM|8 +C16|02C02J|GHM|8 +C16|02C02V|GHM|8 +C16|02C02W|GHM|8 +C16|02C031|GHM|8 +C16|02C032|GHM|8 +C16|02C033|GHM|8 +C16|02C034|GHM|8 +C16|02C03J|GHM|8 +C16|02C03Z|GHM|8 +C16|02C04Z|GHM|8 +C16|02C051|GHM|8 +C16|02C052|GHM|8 +C16|02C053|GHM|8 +C16|02C054|GHM|8 +C16|02C05J|GHM|8 +C16|02C05Z|GHM|8 +C16|02C061|GHM|8 +C16|02C062|GHM|8 +C16|02C063|GHM|8 +C16|02C064|GHM|8 +C16|02C06J|GHM|8 +C16|02C06Z|GHM|8 +C16|02C071|GHM|8 +C16|02C072|GHM|8 +C16|02C073|GHM|8 +C16|02C074|GHM|8 +C16|02C07J|GHM|8 +C16|02C07Z|GHM|8 +C16|02C081|GHM|8 +C16|02C082|GHM|8 +C16|02C083|GHM|8 +C16|02C084|GHM|8 +C16|02C08J|GHM|8 +C16|02C08V|GHM|8 +C16|02C08W|GHM|8 +C16|02C091|GHM|8 +C16|02C092|GHM|8 +C16|02C093|GHM|8 +C16|02C094|GHM|8 +C16|02C09J|GHM|8 +C16|02C09Z|GHM|8 +C16|02C101|GHM|8 +C16|02C102|GHM|8 +C16|02C103|GHM|8 +C16|02C104|GHM|8 +C16|02C10J|GHM|8 +C16|02C111|GHM|8 +C16|02C112|GHM|8 +C16|02C113|GHM|8 +C16|02C114|GHM|8 +C16|02C11J|GHM|8 +C16|02C121|GHM|8 +C16|02C122|GHM|8 +C16|02C123|GHM|8 +C16|02C124|GHM|8 +C16|02C12J|GHM|8 +C16|02C131|GHM|8 +C16|02C132|GHM|8 +C16|02C133|GHM|8 +C16|02C134|GHM|8 +C16|02C13J|GHM|8 +C17|13C031|GHM|8 +C17|13C032|GHM|8 +C17|13C033|GHM|8 +C17|13C034|GHM|8 +C17|13C03V|GHM|8 +C17|13C03W|GHM|8 +C17|13C041|GHM|8 +C17|13C042|GHM|8 +C17|13C043|GHM|8 +C17|13C044|GHM|8 +C17|13C04J|GHM|8 +C17|13C04V|GHM|8 +C17|13C04W|GHM|8 +C17|13C051|GHM|8 +C17|13C052|GHM|8 +C17|13C053|GHM|8 +C17|13C054|GHM|8 +C17|13C05Z|GHM|8 +C17|13C061|GHM|8 +C17|13C062|GHM|8 +C17|13C063|GHM|8 +C17|13C064|GHM|8 +C17|13C06J|GHM|8 +C17|13C06Z|GHM|8 +C17|13C071|GHM|8 +C17|13C072|GHM|8 +C17|13C073|GHM|8 +C17|13C074|GHM|8 +C17|13C07J|GHM|8 +C17|13C07V|GHM|8 +C17|13C07W|GHM|8 +C17|13C081|GHM|8 +C17|13C082|GHM|8 +C17|13C083|GHM|8 +C17|13C084|GHM|8 +C17|13C08J|GHM|8 +C17|13C08V|GHM|8 +C17|13C08W|GHM|8 +C17|13C091|GHM|8 +C17|13C092|GHM|8 +C17|13C093|GHM|8 +C17|13C094|GHM|8 +C17|13C09J|GHM|8 +C17|13C09T|GHM|8 +C17|13C09Z|GHM|8 +C17|13C101|GHM|8 +C17|13C102|GHM|8 +C17|13C103|GHM|8 +C17|13C104|GHM|8 +C17|13C10J|GHM|8 +C17|13C10T|GHM|8 +C17|13C10Z|GHM|8 +C17|13C111|GHM|8 +C17|13C112|GHM|8 +C17|13C113|GHM|8 +C17|13C114|GHM|8 +C17|13C11J|GHM|8 +C17|13C11Z|GHM|8 +C17|13C121|GHM|8 +C17|13C122|GHM|8 +C17|13C123|GHM|8 +C17|13C124|GHM|8 +C17|13C12J|GHM|8 +C17|13C12Z|GHM|8 +C17|13C131|GHM|8 +C17|13C132|GHM|8 +C17|13C133|GHM|8 +C17|13C134|GHM|8 +C17|13C13T|GHM|8 +C17|13C13Z|GHM|8 +C17|13C141|GHM|8 +C17|13C142|GHM|8 +C17|13C143|GHM|8 +C17|13C144|GHM|8 +C17|13C14V|GHM|8 +C17|13C14W|GHM|8 +C17|13C151|GHM|8 +C17|13C152|GHM|8 +C17|13C153|GHM|8 +C17|13C154|GHM|8 +C17|13C15V|GHM|8 +C17|13C15W|GHM|8 +C17|13C16J|GHM|8 +C17|13C171|GHM|8 +C17|13C172|GHM|8 +C17|13C173|GHM|8 +C17|13C174|GHM|8 +C17|13C17J|GHM|8 +C17|13C181|GHM|8 +C17|13C182|GHM|8 +C17|13C183|GHM|8 +C17|13C184|GHM|8 +C17|13C191|GHM|8 +C17|13C192|GHM|8 +C17|13C193|GHM|8 +C17|13C194|GHM|8 +C17|13C19J|GHM|8 +C17|13C201|GHM|8 +C17|13C202|GHM|8 +C17|13C203|GHM|8 +C17|13C204|GHM|8 +C17|13C20J|GHM|8 +C18|09C041|GHM|8 +C18|09C042|GHM|8 +C18|09C043|GHM|8 +C18|09C044|GHM|8 +C18|09C04V|GHM|8 +C18|09C04W|GHM|8 +C18|09C051|GHM|8 +C18|09C052|GHM|8 +C18|09C053|GHM|8 +C18|09C054|GHM|8 +C18|09C05J|GHM|8 +C18|09C05V|GHM|8 +C18|09C05W|GHM|8 +C18|09C061|GHM|8 +C18|09C062|GHM|8 +C18|09C063|GHM|8 +C18|09C064|GHM|8 +C18|09C06T|GHM|8 +C18|09C06Z|GHM|8 +C18|09C071|GHM|8 +C18|09C072|GHM|8 +C18|09C073|GHM|8 +C18|09C074|GHM|8 +C18|09C07J|GHM|8 +C18|09C07Z|GHM|8 +C18|09C111|GHM|8 +C18|09C112|GHM|8 +C18|09C113|GHM|8 +C18|09C114|GHM|8 +C19|10C031|GHM|8 +C19|10C032|GHM|8 +C19|10C033|GHM|8 +C19|10C034|GHM|8 +C19|10C03Z|GHM|8 +C19|11C021|GHM|8 +C19|11C022|GHM|8 +C19|11C023|GHM|8 +C19|11C024|GHM|8 +C19|11C02V|GHM|8 +C19|11C02W|GHM|8 +C19|11C031|GHM|8 +C19|11C032|GHM|8 +C19|11C033|GHM|8 +C19|11C034|GHM|8 +C19|11C03V|GHM|8 +C19|11C03W|GHM|8 +C19|11C041|GHM|8 +C19|11C042|GHM|8 +C19|11C043|GHM|8 +C19|11C044|GHM|8 +C19|11C04J|GHM|8 +C19|11C04Z|GHM|8 +C19|11C051|GHM|8 +C19|11C052|GHM|8 +C19|11C053|GHM|8 +C19|11C054|GHM|8 +C19|11C05J|GHM|8 +C19|11C05V|GHM|8 +C19|11C05W|GHM|8 +C19|11C061|GHM|8 +C19|11C062|GHM|8 +C19|11C063|GHM|8 +C19|11C064|GHM|8 +C19|11C06Z|GHM|8 +C19|11C071|GHM|8 +C19|11C072|GHM|8 +C19|11C073|GHM|8 +C19|11C074|GHM|8 +C19|11C07J|GHM|8 +C19|11C07Z|GHM|8 +C19|11C081|GHM|8 +C19|11C082|GHM|8 +C19|11C083|GHM|8 +C19|11C084|GHM|8 +C19|11C08T|GHM|8 +C19|11C08V|GHM|8 +C19|11C08W|GHM|8 +C19|11C101|GHM|8 +C19|11C102|GHM|8 +C19|11C103|GHM|8 +C19|11C104|GHM|8 +C19|11C10J|GHM|8 +C19|11C111|GHM|8 +C19|11C112|GHM|8 +C19|11C113|GHM|8 +C19|11C114|GHM|8 +C19|11C11J|GHM|8 +C19|11C121|GHM|8 +C19|11C122|GHM|8 +C19|11C123|GHM|8 +C19|11C124|GHM|8 +C19|11C12J|GHM|8 +C19|11C131|GHM|8 +C19|11C132|GHM|8 +C19|11C133|GHM|8 +C19|11C134|GHM|8 +C19|11C13J|GHM|8 +C20|12C02Z|GHM|8 +C20|12C031|GHM|8 +C20|12C032|GHM|8 +C20|12C033|GHM|8 +C20|12C034|GHM|8 +C20|12C03J|GHM|8 +C20|12C03Z|GHM|8 +C20|12C041|GHM|8 +C20|12C042|GHM|8 +C20|12C043|GHM|8 +C20|12C044|GHM|8 +C20|12C04J|GHM|8 +C20|12C04V|GHM|8 +C20|12C04W|GHM|8 +C20|12C051|GHM|8 +C20|12C052|GHM|8 +C20|12C053|GHM|8 +C20|12C054|GHM|8 +C20|12C05Z|GHM|8 +C20|12C061|GHM|8 +C20|12C062|GHM|8 +C20|12C063|GHM|8 +C20|12C064|GHM|8 +C20|12C06J|GHM|8 +C20|12C06Z|GHM|8 +C20|12C071|GHM|8 +C20|12C072|GHM|8 +C20|12C073|GHM|8 +C20|12C074|GHM|8 +C20|12C07J|GHM|8 +C20|12C07Z|GHM|8 +C20|12C081|GHM|8 +C20|12C082|GHM|8 +C20|12C083|GHM|8 +C20|12C084|GHM|8 +C20|12C08J|GHM|8 +C20|12C08Z|GHM|8 +C20|12C091|GHM|8 +C20|12C092|GHM|8 +C20|12C093|GHM|8 +C20|12C094|GHM|8 +C20|12C09Z|GHM|8 +C20|12C101|GHM|8 +C20|12C102|GHM|8 +C20|12C103|GHM|8 +C20|12C104|GHM|8 +C20|12C10Z|GHM|8 +C20|12C111|GHM|8 +C20|12C112|GHM|8 +C20|12C113|GHM|8 +C20|12C114|GHM|8 +C20|12C11Z|GHM|8 +C20|12C121|GHM|8 +C20|12C122|GHM|8 +C20|12C123|GHM|8 +C20|12C124|GHM|8 +C20|12C12Z|GHM|8 +C20|12C131|GHM|8 +C20|12C132|GHM|8 +C20|12C133|GHM|8 +C20|12C134|GHM|8 +C20|12C13J|GHM|8 +C21|16C031|GHM|8 +C21|16C032|GHM|8 +C21|16C033|GHM|8 +C21|16C034|GHM|8 +C21|16C03J|GHM|8 +C21|16C03V|GHM|8 +C21|16C03W|GHM|8 +C21|17C021|GHM|8 +C21|17C022|GHM|8 +C21|17C023|GHM|8 +C21|17C024|GHM|8 +C21|17C02V|GHM|8 +C21|17C02W|GHM|8 +C21|17C031|GHM|8 +C21|17C032|GHM|8 +C21|17C033|GHM|8 +C21|17C034|GHM|8 +C21|17C03J|GHM|8 +C21|17C03V|GHM|8 +C21|17C03W|GHM|8 +C21|17C041|GHM|8 +C21|17C042|GHM|8 +C21|17C043|GHM|8 +C21|17C044|GHM|8 +C21|17C04V|GHM|8 +C21|17C04W|GHM|8 +C21|17C051|GHM|8 +C21|17C052|GHM|8 +C21|17C053|GHM|8 +C21|17C054|GHM|8 +C21|17C05J|GHM|8 +C21|17C05V|GHM|8 +C21|17C05W|GHM|8 +C21|17C061|GHM|8 +C21|17C062|GHM|8 +C21|17C063|GHM|8 +C21|17C064|GHM|8 +C21|17C071|GHM|8 +C21|17C072|GHM|8 +C21|17C073|GHM|8 +C21|17C074|GHM|8 +C21|17C081|GHM|8 +C21|17C082|GHM|8 +C21|17C083|GHM|8 +C21|17C084|GHM|8 +C21|17C08J|GHM|8 +C22|10C051|GHM|8 +C22|10C052|GHM|8 +C22|10C053|GHM|8 +C22|10C054|GHM|8 +C22|10C05Z|GHM|8 +C22|10C071|GHM|8 +C22|10C072|GHM|8 +C22|10C073|GHM|8 +C22|10C074|GHM|8 +C22|10C07Z|GHM|8 +C22|10C101|GHM|8 +C22|10C102|GHM|8 +C22|10C103|GHM|8 +C22|10C104|GHM|8 +C22|10C10Z|GHM|8 +C22|10C111|GHM|8 +C22|10C112|GHM|8 +C22|10C113|GHM|8 +C22|10C114|GHM|8 +C22|10C11V|GHM|8 +C22|10C11W|GHM|8 +C22|10C121|GHM|8 +C22|10C122|GHM|8 +C22|10C123|GHM|8 +C22|10C124|GHM|8 +C22|10C12V|GHM|8 +C22|10C12W|GHM|8 +C23|08C201|GHM|8 +C23|08C202|GHM|8 +C23|08C203|GHM|8 +C23|08C204|GHM|8 +C23|08C20J|GHM|8 +C23|08C20Z|GHM|8 +C23|09C021|GHM|8 +C23|09C022|GHM|8 +C23|09C023|GHM|8 +C23|09C024|GHM|8 +C23|09C02J|GHM|8 +C23|09C02V|GHM|8 +C23|09C02W|GHM|8 +C23|09C031|GHM|8 +C23|09C032|GHM|8 +C23|09C033|GHM|8 +C23|09C034|GHM|8 +C23|09C03J|GHM|8 +C23|09C03V|GHM|8 +C23|09C03W|GHM|8 +C23|09C091|GHM|8 +C23|09C092|GHM|8 +C23|09C093|GHM|8 +C23|09C094|GHM|8 +C23|09C09J|GHM|8 +C23|09C09Z|GHM|8 +C23|09C121|GHM|8 +C23|09C122|GHM|8 +C23|09C123|GHM|8 +C23|09C124|GHM|8 +C23|09C12J|GHM|8 +C23|21C021|GHM|8 +C23|21C022|GHM|8 +C23|21C023|GHM|8 +C23|21C024|GHM|8 +C23|21C02J|GHM|8 +C23|21C02Z|GHM|8 +C23|21C031|GHM|8 +C23|21C032|GHM|8 +C23|21C033|GHM|8 +C23|21C034|GHM|8 +C23|21C03J|GHM|8 +C23|21C03Z|GHM|8 +C23|21C061|GHM|8 +C23|21C062|GHM|8 +C23|21C063|GHM|8 +C23|21C064|GHM|8 +C23|21C06J|GHM|8 +C24|22C021|GHM|8 +C24|22C022|GHM|8 +C24|22C023|GHM|8 +C24|22C024|GHM|8 +C24|22C02J|GHM|8 +C24|22C02Z|GHM|8 +C24|22C031|GHM|8 +C24|22C032|GHM|8 +C24|22C033|GHM|8 +C24|22C034|GHM|8 +C24|22C03Z|GHM|8 +C25|01C081|GHM|8 +C25|01C082|GHM|8 +C25|01C083|GHM|8 +C25|01C084|GHM|8 +C25|01C08J|GHM|8 +C25|01C08V|GHM|8 +C25|01C08W|GHM|8 +C25|05C181|GHM|8 +C25|05C182|GHM|8 +C25|05C183|GHM|8 +C25|05C184|GHM|8 +C25|05C18J|GHM|8 +C25|05C18Z|GHM|8 +C25|08C211|GHM|8 +C25|08C212|GHM|8 +C25|08C213|GHM|8 +C25|08C214|GHM|8 +C25|08C21J|GHM|8 +C25|08C21V|GHM|8 +C25|08C21W|GHM|8 +C25|09C101|GHM|8 +C25|09C102|GHM|8 +C25|09C103|GHM|8 +C25|09C104|GHM|8 +C25|09C10J|GHM|8 +C25|09C10V|GHM|8 +C25|09C10W|GHM|8 +C25|09C141|GHM|8 +C25|09C142|GHM|8 +C25|09C143|GHM|8 +C25|09C144|GHM|8 +C25|09C14J|GHM|8 +C25|09C151|GHM|8 +C25|09C152|GHM|8 +C25|09C153|GHM|8 +C25|09C154|GHM|8 +C25|09C15J|GHM|8 +C25|09C161|GHM|8 +C25|09C162|GHM|8 +C25|09C163|GHM|8 +C25|09C164|GHM|8 +C25|09C171|GHM|8 +C25|09C172|GHM|8 +C25|09C173|GHM|8 +C25|09C174|GHM|8 +C25|09C181|GHM|8 +C25|09C182|GHM|8 +C25|09C183|GHM|8 +C25|09C184|GHM|8 +C25|09C191|GHM|8 +C25|09C192|GHM|8 +C25|09C193|GHM|8 +C25|09C194|GHM|8 +C25|09C201|GHM|8 +C25|09C202|GHM|8 +C25|09C203|GHM|8 +C25|09C204|GHM|8 +C25|09C20J|GHM|8 +C25|09C211|GHM|8 +C25|09C212|GHM|8 +C25|09C213|GHM|8 +C25|09C214|GHM|8 +C25|09C221|GHM|8 +C25|09C222|GHM|8 +C25|09C223|GHM|8 +C25|09C224|GHM|8 +C25|09C22J|GHM|8 +C25|09C231|GHM|8 +C25|09C232|GHM|8 +C25|09C233|GHM|8 +C25|09C234|GHM|8 +C25|09C23J|GHM|8 +C25|09C241|GHM|8 +C25|09C242|GHM|8 +C25|09C243|GHM|8 +C25|09C244|GHM|8 +C25|09C24J|GHM|8 +C25|09C251|GHM|8 +C25|09C252|GHM|8 +C25|09C253|GHM|8 +C25|09C254|GHM|8 +C25|09C25J|GHM|8 +C25|09C261|GHM|8 +C25|09C262|GHM|8 +C25|09C263|GHM|8 +C25|09C264|GHM|8 +C25|09C26J|GHM|8 +C25|09C271|GHM|8 +C25|09C272|GHM|8 +C25|09C273|GHM|8 +C25|09C274|GHM|8 +C25|09C281|GHM|8 +C25|09C282|GHM|8 +C25|09C283|GHM|8 +C25|09C284|GHM|8 +C25|09C28J|GHM|8 +C25|09C291|GHM|8 +C25|09C292|GHM|8 +C25|09C293|GHM|8 +C25|09C294|GHM|8 +C25|09C29J|GHM|8 +C25|09C301|GHM|8 +C25|09C302|GHM|8 +C25|09C303|GHM|8 +C25|09C304|GHM|8 +C25|09C30J|GHM|8 +C25|09C311|GHM|8 +C25|09C312|GHM|8 +C25|09C313|GHM|8 +C25|09C314|GHM|8 +C25|09C31J|GHM|8 +C25|09C321|GHM|8 +C25|09C322|GHM|8 +C25|09C323|GHM|8 +C25|09C324|GHM|8 +C25|09C32J|GHM|8 +C25|09C331|GHM|8 +C25|09C332|GHM|8 +C25|09C333|GHM|8 +C25|09C334|GHM|8 +C25|09C341|GHM|8 +C25|09C342|GHM|8 +C25|09C343|GHM|8 +C25|09C344|GHM|8 +C25|09C34J|GHM|8 +C25|10C081|GHM|8 +C25|10C082|GHM|8 +C25|10C083|GHM|8 +C25|10C084|GHM|8 +C25|10C08J|GHM|8 +C25|10C08Z|GHM|8 +C25|18C021|GHM|8 +C25|18C022|GHM|8 +C25|18C023|GHM|8 +C25|18C024|GHM|8 +C25|18C02J|GHM|8 +C25|18C02V|GHM|8 +C25|18C02W|GHM|8 +C25|19C021|GHM|8 +C25|19C022|GHM|8 +C25|19C023|GHM|8 +C25|19C024|GHM|8 +C25|19C02Z|GHM|8 +C25|21C051|GHM|8 +C25|21C052|GHM|8 +C25|21C053|GHM|8 +C25|21C054|GHM|8 +C25|21C05J|GHM|8 +C25|21C05V|GHM|8 +C25|21C05W|GHM|8 +C25|23C021|GHM|8 +C25|23C022|GHM|8 +C25|23C023|GHM|8 +C25|23C024|GHM|8 +C25|23C02J|GHM|8 +C25|23C02Z|GHM|8 +C25|25C021|GHM|8 +C25|25C022|GHM|8 +C25|25C023|GHM|8 +C25|25C024|GHM|8 +C25|25C02Z|GHM|8 +K01|06K06J|GHM|8 +K01|07K061|GHM|8 +K01|07K062|GHM|8 +K01|07K063|GHM|8 +K01|07K064|GHM|8 +K02|06K02Z|GHM|8 +K02|06K03J|GHM|8 +K02|06K04J|GHM|8 +K02|06K05J|GHM|8 +K02|07K02Z|GHM|8 +K02|07K04J|GHM|8 +K02|07K05J|GHM|8 +K03|01K04J|GHM|8 +K03|01K06J|GHM|8 +K04|05K17J|GHM|8 +K04|05K18J|GHM|8 +K05|01K021|GHM|8 +K05|01K022|GHM|8 +K05|01K023|GHM|8 +K05|01K024|GHM|8 +K05|01K02Z|GHM|8 +K05|01K031|GHM|8 +K05|01K032|GHM|8 +K05|01K033|GHM|8 +K05|01K034|GHM|8 +K05|01K03Z|GHM|8 +K05|01K071|GHM|8 +K05|01K072|GHM|8 +K05|01K073|GHM|8 +K05|01K074|GHM|8 +K05|05C16Z|GHM|8 +K05|05K03Z|GHM|8 +K05|05K04Z|GHM|8 +K05|05K051|GHM|8 +K05|05K052|GHM|8 +K05|05K053|GHM|8 +K05|05K054|GHM|8 +K05|05K05V|GHM|8 +K05|05K05W|GHM|8 +K05|05K061|GHM|8 +K05|05K062|GHM|8 +K05|05K063|GHM|8 +K05|05K064|GHM|8 +K05|05K06T|GHM|8 +K05|05K06V|GHM|8 +K05|05K06W|GHM|8 +K05|05K07Z|GHM|8 +K05|05K08Z|GHM|8 +K05|05K09Z|GHM|8 +K05|05K101|GHM|8 +K05|05K102|GHM|8 +K05|05K103|GHM|8 +K05|05K104|GHM|8 +K05|05K10J|GHM|8 +K05|05K10Z|GHM|8 +K05|05K111|GHM|8 +K05|05K112|GHM|8 +K05|05K113|GHM|8 +K05|05K114|GHM|8 +K05|05K11T|GHM|8 +K05|05K11Z|GHM|8 +K05|05K121|GHM|8 +K05|05K122|GHM|8 +K05|05K123|GHM|8 +K05|05K124|GHM|8 +K05|05K12Z|GHM|8 +K05|05K131|GHM|8 +K05|05K132|GHM|8 +K05|05K133|GHM|8 +K05|05K134|GHM|8 +K05|05K13J|GHM|8 +K05|05K13Z|GHM|8 +K05|05K151|GHM|8 +K05|05K152|GHM|8 +K05|05K153|GHM|8 +K05|05K154|GHM|8 +K05|05K15J|GHM|8 +K05|05K191|GHM|8 +K05|05K192|GHM|8 +K05|05K193|GHM|8 +K05|05K194|GHM|8 +K05|05K201|GHM|8 +K05|05K202|GHM|8 +K05|05K203|GHM|8 +K05|05K204|GHM|8 +K05|05K20T|GHM|8 +K05|05K211|GHM|8 +K05|05K212|GHM|8 +K05|05K213|GHM|8 +K05|05K214|GHM|8 +K05|05K221|GHM|8 +K05|05K222|GHM|8 +K05|05K223|GHM|8 +K05|05K224|GHM|8 +K05|05K231|GHM|8 +K05|05K232|GHM|8 +K05|05K233|GHM|8 +K05|05K234|GHM|8 +K05|05K23J|GHM|8 +K05|05K241|GHM|8 +K05|05K242|GHM|8 +K05|05K243|GHM|8 +K05|05K244|GHM|8 +K05|05K24J|GHM|8 +K05|05K251|GHM|8 +K05|05K252|GHM|8 +K05|05K253|GHM|8 +K05|05K254|GHM|8 +K05|05K25J|GHM|8 +K05|05K261|GHM|8 +K05|05K262|GHM|8 +K05|05K263|GHM|8 +K05|05K264|GHM|8 +K05|05K26J|GHM|8 +K05|05M02E|GHM|8 +K05|05M03Z|GHM|8 +K06|05K14Z|GHM|8 +K06|11K07Z|GHM|8 +K07|04K02J|GHM|8 +K08|08K02J|GHM|8 +K08|08K031|GHM|8 +K08|08K032|GHM|8 +K08|08K033|GHM|8 +K08|08K034|GHM|8 +K08|08K041|GHM|8 +K08|08K042|GHM|8 +K08|08K043|GHM|8 +K08|08K044|GHM|8 +K08|08K051|GHM|8 +K08|08K052|GHM|8 +K08|08K053|GHM|8 +K08|08K054|GHM|8 +K08|08K05J|GHM|8 +K08|08K06Z|GHM|8 +K09|03K021|GHM|8 +K09|03K022|GHM|8 +K09|03K023|GHM|8 +K09|03K024|GHM|8 +K09|03K02J|GHM|8 +K09|03K02Z|GHM|8 +K09|03K03J|GHM|8 +K09|03K04J|GHM|8 +K10|11K03Z|GHM|8 +K10|11K04Z|GHM|8 +K10|11K05Z|GHM|8 +K10|11K06Z|GHM|8 +K10|11K08J|GHM|8 +K10|12K02Z|GHM|8 +K10|12K03Z|GHM|8 +K10|12K06J|GHM|8 +K10|13K02Z|GHM|8 +K10|13K03Z|GHM|8 +K10|13K04Z|GHM|8 +K10|13K05Z|GHM|8 +K10|13K06J|GHM|8 +K11|01K05J|GHM|8 +K12|23K02Z|GHM|8 +K13|11K021|GHM|8 +K13|11K022|GHM|8 +K13|11K023|GHM|8 +K13|11K024|GHM|8 +K13|11K02J|GHM|8 +K13|11K02V|GHM|8 +K13|11K02W|GHM|8 +K14|17K02Z|GHM|8 +K14|17K03Z|GHM|8 +K14|17K041|GHM|8 +K14|17K042|GHM|8 +K14|17K043|GHM|8 +K14|17K044|GHM|8 +K14|17K04Z|GHM|8 +K14|17K051|GHM|8 +K14|17K052|GHM|8 +K14|17K053|GHM|8 +K14|17K054|GHM|8 +K14|17K05Z|GHM|8 +K14|17K061|GHM|8 +K14|17K062|GHM|8 +K14|17K063|GHM|8 +K14|17K064|GHM|8 +K14|17K06Z|GHM|8 +K14|17K081|GHM|8 +K14|17K082|GHM|8 +K14|17K083|GHM|8 +K14|17K084|GHM|8 +K14|17K091|GHM|8 +K14|17K092|GHM|8 +K14|17K093|GHM|8 +K14|17K094|GHM|8 +K15|09K02J|GHM|8 +K15|17K07J|GHM|8 +K15|23K03J|GHM|8 +K16|22K02J|GHM|8 +K17|21K02J|GHM|8 +N01|15C02A|GHM|8 +N01|15C02B|GHM|8 +N01|15C02Z|GHM|8 +N01|15C03A|GHM|8 +N01|15C03B|GHM|8 +N01|15C03Z|GHM|8 +N01|15C04A|GHM|8 +N01|15C04B|GHM|8 +N01|15C04Z|GHM|8 +N01|15C05A|GHM|8 +N01|15C05B|GHM|8 +N01|15C05Z|GHM|8 +N01|15C06A|GHM|8 +N01|15C06B|GHM|8 +N01|15C06Z|GHM|8 +N02|15M05A|GHM|8 +N02|15M05B|GHM|8 +N02|15M05C|GHM|8 +N02|15M05D|GHM|8 +N02|15M06A|GHM|8 +N02|15M06B|GHM|8 +N02|15M06C|GHM|8 +N02|15M06D|GHM|8 +N02|15M07A|GHM|8 +N02|15M07B|GHM|8 +N02|15M07C|GHM|8 +N02|15M08A|GHM|8 +N02|15M08B|GHM|8 +N02|15M08C|GHM|8 +N02|15M09A|GHM|8 +N02|15M09B|GHM|8 +N02|15M09C|GHM|8 +N02|15M10A|GHM|8 +N02|15M10B|GHM|8 +N02|15M10C|GHM|8 +N02|15M11A|GHM|8 +N02|15M11B|GHM|8 +N02|15M11C|GHM|8 +N02|15M12A|GHM|8 +N02|15M12B|GHM|8 +N02|15M13A|GHM|8 +N02|15M13B|GHM|8 +N02|15M14A|GHM|8 +N02|15M14B|GHM|8 +N02|15Z02T|GHM|8 +N02|15Z02Z|GHM|8 +N02|15Z05A|GHM|8 +N02|15Z05B|GHM|8 +N02|15Z05C|GHM|8 +N02|15Z05D|GHM|8 +N02|15Z06A|GHM|8 +N02|15Z06B|GHM|8 +N02|15Z06C|GHM|8 +N02|15Z06D|GHM|8 +N02|15Z07A|GHM|8 +N02|15Z07B|GHM|8 +N02|15Z07C|GHM|8 +N02|15Z08A|GHM|8 +N02|15Z08Z|GHM|8 +N02|15Z09A|GHM|8 +N02|15Z09Z|GHM|8 +N03|15M02Z|GHM|8 +N03|15M03E|GHM|8 +N03|15M04E|GHM|8 +N03|15Z03Z|GHM|8 +N03|15Z04E|GHM|8 +N03|15Z08E|GHM|8 +N03|15Z09E|GHM|8 +N03|15Z10E|GHM|8 +O01|14C03A|GHM|8 +O01|14C03B|GHM|8 +O01|14C03C|GHM|8 +O01|14C03D|GHM|8 +O01|14C03Z|GHM|8 +O01|14Z02A|GHM|8 +O01|14Z02B|GHM|8 +O01|14Z02C|GHM|8 +O01|14Z02T|GHM|8 +O01|14Z09Z|GHM|8 +O01|14Z10A|GHM|8 +O01|14Z10B|GHM|8 +O01|14Z10T|GHM|8 +O01|14Z11A|GHM|8 +O01|14Z11B|GHM|8 +O01|14Z12A|GHM|8 +O01|14Z12B|GHM|8 +O01|14Z13A|GHM|8 +O01|14Z13B|GHM|8 +O01|14Z13C|GHM|8 +O01|14Z13D|GHM|8 +O01|14Z13T|GHM|8 +O01|14Z14A|GHM|8 +O01|14Z14B|GHM|8 +O01|14Z14C|GHM|8 +O01|14Z14D|GHM|8 +O01|14Z14T|GHM|8 +O02|14C02A|GHM|8 +O02|14C02B|GHM|8 +O02|14C02C|GHM|8 +O02|14C06A|GHM|8 +O02|14C06B|GHM|8 +O02|14C06C|GHM|8 +O02|14C06D|GHM|8 +O02|14C07A|GHM|8 +O02|14C07B|GHM|8 +O02|14C07C|GHM|8 +O02|14C07D|GHM|8 +O02|14C08A|GHM|8 +O02|14C08B|GHM|8 +O02|14C08C|GHM|8 +O02|14C08D|GHM|8 +O03|14Z08Z|GHM|8 +O04|14C04T|GHM|8 +O04|14C04Z|GHM|8 +O04|14C05J|GHM|8 +O04|14C05Z|GHM|8 +O04|14C09A|GHM|8 +O04|14C09B|GHM|8 +O04|14C10T|GHM|8 +O04|14C10Z|GHM|8 +O04|14M02A|GHM|8 +O04|14M02B|GHM|8 +O04|14M02T|GHM|8 +O04|14M02Z|GHM|8 +O04|14M03A|GHM|8 +O04|14M03B|GHM|8 +O04|14M03C|GHM|8 +O04|14M03D|GHM|8 +O04|14M03T|GHM|8 +O04|14Z03A|GHM|8 +O04|14Z03B|GHM|8 +O04|14Z03T|GHM|8 +O04|14Z04T|GHM|8 +O04|14Z04Z|GHM|8 +O04|14Z05Z|GHM|8 +O04|14Z06T|GHM|8 +O04|14Z06Z|GHM|8 +O04|14Z07Z|GHM|8 +O04|14Z15Z|GHM|8 +O04|14Z16T|GHM|8 +O04|14Z16Z|GHM|8 +S01|28Z01Z|GHM|8 +S01|28Z02Z|GHM|8 +S01|28Z03Z|GHM|8 +S01|28Z04Z|GHM|8 +S01|28Z05Z|GHM|8 +S01|28Z06Z|GHM|8 +S02|28Z07Z|GHM|8 +S03|28Z17Z|GHM|8 +S04|28Z08Z|GHM|8 +S04|28Z09Z|GHM|8 +S04|28Z10Z|GHM|8 +S04|28Z11Z|GHM|8 +S04|28Z12Z|GHM|8 +S04|28Z13Z|GHM|8 +S04|28Z18Z|GHM|8 +S04|28Z19Z|GHM|8 +S04|28Z20Z|GHM|8 +S04|28Z21Z|GHM|8 +S04|28Z22Z|GHM|8 +S04|28Z23Z|GHM|8 +S04|28Z24Z|GHM|8 +S04|28Z25Z|GHM|8 +S05|28Z14Z|GHM|8 +S06|28Z16Z|GHM|8 +S07|28Z15Z|GHM|8 +X01|27Z021|GHM|8 +X01|27Z022|GHM|8 +X01|27Z023|GHM|8 +X01|27Z024|GHM|8 +X01|27Z02Z|GHM|8 +X01|27Z03Z|GHM|8 +X01|27Z04J|GHM|8 +X02|06M021|GHM|8 +X02|06M022|GHM|8 +X02|06M023|GHM|8 +X02|06M024|GHM|8 +X02|06M02T|GHM|8 +X02|06M02V|GHM|8 +X02|06M02W|GHM|8 +X02|06M031|GHM|8 +X02|06M032|GHM|8 +X02|06M033|GHM|8 +X02|06M034|GHM|8 +X02|06M03T|GHM|8 +X02|06M03V|GHM|8 +X02|06M03W|GHM|8 +X02|06M041|GHM|8 +X02|06M042|GHM|8 +X02|06M043|GHM|8 +X02|06M044|GHM|8 +X02|06M04T|GHM|8 +X02|06M04V|GHM|8 +X02|06M04W|GHM|8 +X02|06M051|GHM|8 +X02|06M052|GHM|8 +X02|06M053|GHM|8 +X02|06M054|GHM|8 +X02|06M05T|GHM|8 +X02|06M05V|GHM|8 +X02|06M05W|GHM|8 +X02|06M061|GHM|8 +X02|06M062|GHM|8 +X02|06M063|GHM|8 +X02|06M064|GHM|8 +X02|06M06T|GHM|8 +X02|06M06V|GHM|8 +X02|06M06W|GHM|8 +X02|06M071|GHM|8 +X02|06M072|GHM|8 +X02|06M073|GHM|8 +X02|06M074|GHM|8 +X02|06M07T|GHM|8 +X02|06M07V|GHM|8 +X02|06M07W|GHM|8 +X02|06M081|GHM|8 +X02|06M082|GHM|8 +X02|06M083|GHM|8 +X02|06M084|GHM|8 +X02|06M08T|GHM|8 +X02|06M08Z|GHM|8 +X02|06M091|GHM|8 +X02|06M092|GHM|8 +X02|06M093|GHM|8 +X02|06M094|GHM|8 +X02|06M09T|GHM|8 +X02|06M09V|GHM|8 +X02|06M09W|GHM|8 +X02|06M101|GHM|8 +X02|06M102|GHM|8 +X02|06M103|GHM|8 +X02|06M104|GHM|8 +X02|06M10Z|GHM|8 +X02|06M111|GHM|8 +X02|06M112|GHM|8 +X02|06M113|GHM|8 +X02|06M114|GHM|8 +X02|06M11T|GHM|8 +X02|06M11V|GHM|8 +X02|06M11W|GHM|8 +X02|06M121|GHM|8 +X02|06M122|GHM|8 +X02|06M123|GHM|8 +X02|06M124|GHM|8 +X02|06M12T|GHM|8 +X02|06M131|GHM|8 +X02|06M132|GHM|8 +X02|06M133|GHM|8 +X02|06M134|GHM|8 +X02|06M13T|GHM|8 +X02|06M141|GHM|8 +X02|06M142|GHM|8 +X02|06M143|GHM|8 +X02|06M144|GHM|8 +X02|06M15Z|GHM|8 +X02|06M16Z|GHM|8 +X02|06M17T|GHM|8 +X02|06M17Z|GHM|8 +X02|06M18T|GHM|8 +X02|06M18Z|GHM|8 +X02|06M191|GHM|8 +X02|06M192|GHM|8 +X02|06M193|GHM|8 +X02|06M194|GHM|8 +X02|06M201|GHM|8 +X02|06M202|GHM|8 +X02|06M203|GHM|8 +X02|06M204|GHM|8 +X02|06M20T|GHM|8 +X02|06M211|GHM|8 +X02|06M212|GHM|8 +X02|06M213|GHM|8 +X02|06M214|GHM|8 +X02|07M021|GHM|8 +X02|07M022|GHM|8 +X02|07M023|GHM|8 +X02|07M024|GHM|8 +X02|07M02T|GHM|8 +X02|07M02V|GHM|8 +X02|07M02W|GHM|8 +X02|07M041|GHM|8 +X02|07M042|GHM|8 +X02|07M043|GHM|8 +X02|07M044|GHM|8 +X02|07M04T|GHM|8 +X02|07M04V|GHM|8 +X02|07M04W|GHM|8 +X02|07M061|GHM|8 +X02|07M062|GHM|8 +X02|07M063|GHM|8 +X02|07M064|GHM|8 +X02|07M06T|GHM|8 +X02|07M06V|GHM|8 +X02|07M06W|GHM|8 +X02|07M071|GHM|8 +X02|07M072|GHM|8 +X02|07M073|GHM|8 +X02|07M074|GHM|8 +X02|07M07T|GHM|8 +X02|07M081|GHM|8 +X02|07M082|GHM|8 +X02|07M083|GHM|8 +X02|07M084|GHM|8 +X02|07M08T|GHM|8 +X02|07M091|GHM|8 +X02|07M092|GHM|8 +X02|07M093|GHM|8 +X02|07M094|GHM|8 +X02|07M09T|GHM|8 +X02|07M101|GHM|8 +X02|07M102|GHM|8 +X02|07M103|GHM|8 +X02|07M104|GHM|8 +X02|07M10T|GHM|8 +X02|07M111|GHM|8 +X02|07M112|GHM|8 +X02|07M113|GHM|8 +X02|07M114|GHM|8 +X02|07M11T|GHM|8 +X02|07M121|GHM|8 +X02|07M122|GHM|8 +X02|07M123|GHM|8 +X02|07M124|GHM|8 +X02|07M13Z|GHM|8 +X02|07M14T|GHM|8 +X02|07M14Z|GHM|8 +X02|07M151|GHM|8 +X02|07M152|GHM|8 +X02|07M153|GHM|8 +X02|07M154|GHM|8 +X02|07M15T|GHM|8 +X02|07M161|GHM|8 +X02|07M162|GHM|8 +X02|07M163|GHM|8 +X02|07M164|GHM|8 +X03|01M02Z|GHM|8 +X03|01M041|GHM|8 +X03|01M042|GHM|8 +X03|01M043|GHM|8 +X03|01M044|GHM|8 +X03|01M04T|GHM|8 +X03|01M04Z|GHM|8 +X03|01M051|GHM|8 +X03|01M052|GHM|8 +X03|01M053|GHM|8 +X03|01M054|GHM|8 +X03|01M05T|GHM|8 +X03|01M05V|GHM|8 +X03|01M05W|GHM|8 +X03|01M071|GHM|8 +X03|01M072|GHM|8 +X03|01M073|GHM|8 +X03|01M074|GHM|8 +X03|01M07T|GHM|8 +X03|01M07Z|GHM|8 +X03|01M081|GHM|8 +X03|01M082|GHM|8 +X03|01M083|GHM|8 +X03|01M084|GHM|8 +X03|01M08T|GHM|8 +X03|01M08V|GHM|8 +X03|01M08W|GHM|8 +X03|01M091|GHM|8 +X03|01M092|GHM|8 +X03|01M093|GHM|8 +X03|01M094|GHM|8 +X03|01M09T|GHM|8 +X03|01M09Z|GHM|8 +X03|01M101|GHM|8 +X03|01M102|GHM|8 +X03|01M103|GHM|8 +X03|01M104|GHM|8 +X03|01M10T|GHM|8 +X03|01M10V|GHM|8 +X03|01M10W|GHM|8 +X03|01M111|GHM|8 +X03|01M112|GHM|8 +X03|01M113|GHM|8 +X03|01M114|GHM|8 +X03|01M11T|GHM|8 +X03|01M11V|GHM|8 +X03|01M11W|GHM|8 +X03|01M121|GHM|8 +X03|01M122|GHM|8 +X03|01M123|GHM|8 +X03|01M124|GHM|8 +X03|01M12T|GHM|8 +X03|01M12V|GHM|8 +X03|01M12W|GHM|8 +X03|01M131|GHM|8 +X03|01M132|GHM|8 +X03|01M133|GHM|8 +X03|01M134|GHM|8 +X03|01M13Z|GHM|8 +X03|01M151|GHM|8 +X03|01M152|GHM|8 +X03|01M153|GHM|8 +X03|01M154|GHM|8 +X03|01M15T|GHM|8 +X03|01M15Z|GHM|8 +X03|01M161|GHM|8 +X03|01M162|GHM|8 +X03|01M163|GHM|8 +X03|01M164|GHM|8 +X03|01M16T|GHM|8 +X03|01M16Z|GHM|8 +X03|01M171|GHM|8 +X03|01M172|GHM|8 +X03|01M173|GHM|8 +X03|01M174|GHM|8 +X03|01M17T|GHM|8 +X03|01M17V|GHM|8 +X03|01M17W|GHM|8 +X03|01M221|GHM|8 +X03|01M222|GHM|8 +X03|01M223|GHM|8 +X03|01M224|GHM|8 +X03|01M22T|GHM|8 +X03|01M22Z|GHM|8 +X03|01M231|GHM|8 +X03|01M232|GHM|8 +X03|01M233|GHM|8 +X03|01M234|GHM|8 +X03|01M23Z|GHM|8 +X03|01M241|GHM|8 +X03|01M242|GHM|8 +X03|01M243|GHM|8 +X03|01M244|GHM|8 +X03|01M24T|GHM|8 +X03|01M24V|GHM|8 +X03|01M24W|GHM|8 +X03|01M251|GHM|8 +X03|01M252|GHM|8 +X03|01M253|GHM|8 +X03|01M254|GHM|8 +X03|01M25T|GHM|8 +X03|01M25V|GHM|8 +X03|01M25W|GHM|8 +X03|01M261|GHM|8 +X03|01M262|GHM|8 +X03|01M263|GHM|8 +X03|01M264|GHM|8 +X03|01M26T|GHM|8 +X03|01M271|GHM|8 +X03|01M272|GHM|8 +X03|01M273|GHM|8 +X03|01M274|GHM|8 +X03|01M27T|GHM|8 +X03|01M281|GHM|8 +X03|01M282|GHM|8 +X03|01M283|GHM|8 +X03|01M284|GHM|8 +X03|01M28T|GHM|8 +X03|01M291|GHM|8 +X03|01M292|GHM|8 +X03|01M293|GHM|8 +X03|01M294|GHM|8 +X03|01M301|GHM|8 +X03|01M302|GHM|8 +X03|01M303|GHM|8 +X03|01M304|GHM|8 +X03|01M30T|GHM|8 +X03|01M311|GHM|8 +X03|01M312|GHM|8 +X03|01M313|GHM|8 +X03|01M314|GHM|8 +X03|01M31T|GHM|8 +X03|01M32Z|GHM|8 +X03|01M331|GHM|8 +X03|01M332|GHM|8 +X03|01M333|GHM|8 +X03|01M334|GHM|8 +X03|01M34T|GHM|8 +X03|01M34Z|GHM|8 +X03|01M35T|GHM|8 +X03|01M35Z|GHM|8 +X03|01M36E|GHM|8 +X03|01M381|GHM|8 +X03|01M382|GHM|8 +X03|01M383|GHM|8 +X03|01M384|GHM|8 +X03|01M391|GHM|8 +X03|01M392|GHM|8 +X03|01M393|GHM|8 +X03|01M394|GHM|8 +X04|01M181|GHM|8 +X04|01M182|GHM|8 +X04|01M183|GHM|8 +X04|01M184|GHM|8 +X04|01M18T|GHM|8 +X04|01M18V|GHM|8 +X04|01M18W|GHM|8 +X04|01M191|GHM|8 +X04|01M192|GHM|8 +X04|01M193|GHM|8 +X04|01M194|GHM|8 +X04|01M19V|GHM|8 +X04|01M19W|GHM|8 +X04|01M201|GHM|8 +X04|01M202|GHM|8 +X04|01M203|GHM|8 +X04|01M204|GHM|8 +X04|01M20V|GHM|8 +X04|01M20W|GHM|8 +X05|08M02Z|GHM|8 +X05|08M041|GHM|8 +X05|08M042|GHM|8 +X05|08M043|GHM|8 +X05|08M044|GHM|8 +X05|08M04T|GHM|8 +X05|08M04V|GHM|8 +X05|08M04W|GHM|8 +X05|08M051|GHM|8 +X05|08M052|GHM|8 +X05|08M053|GHM|8 +X05|08M054|GHM|8 +X05|08M05T|GHM|8 +X05|08M05Z|GHM|8 +X05|08M061|GHM|8 +X05|08M062|GHM|8 +X05|08M063|GHM|8 +X05|08M064|GHM|8 +X05|08M06T|GHM|8 +X05|08M06Z|GHM|8 +X05|08M071|GHM|8 +X05|08M072|GHM|8 +X05|08M073|GHM|8 +X05|08M074|GHM|8 +X05|08M07T|GHM|8 +X05|08M07V|GHM|8 +X05|08M07W|GHM|8 +X05|08M081|GHM|8 +X05|08M082|GHM|8 +X05|08M083|GHM|8 +X05|08M084|GHM|8 +X05|08M08T|GHM|8 +X05|08M08Z|GHM|8 +X05|08M201|GHM|8 +X05|08M202|GHM|8 +X05|08M203|GHM|8 +X05|08M204|GHM|8 +X05|08M211|GHM|8 +X05|08M212|GHM|8 +X05|08M213|GHM|8 +X05|08M214|GHM|8 +X05|08M221|GHM|8 +X05|08M222|GHM|8 +X05|08M223|GHM|8 +X05|08M224|GHM|8 +X05|08M231|GHM|8 +X05|08M232|GHM|8 +X05|08M233|GHM|8 +X05|08M234|GHM|8 +X05|08M261|GHM|8 +X05|08M262|GHM|8 +X05|08M263|GHM|8 +X05|08M264|GHM|8 +X05|08M331|GHM|8 +X05|08M332|GHM|8 +X05|08M333|GHM|8 +X05|08M334|GHM|8 +X05|08M33T|GHM|8 +X05|08M371|GHM|8 +X05|08M372|GHM|8 +X05|08M373|GHM|8 +X05|08M374|GHM|8 +X05|08M37T|GHM|8 +X05|08M381|GHM|8 +X05|08M382|GHM|8 +X05|08M383|GHM|8 +X05|08M384|GHM|8 +X05|08M38T|GHM|8 +X05|21M061|GHM|8 +X05|21M062|GHM|8 +X05|21M063|GHM|8 +X05|21M064|GHM|8 +X05|21M06Z|GHM|8 +X05|21M071|GHM|8 +X05|21M072|GHM|8 +X05|21M073|GHM|8 +X05|21M074|GHM|8 +X05|21M07T|GHM|8 +X05|21M07V|GHM|8 +X05|21M07W|GHM|8 +X06|08M01S|GHM|8 +X06|08M091|GHM|8 +X06|08M092|GHM|8 +X06|08M093|GHM|8 +X06|08M094|GHM|8 +X06|08M09T|GHM|8 +X06|08M09Z|GHM|8 +X06|08M101|GHM|8 +X06|08M102|GHM|8 +X06|08M103|GHM|8 +X06|08M104|GHM|8 +X06|08M10T|GHM|8 +X06|08M10V|GHM|8 +X06|08M10W|GHM|8 +X06|08M13Z|GHM|8 +X06|08M141|GHM|8 +X06|08M142|GHM|8 +X06|08M143|GHM|8 +X06|08M144|GHM|8 +X06|08M14T|GHM|8 +X06|08M14V|GHM|8 +X06|08M14W|GHM|8 +X06|08M151|GHM|8 +X06|08M152|GHM|8 +X06|08M153|GHM|8 +X06|08M154|GHM|8 +X06|08M15T|GHM|8 +X06|08M15V|GHM|8 +X06|08M15W|GHM|8 +X06|08M16Z|GHM|8 +X06|08M17Z|GHM|8 +X06|08M181|GHM|8 +X06|08M182|GHM|8 +X06|08M183|GHM|8 +X06|08M184|GHM|8 +X06|08M18T|GHM|8 +X06|08M18Z|GHM|8 +X06|08M191|GHM|8 +X06|08M192|GHM|8 +X06|08M193|GHM|8 +X06|08M194|GHM|8 +X06|08M19T|GHM|8 +X06|08M19V|GHM|8 +X06|08M19W|GHM|8 +X06|08M241|GHM|8 +X06|08M242|GHM|8 +X06|08M243|GHM|8 +X06|08M244|GHM|8 +X06|08M24T|GHM|8 +X06|08M251|GHM|8 +X06|08M252|GHM|8 +X06|08M253|GHM|8 +X06|08M254|GHM|8 +X06|08M25T|GHM|8 +X06|08M271|GHM|8 +X06|08M272|GHM|8 +X06|08M273|GHM|8 +X06|08M274|GHM|8 +X06|08M27T|GHM|8 +X06|08M281|GHM|8 +X06|08M282|GHM|8 +X06|08M283|GHM|8 +X06|08M284|GHM|8 +X06|08M28T|GHM|8 +X06|08M291|GHM|8 +X06|08M292|GHM|8 +X06|08M293|GHM|8 +X06|08M294|GHM|8 +X06|08M29T|GHM|8 +X06|08M301|GHM|8 +X06|08M302|GHM|8 +X06|08M303|GHM|8 +X06|08M304|GHM|8 +X06|08M30T|GHM|8 +X06|08M311|GHM|8 +X06|08M312|GHM|8 +X06|08M313|GHM|8 +X06|08M314|GHM|8 +X06|08M31T|GHM|8 +X06|08M321|GHM|8 +X06|08M322|GHM|8 +X06|08M323|GHM|8 +X06|08M324|GHM|8 +X06|08M32T|GHM|8 +X06|08M341|GHM|8 +X06|08M342|GHM|8 +X06|08M343|GHM|8 +X06|08M344|GHM|8 +X06|08M34T|GHM|8 +X06|08M35Z|GHM|8 +X06|08M36T|GHM|8 +X06|08M36Z|GHM|8 +X07|05M041|GHM|8 +X07|05M042|GHM|8 +X07|05M043|GHM|8 +X07|05M044|GHM|8 +X07|05M04T|GHM|8 +X07|05M04V|GHM|8 +X07|05M04W|GHM|8 +X07|05M051|GHM|8 +X07|05M052|GHM|8 +X07|05M053|GHM|8 +X07|05M054|GHM|8 +X07|05M05T|GHM|8 +X07|05M05V|GHM|8 +X07|05M05W|GHM|8 +X07|05M061|GHM|8 +X07|05M062|GHM|8 +X07|05M063|GHM|8 +X07|05M064|GHM|8 +X07|05M06T|GHM|8 +X07|05M06V|GHM|8 +X07|05M06W|GHM|8 +X07|05M071|GHM|8 +X07|05M072|GHM|8 +X07|05M073|GHM|8 +X07|05M074|GHM|8 +X07|05M07T|GHM|8 +X07|05M07V|GHM|8 +X07|05M07W|GHM|8 +X07|05M081|GHM|8 +X07|05M082|GHM|8 +X07|05M083|GHM|8 +X07|05M084|GHM|8 +X07|05M08T|GHM|8 +X07|05M08V|GHM|8 +X07|05M08W|GHM|8 +X07|05M091|GHM|8 +X07|05M092|GHM|8 +X07|05M093|GHM|8 +X07|05M094|GHM|8 +X07|05M09T|GHM|8 +X07|05M09V|GHM|8 +X07|05M09W|GHM|8 +X07|05M101|GHM|8 +X07|05M102|GHM|8 +X07|05M103|GHM|8 +X07|05M104|GHM|8 +X07|05M10T|GHM|8 +X07|05M10Z|GHM|8 +X07|05M111|GHM|8 +X07|05M112|GHM|8 +X07|05M113|GHM|8 +X07|05M114|GHM|8 +X07|05M11T|GHM|8 +X07|05M11V|GHM|8 +X07|05M11W|GHM|8 +X07|05M121|GHM|8 +X07|05M122|GHM|8 +X07|05M123|GHM|8 +X07|05M124|GHM|8 +X07|05M12T|GHM|8 +X07|05M12V|GHM|8 +X07|05M12W|GHM|8 +X07|05M131|GHM|8 +X07|05M132|GHM|8 +X07|05M133|GHM|8 +X07|05M134|GHM|8 +X07|05M13T|GHM|8 +X07|05M13Z|GHM|8 +X07|05M141|GHM|8 +X07|05M142|GHM|8 +X07|05M143|GHM|8 +X07|05M144|GHM|8 +X07|05M14Z|GHM|8 +X07|05M151|GHM|8 +X07|05M152|GHM|8 +X07|05M153|GHM|8 +X07|05M154|GHM|8 +X07|05M15T|GHM|8 +X07|05M15Z|GHM|8 +X07|05M161|GHM|8 +X07|05M162|GHM|8 +X07|05M163|GHM|8 +X07|05M164|GHM|8 +X07|05M16T|GHM|8 +X07|05M16V|GHM|8 +X07|05M16W|GHM|8 +X07|05M171|GHM|8 +X07|05M172|GHM|8 +X07|05M173|GHM|8 +X07|05M174|GHM|8 +X07|05M17T|GHM|8 +X07|05M17V|GHM|8 +X07|05M17W|GHM|8 +X07|05M181|GHM|8 +X07|05M182|GHM|8 +X07|05M183|GHM|8 +X07|05M184|GHM|8 +X07|05M18T|GHM|8 +X07|05M18Z|GHM|8 +X07|05M191|GHM|8 +X07|05M192|GHM|8 +X07|05M193|GHM|8 +X07|05M194|GHM|8 +X07|05M20Z|GHM|8 +X07|05M21E|GHM|8 +X07|05M23T|GHM|8 +X07|05M23Z|GHM|8 +X08|04M021|GHM|8 +X08|04M022|GHM|8 +X08|04M023|GHM|8 +X08|04M024|GHM|8 +X08|04M02T|GHM|8 +X08|04M02V|GHM|8 +X08|04M02W|GHM|8 +X08|04M031|GHM|8 +X08|04M032|GHM|8 +X08|04M033|GHM|8 +X08|04M034|GHM|8 +X08|04M03T|GHM|8 +X08|04M03V|GHM|8 +X08|04M03W|GHM|8 +X08|04M041|GHM|8 +X08|04M042|GHM|8 +X08|04M043|GHM|8 +X08|04M044|GHM|8 +X08|04M04Z|GHM|8 +X08|04M051|GHM|8 +X08|04M052|GHM|8 +X08|04M053|GHM|8 +X08|04M054|GHM|8 +X08|04M05T|GHM|8 +X08|04M05V|GHM|8 +X08|04M05W|GHM|8 +X08|04M061|GHM|8 +X08|04M062|GHM|8 +X08|04M063|GHM|8 +X08|04M064|GHM|8 +X08|04M06T|GHM|8 +X08|04M06Z|GHM|8 +X08|04M071|GHM|8 +X08|04M072|GHM|8 +X08|04M073|GHM|8 +X08|04M074|GHM|8 +X08|04M07T|GHM|8 +X08|04M07V|GHM|8 +X08|04M07W|GHM|8 +X08|04M081|GHM|8 +X08|04M082|GHM|8 +X08|04M083|GHM|8 +X08|04M084|GHM|8 +X08|04M08T|GHM|8 +X08|04M08V|GHM|8 +X08|04M08W|GHM|8 +X08|04M091|GHM|8 +X08|04M092|GHM|8 +X08|04M093|GHM|8 +X08|04M094|GHM|8 +X08|04M09T|GHM|8 +X08|04M09V|GHM|8 +X08|04M09W|GHM|8 +X08|04M101|GHM|8 +X08|04M102|GHM|8 +X08|04M103|GHM|8 +X08|04M104|GHM|8 +X08|04M10T|GHM|8 +X08|04M10V|GHM|8 +X08|04M10W|GHM|8 +X08|04M111|GHM|8 +X08|04M112|GHM|8 +X08|04M113|GHM|8 +X08|04M114|GHM|8 +X08|04M11V|GHM|8 +X08|04M11W|GHM|8 +X08|04M121|GHM|8 +X08|04M122|GHM|8 +X08|04M123|GHM|8 +X08|04M124|GHM|8 +X08|04M12T|GHM|8 +X08|04M12V|GHM|8 +X08|04M12W|GHM|8 +X08|04M131|GHM|8 +X08|04M132|GHM|8 +X08|04M133|GHM|8 +X08|04M134|GHM|8 +X08|04M13T|GHM|8 +X08|04M13Z|GHM|8 +X08|04M141|GHM|8 +X08|04M142|GHM|8 +X08|04M143|GHM|8 +X08|04M144|GHM|8 +X08|04M14T|GHM|8 +X08|04M14V|GHM|8 +X08|04M14W|GHM|8 +X08|04M151|GHM|8 +X08|04M152|GHM|8 +X08|04M153|GHM|8 +X08|04M154|GHM|8 +X08|04M15T|GHM|8 +X08|04M15V|GHM|8 +X08|04M15W|GHM|8 +X08|04M161|GHM|8 +X08|04M162|GHM|8 +X08|04M163|GHM|8 +X08|04M164|GHM|8 +X08|04M16T|GHM|8 +X08|04M16V|GHM|8 +X08|04M16W|GHM|8 +X08|04M171|GHM|8 +X08|04M172|GHM|8 +X08|04M173|GHM|8 +X08|04M174|GHM|8 +X08|04M17T|GHM|8 +X08|04M17V|GHM|8 +X08|04M17W|GHM|8 +X08|04M181|GHM|8 +X08|04M182|GHM|8 +X08|04M183|GHM|8 +X08|04M184|GHM|8 +X08|04M18T|GHM|8 +X08|04M191|GHM|8 +X08|04M192|GHM|8 +X08|04M193|GHM|8 +X08|04M194|GHM|8 +X08|04M19T|GHM|8 +X08|04M201|GHM|8 +X08|04M202|GHM|8 +X08|04M203|GHM|8 +X08|04M204|GHM|8 +X08|04M20T|GHM|8 +X08|04M211|GHM|8 +X08|04M212|GHM|8 +X08|04M213|GHM|8 +X08|04M214|GHM|8 +X08|04M22Z|GHM|8 +X08|04M23T|GHM|8 +X08|04M23Z|GHM|8 +X08|04M24E|GHM|8 +X08|04M251|GHM|8 +X08|04M252|GHM|8 +X08|04M253|GHM|8 +X08|04M254|GHM|8 +X08|04M25T|GHM|8 +X08|04M261|GHM|8 +X08|04M262|GHM|8 +X08|04M263|GHM|8 +X08|04M264|GHM|8 +X08|04M26T|GHM|8 +X08|04M271|GHM|8 +X08|04M272|GHM|8 +X08|04M273|GHM|8 +X08|04M274|GHM|8 +X09|03M021|GHM|8 +X09|03M022|GHM|8 +X09|03M023|GHM|8 +X09|03M024|GHM|8 +X09|03M02T|GHM|8 +X09|03M02Z|GHM|8 +X09|03M031|GHM|8 +X09|03M032|GHM|8 +X09|03M033|GHM|8 +X09|03M034|GHM|8 +X09|03M03T|GHM|8 +X09|03M03Z|GHM|8 +X09|03M041|GHM|8 +X09|03M042|GHM|8 +X09|03M043|GHM|8 +X09|03M044|GHM|8 +X09|03M04T|GHM|8 +X09|03M04V|GHM|8 +X09|03M04W|GHM|8 +X09|03M051|GHM|8 +X09|03M052|GHM|8 +X09|03M053|GHM|8 +X09|03M054|GHM|8 +X09|03M05T|GHM|8 +X09|03M05Z|GHM|8 +X09|03M061|GHM|8 +X09|03M062|GHM|8 +X09|03M063|GHM|8 +X09|03M064|GHM|8 +X09|03M06T|GHM|8 +X09|03M06Z|GHM|8 +X09|03M071|GHM|8 +X09|03M072|GHM|8 +X09|03M073|GHM|8 +X09|03M074|GHM|8 +X09|03M07T|GHM|8 +X09|03M07V|GHM|8 +X09|03M07W|GHM|8 +X09|03M081|GHM|8 +X09|03M082|GHM|8 +X09|03M083|GHM|8 +X09|03M084|GHM|8 +X09|03M08T|GHM|8 +X09|03M08Z|GHM|8 +X09|03M091|GHM|8 +X09|03M092|GHM|8 +X09|03M093|GHM|8 +X09|03M094|GHM|8 +X09|03M09T|GHM|8 +X09|03M09V|GHM|8 +X09|03M09W|GHM|8 +X09|03M101|GHM|8 +X09|03M102|GHM|8 +X09|03M103|GHM|8 +X09|03M104|GHM|8 +X09|03M10T|GHM|8 +X09|03M10Z|GHM|8 +X09|03M111|GHM|8 +X09|03M112|GHM|8 +X09|03M113|GHM|8 +X09|03M114|GHM|8 +X09|03M11T|GHM|8 +X09|03M11V|GHM|8 +X09|03M11W|GHM|8 +X09|03M121|GHM|8 +X09|03M122|GHM|8 +X09|03M123|GHM|8 +X09|03M124|GHM|8 +X09|03M131|GHM|8 +X09|03M132|GHM|8 +X09|03M133|GHM|8 +X09|03M134|GHM|8 +X09|03M14Z|GHM|8 +X09|03M15T|GHM|8 +X09|03M15Z|GHM|8 +X10|02M021|GHM|8 +X10|02M022|GHM|8 +X10|02M023|GHM|8 +X10|02M024|GHM|8 +X10|02M02Z|GHM|8 +X10|02M031|GHM|8 +X10|02M032|GHM|8 +X10|02M033|GHM|8 +X10|02M034|GHM|8 +X10|02M03Z|GHM|8 +X10|02M041|GHM|8 +X10|02M042|GHM|8 +X10|02M043|GHM|8 +X10|02M044|GHM|8 +X10|02M04T|GHM|8 +X10|02M04Z|GHM|8 +X10|02M051|GHM|8 +X10|02M052|GHM|8 +X10|02M053|GHM|8 +X10|02M054|GHM|8 +X10|02M05T|GHM|8 +X10|02M05Z|GHM|8 +X10|02M071|GHM|8 +X10|02M072|GHM|8 +X10|02M073|GHM|8 +X10|02M074|GHM|8 +X10|02M07T|GHM|8 +X10|02M081|GHM|8 +X10|02M082|GHM|8 +X10|02M083|GHM|8 +X10|02M084|GHM|8 +X10|02M08T|GHM|8 +X10|02M09Z|GHM|8 +X10|02M10T|GHM|8 +X10|02M10Z|GHM|8 +X11|09M091|GHM|8 +X11|09M092|GHM|8 +X11|09M093|GHM|8 +X11|09M094|GHM|8 +X11|09M09T|GHM|8 +X11|09M09Z|GHM|8 +X11|09M101|GHM|8 +X11|09M102|GHM|8 +X11|09M103|GHM|8 +X11|09M104|GHM|8 +X11|09M10T|GHM|8 +X11|09M10V|GHM|8 +X11|09M10W|GHM|8 +X11|09M13Z|GHM|8 +X11|09M15Z|GHM|8 +X11|13M02Z|GHM|8 +X11|13M031|GHM|8 +X11|13M032|GHM|8 +X11|13M033|GHM|8 +X11|13M034|GHM|8 +X11|13M03T|GHM|8 +X11|13M03V|GHM|8 +X11|13M03W|GHM|8 +X11|13M041|GHM|8 +X11|13M042|GHM|8 +X11|13M043|GHM|8 +X11|13M044|GHM|8 +X11|13M04T|GHM|8 +X11|13M04V|GHM|8 +X11|13M04W|GHM|8 +X11|13M051|GHM|8 +X11|13M052|GHM|8 +X11|13M053|GHM|8 +X11|13M054|GHM|8 +X11|13M061|GHM|8 +X11|13M062|GHM|8 +X11|13M063|GHM|8 +X11|13M064|GHM|8 +X11|13M06T|GHM|8 +X11|13M071|GHM|8 +X11|13M072|GHM|8 +X11|13M073|GHM|8 +X11|13M074|GHM|8 +X11|13M081|GHM|8 +X11|13M082|GHM|8 +X11|13M083|GHM|8 +X11|13M084|GHM|8 +X11|13M09Z|GHM|8 +X11|13M10Z|GHM|8 +X12|11M021|GHM|8 +X12|11M022|GHM|8 +X12|11M023|GHM|8 +X12|11M024|GHM|8 +X12|11M02T|GHM|8 +X12|11M02V|GHM|8 +X12|11M02W|GHM|8 +X12|11M031|GHM|8 +X12|11M032|GHM|8 +X12|11M033|GHM|8 +X12|11M034|GHM|8 +X12|11M03T|GHM|8 +X12|11M03V|GHM|8 +X12|11M03W|GHM|8 +X12|11M041|GHM|8 +X12|11M042|GHM|8 +X12|11M043|GHM|8 +X12|11M044|GHM|8 +X12|11M04T|GHM|8 +X12|11M04V|GHM|8 +X12|11M04W|GHM|8 +X12|11M061|GHM|8 +X12|11M062|GHM|8 +X12|11M063|GHM|8 +X12|11M064|GHM|8 +X12|11M06T|GHM|8 +X12|11M06V|GHM|8 +X12|11M06W|GHM|8 +X12|11M071|GHM|8 +X12|11M072|GHM|8 +X12|11M073|GHM|8 +X12|11M074|GHM|8 +X12|11M07T|GHM|8 +X12|11M07V|GHM|8 +X12|11M07W|GHM|8 +X12|11M081|GHM|8 +X12|11M082|GHM|8 +X12|11M083|GHM|8 +X12|11M084|GHM|8 +X12|11M08T|GHM|8 +X12|11M08Z|GHM|8 +X12|11M101|GHM|8 +X12|11M102|GHM|8 +X12|11M103|GHM|8 +X12|11M104|GHM|8 +X12|11M10T|GHM|8 +X12|11M10V|GHM|8 +X12|11M10W|GHM|8 +X12|11M111|GHM|8 +X12|11M112|GHM|8 +X12|11M113|GHM|8 +X12|11M114|GHM|8 +X12|11M11Z|GHM|8 +X12|11M121|GHM|8 +X12|11M122|GHM|8 +X12|11M123|GHM|8 +X12|11M124|GHM|8 +X12|11M12T|GHM|8 +X12|11M12V|GHM|8 +X12|11M12W|GHM|8 +X12|11M151|GHM|8 +X12|11M152|GHM|8 +X12|11M153|GHM|8 +X12|11M154|GHM|8 +X12|11M15T|GHM|8 +X12|11M161|GHM|8 +X12|11M162|GHM|8 +X12|11M163|GHM|8 +X12|11M164|GHM|8 +X12|11M16T|GHM|8 +X12|11M171|GHM|8 +X12|11M172|GHM|8 +X12|11M173|GHM|8 +X12|11M174|GHM|8 +X12|11M18Z|GHM|8 +X12|11M19T|GHM|8 +X12|11M19Z|GHM|8 +X12|11M201|GHM|8 +X12|11M202|GHM|8 +X12|11M203|GHM|8 +X12|11M204|GHM|8 +X13|12M031|GHM|8 +X13|12M032|GHM|8 +X13|12M033|GHM|8 +X13|12M034|GHM|8 +X13|12M03T|GHM|8 +X13|12M03V|GHM|8 +X13|12M03W|GHM|8 +X13|12M041|GHM|8 +X13|12M042|GHM|8 +X13|12M043|GHM|8 +X13|12M044|GHM|8 +X13|12M04T|GHM|8 +X13|12M04V|GHM|8 +X13|12M04W|GHM|8 +X13|12M051|GHM|8 +X13|12M052|GHM|8 +X13|12M053|GHM|8 +X13|12M054|GHM|8 +X13|12M05T|GHM|8 +X13|12M05Z|GHM|8 +X13|12M061|GHM|8 +X13|12M062|GHM|8 +X13|12M063|GHM|8 +X13|12M064|GHM|8 +X13|12M06T|GHM|8 +X13|12M071|GHM|8 +X13|12M072|GHM|8 +X13|12M073|GHM|8 +X13|12M074|GHM|8 +X13|12M07T|GHM|8 +X13|12M08Z|GHM|8 +X13|12M09Z|GHM|8 +X14|16M061|GHM|8 +X14|16M062|GHM|8 +X14|16M063|GHM|8 +X14|16M064|GHM|8 +X14|16M06T|GHM|8 +X14|16M071|GHM|8 +X14|16M072|GHM|8 +X14|16M073|GHM|8 +X14|16M074|GHM|8 +X14|16M081|GHM|8 +X14|16M082|GHM|8 +X14|16M083|GHM|8 +X14|16M084|GHM|8 +X14|16M091|GHM|8 +X14|16M092|GHM|8 +X14|16M093|GHM|8 +X14|16M094|GHM|8 +X14|16M09T|GHM|8 +X14|16M101|GHM|8 +X14|16M102|GHM|8 +X14|16M103|GHM|8 +X14|16M104|GHM|8 +X14|16M10T|GHM|8 +X14|16M111|GHM|8 +X14|16M112|GHM|8 +X14|16M113|GHM|8 +X14|16M114|GHM|8 +X14|16M11T|GHM|8 +X14|16M121|GHM|8 +X14|16M122|GHM|8 +X14|16M123|GHM|8 +X14|16M124|GHM|8 +X14|16M12T|GHM|8 +X14|16M131|GHM|8 +X14|16M132|GHM|8 +X14|16M133|GHM|8 +X14|16M134|GHM|8 +X14|16M13T|GHM|8 +X14|16M14Z|GHM|8 +X14|16M15T|GHM|8 +X14|16M15Z|GHM|8 +X14|16M161|GHM|8 +X14|16M162|GHM|8 +X14|16M163|GHM|8 +X14|16M164|GHM|8 +X14|16M16T|GHM|8 +X14|16M171|GHM|8 +X14|16M172|GHM|8 +X14|16M173|GHM|8 +X14|16M174|GHM|8 +X14|16M17T|GHM|8 +X14|16M181|GHM|8 +X14|16M182|GHM|8 +X14|16M183|GHM|8 +X14|16M184|GHM|8 +X14|17M02Z|GHM|8 +X14|17M04Z|GHM|8 +X14|17M071|GHM|8 +X14|17M072|GHM|8 +X14|17M073|GHM|8 +X14|17M074|GHM|8 +X14|17M07T|GHM|8 +X14|17M07V|GHM|8 +X14|17M07W|GHM|8 +X14|17M081|GHM|8 +X14|17M082|GHM|8 +X14|17M083|GHM|8 +X14|17M084|GHM|8 +X14|17M08T|GHM|8 +X14|17M08Z|GHM|8 +X14|17M091|GHM|8 +X14|17M092|GHM|8 +X14|17M093|GHM|8 +X14|17M094|GHM|8 +X14|17M09T|GHM|8 +X14|17M09V|GHM|8 +X14|17M09W|GHM|8 +X14|17M111|GHM|8 +X14|17M112|GHM|8 +X14|17M113|GHM|8 +X14|17M114|GHM|8 +X14|17M11T|GHM|8 +X14|17M121|GHM|8 +X14|17M122|GHM|8 +X14|17M123|GHM|8 +X14|17M124|GHM|8 +X14|17M12T|GHM|8 +X14|17M131|GHM|8 +X14|17M132|GHM|8 +X14|17M133|GHM|8 +X14|17M134|GHM|8 +X14|17M13T|GHM|8 +X14|17M14Z|GHM|8 +X14|17M151|GHM|8 +X14|17M152|GHM|8 +X14|17M153|GHM|8 +X14|17M154|GHM|8 +X14|17M15T|GHM|8 +X14|17M161|GHM|8 +X14|17M162|GHM|8 +X14|17M163|GHM|8 +X14|17M164|GHM|8 +X14|17M16T|GHM|8 +X14|17M171|GHM|8 +X14|17M172|GHM|8 +X14|17M173|GHM|8 +X14|17M174|GHM|8 +X14|17M17T|GHM|8 +X15|10M021|GHM|8 +X15|10M022|GHM|8 +X15|10M023|GHM|8 +X15|10M024|GHM|8 +X15|10M02T|GHM|8 +X15|10M02V|GHM|8 +X15|10M02W|GHM|8 +X15|10M031|GHM|8 +X15|10M032|GHM|8 +X15|10M033|GHM|8 +X15|10M034|GHM|8 +X15|10M03T|GHM|8 +X15|10M03Z|GHM|8 +X15|10M06Z|GHM|8 +X15|10M071|GHM|8 +X15|10M072|GHM|8 +X15|10M073|GHM|8 +X15|10M074|GHM|8 +X15|10M07T|GHM|8 +X15|10M07V|GHM|8 +X15|10M07W|GHM|8 +X15|10M081|GHM|8 +X15|10M082|GHM|8 +X15|10M083|GHM|8 +X15|10M084|GHM|8 +X15|10M08T|GHM|8 +X15|10M091|GHM|8 +X15|10M092|GHM|8 +X15|10M093|GHM|8 +X15|10M094|GHM|8 +X15|10M09T|GHM|8 +X15|10M101|GHM|8 +X15|10M102|GHM|8 +X15|10M103|GHM|8 +X15|10M104|GHM|8 +X15|10M10T|GHM|8 +X15|10M111|GHM|8 +X15|10M112|GHM|8 +X15|10M113|GHM|8 +X15|10M114|GHM|8 +X15|10M11T|GHM|8 +X15|10M121|GHM|8 +X15|10M122|GHM|8 +X15|10M123|GHM|8 +X15|10M124|GHM|8 +X15|10M12T|GHM|8 +X15|10M13T|GHM|8 +X15|10M13Z|GHM|8 +X15|10M14T|GHM|8 +X15|10M14Z|GHM|8 +X15|10M151|GHM|8 +X15|10M152|GHM|8 +X15|10M153|GHM|8 +X15|10M154|GHM|8 +X15|10M15T|GHM|8 +X15|10M161|GHM|8 +X15|10M162|GHM|8 +X15|10M163|GHM|8 +X15|10M164|GHM|8 +X15|10M16T|GHM|8 +X15|10M171|GHM|8 +X15|10M172|GHM|8 +X15|10M173|GHM|8 +X15|10M174|GHM|8 +X15|10M17T|GHM|8 +X15|10M181|GHM|8 +X15|10M182|GHM|8 +X15|10M183|GHM|8 +X15|10M184|GHM|8 +X15|10M18T|GHM|8 +X15|10M191|GHM|8 +X15|10M192|GHM|8 +X15|10M193|GHM|8 +X15|10M194|GHM|8 +X15|10M201|GHM|8 +X15|10M202|GHM|8 +X15|10M203|GHM|8 +X15|10M204|GHM|8 +X15|23M08J|GHM|8 +X16|09M021|GHM|8 +X16|09M022|GHM|8 +X16|09M023|GHM|8 +X16|09M024|GHM|8 +X16|09M02T|GHM|8 +X16|09M02Z|GHM|8 +X16|09M031|GHM|8 +X16|09M032|GHM|8 +X16|09M033|GHM|8 +X16|09M034|GHM|8 +X16|09M03T|GHM|8 +X16|09M03V|GHM|8 +X16|09M03W|GHM|8 +X16|09M041|GHM|8 +X16|09M042|GHM|8 +X16|09M043|GHM|8 +X16|09M044|GHM|8 +X16|09M04T|GHM|8 +X16|09M04Z|GHM|8 +X16|09M051|GHM|8 +X16|09M052|GHM|8 +X16|09M053|GHM|8 +X16|09M054|GHM|8 +X16|09M05T|GHM|8 +X16|09M05V|GHM|8 +X16|09M05W|GHM|8 +X16|09M061|GHM|8 +X16|09M062|GHM|8 +X16|09M063|GHM|8 +X16|09M064|GHM|8 +X16|09M06T|GHM|8 +X16|09M06Z|GHM|8 +X16|09M071|GHM|8 +X16|09M072|GHM|8 +X16|09M073|GHM|8 +X16|09M074|GHM|8 +X16|09M07T|GHM|8 +X16|09M07V|GHM|8 +X16|09M07W|GHM|8 +X16|09M081|GHM|8 +X16|09M082|GHM|8 +X16|09M083|GHM|8 +X16|09M084|GHM|8 +X16|09M08T|GHM|8 +X16|09M08V|GHM|8 +X16|09M08W|GHM|8 +X16|09M111|GHM|8 +X16|09M112|GHM|8 +X16|09M113|GHM|8 +X16|09M114|GHM|8 +X16|09M11T|GHM|8 +X16|09M12Z|GHM|8 +X16|09M14T|GHM|8 +X16|09M14Z|GHM|8 +X17|22M021|GHM|8 +X17|22M022|GHM|8 +X17|22M023|GHM|8 +X17|22M024|GHM|8 +X17|22M02T|GHM|8 +X17|22M02Z|GHM|8 +X17|22Z021|GHM|8 +X17|22Z022|GHM|8 +X17|22Z023|GHM|8 +X17|22Z024|GHM|8 +X17|22Z02Z|GHM|8 +X17|22Z03Z|GHM|8 +X18|23M02T|GHM|8 +X18|23M02Z|GHM|8 +X18|23M04Z|GHM|8 +X18|23M05Z|GHM|8 +X18|23M101|GHM|8 +X18|23M102|GHM|8 +X18|23M103|GHM|8 +X18|23M104|GHM|8 +X18|23M10T|GHM|8 +X18|23M13Z|GHM|8 +X18|23M14Z|GHM|8 +X18|23M16T|GHM|8 +X18|23M16Z|GHM|8 +X18|23M18Z|GHM|8 +X18|23M19Z|GHM|8 +X18|23M21T|GHM|8 +X18|23M21Z|GHM|8 +X19|18M021|GHM|8 +X19|18M022|GHM|8 +X19|18M023|GHM|8 +X19|18M024|GHM|8 +X19|18M02V|GHM|8 +X19|18M02W|GHM|8 +X19|18M031|GHM|8 +X19|18M032|GHM|8 +X19|18M033|GHM|8 +X19|18M034|GHM|8 +X19|18M03T|GHM|8 +X19|18M03Z|GHM|8 +X19|18M041|GHM|8 +X19|18M042|GHM|8 +X19|18M043|GHM|8 +X19|18M044|GHM|8 +X19|18M04T|GHM|8 +X19|18M04V|GHM|8 +X19|18M04W|GHM|8 +X19|18M061|GHM|8 +X19|18M062|GHM|8 +X19|18M063|GHM|8 +X19|18M064|GHM|8 +X19|18M06Z|GHM|8 +X19|18M071|GHM|8 +X19|18M072|GHM|8 +X19|18M073|GHM|8 +X19|18M074|GHM|8 +X19|18M07T|GHM|8 +X19|18M07V|GHM|8 +X19|18M07W|GHM|8 +X19|18M091|GHM|8 +X19|18M092|GHM|8 +X19|18M093|GHM|8 +X19|18M094|GHM|8 +X19|18M09T|GHM|8 +X19|18M101|GHM|8 +X19|18M102|GHM|8 +X19|18M103|GHM|8 +X19|18M104|GHM|8 +X19|18M10T|GHM|8 +X19|18M111|GHM|8 +X19|18M112|GHM|8 +X19|18M113|GHM|8 +X19|18M114|GHM|8 +X19|18M11T|GHM|8 +X19|18M12Z|GHM|8 +X19|18M13E|GHM|8 +X19|18M14T|GHM|8 +X19|18M14Z|GHM|8 +X19|18M151|GHM|8 +X19|18M152|GHM|8 +X19|18M153|GHM|8 +X19|18M154|GHM|8 +X19|23M07J|GHM|8 +X19|25M02A|GHM|8 +X19|25M02B|GHM|8 +X19|25M02C|GHM|8 +X19|25M02T|GHM|8 +X19|25Z02E|GHM|8 +X19|25Z031|GHM|8 +X19|25Z032|GHM|8 +X19|25Z033|GHM|8 +X19|25Z034|GHM|8 +X19|25Z03Z|GHM|8 +X20|19M021|GHM|8 +X20|19M022|GHM|8 +X20|19M023|GHM|8 +X20|19M024|GHM|8 +X20|19M02T|GHM|8 +X20|19M02V|GHM|8 +X20|19M02W|GHM|8 +X20|19M03Z|GHM|8 +X20|19M04Z|GHM|8 +X20|19M05Z|GHM|8 +X20|19M061|GHM|8 +X20|19M062|GHM|8 +X20|19M063|GHM|8 +X20|19M064|GHM|8 +X20|19M06T|GHM|8 +X20|19M06V|GHM|8 +X20|19M06W|GHM|8 +X20|19M071|GHM|8 +X20|19M072|GHM|8 +X20|19M073|GHM|8 +X20|19M074|GHM|8 +X20|19M07T|GHM|8 +X20|19M07V|GHM|8 +X20|19M07W|GHM|8 +X20|19M08Z|GHM|8 +X20|19M09Z|GHM|8 +X20|19M101|GHM|8 +X20|19M102|GHM|8 +X20|19M103|GHM|8 +X20|19M104|GHM|8 +X20|19M10T|GHM|8 +X20|19M10Z|GHM|8 +X20|19M111|GHM|8 +X20|19M112|GHM|8 +X20|19M113|GHM|8 +X20|19M114|GHM|8 +X20|19M11T|GHM|8 +X20|19M11V|GHM|8 +X20|19M11W|GHM|8 +X20|19M121|GHM|8 +X20|19M122|GHM|8 +X20|19M123|GHM|8 +X20|19M124|GHM|8 +X20|19M12T|GHM|8 +X20|19M131|GHM|8 +X20|19M132|GHM|8 +X20|19M133|GHM|8 +X20|19M134|GHM|8 +X20|19M13T|GHM|8 +X20|19M141|GHM|8 +X20|19M142|GHM|8 +X20|19M143|GHM|8 +X20|19M144|GHM|8 +X20|19M14T|GHM|8 +X20|19M151|GHM|8 +X20|19M152|GHM|8 +X20|19M153|GHM|8 +X20|19M154|GHM|8 +X20|19M15T|GHM|8 +X20|19M161|GHM|8 +X20|19M162|GHM|8 +X20|19M163|GHM|8 +X20|19M164|GHM|8 +X20|19M16T|GHM|8 +X20|19M171|GHM|8 +X20|19M172|GHM|8 +X20|19M173|GHM|8 +X20|19M174|GHM|8 +X20|19M181|GHM|8 +X20|19M182|GHM|8 +X20|19M183|GHM|8 +X20|19M184|GHM|8 +X20|19M18T|GHM|8 +X20|19M191|GHM|8 +X20|19M192|GHM|8 +X20|19M193|GHM|8 +X20|19M194|GHM|8 +X20|19M19T|GHM|8 +X20|19M201|GHM|8 +X20|19M202|GHM|8 +X20|19M203|GHM|8 +X20|19M204|GHM|8 +X20|19M20T|GHM|8 +X20|19M21Z|GHM|8 +X20|19M22T|GHM|8 +X20|19M22Z|GHM|8 +X21|20Z021|GHM|8 +X21|20Z022|GHM|8 +X21|20Z023|GHM|8 +X21|20Z024|GHM|8 +X21|20Z02T|GHM|8 +X21|20Z02Z|GHM|8 +X21|20Z031|GHM|8 +X21|20Z032|GHM|8 +X21|20Z033|GHM|8 +X21|20Z034|GHM|8 +X21|20Z03Z|GHM|8 +X21|20Z041|GHM|8 +X21|20Z042|GHM|8 +X21|20Z043|GHM|8 +X21|20Z044|GHM|8 +X21|20Z04T|GHM|8 +X21|20Z04Z|GHM|8 +X21|20Z051|GHM|8 +X21|20Z052|GHM|8 +X21|20Z053|GHM|8 +X21|20Z054|GHM|8 +X21|20Z05Z|GHM|8 +X21|20Z061|GHM|8 +X21|20Z062|GHM|8 +X21|20Z063|GHM|8 +X21|20Z064|GHM|8 +X21|20Z06T|GHM|8 +X21|20Z06V|GHM|8 +X21|20Z06W|GHM|8 +X21|21M021|GHM|8 +X21|21M022|GHM|8 +X21|21M023|GHM|8 +X21|21M024|GHM|8 +X21|21M02T|GHM|8 +X21|21M02Z|GHM|8 +X21|21M041|GHM|8 +X21|21M042|GHM|8 +X21|21M043|GHM|8 +X21|21M044|GHM|8 +X21|21M04T|GHM|8 +X21|21M04Z|GHM|8 +X21|21M051|GHM|8 +X21|21M052|GHM|8 +X21|21M053|GHM|8 +X21|21M054|GHM|8 +X21|21M05T|GHM|8 +X21|21M05Z|GHM|8 +X21|21M101|GHM|8 +X21|21M102|GHM|8 +X21|21M103|GHM|8 +X21|21M104|GHM|8 +X21|21M10T|GHM|8 +X21|21M111|GHM|8 +X21|21M112|GHM|8 +X21|21M113|GHM|8 +X21|21M114|GHM|8 +X21|21M11T|GHM|8 +X21|21M121|GHM|8 +X21|21M122|GHM|8 +X21|21M123|GHM|8 +X21|21M124|GHM|8 +X21|21M141|GHM|8 +X21|21M142|GHM|8 +X21|21M143|GHM|8 +X21|21M144|GHM|8 +X21|21M14T|GHM|8 +X21|21M161|GHM|8 +X21|21M162|GHM|8 +X21|21M163|GHM|8 +X21|21M164|GHM|8 +X21|21M16T|GHM|8 +X22|01M211|GHM|8 +X22|01M212|GHM|8 +X22|01M213|GHM|8 +X22|01M214|GHM|8 +X22|01M21T|GHM|8 +X22|01M21Z|GHM|8 +X22|23Z02T|GHM|8 +X22|23Z02Z|GHM|8 +X23|17M051|GHM|8 +X23|17M052|GHM|8 +X23|17M053|GHM|8 +X23|17M054|GHM|8 +X23|17M05Z|GHM|8 +X23|17M061|GHM|8 +X23|17M062|GHM|8 +X23|17M063|GHM|8 +X23|17M064|GHM|8 +X23|17M06T|GHM|8 +X23|17M06V|GHM|8 +X23|17M06W|GHM|8 +X23|23M091|GHM|8 +X23|23M092|GHM|8 +X23|23M093|GHM|8 +X23|23M094|GHM|8 +X24|01M37E|GHM|8 +X24|05M22E|GHM|8 +X24|21M131|GHM|8 +X24|21M132|GHM|8 +X24|21M133|GHM|8 +X24|21M134|GHM|8 +X24|21M151|GHM|8 +X24|21M152|GHM|8 +X24|21M153|GHM|8 +X24|21M154|GHM|8 +X24|21M15T|GHM|8 +X24|23M061|GHM|8 +X24|23M062|GHM|8 +X24|23M063|GHM|8 +X24|23M064|GHM|8 +X24|23M06T|GHM|8 +X24|23M06Z|GHM|8 +X24|23M111|GHM|8 +X24|23M112|GHM|8 +X24|23M113|GHM|8 +X24|23M114|GHM|8 +X24|23M11T|GHM|8 +X24|23M15Z|GHM|8 +X24|23M20T|GHM|8 +X24|23M20Z|GHM|8 +X25|26M021|GHM|8 +X25|26M022|GHM|8 +X25|26M023|GHM|8 +X25|26M024|GHM|8 +X25|26M02Z|GHM|8 +X26|09Z02A|GHM|8 +X26|09Z02B|GHM|8 +X26|09Z02Z|GHM|8 +X26|23Z03Z|GHM|8 +Z99|90C01Z|GHM|8 +Z99|90H01Z|GHM|8 +Z99|90H02Z|GHM|8 +Z99|90H03Z|GHM|8 +Z99|90Z00Z|GHM|8 +Z99|90Z01Z|GHM|8 +Z99|90Z02Z|GHM|8 +Z99|90Z03Z|GHM|8 +Z99|999999|GHM|8 +Z99|ZZZZZZ|GHM|8 +D01|06C021|GHM|9 +D01|06C022|GHM|9 +D01|06C023|GHM|9 +D01|06C024|GHM|9 +D01|06C02Z|GHM|9 +D01|06C031|GHM|9 +D01|06C032|GHM|9 +D01|06C033|GHM|9 +D01|06C034|GHM|9 +D01|06C03V|GHM|9 +D01|06C03W|GHM|9 +D01|06C041|GHM|9 +D01|06C042|GHM|9 +D01|06C043|GHM|9 +D01|06C044|GHM|9 +D01|06C04V|GHM|9 +D01|06C04W|GHM|9 +D01|06C051|GHM|9 +D01|06C052|GHM|9 +D01|06C053|GHM|9 +D01|06C054|GHM|9 +D01|06C05Z|GHM|9 +D01|06C071|GHM|9 +D01|06C072|GHM|9 +D01|06C073|GHM|9 +D01|06C074|GHM|9 +D01|06C07V|GHM|9 +D01|06C07W|GHM|9 +D01|06C081|GHM|9 +D01|06C082|GHM|9 +D01|06C083|GHM|9 +D01|06C084|GHM|9 +D01|06C08V|GHM|9 +D01|06C08W|GHM|9 +D01|06C091|GHM|9 +D01|06C092|GHM|9 +D01|06C093|GHM|9 +D01|06C094|GHM|9 +D01|06C09V|GHM|9 +D01|06C09W|GHM|9 +D01|06C101|GHM|9 +D01|06C102|GHM|9 +D01|06C103|GHM|9 +D01|06C104|GHM|9 +D01|06C10J|GHM|9 +D01|06C10Z|GHM|9 +D01|06C111|GHM|9 +D01|06C112|GHM|9 +D01|06C113|GHM|9 +D01|06C114|GHM|9 +D01|06C11J|GHM|9 +D01|06C11V|GHM|9 +D01|06C11W|GHM|9 +D01|06C121|GHM|9 +D01|06C122|GHM|9 +D01|06C123|GHM|9 +D01|06C124|GHM|9 +D01|06C12J|GHM|9 +D01|06C12V|GHM|9 +D01|06C12W|GHM|9 +D01|06C131|GHM|9 +D01|06C132|GHM|9 +D01|06C133|GHM|9 +D01|06C134|GHM|9 +D01|06C13V|GHM|9 +D01|06C13W|GHM|9 +D01|06C141|GHM|9 +D01|06C142|GHM|9 +D01|06C143|GHM|9 +D01|06C144|GHM|9 +D01|06C14J|GHM|9 +D01|06C14V|GHM|9 +D01|06C14W|GHM|9 +D01|06C151|GHM|9 +D01|06C152|GHM|9 +D01|06C153|GHM|9 +D01|06C154|GHM|9 +D01|06C15V|GHM|9 +D01|06C15W|GHM|9 +D01|06C161|GHM|9 +D01|06C162|GHM|9 +D01|06C163|GHM|9 +D01|06C164|GHM|9 +D01|06C16V|GHM|9 +D01|06C16W|GHM|9 +D01|06C191|GHM|9 +D01|06C192|GHM|9 +D01|06C193|GHM|9 +D01|06C194|GHM|9 +D01|06C19J|GHM|9 +D01|06C201|GHM|9 +D01|06C202|GHM|9 +D01|06C203|GHM|9 +D01|06C204|GHM|9 +D01|06C211|GHM|9 +D01|06C212|GHM|9 +D01|06C213|GHM|9 +D01|06C214|GHM|9 +D01|06C221|GHM|9 +D01|06C222|GHM|9 +D01|06C223|GHM|9 +D01|06C224|GHM|9 +D01|06C231|GHM|9 +D01|06C232|GHM|9 +D01|06C233|GHM|9 +D01|06C234|GHM|9 +D01|06C23J|GHM|9 +D01|06C241|GHM|9 +D01|06C242|GHM|9 +D01|06C243|GHM|9 +D01|06C244|GHM|9 +D01|06C24J|GHM|9 +D01|06C251|GHM|9 +D01|06C252|GHM|9 +D01|06C253|GHM|9 +D01|06C254|GHM|9 +D01|06C25J|GHM|9 +D01|06K02Z|GHM|9 +D01|06K03J|GHM|9 +D01|06K04J|GHM|9 +D01|06K05J|GHM|9 +D01|06K06J|GHM|9 +D01|06M021|GHM|9 +D01|06M022|GHM|9 +D01|06M023|GHM|9 +D01|06M024|GHM|9 +D01|06M02T|GHM|9 +D01|06M02V|GHM|9 +D01|06M02W|GHM|9 +D01|06M031|GHM|9 +D01|06M032|GHM|9 +D01|06M033|GHM|9 +D01|06M034|GHM|9 +D01|06M03T|GHM|9 +D01|06M03V|GHM|9 +D01|06M03W|GHM|9 +D01|06M041|GHM|9 +D01|06M042|GHM|9 +D01|06M043|GHM|9 +D01|06M044|GHM|9 +D01|06M04T|GHM|9 +D01|06M04V|GHM|9 +D01|06M04W|GHM|9 +D01|06M051|GHM|9 +D01|06M052|GHM|9 +D01|06M053|GHM|9 +D01|06M054|GHM|9 +D01|06M05T|GHM|9 +D01|06M05V|GHM|9 +D01|06M05W|GHM|9 +D01|06M061|GHM|9 +D01|06M062|GHM|9 +D01|06M063|GHM|9 +D01|06M064|GHM|9 +D01|06M06T|GHM|9 +D01|06M06V|GHM|9 +D01|06M06W|GHM|9 +D01|06M071|GHM|9 +D01|06M072|GHM|9 +D01|06M073|GHM|9 +D01|06M074|GHM|9 +D01|06M07T|GHM|9 +D01|06M07V|GHM|9 +D01|06M07W|GHM|9 +D01|06M081|GHM|9 +D01|06M082|GHM|9 +D01|06M083|GHM|9 +D01|06M084|GHM|9 +D01|06M08T|GHM|9 +D01|06M08Z|GHM|9 +D01|06M091|GHM|9 +D01|06M092|GHM|9 +D01|06M093|GHM|9 +D01|06M094|GHM|9 +D01|06M09T|GHM|9 +D01|06M09V|GHM|9 +D01|06M09W|GHM|9 +D01|06M101|GHM|9 +D01|06M102|GHM|9 +D01|06M103|GHM|9 +D01|06M104|GHM|9 +D01|06M10Z|GHM|9 +D01|06M111|GHM|9 +D01|06M112|GHM|9 +D01|06M113|GHM|9 +D01|06M114|GHM|9 +D01|06M11T|GHM|9 +D01|06M11V|GHM|9 +D01|06M11W|GHM|9 +D01|06M121|GHM|9 +D01|06M122|GHM|9 +D01|06M123|GHM|9 +D01|06M124|GHM|9 +D01|06M12T|GHM|9 +D01|06M131|GHM|9 +D01|06M132|GHM|9 +D01|06M133|GHM|9 +D01|06M134|GHM|9 +D01|06M13T|GHM|9 +D01|06M141|GHM|9 +D01|06M142|GHM|9 +D01|06M143|GHM|9 +D01|06M144|GHM|9 +D01|06M15Z|GHM|9 +D01|06M16Z|GHM|9 +D01|06M17T|GHM|9 +D01|06M17Z|GHM|9 +D01|06M18T|GHM|9 +D01|06M18Z|GHM|9 +D01|06M191|GHM|9 +D01|06M192|GHM|9 +D01|06M193|GHM|9 +D01|06M194|GHM|9 +D01|06M201|GHM|9 +D01|06M202|GHM|9 +D01|06M203|GHM|9 +D01|06M204|GHM|9 +D01|06M20T|GHM|9 +D01|06M211|GHM|9 +D01|06M212|GHM|9 +D01|06M213|GHM|9 +D01|06M214|GHM|9 +D01|07C061|GHM|9 +D01|07C062|GHM|9 +D01|07C063|GHM|9 +D01|07C064|GHM|9 +D01|07C06Z|GHM|9 +D01|07C071|GHM|9 +D01|07C072|GHM|9 +D01|07C073|GHM|9 +D01|07C074|GHM|9 +D01|07C07Z|GHM|9 +D01|07C081|GHM|9 +D01|07C082|GHM|9 +D01|07C083|GHM|9 +D01|07C084|GHM|9 +D01|07C08Z|GHM|9 +D01|07C091|GHM|9 +D01|07C092|GHM|9 +D01|07C093|GHM|9 +D01|07C094|GHM|9 +D01|07C09V|GHM|9 +D01|07C09W|GHM|9 +D01|07C101|GHM|9 +D01|07C102|GHM|9 +D01|07C103|GHM|9 +D01|07C104|GHM|9 +D01|07C10V|GHM|9 +D01|07C10W|GHM|9 +D01|07C111|GHM|9 +D01|07C112|GHM|9 +D01|07C113|GHM|9 +D01|07C114|GHM|9 +D01|07C11V|GHM|9 +D01|07C11W|GHM|9 +D01|07C121|GHM|9 +D01|07C122|GHM|9 +D01|07C123|GHM|9 +D01|07C124|GHM|9 +D01|07C12V|GHM|9 +D01|07C12W|GHM|9 +D01|07C131|GHM|9 +D01|07C132|GHM|9 +D01|07C133|GHM|9 +D01|07C134|GHM|9 +D01|07C141|GHM|9 +D01|07C142|GHM|9 +D01|07C143|GHM|9 +D01|07C144|GHM|9 +D01|07C14J|GHM|9 +D01|07K02Z|GHM|9 +D01|07K04J|GHM|9 +D01|07K05J|GHM|9 +D01|07K061|GHM|9 +D01|07K062|GHM|9 +D01|07K063|GHM|9 +D01|07K064|GHM|9 +D01|07M021|GHM|9 +D01|07M022|GHM|9 +D01|07M023|GHM|9 +D01|07M024|GHM|9 +D01|07M02T|GHM|9 +D01|07M02V|GHM|9 +D01|07M02W|GHM|9 +D01|07M041|GHM|9 +D01|07M042|GHM|9 +D01|07M043|GHM|9 +D01|07M044|GHM|9 +D01|07M04T|GHM|9 +D01|07M04V|GHM|9 +D01|07M04W|GHM|9 +D01|07M061|GHM|9 +D01|07M062|GHM|9 +D01|07M063|GHM|9 +D01|07M064|GHM|9 +D01|07M06T|GHM|9 +D01|07M06V|GHM|9 +D01|07M06W|GHM|9 +D01|07M071|GHM|9 +D01|07M072|GHM|9 +D01|07M073|GHM|9 +D01|07M074|GHM|9 +D01|07M07T|GHM|9 +D01|07M081|GHM|9 +D01|07M082|GHM|9 +D01|07M083|GHM|9 +D01|07M084|GHM|9 +D01|07M08T|GHM|9 +D01|07M091|GHM|9 +D01|07M092|GHM|9 +D01|07M093|GHM|9 +D01|07M094|GHM|9 +D01|07M09T|GHM|9 +D01|07M101|GHM|9 +D01|07M102|GHM|9 +D01|07M103|GHM|9 +D01|07M104|GHM|9 +D01|07M10T|GHM|9 +D01|07M111|GHM|9 +D01|07M112|GHM|9 +D01|07M113|GHM|9 +D01|07M114|GHM|9 +D01|07M11T|GHM|9 +D01|07M121|GHM|9 +D01|07M122|GHM|9 +D01|07M123|GHM|9 +D01|07M124|GHM|9 +D01|07M13Z|GHM|9 +D01|07M14T|GHM|9 +D01|07M14Z|GHM|9 +D01|07M151|GHM|9 +D01|07M152|GHM|9 +D01|07M153|GHM|9 +D01|07M154|GHM|9 +D01|07M15T|GHM|9 +D01|07M161|GHM|9 +D01|07M162|GHM|9 +D01|07M163|GHM|9 +D01|07M164|GHM|9 +D01|09C081|GHM|9 +D01|09C082|GHM|9 +D01|09C083|GHM|9 +D01|09C084|GHM|9 +D01|09C08J|GHM|9 +D01|09C08Z|GHM|9 +D01|09C131|GHM|9 +D01|09C132|GHM|9 +D01|09C133|GHM|9 +D01|09C134|GHM|9 +D01|09C13J|GHM|9 +D01|10C04Z|GHM|9 +D01|10C091|GHM|9 +D01|10C092|GHM|9 +D01|10C093|GHM|9 +D01|10C094|GHM|9 +D01|10C09Z|GHM|9 +D01|10C131|GHM|9 +D01|10C132|GHM|9 +D01|10C133|GHM|9 +D01|10C134|GHM|9 +D01|10C13Z|GHM|9 +D01|16C021|GHM|9 +D01|16C022|GHM|9 +D01|16C023|GHM|9 +D01|16C024|GHM|9 +D01|16C02Z|GHM|9 +D02|01C07Z|GHM|9 +D02|01C131|GHM|9 +D02|01C132|GHM|9 +D02|01C133|GHM|9 +D02|01C134|GHM|9 +D02|01C13J|GHM|9 +D02|01C13Z|GHM|9 +D02|01C141|GHM|9 +D02|01C142|GHM|9 +D02|01C143|GHM|9 +D02|01C144|GHM|9 +D02|01C14J|GHM|9 +D02|01C151|GHM|9 +D02|01C152|GHM|9 +D02|01C153|GHM|9 +D02|01C154|GHM|9 +D02|01C15J|GHM|9 +D02|05C121|GHM|9 +D02|05C122|GHM|9 +D02|05C123|GHM|9 +D02|05C124|GHM|9 +D02|05C12V|GHM|9 +D02|05C12W|GHM|9 +D02|05C131|GHM|9 +D02|05C132|GHM|9 +D02|05C133|GHM|9 +D02|05C134|GHM|9 +D02|05C13J|GHM|9 +D02|05C13V|GHM|9 +D02|05C13W|GHM|9 +D02|08C021|GHM|9 +D02|08C022|GHM|9 +D02|08C023|GHM|9 +D02|08C024|GHM|9 +D02|08C02Z|GHM|9 +D02|08C041|GHM|9 +D02|08C042|GHM|9 +D02|08C043|GHM|9 +D02|08C044|GHM|9 +D02|08C04Z|GHM|9 +D02|08C061|GHM|9 +D02|08C062|GHM|9 +D02|08C063|GHM|9 +D02|08C064|GHM|9 +D02|08C06Z|GHM|9 +D02|08C08Z|GHM|9 +D02|08C121|GHM|9 +D02|08C122|GHM|9 +D02|08C123|GHM|9 +D02|08C124|GHM|9 +D02|08C12J|GHM|9 +D02|08C12Z|GHM|9 +D02|08C131|GHM|9 +D02|08C132|GHM|9 +D02|08C133|GHM|9 +D02|08C134|GHM|9 +D02|08C13J|GHM|9 +D02|08C13Z|GHM|9 +D02|08C141|GHM|9 +D02|08C142|GHM|9 +D02|08C143|GHM|9 +D02|08C144|GHM|9 +D02|08C14J|GHM|9 +D02|08C14Z|GHM|9 +D02|08C17Z|GHM|9 +D02|08C19Z|GHM|9 +D02|08C221|GHM|9 +D02|08C222|GHM|9 +D02|08C223|GHM|9 +D02|08C224|GHM|9 +D02|08C22Z|GHM|9 +D02|08C241|GHM|9 +D02|08C242|GHM|9 +D02|08C243|GHM|9 +D02|08C244|GHM|9 +D02|08C24Z|GHM|9 +D02|08C251|GHM|9 +D02|08C252|GHM|9 +D02|08C253|GHM|9 +D02|08C254|GHM|9 +D02|08C25Z|GHM|9 +D02|08C26Z|GHM|9 +D02|08C291|GHM|9 +D02|08C292|GHM|9 +D02|08C293|GHM|9 +D02|08C294|GHM|9 +D02|08C29J|GHM|9 +D02|08C29Z|GHM|9 +D02|08C311|GHM|9 +D02|08C312|GHM|9 +D02|08C313|GHM|9 +D02|08C314|GHM|9 +D02|08C321|GHM|9 +D02|08C322|GHM|9 +D02|08C323|GHM|9 +D02|08C324|GHM|9 +D02|08C32J|GHM|9 +D02|08C331|GHM|9 +D02|08C332|GHM|9 +D02|08C333|GHM|9 +D02|08C334|GHM|9 +D02|08C341|GHM|9 +D02|08C342|GHM|9 +D02|08C343|GHM|9 +D02|08C344|GHM|9 +D02|08C34J|GHM|9 +D02|08C351|GHM|9 +D02|08C352|GHM|9 +D02|08C353|GHM|9 +D02|08C354|GHM|9 +D02|08C35J|GHM|9 +D02|08C361|GHM|9 +D02|08C362|GHM|9 +D02|08C363|GHM|9 +D02|08C364|GHM|9 +D02|08C36J|GHM|9 +D02|08C371|GHM|9 +D02|08C372|GHM|9 +D02|08C373|GHM|9 +D02|08C374|GHM|9 +D02|08C37J|GHM|9 +D02|08C381|GHM|9 +D02|08C382|GHM|9 +D02|08C383|GHM|9 +D02|08C384|GHM|9 +D02|08C38J|GHM|9 +D02|08C391|GHM|9 +D02|08C392|GHM|9 +D02|08C393|GHM|9 +D02|08C394|GHM|9 +D02|08C39J|GHM|9 +D02|08C401|GHM|9 +D02|08C402|GHM|9 +D02|08C403|GHM|9 +D02|08C404|GHM|9 +D02|08C40J|GHM|9 +D02|08C411|GHM|9 +D02|08C412|GHM|9 +D02|08C413|GHM|9 +D02|08C414|GHM|9 +D02|08C41J|GHM|9 +D02|08C421|GHM|9 +D02|08C422|GHM|9 +D02|08C423|GHM|9 +D02|08C424|GHM|9 +D02|08C42J|GHM|9 +D02|08C431|GHM|9 +D02|08C432|GHM|9 +D02|08C433|GHM|9 +D02|08C434|GHM|9 +D02|08C43J|GHM|9 +D02|08C441|GHM|9 +D02|08C442|GHM|9 +D02|08C443|GHM|9 +D02|08C444|GHM|9 +D02|08C44J|GHM|9 +D02|08C451|GHM|9 +D02|08C452|GHM|9 +D02|08C453|GHM|9 +D02|08C454|GHM|9 +D02|08C45J|GHM|9 +D02|08C461|GHM|9 +D02|08C462|GHM|9 +D02|08C463|GHM|9 +D02|08C464|GHM|9 +D02|08C46J|GHM|9 +D02|08C471|GHM|9 +D02|08C472|GHM|9 +D02|08C473|GHM|9 +D02|08C474|GHM|9 +D02|08C481|GHM|9 +D02|08C482|GHM|9 +D02|08C483|GHM|9 +D02|08C484|GHM|9 +D02|08C491|GHM|9 +D02|08C492|GHM|9 +D02|08C493|GHM|9 +D02|08C494|GHM|9 +D02|08C501|GHM|9 +D02|08C502|GHM|9 +D02|08C503|GHM|9 +D02|08C504|GHM|9 +D02|08C531|GHM|9 +D02|08C532|GHM|9 +D02|08C533|GHM|9 +D02|08C534|GHM|9 +D02|08C541|GHM|9 +D02|08C542|GHM|9 +D02|08C543|GHM|9 +D02|08C544|GHM|9 +D02|08C54J|GHM|9 +D02|08C551|GHM|9 +D02|08C552|GHM|9 +D02|08C553|GHM|9 +D02|08C554|GHM|9 +D02|08C561|GHM|9 +D02|08C562|GHM|9 +D02|08C563|GHM|9 +D02|08C564|GHM|9 +D02|08C571|GHM|9 +D02|08C572|GHM|9 +D02|08C573|GHM|9 +D02|08C574|GHM|9 +D02|08C57J|GHM|9 +D02|08C581|GHM|9 +D02|08C582|GHM|9 +D02|08C583|GHM|9 +D02|08C584|GHM|9 +D02|08C58J|GHM|9 +D02|08C591|GHM|9 +D02|08C592|GHM|9 +D02|08C593|GHM|9 +D02|08C594|GHM|9 +D02|08C59J|GHM|9 +D02|08C601|GHM|9 +D02|08C602|GHM|9 +D02|08C603|GHM|9 +D02|08C604|GHM|9 +D02|08C60J|GHM|9 +D02|08C611|GHM|9 +D02|08C612|GHM|9 +D02|08C613|GHM|9 +D02|08C614|GHM|9 +D02|08C621|GHM|9 +D02|08C622|GHM|9 +D02|08C623|GHM|9 +D02|08C624|GHM|9 +D02|08C62J|GHM|9 +D02|08K02J|GHM|9 +D02|08K031|GHM|9 +D02|08K032|GHM|9 +D02|08K033|GHM|9 +D02|08K034|GHM|9 +D02|08K041|GHM|9 +D02|08K042|GHM|9 +D02|08K043|GHM|9 +D02|08K044|GHM|9 +D02|08K051|GHM|9 +D02|08K052|GHM|9 +D02|08K053|GHM|9 +D02|08K054|GHM|9 +D02|08K05J|GHM|9 +D02|08K06Z|GHM|9 +D02|08M02Z|GHM|9 +D02|08M041|GHM|9 +D02|08M042|GHM|9 +D02|08M043|GHM|9 +D02|08M044|GHM|9 +D02|08M04T|GHM|9 +D02|08M04V|GHM|9 +D02|08M04W|GHM|9 +D02|08M051|GHM|9 +D02|08M052|GHM|9 +D02|08M053|GHM|9 +D02|08M054|GHM|9 +D02|08M05T|GHM|9 +D02|08M05Z|GHM|9 +D02|08M061|GHM|9 +D02|08M062|GHM|9 +D02|08M063|GHM|9 +D02|08M064|GHM|9 +D02|08M06T|GHM|9 +D02|08M06Z|GHM|9 +D02|08M071|GHM|9 +D02|08M072|GHM|9 +D02|08M073|GHM|9 +D02|08M074|GHM|9 +D02|08M07T|GHM|9 +D02|08M07V|GHM|9 +D02|08M07W|GHM|9 +D02|08M081|GHM|9 +D02|08M082|GHM|9 +D02|08M083|GHM|9 +D02|08M084|GHM|9 +D02|08M08T|GHM|9 +D02|08M08Z|GHM|9 +D02|08M13Z|GHM|9 +D02|08M16Z|GHM|9 +D02|08M17Z|GHM|9 +D02|08M201|GHM|9 +D02|08M202|GHM|9 +D02|08M203|GHM|9 +D02|08M204|GHM|9 +D02|08M211|GHM|9 +D02|08M212|GHM|9 +D02|08M213|GHM|9 +D02|08M214|GHM|9 +D02|08M221|GHM|9 +D02|08M222|GHM|9 +D02|08M223|GHM|9 +D02|08M224|GHM|9 +D02|08M231|GHM|9 +D02|08M232|GHM|9 +D02|08M233|GHM|9 +D02|08M234|GHM|9 +D02|08M261|GHM|9 +D02|08M262|GHM|9 +D02|08M263|GHM|9 +D02|08M264|GHM|9 +D02|08M331|GHM|9 +D02|08M332|GHM|9 +D02|08M333|GHM|9 +D02|08M334|GHM|9 +D02|08M33T|GHM|9 +D02|08M371|GHM|9 +D02|08M372|GHM|9 +D02|08M373|GHM|9 +D02|08M374|GHM|9 +D02|08M37T|GHM|9 +D02|08M381|GHM|9 +D02|08M382|GHM|9 +D02|08M383|GHM|9 +D02|08M384|GHM|9 +D02|08M38T|GHM|9 +D02|21C041|GHM|9 +D02|21C042|GHM|9 +D02|21C043|GHM|9 +D02|21C044|GHM|9 +D02|21C04J|GHM|9 +D02|21C04Z|GHM|9 +D02|21M061|GHM|9 +D02|21M062|GHM|9 +D02|21M063|GHM|9 +D02|21M064|GHM|9 +D02|21M06Z|GHM|9 +D02|21M071|GHM|9 +D02|21M072|GHM|9 +D02|21M073|GHM|9 +D02|21M074|GHM|9 +D02|21M07T|GHM|9 +D02|21M07V|GHM|9 +D02|21M07W|GHM|9 +D03|26C021|GHM|9 +D03|26C022|GHM|9 +D03|26C023|GHM|9 +D03|26C024|GHM|9 +D03|26C02Z|GHM|9 +D03|26M021|GHM|9 +D03|26M022|GHM|9 +D03|26M023|GHM|9 +D03|26M024|GHM|9 +D03|26M02Z|GHM|9 +D04|08M091|GHM|9 +D04|08M092|GHM|9 +D04|08M093|GHM|9 +D04|08M094|GHM|9 +D04|08M09T|GHM|9 +D04|08M09Z|GHM|9 +D04|08M101|GHM|9 +D04|08M102|GHM|9 +D04|08M103|GHM|9 +D04|08M104|GHM|9 +D04|08M10T|GHM|9 +D04|08M10V|GHM|9 +D04|08M10W|GHM|9 +D04|08M141|GHM|9 +D04|08M142|GHM|9 +D04|08M143|GHM|9 +D04|08M144|GHM|9 +D04|08M14T|GHM|9 +D04|08M14V|GHM|9 +D04|08M14W|GHM|9 +D04|08M151|GHM|9 +D04|08M152|GHM|9 +D04|08M153|GHM|9 +D04|08M154|GHM|9 +D04|08M15T|GHM|9 +D04|08M15V|GHM|9 +D04|08M15W|GHM|9 +D04|08M181|GHM|9 +D04|08M182|GHM|9 +D04|08M183|GHM|9 +D04|08M184|GHM|9 +D04|08M18T|GHM|9 +D04|08M18Z|GHM|9 +D04|08M191|GHM|9 +D04|08M192|GHM|9 +D04|08M193|GHM|9 +D04|08M194|GHM|9 +D04|08M19T|GHM|9 +D04|08M19V|GHM|9 +D04|08M19W|GHM|9 +D04|08M241|GHM|9 +D04|08M242|GHM|9 +D04|08M243|GHM|9 +D04|08M244|GHM|9 +D04|08M24T|GHM|9 +D04|08M251|GHM|9 +D04|08M252|GHM|9 +D04|08M253|GHM|9 +D04|08M254|GHM|9 +D04|08M25T|GHM|9 +D04|08M271|GHM|9 +D04|08M272|GHM|9 +D04|08M273|GHM|9 +D04|08M274|GHM|9 +D04|08M27T|GHM|9 +D04|08M281|GHM|9 +D04|08M282|GHM|9 +D04|08M283|GHM|9 +D04|08M284|GHM|9 +D04|08M28T|GHM|9 +D04|08M291|GHM|9 +D04|08M292|GHM|9 +D04|08M293|GHM|9 +D04|08M294|GHM|9 +D04|08M29T|GHM|9 +D04|08M301|GHM|9 +D04|08M302|GHM|9 +D04|08M303|GHM|9 +D04|08M304|GHM|9 +D04|08M30T|GHM|9 +D04|08M311|GHM|9 +D04|08M312|GHM|9 +D04|08M313|GHM|9 +D04|08M314|GHM|9 +D04|08M31T|GHM|9 +D04|08M321|GHM|9 +D04|08M322|GHM|9 +D04|08M323|GHM|9 +D04|08M324|GHM|9 +D04|08M32T|GHM|9 +D04|08M341|GHM|9 +D04|08M342|GHM|9 +D04|08M343|GHM|9 +D04|08M344|GHM|9 +D04|08M34T|GHM|9 +D04|08M35Z|GHM|9 +D04|08M36T|GHM|9 +D04|08M36Z|GHM|9 +D05|01C02Z|GHM|9 +D05|01C031|GHM|9 +D05|01C032|GHM|9 +D05|01C033|GHM|9 +D05|01C034|GHM|9 +D05|01C03V|GHM|9 +D05|01C03W|GHM|9 +D05|01C041|GHM|9 +D05|01C042|GHM|9 +D05|01C043|GHM|9 +D05|01C044|GHM|9 +D05|01C04V|GHM|9 +D05|01C04W|GHM|9 +D05|01C051|GHM|9 +D05|01C052|GHM|9 +D05|01C053|GHM|9 +D05|01C054|GHM|9 +D05|01C05V|GHM|9 +D05|01C05W|GHM|9 +D05|01C091|GHM|9 +D05|01C092|GHM|9 +D05|01C093|GHM|9 +D05|01C094|GHM|9 +D05|01C09Z|GHM|9 +D05|01C101|GHM|9 +D05|01C102|GHM|9 +D05|01C103|GHM|9 +D05|01C104|GHM|9 +D05|01C10J|GHM|9 +D05|01C10Z|GHM|9 +D05|01C111|GHM|9 +D05|01C112|GHM|9 +D05|01C113|GHM|9 +D05|01C114|GHM|9 +D05|01C11Z|GHM|9 +D05|01C121|GHM|9 +D05|01C122|GHM|9 +D05|01C123|GHM|9 +D05|01C124|GHM|9 +D05|01C12Z|GHM|9 +D05|01K04J|GHM|9 +D05|01K06J|GHM|9 +D05|01M02Z|GHM|9 +D05|01M041|GHM|9 +D05|01M042|GHM|9 +D05|01M043|GHM|9 +D05|01M044|GHM|9 +D05|01M04T|GHM|9 +D05|01M04Z|GHM|9 +D05|01M051|GHM|9 +D05|01M052|GHM|9 +D05|01M053|GHM|9 +D05|01M054|GHM|9 +D05|01M05T|GHM|9 +D05|01M05V|GHM|9 +D05|01M05W|GHM|9 +D05|01M071|GHM|9 +D05|01M072|GHM|9 +D05|01M073|GHM|9 +D05|01M074|GHM|9 +D05|01M07T|GHM|9 +D05|01M07Z|GHM|9 +D05|01M081|GHM|9 +D05|01M082|GHM|9 +D05|01M083|GHM|9 +D05|01M084|GHM|9 +D05|01M08T|GHM|9 +D05|01M08V|GHM|9 +D05|01M08W|GHM|9 +D05|01M091|GHM|9 +D05|01M092|GHM|9 +D05|01M093|GHM|9 +D05|01M094|GHM|9 +D05|01M09T|GHM|9 +D05|01M09Z|GHM|9 +D05|01M101|GHM|9 +D05|01M102|GHM|9 +D05|01M103|GHM|9 +D05|01M104|GHM|9 +D05|01M10T|GHM|9 +D05|01M10V|GHM|9 +D05|01M10W|GHM|9 +D05|01M111|GHM|9 +D05|01M112|GHM|9 +D05|01M113|GHM|9 +D05|01M114|GHM|9 +D05|01M11T|GHM|9 +D05|01M11V|GHM|9 +D05|01M11W|GHM|9 +D05|01M121|GHM|9 +D05|01M122|GHM|9 +D05|01M123|GHM|9 +D05|01M124|GHM|9 +D05|01M12T|GHM|9 +D05|01M12V|GHM|9 +D05|01M12W|GHM|9 +D05|01M131|GHM|9 +D05|01M132|GHM|9 +D05|01M133|GHM|9 +D05|01M134|GHM|9 +D05|01M13Z|GHM|9 +D05|01M151|GHM|9 +D05|01M152|GHM|9 +D05|01M153|GHM|9 +D05|01M154|GHM|9 +D05|01M15T|GHM|9 +D05|01M15Z|GHM|9 +D05|01M161|GHM|9 +D05|01M162|GHM|9 +D05|01M163|GHM|9 +D05|01M164|GHM|9 +D05|01M16T|GHM|9 +D05|01M16Z|GHM|9 +D05|01M171|GHM|9 +D05|01M172|GHM|9 +D05|01M173|GHM|9 +D05|01M174|GHM|9 +D05|01M17T|GHM|9 +D05|01M17V|GHM|9 +D05|01M17W|GHM|9 +D05|01M181|GHM|9 +D05|01M182|GHM|9 +D05|01M183|GHM|9 +D05|01M184|GHM|9 +D05|01M18T|GHM|9 +D05|01M18V|GHM|9 +D05|01M18W|GHM|9 +D05|01M191|GHM|9 +D05|01M192|GHM|9 +D05|01M193|GHM|9 +D05|01M194|GHM|9 +D05|01M19V|GHM|9 +D05|01M19W|GHM|9 +D05|01M201|GHM|9 +D05|01M202|GHM|9 +D05|01M203|GHM|9 +D05|01M204|GHM|9 +D05|01M20V|GHM|9 +D05|01M20W|GHM|9 +D05|01M221|GHM|9 +D05|01M222|GHM|9 +D05|01M223|GHM|9 +D05|01M224|GHM|9 +D05|01M22T|GHM|9 +D05|01M22Z|GHM|9 +D05|01M231|GHM|9 +D05|01M232|GHM|9 +D05|01M233|GHM|9 +D05|01M234|GHM|9 +D05|01M23Z|GHM|9 +D05|01M241|GHM|9 +D05|01M242|GHM|9 +D05|01M243|GHM|9 +D05|01M244|GHM|9 +D05|01M24T|GHM|9 +D05|01M24V|GHM|9 +D05|01M24W|GHM|9 +D05|01M251|GHM|9 +D05|01M252|GHM|9 +D05|01M253|GHM|9 +D05|01M254|GHM|9 +D05|01M25T|GHM|9 +D05|01M25V|GHM|9 +D05|01M25W|GHM|9 +D05|01M261|GHM|9 +D05|01M262|GHM|9 +D05|01M263|GHM|9 +D05|01M264|GHM|9 +D05|01M26T|GHM|9 +D05|01M271|GHM|9 +D05|01M272|GHM|9 +D05|01M273|GHM|9 +D05|01M274|GHM|9 +D05|01M27T|GHM|9 +D05|01M281|GHM|9 +D05|01M282|GHM|9 +D05|01M283|GHM|9 +D05|01M284|GHM|9 +D05|01M28T|GHM|9 +D05|01M291|GHM|9 +D05|01M292|GHM|9 +D05|01M293|GHM|9 +D05|01M294|GHM|9 +D05|01M301|GHM|9 +D05|01M302|GHM|9 +D05|01M303|GHM|9 +D05|01M304|GHM|9 +D05|01M30T|GHM|9 +D05|01M311|GHM|9 +D05|01M312|GHM|9 +D05|01M313|GHM|9 +D05|01M314|GHM|9 +D05|01M31T|GHM|9 +D05|01M32Z|GHM|9 +D05|01M331|GHM|9 +D05|01M332|GHM|9 +D05|01M333|GHM|9 +D05|01M334|GHM|9 +D05|01M34T|GHM|9 +D05|01M34Z|GHM|9 +D05|01M35T|GHM|9 +D05|01M35Z|GHM|9 +D05|01M36E|GHM|9 +D05|01M381|GHM|9 +D05|01M382|GHM|9 +D05|01M383|GHM|9 +D05|01M384|GHM|9 +D05|01M391|GHM|9 +D05|01M392|GHM|9 +D05|01M393|GHM|9 +D05|01M394|GHM|9 +D05|08C271|GHM|9 +D05|08C272|GHM|9 +D05|08C273|GHM|9 +D05|08C274|GHM|9 +D05|08C27V|GHM|9 +D05|08C27W|GHM|9 +D05|08C511|GHM|9 +D05|08C512|GHM|9 +D05|08C513|GHM|9 +D05|08C514|GHM|9 +D05|08C521|GHM|9 +D05|08C522|GHM|9 +D05|08C523|GHM|9 +D05|08C524|GHM|9 +D05|10C021|GHM|9 +D05|10C022|GHM|9 +D05|10C023|GHM|9 +D05|10C024|GHM|9 +D05|10C02Z|GHM|9 +D06|01K021|GHM|9 +D06|01K022|GHM|9 +D06|01K023|GHM|9 +D06|01K024|GHM|9 +D06|01K02Z|GHM|9 +D06|01K031|GHM|9 +D06|01K032|GHM|9 +D06|01K033|GHM|9 +D06|01K034|GHM|9 +D06|01K03Z|GHM|9 +D06|01K071|GHM|9 +D06|01K072|GHM|9 +D06|01K073|GHM|9 +D06|01K074|GHM|9 +D06|05K03Z|GHM|9 +D06|05K04Z|GHM|9 +D06|05K051|GHM|9 +D06|05K052|GHM|9 +D06|05K053|GHM|9 +D06|05K054|GHM|9 +D06|05K05V|GHM|9 +D06|05K05W|GHM|9 +D06|05K061|GHM|9 +D06|05K062|GHM|9 +D06|05K063|GHM|9 +D06|05K064|GHM|9 +D06|05K06T|GHM|9 +D06|05K06V|GHM|9 +D06|05K06W|GHM|9 +D06|05K07Z|GHM|9 +D06|05K08Z|GHM|9 +D06|05K09Z|GHM|9 +D06|05K101|GHM|9 +D06|05K102|GHM|9 +D06|05K103|GHM|9 +D06|05K104|GHM|9 +D06|05K10J|GHM|9 +D06|05K10Z|GHM|9 +D06|05K111|GHM|9 +D06|05K112|GHM|9 +D06|05K113|GHM|9 +D06|05K114|GHM|9 +D06|05K11T|GHM|9 +D06|05K11Z|GHM|9 +D06|05K121|GHM|9 +D06|05K122|GHM|9 +D06|05K123|GHM|9 +D06|05K124|GHM|9 +D06|05K12Z|GHM|9 +D06|05K131|GHM|9 +D06|05K132|GHM|9 +D06|05K133|GHM|9 +D06|05K134|GHM|9 +D06|05K13J|GHM|9 +D06|05K13Z|GHM|9 +D06|05K151|GHM|9 +D06|05K152|GHM|9 +D06|05K153|GHM|9 +D06|05K154|GHM|9 +D06|05K15J|GHM|9 +D06|05K191|GHM|9 +D06|05K192|GHM|9 +D06|05K193|GHM|9 +D06|05K194|GHM|9 +D06|05K201|GHM|9 +D06|05K202|GHM|9 +D06|05K203|GHM|9 +D06|05K204|GHM|9 +D06|05K20T|GHM|9 +D06|05K211|GHM|9 +D06|05K212|GHM|9 +D06|05K213|GHM|9 +D06|05K214|GHM|9 +D06|05K221|GHM|9 +D06|05K222|GHM|9 +D06|05K223|GHM|9 +D06|05K224|GHM|9 +D06|05K231|GHM|9 +D06|05K232|GHM|9 +D06|05K233|GHM|9 +D06|05K234|GHM|9 +D06|05K23J|GHM|9 +D06|05K241|GHM|9 +D06|05K242|GHM|9 +D06|05K243|GHM|9 +D06|05K244|GHM|9 +D06|05K24J|GHM|9 +D06|05K251|GHM|9 +D06|05K252|GHM|9 +D06|05K253|GHM|9 +D06|05K254|GHM|9 +D06|05K25J|GHM|9 +D06|05K261|GHM|9 +D06|05K262|GHM|9 +D06|05K263|GHM|9 +D06|05K264|GHM|9 +D06|05K26J|GHM|9 +D06|05M02E|GHM|9 +D06|05M03Z|GHM|9 +D07|01C061|GHM|9 +D07|01C062|GHM|9 +D07|01C063|GHM|9 +D07|01C064|GHM|9 +D07|01C06V|GHM|9 +D07|01C06W|GHM|9 +D07|05C021|GHM|9 +D07|05C022|GHM|9 +D07|05C023|GHM|9 +D07|05C024|GHM|9 +D07|05C02Z|GHM|9 +D07|05C031|GHM|9 +D07|05C032|GHM|9 +D07|05C033|GHM|9 +D07|05C034|GHM|9 +D07|05C03V|GHM|9 +D07|05C03W|GHM|9 +D07|05C041|GHM|9 +D07|05C042|GHM|9 +D07|05C043|GHM|9 +D07|05C044|GHM|9 +D07|05C04V|GHM|9 +D07|05C04W|GHM|9 +D07|05C051|GHM|9 +D07|05C052|GHM|9 +D07|05C053|GHM|9 +D07|05C054|GHM|9 +D07|05C05V|GHM|9 +D07|05C05W|GHM|9 +D07|05C061|GHM|9 +D07|05C062|GHM|9 +D07|05C063|GHM|9 +D07|05C064|GHM|9 +D07|05C06V|GHM|9 +D07|05C06W|GHM|9 +D07|05C071|GHM|9 +D07|05C072|GHM|9 +D07|05C073|GHM|9 +D07|05C074|GHM|9 +D07|05C07Z|GHM|9 +D07|05C081|GHM|9 +D07|05C082|GHM|9 +D07|05C083|GHM|9 +D07|05C084|GHM|9 +D07|05C08T|GHM|9 +D07|05C08V|GHM|9 +D07|05C08W|GHM|9 +D07|05C091|GHM|9 +D07|05C092|GHM|9 +D07|05C093|GHM|9 +D07|05C094|GHM|9 +D07|05C09Z|GHM|9 +D07|05C101|GHM|9 +D07|05C102|GHM|9 +D07|05C103|GHM|9 +D07|05C104|GHM|9 +D07|05C10V|GHM|9 +D07|05C10W|GHM|9 +D07|05C111|GHM|9 +D07|05C112|GHM|9 +D07|05C113|GHM|9 +D07|05C114|GHM|9 +D07|05C11J|GHM|9 +D07|05C11V|GHM|9 +D07|05C11W|GHM|9 +D07|05C141|GHM|9 +D07|05C142|GHM|9 +D07|05C143|GHM|9 +D07|05C144|GHM|9 +D07|05C14J|GHM|9 +D07|05C14Z|GHM|9 +D07|05C151|GHM|9 +D07|05C152|GHM|9 +D07|05C153|GHM|9 +D07|05C154|GHM|9 +D07|05C15T|GHM|9 +D07|05C15Z|GHM|9 +D07|05C16Z|GHM|9 +D07|05C171|GHM|9 +D07|05C172|GHM|9 +D07|05C173|GHM|9 +D07|05C174|GHM|9 +D07|05C17J|GHM|9 +D07|05C17V|GHM|9 +D07|05C17W|GHM|9 +D07|05C191|GHM|9 +D07|05C192|GHM|9 +D07|05C193|GHM|9 +D07|05C194|GHM|9 +D07|05C19T|GHM|9 +D07|05C19Z|GHM|9 +D07|05C201|GHM|9 +D07|05C202|GHM|9 +D07|05C203|GHM|9 +D07|05C204|GHM|9 +D07|05C20Z|GHM|9 +D07|05C211|GHM|9 +D07|05C212|GHM|9 +D07|05C213|GHM|9 +D07|05C214|GHM|9 +D07|05C21J|GHM|9 +D07|05C221|GHM|9 +D07|05C222|GHM|9 +D07|05C223|GHM|9 +D07|05C224|GHM|9 +D07|05C22T|GHM|9 +D07|05K14Z|GHM|9 +D07|05K17J|GHM|9 +D07|05K18J|GHM|9 +D07|05M041|GHM|9 +D07|05M042|GHM|9 +D07|05M043|GHM|9 +D07|05M044|GHM|9 +D07|05M04T|GHM|9 +D07|05M04V|GHM|9 +D07|05M04W|GHM|9 +D07|05M051|GHM|9 +D07|05M052|GHM|9 +D07|05M053|GHM|9 +D07|05M054|GHM|9 +D07|05M05T|GHM|9 +D07|05M05V|GHM|9 +D07|05M05W|GHM|9 +D07|05M061|GHM|9 +D07|05M062|GHM|9 +D07|05M063|GHM|9 +D07|05M064|GHM|9 +D07|05M06T|GHM|9 +D07|05M06V|GHM|9 +D07|05M06W|GHM|9 +D07|05M071|GHM|9 +D07|05M072|GHM|9 +D07|05M073|GHM|9 +D07|05M074|GHM|9 +D07|05M07T|GHM|9 +D07|05M07V|GHM|9 +D07|05M07W|GHM|9 +D07|05M081|GHM|9 +D07|05M082|GHM|9 +D07|05M083|GHM|9 +D07|05M084|GHM|9 +D07|05M08T|GHM|9 +D07|05M08V|GHM|9 +D07|05M08W|GHM|9 +D07|05M091|GHM|9 +D07|05M092|GHM|9 +D07|05M093|GHM|9 +D07|05M094|GHM|9 +D07|05M09T|GHM|9 +D07|05M09V|GHM|9 +D07|05M09W|GHM|9 +D07|05M101|GHM|9 +D07|05M102|GHM|9 +D07|05M103|GHM|9 +D07|05M104|GHM|9 +D07|05M10T|GHM|9 +D07|05M10Z|GHM|9 +D07|05M111|GHM|9 +D07|05M112|GHM|9 +D07|05M113|GHM|9 +D07|05M114|GHM|9 +D07|05M11T|GHM|9 +D07|05M11V|GHM|9 +D07|05M11W|GHM|9 +D07|05M121|GHM|9 +D07|05M122|GHM|9 +D07|05M123|GHM|9 +D07|05M124|GHM|9 +D07|05M12T|GHM|9 +D07|05M12V|GHM|9 +D07|05M12W|GHM|9 +D07|05M131|GHM|9 +D07|05M132|GHM|9 +D07|05M133|GHM|9 +D07|05M134|GHM|9 +D07|05M13T|GHM|9 +D07|05M13Z|GHM|9 +D07|05M141|GHM|9 +D07|05M142|GHM|9 +D07|05M143|GHM|9 +D07|05M144|GHM|9 +D07|05M14Z|GHM|9 +D07|05M151|GHM|9 +D07|05M152|GHM|9 +D07|05M153|GHM|9 +D07|05M154|GHM|9 +D07|05M15T|GHM|9 +D07|05M15Z|GHM|9 +D07|05M161|GHM|9 +D07|05M162|GHM|9 +D07|05M163|GHM|9 +D07|05M164|GHM|9 +D07|05M16T|GHM|9 +D07|05M16V|GHM|9 +D07|05M16W|GHM|9 +D07|05M171|GHM|9 +D07|05M172|GHM|9 +D07|05M173|GHM|9 +D07|05M174|GHM|9 +D07|05M17T|GHM|9 +D07|05M17V|GHM|9 +D07|05M17W|GHM|9 +D07|05M181|GHM|9 +D07|05M182|GHM|9 +D07|05M183|GHM|9 +D07|05M184|GHM|9 +D07|05M18T|GHM|9 +D07|05M18Z|GHM|9 +D07|05M191|GHM|9 +D07|05M192|GHM|9 +D07|05M193|GHM|9 +D07|05M194|GHM|9 +D07|05M20Z|GHM|9 +D07|05M21E|GHM|9 +D07|05M23T|GHM|9 +D07|05M23Z|GHM|9 +D07|11C091|GHM|9 +D07|11C092|GHM|9 +D07|11C093|GHM|9 +D07|11C094|GHM|9 +D07|11C09J|GHM|9 +D07|11K07Z|GHM|9 +D09|04C021|GHM|9 +D09|04C022|GHM|9 +D09|04C023|GHM|9 +D09|04C024|GHM|9 +D09|04C02V|GHM|9 +D09|04C02W|GHM|9 +D09|04C031|GHM|9 +D09|04C032|GHM|9 +D09|04C033|GHM|9 +D09|04C034|GHM|9 +D09|04C03V|GHM|9 +D09|04C03W|GHM|9 +D09|04C041|GHM|9 +D09|04C042|GHM|9 +D09|04C043|GHM|9 +D09|04C044|GHM|9 +D09|04K02J|GHM|9 +D09|04M021|GHM|9 +D09|04M022|GHM|9 +D09|04M023|GHM|9 +D09|04M024|GHM|9 +D09|04M02T|GHM|9 +D09|04M02V|GHM|9 +D09|04M02W|GHM|9 +D09|04M031|GHM|9 +D09|04M032|GHM|9 +D09|04M033|GHM|9 +D09|04M034|GHM|9 +D09|04M03T|GHM|9 +D09|04M03V|GHM|9 +D09|04M03W|GHM|9 +D09|04M041|GHM|9 +D09|04M042|GHM|9 +D09|04M043|GHM|9 +D09|04M044|GHM|9 +D09|04M04Z|GHM|9 +D09|04M051|GHM|9 +D09|04M052|GHM|9 +D09|04M053|GHM|9 +D09|04M054|GHM|9 +D09|04M05T|GHM|9 +D09|04M05V|GHM|9 +D09|04M05W|GHM|9 +D09|04M061|GHM|9 +D09|04M062|GHM|9 +D09|04M063|GHM|9 +D09|04M064|GHM|9 +D09|04M06T|GHM|9 +D09|04M06Z|GHM|9 +D09|04M071|GHM|9 +D09|04M072|GHM|9 +D09|04M073|GHM|9 +D09|04M074|GHM|9 +D09|04M07T|GHM|9 +D09|04M07V|GHM|9 +D09|04M07W|GHM|9 +D09|04M081|GHM|9 +D09|04M082|GHM|9 +D09|04M083|GHM|9 +D09|04M084|GHM|9 +D09|04M08T|GHM|9 +D09|04M08V|GHM|9 +D09|04M08W|GHM|9 +D09|04M091|GHM|9 +D09|04M092|GHM|9 +D09|04M093|GHM|9 +D09|04M094|GHM|9 +D09|04M09T|GHM|9 +D09|04M09V|GHM|9 +D09|04M09W|GHM|9 +D09|04M101|GHM|9 +D09|04M102|GHM|9 +D09|04M103|GHM|9 +D09|04M104|GHM|9 +D09|04M10T|GHM|9 +D09|04M10V|GHM|9 +D09|04M10W|GHM|9 +D09|04M111|GHM|9 +D09|04M112|GHM|9 +D09|04M113|GHM|9 +D09|04M114|GHM|9 +D09|04M11V|GHM|9 +D09|04M11W|GHM|9 +D09|04M121|GHM|9 +D09|04M122|GHM|9 +D09|04M123|GHM|9 +D09|04M124|GHM|9 +D09|04M12T|GHM|9 +D09|04M12V|GHM|9 +D09|04M12W|GHM|9 +D09|04M131|GHM|9 +D09|04M132|GHM|9 +D09|04M133|GHM|9 +D09|04M134|GHM|9 +D09|04M13T|GHM|9 +D09|04M13Z|GHM|9 +D09|04M141|GHM|9 +D09|04M142|GHM|9 +D09|04M143|GHM|9 +D09|04M144|GHM|9 +D09|04M14T|GHM|9 +D09|04M14V|GHM|9 +D09|04M14W|GHM|9 +D09|04M151|GHM|9 +D09|04M152|GHM|9 +D09|04M153|GHM|9 +D09|04M154|GHM|9 +D09|04M15T|GHM|9 +D09|04M15V|GHM|9 +D09|04M15W|GHM|9 +D09|04M161|GHM|9 +D09|04M162|GHM|9 +D09|04M163|GHM|9 +D09|04M164|GHM|9 +D09|04M16T|GHM|9 +D09|04M16V|GHM|9 +D09|04M16W|GHM|9 +D09|04M171|GHM|9 +D09|04M172|GHM|9 +D09|04M173|GHM|9 +D09|04M174|GHM|9 +D09|04M17T|GHM|9 +D09|04M17V|GHM|9 +D09|04M17W|GHM|9 +D09|04M181|GHM|9 +D09|04M182|GHM|9 +D09|04M183|GHM|9 +D09|04M184|GHM|9 +D09|04M18T|GHM|9 +D09|04M191|GHM|9 +D09|04M192|GHM|9 +D09|04M193|GHM|9 +D09|04M194|GHM|9 +D09|04M19T|GHM|9 +D09|04M201|GHM|9 +D09|04M202|GHM|9 +D09|04M203|GHM|9 +D09|04M204|GHM|9 +D09|04M20T|GHM|9 +D09|04M211|GHM|9 +D09|04M212|GHM|9 +D09|04M213|GHM|9 +D09|04M214|GHM|9 +D09|04M22Z|GHM|9 +D09|04M23T|GHM|9 +D09|04M23Z|GHM|9 +D09|04M24E|GHM|9 +D09|04M251|GHM|9 +D09|04M252|GHM|9 +D09|04M253|GHM|9 +D09|04M254|GHM|9 +D09|04M25T|GHM|9 +D09|04M261|GHM|9 +D09|04M262|GHM|9 +D09|04M263|GHM|9 +D09|04M264|GHM|9 +D09|04M26T|GHM|9 +D09|04M271|GHM|9 +D09|04M272|GHM|9 +D09|04M273|GHM|9 +D09|04M274|GHM|9 +D10|03C03Z|GHM|9 +D10|03C04Z|GHM|9 +D10|03C051|GHM|9 +D10|03C052|GHM|9 +D10|03C053|GHM|9 +D10|03C054|GHM|9 +D10|03C05T|GHM|9 +D10|03C05Z|GHM|9 +D10|03C061|GHM|9 +D10|03C062|GHM|9 +D10|03C063|GHM|9 +D10|03C064|GHM|9 +D10|03C06J|GHM|9 +D10|03C06Z|GHM|9 +D10|03C071|GHM|9 +D10|03C072|GHM|9 +D10|03C073|GHM|9 +D10|03C074|GHM|9 +D10|03C07J|GHM|9 +D10|03C07V|GHM|9 +D10|03C07W|GHM|9 +D10|03C091|GHM|9 +D10|03C092|GHM|9 +D10|03C093|GHM|9 +D10|03C094|GHM|9 +D10|03C09J|GHM|9 +D10|03C09Z|GHM|9 +D10|03C101|GHM|9 +D10|03C102|GHM|9 +D10|03C103|GHM|9 +D10|03C104|GHM|9 +D10|03C10Z|GHM|9 +D10|03C111|GHM|9 +D10|03C112|GHM|9 +D10|03C113|GHM|9 +D10|03C114|GHM|9 +D10|03C11Z|GHM|9 +D10|03C121|GHM|9 +D10|03C122|GHM|9 +D10|03C123|GHM|9 +D10|03C124|GHM|9 +D10|03C12Z|GHM|9 +D10|03C131|GHM|9 +D10|03C132|GHM|9 +D10|03C133|GHM|9 +D10|03C134|GHM|9 +D10|03C13Z|GHM|9 +D10|03C141|GHM|9 +D10|03C142|GHM|9 +D10|03C143|GHM|9 +D10|03C144|GHM|9 +D10|03C14J|GHM|9 +D10|03C14Z|GHM|9 +D10|03C151|GHM|9 +D10|03C152|GHM|9 +D10|03C153|GHM|9 +D10|03C154|GHM|9 +D10|03C15J|GHM|9 +D10|03C15Z|GHM|9 +D10|03C161|GHM|9 +D10|03C162|GHM|9 +D10|03C163|GHM|9 +D10|03C164|GHM|9 +D10|03C16J|GHM|9 +D10|03C16V|GHM|9 +D10|03C16W|GHM|9 +D10|03C171|GHM|9 +D10|03C172|GHM|9 +D10|03C173|GHM|9 +D10|03C174|GHM|9 +D10|03C17J|GHM|9 +D10|03C17Z|GHM|9 +D10|03C181|GHM|9 +D10|03C182|GHM|9 +D10|03C183|GHM|9 +D10|03C184|GHM|9 +D10|03C18Z|GHM|9 +D10|03C191|GHM|9 +D10|03C192|GHM|9 +D10|03C193|GHM|9 +D10|03C194|GHM|9 +D10|03C19J|GHM|9 +D10|03C19Z|GHM|9 +D10|03C201|GHM|9 +D10|03C202|GHM|9 +D10|03C203|GHM|9 +D10|03C204|GHM|9 +D10|03C20J|GHM|9 +D10|03C20Z|GHM|9 +D10|03C211|GHM|9 +D10|03C212|GHM|9 +D10|03C213|GHM|9 +D10|03C214|GHM|9 +D10|03C21J|GHM|9 +D10|03C21Z|GHM|9 +D10|03C22J|GHM|9 +D10|03C241|GHM|9 +D10|03C242|GHM|9 +D10|03C243|GHM|9 +D10|03C244|GHM|9 +D10|03C24J|GHM|9 +D10|03C251|GHM|9 +D10|03C252|GHM|9 +D10|03C253|GHM|9 +D10|03C254|GHM|9 +D10|03C261|GHM|9 +D10|03C262|GHM|9 +D10|03C263|GHM|9 +D10|03C264|GHM|9 +D10|03C27J|GHM|9 +D10|03C28J|GHM|9 +D10|03C291|GHM|9 +D10|03C292|GHM|9 +D10|03C293|GHM|9 +D10|03C294|GHM|9 +D10|03C29J|GHM|9 +D10|03C301|GHM|9 +D10|03C302|GHM|9 +D10|03C303|GHM|9 +D10|03C304|GHM|9 +D10|03C30J|GHM|9 +D10|03K021|GHM|9 +D10|03K022|GHM|9 +D10|03K023|GHM|9 +D10|03K024|GHM|9 +D10|03K02J|GHM|9 +D10|03K02Z|GHM|9 +D10|03K03J|GHM|9 +D10|03K04J|GHM|9 +D10|03M021|GHM|9 +D10|03M022|GHM|9 +D10|03M023|GHM|9 +D10|03M024|GHM|9 +D10|03M02T|GHM|9 +D10|03M02Z|GHM|9 +D10|03M031|GHM|9 +D10|03M032|GHM|9 +D10|03M033|GHM|9 +D10|03M034|GHM|9 +D10|03M03T|GHM|9 +D10|03M03Z|GHM|9 +D10|03M041|GHM|9 +D10|03M042|GHM|9 +D10|03M043|GHM|9 +D10|03M044|GHM|9 +D10|03M04T|GHM|9 +D10|03M04V|GHM|9 +D10|03M04W|GHM|9 +D10|03M051|GHM|9 +D10|03M052|GHM|9 +D10|03M053|GHM|9 +D10|03M054|GHM|9 +D10|03M05T|GHM|9 +D10|03M05Z|GHM|9 +D10|03M061|GHM|9 +D10|03M062|GHM|9 +D10|03M063|GHM|9 +D10|03M064|GHM|9 +D10|03M06T|GHM|9 +D10|03M06Z|GHM|9 +D10|03M071|GHM|9 +D10|03M072|GHM|9 +D10|03M073|GHM|9 +D10|03M074|GHM|9 +D10|03M07T|GHM|9 +D10|03M07V|GHM|9 +D10|03M07W|GHM|9 +D10|03M081|GHM|9 +D10|03M082|GHM|9 +D10|03M083|GHM|9 +D10|03M084|GHM|9 +D10|03M08T|GHM|9 +D10|03M08Z|GHM|9 +D10|03M091|GHM|9 +D10|03M092|GHM|9 +D10|03M093|GHM|9 +D10|03M094|GHM|9 +D10|03M09T|GHM|9 +D10|03M09V|GHM|9 +D10|03M09W|GHM|9 +D10|03M101|GHM|9 +D10|03M102|GHM|9 +D10|03M103|GHM|9 +D10|03M104|GHM|9 +D10|03M10T|GHM|9 +D10|03M10Z|GHM|9 +D10|03M111|GHM|9 +D10|03M112|GHM|9 +D10|03M113|GHM|9 +D10|03M114|GHM|9 +D10|03M11T|GHM|9 +D10|03M11V|GHM|9 +D10|03M11W|GHM|9 +D10|03M121|GHM|9 +D10|03M122|GHM|9 +D10|03M123|GHM|9 +D10|03M124|GHM|9 +D10|03M131|GHM|9 +D10|03M132|GHM|9 +D10|03M133|GHM|9 +D10|03M134|GHM|9 +D10|03M14Z|GHM|9 +D10|03M15T|GHM|9 +D10|03M15Z|GHM|9 +D10|08C281|GHM|9 +D10|08C282|GHM|9 +D10|08C283|GHM|9 +D10|08C284|GHM|9 +D10|08C28J|GHM|9 +D10|08C28Z|GHM|9 +D11|02C021|GHM|9 +D11|02C022|GHM|9 +D11|02C023|GHM|9 +D11|02C024|GHM|9 +D11|02C02J|GHM|9 +D11|02C02V|GHM|9 +D11|02C02W|GHM|9 +D11|02C031|GHM|9 +D11|02C032|GHM|9 +D11|02C033|GHM|9 +D11|02C034|GHM|9 +D11|02C03J|GHM|9 +D11|02C03Z|GHM|9 +D11|02C04Z|GHM|9 +D11|02C051|GHM|9 +D11|02C052|GHM|9 +D11|02C053|GHM|9 +D11|02C054|GHM|9 +D11|02C05J|GHM|9 +D11|02C05Z|GHM|9 +D11|02C061|GHM|9 +D11|02C062|GHM|9 +D11|02C063|GHM|9 +D11|02C064|GHM|9 +D11|02C06J|GHM|9 +D11|02C06Z|GHM|9 +D11|02C071|GHM|9 +D11|02C072|GHM|9 +D11|02C073|GHM|9 +D11|02C074|GHM|9 +D11|02C07J|GHM|9 +D11|02C07Z|GHM|9 +D11|02C081|GHM|9 +D11|02C082|GHM|9 +D11|02C083|GHM|9 +D11|02C084|GHM|9 +D11|02C08J|GHM|9 +D11|02C08V|GHM|9 +D11|02C08W|GHM|9 +D11|02C091|GHM|9 +D11|02C092|GHM|9 +D11|02C093|GHM|9 +D11|02C094|GHM|9 +D11|02C09J|GHM|9 +D11|02C09Z|GHM|9 +D11|02C101|GHM|9 +D11|02C102|GHM|9 +D11|02C103|GHM|9 +D11|02C104|GHM|9 +D11|02C10J|GHM|9 +D11|02C111|GHM|9 +D11|02C112|GHM|9 +D11|02C113|GHM|9 +D11|02C114|GHM|9 +D11|02C11J|GHM|9 +D11|02C121|GHM|9 +D11|02C122|GHM|9 +D11|02C123|GHM|9 +D11|02C124|GHM|9 +D11|02C12J|GHM|9 +D11|02C131|GHM|9 +D11|02C132|GHM|9 +D11|02C133|GHM|9 +D11|02C134|GHM|9 +D11|02C13J|GHM|9 +D11|02M021|GHM|9 +D11|02M022|GHM|9 +D11|02M023|GHM|9 +D11|02M024|GHM|9 +D11|02M02Z|GHM|9 +D11|02M031|GHM|9 +D11|02M032|GHM|9 +D11|02M033|GHM|9 +D11|02M034|GHM|9 +D11|02M03Z|GHM|9 +D11|02M041|GHM|9 +D11|02M042|GHM|9 +D11|02M043|GHM|9 +D11|02M044|GHM|9 +D11|02M04T|GHM|9 +D11|02M04Z|GHM|9 +D11|02M051|GHM|9 +D11|02M052|GHM|9 +D11|02M053|GHM|9 +D11|02M054|GHM|9 +D11|02M05T|GHM|9 +D11|02M05Z|GHM|9 +D11|02M071|GHM|9 +D11|02M072|GHM|9 +D11|02M073|GHM|9 +D11|02M074|GHM|9 +D11|02M07T|GHM|9 +D11|02M081|GHM|9 +D11|02M082|GHM|9 +D11|02M083|GHM|9 +D11|02M084|GHM|9 +D11|02M08T|GHM|9 +D11|02M09Z|GHM|9 +D11|02M10T|GHM|9 +D11|02M10Z|GHM|9 +D12|09C041|GHM|9 +D12|09C042|GHM|9 +D12|09C043|GHM|9 +D12|09C044|GHM|9 +D12|09C04V|GHM|9 +D12|09C04W|GHM|9 +D12|09C051|GHM|9 +D12|09C052|GHM|9 +D12|09C053|GHM|9 +D12|09C054|GHM|9 +D12|09C05J|GHM|9 +D12|09C05V|GHM|9 +D12|09C05W|GHM|9 +D12|09C061|GHM|9 +D12|09C062|GHM|9 +D12|09C063|GHM|9 +D12|09C064|GHM|9 +D12|09C06T|GHM|9 +D12|09C06Z|GHM|9 +D12|09C071|GHM|9 +D12|09C072|GHM|9 +D12|09C073|GHM|9 +D12|09C074|GHM|9 +D12|09C07J|GHM|9 +D12|09C07Z|GHM|9 +D12|09C111|GHM|9 +D12|09C112|GHM|9 +D12|09C113|GHM|9 +D12|09C114|GHM|9 +D12|09M091|GHM|9 +D12|09M092|GHM|9 +D12|09M093|GHM|9 +D12|09M094|GHM|9 +D12|09M09T|GHM|9 +D12|09M09Z|GHM|9 +D12|09M101|GHM|9 +D12|09M102|GHM|9 +D12|09M103|GHM|9 +D12|09M104|GHM|9 +D12|09M10T|GHM|9 +D12|09M10V|GHM|9 +D12|09M10W|GHM|9 +D12|09M13Z|GHM|9 +D12|09M15Z|GHM|9 +D12|13C031|GHM|9 +D12|13C032|GHM|9 +D12|13C033|GHM|9 +D12|13C034|GHM|9 +D12|13C03V|GHM|9 +D12|13C03W|GHM|9 +D12|13C041|GHM|9 +D12|13C042|GHM|9 +D12|13C043|GHM|9 +D12|13C044|GHM|9 +D12|13C04J|GHM|9 +D12|13C04V|GHM|9 +D12|13C04W|GHM|9 +D12|13C051|GHM|9 +D12|13C052|GHM|9 +D12|13C053|GHM|9 +D12|13C054|GHM|9 +D12|13C05Z|GHM|9 +D12|13C061|GHM|9 +D12|13C062|GHM|9 +D12|13C063|GHM|9 +D12|13C064|GHM|9 +D12|13C06J|GHM|9 +D12|13C06Z|GHM|9 +D12|13C071|GHM|9 +D12|13C072|GHM|9 +D12|13C073|GHM|9 +D12|13C074|GHM|9 +D12|13C07J|GHM|9 +D12|13C07V|GHM|9 +D12|13C07W|GHM|9 +D12|13C081|GHM|9 +D12|13C082|GHM|9 +D12|13C083|GHM|9 +D12|13C084|GHM|9 +D12|13C08J|GHM|9 +D12|13C08V|GHM|9 +D12|13C08W|GHM|9 +D12|13C091|GHM|9 +D12|13C092|GHM|9 +D12|13C093|GHM|9 +D12|13C094|GHM|9 +D12|13C09J|GHM|9 +D12|13C09T|GHM|9 +D12|13C09Z|GHM|9 +D12|13C101|GHM|9 +D12|13C102|GHM|9 +D12|13C103|GHM|9 +D12|13C104|GHM|9 +D12|13C10J|GHM|9 +D12|13C10T|GHM|9 +D12|13C10Z|GHM|9 +D12|13C111|GHM|9 +D12|13C112|GHM|9 +D12|13C113|GHM|9 +D12|13C114|GHM|9 +D12|13C11J|GHM|9 +D12|13C11Z|GHM|9 +D12|13C121|GHM|9 +D12|13C122|GHM|9 +D12|13C123|GHM|9 +D12|13C124|GHM|9 +D12|13C12J|GHM|9 +D12|13C12Z|GHM|9 +D12|13C131|GHM|9 +D12|13C132|GHM|9 +D12|13C133|GHM|9 +D12|13C134|GHM|9 +D12|13C13T|GHM|9 +D12|13C13Z|GHM|9 +D12|13C141|GHM|9 +D12|13C142|GHM|9 +D12|13C143|GHM|9 +D12|13C144|GHM|9 +D12|13C14V|GHM|9 +D12|13C14W|GHM|9 +D12|13C151|GHM|9 +D12|13C152|GHM|9 +D12|13C153|GHM|9 +D12|13C154|GHM|9 +D12|13C15V|GHM|9 +D12|13C15W|GHM|9 +D12|13C16J|GHM|9 +D12|13C171|GHM|9 +D12|13C172|GHM|9 +D12|13C173|GHM|9 +D12|13C174|GHM|9 +D12|13C17J|GHM|9 +D12|13C181|GHM|9 +D12|13C182|GHM|9 +D12|13C183|GHM|9 +D12|13C184|GHM|9 +D12|13C191|GHM|9 +D12|13C192|GHM|9 +D12|13C193|GHM|9 +D12|13C194|GHM|9 +D12|13C19J|GHM|9 +D12|13C201|GHM|9 +D12|13C202|GHM|9 +D12|13C203|GHM|9 +D12|13C204|GHM|9 +D12|13C20J|GHM|9 +D12|13M02Z|GHM|9 +D12|13M031|GHM|9 +D12|13M032|GHM|9 +D12|13M033|GHM|9 +D12|13M034|GHM|9 +D12|13M03T|GHM|9 +D12|13M03V|GHM|9 +D12|13M03W|GHM|9 +D12|13M041|GHM|9 +D12|13M042|GHM|9 +D12|13M043|GHM|9 +D12|13M044|GHM|9 +D12|13M04T|GHM|9 +D12|13M04V|GHM|9 +D12|13M04W|GHM|9 +D12|13M051|GHM|9 +D12|13M052|GHM|9 +D12|13M053|GHM|9 +D12|13M054|GHM|9 +D12|13M061|GHM|9 +D12|13M062|GHM|9 +D12|13M063|GHM|9 +D12|13M064|GHM|9 +D12|13M06T|GHM|9 +D12|13M071|GHM|9 +D12|13M072|GHM|9 +D12|13M073|GHM|9 +D12|13M074|GHM|9 +D12|13M081|GHM|9 +D12|13M082|GHM|9 +D12|13M083|GHM|9 +D12|13M084|GHM|9 +D12|13M09Z|GHM|9 +D12|13M10Z|GHM|9 +D13|14C02A|GHM|9 +D13|14C02B|GHM|9 +D13|14C02C|GHM|9 +D13|14C03A|GHM|9 +D13|14C03B|GHM|9 +D13|14C03C|GHM|9 +D13|14C03D|GHM|9 +D13|14C03Z|GHM|9 +D13|14C04T|GHM|9 +D13|14C04Z|GHM|9 +D13|14C05J|GHM|9 +D13|14C05Z|GHM|9 +D13|14C06A|GHM|9 +D13|14C06B|GHM|9 +D13|14C06C|GHM|9 +D13|14C06D|GHM|9 +D13|14C07A|GHM|9 +D13|14C07B|GHM|9 +D13|14C07C|GHM|9 +D13|14C07D|GHM|9 +D13|14C08A|GHM|9 +D13|14C08B|GHM|9 +D13|14C08C|GHM|9 +D13|14C08D|GHM|9 +D13|14C09A|GHM|9 +D13|14C09B|GHM|9 +D13|14C10T|GHM|9 +D13|14C10Z|GHM|9 +D13|14M02A|GHM|9 +D13|14M02B|GHM|9 +D13|14M02T|GHM|9 +D13|14M02Z|GHM|9 +D13|14M03A|GHM|9 +D13|14M03B|GHM|9 +D13|14M03C|GHM|9 +D13|14M03D|GHM|9 +D13|14M03T|GHM|9 +D13|14Z02A|GHM|9 +D13|14Z02B|GHM|9 +D13|14Z02C|GHM|9 +D13|14Z02T|GHM|9 +D13|14Z03A|GHM|9 +D13|14Z03B|GHM|9 +D13|14Z03T|GHM|9 +D13|14Z04T|GHM|9 +D13|14Z04Z|GHM|9 +D13|14Z05Z|GHM|9 +D13|14Z06T|GHM|9 +D13|14Z06Z|GHM|9 +D13|14Z07Z|GHM|9 +D13|14Z08Z|GHM|9 +D13|14Z09Z|GHM|9 +D13|14Z10A|GHM|9 +D13|14Z10B|GHM|9 +D13|14Z10T|GHM|9 +D13|14Z11A|GHM|9 +D13|14Z11B|GHM|9 +D13|14Z12A|GHM|9 +D13|14Z12B|GHM|9 +D13|14Z13A|GHM|9 +D13|14Z13B|GHM|9 +D13|14Z13C|GHM|9 +D13|14Z13D|GHM|9 +D13|14Z13T|GHM|9 +D13|14Z14A|GHM|9 +D13|14Z14B|GHM|9 +D13|14Z14C|GHM|9 +D13|14Z14D|GHM|9 +D13|14Z14T|GHM|9 +D13|14Z15Z|GHM|9 +D13|14Z16T|GHM|9 +D13|14Z16Z|GHM|9 +D14|15C02A|GHM|9 +D14|15C02B|GHM|9 +D14|15C02Z|GHM|9 +D14|15C03A|GHM|9 +D14|15C03B|GHM|9 +D14|15C03Z|GHM|9 +D14|15C04A|GHM|9 +D14|15C04B|GHM|9 +D14|15C04Z|GHM|9 +D14|15C05A|GHM|9 +D14|15C05B|GHM|9 +D14|15C05Z|GHM|9 +D14|15C06A|GHM|9 +D14|15C06B|GHM|9 +D14|15C06Z|GHM|9 +D14|15M02Z|GHM|9 +D14|15M03E|GHM|9 +D14|15M04E|GHM|9 +D14|15M05A|GHM|9 +D14|15M05B|GHM|9 +D14|15M05C|GHM|9 +D14|15M05D|GHM|9 +D14|15M06A|GHM|9 +D14|15M06B|GHM|9 +D14|15M06C|GHM|9 +D14|15M06D|GHM|9 +D14|15M07A|GHM|9 +D14|15M07B|GHM|9 +D14|15M07C|GHM|9 +D14|15M08A|GHM|9 +D14|15M08B|GHM|9 +D14|15M08C|GHM|9 +D14|15M09A|GHM|9 +D14|15M09B|GHM|9 +D14|15M09C|GHM|9 +D14|15M10A|GHM|9 +D14|15M10B|GHM|9 +D14|15M10C|GHM|9 +D14|15M11A|GHM|9 +D14|15M11B|GHM|9 +D14|15M11C|GHM|9 +D14|15M12A|GHM|9 +D14|15M12B|GHM|9 +D14|15M13A|GHM|9 +D14|15M13B|GHM|9 +D14|15M14A|GHM|9 +D14|15M14B|GHM|9 +D14|15Z02T|GHM|9 +D14|15Z02Z|GHM|9 +D14|15Z03Z|GHM|9 +D14|15Z04E|GHM|9 +D14|15Z05A|GHM|9 +D14|15Z05B|GHM|9 +D14|15Z05C|GHM|9 +D14|15Z05D|GHM|9 +D14|15Z06A|GHM|9 +D14|15Z06B|GHM|9 +D14|15Z06C|GHM|9 +D14|15Z06D|GHM|9 +D14|15Z07A|GHM|9 +D14|15Z07B|GHM|9 +D14|15Z07C|GHM|9 +D14|15Z08A|GHM|9 +D14|15Z08E|GHM|9 +D14|15Z08Z|GHM|9 +D14|15Z09A|GHM|9 +D14|15Z09E|GHM|9 +D14|15Z09Z|GHM|9 +D14|15Z10E|GHM|9 +D15|10C031|GHM|9 +D15|10C032|GHM|9 +D15|10C033|GHM|9 +D15|10C034|GHM|9 +D15|10C03Z|GHM|9 +D15|11C021|GHM|9 +D15|11C022|GHM|9 +D15|11C023|GHM|9 +D15|11C024|GHM|9 +D15|11C02V|GHM|9 +D15|11C02W|GHM|9 +D15|11C031|GHM|9 +D15|11C032|GHM|9 +D15|11C033|GHM|9 +D15|11C034|GHM|9 +D15|11C03V|GHM|9 +D15|11C03W|GHM|9 +D15|11C041|GHM|9 +D15|11C042|GHM|9 +D15|11C043|GHM|9 +D15|11C044|GHM|9 +D15|11C04J|GHM|9 +D15|11C04Z|GHM|9 +D15|11C051|GHM|9 +D15|11C052|GHM|9 +D15|11C053|GHM|9 +D15|11C054|GHM|9 +D15|11C05J|GHM|9 +D15|11C05V|GHM|9 +D15|11C05W|GHM|9 +D15|11C061|GHM|9 +D15|11C062|GHM|9 +D15|11C063|GHM|9 +D15|11C064|GHM|9 +D15|11C06Z|GHM|9 +D15|11C071|GHM|9 +D15|11C072|GHM|9 +D15|11C073|GHM|9 +D15|11C074|GHM|9 +D15|11C07J|GHM|9 +D15|11C07Z|GHM|9 +D15|11C081|GHM|9 +D15|11C082|GHM|9 +D15|11C083|GHM|9 +D15|11C084|GHM|9 +D15|11C08T|GHM|9 +D15|11C08V|GHM|9 +D15|11C08W|GHM|9 +D15|11C101|GHM|9 +D15|11C102|GHM|9 +D15|11C103|GHM|9 +D15|11C104|GHM|9 +D15|11C10J|GHM|9 +D15|11C111|GHM|9 +D15|11C112|GHM|9 +D15|11C113|GHM|9 +D15|11C114|GHM|9 +D15|11C11J|GHM|9 +D15|11C121|GHM|9 +D15|11C122|GHM|9 +D15|11C123|GHM|9 +D15|11C124|GHM|9 +D15|11C12J|GHM|9 +D15|11C131|GHM|9 +D15|11C132|GHM|9 +D15|11C133|GHM|9 +D15|11C134|GHM|9 +D15|11C13J|GHM|9 +D15|11K021|GHM|9 +D15|11K022|GHM|9 +D15|11K023|GHM|9 +D15|11K024|GHM|9 +D15|11K02J|GHM|9 +D15|11K02V|GHM|9 +D15|11K02W|GHM|9 +D15|11K03Z|GHM|9 +D15|11K04Z|GHM|9 +D15|11K05Z|GHM|9 +D15|11K06Z|GHM|9 +D15|11K08J|GHM|9 +D15|11M021|GHM|9 +D15|11M022|GHM|9 +D15|11M023|GHM|9 +D15|11M024|GHM|9 +D15|11M02T|GHM|9 +D15|11M02V|GHM|9 +D15|11M02W|GHM|9 +D15|11M031|GHM|9 +D15|11M032|GHM|9 +D15|11M033|GHM|9 +D15|11M034|GHM|9 +D15|11M03T|GHM|9 +D15|11M03V|GHM|9 +D15|11M03W|GHM|9 +D15|11M041|GHM|9 +D15|11M042|GHM|9 +D15|11M043|GHM|9 +D15|11M044|GHM|9 +D15|11M04T|GHM|9 +D15|11M04V|GHM|9 +D15|11M04W|GHM|9 +D15|11M061|GHM|9 +D15|11M062|GHM|9 +D15|11M063|GHM|9 +D15|11M064|GHM|9 +D15|11M06T|GHM|9 +D15|11M06V|GHM|9 +D15|11M06W|GHM|9 +D15|11M071|GHM|9 +D15|11M072|GHM|9 +D15|11M073|GHM|9 +D15|11M074|GHM|9 +D15|11M07T|GHM|9 +D15|11M07V|GHM|9 +D15|11M07W|GHM|9 +D15|11M081|GHM|9 +D15|11M082|GHM|9 +D15|11M083|GHM|9 +D15|11M084|GHM|9 +D15|11M08T|GHM|9 +D15|11M08Z|GHM|9 +D15|11M101|GHM|9 +D15|11M102|GHM|9 +D15|11M103|GHM|9 +D15|11M104|GHM|9 +D15|11M10T|GHM|9 +D15|11M10V|GHM|9 +D15|11M10W|GHM|9 +D15|11M111|GHM|9 +D15|11M112|GHM|9 +D15|11M113|GHM|9 +D15|11M114|GHM|9 +D15|11M11Z|GHM|9 +D15|11M121|GHM|9 +D15|11M122|GHM|9 +D15|11M123|GHM|9 +D15|11M124|GHM|9 +D15|11M12T|GHM|9 +D15|11M12V|GHM|9 +D15|11M12W|GHM|9 +D15|11M151|GHM|9 +D15|11M152|GHM|9 +D15|11M153|GHM|9 +D15|11M154|GHM|9 +D15|11M15T|GHM|9 +D15|11M161|GHM|9 +D15|11M162|GHM|9 +D15|11M163|GHM|9 +D15|11M164|GHM|9 +D15|11M16T|GHM|9 +D15|11M171|GHM|9 +D15|11M172|GHM|9 +D15|11M173|GHM|9 +D15|11M174|GHM|9 +D15|11M18Z|GHM|9 +D15|11M19T|GHM|9 +D15|11M19Z|GHM|9 +D15|11M201|GHM|9 +D15|11M202|GHM|9 +D15|11M203|GHM|9 +D15|11M204|GHM|9 +D15|12C02Z|GHM|9 +D15|12C031|GHM|9 +D15|12C032|GHM|9 +D15|12C033|GHM|9 +D15|12C034|GHM|9 +D15|12C03J|GHM|9 +D15|12C03Z|GHM|9 +D15|12C041|GHM|9 +D15|12C042|GHM|9 +D15|12C043|GHM|9 +D15|12C044|GHM|9 +D15|12C04J|GHM|9 +D15|12C04V|GHM|9 +D15|12C04W|GHM|9 +D15|12C051|GHM|9 +D15|12C052|GHM|9 +D15|12C053|GHM|9 +D15|12C054|GHM|9 +D15|12C05Z|GHM|9 +D15|12C061|GHM|9 +D15|12C062|GHM|9 +D15|12C063|GHM|9 +D15|12C064|GHM|9 +D15|12C06J|GHM|9 +D15|12C06Z|GHM|9 +D15|12C071|GHM|9 +D15|12C072|GHM|9 +D15|12C073|GHM|9 +D15|12C074|GHM|9 +D15|12C07J|GHM|9 +D15|12C07Z|GHM|9 +D15|12C081|GHM|9 +D15|12C082|GHM|9 +D15|12C083|GHM|9 +D15|12C084|GHM|9 +D15|12C08J|GHM|9 +D15|12C08Z|GHM|9 +D15|12C091|GHM|9 +D15|12C092|GHM|9 +D15|12C093|GHM|9 +D15|12C094|GHM|9 +D15|12C09Z|GHM|9 +D15|12C101|GHM|9 +D15|12C102|GHM|9 +D15|12C103|GHM|9 +D15|12C104|GHM|9 +D15|12C10Z|GHM|9 +D15|12C111|GHM|9 +D15|12C112|GHM|9 +D15|12C113|GHM|9 +D15|12C114|GHM|9 +D15|12C11Z|GHM|9 +D15|12C121|GHM|9 +D15|12C122|GHM|9 +D15|12C123|GHM|9 +D15|12C124|GHM|9 +D15|12C12Z|GHM|9 +D15|12C131|GHM|9 +D15|12C132|GHM|9 +D15|12C133|GHM|9 +D15|12C134|GHM|9 +D15|12C13J|GHM|9 +D15|12K02Z|GHM|9 +D15|12K03Z|GHM|9 +D15|12K06J|GHM|9 +D15|12M031|GHM|9 +D15|12M032|GHM|9 +D15|12M033|GHM|9 +D15|12M034|GHM|9 +D15|12M03T|GHM|9 +D15|12M03V|GHM|9 +D15|12M03W|GHM|9 +D15|12M041|GHM|9 +D15|12M042|GHM|9 +D15|12M043|GHM|9 +D15|12M044|GHM|9 +D15|12M04T|GHM|9 +D15|12M04V|GHM|9 +D15|12M04W|GHM|9 +D15|12M051|GHM|9 +D15|12M052|GHM|9 +D15|12M053|GHM|9 +D15|12M054|GHM|9 +D15|12M05T|GHM|9 +D15|12M05Z|GHM|9 +D15|12M061|GHM|9 +D15|12M062|GHM|9 +D15|12M063|GHM|9 +D15|12M064|GHM|9 +D15|12M06T|GHM|9 +D15|12M071|GHM|9 +D15|12M072|GHM|9 +D15|12M073|GHM|9 +D15|12M074|GHM|9 +D15|12M07T|GHM|9 +D15|12M08Z|GHM|9 +D15|12M09Z|GHM|9 +D15|13K02Z|GHM|9 +D15|13K03Z|GHM|9 +D15|13K04Z|GHM|9 +D15|13K05Z|GHM|9 +D15|13K06J|GHM|9 +D16|16C031|GHM|9 +D16|16C032|GHM|9 +D16|16C033|GHM|9 +D16|16C034|GHM|9 +D16|16C03J|GHM|9 +D16|16C03V|GHM|9 +D16|16C03W|GHM|9 +D16|16M061|GHM|9 +D16|16M062|GHM|9 +D16|16M063|GHM|9 +D16|16M064|GHM|9 +D16|16M06T|GHM|9 +D16|16M071|GHM|9 +D16|16M072|GHM|9 +D16|16M073|GHM|9 +D16|16M074|GHM|9 +D16|16M081|GHM|9 +D16|16M082|GHM|9 +D16|16M083|GHM|9 +D16|16M084|GHM|9 +D16|16M091|GHM|9 +D16|16M092|GHM|9 +D16|16M093|GHM|9 +D16|16M094|GHM|9 +D16|16M09T|GHM|9 +D16|16M101|GHM|9 +D16|16M102|GHM|9 +D16|16M103|GHM|9 +D16|16M104|GHM|9 +D16|16M10T|GHM|9 +D16|16M111|GHM|9 +D16|16M112|GHM|9 +D16|16M113|GHM|9 +D16|16M114|GHM|9 +D16|16M11T|GHM|9 +D16|16M121|GHM|9 +D16|16M122|GHM|9 +D16|16M123|GHM|9 +D16|16M124|GHM|9 +D16|16M12T|GHM|9 +D16|16M131|GHM|9 +D16|16M132|GHM|9 +D16|16M133|GHM|9 +D16|16M134|GHM|9 +D16|16M13T|GHM|9 +D16|16M14Z|GHM|9 +D16|16M15T|GHM|9 +D16|16M15Z|GHM|9 +D16|16M161|GHM|9 +D16|16M162|GHM|9 +D16|16M163|GHM|9 +D16|16M164|GHM|9 +D16|16M16T|GHM|9 +D16|16M171|GHM|9 +D16|16M172|GHM|9 +D16|16M173|GHM|9 +D16|16M174|GHM|9 +D16|16M17T|GHM|9 +D16|16M181|GHM|9 +D16|16M182|GHM|9 +D16|16M183|GHM|9 +D16|16M184|GHM|9 +D16|17C021|GHM|9 +D16|17C022|GHM|9 +D16|17C023|GHM|9 +D16|17C024|GHM|9 +D16|17C02V|GHM|9 +D16|17C02W|GHM|9 +D16|17C031|GHM|9 +D16|17C032|GHM|9 +D16|17C033|GHM|9 +D16|17C034|GHM|9 +D16|17C03J|GHM|9 +D16|17C03V|GHM|9 +D16|17C03W|GHM|9 +D16|17C041|GHM|9 +D16|17C042|GHM|9 +D16|17C043|GHM|9 +D16|17C044|GHM|9 +D16|17C04V|GHM|9 +D16|17C04W|GHM|9 +D16|17C051|GHM|9 +D16|17C052|GHM|9 +D16|17C053|GHM|9 +D16|17C054|GHM|9 +D16|17C05J|GHM|9 +D16|17C05V|GHM|9 +D16|17C05W|GHM|9 +D16|17C061|GHM|9 +D16|17C062|GHM|9 +D16|17C063|GHM|9 +D16|17C064|GHM|9 +D16|17C071|GHM|9 +D16|17C072|GHM|9 +D16|17C073|GHM|9 +D16|17C074|GHM|9 +D16|17C081|GHM|9 +D16|17C082|GHM|9 +D16|17C083|GHM|9 +D16|17C084|GHM|9 +D16|17C08J|GHM|9 +D16|17M071|GHM|9 +D16|17M072|GHM|9 +D16|17M073|GHM|9 +D16|17M074|GHM|9 +D16|17M07T|GHM|9 +D16|17M07V|GHM|9 +D16|17M07W|GHM|9 +D16|17M081|GHM|9 +D16|17M082|GHM|9 +D16|17M083|GHM|9 +D16|17M084|GHM|9 +D16|17M08T|GHM|9 +D16|17M08Z|GHM|9 +D16|17M091|GHM|9 +D16|17M092|GHM|9 +D16|17M093|GHM|9 +D16|17M094|GHM|9 +D16|17M09T|GHM|9 +D16|17M09V|GHM|9 +D16|17M09W|GHM|9 +D16|17M111|GHM|9 +D16|17M112|GHM|9 +D16|17M113|GHM|9 +D16|17M114|GHM|9 +D16|17M11T|GHM|9 +D16|17M121|GHM|9 +D16|17M122|GHM|9 +D16|17M123|GHM|9 +D16|17M124|GHM|9 +D16|17M12T|GHM|9 +D16|17M131|GHM|9 +D16|17M132|GHM|9 +D16|17M133|GHM|9 +D16|17M134|GHM|9 +D16|17M13T|GHM|9 +D16|17M14Z|GHM|9 +D16|17M151|GHM|9 +D16|17M152|GHM|9 +D16|17M153|GHM|9 +D16|17M154|GHM|9 +D16|17M15T|GHM|9 +D16|17M161|GHM|9 +D16|17M162|GHM|9 +D16|17M163|GHM|9 +D16|17M164|GHM|9 +D16|17M16T|GHM|9 +D16|17M171|GHM|9 +D16|17M172|GHM|9 +D16|17M173|GHM|9 +D16|17M174|GHM|9 +D16|17M17T|GHM|9 +D16|27Z021|GHM|9 +D16|27Z022|GHM|9 +D16|27Z023|GHM|9 +D16|27Z024|GHM|9 +D16|27Z02Z|GHM|9 +D16|27Z03Z|GHM|9 +D16|27Z04J|GHM|9 +D17|17K02Z|GHM|9 +D17|17K03Z|GHM|9 +D17|17K041|GHM|9 +D17|17K042|GHM|9 +D17|17K043|GHM|9 +D17|17K044|GHM|9 +D17|17K04Z|GHM|9 +D17|17K051|GHM|9 +D17|17K052|GHM|9 +D17|17K053|GHM|9 +D17|17K054|GHM|9 +D17|17K05Z|GHM|9 +D17|17K061|GHM|9 +D17|17K062|GHM|9 +D17|17K063|GHM|9 +D17|17K064|GHM|9 +D17|17K06Z|GHM|9 +D17|17K081|GHM|9 +D17|17K082|GHM|9 +D17|17K083|GHM|9 +D17|17K084|GHM|9 +D17|17K091|GHM|9 +D17|17K092|GHM|9 +D17|17K093|GHM|9 +D17|17K094|GHM|9 +D17|17M02Z|GHM|9 +D17|17M04Z|GHM|9 +D17|17M051|GHM|9 +D17|17M052|GHM|9 +D17|17M053|GHM|9 +D17|17M054|GHM|9 +D17|17M05Z|GHM|9 +D17|17M061|GHM|9 +D17|17M062|GHM|9 +D17|17M063|GHM|9 +D17|17M064|GHM|9 +D17|17M06T|GHM|9 +D17|17M06V|GHM|9 +D17|17M06W|GHM|9 +D17|23M091|GHM|9 +D17|23M092|GHM|9 +D17|23M093|GHM|9 +D17|23M094|GHM|9 +D18|18M021|GHM|9 +D18|18M022|GHM|9 +D18|18M023|GHM|9 +D18|18M024|GHM|9 +D18|18M02V|GHM|9 +D18|18M02W|GHM|9 +D18|18M031|GHM|9 +D18|18M032|GHM|9 +D18|18M033|GHM|9 +D18|18M034|GHM|9 +D18|18M03T|GHM|9 +D18|18M03Z|GHM|9 +D18|18M041|GHM|9 +D18|18M042|GHM|9 +D18|18M043|GHM|9 +D18|18M044|GHM|9 +D18|18M04T|GHM|9 +D18|18M04V|GHM|9 +D18|18M04W|GHM|9 +D18|18M061|GHM|9 +D18|18M062|GHM|9 +D18|18M063|GHM|9 +D18|18M064|GHM|9 +D18|18M06Z|GHM|9 +D18|18M071|GHM|9 +D18|18M072|GHM|9 +D18|18M073|GHM|9 +D18|18M074|GHM|9 +D18|18M07T|GHM|9 +D18|18M07V|GHM|9 +D18|18M07W|GHM|9 +D18|18M091|GHM|9 +D18|18M092|GHM|9 +D18|18M093|GHM|9 +D18|18M094|GHM|9 +D18|18M09T|GHM|9 +D18|18M101|GHM|9 +D18|18M102|GHM|9 +D18|18M103|GHM|9 +D18|18M104|GHM|9 +D18|18M10T|GHM|9 +D18|18M111|GHM|9 +D18|18M112|GHM|9 +D18|18M113|GHM|9 +D18|18M114|GHM|9 +D18|18M11T|GHM|9 +D18|18M12Z|GHM|9 +D18|18M13E|GHM|9 +D18|18M14T|GHM|9 +D18|18M14Z|GHM|9 +D18|18M151|GHM|9 +D18|18M152|GHM|9 +D18|18M153|GHM|9 +D18|18M154|GHM|9 +D18|23M07J|GHM|9 +D18|25M02A|GHM|9 +D18|25M02B|GHM|9 +D18|25M02C|GHM|9 +D18|25M02T|GHM|9 +D18|25Z02E|GHM|9 +D18|25Z031|GHM|9 +D18|25Z032|GHM|9 +D18|25Z033|GHM|9 +D18|25Z034|GHM|9 +D18|25Z03Z|GHM|9 +D19|10C051|GHM|9 +D19|10C052|GHM|9 +D19|10C053|GHM|9 +D19|10C054|GHM|9 +D19|10C05Z|GHM|9 +D19|10C071|GHM|9 +D19|10C072|GHM|9 +D19|10C073|GHM|9 +D19|10C074|GHM|9 +D19|10C07Z|GHM|9 +D19|10C101|GHM|9 +D19|10C102|GHM|9 +D19|10C103|GHM|9 +D19|10C104|GHM|9 +D19|10C10Z|GHM|9 +D19|10C111|GHM|9 +D19|10C112|GHM|9 +D19|10C113|GHM|9 +D19|10C114|GHM|9 +D19|10C11V|GHM|9 +D19|10C11W|GHM|9 +D19|10C121|GHM|9 +D19|10C122|GHM|9 +D19|10C123|GHM|9 +D19|10C124|GHM|9 +D19|10C12V|GHM|9 +D19|10C12W|GHM|9 +D19|10M021|GHM|9 +D19|10M022|GHM|9 +D19|10M023|GHM|9 +D19|10M024|GHM|9 +D19|10M02T|GHM|9 +D19|10M02V|GHM|9 +D19|10M02W|GHM|9 +D19|10M031|GHM|9 +D19|10M032|GHM|9 +D19|10M033|GHM|9 +D19|10M034|GHM|9 +D19|10M03T|GHM|9 +D19|10M03Z|GHM|9 +D19|10M06Z|GHM|9 +D19|10M071|GHM|9 +D19|10M072|GHM|9 +D19|10M073|GHM|9 +D19|10M074|GHM|9 +D19|10M07T|GHM|9 +D19|10M07V|GHM|9 +D19|10M07W|GHM|9 +D19|10M081|GHM|9 +D19|10M082|GHM|9 +D19|10M083|GHM|9 +D19|10M084|GHM|9 +D19|10M08T|GHM|9 +D19|10M091|GHM|9 +D19|10M092|GHM|9 +D19|10M093|GHM|9 +D19|10M094|GHM|9 +D19|10M09T|GHM|9 +D19|10M101|GHM|9 +D19|10M102|GHM|9 +D19|10M103|GHM|9 +D19|10M104|GHM|9 +D19|10M10T|GHM|9 +D19|10M111|GHM|9 +D19|10M112|GHM|9 +D19|10M113|GHM|9 +D19|10M114|GHM|9 +D19|10M11T|GHM|9 +D19|10M121|GHM|9 +D19|10M122|GHM|9 +D19|10M123|GHM|9 +D19|10M124|GHM|9 +D19|10M12T|GHM|9 +D19|10M13T|GHM|9 +D19|10M13Z|GHM|9 +D19|10M14T|GHM|9 +D19|10M14Z|GHM|9 +D19|10M151|GHM|9 +D19|10M152|GHM|9 +D19|10M153|GHM|9 +D19|10M154|GHM|9 +D19|10M15T|GHM|9 +D19|10M161|GHM|9 +D19|10M162|GHM|9 +D19|10M163|GHM|9 +D19|10M164|GHM|9 +D19|10M16T|GHM|9 +D19|10M171|GHM|9 +D19|10M172|GHM|9 +D19|10M173|GHM|9 +D19|10M174|GHM|9 +D19|10M17T|GHM|9 +D19|10M181|GHM|9 +D19|10M182|GHM|9 +D19|10M183|GHM|9 +D19|10M184|GHM|9 +D19|10M18T|GHM|9 +D19|10M191|GHM|9 +D19|10M192|GHM|9 +D19|10M193|GHM|9 +D19|10M194|GHM|9 +D19|10M201|GHM|9 +D19|10M202|GHM|9 +D19|10M203|GHM|9 +D19|10M204|GHM|9 +D19|23M08J|GHM|9 +D20|08C201|GHM|9 +D20|08C202|GHM|9 +D20|08C203|GHM|9 +D20|08C204|GHM|9 +D20|08C20J|GHM|9 +D20|08C20Z|GHM|9 +D20|09C021|GHM|9 +D20|09C022|GHM|9 +D20|09C023|GHM|9 +D20|09C024|GHM|9 +D20|09C02J|GHM|9 +D20|09C02V|GHM|9 +D20|09C02W|GHM|9 +D20|09C031|GHM|9 +D20|09C032|GHM|9 +D20|09C033|GHM|9 +D20|09C034|GHM|9 +D20|09C03J|GHM|9 +D20|09C03V|GHM|9 +D20|09C03W|GHM|9 +D20|09C091|GHM|9 +D20|09C092|GHM|9 +D20|09C093|GHM|9 +D20|09C094|GHM|9 +D20|09C09J|GHM|9 +D20|09C09Z|GHM|9 +D20|09C121|GHM|9 +D20|09C122|GHM|9 +D20|09C123|GHM|9 +D20|09C124|GHM|9 +D20|09C12J|GHM|9 +D20|09M021|GHM|9 +D20|09M022|GHM|9 +D20|09M023|GHM|9 +D20|09M024|GHM|9 +D20|09M02T|GHM|9 +D20|09M02Z|GHM|9 +D20|09M031|GHM|9 +D20|09M032|GHM|9 +D20|09M033|GHM|9 +D20|09M034|GHM|9 +D20|09M03T|GHM|9 +D20|09M03V|GHM|9 +D20|09M03W|GHM|9 +D20|09M041|GHM|9 +D20|09M042|GHM|9 +D20|09M043|GHM|9 +D20|09M044|GHM|9 +D20|09M04T|GHM|9 +D20|09M04Z|GHM|9 +D20|09M051|GHM|9 +D20|09M052|GHM|9 +D20|09M053|GHM|9 +D20|09M054|GHM|9 +D20|09M05T|GHM|9 +D20|09M05V|GHM|9 +D20|09M05W|GHM|9 +D20|09M061|GHM|9 +D20|09M062|GHM|9 +D20|09M063|GHM|9 +D20|09M064|GHM|9 +D20|09M06T|GHM|9 +D20|09M06Z|GHM|9 +D20|09M071|GHM|9 +D20|09M072|GHM|9 +D20|09M073|GHM|9 +D20|09M074|GHM|9 +D20|09M07T|GHM|9 +D20|09M07V|GHM|9 +D20|09M07W|GHM|9 +D20|09M081|GHM|9 +D20|09M082|GHM|9 +D20|09M083|GHM|9 +D20|09M084|GHM|9 +D20|09M08T|GHM|9 +D20|09M08V|GHM|9 +D20|09M08W|GHM|9 +D20|09M111|GHM|9 +D20|09M112|GHM|9 +D20|09M113|GHM|9 +D20|09M114|GHM|9 +D20|09M11T|GHM|9 +D20|09M12Z|GHM|9 +D20|09M14T|GHM|9 +D20|09M14Z|GHM|9 +D20|21C021|GHM|9 +D20|21C022|GHM|9 +D20|21C023|GHM|9 +D20|21C024|GHM|9 +D20|21C02J|GHM|9 +D20|21C02Z|GHM|9 +D20|21C031|GHM|9 +D20|21C032|GHM|9 +D20|21C033|GHM|9 +D20|21C034|GHM|9 +D20|21C03J|GHM|9 +D20|21C03Z|GHM|9 +D20|21C061|GHM|9 +D20|21C062|GHM|9 +D20|21C063|GHM|9 +D20|21C064|GHM|9 +D20|21C06J|GHM|9 +D21|22C021|GHM|9 +D21|22C022|GHM|9 +D21|22C023|GHM|9 +D21|22C024|GHM|9 +D21|22C02J|GHM|9 +D21|22C02Z|GHM|9 +D21|22C031|GHM|9 +D21|22C032|GHM|9 +D21|22C033|GHM|9 +D21|22C034|GHM|9 +D21|22C03Z|GHM|9 +D21|22K02J|GHM|9 +D21|22M021|GHM|9 +D21|22M022|GHM|9 +D21|22M023|GHM|9 +D21|22M024|GHM|9 +D21|22M02T|GHM|9 +D21|22M02Z|GHM|9 +D21|22Z021|GHM|9 +D21|22Z022|GHM|9 +D21|22Z023|GHM|9 +D21|22Z024|GHM|9 +D21|22Z02Z|GHM|9 +D21|22Z03Z|GHM|9 +D22|19M021|GHM|9 +D22|19M022|GHM|9 +D22|19M023|GHM|9 +D22|19M024|GHM|9 +D22|19M02T|GHM|9 +D22|19M02V|GHM|9 +D22|19M02W|GHM|9 +D22|19M03Z|GHM|9 +D22|19M04Z|GHM|9 +D22|19M05Z|GHM|9 +D22|19M061|GHM|9 +D22|19M062|GHM|9 +D22|19M063|GHM|9 +D22|19M064|GHM|9 +D22|19M06T|GHM|9 +D22|19M06V|GHM|9 +D22|19M06W|GHM|9 +D22|19M071|GHM|9 +D22|19M072|GHM|9 +D22|19M073|GHM|9 +D22|19M074|GHM|9 +D22|19M07T|GHM|9 +D22|19M07V|GHM|9 +D22|19M07W|GHM|9 +D22|19M08Z|GHM|9 +D22|19M09Z|GHM|9 +D22|19M101|GHM|9 +D22|19M102|GHM|9 +D22|19M103|GHM|9 +D22|19M104|GHM|9 +D22|19M10T|GHM|9 +D22|19M10Z|GHM|9 +D22|19M111|GHM|9 +D22|19M112|GHM|9 +D22|19M113|GHM|9 +D22|19M114|GHM|9 +D22|19M11T|GHM|9 +D22|19M11V|GHM|9 +D22|19M11W|GHM|9 +D22|19M121|GHM|9 +D22|19M122|GHM|9 +D22|19M123|GHM|9 +D22|19M124|GHM|9 +D22|19M12T|GHM|9 +D22|19M131|GHM|9 +D22|19M132|GHM|9 +D22|19M133|GHM|9 +D22|19M134|GHM|9 +D22|19M13T|GHM|9 +D22|19M141|GHM|9 +D22|19M142|GHM|9 +D22|19M143|GHM|9 +D22|19M144|GHM|9 +D22|19M14T|GHM|9 +D22|19M151|GHM|9 +D22|19M152|GHM|9 +D22|19M153|GHM|9 +D22|19M154|GHM|9 +D22|19M15T|GHM|9 +D22|19M161|GHM|9 +D22|19M162|GHM|9 +D22|19M163|GHM|9 +D22|19M164|GHM|9 +D22|19M16T|GHM|9 +D22|19M171|GHM|9 +D22|19M172|GHM|9 +D22|19M173|GHM|9 +D22|19M174|GHM|9 +D22|19M181|GHM|9 +D22|19M182|GHM|9 +D22|19M183|GHM|9 +D22|19M184|GHM|9 +D22|19M18T|GHM|9 +D22|19M191|GHM|9 +D22|19M192|GHM|9 +D22|19M193|GHM|9 +D22|19M194|GHM|9 +D22|19M19T|GHM|9 +D22|19M201|GHM|9 +D22|19M202|GHM|9 +D22|19M203|GHM|9 +D22|19M204|GHM|9 +D22|19M20T|GHM|9 +D22|19M21Z|GHM|9 +D22|19M22T|GHM|9 +D22|19M22Z|GHM|9 +D23|20Z021|GHM|9 +D23|20Z022|GHM|9 +D23|20Z023|GHM|9 +D23|20Z024|GHM|9 +D23|20Z02T|GHM|9 +D23|20Z02Z|GHM|9 +D23|20Z031|GHM|9 +D23|20Z032|GHM|9 +D23|20Z033|GHM|9 +D23|20Z034|GHM|9 +D23|20Z03Z|GHM|9 +D23|20Z041|GHM|9 +D23|20Z042|GHM|9 +D23|20Z043|GHM|9 +D23|20Z044|GHM|9 +D23|20Z04T|GHM|9 +D23|20Z04Z|GHM|9 +D23|20Z051|GHM|9 +D23|20Z052|GHM|9 +D23|20Z053|GHM|9 +D23|20Z054|GHM|9 +D23|20Z05Z|GHM|9 +D23|20Z061|GHM|9 +D23|20Z062|GHM|9 +D23|20Z063|GHM|9 +D23|20Z064|GHM|9 +D23|20Z06T|GHM|9 +D23|20Z06V|GHM|9 +D23|20Z06W|GHM|9 +D23|21M021|GHM|9 +D23|21M022|GHM|9 +D23|21M023|GHM|9 +D23|21M024|GHM|9 +D23|21M02T|GHM|9 +D23|21M02Z|GHM|9 +D23|21M041|GHM|9 +D23|21M042|GHM|9 +D23|21M043|GHM|9 +D23|21M044|GHM|9 +D23|21M04T|GHM|9 +D23|21M04Z|GHM|9 +D23|21M051|GHM|9 +D23|21M052|GHM|9 +D23|21M053|GHM|9 +D23|21M054|GHM|9 +D23|21M05T|GHM|9 +D23|21M05Z|GHM|9 +D23|21M101|GHM|9 +D23|21M102|GHM|9 +D23|21M103|GHM|9 +D23|21M104|GHM|9 +D23|21M10T|GHM|9 +D23|21M111|GHM|9 +D23|21M112|GHM|9 +D23|21M113|GHM|9 +D23|21M114|GHM|9 +D23|21M11T|GHM|9 +D23|21M121|GHM|9 +D23|21M122|GHM|9 +D23|21M123|GHM|9 +D23|21M124|GHM|9 +D23|21M141|GHM|9 +D23|21M142|GHM|9 +D23|21M143|GHM|9 +D23|21M144|GHM|9 +D23|21M14T|GHM|9 +D23|21M161|GHM|9 +D23|21M162|GHM|9 +D23|21M163|GHM|9 +D23|21M164|GHM|9 +D23|21M16T|GHM|9 +D24|01K05J|GHM|9 +D24|01M211|GHM|9 +D24|01M212|GHM|9 +D24|01M213|GHM|9 +D24|01M214|GHM|9 +D24|01M21T|GHM|9 +D24|01M21Z|GHM|9 +D24|23Z02T|GHM|9 +D24|23Z02Z|GHM|9 +D25|27C021|GHM|9 +D25|27C022|GHM|9 +D25|27C023|GHM|9 +D25|27C024|GHM|9 +D25|27C02Z|GHM|9 +D25|27C031|GHM|9 +D25|27C032|GHM|9 +D25|27C033|GHM|9 +D25|27C034|GHM|9 +D25|27C03Z|GHM|9 +D25|27C041|GHM|9 +D25|27C042|GHM|9 +D25|27C043|GHM|9 +D25|27C044|GHM|9 +D25|27C04Z|GHM|9 +D25|27C051|GHM|9 +D25|27C052|GHM|9 +D25|27C053|GHM|9 +D25|27C054|GHM|9 +D25|27C05Z|GHM|9 +D25|27C061|GHM|9 +D25|27C062|GHM|9 +D25|27C063|GHM|9 +D25|27C064|GHM|9 +D25|27C06Z|GHM|9 +D25|27C071|GHM|9 +D25|27C072|GHM|9 +D25|27C073|GHM|9 +D25|27C074|GHM|9 +D25|27C07Z|GHM|9 +D26|01C081|GHM|9 +D26|01C082|GHM|9 +D26|01C083|GHM|9 +D26|01C084|GHM|9 +D26|01C08J|GHM|9 +D26|01C08V|GHM|9 +D26|01C08W|GHM|9 +D26|01M37E|GHM|9 +D26|05C181|GHM|9 +D26|05C182|GHM|9 +D26|05C183|GHM|9 +D26|05C184|GHM|9 +D26|05C18J|GHM|9 +D26|05C18Z|GHM|9 +D26|05M22E|GHM|9 +D26|08C211|GHM|9 +D26|08C212|GHM|9 +D26|08C213|GHM|9 +D26|08C214|GHM|9 +D26|08C21J|GHM|9 +D26|08C21V|GHM|9 +D26|08C21W|GHM|9 +D26|08M01S|GHM|9 +D26|09C101|GHM|9 +D26|09C102|GHM|9 +D26|09C103|GHM|9 +D26|09C104|GHM|9 +D26|09C10J|GHM|9 +D26|09C10V|GHM|9 +D26|09C10W|GHM|9 +D26|09C141|GHM|9 +D26|09C142|GHM|9 +D26|09C143|GHM|9 +D26|09C144|GHM|9 +D26|09C14J|GHM|9 +D26|09C151|GHM|9 +D26|09C152|GHM|9 +D26|09C153|GHM|9 +D26|09C154|GHM|9 +D26|09C15J|GHM|9 +D26|09C161|GHM|9 +D26|09C162|GHM|9 +D26|09C163|GHM|9 +D26|09C164|GHM|9 +D26|09C171|GHM|9 +D26|09C172|GHM|9 +D26|09C173|GHM|9 +D26|09C174|GHM|9 +D26|09C181|GHM|9 +D26|09C182|GHM|9 +D26|09C183|GHM|9 +D26|09C184|GHM|9 +D26|09C191|GHM|9 +D26|09C192|GHM|9 +D26|09C193|GHM|9 +D26|09C194|GHM|9 +D26|09C201|GHM|9 +D26|09C202|GHM|9 +D26|09C203|GHM|9 +D26|09C204|GHM|9 +D26|09C20J|GHM|9 +D26|09C211|GHM|9 +D26|09C212|GHM|9 +D26|09C213|GHM|9 +D26|09C214|GHM|9 +D26|09C221|GHM|9 +D26|09C222|GHM|9 +D26|09C223|GHM|9 +D26|09C224|GHM|9 +D26|09C22J|GHM|9 +D26|09C231|GHM|9 +D26|09C232|GHM|9 +D26|09C233|GHM|9 +D26|09C234|GHM|9 +D26|09C23J|GHM|9 +D26|09C241|GHM|9 +D26|09C242|GHM|9 +D26|09C243|GHM|9 +D26|09C244|GHM|9 +D26|09C24J|GHM|9 +D26|09C251|GHM|9 +D26|09C252|GHM|9 +D26|09C253|GHM|9 +D26|09C254|GHM|9 +D26|09C25J|GHM|9 +D26|09C261|GHM|9 +D26|09C262|GHM|9 +D26|09C263|GHM|9 +D26|09C264|GHM|9 +D26|09C26J|GHM|9 +D26|09C271|GHM|9 +D26|09C272|GHM|9 +D26|09C273|GHM|9 +D26|09C274|GHM|9 +D26|09C281|GHM|9 +D26|09C282|GHM|9 +D26|09C283|GHM|9 +D26|09C284|GHM|9 +D26|09C28J|GHM|9 +D26|09C291|GHM|9 +D26|09C292|GHM|9 +D26|09C293|GHM|9 +D26|09C294|GHM|9 +D26|09C29J|GHM|9 +D26|09C301|GHM|9 +D26|09C302|GHM|9 +D26|09C303|GHM|9 +D26|09C304|GHM|9 +D26|09C30J|GHM|9 +D26|09C311|GHM|9 +D26|09C312|GHM|9 +D26|09C313|GHM|9 +D26|09C314|GHM|9 +D26|09C31J|GHM|9 +D26|09C321|GHM|9 +D26|09C322|GHM|9 +D26|09C323|GHM|9 +D26|09C324|GHM|9 +D26|09C32J|GHM|9 +D26|09C331|GHM|9 +D26|09C332|GHM|9 +D26|09C333|GHM|9 +D26|09C334|GHM|9 +D26|09C341|GHM|9 +D26|09C342|GHM|9 +D26|09C343|GHM|9 +D26|09C344|GHM|9 +D26|09C34J|GHM|9 +D26|09K02J|GHM|9 +D26|09Z02A|GHM|9 +D26|09Z02B|GHM|9 +D26|09Z02Z|GHM|9 +D26|10C081|GHM|9 +D26|10C082|GHM|9 +D26|10C083|GHM|9 +D26|10C084|GHM|9 +D26|10C08J|GHM|9 +D26|10C08Z|GHM|9 +D26|17K07J|GHM|9 +D26|18C021|GHM|9 +D26|18C022|GHM|9 +D26|18C023|GHM|9 +D26|18C024|GHM|9 +D26|18C02J|GHM|9 +D26|18C02V|GHM|9 +D26|18C02W|GHM|9 +D26|19C021|GHM|9 +D26|19C022|GHM|9 +D26|19C023|GHM|9 +D26|19C024|GHM|9 +D26|19C02Z|GHM|9 +D26|21C051|GHM|9 +D26|21C052|GHM|9 +D26|21C053|GHM|9 +D26|21C054|GHM|9 +D26|21C05J|GHM|9 +D26|21C05V|GHM|9 +D26|21C05W|GHM|9 +D26|21K02J|GHM|9 +D26|21M131|GHM|9 +D26|21M132|GHM|9 +D26|21M133|GHM|9 +D26|21M134|GHM|9 +D26|21M151|GHM|9 +D26|21M152|GHM|9 +D26|21M153|GHM|9 +D26|21M154|GHM|9 +D26|21M15T|GHM|9 +D26|23C021|GHM|9 +D26|23C022|GHM|9 +D26|23C023|GHM|9 +D26|23C024|GHM|9 +D26|23C02J|GHM|9 +D26|23C02Z|GHM|9 +D26|23K02Z|GHM|9 +D26|23K03J|GHM|9 +D26|23M02T|GHM|9 +D26|23M02Z|GHM|9 +D26|23M04Z|GHM|9 +D26|23M05Z|GHM|9 +D26|23M061|GHM|9 +D26|23M062|GHM|9 +D26|23M063|GHM|9 +D26|23M064|GHM|9 +D26|23M06T|GHM|9 +D26|23M06Z|GHM|9 +D26|23M101|GHM|9 +D26|23M102|GHM|9 +D26|23M103|GHM|9 +D26|23M104|GHM|9 +D26|23M10T|GHM|9 +D26|23M111|GHM|9 +D26|23M112|GHM|9 +D26|23M113|GHM|9 +D26|23M114|GHM|9 +D26|23M11T|GHM|9 +D26|23M13Z|GHM|9 +D26|23M14Z|GHM|9 +D26|23M15Z|GHM|9 +D26|23M16T|GHM|9 +D26|23M16Z|GHM|9 +D26|23M18Z|GHM|9 +D26|23M19Z|GHM|9 +D26|23M20T|GHM|9 +D26|23M20Z|GHM|9 +D26|23M21T|GHM|9 +D26|23M21Z|GHM|9 +D26|23Z03Z|GHM|9 +D26|25C021|GHM|9 +D26|25C022|GHM|9 +D26|25C023|GHM|9 +D26|25C024|GHM|9 +D26|25C02Z|GHM|9 +D27|28Z01Z|GHM|9 +D27|28Z02Z|GHM|9 +D27|28Z03Z|GHM|9 +D27|28Z04Z|GHM|9 +D27|28Z05Z|GHM|9 +D27|28Z06Z|GHM|9 +D27|28Z07Z|GHM|9 +D27|28Z08Z|GHM|9 +D27|28Z09Z|GHM|9 +D27|28Z10Z|GHM|9 +D27|28Z11Z|GHM|9 +D27|28Z12Z|GHM|9 +D27|28Z13Z|GHM|9 +D27|28Z14Z|GHM|9 +D27|28Z15Z|GHM|9 +D27|28Z16Z|GHM|9 +D27|28Z17Z|GHM|9 +D27|28Z18Z|GHM|9 +D27|28Z19Z|GHM|9 +D27|28Z20Z|GHM|9 +D27|28Z21Z|GHM|9 +D27|28Z22Z|GHM|9 +D27|28Z23Z|GHM|9 +D27|28Z24Z|GHM|9 +D27|28Z25Z|GHM|9 +D90|90C01Z|GHM|9 +D90|90H01Z|GHM|9 +D90|90H02Z|GHM|9 +D90|90H03Z|GHM|9 +D90|90Z00Z|GHM|9 +D90|90Z01Z|GHM|9 +D90|90Z02Z|GHM|9 +D90|90Z03Z|GHM|9 +D90|999999|GHM|9 +D90|ZZZZZZ|GHM|9 diff --git a/db/data2/dbdata_activite_t_classes_sections_elements_prestations_c.csv b/db/data2/dbdata_activite_t_classes_sections_elements_prestations_c.csv new file mode 100644 index 0000000..63d1af9 --- /dev/null +++ b/db/data2/dbdata_activite_t_classes_sections_elements_prestations_c.csv @@ -0,0 +1,126 @@ +section_code|to_code|table_code|classe_sequence +S11|GHS|PRESTA_C|9 +S12|EXH|PRESTA_C|9 +S13|ANT|PRESTA_C|9 +S13|APE|PRESTA_C|9 +S13|ATU|PRESTA_C|9 +S13|D01|PRESTA_C|9 +S13|D02|PRESTA_C|9 +S13|D03|PRESTA_C|9 +S13|D04|PRESTA_C|9 +S13|D05|PRESTA_C|9 +S13|D06|PRESTA_C|9 +S13|D07|PRESTA_C|9 +S13|D08|PRESTA_C|9 +S13|D09|PRESTA_C|9 +S13|D10|PRESTA_C|9 +S13|D11|PRESTA_C|9 +S13|D12|PRESTA_C|9 +S13|D13|PRESTA_C|9 +S13|D14|PRESTA_C|9 +S13|D15|PRESTA_C|9 +S13|D16|PRESTA_C|9 +S13|D17|PRESTA_C|9 +S13|D18|PRESTA_C|9 +S13|D19|PRESTA_C|9 +S13|D20|PRESTA_C|9 +S13|D21|PRESTA_C|9 +S13|D22|PRESTA_C|9 +S13|D23|PRESTA_C|9 +S13|D24|PRESTA_C|9 +S13|DIP|PRESTA_C|9 +S13|DTP|PRESTA_C|9 +S13|ENT|PRESTA_C|9 +S13|FFM|PRESTA_C|9 +S13|FPU|PRESTA_C|9 +S13|NN1|PRESTA_C|9 +S13|NN2|PRESTA_C|9 +S13|NN3|PRESTA_C|9 +S13|PO1|PRESTA_C|9 +S13|PO2|PRESTA_C|9 +S13|PO3|PRESTA_C|9 +S13|PO4|PRESTA_C|9 +S13|PO5|PRESTA_C|9 +S13|PO6|PRESTA_C|9 +S13|PO7|PRESTA_C|9 +S13|PO8|PRESTA_C|9 +S13|PO9|PRESTA_C|9 +S13|RAP|PRESTA_C|9 +S13|REA|PRESTA_C|9 +S13|REP|PRESTA_C|9 +S13|SE1|PRESTA_C|9 +S13|SE2|PRESTA_C|9 +S13|SE3|PRESTA_C|9 +S13|SE4|PRESTA_C|9 +S13|SE5|PRESTA_C|9 +S13|SE6|PRESTA_C|9 +S13|SE7|PRESTA_C|9 +S13|SFC|PRESTA_C|9 +S13|SNS|PRESTA_C|9 +S13|SRA|PRESTA_C|9 +S13|SRC|PRESTA_C|9 +S13|SSC|PRESTA_C|9 +S13|STF|PRESTA_C|9 +S19|FJA|PRESTA_C|9 +S19|FJC|PRESTA_C|9 +S19|FJL|PRESTA_C|9 +S19|FJR|PRESTA_C|9 +S19|FR2|PRESTA_C|9 +S19|FR3|PRESTA_C|9 +S19|FRL|PRESTA_C|9 +S19|FSD|PRESTA_C|9 +S19|FTG|PRESTA_C|9 +S19|FTN|PRESTA_C|9 +S19|FTR|PRESTA_C|9 +S19|GHT|PRESTA_C|9 +S19|PHJ|PRESTA_C|9 +S19|PJ|PRESTA_C|9 +S19|PMH|PRESTA_C|9 +S19|PY0|PRESTA_C|9 +S19|PY1|PRESTA_C|9 +S19|PY2|PRESTA_C|9 +S19|PY3|PRESTA_C|9 +S19|PY4|PRESTA_C|9 +S19|PY5|PRESTA_C|9 +S19|PY6|PRESTA_C|9 +S19|PY7|PRESTA_C|9 +S19|PY8|PRESTA_C|9 +S19|PY9|PRESTA_C|9 +S19|VDE|PRESTA_C|9 +S2|ETI|PRESTA_C|9 +S2|GLU|PRESTA_C|9 +S2|LEN|PRESTA_C|9 +S2|LUN|PRESTA_C|9 +S2|MAC|PRESTA_C|9 +S2|MAD|PRESTA_C|9 +S2|MAR|PRESTA_C|9 +S2|OP1|PRESTA_C|9 +S2|OP2|PRESTA_C|9 +S2|OP3|PRESTA_C|9 +S2|OP4|PRESTA_C|9 +S2|OP5|PRESTA_C|9 +S2|OP6|PRESTA_C|9 +S2|OPM|PRESTA_C|9 +S2|OPT|PRESTA_C|9 +S2|ORP|PRESTA_C|9 +S2|P|PRESTA_C|9 +S2|PA|PRESTA_C|9 +S2|PAN|PRESTA_C|9 +S2|PAU|PRESTA_C|9 +S2|PEX|PRESTA_C|9 +S2|PII|PRESTA_C|9 +S2|PME|PRESTA_C|9 +S2|POC|PRESTA_C|9 +S2|VEH|PRESTA_C|9 +S2|VER|PRESTA_C|9 +S3|EMI|PRESTA_C|9 +S3|PH1|PRESTA_C|9 +S3|PH4|PRESTA_C|9 +S3|PH7|PRESTA_C|9 +S3|PH8|PRESTA_C|9 +S3|PHH|PRESTA_C|9 +S3|PHP|PRESTA_C|9 +S3|PHQ|PRESTA_C|9 +S3|PHS|PRESTA_C|9 +S3|PHU|PRESTA_C|9 +S3|PMR|PRESTA_C|9 diff --git a/db/data2/dbdata_activite_t_divers.csv b/db/data2/dbdata_activite_t_divers.csv new file mode 100644 index 0000000..9f10d77 --- /dev/null +++ b/db/data2/dbdata_activite_t_divers.csv @@ -0,0 +1,11 @@ +code|description|show_info_module|texte|valeur|valeur_date +DATEFERMETURE|Date de fermeture (AAAAMMJJ). Vide si ouvert |f|Date fermeture établissement||1970-01-01 +EMCHCSSRPSY|0=1 EMC par séjour, 1=1 EMC par semaine|f|Mode génération EMC HC SSR ou PSY|0|1970-01-01 +ETALITCSVFILE|Emplacement du fichier CSV qui contient l'historique des places|f|Emplacement du fichier CSV qui contient l'historique des places||1970-01-01 +NOW|Date non modifiable|t|Date des derniers mouvements||1970-01-01 +NOWCLOTURE|Date non modifiable|t|Date clôture||1970-01-01 +OPTADM_DAYOUT|"0=JS non inclus sauf DE=DS | 1=JS non inclus | 2=JS inclus"|f|Activite : Comptabilisation du jour de sortie|0|1970-01-01 +PLACESREF||f||ETA|1970-01-01 +SEANCEHOSPIT|1=Conserver les séances en hospit, 2=Ne conserver que les séances de dialyse, 0=Pas de séance en hospit|f|Traitement des séances en hospit|1|1970-01-01 +SIGEMS_CHPDOX|Préfixe pour demande CP (separateur virgule et chaque préfixe avec %)|f|Préfixe pour demande CP|P%|1970-01-01 +TAUXSORAVANT|par default taux de sortie avant 12hh00|f|Taux de sortie avant hh:mm|120000|1970-01-01 diff --git a/db/data2/dbdata_activite_t_etat_sejour.csv b/db/data2/dbdata_activite_t_etat_sejour.csv new file mode 100644 index 0000000..a37b65e --- /dev/null +++ b/db/data2/dbdata_activite_t_etat_sejour.csv @@ -0,0 +1,15 @@ +oid|code|texte +0|0|Prévu(s) +1|1|Présent(s) +1|2|Présent(s) avec facturation partielle +1|3|Sorti(s) non groupé(s) +1|4|Sorti(s) facturable(s) +1|5|Sorti(s) non facturé(s) avec facturation partielle +1|6|Facturé(s) non soldé(s) +1|7|Soldé(s) +1|8|Non facturable(s) ou récusé(s) +1|9|Fictif(s) +1|?|??? +1|A|Annulé(s) +1|C|Suspendu(s) +1|R|Récusé(s) diff --git a/db/data2/dbdata_activite_t_expert_controle.csv b/db/data2/dbdata_activite_t_expert_controle.csv new file mode 100644 index 0000000..b477ba4 --- /dev/null +++ b/db/data2/dbdata_activite_t_expert_controle.csv @@ -0,0 +1,28 @@ +controle_id|controle_code|controle_texte|controle_texte_court|controle_texte_abrege|controle_description|controle_is_cti|controle_etat_cible|prestataire_code +1|CTI_0ETS|Dossiers sortis sans prestations (Aucune facture ni valorisation)|Dossiers sortis sans prestations (Aucune facture ni valorisation)|Dossiers sortis sans prestations (Aucune facture ni valorisation)||1|0| +1|CTI_AMB_DE_X_DS|Ambulatoires avec date d'entrée différente de date de sortie|Ambulatoires avec date d'entrée différente de date de sortie|Ambulatoires avec date d'entrée différente de date de sortie||1|0| +1|CTI_DEL_FAC_30|Séjours non facturés avec délai de facture supérieur à 30 jours|Séjours non facturés avec délai de facture supérieur à 30 jours|Séjours non facturés avec délai de facture supérieur à 30 jours||1|0| +1|CTI_DTEXP_DTFAC|Date d'expédion antérieure à la date de facturation|Date d'expédion antérieure à la date de facturation|Date d'expédion antérieure à la date de facturation||1|0| +1|CTI_DTFAC_DTSOR|Date de facturation antérieure à la date de sortie|Date de facturation antérieure à la date de sortie|Date de facturation antérieure à la date de sortie||1|0| +1|CTI_DTVEN_DTFAC|Date de vente antérieure à la date de facturation|Date de vente antérieure à la date de facturation|Date de vente antérieure à la date de facturation||1|0| +1|CTI_DUR_SUP_60|Dossiers MCO durée supérieur à 2 mois|Dossiers MCO durée supérieur à 2 mois|Dossiers MCO durée supérieur à 2 mois||1|0| +1|CTI_EXT_DE_X_DS|Externes avec date d'entrée différente de date de sortie|Externes avec date d'entrée différente de date de sortie|Externes avec date d'entrée différente de date de sortie|_c_eNptkMFqwzAMhl9FeFDaU9Pl0EOTgOs6IdR1guuNsZtpNAg4SbGd0cefMwa9DCT4fiE+kDLNP3TZqAvVUMsTlzonrwQEp6daVgsXWQtU1JXMieCljrlspIaSMp6Td3SdGQ2Ba/0Z4y4hwBrRqJy8JMc0Tdmi0pqra0vZrzBunLmSf1wIhK/eBofgZwcWYZg6hFjBmT7ggGOAZA9rNo1+tsGEPgJgAD/1CzwCuhH9Bu7ohjjuVuY++QM+bnaOUovPHTDfePvPv0tg/aYqLhnfZNvluiLbtrGfvyl+AFhcWe0=|1|0| +1|CTI_LPP_INC_80|LPP inclus dans le GHS dont la consommation est séprieure à 80% du GHS|LPP inclus sup. à 80% du GHS|LPP inclus sup. à 80% du GHS||1|0| +1|CTI_LPP_NON_FAC|LPP en SUS non facturé|LPP en SUS non facturé|LPP en SUS non facturé||1|0| +1|CTI_MULTI_TYPES|Séjous avec plus d'un type de séjour (ambu, hospit, seances, externe)|Séjous avec plus d'un type de séjour (ambu, hospit, seances, externe)|Séjous avec plus d'un type de séjour (ambu, hospit, seances, externe)||1|0| +1|CTI_MVT_ETA_KO|Etages inappropriés|Etages inappropriés|Etages inappropriés|_c_eNrFkMFOhDAQhl9lUq/G3XWvQIJs2ZBFIGxjjJdNA8MGU0rTFp/Xo3j2AWzJqvHg2UPTmb/NN/P/AaOPLC3r+5hBVuxowUJySyCn8S4r9r6OggriPNsXIclpylyflgWDNE5oSB5Qt1xyAsfsybWbNYGkzMs6JFfru+12m3gUY7Q+VnGyAN2PA62Lpd6QKO+NRWjRgJmfx0kbaEdpYZKLNozTCw4orQE0FnjXYWNneP16ny0/u6tFEBzEN+oi95IrpUel+9ncBCu/dhSsKnd+TEfBPwdQcQ3t3PHJXoNAaMYWf/nxvhOWnSiLT4cSBt47YwIUThberUbQOCjBmxmUI7lcHMmpbinjIS6ORvfK9qO8YPXbWSwjGj9NWv0h8M90PgEtl6i+|1|0| +1|CTI_MVT_ETA_NULL|Etage non renseigné|Etage non renseigné|Etage non renseigné|_c_eNpFT1ELgjAY/CsfC3rV8jEVlk4Z2ZQ1Inob+CGGTNnWf85/kVbQw8HdcRx3sWI3VdTyTBVwkTOhErInUDGac1GuPI0boBUvRUIqVqhFF7VQUNCMJeSKttVGE7jw+yJ3IYGsrmqZkE14jKIoW6uUYvLS0OxTuCROTIofTyVOL4swoAM3P8anddCOxsOw1dPoDrPXHUKL4EbrewTztdF5mLQDi8Zh35k5DtZRaRw0C/6X0jdJb0M4|1|0| +1|CTI_MVT_SER_EXT|Services Externes : FSEH - SEUR et Mode de traitement 04|Services Externes : FSEH - SEUR et Mode de traitement 04|Services Externes : FSEH - SEUR et Mode de traitement 04||1|0|SIGEMS +1|CTI_MVT_SER_KO|Incompatibilité type de séjour (ESPIC - Ex OQN) et code service|Incompatibilité type de séjour (ESPIC - Ex OQN) et code service|Incompatibilité type de séjour (ESPIC - Ex OQN) et code service|_c_eNrFkMFqhDAQhl9lSK+lu9u9qmDduMhaFTeU0ssSdCwpMYYk7vP2WHvuAzRKl6WHnnsI/DMTvpn/Dxh9ZmlZP8YMsmJHCxaSewI5jXdZsZ91FFQQ59m+CElOU+brtCwYpHFCQ/KEpuWKEzhmL77crAkkZV7WIblZP2y322RGMUbrYxUnC9D/ONC6WPSGRLmwDqFFC3Z6G0ZjoR2Ug1EtvX4Yz9ijchbQOuBdh42b4P0yt2jOovGiRZAc5BV2GQjFtTaDNmKyd8FqPj0KVpV/V+NR8M8hVNxAO3V8dLcgEZqhxV+OZu8Jy05HWp8OJfRceGMSNI4OPp1BMNhryZsJtCf5bDzJd/1Rdob4QBojtBOD+sGaj1e5rGjmbcqZL4l/pvMNPfepnA==|1|0| +1|CTI_MVT_SER_NULL|Service non renseigné|Service non renseigné|Service non renseigné||1|0| +1|CTI_PRE_SUP_30|Présent depuis plus de 30 jours|Présent depuis plus de 30 jours|Présent depuis plus de 30 jours||1|0| +1|CTI_SEJSMR_SUPP90|Séjours SMR de plus de 90 jours|Séjours SMR de plus de 90 jours|Séjours SMR de plus de 90 jours||1|0| +1|CTI_SEJ_AMB_03|Ambulatoires avec Mode de Traitement Hospit complète (03)|Ambulatoires avec Mode de Traitement Hospit complète (03)|Ambulatoires avec Mode de Traitement Hospit complète (03)|_c_eNrNU1FPgzAQ/isXTMz2NCZvE0iAwSQyWFhnjMY0HdySmlIIFH+vj+5fWJxxzhhf3UPTu971u7vv7mwS3pMoy5cegTidhylxjCsDktCbx+likF17BV4SL1LHSMKIaD3KUgKRF4SOcYdtySQzYB0/aHVqGhBkSZY7xoXpW5YVDFCEhPl65QUfgNrjNszTT9ld75/rvu2AVdteMFXzFjvQkB30EmETfTfASPBOIZSXrKm7615yte9gV8tC8VpKFEL/fYUG+0ZgC6yHpt0zwbYCx1AxrqO8YKGBoapLDYOgWsYVVigVmBaMbuqu4YrpKGxAhKKuGvGmcGxPhppde7LS58iYa/8ze+eaV/dbV2e274Lc0pNHB6b2xD/bQn4M4AwO6F8uUx3PdwXHnra4wxZlgXQYTKQnc0l5qfOHxySeBSSmm4h6S3/zdFL6GTKgy1v+uioDE747rBE9Gmgx+DpwWE/TOtx/tfcdZyxNqw==|1|0| +1|CTI_SEJ_DUR_30|Séjours sortis non facturés avec durée de séjour supérieure à 30 jours|Séjours sortis non facturés avec durée de séjour supérieure à 30 jours|Séjours sortis non facturés avec durée de séjour supérieure à 30 jours|_c_eNpFjtEKwiAYhV/lxx5gK29VMNMhmY5NIrobzIsitnDzfbvdW+RG0MWBc+DjnEO8vHnlmgv3oO1JWk/RAYGR/KRttXpGauBGV5YiI5XPWTnrQXEhKbqG2HdDh6DV9xz3JQLhjGso2pVHjLFYq7yXTVtzsRVm4iwb+/OsXZ5jihP04zDDq4M+xSVAmGaY0nuJj5BigA/gEjaOFOs4I0Wd9b/Ovjb2OgQ=|1|2| +1|CTI_SEJ_DUR_NEG|Séjours avec date de sortie antérieure à la date d'entrée|Séjours avec date de sortie antérieure à la date d'entrée|date sortie < date_entree||1|0| +1|CTI_SEJ_MED_KO|Médecins responsables de séjours inappropriés|Médecins responsables de séjours inappropriés|Médecins responsables de séjours inappropriés|_c_eNrFkMFOhDAQhl9lUq/G3ZUrkCCUDVkWCNsY42XTlGJquqVpy/t6tJ59AAsxazx49tBk/k77zfx/TPATKdv+mBGomgI3JEH3CGqcFVWzX+o07iCrq32ToBqXJOiybQiUWY4T9MjNQBVFcKqeg9xtEeRt3fYJutk+RFGULyhCcH/qsnwFhhcH3DdrvUNpLazjMHAL1r9Os7FAx5Ez5y28wazWzsUPnAllgwBJQV6/XBtCUa3NpI3w9i7eLAum8aYL58deGv+z1Y4aGPxIZ3cLkgObBv7LEbcOclKdj7g4H1q4UBGMSdB8dvDhDAfDL1pS5kEHUsgmkMJtWMoukBAIM0I7MalvrHl/kesItkxTznxK/mc6X6nfoLg=|1|0| +1|CTI_SEJ_MED_NULL|Médecin responsable de séjour non renseigné|Médecin responsable de séjour non renseigné|Médecin responsable de séjour non renseigné|_c_eNpFj9EKwjAMRX8lVPB16h7dBnXrZDi7UYuIb9UFUWZXF/1n9xd2IviQcO5NuCSRFgedV2rLNRQyE1LHbMGgFDwr5HrkJKqBl8VaxqwUufY6r6SGnKciZnvsG2MNg11x9HI+Y5BWZaViNpmtwjBMxyithdrVPP0G+o2NUPLHiUL37hFaJKDh1r16Auf7aDxe2JIHuA8Nnq8WeiTXWTIn79mpcR0tkZ7gDPmRJbxe7BAF43VJFNS+/r8lH/HxRzY=|1|0| +1|CTI_SEJ_SER_FINESS|Service non associé à un établissement|Service non associé à un établissement|Service non associé à un établissement|_c_eNpFj8FOhEAQRH+lMiZGT7srNwWSkR02KA5kmBjjbWTbZMwKSIPf61H+wmEvHjqpqnS/VMdWvdi8Mk/SotB7pW0ibgRKJfeFPqw6jWvIsjjoRJQqt8HnlbbIZaYS8Uzj0XVOoCleg91tBbKqrEwiLrb3URRlK8paZZpaZmdg2HhURp/1TqSGht+RcCIGLx/9PDKOfTeFAEzjt28J3aUber4jnjA4hmPuW7/gB3OHZXJvJ89MnxSOrpphaf27/5oJt3iYV2po2NF1vFlLp/GmDvP/cvoH089PUA==|1|0| +1|CTI_UCD_INC_80|UCD inclus dans GHS dont la consommation est supérieure à 80% du GHS|UCD Inclus sup à 80% du GHS|UCD Inclus sup à 80% du GHS||1|0| +1|CTI_UCD_NON_FACT|UCD en SUS non facturé|UCD en SUS non facturé|UCD en SUS non facturé||1|0| +1|CTI_VAL_SUP_20K|Dossiers valorisés > 20 000|Dossiers valorisés > 20 000|Dossiers valorisés > 20 000||1|0| diff --git a/db/data2/dbdata_activite_t_expert_controle_rule.csv b/db/data2/dbdata_activite_t_expert_controle_rule.csv new file mode 100644 index 0000000..7daff45 --- /dev/null +++ b/db/data2/dbdata_activite_t_expert_controle_rule.csv @@ -0,0 +1,122 @@ +oid|controle_code|numero|sqlcmd_where|sqlcmd_justificatif|tab +1|CTI_0ETS|1|"code_sorti = 1 AND nb_rubriques_c = 0 AND nb_rubriques_h = 0 AND type_sejour<>3 "||2 +1|CTI_0ETS|2|||0 +1|CTI_0ETS|3|||0 +1|CTI_AMB_DE_X_DS|1|nb_ambulatoires = 1 AND date != date_sortie||1 +1|CTI_AMB_DE_X_DS|2|||0 +1|CTI_AMB_DE_X_DS|3|||0 +1|CTI_DEL_FAC_30|1|"SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, v_mouvements_sejour_2.est_facture FROM activite.v_sejours_1 JOIN activite.v_mouvements_sejour_2 on v_mouvements_sejour_2.sejour_id=v_sejours_1.sejour_id WHERE ((select valeur_date from activite.t_divers where code='NOW')- v_sejours_1.date_sortie) >30 AND v_mouvements_sejour_2.est_facture='0'"||99 +1|CTI_DEL_FAC_30|2|||0 +1|CTI_DEL_FAC_30|3|||0 +1|CTI_DTEXP_DTFAC|1|date_expedition < date_facture|date_expedition, date_facture|0 +1|CTI_DTEXP_DTFAC|2|||0 +1|CTI_DTEXP_DTFAC|3|||0 +1|CTI_DTFAC_DTSOR|1|date_facture < date_sortie and date_sortie is distinct from null|date_facture|0 +1|CTI_DTFAC_DTSOR|2|||0 +1|CTI_DTFAC_DTSOR|3|||0 +1|CTI_DTVEN_DTFAC|1|date_vente < date_facture|date_vente, date_facture|2 +1|CTI_DTVEN_DTFAC|2|||0 +1|CTI_DTVEN_DTFAC|3|||0 +1|CTI_DUR_SUP_60|1|type_t2a <> 2 and type_t2a <> 3 and duree>60||2 +1|CTI_DUR_SUP_60|2|||0 +1|CTI_DUR_SUP_60|3|||0 +1|CTI_EXT_DE_X_DS|1|"nb_externes = 1 +AND date != date_sortie +AND mode_traitement_code = '07'"||1 +1|CTI_EXT_DE_X_DS|2|||0 +1|CTI_EXT_DE_X_DS|3|||0 +1|CTI_LPP_INC_80|1|"DROP TABLE IF EXISTS w_res; CREATE TEMP TABLE w_res AS SELECT v_sejours_1.sejour_id ,v_sejours_1.no_sejour ,v_sejours_1.date_sortie ,type_sejour ,code_prevu ,v_factures_lignes_c_1.montant_facture ,array_to_string(array_agg(DISTINCT t_lpp.code),',') AS lpp_codes ,sum(sortie_montant - entree_montant) AS sortie_montant ,round(100*base.cti_division(sum(sortie_montant - entree_montant), v_factures_lignes_c_1.montant_facture),2) AS rapport FROM eco.p_sejours JOIN eco.p_mouvements_articles ON mouvement_id = p_mouvements_articles.oid JOIN activite.v_sejours_1 ON p_sejours.sejour_id = v_sejours_1.sejour_id LEFT JOIN base.t_finess ON v_sejours_1.finess = t_finess.code JOIN eco.t_lpp_c ON lpp_id = t_lpp_c.oid JOIN base.t_lpp ON t_lpp_c.code = t_lpp.code JOIN (SELECT no_sejour ,sum(montant_facture) AS montant_facture FROM activite.v_factures_lignes_c_1 WHERE prestation_code = 'GHS' GROUP BY 1 ) v_factures_lignes_c_1 ON v_factures_lignes_c_1.no_sejour = p_sejours.no_sejour LEFT JOIN (SELECT no_sejour ,lpp_id ,rubrique_facturation_id ,sum(montant_facture) AS montant_facture FROM activite.v_factures_lignes_c_5 GROUP BY 1,2,3 ) v_factures_lignes_c_5 ON p_sejours.no_sejour = v_factures_lignes_c_5.no_sejour AND ( rubrique_facturation_id IN ( SELECT to_id FROM activite.t_listes LEFT JOIN activite.t_listes_contenu ON liste_id = t_listes.oid WHERE t_listes.code = 'CTI_PROTHESE_R' ) OR t_lpp_c.oid = v_factures_lignes_c_5.lpp_id ) WHERE p_mouvements_articles.lpp_id != 0 AND type_mouvement_id IN ( SELECT to_id FROM eco.t_classes JOIN eco.t_classes_sections ON classe_id = t_classes.oid JOIN eco.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code = 'CTI_TYPMVT' AND t_classes_sections.code = '01' ) AND sortie_montant != 0 AND v_factures_lignes_c_1.montant_facture > 0 AND v_factures_lignes_c_5.montant_facture IS NULL GROUP BY 1,2,3,4,5,6 HAVING base.cti_division(sum(sortie_montant), v_factures_lignes_c_1.montant_facture) > 0.8; SELECT sejour_id, no_sejour, date_sortie, lpp_codes, montant_facture, sortie_montant, rapport FROM w_res WHERE 1 = 1"|montant_facture, sortie_montant, rapport|99 +1|CTI_LPP_INC_80|2|||0 +1|CTI_LPP_INC_80|3|||0 +1|CTI_LPP_NON_FAC|1|"SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, t_lpp.code as lpp_code, t_lpp_sus.date_debut as date_debut_lpp, t_lpp_sus.date_fin as date_fin_lpp, sortie_montant-entree_montant AS sortie_montant, montant_facture FROM eco.p_sejours JOIN eco.p_mouvements_articles ON mouvement_id = p_mouvements_articles.oid JOIN activite.v_sejours_1 ON p_sejours.sejour_id = v_sejours_1.sejour_id JOIN base.t_finess ON v_sejours_1.finess = t_finess.code JOIN eco.t_lpp_c on lpp_id = t_lpp_c.oid JOIN pmsi.t_lpp on t_lpp.code = t_lpp_c.code LEFT JOIN base.t_lpp_sus on t_lpp_sus.lpp_id = t_lpp_c.oid AND date BETWEEN t_lpp_sus.date_debut AND t_lpp_sus.date_fin LEFT JOIN activite.v_factures_lignes_c_5 on p_sejours.no_sejour = v_factures_lignes_c_5.no_sejour AND (rubrique_facturation_id IN ( SELECT to_id FROM activite.t_listes LEFT JOIN activite.t_listes_contenu ON liste_id = t_listes.oid WHERE t_listes.code = 'CTI_PROTHESE_R') OR v_factures_lignes_c_5.lpp_id = t_lpp_c.oid) WHERE p_mouvements_articles.lpp_id != 0 AND type_mouvement_id IN (SELECT to_id FROM eco.t_classes JOIN eco.t_classes_sections ON classe_id = t_classes.oid JOIN eco.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code = 'CTI_TYPMVT' and t_classes_sections.code = '01') AND t_lpp_sus.date_debut IS NOT NULL AND (sortie_montant-entree_montant) > 0 AND v_factures_lignes_c_5.montant_facture IS NULL AND v_sejours_1.type_sejour = '1'"|lpp_code, date_debut_lpp, date_fin_lpp, sortie_montant|99 +1|CTI_LPP_NON_FAC|2|||0 +1|CTI_LPP_NON_FAC|3|||0 +1|CTI_MULTI_TYPES|1|"SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, nb_ambulatoires, nb_entrees_directes, nb_seances, nb_externes FROM activite.v_mouvements_sejour_2 JOIN activite.v_sejours_1 using (no_sejour) WHERE nb_ambulatoires + nb_entrees_directes + nb_seances + nb_externes > 1"|nb_ambulatoires, nb_entrees_directes, nb_seances, nb_externes|99 +1|CTI_MULTI_TYPES|2|||0 +1|CTI_MULTI_TYPES|3|||0 +1|CTI_MVT_ETA_KO|1|lieu_etage_id IN [LI:CTI_ETA_KO]|lieu_etage_code|1 +1|CTI_MVT_ETA_KO|2|||0 +1|CTI_MVT_ETA_KO|3|||0 +1|CTI_MVT_ETA_NULL|1|lieu_etage_id = 0 OR lieu_etage_id is null||1 +1|CTI_MVT_ETA_NULL|2|||0 +1|CTI_MVT_ETA_NULL|3|||0 +1|CTI_MVT_SER_EXT|1|lieu_service_code = 'FSEH_04' OR lieu_service_code = 'SEUR_04'|lieu_service_code|1 +1|CTI_MVT_SER_EXT|2|||0 +1|CTI_MVT_SER_EXT|3|||0 +1|CTI_MVT_SER_KO|1|lieu_service_id IN [LI:CTI_SER_KO]|lieu_service_code|1 +1|CTI_MVT_SER_KO|2|||0 +1|CTI_MVT_SER_KO|3|||0 +1|CTI_MVT_SER_NULL|1|lieu_service_id = 0 OR lieu_service_id is null||1 +1|CTI_MVT_SER_NULL|2|||0 +1|CTI_MVT_SER_NULL|3|||0 +1|CTI_PRE_SUP_30|1|"SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, v_sejours_1.date_entree, v_sejours_1.code_sorti FROM activite.v_sejours_1 WHERE ((select valeur_date from activite.t_divers where code='NOW')- v_sejours_1.date_entree) >30 AND v_sejours_1.code_sorti<>'1' AND v_sejours_1.type_sejour <> '9' "||99 +1|CTI_PRE_SUP_30|2|||0 +1|CTI_PRE_SUP_30|3|||0 +1|CTI_SEJSMR_SUPP90|1|"SELECT + v_sejours_1.sejour_id, + v_sejours_1.no_sejour, + v_sejours_1.date_sortie, + v_sejours_1.date_entree, + v_sejours_1.code_sorti +FROM + activite.v_sejours_1 + JOIN activite.t_lieux_c on lieu_sortie_id = t_lieux_c.oid +WHERE + date(now()) - v_sejours_1.date_entree > 90 + AND v_sejours_1.code_sorti <> '1' + AND v_sejours_1.type_sejour <> '9' + AND t_lieux_c.type_t2a = '2' + AND v_sejours_1.mode_traitement_code <> '04' + AND NOT EXISTS ( + SELECT + v_sejours_1.no_sejour + FROM + activite.p_factures + WHERE + code_facture = '1' + AND v_sejours_1.no_sejour = p_factures.no_sejour + ) +"||99 +1|CTI_SEJSMR_SUPP90|2|||0 +1|CTI_SEJSMR_SUPP90|3|||0 +1|CTI_SEJ_AMB_03|1|"mode_traitement_code = '03' AND lieu_reference_unite_fonctionnelle_id IN [LI:CTI_UF_AMBU] AND nb_ambulatoires = 1"|lieu_reference_service_code|1 +1|CTI_SEJ_AMB_03|2|||0 +1|CTI_SEJ_AMB_03|3|||0 +1|CTI_SEJ_DUR_30|1|duree > 30|duree|0 +1|CTI_SEJ_DUR_30|2|||0 +1|CTI_SEJ_DUR_30|3|||0 +1|CTI_SEJ_DUR_NEG|1|date_sortie < date_entree|duree|0 +1|CTI_SEJ_DUR_NEG|2|||0 +1|CTI_SEJ_DUR_NEG|3|||0 +1|CTI_SEJ_MED_KO|1|medecin_adm_sejour_id IN [LI:CTI_MED_KO]|medecin_adm_sejour_code|0 +1|CTI_SEJ_MED_KO|2|||0 +1|CTI_SEJ_MED_KO|3|||0 +1|CTI_SEJ_MED_NULL|1|((medecin_adm_sejour_id = 0 OR medecin_adm_sejour_id is null)AND (type_sejour<>9))||0 +1|CTI_SEJ_MED_NULL|2|||0 +1|CTI_SEJ_MED_NULL|3|||0 +1|CTI_SEJ_SER_FINESS|1|"SELECT + v_sejours_1.sejour_id, + v_sejours_1.no_sejour, + v_sejours_1.date_sortie, + service_facturation_code +FROM + activite.v_sejours_1 + JOIN + ( + SELECT t_services_facturation.oid, t_services_facturation.code as service_facturation_code, t_finess.code AS finess_code + FROM activite.t_services_facturation + LEFT JOIN base.t_finess on t_finess.oid = t_services_facturation.finess_id + ) subview ON subview.oid = v_sejours_1.lieu_sortie_service_id +WHERE + subview.finess_code is null"|service_facturation_code|99 +1|CTI_SEJ_SER_FINESS|2|||0 +1|CTI_SEJ_SER_FINESS|3|||0 +1|CTI_UCD_INC_80|1|"DROP TABLE IF EXISTS w_res; CREATE TEMP TABLE w_res AS SELECT v_sejours_1.sejour_id ,v_sejours_1.no_sejour ,v_sejours_1.date_sortie ,type_sejour ,code_prevu ,v_factures_lignes_c_1.montant_facture ,array_to_string(array_agg(DISTINCT t_ucd.code),',') AS ucd_codes ,sum(sortie_montant - entree_montant) AS sortie_montant ,round(100*base.cti_division(sum(sortie_montant - entree_montant), v_factures_lignes_c_1.montant_facture),2) AS rapport FROM eco.p_sejours JOIN eco.p_mouvements_articles ON mouvement_id = p_mouvements_articles.oid JOIN activite.v_sejours_1 ON p_sejours.sejour_id = v_sejours_1.sejour_id LEFT JOIN base.t_finess ON v_sejours_1.finess = t_finess.code JOIN eco.t_ucd_c ON ucd_id = t_ucd_c.oid JOIN pmsi.t_ucd ON t_ucd_c.code = t_ucd.code LEFT JOIN pmsi.t_prestations ON t_ucd.prestation_defaut_id = t_prestations.oid LEFT JOIN pmsi.t_ucd_tarifs ON t_ucd_tarifs.ucd_id = t_ucd.oid AND DATE BETWEEN t_ucd_tarifs.date_debut AND LEAST(t_ucd_tarifs.date_fin, top_taa_date_fin) JOIN ( SELECT no_sejour ,sum(montant_facture) AS montant_facture FROM activite.v_factures_lignes_c_1 WHERE prestation_code = 'GHS' GROUP BY 1 ) v_factures_lignes_c_1 ON v_factures_lignes_c_1.no_sejour = p_sejours.no_sejour LEFT JOIN ( SELECT no_sejour ,ucd_id ,rubrique_facturation_id ,sum(montant_facture) AS montant_facture FROM activite.v_factures_lignes_c_5 GROUP BY 1,2,3 ) v_factures_lignes_c_5 ON p_sejours.no_sejour = v_factures_lignes_c_5.no_sejour AND ( rubrique_facturation_id IN ( SELECT to_id FROM activite.t_listes LEFT JOIN activite.t_listes_contenu ON liste_id = t_listes.oid WHERE t_listes.code = 'CTI_UCD_R' ) OR t_ucd_c.oid = v_factures_lignes_c_5.ucd_id ) WHERE p_mouvements_articles.ucd_id != 0 AND type_mouvement_id IN ( SELECT to_id FROM eco.t_classes JOIN eco.t_classes_sections ON classe_id = t_classes.oid JOIN eco.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code = 'CTI_TYPMVT' AND t_classes_sections.code = '01' ) AND (sortie_montant - entree_montant) != 0 AND v_factures_lignes_c_1.montant_facture > 0 AND v_factures_lignes_c_5.montant_facture IS NULL GROUP BY 1,2,3,4,5,6 HAVING base.cti_division(sum(sortie_montant), v_factures_lignes_c_1.montant_facture) > 0.8; SELECT sejour_id, no_sejour, date_sortie,ucd_codes, montant_facture, sortie_montant, rapport FROM w_res WHERE 1 = 1"|ucd_codes, montant_facture, sortie_montant, rapport|99 +1|CTI_UCD_INC_80|2|||0 +1|CTI_UCD_INC_80|3|||0 +1|CTI_UCD_NON_FACT|1|"SELECT v_sejours_1.sejour_id, v_sejours_1.no_sejour, v_sejours_1.date_sortie, t_ucd.code AS ucd_code, t_ucd_tarifs.date_debut AS date_debut_ucd, t_ucd_tarifs.date_fin AS date_fin_ucd, sortie_montant-entree_montant AS sortie_montant FROM eco.p_sejours JOIN eco.p_mouvements_articles ON mouvement_id = p_mouvements_articles.oid JOIN activite.v_sejours_1 ON p_sejours.sejour_id = v_sejours_1.sejour_id JOIN eco.t_ucd_c on ucd_id = t_ucd_c.oid JOIN pmsi.t_ucd on t_ucd_c.code = t_ucd.code JOIN pmsi.t_ucd_tarifs on t_ucd_tarifs.ucd_id = t_ucd.oid AND date BETWEEN t_ucd_tarifs.date_debut AND LEAST(t_ucd_tarifs.date_fin,top_taa_date_fin) LEFT JOIN activite.v_factures_lignes_c_5 on p_sejours.sejour_id = v_factures_lignes_c_5.sejour_id AND (rubrique_facturation_id IN (SELECT to_id FROM activite.t_listes JOIN activite.t_listes_contenu ON t_listes.oid = liste_id WHERE t_listes.code = 'CTI_UCD_R') OR v_factures_lignes_c_5.lpp_id = t_ucd_c.oid) WHERE p_mouvements_articles.ucd_id != 0 AND sortie_montant != 0 AND v_sejours_1.type_sejour = '1' AND v_factures_lignes_c_5.montant_facture is null"|ucd_code, date_debut_ucd, date_fin_ucd, sortie_montant|99 +1|CTI_UCD_NON_FACT|2|||0 +1|CTI_UCD_NON_FACT|3|||0 +1|CTI_VAL_SUP_20K|1|montant_encours>20000||2 +1|CTI_VAL_SUP_20K|2|||0 +1|CTI_VAL_SUP_20K|3|||0 diff --git a/db/data2/dbdata_activite_t_forme_activite.csv b/db/data2/dbdata_activite_t_forme_activite.csv new file mode 100644 index 0000000..805a910 --- /dev/null +++ b/db/data2/dbdata_activite_t_forme_activite.csv @@ -0,0 +1,46 @@ +oid|code|texte|texte_court +0|***|Non renseignée|Non renseignée +1|111|Hospitalisation complète MCO Médecine|Hospitalisation complète MCO Médecine +1|112|Hospitalisation complète MCO Chirurgie|Hospitalisation complète MCO Chirurgie +1|113|Hospitalisation complète MCO Obstétrique|Hospitalisation complète MCO Obstétrique +1|114|Hospitalisation complète MCO Esthétique|Hospitalisation complète MCO Esthétique +1|117|Hospitalisation complète MCO A préciser|Hospitalisation complète MCO A préciser +1|118|Hospitalisation complète MCO A préciser|Hospitalisation complète MCO A préciser +1|119|Hospitalisation complète MCO Autre|Hospitalisation complète MCO Autre +1|121|Hospitalisation de jour MCO Médecine|Hospitalisation de jour MCO Médecine +1|122|Hospitalisation de jour MCO Chirurgie|Hospitalisation de jour MCO Chirurgie +1|123|Hospitalisation de jour MCO Obstétrique|Hospitalisation de jour MCO Obstétrique +1|124|Hospitalisation de jour MCO Esthétique|Hospitalisation de jour MCO Esthétique +1|127|Hospitalisation de jour MCO A préciser|Hospitalisation de jour MCO A préciser +1|128|Hospitalisation de jour MCO A préciser|Hospitalisation de jour MCO A préciser +1|129|Hospitalisation de jour MCO Autre|Hospitalisation de jour MCO Autre +1|131|Séances de dialyse|Séances de dialyse +1|132|Séances de chimiothérapie|Séances de chimiothérapie +1|133|Séances de transfusion|Séances de transfusion +1|139|Autres séances|Autres séances +1|211|Hospitalisation complète SSR Soins de Suite Médicalisés|Hospitalisation complète SSR Soins de Suite Médicalisés +1|212|Hospitalisation complète SSR Rééducation Fonctionnelle|Hospitalisation complète SSR Rééducation Fonctionnelle +1|217|Hospitalisation complète SSR A préciser|Hospitalisation complète SSR A préciser +1|218|Hospitalisation complète SSR A préciser|Hospitalisation complète SSR A préciser +1|219|Hospitalisation complète SSR Autre|Hospitalisation complète SSR Autre +1|221|Hospitalisation de jour SSR Soins de Suite Médicalisés|Hospitalisation de jour SSR Soins de Suite Médicalisés +1|222|Hospitalisation de jour SSR Rééducation Fonctionnelle|Hospitalisation de jour SSR Rééducation Fonctionnelle +1|227|Hospitalisation de jour SSR A préciser|Hospitalisation de jour SSR A préciser +1|228|Hospitalisation de jour SSR A préciser|Hospitalisation de jour SSR A préciser +1|229|Hospitalisation de jour SSR Autre|Hospitalisation de jour SSR Autre +1|311|Hospitalisation complète PSY|Hospitalisation complète PSY +1|317|Hospitalisation complète PSY A préciser|Hospitalisation complète PSY A préciser +1|318|Hospitalisation complète PSY A préciser|Hospitalisation complète PSY A préciser +1|319|Hospitalisation complète PSY Autre|Hospitalisation complète PSY Autre +1|321|Hospitalisation de jour PSY|Hospitalisation de jour PSY +1|327|Hospitalisation de jour PSY A préciser|Hospitalisation de jour PSY A préciser +1|328|Hospitalisation de jour PSY A préciser|Hospitalisation de jour PSY A préciser +1|329|Hospitalisation de jour PSY Autre|Hospitalisation de jour PSY Autre +1|401|Hospitalisation à Domicile|Hospitalisation à Domicile +1|501|EHPAD|EHPAD +1|502|USLD|USLD +1|503|Foyer de vie|Foyer de vie +1|701|Activité SE|Activité SE +1|702|Urgences Externes|Urgences Externes +1|709|Autres externes|Autres externes +1|999|Autres formes d'activité|Autres formes d'activité diff --git a/db/data2/dbdata_activite_t_indicateur_theme.csv b/db/data2/dbdata_activite_t_indicateur_theme.csv new file mode 100644 index 0000000..c69b5ff --- /dev/null +++ b/db/data2/dbdata_activite_t_indicateur_theme.csv @@ -0,0 +1,50 @@ +oid|code|texte|level|parent_code +1|--0|Source|1| +1|--1|Thèmes principaux|1| +1|--2|Période|1| +1|--3|Rapports et essentiels|1| +1|--4|Type de donnée|1| +1|--DACTE|Date acte|2|--2 +1|--DCOMPTABLE|Date comptable|2|--2 +1|--DFACTURE|Date facture|2|--2 +1|--DGROUPAGE|Date groupage|2|--2 +1|--DINTERVENTION|Date intervention|2|--2 +1|--DJOUR|Date jour|2|--2 +1|--DMOUVEMENT|Date mouvement|2|--2 +1|--DSORTIE|Date sortie|2|--2 +1|--DVENTES|Date ventes|2|--2 +1|--R1|Rapports CTI|2|--3 +1|--R3|Rapports Etablissement|2|--3 +1|--S1|Indicateurs CTI|2|--0 +1|--S2|Indicateurs Groupe|2|--0 +1|--S3|Indicateurs spécifiques Etablissement|2|--0 +1|--T0001|Superviseur d'activité|2|--1 +1|--T0002|Occupation|2|--1 +1|--T0003|Places|2|--1 +1|--T0004|Facturation Clinique|2|--1 +1|--T0005|Clients Clinique|2|--1 +1|--T0006|Facturation Honoraires|2|--1 +1|--T0007|Clients Honoraire|2|--1 +1|--T0008|En-cours|2|--1 +1|--T0011|Occupation bloc|2|--1 +1|--T0097|Calendrier|2|--1 +1|-TS|Type de séjour|1| +1|-TS1|Hospitalisé|2|-TS +1|-TS2|Ambulatoires|2|-TS +1|-TS3|Externes|2|-TS +1|-TS5|Séances|2|-TS +1|CA|Chiffre d'affaire|2|--4 +1|CACP|C.A. Comptabilisé|3|CA +1|CAF|C.A. Facturé|3|CA +1|CAHON|C.A. Honoraire|3|CA +1|CARG|C.A. Réglé|3|CA +1|CASL|C.A. Solde|3|CA +1|CAV|C.A. Valorisé|3|CA +1|CAVF|C.A. Facturé et Valorisé|3|CA +1|NBENT|Nombre Entrées|3|NOMBRE +1|NBJOU|Nombre Jours|3|NOMBRE +1|NBRUB|Nombre Rubriques|3|NOMBRE +1|NBSEJ|Nombre Séjours|3|NOMBRE +1|NBSOR|Nombre Sorties|3|NOMBRE +1|NOMBRE|Nombre|2|--4 +1|TAUX|Taux|2|--4 diff --git a/db/data2/dbdata_activite_t_indicateurs.csv b/db/data2/dbdata_activite_t_indicateurs.csv new file mode 100644 index 0000000..affc3c6 --- /dev/null +++ b/db/data2/dbdata_activite_t_indicateurs.csv @@ -0,0 +1,506 @@ +oid|code|table_name|texte|entete_etendue|entete|column_name|is_cti|total_function|output_format|width|dimension_date_1|dimension_date_2|dimension_date_3|dimension_date_4|dimension_date_5|dimension_date|indicateur_associe_1_code|indicateur_associe_2_code|indicateur_associe_3_code|indicateur_associe_4_code|indicateur_associe_5_code|indicateur_associe_6_code|indicateur_associe_7_code|indicateur_associe_8_code|indicateur_associe_9_code|indicateur_associe_10_code|indicateur_associe_11_code|indicateur_associe_12_code|indicateur_associe_13_code|indicateur_associe_14_code|indicateur_associe_15_code|indicateur_associe_16_code|indicateur_associe_17_code|indicateur_associe_18_code|indicateur_associe_19_code|indicateur_associe_20_code|indicateur_reference_code|is_template|indicateur_template_code|variable_definition_1|variable_definition_2|variable_definition_3|variable_value_1|variable_value_2|variable_value_3|variable_value_text_1|variable_value_text_2|variable_value_text_3|description|theme_1_code|theme_2_code|theme_3_code|theme_4_code|theme_5_code|theme_6_code|theme_7_code|theme_8_code|theme_9_code +1|CTIAGEMOY|*CALC|Age moyen Hospit et Ambu|Age moyen Hospit et Ambu|Age moy|base.cti_division([1], [2])|1|*CALC|#,0|0| | | | | | |CTIAGESUM|CTI_NB_SEJ||||||||||||||||||||0|||||||||||Age moyen des patients ayant effectués des séjours dans l'établissement (hors séances)|NBSEJ|||||||| +1|CTIAGESUM|SEJOURS|Somme des ages|Somme des ages|Somme Ages|CASE WHEN type_sejour = '1' OR type_sejour = '2' THEN age ELSE null END|1|SUM|#|0|2| | | | |2||||||||||||||||||||||0|||||||||||Somme les o/ooges des patients des séjours en sévérité de type '1' et '2'||||||||| +1|CTI_ADM|OCCUPATION|NB Admissions sur la période|Admissions sur la période|Adm Per|nb_ambulatoires + CASE WHEN type_sejour = '5' THEN 0 ELSE nb_seances END + nb_externes + nb_entrees_directes|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'admissions de patients sur la période choisie|NBENT|||||||| +1|CTI_ADMHCP|OCCUPATION|SSR - Admissions sur la période (Hospitalisaiton complète)|SSR - Admissions sur la période (Hospitalisaiton complète)|SSR Adm Per HCOMP|CASE WHEN mode_traitement_id = '3' THEN GREATEST(nb_ambulatoires, nb_seances, nb_externes, nb_entrees_directes) ELSE 0 END|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'admissions de patients sur la période choisie en Hospitalisation Complète||||||||| +1|CTI_ADMHDJ|OCCUPATION|SSR - Admissions sur la période (Hospitalisaiton de jour)|SSR - Admissions sur la période (Hospitalisaiton de jour)|SSR Adm Per HDJ|CASE WHEN mode_traitement_id = '4' THEN GREATEST(nb_ambulatoires, nb_seances, nb_externes, nb_entrees_directes) ELSE 0 END|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'admissions de patients sur la période choisie en Hospitalisation de Jour||||||||| +1|CTI_ADMPREHCP|*CALC|SSR - Admissions avant période (Hospitalisation complète)|SSR - Admissions avant période (Hospitalisation complète)|SSR Adm Pre H COMP|[1] - [2]|1|*CALC|#|60| | | | | | |CTI_NBSEJCP|CTI_ADMHCP||||||||||||||||||||0|||||||||||Nombre d'admissions de patients avant la période choisie en Hospitalisation Complète||||||||| +1|CTI_ADMPREHDJ|*CALC|SSR - Admissions avant période (Hospitalisation de jour)|SSR - Admissions avant période (Hospitalisation de jour)|SSR Adm Pre HDJ|[1] - [2]|1|*CALC|#|60| | | | | | |CTI_NBSEJHDJ|CTI_ADMHDJ||||||||||||||||||||0|||||||||||Nombre d'admissions de patients avant la période choisie en Hospitalisation de Jour||||||||| +1|CTI_ADM_PRE|*CALC|NB Admissions avant période|Admissions avant période|Adm Pre|[1] - [2]|1|*CALC|#|60| | | | | | |CTI_NBSEJO|CTI_ADM||||||||||||||||||||0|||||||||||Nombre d'admissions de patients avant la période choisie|NBENT|NBSEJ||||||| +1|CTI_ADM_PRE_PER|*CALC|NB Admissions avant période|Admissions avant période|Adm < Per|[1] - [2]|1|*CALC|#|60| | | | | | |CTI_NBSEJO|CTI_NBENT_SAES||||||||||||||||||||0|||||||||||Nombre d'admissions de patients avant la période choisie|-TS1|-TS2|-TS3|-TS5|NBENT|NBSEJ||| +1|CTI_ATU_MT_ENC|FACTURATION_CLINIQUE|CA ATU Valorisé Clinique|Montant ATU Valorisé Clinique|Montant ATU Valorisé Clinique|CASE WHEN prestation_code IN ('ATU','FPU') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des ATU valorisés|CAV|||||||| +1|CTI_ATU_MT_FAC|FACTURATION_CLINIQUE|CA ATU Facturé|Montant ATU facturé|Montant ATU facturé|CASE WHEN prestation_code IN('ATU') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des ATU facturés|CAF|||||||| +1|CTI_ATU_MT_TOT|FACTURATION_CLINIQUE|CA ATU Facturé + Valorisé|Montant ATU Facturé + Valorisé|Montant ATU Facturé + Valorisé|CASE WHEN prestation_code IN ('ATU','FPU') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des ATU facturés et valorisés|CAVF|||||||| +1|CTI_ATU_NB_ENC|FACTURATION_CLINIQUE|NB Rubriques ATU Valorisés|Nombre ATU Valorisés|Nombre ATU Valorisés|CASE WHEN prestation_code IN ('ATU','FPU') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre d'ATU valorisés|NBRUB|||||||| +1|CTI_ATU_NB_FAC|FACTURATION_CLINIQUE|NB Rubriques ATU facturés|Nombre ATU facturés|Nombre ATU facturés|CASE WHEN prestation_code IN ('ATU','FPU') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre d'ATU facturés|NBRUB|||||||| +1|CTI_ATU_NB_TOT|FACTURATION_CLINIQUE|NB Rubriques ATU Facturés + Valorisés|Nombre ATU Facturé + Valorisé|Nombre ATU Facturé + Valorisé|CASE WHEN prestation_code IN ('ATU','FPU') THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END|1|SUM|#|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre d'ATU facturés et valorisés|NBRUB|||||||| +1|CTI_AUT_MT_ENC|FACTURATION_CLINIQUE|CA AUTRE Valorisé Clinique|"Montant ""Autres"" Valorisé Clinique"|"Montant ""Autres"" Valorisé Clinique"|CASE WHEN type_sejour NOT IN('1', '2', '3', '5') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des 'autres' valorisés|CAV|||||||| +1|CTI_AUT_MT_FAC|FACTURATION_CLINIQUE|CA AUTRE Facturé|"Montant ""Autres"" Facturé"|"Montant ""Autres"" Facturé"|CASE WHEN type_sejour NOT IN('1', '2', '3', '5') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des 'autres' facturés|CAF|||||||| +1|CTI_AUT_MT_TOT|FACTURATION_CLINIQUE|CA AUTRE Facturé + Valorisé|"Montant ""Autres"" Facturé + Valorisé"|"Montant ""Autres"" Facturé + Valorisé"|CASE WHEN type_sejour NOT IN('1', '2', '3', '5') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des 'autres' facturés et valorisés|CAVF|||||||| +1|CTI_AUT_NBAUT|OCCUPATION|"NB Séjours ""Autres"" (occupation)"|"Nombres de séjours ""Autres"""|"Nombres de séjours ""Autres"""|DISTINCT CASE WHEN (code_prevu = 0 and type_sejour NOT IN('1', '2', '3', '5')) THEN no_sejour ELSE NULL END|1|COUNT|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séjours 'autres' de l'établissement|NBSEJ|||||||| +1|CTI_AUT_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA AUTRE Valorisés Clinique|"Nombre séjours ""Autres"" Valorisés"|"Nombre séjours ""Autres"" Valorisés"|DISTINCT CASE WHEN (est_ligne_facturee = '0' and type_sejour NOT IN('1', '2', '3', '5')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours 'autres' valorisés|NBSEJ|||||||| +1|CTI_AUT_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA AUTRE facturés Clinique|"Séjours ""Autres"" facturés"|"Séjours ""Autres"" facturés"|DISTINCT CASE WHEN (est_ligne_facturee = '1' and type_sejour NOT IN('1', '2', '3', '5')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours 'autres' facturés|NBSEJ|||||||| +1|CTI_AUT_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA AUTRE Facturés + Valorisés Clinique|"Nombre de séjours ""Autres"" Facturés + Valorisés"|"Nombre de séjours ""Autres"" Facturés + Valorisés"|DISTINCT CASE WHEN ( type_sejour NOT IN('1', '2', '3', '5')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours 'autres' facturés et valorisés|NBSEJ|||||||| +1|CTI_CACPTENC_C_12M|*CALC|CA Activité comptable moyen mensuel 12 derniers mois (encours CTI)|CA moyen activité comptable|CA moyen activite comptable|[1]+[2]|1|*CALC|0E|0| | | | | | |CTI_CCAENCVAR_C_12M|CTI_MTCPTCLI_C_12M||||||||||||||||||||0|||||||||||Chiffre d'Affaires mensuel moyen de l'encours des 12 derniers mois|CACP|CAV||||||| +1|CTI_CALNBJ_OUVRE|CALENDRIER|Nombre de jours ouvrés|Nombre de jours ouvrés|Jours ouvrés|nb_jour_ouvre|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de jours ouvré de la période||||||||| +1|CTI_CAMFAC1_DC|*CALC|CA TOTAL Moyen Facturé [HOSP] (date sortie)|CA Moyen Total facturé (Hospitalisés) (date sortie)|CA Moyen Total facturé (Hospitalisés) (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours hospitalisés (1 nuit minimum) facturés (date sortie)|-TS1|CAF|NBSEJ|||||| +1|CTI_CAMFAC2_DC|*CALC|CA TOTAL Moyen Facturé [AMBU] (date sortie)|CA Moyen Total facturé (Ambulatoire) (date sortie)|CA Moyen Total facturé (Ambulatoire) (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours ambulatoires (0 nuits) facturés (date sortie)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAMFAC3_DC|*CALC|CA TOTAL Moyen Facturé [EXT] (date sortie)|CA Moyen Total facturé (Externe) (date sortie)|CA Moyen Total facturé (Externe) (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours externes facturés (date sortie)|-TS3|CAF|NBSEJ|||||| +1|CTI_CAMFAC5_DC|*CALC|CA TOTAL Moyen Facturé [SEANCE] (date sortie)|CA Moyen Total facturé (Séances) (date sortie)|CA Moyen Total facturé (Séances) (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séances facturés (date sortie)|-TS5|CAF|NBSEJ|||||| +1|CTI_CAMFAC_CS|*CALC|CA TOTAL Moyen Facturé (date sortie)|CA Moyen facturé (date sortie)|CA Moyen facturé (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours facturés (date sortie)|CAF|NBSEJ||||||| +1|CTI_CAMFAC_DC|*CALC|CA TOTAL Moyen Facturé (date vente)|CA Moyen facturé (date_ventes)|CA Moyen facturé (date_ventes)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours facturés (date vente)|CAF|NBSEJ||||||| +1|CTI_CAM_FACT|*CALC|CA moyen Facturé etablissement|CA moyen facturé etablissement|CA moyen facturé|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | |CTI_CA_FAC_ETAB|CTI_NBSEJO||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé moyen|CAF|NBSEJ||||||| +1|CTI_CAM_MT1_FAC|*CALC|CA SEJOUR moyen [HOSP]|CA moyen SEJOUR|CA moyen SEJOUR|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours hospitalisés (1 nuit minimum)|-TS1|CAF|NBSEJ|||||| +1|CTI_CAM_MT2_FAC|*CALC|CA SEJOUR moyen [AMBU]|CA moyen SEJOUR|CA moyen SEJOUR|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours ambulatoires (0 nuits)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAM_MT5_FAC|*CALC|CA SEJOUR moyen [SEANCE]|CA moyen|CA moyen|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séances|-TS5|CAF||||||| +1|CTI_CAM_MTDA1_FAC|*CALC|CA SEJOUR moyen [HOSP] (date acte)|CA moyen SEJOUR|CA moyen SEJOUR|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours hospitalisés (1 nuit minimum) (date acte)|-TS1|CAF|NBSEJ|||||| +1|CTI_CAM_MTDA1_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [HOSP] (date acte)|CA moyen SEJOUR Facturé + Valorisé|CA moyen SEJOUR Facturé + Valorisé|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours hospitalisés (1 nuit minimum) (date acte)|-TS1|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDA2_FAC|*CALC|CA SEJOUR moyen [AMBU] (date acte)|CA moyen SEJOUR (date acte)|CA moyen SEJOUR (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours ambulatoires (0 nuits) (date acte)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAM_MTDA2_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [AMBU] (date acte)|CA moyen SEJOUR Facturé + Valorisé (date acte)|CA moyen SEJOUR Facturé + Valorisé (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours ambulatoires (0 nuits) (date acte)|-TS2|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDA5_FAC|*CALC|CA SEJOUR moyen [SEANCE] (date acte)|CA moyen|CA moyen|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séances (date acte)|-TS5|CAF|NBSEJ|||||| +1|CTI_CAM_MTDA5_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [SEANCE] (date acte)|CA moyen SEJOUR Facturé + Valorisé (Séances)|CA moyen SEJOUR Facturé + Valorisé (Séances)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séances (date acte)|-TS5|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDA8_FAC|*CALC|CA SEJOUR moyen (date acte)|CA moyen SEJOUR (date acte)|CA moyen SEJOUR (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours (date acte)|CAF|NBSEJ||||||| +1|CTI_CAM_MTDA8_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé (date acte)|CA moyen SEJOUR Facturé + Valorisé (date acte)|CA moyen SEJOUR Facturé + Valorisé (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours (date acte)|CAVF|NBSEJ||||||| +1|CTI_CAM_MTDS1_FAC|*CALC|CA SEJOUR moyen [HOSP] (date sortie)|CA moyen SEJOUR|CA moyen SEJOUR|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé des séjours hospitalisés (1 nuit minimum) (date sortie)|-TS1|CAF|NBSEJ|||||| +1|CTI_CAM_MTDS1_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [HOSP] (date sortie)|CA moyen SEJOUR Facturé + Valorisé|CA moyen SEJOUR Facturé + Valorisé|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours hospitalisés (1 nuit minimum) (date sortie)|-TS1|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDS2_FAC|*CALC|CA SEJOUR moyen [AMBU] (date sortie)|CA moyen SEJOUR (date sortie)|CA moyen SEJOUR (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours ambulatoires (0 nuits) (date sortie)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAM_MTDS2_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [AMBU] (date sortie)|CA moyen SEJOUR Facturé + Valorisé (date sortie)|CA moyen SEJOUR Facturé + Valorisé (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours ambulatoires (0 nuits) (date sortie)|-TS2|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDS5_FAC|*CALC|CA SEJOUR moyen [SEANCE] (date sortie)|CA moyen|CA moyen|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séances (date sortie)|-TS5|CAF|NBSEJ|||||| +1|CTI_CAM_MTDS5_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [SEANCE] (date sortie)|CA moyen SEJOUR Facturé + Valorisé (Séances)|CA moyen SEJOUR Facturé + Valorisé (Séances)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séances (date sortie)|-TS5|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDS8_FAC|*CALC|CA SEJOUR moyen (date sortie)|CA moyen SEJOUR (date sortie)|CA moyen SEJOUR (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours (date sortie)|CAF|NBSEJ||||||| +1|CTI_CAM_MTDS8_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé (date sortie)|CA moyen SEJOUR Facturé + Valorisé (date sortie)|CA moyen SEJOUR Facturé + Valorisé (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours (date sortie)|CAVF|NBSEJ||||||| +1|CTI_CAM_MTDV1_FAC|*CALC|CA SEJOUR moyen [HOSP] (date vente)|CA moyen SEJOUR|CA moyen SEJOUR|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé des séjours hospitalisés (1 nuit minimum) (date vente)|-TS1|CAF|NBSEJ|||||| +1|CTI_CAM_MTDV1_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [HOSP] (date vente)|CA moyen SEJOUR Facturé + Valorisé|CA moyen SEJOUR Facturé + Valorisé|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours hospitalisés (1 nuit minimum) (date vente)|-TS1|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDV2_FAC|*CALC|CA SEJOUR moyen [AMBU] (date vente)|CA moyen SEJOUR (date vente)|CA moyen SEJOUR (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours ambulatoires (0 nuits) (date vente)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAM_MTDV2_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [AMBU] (date vente)|CA moyen SEJOUR Facturé + Valorisé (date vente)|CA moyen SEJOUR Facturé + Valorisé (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours ambulatoires (0 nuits) (date vente)|-TS2|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDV5_FAC|*CALC|CA SEJOUR moyen [SEANCE] (date vente)|CA moyen|CA moyen|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séances (date vente)|-TS5|CAF|NBSEJ|||||| +1|CTI_CAM_MTDV5_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé [SEANCE] (date vente)|CA moyen SEJOUR Facturé + Valorisé (Séances)|CA moyen SEJOUR Facturé + Valorisé (Séances)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séances (date vente)|-TS5|CAVF|NBSEJ|||||| +1|CTI_CAM_MTDV8_FAC|*CALC|CA SEJOUR moyen (date vente)|CA moyen SEJOUR (date vente)|CA moyen SEJOUR (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des séjours (date vente)|CAF|NBSEJ||||||| +1|CTI_CAM_MTDV8_TOT|*CALC|CA SEJOUR Moyen Facturé + Valorisé (date vente)|CA moyen SEJOUR Facturé + Valorisé (date vente)|CA moyen SEJOUR Facturé + Valorisé (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen facturé et valorisé des séjours (date vente)|CAVF|NBSEJ||||||| +1|CTI_CAM_SOINS_CPT|*CALC|CA SOINS Moyen comptabilisé (date vente)|CA moyen Soins (date acte)|CA moyen Soins (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | |CTI_CA_T2A_CPT|CTI_NBSEJ_SOINS_CPT||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé moyen des soins (date vente)|CACP|NBSEJ||||||| +1|CTI_CAM_SOINS_FACVAL#2|*CALC|CA SOINS Moyen Facturé + Valorisé (date sortie)|CA moyen Soins (date sortie)|CA moyen Soins (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé moyen des soins (date sortie)|CAVF|NBSEJ||||||| +1|CTI_CAT_MT1_FAC|*CALC|CA SOINS Moyen [HOSP]|CA moyen Soins|CA moyen Soins|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins effectués lors des séjours hospitalisés (1 nuit minimum)|-TS1|CAF|NBSEJ|||||| +1|CTI_CAT_MT2_FAC|*CALC|CA SOINS Moyen [AMBU]|CA moyen Soins|CA moyen Soins|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins effectués lors des séjours ambulatoires (0 nuits)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAT_MT5_FAC|*CALC|CA SOINS Moyen [SEANCE]|CA moyen|CA moyen|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins effectués lors des séances|-TS5|CAF||||||| +1|CTI_CAT_MTD18_FACVAL|*CALC|CA SOINS Moyen Facturé + Valorisé (date acte)|CA moyen Soins (date acte)|CA moyen Soins (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | |CTI_T2A_MT_TOT|CTI_EMC||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé moyen des soins (date acte)|CAVF|||||||| +1|CTI_CAT_MTDA2_FAC|*CALC|CA SOINS Moyen [AMBU] (date acte)|CA moyen Soins (date acte)|CA moyen Soins (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins réalisés lors des séjours ambulatoires (0 nuits) (date acte)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAT_MTDA5_FAC|*CALC|CA SOINS Moyen [SEANCE] (date acte)|CA moyen|CA moyen|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins réalisés lors des séances (date acte)|-TS5|CAF|NBSEJ|||||| +1|CTI_CAT_MTDA8_FAC|*CALC|CA SOINS Moyen (date acte)|CA moyen Soins (date acte)|CA moyen Soins (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins (date acte)|CAF|NBSEJ||||||| +1|CTI_CAT_MTDA_FAC|*CALC|CA SOINS Moyen [HOSP] (date acte)|CA moyen Soins|CA moyen Soins|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0||||||||||||-TS1|CAF|NBSEJ|||||| +1|CTI_CAT_MTDS1_FAC|*CALC|CA SOINS Moyen [HOSP] (date sortie)|CA moyen Soins|CA moyen Soins|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins réalisés lors des séjours hospitalisés (1 nuit minimum) (date sortie)|-TS1|CAF|NBSEJ|||||| +1|CTI_CAT_MTDS2_FAC|*CALC|CA SOINS Moyen [AMBU] (date sortie)|CA moyen Soins (date sortie)|CA moyen Soins (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins réalisés lors des séjours ambulatoires (0 nuits) (date sortie)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAT_MTDS5_FAC|*CALC|CA SOINS Moyen [SEANCE] (date sortie)|CA moyen|CA moyen|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins réalisés lors des séances (date sortie)|-TS5|CAF|NBSEJ|||||| +1|CTI_CAT_MTDS8_FAC|*CALC|CA SOINS Moyen (date sortie)|CA moyen Soins (date sortie)|CA moyen Soins (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins (date sortie)|CAF|NBSEJ||||||| +1|CTI_CAT_MTDV1_FAC|*CALC|CA SOINS Moyen [HOSP] (date vente)|CA moyen Soins|CA moyen Soins|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins réalisés lors des séjours hospitalisés (1 nuit minimum) (date vente)|-TS1|CAF|NBSEJ|||||| +1|CTI_CAT_MTDV2_FAC|*CALC|CA SOINS Moyen [AMBU] (date vente)|CA moyen Soins (date vente)|CA moyen Soins (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins réalisés lors des séjours ambulatoires (0 nuits) (date vente)|-TS2|CAF|NBSEJ|||||| +1|CTI_CAT_MTDV5_FAC|*CALC|CA SOINS Moyen [SEANCE] (date vente)|CA moyen|CA moyen|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins réalisés lors des séances (date vente)|-TS5|CAF|NBSEJ|||||| +1|CTI_CAT_MTDV8_FAC|*CALC|CA SOINS Moyen (date vente)|CA moyen Soins (date vente)|CA moyen Soins (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des soins (date vente)|CAF|NBSEJ||||||| +1|CTI_CA_COMPT|SEJOURS|CA comptabilisé total|CA comptabilisé etablissement|CA Comptabilisé|montant_comptabilise|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé total||||||||| +1|CTI_CA_COMPT_EXT|SEJOURS|CA comptabilisé (Autres- Externes)|CA comptabilisé (Autres- Externes)|CA comptabilisé (Autres)|CASE WHEN type_sejour = '3' THEN montant_comptabilise ELSE NULL END|1|SUM|#E|70|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé des séjours Autres et Externes|-TS3|||||||| +1|CTI_CA_COMPT_HC|SEJOURS|CA comptabilis?ospitalisation complète|CA comptabilisé hospitalisation complète|CA comptabilisé (HC)|CASE WHEN type_sejour = '1' THEN montant_comptabilise ELSE NULL END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé des séjours en Hospitalisation Complète (1 nuit minimum)||||||||| +1|CTI_CA_COMP_HJ|SEJOURS|CA comptrabilisé (Hospitalisation de jour)|CA comptrabilisé (Hospitalisation de jour)|CA comptrabilisé (HJ)|CASE WHEN type_sejour = '2' OR type_sejour = '5' THEN montant_comptabilise ELSE NULL END|1|SUM|#E|70|4| | | | |4||||||||||||||||||||||0|||||||||||||||||||| +1|CTI_CA_EXP_ETAB|SEJOURS|CA expédié|CA expédié établissement |CA expédié|CASE WHEN nb_non_expedie <> 1 THEN montant_facture ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures expédiées|CAF|||||||| +1|CTI_CA_EXP_EXT|SEJOURS|CA expédié (Autres-externes)|CA expédié (Autres-externes)|CA expédié (Autres)|CASE WHEN type_sejour = '3' AND nb_non_expedie <> 1 THEN montant_facture ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures expédiées en Autres et Externes|-TS3|CAF||||||| +1|CTI_CA_EXP_HC|SEJOURS|CA expédié (hospitalisation complète)|CA expédié (hospitalisation complète)|CA expédié (HC)|CASE WHEN type_sejour = '1' AND nb_non_expedie <> 1 THEN montant_facture ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures expédiées pour des séjours en Hospitalisation Complète (1 nuit minimum)|CAF|||||||| +1|CTI_CA_EXP_HJ|SEJOURS|CA expédié (Hospitalisation de jour)|CA expédié (Hospitalisation de jour)|CA expédié (HJ)|CASE WHEN (type_sejour = '2' OR type_sejour = '5') AND nb_non_expedie <> 1 THEN montant_facture ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures expédiées pour des séjours en Hospitalisation de Jour (0 nuits)|CAF|||||||| +1|CTI_CA_FACT_EXT|SEJOURS|CA Facturé (Autres = externes)|CA facturé (Autres = externes)|CA facturé (Autres)|CASE WHEN type_sejour = '3' THEN montant_facture ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé en Autres et Externes|-TS3|CAF||||||| +1|CTI_CA_FACT_HC|SEJOURS|CA Facturé hospitalisation complète|CA facturé hospitalisation complète|CA facturé (HC)|CASE WHEN type_sejour = '1' THEN montant_facture ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé en Hospitalisation Complète (1 nuit minimum)|CAF|||||||| +1|CTI_CA_FACT_HJ|SEJOURS|CA Facturé (Hospitalisation de jour)|CA facturé (Hospitalisation de jour)|CA facturé (hj)|CASE WHEN type_sejour = '2' OR type_sejour = '5' THEN montant_facture ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé en Hospitalisation de Jour (0 nuits)|CAF|||||||| +1|CTI_CA_FACT_VAL|SEJOURS|CA Total|CA Total (Facturé + valorisé)|CA Total|montant_facture_c + montant_encours_c|1|SUM|#E|80|2| | | | |2||||||||||||||||||||||0||||||||||||CAVF|||||||| +1|CTI_CA_FACT_VAL_HC|SEJOURS|CA Facturé + Ca Valorisé (hospitalisation complète)|CA facturé + Ca valorisé (hospitalisation complète)|CA facturé + Ca valorisé (hc)|CASE WHEN type_sejour = '1' THEN montant_facture + montant_encours ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours en Hospitalisation Complète (1 nuit minimum)||||||||| +1|CTI_CA_FAC_ETAB|SEJOURS|CA Facturé Etablissement|CA facturé etablissement|CA facturé|montant_facture_c|1|SUM|#E|80|2| | | | |2||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé|CAF|||||||| +1|CTI_CA_FAC_VAL_EXT|*CALC|CA Facturé + Valorisé (Autres-Externes)|CA facturé + valorisé (Autres-Externes)|CA facturé + valorisé (Autres)|[1]+[2]|1|*CALC|#E|80| | | | | | |CTI_CA_FACT_EXT|CTI_CA_VAL_EXT||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours Externes|-TS3|CAF||||||| +1|CTI_CA_FAC_VAL_EXT-2|*CALC|CA facturé + valorisé (Autres-Externes)|CA facturé + valorisé (Autres-Externes)|CA facturé + valorisé (Autres)|[1] + [2]|1|*CALC|#E|80| | | | | | |CTI_CA_FACT_EXT|CTI_CA_VAL_EXT||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours Externes|-TS3|CAF|CAV|||||| +1|CTI_CA_FAC_VAL_HJ|SEJOURS|CA Facturé + Valorisé (Hospitalisation de jour)|CA facturé + valorisé (Hospitalisation de jour)|CA facturé + valorisé (HJ)|CASE WHEN type_sejour = '2' OR type_sejour = '5' THEN montant_facture + montant_encours ELSE NULL END |1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours en Hospitalisation de jour (0 nuits)||||||||| +1|CTI_CA_MOY_FACT_HC|*CALC|CA moyen Facturé hospitalisation complète|CA moyen facturé hospitalisation complète|CA moyen facturé (HC)|base.cti_division([1] , [2])|1|*CALC|#E|60| | | | | | |CTI_CA_FACT_HC|CTI_NBSEJ_HC||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé moyen des séjours en Hospitalisation Complète|CAF|NBSEJ||||||| +1|CTI_CA_MOY_FACT_VAL_ETAB|*CALC|CA moyen Facturé + Valorisé (Etablissement)|CA moyen facturé + valorisé (Etablissement)|CA moyen facturé + valorisé|base.cti_division([1]+[2],[3])|1|*CALC|#E|60| | | | | | |CTI_CA_FAC_ETAB|CTI_CA_VAL_ETAB|CTI_NBSEJO|||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé moyen de l'établissement|CAF|NBSEJ||||||| +1|CTI_CA_MOY_FAC_EXT|*CALC|CA moyen Facturé (Autres = externes)|CA moyen facturé (Autres = externes)|CA moyen facturé (Autres)|base.cti_division([1] , [2])|1|*CALC|#E|60| | | | | | |CTI_CA_FACT_EXT|CTI_NBSEJ_EXT||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé moyens des séjours Externes|-TS3|CAF|NBSEJ|||||| +1|CTI_CA_MOY_FAC_HJ|*CALC|CA moyen Facturé (Hospitalisation de jour)|CA moyen facturé (Hospitalisation de jour)|CA moyen facturé (HJ)|base.cti_division([1] , [2])|1|*CALC|#E|60| | | | | | |CTI_CA_FACT_HJ|CTI_NBSEJ_HJ||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé moyen des séjours en Hospitalisation de Jour|CAF|NBSEJ||||||| +1|CTI_CA_MOY_FAC_VAL_EXT|*CALC|CA moyen Facturé + Valorisé (Autres-Externes)|||base.cti_division([1] + [2],[3])|1|*CALC||0| | | | | | |CTI_CA_FACT_EXT|CTI_CA_VAL_EXT|CTI_NBSEJ_EXT|||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours Externes|-TS3|CAF|NBSEJ|||||| +1|CTI_CA_MOY_FAC_VAL_HJ|*CALC|CA moyen Facturé + Valorisé (Hospitalisation de jour)|CA moyen facturé + valorisé (Hospitalisation de jour)|CA moyen facturé + valorisé (HJ)|base.cti_division([1] , [2])|1|*CALC|#E|60| | | | | | |CTI_CA_FAC_VAL_HJ|CTI_NBSEJ_HJ||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours en Hospitalisation de Jour|NBSEJ|||||||| +1|CTI_CA_MOY_FCT_VAL_HC|*CALC|CA moyen Facturé + Valorisé (hospitalisation complète)|CA moyen facturé + valorisé (hospitalisation complète)|CA moyen facturé + valorisé (HC)|base.cti_division([1] , [2])|1|*CALC|#E|70| | | | | | |CTI_CA_FACT_VAL_HC|CTI_NBSEJ_HC||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_CA_NON_EXP_ETAB|SEJOURS|CA restant à expédier|CA restant à expédier|CA restant à expédier|montant_non_expedie_c|1|SUM|#E|0|2| | | | |2||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures non expédiées||||||||| +1|CTI_CA_NON_EXP_EXT|SEJOURS|CA restant à expédier (Autres-Externes)|CA restant à expédier (Autres-Externes)|CA non expédier (Autres)|CASE WHEN type_sejour = '3' THEN montant_non_expedie ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures non expédiées des séjours Externes|-TS3|||||||| +1|CTI_CA_NON_EXP_HC|SEJOURS|CA restant à expédier (hospitalisation complète)|CA restant à expédier (hospitalisation complète)|CA restant à expédier (HC)|CASE WHEN type_sejour = '1' THEN montant_non_expedie ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures non expédiées des séjours en Hospitalisation Complète||||||||| +1|CTI_CA_NON_EXP_HJ|SEJOURS|CA restant à expédier (Hospitalisation de jour)|CA restant à expédier (Hospitalisation de jour)|CA restant à expédier (HJ)|CASE WHEN (type_sejour = '2' OR type_sejour = '5') THEN montant_non_expedie ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures non expédiées des séjours en Hospitalisation de Jour||||||||| +1|CTI_CA_NON_SOL|SEJOURS|CA restant à solder|CA restant à solder|CA restant à solder|CASE WHEN nb_non_solde_0_c <> 0 THEN montant_solde_0_c ELSE 0 END + CASE WHEN nb_non_solde_1_c <> 0 THEN montant_solde_1_c ELSE 0 END + CASE WHEN nb_non_solde_2_c <> 0 THEN montant_solde_2_c ELSE 0 END|1|SUM|#E|80|2| | | | |2||||||||||||||||||||||0||||||||||||CASL|||||||| +1|CTI_CA_NON_SOL_ETAB|SEJOURS|CA restant à solder établissement|CA restant à solder établissement|CA restant à solder|CASE WHEN nb_non_solde = 1 THEN montant_solde ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures non soldées|CASL|||||||| +1|CTI_CA_NON_SOL_EXT|SEJOURS|CA restant à solder (Autres-Externes)|CA restant à solder (Autres-Externes)|CA non solder (Autres)|CASE WHEN type_sejour = '3' AND nb_non_solde = 1 THEN montant_solde ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures non soldées des séjours Externes|-TS3|CASL||||||| +1|CTI_CA_NON_SOL_HC|SEJOURS|CA restant à solder (hospitalisation complète)|CA restant à solder (hospitalisation complète)|CA restant à solder (HC)|CASE WHEN type_sejour = '1' AND nb_non_solde = 1 THEN montant_solde ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures non soldées des séjours en Hospitalisation complète|CASL|||||||| +1|CTI_CA_NON_SOL_HJ|SEJOURS|CA restant à solder (Hospitalisation de jour)|CA restant à solder (Hospitalisation de jour)|CA restant à solder (HJ)|CASE WHEN (type_sejour = '2' OR type_sejour = '5') AND nb_non_solde = 1 THEN montant_solde ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures non soldées des séjours en Hospitalisation de Jour|CASL|||||||| +1|CTI_CA_RUBMED_MT_CPT|FACTURATION_CLINIQUE|CA SEJOUR comptabilisé|Montant CA SEJOUR comptabilisé|Montant CA SEJOUR comptabilisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_comptabilise ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé pour les séjours dans l'établissement|CACP|||||||| +1|CTI_CA_SOL_ETAB|SEJOURS|CA soldé établissement|CA soldé établissement|CA soldé |CASE WHEN nb_non_solde<> 1 THEN montant_facture ELSE NULL END|1|SUM|#E|60|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures soldées|CAF|||||||| +1|CTI_CA_SOL_EXT|SEJOURS|CA soldé (Autres-Externes)|CA soldé (Autres-Externes)|CA soldé (Autres)|CASE WHEN type_sejour = '3' AND nb_non_solde <> 1 THEN montant_facture ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures soldées des séjours Externes|-TS3|CAF||||||| +1|CTI_CA_SOL_HC|SEJOURS|CA soldé (hospitalisation complète)|CA soldé (hospitalisation complète)|CA soldé (HC)|CASE WHEN type_sejour = '1' AND nb_non_solde <> 1 THEN montant_facture ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures soldées des séjours en Hospitalisation complète (1 nuit minimum)|CAF|||||||| +1|CTI_CA_SOL_HJ|SEJOURS|CA soldé (Hospitalisation de jour)|CA soldé (Hospitalisation de jour)|CA soldé (HJ)|CASE WHEN (type_sejour = '2' OR type_sejour = '5') AND nb_non_solde <> 1 THEN montant_facture ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des factures soldées des séjours en Hospitalisation de Jour (0 nuits)|CAF|||||||| +1|CTI_CA_T2A_CPT|FACTURATION_CLINIQUE|CA SOINS comptabilisé|Montant CA SOINS comptabilisé|Montant CA SOINS comptabilisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_comptabilise ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé des soins|CACP|||||||| +1|CTI_CA_VAL_ETAB|SEJOURS|CA Valorisé établissement|CA valorisé établissement|CA valorisé|montant_encours|1|SUM|#E|80|2| | | | |2||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séjours de l'établissement||||||||| +1|CTI_CA_VAL_EXT|SEJOURS|CA Valorisé (Autres-Externes)|CA valorisé (Autres-Externes)|CA valorisé (Autres)|CASE WHEN type_sejour = '3' THEN montant_encours ELSE NULL END|1|SUM||0|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séjours externes|-TS3|||||||| +1|CTI_CA_VAL_HC|SEJOURS|CA Valorisé hospitalisation complète|CA valorisé hospitalisation complète|CA valorisé (HC)|CASE WHEN type_sejour = '1' THEN montant_encours ELSE NULL END|1|SUM|#E|80|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séjours en Hospitalisation Complète||||||||| +1|CTI_CA_VAL_HJ|SEJOURS|CA Valorisé (Hospitalisation de jour)|CA valorisé (Hospitalisation de jour)|CA valorisé (HJ)|CASE WHEN type_sejour = '2' OR type_sejour = '5' THEN montant_encours ELSE NULL END|1|SUM|#E|70|3| | | | |3||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séjours en Hospitalisation de Jour||||||||| +1|CTI_CCAACTCOMPTA_C|*CALC|CA Activité comptable (Encours CTI)|Montant activité comptable|Montant activité comptable|[1]+[2]|1|*CALC|0E|0| | | | | | |CTI_MTCPTCLI_C|CTI_CCAENCVAR_C||||||||||||||||||||0|||||||||||Chiffre d'Affaires de l'activité comptable (encours)|CACP|CAV||||||| +1|CTI_CCAACTCOMPTA_SEJOUR_C|*CALC|CA SEJOUR Activité comptable (Encours CTI)|CA activité comptable Séjour|CA activité comptable Séjour|[1]+[2]|1|*CALC|0E|0| | | | | | |CTI_CA_RUBMED_MT_CPT|CTI_CCAENCVAR_SEJOUR_C||||||||||||||||||||0|||||||||||Chiffre d'Affaires de l'activité comptable des séjours (encours)|CACP|CAV||||||| +1|CTI_CCAACTCOMPTA_SOINS_C|*CALC|CA SOINS Activité comptable (Encours CTI)|CA activité comptable Soins|CA activité comptable Soins|[1]+[2]|1|*CALC|0E|0| | | | | | |CTI_CA_T2A_CPT|CTI_CCAENCVAR_SOINS_C||||||||||||||||||||0|||||||||||Chiffre d'Affaires de l'activité comptable des soins (encours)|CACP|CAV||||||| +1|CTI_CCAENCDER_C|EN_COURS|CA encours dernier mois CTI|Montant encours|Montant encours|CASE WHEN code_origine = 'C' THEN montant_encours ELSE 0 END|1|SUMLASTMONTH|0E|0|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires de l'encours du mois précédent|CAV|||||||| +1|CTI_CCAENCRECPRE_C|EN_COURS|CA report encours CTI premier mois|Montant report encours|Montant report encours|CASE WHEN code_origine = 'C' THEN montant_report_encours ELSE 0 END|1|SUMFIRSTMONTH|0E|0|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires du report de l'encours du mois précédent|CAV|||||||| +1|CTI_CCAENCREP_C|EN_COURS|CA report encours CTI|Montant report encours|Montant report encours|CASE WHEN code_origine = 'C' THEN montant_report_encours ELSE 0 END|1|SUM|0E|0|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires du report de l'encours|CAV|||||||| +1|CTI_CCAENCVAR_C|EN_COURS|CA variation encours CTI|CA variation encours|CA variation encours|CASE WHEN code_origine = 'C' THEN montant_variation_encours ELSE 0 END|1|SUM|0E|0|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires de la variation de l'encours|CAV|||||||| +1|CTI_CCAENCVAR_C_12M|EN_COURS|CA variation encours CTI moyen (12 derniers mois)|Montant variation encours moyen|Montant variation encours moyen|CASE WHEN code_origine = 'C' THEN montant_variation_encours ELSE 0 END|1|AVG12M|0E|0|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen de la variation de l'encours sur les 12 derniers mois|CAV|||||||| +1|CTI_CCAENCVAR_SEJOUR_C|EN_COURS|CA SEJOUR variation en-cours|Variation en-cours Séjour|Variation en-cours Séjour|CASE WHEN code_origine = 'C' AND rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_variation_encours ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires de la variation de l'encours des séjours|CAV|||||||| +1|CTI_CCAENCVAR_SOINS_C|EN_COURS|CA SOINS variation en-cours|Variation en-cours Soins|Variation en-cours Soins|CASE WHEN code_origine = 'C' AND rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_variation_encours ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires de la variation de l'encours des soins|CAV|||||||| +1|CTI_CCAENC_C|EN_COURS|CA encours CTI|Montant encours|Montant encours|CASE WHEN code_origine = 'C' THEN montant_encours ELSE 0 END|1|SUM|0E|0|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires de l'encours|CAV|||||||| +1|CTI_CDELSOLCA_C|*CALC|Délai de solde selon CA (encours CTI)|Délai de solde selon CA|Délai de solde selon CA|base.cti_division(([1]+[2])*365,([3]+[4])*12)|1|*CALC|0j|0| | | | | | |CTI_MTSOLCLI_C|CTI_CCAENCDER_C|CTI_MTCPTCLI_C_12M|CTI_CCAENCVAR_C_12M||||||||||||||||||0|||||||||||Délai de solde selon le Chiffre d'Affaires|CACP|CASL|CAV|||||| +1|CTI_CPC_MT_CPT|FACTURATION_CLINIQUE|CA CPC comptabilisé|CA chambre particulière comptabilisé|CA chambre particulière comptabilisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_comptabilise ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé des chambres particulières|CACP|||||||| +1|CTI_DELAIFAC|*CALC|Délai de facturation|Délai de facturation|Délai de facturation|base.cti_division([1] , [2])|1|*CALC|0,0j|60| | | | | | |CTI_SUM_DEL_FACTURE|CTI_SUM_NB_CALCULES||||||||||||||||||||0|||||||||||Délai de facturation||||||||| +1|CTI_DELAIG|SEJOURS|Délai de groupage|Délai de groupage|Délai groupage|delai_groupage|1|AVG|0,0|0|2|5| | | | ||||||||||||||||||||||0|||||||||||Délai de groupage||||||||| +1|CTI_DELAISOL|*CALC|Délai de solde|Délai de solde|Délai de solde|base.cti_division([1] , [2])|1|*CALC|#,0j|40| | | | | | |CTI_SUM_DEL_SOLD|CTI_NB_SOLDER||||||||||||||||||||0|||||||||||Délai de solde|NBJOU|NOMBRE||||||| +1|CTI_DEL_GROUPAGE|*CALC|Délai de groupage|Délai de groupage|Délai de groupage|base.cti_division([1] , [2])|1|*CALC|0,0j|60| | | | | | |CTI_SUM_DEL_GRP|CTI_SUM_NB_GROUPE||||||||||||||||||||0||||||||||||NBJOU|NOMBRE||||||| +1|CTI_DEP|OCCUPATION|NB Départs sur la période|Départs sur la période|Sor Per|nb_ambulatoires + CASE WHEN type_sejour = '5' THEN 0 ELSE nb_seances END + nb_externes + nb_sorties_directes|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties de patients sur la période|NBSOR|||||||| +1|CTI_DEPCOMP|OCCUPATION|SSR - Départs sur la période (Hospitalisation complète)|SSR- Départs sur la période (Hospitalisation complète)|SSR Sor Per H COMP|CASE WHEN mode_traitement_id = '3' THEN (nb_ambulatoires + CASE WHEN nb_entrees_directes = 1 THEN 0 ELSE nb_seances END + nb_externes + nb_sorties_directes) ELSE 0 END|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties des séjours en Hospitalisation Complète||||||||| +1|CTI_DIA_MT_FAC|FACTURATION_CLINIQUE|CA DIALYSE Facturé|Montant Dialyse Facturé|Montant Dialyse Facturé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIA_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des dialyses|CAF|||||||| +1|CTI_DIVERS_MT_ENC|FACTURATION_CLINIQUE|CA DIVERS Valorisé|CA [DIVERS] Valorisé|CA [DIVERS] Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des divers|CAV|||||||| +1|CTI_DIVERS_MT_FAC|FACTURATION_CLINIQUE|CA DIVERS Facturé|CA [DIVERS] facturé|CA [DIVERS] facturé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des divers|CAF|||||||| +1|CTI_DIVERS_MT_TOT|FACTURATION_CLINIQUE|CA DIVERS Facturé + Valorisé|CA [DIVERS] facturé + Valorisé|CA [DIVERS] facturé + Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des divers|CAVF|||||||| +1|CTI_DIVERS_RUB_ENC|FACTURATION_CLINIQUE|NB Rubriques DIVERS Valorisées|Nombre rubriques [DIVERS] Valorisées|Nombre rubriques [DIVERS] Valorisées|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de rubriques valorisées en divers|NBRUB|||||||| +1|CTI_DIVERS_RUB_FAC|FACTURATION_CLINIQUE|NB Rubriques DIVERS facturées|Nombre rubriques [DIVERS] facturées|Nombre rubriques [DIVERS] facturées|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de rubriques facturées en divers|NBRUB|||||||| +1|CTI_DIVERS_RUB_TOT|FACTURATION_CLINIQUE|NB Rubriques DIVERS Facturées + Valorisées|Nombre rubriques [DIVERS] Facturées + Valorisées|Nombre rubriques [DIVERS] Facturées + Valorisées|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_DIVERS_R] THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de rubriques facturées et valorisées en divers|NBRUB|||||||| +1|CTI_DMSCP|*CALC|SSR - DMS totale (Nb de Jours + Ambulatoire JSN/Nb Sorties directes + Ambulatoire JSN)|DMS totale (Nb de journées + Ambulatoire JSN/Nb Sorties directes + Ambulatoire JSN)|DMS totale (Nb de journées + Ambulatoire JSN/Nb Sorties directes + Ambulatoire JSN)|CASE WHEN [2] <> 0 THEN [1] / [2] ELSE 0 END|1|*CALC|#,00|80| | | | | | |CTI_JRSORCP|CTI_SORDIRCOM||||||||||||||||||||0|||||||||||DMS totale de l'établissement|-TS1|-TS2|-TS5|||||| +1|CTI_DMSHOS|SEJOURS|DMS Hospitalisés|DMS Hospitalisés|DMS Hospitalisés|CASE WHEN type_sejour = '1' AND code_sorti = '1' AND date_sortie > date_entree THEN date_sortie - date_entree ELSE NULL END|1|AVG||0|2| | | | |2||||||||||||||||||||||0|||||||||||DMS des séjours hospitalisés (1 nuit minimum)|-TS1|||||||| +1|CTI_DMSR|*CALC|DMS Hospitalisés|DMS Hospitalisés|DMS Hospitalisés|CASE WHEN [2] <> 0 THEN [1] / [2] ELSE 0 END|1|*CALC|#,00|80| | | | | | |CTI_NBJSN|CTI_NBSORDIR||||||||||||||||||||0|||||||||||DMS des séjours hospitalisés (1 nuit minimum)|-TS1|NBJOU|NBSOR|||||| +1|CTI_DMSTOT|*CALC|DMS Hospitalisation|DMS Hospitalisation|DMS Hospitalisation|CASE WHEN [2] <> 0 THEN [1] / [2] ELSE 0 END|1|*CALC|#,00|80| | | | | | |CTI_NB2_JSN|CTI_NBSOR_SA||||||||||||||||||||0|||||||||||DMS des séjours d'hospitalisation (hors séances)|-TS1|-TS2|NBJOU|NBSOR||||| +1|CTI_EMC|OCCUPATION|EMC|EMC|EMC|equivalent_malade_complet|1|SUM||0|1| | | | |1||||||||||||||||||||||0|||||||||||Equivalent Malade Complet||||||||| +1|CTI_EMI_MT_FAC|FACTURATION_CLINIQUE|CA EMI Facturé|CA EMI Facturé|CA EMI Facturé|CASE WHEN prestation_code IN ('EMI') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des prestations de type 'EMI'|CAF|||||||| +1|CTI_ENTDIRCOM|OCCUPATION|SSR - Entrées directes (Hospitalisés COMPLETE)|Entrées directes (Hospitalisés COMPLETE)|Entrées directes (Hospitalisés COMPETE)|CASE WHEN mode_traitement_id = '3' THEN nb_entrees_directes ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées directes en Hospitalisation Complète|-TS1|||||||| +1|CTI_ENTDIRJR|OCCUPATION|SSR - Entrées directes (Hospitalisés DE JOUR)|Entrées directes (Hospitalisés DE JOUR)|Entrées directes (Hospitalisés DE JOUR)|CASE WHEN mode_traitement_id = '4' THEN nb_entrees_directes ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées directes en Hospitalisation de Jour|-TS1|||||||| +1|CTI_EXB_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA EXH Valorisés|Nombre séjours EXH Valorisés|Nombre séjours EXH Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('EXH')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours contenant des prestations de type 'EXH' valorisées|NBSEJ|||||||| +1|CTI_EXH_JOU_ENC|FACTURATION_CLINIQUE|NB Jours EXH Valorisées|Nombre journées EXH Valorisées|Nombre journées EXH Valorisées|CASE WHEN prestation_code IN ('EXH') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de jours des séjours contenant des prestations de type 'EXH' valorisées|NBJOU|||||||| +1|CTI_EXH_JOU_FAC|FACTURATION_CLINIQUE|NB Jours EXH facturées|Nombre journées EXH facturées|Nombre journées EXH facturées|CASE WHEN prestation_code IN ('EXH') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de jours des séjours contenant des prestations de type 'EXH' facturées|NBJOU|||||||| +1|CTI_EXH_JOU_TOT|FACTURATION_CLINIQUE|NB Jours EXH Facturées + Valorisées|Total journées EXH Facturées + Valorisées|Total journées EXH Facturées + Valorisées|CASE WHEN prestation_code IN ('EXH') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de jours des séjours contenant des prestations de type 'EXH' facturées et valorisées|NBJOU|||||||| +1|CTI_EXH_MT_ENC|FACTURATION_CLINIQUE|CA EXH Valorisé|Montant EXH Valorisé|Montant EXH Valorisé|CASE WHEN prestation_code IN ('EXH') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des prestations de type 'EXH'|CAV|||||||| +1|CTI_EXH_MT_FAC|FACTURATION_CLINIQUE|CA EXH Facturé|Montant EXH facturé|Montant EXH facturé|CASE WHEN prestation_code IN ('EXH') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des prestations de type 'EXH'|CAF|||||||| +1|CTI_EXH_MT_TOT|FACTURATION_CLINIQUE|CA EXH Facturé + Valorisé|Montant EXH facturé + Valorisé|Montant EXH facturé + Valorisé|CASE WHEN prestation_code IN('EXH') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des prestations de type 'EXH'|CAVF|||||||| +1|CTI_EXH_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA EXH facturés|Nombre séjours EXH facturés|Nombre séjours EXH facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('EXH')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours facturés comportant des prestations de type 'EXH'|NBSEJ|||||||| +1|CTI_EXH_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA EXH Facturés + Valorisés|Nombre séjours EXH Facturés + Valorisés|Nombre séjours EXH Facturés + Valorisés|DISTINCT CASE WHEN ( prestation_code IN ('EXH')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours facturés et valorisés comportant des prestations de type 'EXH'|NBSEJ|||||||| +1|CTI_EXT_MT_ENC|FACTURATION_CLINIQUE|CA Externes Valorisé Clinique|Montant externe Valorisé Clinique|Montant externe Valorisé Clinique|CASE WHEN type_sejour = '3' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0||||||||||||-TS3|CAV||||||| +1|CTI_EXT_MT_FAC|FACTURATION_CLINIQUE|CA Externes Facturé|Montant externe facturé|Montant externe facturé|CASE WHEN type_sejour = '3' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0||||||||||||-TS3|CAF||||||| +1|CTI_EXT_MT_TOT|FACTURATION_CLINIQUE|CA Externes Facturé + Valorisé|Montant externe Facturé + Valorisé|Montant externe Facturé + Valorisé|CASE WHEN type_sejour = '3' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0||||||||||||-TS3|CAVF||||||| +1|CTI_EXT_NB_ENC|FACTURATION_CLINIQUE|NB externes Valorisés Clinique|Nombre externes Valorisés|Nombre externes Valorisés|DISTINCT CASE WHEN nb_rubrique_encours <> 0 and type_sejour = '3' THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0||||||||||||-TS3|NBENT||||||| +1|CTI_EXT_NB_FAC|FACTURATION_CLINIQUE|NB externes facturés Clinique|Nombre externes facturés|Nombre externes facturés|DISTINCT CASE WHEN (nb_rubrique_facture <> 0 and type_sejour = '3') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0||||||||||||-TS3|NBENT||||||| +1|CTI_EXT_NB_TOT|FACTURATION_CLINIQUE|NB externes Facturés + Valorisés Clinique|Nombre d'externes Facturés + Valorisés|Nombre d'externes Facturés + Valorisés|DISTINCT CASE WHEN (nb_rubrique_facture <> 0 or nb_rubrique_encours <> 0) and type_sejour = '3' THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0||||||||||||-TS3|NBENT||||||| +1|CTI_E_1_01|OCCUPATION|NB Entrees avant période|Ent pre periode|Ent pre per|DISTINCT CASE WHEN date_entree < date_trunc('year', date_reference)::date THEN no_sejour ELSE NULL END|1|COUNT|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées avant le début de la période d'analyse|NBENT|||||||| +1|CTI_FFM_MT_ENC|FACTURATION_CLINIQUE|CA FFM Valorisé|Montant FFM Valorisé Clinique|Montant FFM Valorisé Clinique|CASE WHEN prestation_code IN ('FFM') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des prestations de type 'FFM'|CAV|||||||| +1|CTI_FFM_MT_TOT|FACTURATION_CLINIQUE|CA FFM Facturé + Valorisé|Montant FFM Facturé + Valorisé|Montant FFM Facturé + Valorisé|CASE WHEN prestation_code IN ('FFM') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des prestations de type 'FFM'|CAVF|||||||| +1|CTI_FFM_NB_ENC|FACTURATION_CLINIQUE|NB Rubriques FFM Valorisés|Nombre FFM Valorisés|Nombre FFM Valorisés|CASE WHEN prestation_code IN ('FFM') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de prestations FFM valorisées|NBRUB|||||||| +1|CTI_FFM_NB_FAC|FACTURATION_CLINIQUE|NB Rubriques FFM facturés|Nombre FFM facturés|Nombre FFM facturés|CASE WHEN prestation_code IN ('FFM') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de prestations FFM facturées|NBRUB|||||||| +1|CTI_FFM_NB_TOT|FACTURATION_CLINIQUE|NB Rubriques FFM Facturés + Valorisés|Nombre FFM Facturé + Valorisé|Nombre FFM Facturé + Valorisé|CASE WHEN prestation_code IN ('FFM') THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END|1|SUM|#|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de prestations FFM facturées et valorisées|NBRUB|||||||| +1|CTI_GHSM_MTDA1_FAC|*CALC|CA GHS Moyen [HOSP] (date acte)|CA moyen GHS (Hospitalisés) (date acte)|CA moyen GHS (Hospitalisés) (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS des séjours hospitalisés (1 nuit minimum) (date acte)|-TS1|CAF|NBSEJ|||||| +1|CTI_GHSM_MTDA2_FAC|*CALC|CA GHS Moyen [AMBU] (date acte)|CA moyen GHS (Ambulatoire) (date acte)|CA moyen GHS (Ambulatoire) (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS des séjours ambulatoires (0 nuits) (date acte)|-TS2|CAF|NBSEJ|||||| +1|CTI_GHSM_MTDA_FAC|*CALC|CA GHS Moyen (date acte)|CA moyen GHS (date acte)|CA moyen GHS (date acte)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS (date acte)|CAF|NBSEJ||||||| +1|CTI_GHSM_MTDS1_FAC|*CALC|CA GHS Moyen [HOSP] (date sortie)|CA moyen GHS (Hospitalisés) (date sortie)|CA moyen GHS (Hospitalisés) (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS des séjours hospitalisés (1 nuit minimum) (date sortie)|-TS1|CAF|NBSEJ|||||| +1|CTI_GHSM_MTDS2_FAC|*CALC|CA GHS Moyen [AMBU] (date sortie)|CA moyen GHS Ambulatoire (date sortie)|CA moyen GHS Ambulatoire (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS des séjours ambulatoires (0 nuits) (date sortie)|-TS2|CAF|NBSEJ|||||| +1|CTI_GHSM_MTDS_FAC|*CALC|CA GHS Moyen (date sortie)|CA moyen GHS (date sortie)|CA moyen GHS (date sortie)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS (date sortie)|CAF|NBSEJ||||||| +1|CTI_GHSM_MTDV1_FAC|*CALC|CA GHS Moyen [HOSP] (date vente)|CA moyen GHS (Hospitalisés) (date vente)|CA moyen GHS (Hospitalisés) (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS des séjours hospitalisés (1 nuit minimum) (date vente)|-TS1|CAF|NBSEJ|||||| +1|CTI_GHSM_MTDV2_FAC|*CALC|CA GHS Moyen [AMBU] (date vente)|CA moyen GHS Ambulatoire (date vente)|CA moyen GHS Ambulatoire (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS des séjours ambulatoires (0 nuits) (date vente)|-TS2|CAF|NBSEJ|||||| +1|CTI_GHSM_MTDV_FAC|*CALC|CA GHS Moyen (date vente)|CA moyen GHS (date vente)|CA moyen GHS (date vente)|base.cti_division([1] , [2])|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen des GHS (date vente)|CAF|NBSEJ||||||| +1|CTI_GHS_MT1_ENC|FACTURATION_CLINIQUE|CA GHS Valorisé [HOSP]|Montant GHS Valorisé (hospitalisés)|Montant GHS Valorisé (hospitalisés)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '1' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des GHS des séjours hospitalisés (1 nuit minimum)|-TS1|CAV||||||| +1|CTI_GHS_MT1_FAC|FACTURATION_CLINIQUE|CA GHS Facturé [HOSP]|Montant GHS facturé (hospitalisés)|Montant GHS facturé (hospitalisés)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '1' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des GHS des séjours hospitalisés (1 nuit minimum)|-TS1|CAF||||||| +1|CTI_GHS_MT1_TOT|FACTURATION_CLINIQUE|CA GHS Facturé + Valorisé [HOSP]|Montant GHS facturé + Valorisé (hospitalisés)|Montant GHS facturé + Valorisé (hospitalisés)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '1' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des GHS des séjours hospitalisés (1 nuit minimum)|-TS1|CAVF||||||| +1|CTI_GHS_MT2_ENC|FACTURATION_CLINIQUE|CA GHS Valorisé [AMBU]|Montant GHS Valorisé (ambulatoire)|Montant GHS Valorisé (ambulatoire)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '2' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des GHS des séjours ambulatoires (0 nuits)|-TS2|CAV||||||| +1|CTI_GHS_MT2_FAC|FACTURATION_CLINIQUE|CA GHS Facturé [AMBU]|Montant GHS facturé (ambulatoire)|Montant GHS facturé (ambulatoire)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '2' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des GHS des séjours ambulatoires (0 nuits)|-TS2|CAF||||||| +1|CTI_GHS_MT2_TOT|FACTURATION_CLINIQUE|CA GHS Facturé + Valorisé [AMBU]|Montant GHS facturé + Valorisé (ambulatoire)|Montant GHS facturé + Valorisé (ambulatoire)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '2' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des GHS des séjours ambulatoires (0 nuits)|-TS2|CAVF||||||| +1|CTI_GHS_MT5_ENC|FACTURATION_CLINIQUE|CA GHS Valorisé [SEANCE]|Montant GHS Valorisé (séances)|Montant GHS Valorisé (séances)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '5' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des GHS des séances|-TS5|CAV||||||| +1|CTI_GHS_MT5_FAC|FACTURATION_CLINIQUE|CA GHS Facturé [SEANCE]|Montant GHS facturé (séances)|Montant GHS facturé (séances)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '5' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des GHS des séances|-TS5|CAF||||||| +1|CTI_GHS_MT5_TOT|FACTURATION_CLINIQUE|CA GHS Facturé + Valorisé [SEANCE]|Montant GHS facturé + Valorisé (séances)|Montant GHS facturé + Valorisé (séances)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '5' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des GHS des séances|-TS5|CAVF||||||| +1|CTI_GHS_MT_ENC|FACTURATION_CLINIQUE|CA GHS Valorisé|Montant GHS Valorisé|Montant GHS Valorisé|CASE WHEN prestation_code IN ('GHS') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des GHS|CAV|||||||| +1|CTI_GHS_MT_FAC|FACTURATION_CLINIQUE|CA GHS Facturé|Montant GHS facturé|Montant GHS facturé|CASE WHEN prestation_code IN ('GHS') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des GHS|CAF|||||||| +1|CTI_GHS_MT_TOT|FACTURATION_CLINIQUE|CA GHS Facturé + Valorisé|Montant GHS facturé + Valorisé|Montant GHS facturé + Valorisé|CASE WHEN prestation_code IN ('GHS') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des GHS|CAVF|||||||| +1|CTI_GHS_NB1_ENC|FACTURATION_CLINIQUE|NB Séjours CA GHS Valorisés [HOSP]|Nombre séjours GHS Valorisés (hospitalisés)|Nombre séjours GHS Valorisés (hospitalisés)|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('GHS') and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours hospitalisés (1 nuit minimum) comportant des prestations de type 'GHS' valorisées|-TS1|NBSEJ||||||| +1|CTI_GHS_NB1_FAC|FACTURATION_CLINIQUE|NB Séjours CA GHS facturés [HOSP]|Nombre séjours GHS facturés (hospitalisés)|Nombre séjours GHS facturés (hospitalisés)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('GHS') and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours hospitalisés (1 nuit minimum) comportant des prestations de type 'GHS' facturées|-TS1|NBSEJ||||||| +1|CTI_GHS_NB1_TOT|FACTURATION_CLINIQUE|NB Séjours CA GHS Facturés + Valorisés [HOSP]|Nombre séjours GHS Facturés + Valorisés (hospitalisés)|Nombre séjours GHS Facturés + Valorisés (hospitalisés)|DISTINCT CASE WHEN ( prestation_code IN ('GHS') and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours hospitalisés (1 nuit minimum) comportant des prestations de type 'GHS' facturées et valorisées|-TS1|NBSEJ||||||| +1|CTI_GHS_NB2_ENC|FACTURATION_CLINIQUE|NB Séjours CA GHS Valorisés [AMBU]|Nombre séjours GHS Valorisés (ambulatoire)|Nombre séjours GHS Valorisé s(ambulatoire)|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('GHS') and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours ambulatoires (0 nuits) comportant des prestations de type 'GHS' valorisées|-TS2|NBSEJ||||||| +1|CTI_GHS_NB2_FAC|FACTURATION_CLINIQUE|NB Séjours CA GHS facturés [AMBU]|Nombre séjours GHS facturés (ambulatoire)|Nombre séjours GHS facturés (ambulatoire)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('GHS') and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours ambulatoires (0 nuits) comportant des prestations de type 'GHS' facturées|-TS2|NBSEJ||||||| +1|CTI_GHS_NB2_TOT|FACTURATION_CLINIQUE|NB Séjours CA GHS Facturés + Valorisés [AMBU]|Nombre séjours GHS Facturés + Valorisés (ambulatoire)|Nombre séjours GHS Facturés + Valorisés (ambulatoire)|DISTINCT CASE WHEN ( prestation_code IN ('GHS') and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours ambulatoires (0 nuits) comportant des prestations de type 'GHS' facturées et valorisées|-TS2|NBSEJ||||||| +1|CTI_GHS_NB5_ENC|FACTURATION_CLINIQUE|NB séances GHS Valorisées [SEANCE]|Séances GHS Valorisées (séances)|Séances GHS Valorisées (séances)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '5' THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séances comportant des prestations de type 'GHS' valorisées|-TS5|||||||| +1|CTI_GHS_NB5_FAC|FACTURATION_CLINIQUE|NB séances GHS facturés [SEANCE]|Séances GHS facturés (séances)|Séances GHS facturés (séances)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '5' THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séances comportant des prestations de type 'GHS' facturées|-TS5|||||||| +1|CTI_GHS_NB5_TOT|FACTURATION_CLINIQUE|NB séances GHS Facturés + Valorisés [SEANCE]|Nombre séances GHS Facturés + Valorisés (séances)|Nombre séances GHS Facturés + Valorisés (séances)|CASE WHEN prestation_code IN ('GHS') and type_sejour = '5' THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séances comportant des prestations de type 'GHS' facturées et valorisées|-TS5|||||||| +1|CTI_GHS_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA GHS Valorisés|Nombre séjours GHS Valorisés|Nombre séjours GHS Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('GHS')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de prestations de type 'GHS' valorisées|NBSEJ|||||||| +1|CTI_GHS_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA GHS facturés|Nombre séjours GHS facturés|Nombre séjours GHS facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('GHS')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de prestations de type 'GHS' facturées|NBSEJ|||||||| +1|CTI_GHS_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA GHS Facturés + Valorisés|Nombre séjours GHS Facturés + Valorisés|Nombre séjours GHS Facturés + Valorisés|DISTINCT CASE WHEN ( prestation_code IN ('GHS')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de prestations de type 'GHS' facturées et valorisées|NBSEJ|||||||| +1|CTI_JOUR_FAC|OCCUPATION|NB Jours facturées|Nombre journées facturées|Jour Fac|CASE WHEN date_sortie <= '[TOPERIODE]' AND nb_non_facture = 0 THEN nb_jours_f ELSE null END|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées facturées|NBJOU|||||||| +1|CTI_JRSORCP|OCCUPATION|SSR - Nombres de Jours séjours sortis(Hospitalisés COMPLETE) + Ambulatoires + Séances|Nombres de journées séjours sortis (Hospitalisés COMPLETE) + Ambulatoires + Séances|Nombres de journées séjours sortis (Hospitalisés COMPLETE) + Ambulatoires + Séances|CASE WHEN date_sortie <= '[TOPERIODE]' AND mode_traitement_id = '3' THEN 1 ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de jours des séjours sortis en Hospitalisation Complète, ambulatoires et séances|-TS1|-TS2|-TS5|||||| +1|CTI_JRSORJR|OCCUPATION|SSR - Nombres de Jours séjours sortis(Hospitalisés DE JOUR) + Ambulatoires + Séances|Nombres de journées séjours sortis (Hospitalisés DE JOUR) + Ambulatoires + Séances|Nombres de journées séjours sortis (Hospitalisés DE JOUR) + Ambulatoires + Séances|CASE WHEN date_sortie <= '[TOPERIODE]' AND code_sorti = '1' AND mode_traitement_id = '4' THEN (nb_jours_f + nb_ambulatoires + nb_seances) ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de jours des séjours sortis en Hospitalisation de Jour, ambulatoires et séances|-TS1|-TS2|-TS5|||||| +1|CTI_MTCOM_H|FACTURATION_HONORAIRE|CA HONORAIRES comptabilisé|Montant comptabilisé Hononoraire|Montant comptabilisé Hononoraire|montant_comptabilise|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé des honoraires|CACP|CAHON||||||| +1|CTI_MTCPTCLI_C|CLIENTS_CLINIQUE|CA Comptabilisé Clinique|Montant comptabilisé Clinique|Montant comptabilisé Clinique|montant_comptabilise|1|SUM|#E|0|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé clinique|CACP|||||||| +1|CTI_MTCPTCLI_C_12M|CLIENTS_CLINIQUE|CA Comptabilisé Moyen Clinique (12 derniers mois)|Montant comptabilisé Moyen Clinique (Moyenne 12 derniers mois)|Montant comptabilisé Moyen Clinique (Moyenne 12 derniers mois)|montant_comptabilise|1|AVG12M|#E|0|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires moyen comptabilisé clinique sur les 12 derniers mois|CACP|||||||| +1|CTI_MTC_CHDS_FAC|*CALC|CA CLINIQUE + HONORAIRES Comptabilisé (Date sortie)|Montant Comptabilisé Clinique + Honoraire|Montant Comptabilisé Clinique + Honoraire|[1] + [2]|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé clinique et honoraires (date sortie)|CACP|CAHON||||||| +1|CTI_MTC_CHDV_FAC|*CALC|CA CLINIQUE + HONORAIRES Comptabilisé (Date vente)|Montant Comptabilisé Clinique + Honoraire|Montant Comptabilisé Clinique + Honoraire|[1] + [2]|1|*CALC|#E|80| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé clinique et honoraires (date vente)|CACP|CAHON||||||| +1|CTI_MTENC_C|FACTURATION_CLINIQUE|CA TOTAL Etablissement Valorisé|Montant Total Clinique Valorisé|Montant Total Clinique Valorisé|montant_encours|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé total de l'établissement|CAV|||||||| +1|CTI_MTFAC1_C|FACTURATION_CLINIQUE|CA TOTAL Etablissement Facturé [HOSP]|Montant Total Clinique Facturé (Hospitalisés)|Montant Total Clinique Facturé (Hospitalisés)|CASE WHEN type_sejour = '1' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séjours hospitalisés (1 nuit minimum)|-TS1|CAF||||||| +1|CTI_MTFAC2_C|FACTURATION_CLINIQUE|CA TOTAL Etablissement Facturé [AMBU]|Montant Total Clinique Facturé (Ambulatoire)|Montant Total Clinique Facturé (Ambulatoire)|CASE WHEN type_sejour = '2' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séjours ambulatoires (0 nuits)|-TS2|CAF||||||| +1|CTI_MTFAC3_C|FACTURATION_CLINIQUE|CA TOTAL Etablissement Facturé [EXT]|Montant Total Clinique Facturé (Externe)|Montant Total Clinique Facturé (Externe)|CASE WHEN type_sejour = '3' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séjours externes|-TS3|CAF||||||| +1|CTI_MTFAC5_C|FACTURATION_CLINIQUE|CA TOTAL Etablissement Facturé (Séance)|Montant Total Clinique Facturé (Séance)|Montant Total Clinique Facturé (Séance)|CASE WHEN type_sejour = '5' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séances|-TS5|CAF||||||| +1|CTI_MTFAC_C|FACTURATION_CLINIQUE|CA TOTAL Etablissement Facturé|Montant Total Clinique facturé|Montant Total Clinique facturé|montant_facture|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé total de l'établissement|CAF|||||||| +1|CTI_MTFAC_CS|FACTURATION_CLINIQUE|CA Facturé Clinique (date sortie)|Montant facturé Clinique|Facturé C|montant_facture|1|SUM||0| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé ^ la clinique (date sortie)|CAF|||||||| +1|CTI_MTFAC_CV|FACTURATION_CLINIQUE|CA Facturé Clinique (date ventes)|Montant facturé Clinique|Facturé C|montant_facture|1|SUM||0| | | | | | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé ^ la clinique (date vente)|CAF|||||||| +1|CTI_MTFAC_H|FACTURATION_HONORAIRE|CA HONORAIRES Facturé|Montant facturé Hononoraire|Montant facturé Hononoraire|montant_facture|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des honoraires|CAF|CAHON||||||| +1|CTI_MTREG_C|CLIENTS_CLINIQUE|CA Encaissé Clinique|Montant encaissé Clinique|Montant encaissé Clinique|montant_regle|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires encaissé clinique|CARG|||||||| +1|CTI_MTSOLCLI_C|CLIENTS_CLINIQUE|CA Solde client|Montant solde Clinique|Montant solde Clinique|montant_solde|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires du solde clients|CASL|||||||| +1|CTI_MTVEN_C|FACTURATION_CLINIQUE|CA comptabilisé TOTAL|Montant comptabilisé Clinique|Montant comptabilisé Clinique|montant_comptabilise|1|SUM|#E|0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé total|CACP|||||||| +1|CTI_MT_FAC_TOT|FACTURATION_CLINIQUE|CA TOTAL Etablissement Facturé + Valorisé|Montant Total Clinique Facturé + Valorisé|Montant Total Clinique Facturé + Valorisé|montant_facture + montant_encours|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé total|CAVF|||||||| +1|CTI_NB2_JSN|OCCUPATION|NB Jours Hospitalisés + Ambulatoires|Nombres de journées (Hospitalisés) + Ambulatoire|Nombres de journées (Hospitalisés) + Ambulatoire JS non inclus|nb_jours_f + nb_ambulatoires|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées passées en séjours hospitalisés ou ambulatoires|-TS1|-TS2|NBJOU|||||| +1|CTI_NB4_JSN|OCCUPATION|NB Jours Hospitalisés + Ambulatoires + Externes|Nombres de journées (Hospitalisés) + Ambulatoires + Externes|Nombres de journées (Hospitalisés) + Ambulatoires + Externes JS non inclus|nb_jours_f + nb_ambulatoires + nb_externes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées passées en séjours hospitalisés, ambulatoires ou externes|-TS1|-TS2|-TS3|NBJOU||||| +1|CTI_NB4_JSNCP|OCCUPATION|SSR - Nombres de Jours (Hospitalisés COMPLETE) + Ambulatoires + Séances|Nombres de journées (Hospitalisés COMPLETE)) + Ambulatoires + Séances|Nombres de journées (Hospitalisés COMPLETE)) + Ambulatoires + Externes + Séances JS non inclus|CASE WHEN mode_traitement_id = '3' THEN (nb_jours_f + nb_ambulatoires + nb_seances) ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées passées en séjours en Hospitalisation Complète ou ambulatoires ou externes ou séances|-TS1|-TS2|-TS5|||||| +1|CTI_NB4_JSNJR|OCCUPATION|SSR - Nombres de Jours (Hospitalisés DE JOUR) + Ambulatoires + Séances|Nombres de journées (Hospitalisés DE JOUR) + Ambulatoires + Séances|Nombres de journées (Hospitalisés DE JOUR) + Ambulatoires + Externes + Séances JS non inclus|CASE WHEN mode_traitement_id = '4' THEN (nb_jours_f + nb_ambulatoires + nb_seances) ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées passées en séjours en Hospitalisation de Jour ou ambulatoires ou externes ou séances|-TS1|-TS2|-TS5|||||| +1|CTI_NB5_JSN|OCCUPATION|NB Jours Hospitalisés + Ambulatoires + Externes + Séances|Nombres de journées (Hospitalisés) + Ambulatoires + Externes + Séances|Nombres de journées (Hospitalisés) + Ambulatoires + Externes + Séances JS non inclus|nb_jours_f + nb_ambulatoires + nb_externes + nb_seances|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées passées en séjours hospitalisés, ambulatoires, externes ou séances|-TS1|-TS2|-TS3|-TS5|NBJOU|||| +1|CTI_NB6_JFSN|OCCUPATION|NB Jours facturées (Hospitalisés sortis) + Ambulatoires + Séances|Nombres de journées facturées (Hospitalisés sortis) + Ambulatoires + Séances|Nombres de journées facturées (Hospitalisés sortis) + Ambulatoires + Externes + Séances JS non inclus|CASE WHEN est_facture = '1' AND date_sortie <= '[TOPERIODE]' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées facturées passées en séjours hospitalisés ou ambulatoires ou externes ou séances|-TS2|NBJOU||||||| +1|CTI_NB6_JNFSN|OCCUPATION|NB Jours valorisées Hospitalisés + Ambulatoires + Séances|Nombres de journées valorisées (Hospitalisés) + Ambulatoires + Séances|Nombres de journées valorisées (Hospitalisés) + Ambulatoires + Externes + Séances JS non inclus|CASE WHEN est_facture = '0' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées valorisées passées en séjours hospitalisés ou ambulatoires ou externes ou séances|-TS1|-TS2|-TS5|NBJOU||||| +1|CTI_NB6_JSN|OCCUPATION|NB Jours (Hospitalisés) + Ambulatoires + Séances|Nombres de journées (Hospitalisés) + Ambulatoires + Séances|Nombres de journées (Hospitalisés) + Ambulatoires + Séances|nb_jours_f + nb_ambulatoires + nb_seances|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées passées en séjours hospitalisés ou ambulatoires ou séances|-TS2|NBJOU||||||| +1|CTI_NBAMB|OCCUPATION|NB ambulatoires|Nombres d'ambulatoires|Nombres d'ambulatoires|nb_ambulatoires|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séjours en ambulatoires|-TS2|NBENT||||||| +1|CTI_NBAMBFOR|OCCUPATION|NB ambulatoires forains|Nombres d'ambulatoires forains|Ambulatoires forains|CASE WHEN nb_ambulatoires <> 0 AND lieu_reference_etage_id IN (SELECT etage_id FROM activite.t_etages_historique WHERE nb_lits_theoriques <> 0) THEN nb_ambulatoires ELSE 0 END|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'ambulatoires forains|-TS2|NBENT||||||| +1|CTI_NBAMBHFOR|OCCUPATION|Nombre d'ambulatoires en service ambulatoire|Nombres d'ambulatoires en service ambulatoire|Ambulatoires|CASE WHEN nb_ambulatoires <> 0 AND lieu_reference_etage_id IN (SELECT etage_id FROM activite.t_etages_historique WHERE nb_box_ambulatoires_theoriques <> 0) THEN nb_ambulatoires ELSE 0 END|1|SUM|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'ambulatoires|-TS2|||||||| +1|CTI_NBAMBSEA|OCCUPATION|NB Ambulatoires et séances|Ambulatoires + séances|Ambulatoires + séances|nb_ambulatoires + nb_seances|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'ambulatoires et de séances|-TS2|NBENT||||||| +1|CTI_NBCHPO|OCCUPATION|NB Jours en CPC|Chambres particulières occup?|Chambres particulières occup?|nb_chambres_particulieres_js_non_inclus_f|1|SUM||60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées passées en chambre particulière|NBJOU|||||||| +1|CTI_NBDEAD|OCCUPATION|NB décès|Nombre de décès|NB décès|nb_deces|1|SUM||0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de décès||||||||| +1|CTI_NBENTDIR|OCCUPATION|NB Entrées directes Hospitalisés|Entrées directes (Hospitalisés)|Entrées directes (Hospitalisés)|nb_entrees_directes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées directes des séjours hospitalisés|-TS1|NBENT||||||| +1|CTI_NBENTTE|OCCUPATION|NB Entrées totales directes et mutations Hospitalisés|Entrées totales directes et mutations (Hospitalisés)|Entrées totales directes et mutations (Hospitalisés)|nb_entrees_directes + nb_entrees_mutation_etage|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées directes et de mutations d'étage des séjours hospitalisés|-TS1|NBENT||||||| +1|CTI_NBENTTOTS|OCCUPATION|NB Entrées directes et mutations service Hospitalisés|Entrées directes et mutations (Hospitalisés)|Entrées directes et mutations (Hospitalisés)|nb_entrees_directes + nb_entrees_mutation_service|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées directes et de mutations de services des séjours hospitalisés|-TS1|NBENT||||||| +1|CTI_NBENT_SA|OCCUPATION|NB Entrées directes Hospitalisés + Ambulatoires|Entrées directes + Ambulatoires|Entrées directes + Ambulatoires|nb_ambulatoires + nb_entrees_directes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées directes des séjours hospitalisés et ambulatoires|-TS1|-TS2|NBENT|||||| +1|CTI_NBENT_SAE|OCCUPATION|NB Entrées directes Hospitalisés + Ambulatoires + Externes|Entrées directes + Ambulatoires + Externes|Entrées directes + Ambulatoires + Externes|nb_ambulatoires + nb_externes + nb_entrees_directes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées directes des séjours hospitalisés, ambulatoires et externes|-TS1|-TS2|-TS3|NBENT||||| +1|CTI_NBENT_SAES|OCCUPATION|NB Entrées directes Hospitalisés + Ambulatoires + Externes + Séances|Entrées directes + Ambulatoires + Externes + Séances|Entrées directes + Ambulatoires + Externes + Séances|nb_ambulatoires + nb_externes + nb_entrees_directes + nb_seances|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'entrées directes des séjours hospitalisés, ambulatoires, externes et séances|-TS1|-TS2|-TS3|-TS5|NBENT|||| +1|CTI_NBEXT|OCCUPATION|NB externes (occupation)|Nombres d'externes|Nombres d'externes|nb_externes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séjours en externes|-TS3|NBENT||||||| +1|CTI_NBFACREF|SEJOURS|NB sorties directes et intermédiaires|Nombre de sorties directes et intermédiaires|Nombre de sorties directes et interemédiaires|no_facture_reference|1|COUNT||0|2| | | | |2||||||||||||||||||||||0|||||||||||Nombre de sorties directes ou intermédiaires|NBSOR|||||||| +1|CTI_NBFACREF_F|SEJOURS|NB sorties directes et intermédiaires facturées|Nombre de sorties directes et intermédiaires facturées|Nombre de sorties directes et intermédiaires facturées|CASE WHEN code_facture = '1' THEN no_facture_reference ELSE NULL END|1|COUNT||0|2| | | | |2||||||||||||||||||||||0|||||||||||Nombre de sorties directes ou intermédiaires facturées|NBSOR|||||||| +1|CTI_NBFACREF_NF|SEJOURS|NB sorties directes et intermédiaires non facturées|Nombre de sorties directes et intermédiaires non facturées|Nombre de sorties directes et intermédiaires non facturées|CASE WHEN code_facture <> '1' THEN no_facture_reference ELSE NULL END|1|COUNT||0|2| | | | |2||||||||||||||||||||||0|||||||||||Nombre de sorties directes ou intermédiaires non facturées|NBSOR|||||||| +1|CTI_NBJAS_FAC|OCCUPATION|NB Jours facturées (Hospitalisation)|Nombres de journées facturées (Hospitalisés) + Ambulatoires + Séances|Nombres de journées facturées (Hospitalisés) + Ambulatoires + Externes + Séances JS non inclus|CASE WHEN est_facture = '1' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées facturées des séjours hospitalisés, ambulatoires, externes et séances|NBJOU|||||||| +1|CTI_NBJAS_JFSN|OCCUPATION|NB Jours (Hospitalisés sortis) + Ambulatoires + Seances|Nombres de journées (Hospitalisés sortis) + Ambulatoires + Seances|Nb J Sor|CASE WHEN date_sortie <= '[TOPERIODE]' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE NULL END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de jours sortis des séjours hospitalisés, ambulatoires et séances|-TS1|-TS2|-TS5|NBJOU||||| +1|CTI_NBJAS_NFAC|OCCUPATION|NB Jours non facturées (Hospitalisation)|Nombres de journées non facturées (Hospitalisés) + Ambulatoires + Séances|Nombres de journées non facturées (Hospitalisés) + Ambulatoires + Externes + Séances JS non inclus|CASE WHEN est_facture = '0' THEN nb_jours_f + nb_ambulatoires + nb_seances ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées non facturées des séjours hospitalisés, ambulatoires, externes et séances|NBJOU|||||||| +1|CTI_NBJCPSN|OCCUPATION|NB Jours CPC Hospitalisés|Nombres de journées CP (Hospitalisés)|Nombres de journées CP (Hospitalisés)|nb_jours_cp_f|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées en chambre particulière des séjours hospitalisés|NBJOU|||||||| +1|CTI_NBJFSN|OCCUPATION|NB Jours facturées (Hospitalisés sortis)|Nombres de journées facturées (Hospitalisés)|Nombres de journées facturées (Hospitalisés) JS non inclus|CASE WHEN est_facture = '1' AND date_sortie <= '[TOPERIODE]' THEN nb_jours_f ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées facturées des séjours hospitalisés (JS non inclus)|NBJOU|||||||| +1|CTI_NBJS|OCCUPATION|NB Jours Hospitalisés JS inclus|Nombres de journées (JS inclus) (Hospitalisés)|Nombres de journées (JS inclus) (Hospitalisés)|nb_jours_js_inclus|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées facturées des séjours hospitalisés (JS inclus)|-TS1|NBJOU||||||| +1|CTI_NBJSAM|OCCUPATION|NB Jours Hospitalisés + Ambulatoires JS Inclus|Nombre Journées + Ambulatoire (JS Inclus)|Nombre Journées + Ambulatoire (JS Inclus)|nb_jours_js_inclus + nb_ambulatoires|1|SUM||0|1| | | | |1|CTI_NBJSN|CTI_NBAMB||||||||||||||||||||0|||||||||||Nombre de journées des séjours hospitalisés et ambulatoires (JS non inclus)|-TS1|-TS2|NBJOU|||||| +1|CTI_NBJSN|OCCUPATION|NB Jours Hospitalisés|Nombres de journées (Hospitalisés)|Nombres de journées (Hospitalisés) JS non inclus|nb_jours_f|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées des séjours hospitalisés (JS non inclus)|-TS1|NBJOU||||||| +1|CTI_NBJSNS|OCCUPATION|NB Jours (Hospitalisés sortis)|Nombres de journées (Hospitalisés sortis)|Nb J Sor|CASE WHEN date_sortie <= '[TOPERIODE]' THEN nb_jours_f ELSE NULL END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées des séjours hospitalisés|-TS1|NBJOU||||||| +1|CTI_NBJSSNSSR|OCCUPATION|SSR - Nombres de Jours facturées Hospitalisés|Nombres de journées facturées (Hospitalisés)|Nombres de journées facturées (Hospitalisés) JS non inclus|CASE WHEN date_sortie <= '[TOPERIODE]' THEN 1 ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées facturées des séjours hospitalisés (JS non inclus)|-TS1|||||||| +1|CTI_NBJ_FAC|OCCUPATION|NB Jours facturées (Hospitalisés)|Nombres de journées facturées (Hospitalisés)|Nombres de journées facturées (Hospitalisés) JS non inclus|CASE WHEN est_facture = '1' THEN nb_jours_f ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées facturées des séjours hospitalisés (JS non inclus)|NBJOU|||||||| +1|CTI_NBJ_NFAC|OCCUPATION|NB Jours non facturées (Hospitalisés)|Nombres de journées non facturées (Hospitalisés)|Nombres de journées non facturées (Hospitalisés)|CASE WHEN est_facture = '0' THEN nb_jours_f ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de journées non facturées des séjours hospitalisés|NBJOU|||||||| +1|CTI_NBLITS|PLACES|NB places disponibles|Nombre de places disponibles|Places|CASE WHEN est_ouvert = '1' THEN nb_lits_ouverts ELSE NULL END|1|SUM|#|50|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de places disponibles||||||||| +1|CTI_NBPLACES|PLACES|NB lits et places disponibles |Nombre de lits et places disponibles |Nombre de lits et places disponibles |CASE WHEN est_ouvert = '1' THEN nb_lits_ouverts ELSE NULL END|1|SUM|#|50|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de lits et des places disponibles||||||||| +1|CTI_NBPLACES_A|PLACES|NB lits et places disponibles [AMBU]|Nombre de lits et places disponibles (Ambulatoires)|Nombre de lits et places disponibles (Ambulatoires)|CASE WHEN est_ouvert = '1' and type_sejour_id = 2 THEN nb_lits_ouverts ELSE NULL END|1|SUM|#|50|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de lits et de places disponibles pour les séjours Ambulatoires|-TS1|||||||| +1|CTI_NBPLACES_CP_H|PLACES|NB lits et places CP disponibles [HOSP]|Nombre de lits et places CP disponibles (Hospitalisés)|Nombre de lits et places CP disponibles (Hospitalisés)|CASE WHEN est_ouvert = '1' and type_sejour_id = 1 THEN nb_lits_cp_ouverts ELSE NULL END|1|SUM|#|50|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de lits et de places en chambre particulière disponibles pour les séjours hospitalisés|-TS1|||||||| +1|CTI_NBPLACES_H|PLACES|NB lits et places disponibles [HOSP]|Nombre de lits et places disponibles (Hospitalisés)|Nombre de lits et places disponibles (Hospitalisés)|CASE WHEN est_ouvert = '1' and type_sejour_id = 1 THEN nb_lits_ouverts ELSE NULL END|1|SUM|#|50|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de lits et de places disponibles pour les séjours hospitalisés|-TS1|||||||| +1|CTI_NBPLACES_HA|PLACES|NB lits et places disponibles (Hosp+Ambu)|Nombre de lits et places disponibles (Hosp+Ambu)|Nombre de lits et places disponibles (Hosp+Ambu)|CASE WHEN est_ouvert = '1' and type_sejour_id IN ('1','2') THEN nb_lits_ouverts ELSE NULL END|1|SUM||0|1| | | | |1|CTI_NBPLACES_H|||||||||||||||||||||0|||||||||||Nombre de lits et de places disponibles pour les séjours hospitalisés et ambulatoires||||||||| +1|CTI_NBPLACES_THEOJ|PLACES|Nombre jours pour calcul moyenne place théorique|Nombre jours pour calcul moyenne place théorique |Nb jours pour calcul moyenne place théorique|DISTINCT NOFINESS NOPOLE date_reference|1|COUNT|#|50|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de jours pour calcul moyenne des places théoriques||||||||| +1|CTI_NBPLACES_THEOM|*CALC|Nombres lits et places théoriques moyen|Nombres lits et places théoriques moyen|Nb places théoriques|base.cti_division([1],[2])|1|*CALC|#|0| | | | | | |CTI_NBPLACES_THEOT|CTI_NBPLACES_THEOJ||||||||||||||||||||0|||||||||||Nombre de lits et des places théoriques moyen||||||||| +1|CTI_NBPLACES_THEOT|PLACES|Nombre lits et places théoriques total|Nombre de lits et places théoriques total|Nb places théoriques total|nb_lits_theoriques|1|SUM|#|50|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de lits et des places théoriques (total des journées)||||||||| +1|CTI_NBPRESHCOMP|OCCUPATION|SSR - Nombre de présents (Date du Jour / Hospitalisation complète)|SSR Nombres de présents (Date du Jour / Hospitalisation complète)|SSR Nombres de présents (Date du Jour / H COMP)|DISTINCT(CASE WHEN (code_sorti= 0 AND code_prevu = 0 AND mode_traitement_id = '3' ) THEN no_sejour ELSE NULL END)|1|COUNT|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de patients encore présents en Hospitalisation Complète||||||||| +1|CTI_NBPRESHDJ|OCCUPATION|SSR - Nombre de présents (Date du Jour / Hospitalisation de jour)|SSR Nombres de présents (Date du Jour / Hospitalisation de jour)|SSR Nombres de présents (Date du Jour / HDJ)|DISTINCT(CASE WHEN (code_sorti= 0 AND code_prevu = 0 AND mode_traitement_id = '4' ) THEN no_sejour ELSE NULL END)|1|COUNT|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de patients encore présents en Hospitalisation de Jour||||||||| +1|CTI_NBSCE|OCCUPATION|NB séances|Nombres de séances|Nombres de séances|nb_seances|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séances|-TS5|||||||| +1|CTI_NBSCE_CHM|OCCUPATION|NB séances Chimio|Nombres de séances Chimio|Nombres de séances Chimio|nb_seances_chimio|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séances Chimio|-TS5|||||||| +1|CTI_NBSCE_DIA|OCCUPATION|NB séances Dialyse|Nombres de séances Dialyse|Nombres de séances Dialyse|nb_seances_dialyse|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séances Dialyse|-TS5|||||||| +1|CTI_NBSCE_DIV|OCCUPATION|NB séances Autres|Nombres de séances Autres|Nombres de séances Autres|nb_seances_autre|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séances Autres|-TS5|||||||| +1|CTI_NBSEJCP|OCCUPATION|SSR - Nombres de séjours - Hospitalisation complète|Nombres de séjours - Hospitalisation complète|Nombre de séjours - Hospitalisation complète|DISTINCT CASE WHEN mode_traitement_id = '3' THEN no_sejour ELSE NULL END|1|COUNT|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séjours en Hospitalisation Complète||||||||| +1|CTI_NBSEJFEM|OCCUPATION|NB séjours de femmes|Nombre de séjours de femmes|Nb sej fem|DISTINCT CASE WHEN code_sexe = '2' THEN no_sejour ELSE null END|1|COUNT|#|0|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séjours de patients féminins|NBSEJ|||||||| +1|CTI_NBSEJHDJ|OCCUPATION|SSR - Nombres de séjours - Hospitalisation de jour|Nombres de séjours - Hospitalisation de jour|Nombre de séjours - Hospitalisation de jour|DISTINCT CASE WHEN mode_traitement_id = '4' THEN no_sejour ELSE NULL END|1|COUNT|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séjours en Hospitalisation de Jour||||||||| +1|CTI_NBSEJO|OCCUPATION|NB séjours|Nombres de séjours|Nombres de séjours|DISTINCT no_sejour|1|COUNT|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de séjours|NBSEJ|||||||| +1|CTI_NBSEJ_EXT|SEJOURS|NB Séjours [EXT]|Nombre séjours (Externes)|Nombre séjours (Externes)|DISTINCT CASE WHEN type_sejour = '3' THEN no_sejour ELSE NULL END|1|SUM|#|60| | | | | | ||||||||||||||||||||||0|||||||||||Nombre de séjours externes|-TS3|NBSEJ||||||| +1|CTI_NBSEJ_HC|SEJOURS|NB Séjours hospitalisation complète|Nombre séjours hospitalisation complète|Nombre séjours (hc)|DISTINCT CASE WHEN type_sejour = '1' THEN no_sejour|1|COUNT|#|60| | | | | | ||||||||||||||||||||||0|||||||||||Nombre de séjours en hospitalisation complète|NBSEJ|||||||| +1|CTI_NBSEJ_HJ|SEJOURS|NB Séjours (hospitalisation de jour)|Nombre séjours (hospitalisation de jour, type de séjours = Ambulatoire/Séances) |Nombre séjours (hj)|DISTINCT CASE WHEN type_sejour = '2' OR type_sejour = '5' THEN no_sejour|1|SUM|#|60| | | | | | ||||||||||||||||||||||0|||||||||||Nombre de séjours en Hospitalisation de Jour|NBSEJ|||||||| +1|CTI_NBSEJ_SOINS_CPT|FACTURATION_CLINIQUE|NB Séjours CA SOINS comptabilisé|Nombre de séjours comptabilisés CA SOINS|Nombre de séjours comptabilisés CA SOINS|DISTINCT CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN no_sejour ELSE NULL END|1|COUNT|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Nombre de séjours comptabilisé dans le Chiffre d'Affaires des soins|NBSEJ|||||||| +1|CTI_NBSEJ_SOR|SEJOURS|NB séjours|Nombre de séjours|Nombre de séjours|DISTINCT no_sejour|1|COUNT|#|60|2| | | | |2||||||||||||||||||||||0|||||||||||||||||||| +1|CTI_NBSORDIR|OCCUPATION|NB Sorties directes Hospitalisés|Sorties directes (Hospitalisés)|Sorties directes (Hospitalisés)|nb_sorties_directes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties directes des séjours hospitalisés|-TS1|NBSOR||||||| +1|CTI_NBSOR_SA|OCCUPATION|NB Sorties directes Hospitalisés + Ambulatoires|Sorties directes + Ambulatoires|Sorties directes + Ambulatoires|nb_ambulatoires + nb_sorties_directes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties directes des séjours hospitalisés et ambulatoires|-TS1|-TS2|NBSOR|||||| +1|CTI_NBSOR_SAE|OCCUPATION|NB Sorties directes Hospitalisés + Ambulatoires + Externes|Sorties directes + Ambulatoires + Externes|Sorties directes + Ambulatoires + Externes|nb_ambulatoires + nb_externes + nb_sorties_directes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties directes des séjours hospitalisés, ambulatoires et externes|-TS1|-TS2|-TS3|NBSOR||||| +1|CTI_NBSOR_SAES|OCCUPATION|NB Sorties directes Hospitalisés + Ambulatoires + Externes + Séances|Sorties directes + Ambulatoires + Externes + Séances|Sorties directes + Ambulatoires + Externes + Séances|nb_ambulatoires + nb_externes + nb_sorties_directes + nb_seances|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties directes des séjours hospitalisés, ambulatoires, externes et séances|-TS1|-TS2|-TS3|-TS5|NBSOR|||| +1|CTI_NBURG|OCCUPATION|NB urgences|Nombres d'urgences|Nombres d'urgences|nb_urgences|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre d'urgences||||||||| +1|CTI_NB_ANNULES|ANNULATIONS|Nombre de séjours annulés |Nombre séjours annulés||DISTINCT CASE WHEN etat_sejour_code = 'A' THEN no_sejour ELSE NULL END|1|COUNT||0|1| | | | |1||||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_NB_BEBE|OCCUPATION|NB Bébés|Nombre de Bébés|Nombre de Bébés|nb_bebes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de bébés||||||||| +1|CTI_NB_FAC|SEJOURS|NB sorties Facturées|Nombre de sorties Facturées|Nombre de sorties Facturées|DISTINCT CASE WHEN code_sorti = '1' AND date_facture != '2099-12-31' THEN no_sejour ELSE NULL END|1|COUNT|#|60|2|5| | | |2||||||||||||||||||||||0|||||||||||Nombre de séjours sortis facturés|NBSOR|||||||| +1|CTI_NB_FACTURES|SEJOURS|Nombre de factures|Factures|Factures|nb_factures|1|SUM|#|60|2| | | | |2||||||||||||||||||||||0||||||||||||NOMBRE|||||||| +1|CTI_NB_GP_NFAC|SEJOURS|À facturer|À facturer|À facturer|nb_non_calcules_groupes|1|SUM|#|60|2| | | | |2||||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_NB_GROU|SEJOURS|NB sorties Groupées non facturées|Nombre de sorties Groupées non facturées|Nombre de sorties Groupées non facturées|CASE WHEN date_facture = '2099-12-31' THEN nb_groupe ELSE NULL END|1|SUM|#|60|2|5| | | |2||||||||||||||||||||||0|||||||||||Nombre de séjours groupés sortis non facturés|NBSOR|||||||| +1|CTI_NB_GROUT|SEJOURS|NB sorties groupées|Nombre de sorties groupées|Sorties groupées|nb_groupe|1|SUM|#|0|2|5| | | | ||||||||||||||||||||||0|||||||||||Nombre de séjours groupés sortis|NBSOR|||||||| +1|CTI_NB_NFAC|SEJOURS|NB sorties non Facturées|Nombre de sorties non Facturées|Nombre de sorties non Facturées|DISTINCT CASE WHEN montant_facture = 0 THEN no_sejour ELSE NULL END|1|COUNT|#|60|2|4| | | | ||||||||||||||||||||||0|||||||||||Nombre de séjours sortis non facturés|NBSOR|||||||| +1|CTI_NB_NGROU|SEJOURS|NB sorties Non Groupées|Nombre de sorties Non Groupées|Nombre de sorties Non Groupées|nb_non_groupe|1|SUM|#|60|2| | | | |2||||||||||||||||||||||0|||||||||||Nombre de séjours sortis non groupés|NBSOR|||||||| +1|CTI_NB_NGR_SOR|SEJOURS|Reste à grouper|Reste à grouper|Reste à grouper|nb_non_groupe|1|SUM|#|60|2| | | | |2||||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_NB_NONFAC|SEJOURS|Reste à facturer|Reste à facturer|Reste à facturer|nb_non_calcules|1|SUM|#|60|2| | | | |2||||||||||||||||||||||0||||||||||||NOMBRE|||||||| +1|CTI_NB_NON_EXP|SEJOURS|Reste à expédier|Reste à expédier|Reste à expédier|nb_non_expedie_c|1|SUM|#|60|2| | | | |2||||||||||||||||||||||0||||||||||||NOMBRE|||||||| +1|CTI_NB_NON_SOLD|SEJOURS|Reste à solder|Reste à solder|Reste à solder|nb_non_solde_c|1|SUM|#|60|2| | | | |2||||||||||||||||||||||0|||||||||||||||||||| +1|CTI_NB_PREADM|OCCUPATION|Nombre de séjours avec préadmission validée|Nombre séjours avec préadmission||nb_preadmission_validee|1|SUM||0|1| | | | |1||||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_NB_PREADM_J1|OCCUPATION|Nombre de séjours avec préadmission validée à   J-1|Nombre séjours avec préadmission J-1||nb_preadmission_validee_j1|1|SUM||0|1| | | | |1||||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_NB_PREADM_J2|OCCUPATION|Nombre de séjours avec préadmission validée à    J-2|Nombre séjours avec préadmission J-2||nb_preadmission_validee_j2|1|SUM||0|1| | | | |1||||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_NB_PRESENT|OCCUPATION|NB présents (Date du Jour)|Nombres de présents (Date du Jour)|Nombres de présents (Date du Jour)|DISTINCT(CASE WHEN (code_sorti= 0 AND code_prevu = 0) THEN no_sejour ELSE NULL END)|1|COUNT|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de patients présents dans l'établissement||||||||| +1|CTI_NB_RECUSES|ANNULATIONS|Nombre de séjours récusés|Nombre séjours récusés||DISTINCT CASE WHEN etat_sejour_code = 'R' THEN no_sejour ELSE NULL END|1|COUNT||0|1| | | | |1||||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_NB_SAB|*CALC|NB Sorties directes + Ambulatoires + bébés|Sorties directes + Ambulatoires + bébés|Sorties Ambu Bb|[1] + [2] + [3]|1|*CALC|#|0| | | | | | |CTI_NBSORDIR|CTI_NBAMB|CTI_NB_BEBE|||||||||||||||||||0|||||||||||Nombre de sorties directes, ambulatoires et de bébés|-TS1|-TS2|NBENT|NBSOR||||| +1|CTI_NB_SABS|*CALC|NB Sorties directes + Ambulatoires + bébés + séances|Sorties directes + Ambulatoires + bébés+ séances|Sorties Ambu Bb Sc|[1] + [2] + [3] + [4]|1|*CALC|#|0| | | | | | |CTI_NBSORDIR|CTI_NBAMB|CTI_NB_BEBE|CTI_NBSCE||||||||||||||||||0|||||||||||Nombre de sorties directes, ambulatoires, de séances et de bébés|-TS1|-TS2|-TS5|NBENT|NBSOR|||| +1|CTI_NB_SAE|OCCUPATION|NB Sorties directes + Ambulatoires + Externes|Sorties directes + Ambulatoires + Externes|Sorties directes + Ambulatoires + Externes|nb_ambulatoires + nb_externes + nb_sorties_directes|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties directes, ambulatoires et externes|-TS2|-TS3|NBSOR|||||| +1|CTI_NB_SEJ|SEJOURS|NB séjours hospit et ambu|Nombre de séjours hospit et ambu|Nb sej Hosp Amb|DISTINCT CASE WHEN type_sejour = '1' OR type_sejour = '2' THEN no_sejour ELSE null END|1|COUNT|#|0|2| | | | |2||||||||||||||||||||||0|||||||||||Nombre de séjours hospitalisés et ambulatoires|NBSEJ|||||||| +1|CTI_NB_SEJ_FAEN|FACTURATION_CLINIQUE|NB Séjours Facturés + Valorisés|Séjours Facturés + Valorisés|Séjours Facturés + Valorisés|DISTINCT no_sejour |1|COUNT|#|0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours facturés et valorisés|NBSEJ|||||||| +1|CTI_NB_SEJ_VAL|FACTURATION_CLINIQUE|NB Séjours Valorisés|Séjours Valorisés|Séjours Valorisés|DISTINCT CASE WHEN est_ligne_facturee = '0' THEN no_sejour ELSE NULL END|1|COUNT|#|0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours valorisés|NBSEJ|||||||| +1|CTI_NB_SOLDER|SEJOURS|NB Séjours Soldés|NB_SOLDE|NB_SOLDE|CASE WHEN nb_non_solde_0_c <> 0 or nb_non_solde_1_c <> 0 or nb_non_solde_2_c <> 0 THEN 0 ELSE 1 END|1|SUM|0,0|40|2| | | | |2||||||||||||||||||||||0||||||||||||NOMBRE|||||||| +1|CTI_NB_SORTOT|OCCUPATION|NB Sorties totales directes et mutations Hospitalisés|Sorties totales directes et mutations (Hospitalisés)|Sorties totales directes et mutations (Hospitalisés)|nb_sorties_directes + nb_sorties_mutation_etage|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties directes et de mutations des séjours hospitalisés|-TS1|NBSOR||||||| +1|CTI_NB_SUSPENDUS|ANNULATIONS|Nombre de séjours suspendus|Nombre séjours suspendus||DISTINCT CASE WHEN etat_sejour_code = 'C' THEN no_sejour ELSE NULL END|1|COUNT||0|1| | | | |1||||||||||||||||||||||0||||||||||||NBSEJ|||||||| +1|CTI_NN1_JOU_ENC|FACTURATION_CLINIQUE|NB Jours NN1 Valorisées|Nombre journées NN1 Valorisées|Nombre journées NN1 Valorisées|CASE WHEN prestation_code IN ('NN1') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN1 valorisées|NBJOU|||||||| +1|CTI_NN1_JOU_FAC|FACTURATION_CLINIQUE|NB Jours NN1 facturées|Nombre journées NN1 facturées|Nombre journées NN1 facturées|CASE WHEN prestation_code IN ('NN1') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN1 facturées|NBJOU|||||||| +1|CTI_NN1_JOU_TOT|FACTURATION_CLINIQUE|NB Jours NN1 Facturées + Valorisées|Total journées NN1 Facturées + Valorisées|Total journées NN1 Facturées + Valorisées|CASE WHEN prestation_code IN ('NN1') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN1 facturées et valorisées|NBJOU|||||||| +1|CTI_NN1_MT_ENC|FACTURATION_CLINIQUE|CA NN1 Valorisé|Montant NN1 Valorisé|Montant NN1 Valorisé|CASE WHEN prestation_code IN ('NN1') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN1 Valorisé|CAV|||||||| +1|CTI_NN1_MT_FAC|FACTURATION_CLINIQUE|CA NN1 Facturé|Montant NN1 facturé|Montant NN1 facturé|CASE WHEN prestation_code IN ('NN1') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN1 Facturé|CAF|||||||| +1|CTI_NN1_MT_TOT|FACTURATION_CLINIQUE|CA NN1 Facturé + Valorisé|Montant NN1 facturé + Valorisé|Montant NN1 facturé + Valorisé|CASE WHEN prestation_code IN('NN1') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN1 Facturé + Valorisé|CAVF|||||||| +1|CTI_NN1_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA NN1 Valorisés|Nombre séjours NN1 Valorisés|Nombre séjours NN1 Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('NN1')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN1 Valorisés|NBSEJ|||||||| +1|CTI_NN1_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA NN1 facturés|Nombre séjours NN1 facturés|Nombre séjours NN1 facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('NN1')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN1 Facturés|NBSEJ|||||||| +1|CTI_NN1_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA NN1 Facturés + Valorisés|Nombre séjours NN1 Facturés + Valorisés|Nombre séjours NN1 Facturés + Valorisés|DISTINCT CASE WHEN ( prestation_code IN ('NN1')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN1 Facturés + Valorisés|NBSEJ|||||||| +1|CTI_NN2_JOU_ENC|FACTURATION_CLINIQUE|NB Jours NN2 Valorisées|Nombre journées NN2 Valorisées|Nombre journées NN2 Valorisées|CASE WHEN prestation_code IN ('NN2') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN2 valorisées|NBJOU|||||||| +1|CTI_NN2_JOU_FAC|FACTURATION_CLINIQUE|NB Jours NN2 facturées|Nombre journées NN2 facturées|Nombre journées NN2 facturées|CASE WHEN prestation_code IN ('NN2') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN2 facturées|NBJOU|||||||| +1|CTI_NN2_JOU_TOT|FACTURATION_CLINIQUE|NB Jours NN2 Facturées + Valorisées|Total journées NN2 Facturées + Valorisées|Total journées NN2 Facturées + Valorisées|CASE WHEN prestation_code IN ('NN2') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN2 facturées et valorisées|NBJOU|||||||| +1|CTI_NN2_MT_ENC|FACTURATION_CLINIQUE|CA NN2 Valorisé|Montant NN2 Valorisé|Montant NN2 Valorisé|CASE WHEN prestation_code IN ('NN2') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN2 Valorisé|CAV|||||||| +1|CTI_NN2_MT_FAC|FACTURATION_CLINIQUE|CA NN2 Facturé|Montant NN2 facturé|Montant NN2 facturé|CASE WHEN prestation_code IN ('NN2') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN2 Facturé|CAF|||||||| +1|CTI_NN2_MT_TOT|FACTURATION_CLINIQUE|CA NN2 Facturé + Valorisé|Montant NN2 facturé + Valorisé|Montant NN2 facturé + Valorisé|CASE WHEN prestation_code IN('NN2') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN2 Facturé + Valorisé|CAVF|||||||| +1|CTI_NN2_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA NN2 Valorisés|Nombre séjours NN2 Valorisés|Nombre séjours NN2 Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('NN2')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN2 Valorisés|NBSEJ|||||||| +1|CTI_NN2_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA NN2 facturés|Nombre séjours NN2 facturés|Nombre séjours NN2 facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('NN2')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN2 Facturés|NBSEJ|||||||| +1|CTI_NN2_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA NN2 Facturés + Valorisés|Nombre séjours NN2 Facturés + Valorisés|Nombre séjours NN2 Facturés + Valorisés|DISTINCT CASE WHEN ( prestation_code IN ('NN2')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN2 Facturés + Valorisés|NBSEJ|||||||| +1|CTI_NN3_JOU_ENC|FACTURATION_CLINIQUE|NB Jours NN3 Valorisées|Nombre journées NN3 Valorisées|Nombre journées NN3 Valorisées|CASE WHEN prestation_code IN ('NN3') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN3 valorisées|NBJOU|||||||| +1|CTI_NN3_JOU_FAC|FACTURATION_CLINIQUE|NB Jours NN3 facturées|Nombre journées NN3 facturées|Nombre journées NN3 facturées|CASE WHEN prestation_code IN ('NN3') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN3 facturées|NBJOU|||||||| +1|CTI_NN3_JOU_TOT|FACTURATION_CLINIQUE|NB Jours NN3 Facturées + Valorisées|Total journées NN3 Facturées + Valorisées|Total journées NN3 Facturées + Valorisées|CASE WHEN prestation_code IN ('NN3') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées NN3 facturées et valorisées|NBJOU|||||||| +1|CTI_NN3_MT_ENC|FACTURATION_CLINIQUE|CA NN3 Valorisé|Montant NN3 Valorisé|Montant NN3 Valorisé|CASE WHEN prestation_code IN ('NN3') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN3 Valorisé|CAV|||||||| +1|CTI_NN3_MT_FAC|FACTURATION_CLINIQUE|CA NN3 Facturé|Montant NN3 facturé|Montant NN3 facturé|CASE WHEN prestation_code IN ('NN3') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN3 Facturé|CAF|||||||| +1|CTI_NN3_MT_TOT|FACTURATION_CLINIQUE|CA NN3 Facturé + Valorisé|Montant NN3 facturé + Valorisé|Montant NN3 facturé + Valorisé|CASE WHEN prestation_code IN('NN3') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires NN3 Facturé + Valorisé|CAVF|||||||| +1|CTI_NN3_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA NN3 Valorisés|Nombre séjours NN3 Valorisés|Nombre séjours NN3 Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('NN3')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN3 Valorisés|NBSEJ|||||||| +1|CTI_NN3_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA NN3 facturés|Nombre séjours NN3 facturés|Nombre séjours NN3 facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('NN3')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN3 Facturés|NBSEJ|||||||| +1|CTI_NN3_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA NN3 Facturés + Valorisés|Nombre séjours NN3 Facturés + Valorisés|Nombre séjours NN3 Facturés + Valorisés|DISTINCT CASE WHEN ( prestation_code IN ('NN3')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours NN3 Facturés + Valorisés|NBSEJ|||||||| +1|CTI_NSCPT_C|FACTURATION_CLINIQUE|NB Séjours Comptabilisés|Séjours comptabilisés|Séjours comptabilisés|DISTINCT CASE WHEN montant_comptabilise <> 0 THEN no_sejour ELSE NULL END|1|COUNT|#|0|4| | | | |4||||||||||||||||||||||0|||||||||||Nombre de séjours comptabilisés|NBSEJ|||||||| +1|CTI_NSFAC1_CS|FACTURATION_CLINIQUE|NB Séjours facturés [HOSP]|Nombre séjours Total facturés (Hospitalisés)|Nombre séjours Total facturés (Hospitalisés)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours hospitalisés (1 nuit minimum) facturés|-TS1|NBSEJ||||||| +1|CTI_NSFAC2_CS|FACTURATION_CLINIQUE|NB Séjours facturés [AMBU]|Nombre séjours Total facturés (Ambulatoire)|Nombre séjours Total facturés (Ambulatoire)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours ambulatoires (0 nuits) facturés|-TS2|NBSEJ||||||| +1|CTI_NSFAC3_CS|FACTURATION_CLINIQUE|NB Séjours facturés [EXT]|Nombre séjours Total facturés (Externe)|Nombre séjours Total facturés (Externe)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and type_sejour = '3') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours externes facturés|-TS3|NBSEJ||||||| +1|CTI_NSFAC5_CS|FACTURATION_CLINIQUE|NB Séjours facturés [SEANCE]|Nombre séjours Total facturés (Séances)|Nombre séjours Total facturés (Séances)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and type_sejour = '5') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séances facturées|-TS5|NBSEJ||||||| +1|CTI_NSFACT_CS|FACTURATION_CLINIQUE|NB séjours facturés|Nombre séjours avec facturation|Nombre séjours avec facturation|DISTINCT CASE WHEN est_ligne_facturee = '1' THEN no_sejour ELSE NULL END|1|COUNT|#|0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours comportant une facturation|NBSEJ|||||||| +1|CTI_NSFAC_C|FACTURATION_CLINIQUE|NB Séjours Facturés|Séjours facturés|Séjours facturés|DISTINCT CASE WHEN est_ligne_facturee = '1' THEN no_sejour ELSE NULL END|1|COUNT|#|0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours facturés|NBSEJ|||||||| +1|CTI_NSFAC_CS|FACTURATION_CLINIQUE|NB séjours facturés|Nombre séjours Total facturés|Nombre séjours Total facturés|DISTINCT CASE WHEN est_ligne_facturee = '1' THEN no_sejour ELSE NULL END|1|COUNT|#|0|1|2|3|4| |1||||||||||||||||||||||0|||||||||||Nombre de séjours facturés|NBSEJ|||||||| +1|CTI_PORTFOLIO_NEW|*CALC|Portfolio||||1|*CALC|#,0|0| | | | | | ||||||||||||||||||||||0|||||||||||||||||||| +1|CTI_PROTH_MT_CPT|FACTURATION_CLINIQUE|CA PROTHESE Comptabilisé|Montant prothèses Facturé|Montant prothèses Facturé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN montant_comptabilise ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé des prothèses|CACP|||||||| +1|CTI_PROTH_MT_ENC|FACTURATION_CLINIQUE|CA PROTHESE Valorisé|Montant prothèses Valorisé|Montant prothèses Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des prothèses|CAV|||||||| +1|CTI_PROTH_MT_FAC|FACTURATION_CLINIQUE|CA PROTHESE Facturé|Montant prothèses Facturé|Montant prothèses Facturé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des prothèses|CAF|||||||| +1|CTI_PROTH_MT_TOT|FACTURATION_CLINIQUE|CA PROTHESE Facturé + Valorisé|Montant prothèses Facturé + Valorisé|Montant prothèses Fact + Val|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des prothèses|CAVF|||||||| +1|CTI_PROTH_RUB_FAC|FACTURATION_CLINIQUE|NB Rubriques PROTHESE|Nombre rubriques prothèses|Nombre rubriques prothèses|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_PROTHESE_R] THEN nb_rubrique_facture ELSE 0 END|1|SUM|#|60|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de rubriques de prothèses|NBRUB|||||||| +1|CTI_PSEJFEM|*CALC|Pourcentage de femmes|Pourcentage de femmes|Pourcentage de femmes|base.cti_division([1], [2]) * 100.0|1|*CALC|#,0%|0| | | | | | |CTI_NBSEJFEM|CTI_NBSEJO||||||||||||||||||||0|||||||||||Part des femmes dans la patientèle|NBSEJ|||||||| +1|CTI_RAPPORTCALC|*RAPPORTCALC|Calcul d'indicateurs dans le rapport||||1|sum|#|0| | | | | | ||||||||||||||||||||||0|||||||||||Pour calculer directement dans la définition du rapport||||||||| +1|CTI_RAT_AMB1_CAT|*CALC|Ratio CA Hospitalisés / CA Total Clinique|Ratio CA Hospitalisés / CA Total Clinique|Ratio CA Hospitalisés / CA Total Clinique|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | ||||||||||||||||||||||0|||||||||||Part du Chiffre d'Affaires des séjours hospitalisés (1 nuit minimum) facturés dans le Chiffre d'Affaires total des séjours facturés|-TS1|CAF||||||| +1|CTI_RAT_AMB2_CAT|*CALC|Ratio CA Ambulatoire / CA Total Clinique|Ratio CA Ambulatoire / CA Total Clinique|Ratio CA Ambulatoire / CA Total Clinique|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | ||||||||||||||||||||||0|||||||||||Part du Chiffre d'Affaires des séjours ambulatoires (0 nuits) facturés dans le Chiffre d'Affaires total des séjours facturés|-TS2|CAF||||||| +1|CTI_RAT_AMB5_CAT|*CALC|Ratio CA Séances / CA Total Clinique|Ratio CA Séances / CA Total Clinique|Ratio CA Séances / CA Total Clinique|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | ||||||||||||||||||||||0|||||||||||Part du Chiffre d'Affaires des séances facturées dans le Chiffre d'Affaires total des séjours facturés|-TS5|CAF||||||| +1|CTI_RAT_AMB_END|*CALC|Ratio nb Ambulatoires / nb sorties Hospitalisés + Ambulatoire|Ratio nb Ambulatoires / nb sorties Hospitalisés + Ambulatoire|Ratio nb Ambulatoires / nb sorties Hospitalisés + Ambulatoire|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | |CTI_NBAMB|CTI_NBSOR_SA||||||||||||||||||||0|||||||||||Part du nombre de séjours ambulatoires (0 nuits) sur le nombre total de sorties directes des séjours hospitalisés et ambulatoires|-TS1|-TS2|NBENT|NBSOR||||| +1|CTI_RAT_CAH_CAL|*CALC|Ratio CA Honoraire / Clinique|Ratio CA Honoraire / Clinique|Ratio CA Hon|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | ||||||||||||||||||||||0|||||||||||Part du Chiffre d'Affaires comptabilisé pour les honoraires sur la Chiffre d'Affaires comptabilisé total|CACP|CAHON||||||| +1|CTI_REA_JOU_ENC|FACTURATION_CLINIQUE|NB Jours REA Valorisées|Nombre journées REA Valorisées|Nombre journées REA Valorisées|CASE WHEN prestation_code IN ('REA') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées valorisées en REA|NBJOU|||||||| +1|CTI_REA_JOU_FAC|FACTURATION_CLINIQUE|NB Jours REA facturées|Nombre journées REA facturées|Nombre journées REA facturées|CASE WHEN prestation_code IN ('REA') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées facturées en REA|NBJOU|||||||| +1|CTI_REA_JOU_TOT|FACTURATION_CLINIQUE|NB Jours REA Facturées + Valorisées|Total journées REA Facturées + Valorisées|Total journées REA Facturées + Valorisées|CASE WHEN prestation_code IN ('REA') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées facturées et valorisées en REA|NBJOU|||||||| +1|CTI_REA_MT_ENC|FACTURATION_CLINIQUE|CA REA Valorisé|Montant REA Valorisé|Montant REA Valorisé|CASE WHEN prestation_code IN ('REA') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé en REA|CAV|||||||| +1|CTI_REA_MT_FAC|FACTURATION_CLINIQUE|CA REA Facturé|Montant REA facturé|Montant REA facturé|CASE WHEN prestation_code IN ('REA') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé en REA|CAF|||||||| +1|CTI_REA_MT_TOT|FACTURATION_CLINIQUE|CA REA Facturé + Valorisé|Montant REA facturé + Valorisé|Montant REA facturé + Valorisé|CASE WHEN prestation_code IN ('REA') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé en REA|CAVF|||||||| +1|CTI_REA_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA REA Valorisés|Nombre séjours REA Valorisés|Nombre séjours REA Valorisés|DISTINCT CASE WHEN est_ligne_facturee = '0' and prestation_code IN ('REA') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires valorisé en REA|NBSEJ|||||||| +1|CTI_REA_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA REA facturés|Nombre séjours REA facturés|Nombre séjours REA facturés|DISTINCT CASE WHEN est_ligne_facturee = '1' and prestation_code IN ('REA') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé en REA|NBSEJ|||||||| +1|CTI_REA_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA REA Facturés + Valorisés|Nombre séjours REA Facturés + Valorisés|Nombre séjours REA Facturés + Valorisés|DISTINCT CASE WHEN ( prestation_code IN ('REA')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé et valorisé en REA|NBSEJ|||||||| +1|CTI_RUBMED_MT1_ENC|FACTURATION_CLINIQUE|CA SEJOUR Valorisé [HOSP]|Montant CA SEJOUR Valorisé (hospitalisés)|Montant CA SEJOUR Valorisé (hospitalisés)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '1' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séjours hospitalisés (1 nuit minimum)|-TS1|CAV||||||| +1|CTI_RUBMED_MT1_FAC|FACTURATION_CLINIQUE|CA SEJOUR Facturé [HOSP]|Montant CA SEJOUR factur (hospitalisés)|Montant CA SEJOUR factur (hospitalisés)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '1' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séjours hospitalisés (1 nuit minimum)|-TS1|CAF||||||| +1|CTI_RUBMED_MT1_TOT|FACTURATION_CLINIQUE|CA SEJOUR Facturé + Valorisé [HOSP]|Montant CA SEJOUR facturé + enc. (hospitalisés)|Montant CA SEJOUR facturé + enc. (hospitalisés)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '1' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours hospitalisés (1 nuit minimum)|-TS1|CAVF||||||| +1|CTI_RUBMED_MT2_ENC|FACTURATION_CLINIQUE|CA SEJOUR Valorisé [AMBU]|Montant CA Séjour Valorisé (ambulatoire)|Montant CA Séjour Valorisé (ambulatoire)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '2' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séjours ambulatoires (0 nuits)|-TS2|CAV||||||| +1|CTI_RUBMED_MT2_FAC|FACTURATION_CLINIQUE|CA SEJOUR Facturé [AMBU]|Montant CA SEJOUR facturé (ambulatoire)|Montant CA SEJOUR facturé (ambulatoire)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '2' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séjours ambulatoires (0 nuits)|-TS2|CAF||||||| +1|CTI_RUBMED_MT2_TOT|FACTURATION_CLINIQUE|CA SEJOUR Facturé + Valorisé [AMBU]|Montant CA SEJOUR facturé + enc. (ambulatoire)|Montant CA SEJOUR facturé + enc. (ambulatoire)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '2' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours ambulatoires (0 nuits)|-TS2|CAVF||||||| +1|CTI_RUBMED_MT3_ENC|FACTURATION_CLINIQUE|CA SEJOUR Valorisé [EXT]|Montant CA SEJOUR Valorisé (Externes)|Montant CA SEJOUR Valorisé (Externes)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '3' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séjours externes|-TS3|CAV||||||| +1|CTI_RUBMED_MT3_FAC|FACTURATION_CLINIQUE|CA SEJOUR Facturé [EXT]|Montant CA SEJOUR facturé (Externe)|Montant CA SEJOUR facturé (Externe)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '3' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séjours externes|-TS3|CAF||||||| +1|CTI_RUBMED_MT3_TOT|FACTURATION_CLINIQUE|CA SEJOUR Facturé + Valorisé [EXT]|Montant CA SEJOUR facturé + enc. (Externe)|Montant CA SEJOUR facturé + enc. (Externe)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '3' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours externes|-TS3|CAVF||||||| +1|CTI_RUBMED_MT5_ENC|FACTURATION_CLINIQUE|CA SEJOUR Valorisé [SEANCE]|Montant CA SEJOUR Valorisé (séances)|Montant CA SEJOUR Valorisé (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '5' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séances|-TS5|CAV||||||| +1|CTI_RUBMED_MT5_FAC|FACTURATION_CLINIQUE|CA SEJOUR Facturé [SEANCE]|Montant CA SEJOUR facturé (séances)|Montant CA SEJOUR facturé (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '5' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séances|-TS5|CAF||||||| +1|CTI_RUBMED_MT5_TOT|FACTURATION_CLINIQUE|CA SEJOUR Facturé + Valorisé [SEANCE]|Montant CA SEJOUR facturé + enc. (séances)|Montant CA SEJOUR facturé + enc. (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '5' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séances|-TS5|CAVF||||||| +1|CTI_RUBMED_MT_ENC|FACTURATION_CLINIQUE|CA SEJOUR Valorisé|Montant CA SEJOUR Valorisé|Montant CA SEJOUR Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des séjours|CAV|||||||| +1|CTI_RUBMED_MT_FAC|FACTURATION_CLINIQUE|CA SEJOUR Facturé|Montant CA SEJOUR facturé|Montant CA SEJOUR facturé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des séjours|CAF|||||||| +1|CTI_RUBMED_MT_TOT|FACTURATION_CLINIQUE|CA SEJOUR Facturé + Valorisé|Montant CA SEJOUR facturé + Valorisé|Montant CA SEJOUR facturé + Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des séjours|CAVF|||||||| +1|CTI_RUBMED_NB1_ENC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Valorisés [HOSP]|Nombre séjours Valorisés (hospitalisés)|Nombre séjours Valorisés (hospitalisés)|DISTINCT CASE WHEN (est_ligne_facturee = '0' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours hospitalisés (1 nuit minimum) valorisés|-TS1|NBSEJ||||||| +1|CTI_RUBMED_NB1_FAC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR facturés [HOSP]|Nombre séjours facturés (hospitalisés)|Nombre séjours facturés (hospitalisés)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours hospitalisés (1 nuit minimum) facturés|-TS1|NBSEJ||||||| +1|CTI_RUBMED_NB1_TOT|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Facturés + Valorisés [HOSP]|Nombre SEJOURS Facturés + Valorisés (hospitalisés|Nombre SEJOURS Facturés + Valorisés (hospitalisés|DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours hospitalisés (1 nuit minimum) facturés et valorisés|-TS1|NBSEJ||||||| +1|CTI_RUBMED_NB2_ENC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Valorisés [AMBU]|Nombre séjours Valorisés (ambulatoire)|Nombre séjours Valorisé s (ambulatoire)|DISTINCT CASE WHEN (est_ligne_facturee = '0' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours ambulatoires (0 nuits) valorisés|-TS2|NBSEJ||||||| +1|CTI_RUBMED_NB2_FAC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR facturés [AMBU]|Nombre séjours facturés (ambulatoire)|Nombre séjours facturés (ambulatoire)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours ambulatoires (0 nuits) facturés|-TS2|NBSEJ||||||| +1|CTI_RUBMED_NB2_TOT|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Facturés + Valorisés [AMBU]|Nombre séjours Facturés + Valorisés (ambulatoire)|Nombre séjours Facturés + Valorisés (ambulatoire)|DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours ambulatoires (0 nuits) facturés et valorisés|-TS2|NBSEJ||||||| +1|CTI_RUBMED_NB3_ENC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Valorisés [EXT]|Nombre séjours Valorisés (Externe)|Nombre séjours Valorisés (Externe)|DISTINCT CASE WHEN (est_ligne_facturee = '0' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '3') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours externes valorisés|-TS3|NBSEJ||||||| +1|CTI_RUBMED_NB3_FAC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR facturés [EXT]|Nombre séjours facturés (Externe)|Nombre séjours facturés (Externe)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '3') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours externes facturés|-TS3|NBSEJ||||||| +1|CTI_RUBMED_NB3_TOT|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Facturés + Valorisés [EXT]|Nombre séjours Facturés + Valorisés (Externe)|Nombre séjours Facturés + Valorisés (Externe)|DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '3') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours externes facturés et valorisés|-TS3|NBSEJ||||||| +1|CTI_RUBMED_NB5_ENC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Valorisés [SEANCE]|Nombre séances Valorisés (séances)|Nombre séances Valorisés (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '5' and est_ligne_facturee = '0' THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séances valorisées|-TS5|NBSEJ||||||| +1|CTI_RUBMED_NB5_FAC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR facturés [SEANCE]|Nombre séances facturées (séances)|Nombre séances facturées (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '5' and est_ligne_facturee = '1' THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séances facturées|-TS5|NBSEJ||||||| +1|CTI_RUBMED_NB5_TOT|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Facturés + Valorisés [SEANCE]|Nombre séances Facturées + Valorisées (séances)|Nombre séances Facturées + Valorisées (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] and type_sejour = '5' THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séances facturées et valorisées|-TS5|NBSEJ||||||| +1|CTI_RUBMED_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Valorisés|Nombre séjours Valorisés|Nombre séjours Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R]) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours valorisés|NBSEJ|||||||| +1|CTI_RUBMED_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR facturés|Nombre séjours facturés|Nombre séjours facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and rubrique_facturation_id IN [LISTE:CTI_RUBMED_R]) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours facturés|NBSEJ|||||||| +1|CTI_RUBMED_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA SEJOUR Facturés + Valorisés|Nombre séjours Facturés + Valorisés|Nombre séjours Facturés + Valorisés|DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_RUBMED_R]) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours facturés et valorisés|NBSEJ|||||||| +1|CTI_SEH_MT_CPT|FACTURATION_CLINIQUE|CA SE comptabilisé|Montant SE comptabilisé|Montant SE comptabilisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_comptabilise ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires SE comptabilisé|CACP|||||||| +1|CTI_SEH_MT_ENC|FACTURATION_CLINIQUE|CA SE Valorisé Clinique|Montant SE Valorisé Clinique|Montant SE Valorisé Clinique|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires SE valorisé|CAV|||||||| +1|CTI_SEH_MT_FAC|FACTURATION_CLINIQUE|CA SE Facturé Clinique|Montant SE facturés Clinique|Montant SE facturés Clinique|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires SE facturé|CAF|||||||| +1|CTI_SEH_MT_TOT|FACTURATION_CLINIQUE|CA SE Facturé + Valorisé|Montant SE Facturé + Valorisé|Montant SE Facturé + Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_facture + montant_encours ELSE NULL END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires SE facturé et valorisé|CAVF|||||||| +1|CTI_SEH_NB_ENC|FACTURATION_CLINIQUE|NB Rubriques SE Valorisés|Nombre SE Valorisés|Nombre SE Valorisés|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de rubriques SE valorisées|NBRUB|||||||| +1|CTI_SEH_NB_FAC|FACTURATION_CLINIQUE|NB Rubriques SE facturés|Nombre SE facturés|Nombre SE facturés|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de rubriques SE facturées|NBRUB|||||||| +1|CTI_SEH_NB_TOT|FACTURATION_CLINIQUE|NB Rubriques SE Facturés + Valorisés|Nombre SE Facturés + Valorisés|Nombre SE Facturés + Valorisés|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN nb_rubrique_facture + nb_rubrique_encours ELSE NULL END|1|SUM|#|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de rubriques SE facturées et valorisées|NBRUB|||||||| +1|CTI_SEP|SEP|Séparateur||||1|SEP||0| | | | | | ||||||||||||||||||||||0|||||||||||||||||||| +1|CTI_SHO_JOU_ENC|FACTURATION_CLINIQUE|NB Jours CPC Valorisées|Nombre journées CP Valorisées|Nombre journées CP Valorisées|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées valorisées en chambre particulière|NBJOU|||||||| +1|CTI_SHO_JOU_FAC|FACTURATION_CLINIQUE|NB Jours CPC facturées|Nombre journées CP facturées|Nombre journées CP facturées|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées facturées en chambre particulière|NBJOU|||||||| +1|CTI_SHO_JOU_TOT|FACTURATION_CLINIQUE|NB Jours CPC fact. + val.|Nombre journées CP Facturées + Valorisées|Nombre journées CP Facturées + Valorisées|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN (nb_rubrique_encours * coefficient) + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées facturées et valorisées en chambre particulière|NBJOU|||||||| +1|CTI_SHO_MT_ENC|FACTURATION_CLINIQUE|CA CPC Valorisé|CA chambre particulière Valorisé|CA chambre particulière Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé en chambre particulière|CAV|||||||| +1|CTI_SHO_MT_FAC|FACTURATION_CLINIQUE|CA CPC Facturé|CA chambre particulière facturée|CA chambre particulière facturée|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé en chambre particulière|CAF|||||||| +1|CTI_SHO_MT_TOT|FACTURATION_CLINIQUE|CA CPC Facturé + Valorisé|CA chambre particulière facturée + Valorisé|CA chambre particulière facturée + Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé en chambre particulière|CAVF|||||||| +1|CTI_SNS_NB_FACVAL|FACTURATION_CLINIQUE|NB Rubriques SNS Facturés + Valorisés|Nombre SNS Facturé + Valorisé|Nombre SNS Facturé + Valorisé|CASE WHEN prestation_code in ('SNS') THEN nb_rubrique_facture + nb_rubrique_encours ELSE 0 END|1|SUM|#|80|1|2|3|4| | ||||||||||||||||||||||0||||||||||||NBRUB|||||||| +1|CTI_SORDIRCOM|OCCUPATION|SSR - Sorties directes (Hospitalisés COMPLETE)|Sorties directes (Hospitalisés COMPLETE)|Sorties directes (Hospitalisés COMPLETE)|CASE WHEN mode_traitement_id = '3' THEN nb_sorties_directes ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties directes des séjours en Hospitalisation Complète|-TS1|||||||| +1|CTI_SORDIRJR|OCCUPATION|SSR - Sorties directes (Hospitalisés DE JOUR)|Sorties directes (Hospitalisés DE JOUR)|Sorties directes (Hospitalisés DE JOUR)|CASE WHEN mode_traitement_id = '4' THEN nb_sorties_directes ELSE 0 END|1|SUM|#|60|1| | | | |1||||||||||||||||||||||0|||||||||||Nombre de sorties directes des séjours en Hospitalisation de Jour|-TS1|||||||| +1|CTI_SOR_POST_PER|*CALC|NB Sorties après période|Sorties après période|Sor > Per|[1] - [2]|1|*CALC||0| | | | | | |CTI_NBSEJO|CTI_DEP||||||||||||||||||||0|||||||||||Nombre de sorties apr|NBSEJ|NBSOR||||||| +1|CTI_SRC_JOU_ENC|FACTURATION_CLINIQUE|NB Jours SRC Valorisées|Nombre journées SRC Valorisées|Nombre journées SRC Valorisées|CASE WHEN prestation_code IN ('SRC', 'SSC') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées valorisées en SRC|NBJOU|||||||| +1|CTI_SRC_JOU_FAC|FACTURATION_CLINIQUE|NB Jours SRC facturées|Nombre journées SRC facturées|Nombre journées SRC facturées|CASE WHEN prestation_code IN ('SRC', 'SSC') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées facturées en SRC|NBJOU|||||||| +1|CTI_SRC_JOU_TOT|FACTURATION_CLINIQUE|NB Jours SRC Facturées + Valorisées|Total journées SRC Facturées + Valorisées|Total journées SRC Facturées + Valorisées|CASE WHEN prestation_code IN ('SRC', 'SSC') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées facturées et valorisées en SRC|NBJOU|||||||| +1|CTI_SRC_MT_ENC|FACTURATION_CLINIQUE|CA SRC Valorisé|Montant SRC Valorisé|Montant SRC Valorisé|CASE WHEN prestation_code IN ('SRC', 'SSC') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé SRC|CAV|||||||| +1|CTI_SRC_MT_FAC|FACTURATION_CLINIQUE|CA SRC Facturé|Montant SRC facturé|Montant SRC facturé|CASE WHEN prestation_code IN ('SRC', 'SSC') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé SRC|CAF|||||||| +1|CTI_SRC_MT_TOT|FACTURATION_CLINIQUE|CA SRC Facturé + Valorisé|Montant SRC facturé + Valorisé|Montant SRC facturé + Valorisé|CASE WHEN prestation_code IN ('SRC', 'SSC') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé SRC|CAVF|||||||| +1|CTI_SRC_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA SRC Valorisés|Nombre séjours SRC Valorisés|Nombre séjours SRC Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('SRC', 'SSC')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires valorisé en SRC|NBSEJ|||||||| +1|CTI_SRC_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA SRC facturés|Nombre séjours SRC facturés|Nombre séjours SRC facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('SRC', 'SSC')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé en SRC|NBSEJ|||||||| +1|CTI_SRC_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA SRC Facturés + Valorisés|Nombre séjours SRC Facturés + Valorisés|Nombre séjours SRC Facturés + Valorisés|DISTINCT CASE WHEN ( prestation_code IN ('SRC', 'SSC')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé et valorisé en SRC|NBSEJ|||||||| +1|CTI_SRUBMED_MT_FAC|FACTURATION_CLINIQUE|CA SEJOUR sauf Facturé|Montant CA SEJOUR facturé|Montant CA SEJOUR facturé|CASE WHEN rubrique_facturation_id NOT IN [LISTE:CTI_RUBMED_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des séjours non facturés|CAF|||||||| +1|CTI_SRUBMED_MT_TOT|FACTURATION_CLINIQUE|CA SEJOUR sauf Facturé + Valorisé|Montant sauf CA SEJOUR facturé + Valorisé|Montant sauf CA SEJOUR facturé + Valorisé|CASE WHEN rubrique_facturation_id NOT IN [LISTE:CTI_RUBMED_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des séjours non facturés non valorisés|CAVF|||||||| +1|CTI_ST2A_MT_TOT|FACTURATION_CLINIQUE|CA SOINS sauf Facturé + Valorisé|Montant sauf CA Soins facturé + Valorisé|Montant sauf CA Soins facturé + Valorisé|CASE WHEN rubrique_facturation_id NOT IN [LISTE:CTI_T2A_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des soins non facturés non valorisés|CAVF|||||||| +1|CTI_ST2A_NB_FAC|FACTURATION_CLINIQUE|CA SOINS sauf Facturé|Montant sauf CA Soins facturé|Montant sauf CA Soins facturé|CASE WHEN rubrique_facturation_id NOT IN [LISTE:CTI_T2A_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires des soins non facturés|CAF|||||||| +1|CTI_STF_JOU_ENC|FACTURATION_CLINIQUE|NB Jours STF Valorisées|Nombre journées STF Valorisées|Nombre journées STF Valorisées|CASE WHEN prestation_code IN ('STF') THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées valorisées en STF|NBJOU|||||||| +1|CTI_STF_JOU_FAC|FACTURATION_CLINIQUE|NB Jours STF facturées|Nombre journées STF facturées|Nombre journées STF facturées|CASE WHEN prestation_code IN ('STF') THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées facturées en STF|NBJOU|||||||| +1|CTI_STF_JOU_TOT|FACTURATION_CLINIQUE|NB Jours STF Facturées + Valorisées|Total journées STF Facturées + Valorisées|Total journées STF Facturées + Valorisées|CASE WHEN prestation_code IN ('STF') THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de journées facturées et valorisées en STF|NBJOU|||||||| +1|CTI_STF_MT_ENC|FACTURATION_CLINIQUE|CA STF Valorisé|Montant STF Valorisé|Montant STF Valorisé|CASE WHEN prestation_code IN ('STF') THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé STF|CAV|||||||| +1|CTI_STF_MT_FAC|FACTURATION_CLINIQUE|CA STF Facturé|Montant STF facturé|Montant STF facturé|CASE WHEN prestation_code IN ('STF') THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé STF|CAF|||||||| +1|CTI_STF_MT_TOT|FACTURATION_CLINIQUE|CA STF Facturé + Valorisé|Montant STFfacturé + Valorisé|Montant STFfacturé + Valorisé|CASE WHEN prestation_code IN ('STF') THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé STF|CAVF|||||||| +1|CTI_STF_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA STF Valorisés|Nombre séjours STF Valorisés|Nombre séjours STF Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and prestation_code IN ('STF')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires valorisé en STF|NBSEJ|||||||| +1|CTI_STF_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA STF facturés|Nombre séjours STF facturés|Nombre séjours STF facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and prestation_code IN ('STF')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé en STF|NBSEJ|||||||| +1|CTI_STF_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA STF Facturés + Valorisés|Nombre séjours STF Facturés + Valorisés|Nombre séjours STF Facturés + Valorisés|DISTINCT CASE WHEN ( prestation_code IN ('STF')) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé et valorisé en STF|NBSEJ|||||||| +1|CTI_SUM_DEL_FACTURE|SEJOURS|SUM delai facturé|SUM_DEL_FACTURE|SUM_DEL_FACTURE|delai_facture|1|SUM|0,0|60|2| | | | |2||||||||||||||||||||||0|||||||||||||||||||| +1|CTI_SUM_DEL_GRP|SEJOURS|SUM delai groupage|Sum delai groupage|Sum delai groupage|delai_groupage|1|SUM|#,0|40|2| | | | |2||||||||||||||||||||||0||||||||||||NOMBRE|||||||| +1|CTI_SUM_DEL_SOLD|SEJOURS|SUM delai Soldé|SUM_DEL_SOLD|SUM_DEL_SOLD|delai_solde_c|1|SUM|0,0|60|2| | | | |2||||||||||||||||||||||0||||||||||||NBJOU|||||||| +1|CTI_SUM_NB_CALCULES|SEJOURS|SUM NB facturé|SUM_NB_CALCULES|SUM_NB_CALCULES|nb_calcules|1|SUM|0,0|60|2| | | | |2||||||||||||||||||||||0|||||||||||||||||||| +1|CTI_SUM_NB_GROUPE|SEJOURS|SUM NB groupé|SUM NB groupé|SUM NB groupé|nb_groupe|1|SUM|#,0|40|2| | | | |2||||||||||||||||||||||0||||||||||||NOMBRE|||||||| +1|CTI_SUPHOT_CA_CPT|FACTURATION_CLINIQUE|CA comptabilisé Suppléments|Montant Comptabilisé Suppléments Hoteliers|Montant Comptabilisé Suppléments Hoteliers|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SUPHOT_R] THEN montant_comptabilise ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé en suppléments hôteliers|CACP|||||||| +1|CTI_SUPHOT_ENC|FACTURATION_CLINIQUE|CA HOTELLERIE Valorisé|Montant Suppléments hoteliers Valorisé|Montant Suppléments hoteliers Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SUPHOT_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé en suppléments hôteliers|CAV|||||||| +1|CTI_SUPHOT_FAC|FACTURATION_CLINIQUE|CA HOTELLERIE Facturé|Montant Suppléments hoteliers facturés|Montant Suppléments hoteliers facturés|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SUPHOT_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé en suppléments hôteliers|CAF|||||||| +1|CTI_SUPHOT_TOT|FACTURATION_CLINIQUE|CA HOTELLERIE Facturé + Valorisé|Montant Suppléments hoteliers Facturés + Valorisés|Montant Suppléments hoteliers Facturés + Valorisés|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SUPHOT_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé en suppléments hôteliers|CAVF|||||||| +1|CTI_T2A_MT1_ENC|FACTURATION_CLINIQUE|CA SOINS Valorisé [HOSP]|Montant CA Soins Valorisé (hospitalisés)|Montant CA Soins Valorisé (hospitalisés)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '1' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des soins des séjours hospitalisés|-TS1|CAV||||||| +1|CTI_T2A_MT1_FAC|FACTURATION_CLINIQUE|CA SOINS Facturé [HOSP]|Montant CA Soins facturé (hospitalisés)|Montant CA Soins facturé (hospitalisés)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '1' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des soins des séjours hospitalisés (1 nuit minimum)|-TS1|CAF||||||| +1|CTI_T2A_MT1_TOT|FACTURATION_CLINIQUE|CA SOINS Facturé + Valorisé [HOSP]|Montant CA Soins facturé + enc. (hospitalisés)|Montant CA Soins facturé + enc. (hospitalisés)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '1' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des soins des séjours hospitalisés (1 nuit minimum)|-TS1|CAVF||||||| +1|CTI_T2A_MT2_ENC|FACTURATION_CLINIQUE|CA SOINS Valorisé [AMBU]|Montant CA Soins Valorisé (ambulatoire)|Montant CA Soins Valorisé (ambulatoire)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '2' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des soins des séjours ambulatoires|-TS2|CAV||||||| +1|CTI_T2A_MT2_FAC|FACTURATION_CLINIQUE|CA SOINS Facturé [AMBU]|Montant CA Soins facturé (ambulatoire)|Montant CA Soins facturé (ambulatoire)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '2' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des soins des séjours ambulatoires (0 nuits)|-TS2|CAF||||||| +1|CTI_T2A_MT2_TOT|FACTURATION_CLINIQUE|CA SOINS Facturé + Valorisé [AMBU]|Montant CA Soins facturé + enc. (ambulatoire)|Montant CA Soins facturé + enc. (ambulatoire)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '2' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des soins des séjours ambulatoires (0 nuits)|-TS2|CAVF||||||| +1|CTI_T2A_MT3_ENC|FACTURATION_CLINIQUE|CA SOINS Valorisé [EXT]|Montant CA Soins Valorisé (Externe)|Montant CA Soins Valorisé (Externe)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '3' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des soins des séjours externes|-TS3|CAV||||||| +1|CTI_T2A_MT3_FAC|FACTURATION_CLINIQUE|CA SOINS Facturé [EXT]|Montant CA Soins facturé (Externe)|Montant CA Soins facturé (Externe)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '3' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des soins des séjours externes|-TS3|CAF||||||| +1|CTI_T2A_MT3_TOT|FACTURATION_CLINIQUE|CA SOINS Facturé + Valorisé [EXT]|Montant CA Soins facturé + enc. (Externe)|Montant CA Soins facturé + enc. (Externe)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '3' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des soins des séjours externes|-TS3|CAVF||||||| +1|CTI_T2A_MT5_ENC|FACTURATION_CLINIQUE|CA SOINS Valorisé [SEANCE]|Montant CA Soins Valorisé (séances)|Montant CA Soins Valorisé (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '5' THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des soins des séances|-TS5|CAV||||||| +1|CTI_T2A_MT5_FAC|FACTURATION_CLINIQUE|CA SOINS Facturé [SEANCE]|Montant CA Soins facturé (séances)|Montant CA Soins facturé (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '5' THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des soins des séances|-TS5|CAF||||||| +1|CTI_T2A_MT5_TOT|FACTURATION_CLINIQUE|CA SOINS Facturé + Valorisé [SEANCE]|Montant CA Soins facturé + enc. (séances)|Montant CA Soins facturé + enc. (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '5' THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des soins des séances|-TS5|CAVF||||||| +1|CTI_T2A_MT_ENC|FACTURATION_CLINIQUE|CA SOINS Valorisé|Montant CA Soins Valorisé|Montant CA Soins Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des soins des séjours|CAV|||||||| +1|CTI_T2A_MT_FAC|FACTURATION_CLINIQUE|CA SOINS Facturé|Montant CA Soins facturé|Montant CA Soins facturé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des soins des séjours|CAF|||||||| +1|CTI_T2A_MT_TOT|FACTURATION_CLINIQUE|CA SOINS Facturé + Valorisé|Montant CA Soins facturé + Valorisé|Montant CA Soins facturé + Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des soins des séjours|CAVF|||||||| +1|CTI_T2A_NB1_ENC|FACTURATION_CLINIQUE|NB Séjours CA SOINS Valorisés [HOSP]|Nombre séjours Soins Valorisés (hospitalisés)|Nombre séjours Soins Valorisés (hospitalisés)|DISTINCT CASE WHEN (est_ligne_facturee = '0' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires valorisé en soins des séjours hospitalisés (1 nuit minimum)|-TS1|NBSEJ||||||| +1|CTI_T2A_NB1_FAC|FACTURATION_CLINIQUE|NB Séjours CA SOINS facturés [HOSP]|Nombre séjours Soins facturés (hospitalisés)|Nombre séjours Soins facturés (hospitalisés)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé en soins des séjours hospitalisés (1 nuit minimum)|-TS1|NBSEJ||||||| +1|CTI_T2A_NB1_TOT|FACTURATION_CLINIQUE|NB Séjours CA SOINS Facturés + Valorisés [HOSP]|Nombre SEJOURS Facturés + Valorisés (hospitalisés|Nombre SEJOURS Facturés + Valorisés (hospitalisés|DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '1') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé et valorisé en soins des séjours hospitalisés (1 nuit minimum)|-TS1|NBSEJ||||||| +1|CTI_T2A_NB2_ENC|FACTURATION_CLINIQUE|NB Séjours CA SOINS Valorisés [AMBU]|Nombre séjours Soins Valorisés (ambulatoire)|Nombre séjours Soins Valorisés (ambulatoire)|DISTINCT CASE WHEN (est_ligne_facturee = '0' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires valorisé en soins des séjours ambulatoires (0 nuits)|-TS2|NBSEJ||||||| +1|CTI_T2A_NB2_FAC|FACTURATION_CLINIQUE|NB Séjours CA SOINS facturés [AMBU]|Nombre séjours Soins facturés (ambulatoire)|Nombre séjours Soins facturés (ambulatoire)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé en soins des séjours ambulatoires (0 nuits)|-TS2|NBSEJ||||||| +1|CTI_T2A_NB2_TOT|FACTURATION_CLINIQUE|NB Séjours CA SOINS Facturés + Valorisés [AMBU]|Nombre séjours Soins Facturés + Valorisés (ambulatoire)|Nombre séjours Soins Facturés + Valorisés (ambulatoire)|DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '2') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé et valorisé en soins des séjours ambulatoires (0 nuits)|-TS2|NBSEJ||||||| +1|CTI_T2A_NB3_ENC|FACTURATION_CLINIQUE|NB Séjours CA SOINS Valorisés [EXT]|Nombre séjours Soins Valorisés (Externe)|Nombre séjours Soins Valorisés (Externe)|DISTINCT CASE WHEN (est_ligne_facturee = '0' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '3') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires valorisé en soins des séjours externes|-TS3|NBSEJ||||||| +1|CTI_T2A_NB3_FAC|FACTURATION_CLINIQUE|NB Séjours CA SOINS facturés [EXT]|Nombre séjours Soins facturés (Externe)|Nombre séjours Soins facturés (Externe)|DISTINCT CASE WHEN (est_ligne_facturee = '1' and rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '3') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé en soins des séjours externes|-TS3|NBSEJ||||||| +1|CTI_T2A_NB3_TOT|FACTURATION_CLINIQUE|NB Séjours CA SOINS Facturés + Valorisés [EXT]|Nombre séjours Soins Facturés + Valorisés (Externe)|Nombre séjours Soins Facturés + Valorisés (Externe)|DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '3') THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé et valorisé en soins des séjours externes|-TS3|NBSEJ||||||| +1|CTI_T2A_NB5_ENC|FACTURATION_CLINIQUE|NB Séjours CA SOINS Valorisés [SEANCE]|Nombre séances Valorisés (séances)|Nombre séances Valorisés (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '5' and est_ligne_facturee = '0' THEN nb_rubrique_encours ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires valorisé en soins des séances|-TS5|NBSEJ||||||| +1|CTI_T2A_NB5_FAC|FACTURATION_CLINIQUE|NB Séjours CA SOINS facturés [SEANCE]|Nombre séances facturées (séances)|Nombre séances facturées (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '5' and est_ligne_facturee = '1' THEN nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé en soins des séances|-TS5|NBSEJ||||||| +1|CTI_T2A_NB5_TOT|FACTURATION_CLINIQUE|NB Séjours CA SOINS Facturés + Valorisés [SEANCE]|Nombre séances Facturées + Valorisées (séances)|Nombre séances Facturées + Valorisées (séances)|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] and type_sejour = '5' THEN nb_rubrique_encours + nb_rubrique_facture ELSE 0 END|1|SUM||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé et valorisé en soins des séances|-TS5|NBSEJ||||||| +1|CTI_T2A_NB_ENC|FACTURATION_CLINIQUE|NB Séjours CA SOINS Valorisés|Nombre séjours Soins Valorisés|Nombre séjours Soins Valorisés|DISTINCT CASE WHEN (est_ligne_facturee = '0' and rubrique_facturation_id IN [LISTE:CTI_T2A_R]) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires valorisé en soins des séjours|NBSEJ|||||||| +1|CTI_T2A_NB_FAC|FACTURATION_CLINIQUE|NB Séjours CA SOINS facturés|Nombre séjours Soins facturés|Nombre séjours Soins facturés|DISTINCT CASE WHEN (est_ligne_facturee = '1' and rubrique_facturation_id IN [LISTE:CTI_T2A_R]) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé en soins des séjours|NBSEJ|||||||| +1|CTI_T2A_NB_TOT|FACTURATION_CLINIQUE|NB Séjours CA SOINS Facturés + Valorisés|Nombre séjours Soins Facturés + Valorisés|Nombre séjours Soins Facturés + Valorisés|DISTINCT CASE WHEN ( rubrique_facturation_id IN [LISTE:CTI_T2A_R]) THEN no_sejour ELSE NULL END|1|COUNT||0|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de séjours du Chiffre d'Affaires facturé et valorisé en soins des séjours|NBSEJ|||||||| +1|CTI_TXAMBFOR|*CALC|Taux ambulatoires forains|Taux ambulatoires forains|Taux ambulatoires forains|(base.cti_division([2] , [1]) * 100)|1|*CALC|#,00%|0| | | | | | |CTI_NBAMB|CTI_NBAMBFOR||||||||||||||||||||0|||||||||||Taux ambulatoires forains|-TS2|NBENT|TAUX|||||| +1|CTI_TXCHP_NBJ|*CALC|Ratio CPC|Ratio Chambre particulière|Ratio Chambre particulière|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | |CTI_NBCHPO|CTI_NBJSN||||||||||||||||||||0|||||||||||Part du nombre de journées en chambre particulière dans le nombre de journées hospitalisées|-TS1|NBJOU||||||| +1|CTI_TXFAC_SEJ|*CALC|Taux facturation des séjours|Taux de facturation des séjours|Tx sej fac|base.cti_division([2], [1]) * 100.0|1|*CALC|#,00%|60| | | | | | |CTI_NBSEJO|||||||||||||||||||||0|||||||||||Part du nombre de séjours facturés dans le nombre de séjours|NBSEJ|TAUX||||||| +1|CTI_TX_AM|*CALC|Taux occupation [AMBU]|Taux D'occupation (Ambulatoire)|Taux D'occupation (Ambulatoire)|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | |CTI_NBAMB|CTI_NBPLACES_A||||||||||||||||||||0|||||||||||Taux d'occupation des places des séjours ambulatoires (0 nuits)|-TS2|NBENT|TAUX|-TS1||||| +1|CTI_TX_CP_HO|*CALC|Taux occupation CPC [HOSP]|Taux D'occupation CP (Hospitalisés)|Taux D'occupation CP (Hospitalisés)|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | |CTI_NBJCPSN|CTI_NBPLACES_CP_H||||||||||||||||||||0|||||||||||Taux d'occupation des places en chambre particulière des séjours hospitalisés (1 nuit minimum)|-TS1|NBJOU|TAUX|||||| +1|CTI_TX_FAC|*CALC|Taux facturation des sorties|Taux de facturation des sorties|Tx fac|base.cti_division([1], [2]) * 100.0|1|*CALC|#,00%|60| | | | | | ||CTI_NBSOR_SAES||||||||||||||||||||0|||||||||||Taux des sorties facturées sur toutes les sorties|-TS1|-TS2|-TS3|-TS5|NBSOR|||| +1|CTI_TX_HO|*CALC|Taux occupation [HOSP]|Taux D'occupation (Hospitalisés)|Taux D'occupation (Hospitalisés)|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | |CTI_NBJSN|CTI_NBPLACES_H||||||||||||||||||||0|||||||||||Taux d'occupation des places des séjours hospitalisés (1 nuit minimum)|-TS1|NBJOU|TAUX|||||| +1|CTI_TX_HOAM|*CALC|Taux occupation (Hospitalisés - Ambulatoire)|Taux D'occupation (Hospitalisés - Ambulatoire)|Taux D'occupation (Hospitalisés - Ambulatoire)|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | |CTI_NB2_JSN|CTI_NBPLACES_HA||||||||||||||||||||0|||||||||||Taux d'occupation des places des séjours hospitalisés et ambulatoires|-TS1|-TS2|NBJOU|TAUX||||| +1|CTI_TX_HOCOMP|*CALC|SSR - Taux occupation [HOSP]|Taux D'occupation (Hospitalisés)|Taux D'occupation (Hospitalisés)|(base.cti_division([1] , [2]) * 100)|1|*CALC|#,00%|0| | | | | | |CTI_NB4_JSNCP|CTI_NBPLACES_H||||||||||||||||||||0|||||||||||Taux d'occupation des places des séjours hospitalisés (1 nuit minimum)|-TS1|-TS2|-TS5|||||| +1|CTI_TX_JOUR_FAC|*CALC|Taux Jours facturées (jour de sortie non inclus)|Taux de journées facturées (jour de sortie non inclus)|Tx Jour Fac|base.cti_division([1], [2]) * 100.0|1|*CALC|#,0%|0| | | | | | |CTI_JOUR_FAC|CTI_NBJSNS||||||||||||||||||||0|||||||||||Taux du nombre de journées facturées sur le nombre de journées des séjours hospitalisés sortis|-TS1|NBJOU|TAUX|||||| +1|CTI_UCD_MT_CPT|FACTURATION_CLINIQUE|CA MEDICAMENTS Comptabilisé|Montant Médicaments Comptabilisé|Montant Médicaments Comptabilisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN montant_comptabilise ELSE 0 END|1|SUM|#E|80|4| | | | |4||||||||||||||||||||||0|||||||||||Chiffre d'Affaires comptabilisé des médicaments|CACP|||||||| +1|CTI_UCD_MT_ENC|FACTURATION_CLINIQUE|CA MEDICAMENTS Valorisé|Montant Médicaments Valorisé|Montant Médicaments Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des médicaments|CAV|||||||| +1|CTI_UCD_MT_FAC|FACTURATION_CLINIQUE|CA MEDICAMENTS Facturé|Montant Médicaments Facturé|Montant Médicaments Facturé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des médicaments|CAF|||||||| +1|CTI_UCD_MT_TOT|FACTURATION_CLINIQUE|CA MEDICAMENTS Facturé + Valorisé|Montant Médicaments Facturé + Valorisé|Montant Médicaments Fac + Val|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN montant_encours + montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des médicaments|CAVF|||||||| +1|CTI_UCD_RUB_FAC|FACTURATION_CLINIQUE|NB Rubriques MEDICAMENT|Nombre de médicaments [UCD]|Nombre de médicaments [UCD]|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_UCD_R] THEN nb_rubrique_facture ELSE 0 END|1|SUM|#|60|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Nombre de rubriques de médicaments présentes sur la période|NBRUB|||||||| +1|CTI_URG_MT_ENC|FACTURATION_CLINIQUE|CA URGENCES Valorisé|Montant urgences Valorisé|Montant urgences Valorisé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_URG_R] THEN montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires valorisé des urgences|CAV|||||||| +1|CTI_URG_MT_FAC|FACTURATION_CLINIQUE|CA URGENCES Facturé|Montant urgences Facturé|Montant urgences Facturé|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_URG_R] THEN montant_facture ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé des urgences|CAF|||||||| +1|CTI_URG_MT_TOT|FACTURATION_CLINIQUE|CA URGENCES Facturé + Valorisé|Montant urgences Facturé + Valorisé|Montant urgences Fact + Val|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_URG_R] THEN montant_facture + montant_encours ELSE 0 END|1|SUM|#E|80|1|2|3|4| | ||||||||||||||||||||||0|||||||||||Chiffre d'Affaires facturé et valorisé des urgences|CAVF|||||||| +1|CTI_URG_RUB_FAC|FACTURATION_CLINIQUE|NB Rubriques URGENCES|Nombre rubriques urgences|Nombre rubriques urgences|CASE WHEN rubrique_facturation_id IN [LISTE:CTI_URG_R] THEN nb_rubrique_facture ELSE 0 END|1|SUM|#|60|1|2|3|4| | ||||||||||||||||||||||0||||||||||||NBRUB|||||||| diff --git a/db/data2/dbdata_activite_t_kiwee_params.csv b/db/data2/dbdata_activite_t_kiwee_params.csv new file mode 100644 index 0000000..43e32fc --- /dev/null +++ b/db/data2/dbdata_activite_t_kiwee_params.csv @@ -0,0 +1,2 @@ +code|texte|valeur|description +RELANCE_HONORAIRE_PAT|Relance souhaitée pour les dossiers patient avec solde honoraire positif|t|Coché = Oui, on envoie vers kiwee les dossiers ayant un solde honoraire positif pour relance. Non coché = Non, on envoie que les dossiers avec solde établissement positif diff --git a/db/data2/dbdata_activite_t_listes.csv b/db/data2/dbdata_activite_t_listes.csv new file mode 100644 index 0000000..e38f945 --- /dev/null +++ b/db/data2/dbdata_activite_t_listes.csv @@ -0,0 +1,17 @@ +oid|texte|chapitre|code|is_cti|show_omit|utilisateur_createur|est_partagee_modification|table_name|contenu_by_code|exclude_code|include_code|contenu_non_replicable_ailleurs +1|Portail Médecin - Actes à exclure de la liste pour le top 20 Actes CCAM|Portail|ACT_PORT_CCAM|1|1|CTI|1|t_actes|0|||0 +1|Portail Médecin - Actes à exclure de la liste pour le top 20 Actes NGAP|Portail|ACT_PORT_NGAP|1|1|CTI|1|t_actes|0|||0 +1|CTI : Dialyse||CTI_DIA_R|0|0|CTI|1|t_rubriques_facturation|0|||1 +1|CTI : CA Divers||CTI_DIVERS_R|0|0|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S06]|1 +1|Etages inappropriés||CTI_ETA_KO|0|0|CTI|1|t_etages|0|||1 +1|Médecins inappropriés||CTI_MED_KO|0|0|CTI|1|t_medecins_administratifs|0|||1 +1|CTI : Prothèses||CTI_PROTHESE_R|0|0|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S22]|1 +1|CTI : CA Séjours||CTI_RUBMED_R|0|1|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S01]|1 +1|Services inappropriés||CTI_SER_KO|0|0|CTI|1|t_services_facturation|0|||1 +1|CTI : Forfaits SE (SE à SE4)||CTI_SE_R|0|0|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S03]|1 +1|CTI : Chambre particulière.||CTI_SHO_R|0|0|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S11]|1 +1|CTI : Suppléments Hoteliers||CTI_SUPHOT_R|0|0|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S12]|1 +1|CTI : CA Soins||CTI_T2A_R|0|1|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S01][CLASSE:CTI_RUB_2:S02][CLASSE:CTI_RUB_2:S03][CLASSE:CTI_RUB_2:S04][CLASSE:CTI_RUB_2:S05][CLASSE:CTI_RUB_2:S06]|1 +1|CTI : Médicaments||CTI_UCD_R|0|0|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S21]|1 +1|Unités Fonctionnelles Ambulatoires|Expert|CTI_UF_AMBU|1|0|CTI|1|t_unites_fonctionnelles|0|||1 +1|CTI : Urgences||CTI_URG_R|0|0|CTI|1|t_rubriques_facturation|1||[CLASSE:CTI_RUB_2:S04]|1 diff --git a/db/data2/dbdata_activite_t_listes_tables.csv b/db/data2/dbdata_activite_t_listes_tables.csv new file mode 100644 index 0000000..741c779 --- /dev/null +++ b/db/data2/dbdata_activite_t_listes_tables.csv @@ -0,0 +1,106 @@ +oid|name|texte|select_cmd|code +1|t_actes|Actes|"(SELECT t_actes_c.oid, t_actes_c.code, t_actes_c.texte, ccam_regroupement_code_1 || CASE WHEN t_actes_c.classant = 'Y' THEN ' (classant)' ELSE '' END as complement, 'O' as utilise +FROM activite.t_actes_c +WHERE t_actes_c.oid > 0 AND nomenclature IN ( 'CCAM', 'NGAP') AND t_actes_c.oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'acte_h') ) +UNION +(SELECT t_actes_c.oid, t_actes_c.code, t_actes_c.texte, ccam_regroupement_code_1 || CASE WHEN t_actes_c.classant = 'Y' THEN ' (classant)' ELSE '' END as complement, 'N' as utilise +FROM activite.t_actes_c +WHERE t_actes_c.oid > 0 AND nomenclature IN ( 'CCAM', 'NGAP') AND t_actes_c.oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'acte_h') ) +ORDER BY code"|ACTE +1|t_activites|"[DICT.ACTI.ACTIVITE#3] +"|(SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM activite.t_activites WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'activite') UNION SELECT oid, code, texte, ''::text as complement, 'N' as utilise FROM activite.t_activites WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'activite') )ORDER BY code|ACTIVITE +1|t_ages|Ages|SELECT oid, code, texte, ''::text as complement, 'O'::text as utilise FROM base.t_ages ORDER BY code|AGE +1|t_budget_cle|Clés budgétaires|"SELECT oid, code AS code, texte AS texte, +''::text as complement, +'O' as utilise +FROM activite.t_budget_cle +WHERE oid > 0 "|BUDGETCLE +1|t_codes_postaux|Codes postaux|"( +SELECT t_codes_postaux.oid, t_codes_postaux.code, t_codes_postaux.texte, '' as complement, 'O' as utilise +FROM base.t_codes_postaux +WHERE + t_codes_postaux.oid > 0 + AND t_codes_postaux.oid in (SELECT oid FROM activite.p_oids WHERE code_table='c_postaux') +UNION +SELECT t_codes_postaux.oid, t_codes_postaux.code, t_codes_postaux.texte, '' as complement, 'N' as utilise +FROM base.t_codes_postaux +WHERE + t_codes_postaux.oid > 0 + AND t_codes_postaux.oid not in (SELECT oid FROM activite.p_oids WHERE code_table='c_postaux') +) +ORDER BY code"|CODEPOST +1|t_compte|Comptes produit|"SELECT t_compte.oid AS oid, code AS code, texte AS texte, +''::text as complement, +(CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END)::text as utilise +FROM activite.t_compte +LEFT JOIN activite.p_oids ON code_table='compte' AND t_compte.oid = p_oids.oid +WHERE t_compte.oid > 0 "|COMPTE +1|t_durees_sejour|Durées de séjour|SELECT oid, code, texte, ''::text as complement, 'O'::text as utilise FROM base.t_durees_sejour ORDER BY code|DURSEJ +1|t_etages|[DICT.ACTI.ETAGE#31]|(SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM activite.t_etages WHERE oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'etage') UNION SELECT oid, code, texte, ''::text as complement, 'N' as utilise FROM activite.t_etages WHERE oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'etage') )ORDER BY code|ETAGE +1|t_etat_sejour|Etat de séjour|SELECT oid, code, texte, ''::text as complement, 'O'::text as utilise FROM activite.t_etat_sejour ORDER BY code|ETATSEJOUR +1|t_expert_controles|Controles Expert|"SELECT oid, code, texte, ''::text as complement, 'O'::text as utilise +FROM activite.t_expert_controle WHERE oid > 0 +ORDER BY code"|EXPERTCTL +1|t_filiere_soin|Filières de soin|"SELECT oid, code, texte, ''::text as complement, + CASE WHEN oid in (SELECT oid FROM activite.p_oids WHERE code_table IN ('filiere_soin')) THEN 'O' ELSE 'N' END as utilise + FROM activite.t_filiere_soin + ORDER BY 2"|FILIERESOIN +1|t_finess|Finess|SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM activite.t_finess_c WHERE oid > 0 ORDER BY code, texte|FINESS +1|t_forme_activite|Formes d'activité|"SELECT oid, code, texte, ''::text as complement, + CASE WHEN oid in (SELECT oid FROM activite.p_oids WHERE code_table IN ('forme_activite')) THEN 'O' ELSE 'N' END as utilise + FROM activite.t_forme_activite + ORDER BY 2"|FORMEACTIVITE +1|t_ghm_c|GHM|"SELECT t_ghm_c.ghm_id AS oid, ghm_code AS code, ghm_texte AS texte, +cas_texte as complement, +(CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END)::text as utilise +FROM activite.t_ghm_c +LEFT JOIN activite.p_oids ON code_table='ghm' AND t_ghm_c.ghm_id = p_oids.oid +WHERE t_ghm_c.ghm_id > 0 "|GHM +1|t_ghs|GHS|(SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM base.t_ghs WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'ghs') UNION SELECT oid, code, texte, ''::text as complement, 'N' as utilise FROM base.t_ghs WHERE oid > 0 AND code > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'ghs') ) ORDER BY code|GHS +1|t_gme_c|GME|"SELECT t_gme_c.gme_id AS oid, gme_code AS code, gme_texte AS texte,''::text as complement , +(CASE WHEN p_oids.oid IS NOT NULL THEN 'O' ELSE 'N' END)::text as utilise +FROM activite.t_gme_c +LEFT JOIN activite.p_oids ON code_table='gme' AND t_gme_c.gme_id = p_oids.oid +WHERE t_gme_c.gme_id > 0"|GME +1|t_lits|Lits|"( +SELECT t_lits.oid, t_etages.code || '-' || t_lits.code AS code, t_etages.texte || ' lit ' || t_lits.texte AS texte, ''::text as complement, 'O' as utilise FROM activite.t_lits JOIN activite.t_etages ON etage_id = t_etages.oid WHERE t_lits.oid > 0 AND t_lits.oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'lit') + +UNION + +SELECT t_lits.oid, t_etages.code || '-' || t_lits.code AS code, t_etages.texte || ' lit ' || t_lits.texte AS texte, ''::text as complement, 'N' as utilise FROM activite.t_lits JOIN activite.t_etages ON etage_id = t_etages.oid WHERE t_lits.oid > 0 AND t_lits.oid NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = 'lit') + +) ORDER BY code"|LIT +1|t_medecins_administratifs|Médecins|"SELECT t_medecins_administratifs.oid + ,t_medecins_administratifs.code + ,t_medecins_administratifs.nom || ' ' || t_medecins_administratifs.prenom AS texte + ,COALESCE(t_specialites_medecin.code || ' ' || t_specialites_medecin.texte,'')::text AS complement + ,CASE WHEN t_medecins_administratifs.oid IN (SELECT p_oids.oid FROM activite.p_oids WHERE code_table IN ('medecin_s','medecin_x') ) THEN 'O' ELSE 'N' END AS utilise + FROM activite.t_medecins_administratifs + LEFT JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + LEFT JOIN base.t_specialites_medecin ON t_medecins.specialite_id = t_specialites_medecin.oid + ORDER BY t_medecins_administratifs.code"|MEDECIN +1|t_medecins_traitants_administratifs|Médecins traitants|"SELECT t_medecins_traitants_administratifs.oid + ,t_medecins_traitants_administratifs.code + ,t_medecins_traitants_administratifs.nom || ' ' || t_medecins_traitants_administratifs.prenom AS texte + ,COALESCE(t_medecins_traitants_administratifs.code || ' ' || t_medecins_traitants_administratifs.no_rpps,'')::text AS complement + ,CASE WHEN t_medecins_traitants_administratifs.oid IN (SELECT p_oids.oid FROM activite.p_oids WHERE code_table IN ('medecin_t') ) THEN 'O' ELSE 'N' END AS utilise + FROM activite.t_medecins_traitants_administratifs + LEFT JOIN base.t_medecins ON t_medecins_traitants_administratifs.medecin_id = t_medecins.oid + LEFT JOIN base.t_specialites_medecin ON t_medecins.specialite_id = t_specialites_medecin.oid + ORDER BY t_medecins_traitants_administratifs.code"|MEDECIN_TRAITANT +1|t_prestations|Prestations Cliniques|(SELECT oid, code, texte, norme as complement, 'O' as utilise FROM activite.t_prestations WHERE oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'prestation_c') UNION SELECT oid, code, texte, norme as complement, 'N' as utilise FROM activite.t_prestations WHERE oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'prestation_c') ) ORDER BY code|PRESTA_C +1|t_prestations|Prestations Honoraires|(SELECT oid, code, texte, norme as complement, 'O' as utilise FROM activite.t_prestations WHERE oid > 0 AND clinique_honoraire IN ('H', '') AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'prestation_h') UNION SELECT oid, code, texte, norme as complement, 'N' as utilise FROM activite.t_prestations WHERE oid > 0 AND clinique_honoraire IN ('H', '') AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'prestation_h') )ORDER BY code|PRESTA_H +1|t_rejets_noemie|Rejets NOEMIE|SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM activite.t_rejets_noemie WHERE oid > 0 ORDER BY code, texte|REJETNOEMI +1|t_rubriques_facturation|Rubriques de facturation|(SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM activite.t_rubriques_facturation WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'rubrique_c') UNION SELECT oid, code, texte, ''::text as complement, 'N' as utilise FROM activite.t_rubriques_facturation WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'rubrique_c') ) ORDER BY code|RUBRIQUE +1|t_services_facturation|[DICT.ACTI.SERVICE#31]|(SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM activite.t_services_facturation WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'service') UNION SELECT oid, code, texte, ''::text as complement, 'N' as utilise FROM activite.t_services_facturation WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'service') )ORDER BY code|SERVICE_F +1|t_tiers_payant|Tiers payant|"(SELECT t_tiers_payant.oid, t_tiers_payant.code, t_tiers_payant.texte as texte, t_types_tiers_payant.texte as complement, 'O' as utilise +FROM activite.t_tiers_payant, activite.t_types_tiers_payant +WHERE t_tiers_payant.oid > 0 AND t_tiers_payant.type_tiers_payant = t_types_tiers_payant.code + AND t_tiers_payant.oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'tiers_payant' ) +UNION +SELECT t_tiers_payant.oid, t_tiers_payant.code, t_tiers_payant.texte as texte, t_types_tiers_payant.texte , 'N' as utilise +FROM activite.t_tiers_payant , activite.t_types_tiers_payant +WHERE t_tiers_payant.oid > 0 AND t_tiers_payant.type_tiers_payant = t_types_tiers_payant.code AND (t_tiers_payant.oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'tiers_payant'))) ORDER BY code"|TIERSP +1|t_type_sejour|Types de séjour|SELECT oid, code, texte, ''::text as complement, 'O'::text as utilise FROM activite.t_type_sejour ORDER BY code|TYPESEJOUR +1|t_unites_fonctionnelles|[DICT.ACTI.UF#31]|(SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM activite.t_unites_fonctionnelles WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'unite_fonctionnelle') UNION SELECT oid, code, texte, ''::text as complement, 'N' as utilise FROM activite.t_unites_fonctionnelles WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'unite_fonctionnelle') ) ORDER BY code|UF +1|t_unites_medicales|[DICT.ACTI.UM#31]|(SELECT oid, code, texte, ''::text as complement, 'O' as utilise FROM activite.t_unites_medicales WHERE oid > 0 AND oid in (SELECT oid FROM activite.p_oids WHERE code_table = 'unite_medicale') UNION SELECT oid, code, texte, ''::text as complement, 'N' as utilise FROM activite.t_unites_medicales WHERE oid > 0 AND oid not in (SELECT oid FROM activite.p_oids WHERE code_table = 'unite_medicale') ) ORDER BY code|UM diff --git a/db/data2/dbdata_activite_t_prestations.csv b/db/data2/dbdata_activite_t_prestations.csv new file mode 100644 index 0000000..e1cbfb7 --- /dev/null +++ b/db/data2/dbdata_activite_t_prestations.csv @@ -0,0 +1,508 @@ +oid|code|texte|texte_court|norme +0|***|Non renseignee|Non renseignee| +1|AAD|Autres accessoires traitement a domicile|Autres accessoires traitement a domicile|B2 +1|AAR|Appareillage assistance respiratoire|Appareillage assistance respiratoire|B2 +1|ABA|Transport par ambulances agrees|Transport par ambulances agrees|B2 +1|ABG|Ambulance agree de garde|Ambulance agree de garde|B2 +1|ACO|Actes d'obstetrique|Actes d'obstetrique|B2 +1|ACR|Prime accreditation specialiste|Prime accreditation specialiste|B2 +1|ADA|Actes d'anesthesie|Actes d'anesthesie|B2 +1|ADC|Actes de chirurgie|Actes de chirurgie|B2 +1|ADE|Actes d'echographie|Actes d'echographie|B2 +1|ADI|Actes d'imagerie|Actes d'imagerie|B2 +1|ADT|Aide au demarrage teletransmission|Aide au demarrage teletransmission|B2 +1|AIS|Actes infirmiers de soins|Actes infirmiers de soins|B2 +1|AMC|Actes de kinesitherapie en etablissement|Actes de kinesitherapie en etablissement|B2 +1|AMD|Intervention+anesthesie duree < ou = 12|Intervention+anesthesie duree < ou = 12|B2 +1|AMF|Forfait public ivg medicamenteuse|Forfait public ivg medicamenteuse|B2 +1|AMI|Soins infirmiers|Soins infirmiers|B2 +1|AMK|Actes de kinesitherapie|Actes de kinesitherapie|B2 +1|AMO|Seances d'orthophonie|Seances d'orthophonie|B2 +1|AMP|Soins de pedicurie|Soins de pedicurie|B2 +1|AMS|Suivi des actes de kinesitherapie|Suivi des actes de kinesitherapie|B2 +1|AMT|Aide a la maintenance teletransmission|Aide a la maintenance teletransmission|B2 +1|AMY|Seances d'orthoptie|Seances d'orthoptie|B2 +1|ANP|Forfait activite non programmee|Forfait activite non programmee|B2 +1|ANT|Supplement antepartum|Supplement antepartum|B2 +1|APD|Intervention+anesthesie,24 > duree > 12|Intervention+anesthesie,24 > duree > 12|B2 +1|APE|Administration de produits et prestations en environnement hospitalier|Administration de produits et prestations en environnement hospitalier|B2 +1|APT|Aide portable teletransmission|Aide portable teletransmission|B2 +1|ARD|Aide adhesion rapide au dispositif|Aide adhesion rapide au dispositif|B2 +1|ARE|Frais d'anesthesie et de reanimation|Frais d'anesthesie et de reanimation|B2 +1|ARO|Generateur d'aerosol|Generateur d'aerosol|B2 +1|AS1|Forfait hospitalisation a temps partiel groupe 1|Forfait hospitalisation a temps partiel groupe 1|B2 +1|AS2|Forfait hospitalisation a temps partiel groupe 2|Forfait hospitalisation a temps partiel groupe 2|B2 +1|AS3|Forfait hospitalisation a temps partiel 15 %|Forfait hospitalisation a temps partiel 15 %|B2 +1|AS4|Forfait hospitalisation a temps partiel groupe 2 + fas1|Forfait hospitalisation a temps partiel groupe 2 + fas1|B2 +1|AS5|Forfait hospitalisation a temps partiel groupe 2 + fas2|Forfait hospitalisation a temps partiel groupe 2 + fas2|B2 +1|ASR|Astreinte|Astreinte|B2 +1|ATD|Complement at 150% dentaire|Complement at 150% dentaire|B2 +1|ATL|Complement at 150% lpp|Complement at 150% lpp|B2 +1|ATM|Actes techniques medicaux|Actes techniques medicaux|B2 +1|ATP|Autre moyen de transport|Autre moyen de transport|B2 +1|ATU|Forfait d'accueil et de traitement des urgences|Forfait d'accueil et de traitement des urgences|B2 +1|AXI|Actes de prophylaxie et prevention|Actes de prophylaxie et prevention|B2 +1|B|Actes de biologie|Actes de biologie|B2 +1|BDC|Consultation de prevention bucco-dentaire|Consultation de prevention bucco-dentaire|B2 +1|BR2|Consultation et radio 2 cliches de prevention bucco-dentaire|Consultation et radio 2 cliches de prevention bucco-dentaire|B2 +1|BR4|Consultation et radio 4 cliches de prevention bucco-dentaire|Consultation et radio 4 cliches de prevention bucco-dentaire|B2 +1|C|Consultation|Consultation|B2 +1|CA|Consultation approfondie|Consultation approfondie|B2 +1|CBM|Contrat de bonnes pratiques en zone de montagne|Contrat de bonnes pratiques en zone de montagne|B2 +1|CBP|Forfait contrat de bonnes pratiques|Forfait contrat de bonnes pratiques|B2 +1|CBR|Contrat de bonnes pratiques en zone rurale|Contrat de bonnes pratiques en zone rurale|B2 +1|CBU|Contrat de bonnes pratiques en zone urbaine|Contrat de bonnes pratiques en zone urbaine|B2 +1|CDE|Consultation specifique de depistage|Consultation specifique de depistage|B2 +1|CDF|Centre sante dentaire optant - forfait fin|Centre sante dentaire optant - forfait fin|B2 +1|CDI|Centre sante dentaire optant - forfait debut|Centre sante dentaire optant - forfait debut|B2 +1|CDS|Centre sante dentaire optant - forfait suivi|Centre sante dentaire optant - forfait suivi|B2 +1|CG|Consultation suivi de grossesse|Consultation suivi de grossesse|B2 +1|CID|Centre sante infirmier optant - forfait debut|Centre sante infirmier optant - forfait debut|B2 +1|CIF|Centre sante infirmier optant - forfait fin|Centre sante infirmier optant - forfait fin|B2 +1|CMD|Centre sante medical optant - forfait debut|Centre sante medical optant - forfait debut|B2 +1|CMF|Centre sante medical optant - forfait fin|Centre sante medical optant - forfait fin|B2 +1|CMT|Centre sante medical optant - forfait tacite|Centre sante medical optant - forfait tacite|B2 +1|CNP|Consultation neuro-psychiatre|Consultation neuro-psychiatre|B2 +1|COR|Podo-ortheses|Podo-ortheses|B2 +1|CP1|Forfait contrat de bonnes pratiques 1|Forfait contrat de bonnes pratiques 1|B2 +1|CP2|Forfait contrat de bonnes pratiques 2|Forfait contrat de bonnes pratiques 2|B2 +1|CP3|Forfait contrat de bonnes pratiques 3|Forfait contrat de bonnes pratiques 3|B2 +1|CP6|Contrat de bonnes pratiques transporteurs 2006|Contrat de bonnes pratiques transporteurs 2006|B2 +1|CP7|Contrat de bonnes pratiques transporteurs 2007|Contrat de bonnes pratiques transporteurs 2007|B2 +1|CP8|Contrat de bonnes pratiques transporteurs 2008|Contrat de bonnes pratiques transporteurs 2008|B2 +1|CPC|Frais de chambre particuliere pour convenance personnelle|Frais de chambre particuliere pour convenance personnelle|B2 +1|CPH|Copie d'ordonnance|Copie d'ordonnance|B2 +1|CPL|Forfait contrat de bonnes pratiques laboratoire|Forfait contrat de bonnes pratiques laboratoire|B2 +1|CPO|Coordination prelevement organe|Coordination prelevement organe|B2 +1|CPU|Contrat pratique versement unique|Contrat pratique versement unique|B2 +1|CRC|Complement de remuneration chef de clinique|Complement de remuneration chef de clinique|B2 +1|CRD|Majoration consultation regulee dimanche et ferie|Majoration consultation regulee dimanche et ferie|B2 +1|CRM|Majoration consultation regulee milieu de nuit|Majoration consultation regulee milieu de nuit|B2 +1|CRN|Majoration consultation regulee de nuit|Majoration consultation regulee de nuit|B2 +1|CRS|Majoration consultation regulee du samedi apres-midi|Majoration consultation regulee du samedi apres-midi|B2 +1|CS|Consultation specialiste|Consultation specialiste|B2 +1|CSC|Consultation specifique au cabinet par un cardiologue ou un medecin specialiste en pathologie cardio-vasculaire|Consultation specifique au cabinet par un cardiologue ou un medecin specialiste en pathologie cardio-vasculaire|B2 +1|CSI|Forfait contrat de sante publique infirmier|Forfait contrat de sante publique infirmier|B2 +1|CSL|Forfait contrat de sante publique laboratoire|Forfait contrat de sante publique laboratoire|B2 +1|CST|Contrat de surveillance thermal|Contrat de surveillance thermal|B2 +1|D|Actes dentaires|Actes dentaires|B2 +1|D01|Hemodialyse en centre|Hemodialyse en centre|B2 +1|D02|Autodialyse simple ou assistee|Autodialyse simple ou assistee|B2 +1|D03|Entrainement hemodialyse a domicile et a l'autodialyse|Entrainement hemodialyse a domicile et a l'autodialyse|B2 +1|D04|Entrainement a la dpa|Entrainement a la dpa|B2 +1|D05|Entrainement a la dpca|Entrainement a la dpca|B2 +1|D06|Hemodialyse a domicile|Hemodialyse a domicile|B2 +1|D07|Dialyse peritoneale automatisee (dpa)|Dialyse peritoneale automatisee (dpa)|B2 +1|D08|Dialyse peritoneale continue ambulatoire (dpca)|Dialyse peritoneale continue ambulatoire (dpca)|B2 +1|D09|Forfait hemodialyse en centre|Forfait hemodialyse en centre|B2 +1|D10|Forfait hemodialyse en centre pour enfant|Forfait hemodialyse en centre pour enfant|B2 +1|D11|Forfait hemodialyse en centre|Forfait hemodialyse en centre|B2 +1|D12|Forfait d'autodialyse simple|Forfait d'autodialyse simple|B2 +1|D13|Forfait d'autodialyse assistee|Forfait d'autodialyse assistee|B2 +1|D14|Forfait d'hemodialyse a domicile|Forfait d'hemodialyse a domicile|B2 +1|D15|Forfait de dialyse peritoneale automatisee (dpa)|Forfait de dialyse peritoneale automatisee (dpa)|B2 +1|D16|Forfait de dialyse peritoneale continue ambulatoire (dpca)|Forfait de dialyse peritoneale continue ambulatoire (dpca)|B2 +1|D17|Forfait entrainement hemodialyse a domicile et a l'autodialyse|Forfait entrainement hemodialyse a domicile et a l'autodialyse|B2 +1|D18|Forfait entrainement a la dpa|Forfait entrainement a la dpa|B2 +1|D19|Forfait entrainement a la dpa|Forfait entrainement a la dpa|B2 +1|D20|Forfait d'entrainement a la dialyse peritoneale automatisee a domicile|Forfait d'entrainement a la dialyse peritoneale automatisee a domicile|B2 +1|D21|Forfait d'entrainement a la dialyse peritoneale continue ambulatoire a domicile|Forfait d'entrainement a la dialyse peritoneale continue ambulatoire a domicile|B2 +1|D22|Forfait de dialyse peritoneale automatisee pour hospitalisation de 3 a 6 jours|Forfait de dialyse peritoneale automatisee pour hospitalisation de 3 a 6 jours|B2 +1|D23|Forfait de dialyse peritoneale continue ambulatoire pour hospitalisation de 3 a 6 jours|Forfait de dialyse peritoneale continue ambulatoire pour hospitalisation de 3 a 6 jours|B2 +1|D24|Forfait d''entrainement a l''hemodialyse en unite de dialyse medicalisee|Forfait d''entrainement a l''hemodialyse en unite de dialyse medicalisee|B2 +1|DC|Actes de chirurgie dentaire|Actes de chirurgie dentaire|B2 +1|DCC|Acte de depistage du cancer colorectal|Acte de depistage du cancer colorectal|B2 +1|DEN|Acte dentaire ccam|Acte dentaire ccam|B2 +1|DI|Demarche de soins infirmiers|Demarche de soins infirmiers|B2 +1|DIP|Supplement journalier dialyse peritoneale|Supplement journalier dialyse peritoneale|B2 +1|DPH|Deplacement comite regional reconnaissance mp|Deplacement comite regional reconnaissance mp|B2 +1|DRT|Differentiel referent traitant|Differentiel referent traitant|B2 +1|DTP|Dialyse tierce personne|Dialyse tierce personne|B2 +1|DVO|Divers orthese|Divers orthese|B2 +1|ECP|Examen complementaire crmpp|Examen complementaire crmpp|B2 +1|EMI|Ecart medicament indemnisable|Ecart medicament indemnisable|B2 +1|END|Actes d'endodontie|Actes d'endodontie|B2 +1|ENT|Forfait d'entree|Forfait d'entree|B2 +1|ERI|Ecart indemnisable retrocession|Ecart indemnisable retrocession|B2 +1|ETI|Ecart tarif indemnisable|Ecart tarif indemnisable|B2 +1|EXH|Sejour extreme > seuil haut|Sejour extreme > seuil haut|B2 +1|EXS|Examen special|Examen special|B2 +1|FA1|Forfait d'accueil (chirurgie ambulatoire)|Forfait d'accueil (chirurgie ambulatoire)|B2 +1|FA2|Forfait d'accueil (chirurgie ambulatoire)|Forfait d'accueil (chirurgie ambulatoire)|B2 +1|FAE|Frais d'accompagnement pour enfant hospitalise|Frais d'accompagnement pour enfant hospitalise|B2 +1|FAT|Forfait de seance d'aerosol therapie|Forfait de seance d'aerosol therapie|B2 +1|FAU|Forfait annuel urgence|Forfait annuel urgence|B2 +1|FAZ|Forfait adhesion zone deficitaire|Forfait adhesion zone deficitaire|B2 +1|FCO|Forfait consommables onereux (cardiologie)|Forfait consommables onereux (cardiologie)|B2 +1|FCS|Forfait structure centre de sante|Forfait structure centre de sante|B2 +1|FDA|Forfait dentaire cmu : protheses adjointes|Forfait dentaire cmu : protheses adjointes|B2 +1|FDC|Forfait dentaire cmu : protheses conjointes|Forfait dentaire cmu : protheses conjointes|B2 +1|FDO|Forfait dentaire cmu : protheses orthodontiques|Forfait dentaire cmu : protheses orthodontiques|B2 +1|FDR|Forfait dentaire cmu : reparation protheses|Forfait dentaire cmu : reparation protheses|B2 +1|FE|Frais d'environnement|Frais d'environnement|B2 +1|FEN|Forfait entretien|Forfait entretien|B2 +1|FFM|Forfait frais de materiel|Forfait frais de materiel|B2 +1|FFN|Aide a la transmission des flux non securises|Aide a la transmission des flux non securises|B2 +1|FFS|Aide perenne (facturation feuilles de soins)|Aide perenne (facturation feuilles de soins)|B2 +1|FGA|Frais de gestion pour centre de grand appareillage|Frais de gestion pour centre de grand appareillage|B2 +1|FGP|Frais de garde particuliere|Frais de garde particuliere|B2 +1|FHT|Forfait haute technicite|Forfait haute technicite|B2 +1|FHV|Forfait honoraires de ville|Forfait honoraires de ville|B2 +1|FI1|Forfait pdses publique|Forfait pdses publique|B2 +1|FI2|Forfait centre de depistage anonyme et gratuit|Forfait centre de depistage anonyme et gratuit|B2 +1|FI3|Forfait perinataux de proximite|Forfait perinataux de proximite|B2 +1|FI4|Forfait education therapeutique|Forfait education therapeutique|B2 +1|FJA|Forfait journalier de sortie a la charge de l'assure|Forfait journalier de sortie a la charge de l'assure|B2 +1|FJC|Forfait journalier seul (du par un organisme complementaire)|Forfait journalier seul (du par un organisme complementaire)|B2 +1|FJL|Forfait journalier seul (du par le regime local alsacemoselle)|Forfait journalier seul (du par le regime local alsacemoselle)|B2 +1|FJR|Forfait journalier de sortie a la charge du regime obligatoire|Forfait journalier de sortie a la charge du regime obligatoire|B2 +1|FJS|Hebergement > 24h|Hebergement > 24h|B2 +1|FMC|Forfait mensuel de coordinnation|Forfait mensuel de coordinnation|B2 +1|FMP|Forfait mensuel de participation|Forfait mensuel de participation|B2 +1|FMS|Forfait mensuel de soins|Forfait mensuel de soins|B2 +1|FMV|Forfait medicament de ville|Forfait medicament de ville|B2 +1|FNN|Forfait nouveau ne|Forfait nouveau ne|B2 +1|FPA|Forfait d'astreinte nuit et ferie en etablissement prive|Forfait d'astreinte nuit et ferie en etablissement prive|B2 +1|FPC|Forfait prothese conjointe (cmu hors panier de soins)|Forfait prothese conjointe (cmu hors panier de soins)|B2 +1|FPE|Forfait pediatrique|Forfait pediatrique|B2 +1|FPG|Forfait de garde nuit et ferie en etablisssement prive|Forfait de garde nuit et ferie en etablisssement prive|B2 +1|FPO|Forfait orthodontique (cmu hors panier de soins)|Forfait orthodontique (cmu hors panier de soins)|B2 +1|FPS|Forfait ps - centre de sante|Forfait ps - centre de sante|B2 +1|FPU|Forfait patient urgences|Forfait patient urgences|B2 +1|FR2|Forfait technique tarif reduit n°2|Forfait technique tarif reduit n°2|B2 +1|FR3|Forfait technique tarif reduit n°3|Forfait technique tarif reduit n°3|B2 +1|FRL|Forfait journalier de sortie a la charge du regime alsacemoselle|Forfait journalier de sortie a la charge du regime alsacemoselle|B2 +1|FS|Frais de soins|Frais de soins|B2 +1|FSD|Forfait de securite dermatologique|Forfait de securite dermatologique|B2 +1|FSG|Frais salle travail accouchement gemellaire ou dystocie|Frais salle travail accouchement gemellaire ou dystocie|B2 +1|FSJ|Forfait de soins journalier|Forfait de soins journalier|B2 +1|FSO|Frais de salle d'operation|Frais de salle d'operation|B2 +1|FST|Frais salle travail accouchement simple|Frais salle travail accouchement simple|B2 +1|FSY|Frais de salle d'operation en psychiatrie|Frais de salle d'operation en psychiatrie|B2 +1|FTG|Forfait technique global|Forfait technique global|B2 +1|FTN|Forfait technique normal|Forfait technique normal|B2 +1|FTR|Forfait technique reduit|Forfait technique reduit|B2 +1|FTS|Forfait technique scanner|Forfait technique scanner|B2 +1|GHS|Groupe homogene de sejour|Groupe homogene de sejour|B2 +1|GHT|Groupe homogene de tarif|Groupe homogene de tarif|B2 +1|GLU|Nutriments pour intolerants au gluten|Nutriments pour intolerants au gluten|B2 +1|GMT|Groupe Medico-Tarifaire|Groupe Medico-Tarifaire|B2 +1|GPD|Garde pharmacie de dimanche|Garde pharmacie de dimanche|B2 +1|GPF|Garde pharmacie de ferie|Garde pharmacie de ferie|B2 +1|GPN|Garde pharmacie de nuit|Garde pharmacie de nuit|B2 +1|GS1|Vaccin anti grippe hemisphere sud vaxigrip hs|Vaccin anti grippe hemisphere sud vaxigrip hs|B2 +1|GS2|Vaccin anti grippe hemisphere sud fluarix hs|Vaccin anti grippe hemisphere sud fluarix hs|B2 +1|HC|Honoraire complexe|Honoraire complexe|B2 +1|HCS|Acces libre hors coordination des soins|Acces libre hors coordination des soins|B2 +1|HD1|Honoraires de dispensiation a 100%|Honoraires de dispensiation a 100%|B2 +1|HD2|Honoraires de dispensiation a 15%|Honoraires de dispensiation a 15%|B2 +1|HD4|Honoraires de dispensiation a 30%|Honoraires de dispensiation a 30%|B2 +1|HD7|Honoraires de dispensiation a 65%|Honoraires de dispensiation a 65%|B2 +1|HDS|Honoraires de dispensation specifique vaccins anti grippaux hemisphere sud|Honoraires de dispensation specifique vaccins anti grippaux hemisphere sud|B2 +1|HG1|Honoraires de dispensiation grand conditionnement a 100%|Honoraires de dispensiation grand conditionnement a 100%|B2 +1|HG2|Honoraires de dispensiation grand conditionnement a 15%|Honoraires de dispensiation grand conditionnement a 15%|B2 +1|HG4|Honoraires de dispensiation grand conditionnement a 30%|Honoraires de dispensiation grand conditionnement a 30%|B2 +1|HG7|Honoraires de dispensiation grand conditionnement a 65%|Honoraires de dispensiation grand conditionnement a 65%|B2 +1|HMP|Honoraire comite regionalreconnaissance mp|Honoraire comite regionalreconnaissance mp|B2 +1|HN|Hors nomenclature|Hors nomenclature|B2 +1|HS|Honoraires de surveillance|Honoraires de surveillance|B2 +1|HTH|Forfait hebergement cure thermale|Forfait hebergement cure thermale|B2 +1|HUM|Produits origine humaine|Produits origine humaine|B2 +1|IC|Consultation generaliste ivg|Consultation generaliste ivg|B2 +1|ICO|Actes inlay-core|Actes inlay-core|B2 +1|ICS|Consultation specialiste ivg|Consultation specialiste ivg|B2 +1|ID|Indemnite de deplacement|Indemnite de deplacement|B2 +1|IF|Indemnite forfaitaire de deplacement|Indemnite forfaitaire de deplacement|B2 +1|IFA|Indemnite forfaitaire de deplacement pour auxiliaires medicaux|Indemnite forfaitaire de deplacement pour auxiliaires medicaux|B2 +1|IFN|Indemnite forfaitaire deplacement mk neurologique|Indemnite forfaitaire deplacement mk neurologique|B2 +1|IFO|Indemnite forfaitaire deplacement mk orthopedique et rhumatologique|Indemnite forfaitaire deplacement mk orthopedique et rhumatologique|B2 +1|IFP|Indemnite forfaitaire deplacement mk pneumologie|Indemnite forfaitaire deplacement mk pneumologie|B2 +1|IFR|Indemnite forfaitaire deplacement mk rhumatismale|Indemnite forfaitaire deplacement mk rhumatismale|B2 +1|IFS|Indemnite forfaitaire deplacement mk de sortie|Indemnite forfaitaire deplacement mk de sortie|B2 +1|IG|Intervention ivg|Intervention ivg|B2 +1|IGA|Anesthesie ivg|Anesthesie ivg|B2 +1|IGB|Investigations biologiques|Investigations biologiques|B2 +1|IGM|Mifegyne - pharmacie ivg|Mifegyne - pharmacie ivg|B2 +1|IGP|Prostaglandines - pharmacie ivg|Prostaglandines - pharmacie ivg|B2 +1|IK|Indemnites kilometriques|Indemnites kilometriques|B2 +1|IKG|Frais de deplacement vacations|Frais de deplacement vacations|B2 +1|IKM|Indemnite kilometrique montagne|Indemnite kilometrique montagne|B2 +1|IKS|Indemnite kilometrique speciale (ski-pied-bac)|Indemnite kilometrique speciale (ski-pied-bac)|B2 +1|IMD|Forfait intervention duree < ou = 12h|Forfait intervention duree < ou = 12h|B2 +1|IMI|Forfait intervention duree < ou = 12h prive medic|Forfait intervention duree < ou = 12h prive medic|B2 +1|IMP|Implantologie|Implantologie|B2 +1|ING|Garde ambulanciere|Garde ambulanciere|B2 +1|INO|Actes inlay-onlay|Actes inlay-onlay|B2 +1|IPD|Forfait intervention, 24h > duree > 12h|Forfait intervention, 24h > duree > 12h|B2 +1|IVB|Verification biologique - ivg|Verification biologique - ivg|B2 +1|IVE|Verification echographique - ivg|Verification echographique - ivg|B2 +1|K|Actes de specialite|Actes de specialite|B2 +1|KA|Actes de chirurgie d'urgence|Actes de chirurgie d'urgence|B2 +1|KB|Prelevement directeur de laboratoire|Prelevement directeur de laboratoire|B2 +1|KC|Actes de chirurgie dentaire par stomatologue|Actes de chirurgie dentaire par stomatologue|B2 +1|KCC|Actes specifiques des chirurgiens|Actes specifiques des chirurgiens|B2 +1|KE|Actes d'echographie, ecotomographie ou doppler|Actes d'echographie, ecotomographie ou doppler|B2 +1|KGP|Kit anti grippe|Kit anti grippe|B2 +1|KMB|Prelevement par ponction veineuse directe pour un medecin biologiste|Prelevement par ponction veineuse directe pour un medecin biologiste|B2 +1|KMO|Acte en k pour phoniatre|Acte en k pour phoniatre|B2 +1|KTH|Pratiques medicales complementaires en cure thermale|Pratiques medicales complementaires en cure thermale|B2 +1|LAI|Lait humain|Lait humain|B2 +1|LEN|Lentilles optiques|Lentilles optiques|B2 +1|LTD|Location ligne telephonique dediee|Location ligne telephonique dediee|B2 +1|LUN|Monture optique (titre ii - chapitre 2 de la lpp)|Monture optique (titre ii - chapitre 2 de la lpp)|B2 +1|MA|Majoration pour astreinte actes techniques|Majoration pour astreinte actes techniques|B2 +1|MAC|Materiels et appareils de contention|Materiels et appareils de contention|B2 +1|MAD|Materiels et appareils de traitements divers|Materiels et appareils de traitements divers|B2 +1|MAF|Majoration annuelle famille|Majoration annuelle famille|B2 +1|MAP|Majoration anatomo-cyto-pathologie|Majoration anatomo-cyto-pathologie|B2 +1|MAR|Marge forfaitaire|Marge forfaitaire|B2 +1|MAS|Majoration annuelle de synthese|Majoration annuelle de synthese|B2 +1|MAU|Majoration pour acte unique|Majoration pour acte unique|B2 +1|MBB|Majoration nourrisson avant 8 jours|Majoration nourrisson avant 8 jours|B2 +1|MCC|Majoration coordination cardiologue|Majoration coordination cardiologue|B2 +1|MCD|Majoration specifique pds cliniques dentistes|Majoration specifique pds cliniques dentistes|B2 +1|MCE|Majoration consultation endocrino|Majoration consultation endocrino|B2 +1|MCG|Majoration coordination generaliste|Majoration coordination generaliste|B2 +1|MCI|Majoration de coordination et d'environnement de soins infirmier|Majoration de coordination et d'environnement de soins infirmier|B2 +1|MCS|Majoration coordination specialiste|Majoration coordination specialiste|B2 +1|MD|Majoration de deplacement|Majoration de deplacement|B2 +1|MDD|Majoration de deplacement de dimanche et ferie|Majoration de deplacement de dimanche et ferie|B2 +1|MDE|Majoration de deplacement pour environnement|Majoration de deplacement pour environnement|B2 +1|MDI|Majoration de deplacement de mi-nuit 0 a 6 h|Majoration de deplacement de mi-nuit 0 a 6 h|B2 +1|MDN|Majoration de deplacement de nuit|Majoration de deplacement de nuit|B2 +1|MG|Majoration pour garde|Majoration pour garde|B2 +1|MGC|Forfait annuel migac|Forfait annuel migac|B2 +1|MGE|Majoration generaliste enfant|Majoration generaliste enfant|B2 +1|MHU|Medicament homeopathique unitaire (a 35 %)|Medicament homeopathique unitaire (a 35 %)|B2 +1|MIC|Majoration consultation longue et complexe par mt d'un patient insuffisant cardiaque apres hospitalisation pour decompensation|Majoration consultation longue et complexe par mt d'un patient insuffisant cardiaque apres hospitalisation pour decompensation|B2 +1|MK1|Cures thermales forfait kine 18 seances collectives|Cures thermales forfait kine 18 seances collectives|B2 +1|MK2|Cures thermales forfait kine 18 seances individuelles|Cures thermales forfait kine 18 seances individuelles|B2 +1|MK3|Cures thermales forfait kine 9 seances collectives|Cures thermales forfait kine 9 seances collectives|B2 +1|MK4|Cures thermales forfait kine (9 seances individuelles)|Cures thermales forfait kine (9 seances individuelles)|B2 +1|MM|Majoration milieu de nuit|Majoration milieu de nuit|B2 +1|MNO|Majoration nourisson generaliste|Majoration nourisson generaliste|B2 +1|MNP|Majoration nourisson pediatre|Majoration nourisson pediatre|B2 +1|MPC|Majoration provisoire cliniciens|Majoration provisoire cliniciens|B2 +1|MPE|Majoration pediatre enfant|Majoration pediatre enfant|B2 +1|MPF|Majoration premiere consultation famille|Majoration premiere consultation famille|B2 +1|MPI|Majoration pharmacie des iles|Majoration pharmacie des iles|B2 +1|MPJ|Majoration provisoire cliniciens pour - 16ans|Majoration provisoire cliniciens pour - 16ans|B2 +1|MPP|Majoration de suivi des enfants grands prematures ou atteints de pathologie congenitale grave|Majoration grands prema ou patho congenitale|B2 +1|MRD|Medecin referent debut|Medecin referent debut|B2 +1|MRF|Medecin referent fin|Medecin referent fin|B2 +1|MSH|Majoration de suivi des enfants grands prematures ou atteints de pathologie congenitale grave|Majoration grands prema ou patho congenitale|B2 +1|MTA|Majoration consultation appareillage|Majoration consultation appareillage|B2 +1|MTC|Majoration transitoire chirurgiens|Majoration transitoire chirurgiens|B2 +1|MTD|Acces direct specifique (medecin traitant)|Acces direct specifique (medecin traitant)|B2 +1|MTH|Hors residence habituel (medecin traitant)|Hors residence habituel (medecin traitant)|B2 +1|MTN|Nouveau medecin traitant|Nouveau medecin traitant|B2 +1|MTO|Patient oriente par le medecin traitant|Patient oriente par le medecin traitant|B2 +1|MTR|Medecin traitant remplace|Medecin traitant remplace|B2 +1|MTU|Urgence (medecin traitant)|Urgence (medecin traitant)|B2 +1|MU|Majoration d'urgence|Majoration d'urgence|B2 +1|NN1|Supplement neonatologie 1|Supplement neonatologie 1|B2 +1|NN2|Supplement neonatologie 2|Supplement neonatologie 2|B2 +1|NN3|Supplement neonatologie 3|Supplement neonatologie 3|B2 +1|NUT|Aliment dietetique|Aliment dietetique|B2 +1|OMJ|Aide outil de mise a jour vitale|Aide outil de mise a jour vitale|B2 +1|OP1|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|B2 +1|OP2|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|B2 +1|OP3|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|B2 +1|OP4|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|B2 +1|OP5|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|B2 +1|OP6|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|B2 +1|OP7|Forfait optique no7 multifocaux cmu|Forfait optique no7 multifocaux cmu|B2 +1|OPM|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|Optique (titre ii - chapitre 2 de la lpp) avec forfait cmu|B2 +1|OPT|Optique (titre ii - chapitre 2 de la lpp) hors verres et montures|Optique (titre ii - chapitre 2 de la lpp) hors verres et montures|B2 +1|ORP|Orthoprotheses (titre ii - chapitre 7 de la lpp)|Orthoprotheses (titre ii - chapitre 7 de la lpp)|B2 +1|ORT|Orthopedie dento-faciale par stomatologue|Orthopedie dento-faciale par stomatologue|B2 +1|OV1|Forfait optique enfant no1 unifocaux (cmu)|Forfait optique enfant no1 unifocaux (cmu)|B2 +1|OV2|Forfait optique enfant no2 unifocaux (cmu)|Forfait optique enfant no2 unifocaux (cmu)|B2 +1|OV3|Forfait optique enfant no3 unifocaux (cmu)|Forfait optique enfant no3 unifocaux (cmu)|B2 +1|OV4|Forfait optique enfant no4 unifocaux (cmu)|Forfait optique enfant no4 unifocaux (cmu)|B2 +1|OV5|Forfait optique enfant no5 unifocaux (cmu)|Forfait optique enfant no5 unifocaux (cmu)|B2 +1|OV6|Forfait optique enfant no6 unifocaux (cmu)|Forfait optique enfant no6 unifocaux (cmu)|B2 +1|OV7|Forfait optique enfant no7 unifocaux (cmu)|Forfait optique enfant no7 unifocaux (cmu)|B2 +1|OV8|Forfait optique enfant no8 unifocaux (cmu)|Forfait optique enfant no7 multifocaux (cmu)|B2 +1|OV9|Forfait optique enfant no9 unifocaux (cmu)|Forfait optique enfant no7 multifocaux (cmu)|B2 +1|OVA|Forfait optique enfant a unifocaux (cmu)|Forfait optique enfant a multifocaux (cmu)|B2 +1|OVB|Forfait optique enfant b unifocaux (cmu)|Forfait optique enfant b multifocaux (cmu)|B2 +1|P|Actes anatomo-cyto-pathologie|Actes anatomo-cyto-pathologie|B2 +1|PA|Ortheses (titre ii - chapitre 1 de la lpp)|Ortheses (titre ii - chapitre 1 de la lpp)|B2 +1|PAE|Participation assure pour soins externes en etablissement ex dg|Participation assure pour soins externes en etablissement ex dg|B2 +1|PAH|Participation assure pour hospitalisation en etablissement ex dg|Participation assure pour hospitalisation en etablissement ex dg|B2 +1|PAJ|Participation assure pour hospitalisation pour benef alsace moselle|Participation assure pour hospitalisation pour benef alsace moselle|B2 +1|PAL|Participation assure pour soins externes pour benef alsace moselle|Participation assure pour soins externes pour benef alsace moselle|B2 +1|PAM|Protheses amovibles definitives metalliques|Protheses amovibles definitives metalliques|B2 +1|PAN|Pansements (titre i - chapitre 4 de la lpp)|Pansements (titre i - chapitre 4 de la lpp)|B2 +1|PAP|Participation assure|Participation assure|B2 +1|PAR|Protheses amovibles definitives resine|Protheses amovibles definitives resine|B2 +1|PAS|Participation assure sejour|Participation assure sejour|B2 +1|PAT|Participation assure transitoire|Participation assure transitoire|B2 +1|PAU|Prothese auditive (titre ii - chapitre 3 de la lpp)|Prothese auditive (titre ii - chapitre 3 de la lpp)|B2 +1|PAV|Participation assure pour soins de ville et soins externes|Participation assure pour soins de ville et soins externes|B2 +1|PB|Prelevement sanguin par directeur de laboratoire non medecin|Prelevement sanguin par directeur de laboratoire non medecin|B2 +1|PDM|Dispositif medical|Dispositif medical|B2 +1|PDT|Protheses dentaires provisoires|Protheses dentaires provisoires|B2 +1|PEX|Prothese externe non orthopedique (titre ii - chapitre 4 de la lpp)|Prothese externe non orthopedique (titre ii - chapitre 4 de la lpp)|B2 +1|PFC|Protheses fixes ceramiques|Protheses fixes ceramiques|B2 +1|PFM|Protheses fixes metalliques|Protheses fixes metalliques|B2 +1|PGE|Pratique de geolocalisation par dispositif embarque|Pratique de geolocalisation par dispositif embarque|B2 +1|PH1|Pharmacie 100%|Pharmacie 100%|B2 +1|PH2|Pharmacie vignette orange 15%|Pharmacie vignette orange 15%|B2 +1|PH4|Pharmacie vignette bleue 35%|Pharmacie vignette bleue 35%|B2 +1|PH7|Pharmacie vignette blanche 65%|Pharmacie vignette blanche 65%|B2 +1|PH8|Pharmacie facturee en sus du ghs|Pharmacie facturee en sus du ghs|B2 +1|PH9|Pharmacie facturee en sus|Pharmacie facturee en sus|B2 +1|PHA|Forfait pharmacie accouchement a domicile|Forfait pharmacie accouchement a domicile|B2 +1|PHD|Pharmacie hospitaliere derogatoire|Pharmacie hospitaliere derogatoire|B2 +1|PHH|Pharmacie hospitaliere retrocedee (taux 100%)|Pharmacie hospitaliere retrocedee (taux 100%)|B2 +1|PHI|Medicament avec autorisation d'importation|Medicament avec autorisation d'importation|B2 +1|PHJ|Forfait pharmaceutique journalier|Forfait pharmaceutique journalier|B2 +1|PHY|Medicament en sus|Medicament en sus|B2 +1|PHM|Preparation hospitaliere magistrale|Preparation hospitaliere magistrale|B2 +1|PHN|Pharmacie non remboursable|Pharmacie non remboursable|B2 +1|PHP|Preparation hospitaliere|Preparation hospitaliere|B2 +1|PHQ|Pharmacie hospitaliere retrocedee (taux 35%)|Pharmacie hospitaliere retrocedee (taux 35%)|B2 +1|PHS|Pharmacie hospitaliere retrocedee (taux 65%)|Pharmacie hospitaliere retrocedee (taux 65%)|B2 +1|PHT|Pharmacie hospitaliere mmh|Pharmacie hospitaliere mmh|B2 +1|PHU|Medicament avec autorisation temporaire d'utilisation nominative|Medicament avec autorisation temporaire d'utilisation nominative|B2 +1|PII|Implant inerte (titre iii - chapitres 1, 2 et 3 de la lpp)|Implant inerte (titre iii - chapitres 1, 2 et 3 de la lpp)|B2 +1|PIO|Processeur pour implant osteo-integre|Processeur pour implant osteo-integre|B2 +1|PJ|Frais de sejour|Frais de sejour|B2 +1|PJC|Ticket moderateur relatif aux frais de sejour|Ticket moderateur relatif aux frais de sejour|B2 +1|PJE|Frais de sejour ime|Frais de sejour ime|B2 +1|PM2|Preparation magistrale allopathique 15%|Preparation magistrale allopathique 15%|B2 +1|PM4|Preparation magistrale allopathique 35%|Preparation magistrale allopathique 35%|B2 +1|PME|Implant mu par electricite (titre iii - chapitre 4 de la lpp)|Implant mu par electricite (titre iii - chapitre 4 de la lpp)|B2 +1|PMH|Preparation magistrale homeopathique|Preparation magistrale homeopathique|B2 +1|PMO|Prescription etablie par medecin correspondant dans le parcours de soins|Prescription etablie par medecin correspondant dans le parcours de soins|B2 +1|PMP|Prescription etablie dans une autre situation du parcours de soins|Prescription etablie dans une autre situation du parcours de soins|B2 +1|PMR|Preparation magistrale|Preparation magistrale|B2 +1|PMS|Majoration pmsi|Majoration pmsi|B2 +1|PMT|Prescription etablie par le medecin traitant|Prescription etablie par le medecin traitant|B2 +1|PO1|Prelevement organe 1|Prelevement organe 1|B2 +1|PO2|Prelevement organe 2|Prelevement organe 2|B2 +1|PO3|Prelevement organe 3|Prelevement organe 3|B2 +1|PO4|Prelevement organe 4|Prelevement organe 4|B2 +1|PO5|Prelevement organe 5|Prelevement organe 5|B2 +1|PO6|Prelevement organe 6|Prelevement organe 6|B2 +1|PO7|Prelevement organe 7|Prelevement organe 7|B2 +1|PO8|Prelevement organe 8|Prelevement organe 8|B2 +1|PO9|Prelevement organe 9|Prelevement organe 9|B2 +1|POA|Prelevement d'organe a|Prelevement d'organe a|B2 +1|POC|Prothese oculaire et faciale (titre ii - chapitre 5 de la lpp)|Prothese oculaire et faciale (titre ii - chapitre 5 de la lpp)|B2 +1|POD|Acte de pedicure-podologue ( diabetique)|Acte de pedicure-podologue ( diabetique)|B2 +1|PPH|Plan personnalise de sante pharmacie|Plan personnalise de sante pharmacie|B2 +1|PPI|Preparation pharmaceutique individualisee (allergenes)|Preparation pharmaceutique individualisee (allergenes)|B2 +1|PPP|Prestation particuliere et pandemie|Prestation particuliere et pandemie|B2 +1|PPS|Plan personnalise de sante|Plan personnalise de sante|B2 +1|PRD|Permanence remuneration dimanche et ferie|Permanence remuneration dimanche et ferie|B2 +1|PRM|Permanence remuneration milieu de nuit|Permanence remuneration milieu de nuit|B2 +1|PRN|Permanence remuneration de nuit|Permanence remuneration de nuit|B2 +1|PRO|Prothese dentaire par stomatologue|Prothese dentaire par stomatologue|B2 +1|PRS|Prime responsabilite professionnelle specialiste|Prime responsabilite professionnelle specialiste|B2 +1|PRT|Permanence remuneration totale|Permanence remuneration totale|B2 +1|PSC|Prescription etablie hors parcours de soins|Prescription etablie hors parcours de soins|B2 +1|PSM|Pied support materiel|Pied support materiel|B2 +1|PY0|Forfait psychiatrie seance collective 1 intervenant|Forfait psychiatrie seance collective 1 intervenant|B2 +1|PY1|Forfait psychiatrie seance individuelle|Forfait psychiatrie seance individuelle|B2 +1|PY2|Forfait psychiatrie seance collective 2 intervenants|Forfait psychiatrie seance collective 2 intervenants|B2 +1|PY3|Forfait psychiatrie seance individuelle 2 intervenants|Forfait psychiatrie seance individuelle 2 intervenants|B2 +1|PY4|Forfait psychiatrie seance collective 1 intervenant - 6 a 8 h|Forfait psychiatrie seance collective 1 intervenant - 6 a 8 h|B2 +1|PY5|Forfait psychiatrie seance individuelle 1 intervenant - 6 a 8 h|Forfait psychiatrie seance individuelle 1 intervenant - 6 a 8 h|B2 +1|PY6|Forfait psychiatrie seance collective 2 intervenants - 6 a 8 h|Forfait psychiatrie seance collective 2 intervenants - 6 a 8 h|B2 +1|PY7|Forfait psychiatrie seance individuelle 2 intervenants - 6 a 8 h|Forfait psychiatrie seance individuelle 2 intervenants - 6 a 8 h|B2 +1|PY8|Forfait psychiatrie de securite sans hebergement|Forfait psychiatrie de securite sans hebergement|B2 +1|PY9|Forfait psychiatrie d'accueil et de suivi de nuit|Forfait psychiatrie d'accueil et de suivi de nuit|B2 +1|RAA|Remuneration additionnelle capi|Remuneration additionnelle capi|B2 +1|RAC|Remuneration des adherents au capi|Remuneration des adherents au capi|B2 +1|RAG|Forfait pour astreinte de nuit ou samedi matin en etablissement prive|Forfait pour astreinte de nuit ou samedi matin en etablissement prive|B2 +1|RAN|Forfait pour astreinte de debut de nuit en etablissement prive|Forfait pour astreinte de debut de nuit en etablissement prive|B2 +1|RAP|Supplement radiotherapie pediatrique|Supplement radiotherapie pediatrique|B2 +1|RC1|Responsabilite civile chirurgie 1|Responsabilite civile chirurgie 1|B2 +1|RC2|Responsabilite civile chirurgie 2|Responsabilite civile chirurgie 2|B2 +1|RCA|Responsabilite civile anesthesie reanimation|Responsabilite civile anesthesie reanimation|B2 +1|RCC|Redevance chef de clinique|Redevance chef de clinique|B2 +1|RCO|Responsabilite civile echographie obstetricale|Responsabilite civile echographie obstetricale|B2 +1|RCP|Responsabilite civile professionnelle|Responsabilite civile professionnelle|B2 +1|REA|Supplement reanimation|Supplement reanimation|B2 +1|REG|Forfait regulation|Forfait regulation|B2 +1|REP|Reanimation pediatrique|Reanimation pediatrique|B2 +1|RGD|Forfait pour garde de debut de nuit en etablissement prive|Forfait pour garde de debut de nuit en etablissement prive|B2 +1|RGN|Forfait pour garde de nuit ou samedi matin en etablissement prive|Forfait pour garde de nuit ou samedi matin en etablissement prive|B2 +1|RMT|Remuneration medecin traitant|Remuneration medecin traitant|B2 +1|RNO|Renouvellement d'optique|Renouvellement d'optique|B2 +1|RPA|Remuneration pour astreinte en etablissement prive|Remuneration pour astreinte en etablissement prive|B2 +1|RPG|Remuneration pour garde en etablissement prive|Remuneration pour garde en etablissement prive|B2 +1|RPN|Reparations sur prothese|Reparations sur prothese|B2 +1|SC|Soins conservateurs par dentiste|Soins conservateurs par dentiste|B2 +1|SCM|Soins conservateurs par medecin|Soins conservateurs par medecin|B2 +1|SD|Seances de diagnostic|Seances de diagnostic|B2 +1|SDE|Soins dentaires|Soins dentaires|B2 +1|SE1|Forfait environnement hospitalier 1|Forfait environnement hospitalier 1|B2 +1|SE2|Forfait environnement hospitalier 2|Forfait environnement hospitalier 2|B2 +1|SE3|Forfait environnement hospitalier 3|Forfait environnement hospitalier 3|B2 +1|SE4|Forfait environnement hospitalier 4|Forfait environnement hospitalier 4|B2 +1|SE5|Forfait environnement hospitalier 5|Forfait environnement hospitalier 5|B2 +1|SE6|Forfait environnement hospitalier 6|Forfait environnement hospitalier 6|B2 +1|SE7|Forfait environnement hospitalier 7|Forfait environnement hospitalier 7|B2 +1|SES|Suite examen de sante|Suite examen de sante|B2 +1|SF|Actes de sage-femme|Actes de sage-femme|B2 +1|SFC|Supplement forfait chimiotherapie|Supplement forfait chimiotherapie|B2 +1|SFI|Soins infirmiers par sage-femme|Soins infirmiers par sage-femme|B2 +1|SHO|Supplement chambre particuliere pour raison therapeutique|Supplement chambre particuliere pour raison therapeutique|B2 +1|SMU|Transport par smur|Transport par smur|B2 +1|SNG|Sang plasma et derives|Sang plasma et derives|B2 +1|SNS|Frais de seance de soins|Frais de seance de soins|B2 +1|SOD|Outils de mise a jour pharmaciens specificites dom|Outils de mise a jour pharmaciens specificites dom|B2 +1|SP|Examen de suivi postnatal|Examen de suivi postnatal|B2 +1|SPR|Actes de prothese dentaire par chirurgien dentiste|Actes de prothese dentaire par chirurgien dentiste|B2 +1|SRA|Supplement reanimation|Supplement reanimation|B2 +1|SRC|Supplement surveillance continue|Supplement surveillance continue|B2 +1|SSC|Supplement soins continus|Supplement soins continus|B2 +1|SSM|Supplement pour surveillance malade|Supplement pour surveillance malade|B2 +1|STF|Forfait soins intensifs|Forfait soins intensifs|B2 +1|STH|Forfait surveillance medicale thermale|Forfait surveillance medicale thermale|B2 +1|SZH|Supplement Zone Haute|Supplement Zone Haute|B2 +1|TB|Prelevement sanguin par technicien de laboratoire|Prelevement sanguin par technicien de laboratoire|B2 +1|TCP|Acte de tele consultation|Acte de tele consultation|B2 +1|TDR|Test de diagnostic rapide (acte gratuit)|Test de diagnostic rapide (acte gratuit)|B2 +1|TEP|Acte de tele expertise|Acte de tele expertise|B2 +1|TH1|Cures thermales forfait global|Cures thermales forfait global|B2 +1|TH2|Cures thermales forfait global + kine|Cures thermales forfait global + kine|B2 +1|TH3|Cures thermales forfait 2eme orientation|Cures thermales forfait 2eme orientation|B2 +1|TH4|Cures thermales forfait global + kine|Cures thermales forfait global + kine|B2 +1|TH5|Cures thermales forfait 72 seances hydro|Cures thermales forfait 72 seances hydro|B2 +1|THR|Forfait surveillance medicale reduit 2eme orientation|Forfait surveillance medicale reduit 2eme orientation|B2 +1|TJC|Tarif journalier complementaire|Tarif journalier complementaire|B2 +1|TNS|Traitement nicotinique de substitution|Traitement nicotinique de substitution|B2 +1|TO|Traitements d'orthopedie dentofaciale par chirurgien dentiste|Traitements d'orthopedie dentofaciale par chirurgien dentiste|B2 +1|TSG|Frais transport produits sanguins|Frais transport produits sanguins|B2 +1|TTH|Frais de transport pour cure thermale|Frais de transport pour cure thermale|B2 +1|TXA|Taxi tarif a|Taxi tarif a|B2 +1|TXB|Taxi tarif b|Taxi tarif b|B2 +1|TXC|Taxi tarif c|Taxi tarif c|B2 +1|TXD|Taxi tarif d|Taxi tarif d|B2 +1|TXF|Taxi tarif f|Taxi tarif f|B2 +1|TXI|Transport par taxi|Transport par taxi|B2 +1|UPH|Urgence pharmacie|Urgence pharmacie|B2 +1|V|Visite|Visite|B2 +1|VA|Visite d'urgence (sur site experimental)|Visite d'urgence (sur site experimental)|B2 +1|VAC|Acte de vaccination grippe h1n1|Acte de vaccination grippe h1n1|B2 +1|VDC|Videocapsule en cabinet de ville|Videocapsule en cabinet de ville|B2 +1|VDE|Videocapsule en etablissement|Videocapsule en etablissement|B2 +1|VEH|Vehicule pour handicapes physiques (titre iv de la lpp)|Vehicule pour handicapes physiques (titre iv de la lpp)|B2 +1|VER|Verres optiques (titre ii - chapitre 2 de la lpp)|Verres optiques (titre ii - chapitre 2 de la lpp)|B2 +1|VGI|Remuneration vaccination grippe a infirmiers liberaux|Remuneration vaccination grippe a infirmiers liberaux|B2 +1|VGM|Remuneration vaccination grippe a medecin|Remuneration vaccination grippe a medecin|B2 +1|VL|Visite longue et complexe|Visite longue et complexe|B2 +1|VNP|Visite neuropsychiatre|Visite neuropsychiatre|B2 +1|VRD|Majoration visite regulee ferie et dimanche|Majoration visite regulee ferie et dimanche|B2 +1|VRM|Majoration visite regulee milieu de nuit|Majoration visite regulee milieu de nuit|B2 +1|VRN|Majoration visite regulee nuit|Majoration visite regulee nuit|B2 +1|VRS|Majoration visite regulee du samedi apres-midi|Majoration visite regulee du samedi apres-midi|B2 +1|VS|Visite specialiste|Visite specialiste|B2 +1|VSL|Transport par vehicule sanitaire leger|Transport par vehicule sanitaire leger|B2 +1|Z|Actes de radiologie dentaire|Actes de radiologie dentaire|B2 +1|ZFU|Contrat de bonnes pratiques en zone franche urbaine |Contrat de bonnes pratiques en zone franche urbaine |B2 diff --git a/db/data2/dbdata_activite_t_rapports.csv b/db/data2/dbdata_activite_t_rapports.csv new file mode 100644 index 0000000..f5273e6 --- /dev/null +++ b/db/data2/dbdata_activite_t_rapports.csv @@ -0,0 +1,16 @@ +oid|code|texte|is_cti|is_essentiel|essentiel_date_level|colonnes_essentiel|entete|entete_2|group_id|is_hide|rapport_indicateur_condition_code|label|serie_entete|colonnes_essentiel_style +1|ACTI_ESS_1|CTI Essentiels Occupation (ne plus utiliser)|1|1|M||||1|1|"||||||"||"||"| +1|ACTI_ESS_2|CTI Essentiels Activité DAF (ne plus utiliser)|1|1|M||||1|1|"||||||"||"||"| +1|ACTI_ESS_3|CTI Essentiels Activité DIM (ne plus utiliser)|1|1|M||||1|1|"||||||"||"||"| +1|ACTI_ESS_4|CTI Essentiels Activité Direction (ne plus utiliser)|1|1|M||||1|1|"||||||"||"||"| +1|ACTI_ESS_5|CTI Essentiels Occupation SSR (ne plus utiliser)|1|1|M||||1|1|"||||||"||"||"| +1|CTI_ESS_001|Occupation|1|1|M||||1|0|"||||||"||"||||||||||||||||"| +1|CTI_ESS_002|Activité Direction (Date activité)|1|1|M||||1|0|"||||||"||"||"| +1|CTI_ESS_003|Activité Direction (Date sortie)|1|1|M||||1|0|"||||||"||"||"| +1|CTI_ESS_004|Activité Comptable (Date ventes)|1|1|M||||1|0|"||||||"||"||"| +1|CTI_ESS_006|Séjours|1|1|M|"ENTETE_ETENDUE|VAP100|DAM100|"|||1|0|"||||||"||"||||||||||||||||"| +1|CTI_EX1|CTI Exemple 1. Activité|1|0|M||||0|0|"||||||"||"||"| +1|CTI_EX2|CTI Exemple 2. Occupation|1|0|M||||0|0|"||||||"||"||"| +1|CTI_EX3|CTI Exemple 3. Activité|1|0|M||||0|0|"||||||"||"||"| +1|CTI_EX4|CTI Exemple 4. Activité|1|0|M||||0|0|"||||||"||"||"| +1|CTI_PF_AGG|CTI Portfolio|1|1|M||||1|1|"||||||"||"||"| diff --git a/db/data2/dbdata_activite_t_rapports_rubriques.csv b/db/data2/dbdata_activite_t_rapports_rubriques.csv new file mode 100644 index 0000000..15d4e82 --- /dev/null +++ b/db/data2/dbdata_activite_t_rapports_rubriques.csv @@ -0,0 +1,899 @@ +rapport_code|numero_rubrique|indicateur_code|indicateur_associe_code|entete|entete_etendue|output_format|width|row_height|padding|font_size|font_weight|border_thickness|color|background_color|base_nationale|base_nationale_qualifiee|viewlink|viewlink_label|viewlink_param|picto_enabled|positif_is_good|description|description_2|entete_etendue_2|output_format_2|picto_enabled_2|positif_is_good_2|is_hide|specific_viewlink|specific_viewlink_label|specific_viewlink_param|indicateur_condition_external_code|erase_rapport_indicateur_condition|calc_formula|hide_on_zero_field|field_tag|serie_indicateur_code|serie_indicateur_table_name|serie_entete_etendue|serie_description|serie_output_format|serie_picto_enabled|serie_positif_is_good +ACTI_ESS_1|4|CTI_ADM|||Admissions période||0|22|10|12||0|||0|0|ACTI000123|Séjours par étage|GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_ADM||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Admissions période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|3|CTI_ADM_PRE|||Admissions avant période||0|22|10|12||0|||0|0|ACTI000123|Séjours par unité fonctionnelle|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_ADM_PRE||||||||||||||||"|"*CALC||||||||||||||||"|"Admissions avant période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|5|CTI_DEP|||Sorties période||0|22|10|12||0|||0|0|ACTI000123|Séjours par médecin séjour|GROUPBY=MED&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_DEP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|19|CTI_DEP|||Sorties période||0|22|10|12||0|||0|0|ACTI000123|Facturation par service de sortie|GROUPBY=SOR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||||0||||"||||||"|0||||"CTI_DEP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|28|CTI_DMSR|||DMS hospitalisés|#,0j|0|22|10|12||0|||0|0|ACTI000123|Séjours par unité fonctionnelle|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&JSI=2&VIEWTAB=1|1|0|||||||0||||"||||||"|0||||"CTI_DMSR||||||||||||||||"|"*CALC||||||||||||||||"|"DMS hospitalisés||"|"||"|"#,0j||"|"1||"|"0||" +ACTI_ESS_1|27|CTI_DMSTOT|||DMS établissement (Ambulatoires + Hospit jour de sortie non inclus)|#,0j|0|22|10|12||0|||0|0|ACTI000123|Séjours par services|GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|0|||||||0||||"||||||"|0||||"CTI_DMSTOT||||||||||||||||"|"*CALC||||||||||||||||"|"DMS établissement (Ambulatoires + Hospit jour de sortie non inclus)||"|"||"|"#,0j||"|"1||"|"0||" +ACTI_ESS_1|25|CTI_NB6_JFSN|||Journées hospitalisation facturées||0|22|10|12||0|||0|0|ACTI000123|Facturation par mois|GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||||0||||"||||||"|0||||"CTI_NB6_JFSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisation facturées||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|15|CTI_NB6_JSN|||Journées d'hospitalisation (jour sortie non inclus)||0|22|10|12||0|||0|0|ACTI000123|Ocucpation par clé budgétaire|GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NB6_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées d'hospitalisation (jour sortie non inclus)||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|10|CTI_NBAMB|||Ambulatoires||0|22|10|12||0|||0|0|ACTI000123|Occupation par étage de mouvement|GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Ambulatoires||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|31|CTI_NBDEAD|||Nombre de décès||0|22|10|12||0|||0|0|ACTI000123|Séjours par mode de sortie|GROUPBY=MODE_SORTIE&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&VIEWTAB=0|1|0|||||||0||||"||||||"|0||||"CTI_NBDEAD||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Nombre de décès||"|"||"|"||"|"1||"|"0||" +ACTI_ESS_1|8|CTI_NBENTDIR|||Entrées hospitalisés||0|22|10|12||0|||0|0|ACTI000123|Occupation par service de mouvement|GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NBENTDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Entrées hospitalisés||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|12|CTI_NBEXT|||Externes||0|22|10|12||0|||0|0|ACTI000123|Occupation par mois|GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=3|1|1|||||||0||||"||||||"|0||||"CTI_NBEXT||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Externes||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|24|CTI_NBJAS_JFSN|||Journées hospitalisation||0|22|10|12||0|||0|0|ACTI000123||GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||||0||||"||||||"|0||||"CTI_NBJAS_JFSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisation||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|23|CTI_NBJFSN|||Journées hospitalisées facturées||0|22|10|12||0|||0|0|ACTI000123|Facturation par domaine d'activité ATIH et par groupe d'activité ATIH|GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||||0||||"||||||"|0||||"CTI_NBJFSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisées facturées||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|14|CTI_NBJSN|||Journées hospitalisés (jour sortie non inclus)||0|22|10|12||0|||0|0|ACTI000123|Occupation par domaine d'activité ATIH et par groupe d'activité ATIH|GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NBJSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisés (jour sortie non inclus)||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|22|CTI_NBJSNS|||Journées hospitalisées|#j|0|22|10|12||0|||0|0|ACTI000123|Facturation par médecin séjour et par groupe d'activité ATIH|GROUPBY=MED&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|0|0|||||||0||||"||||||"|0||||"CTI_NBJSNS||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisées||"|"||"|"#j||"|"0||"|"0||" +ACTI_ESS_1|11|CTI_NBSCE|||Séances||0|22|10|12||0|||0|0|ACTI000123|Occupation par médecin séjour|GROUPBY=MED&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NBSCE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séances||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|2|CTI_NBSEJO|||Séjours||0|22|10|12||0|||0|0|ACTI000123|Séjours par services|GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|9|CTI_NBSORDIR|||Sorties hospitalisés||0|22|10|12||0|||0|0|ACTI000123|Occupation par unité fonctionnelle de mouvement|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NBSORDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties hospitalisés||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|13|CTI_NB_BEBE|||Bébés||0|22|10|12||0|||0|0|ACTI000123|Occupation par CMD|GROUPBY=CMD&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=3|1|1|||||||0||||"||||||"|0||||"CTI_NB_BEBE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Bébés||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|20|CTI_NB_FAC#2|||Sorties période facturées||0|22|10|12||0|||0|0|ACTI000123|Facturation par unité fonctionnelle|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||||0||||"||||||"|0||||"CTI_NB_FAC#2||||||||||||||||"|"SEJOURS||||||||||||||||"|"Sorties période facturées||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|30|CTI_PSEJFEM|||Pourcentage de femmes|#,0%|0|22|10|12||0|||0|0|ACTI000132|Population par âges|GROUPBY=AGE&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE|0|0|||||||0||||"||||||"|0||||"CTI_PSEJFEM||||||||||||||||"|"*CALC||||||||||||||||"|"Pourcentage de femmes||"|"||"|"#,0%||"|"0||"|"0||" +ACTI_ESS_1|1|CTI_SEP|||Séjours||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Séjours||"|"||"|"||"|"||"|"||" +ACTI_ESS_1|7|CTI_SEP|||Occupation||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Occupation||"|"||"|"||"|"||"|"||" +ACTI_ESS_1|16|CTI_SEP|||Taux d'occupation||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Taux d'occupation||"|"||"|"||"|"||"|"||" +ACTI_ESS_1|18|CTI_SEP|||Facturation||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Facturation||"|"||"|"||"|"||"|"||" +ACTI_ESS_1|26|CTI_SEP|||Durée moyenne de séjours||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Durée moyenne de séjours||"|"||"|"||"|"||"|"||" +ACTI_ESS_1|29|CTI_SEP|||Population||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Population||"|"||"|"||"|"||"|"||" +ACTI_ESS_1|6|CTI_SOR_POST_PER|||||0|22|10|12||0|||0|0|ACTI000123|Séjours par mois|GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_SOR_POST_PER||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_1|17|CTI_TX_HO|||||0|22|10|12||0|||0|0|ACTI000124|Localisation par etage et jour calendaire|GROUPBY=ETRA&GROUPBY_2=JOUR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_TOMOIS&TOPERIODE=VIEW.CURRENT_TOMOIS&JSI=2|1|1|||||||0||||"||||||"|0||||"CTI_TX_HO||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|4|CTI_MTFAC_C#4|||C.A. Total||0|22|10|12||0|||0|0|ACTI000018|Activité par type de séjour et unité fonctionnelle|GROUPBY=TSE&GROUPBY_2=UF&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=4&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_MTFAC_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Total||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|2|CTI_NSFACT_CS#4|||Séjours facturés||0|22|10|12||0|||0|0|ACTI000018|Activité par type de séjour et unité fonctionnelle|GROUPBY=TSE&GROUPBY_2=UF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=4&QUELMONTANT=1&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_NSFACT_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours facturés||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|6|CTI_PROTH_MT_FAC#4|||C.A. prothèses||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_PROTHESE_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_PROTH_MT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. prothèses||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|8|CTI_SEH_MT_FAC#4|||C.A. forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_SE_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_SEH_MT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. forfaits SE||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|1|CTI_SEP|||Séjours||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Séjours||"|"||"|"||"|"||"|"||" +ACTI_ESS_2|3|CTI_SEP|||Chiffre d'affaires facturé||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé||"|"||"|"||"|"||"|"||" +ACTI_ESS_2|9|CTI_SHO_MT_FAC#4|||C.A. chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_SHO_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_SHO_MT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. chambres particulières||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|10|CTI_SUPHOT_FAC#4|||C.A. suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_SUPHOT_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_SUPHOT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. suppléments hôteliers||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|5|CTI_T2A_MT_FAC#4|||C.A. T2A||0|22|10|12||0|||0|0|ACTI000018|Activité par spécilité médicale et médecin séjour|GROUPBY=SPM&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_T2A_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_T2A_MT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. T2A||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|7|CTI_UCD_MT_FAC#4|||C.A. médicaments||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_UCD_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_UCD_MT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. médicaments||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_2|11|CTI_URG_MT_FAC#4|||C.A. Urgences||0|22|10|12||0|||0|0|ACTI000018|Activité du dernier mois par mois de sortie|GROUPBY=RUF&GROUPBY_2=MOISS&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_TOMOIS&TOPERIODE=VIEW.CURRENT_TOMOIS&QUELMONTANT=1&QUELLEDATE=4&RUBRIQUE=#LICTI_URG_R&_ONGLET_VAL_VISIBLE=false&_ONGLET_FAV_VISIBLE=false|1|1|||||||0||||"||||||"|0||||"CTI_URG_MT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Urgences||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|21|CTI_MTENC_C#2|||C.A. total||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie CTI|GROUPBY=SOR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2|1|1|||||||0||||"||||||"|0||||"CTI_MTENC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. total||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|11|CTI_MTFAC_C#2|||C.A. total||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie CTI et par service de sortie|GROUPBY=SORCLS04&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2|1|1|||||||0||||"||||||"|0||||"CTI_MTFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. total||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|30|CTI_MT_FAC_TOT#2|||C.A. total||0|22|10|12||0|||0|0|ACTI000018|Activité par mois de sortie|GROUPBY=MOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2|1|1|||||||0||||"||||||"|0||||"CTI_MT_FAC_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. total||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|8|CTI_NB6_JFSN|||Journées hospitalisation facturées||0|22|10|12||0|||0|0|ACTI000123||GROUPBY=MSOR&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE|1|1|||||||0||||"||||||"|0||||"CTI_NB6_JFSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisation facturées||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|7|CTI_NB6_JSN|||Journées hospitalisation||0|22|10|12||0|||0|0|ACTI000123||GROUPBY=SORCLS04&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE|1|1|||||||0||||"||||||"|0||||"CTI_NB6_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisation||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|6|CTI_NBJFSN|||Journées hospitalisées facturées||0|22|10|12||0|||0|0|ACTI000123||GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS08&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE|1|1|||||||0||||"||||||"|0||||"CTI_NBJFSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisées facturées||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|5|CTI_NBJSN|||Journées hospitalisées||0|22|10|12||0|||0|0|ACTI000123||GROUPBY=MED&GROUPBY_2=GHMCLS08&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE|0|0|||||||0||||"||||||"|0||||"CTI_NBJSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisées||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_3|4|CTI_NB_NFAC#2|||Séjours non facturés||0|22|10|12||0|||0|0|ACTI000018|Activité par unité fonctionnelle|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2&QUELMONTANT=ENF|1|0|||||||0||||"||||||"|0||||"CTI_NB_NFAC#2||||||||||||||||"|"SEJOURS||||||||||||||||"|"Séjours non facturés||"|"||"|"||"|"1||"|"0||" +ACTI_ESS_3|2|CTI_NB_SEJ_FAEN#2|||Séjours sortis||0|22|10|12||0|||0|0|ACTI000018|Activité par type de séjour et par service de sortie|GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2&QUELMONTANT=MF-ENF|1|1|||||||0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours sortis||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|29|CTI_NB_SEJ_FAEN#2|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Activité par type de séjour et par service de sortie|GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2|1|1|||||||0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|20|CTI_NB_SEJ_VAL#2|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Activité par type de séjour et par service de sortie|GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2|0|0|||||||0||||"||||||"|0||||"CTI_NB_SEJ_VAL#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_3|10|CTI_NSFAC_C#2|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Activité par domaine d'activité ATIH|GROUPBY=GHMCLS09&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2|1|1|||||||0||||"||||||"|0||||"CTI_NSFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|3|CTI_NSFAC_CS#2|||Séjours facturés||0|22|10|12||0|||0|0|ACTI000018|Activité par type de séjour CTI et service de sortie|GROUPBY=SORCLS04&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=2|1|1|||||||0||||"||||||"|0||||"CTI_NSFAC_CS#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours facturés||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|22|CTI_PROTH_MT_ENC#2|||C.A. prothèses||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation CTI et par rubrique de facturation|GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_PROTHESE_R|1|1|||||||0||||"||||||"|0||||"CTI_PROTH_MT_ENC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. prothèses||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|13|CTI_PROTH_MT_FAC#2|||C.A. prothèses||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation CTI et par médecin séjour|GROUPBY=RUFCLS04&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_PROTHESE_R|1|1|||||||0||||"||||||"|0||||"CTI_PROTH_MT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. prothèses||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|32|CTI_PROTH_MT_TOT#2|||C.A. prothèses||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation CTI et par médecin séjour|GROUPBY=RUFCLS04&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_PROTHESE_R|1|1|||||||0||||"||||||"|0||||"CTI_PROTH_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. prothèses||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|24|CTI_SEH_MT_ENC#2|||C.A. forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SE_R|1|1|||||||0||||"||||||"|0||||"CTI_SEH_MT_ENC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. forfaits SE||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|15|CTI_SEH_MT_FAC#2|||C.A. forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_SE_R|1|1|||||||0||||"||||||"|0||||"CTI_SEH_MT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. forfaits SE||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|34|CTI_SEH_MT_TOT#2|||C.A. forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SE_R|1|1|||||||0||||"||||||"|0||||"CTI_SEH_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. forfaits SE||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|1|CTI_SEP|||Séjours||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Séjours||"|"||"|"||"|"||"|"||" +ACTI_ESS_3|9|CTI_SEP|||Chiffre d'affaires facturé||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé||"|"||"|"||"|"||"|"||" +ACTI_ESS_3|19|CTI_SEP|||Chiffre d'affaires valorisé||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires valorisé||"|"||"|"||"|"||"|"||" +ACTI_ESS_3|28|CTI_SEP|||Chiffre d'affaires facturé et valorisé||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé et valorisé||"|"||"|"||"|"||"|"||" +ACTI_ESS_3|25|CTI_SHO_MT_ENC#2|||C.A. chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie et par rubrique de facturation|GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SHO_R|1|1|||||||0||||"||||||"|0||||"CTI_SHO_MT_ENC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. chambres particulières||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|16|CTI_SHO_MT_FAC#2|||C.A. chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie et par rubrique de facturation|GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_SHO_R|1|1|||||||0||||"||||||"|0||||"CTI_SHO_MT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. chambres particulières||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|35|CTI_SHO_MT_TOT#2|||C.A. chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie et rubrique de facturation|GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SHO_R|1|1|||||||0||||"||||||"|0||||"CTI_SHO_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. chambres particulières||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|26|CTI_SUPHOT_ENC#2|||C.A. suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie et par rubrique de facturation CTI|GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SUPHOT_R|1|1|||||||0||||"||||||"|0||||"CTI_SUPHOT_ENC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. suppléments hôteliers||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|17|CTI_SUPHOT_FAC#2|||C.A. suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie CTI et par rubrique de facturation CTI|GROUPBY=SORCLS04&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_SUPHOT_R|1|1|||||||0||||"||||||"|0||||"CTI_SUPHOT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. suppléments hôteliers||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|36|CTI_SUPHOT_TOT#2|||C.A. suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie et rubrique de facturation CTI|GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_SUPHOT_R|1|1|||||||0||||"||||||"|0||||"CTI_SUPHOT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. suppléments hôteliers||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|12|CTI_T2A_MT_FAC#2|||C.A. T2A||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation CTI et par rubrique de facturation|GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_T2A_R|1|1|||||||0||||"||||||"|0||||"CTI_T2A_MT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. T2A||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|31|CTI_T2A_MT_TOT#2|||C.A. T2A||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation CTI et par rubrique de facturation|GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_T2A_R|1|1|||||||0||||"||||||"|0||||"CTI_T2A_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. T2A||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|23|CTI_UCD_MT_ENC#2|||C.A. médicaments||0|22|10|12||0|||0|0|ACTI000018|Activité par service de sortie et par rubrique de facturation CTI|GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_UCD_R|1|1|||||||0||||"||||||"|0||||"CTI_UCD_MT_ENC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. médicaments||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|14|CTI_UCD_MT_FAC#2|||C.A. médicaments||0|22|10|12||0|||0|0|ACTI000018|Activité par compte et par rubrique de facturation|GROUPBY=CPT&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_UCD_R|1|1|||||||0||||"||||||"|0||||"CTI_UCD_MT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. médicaments||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|33|CTI_UCD_MT_TOT#2|||C.A. médicaments||0|22|10|12||0|||0|0|ACTI000018|Activité par compte et par rubrique de facturation|GROUPBY=CPT&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_UCD_R|1|1|||||||0||||"||||||"|0||||"CTI_UCD_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. médicaments||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|27|CTI_URG_MT_ENC#2|||C.A. urgences||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=1&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_URG_R|1|1|||||||0||||"||||||"|0||||"CTI_URG_MT_ENC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. urgences||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|18|CTI_URG_MT_FAC#2|||C.A. urgences||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=0&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=2&RUBRIQUE=#LICTI_URG_R|1|1|||||||0||||"||||||"|0||||"CTI_URG_MT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. urgences||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_3|37|CTI_URG_MT_TOT#2|||C.A. urgences||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=2&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=2&RUBRIQUE=#LICTI_URG_R|1|1|||||||0||||"||||||"|0||||"CTI_URG_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. urgences||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|17|CTI_MTENC_C#1|||C.A. total||0|22|10|12||0|||0|0|ACTI000018|Activite par mois de sortie|GROUPBY=MOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1|0|0|||||||0||||"||||||"|0||||"CTI_MTENC_C#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. total||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_4|6|CTI_MTFAC_C#1|||C.A. total||0|22|10|12||0|||0|0|ACTI000018|Activite par classe de service de sortie CTI et par service de sortie|GROUPBY=SORCLS04&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=1|1|1|||||||0||||"||||||"|0||||"CTI_MTFAC_C#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. total||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|26|CTI_MT_FAC_TOT#1|||C.A. total||0|22|10|12||0|||0|0|ACTI000018|Activite par mois de sortie|GROUPBY=MOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1|1|1|||||||0||||"||||||"|0||||"CTI_MT_FAC_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. total||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|2|CTI_NB_SEJ_FAEN#1|||Séjours sortis||0|22|10|12||0|||0|0|ACTI000018|Activité par type de séjour et par service de sortie|GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=1&QUELMONTANT=MF-ENF|1|1|||||||0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours sortis||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|25|CTI_NB_SEJ_FAEN#1|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Activite par type de séjour et par service de sortie|GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1|1|1|||||||0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|16|CTI_NB_SEJ_VAL#1|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Activite par type de séjour et par service de sortie|GROUPBY=TSE&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1|0|0|||||||0||||"||||||"|0||||"CTI_NB_SEJ_VAL#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_4|5|CTI_NSFAC_C#1|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Activité par mois d'activité|GROUPBY=MOIA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=1|0|0|||||||0||||"||||||"|0||||"CTI_NSFAC_C#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_4|3|CTI_NSFAC_CS#1|||Séjours facturés||0|22|10|12||0|||0|0|ACTI000018|Activité par type de séjour CTI et par service de sortie|GROUPBY=SORCLS04&GROUPBY_2=SOR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELLEDATE=1|1|1|||||||0||||"||||||"|0||||"CTI_NSFAC_CS#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours facturés||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|18|CTI_PROTH_MT_ENC#1|||C.A. prothèses||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation CTI et par rubrique de facturation|GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_PROTHESE_R|0|0|||||||0||||"||||||"|0||||"CTI_PROTH_MT_ENC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. prothèses||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_4|9|CTI_PROTH_MT_FAC#1|||C.A. prothèses||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation CTI et par médecin séjour|GROUPBY=RUFCLS04&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_PROTHESE_R|1|1|||||||0||||"||||||"|0||||"CTI_PROTH_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. prothèses||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|29|CTI_PROTH_MT_TOT#1|||C.A. prothèses||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation CTI et par médecin séjour|GROUPBY=RUFCLS04&GROUPBY_2=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_PROTHESE_R|1|1|||||||0||||"||||||"|0||||"CTI_PROTH_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. prothèses||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|7|CTI_RUBMED_MT_FAC#1|||C.A. T2A||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation CTI et par rubrique de facturation|GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_RUBMED_R|1|1|||||||0||||"||||||"|0||||"CTI_RUBMED_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. T2A||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|27|CTI_RUBMED_MT_TOT#1|||C.A. T2A||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation CTI et par rubrique de facturation|GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_RUBMED_R|1|1|||||||0||||"||||||"|0||||"CTI_RUBMED_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. T2A||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|20|CTI_SEH_MT_ENC#1|||C.A. forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SE_R|0|0|||||||0||||"||||||"|0||||"CTI_SEH_MT_ENC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. forfaits SE||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_4|11|CTI_SEH_MT_FAC#1|||C.A. forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_SE_R|1|1|||||||0||||"||||||"|0||||"CTI_SEH_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. forfaits SE||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|31|CTI_SEH_MT_TOT#1|||C.A. forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SE_R|1|1|||||||0||||"||||||"|0||||"CTI_SEH_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. forfaits SE||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|1|CTI_SEP|||Séjours||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Séjours||"|"||"|"||"|"||"|"||" +ACTI_ESS_4|4|CTI_SEP|||Chiffre d'affaires facturé||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé||"|"||"|"||"|"||"|"||" +ACTI_ESS_4|15|CTI_SEP|||Chiffre d'affaires valorisé||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires valorisé||"|"||"|"||"|"||"|"||" +ACTI_ESS_4|24|CTI_SEP|||Chiffre d'affaires facturé et valorisé||0|26|0|14|bold|2|0x3399|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé et valorisé||"|"||"|"||"|"||"|"||" +ACTI_ESS_4|21|CTI_SHO_MT_ENC#1|||C.A. chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activite par service de sortie et par rubrique de facturation|GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SHO_R|0|0|||||||0||||"||||||"|0||||"CTI_SHO_MT_ENC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. chambres particulières||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_4|12|CTI_SHO_MT_FAC#1|||C.A. chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activite par service de sortie et par rubrique de facturation|GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_SHO_R|1|1|||||||0||||"||||||"|0||||"CTI_SHO_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. chambres particulières||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|32|CTI_SHO_MT_TOT#1|||C.A. chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activite par service de sortie et rubrique de facturation|GROUPBY=SOR&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SHO_R|1|1|||||||0||||"||||||"|0||||"CTI_SHO_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. chambres particulières||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|8|CTI_SRUBMED_MT_FAC#1|||C.A. rubriques non prises en compte||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation CTI et par rubrique de facturation|GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#SLCTI_RUBMED_R|1|1|||||||0||||"||||||"|0||||"CTI_SRUBMED_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. rubriques non prises en compte||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|28|CTI_SRUBMED_MT_TOT#1|||C.A. rubriques non prises en compte||0|22|10|12||0|||0|0|ACTI000018|Activite par rubrique de facturation CTI et par rubrique de facturation|GROUPBY=RUFCLS04&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#SLCTI_RUBMED_R|1|1|||||||0||||"||||||"|0||||"CTI_SRUBMED_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. rubriques non prises en compte||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|22|CTI_SUPHOT_ENC#1|||C.A. suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activite par service de sortie et rubrique de facturation CTI|GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SUPHOT_R|0|0|||||||0||||"||||||"|0||||"CTI_SUPHOT_ENC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. suppléments hôteliers||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_4|13|CTI_SUPHOT_FAC#1|||C.A. suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activite par service de sortie CTI et par rubrique de facturation CTI|GROUPBY=SORCLS04&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_SUPHOT_R|1|1|||||||0||||"||||||"|0||||"CTI_SUPHOT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. suppléments hôteliers||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|33|CTI_SUPHOT_TOT#1|||C.A. suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activite par service de sortie et rubrique de facturation CTI|GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_SUPHOT_R|1|1|||||||0||||"||||||"|0||||"CTI_SUPHOT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. suppléments hôteliers||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|19|CTI_UCD_MT_ENC#1|||C.A. médicaments||0|22|10|12||0|||0|0|ACTI000018|Activite par service de sortie et par rubrique de facturation CTI|GROUPBY=SOR&GROUPBY_2=RUFCLS04&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_UCD_R|0|0|||||||0||||"||||||"|0||||"CTI_UCD_MT_ENC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. médicaments||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_4|10|CTI_UCD_MT_FAC#1|||C.A. médicaments||0|22|10|12||0|||0|0|ACTI000018|Activite par compte et par rubrique de facturation|GROUPBY=CPT&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_UCD_R|1|1|||||||0||||"||||||"|0||||"CTI_UCD_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. médicaments||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|30|CTI_UCD_MT_TOT#1|||C.A. médicaments||0|22|10|12||0|||0|0|ACTI000018|Activite par compte et par rubrique de facturation|GROUPBY=CPT&GROUPBY_2=RUF&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_UCD_R|1|1|||||||0||||"||||||"|0||||"CTI_UCD_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. médicaments||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|23|CTI_URG_MT_ENC#1|||C.A. urgences||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=1&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_URG_R|1|1|||||||0||||"||||||"|0||||"CTI_URG_MT_ENC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. urgences||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|14|CTI_URG_MT_FAC#1|||C.A. urgences||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=0&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=1&QUELLEDATE=1&RUBRIQUE=#LICTI_URG_R|1|1|||||||0||||"||||||"|0||||"CTI_URG_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. urgences||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_4|34|CTI_URG_MT_TOT#1|||C.A. urgences||0|22|10|12||0|||0|0|ACTI000018|Activité par rubrique de facturation|GROUPBY=RUF&GROUPBY_2=-1&GROUPBY_TAB=TREE&VIEWTAB=2&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&QUELMONTANT=MF-ENF&QUELLEDATE=1&RUBRIQUE=#LICTI_URG_R|1|1|||||||0||||"||||||"|0||||"CTI_URG_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. urgences||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|5|CTI_ADM|||Admissions période||0|22|10|12||0|||0|0|ACTI000123|Séjours par étage|GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_ADM||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Admissions période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|11|CTI_ADMHCP|||Admissions période||0|22|16|12||0|||0|0|ACTI000123|Séjours par étage|GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_ADMHCP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Admissions période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|18|CTI_ADMHDJ|||Admissions période||0|22|16|12||0|||0|0|ACTI000123|Séjours par étage|GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT4'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_ADMHDJ||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Admissions période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|10|CTI_ADMPREHCP|||Admissions avant période||0|22|16|12||0|||0|0|ACTI000123|Séjours par unité fonctionnelle|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_ADMPREHCP||||||||||||||||"|"*CALC||||||||||||||||"|"Admissions avant période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|17|CTI_ADMPREHDJ|||Admissions avant période||0|22|16|12||0|||0|0|ACTI000123|Séjours par unité fonctionnelle|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT4'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_ADMPREHDJ||||||||||||||||"|"*CALC||||||||||||||||"|"Admissions avant période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|4|CTI_ADM_PRE|||Admissions avant période||0|22|10|12||0|||0|0|ACTI000123|Séjours par unité fonctionnelle|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_ADM_PRE||||||||||||||||"|"*CALC||||||||||||||||"|"Admissions avant période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|6|CTI_DEP|||Sorties période||0|22|10|12||0|||0|0|ACTI000123|Séjours par médecin séjour|GROUPBY=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_DEP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|12|CTI_DEPCOMP|||Sorties période||0|22|16|12||0|||0|0|ACTI000123|Séjours par médecin séjour|GROUPBY=MED&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_DEPCOMP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties période||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|14|CTI_DMSCP|||DMS (journées hospitalisés séjours sortis / séjours sortis)|#,0j|0|22|16|12||0|||0|0|ACTI000123|Séjours par services|GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1&MODETRAITEMENT='MT3'|1|1|||||||0||||"||||||"|0||||"CTI_DMSCP||||||||||||||||"|"*CALC||||||||||||||||"|"DMS (journées hospitalisés séjours sortis / séjours sortis)||"|"||"|"#,0j||"|"1||"|"1||" +ACTI_ESS_5|26|CTI_ENTDIRCOM|||Entrées directes||0|22|16|12||0|||0|0|ACTI000123|Occupation par service|GROUPBY=SERCLS02&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'&VIEWTAB=3|0|0|||||||0||||"||||||"|0||||"CTI_ENTDIRCOM||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Entrées directes||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_5|31|CTI_ENTDIRJR|||Entrées directes||0|22|16|12||0|||0|0|ACTI000123|Occupation par service|GROUPBY=SERCLS02&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT4'&VIEWTAB=3|0|0|||||||0||||"||||||"|0||||"CTI_ENTDIRJR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Entrées directes||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_5|28|CTI_NB4_JSNCP|||Nombre de journées hospitalisés||0|22|16|12||0|||0|0|ACTI000123|Occupation par étage|GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'&VIEWTAB=3|0|0|||||||0||||"||||||"|0||||"CTI_NB4_JSNCP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Nombre de journées hospitalisés||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_5|33|CTI_NB4_JSNJR|||Nombre de journées hospitalisés||0|22|16|12||0|||0|0|ACTI000123|Occupation par étage|GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT4'&VIEWTAB=3|0|0|||||||0||||"||||||"|0||||"CTI_NB4_JSNJR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Nombre de journées hospitalisés||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_5|24|CTI_NB6_JSN|||Journées d'hospitalisation||0|22|10|12||0|||0|0|ACTI000123|Occupation par clé budgétaire|GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NB6_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées d'hospitalisation||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|35|CTI_NB6_JSN|||Journées hospitalisation||0|22|10|12||0|||0|0|ACTI000123|Facturation par étage|GROUPBY=ETACLS01&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||||0||||"||||||"|0||||"CTI_NB6_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisation||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|38|CTI_NBDEAD|||Nombre de décès||0|22|10|12||0|||0|0|ACTI000123|Séjours par mode de sortie|GROUPBY=MODE_SORTIE&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&VIEWTAB=0|1|0|||||||0||||"||||||"|0||||"CTI_NBDEAD||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Nombre de décès||"|"||"|"||"|"1||"|"0||" +ACTI_ESS_5|22|CTI_NBENTDIR|||Entrées hospitalisés||0|22|10|12||0|||0|0|ACTI000123|Occupation par service de mouvement|GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NBENTDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Entrées hospitalisés||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|36|CTI_NBJFSN|||Journées hospitalisation facturées||0|22|10|12||0|||0|0|ACTI000123|Facturation par mois|GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||||0||||"||||||"|0||||"CTI_NBJFSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisation facturées||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|13|CTI_NBPRESHCOMP|||Séjours non sortis||0|22|16|12||0|||0|0|ACTI000123|Séjours par jour calendaire (dernier mois)|GROUPBY=JOUR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_MONTH_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_NBPRESHCOMP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours non sortis||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|19|CTI_NBPRESHDJ|||Séjours non sortis||0|22|16|12||0|||0|0|ACTI000123|Séjours par jour calendaire (dernier mois)|GROUPBY=JOUR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_MONTH_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT4'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_NBPRESHDJ||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours non sortis||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|9|CTI_NBSEJCP|||Séjours||0|22|16|12||0|||0|0|ACTI000123|Séjours par services|GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_NBSEJCP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|16|CTI_NBSEJHDJ|||Séjours||0|22|16|12||0|||0|0|ACTI000123|Séjours par service|GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT4'&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_NBSEJHDJ||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|3|CTI_NBSEJO|||Séjours||0|22|10|12||0|||0|0|ACTI000123|Séjours par services|GROUPBY=SERCLS02&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|23|CTI_NBSORDIR|||Sorties hospitalisés||0|22|10|12||0|||0|0|ACTI000123|Occupation par unité fonctionnelle de mouvement|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||||0||||"||||||"|0||||"CTI_NBSORDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties hospitalisés||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|7|CTI_NB_PRESENT|||Séjours non sortis||0|22|10|12||0|||0|0|ACTI000123|Séjours par jours calendaires (dernier mois)|GROUPBY=JOUR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_MONTH_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||||0||||"||||||"|0||||"CTI_NB_PRESENT||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours non sortis||"|"||"|"||"|"1||"|"1||" +ACTI_ESS_5|1|CTI_SEP|||Séjours||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Séjours||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|2|CTI_SEP|||Synthèse||0|22|6|13|bold|2|0x0|0xdddddd|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Synthèse||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|8|CTI_SEP|||Hospitalisation complète||0|22|6|13|bold|2|0x0|0xdddddd|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Hospitalisation complète||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|15|CTI_SEP|||Hospitalisation de jour||0|22|6|13|bold|2|0x0|0xdddddd|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Hospitalisation de jour||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|20|CTI_SEP|||Occupation||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Occupation||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|21|CTI_SEP|||Synthése||0|22|6|13|bold|2|0x0|0xdddddd|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Synthése||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|25|CTI_SEP|||Hospitalisation complète||0|22|6|13|bold|0|0x0|0xdddddd|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Hospitalisation complète||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|30|CTI_SEP|||Hospitalisation de jour||0|22|6|13|bold|0|0x0|0xdddddd|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Hospitalisation de jour||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|34|CTI_SEP|||Facturation||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Facturation||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|37|CTI_SEP|||Population||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Population||"|"||"|"||"|"||"|"||" +ACTI_ESS_5|27|CTI_SORDIRCOM|||Sorties directes||0|22|16|12||0|||0|0|ACTI000123|Occupation par unité fonctionelle|GROUPBY=UF&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'&VIEWTAB=3|0|0|||||||0||||"||||||"|0||||"CTI_SORDIRCOM||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties directes||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_5|32|CTI_SORDIRJR|||Sorties directes||0|22|16|12||0|||0|0|ACTI000123|Occupation par unité fonctionelle|GROUPBY=UF&GROUPBY_2=ETA&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT4'&VIEWTAB=3|0|0|||||||0||||"||||||"|0||||"CTI_SORDIRJR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties directes||"|"||"|"||"|"0||"|"0||" +ACTI_ESS_5|29|CTI_TX_HOCOMP|||Taux d'occupation||0|22|16|12||0|||0|0|ACTI000124|Localisation par étage et jour calendaire|GROUPBY=JOUR&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_MONTH_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&MODETRAITEMENT='MT3'|0|0|||||||0||||"||||||"|0||||"CTI_TX_HOCOMP||||||||||||||||"|"*CALC||||||||||||||||"|"Taux d'occupation||"|"||"|"||"|"0||"|"0||" +CTI_ESS_001|3|CTI_ADM|||Admissions||0|22|10|12||0|||0|0|ACTI000123|Occupation par étage d'occupation|GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||0|0|0||||"||||||"|0||||"CTI_ADM||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Admissions||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|4|CTI_DEP|||Départs||0|22|10|12||0|||0|0|ACTI000056|Occupation par médecin séjour|GROUPBY=MED&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|1|||||0|0|0||||"||||||"|0||||"CTI_DEP||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Départs||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|24|CTI_DMSR|||DMS hospitalisés|#,0j|0|22|10|12||0|||0|0|ACTI000123|Occupation par UF d'occupation|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&JSI=2&VIEWTAB=1|1|0|||||0|0|0||||"||||||"|0||||"CTI_DMSR||||||||||||||||"|"*CALC||||||||||||||||"|"DMS hospitalisés||"|"||"|"#,0j||"|"1||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_001|23|CTI_DMSTOT|||DMS hospitalisation|#,0j|0|22|10|12||0|||0|0|ACTI000123|Occupation par Service d'occupation|GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=1|1|0|||||0|0|0||||"||||||"|0||||"CTI_DMSTOT||||||||||||||||"|"*CALC||||||||||||||||"|"DMS hospitalisation||"|"||"|"#,0j||"|"1||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_001|13|CTI_NB6_JSN|||Journées d'hospitalisation||0|22|10|12||0|||0|0|ACTI000123|Ocucpation par Spécialité et Médecin|PERIODE=VIEW.CURRENT_PERIODE & TOPERIODE=VIEW.CURRENT_TOPERIODE & GROUPBY=SPM & GROUPBY_TAB=TREE|1|1|||||0|0|0||||"||||||"|0||||"CTI_NB6_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées d'hospitalisation||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|8|CTI_NBAMB|||Ambulatoires||0|22|10|12||0|||0|0|ACTI000123|Occupation par étage d'occupation|GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Ambulatoires||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|27|CTI_NBDEAD|||Nombre de décès||0|22|10|12||0|||0|0|ACTI000123|Séjours par Mode de sortie|PERIODE=VIEW.CURRENT_PERIODE & TOPERIODE=VIEW.CURRENT_TOPERIODE & GROUPBY=MODE_SORTIE & GROUPBY_TAB=TAB & _ONGLET_O1_VISIBLE=false & _ONGLET_O2_VISIBLE=false & _ONGLET_O3_VISIBLE=false|1|0|||||0|0|0||||"||||||"|0||||"CTI_NBDEAD||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Nombre de décès||"|"||"|"||"|"1||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_001|6|CTI_NBENTDIR|||Entrées hospitalisés||0|22|10|12||0|||0|0|ACTI000123|Occupation par service d'occupation|GROUPBY=SER&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBENTDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Entrées hospitalisés||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|10|CTI_NBEXT|||Externes||0|22|10|12||0|||0|0|ACTI000123|Occupation par mois|GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=3|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBEXT||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Externes||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|17|CTI_NBFACREF|||Sorties directes et facturations intermédiaires||0|22|10|12||0|||0|0|ACTI000123|Occupation facturée par service de sortie|PERIODE=VIEW.CURRENT_PERIODE & TOPERIODE=VIEW.CURRENT_TOPERIODE & GROUPBY=SOR & GROUPBY_TAB=TAB|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBFACREF||||||||||||||||"|"SEJOURS||||||||||||||||"|"Sorties directes et facturations intermédiaires||"|"||"|"||"|"1||0||||||||||||||"|"1||0||||||||||||||" +CTI_ESS_001|18|CTI_NBFACREF_F|||Dont Facturées||0|22|20|12||0|||0|0|ACTI000123|Occupation facturée par unité fonctionnelle|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBFACREF_F||||||||||||||||"|"SEJOURS||||||||||||||||"|"Dont Facturées||"|"||"|"||"|"1||0||||||||||||||"|"1||0||||||||||||||" +CTI_ESS_001|19|CTI_NBFACREF_NF|||Dont non facturées||0|22|20|12||0|||0|0|ACTI000123|Facturation par étage|GROUPBY=ETA&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBFACREF_NF||||||||||||||||"|"SEJOURS||||||||||||||||"|"Dont non facturées||"|"||"|"||"|"1||0||||||||||||||"|"1||0||||||||||||||" +CTI_ESS_001|21|CTI_NBJAS_FAC|||Journées hospitalisation facturées||0|22|10|12||0|||0|0|ACTI000123|Facturation par mois|GROUPBY=NUMEROMOIS&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBJAS_FAC||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisation facturées||"|"||"|"||"|"1||0||||||||||||||"|"1||0||||||||||||||" +CTI_ESS_001|12|CTI_NBJSN|||Journées des hospitalisés||0|22|10|12||0|||0|0|ACTI000123|Occupation par domaine d'activité ATIH et par groupe d'activité ATIH|GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBJSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées des hospitalisés||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|20|CTI_NBJ_FAC|||Journées hospitalisées facturées||0|22|10|12||0|||0|0|ACTI000123|Facturation par domaine d'activité ATIH et par groupe d'activité ATIH|GROUPBY=GHMCLS09&GROUPBY_2=GHMCLS07&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=2|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBJ_FAC||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées hospitalisées facturées||"|"||"|"||"|"1||0||||||||||||||"|"1||0||||||||||||||" +CTI_ESS_001|9|CTI_NBSCE|||Séances||0|22|10|12||0|||0|0|ACTI000123|Occupation par médecin séjour|GROUPBY=MED&GROUPBY_2=-1&GROUPBY_TAB=TREE&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBSCE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séances||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|2|CTI_NBSEJO|||Séjours||0|22|10|12|0|0|||0|0|ACTI000123|Occupation par Forme d'activité et UF d'occupation|PERIODE=VIEW.CURRENT_PERIODE & TOPERIODE=VIEW.CURRENT_TOPERIODE & GROUPBY=FOA & GROUPBY_TAB=TAB & GROUPBY_2=UF|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|7|CTI_NBSORDIR|||Sorties hospitalisés||0|22|10|12||0|||0|0|ACTI000123|Occupation par UF d'occupation|GROUPBY=UF&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=0|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBSORDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Sorties hospitalisés||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|11|CTI_NB_BEBE|||Bébés||0|22|10|12||0|||0|0|ACTI000123|Occupation par CMD|GROUPBY=CMD&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE&JSI=2&VIEWTAB=3|1|1|||||0|0|0||||"||||||"|0||||"CTI_NB_BEBE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Bébés||"|"||"|"||"|"1||0||0||0||0||0||0||0||0"|"1||0||0||0||0||0||0||0||0" +CTI_ESS_001|26|CTI_PSEJFEM|||Pourcentage de femmes|#,0%|0|22|10|12||0|||0|0|ACTI000132|Pyramide des ages|GROUPBY=AGE&GROUPBY_2=-1&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE|0|0|||||0|0|0||||"||||||"|0||||"CTI_PSEJFEM||||||||||||||||"|"*CALC||||||||||||||||"|"Pourcentage de femmes||"|"||"|"#,0%||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_001|1|CTI_SEP|||File active Séjours||0|26|0|14|bold|2|#c0392b|#cccccc|0|0|||| | |||||||0|||PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE|"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"File active Séjours||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_001|5|CTI_SEP|||Occupation||0|26|0|14|bold|2|#c0392b|#cccccc|0|0|||| | |||||||0|||PERIODE=VIEW.CURRENT_PERIODE&TOPERIODE=VIEW.CURRENT_TOPERIODE|"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Occupation||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_001|14|CTI_SEP|||Taux d'occupation||0|26|0|14|bold|2|#c0392b|#cccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Taux d'occupation||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_001|16|CTI_SEP|||Facturation||0|26|0|14|bold|2|#c0392b|#cccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Facturation||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_001|22|CTI_SEP|||Durée moyenne de séjours||0|26|0|14|bold|2|#c0392b|#cccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Durée moyenne de séjours||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_001|25|CTI_SEP|||Population||0|26|0|14|bold|2|#c0392b|#cccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Population||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_001|15|CTI_TX_HO|||Taux d'occupation (Hospitalisés)||0|22|10|12||0|||0|0|ACTI000124|Localisation par etage d'occupation et jour calendaire|GROUPBY=ETA&GROUPBY_2=JOUR&GROUPBY_TAB=TAB&PERIODE=VIEW.CURRENT_TOMOIS&TOPERIODE=VIEW.CURRENT_TOMOIS&JSI=2|1|1|||||0|0|0||||"||||||"|0||||"CTI_TX_HO||||||||||||||||"|"*CALC||||||||||||||||"|"Taux d'occupation (Hospitalisés)||"|"||"|"||"|"1||0||||||||||||||"|"1||0||||||||||||||" +CTI_ESS_002|22|CTI_CAT_MTD18_FACVAL|||C.A. Soins Moyen||0|22|10|12||0|||0|0|ACTI000018|Activité par Spécialité et Médecin|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CAT_MTD18_FACVAL||||||||||||||||"|"*CALC||||||||||||||||"|"C.A. Soins Moyen||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|17|CTI_EMC|||EMC||0|22|10|12||0|||0|0|ACTI000018|Activité par Spécialité médecin et Médecin|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_EMC||||||||||||||||"|"OCCUPATION||||||||||||||||"|"EMC||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|12|CTI_MTENC_C#1|||C.A. Total||0|22|10|12||0|||0|0|ACTI000018|Valorisation par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=TSE & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_MTENC_C#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Total||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|7|CTI_MTFAC_C#1|||C.A. Total||0|22|10|12||0|||0|0|ACTI000018|Facturation par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_MTFAC_C#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Total||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|19|CTI_MT_FAC_TOT#1|||C.A. Total||0|22|10|12||0|||0|0|ACTI000018|Activité par Domaine et Groupe d'activité|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=GHMCLS09 & +GROUPBY_TAB=TAB & +GROUPBY_2=GHMCLS07 & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_MT_FAC_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Total||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|18|CTI_NB6_JSN|||Journées||0|22|10|12||0|||0|0|ACTI000018|Activité par Rubrique CTI et rubrique|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUFCLS31 & +GROUPBY_3=RUF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB6_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|2|CTI_NBSEJO|||Séjours||0|22|10|12||0|||0|0|ACTI000123|Occupation par forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF"|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|16|CTI_NB_SEJ_FAEN#1|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Activité par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|4|CTI_NB_SEJ_VAL#1|||||0|22|10|12||0|||0|0|ACTI000018|Valorisation par mois|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MOISA & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||||0||||"||||||"|0||||"CTI_NB_SEJ_VAL#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"0||"|"0||" +CTI_ESS_002|11|CTI_NB_SEJ_VAL#1|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Valorisation par Rubrique CTI et Rubrique|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB_SEJ_VAL#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|3|CTI_NSFAC_C#1|||Séjours Facturés||0|22|10|12||0|||0|0|ACTI000018|Facturation par mois|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MOISA & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_NSFAC_C#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours Facturés||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|6|CTI_NSFAC_C#1|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Facturation par Rubrique CTI et Rubrique|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUFCLS31 & +GROUPBY_3=RUF & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NSFAC_C#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|24|CTI_PROTH_MT_TOT#1|||C.A. Prothèses||0|22|10|12||0|||0|0|ACTI000018|Activité Prothèses par Médecin|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_PROTHESE_R"|1|1|||||0|0|0||||"||||||"|0||||"CTI_PROTH_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Prothèses||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|13|CTI_RUBMED_MT_ENC#1|||C.A. Séjour||0|22|10|12||0|||0|0|ACTI000018|Valorisation par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_RUBMED_MT_ENC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Séjour||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|8|CTI_RUBMED_MT_FAC#1|||C.A. Séjour||0|22|10|12||0|||0|0|ACTI000018|Facturation par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_RUBMED_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Séjour||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|20|CTI_RUBMED_MT_TOT#1|||C.A. Séjour||0|22|10|12||0|||0|0|ACTI000018|Activité par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_RUBMED_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Séjour||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|26|CTI_SEH_MT_TOT#1|||C.A. Forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activité SEh par Médecin|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_SE_R"|1|1|||||0|0|0||||"||||||"|0||||"CTI_SEH_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Forfaits SE||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|1|CTI_SEP|||File active facturation||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"File active facturation||"|"||"|"||"|"||"|"||" +CTI_ESS_002|5|CTI_SEP|||Chiffre d'affaires facturé||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé||"|"||"|"||"|"||"|"||" +CTI_ESS_002|10|CTI_SEP|||Chiffre d'affaires valorisé||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires valorisé||"|"||"|"||"|"||"|"||" +CTI_ESS_002|15|CTI_SEP|||Chiffre d'affaires facturé et valorisé||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé et valorisé||"|"||"|"||"|"||"|"||" +CTI_ESS_002|23|CTI_SEP|||Chiffre d'affaires autres prestations||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires autres prestations||"|"||"|"||"|"||"|"||" +CTI_ESS_002|27|CTI_SHO_MT_TOT#1|||C.A. Chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activite C.P. par Rubrique|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_SHO_R"|1|1|||||0|0|0||||"||||||"|0||||"CTI_SHO_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Chambres particulières||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|28|CTI_SUPHOT_TOT#1|||C.A. Suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activité Hotellerie par Rubrique|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_SUPHOT_R"|1|1|||||0|0|0||||"||||||"|0||||"CTI_SUPHOT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Suppléments hôteliers||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|14|CTI_T2A_MT_ENC#1|||C.A. Soins||0|22|10|12||0|||0|0|ACTI000018|Valorisation par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_T2A_MT_ENC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Soins||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_002|9|CTI_T2A_MT_FAC#1|||C.A. Soins||0|22|10|12||0|||0|0|ACTI000018|Facturation par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_T2A_MT_FAC#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Soins||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|21|CTI_T2A_MT_TOT#1|||C.A. Soins||0|22|10|12||0|||0|0|ACTI000018|Activite par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_T2A_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Soins||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_002|25|CTI_UCD_MT_TOT#1|||C.A. Médicaments||0|22|10|12||0|||0|0|ACTI000018|Activité Médicaments par Médecin|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LICTI_UCD_R"|1|1|||||0|0|0||||"||||||"|0||||"CTI_UCD_MT_TOT#1||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Médicaments||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|22|CTI_CAM_SOINS_FACVAL#2|||C.A. Soins Moyen||0|22|10|12||0|||0|0|ACTI000018|Activité par Spécialité et Médecin|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CAM_SOINS_FACVAL#2||||||||||||||||"|"*CALC||||||||||||||||"|"C.A. Soins Moyen||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|17|CTI_EMC|||EMC||0|22|10|12||0|||0|0|ACTI000018|Activité par Spécialité médecin et Médecin|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_EMC||||||||||||||||"|"OCCUPATION||||||||||||||||"|"EMC||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|12|CTI_MTENC_C#2|||C.A. Total||0|22|10|12||0|||0|0|ACTI000018|Valorisation par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=TSE & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_MTENC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Total||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|7|CTI_MTFAC_C#2|||C.A. Total||0|22|10|12||0|||0|0|ACTI000018|Facturation par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_MTFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Total||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|19|CTI_MT_FAC_TOT#2|||C.A. Total||0|22|10|12||0|||0|0|ACTI000018|Activité par Domaine et Groupe d'activité|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=GHMCLS09 & +GROUPBY_TAB=TAB & +GROUPBY_2=GHMCLS07 & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_MT_FAC_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Total||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|18|CTI_NB6_JSN|||Journées||0|22|10|12||0|||0|0|ACTI000018|Activité par Rubrique CTI et rubrique|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUFCLS31 & +GROUPBY_3=RUF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB6_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Journées||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|2|CTI_NBSEJO|||Séjours||0|22|10|12||0|||0|0|ACTI000123|Occupation par forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF"|1|1|||||0|0|0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Séjours||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|16|CTI_NB_SEJ_FAEN#2|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Activité par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|4|CTI_NB_SEJ_VAL#2|||||0|22|10|12||0|||0|0|ACTI000018|Valorisation par mois|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MOISA & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||||0||||"||||||"|0||||"CTI_NB_SEJ_VAL#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"0||"|"0||" +CTI_ESS_003|11|CTI_NB_SEJ_VAL#2|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Valorisation par Rubrique CTI et Rubrique|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUF & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB_SEJ_VAL#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|3|CTI_NSFAC_C#2|||Séjours Facturés||0|22|10|12||0|||0|0|ACTI000018|Facturation par mois|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MOISA & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_NSFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours Facturés||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|6|CTI_NSFAC_C#2|||Séjours||0|22|10|12||0|||0|0|ACTI000018|Facturation par Rubrique CTI et Rubrique|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS04 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUFCLS31 & +GROUPBY_3=RUF & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NSFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|24|CTI_PROTH_MT_TOT#2|||C.A. Prothèses||0|22|10|12||0|||0|0|ACTI000018|Activité Prothèses par Médecin|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S22"|1|1|||||0|0|0||||"||||||"|0||||"CTI_PROTH_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Prothèses||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|13|CTI_RUBMED_MT_ENC#2|||C.A. Séjour||0|22|10|12||0|||0|0|ACTI000018|Valorisation par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_RUBMED_MT_ENC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Séjour||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|8|CTI_RUBMED_MT_FAC#2|||C.A. Séjour||0|22|10|12||0|||0|0|ACTI000018|Facturation par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_RUBMED_MT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Séjour||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|20|CTI_RUBMED_MT_TOT#2|||C.A. Séjour||0|22|10|12||0|||0|0|ACTI000018|Activité par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_RUBMED_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Séjour||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|26|CTI_SEH_MT_TOT#2|||C.A. Forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Activité SEh par Médecin|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S03"|1|1|||||0|0|0||||"||||||"|0||||"CTI_SEH_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Forfaits SE||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|1|CTI_SEP|||File active facturation||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"File active facturation||"|"||"|"||"|"||"|"||" +CTI_ESS_003|5|CTI_SEP|||Chiffre d'affaires facturé||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé||"|"||"|"||"|"||"|"||" +CTI_ESS_003|10|CTI_SEP|||Chiffre d'affaires valorisé||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires valorisé||"|"||"|"||"|"||"|"||" +CTI_ESS_003|15|CTI_SEP|||Chiffre d'affaires facturé et valorisé||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires facturé et valorisé||"|"||"|"||"|"||"|"||" +CTI_ESS_003|23|CTI_SEP|||Chiffre d'affaires autres prestations||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires autres prestations||"|"||"|"||"|"||"|"||" +CTI_ESS_003|27|CTI_SHO_MT_TOT#2|||C.A. Chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Activite C.P. par Rubrique|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S11"|1|1|||||0|0|0||||"||||||"|0||||"CTI_SHO_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Chambres particulières||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|28|CTI_SUPHOT_TOT#2|||C.A. Suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Activité Hotellerie par Rubrique|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S12"|1|1|||||0|0|0||||"||||||"|0||||"CTI_SUPHOT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Suppléments hôteliers||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|14|CTI_T2A_MT_ENC#2|||C.A. Soins||0|22|10|12||0|||0|0|ACTI000018|Valorisation par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_T2A_MT_ENC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Soins||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_003|9|CTI_T2A_MT_FAC#2|||C.A. Soins||0|22|10|12||0|||0|0|ACTI000018|Facturation par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TREE & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_T2A_MT_FAC#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Soins||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|21|CTI_T2A_MT_TOT#2|||C.A. Soins||0|22|10|12||0|||0|0|ACTI000018|Activite par Forme d'activité et UF|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_T2A_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Soins||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_003|25|CTI_UCD_MT_TOT#2|||C.A. Médicaments||0|22|10|12||0|||0|0|ACTI000018|Activité Médicaments par Médecin|"QUELLEDATE=2&PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +_ONGLET_FAC_VISIBLE=false & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S21"|1|1|||||0|0|0||||"||||||"|0||||"CTI_UCD_MT_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Médicaments||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|23|CTI_CACPTENC_C_12M|||C.A. mensuel moyen (12 derniers mois)||0|22|10|12||0|||0|0||||1|1|||||0|0|0||||"||||||"|0||||"CTI_CACPTENC_C_12M||||||||||||||||"|"*CALC||||||||||||||||"|"C.A. mensuel moyen (12 derniers mois)||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|7|CTI_CAM_SOINS_CPT|||C.A. Soins Moyen||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation par Spécialité et Médecin|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=SPM & +GROUPBY_TAB=TAB & +GROUPBY_2=MED & +QUELMONTANT=2 & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_CAM_SOINS_CPT||||||||||||||||"|"*CALC||||||||||||||||"|"C.A. Soins Moyen||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|5|CTI_CA_RUBMED_MT_CPT|||C.A. Séjour||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation par Forme d'activité et UF|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +QUELMONTANT=2 & +RUBRIQUE_CA=#LICTI_RUBMED_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_CA_RUBMED_MT_CPT||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Séjour||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|6|CTI_CA_T2A_CPT|||C.A. Soins||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation par Forme d'activité et UF|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +QUELMONTANT=2 & +RUBRIQUE_CA=#LICTI_T2A_R & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_CA_T2A_CPT||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Soins||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|19|CTI_CCAACTCOMPTA_C|||C.A. Total Activité Comptable||0|22|10|12||0|||0|0||||1|1|||||0|0|0||||"||||||"|0||||"CTI_CCAACTCOMPTA_C||||||||||||||||"|"*CALC||||||||||||||||"|"C.A. Total Activité Comptable||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|20|CTI_CCAACTCOMPTA_SEJOUR_C|||C.A. Séjours Activité comptable||0|22|10|12||0|||0|0|ACTI000104|Activite comptable par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +OPTION1=MNT & +_ONGLET_O2_VISIBLE=false & +_ONGLET_O3_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S01"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CCAACTCOMPTA_SEJOUR_C||||||||||||||||"|"*CALC||||||||||||||||"|"C.A. Séjours Activité comptable||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_004|21|CTI_CCAACTCOMPTA_SOINS_C|||C.A. Soins Activité comptable||0|22|10|12||0|||0|0|ACTI000104|Activité comptable par Forme d'activité et UF|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +OPTION1=MNT & +_ONGLET_O2_VISIBLE=false & +_ONGLET_O3_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_1:S1"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CCAACTCOMPTA_SOINS_C||||||||||||||||"|"*CALC||||||||||||||||"|"C.A. Soins Activité comptable||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_004|17|CTI_CCAENCDER_C|||En-cours du dernier mois||0|22|10|12||0|||0|0|ACTI000104|Ecarts d'estimation par Rubrique|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUCCLS04 & +GROUPBY_TAB=TREE & +GROUPBY_2=RUFCLS31 & +OPTION1=MNT"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CCAENCDER_C||||||||||||||||"|"EN_COURS||||||||||||||||"|"En-cours du dernier mois||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_004|25|CTI_CCAENCDER_C|||En-cours du dernier mois||0|22|10|12||0|||0|0||||0|0|||||0|0|0||||"||||||"|0||||"CTI_CCAENCDER_C||||||||||||||||"|"EN_COURS||||||||||||||||"|"En-cours du dernier mois||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_004|15|CTI_CCAENCRECPRE_C|||Report En-cours||0|22|10|12||0|||0|0|ACTI000104|Activite comptable par Rubrique|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUFCLS31 & +GROUPBY_TAB=TAB & +GROUPBY_2=RUF & +OPTION1=MNT & +_ONGLET_O2_VISIBLE=false & +_ONGLET_O3_VISIBLE=false"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CCAENCRECPRE_C||||||||||||||||"|"EN_COURS||||||||||||||||"|"Report En-cours||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_004|18|CTI_CCAENCVAR_C|||Variation En-cours||0|22|10|12||0|||0|0||||0|0|||||0|0|0||||"||||||"|0||||"CTI_CCAENCVAR_C||||||||||||||||"|"EN_COURS||||||||||||||||"|"Variation En-cours||"|"||"|"||"|"0||0"|"0||0" +CTI_ESS_004|26|CTI_CDELSOLCA_C|||D.M.R.||0|22|10|12||0|||0|0||||1|0|||||0|0|0||||"||||||"|0||||"CTI_CDELSOLCA_C||||||||||||||||"|"*CALC||||||||||||||||"|"D.M.R.||"|"||"|"||"|"1||0"|"0||0" +CTI_ESS_004|12|CTI_CPC_MT_CPT|||C.A. Chambres particulières||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation C.P. par Rubrique|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S11"|1|1|||||0|0|0||||"||||||"|0||||"CTI_CPC_MT_CPT||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Chambres particulières||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|24|CTI_MTSOLCLI_C|||Solde Compte client||0|22|10|12||0|||0|0|ACTI000022|Compte client par Tiers payant|"PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=TTP & +GROUPBY_TAB=TAB & +GROUPBY_2=TPY & +QSD=0 & +QMC=0 & +QMR=0"|1|0|||||0|0|0||||"||||||"|0||||"CTI_MTSOLCLI_C||||||||||||||||"|"CLIENTS_CLINIQUE||||||||||||||||"|"Solde Compte client||"|"||"|"||"|"1||0"|"0||0" +CTI_ESS_004|4|CTI_MTVEN_C#4|||C.A. Total||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation par Compte|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=CPT & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_MTVEN_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Total||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|16|CTI_MTVEN_C#4|||C.A. Ventes||0|22|10|12||0|||0|0||||1|1|||||0|0|0||||"||||||"|0||||"CTI_MTVEN_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Ventes||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|2|CTI_NSCPT_C|||Séjours comptabilisés||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation par Forme d'activité et UF|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=FOA & +GROUPBY_TAB=TAB & +GROUPBY_2=UF & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false"|1|1|||||0|0|0||||"||||||"|0||||"CTI_NSCPT_C||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Séjours comptabilisés||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|9|CTI_PROTH_MT_CPT|||C.A. Prothèses||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation Prothèses par Médecin|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S22"|1|1|||||0|0|0||||"||||||"|0||||"CTI_PROTH_MT_CPT||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Prothèses||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|11|CTI_SEH_MT_CPT|||C.A. Forfaits SE||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation SEh par Médecin|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S03"|1|1|||||0|0|0||||"||||||"|0||||"CTI_SEH_MT_CPT||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Forfaits SE||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|1|CTI_SEP|||Séjours||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Séjours||"|"||"|"||"|"||"|"||" +CTI_ESS_004|3|CTI_SEP|||Chiffre d'affaires comptabilisé||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires comptabilisé||"|"||"|"||"|"||"|"||" +CTI_ESS_004|8|CTI_SEP|||Chiffre d'affaires autres prestations||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Chiffre d'affaires autres prestations||"|"||"|"||"|"||"|"||" +CTI_ESS_004|14|CTI_SEP|||Comptabilisation et En-cours||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Comptabilisation et En-cours||"|"||"|"||"|"||"|"||" +CTI_ESS_004|22|CTI_SEP|||Délai Moyen de Règlement||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Délai Moyen de Règlement||"|"||"|"||"|"||"|"||" +CTI_ESS_004|13|CTI_SUPHOT_CA_CPT|||C.A. Suppléments hôteliers||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation Hotellerie par Rubrique|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=RUF & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S12"|1|1|||||0|0|0||||"||||||"|0||||"CTI_SUPHOT_CA_CPT||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Suppléments hôteliers||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_004|10|CTI_UCD_MT_CPT|||C.A. Médicaments||0|22|10|12||0|||0|0|ACTI000018|Comptabilisation Médicaments par Médecin|"QUELLEDATE=4 & +PERIODE=VIEW.CURRENT_PERIODE & +TOPERIODE=VIEW.CURRENT_TOPERIODE & +GROUPBY=MED & +GROUPBY_TAB=TAB & +QUELMONTANT=2 & +_ONGLET_VAL_VISIBLE=false & +_ONGLET_FAV_VISIBLE=false & +_ONGLET_TIE_VISIBLE=false & +RUBRIQUE=#LSCTI_RUB_2:S21"|1|1|||||0|0|0||||"||||||"|0||||"CTI_UCD_MT_CPT||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"C.A. Médicaments||"|"||"|"||"|"1||0"|"1||0" +CTI_ESS_006|10|CTI_CA_FACT_VAL|||||0|0|0|0||0|||0|0|ACTI000057|Suivi par Médecin (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=MED & VIEWTAB = 1"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CA_FACT_VAL||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|9|CTI_CA_FAC_ETAB|||||0|0|0|0||0|||0|0|ACTI000057|Suivi par Domaine et groupe d'activité (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=GHMCLS09 & GROUPBY_2 = GHMCLS07 & VIEWTAB=1"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CA_FAC_ETAB||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|13|CTI_CA_NON_EXP_ETAB|||||0|0|0|0||0|||0|0|ACTI000057|Suivi par niveau de forme d'activité (Niveau 1) (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=FOACLS01 & VIEWTAB=3"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CA_NON_EXP_ETAB||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|16|CTI_CA_NON_SOL|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par mois (Cumul dernier mois)|"ALIAS_PERIODE=CUM_LAST_MONTH& +GROUPBY=NUMEROMOIS & VIEWTAB=4"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CA_NON_SOL||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|5|CTI_CA_VAL_ETAB|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délai par mois (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=NUMEROMOIS & VIEWTAB=2"|0|0|||||0|0|0||||"||||||"|0||||"CTI_CA_VAL_ETAB||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|19|CTI_DELAIFAC|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par mois (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=NUMEROMOIS"|0|0|||||0|0|0||||"||||||"|0||||"CTI_DELAIFAC||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|20|CTI_DELAISOL|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par médecin (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=MED"|0|0|||||0|0|0||||"||||||"|0||||"CTI_DELAISOL||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|18|CTI_DEL_GROUPAGE|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par mois (Cumul dernier mois)|"ALIAS_PERIODE=CUM_LAST_MONTH& +GROUPBY=NUMEROMOIS"|0|0|||||0|0|0||||"||||||"|0||||"CTI_DEL_GROUPAGE||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|7|CTI_NBSEJ_SOR|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délai par UF (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=UFS&VIEWTAB = 1"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NBSEJ_SOR||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|8|CTI_NB_FACTURES|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par Forme d'activité et UF (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=FOA&GROUPBY_2=UFS & VIEWTAB = 1"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB_FACTURES||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|3|CTI_NB_GP_NFAC|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par médecin (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=MED"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB_GP_NFAC||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|2|CTI_NB_NGR_SOR|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par mois (Cumul dernier jour)|"ALIAS_PERIODE=CUM_NOW& +GROUPBY=NUMEROMOIS"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB_NGR_SOR||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|4|CTI_NB_NONFAC|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par mois (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=NUMEROMOIS"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB_NONFAC||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|12|CTI_NB_NON_EXP|||||0|0|0|0||0|||0|0|ACTI000057|Suivi par niveau de forme d'activité (Niveau 2) (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=FOACLS02 & VIEWTAB =3"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB_NON_EXP||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|15|CTI_NB_NON_SOLD|||||0|0|0|0||0|||0|0|ACTI000057|Suivi des délais par Tiers payant (Cumul dernière semaine)|"ALIAS_PERIODE=CUM_LAST_WEEK & +GROUPBY=TPY & VIEWTAB = 4"|0|0|||||0|0|0||||"||||||"|0||||"CTI_NB_NON_SOLD||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"0||0||||||||||||||"|"0||0||||||||||||||" +CTI_ESS_006|1|CTI_SEP|||Reste a facturer||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Reste a facturer||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_006|6|CTI_SEP|||Facturation||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Facturation||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_006|11|CTI_SEP|||Expédition||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Expédition||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_006|14|CTI_SEP|||Solde||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Solde||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_ESS_006|17|CTI_SEP|||Délai de traitement||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Délai de traitement||"|"||"|"||"|"||||||||||||||||"|"||||||||||||||||" +CTI_EX1|17|CTI_MTCOM_H#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTCOM_H#4||||||||||||||||"|"FACTURATION_HONORAIRE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|22|CTI_MTENC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTENC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|20|CTI_MTFAC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|16|CTI_MTVEN_C#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTVEN_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|24|CTI_MT_FAC_TOT#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MT_FAC_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|6|CTI_NBAMB|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|3|CTI_NBENTDIR|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBENTDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|7|CTI_NBEXT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBEXT||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|5|CTI_NBJSN|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBJSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|8|CTI_NBSCE|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSCE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|2|CTI_NBSEJO|||Nombre de séjours Période||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Nombre de séjours Période||"|"||"|"||"|"||"|"||" +CTI_EX1|4|CTI_NBSORDIR|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSORDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|13|CTI_NB_GROU#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_GROU#2||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|12|CTI_NB_NGROU|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_NGROU||||||||||||||||"|"SEJOURS||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|11|CTI_NB_SEJ_FAEN#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|23|CTI_NB_SEJ_FAEN#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|21|CTI_NB_SEJ_VAL#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_SEJ_VAL#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|19|CTI_NSFAC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|15|CTI_NSFAC_CS#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX1|1|CTI_SEP|||Occupation||0|0|10|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Occupation||"|"||"|"||"|"||"|"||" +CTI_EX1|10|CTI_SEP|||Etat des dossiers||0|0|10|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Etat des dossiers||"|"||"|"||"|"||"|"||" +CTI_EX1|14|CTI_SEP|||Activité Etablissement Date de Vente||0|0|10|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Etablissement Date de Vente||"|"||"|"||"|"||"|"||" +CTI_EX1|18|CTI_SEP|||Activité Clinique||0|0|10|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Clinique||"|"||"|"||"|"||"|"||" +CTI_EX1|9|CTI_TX_HOAM|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_TX_HOAM||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|40|CTI_DMSR|||||0|0|0|0|normal|0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_DMSR||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|41|CTI_DMSTOT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_DMSTOT||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|25|CTI_NB2_JSN|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB2_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|30|CTI_NB2_JSN|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB2_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|26|CTI_NB5_JSN|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB5_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|3|CTI_NBAMB|||||0|0|0|0|normal|0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|11|CTI_NBAMB|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|24|CTI_NBAMB|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|36|CTI_NBAMB|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|27|CTI_NBCHPO|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBCHPO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|2|CTI_NBENTDIR|||||0|0|0|0|normal|0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBENTDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|6|CTI_NBENT_SA|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBENT_SA||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|7|CTI_NBENT_SAE|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBENT_SAE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|8|CTI_NBENT_SAES|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBENT_SAES||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|4|CTI_NBEXT|||||0|0|0|0|normal|0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBEXT||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|12|CTI_NBEXT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBEXT||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|23|CTI_NBJSN|||||0|0|0|0|normal|0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBJSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|33|CTI_NBJSN|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBJSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|31|CTI_NBPLACES|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBPLACES||||||||||||||||"|"PLACES||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|34|CTI_NBPLACES_H|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBPLACES_H||||||||||||||||"|"PLACES||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|5|CTI_NBSCE|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSCE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|13|CTI_NBSCE|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSCE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|22|CTI_NBSEJO|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|10|CTI_NBSORDIR|||||0|0|0|0|normal|0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSORDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|14|CTI_NBSOR_SA|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSOR_SA||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|16|CTI_NBSOR_SAE|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSOR_SAE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|17|CTI_NBSOR_SAES|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSOR_SAES||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|20|CTI_NBURG|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBURG||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|19|CTI_NB_BEBE|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_BEBE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|15|CTI_RAT_AMB_END|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RAT_AMB_END||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|1|CTI_SEP|||Entrées||0|0|0|14|bold|0||0xffcc33|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Entrées||"|"||"|"||"|"||"|"||" +CTI_EX2|9|CTI_SEP|||Sorties||0|0|0|14|bold|0||0xffcc33|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Sorties||"|"||"|"||"|"||"|"||" +CTI_EX2|18|CTI_SEP|||Compteurs Divers||0|0|0|14|bold|0||0xffcc33|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Compteurs Divers||"|"||"|"||"|"||"|"||" +CTI_EX2|21|CTI_SEP|||Journées||0|0|0|14|bold|0||0xffcc33|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Journées||"|"||"|"||"|"||"|"||" +CTI_EX2|29|CTI_SEP|||Taux d'occupation||0|0|0|14|bold|0||0xffcc33|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Taux d'occupation||"|"||"|"||"|"||"|"||" +CTI_EX2|39|CTI_SEP|||DMS||0|0|0|14|bold|0||0xffcc33|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"DMS||"|"||"|"||"|"||"|"||" +CTI_EX2|28|CTI_TXCHP_NBJ|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_TXCHP_NBJ||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|38|CTI_TX_AM|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_TX_AM||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|35|CTI_TX_HO|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_TX_HO||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX2|32|CTI_TX_HOAM|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_TX_HOAM||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|28|CTI_CAMFAC_CS|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_CAMFAC_CS||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|13|CTI_CAMFAC_DC|||CA Moyen Facturé||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_CAMFAC_DC||||||||||||||||"|"*CALC||||||||||||||||"|"CA Moyen Facturé||"|"||"|"||"|"||"|"||" +CTI_EX3|14|CTI_MTCOM_H#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTCOM_H#4||||||||||||||||"|"FACTURATION_HONORAIRE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|16|CTI_MTC_CHDV_FAC|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTC_CHDV_FAC||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|30|CTI_MTENC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTENC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|19|CTI_MTFAC1_C#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC1_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|23|CTI_MTFAC2_C#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC2_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|27|CTI_MTFAC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|12|CTI_MTVEN_C#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTVEN_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|32|CTI_MT_FAC_TOT#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MT_FAC_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|6|CTI_NBAMB|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|3|CTI_NBENTDIR|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBENTDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|7|CTI_NBEXT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBEXT||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|5|CTI_NBJSN|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBJSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|8|CTI_NBSCE|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSCE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|2|CTI_NBSEJO|||Nombre de séjours Période||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Nombre de séjours Période||"|"||"|"||"|"||"|"||" +CTI_EX3|4|CTI_NBSORDIR|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSORDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|31|CTI_NB_SEJ_FAEN#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|29|CTI_NB_SEJ_VAL#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_SEJ_VAL#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|18|CTI_NSFAC1_CS#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC1_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|22|CTI_NSFAC2_CS#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC2_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|26|CTI_NSFAC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|11|CTI_NSFAC_CS#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|20|CTI_RAT_AMB1_CAT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RAT_AMB1_CAT||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|24|CTI_RAT_AMB2_CAT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RAT_AMB2_CAT||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|15|CTI_RAT_CAH_CAL|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RAT_CAH_CAL||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX3|1|CTI_SEP|||Occupation||0|0|0|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Occupation||"|"||"|"||"|"||"|"||" +CTI_EX3|10|CTI_SEP|||Activité Etablissement Date de Vente||0|0|0|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Etablissement Date de Vente||"|"||"|"||"|"||"|"||" +CTI_EX3|17|CTI_SEP|||Activité Hospitalisés : Date de Vente||0|0|0|14|bold|0||0xffcc33|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Hospitalisés : Date de Vente||"|"||"|"||"|"||"|"||" +CTI_EX3|21|CTI_SEP|||Activité Ambulatoire : Date de Vente||0|0|0|14|bold|0||0xffcc33|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Ambulatoire : Date de Vente||"|"||"|"||"|"||"|"||" +CTI_EX3|25|CTI_SEP|||Activité Clinique Facturée et Valorisée : Date de Sortie||0|0|0|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Clinique Facturée et Valorisée : Date de Sortie||"|"||"|"||"|"||"|"||" +CTI_EX3|9|CTI_TX_HOAM|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_TX_HOAM||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|47|CTI_CAMFAC1_DC|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_CAMFAC1_DC||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|51|CTI_CAMFAC2_DC|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_CAMFAC2_DC||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|55|CTI_CAMFAC5_DC|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_CAMFAC5_DC||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|39|CTI_CAMFAC_CS|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_CAMFAC_CS||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|19|CTI_CAMFAC_DC|||CA Moyen Facturé||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_CAMFAC_DC||||||||||||||||"|"*CALC||||||||||||||||"|"CA Moyen Facturé||"|"||"|"||"|"||"|"||" +CTI_EX4|56|CTI_DIA_MT_FAC#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_DIA_MT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|14|CTI_DMSR|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_DMSR||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|15|CTI_DMSTOT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_DMSTOT||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|21|CTI_MTCOM_H#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTCOM_H#4||||||||||||||||"|"FACTURATION_HONORAIRE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|23|CTI_MTC_CHDV_FAC|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTC_CHDV_FAC||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|41|CTI_MTENC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTENC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|46|CTI_MTFAC1_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC1_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|26|CTI_MTFAC1_C#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC1_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|50|CTI_MTFAC2_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC2_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|30|CTI_MTFAC2_C#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC2_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|54|CTI_MTFAC5_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC5_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|34|CTI_MTFAC5_C#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC5_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|38|CTI_MTFAC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|18|CTI_MTVEN_C#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MTVEN_C#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|43|CTI_MT_FAC_TOT#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_MT_FAC_TOT#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|10|CTI_NB2_JSN|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB2_JSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|6|CTI_NBAMB|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBAMB||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|3|CTI_NBENTDIR|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBENTDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|7|CTI_NBEXT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBEXT||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|5|CTI_NBJSN|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBJSN||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|11|CTI_NBPLACES|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBPLACES||||||||||||||||"|"PLACES||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|8|CTI_NBSCE|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSCE||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|2|CTI_NBSEJO|||Nombre de séjours Période||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSEJO||||||||||||||||"|"OCCUPATION||||||||||||||||"|"Nombre de séjours Période||"|"||"|"||"|"||"|"||" +CTI_EX4|4|CTI_NBSORDIR|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NBSORDIR||||||||||||||||"|"OCCUPATION||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|42|CTI_NB_SEJ_FAEN#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_SEJ_FAEN#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|40|CTI_NB_SEJ_VAL#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NB_SEJ_VAL#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|45|CTI_NSFAC1_CS#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC1_CS#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|25|CTI_NSFAC1_CS#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC1_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|49|CTI_NSFAC2_CS#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC2_CS#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|29|CTI_NSFAC2_CS#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC2_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|53|CTI_NSFAC5_CS#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC5_CS#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|33|CTI_NSFAC5_CS#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC5_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|37|CTI_NSFAC_C#2|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC_C#2||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|17|CTI_NSFAC_CS#4|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_NSFAC_CS#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|27|CTI_RAT_AMB1_CAT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RAT_AMB1_CAT||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|31|CTI_RAT_AMB2_CAT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RAT_AMB2_CAT||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|35|CTI_RAT_AMB5_CAT|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RAT_AMB5_CAT||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|22|CTI_RAT_CAH_CAL|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RAT_CAH_CAL||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_EX4|20|CTI_RUBMED_MT_FAC#4||Montant CA (Hors Pdts refac.)|Montant CA (Hors Produits refacturables)||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_RUBMED_MT_FAC#4||||||||||||||||"|"FACTURATION_CLINIQUE||||||||||||||||"|"Montant CA (Hors Produits refacturables)||"|"||"|"||"|"||"|"||" +CTI_EX4|1|CTI_SEP|||Occupation.||0|0|0|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Occupation.||"|"||"|"||"|"||"|"||" +CTI_EX4|9|CTI_SEP|||Taux d'occupation||0|0|10|10|bold|0||0xffff66|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Taux d'occupation||"|"||"|"||"|"||"|"||" +CTI_EX4|13|CTI_SEP|||DMS||0|0|10|10|bold|0||0xffff66|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"DMS||"|"||"|"||"|"||"|"||" +CTI_EX4|16|CTI_SEP|||Activité Etablissement Date de Vente||0|0|0|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Etablissement Date de Vente||"|"||"|"||"|"||"|"||" +CTI_EX4|24|CTI_SEP|||Activité Hospitalisés : Date de Vente||0|0|10|10|bold|0||0xffff66|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Hospitalisés : Date de Vente||"|"||"|"||"|"||"|"||" +CTI_EX4|28|CTI_SEP|||Activité Ambulatoire : Date de Vente||0|0|10|10|bold|0||0xffff66|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Ambulatoire : Date de Vente||"|"||"|"||"|"||"|"||" +CTI_EX4|32|CTI_SEP|||Activité Séances : Date de vente||0|0|10|10|bold|0||0xffff66|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Séances : Date de vente||"|"||"|"||"|"||"|"||" +CTI_EX4|36|CTI_SEP|||Activité Clinique Facturée et Valorisée : Date de Sortie.||0|0|0|14|bold|0||0xffcc00|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Clinique Facturée et Valorisée : Date de Sortie.||"|"||"|"||"|"||"|"||" +CTI_EX4|44|CTI_SEP|||Activité Hospitalisés : Date de Sortie||0|0|10|10|bold|0||0xffff66|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Hospitalisés : Date de Sortie||"|"||"|"||"|"||"|"||" +CTI_EX4|48|CTI_SEP|||Activité Ambulatoire : Date de sortie||0|0|10|10|bold|0||0xffff66|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Activité Ambulatoire : Date de sortie||"|"||"|"||"|"||"|"||" +CTI_EX4|52|CTI_SEP|||Actvité Séances : Date de sortie||0|0|10|10|bold|0||0xffff66|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Actvité Séances : Date de sortie||"|"||"|"||"|"||"|"||" +CTI_EX4|12|CTI_TX_HOAM|||||0|0|0|0||0|||0|0|||| | |||||||0||||"||||||"|0||||"CTI_TX_HOAM||||||||||||||||"|"*CALC||||||||||||||||"|"||"|"||"|"||"|"||"|"||" +CTI_PF_AGG|1|CTI_SEP|||Portfolio CTI||0|26|0|14|bold|2|0xc0392b|0xcccccc|0|0|||| | |||||||0||||"||||||"|0||||"CTI_SEP||||||||||||||||"|"SEP||||||||||||||||"|"Portfolio CTI||"|"||"|"||"|"||"|"||" diff --git a/db/data2/dbdata_activite_t_severites_cti.csv b/db/data2/dbdata_activite_t_severites_cti.csv new file mode 100644 index 0000000..48b12f9 --- /dev/null +++ b/db/data2/dbdata_activite_t_severites_cti.csv @@ -0,0 +1,10 @@ +keepoid|severite_code|severite_texte +0|**|Non renseignee +1|1|Sévérité 1 +8|8|Non PMSI +2|ABCDE|Sévérité ABCDE +3|J|Sévérité J +4|S|séances +5|T|Sévérité T +6|Z|Sévérité Z +7|s|DS > 2 nuits diff --git a/db/data2/dbdata_activite_t_traitement_epmsi.csv b/db/data2/dbdata_activite_t_traitement_epmsi.csv new file mode 100644 index 0000000..b70d5e4 --- /dev/null +++ b/db/data2/dbdata_activite_t_traitement_epmsi.csv @@ -0,0 +1,11 @@ +keepoid|code|texte +0|**|Non renseigné +41|EXHAD|PMSI HAD Transmis +11|EXMCO|PMSI MCO Transmis +31|EXPSY|PMSI PSY Transmis +21|EXSSR|PMSI SSR Transmis +5|HPMSI|HORS PMSI +40|NEXHAD|PMSI HAD Non Transmis +10|NEXMCO|PMSI MCO Non Transmis +30|NEXPSY|PMSI PSY Non Transmis +20|NEXSSR|PMSI SSR Non Transmis diff --git a/db/data2/dbdata_activite_t_type_hospi_pmsi.csv b/db/data2/dbdata_activite_t_type_hospi_pmsi.csv new file mode 100644 index 0000000..9fd09b0 --- /dev/null +++ b/db/data2/dbdata_activite_t_type_hospi_pmsi.csv @@ -0,0 +1,11 @@ +oid|code|texte +1|11|MCO hospitalisés +1|12|MCO Ambulatoires +1|15|MCO Séances +1|21|SSR hospitalisation complète +1|22|SSR hospitalisation partiel +1|24|SSR Autres +1|30|Externes +1|31|PSY hospitalisation complète +1|32|PSY hospitalisation partiel +1|41|HAD diff --git a/db/data2/dbdata_activite_t_type_sejour.csv b/db/data2/dbdata_activite_t_type_sejour.csv new file mode 100644 index 0000000..22970e9 --- /dev/null +++ b/db/data2/dbdata_activite_t_type_sejour.csv @@ -0,0 +1,7 @@ +oid|code|texte +1|0|Non renseigné +1|1|Hospitalisé +1|2|Ambulatoires +1|3|Externes +1|5|Séances +1|9|Fictifs diff --git a/db/data2/dbdata_activite_t_types_gmt.csv b/db/data2/dbdata_activite_t_types_gmt.csv new file mode 100644 index 0000000..a042953 --- /dev/null +++ b/db/data2/dbdata_activite_t_types_gmt.csv @@ -0,0 +1,5 @@ +code|label|description +hc_forfaitisable|GMT forfaitisable (Hospitalisation complète)|Au moins 50% des séjours d’un même GME (Groupe Médico-Économique) se répartissent sur une période continue de 3 semaines. +hc_non_forfaitisable|GMT non forfaitisable (Hospitalisation complète)|Le GME ne respecte pas la règle de la forfaitisation (voir description du type_gmt 'hc_forfaitisable'). +hc_sans_zf|GMT sans zone forfaitaire (Hospitalisation Complète) |GMT où DZF = FZF = 7 (GMT en 7XXX des séjours en HC post 90 jours, en 8XXX des séjours < 8j avec transfert, décès ou mutation) ou DZF = FZF = 90 (GMT pédiatrie ou soins palliatifs) +hp_hebdomadaire|GMT hebdomadaire hospitalisation partielle|GMT récupéré des RHA des séjours en hospitalisation partielle. diff --git a/db/data2/dbdata_activite_t_vue_parametre.csv b/db/data2/dbdata_activite_t_vue_parametre.csv new file mode 100644 index 0000000..414e68b --- /dev/null +++ b/db/data2/dbdata_activite_t_vue_parametre.csv @@ -0,0 +1,30 @@ +oid|code|texte|data_code|data_entete|data_format|data_description|position_ratio|rang +1|L_DATA_101|CTI : Séjours - C.A Total|FAVNBS@MTFACENC@MMTFACENC@0@0@0@0@0@0@0@0@0@0@0@0|Séjours total@C.A total@C.A moyen total|#@#E@#E|Séjours facturés et valorisés@C.A facturé et valorisé@C.A Moyen Facturé et valorisé@0@0@0@0@0@0@0@0@0@0@0@0|000000000000000|0 +1|L_DATA_1|CTI : EMC - C.A Total |FAVEMC@MTFACENC@MMFPVEMC@0@0@0@0@0@0@0@0@0@0@0@0|EMC total@C.A total@C.A moyen total EMC|#@#E@#E|Equivalent Malade Complet Facturé ou Valorisé
Calculé d'après l'occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@0@0@0@0@0@0@0@0@0@0@0@0|000000000000000|0 +1|L_DATA_2|CTI : EMC - C.A Total - Journées|FAVEMC@MTFACENC@MMFPVEMC@FAVNBJ@0@0@0@0@0@0@0@0@0@0@0|EMC total@C.A total@C.A moyen total EMC@Nombre journées total|#@#E@#E@#|Equivalent Malade Complet Facturé ou Valorisé
Calculé d'après l'occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d'après l'occupation des dossiers facturés ou valorisés sur la base de
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@0@0@0@0@0@0@0@0@0@0@0|000000000000000|0 +1|L_DATA_3|CTI : EMC - C.A Total - Journées - C.A ( HC & HJ )|FAVEMC@MTFACENC@MMFPVEMC@FAVNBJ@FAVNBEMCHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@0@0@0@0@0|EMC total@C.A total@C.A moyen total EMC@Nombre journées total@Nombre EMC HC@C.A total HC@C.A moyen total HC@Séjours HJ@C.A total HJ@C.A moyen total HJ@0@0@0@0@0|#@#E@#E@#@#@#E@#E@#@#E@#E|"Equivalent Malade Complet Facturé ou Valorisé
Calculé d'après l'occupation des dossiers facturés ou Valorisés sur la base de
- + 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- + 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- + 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d'après l'occupation des dossiers facturés ou valorisés sur la base de
- +Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- + Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- + Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@Nombre EMC en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation complète HC@CA Moyen EMC facturé et valorisé en Hospitalisation complète HC@Nombre de séjours en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation de jour HJ@CA moyen facturé et valorisé en Hospitalisation de jour HJ@0@0@0@0@0"|000000000000000|0 +1|L_DATA_3_OCC|CTI : Facturation : Nombre Patients/ Séjour/EMC - Sorties factuées - Journées facturées|NBP@NSEJ@EMC@NSFAC@NSNFAC@NJNS@JRNSORFAC@NJNAS@JRNSORHONFAC@0@0@0@0@0@0|Nombre patients@Nombre séjours@EMC@Sor fac@Sor non fac@Journées sortis hospi@Journées fac@Jou+A+S@Jou+A+S fac|#@#@#@#@#@#j@#j@#j@#j|Nombre patients@Nombre séjours@Equivalent malade complet@Nombre sorties facturées@Nombre sorties non facturées@Durée séjours sortis (hospitalisés)@Nombre journées hospitalisés facturées@Nombre journées + ambulatoires + séances (hospitalisation)@Nombre journées d'hospitalisation facturées|000000000000000|3 +1|L_DATA_4|CTI : EMC - C.A Total - Journées - C.A ( HC & HJ & Autres)|FAVEMC@MTFACENC@MMFPVEMC@FAVNBJ@FAVNBEMCHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@FAVNBSHA@FAVMTTHA@FAVCAMAU@0@0|EMC total@C.A total@C.A moyen total EMC@Nombre journées total@Nombre EMC HC@C.A total HC@C.A moyen total HC@Séjours HJ@C.A total HJ@C.A moyen total HJ@Séjours AUTRES@C.A total Autres@C.A moyen total Autres@0@0|#@#E@#E@#@#@#E@#E@#@#E@#E@#@#E@#E|"Equivalent Malade Complet Facturé ou Valorisé
Calculé d'après l'occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d'après l'occupation des dossiers facturés ou valorisés sur la base de
- +Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- + Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- + Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@Nombre EMC en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation complète HC@CA Moyen EMC facturé et valorisé en Hospitalisation complète HC@Nombre de séjours en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation de jour HJ@CA moyen facturé et valorisé en Hospitalisation de jour HJ@Nombre de séjours en Hospitalisation autre que HC ou HJ@Chiffre d'affaires par Séjour en Hospitalisation autre que HC ou HJ
Hospitalisation autre que HC ou HJ = Types séjour CTI Externes@Chiffre d'affaires Moyen par Séjour en Hospitalisation autre que HC ou HJ
Hospitalisation autre que HC ou HJ = Types séjour CTI Externes@0@0"|000000000000000|0 +1|L_DATA_5|CTI : EMC - C.A Total - Journées - C.A ( HC & HJ & Autres) - DMS|FAVEMC@MTFACENC@MMFPVEMC@FAVNBJ@FAVNBEMCHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@FAVNBSHA@FAVMTTHA@FAVCAMAU@FAVDMS@0|EMC total@C.A total@C.A moyen total EMC@Nb journées total@Nombre EMC HC@C.A total HC@C.A moyen total HC@Séjours HJ@C.A total HJ@C.A moyen total HJ@Séjours AUTRES@C.A total Autres@C.A moyen total Autres@DMS hospitalisés|#@#E@#E@#@#@#E@#E@#@#E@#E@#@#E@#E@#,00j|Equivalent Malade Complet Facturé ou Valorisé
Calculé d'après l'occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@C.A facturé et valorisé@C.A Moyen EMC Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d'après l'occupation des dossiers comptabilisés ou valorisés sur la base de
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@Nombre EMC en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation complète HC@CA Moyen EMC facturé et valorisé en Hospitalisation complète HC@Nombre de séjours en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation de jour HJ@CA moyen facturé et valorisé en Hospitalisation de jour HJ@Nombre de séjours en Hospitalisation autre que HC ou HJ@Chiffre d'affaires par Séjour en Hospitalisation autre que HC ou HJ
Hospitalisation autre que HC ou HJ = Types séjour CTI Externes@Chiffre d'affaires Moyen par Séjour en Hospitalisation autre que HC ou HJ
Hospitalisation autre que HC ou HJ = Types séjour CTI Externes@Rapport entre le nombre de journées de présence des séjours hospitalisés sortis et le nombre de séjours hospitalisés sortis@0|000000000000000|0 +1|L_DATA_6|CTI : EMC - C.A Total - Journées - Tiers payant|EMC@MTFAC@MMTFAC@FACNBJ@NBSEJ@FACNS1@MTFAC1@FACNS2@MTFAC2@FACNS0@MTFAC0@0@0@0@0@0|EMC Facturé@C.A facturé@C.A moyen facturé@Nb journées facturée@Séjours Facturé@Séjours AMO@C.A facturé AMO@Séjours AMC@C.A facturé AMC@Séjours Patient@C.A facturé Pat|#@#E@#E@#@#@#@#E@#@#E@#@#E@#@#E|Nombre EMC facturés@C.A facturé@C.A moyen facturé@Nb journées facturée@Séjours Facturé@Séjours AMO@C.A facturé AMO@Séjours AMC@C.A facturé AMC@Séjours Patient@C.A facturé Patient|000000000000000|0 +1|L_DATA_7|CTI : EMC ( Total - HC - HJ - Autres) - C.A ( Total - HC - HJ - Autres)|FAVEMC@MTFACENC@FAVNBEMCHC@FAVNBSHJ@FAVNBSHA@MTENC@FAVMTTHC@FAVMTTHJ@FAVMTTHA@0@0@0@0@0@0@0|EMC total@C.A Total@Nb EMC HC@Séjours HJ@Séjours Autres@Dont valorisé@C.A total HC@C.A total HJ@C.A total Autres|#@#E@#@#@#@#E@#E@#E@#E|Equivalent Malade Complet Facturé ou Valorisé
Calculé d'après l'occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@C.A facturé et valorisé@Nombre EMC en Hospitalisation complète HC@Nombre de séjours en Hospitalisation de jour HJ@Nombre de séjours en Hospitalisation autre que HC ou HJ@C.A valorisé@C.A facturé et valorisé en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation autre que HC ou HJ@0@0@0@0@0@0|000000000000000|0 +1|L_DATA_8|CTI : EMC - C.A : Facturé - valorisé - total ( HJ - HC ) - C.A Autres|FAVEMC@MTFACENC@FACMTTHJ@FACMTTHC@VALMTHJT@VALMTHCT@FAVMTTHJ@FAVMTTHC@FAVMTTHA@0@0@0@0@0@0@0|EMC total@C.A total@CA facturé HJ@CA facturé HC@C.A Val HJ total@C.A Val HC total@C.A total HJ@C.A total HC@C.A total Autres|#@#E@#E@#E@#E@#E@#E@#E@#E|Equivalent Malade Complet Facturé ou Valorisé
Calculé d'après l'occupation des dossiers facturés ou Valorisés sur la base de
- 1 EMC par séjour en Hospitalisation Complète MCO
- 1 EMC par jour en Hospitalisation de jour MCO
- 1 EMC par séance en Hospitalisation séance MCO
- 1 EMC par semaine en Hospitalisation Complète SSR ou PSY
- 1 EMC par jour en Hospitalisation de jour SSR ou PSY
- 1 EMC par séjour pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@C.A facturé et valorisé@C.A facturé en Hospitalisation de jour HJ@C.A facturé en Hospitalisation complète HC@C.A total valorisé en Hospitalisation de jour HJ ( groupés + Non groupés )@C.A total valorisé en Hospitalisation complète HC ( groupés + Non groupés )@C.A facturé et valorisé en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation autre que HC ou HJ@0@0@0@0@0@0@0|000000000000000|0 +1|L_DATA_102|x|FAVNBS@MTFACENC@MMTFACENC@FAVNBJ@0@0@0@0@0@0@0@0@0@0@0|Séjours total@C.A total@C.A moyen total@Nombre journées total|#@#E@#E@#|Séjours facturés et valorisés@C.A facturé et valorisé@C.A Moyen Facturé et valorisé@Nombre de journées Facturées ou Valorisées
Calculé d'après l'occupation des dossiers facturés ou valorisés sur la base de
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète MCO
- Nombre de jours de présence en Hospitalisation de jour MCO
- Nombre de séances en Hospitalisation séance MCO
- Durée de séjour (sauf jour de sortie) en Hospitalisation Complète SSR ou PSY
- Nombre de jours de présence en Hospitalisation de jour SSR ou PSY
- 0 pour les autres cas (Externes)
Cet indicateur n'est pas calculé pour les regroupements par prestation, rubrique ou compte
Visible que par date d'activité ou date de sortie@0@0@0@0@0@0@0@0@0@0@0|000000000000000|0 +1|L_DATA_103|CTI : Séjours - C.A Total - Journées - C.A ( HC & HJ )|FAVNBS@MTFACENC@MMTFACENC@FAVNBJ@FAVNBSHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@0@0@0@0@0|Séjours total@C.A total@C.A moyen total@Nombre journées total@Séjours total HC@C.A total HC@C.A Moyen total HC@Séjours total HJ@C.A total HJ@C.A Moyen total HJ|#@#E@#E@#@#@#E@#E@#@#E@#E|Séjours Facturé et Valorise@C.A Facturé et Valorise@C.A moyen Facturé et Valorise@Nombre journées Facturé et Valorise@Séjours Facturé et Valorise en Hospitalisation complète HC@C.A Facturé et Valorise en Hospitalisation complète HC@C.A Moyen Facturé et Valorise en Hospitalisation complète HC@Séjours Facturé et Valorise en Hospitalisation de jour HJ@C.A Facturé et Valorise en Hospitalisation de jour HJ@C.A Moyen Facturé et Valorise en Hospitalisation de jour HJ|000000000000000|0 +1|L_DATA_104|CTI : Séjours - C.A Total - Journées - C.A ( HC & HJ & Autres)|FAVNBS@MTFACENC@MMTFACENC@FAVNBJ@FAVNBSHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@FAVNBSHA@FAVMTTHA@FAVCAMAU@0@0|Séjours total@C.A total@C.A moyen total@Nombre journées total@Séjours total HC@C.A total HC@C.A Moyen total HC@Séjours total HJ@C.A total HJ@C.A Moyen total HJ@Séjours total Autres@C.A total Autres@C.A Moyen total Autres|#@#E@#E@#@#@#E@#E@#@#E@#E@#@#E@#E|Séjours Facturé et Valorise@C.A Facturé et Valorise@C.A moyen Facturé et Valorise@Nombre journées Facturé et Valorise@Séjours Facturé et Valorise en Hospitalisation complète HC@C.A Facturé et Valorise en Hospitalisation complète HC@C.A Moyen Facturé et Valorise en Hospitalisation complète HC@Séjours Facturé et Valorise en Hospitalisation de jour HJ@C.A Facturé et Valorise en Hospitalisation de jour HJ@C.A Moyen Facturé et Valorise en Hospitalisation de jour HJ@Séjours Facturé et Valorise en Hospitalisation autre que HC ou HJ@C.A Facturé et Valorise en Hospitalisation autre que HC ou HJ@C.A Moyen Facturé et Valorise en Hospitalisation autre que HC ou HJ|000000000000000|0 +1|L_DATA_105|CTI : Séjours - C.A Total - Journées - C.A ( HC & HJ & Autres) - DMS|FAVNBS@MTFACENC@MMTFACENC@FAVNBJ@FAVNBSHC@FAVMTTHC@FAVCAMHC@FAVNBSHJ@FAVMTTHJ@FAVCAMHJ@FAVNBSHA@FAVMTTHA@FAVCAMAU@FAVDMS@0|Séjours total@C.A total@C.A moyen total@Nombre journées total@Séjours total HC@C.A total HC@C.A Moyen total HC@Séjours total HJ@C.A total HJ@C.A Moyen total HJ@Séjours total Autres@C.A total Autres@C.A Moyen total Autres@DMS hospitalisés|#@#E@#E@#@#@#E@#E@#@#E@#E@#@#E@#E@#,00j|Séjours Facturé et Valorise@C.A Facturé et Valorise@C.A moyen Facturé et Valorise@Nombre journées Facturé et Valorise@Séjours Facturé et Valorise en Hospitalisation complète HC@C.A Facturé et Valorise en Hospitalisation complète HC@C.A Moyen Facturé et Valorise en Hospitalisation complète HC@Séjours Facturé et Valorise en Hospitalisation de jour HJ@C.A Facturé et Valorise en Hospitalisation de jour HJ@C.A Moyen Facturé et Valorise en Hospitalisation de jour HJ@Séjours Facturé et Valorise en Hospitalisation autre que HC ou HJ@C.A Facturé et Valorise en Hospitalisation autre que HC ou HJ@C.A Moyen Facturé et Valorise en Hospitalisation autre que HC ou HJ@Rapport entre le nombre de journées de présence des séjours hospitalisés sortis et le nombre de séjours hospitalisés sortis|000000000000000|0 +1|L_DATA_106|CTI : Séjours - C.A Total - Journées - Tiers payant|NBSEJ@MTFAC@MMTFAC@FACNBJ@NBSEJ@FACNS1@MTFAC1@FACNS2@MTFAC2@FACNS0@MTFAC0@0@0@0@0@0|Séjours Facturé@C.A facturé@C.A moyen facturé@Nb journées facturée@Séjours Facturé@Séjours AMO@C.A facturé AMO@Séjours AMC@C.A facturé AMC@Séjours Patient@C.A facturé Pat|#@#E@#E@#@#@#@#E@#@#E@#@#E@#@#E|Séjours Facturé@C.A facturé@C.A moyen facturé@Nombre journées facturée@Séjours Facturé@Séjours AMO@C.A facturé AMO@Séjours AMC@C.A facturé AMC@Séjours Patient@C.A facturé Patient|000000000000000|0 +1|L_DATA_107|CTI : Séjours ( Total - HC - HJ - Autres) - C.A ( Total - HC - HJ - Autres)|FAVNBS@MTFACENC@FAVNBSHC@FAVNBSHJ@FAVNBSHA@MTENC@FAVMTTHC@FAVMTTHJ@FAVMTTHA@0@0@0@0@0@0@0|Séjours total@C.A Total@Séjours Total HC@Séjours total HJ@Séjours total Autres@Dont valorisé@C.A total HC@C.A total HJ@C.A total Autres|#@#E@#@#@#@#E@#E@#E@#E|Séjours Facturé et Valorise@C.A Facturé et Valorise@Séjours Facturé et Valorise en Hospitalisation complète HC@Séjours en Hospitalisation de jour HJ@Séjours en Hospitalisation autre que HC ou HJ@Dont valorisé@C.A Facturé et Valorise en Hospitalisation complète HC@C.A Facturé et Valorise en Hospitalisation de jour HJ@C.A Facturé et Valorise en Hospitalisation autre que HC ou HJ|000000000000000|0 +1|L_DATA_108|CTI : Séjours - C.A : Facturé - valorisé - total ( HJ - HC ) - C.A Autres|FAVNBS@MTFACENC@FACMTTHJ@FACMTTHC@VALMTHJT@VALMTHCT@FAVMTTHJ@FAVMTTHC@FAVMTTHA@0@0@0@0@0@0@0|Séjours total@C.A Total@CA facturé HJ@CA facturé HC@C.A Val HJ total@C.A Val HC total@C.A total HJ@C.A total HC@C.A total Autres|#@#E@#E@#E@#E@#E@#E@#E@#E|Séjours Facturé et valorisé@C.A Facturé et Valorise@C.A facturé en Hospitalisation de jour HJ@C.A facturé en Hospitalisation complète HC@C.A total valorisé en Hospitalisation de jour HJ ( groupés + Non groupés )@C.A total valorisé en Hospitalisation complète HC ( groupés + Non groupés )@C.A facturé et valorisé en Hospitalisation de jour HJ@C.A facturé et valorisé en Hospitalisation complète HC@C.A facturé et valorisé en Hospitalisation autre que HC ou HJ@0@0@0@0@0@0@0|000000000000000|0 +1|L_DATA_1_OCC|CTI : Occupation : Nombre Patients/ Séjour/EMC - Entrées/Sorties - Ambulatoire/ Séances - Journées|NBP@NSEJ@EMC@NED@NEM@NSD@NSM@NAM@NSE@NSEDIA@NSECHM@NSEDIV@NJN@NJNXA@0|Nombre patients@Nombre Séjours@EMC@Entrées (hospi)@Entrées + mutations@Sorties (Hospi)@Sorties + Mutations@Nombre Ambulatoire@Nombre séances@séances Dialyse@Séances Chimio@Séances Autres@Journées hospi@Jou+Ext+Ambu|#@#@#@#@#@#@#@#@#@#@#@#@#j@#j|Nombre patients@Nombre Séjours@Equivalent Malade complet@Entrées directes (hospitalisés)@Entrées directes + mutations@Sorties directes (hospitalisés)@Sorties directes (hospitalisés) + Mutations@Nombre Ambulatoire@Nombre séances total@séances Dialyse@Séances Chimio@Séances Autres@Nombre journées hospitalisés@Nombre journées + ambulatoires + externes|000000000000000|1 +1|L_DATA_2_OCC|CTI : Séjours : Nombre Patients/ Séjour/EMC - Admissions/Sorties - Journées - DMS|NBP@NSEJ@EMC@NADPRE@NAD@NSHP@NSDXASSH@NNONSOR@NFULL@NJN@NJNXAS@DMSHES@DMSHON@0@0|Nombre patients@Nombre séjours@EMC@Adm < per.@Admissions@Sor Post@Sor+X+A+S-Hors hospi@Séj non sortis@Séj entiers@Journées hospi@Jou+X+A+S@DMS Hospi@DMS HOS+A+S|#@#@#@#@#@#@#@#@#@#j@#j@#,00j@#,00j|Nombre patients@Nombre Séjours@Equivalent Malade complet@Nombre admissions < période@Nombre admissions période@Nombre sorties hors période@Nombre sorties + ambulatoires + externes + séances (hors hospit)@Nombre séjours non sortis@Nombre séjours entiers sur période@Nombre journées (hospitalisés)@Nombre journées + ambulatoires + externes + séances@DMS hospitalisés@DMS hospitalisation (Hospit. + séances + ambulatoires)|000000000000000|2 +1|L_DATA_4_OCC|CTI : Récapitulatif : Séjour/EMC - Entrées/Sorties(Hospi) - Ambulatoires/séances/externes/Bébés/urgences|NBP@NSEJ@EMC@NED@NSD@NAM@NSE@NEX@NPX@NBB@URG@0@0@0@0|Nombre patients@Nombre séjours@Equivalent malade complet@Entrées directes (hospi)@Sorties directes (hospi)@Nombre Ambulatoire@Nombre séances@Nombre externes@Passages Ext@Nombre bébés@Urgences|#@#@#@#@#@#@#@#@#@#|Nombre patients@Nombre séjours@Equivalent malade complet@Nombre entrées directes (hospitalisés)@Nombre sorties directes (hospitalisés)@Nombre Ambulatoire@Nombre séances@Nombre externes@Nombre passages externes@Nombre bébés@Urgences|000000000000000|4 diff --git a/db/dbsetup_data_activite.XML b/db/dbsetup_data_activite.XML new file mode 100644 index 0000000..909cf7c --- /dev/null +++ b/db/dbsetup_data_activite.XML @@ -0,0 +1,1972 @@ + + + + +
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ + +
+ + 0 AND + code NOT IN (SELECT code FROM activite.t_forme_activite WHERE code IS NOT NULL) + ; + + SELECT activite.cti_update_schema_classes('FORMEACTIVITE'); + + ]]> +
+ + + + 0 + AND code NOT IN (SELECT code FROM activite.t_etat_sejour) + ; + + + ]]> +
+ + + + 0 + AND code NOT IN (SELECT code FROM activite.t_prestations) + ; + + SELECT activite.cti_update_schema_classes('PRESTA_C'); + + ]]> +
+ + + + 1; + + UPDATE activite.t_listes SET table_id = (SELECT oid FROM activite.t_listes_tables WHERE code = 'PRESTA_C') + WHERE table_id IN (SELECT oid FROM activite.t_listes_tables WHERE code = 'PRESTA_C_B'); + + DELETE FROM activite.t_listes_tables WHERE code = 'PRESTA_C_B'; + + UPDATE activite.t_listes_tables SET + code = w_dbsetup.code, + texte = w_dbsetup.texte, + select_cmd = w_dbsetup.select_cmd, + name = w_dbsetup.name + FROM w_dbsetup + WHERE t_listes_tables.code = w_dbsetup.code; + + INSERT INTO activite.t_listes_tables(oid, code, name, texte, select_cmd) + SELECT oid, code, name, texte, select_cmd FROM w_dbsetup WHERE oid = 0 AND oid NOT IN (SELECT oid FROM activite.t_listes_tables); + + INSERT INTO activite.t_listes_tables(code, name, texte, select_cmd) + SELECT code, name, texte, select_cmd FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM activite.t_listes_tables); + + ]]> +
+ + + + +
+ + + + +
+ + + + Sections CTI non-livrées + -- La classe CTI_SPE_BUDG est créée et aliméntée lors de l'import activité et n'est pas livrée + DROP TABLE IF EXISTS w_del_sections + ; + CREATE TEMP TABLE w_del_sections as ( + SELECT oid FROM activite.t_classes_sections + WHERE classe_id IN ( + SELECT + t_classes.oid + FROM activite.t_classes + WHERE 1=1 + AND is_cti = '1' + AND t_classes.code <> 'CTI_SPE_BUDG' + ) + ); + + DELETE FROM activite.t_classes_sections_elements + WHERE section_id IN (SELECT oid FROM w_del_sections); + + + DELETE FROM activite.t_classes_sections + USING + ( + SELECT t_classes_sections.classe_id, t_classes_sections.oid + FROM activite.t_classes_sections + LEFT JOIN w_dbsetup ON + w_dbsetup.classe_id = t_classes_sections.classe_id AND + w_dbsetup.code = t_classes_sections.code + WHERE w_dbsetup.oid IS NULL AND + t_classes_sections.classe_id IN (SELECT classe_id FROM w_dbsetup) AND + t_classes_sections.oid NOT IN (SELECT section_id FROM activite.t_classes_sections_elements) + ) subview + WHERE subview.classe_id = t_classes_sections.classe_id AND + subview.oid = t_classes_sections.oid + ; + + -- Mise à jour + UPDATE activite.t_classes_sections SET + texte = w_dbsetup.texte, + condition = w_dbsetup.condition, + exclude_code = w_dbsetup.exclude_code, + include_code = w_dbsetup.include_code + FROM w_dbsetup + WHERE w_dbsetup.classe_id = t_classes_sections.classe_id AND + w_dbsetup.code = t_classes_sections.code AND + ( + t_classes_sections.texte IS DISTINCT FROM w_dbsetup.texte OR + t_classes_sections.condition IS DISTINCT FROM w_dbsetup.condition OR + t_classes_sections.exclude_code IS DISTINCT FROM w_dbsetup.exclude_code OR + t_classes_sections.include_code IS DISTINCT FROM w_dbsetup.include_code + ) + ; + + INSERT INTO activite.t_classes_sections(code, texte, classe_id, condition, exclude_code, include_code) + SELECT + w_dbsetup.code, + w_dbsetup.texte, + w_dbsetup.classe_id, + w_dbsetup.condition, + w_dbsetup.exclude_code, + w_dbsetup.include_code + FROM w_dbsetup + WHERE w_dbsetup.classe_id > 0 AND + (w_dbsetup.code||'@'||w_dbsetup.classe_id::text) + NOT IN (SELECT t_classes_sections.code||'@'||t_classes_sections.classe_id FROM activite.t_classes_sections) + ; + + ]]> +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + + +
+ + + +
+ + + + +
+ + + + '' GROUP BY 1 HAVING count(*) > 1 + ) subview + WHERE t_indicateurs.code = subview.code AND t_indicateurs.oid <> subview.minoid; + + -- Mise à jour indicateurs déjà présents + UPDATE activite.t_indicateurs SET + texte = w_dbsetup.texte, + table_name = w_dbsetup.table_name, + column_name = w_dbsetup.column_name, + is_cti = w_dbsetup.is_cti, + entete = w_dbsetup.entete, + entete_etendue = w_dbsetup.entete_etendue, + total_function = w_dbsetup.total_function, + output_format = w_dbsetup.output_format, + width = w_dbsetup.width, + dimension_date_1 = w_dbsetup.dimension_date_1, + dimension_date_2 = w_dbsetup.dimension_date_2, + dimension_date_3 = w_dbsetup.dimension_date_3, + dimension_date_4 = w_dbsetup.dimension_date_4, + dimension_date_5 = w_dbsetup.dimension_date_5, + dimension_date = w_dbsetup.dimension_date, + is_template = w_dbsetup.is_template, + variable_definition = ARRAY[variable_definition_1,variable_definition_2,variable_definition_3] , + variable_value = ARRAY[variable_value_1,variable_value_2,variable_value_3], + variable_value_text = ARRAY[variable_value_text_1,variable_value_text_2,variable_value_text_3], + description = w_dbsetup.description + FROM w_dbsetup + WHERE t_indicateurs.code = w_dbsetup.code; + + -- Ajout des indicateurs + INSERT INTO activite.t_indicateurs(texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + code, + total_function, + output_format, + width, + dimension_date_1, + dimension_date_2, + dimension_date_3, + dimension_date_4, + dimension_date_5, + dimension_date, + is_template, + variable_definition, + variable_value, + variable_value_text, + description + ) + SELECT texte, + table_name, + column_name, + is_cti, + entete, + entete_etendue, + code, + total_function, + output_format, + width, + dimension_date_1, + dimension_date_2, + dimension_date_3, + dimension_date_4, + dimension_date_5, + dimension_date, + is_template, + ARRAY[variable_definition_1,variable_definition_2,variable_definition_3] , + ARRAY[variable_value_1,variable_value_2,variable_value_3], + ARRAY[variable_value_text_1,variable_value_text_2,variable_value_text_3], + description + FROM w_dbsetup WHERE oid <> 0 AND code NOT IN (SELECT code FROM activite.t_indicateurs WHERE code IS NOT NULL) + ; + + CREATE INDEX i_w_dbsetup + ON w_dbsetup + USING btree + (code) + ; + + ANALYZE w_dbsetup + ; + + -- Mise à jour des références + UPDATE activite.t_indicateurs SET + indicateur_associe_1_id = COALESCE(t_indicateurs_1.oid,0), + indicateur_associe_2_id = COALESCE(t_indicateurs_2.oid,0), + indicateur_associe_3_id = COALESCE(t_indicateurs_3.oid,0), + indicateur_associe_4_id = COALESCE(t_indicateurs_4.oid,0), + indicateur_associe_5_id = COALESCE(t_indicateurs_5.oid,0), + indicateur_associe_6_id = COALESCE(t_indicateurs_6.oid,0), + indicateur_associe_7_id = COALESCE(t_indicateurs_7.oid,0), + indicateur_associe_8_id = COALESCE(t_indicateurs_8.oid,0), + indicateur_associe_9_id = COALESCE(t_indicateurs_9.oid,0), + indicateur_associe_10_id = COALESCE(t_indicateurs_10.oid,0), + indicateur_associe_11_id = COALESCE(t_indicateurs_11.oid,0), + indicateur_associe_12_id = COALESCE(t_indicateurs_12.oid,0), + indicateur_associe_13_id = COALESCE(t_indicateurs_13.oid,0), + indicateur_associe_14_id = COALESCE(t_indicateurs_14.oid,0), + indicateur_associe_15_id = COALESCE(t_indicateurs_15.oid,0), + indicateur_associe_16_id = COALESCE(t_indicateurs_16.oid,0), + indicateur_associe_17_id = COALESCE(t_indicateurs_17.oid,0), + indicateur_associe_18_id = COALESCE(t_indicateurs_18.oid,0), + indicateur_associe_19_id = COALESCE(t_indicateurs_19.oid,0), + indicateur_associe_20_id = COALESCE(t_indicateurs_20.oid,0), + indicateur_reference_id = COALESCE(t_indicateurs_reference.oid,0), + indicateur_template_id = COALESCE(t_indicateurs_template.oid,0) + FROM w_dbsetup + LEFT JOIN activite.t_indicateurs t_indicateurs_1 ON (w_dbsetup.indicateur_associe_1_code = t_indicateurs_1.code AND w_dbsetup.indicateur_associe_1_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_2 ON (w_dbsetup.indicateur_associe_2_code = t_indicateurs_2.code AND w_dbsetup.indicateur_associe_2_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_3 ON (w_dbsetup.indicateur_associe_3_code = t_indicateurs_3.code AND w_dbsetup.indicateur_associe_3_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_4 ON (w_dbsetup.indicateur_associe_4_code = t_indicateurs_4.code AND w_dbsetup.indicateur_associe_4_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_5 ON (w_dbsetup.indicateur_associe_5_code = t_indicateurs_5.code AND w_dbsetup.indicateur_associe_5_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_6 ON (w_dbsetup.indicateur_associe_6_code = t_indicateurs_6.code AND w_dbsetup.indicateur_associe_6_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_7 ON (w_dbsetup.indicateur_associe_7_code = t_indicateurs_7.code AND w_dbsetup.indicateur_associe_7_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_8 ON (w_dbsetup.indicateur_associe_8_code = t_indicateurs_8.code AND w_dbsetup.indicateur_associe_8_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_9 ON (w_dbsetup.indicateur_associe_9_code = t_indicateurs_9.code AND w_dbsetup.indicateur_associe_9_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_10 ON (w_dbsetup.indicateur_associe_10_code = t_indicateurs_10.code AND w_dbsetup.indicateur_associe_10_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_11 ON (w_dbsetup.indicateur_associe_11_code = t_indicateurs_11.code AND w_dbsetup.indicateur_associe_11_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_12 ON (w_dbsetup.indicateur_associe_12_code = t_indicateurs_12.code AND w_dbsetup.indicateur_associe_12_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_13 ON (w_dbsetup.indicateur_associe_13_code = t_indicateurs_13.code AND w_dbsetup.indicateur_associe_13_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_14 ON (w_dbsetup.indicateur_associe_14_code = t_indicateurs_14.code AND w_dbsetup.indicateur_associe_14_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_15 ON (w_dbsetup.indicateur_associe_15_code = t_indicateurs_15.code AND w_dbsetup.indicateur_associe_15_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_16 ON (w_dbsetup.indicateur_associe_16_code = t_indicateurs_16.code AND w_dbsetup.indicateur_associe_16_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_17 ON (w_dbsetup.indicateur_associe_17_code = t_indicateurs_17.code AND w_dbsetup.indicateur_associe_17_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_18 ON (w_dbsetup.indicateur_associe_18_code = t_indicateurs_18.code AND w_dbsetup.indicateur_associe_18_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_19 ON (w_dbsetup.indicateur_associe_19_code = t_indicateurs_19.code AND w_dbsetup.indicateur_associe_19_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_20 ON (w_dbsetup.indicateur_associe_20_code = t_indicateurs_20.code AND w_dbsetup.indicateur_associe_20_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_reference ON (w_dbsetup.indicateur_reference_code = t_indicateurs_reference.code AND w_dbsetup.indicateur_reference_code <> '') + LEFT JOIN activite.t_indicateurs t_indicateurs_template ON (w_dbsetup.indicateur_template_code = t_indicateurs_template.code AND w_dbsetup.indicateur_template_code <> '') + WHERE t_indicateurs.code = w_dbsetup.code + AND (indicateur_associe_1_code <> '' OR + indicateur_associe_2_code <> '' OR + indicateur_associe_3_code <> '' OR + indicateur_reference_code <> ''); + + -- Thèmes + UPDATE activite.t_indicateurs SET + theme_id = ARRAY[ + t_indicateur_theme_1.oid, + t_indicateur_theme_2.oid, + t_indicateur_theme_3.oid, + t_indicateur_theme_4.oid, + t_indicateur_theme_5.oid, + t_indicateur_theme_6.oid, + t_indicateur_theme_7.oid, + t_indicateur_theme_8.oid, + t_indicateur_theme_9.oid + ] + FROM w_dbsetup + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_1 ON w_dbsetup.theme_1_code = t_indicateur_theme_1.code + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_2 ON w_dbsetup.theme_2_code = t_indicateur_theme_2.code + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_3 ON w_dbsetup.theme_3_code = t_indicateur_theme_3.code + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_4 ON w_dbsetup.theme_4_code = t_indicateur_theme_4.code + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_5 ON w_dbsetup.theme_5_code = t_indicateur_theme_5.code + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_6 ON w_dbsetup.theme_6_code = t_indicateur_theme_6.code + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_7 ON w_dbsetup.theme_7_code = t_indicateur_theme_7.code + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_8 ON w_dbsetup.theme_8_code = t_indicateur_theme_8.code + LEFT JOIN activite.t_indicateur_theme t_indicateur_theme_9 ON w_dbsetup.theme_9_code = t_indicateur_theme_9.code + WHERE t_indicateurs.code = w_dbsetup.code AND + theme_id IS DISTINCT FROM ARRAY[ + t_indicateur_theme_1.oid, + t_indicateur_theme_2.oid, + t_indicateur_theme_3.oid, + t_indicateur_theme_4.oid, + t_indicateur_theme_5.oid, + t_indicateur_theme_6.oid, + t_indicateur_theme_7.oid, + t_indicateur_theme_8.oid, + t_indicateur_theme_9.oid + ] + ; + + -- Réorganisation des indicateurs + SELECT base.cti_reorganize_indicateurs('activite'); + ]]> +
+ + + 'CTI_PORTFO' + ORDER BY t_rapports.code + ; + + ]]> + ''; + UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[2] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[2] AND to_rapport_indicateur_condition_code[2] <> ''; + UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[3] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[3] AND to_rapport_indicateur_condition_code[3] <> ''; + UPDATE w_dbsetup SET to_rapport_indicateur_condition_id[4] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE t_indicateur_condition.code = to_rapport_indicateur_condition_code[4] AND to_rapport_indicateur_condition_code[4] <> ''; + UPDATE w_dbsetup SET to_rapport_indicateur_condition_id = array_remove(to_rapport_indicateur_condition_id,NULL); + + UPDATE activite.t_rapports SET + texte = w_dbsetup.texte, + is_cti = w_dbsetup.is_cti, + is_essentiel = w_dbsetup.is_essentiel, + essentiel_date_level = w_dbsetup.essentiel_date_level, + colonnes_essentiel = w_dbsetup.colonnes_essentiel, + entete = w_dbsetup.entete, + entete_2 = w_dbsetup.entete_2, + group_id = w_dbsetup.group_id, + rapport_indicateur_condition_id = to_rapport_indicateur_condition_id, + label = w_dbsetup.label, + serie_entete = to_serie_entete, + colonnes_essentiel_style = w_dbsetup.colonnes_essentiel_style + FROM w_dbsetup + WHERE t_rapports.code = w_dbsetup.code; + + + INSERT INTO activite.t_rapports(oid, code, texte, is_cti, is_essentiel) + SELECT oid, code, texte, is_cti, is_essentiel + FROM w_dbsetup + WHERE + oid = 0 AND + oid NOT IN (SELECT oid FROM activite.t_rapports); + + + INSERT INTO activite.t_rapports( + code, + texte, + is_cti, + is_essentiel, + essentiel_date_level, + colonnes_essentiel, + entete, + entete_2, + group_id, + is_hide, + rapport_indicateur_condition_id, + label, + serie_entete, + colonnes_essentiel_style + ) + SELECT + code, + texte, + is_cti, + is_essentiel, + essentiel_date_level, + colonnes_essentiel, + entete, + entete_2, + group_id, + is_hide, + to_rapport_indicateur_condition_id, + label, + to_serie_entete, + colonnes_essentiel_style + FROM w_dbsetup + WHERE + oid <> 0 AND + code NOT IN (SELECT code FROM activite.t_rapports); + + + ]]> +
+ + + 'CTI_PORTFO' + AND t_indicateurs.is_cti = '1' + AND t_indicateurs.code <> '' + ORDER BY + t_rapports.code, + t_indicateurs.code, + t_rapports_rubriques.numero_rubrique + ; + + ]]> + ''; + + ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_associe_id bigint DEFAULT 0; + UPDATE w_dbsetup SET to_indicateur_associe_id = t_indicateurs.oid FROM activite.t_indicateurs WHERE indicateur_associe_code = t_indicateurs.code AND t_indicateurs.code <> ''; + + ALTER TABLE w_dbsetup ADD COLUMN to_serie_indicateur_code text[]; + UPDATE w_dbsetup SET to_serie_indicateur_code = string_to_array(serie_indicateur_code,'||'); + + ALTER TABLE w_dbsetup ADD COLUMN to_serie_indicateur_id bigint[]; + UPDATE w_dbsetup SET to_serie_indicateur_id[1] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[1] = t_indicateurs.code AND t_indicateurs.code <> ''; + UPDATE w_dbsetup SET to_serie_indicateur_id[2] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[2] = t_indicateurs.code AND t_indicateurs.code <> ''; + UPDATE w_dbsetup SET to_serie_indicateur_id[3] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[3] = t_indicateurs.code AND t_indicateurs.code <> ''; + UPDATE w_dbsetup SET to_serie_indicateur_id[4] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[4] = t_indicateurs.code AND t_indicateurs.code <> ''; + UPDATE w_dbsetup SET to_serie_indicateur_id[5] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[5] = t_indicateurs.code AND t_indicateurs.code <> ''; + UPDATE w_dbsetup SET to_serie_indicateur_id[6] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[6] = t_indicateurs.code AND t_indicateurs.code <> ''; + UPDATE w_dbsetup SET to_serie_indicateur_id[7] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[7] = t_indicateurs.code AND t_indicateurs.code <> ''; + UPDATE w_dbsetup SET to_serie_indicateur_id[8] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[8] = t_indicateurs.code AND t_indicateurs.code <> ''; + UPDATE w_dbsetup SET to_serie_indicateur_id[9] = t_indicateurs.oid FROM activite.t_indicateurs WHERE to_serie_indicateur_code[9] = t_indicateurs.code AND t_indicateurs.code <> ''; + + + ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_condition_external_code text[]; + UPDATE w_dbsetup SET to_indicateur_condition_external_code = string_to_array(indicateur_condition_external_code,'||'); + + + ALTER TABLE w_dbsetup ADD COLUMN to_indicateur_condition_id bigint[]; + UPDATE w_dbsetup SET to_indicateur_condition_id[1] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[1] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + UPDATE w_dbsetup SET to_indicateur_condition_id[2] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[2] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + UPDATE w_dbsetup SET to_indicateur_condition_id[3] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[3] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + UPDATE w_dbsetup SET to_indicateur_condition_id[4] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[4] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + UPDATE w_dbsetup SET to_indicateur_condition_id[5] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[5] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + UPDATE w_dbsetup SET to_indicateur_condition_id[6] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[6] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + UPDATE w_dbsetup SET to_indicateur_condition_id[7] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[7] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + UPDATE w_dbsetup SET to_indicateur_condition_id[8] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[8] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + UPDATE w_dbsetup SET to_indicateur_condition_id[9] = t_indicateur_condition.oid FROM activite.t_indicateur_condition WHERE to_indicateur_condition_external_code[9] = t_indicateur_condition.external_code AND t_indicateur_condition.external_code <> ''; + + + -- Installer les données CTI + DELETE FROM activite.t_rapports_rubriques + WHERE 1=1 + AND rapport_id IN (SELECT to_rapport_id FROM w_dbsetup) + ; + + INSERT INTO activite.t_rapports_rubriques( + rapport_id, + numero_rubrique, + indicateur_id, + indicateur_associe_id, + entete, + entete_etendue, + output_format, + width, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + base_nationale, + base_nationale_qualifiee, + viewlink, + viewlink_label, + viewlink_param, + picto_enabled, + positif_is_good, + description, + description_2, + entete_etendue_2, + output_format_2, + picto_enabled_2, + positif_is_good_2, + is_hide, + specific_viewlink, + specific_viewlink_label, + specific_viewlink_param, + indicateur_condition_id, + erase_rapport_indicateur_condition, + calc_formula, + hide_on_zero_field, + field_tag, + serie_indicateur_id, + serie_entete_etendue, + serie_description, + serie_output_format, + serie_picto_enabled, + serie_positif_is_good + ) + SELECT + to_rapport_id, + numero_rubrique, + to_indicateur_id, + to_indicateur_associe_id, + entete, + entete_etendue, + output_format, + width, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + base_nationale, + base_nationale_qualifiee, + viewlink, + viewlink_label, + viewlink_param, + picto_enabled, + positif_is_good, + description, + description_2, + entete_etendue_2, + output_format_2, + picto_enabled_2, + positif_is_good_2, + is_hide, + specific_viewlink, + specific_viewlink_label, + specific_viewlink_param, + to_indicateur_condition_id, + erase_rapport_indicateur_condition, + calc_formula, + hide_on_zero_field, + field_tag, + to_serie_indicateur_id, + string_to_array(serie_entete_etendue,'||'), + string_to_array(serie_description,'||'), + string_to_array(serie_output_format,'||'), + string_to_array(serie_picto_enabled,'||'), + string_to_array(serie_positif_is_good,'||') + FROM w_dbsetup + WHERE to_rapport_id <> 0 AND to_indicateur_id <> 0 + ; + + -- Rejouer le spécifique + UPDATE activite.t_rapports_rubriques SET + is_hide = w_specific_rapports_rubriques.is_hide, + specific_viewlink = CASE WHEN w_specific_rapports_rubriques.specific_viewlink IN ('1', '2') THEN '' ELSE w_specific_rapports_rubriques.specific_viewlink END, + specific_viewlink_label = w_specific_rapports_rubriques.specific_viewlink_label, + specific_viewlink_param = w_specific_rapports_rubriques.specific_viewlink_param + FROM w_specific_rapports_rubriques + WHERE w_specific_rapports_rubriques.rapport_id = t_rapports_rubriques.rapport_id AND + w_specific_rapports_rubriques.indicateur_id = t_rapports_rubriques.indicateur_id AND + w_specific_rapports_rubriques.entete_etendue = t_rapports_rubriques.entete_etendue AND + ( + w_specific_rapports_rubriques.is_hide = '1' OR + w_specific_rapports_rubriques.specific_viewlink <> '' OR + w_specific_rapports_rubriques.specific_viewlink_label <> '' OR + w_specific_rapports_rubriques.specific_viewlink_param <> '' + ) + ; + ]]> +
+ + + '' + ORDER BY t_expert_controle.code + ; + + ]]> + 0 + AND w_dbsetup.controle_code NOT IN (SELECT code FROM activite.t_expert_controle WHERE code IS NOT NULL); + + + ]]> +
+ + + '' + ORDER BY t_expert_controle.code, t_expert_controle_rule.numero + ; + + ]]> + +
+ + + + +
+ + + +
+ + + 0 + AND code NOT IN (SELECT code FROM activite.t_traitement_epmsi) + ; + + + ]]> +
+ + + +
+ + + +
+ + + + +
+ + + +
+ + + +
+ +
diff --git a/db/dvp_data_apply.bat b/db/dvp_data_apply.bat new file mode 100644 index 0000000..8a75640 --- /dev/null +++ b/db/dvp_data_apply.bat @@ -0,0 +1,4 @@ +@ECHO Off +ECHO /!\ VOUS ETES SUR LE POINT DE PERDRE LES DONNEES DE VOTRE BASE /!\ +PAUSE +..\..\..\Sources\db\data\iCTI_svn_data_apply.exe -m activite \ No newline at end of file diff --git a/db/dvp_data_extract.bat b/db/dvp_data_extract.bat new file mode 100644 index 0000000..2cc3ab2 --- /dev/null +++ b/db/dvp_data_extract.bat @@ -0,0 +1,2 @@ +@ECHO Off +..\..\..\Sources\db\data\iCTI_svn_data_extract.exe -m activite \ No newline at end of file diff --git a/db/hooks/install_db_last_jobs.sql b/db/hooks/install_db_last_jobs.sql new file mode 100644 index 0000000..86bc995 --- /dev/null +++ b/db/hooks/install_db_last_jobs.sql @@ -0,0 +1,5 @@ +-- ============================================================ +-- Derniers traitements +-- - Lancement de fonctions PGSQL +-- - Nettoyage installdb (éventuel) +-- ============================================================ \ No newline at end of file diff --git a/db/hooks/post_install_data.sql b/db/hooks/post_install_data.sql new file mode 100644 index 0000000..5e4e4f8 --- /dev/null +++ b/db/hooks/post_install_data.sql @@ -0,0 +1,3 @@ +-- ===================================================================== +-- Divers traitements sur les données après l'installation des données +-- ===================================================================== \ No newline at end of file diff --git a/db/hooks/pre_install_data.sql b/db/hooks/pre_install_data.sql new file mode 100644 index 0000000..48defa2 --- /dev/null +++ b/db/hooks/pre_install_data.sql @@ -0,0 +1,9 @@ +-- ===================================================================== +-- Divers traitements sur les données avant l'installation des données +-- ===================================================================== + +-- Si la valeur non renseigné est vide '', le tri fonctionne mal - A supprimer en septembre 2025 +UPDATE activite.t_services_facturation +SET code = '****' +WHERE oid = 0 +; \ No newline at end of file diff --git a/db/hooks/pre_install_schema.sql b/db/hooks/pre_install_schema.sql new file mode 100644 index 0000000..4e61b82 --- /dev/null +++ b/db/hooks/pre_install_schema.sql @@ -0,0 +1,136 @@ +-- ============================================= +-- Nettoyage de la BDD avant installation. +-- (Supprimer le contenu au bout de 3 mois) +-- - Suppression de tables +-- - Suppression de champs +-- - Suppression de vues/fonctions SQL +-- - Suppression ou modification de séquences +-- ============================================= + +DROP VIEW IF EXISTS activite.v_mouvements_sejour_3 CASCADE; + +DROP INDEX IF EXISTS i_expert_sejour_controle_4; + +SELECT base.cti_execute('ALTER TABLE ' || nspname || '.' || relname || ' DROP CONSTRAINT ' || conname, 1) +FROM pg_constraint + JOIN pg_namespace ON pg_namespace.oid = pg_constraint.connamespace + JOIN pg_catalog.pg_class ON pg_class.oid = pg_constraint.conrelid +WHERE conname = 't_lits_etage_id_key' AND + nspname like 'activite%' +; + +SELECT base.cti_execute('DROP INDEX IF EXISTS ' || nspname || '.' || pg_class.relname, 1) +FROM pg_class + JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid +WHERE + pg_namespace.nspname LIKE 'activite%' AND + pg_class.relname = 't_lits_etage_id_key' +; + +DROP TABLE IF EXISTS activite.t_sejours_ignores; + +ALTER TABLE activite.t_services_facturation + DROP COLUMN IF EXISTS unite_medicale_default_id + ,DROP COLUMN IF EXISTS unite_medicale_except1_etage_id + ,DROP COLUMN IF EXISTS unite_medicale_except1_id + ,DROP COLUMN IF EXISTS unite_medicale_except2_activite_id + ,DROP COLUMN IF EXISTS unite_medicale_except2_etage_id + ,DROP COLUMN IF EXISTS unite_medicale_except2_id + ,DROP COLUMN IF EXISTS unite_medicale_except3_activite_id + ,DROP COLUMN IF EXISTS unite_medicale_except1_activite_id + ,DROP COLUMN IF EXISTS unite_medicale_except3_etage_id + ,DROP COLUMN IF EXISTS unite_medicale_except3_id +; + +ALTER TABLE activite.t_lieux_c DROP COLUMN IF EXISTS etage_nb_cp CASCADE; +ALTER TABLE activite.t_lieux_c DROP COLUMN IF EXISTS etage_nb_lits CASCADE; +ALTER TABLE activite.t_lieux_c DROP COLUMN IF EXISTS service_facturation_nb_cp CASCADE; +ALTER TABLE activite.t_lieux_c DROP COLUMN IF EXISTS service_facturation_nb_lits CASCADE; +ALTER TABLE activite.t_lieux_c DROP COLUMN IF EXISTS etage_section_nb_cp CASCADE; +ALTER TABLE activite.t_lieux_c DROP COLUMN IF EXISTS etage_section_nb_lits CASCADE; + +ALTER TABLE activite.t_medecins_administratifs + DROP COLUMN IF EXISTS is_medecin_executant + ,DROP COLUMN IF EXISTS is_medecin_sejour + ,DROP COLUMN IF EXISTS statut +; + +ALTER TABLE activite.t_forme_activite_rule + DROP COLUMN IF EXISTS liste_activite + ,DROP COLUMN IF EXISTS liste_sauf_prestation + ,DROP COLUMN IF EXISTS liste_sauf_rubrique +; + +ALTER TABLE activite.p_factures_encours + DROP COLUMN IF EXISTS est_od +; + +ALTER TABLE activite.p_expert_sejour_controle + DROP COLUMN IF EXISTS borne_alerte + ,DROP COLUMN IF EXISTS code_groupe + ,DROP COLUMN IF EXISTS coefficient_attendu + ,DROP COLUMN IF EXISTS cumul_attendu + ,DROP COLUMN IF EXISTS cumul_base + ,DROP COLUMN IF EXISTS cumul_realise + ,DROP COLUMN IF EXISTS etat + ,DROP COLUMN IF EXISTS numero_editeur_activite +; + +ALTER TABLE activite.p_sejour_pmsi DROP COLUMN IF EXISTS rss_id_array +; + +DROP FUNCTION IF EXISTS activite.cti_reorganize_codes_postaux_c(); + +ALTER TABLE activite.p_sejours + DROP COLUMN IF EXISTS cm_id + ,DROP COLUMN IF EXISTS etab_destination_id + ,DROP COLUMN IF EXISTS etab_provenance_id + ,DROP COLUMN IF EXISTS gmd_id + ,DROP COLUMN IF EXISTS gn_id + ,DROP COLUMN IF EXISTS medecin_prescripteur_id + ,DROP COLUMN IF EXISTS rgme_id + ,DROP COLUMN IF EXISTS rss_id + ,DROP COLUMN IF EXISTS tiers_payant_12_id +; + +DROP VIEW IF EXISTS activite.v_lignes_oap_1 CASCADE +; + +DROP VIEW IF EXISTS activite.v_lignes_oap_2 CASCADE +; + +ALTER TABLE activite.t_ghm_c + DROP COLUMN IF EXISTS pole_oap_texte + ,DROP COLUMN IF EXISTS pole_oap_id + ,DROP COLUMN IF EXISTS pole_oap_code + ,DROP COLUMN IF EXISTS ligne_oap_id + ,DROP COLUMN IF EXISTS ligne_oap_texte + ,DROP COLUMN IF EXISTS ligne_oap_code +; +DROP TABLE IF EXISTS activite.p_sejours_checksum +; + +ALTER TABLE activite.t_ghs_c +DROP COLUMN IF EXISTS pole_oap_texte + ,DROP COLUMN IF EXISTS pole_oap_id + ,DROP COLUMN IF EXISTS pole_oap_code + ,DROP COLUMN IF EXISTS ligne_oap_id + ,DROP COLUMN IF EXISTS ligne_oap_texte + ,DROP COLUMN IF EXISTS ligne_oap_code +; + +SELECT base.cti_execute('DROP INDEX IF EXISTS ' || nspname || '.' || pg_class.relname, 1) +FROM pg_class +JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid +WHERE + pg_namespace.nspname LIKE 'activite_%' AND + pg_class.relname = 'p_sejours_groupes_smr_ukey' +; + +SELECT base.cti_execute('DROP INDEX IF EXISTS ' || nspname || '.' || pg_class.relname, 1) +FROM pg_class +JOIN pg_namespace ON pg_class.relnamespace = pg_namespace.oid +WHERE + pg_namespace.nspname LIKE 'activite_%' AND + pg_class.relname = 'p_sejours_groupes_smr_pkey' +; \ No newline at end of file diff --git a/db/schema2/functions/calcul_encours~da,tx.yaml b/db/schema2/functions/calcul_encours~da,tx.yaml new file mode 100644 index 0000000..331a91c --- /dev/null +++ b/db/schema2/functions/calcul_encours~da,tx.yaml @@ -0,0 +1,6201 @@ +return: text +lang: plpgsql +parameters: + p0: + type: date + name: i_date_encours + p1: + type: text + name: i_option +src: | + DECLARE + w_NOW date; + w_date_traitement date; + w_date_encours_actuelle date; + w_date_encours_actuelle_shs date; + w_date_encours date; + w_date_encours_YYMM text; + w_date_histo_18 date; + w_date_histo_12 date; + w_date_histo_xx date; + w_date_sortie_max date; + w_date_histo_coeff_presta date; + w_OPTION_ENCOURSVALOCP text; + w_OPTION_ENCOURSMCOSUP text; + _DATEENCOURS numeric; + _DATESTARTENCOURS date; + _NBSEJMIN_HISTOGHS numeric; + _ENCOURSECARTGHSV numeric; + _ENCOURSRETROSUP text; + w_nbsejours_min text; + w_simul text; + + BEGIN + -- Date du jour = now sauf si date de fermeture + w_NOW = (SELECT + MIN(CASE WHEN code = 'DATEFERMETURE' AND + valeur <> '' AND + valeur < to_char(now(),'YYYYMMDD') THEN valeur::date + ELSE date(now()) END + ) + FROM activite.t_divers) + ; + RAISE NOTICE '%' , 'Parametres. Aujourd''hui : ' || w_NOW; + + -- Ne rien calculer sur etablissement fermé + + IF EXISTS ( + SELECT valeur + FROM activite.t_divers + WHERE code IN ('DATEFERMETURE','ACT_DAT_FIN') AND + valeur <> '' AND + ( + ( + valeur_date IS NOT NULL AND + valeur_date < date(now()) + ) OR + valeur::date < date(now()) + ) + LIMIT 1 + ) THEN + DELETE FROM activite.p_factures_lignes_c WHERE montant_encours <> 0; + DELETE FROM activite.p_factures_lignes_h WHERE montant_encours <> 0; + + DELETE + FROM activite.p_factures_lignes_c + USING activite.p_factures + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + p_factures.montant_encours_c <> 0 + ; + DELETE + FROM activite.p_factures_lignes_h + USING activite.p_factures + WHERE p_factures_lignes_h.no_facture = p_factures.no_facture AND + (p_factures.montant_encours_c <> 0 OR p_factures.montant_encours_h) + ; + + UPDATE activite.p_factures SET + montant_encours_c = 0, + montant_encours_0_c = 0, + montant_encours_1_c = 0, + montant_encours_2_c = 0, + montant_encours_22_c = 0, + montant_encours_h = 0, + montant_encours_0_h = 0, + montant_encours_1_h = 0, + montant_encours_2_h = 0, + montant_encours_22_h = 0 + WHERE montant_encours_c <> 0 OR montant_encours_h <> 0; + + TRUNCATE activite.p_facture_ligne_valorise_c + ; + + return 'Valorisation désactivée car établissement fermé'; + + END IF; + + + -- Paramétrage + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'DATEENCOURS', + 'Date cloture encours', + '5', + 'Décalage pour cloture encours en nombre de jours ' + WHERE 'DATEENCOURS' NOT IN (SELECT code FROM activite.t_divers); + _DATEENCOURS = base.cti_to_number((SELECT valeur FROM activite.t_divers WHERE code = 'DATEENCOURS')); + IF _DATEENCOURS <= 0 THEN + _DATEENCOURS = 5; + END IF; + + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'DATESTARTENCOURS', + 'Date démarrage stockage encours encours', + '20110101', + 'Date démarrage stockage encours encours (AAAAMMJJ)' + WHERE 'DATESTARTENCOURS' NOT IN (SELECT code FROM activite.t_divers); + _DATESTARTENCOURS = (SELECT base.cti_to_date(valeur) FROM activite.t_divers WHERE code = 'DATESTARTENCOURS'); + IF _DATESTARTENCOURS < '20120101' OR _DATESTARTENCOURS IS NULL THEN + _DATESTARTENCOURS = '20120101'; + END IF; + RAISE NOTICE '%' , 'Parametres. Demarrage en-cours : ' || _DATESTARTENCOURS; + _DATESTARTENCOURS = date_trunc('month',_DATESTARTENCOURS) - interval '1 day'; + -- Paramètres pour génération fictive d'EXH + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSBORNEHAUTE', + 'Borne haute pour génération EXH en plus du GHS moyen', + '15', + 'Borne haute pour génération EXH en plus du GHS moyen sur encours dossiers non groupés (voir ENCOURSEXHMOYEN)' + WHERE 'ENCOURSBORNEHAUTE' NOT IN (SELECT code FROM activite.t_divers); + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSEXHMOYEN', + 'EXH moyen pour génération EXH en plus du GHS moyen', + '50', + 'Valeur EXH moyen pour génération EXH en plus du GHS moyen sur encours dossiers non groupés (voir ENCOURSBORNEHAUTE)' + WHERE 'ENCOURSEXHMOYEN' NOT IN (SELECT code FROM activite.t_divers); + -- Paramètres pour génération fictive GHS sur esthétique + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSGHMSANSGHS', + 'Pas de génération de GHS pour les GHM', + '14Z08Z', + 'Pas de génération de GHS pour les GHM' + WHERE 'ENCOURSGHMSANSGHS' NOT IN (SELECT code FROM activite.t_divers); + -- Paramètres pour génération fictive GHS sur esthétique + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSRETROSUP', + 'Nombre de mois pour calcul taux prestations', + '18', + '18 ou 12' + WHERE 'ENCOURSRETROSUP' NOT IN (SELECT code FROM activite.t_divers); + + _ENCOURSRETROSUP = (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSRETROSUP'); + + -- Nombre de séjours minimum par catégorie (= par règle) d'historique de facturation du GHS + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'NBSEJMIN_HISTOGHS', + 'Histo factu GHS : nb séjours min', + '10', + 'Valorisation : nombre minimum de séjours par catégorie pour l''historique de facturation GHS (par défaut 10)' + WHERE 'NBSEJMIN_HISTOGHS' NOT IN (SELECT code FROM activite.t_divers); + _NBSEJMIN_HISTOGHS = base.cti_to_number((SELECT valeur FROM activite.t_divers WHERE code = 'NBSEJMIN_HISTOGHS')); + IF _NBSEJMIN_HISTOGHS <= 0 THEN + _NBSEJMIN_HISTOGHS = 10; + END IF; + w_nbsejours_min = to_char(_NBSEJMIN_HISTOGHS, 'FM999'); + + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSACTIVE', + 'Encours activés', + '0', + '1 = Stockage des encours activé' + WHERE 'ENCOURSACTIVE' NOT IN (SELECT code FROM activite.t_divers); + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSVALOCP', + 'Valorisation CP', + '0', + '1 = Ne pas tenir compte de la demande CP dans la valorisation' + WHERE 'ENCOURSVALOCP' NOT IN (SELECT code FROM activite.t_divers); + w_OPTION_ENCOURSVALOCP = (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSVALOCP'); + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSGHSMBB', + 'GHS moyen des bébés sur encours', + '0', + 'Pour les séjours en maternité sans GHS bébé, PU du GHS bébé à générer' + WHERE 'ENCOURSGHSMBB' NOT IN (SELECT code FROM activite.t_divers); + + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSMCOSUP', + 'Valorisation Suppléments MCO', + '0', + '1 = Sur dossiers groupés validés, valoriser les suppléments (SRC,REA,NNx,STF) saisis (pour les autres utiliser la moyenne)' + WHERE 'ENCOURSMCOSUP' NOT IN (SELECT code FROM activite.t_divers); + w_OPTION_ENCOURSMCOSUP = (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSMCOSUP'); + + -- Paramètres pour generation encours sur honoraires medecins salaries + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSMEDSAL', + 'Génération encours sur médecins salariés', + '0', + '1 = Génération encours sur médecins salariés' + WHERE 'ENCOURSMEDSAL' NOT IN (SELECT code FROM activite.t_divers); + + + + -- Paramètres pour comparer ghs valorisé avec moyenne / médecin -> Alerte expert + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSECARTGHSV', + 'Montant écart pour alerter si le GHS connu est sous valorisé / moyenne médecin', + '0', + 'Les GHS groupés sont valorisés aussi par la méthode des moyennes et les deux résultats sont comparés' + WHERE 'ENCOURSECARTGHSV' NOT IN (SELECT code FROM activite.t_divers); + + _ENCOURSECARTGHSV = base.cti_to_number(valeur) FROM activite.t_divers WHERE code = 'ENCOURSECARTGHSV'; + + -- Paramètre pour génération des en-cours SUR BG + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ENCOURSACTIVEBG', + 'Encours activés sur BG', + '0', + '1 = Stockage des encours BG activé' + WHERE 'ENCOURSACTIVEBG' NOT IN (SELECT code FROM activite.t_divers); + + + + IF EXISTS (SELECT date_encours FROM activite.p_factures_encours LIMIT 1) THEN + UPDATE activite.t_divers + SET valeur = '1' + WHERE code = 'ENCOURSACTIVE'; + END IF; + _DATEENCOURS = base.cti_to_number((SELECT valeur FROM activite.t_divers WHERE code = 'DATEENCOURS')); + IF _DATEENCOURS <= 0 THEN + _DATEENCOURS = 5; + END IF; + -- Initialisations + -- Mise à jour factures externes pour affecter à la date d'entrée + UPDATE activite.p_factures + SET date_fin = date_debut + FROM activite.p_sejours + WHERE p_factures.no_sejour = p_sejours.no_sejour AND + type_sejour = '3' AND + ( + date_fin = date(date_debut + interval '1 day') OR + date_fin = '20991231' + ) + ; + -- Les GMT saisis en hospitalisation complète ne doivent pas être traités + DELETE FROM activite.p_factures_lignes_non_facturees_c + USING( + SELECT + no_facture + , prestation_id + FROM activite.p_factures_lignes_non_facturees_c + JOIN activite.t_prestations ON p_factures_lignes_non_facturees_c.prestation_id = t_prestations.oid + JOIN activite.t_lieux ON t_lieux.oid = p_factures_lignes_non_facturees_c.lieu_id + JOIN activite.t_services_facturation ON t_lieux.service_facturation_id = t_services_facturation.oid + JOIN base.t_modes_traitement ON t_services_facturation.mode_traitement_id = t_modes_traitement.oid + WHERE t_prestations.code = 'GMT' + AND t_modes_traitement.code = '03' + GROUP BY + no_facture + , prestation_id + ) subview + WHERE + p_factures_lignes_non_facturees_c.no_facture = subview.no_facture + AND p_factures_lignes_non_facturees_c.prestation_id = subview.prestation_id + ; + -- Initialisation des tiers payant sur les non facturés (cas de CEGI LOGHOS ou de SIGEMS, les tiers payant ne sont pas connu sur les non facturés + + + -- D'abord selon le tiers connu sur le patient + UPDATE activite.p_factures SET + tiers_payant_1_id = subview.tiers_payant_1_id, + tiers_payant_2_id = subview.tiers_payant_2_id + FROM + ( + SELECT p_factures.no_facture, subview.tiers_payant_1_id, subview.tiers_payant_2_id + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN + ( + SELECT no_patient, + (MAX(ARRAY[date_entree::text,p_factures.tiers_payant_1_id::text]))[2]::bigint AS tiers_payant_1_id, + (MAX(ARRAY[date_entree::text,p_factures.tiers_payant_2_id::text]))[2]::bigint AS tiers_payant_2_id + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + WHERE p_factures.tiers_payant_1_id <> 0 + GROUP BY 1 + ) subview ON p_sejours.no_patient = subview.no_patient + WHERE p_factures.code_facture = '0' AND + p_factures.tiers_payant_1_id = 0 + ) subview + WHERE p_factures.no_facture = subview.no_facture + ; + + -- Pour le reste, le code NR1 + UPDATE activite.p_factures + SET tiers_payant_1_id = t_tiers_payant.oid + FROM activite.t_tiers_payant + WHERE p_factures.code_facture = '0' AND + p_factures.tiers_payant_1_id = 0 AND + t_tiers_payant.code_original = '*CTINR1' + ; + + + -- désactivation index + RAISE NOTICE '%' , 'Initialisations. Desactivation index'; + PERFORM base.cti_disable_index('activite', 'i_factures_encours_2'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_4'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_5'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_6'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_7'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_8'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_9'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_10'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_11'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_lignes_c_2'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_lignes_c_3'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_lignes_c_4'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_lignes_c_5'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_lignes_c_6'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_lignes_c_7'); + PERFORM base.cti_disable_index('activite', 'i_factures_encours_lignes_c_8'); + RAISE NOTICE '%' , 'Initialisations. Creation tables de travail'; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_calcul_parametres') THEN + CREATE TEMP TABLE w_cti_encours_calcul_parametres + ( + date_encours date, + coefficient_mco numeric, + rubrique_facturation_ghs_id bigint, + rubrique_comptabilisation_ghs_id bigint, + prestation_ghs_id bigint, + rubrique_facturation_ghs_sea_id bigint, + rubrique_comptabilisation_ghs_sea_id bigint, + prestation_ghs_sea_id bigint, + rubrique_facturation_exh_id bigint, + rubrique_comptabilisation_exh_id bigint, + prestation_exh_id bigint, + rubrique_facturation_i01_id bigint, + rubrique_comptabilisation_i01_id bigint, + prestation_i01_id bigint + ) ; + END IF; + + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_calcul_parametres_services') THEN + CREATE TEMP TABLE w_cti_encours_calcul_parametres_services + ( + service_facturation_id bigint, + type_sejour text, + rubrique_facturation_ghs_id bigint, + prestation_ghs_id bigint, + rubrique_facturation_exh_id bigint, + prestation_exh_id bigint + ); + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_calcul_parametres_services_prestations') THEN + CREATE TEMP TABLE w_cti_encours_calcul_parametres_services_prestations + ( + coefficient_mco numeric, + lieu_service_id bigint, + lieu_unite_fonctionnelle_id bigint, + nb_ambulatoires numeric, + nb_externes numeric, + nb_seances numeric, + nb_journees numeric, + nb_journees_cp numeric, + prestation_id bigint, + prestation_code text, + tranche_ght text, + prestation_type_valorisation text, + rubrique_facturation_id bigint, + prix_unitaire numeric, + nombre numeric, + coefficient numeric, + prix_unitaire_moyen_1 numeric, + nb_prix_unitaire_moyen_1 numeric, + prix_unitaire_moyen_3 numeric, + nb_prix_unitaire_moyen_3 numeric, + prix_unitaire_moyen numeric, + regle_prestation_texte text, + coefficient_calcule numeric DEFAULT 0, + prix_unitaire_calcule numeric DEFAULT 0, + coefficient_is_force text DEFAULT '0', + prix_unitaire_is_force text DEFAULT '0', + type_ligne text DEFAULT '', + prestation_10p_code text DEFAULT '', + rubrique_code text DEFAULT '', + rubrique_10p_code text DEFAULT '', + prestation_10p_id bigint DEFAULT 0, + rubrique_10p_id bigint DEFAULT 0 + ); + END IF; + + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_calcul_parametres_services_journees') THEN + CREATE TEMP TABLE w_cti_encours_calcul_parametres_services_journees + ( + lieu_service_id bigint, + lieu_unite_fonctionnelle_id bigint, + nb_ambulatoires numeric, + nb_externes numeric, + nb_seances numeric, + nb_journees bigint, + nb_journees_cp bigint + ); + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_sejours') THEN + CREATE TEMP TABLE w_cti_encours_sejours + ( + sejour_id bigint NOT NULL, + no_sejour text NOT NULL, + type_sejour character(1), + est_budget_global text, + secteur_tarif text default '2', + medecin_sejour_id bigint, + specialite_medecin_sejour_id bigint, + lieu_sortie_service_id bigint, + lieu_sortie_unite_fonctionnelle_id bigint, + code_sorti numeric(1), + lieu_sortie_id bigint, + mode_sortie character(1), + date_groupage date, + tiers_payant_1_id bigint, + tiers_payant_2_id bigint, + nb_ghs numeric, + ghm_id bigint, + ghs_id bigint, + ghs_bebe1_id bigint, + ghs_bebe2_id bigint, + ghs_bebe3_id bigint, + particularites_encours_service text, + type_t2a text, + CONSTRAINT w_cti_encours_sejours_pkey PRIMARY KEY (no_sejour) + ) ; + END IF; + + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_histo_sejour_facture') THEN + CREATE TEMP TABLE w_cti_encours_histo_sejour_facture + ( + no_sejour text, + date_fin date, + classe_ghm text default '', + medecin_sejour_id bigint, + specialite_medecin_sejour_id bigint, + lieu_sortie_service_id bigint, + lieu_sortie_unite_fonctionnelle_id bigint, + nb_ghs numeric, + tranche_sejour text, + duree_sejour integer, + montant_ghs numeric, + montant_ghs_original numeric, + taux_0 numeric, + taux_1 numeric, + taux_2 numeric + ) ; + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_histo_ghs') THEN + CREATE TEMP TABLE w_cti_encours_histo_ghs + ( + classe_ghm text, + regle text, + medecin_sejour_id bigint, + specialite_medecin_sejour_id bigint, + lieu_sortie_service_id bigint, + lieu_sortie_unite_fonctionnelle_id bigint, + tranche_sejour text, + duree_sejour integer, + nombre bigint, + montant_moyen_ghs numeric, + medecin_sejour_texte text default '', + specialite_medecin_sejour_texte text default '', + lieu_sortie_service_texte text default '', + lieu_sortie_unite_fonctionnelle_texte text default '', + tranche_sejour_texte text default '', + duree_sejour_texte text default '' + ) ; + CREATE INDEX w_cti_encours_histo_ghs_i1 + ON w_cti_encours_histo_ghs + USING btree + (medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id) + ; + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_histo_dms_sejours') THEN + CREATE TEMP TABLE w_cti_encours_histo_dms_sejours + ( + no_sejour text, + medecin_sejour_id bigint, + specialite_medecin_sejour_id bigint, + lieu_sortie_service_id bigint, + lieu_sortie_unite_fonctionnelle_id bigint, + date_fin date, + date_debut date + ) ; + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_histo_dms') THEN + CREATE TEMP TABLE w_cti_encours_histo_dms + ( + regle text, + medecin_sejour_id bigint, + specialite_medecin_sejour_id bigint, + lieu_sortie_service_id bigint, + lieu_sortie_unite_fonctionnelle_id bigint, + dms numeric, + occurences bigint + ) ; + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_ghm_sans_ghs') THEN + CREATE TEMP TABLE w_cti_encours_ghm_sans_ghs + ( + ghm_id bigint + ) ; + END IF; + TRUNCATE w_cti_encours_ghm_sans_ghs; + INSERT INTO w_cti_encours_ghm_sans_ghs + SELECT oid + FROM base.t_ghm + WHERE code IN ('14Z08Z') + ; + INSERT INTO w_cti_encours_ghm_sans_ghs + SELECT oid + FROM base.t_ghm + JOIN activite.t_divers ON t_divers.code = 'ENCOURSGHMSANSGHS' + WHERE t_divers.valeur LIKE '%' || t_ghm.code || '%' AND + oid <> 0 AND + length(t_ghm.code) = 6 AND + t_ghm.code <> '14Z08Z' + ; + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_factures + ( + oid bigint, + sejour_id bigint NOT NULL, + no_sejour text NOT NULL, + type_sejour text, + classe_ghm text, + no_facture text NOT NULL, + no_facture_encours text NOT NULL, + no_facture_reference text NOT NULL, + date_encours date, + date_debut date, + date_fin date, + lieu_sortie_id bigint, + mode_sortie text, + ghs_id bigint DEFAULT 0, + ghm_id bigint DEFAULT 0, + code_cp_demandee character(1) DEFAULT 0, + montant_valorise_c numeric(13,2) DEFAULT 0, + montant_valorise_0_c numeric(13,2) DEFAULT 0, + montant_valorise_1_c numeric(13,2) DEFAULT 0, + montant_valorise_2_c numeric(13,2) DEFAULT 0, + montant_encours_c numeric(13,2) DEFAULT 0, + montant_encours_0_c numeric(13,2) DEFAULT 0, + montant_encours_1_c numeric(13,2) DEFAULT 0, + montant_encours_2_c numeric(13,2) DEFAULT 0, + montant_valorise_h numeric(13,2) DEFAULT 0, + etat character(1) DEFAULT ''::bpchar, + type_t2a character(1) DEFAULT '0'::bpchar, + est_budget_global text, + secteur_tarif text default '2', + ghs_bebe1_id bigint DEFAULT 0, + ghs_bebe2_id bigint DEFAULT 0, + ghs_bebe3_id bigint DEFAULT 0, + code_sorti character(1) DEFAULT '0'::bpchar, + lieu_sortie_service_id bigint DEFAULT 0, + lieu_sortie_unite_fonctionnelle_id bigint DEFAULT 0, + medecin_sejour_id bigint DEFAULT 0, + specialite_medecin_sejour_id bigint, + duree_sejour integer DEFAULT 0, + tranche_sejour character(1) DEFAULT '0'::bpchar, + regle_ghs text DEFAULT ''::text, + regle_dms text DEFAULT '0'::text, + dms numeric default 0, + tiers_payant_1_id bigint, + tiers_payant_2_id bigint, + particularites_encours_service text, + uniquement_prestations_saisies text default '0', + ignorer text default '0', + CONSTRAINT w_cti_encours_factures_pkey PRIMARY KEY (no_facture) + ); + + CREATE INDEX IF NOT EXISTS w_cti_encours_factures_i1 + ON w_cti_encours_factures + USING btree + (no_sejour); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_factures_deja_cpc + ( + no_facture_reference text NOT NULL, + CONSTRAINT w_cti_encours_factures_deja_cpc_pkey PRIMARY KEY (no_facture_reference) + ); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_factures_histo_taux + ( + service_facturation_id bigint, + taux_ghs_1 numeric, + nb numeric, + regle_taux_texte text, + CONSTRAINT w_cti_encours_factures_histo_taux_pkey PRIMARY KEY (service_facturation_id) + ); + + CREATE TEMP SEQUENCE IF NOT EXISTS w_cti_encours_factures_lignes_c_sequence; + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_factures_lignes_c + ( + oid bigint NOT NULL DEFAULT nextval('w_cti_encours_factures_lignes_c_sequence'::regclass), + no_sejour text NOT NULL, + no_facture text NOT NULL, + date_debut date, + date_fin date, + nb_rubrique numeric(5) DEFAULT 1, + coefficient numeric(7,2) DEFAULT 1, + coefficient_mco numeric(7,4) DEFAULT 1, + prestation_id bigint DEFAULT 0, + lpp_id bigint DEFAULT 0, + ucd_id bigint DEFAULT 0, + rubrique_facturation_id bigint DEFAULT 0, + rubrique_comptabilisation_id bigint DEFAULT 0, + ghs_id bigint DEFAULT 0, + prix_unitaire numeric(13,2) DEFAULT 0, + borne_basse numeric(5) DEFAULT 0, + borne_haute numeric(5) DEFAULT 0, + forfait_exb numeric(13,2) DEFAULT 0, + tarif_exb numeric(13,2) DEFAULT 0, + duree_sejour numeric(7) DEFAULT 0, + nb_prestation numeric(5) DEFAULT 1, + montant_encours numeric(13,2) DEFAULT 0, + montant_encours_0 numeric(13,2) DEFAULT 0, + montant_encours_1 numeric(13,2) DEFAULT 0, + montant_encours_2 numeric(13,2) DEFAULT 0, + montant_encours_22 numeric(13,2) DEFAULT 0, + type_ligne text DEFAULT ''::text, + regle_ghs text DEFAULT ''::text, + lieu_id bigint DEFAULT 0, + regle_coefficient numeric DEFAULT 0, + regle_texte text, + prix_unitaire_calcule numeric(13,2) DEFAULT 0, + coefficient_calcule numeric(13,2) DEFAULT 0, + ignorer text default '0' + ); + + CREATE INDEX IF NOT EXISTS w_cti_encours_factures_lignes_c_i1 + ON w_cti_encours_factures_lignes_c + USING btree + (no_facture); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_factures_lignes_non_facturees_c + ( + no_sejour text, + no_facture text, + prestation_code character varying, + only_jour_sortie text, + type_valorisation_non_facture text + ); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_actes_se1234 + ( + oid bigint, + code text, + prestation_code text + ); + CREATE INDEX IF NOT EXISTS w_cti_encours_actes_se1234_i1 + ON w_cti_encours_actes_se1234 + USING btree + (oid); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_se1234 + ( + no_facture text, + acte_se text, + type_se text + ); + + CREATE INDEX IF NOT EXISTS w_cti_encours_se1234_i1 + ON w_cti_encours_se1234 + USING btree + (no_facture); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_factures_lignes_sup_c + ( + from_oid bigint, + prestation_code text, + date_debut_ghs date, + date_fin_ghs date, + nb_prestation_ghs integer, + oid bigint, + no_sejour text, + no_facture text, + date_debut date, + date_fin date, + nb_rubrique numeric(5), + coefficient numeric(7,2), + coefficient_mco numeric(7,4), + prestation_id bigint, + lpp_id bigint DEFAULT 0, + ucd_id bigint DEFAULT 0, + rubrique_facturation_id bigint, + rubrique_comptabilisation_id bigint, + ghs_id bigint, + prix_unitaire numeric(13,2), + borne_basse numeric(5), + borne_haute numeric(5), + forfait_exb numeric(13,2), + tarif_exb numeric(13,2), + duree_sejour numeric(7), + nb_prestation numeric(5), + montant_encours numeric(13,2), + montant_encours_0 numeric(13,2), + montant_encours_1 numeric(13,2), + montant_encours_2 numeric(13,2), + montant_encours_22 numeric(13,2), + type_ligne text, + regle_ghs text, + lieu_id bigint, + regle_coefficient numeric, + regle_texte text, + prix_unitaire_calcule numeric(13,2) DEFAULT 0, + coefficient_calcule numeric(13,2) DEFAULT 0, + ignorer text default '0' + ); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_factures_lignes_sup_c_gen + ( + from_oid bigint, + no_sejour text, + no_facture text, + date_debut date, + date_fin date, + lieu_id bigint, + rubrique_facturation_id bigint, + rubrique_comptabilisation_id bigint, + prestation_id bigint, + lpp_id bigint DEFAULT 0, + ucd_id bigint DEFAULT 0, + nb_rubrique integer, + nb_prestation integer, + coefficient numeric(7,2), + coefficient_mco numeric(7,4), + prix_unitaire numeric(13,2), + oid bigint, + montant_encours numeric, + type_ligne text, + regle_ghs text, + regle_coefficient numeric, + regle_texte text + ); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_factures_lignes_sup_c_gen_tot + ( + from_oid bigint, + nb_rubrique bigint, + nb_prestation bigint, + montant_encours numeric + ); + + CREATE TEMP TABLE IF NOT EXISTS w_cti_encours_repartition_tp + ( + rubrique_facturation_id bigint NOT NULL, + coeff_1 numeric, + coeff_2 numeric, + CONSTRAINT w_cti_encours_repartition_tp_pk PRIMARY KEY (rubrique_facturation_id) + ); + + RAISE NOTICE '%' , 'Initialisations. Repartition par tiers payant'; + + TRUNCATE w_cti_encours_repartition_tp; + + INSERT INTO w_cti_encours_repartition_tp + SELECT + rubrique_facturation_id, + base.cti_division(SUM(montant_facture_1) , SUM(montant_facture)) AS coeff_1, + base.cti_division(SUM(montant_facture_2 + montant_facture_22) , SUM(montant_facture)) AS coeff_2 + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + WHERE tiers_payant_1_id <> 0 ANd montant_facture <> 0 AND + p_factures_lignes_c.date_fin BETWEEN '20100301' AND w_NOW + GROUP BY 1; + UPDATE w_cti_encours_repartition_tp SET coeff_2 = 0 WHERE coeff_2 < 0.01; + UPDATE w_cti_encours_repartition_tp SET coeff_2 = 1 - coeff_1 WHERE coeff_2 >= 0.01 AND 1 - coeff_1 - coeff_2 < 0.01; + + -- Ménage selon paramétrage + IF i_option NOT ILIKE '%-nogen%' THEN + DELETE + FROM activite.p_factures_encours + WHERE code_origine = 'C' AND date_encours < (SELECT date(date_trunc('month',base.cti_to_date(valeur))) FROM activite.t_divers WHERE code = 'DATESTARTENCOURS') + ; + DELETE FROM activite.p_factures_encours_lignes_c + WHERE NOT EXISTS (SELECT 'NOT_TO_DELETE' FROM activite.p_factures_encours WHERE p_factures_encours.no_facture = p_factures_encours_lignes_c.no_facture) + AND p_factures_encours_lignes_c IS NOT NULL; + END IF; + -- Retraitement d'un mois + IF i_date_encours IS NOT NULL AND i_option NOT ILIKE '%-nogen%' THEN + DELETE FROM activite.p_factures_encours + USING w_cti_encours_calcul_parametres + WHERE date_trunc('month',p_factures_encours.date_encours) >= date_trunc('month',i_date_encours) AND + code_origine = 'C'; + + DELETE FROM activite.p_factures_encours_lignes_c + WHERE NOT EXISTS (SELECT 'NOT_TO_DELETE' FROM activite.p_factures_encours WHERE p_factures_encours.no_facture = p_factures_encours_lignes_c.no_facture) + AND p_factures_encours_lignes_c IS NOT NULL; + END IF; + -- Génération ou regénération des encours + RAISE NOTICE '%' , 'Generation encours'; + -- date encours actuelle spécial SHS + w_date_encours_actuelle_shs = + CASE WHEN EXISTS(SELECT nspname from pg_namespace where nspname = 'prod_shs') + THEN (SELECT date(date_trunc('month', MAX(date_vente)) + interval '2 month' - interval '1 day') + FROM activite.p_factures + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_rubriques_facturation ON rubrique_facturation_id = t_rubriques_facturation.oid AND t_rubriques_facturation.code_original = '111' + WHERE code_vente = '1') + ELSE '2099-12-31' END; + -- date encours actuelle standard + w_date_encours_actuelle = date(CASE WHEN EXTRACT('day' FROM w_NOW) <= _DATEENCOURS THEN date_trunc('month', w_NOW) - interval '1 day' ELSE date_trunc('month', w_NOW) + interval '1 month' - interval '1 day' END); + -- Pour SHS, Si date en cours < date standard (ventes pas faites) + IF w_date_encours_actuelle_shs < w_date_encours_actuelle THEN + w_date_encours_actuelle = w_date_encours_actuelle_shs; + END IF; + -- Stockage date encours active + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur_date) + SELECT + 'ENCOURSNOW', + 'Date encours calculés', + w_date_encours_actuelle::text, + 'Date des encours actuellement calculés (non modifiable)', + w_date_encours_actuelle + WHERE 'ENCOURSNOW' NOT IN (SELECT code FROM activite.t_divers); + UPDATE activite.t_divers SET + valeur = w_date_encours_actuelle::text, + valeur_date = w_date_encours_actuelle + WHERE code = 'ENCOURSNOW' + ; + + w_date_encours = _DATESTARTENCOURS; + IF i_option ILIKE '%-nogen%' THEN + w_date_encours = date(date_trunc('month', w_date_encours_actuelle) - interval '1 day'); + END IF; + IF NOT EXISTS (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSACTIVE' AND valeur = '1') THEN + w_date_encours = date(date_trunc('month', w_date_encours_actuelle) - interval '1 day'); + END IF; + LOOP + w_date_encours = date(date_trunc('month', w_date_encours) + interval '2 month' - interval '1 day'); + w_date_encours_YYMM = to_char(w_date_encours, 'MM YYYY'); + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Generation encours. Analyse.'; + IF w_date_encours > date(date_trunc('month',now())+interval '2 month') THEN + EXIT; + END IF; + IF w_date_encours > w_date_encours_actuelle THEN + EXIT; + END IF; + IF i_date_encours IS NOT NULL AND w_date_encours > i_date_encours THEN + EXIT; + END IF; + IF w_date_encours < w_date_encours_actuelle AND + EXISTS (SELECT date_encours FROM activite.p_factures_encours WHERE code_origine = 'C' AND date_trunc('month', date_encours) = date_trunc('month', w_date_encours) LIMIT 1) THEN + CONTINUE; + END IF; + IF w_date_encours < w_date_encours_actuelle AND + NOT EXISTS (SELECT date_vente FROM activite.p_factures WHERE code_vente = '1' AND date_trunc('month', date_vente) = date_trunc('month', w_date_encours) LIMIT 1) THEN + CONTINUE; + END IF; + + IF w_date_encours = w_date_encours_actuelle THEN + w_date_traitement = w_NOW; + w_date_sortie_max = w_NOW + CASE WHEN date_part('hour' ,w_NOW) > 18 THEN interval '1 day' ELSE interval '0 day' END; + ELSE + w_date_traitement = w_date_encours + interval '15 days'; + w_date_sortie_max = w_date_traitement; + END IF; + w_date_traitement = date(w_date_traitement); + + w_date_histo_18 = date(date_trunc('month',w_date_encours) - interval '18 month'); + w_date_histo_12 = date(date_trunc('month',w_date_encours) - interval '12 month'); + w_date_histo_xx = w_date_histo_18; + w_date_histo_coeff_presta = date(date_trunc('month',w_date_encours) - (_ENCOURSRETROSUP || 'month')::interval); + + RAISE NOTICE '%. %' , w_date_histo_coeff_presta, 'Date de calcul coefficient prestations ENCOURSRETROSUP'; + + w_date_sortie_max = date(w_date_sortie_max); + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Generation encours ' || w_date_encours_YYMM || ' ' || w_date_traitement::text; + -- Raz tables de travail + TRUNCATE w_cti_encours_calcul_parametres; + TRUNCATE w_cti_encours_calcul_parametres_services; + TRUNCATE w_cti_encours_calcul_parametres_services_prestations; + TRUNCATE w_cti_encours_calcul_parametres_services_journees; + TRUNCATE w_cti_encours_sejours; + TRUNCATE w_cti_encours_histo_sejour_facture; + TRUNCATE w_cti_encours_histo_ghs; + TRUNCATE w_cti_encours_histo_dms_sejours; + TRUNCATE w_cti_encours_histo_dms; + TRUNCATE w_cti_encours_factures_histo_taux; + TRUNCATE w_cti_encours_factures; + TRUNCATE w_cti_encours_factures_deja_cpc; + TRUNCATE w_cti_encours_factures_lignes_c; + TRUNCATE w_cti_factures_lignes_non_facturees_c; + TRUNCATE w_cti_encours_se1234; + TRUNCATE w_cti_encours_actes_se1234; + TRUNCATE w_cti_encours_factures_lignes_sup_c; + TRUNCATE w_cti_encours_factures_lignes_sup_c_gen; + TRUNCATE w_cti_encours_factures_lignes_sup_c_gen_tot; + -- Correction coefficient MCO + -- Initialisation du coefficient MCO non alimenté (exemple WEB100T) + UPDATE activite.p_factures_lignes_c + SET coefficient_mco = coefficient_mco_calcul + FROM activite.t_prestations, base.v_coefficient_mco + WHERE + prestation_id = t_prestations.oid AND + t_prestations.code IN ('GHS', 'EXH') AND + montant_facture <> 0 AND + coefficient_mco = 1 AND + date(p_factures_lignes_c.date_fin) BETWEEN v_coefficient_mco.date_debut AND v_coefficient_mco.date_fin + ; + + + -- Paramétrage des GHS + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Parametrage GHS'; + INSERT INTO w_cti_encours_calcul_parametres + SELECT + w_date_encours as date_encours, + (MAX(Array[date(p_factures_lignes_c.date_fin) - w_NOW, coefficient_mco]))[2] AS coefficient_mco, + (MAX(Array[CASE WHEN t_prestations.code = 'GHS' AND type_sejour <> '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, rubrique_facturation_id]))[2] AS rubrique_facturation_ghs_id, + (MAX(Array[CASE WHEN t_prestations.code = 'GHS' AND type_sejour <> '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, rubrique_comptabilisation_id]))[2] AS rubrique_comptabilisation_ghs_id, + (MAX(Array[CASE WHEN t_prestations.code = 'GHS' AND type_sejour <> '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, prestation_id]))[2] AS prestation_ghs_id, + (MAX(Array[CASE WHEN t_prestations.code = 'GHS' AND type_sejour = '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, rubrique_facturation_id]))[2] AS rubrique_facturation_ghs_sea_id, + (MAX(Array[CASE WHEN t_prestations.code = 'GHS' AND type_sejour = '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, rubrique_comptabilisation_id]))[2] AS rubrique_comptabilisation_ghs_sea_id, + (MAX(Array[CASE WHEN t_prestations.code = 'GHS' AND type_sejour = '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, prestation_id]))[2] AS prestation_ghs_sea_id, + (MAX(Array[CASE WHEN t_prestations.code = 'EXH' AND type_sejour <> '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, rubrique_facturation_id]))[2] AS rubrique_facturation_exh_id, + (MAX(Array[CASE WHEN t_prestations.code = 'EXH' AND type_sejour <> '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, rubrique_comptabilisation_id]))[2] AS rubrique_comptabilisation_exh_id, + (MAX(Array[CASE WHEN t_prestations.code = 'EXH' AND type_sejour <> '5' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, prestation_id]))[2] AS prestation_exh_id, + (MAX(Array[CASE WHEN t_prestations.code = 'I01' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, rubrique_facturation_id]))[2] AS rubrique_facturation_I01_id, + (MAX(Array[CASE WHEN t_prestations.code = 'I01' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, rubrique_comptabilisation_id]))[2] AS rubrique_comptabilisation_I01_id, + (MAX(Array[CASE WHEN t_prestations.code = 'I01' THEN date(p_factures_lignes_c.date_fin) - w_NOW ELSE -99999999 END, prestation_id]))[2] AS prestation_I01_id + FROM + activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture AND p_factures.date_fin >= w_date_histo_18 + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND t_prestations.code IN ('GHS', 'EXH', 'I01') + WHERE montant_facture <> 0 AND + p_factures_lignes_c.date_fin BETWEEN w_date_histo_18 AND w_date_traitement AND montant_facture > 0; + -- Prestations et rubriques par défaut + UPDATE w_cti_encours_calcul_parametres SET + coefficient_mco = COALESCE(coefficient_mco, 1), + prestation_ghs_id = COALESCE(prestation_ghs_id, (SELECT oid FROM activite.t_prestations WHERE code = 'GHS')), + rubrique_facturation_ghs_id = COALESCE(rubrique_facturation_ghs_id, (SELECT oid FROM activite.t_rubriques_facturation WHERE code = 'GHS')), + rubrique_comptabilisation_ghs_id = COALESCE(rubrique_comptabilisation_ghs_id, (SELECT oid FROM activite.t_rubriques_facturation WHERE code = 'GHS')), + prestation_ghs_sea_id = COALESCE(prestation_ghs_sea_id, (SELECT oid FROM activite.t_prestations WHERE code = 'GHS')), + rubrique_facturation_ghs_sea_id = COALESCE(rubrique_facturation_ghs_sea_id, (SELECT oid FROM activite.t_rubriques_facturation WHERE code = 'GHS')), + rubrique_comptabilisation_ghs_sea_id = COALESCE(rubrique_comptabilisation_ghs_sea_id, (SELECT oid FROM activite.t_rubriques_facturation WHERE code = 'GHS')), + prestation_exh_id = COALESCE(prestation_exh_id, (SELECT oid FROM activite.t_prestations WHERE code = 'EXH')), + rubrique_facturation_exh_id = COALESCE(rubrique_facturation_exh_id, (SELECT oid FROM activite.t_rubriques_facturation WHERE code = 'EXH')), + rubrique_comptabilisation_exh_id = COALESCE(rubrique_comptabilisation_exh_id, (SELECT oid FROM activite.t_rubriques_facturation WHERE code = 'EXH')), + prestation_i01_id = COALESCE(prestation_i01_id, (SELECT oid FROM activite.t_prestations WHERE code = 'I01')), + rubrique_facturation_i01_id = COALESCE(rubrique_facturation_i01_id, (SELECT oid FROM activite.t_rubriques_facturation WHERE code = 'I01')), + rubrique_comptabilisation_i01_id = COALESCE(rubrique_comptabilisation_i01_id, (SELECT oid FROM activite.t_rubriques_facturation WHERE code = 'I01')) + ; + -- forcage coefficient mco selon calcul et non plus depuis la facturation + UPDATE w_cti_encours_calcul_parametres + SET coefficient_mco = coefficient_mco_calcul + FROM base.v_coefficient_mco + WHERE date(now()) BETWEEN v_coefficient_mco.date_debut AND v_coefficient_mco.date_fin + ; + -- Par service + INSERT INTO w_cti_encours_calcul_parametres_services + SELECT + service_facturation_id, + type_sejour, + (MAX(CASE WHEN prestation_code = 'GHS' THEN ARRAY[to_char(nb,'FM0000000000'),rubrique_facturation_id::text] ELSE NULL END))[2]::bigint, + (MAX(CASE WHEN prestation_code = 'GHS' THEN ARRAY[to_char(nb,'FM0000000000'),prestation_id::text] ELSE NULL END))[2]::bigint, + (MAX(CASE WHEN prestation_code = 'EXH' THEN ARRAY[to_char(nb,'FM0000000000'),rubrique_facturation_id::text] ELSE NULL END))[2]::bigint, + (MAX(CASE WHEN prestation_code = 'EXH' THEN ARRAY[to_char(nb,'FM0000000000'),prestation_id::text] ELSE NULL END))[2]::bigint + FROM + ( + SELECT + type_sejour, + t_lieux.service_facturation_id, + t_prestations.code AS prestation_code, + prestation_id, + rubrique_facturation_id, + count(*) AS nb + FROM + activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND t_prestations.code IN ('GHS', 'EXH') + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + WHERE montant_facture <> 0 AND + p_factures_lignes_c.date_fin BETWEEN w_date_histo_18 AND w_date_traitement AND montant_facture > 0 + GROUP BY 1,2,3,4,5 + HAVING count(*) > 10 + ) subview + GROUP BY 1,2 + ; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Historique facturation prestations'; + + INSERT INTO w_cti_encours_calcul_parametres_services_prestations + SELECT w_cti_encours_calcul_parametres.coefficient_mco, + t_lieux.service_facturation_id AS lieu_service_id, + t_lieux.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + 0::numeric AS nb_ambulatoires, + 0::numeric AS nb_externes, + 0::numeric AS nb_seances, + 0::numeric AS nb_journees, + 0::numeric AS nb_journees_cp, + prestation_id, + t_prestations.code AS prestation_code, + CASE + WHEN t_prestations.code = 'GHT' AND p_factures_lignes_c.date_debut - p_sejours.date_entree <= 3 THEN '1' + WHEN t_prestations.code = 'GHT' AND p_factures_lignes_c.date_debut - p_sejours.date_entree BETWEEN 4 AND 8 THEN '2' + WHEN t_prestations.code = 'GHT' AND p_factures_lignes_c.date_debut - p_sejours.date_entree BETWEEN 9 AND 30 THEN '3' + WHEN t_prestations.code = 'GHT' AND p_factures_lignes_c.date_debut - p_sejours.date_entree > 30 THEN '9' + ELSE '' END AS tranche_ght, + COALESCE(t_prestations.type_valorisation_non_facture,'') AS prestation_type_valorisation, + rubrique_facturation_id, + COALESCE((MAX(Array[date(p_factures_lignes_c.date_fin) - w_NOW, prix_unitaire]))[2],0) as prix_unitaire, + SUM(nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END) - + SUM(CASE WHEN p_sejours.type_sejour = '1' AND p_factures_lignes_c.date_fin = p_sejours.date_sortie AND (t_prestations.code IN ('CPC', 'SHO', 'CP') OR t_prestations.type_valorisation_non_facture IN ('CP')) THEN 1 ELSE 0 END) as nombre, + 0::numeric AS coefficient, + base.cti_division( + SUM(CASE WHEN p_factures_lignes_c.date_debut >= date(date_trunc('month',w_cti_encours_calcul_parametres.date_encours)) THEN CASE WHEN taux_1+taux_2+taux_0 = 100 THEN montant_facture ELSE nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END * prix_unitaire END ELSE 0 END) , + SUM(CASE WHEN p_factures_lignes_c.date_debut >= date(date_trunc('month',w_cti_encours_calcul_parametres.date_encours)) THEN nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END ELSE 0 END) + ) AS prix_unitaire_moyen_1, + SUM(CASE WHEN p_factures_lignes_c.date_debut >= date(date_trunc('month',w_cti_encours_calcul_parametres.date_encours)) THEN nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END ELSE 0 END) AS nb_prix_unitaire_moyen_1, + base.cti_division( + SUM(CASE WHEN p_factures_lignes_c.date_debut >= w_cti_encours_calcul_parametres.date_encours - interval '3 month' THEN CASE WHEN taux_1+taux_2+taux_0 = 100 THEN montant_facture ELSE nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END * prix_unitaire END ELSE 0 END) , + SUM(CASE WHEN p_factures_lignes_c.date_debut >= w_cti_encours_calcul_parametres.date_encours - interval '3 month' THEN nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END ELSE 0 END) + ) AS prix_unitaire_moyen_3, + SUM(CASE WHEN p_factures_lignes_c.date_debut >= w_cti_encours_calcul_parametres.date_encours - interval '3 month' THEN nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END ELSE 0 END) AS nb_prix_unitaire_moyen_3, + base.cti_division( + SUM(CASE WHEN taux_1+taux_2+taux_0 = 100 THEN montant_facture ELSE nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END * prix_unitaire END), + SUM(nb_rubrique * CASE WHEN coefficient <> 0 THEN coefficient ELSE 1 END) + ) AS prix_unitaire_moyen, + ''::text AS regle_prestation_texte, + 0::numeric AS coefficient_calcule, + 0::numeric AS prix_unitaire_calcule, + '0'::text AS coefficient_is_force, + '0'::text AS prix_unitaire_is_force, + ''::text AS type_ligne, + ''::text AS prestation_10p_code, + ''::text AS rubrique_code, + ''::text AS rubrique_10p_code, + 0::bigint AS prestation_10p_id, + 0::bigint AS rubrique_10p_id + FROM w_cti_encours_calcul_parametres, activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture AND type_facture NOT IN ('E') AND code_facture >= '1' AND p_factures.date_fin >= w_date_histo_coeff_presta + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.p_sejours On p_factures.no_sejour = p_sejours.no_sejour + WHERE p_factures_lignes_c.montant_facture <> 0 AND p_factures_lignes_c.date_fin <= w_cti_encours_calcul_parametres.date_encours AND + (t_prestations.code IN ('GMT', 'PJ', 'FJ', 'ENT', 'I01', 'PMS', 'CPC', 'SHO', 'CP','SRC','STF','REA','FJA','ATU','FPU','SE1','SE2','SE3','SE4','SE5','SE6','SE7', 'IGM', 'IGP', 'APD', 'AMD', 'AMF', 'APD', 'IMD', 'IMI', 'IPD', 'IVG', 'GHT', 'NN1', 'NN2', 'NN3', 'D09', 'D11', 'D13', 'D15', 'D16', 'DTP', 'DMASSR') OR + t_prestations.type_valorisation_non_facture IN ('GMT', 'CP','PJ','ENT','*AVGJOUSER') + ) + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13 + ORDER BY 1,2,3,4,5,6; + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET rubrique_code = t_rubriques_facturation.code + FROM activite.t_rubriques_facturation + WHERE rubrique_facturation_id = t_rubriques_facturation.oid + ; + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET prestation_10p_code = t_prestations.code, + prestation_10p_id = t_prestations.oid + FROM activite.t_prestations + WHERE ('M'||w_cti_encours_calcul_parametres_services_prestations.prestation_code = t_prestations.code AND t_prestations.code <> 'MPJ' OR + w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('GMT', 'PJ') AND t_prestations.code = 'MPJS') + ; + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET rubrique_10p_id = subview.rubrique_10p_id, rubrique_10p_code = subview.rubrique_10p_code + FROM + ( + SELECT prestation_10p_id, + (MAX(Array[date_debut::text,p_factures_lignes_c.rubrique_facturation_id::text]))[2]::bigint AS rubrique_10p_id, + (MAX(Array[date_debut::text,t_rubriques_facturation.code::text]))[2]::text AS rubrique_10p_code + FROM activite.p_factures_lignes_c + JOIN w_cti_encours_calcul_parametres_services_prestations ON p_factures_lignes_c.prestation_id = prestation_10p_id AND prestation_10p_id > 0 + JOIN activite.t_rubriques_facturation ON p_factures_lignes_c.rubrique_facturation_id = t_rubriques_facturation.oid + WHERE montant_facture <> 0 + group by 1 + ) subview + WHERE w_cti_encours_calcul_parametres_services_prestations.prestation_10p_id = subview.prestation_10p_id + ; + + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET nombre = CASE WHEN w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id = subview.rubrique_facturation_id + THEN w_cti_encours_calcul_parametres_services_prestations.nombre + ELSE 0 END + FROM + ( + SELECT lieu_service_id, + lieu_unite_fonctionnelle_id, + prestation_id, + count(*), + (MAX(Array[nombre, rubrique_facturation_id]))[2] AS rubrique_facturation_id + FROM w_cti_encours_calcul_parametres_services_prestations + WHERE prestation_code NOT IN ('CPC', 'SHO', 'CP') AND prestation_type_valorisation NOT IN ('CP') + GROUP BY 1,2,3 + HAVING count(*) > 1 + ) subview + WHERE w_cti_encours_calcul_parametres_services_prestations.lieu_service_id = subview.lieu_service_id AND + w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id = subview.lieu_unite_fonctionnelle_id AND + w_cti_encours_calcul_parametres_services_prestations.prestation_id = subview.prestation_id; + DELETE FROM w_cti_encours_calcul_parametres_services_prestations WHERE nombre = 0; + INSERT INTO w_cti_encours_calcul_parametres_services_prestations + SELECT + coefficient_mco, + lieu_service_id, + lieu_unite_fonctionnelle_id, + nb_ambulatoires, + nb_externes, + nb_seances, + nb_journees, + nb_journees_cp, + (SELECT oid FROM activite.t_prestations WHERE code = 'FJA') AS prestation_id, + 'FJA' AS prestation_code, + ''::text AS tranche_ght, + ''::text AS prestation_type_valorisation, + rubrique_facturation_id, + prix_unitaire, + nombre, + coefficient, + prix_unitaire_moyen_1, + nb_prix_unitaire_moyen_1, + prix_unitaire_moyen_3, + nb_prix_unitaire_moyen_3, + prix_unitaire_moyen, + ''::text AS regle_prestation_texte, + 0::numeric AS coefficient_calcule, + 0::numeric AS prix_unitaire_calcule, + '0'::text AS coefficient_is_force, + '0'::text AS prix_unitaire_is_force, + ''::text AS type_ligne + FROM w_cti_encours_calcul_parametres_services_prestations + WHERE prestation_code = 'FJ' AND + 'FJA' || '|' || lieu_service_id::text || '|' || lieu_unite_fonctionnelle_id::text NOT IN (SELECT prestation_code || '|' || lieu_service_id::text || '|' || lieu_unite_fonctionnelle_id::text FROM w_cti_encours_calcul_parametres_services_prestations); + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET prix_unitaire = + CASE + WHEN prix_unitaire_moyen_1 <> 0 AND nb_prix_unitaire_moyen_1 > 100 THEN + CASE WHEN prix_unitaire - prix_unitaire_moyen_1 BETWEEN -2 AND 2 THEN prix_unitaire ELSE round(prix_unitaire_moyen_1,2) END + WHEN prix_unitaire_moyen_3 <> 0 AND nb_prix_unitaire_moyen_1 > 100 THEN + CASE WHEN prix_unitaire - prix_unitaire_moyen_3 BETWEEN -2 AND 2 THEN prix_unitaire ELSE round(prix_unitaire_moyen_3,2) END + WHEN prix_unitaire_moyen <> 0 THEN + CASE WHEN prix_unitaire - prix_unitaire_moyen BETWEEN -2 AND 2 THEN prix_unitaire ELSE round(prix_unitaire_moyen,2) END + ELSE prix_unitaire + END; + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Historique occupation ' || w_date_histo_coeff_presta::text; + INSERT INTO w_cti_encours_calcul_parametres_services_journees + SELECT t_lieux.service_facturation_id AS lieu_service_id, + t_lieux.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + SUM(nb_ambulatoires) AS nb_ambulatoires, + SUM(nb_externes) AS nb_externes, + SUM(nb_seances) AS nb_seances, + COUNT(DISTINCT CASE WHEN heure_fin = 240000 OR heure_debut > 0 AND heure_fin < 240000 THEN p_mouvements_sejour.no_sejour || p_mouvements_sejour.date::text ELSE NULL END) as nb_journees, + COUNT(DISTINCT CASE WHEN est_chambre_particuliere <> '1' THEN NULL + WHEN heure_fin = 240000 OR heure_debut > 0 AND heure_fin < 240000 THEN p_mouvements_sejour.no_sejour || p_mouvements_sejour.date::text + ELSE NULL END + ) as nb_journees_cp + FROM w_cti_encours_calcul_parametres, + activite.p_mouvements_sejour + JOIN activite.p_sejours ON p_mouvements_sejour.no_sejour = p_sejours.no_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + WHERE p_mouvements_sejour.date <= w_cti_encours_calcul_parametres.date_encours AND + p_mouvements_sejour.date >= w_date_histo_coeff_presta AND + p_mouvements_sejour.no_sejour IN (SELECT no_sejour FROM activite.p_factures WHERE type_facture NOT IN ('E') AND code_facture >= '1' AND p_factures.date_fin >= w_date_histo_18) + GROUP BY 1,2; + UPDATE w_cti_encours_calcul_parametres_services_prestations SET + nb_ambulatoires = w_cti_encours_calcul_parametres_services_journees.nb_ambulatoires, + nb_externes = w_cti_encours_calcul_parametres_services_journees.nb_externes, + nb_seances = w_cti_encours_calcul_parametres_services_journees.nb_seances, + nb_journees = w_cti_encours_calcul_parametres_services_journees.nb_journees, + nb_journees_cp = w_cti_encours_calcul_parametres_services_journees.nb_journees_cp + FROM w_cti_encours_calcul_parametres_services_journees + WHERE w_cti_encours_calcul_parametres_services_journees.lieu_service_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + w_cti_encours_calcul_parametres_services_journees.lieu_unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id; + + + + -- Récupération historique d'un autre environnement (saint gatien) + IF EXISTS ( + SELECT table_name + FROM information_schema.tables + WHERE table_schema || '.' || table_name = 'activite.t_encours_calcul_parametres_services_prestations_histo' ) THEN + + INSERT INTO w_cti_encours_calcul_parametres_services_prestations + ( + coefficient_mco, + lieu_service_id, + lieu_unite_fonctionnelle_id, + nb_ambulatoires, + nb_externes, + nb_seances, + nb_journees, + nb_journees_cp, + prestation_id, + prestation_code, + tranche_ght, + prestation_type_valorisation, + rubrique_facturation_id, + prix_unitaire, + nombre, + coefficient, + prix_unitaire_moyen_1, + nb_prix_unitaire_moyen_1, + prix_unitaire_moyen_3, + nb_prix_unitaire_moyen_3, + prix_unitaire_moyen, + regle_prestation_texte, + coefficient_calcule, + prix_unitaire_calcule, + coefficient_is_force, + prix_unitaire_is_force, + type_ligne, + prestation_10p_code, + rubrique_code, + rubrique_10p_code, + prestation_10p_id, + rubrique_10p_id + ) + SELECT + t_encours_calcul_parametres_services_prestations_histo.coefficient_mco, + t_encours_calcul_parametres_services_prestations_histo.lieu_service_id, + t_encours_calcul_parametres_services_prestations_histo.lieu_unite_fonctionnelle_id, + t_encours_calcul_parametres_services_prestations_histo.nb_ambulatoires, + t_encours_calcul_parametres_services_prestations_histo.nb_externes, + t_encours_calcul_parametres_services_prestations_histo.nb_seances, + t_encours_calcul_parametres_services_prestations_histo.nb_journees, + t_encours_calcul_parametres_services_prestations_histo.nb_journees_cp, + t_encours_calcul_parametres_services_prestations_histo.prestation_id, + t_encours_calcul_parametres_services_prestations_histo.prestation_code, + t_encours_calcul_parametres_services_prestations_histo.tranche_ght, + t_encours_calcul_parametres_services_prestations_histo.prestation_type_valorisation, + t_encours_calcul_parametres_services_prestations_histo.rubrique_facturation_id, + t_encours_calcul_parametres_services_prestations_histo.prix_unitaire, + t_encours_calcul_parametres_services_prestations_histo.nombre, + t_encours_calcul_parametres_services_prestations_histo.coefficient, + t_encours_calcul_parametres_services_prestations_histo.prix_unitaire_moyen_1, + t_encours_calcul_parametres_services_prestations_histo.nb_prix_unitaire_moyen_1, + t_encours_calcul_parametres_services_prestations_histo.prix_unitaire_moyen_3, + t_encours_calcul_parametres_services_prestations_histo.nb_prix_unitaire_moyen_3, + t_encours_calcul_parametres_services_prestations_histo.prix_unitaire_moyen, + t_encours_calcul_parametres_services_prestations_histo.regle_prestation_texte, + t_encours_calcul_parametres_services_prestations_histo.coefficient_calcule, + t_encours_calcul_parametres_services_prestations_histo.prix_unitaire_calcule, + t_encours_calcul_parametres_services_prestations_histo.coefficient_is_force, + t_encours_calcul_parametres_services_prestations_histo.prix_unitaire_is_force, + t_encours_calcul_parametres_services_prestations_histo.type_ligne, + t_encours_calcul_parametres_services_prestations_histo.prestation_10p_code, + t_encours_calcul_parametres_services_prestations_histo.rubrique_code, + t_encours_calcul_parametres_services_prestations_histo.rubrique_10p_code, + t_encours_calcul_parametres_services_prestations_histo.prestation_10p_id, + t_encours_calcul_parametres_services_prestations_histo.rubrique_10p_id + FROM activite.t_encours_calcul_parametres_services_prestations_histo + LEFT JOIN w_cti_encours_calcul_parametres_services_prestations ON + t_encours_calcul_parametres_services_prestations_histo.lieu_service_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_encours_calcul_parametres_services_prestations_histo.lieu_unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + t_encours_calcul_parametres_services_prestations_histo.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + t_encours_calcul_parametres_services_prestations_histo.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + t_encours_calcul_parametres_services_prestations_histo.tranche_ght = w_cti_encours_calcul_parametres_services_prestations.tranche_ght + WHERE w_cti_encours_calcul_parametres_services_prestations.lieu_service_id IS NULL + ; + + UPDATE w_cti_encours_calcul_parametres_services_prestations SET + nb_ambulatoires = w_cti_encours_calcul_parametres_services_prestations.nb_ambulatoires + t_encours_calcul_parametres_services_prestations_histo.nb_ambulatoires, + nb_externes = w_cti_encours_calcul_parametres_services_prestations.nb_externes + t_encours_calcul_parametres_services_prestations_histo.nb_externes, + nb_seances = w_cti_encours_calcul_parametres_services_prestations.nb_seances + t_encours_calcul_parametres_services_prestations_histo.nb_seances, + nb_journees = w_cti_encours_calcul_parametres_services_prestations.nb_journees + t_encours_calcul_parametres_services_prestations_histo.nb_journees, + nb_journees_cp = w_cti_encours_calcul_parametres_services_prestations.nb_journees_cp + t_encours_calcul_parametres_services_prestations_histo.nb_journees_cp, + nombre = w_cti_encours_calcul_parametres_services_prestations.nombre + t_encours_calcul_parametres_services_prestations_histo.nombre + FROM activite.t_encours_calcul_parametres_services_prestations_histo + WHERE t_encours_calcul_parametres_services_prestations_histo.lieu_service_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_encours_calcul_parametres_services_prestations_histo.lieu_unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + t_encours_calcul_parametres_services_prestations_histo.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + t_encours_calcul_parametres_services_prestations_histo.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + t_encours_calcul_parametres_services_prestations_histo.tranche_ght = w_cti_encours_calcul_parametres_services_prestations.tranche_ght + ; + + END IF; + + + -- + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET coefficient = + CASE + WHEN base.cti_division(nombre, nb_seances) < 0.1 THEN 0 + WHEN base.cti_division(nombre, nb_seances) > 0.4 THEN 1 + ELSE round(base.cti_division(nombre, nb_seances),2) + END + WHERE prestation_code IN ('D09', 'D11', 'D13', 'D13', 'D15', 'D16', 'DTP'); + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET coefficient = + CASE + WHEN base.cti_division(nombre, nb_journees) < 0.05 THEN 0 + WHEN base.cti_division(nombre, nb_journees) < 0.1 AND nombre < 100 THEN 0 + WHEN base.cti_division(nombre, nb_journees) > 0.95 THEN 1 + ELSE round(base.cti_division(nombre, nb_journees),2) + END + WHERE prestation_code IN ('SRC', 'REA', 'STF'); + + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET coefficient = + CASE + WHEN base.cti_division(nombre, nb_journees_cp) < 0.05 THEN 0 + WHEN base.cti_division(nombre, nb_journees_cp) > 1 THEN 1 + ELSE round(base.cti_division(nombre, nb_journees_cp),2) + END + WHERE prestation_code IN ('CPC', 'SHO', 'CP') OR prestation_type_valorisation IN ('CP'); + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET nb_journees = w_cti_encours_calcul_parametres_services_prestations.nombre, + coefficient = + CASE + WHEN base.cti_division(nombre, nb_journees) < 0.1 THEN 0 + ELSE 1 + END + FROM + ( + SELECT lieu_service_id, lieu_unite_fonctionnelle_id, + base.cti_division(SUM(nombre), MAX(nb_journees)) + FROM w_cti_encours_calcul_parametres_services_prestations + WHERE prestation_code IN ('GHT') + GROUP BY 1,2 + ) subview + WHERE w_cti_encours_calcul_parametres_services_prestations.lieu_service_id = subview.lieu_service_id AND + w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id = subview.lieu_unite_fonctionnelle_id AND + prestation_code IN ('GHT'); + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET coefficient = + CASE + WHEN base.cti_division(nombre, nb_ambulatoires + nb_externes) < 0.05 THEN 0 + WHEN base.cti_division(nombre, nb_ambulatoires + nb_externes) > 1 THEN 1 + ELSE round(base.cti_division(nombre, nb_ambulatoires + nb_externes),2) + END + WHERE prestation_code IN ('AMD', 'AMF', 'IGM', 'IGP', 'APD', 'IMD', 'IMI', 'IPD', 'IVG'); + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET coefficient = + CASE + WHEN base.cti_division(nombre, nb_journees) < 0.05 THEN 0 + WHEN base.cti_division(nombre, nb_journees) > 1 THEN 1 + ELSE round(base.cti_division(nombre, nb_journees),2) + END + WHERE prestation_code IN ('NN1', 'NN2', 'NN3'); + + -- FPU à compter de janvier 2022. Initialisation provisoire + INSERT INTO activite.t_prestations(code_original, code, texte, texte_court) + SELECT 'FPU'::text, 'FPU'::text, 'Forfait patient urgences'::text, 'Forfait patient urgences'::text + WHERE 'FPU'::text NOT IN (SELECT code FROM activite.t_prestations WHERE code IS NOT NULL ) + ; + + INSERT INTO w_cti_encours_calcul_parametres_services_prestations + SELECT coefficient_mco, + lieu_service_id, + lieu_unite_fonctionnelle_id, + nb_ambulatoires, + nb_externes, + nb_seances, + nb_journees, + nb_journees_cp, + t_prestations.oid AS prestation_id, + t_prestations.code AS prestation_code, + ''::text AS tranche_ght, + prestation_type_valorisation, + rubrique_facturation_id, + 19.61::numeric as prix_unitaire, + 0::numeric as nombre, + 0::numeric AS coefficient, + 19.61::numeric as prix_unitaire_moyen_1, + 0::numeric as nb_prix_unitaire_moyen_1, + 19.61::numeric as prix_unitaire_moyen_3, + 0::numeric as nb_prix_unitaire_moyen_3, + 19.61::numeric as prix_unitaire_moyen, + regle_prestation_texte, + coefficient_calcule, + 19.61::numeric AS prix_unitaire_calcule, + coefficient_is_force, + prix_unitaire_is_force, + ''::text AS type_ligne + FROM w_cti_encours_calcul_parametres_services_prestations + JOIN activite.t_prestations ON t_prestations.code = 'FPU' + WHERE prestation_code = 'ATU' AND + (lieu_service_id::text||'-'||lieu_unite_fonctionnelle_id::text||'-'||t_prestations.code::text) NOT IN + ( + SELECT lieu_service_id::text||'-'||lieu_unite_fonctionnelle_id::text||'-'||prestation_code::text FROM w_cti_encours_calcul_parametres_services_prestations + ) + ; + + -- Le coefficient calculé est la somme des ATU FPU + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET coefficient = subview.coefficient + FROM + ( + SELECT lieu_service_id, lieu_unite_fonctionnelle_id, + CASE + WHEN base.cti_division(SUM(nombre), MAX(nb_externes)) < 0.05 THEN 0 + WHEN base.cti_division(SUM(nombre), MAX(nb_externes)) > 0.95 THEN 1 + ELSE round(base.cti_division(SUM(nombre), MAX(nb_externes)),2) + END AS coefficient + FROM w_cti_encours_calcul_parametres_services_prestations + WHERE prestation_code IN ('ATU','FPU') + GROUP BY 1,2 + ) subview + WHERE prestation_code IN ('ATU','FPU') AND + w_cti_encours_calcul_parametres_services_prestations.lieu_service_id = subview.lieu_service_id AND + w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id = subview.lieu_unite_fonctionnelle_id + ; + + -- Prix unitaire moyen par jour + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET prix_unitaire = base.cti_division(prix_unitaire_moyen * nombre , nb_journees + nb_ambulatoires) + WHERE prestation_type_valorisation = '*AVGJOUSER'; + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET prix_unitaire = 0 + WHERE prestation_type_valorisation = '*AVGJOUSER' AND + (prix_unitaire < 20 AND base.cti_division(nombre,nb_journees + nb_ambulatoires) < 0.8 OR + prix_unitaire < 1 + ); + + -- pas de séjour si absence + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET prix_unitaire = 0 + WHERE lieu_service_id IN + ( + SELECT oid + FROM activite.t_services_facturation + WHERE est_absence = '1' + ) + ; + + -- Prestations comme séjour, seulement si significatif + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET prix_unitaire = 0 + WHERE (prestation_type_valorisation IN ('PJ', 'GMT') OR prestation_code IN ('PJ', 'GMT')) AND + (prix_unitaire < 20 AND base.cti_division(nombre,nb_journees + nb_ambulatoires) < 0.8 OR + prix_unitaire < 1 + ); + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET prix_unitaire = 0 + WHERE (prestation_type_valorisation IN ('PJ', 'GMT') OR prestation_code IN ('PJ', 'GMT')) AND + (base.cti_division(nombre,nb_journees + nb_ambulatoires) < 0.2 + ); + + -- Sauvegarde des prix calcules + UPDATE w_cti_encours_calcul_parametres_services_prestations SET + coefficient_calcule = coefficient, + prix_unitaire_calcule = prix_unitaire + ; + + -- Paramètres qui ne sont pas dans l'historique + INSERT INTO w_cti_encours_calcul_parametres_services_prestations + SELECT + t_calcul_encours.coefficient_mco + , t_calcul_encours.lieu_service_id + , t_calcul_encours.lieu_unite_fonctionnelle_id + , 0::numeric AS nb_ambulatoires + , 0::numeric AS nb_externes + , 0::numeric AS nb_seances + , 0::numeric AS nb_journees + , 0::numeric AS nb_journees_cp + , t_calcul_encours.prestation_id + , t_prestations.code AS prestation_code + , ''::text AS tranche_ght + , COALESCE(t_prestations.type_valorisation_non_facture,'') AS prestation_type_valorisation + , rubrique_facturation_id + , 0::numeric AS prix_unitaire + , 0::numeric AS nombre + , 0::numeric AS coefficient + , 0::numeric AS prix_unitaire_moyen_1 + , 0::numeric AS nb_prix_unitaire_moyen_1 + , 0::numeric AS prix_unitaire_moyen_3 + , 0::numeric AS nb_prix_unitaire_moyen_3 + , 0::numeric AS prix_unitaire_moyen + , ''::text AS regle_prestation_texte + , 0::numeric AS coefficient_calcule + , 0::numeric AS prix_unitaire_calcule + , '0'::text AS coefficient_is_force + , '0'::text AS prix_unitaire_is_force + , ''::text AS type_ligne + FROM activite.t_calcul_encours + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE + type_ligne = 'PRESTA-PC' + AND ( + coefficient_is_force = '1' + OR prix_unitaire_is_force = '1' + ) + AND (lieu_service_id::text||'-'||lieu_unite_fonctionnelle_id::text||'-'||prestation_id::text||'-'||rubrique_facturation_id::text) NOT IN + ( + SELECT lieu_service_id::text||'-'||lieu_unite_fonctionnelle_id::text||'-'||prestation_id::text||'-'||rubrique_facturation_id::text + FROM w_cti_encours_calcul_parametres_services_prestations + ) + ; + + DELETE FROM activite.t_calcul_encours + WHERE type_ligne = 'PRESTA-PC' + AND NOT ( + coefficient_is_force = '1' + OR prix_unitaire_is_force = '1' + ) + AND (lieu_service_id::text||'-'||lieu_unite_fonctionnelle_id::text||'-'||prestation_id::text||'-'||rubrique_facturation_id::text) NOT IN + ( + SELECT lieu_service_id::text||'-'||lieu_unite_fonctionnelle_id::text||'-'||prestation_id::text||'-'||rubrique_facturation_id::text + FROM w_cti_encours_calcul_parametres_services_prestations + ) + ; + + -- Coefficients et prix unitaire force + UPDATE w_cti_encours_calcul_parametres_services_prestations SET + coefficient = t_calcul_encours.coefficient_force, + coefficient_is_force = '1' + FROM activite.t_calcul_encours + WHERE t_calcul_encours.lieu_service_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_calcul_encours.lieu_unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + t_calcul_encours.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'PRESTA%' AND + t_calcul_encours.coefficient_is_force = '1' + ; + + UPDATE w_cti_encours_calcul_parametres_services_prestations SET + prix_unitaire = t_calcul_encours.prix_unitaire_force, + prix_unitaire_is_force = '1' + FROM activite.t_calcul_encours + WHERE t_calcul_encours.lieu_service_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_calcul_encours.lieu_unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + t_calcul_encours.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'PRESTA%' AND + t_calcul_encours.prix_unitaire_is_force = '1' + ; + + -- Texte des règles appliquéées + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET regle_prestation_texte = + 'Coefficient ' || to_char(coefficient,'FM90D00') || + CASE WHEN coefficient_is_force <> '1' + THEN ' issu du taux de facturation de ' || prestation_code || ' (rubrique ' || t_rubriques_facturation.code || ')' || + ' : ' || to_char(nombre,'FM999999999999') || ' journées facturées sur ' || + to_char(nb_journees,'FM999999999999') || ' journées dans le service ' || + t_services_facturation.texte || ' (' || t_services_facturation.code || ') ' || + 'des séjours facturés sortis des ' || _ENCOURSRETROSUP || ' derniers mois (' || to_char(w_date_histo_coeff_presta,'DD/MM/YYYY') || ')' + ELSE ' forcé dans le paramétrage de la génération des encours ' END + FROM activite.t_services_facturation, activite.t_rubriques_facturation + WHERE lieu_service_id = t_services_facturation.oid AND + rubrique_facturation_id = t_rubriques_facturation.oid AND + w_cti_encours_calcul_parametres_services_prestations.coefficient > 0 AND + prestation_code IN ('SRC', 'REA', 'STF', 'AMD', 'AMF', 'IGM', 'IGP', 'APD', 'IMD', 'IMI', 'IPD', 'IVG', 'NN1', 'NN2', 'NN3'); + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET regle_prestation_texte = + 'Coefficient ' || to_char(coefficient,'FM90D00') || + CASE WHEN coefficient_is_force <> '1' + THEN ' issu du taux de facturation de ' || prestation_code || ' (rubrique ' || t_rubriques_facturation.code || ')' || + ' : ' || to_char(nombre,'FM999999999999') || ' journées facturées sur ' || + to_char(nb_journees_cp,'FM999999999999') || ' journées en CP dans le service ' || + t_services_facturation.texte || ' (' || t_services_facturation.code || ') ' || + 'des séjours facturés sortis des ' || _ENCOURSRETROSUP || ' derniers mois (' || to_char(w_date_histo_coeff_presta,'DD/MM/YYYY') || ')' + ELSE ' forcé dans le paramétrage de la génération des encours ' END + FROM activite.t_services_facturation, activite.t_rubriques_facturation + WHERE lieu_service_id = t_services_facturation.oid AND + rubrique_facturation_id = t_rubriques_facturation.oid AND + w_cti_encours_calcul_parametres_services_prestations.coefficient > 0 AND + (prestation_code IN ('CPC', 'SHO', 'CP') OR prestation_type_valorisation IN ('CP')); + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET regle_prestation_texte = + 'Coefficient ' || to_char(coefficient,'FM90D00') || + CASE WHEN coefficient_is_force <> '1' + THEN ' issu du taux de facturation de ' || prestation_code || ' (rubrique ' || t_rubriques_facturation.code || ')' || + ' : ' || to_char(nombre,'FM999999999999') || ' séances facturées sur ' || + to_char(nb_seances,'FM999999999999') || ' séances dans le service ' || + t_services_facturation.texte || ' (' || t_services_facturation.code || ') ' || + 'des séjours facturés sortis des ' || _ENCOURSRETROSUP || ' derniers mois (' || to_char(w_date_histo_coeff_presta,'DD/MM/YYYY') || ')' + ELSE ' forcé dans le paramétrage de la génération des encours ' END + FROM activite.t_services_facturation, activite.t_rubriques_facturation + WHERE lieu_service_id = t_services_facturation.oid AND + rubrique_facturation_id = t_rubriques_facturation.oid AND + w_cti_encours_calcul_parametres_services_prestations.coefficient > 0 AND + prestation_code IN ('D09','D11', 'D13', 'D13', 'D15', 'D16', 'DTP'); + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET regle_prestation_texte = + 'P.U. ' || to_char(prix_unitaire,'FM99999999990D00') || + CASE WHEN prix_unitaire_is_force <> '1' + THEN ' issu du P.U. moyen quotidien ' || + CASE + WHEN tranche_ght = '1' THEN '(<= 4j)' + WHEN tranche_ght = '2' THEN '(5-9j)' + WHEN tranche_ght = '3' THEN '(10-30j)' + ELSE '(> 30j)' END || ' de ' || prestation_code || ' (rubrique ' || t_rubriques_facturation.code || ')' || + ' : ' || to_char(nb_journees + nb_ambulatoires,'FM999999999999') || ' journées facturées pour un montant de ' || + to_char(prix_unitaire_moyen * nombre,'FM999999999999') || ' euros dans le service ' || + t_services_facturation.texte || ' (' || t_services_facturation.code || ') ' || + 'des séjours facturés sortis des ' || _ENCOURSRETROSUP || ' derniers mois (' || to_char(w_date_histo_coeff_presta,'DD/MM/YYYY') || ')' + ELSE ' forcé dans le paramétrage de la génération des encours ' END + FROM activite.t_services_facturation, activite.t_rubriques_facturation + WHERE lieu_service_id = t_services_facturation.oid AND + rubrique_facturation_id = t_rubriques_facturation.oid AND + w_cti_encours_calcul_parametres_services_prestations.prix_unitaire > 0 AND + (prestation_code IN ('GHT')) + ; + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET regle_prestation_texte = + 'P.U. ' || to_char(prix_unitaire,'FM99999999990D00') || + CASE WHEN prix_unitaire_is_force <> '1' + THEN ' issu du P.U. moyen quotidien de ' || prestation_code || ' (rubrique ' || t_rubriques_facturation.code || ')' || + ' : ' || to_char(nb_journees + nb_ambulatoires,'FM999999999999') || ' journées facturées pour un montant de ' || + to_char(prix_unitaire_moyen * nombre,'FM999999999999') || ' euros dans le service ' || + t_services_facturation.texte || ' (' || t_services_facturation.code || ') ' || + 'des séjours facturés sortis des ' || _ENCOURSRETROSUP || ' derniers mois (' || to_char(w_date_histo_coeff_presta,'DD/MM/YYYY') || ')' + ELSE ' forcé dans le paramétrage de la génération des encours ' END + FROM activite.t_services_facturation, activite.t_rubriques_facturation + WHERE lieu_service_id = t_services_facturation.oid AND + rubrique_facturation_id = t_rubriques_facturation.oid AND + w_cti_encours_calcul_parametres_services_prestations.prix_unitaire > 0 AND + (prestation_type_valorisation = '*AVGJOUSER' OR prestation_code IN ('GHT')) + ; + + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Historique taux facturation AMO BG'; + DROP TABLE IF EXISTS w_actes_120; + CREATE TEMP TABLE w_actes_120 AS + SELECT p_factures.no_sejour + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + WHERE p_factures_lignes_h.prix_unitaire >= 120 + GROUP BY 1; + INSERT INTO w_actes_120 + SELECT p_factures.no_sejour + FROM activite.p_factures_lignes_non_facturees_h + JOIN activite.p_factures ON p_factures_lignes_non_facturees_h.no_facture = p_factures.no_facture + WHERE p_factures_lignes_non_facturees_h.prix_unitaire >= 120 + GROUP BY 1; + + INSERT INTO w_cti_encours_factures_histo_taux + SELECT service_facturation_id, AVG(taux_ghs_1) AS taux_ghs_1, count(*) AS nb, ''::text AS regle_taux_texte + FROM + ( + SELECT p_factures.no_sejour, + MAX(t_lieux.service_facturation_id) AS service_facturation_id, + MAX(COALESCE(taux_1,0)) AS taux_ghs_1 + FROM activite.p_sejours + JOIN activite.p_factures ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_lieux ON lieu_sortie_id = t_lieux.oid + JOIN activite.t_services_facturation ON t_lieux.service_facturation_id = t_services_facturation.oid AND type_t2a = '1' + LEFT JOIN activite.p_factures_lignes_c ON p_factures_lignes_c.no_facture = p_factures.no_facture AND + prestation_id IN (SELECT oid FROM activite.t_prestations WHERE code = 'GHS') + WHERE p_sejours.est_budget_global = '1' AND + p_sejours.date_sortie BETWEEN w_date_histo_18 AND w_date_traitement AND + p_sejours.no_sejour NOT IN (SELECT no_sejour FROM w_actes_120) AND + (p_sejours.date_sortie - p_sejours.date_entree) <= 30 + GROUP BY 1 + HAVING MIN(p_factures.code_facture) >= '1' + ) subview + GROUP BY 1 + ; + + INSERT INTO w_cti_encours_factures_histo_taux + SELECT oid, 0, 0, ''::text AS regle_taux_texte + FROM activite.t_services_facturation + WHERE oid NOT IN (SELECT service_facturation_id FROM w_cti_encours_factures_histo_taux) AND + est_budget_global = '1' + ; + + UPDATE w_cti_encours_factures_histo_taux + SET taux_ghs_1 = + round(CASE + WHEN nb < 10 THEN (SELECT base.cti_division(SUM(taux_ghs_1*nb),SUM(nb)) FROM w_cti_encours_factures_histo_taux) + WHEN taux_ghs_1 > 99 THEN 100 + ELSE taux_ghs_1 + END,2), + nb = CASE + WHEN nb < 10 THEN (SELECT SUM(nb) FROM w_cti_encours_factures_histo_taux) + ELSE w_cti_encours_factures_histo_taux.nb END + ; + + UPDATE w_cti_encours_factures_histo_taux + SET regle_taux_texte = 'Ticket modérateur moyen ' || to_char(100-taux_ghs_1,'FM9990D00%') || ' des ' || + to_char(nb,'FM99999990') || ' séjours Budget Global MCO facturés sortis depuis 18 mois (' || to_char(w_date_histo_18,'DD/MM/YYYY') || ') pour le service ' || + t_services_facturation.texte || ' (' || t_services_facturation.code || ')' + FROM activite.t_services_facturation + WHERE service_facturation_id = t_services_facturation.oid AND + nb >= 10 + ; + + + UPDATE w_cti_encours_factures_histo_taux + SET regle_taux_texte = 'Ticket modérateur moyen ' || to_char(100-taux_ghs_1,'FM9990D00%') || ' des ' || + to_char(nb,'FM99999990') || ' séjours Budget Global MCO sortis depuis 18 mois (' || to_char(w_date_histo_18,'DD/MM/YYYY') || ') pour tous les services' + WHERE nb < 10 + ; + + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET coefficient = 0, prix_unitaire = 0, prix_unitaire_moyen_1 = 0, prix_unitaire_moyen_3 = 0 + FROM activite.t_services_facturation + WHERE lieu_service_id = t_services_facturation.oid AND + t_services_facturation.est_absence = '1' + ; + + + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Sejours a traiter'; + INSERT INTO w_cti_encours_sejours + SELECT p_sejours.oid AS sejour_id, + p_sejours.no_sejour, + p_sejours.type_sejour, + p_sejours.est_budget_global, + CASE WHEN p_sejours.est_budget_global = '1' THEN '1' ELSE '2' END AS secteur_tarif, + t_medecins_administratifs.medecin_id AS medecin_sejour_id, + COALESCE(t_medecins.specialite_id,0) AS specialite_medecin_sejour_id, + t_lieux.service_facturation_id AS lieu_sortie_service_id, + t_lieux.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + code_sorti, + lieu_sortie_id, + mode_sortie, + date_groupage, + tiers_payant_1_id, + tiers_payant_2_id, + COALESCE(SUM(nb_seances),1) AS nb_ghs, + p_sejours.ghm_id, + p_sejours.ghs_id, + p_sejours.ghs_bebe1_id, + p_sejours.ghs_bebe2_id, + p_sejours.ghs_bebe3_id, + COALESCE(t_services_facturation.particularites_encours,''), + CASE WHEN p_sejours.type_sejour <> '3' THEN COALESCE(t_services_facturation.type_t2a,'0') ELSE '0' END + FROM w_cti_encours_calcul_parametres, + activite.p_sejours + JOIN activite.t_lieux ON lieu_sortie_id = t_lieux.oid + JOIN activite.t_services_facturation ON t_lieux.service_facturation_id = t_services_facturation.oid + JOIN activite.t_medecins_administratifs ON p_sejours.medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + LEFT JOIN activite.p_mouvements_sejour ON + p_sejours.no_sejour = p_mouvements_sejour.no_sejour AND + p_sejours.type_sejour = '5' AND nb_seances > 0 + WHERE p_sejours.etat = '' AND + code_prevu = '0' AND + date_entree <= w_date_traitement AND + (code_sorti = '1' OR date_sortie >= w_date_histo_18) AND + p_sejours.type_sejour <> '9' + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,17,18,19,20,21,22,23 + ; + + UPDATE w_cti_encours_sejours + SET code_sorti = '1' + WHERE type_sejour = '5' AND + code_sorti <> '1' + ; + + ANALYSE w_cti_encours_sejours + ; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Prix unitaire honoraires non factures' ; + + UPDATE activite.p_factures_lignes_non_facturees_h + SET prix_unitaire = subview.prix_unitaire + FROM + ( + SELECT acte_id, activite_ccam, modificateur_ccam_1, modificateur_ccam_2, modificateur_ccam_3, modificateur_ccam_4, + base.cti_division(SUM(montant_facture_1),SUM(nb_prestation*coefficient)) AS prix_unitaire + FROM activite.p_factures_lignes_h + WHERE acte_id IN (SELECT acte_id FROM activite.p_factures_lignes_non_facturees_h WHERE prix_unitaire = 0) AND + montant_facture_1 > 0 + GROUP BY 1,2,3,4,5,6 + ) subview + WHERE p_factures_lignes_non_facturees_h.prix_unitaire = 0 AND + p_factures_lignes_non_facturees_h.acte_id = subview.acte_id AND + p_factures_lignes_non_facturees_h.activite_ccam = subview.activite_ccam AND + p_factures_lignes_non_facturees_h.modificateur_ccam_1 = subview.modificateur_ccam_1 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_2 = subview.modificateur_ccam_2 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_3 = subview.modificateur_ccam_3 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_4 = subview.modificateur_ccam_4 AND + p_factures_lignes_non_facturees_h.prix_unitaire = 0 + ; + + UPDATE activite.p_factures_lignes_non_facturees_h + SET prix_unitaire = subview.prix_unitaire + FROM + ( + SELECT acte_id, activite_ccam, + base.Cti_division(SUM(montant_facture_1),SUM(nb_prestation*coefficient)) AS prix_unitaire + FROM activite.p_factures_lignes_h + WHERE acte_id IN (SELECT acte_id FROM activite.p_factures_lignes_non_facturees_h WHERE prix_unitaire = 0) AND + montant_facture_1 > 0 + GROUP BY 1,2 + ) subview + WHERE p_factures_lignes_non_facturees_h.prix_unitaire = 0 AND + p_factures_lignes_non_facturees_h.acte_id = subview.acte_id AND + p_factures_lignes_non_facturees_h.activite_ccam = subview.activite_ccam AND + p_factures_lignes_non_facturees_h.prix_unitaire = 0 + + ; + + UPDATE activite.p_factures_lignes_non_facturees_h + SET prix_unitaire = subview.prix_unitaire + FROM + ( + SELECT acte_id, prestation_id, (MAX(Array[date_debut::text,prix_unitaire::text]))[2]::numeric AS prix_unitaire + FROM activite.p_factures_lignes_h + WHERE prix_unitaire <> 0 AND + acte_id IN (SELECT acte_id FROM activite.p_factures_lignes_non_facturees_h WHERE prix_unitaire = 0) + GROUP BY 1,2 + ) subview + WHERE p_factures_lignes_non_facturees_h.prix_unitaire = 0 AND + p_factures_lignes_non_facturees_h.acte_id = subview.acte_id AND + p_factures_lignes_non_facturees_h.prestation_id = subview.prestation_id + ; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Historique facturation GHS' ; + + -- Sur HM, il y a un séjour spécifique pour bébé, il ne faut donc pas tenir compte du GHS bébé du prestataire précédent pour calculer les moyennes + -- Création d'une table de travail avec les GHS mères (cas de 2 prix unitaires GHS, on prend le plus grand) + DROP TABLE IF EXISTS w_cti_encours_calcul_ghs_hm_mat_mere; + CREATE TEMP TABLE w_cti_encours_calcul_ghs_hm_mat_mere AS + SELECT p_factures_lignes_c.no_facture AS no_facture_mat_mere, + p_factures_lignes_c.prestation_id AS prestation_id_mat_mere, + MAX(prix_unitaire) AS prix_unitaire_mat_mere + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN base.t_ghm ON p_sejours.ghm_id = t_ghm.oid + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN ( + SELECT 1::integer AS ok_hm + FROM activite.t_providers + HAVING MAX(CASE WHEN oid = 0 AND code ILIKE 'HM' THEN 1 ELSE 0 END) = 1 AND + MAX(CASE WHEN oid <> 0 AND code NOT ILIKE 'HM' THEN 1 ELSE 0 END) = 1 + ) subview ON ok_hm = 1 + WHERE t_prestations.code = 'GHS' AND p_factures.date_fin > '20170101' AND t_ghm.code LIKE '14%' AND + montant_facture > 0 + GROUP BY 1,2 + HAVING count(DISTINCT prix_unitaire) > 1 + ; + + INSERT INTO w_cti_encours_histo_sejour_facture + SELECT + w_cti_encours_sejours.no_sejour, + p_factures.date_fin, + CASE WHEN MAX(t_ghm.code) LIKE '05C19%' THEN '05C19' WHEN MAX(t_prestations.code) = 'I01' THEN 'I01' ELSE '' END AS classe_ghm, + w_cti_encours_sejours.medecin_sejour_id, + w_cti_encours_sejours.specialite_medecin_sejour_id, + w_cti_encours_sejours.lieu_sortie_service_id, + w_cti_encours_sejours.lieu_sortie_unite_fonctionnelle_id, + w_cti_encours_sejours.nb_ghs, + CASE WHEN w_cti_encours_sejours.type_sejour = '5' THEN 'S' + WHEN p_factures.date_fin - p_factures.date_debut <= 1 THEN '1' + WHEN p_factures.date_fin - p_factures.date_debut <= 3 THEN '2' + WHEN p_factures.date_fin - p_factures.date_debut <= 6 THEN '3' + WHEN p_factures.date_fin - p_factures.date_debut <= 10 THEN '4' + ELSE '5' END as tranche_sejour, + CASE WHEN w_cti_encours_sejours.type_sejour = '5' THEN 0 ELSE p_factures.date_fin - p_factures.date_debut END as duree_sejour, + SUM(CASE WHEN base.cti_division(t_ghs_tarifs.tarif_ghs,t_ghs_tarifs_a.tarif_ghs) > 0 THEN montant_facture * base.cti_division(t_ghs_tarifs.tarif_ghs,t_ghs_tarifs_a.tarif_ghs) ELSE montant_facture END) AS montant_ghs, + SUM(montant_facture) AS montant_ghs_original, + MAX(p_factures_lignes_c.taux_0), + MAX(p_factures_lignes_c.taux_1), + MAX(p_factures_lignes_c.taux_2+p_factures_lignes_c.taux_22) + FROM activite.p_factures_lignes_c + LEFT JOIN w_cti_encours_calcul_ghs_hm_mat_mere ON + w_cti_encours_calcul_ghs_hm_mat_mere.no_facture_mat_mere = p_factures_lignes_c.no_facture AND + w_cti_encours_calcul_ghs_hm_mat_mere.prestation_id_mat_mere = p_factures_lignes_c.prestation_id + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture AND + p_factures.date_fin BETWEEN w_date_histo_18 AND w_date_traitement AND + p_factures.type_facture IN ('0','H','G') AND + p_factures.code_facture >= '1' AND p_factures.ghs_id > 0 AND p_factures.no_facture = p_factures.no_facture_reference + JOIN w_cti_encours_sejours ON p_factures.no_sejour = w_cti_encours_sejours.no_sejour AND w_cti_encours_sejours.code_sorti = '1' + LEFT JOIN base.t_ghs_tarifs ON t_ghs_tarifs.ghs_id = p_factures.ghs_id AND + t_ghs_tarifs.secteur = w_cti_encours_sejours.secteur_tarif AND t_ghs_tarifs.tarif_ghs <> 0 AND + w_date_encours BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin + LEFT JOIN base.t_ghs_tarifs t_ghs_tarifs_a ON t_ghs_tarifs_a.ghs_id = p_factures.ghs_id AND + t_ghs_tarifs_a.secteur = w_cti_encours_sejours.secteur_tarif AND t_ghs_tarifs_a.tarif_ghs <> 0 AND + p_factures.date_fin BETWEEN t_ghs_tarifs_a.date_debut AND t_ghs_tarifs_a.date_fin + LEFT JOIN base.t_ghm ON w_cti_encours_sejours.ghm_id = t_ghm.oid + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE prestation_id IN (SELECT oid FROM activite.t_prestations WHERE code IN ('GHS', 'EXH', 'I01')) AND + montant_facture <> 0 AND + ( + w_cti_encours_calcul_ghs_hm_mat_mere.no_facture_mat_mere IS NULL OR + w_cti_encours_calcul_ghs_hm_mat_mere.prix_unitaire_mat_mere = p_factures_lignes_c.prix_unitaire + ) + GROUP BY 1,2,4,5,6,7,8,9,10; + -- Ajustement pour QSP (plusieurs factures pour le GHS + UPDATE w_cti_encours_histo_sejour_facture SET + montant_ghs = montant_ghs / taux_1 * 100, + montant_ghs_original = montant_ghs_original / taux_1 * 100 + WHERE taux_1 BETWEEN 80 AND 90 AND + taux_0 = 0 AND + taux_2 = 0 + ; + + -- Récupération historique d'un autre environnement (saint gatien) + IF EXISTS ( + SELECT table_name + FROM information_schema.tables + WHERE table_schema || '.' || table_name = 'activite.t_encours_histo_sejour_facture_histo' ) THEN + + INSERT INTO w_cti_encours_histo_sejour_facture + ( + no_sejour, + date_fin, + classe_ghm, + medecin_sejour_id, + specialite_medecin_sejour_id, + lieu_sortie_service_id, + lieu_sortie_unite_fonctionnelle_id, + nb_ghs, + tranche_sejour, + duree_sejour, + montant_ghs, + montant_ghs_original, + taux_0, + taux_1, + taux_2 + ) + SELECT + no_sejour, + date_fin, + classe_ghm, + medecin_sejour_id, + specialite_medecin_sejour_id, + lieu_sortie_service_id, + lieu_sortie_unite_fonctionnelle_id, + nb_ghs, + tranche_sejour, + duree_sejour, + montant_ghs, + montant_ghs_original, + taux_0, + taux_1, + taux_2 + FROM activite.t_encours_histo_sejour_facture_histo + ; + + END IF; + + INSERT INTO w_cti_encours_histo_ghs ( + classe_ghm, + regle, + medecin_sejour_id, + specialite_medecin_sejour_id, + lieu_sortie_service_id, + lieu_sortie_unite_fonctionnelle_id, + tranche_sejour, + duree_sejour, + nombre, + montant_moyen_ghs + ) + (SELECT + classe_ghm,'01-MSD12'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, tranche_sejour::text, duree_sejour::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) as montant_moyen_ghs + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'02-MST12'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, tranche_sejour, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'03-MSD18'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, tranche_sejour::text, duree_sejour::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) as montant_moyen_ghs + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'04-MST18'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, tranche_sejour, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'05-PSD12'::text AS regle, NULL::bigint AS medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, tranche_sejour::text, duree_sejour::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) as montant_moyen_ghs + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'06-PST12'::text AS regle, NULL::bigint AS medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, tranche_sejour, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'07-MXD12'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, NULL::bigint, NULL::bigint, tranche_sejour::text, duree_sejour::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) as montant_moyen_ghs + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'08-MXT12'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, NULL::bigint, NULL::bigint, tranche_sejour, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'09-MXD18'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, NULL::bigint, NULL::bigint, tranche_sejour::text, duree_sejour::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) as montant_moyen_ghs + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'10-MXT18'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, NULL::bigint, NULL::bigint, tranche_sejour, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'11-PXD12'::text AS regle, NULL::bigint AS medecin_sejour_id, specialite_medecin_sejour_id, NULL::bigint, NULL::bigint, tranche_sejour::text, duree_sejour::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) as montant_moyen_ghs + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'12-PXT12'::text AS regle, NULL::bigint AS medecin_sejour_id, specialite_medecin_sejour_id, NULL::bigint, NULL::bigint, tranche_sejour, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'13-XSD18'::text AS regle, NULL::bigint, NULL::bigint, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, tranche_sejour, duree_sejour::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'21-MSX12'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, null::text, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'22-MSX18'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, null::text, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'51-MXX12'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, null::bigint, null::bigint, null::text, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 AND date_fin >= w_date_histo_12 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'52-MXX18'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, null::bigint, null::bigint, null::text, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT + classe_ghm,'61-XSX18'::text AS regle, null::bigint, null::bigint, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, null::text, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) >= _NBSEJMIN_HISTOGHS) + UNION + (SELECT classe_ghm,'99-XXX18'::text AS regle, null::bigint, null::bigint, null::bigint, null::bigint, null::text, null::integer, + count(*) as nombre, AVG(montant_ghs / nb_ghs) + FROM w_cti_encours_histo_sejour_facture + WHERE montant_ghs <> 0 + GROUP BY 1,2,3,4,5,6,7,8) + ORDER BY 1,2,3,4; + + -- Textes + UPDATE w_cti_encours_histo_ghs + SET medecin_sejour_texte = t_medecins.nom || ' ' || t_medecins.prenom || ' (' || t_medecins.code || ')' + FROM base.t_medecins + WHERE medecin_sejour_id = t_medecins.oid AND + medecin_sejour_id <> 0 AND + medecin_sejour_id IS NOT NULL + ; + UPDATE w_cti_encours_histo_ghs + SET specialite_medecin_sejour_texte = t_specialites_medecin.texte || ' (' || t_specialites_medecin.code || ')' + FROM base.t_specialites_medecin + WHERE specialite_medecin_sejour_id = t_specialites_medecin.oid AND + specialite_medecin_sejour_id <> 0 AND + specialite_medecin_sejour_id IS NOT NULL + ; + UPDATE w_cti_encours_histo_ghs + SET lieu_sortie_service_texte = t_services_facturation.texte || ' (' || t_services_facturation.code || ')' + FROM activite.t_services_facturation + WHERE lieu_sortie_service_id = t_services_facturation.oid AND + lieu_sortie_service_id <> 0 AND + lieu_sortie_service_id IS NOT NULL + ; + UPDATE w_cti_encours_histo_ghs + SET lieu_sortie_unite_fonctionnelle_texte = t_unites_fonctionnelles.texte || ' (' || t_unites_fonctionnelles.code || ')' + FROM activite.t_unites_fonctionnelles + WHERE lieu_sortie_unite_fonctionnelle_id = t_unites_fonctionnelles.oid AND + lieu_sortie_unite_fonctionnelle_id <> 0 AND + lieu_sortie_unite_fonctionnelle_id IS NOT NULL + ; + UPDATE w_cti_encours_histo_ghs + SET tranche_sejour_texte = + CASE tranche_sejour + WHEN 'S' THEN 'Séances' + WHEN '1' THEN '0 ou 1 nuit' + WHEN '2' THEN '2 ou 3 nuits' + WHEN '3' THEN '4,5 ou 6 nuits' + WHEN '4' THEN '7,8,9 ou 10 nuits' + WHEN '5' THEN '11 nuits et plus' + END + WHERE tranche_sejour IS NOT NULL + ; + UPDATE w_cti_encours_histo_ghs + SET duree_sejour_texte = + CASE duree_sejour + WHEN 0 THEN '0 nuit' + WHEN 1 THEN '1 nuit' + ELSE duree_sejour::text || ' nuits' + END + WHERE duree_sejour IS NOT NULL + ; + + -- Calcul moyennes DMS + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Historique DMS'; + + INSERT INTO w_cti_encours_histo_dms_sejours + SELECT w_cti_encours_sejours.no_sejour, w_cti_encours_sejours.medecin_sejour_id, w_cti_encours_sejours.specialite_medecin_sejour_id, w_cti_encours_sejours.lieu_sortie_service_id, w_cti_encours_sejours.lieu_sortie_unite_fonctionnelle_id, + p_factures.date_fin, p_factures.date_debut + FROM activite.p_factures + JOIN w_cti_encours_sejours ON p_factures.no_sejour = w_cti_encours_sejours.no_sejour AND code_sorti = '1' + WHERE p_factures.date_fin BETWEEN w_date_histo_18 AND w_date_traitement AND type_facture IN ('0','H','G') AND p_factures.no_facture = p_factures.no_facture_reference; + + INSERT INTO w_cti_encours_histo_dms + SELECT '1'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, round(AVG(date_fin - date_debut),0) AS dms, count(*) AS occurences + FROM w_cti_encours_histo_dms_sejours + GROUP BY 1,2,3,4,5 + HAVING count(*) >= _NBSEJMIN_HISTOGHS + UNION + SELECT '2'::text AS regle, medecin_sejour_id, specialite_medecin_sejour_id, null::bigint, null::bigint, round(AVG(date_fin - date_debut),0) AS dms, count(*) AS occurences + FROM w_cti_encours_histo_dms_sejours + GROUP BY 1,2,3,4,5 + HAVING count(*) >= _NBSEJMIN_HISTOGHS + UNION + SELECT '3'::text AS regle, null::bigint, null::bigint, lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, round(AVG(date_fin - date_debut),0) AS dms, count(*) AS occurences + FROM w_cti_encours_histo_dms_sejours + GROUP BY 1,2,3,4,5 + HAVING count(*) >= _NBSEJMIN_HISTOGHS + UNION + SELECT '9'::text AS regle, null::bigint, null::bigint, null::bigint, null::bigint, round(AVG(date_fin - date_debut),0) AS dms, count(*) AS occurences + FROM w_cti_encours_histo_dms_sejours + GROUP BY 1,2,3,4,5 + HAVING count(*) >= _NBSEJMIN_HISTOGHS; + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Extraction factures à valoriser'; + INSERT INTO w_cti_encours_factures( + oid, sejour_id, no_sejour, type_sejour, classe_ghm, no_facture, no_facture_encours, no_facture_reference, + etat, code_sorti, date_encours, date_debut, date_fin, lieu_sortie_id, mode_sortie, + ghs_id, ghm_id, ghs_bebe1_id, ghs_bebe2_id, ghs_bebe3_id, type_t2a, est_budget_global, secteur_tarif, code_cp_demandee, + lieu_sortie_service_id, lieu_sortie_unite_fonctionnelle_id, medecin_sejour_id, specialite_medecin_sejour_id, + tiers_payant_1_id, tiers_payant_2_id, particularites_encours_service, uniquement_prestations_saisies) + SELECT + p_factures.oid, w_cti_encours_sejours.sejour_id, p_factures.no_sejour, w_cti_encours_sejours.type_sejour, ''::text AS classe_ghm, p_factures.no_facture, + p_factures.no_facture || '.EC' || substr(to_char(date_part('year', w_cti_encours_calcul_parametres.date_encours),'FM0000'),3,2) || to_char(date_part('month', w_cti_encours_calcul_parametres.date_encours),'FM00'), + p_factures.no_facture_reference, + CASE WHEN code_sorti <> '1' THEN 'E' WHEN p_factures.date_fin > w_date_traitement THEN 'E' ELSE 'S' END AS etat, + CASE WHEN code_sorti <> '1' THEN '0' WHEN p_factures.date_fin > w_date_traitement THEN '0' ELSE '1' END AS code_sorti, + w_cti_encours_calcul_parametres.date_encours, + p_factures.date_debut, + CASE WHEN date_fin <= w_date_traitement + interval '10 days' THEN p_factures.date_fin ELSE '20991231' END AS date_fin, + lieu_sortie_id, + mode_sortie, + CASE WHEN code_sorti <> '1' THEN 0 WHEN date_groupage <= w_date_traitement OR date_groupage = '20991231' THEN w_cti_encours_sejours.ghs_id ELSE 0 END AS ghs_id, + CASE WHEN code_sorti <> '1' THEN 0 WHEN date_groupage <= w_date_traitement OR date_groupage = '20991231' THEN w_cti_encours_sejours.ghm_id ELSE 0 END AS ghm_id, + CASE WHEN code_sorti <> '1' THEN 0 WHEN date_groupage <= w_date_traitement OR date_groupage = '20991231' THEN w_cti_encours_sejours.ghs_bebe1_id ELSE 0 END AS ghs_bebe1_id, + CASE WHEN code_sorti <> '1' THEN 0 WHEN date_groupage <= w_date_traitement OR date_groupage = '20991231' THEN w_cti_encours_sejours.ghs_bebe2_id ELSE 0 END AS ghs_bebe2_id, + CASE WHEN code_sorti <> '1' THEN 0 WHEN date_groupage <= w_date_traitement OR date_groupage = '20991231' THEN w_cti_encours_sejours.ghs_bebe3_id ELSE 0 END AS ghs_bebe3_id, + w_cti_encours_sejours.type_t2a, + est_budget_global, + CASE WHEN est_budget_global = '1' THEN '1' ELSE '2' END AS secteur_tarif, + p_factures.code_cp_demandee, + lieu_sortie_service_id, + lieu_sortie_unite_fonctionnelle_id, + medecin_sejour_id, + specialite_medecin_sejour_id, + CASE WHEN p_factures.tiers_payant_1_id <> 0 THEN p_factures.tiers_payant_1_id ELSE w_cti_encours_sejours.tiers_payant_1_id END, + CASE WHEN p_factures.tiers_payant_1_id <> 0 THEN p_factures.tiers_payant_2_id ELSE w_cti_encours_sejours.tiers_payant_2_id END, + w_cti_encours_sejours.particularites_encours_service, + CASE + WHEN p_factures.type_facture IN ('0','E') AND p_factures.no_facture = p_factures.no_facture_reference THEN '0' + WHEN p_factures.code_facture = '0' AND p_factures.no_facture LIKE '%BG' THEN '0' + WHEN est_budget_global = '1' THEN '0' + ELSE '1' END AS uniquement_prestations_saisies + FROM w_cti_encours_calcul_parametres, + activite.p_factures + JOIN w_cti_encours_sejours ON w_cti_encours_sejours.no_sejour = p_factures.no_sejour + WHERE + p_factures.type_facture <> 'P' AND + ((p_factures.type_facture IN ('0','E') AND + p_factures.no_facture = p_factures.no_facture_reference) + OR + (p_factures.code_facture = '0' AND + p_factures.no_facture IN (SELECT no_facture FROM activite.p_factures_lignes_non_facturees_c)) + OR + (p_factures.code_facture = '0' AND + p_factures.no_facture LIKE '%BG' + ) + ) AND + p_factures.date_debut <= w_date_traitement AND + ( + (p_factures.code_facture = '0' AND p_factures.date_debut <= w_date_traitement) + OR + (p_factures.code_facture >= '1' AND date_facture > w_date_traitement AND date_facture <> '20991231' AND date_vente > w_date_encours) + ); + + + + UPDATE w_cti_encours_factures + SET date_fin = + GREATEST(date(date_debut + + COALESCE( + w_cti_encours_histo_dms_1.dms, + w_cti_encours_histo_dms_2.dms, + w_cti_encours_histo_dms_3.dms, + w_cti_encours_histo_dms_9.dms, + 0 + )::integer),w_date_sortie_max ), + dms = COALESCE( + w_cti_encours_histo_dms_1.dms, + w_cti_encours_histo_dms_2.dms, + w_cti_encours_histo_dms_3.dms, + w_cti_encours_histo_dms_9.dms, + 0 + ), + regle_dms = + COALESCE( + w_cti_encours_histo_dms_1.regle, + w_cti_encours_histo_dms_2.regle, + w_cti_encours_histo_dms_3.regle, + w_cti_encours_histo_dms_9.regle, + '0' + ) + FROM w_cti_encours_sejours + LEFT JOIN w_cti_encours_histo_dms w_cti_encours_histo_dms_1 ON + w_cti_encours_histo_dms_1.medecin_sejour_id = w_cti_encours_sejours.medecin_sejour_id AND + w_cti_encours_histo_dms_1.lieu_sortie_service_id = w_cti_encours_sejours.lieu_sortie_service_id AND + w_cti_encours_histo_dms_1.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_sejours.lieu_sortie_unite_fonctionnelle_id + LEFT JOIN w_cti_encours_histo_dms w_cti_encours_histo_dms_2 ON + w_cti_encours_histo_dms_2.medecin_sejour_id = w_cti_encours_sejours.medecin_sejour_id AND + w_cti_encours_histo_dms_2.lieu_sortie_service_id IS NULL AND + w_cti_encours_histo_dms_2.lieu_sortie_unite_fonctionnelle_id IS NULL + LEFT JOIN w_cti_encours_histo_dms w_cti_encours_histo_dms_3 ON + w_cti_encours_histo_dms_3.medecin_sejour_id IS NULL AND + w_cti_encours_histo_dms_3.lieu_sortie_service_id = w_cti_encours_sejours.lieu_sortie_service_id AND + w_cti_encours_histo_dms_3.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_sejours.lieu_sortie_unite_fonctionnelle_id + LEFT JOIN w_cti_encours_histo_dms w_cti_encours_histo_dms_9 ON + w_cti_encours_histo_dms_9.medecin_sejour_id IS NULL AND + w_cti_encours_histo_dms_9.lieu_sortie_service_id IS NULL AND + w_cti_encours_histo_dms_9.lieu_sortie_unite_fonctionnelle_id IS NULL + WHERE w_cti_encours_factures.no_sejour = w_cti_encours_sejours.no_sejour AND + w_cti_encours_factures.code_sorti = '0' AND + w_cti_encours_factures.type_sejour NOT IN ('2','3') AND + w_cti_encours_factures.date_fin = '20991231'; + UPDATE w_cti_encours_factures + SET date_fin = date_debut, + dms = 0, + regle_dms = '0' + FROM w_cti_encours_sejours + WHERE w_cti_encours_factures.no_sejour = w_cti_encours_sejours.no_sejour AND + w_cti_encours_factures.code_sorti = '0' AND + w_cti_encours_factures.type_sejour IN ('2','3') AND + w_cti_encours_factures.date_fin = '20991231'; + + UPDATE w_cti_encours_factures + SET duree_sejour = CASE WHEN type_sejour <> '5' THEN date_fin - date_debut ELSE 0 END, + tranche_sejour = + CASE + WHEN type_sejour = '5' THEN 'S' + WHEN date_fin - date_debut <= 1 THEN '1' + WHEN date_fin - date_debut <= 3 THEN '2' + WHEN date_fin - date_debut <= 6 THEN '3' + WHEN date_fin - date_debut <= 10 THEN '4' + ELSE '5' END; + + -- En ESPIC, les actes non factures sont peut être sur une autre facture que BG + UPDATE activite.p_factures_lignes_non_facturees_h + SET no_facture = subview.no_facture_bg + FROM + ( + SELECT p_factures_lignes_non_facturees_h.no_facture, MAX(w_cti_encours_factures.no_facture) AS no_facture_bg + FROM activite.p_factures_lignes_non_facturees_h + JOIN activite.p_factures ON p_factures_lignes_non_facturees_h.no_facture = p_factures.no_facture + JOIN w_cti_encours_factures ON + p_factures.no_sejour = w_cti_encours_factures.no_sejour AND + w_cti_encours_factures.no_facture LIKE '%BG' + WHERE p_factures_lignes_non_facturees_h.date_debut BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin + GROUP BY 1 + HAVING p_factures_lignes_non_facturees_h.no_facture <> MAX(w_cti_encours_factures.no_facture) + ) subview + WHERE p_factures_lignes_non_facturees_h.no_facture = subview.no_facture + ; + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Extraction CPC deja facturee'; + INSERT INTO w_cti_encours_factures_deja_cpc( + no_facture_reference) + SELECT p_factures.no_facture_reference + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE p_factures_lignes_c.montant_facture <> 0 AND + p_factures.no_facture_reference IN (SELECT no_facture_reference FROM w_cti_encours_factures) AND + (t_prestations.code IN ('CPC', 'SHO', 'CP') OR + t_prestations.type_valorisation_non_facture IN ('CP') + ) + GROUP BY 1 + HAVING SUM(nb_prestation) > 0 + ; + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Forcage code GHS'; + --UPDATE w_cti_encours_factures + --SET ghs_id = t_ghs.oid + --FROM activite.t_forcage_encours_factures + --JOIN base.t_ghs ON t_ghs.code = t_forcage_encours_factures.ghs_code + --WHERE w_cti_encours_factures.no_sejour = t_forcage_encours_factures.no_sejour AND + -- t_forcage_encours_factures.etat_forcage_ghs = 'F' AND + -- t_forcage_encours_factures.ghs_code <> 0 AND + -- date_trunc('month',t_forcage_encours_factures.date_encours) = date_trunc('month',w_cti_encours_factures.date_encours) + --; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Generation des lignes valorisees'; + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'GHS'; + + + -- Deux passages pour la valorisation + -- premier passage sans tenir compte des GHS + -- second en en tenant compte + -- pour comparer les deux + + IF _ENCOURSECARTGHSV > 0 THEN + w_simul = ''; + ELSE + w_simul = '1'; + END IF; + WHILE w_simul <> '0' LOOP + w_simul = CASE WHEN w_simul = '' THEN '1' ELSE '0' END; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'GHS ' || w_simul; + TRUNCATE w_cti_encours_factures_lignes_c; + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, ghs_id, + prix_unitaire, nb_prestation, montant_encours, lieu_id) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'GHS' AS type_ligne, date_debut, date_fin, GREATEST(date_fin - date_debut,1), 1, w_cti_encours_calcul_parametres.coefficient_mco, + COALESCE(w_cti_encours_calcul_parametres_services.prestation_ghs_id, w_cti_encours_calcul_parametres.prestation_ghs_id), + COALESCE(w_cti_encours_calcul_parametres_services.rubrique_facturation_ghs_id, w_cti_encours_calcul_parametres.rubrique_facturation_ghs_id), + COALESCE(w_cti_encours_calcul_parametres_services.rubrique_facturation_ghs_id, w_cti_encours_calcul_parametres.rubrique_facturation_ghs_id), + ghs_id, + 0, 1, 0, lieu_sortie_id + FROM w_cti_encours_calcul_parametres, + w_cti_encours_factures + LEFT JOIN w_cti_encours_calcul_parametres_services ON + lieu_sortie_service_id = w_cti_encours_calcul_parametres_services.service_facturation_id AND + w_cti_encours_factures.type_sejour = w_cti_encours_calcul_parametres_services.type_sejour + WHERE w_cti_encours_factures.type_t2a = '1' AND w_cti_encours_factures.type_sejour <> '5' AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_factures.ghm_id NOT IN (SELECT ghm_id FROM w_cti_encours_ghm_sans_ghs) AND + w_cti_encours_factures.particularites_encours_service NOT ILIKE '%IVG%' AND + COALESCE(w_cti_encours_calcul_parametres_services.prestation_ghs_id, w_cti_encours_calcul_parametres.prestation_ghs_id) <> 0 AND + COALESCE(w_cti_encours_calcul_parametres_services.rubrique_facturation_ghs_id, w_cti_encours_calcul_parametres.rubrique_facturation_ghs_id) <> 0 AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') AND + w_cti_encours_factures.no_facture NOT IN ( + SELECT no_facture + FROM activite.p_factures_lignes_non_facturees_c + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE t_prestations.code IN ('I01') + ); + + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, ghs_id, + prix_unitaire, nb_prestation, montant_encours, lieu_id) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'GHS' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, nb_seances, 1, w_cti_encours_calcul_parametres.coefficient_mco, + COALESCE(w_cti_encours_calcul_parametres_services.prestation_ghs_id, w_cti_encours_calcul_parametres.prestation_ghs_sea_id), + COALESCE(w_cti_encours_calcul_parametres_services.rubrique_facturation_ghs_id, w_cti_encours_calcul_parametres.rubrique_facturation_ghs_sea_id), + COALESCE(w_cti_encours_calcul_parametres_services.rubrique_facturation_ghs_id, w_cti_encours_calcul_parametres.rubrique_facturation_ghs_sea_id), + ghs_id, + 0, nb_seances, 0, lieu_sortie_id + FROM w_cti_encours_calcul_parametres, + w_cti_encours_factures + LEFT JOIN w_cti_encours_calcul_parametres_services ON + lieu_sortie_service_id = w_cti_encours_calcul_parametres_services.service_facturation_id AND + w_cti_encours_factures.type_sejour = w_cti_encours_calcul_parametres_services.type_sejour + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour AND nb_seances > 0 AND p_mouvements_sejour.date BETWEEN w_cti_encours_factures.Date_debut AND w_cti_encours_factures.date_fin + WHERE + w_cti_encours_factures.type_t2a = '1' AND w_cti_encours_factures.type_sejour = '5' AND + uniquement_prestations_saisies <> '1' AND + COALESCE(w_cti_encours_calcul_parametres_services.prestation_ghs_id, w_cti_encours_calcul_parametres.prestation_ghs_sea_id) <> 0 AND + COALESCE(w_cti_encours_calcul_parametres_services.rubrique_facturation_ghs_id, w_cti_encours_calcul_parametres.rubrique_facturation_ghs_sea_id) <> 0 AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') AND + lieu_sortie_service_id NOT IN (select lieu_service_id FROM w_cti_encours_calcul_parametres_services_prestations where prestation_code IN ('D09','D11','D13', 'D13', 'D15', 'D16', 'DTP') AND coefficient = 1); + + -- GHS déjà connu + UPDATE w_cti_encours_factures_lignes_c SET + prix_unitaire = t_ghs_tarifs.tarif_ghs, + montant_encours = t_ghs_tarifs.tarif_ghs * w_cti_encours_factures_lignes_c.coefficient_mco, + borne_basse = t_ghs_tarifs.borne_basse, + borne_haute = t_ghs_tarifs.borne_haute, + forfait_exb = t_ghs_tarifs.forfait_exb, + tarif_exb = t_ghs_tarifs.tarif_exb, + duree_sejour = w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut, + regle_texte = 'GHS pour dossier groupé : ' || to_char(t_ghs.code,'FM0000') || ' (' || COALESCE(t_ghm.code || '-','') || COALESCE(t_ghm.texte,t_ghs.texte) || ')' + FROM w_cti_encours_factures + JOIN base.t_ghs ON t_ghs.oid = w_cti_encours_factures.ghs_id + JOIN base.t_ghs_tarifs ON t_ghs_tarifs.ghs_id = t_ghs.oid AND t_ghs_tarifs.secteur = w_cti_encours_factures.secteur_tarif AND w_cti_encours_factures.date_fin BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin + LEFT JOIN base.t_ghm ON t_ghm.oid = w_cti_encours_factures.ghm_id + WHERE w_simul = '0' AND + w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + w_cti_encours_factures.ghs_id <> 0 AND + type_ligne = 'GHS' + ; + -- EXB sur GHS déjà connus + UPDATE w_cti_encours_factures_lignes_c + SET montant_encours = + CASE + WHEN forfait_exb > 0 THEN round(prix_unitaire - forfait_exb * w_cti_encours_factures_lignes_c.coefficient_mco,2) + WHEN forfait_exb = 0 AND tarif_exb > 0 AND duree_sejour = 0 THEN round(tarif_exb / 2 * coefficient_mco,2) + WHEN forfait_exb = 0 AND tarif_exb > 0 THEN round(prix_unitaire - (tarif_exb * (borne_basse-duree_sejour) * coefficient_mco),2) + ELSE montant_encours + END, + regle_texte = 'EXB pour dossier groupé' + WHERE w_simul = '0' AND + duree_sejour < borne_basse AND + prix_unitaire <> 0 AND + ghs_id <> 0 AND + type_ligne = 'GHS'; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'EXH'; + -- EXH + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, lieu_id, nb_rubrique, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, nb_prestation, montant_encours, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'EXH' AS type_ligne, date(w_cti_encours_factures.date_debut + (t_ghs_tarifs.borne_haute || ' day')::interval), + w_cti_encours_factures.date_fin, w_cti_encours_factures.lieu_sortie_id, w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut - t_ghs_tarifs.borne_haute, 1, w_cti_encours_calcul_parametres.coefficient_mco, + prestation_exh_id, rubrique_facturation_exh_id, rubrique_comptabilisation_ghs_id, + t_ghs_tarifs.tarif_exh, w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut - t_ghs_tarifs.borne_haute, round(t_ghs_tarifs.tarif_exh * (w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut - t_ghs_tarifs.borne_haute) * w_cti_encours_calcul_parametres.coefficient_mco,2), + 'EXH pour dossier groupé : Borne haute ' || t_ghs_tarifs.borne_haute || ' pour GHS ' || to_char(t_ghs.code,'FM0000') || ' (' || COALESCE(t_ghm.code || '-','') || COALESCE(t_ghm.texte,t_ghs.texte) || ')' + FROM w_cti_encours_calcul_parametres, w_cti_encours_factures + JOIN base.t_ghs ON t_ghs.oid = w_cti_encours_factures.ghs_id + LEFT JOIN base.t_ghm ON t_ghm.oid = w_cti_encours_factures.ghm_id + JOIN base.t_ghs_tarifs ON t_ghs_tarifs.ghs_id = t_ghs.oid AND + t_ghs_tarifs.secteur = w_cti_encours_factures.secteur_tarif AND + w_cti_encours_factures.date_fin BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin + WHERE w_simul = '0' AND + w_cti_encours_factures.type_t2a = '1' AND type_sejour <> '5' AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_factures.ghs_id > 0 AND + t_ghs_tarifs.borne_haute > 0 AND + w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut > t_ghs_tarifs.borne_haute AND + COALESCE(rubrique_facturation_exh_id,0) <> 0 AND + COALESCE(prestation_exh_id,0) <> 0 AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') ; + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'EXH (non groupes)'; + -- EXH + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, lieu_id, nb_rubrique, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, nb_prestation, montant_encours, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'EXHNG' AS type_ligne, date(w_cti_encours_factures.date_debut + (base.cti_to_number(t_divers_bh.valeur) || ' day')::interval), + w_cti_encours_factures.date_fin, w_cti_encours_factures.lieu_sortie_id, w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut - base.cti_to_number(t_divers_bh.valeur), 1, + w_cti_encours_calcul_parametres.coefficient_mco, + prestation_exh_id, rubrique_facturation_exh_id, rubrique_comptabilisation_ghs_id, + base.cti_to_number(t_divers_xh.valeur), w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut - base.cti_to_number(t_divers_bh.valeur), + round(base.cti_to_number(t_divers_xh.valeur) * (w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut - base.cti_to_number(t_divers_bh.valeur)) * w_cti_encours_calcul_parametres.coefficient_mco,2), + 'EXH fictif (pour dossiers non groupés) de ' || t_divers_xh.valeur || ' euros par journée au delà de ' || t_divers_bh.valeur || ' jours' + FROM w_cti_encours_calcul_parametres, w_cti_encours_factures + JOIN activite.t_divers t_divers_bh ON t_divers_bh.code = 'ENCOURSBORNEHAUTE' AND base.cti_to_number(t_divers_bh.valeur) > 0 + JOIN activite.t_divers t_divers_xh ON t_divers_xh.code = 'ENCOURSEXHMOYEN' AND base.cti_to_number(t_divers_xh.valeur) > 0 + WHERE + w_cti_encours_factures.type_t2a = '1' AND type_sejour <> '5' AND + uniquement_prestations_saisies <> '1' AND + (w_cti_encours_factures.ghs_id <= 0 OR w_simul = '1') AND + w_cti_encours_factures.date_fin - w_cti_encours_factures.date_debut > base.cti_to_number(t_divers_bh.valeur) AND + COALESCE(rubrique_facturation_exh_id,0) <> 0 AND + COALESCE(prestation_exh_id,0) <> 0 AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') + ; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'GHS bebes'; + -- GHS bébés + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, nb_prestation, montant_encours, lieu_id, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'GHSBB' AS type_ligne, w_cti_encours_factures.date_debut, w_cti_encours_factures.date_fin, 1, 1, w_cti_encours_calcul_parametres.coefficient_mco, + prestation_ghs_id, rubrique_facturation_ghs_id, rubrique_comptabilisation_ghs_id, + t_ghs_tarifs.tarif_ghs, 1, t_ghs_tarifs.tarif_ghs * w_cti_encours_calcul_parametres.coefficient_mco, lieu_sortie_id, + 'GHS bébé pour dossier groupé : ' || to_char(t_ghs.code,'FM0000') || ' (' || t_ghs.texte || ')' + FROM w_cti_encours_calcul_parametres, w_cti_encours_factures + JOIN base.t_ghs ON t_ghs.oid = w_cti_encours_factures.ghs_bebe1_id + JOIN base.t_ghs_tarifs ON t_ghs.oid = w_cti_encours_factures.ghs_bebe1_id AND + t_ghs_tarifs.ghs_id = t_ghs.oid AND t_ghs_tarifs.secteur = w_cti_encours_factures.secteur_tarif AND w_cti_encours_factures.date_fin BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin + WHERE w_simul = '0' AND + w_cti_encours_factures.type_t2a = '1' AND w_cti_encours_factures.ghs_bebe1_id > 0 AND + uniquement_prestations_saisies <> '1' AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') + UNION + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'GHSBB', w_cti_encours_factures.date_debut, w_cti_encours_factures.date_fin, 1, 1, w_cti_encours_calcul_parametres.coefficient_mco, + prestation_ghs_id, rubrique_facturation_ghs_id, rubrique_comptabilisation_ghs_id, + t_ghs_tarifs.tarif_ghs, 1, t_ghs_tarifs.tarif_ghs * w_cti_encours_calcul_parametres.coefficient_mco, lieu_sortie_id, + 'GHS bébé pour dossier groupé : ' || to_char(t_ghs.code,'FM0000') || ' (' || t_ghs.texte || ')' + FROM w_cti_encours_calcul_parametres, w_cti_encours_factures + JOIN base.t_ghs ON t_ghs.oid = w_cti_encours_factures.ghs_bebe2_id + JOIN base.t_ghs_tarifs ON t_ghs.oid = w_cti_encours_factures.ghs_bebe2_id AND + t_ghs_tarifs.ghs_id = t_ghs.oid AND t_ghs_tarifs.secteur = w_cti_encours_factures.secteur_tarif AND w_cti_encours_factures.date_fin BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin + WHERE w_simul = '0' AND + w_cti_encours_factures.type_t2a = '1' AND w_cti_encours_factures.ghs_bebe2_id > 0 AND + uniquement_prestations_saisies <> '1' AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') + UNION + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'GHSBB', w_cti_encours_factures.date_debut, w_cti_encours_factures.date_fin, 1, 1, w_cti_encours_calcul_parametres.coefficient_mco, + prestation_ghs_id, rubrique_facturation_ghs_id, rubrique_comptabilisation_ghs_id, + t_ghs_tarifs.tarif_ghs, 1, t_ghs_tarifs.tarif_ghs * w_cti_encours_calcul_parametres.coefficient_mco, lieu_sortie_id, + 'GHS bébé pour dossier groupé : ' || to_char(t_ghs.code,'FM0000') || ' (' || t_ghs.texte || ')' + FROM w_cti_encours_calcul_parametres, w_cti_encours_factures + JOIN base.t_ghs ON t_ghs.oid = w_cti_encours_factures.ghs_bebe3_id + JOIN base.t_ghs_tarifs ON t_ghs.oid = w_cti_encours_factures.ghs_bebe3_id AND + t_ghs_tarifs.ghs_id = t_ghs.oid AND t_ghs_tarifs.secteur = w_cti_encours_factures.secteur_tarif AND w_cti_encours_factures.date_fin BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin + WHERE w_simul = '0' AND + w_cti_encours_factures.type_t2a = '1' AND w_cti_encours_factures.ghs_bebe3_id > 0 AND + uniquement_prestations_saisies <> '1' AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG'); + -- Valorisation non groupes + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Valorisation GHS non groupes'; + + UPDATE w_cti_encours_factures + SET classe_ghm = '05C19' + WHERE EXISTS ( + SELECT no_sejour + FROM activite.p_factures_lignes_non_facturees_h + JOIN activite.p_factures ON p_factures_lignes_non_facturees_h.no_facture = p_factures.no_facture + JOIN base.t_actes ON acte_id = t_actes.oid + WHERE t_actes.code IN ('DELF013', 'DELF020', 'DELF014', 'DELF016', 'DELF086', 'DELA004','DEKA002') + AND w_cti_encours_factures.no_sejour = p_factures.no_sejour + ); + + UPDATE w_cti_encours_factures + SET classe_ghm = '05C19' + WHERE EXISTS ( + SELECT no_sejour + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + JOIN base.t_actes ON acte_id = t_actes.oid + WHERE t_actes.code IN ('DELF013', 'DELF020', 'DELF014', 'DELF016', 'DELA004','DEKA002') + AND classe_ghm = '' + AND p_factures.no_sejour = w_cti_encours_factures.no_sejour + ) + ; + + UPDATE w_cti_encours_factures + SET classe_ghm = 'I01' + WHERE EXISTS ( + SELECT no_sejour + FROM activite.p_factures_lignes_non_facturees_h + JOIN activite.p_factures ON p_factures_lignes_non_facturees_h.no_facture = p_factures.no_facture + WHERE acte_id = ANY(SELECT oid FROM base.t_actes WHERE code IN('JGNJ900')) + AND w_cti_encours_factures.no_sejour = p_factures.no_sejour + ); + + UPDATE w_cti_encours_factures + SET classe_ghm = 'I01' + WHERE EXISTS ( + SELECT no_sejour + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + WHERE acte_id = ANY(SELECT oid FROM base.t_actes WHERE code IN('JGNJ900')) + AND classe_ghm = '' + AND w_cti_encours_factures.no_sejour = p_factures.no_sejour + ) + ; + + UPDATE w_cti_encours_factures_lignes_c SET + rubrique_facturation_id = rubrique_facturation_I01_id, + rubrique_comptabilisation_id = rubrique_comptabilisation_I01_id, + prestation_id = prestation_I01_id + FROM activite.t_prestations, + w_cti_encours_factures + JOIN w_cti_encours_calcul_parametres ON + rubrique_facturation_I01_id IS NOT NULL AND + rubrique_facturation_I01_id <> 0 + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + w_cti_encours_factures_lignes_c.prestation_id = t_prestations.oid AND + classe_ghm = 'I01' AND + t_prestations.code = 'GHS' + ; + + + + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') du médecin ' || medecin_sejour_texte || ' dans le service ' || lieu_sortie_service_texte || ' avec une durée de séjour de ' || duree_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + w_cti_encours_histo_ghs.duree_sejour = w_cti_encours_factures.duree_sejour AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '01-MSD12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') du médecin ' || medecin_sejour_texte || ' dans le service ' || lieu_sortie_service_texte || ' avec une durée de séjour de ' || tranche_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '02-MST12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ') du médecin ' || medecin_sejour_texte || ' dans le service ' || lieu_sortie_service_texte || ' avec une durée de séjour de ' || duree_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + w_cti_encours_histo_ghs.duree_sejour = w_cti_encours_factures.duree_sejour AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '03-MSD18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ') du médecin ' || medecin_sejour_texte || ' dans le service ' || lieu_sortie_service_texte || ' avec une durée de séjour de ' || tranche_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '04-MST18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') de la spécialité ' || specialite_medecin_sejour_texte || ' dans le service ' || lieu_sortie_service_texte || ' avec une durée de séjour de ' || duree_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.specialite_medecin_sejour_id = w_cti_encours_factures.specialite_medecin_sejour_id AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + w_cti_encours_histo_ghs.duree_sejour = w_cti_encours_factures.duree_sejour AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '05-PSD12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') de la spécialité ' || specialite_medecin_sejour_texte || ' dans le service ' || lieu_sortie_service_texte || ' avec une durée de séjour de ' || tranche_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.specialite_medecin_sejour_id = w_cti_encours_factures.specialite_medecin_sejour_id AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '06-PST12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') du médecin ' || medecin_sejour_texte || ' avec une durée de séjour de ' || duree_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.duree_sejour = w_cti_encours_factures.duree_sejour AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '07-MXD12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') du médecin ' || medecin_sejour_texte || ' avec une durée de séjour de ' || tranche_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '08-MXT12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ') du médecin ' || medecin_sejour_texte || ' avec une durée de séjour de ' || duree_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.duree_sejour = w_cti_encours_factures.duree_sejour AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '09-MXD18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ') du médecin ' || medecin_sejour_texte || ' avec une durée de séjour de ' || tranche_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '10-MXT18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') de la spécialité ' || specialite_medecin_sejour_texte || ' avec une durée de séjour de ' || duree_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.specialite_medecin_sejour_id = w_cti_encours_factures.specialite_medecin_sejour_id AND + w_cti_encours_histo_ghs.duree_sejour = w_cti_encours_factures.duree_sejour AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '11-PXD12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') de la spécialité ' || specialite_medecin_sejour_texte || ' avec une durée de séjour de ' || tranche_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.specialite_medecin_sejour_id = w_cti_encours_factures.specialite_medecin_sejour_id AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '12-PXT12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ') dans le service ' || lieu_sortie_service_texte || ' avec une durée de séjour de ' || duree_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + w_cti_encours_histo_ghs.duree_sejour = w_cti_encours_factures.duree_sejour AND + w_cti_encours_histo_ghs.tranche_sejour = w_cti_encours_factures.tranche_sejour AND + regle = '13-XSD18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') du médecin ' || medecin_sejour_texte || ' dans le service ' || lieu_sortie_service_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + regle = '21-MSX12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ') du médecin ' || medecin_sejour_texte || ' dans le service ' || lieu_sortie_service_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + regle = '22-MSX18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 12 derniers mois (' || w_date_histo_12 || ') du médecin ' || medecin_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + regle = '51-MXX12' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ') du médecin ' || medecin_sejour_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.medecin_sejour_id = w_cti_encours_factures.medecin_sejour_id AND + regle = '52-MXX18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ') dans le service ' || lieu_sortie_service_texte, + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + w_cti_encours_histo_ghs.lieu_sortie_service_id = w_cti_encours_factures.lieu_sortie_service_id AND + w_cti_encours_histo_ghs.lieu_sortie_unite_fonctionnelle_id = w_cti_encours_factures.lieu_sortie_unite_fonctionnelle_id AND + regle = '61-XSX18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_moyen_ghs, + prix_unitaire = montant_moyen_ghs, + prix_unitaire_calcule = montant_moyen_ghs, + regle_ghs = regle, + regle_texte = 'P.U. Moyen GHS calculé sur les ' || nombre || ' séjours des 18 derniers mois (' || w_date_histo_18 || ')', + type_ligne = 'GHSNG' + FROM w_cti_encours_factures + JOIN w_cti_encours_histo_ghs ON + w_cti_encours_histo_ghs.classe_ghm = w_cti_encours_factures.classe_ghm AND + regle = '99-XXX18' + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + montant_encours = 0 AND + type_ligne = 'GHS'; + + -- Forcage prix GHS selon paramétrage dossier + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = prix_unitaire_force, + prix_unitaire = prix_unitaire_force, + regle_ghs = '00-FORCE', + regle_texte = 'P.U. Moyen GHS forcé', + type_ligne = 'GHSNG' + FROM activite.t_calcul_encours + WHERE w_cti_encours_factures_lignes_c.no_sejour = t_calcul_encours.no_sejour AND + t_calcul_encours.type_ligne = 'GHSNG' AND + t_calcul_encours.prix_unitaire_is_force = '1' AND + w_cti_encours_factures_lignes_c.type_ligne = 'GHSNG'; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'GHS bebe moyen'; + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, ghs_id, + prix_unitaire, nb_prestation, montant_encours, lieu_id, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'GHSBBM' AS type_ligne, date_debut, date_fin, GREATEST(date_fin - date_debut,1), 1, w_cti_encours_calcul_parametres.coefficient_mco, + prestation_ghs_id, rubrique_facturation_ghs_id, rubrique_comptabilisation_ghs_id, -9981, + base.cti_to_number(t_divers.valeur), 1, base.cti_to_number(t_divers.valeur), w_cti_encours_factures.lieu_sortie_id, + 'GHS Moyen paramétré pour les séjours bébés pour une maman dont le GHS est connu' AS regle_texte + FROM w_cti_encours_calcul_parametres, + w_cti_encours_factures + JOIN activite.t_divers ON t_divers.code = 'ENCOURSGHSMBB' AND base.cti_to_number(t_divers.valeur) <> 0 + WHERE w_cti_encours_factures.type_t2a = '1' AND w_cti_encours_factures.type_sejour = '1' AND + uniquement_prestations_saisies <> '1' AND + (w_cti_encours_factures.ghs_bebe1_id <= 0 OR w_simul = '1') AND + w_cti_encours_factures.ghm_id NOT IN (SELECT oid FROM base.t_ghm WHERE code IN ('14Z08Z')) AND + w_cti_encours_factures.ghm_id IN (SELECT oid FROM base.t_ghm WHERE code LIKE ('14%') AND (texte ILIKE '%sarienne%' OR texte ILIKE '%accouchement%') AND texte NOT ILIKE '%faux%') AND + COALESCE(rubrique_facturation_ghs_id,0) <> 0 AND + COALESCE(prestation_ghs_id,0) <> 0 AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') ; + + -- A la fin du premier passage, conserver le résultat + IF _ENCOURSECARTGHSV > 0 AND w_simul = '1' THEN + DROP TABLE IF EXISTS w_cti_encours_factures_lignes_c_simul_ng; + CREATE TEMP TABLE w_cti_encours_factures_lignes_c_simul_ng AS + SELECT w_cti_encours_factures_lignes_c.* + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE t_prestations.code IN ('GHS','EXH') + ; + END IF; + + IF _ENCOURSECARTGHSV > 0 AND w_simul = '0' THEN + INSERT INTO activite.t_prestations + (code_original, code, texte, texte_court, clinique_honoraire) + VALUES + ('*GHSECARTV', 'GHS-ECART', 'Alerte écart valorisation GHS groupé', 'Alerte écart valorisation GHS groupé', '') + ON CONFLICT ON CONSTRAINT t_prestations_code_key + DO UPDATE SET + code_original = EXCLUDED.code_original -- couvre le cas où code_original aurait été modifié (cf. import SIGEMS notamment) + , texte = EXCLUDED.texte + , texte_court = EXCLUDED.texte_court + , clinique_honoraire = EXCLUDED.clinique_honoraire + ; + + -- A la fin du second passage, enregistrer les écarts importants + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, + no_facture, + type_ligne, + date_debut, + date_fin, + nb_rubrique, + coefficient, + coefficient_mco, + prestation_id, + rubrique_facturation_id, + rubrique_comptabilisation_id, + ghs_id, + prix_unitaire, + nb_prestation, + montant_encours, + lieu_id, + regle_texte) + + SELECT subview_simul.no_sejour, + subview_simul.no_facture, + 'GHSECART' AS type_ligne, + subview.date_debut, + subview.date_fin, + 0::numeric AS nb_rubrique, + 0::numeric AS coefficient, + 0::numeric AS coefficient_mco, + t_prestations.oid AS prestation_id, + 0::bigint AS rubrique_facturation_id, + 0::bigint AS rubrique_comptabilisation_id, + subview.ghs_id, + 0::numeric AS prix_unitaire, + 0::numeric AS nb_prestation, + 0::numeric AS montant_encours, + subview.lieu_id, + 'Montant GHS inférieur (-' || (montant_encours_simul-montant_encours)::text || 'E) / ' || subview_simul.regle_texte + FROM + ( + SELECT no_sejour, no_facture, + SUM(montant_encours) AS montant_encours_simul, + MAX(CASE WHEN t_prestations.code = 'GHS' THEN regle_texte ELSE '' END) AS regle_texte + FROM w_cti_encours_factures_lignes_c_simul_ng + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE t_prestations.code IN ('GHS','EXH') + GROUP BY 1,2 + ) subview_simul + JOIN + ( + SELECT no_sejour, + no_facture, + SUM(montant_encours) AS montant_encours, + MAX(ghs_id) AS ghs_id, + MIN(date_debut) AS date_debut, + MAX(date_fin) AS date_fin, + MAX(lieu_id) AS lieu_id + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE t_prestations.code IN ('GHS','EXH') + GROUP BY 1,2 + ) subview ON + subview_simul.no_sejour = subview.no_sejour AND + subview_simul.no_facture = subview.no_facture + JOIN activite.t_prestations ON t_prestations.code_original = '*GHSECARTV' + left JOIN activite.t_rubriques_facturation ON t_rubriques_facturation.code_original = '*GHSECARTV' + WHERE subview_simul.montant_encours_simul - montant_encours >= _ENCOURSECARTGHSV + ; + END IF; + END LOOP; + + + -- Ne pas générer ce qui est deja saisi en non facturé + + INSERT INTO w_cti_factures_lignes_non_facturees_c + SELECT w_cti_encours_factures.no_sejour, + w_cti_encours_factures.no_facture, + CASE WHEN t_prestations.code IN ('FJA', 'FJR', 'FJS') THEN 'FJA' + WHEN t_prestations.code IN ('FJ') AND type_t2a = '1' THEN 'FJA' + ELSE t_prestations.code END AS prestation_code, + MIN(CASE WHEN code_sorti = '1' AND type_sejour = '1' AND (p_factures_lignes_non_facturees_c.date_debut = w_cti_encours_factures.date_fin OR p_factures_lignes_non_facturees_c.date_fin = w_cti_encours_factures.date_fin AND nb_rubrique = 1) THEN '1' ELSE '0' END), + MIN(COALESCE(t_prestations.type_valorisation_non_facture,'')) AS type_valorisation_non_facture + FROM w_cti_encours_factures + JOIN activite.p_factures_lignes_non_facturees_c ON w_cti_encours_factures.no_facture = p_factures_lignes_non_facturees_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE t_prestations.code NOT IN ('GHS', 'EXH', 'SRC', 'REA', 'STF') + OR + ( + t_prestations.code IN ('SRC', 'REA', 'STF') AND + w_cti_encours_factures.ghs_id > 0 AND + w_OPTION_ENCOURSMCOSUP = '1' + ) + GROUP BY 1,2,3 + UNION + SELECT w_cti_encours_factures.no_sejour, + w_cti_encours_factures.no_facture, + CASE WHEN t_prestations.code IN ('FJA', 'FJR', 'FJS') THEN 'FJA' + WHEN t_prestations.code IN ('FJ') AND type_t2a = '1' THEN 'FJA' + ELSE t_prestations.code END AS prestation_code, + MIN(CASE WHEN code_sorti = '1' AND type_sejour = '1' AND (p_factures_lignes_c.date_debut = w_cti_encours_factures.date_fin OR p_factures_lignes_c.date_fin = w_cti_encours_factures.date_fin AND nb_rubrique = 1) THEN '1' ELSE '0' END), + MIN(COALESCE(t_prestations.type_valorisation_non_facture,'')) AS type_valorisation_non_facture + FROM w_cti_encours_factures + JOIN activite.p_factures_lignes_c ON w_cti_encours_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE t_prestations.code NOT IN ('GHS', 'EXH', 'SRC', 'REA', 'STF', 'GMT') AND + w_cti_encours_factures.particularites_encours_service NOT ILIKE '%MAT%' AND + w_cti_encours_factures.particularites_encours_service NOT ILIKE '%PASDEFJA%' AND + montant_facture <> 0 AND + w_cti_encours_factures.date_fin <= w_date_traitement + GROUP BY 1,2,3 + ; + + -- Si PJ en saisi, il faut considérer que le FJ est inclus si le FJ n'est pas saisi + INSERT INTO w_cti_factures_lignes_non_facturees_c + SELECT + w_cti_factures_lignes_non_facturees_c.no_sejour, + w_cti_factures_lignes_non_facturees_c.no_facture, + 'FJ' AS prestation_code, + w_cti_factures_lignes_non_facturees_c.only_jour_sortie, + ''::text AS type_valorisation_non_facture + FROM w_cti_factures_lignes_non_facturees_c + LEFT JOIN w_cti_factures_lignes_non_facturees_c w_cti_factures_lignes_non_facturees_c_fj ON + w_cti_factures_lignes_non_facturees_c.no_sejour = w_cti_factures_lignes_non_facturees_c_fj.no_sejour AND + w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_factures_lignes_non_facturees_c_fj.no_facture AND + w_cti_factures_lignes_non_facturees_c_fj.prestation_code = 'FJ' + WHERE w_cti_factures_lignes_non_facturees_c.prestation_code = 'PJ' AND + w_cti_factures_lignes_non_facturees_c_fj.no_facture IS NULL + ; + + -- PJ FJ ENT GMT + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'PJ FJ ENT GMT'; + INSERT INTO w_cti_encours_factures_lignes_c(no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, prix_unitaire, montant_encours, lieu_id, regle_texte) + SELECT + w_cti_encours_factures.no_sejour + , w_cti_encours_factures.no_facture + , CASE + WHEN w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation IN ('PJ') THEN 'PJ' + WHEN w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation IN ('GMT') THEN 'GMT' + ELSE w_cti_encours_calcul_parametres_services_prestations.prestation_code END AS type_ligne + , p_mouvements_sejour.date + , p_mouvements_sejour.date + , 1 + , 1 + , 1 + , 1 + , prestation_id + , rubrique_facturation_id + , rubrique_facturation_id + , MAX(prix_unitaire) + , MAX(round(prix_unitaire,2)) + , MAX(p_mouvements_sejour.lieu_id) + , 'GMT et forfaits journaliers' + FROM w_cti_encours_factures + JOIN activite.p_sejours ON w_cti_encours_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_divers ON t_divers.code = 'OPTADM_DAYOUT' + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id + AND t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id + AND ( + prestation_code IN ('GMT', 'PJ', 'FJ', 'ENT', 'PMS') + OR w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation IN ('GMT', 'PJ','ENT') + ) + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_encours_factures.no_facture + AND w_cti_factures_lignes_non_facturees_c.prestation_code = w_cti_encours_calcul_parametres_services_prestations.prestation_code + WHERE + type_t2a IN ('2','3') + AND uniquement_prestations_saisies <> '1' + AND (est_jour_hospitalisation = '1' + OR p_mouvements_sejour.nb_ambulatoires = 1) + AND w_cti_factures_lignes_non_facturees_c.no_facture IS NULL + AND ( + w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('PJ', 'FJ') AND type_t2a = 3 AND nb_sorties_directes = 0 AND p_mouvements_sejour.date <> p_sejours.date_sortie + OR w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('PJ', 'FJ') AND type_t2a = 3 AND nb_sorties_directes = 1 AND p_mouvements_sejour.date = p_sejours.date_sortie AND (p_mouvements_sejour.heure_fin > 130000 OR t_divers.valeur = '2') + OR w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('PJ', 'FJ') AND type_t2a = 3 AND p_mouvements_sejour.nb_ambulatoires = 1 + OR w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('GMT', 'FJ') AND type_t2a = 2 AND nb_sorties_directes = 0 AND p_mouvements_sejour.date <> p_sejours.date_sortie + OR w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('GMT', 'FJ') AND type_t2a = 2 AND nb_sorties_directes = 1 AND p_mouvements_sejour.date = p_sejours.date_sortie AND (p_mouvements_sejour.heure_fin > 130000 OR t_divers.valeur = '2') + OR w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('GMT', 'FJ') AND type_t2a = 2 AND p_mouvements_sejour.nb_ambulatoires = 1 + OR w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation IN ('PJ') AND nb_sorties_directes = 0 AND p_mouvements_sejour.date <> p_sejours.date_sortie + OR w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation IN ('PJ') AND nb_sorties_directes = 1 AND p_mouvements_sejour.date = p_sejours.date_sortie AND (p_mouvements_sejour.heure_fin > 130000 OR t_divers.valeur = '2') + OR w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation IN ('PJ') AND p_mouvements_sejour.nb_ambulatoires = 1 + OR w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('ENT') AND nb_entrees_directes = 1 + OR w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation IN ('ENT') AND nb_entrees_directes = 1 + OR w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('PMS') AND p_mouvements_sejour.jour_semaine = 7 + ) + AND COALESCE(rubrique_facturation_id,0) <> 0 + AND COALESCE(prestation_id,0) <> 0 + AND ( + p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin + OR service_facturation_id NOT IN (SELECT oid FROM activite.t_services_facturation WHERE avec_facturation_intermediaire = '1' + ) + ) + GROUP BY + w_cti_encours_factures.no_sejour + , w_cti_encours_factures.no_facture + , 3 + , p_mouvements_sejour.date + , 6 + , 7 + , 8 + , 9 + , prestation_id + , rubrique_facturation_id + , 16 + ; + + UPDATE w_cti_encours_factures_lignes_c + SET + montant_encours = p_gmt_valorises.montant_valorise_par_jour + , prix_unitaire = p_gmt_valorises.montant_valorise_par_jour + FROM activite.p_gmt_valorises + WHERE 1 = 1 + AND w_cti_encours_factures_lignes_c.no_sejour = p_gmt_valorises.no_sejour + AND w_cti_encours_factures_lignes_c.type_ligne = 'GMT' + AND w_cti_encours_factures_lignes_c.date_debut BETWEEN p_gmt_valorises.date_debut_gmt::date AND p_gmt_valorises.date_fin_gmt::date + ; + + -- Sur budget global, il faut générer le Ticket modérateur + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'TM Budget Global MCO'; + + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, lieu_id, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'TMBG' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, 1, (100-taux_ghs_1)/100, 1, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(prix_unitaire*(100-taux_ghs_1)/100), p_mouvements_sejour.lieu_id, + regle_taux_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + (prestation_code IN ('PJ') + ) + JOIN w_cti_encours_factures_histo_taux ON lieu_sortie_service_id = w_cti_encours_factures_histo_taux.service_facturation_id AND taux_ghs_1 < 100 + + WHERE + type_t2a = '1' AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_factures.no_facture NOT LIKE '%BG' AND + w_cti_encours_factures.no_sejour IN (SELECT no_sejour FROM w_cti_encours_factures_lignes_c WHERE prestation_id IN (SELECT oid FROM activite.t_prestations WHERE code = 'GHS')) AND + (est_jour_hospitalisation = '1' OR p_mouvements_sejour.nb_ambulatoires = 1) AND + ( + w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('PJ') AND nb_sorties_directes = 0 AND p_mouvements_sejour.date <> w_cti_encours_factures.date_fin OR + w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('PJ') AND nb_sorties_directes = 0 AND p_mouvements_sejour.date = w_cti_encours_factures.date_fin AND p_mouvements_sejour.heure_fin > 130000 OR + w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('PJ') AND p_mouvements_sejour.nb_ambulatoires = 1 + ) AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + (p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin ) AND + w_cti_encours_factures.duree_sejour <= 30 AND + w_cti_encours_factures.no_sejour NOT IN (SELECT no_sejour FROm w_actes_120) + ; + + -- Sur budget global, il faut générer éventuellement les suppléments irradiation + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Suppléments irradiation'; + + + + -- GHT (HAD) + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'GHT'; + + -- Tranche manquante + DROP TABLE IF EXISTS w_cti_encours_calcul_parametres_services_prestations_t; + CREATE TEMP TABLE w_cti_encours_calcul_parametres_services_prestations_t AS + SELECT w_cti_encours_calcul_parametres_services_prestations.*, + tranche_ght_req + FROM w_cti_encours_calcul_parametres_services_prestations + JOIN ( + SELECT tranche_ght_req, lieu_service_id, lieu_unite_fonctionnelle_id, MAX(tranche_ght) AS tranche_ght_sel + FROM w_cti_encours_calcul_parametres_services_prestations + JOIN + (SELECT '1'::text AS tranche_ght_req UNION SELECT '2'::text UNION SELECT '3' UNION SELECT '9') subview ON 1=1 + WHERE prestation_code = 'GHT' AND + (lieu_service_id || '-' || lieu_unite_fonctionnelle_id) NOT IN + (SELECT lieu_service_id || '-' || lieu_unite_fonctionnelle_id + FROM w_cti_encours_calcul_parametres_services_prestations + WHERE prestation_code = 'GHT' AND + tranche_ght = tranche_ght_req + ) + GROUP BY 1,2,3 + ) subview ON + w_cti_encours_calcul_parametres_services_prestations.lieu_service_id = subview.lieu_service_id AND + w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id = subview.lieu_unite_fonctionnelle_id AND + w_cti_encours_calcul_parametres_services_prestations.tranche_ght = tranche_ght_sel + ; + + UPDATE w_cti_encours_calcul_parametres_services_prestations_t + SET tranche_ght = tranche_ght_req + ; + + ALTER TABLE w_cti_encours_calcul_parametres_services_prestations_t DROP COLUMN tranche_ght_req + ; + + INSERT INTO w_cti_encours_calcul_parametres_services_prestations + SELECT * + FROM w_cti_encours_calcul_parametres_services_prestations_t + ; + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, lieu_id, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, regle_texte) + SELECT + w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'GHT' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, p_mouvements_sejour.lieu_id, 1, 1, coefficient, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(prix_unitaire * coefficient,2), regle_prestation_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN activite.p_factures ON w_cti_encours_factures.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('GHT') AND + CASE + WHEN p_mouvements_sejour.date - p_sejours.date_entree <= 3 THEN '1' + WHEN p_mouvements_sejour.date - p_sejours.date_entree BETWEEN 4 AND 8 THEN '2' + WHEN p_mouvements_sejour.date - p_sejours.date_entree BETWEEN 9 AND 30 THEN '3' + ELSE '9' END = tranche_ght + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_encours_factures.no_facture AND + w_cti_factures_lignes_non_facturees_c.prestation_code = w_cti_encours_calcul_parametres_services_prestations.prestation_code + WHERE + type_t2a <> '1' AND + uniquement_prestations_saisies <> '1' AND + est_jour_hospitalisation = '1' AND + p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin AND + (p_mouvements_sejour.date <> w_cti_encours_factures.date_fin OR p_mouvements_sejour.heure_fin > 130000 OR p_sejours.date_sortie = p_sejours.date_entree) AND + (nb_sorties_directes = 0 OR p_sejours.date_sortie = p_sejours.date_entree) AND + coefficient > 0 AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 + ORDER BY 1,4; + + -- Chambres particulières + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Chambres particulieres'; + + -- Si plusieurs factures de référence (SSR), essayer de trouver la bonne prestation + DROP TABLE IF EXISTS w_cti_encours_sejour_deja_cpc; + CREATE TEMP TABLE w_cti_encours_sejour_deja_cpc AS + SELECT p_factures.no_sejour, + prestation_id, + MAX(t_prestations.code) AS prestation_code, + MAX(rubrique_facturation_id) AS rubrique_facturation_id, + MAX(p_factures_lignes_c.date_debut) AS date_debut, + (MAX(Array[p_factures_lignes_c.date_debut::text, + to_char(prix_unitaire,'FM000000000.00')]))[2]::numeric AS prix_unitaire + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE p_factures_lignes_c.montant_facture <> 0 AND + p_factures.no_sejour IN (SELECT no_sejour FROM w_cti_encours_factures) AND + p_factures.no_sejour IN (SELECT no_sejour FROM activite.p_factures WHERE no_facture = no_facture_reference GROUP BY 1 HAVING count(*) > 1) AND + (t_prestations.code IN ('CPC', 'SHO', 'CP') OR + t_prestations.type_valorisation_non_facture IN ('CP') + ) + GROUP BY 1,2 + HAVING SUM(nb_prestation) > 0 + ; + + DELETE FROM w_cti_encours_sejour_deja_cpc + USING + ( + SELECT no_sejour, MAX(date_debut) AS date_debut + FROM w_cti_encours_sejour_deja_cpc + GROUP BY 1 + HAVING count(DISTINCT date_debut) > 1 + ) subview + WHERE w_cti_encours_sejour_deja_cpc.no_sejour = subview.no_sejour AND + w_cti_encours_sejour_deja_cpc.date_debut < subview.date_debut + ; + + -- Pas de CPC déjà facturées, prendre les moyennes + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, lieu_id, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, regle_coefficient, regle_texte) + SELECT + w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'CPC' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, p_mouvements_sejour.lieu_id, 1, 1, coefficient, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(prix_unitaire * coefficient,2), coefficient, + regle_prestation_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN activite.p_factures ON w_cti_encours_factures.no_facture = p_factures.no_facture + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation <> ('*SAISIE') AND + (w_cti_encours_calcul_parametres_services_prestations.prestation_code IN ('CPC', 'SHO', 'CP') OR + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation IN ('CP') + ) + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_encours_factures.no_facture AND + ( + w_cti_factures_lignes_non_facturees_c.prestation_code IN ('CPC', 'SHO', 'CP', 'FORAMB') OR + w_cti_factures_lignes_non_facturees_c.prestation_code = w_cti_encours_calcul_parametres_services_prestations.prestation_code OR + w_cti_factures_lignes_non_facturees_c.type_valorisation_non_facture IN ('CP') + ) AND + only_jour_sortie <> '1' + WHERE + (p_mouvements_sejour.heure_fin = 240000 OR p_mouvements_sejour.nb_ambulatoires = 1) AND + est_chambre_particuliere = '1' AND + coefficient <> 0 AND + uniquement_prestations_saisies <> '1' AND + (p_mouvements_sejour.date <> w_cti_encours_factures.date_fin OR p_mouvements_sejour.heure_fin > 130000 OR p_mouvements_sejour.nb_ambulatoires = 1) AND + p_mouvements_sejour.date <= w_cti_encours_factures.date_fin AND + (p_factures.code_cp_demandee = '1' OR w_OPTION_ENCOURSVALOCP = '1') AND + nb_sorties_directes = 0 AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + w_cti_encours_factures.no_facture NOT LIKE '%BG' AND + w_cti_encours_factures.no_facture_reference NOT IN (SELECT no_facture_reference FROM w_cti_encours_factures_deja_cpc) AND + w_cti_encours_factures.no_sejour NOT IN (SELECT no_sejour FROM w_cti_encours_sejour_deja_cpc) AND + ( + p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin OR + service_facturation_id NOT IN (SELECT oid FROM activite.t_services_facturation WHERE avec_facturation_intermediaire = '1') + ) + + ORDER BY 1,4; + + -- CPC déjà facturées, prendre le dernier PU + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, lieu_id, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, regle_coefficient, regle_texte) + SELECT + w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'CPC' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, p_mouvements_sejour.lieu_id, 1, 1, 1::numeric AS coefficient, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + w_cti_encours_sejour_deja_cpc.prix_unitaire, w_cti_encours_sejour_deja_cpc.prix_unitaire, 1::numeric AS coefficient, + 'Reconduite facturation antérieure ('||w_cti_encours_sejour_deja_cpc.date_debut::text||')' AS regle_prestation_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN activite.p_factures ON w_cti_encours_factures.no_facture = p_factures.no_facture + JOIN w_cti_encours_sejour_deja_cpc ON w_cti_encours_factures.no_sejour = w_cti_encours_sejour_deja_cpc.no_sejour + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_encours_factures.no_facture AND + ( + w_cti_factures_lignes_non_facturees_c.prestation_code IN ('CPC', 'SHO', 'CP', 'FORAMB') OR + w_cti_factures_lignes_non_facturees_c.prestation_code = w_cti_encours_sejour_deja_cpc.prestation_code OR + w_cti_factures_lignes_non_facturees_c.type_valorisation_non_facture IN ('CP') + ) AND + only_jour_sortie <> '1' + WHERE + (p_mouvements_sejour.heure_fin = 240000 OR p_mouvements_sejour.nb_ambulatoires = 1) AND + est_chambre_particuliere = '1' AND + uniquement_prestations_saisies <> '1' AND + (p_mouvements_sejour.date <> w_cti_encours_factures.date_fin OR p_mouvements_sejour.heure_fin > 130000 OR p_mouvements_sejour.nb_ambulatoires = 1) AND + p_mouvements_sejour.date <= w_cti_encours_factures.date_fin AND + nb_sorties_directes = 0 AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + w_cti_encours_factures.no_facture NOT LIKE '%BG' AND + w_cti_encours_factures.no_facture_reference NOT IN (SELECT no_facture_reference FROM w_cti_encours_factures_deja_cpc) AND + ( + p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin OR + service_facturation_id NOT IN (SELECT oid FROM activite.t_services_facturation WHERE avec_facturation_intermediaire = '1') + ) + ORDER BY 1,4; + + -- SRC, REA, STF + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'SRC, REA, STF'; + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, lieu_id, regle_coefficient, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'SSS' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, 1, 1, coefficient, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(prix_unitaire * coefficient * coefficient_mco), (MAX(Array[p_mouvements_sejour.heure_fin,p_mouvements_sejour.lieu_id]))[2], + coefficient, regle_prestation_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + prestation_code IN ('SRC', 'REA', 'STF') + WHERE + + type_t2a = '1' AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation <> ('*SAISIE') AND + coefficient > 0 AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + p_mouvements_sejour.date <= w_cti_encours_factures.date_fin AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') AND + NOT ( + w_OPTION_ENCOURSMCOSUP = '1' AND + w_cti_encours_factures.ghs_id > 0 + ) + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,16,17 + HAVING + (MAX(p_mouvements_sejour.heure_fin) = 240000 OR MIN(p_mouvements_sejour.heure_debut) > 0 AND MAX(p_mouvements_sejour.heure_fin) < 240000 OR + MAX(nb_sorties_directes) = 1 AND MAX(mode_sortie) IN ('9')) + ; + -- IGM, IGP, IMD, IMI, IPD + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'AMD, AMF, APD, IGM, IGP, IMD, IMI, IPD, IVG'; + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, lieu_id, regle_coefficient,regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'IVG' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, 1, 1, coefficient, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(prix_unitaire * coefficient * coefficient_mco), p_mouvements_sejour.lieu_id, + coefficient, regle_prestation_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + prestation_code IN ('AMD', 'AMF', 'APD', 'IGM', 'IGP', 'IMD', 'IMI', 'IPD', 'IVG') + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_sejour = w_cti_encours_factures.no_sejour AND + w_cti_factures_lignes_non_facturees_c.prestation_code IN ('AMD', 'AMF', 'APD', 'IGM', 'IGP', 'IMD', 'IMI', 'IPD', 'IVG') + WHERE + ( + p_mouvements_sejour.nb_externes = 1 OR + p_mouvements_sejour.nb_ambulatoires = 1 AND type_t2a <> '1' OR + w_cti_encours_factures.particularites_encours_service ILIKE '%IVG%' OR + w_cti_encours_factures.ghm_id IN (SELECT oid FROM base.t_ghm WHERE code IN ('14Z08Z')) + ) AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation <> ('*SAISIE') AND + (p_mouvements_sejour.nb_externes = 1 OR p_mouvements_sejour.nb_ambulatoires = 1 OR p_mouvements_sejour.nb_entrees_directes = 1) AND + coefficient > 0 AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0; + -- NN1, NN2, NN3 + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'NN1, NN2, NN3'; + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, lieu_id, regle_coefficient, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'NNX' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, 1, 1, coefficient, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + (MAX(ARRAY[p_mouvements_sejour.heure_fin,prix_unitaire]))[2], + (MAX(ARRAY[p_mouvements_sejour.heure_fin,round(prix_unitaire * coefficient * coefficient_mco)]))[2], + (MAX(ARRAY[p_mouvements_sejour.heure_fin,p_mouvements_sejour.lieu_id]))[2], + (MAX(ARRAY[p_mouvements_sejour.heure_fin,coefficient]))[2], + (MAX(ARRAY[to_char(p_mouvements_sejour.heure_fin,'000000'),regle_prestation_texte]))[2] + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour AND + p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + prestation_code IN ('NN1', 'NN2', 'NN3') + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_encours_factures.no_facture AND + w_cti_factures_lignes_non_facturees_c.prestation_code LIKE 'NN%' + WHERE + (p_mouvements_sejour.heure_fin = 240000 OR p_mouvements_sejour.heure_debut > 0 AND p_mouvements_sejour.heure_fin < 240000) AND + type_t2a = '1' AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation <> ('*SAISIE') AND + coefficient > 0 AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12; + -- D09 D11 D13 + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Dxx'; + -- Seances de dialyse dans les actes non facturés + DROP TABLE IF EXISTS w_actes_seance_jvj; + CREATE TEMP TABLE w_actes_seance_jvj AS + SELECT p_factures.no_sejour, p_factures_lignes_non_facturees_h.date_debut AS date_seance + FROM activite.p_factures_lignes_non_facturees_h + JOIN activite.p_factures ON p_factures_lignes_non_facturees_h.no_facture = p_factures.no_facture + JOIN base.t_actes ON acte_id = t_actes.oid + WHERE t_actes.code LIKE 'JVJ%' AND t_actes.code NOT LIKE 'JVJF002%' + GROUP BY 1,2 + ; + -- Seances deja facturées + DROP TABLE IF EXISTS w_cti_factures_seances_deja_facturees; + CREATE TEMP TABLE w_cti_factures_seances_deja_facturees AS + SELECT p_sejours.no_sejour, p_factures_lignes_c.date_debut + FROM activite.p_factures + JOIN activite.p_sejours ON p_sejours.no_sejour = p_factures.no_sejour + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE type_sejour = '5' AND + montant_facture <> 0 AND + t_prestations.code IN ('D09','D11','D13', 'D13', 'D15', 'D16', 'DTP') AND + p_sejours.no_sejour IN (SElECT no_sejour FROM activite.p_factures WHERE code_facture = '0') + GROUP BY 1,2 + HAVING SUM(montant_facture) > 0 + ; + + CREATE INDEX i_w_cti_factures_seances_deja_facturees_1 + ON w_cti_factures_seances_deja_facturees + USING btree (no_sejour) + ; + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, lieu_id, regle_coefficient, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'DIA' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, 1, 1, coefficient, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(prix_unitaire * coefficient * coefficient_mco), p_mouvements_sejour.lieu_id, + coefficient, regle_prestation_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour AND p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + LEFT JOIN w_actes_seance_jvj ON w_actes_seance_jvj.no_sejour = w_cti_encours_factures.no_sejour AND + w_actes_seance_jvj.date_seance = p_mouvements_sejour.date + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + prestation_code IN ('D09','D11','D13', 'D13', 'D15', 'D16', 'DTP') + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_encours_factures.no_facture AND + w_cti_factures_lignes_non_facturees_c.prestation_code = w_cti_encours_calcul_parametres_services_prestations.prestation_code + LEFT JOIN w_cti_factures_seances_deja_facturees ON + p_mouvements_sejour.no_sejour = w_cti_factures_seances_deja_facturees.no_sejour AND + p_mouvements_sejour.date = w_cti_factures_seances_deja_facturees.date_debut + + WHERE + (p_mouvements_sejour.nb_seances > 0) AND + coefficient > 0 AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation <> ('*SAISIE') AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + w_cti_factures_seances_deja_facturees.no_sejour IS NULL AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + (w_actes_seance_jvj.no_sejour IS NOT NULL OR w_cti_encours_factures.type_sejour = '5') AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG'); + -- FJA + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'FJA'; + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, lieu_id, regle_texte) + SELECT + w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'FJA' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, 1, 1, 1, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, prix_unitaire, p_mouvements_sejour.lieu_id, 'Forfait jour de sortie (Sauf maternité) ' + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + prestation_code IN ('FJA') + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_encours_factures.no_facture AND + w_cti_factures_lignes_non_facturees_c.prestation_code = w_cti_encours_calcul_parametres_services_prestations.prestation_code + WHERE nb_sorties_directes = 1 AND + mode_sortie IN ('6', '8') AND + uniquement_prestations_saisies <> '1' AND + base.cti_division(w_cti_encours_calcul_parametres_services_prestations.nombre,w_cti_encours_calcul_parametres_services_prestations.nb_journees)*100 >= 1 AND + w_cti_encours_factures.particularites_encours_service NOT ILIKE '%MAT%' AND + w_cti_encours_factures.particularites_encours_service NOT ILIKE '%PASDEFJA%' AND + prix_unitaire > 0 AND + w_cti_encours_factures.duree_sejour > 0 AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + w_cti_encours_factures.no_facture NOT LIKE '%BG' AND + (p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin OR + service_facturation_id NOT IN (SELECT oid FROM activite.t_services_facturation WHERE avec_facturation_intermediaire = '1') + ); + -- ATU + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'ATU'; + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, lieu_id, regle_coefficient) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'ATU' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, 1, 1, coefficient, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(prix_unitaire * coefficient), p_mouvements_sejour.lieu_id, + coefficient + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + ( + prestation_code = 'ATU' AND p_mouvements_sejour.date <= '20211231' OR + prestation_code = 'FPU' AND p_mouvements_sejour.date >= '20220101' + ) + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_sejour = w_cti_encours_factures.no_sejour AND + w_cti_factures_lignes_non_facturees_c.prestation_code IN ('ATU','FPU') + WHERE + p_mouvements_sejour.nb_externes = 1 AND + p_mouvements_sejour.nb_externes = 1 AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation <> ('*SAISIE') AND + coefficient > 0 AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0; + + + -- Identification des SE pour ne pas générer de GHS + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'SE1, SE2, SE3, SE4'; + INSERT INTO w_cti_encours_actes_se1234 + SELECT t_actes.oid, t_actes.code, + CASE + WHEN t_actes.code IN ('FEJF003') + THEN 'SE4' + WHEN t_actes.code IN ('AGLB001', 'AHLB003', 'AHLB015', 'AHLB016', 'AHLH014', 'GGHB002', 'GGJB001', 'GGJB002', 'HPJB001', 'JGHB001', 'JGHB002', 'JGHD001', 'JGHJ001', 'JGHJ002', 'JPHJ001', 'JPHJ002') + THEN 'SE3' + WHEN t_actes.code IN ('AELB002', 'AHHA001', 'AHHA002', 'BAGA001', 'BBGA001', 'BDCA003', 'BEJB001', 'BEJB002', 'BELB001', 'BEPA001', 'BGHA001', 'BGJB001', 'BGLB001', 'BGLB002', 'BKLB001', 'CAEA002', 'CAFA006', 'CBLD001', 'CBLD003', 'EBGA001', 'EBHA001', 'EBNE002', 'EGFA007', 'FCFA012', 'FCFA028', 'GBJD002', 'JAHB001', 'JAHJ002', 'JAHJ006', 'JAKD001', 'JCKD001', 'JDLF001', 'JHSB001', 'LHNH001', 'MDGB001', 'MHDB001', 'NJAB001', 'NJMB001', 'PAGB002', 'PAGH001', 'PDFA001', 'QAGA004', 'QZFA001', 'QZFA002', 'QZFA005', 'QZFA007', 'QZGA003', 'QZGA006') + THEN 'SE2' + WHEN t_actes.code IN ('BBCE001', 'DZQJ001', 'DZQJ008', 'DZQJ010', 'DZQJ011', 'GBQA002', 'GDQE004', 'GEQE002', 'GEQE004', 'GEQE006', 'GEQE007', 'GEQE009', 'GEQE010', 'GEQH002', 'HEGE001', 'HEGE002', 'HEQE001', 'HEQE002', 'HEQE003', 'HEQE005', 'HGNE001', 'HGQE002', 'HJQE001', 'HMQH007', 'JCGE003', 'JCGE004', 'JDQE001', 'JDQE002', 'JDQE003', 'JEGE001', 'JEHE002') + THEN 'SE1' + ELSE '' + END AS prestation_code + FROM base.t_actes + WHERE t_actes.code IN ('FEJF003', + 'AGLB001', 'AHLB003', 'AHLB015', 'AHLB016', 'AHLH014', 'GGHB002', 'GGJB001', 'GGJB002', 'HPJB001', 'JGHB001', 'JGHB002', 'JGHD001', 'JGHJ001', 'JGHJ002', 'JPHJ001', 'JPHJ002', + 'AELB002', 'AHHA001', 'AHHA002', 'BAGA001', 'BBGA001', 'BDCA003', 'BEJB001', 'BEJB002', 'BELB001', 'BEPA001', 'BGHA001', 'BGJB001', 'BGLB001', 'BGLB002', 'BKLB001', 'CAEA002', 'CAFA006', 'CBLD001', 'CBLD003', 'EBGA001', 'EBHA001', 'EBNE002', 'EGFA007', 'FCFA012', 'FCFA028', 'GBJD002', 'JAHB001', 'JAHJ002', 'JAHJ006', 'JAKD001', 'JCKD001', 'JDLF001', 'JHSB001', 'LHNH001', 'MDGB001', 'MHDB001', 'NJAB001', 'NJMB001', 'PAGB002', 'PAGH001', 'PDFA001', 'QAGA004', 'QZFA001', 'QZFA002', 'QZFA005', 'QZFA007', 'QZGA003', 'QZGA006', + 'BBCE001', 'DZQJ001', 'DZQJ008', 'DZQJ010', 'DZQJ011', 'GBQA002', 'GDQE004', 'GEQE002', 'GEQE004', 'GEQE006', 'GEQE007', 'GEQE009', 'GEQE010', 'GEQH002', 'HEGE001', 'HEGE002', 'HEQE001', 'HEQE002', 'HEQE003', 'HEQE005', 'HGNE001', 'HGQE002', 'HJQE001', 'HMQH007', 'JCGE003', 'JCGE004', 'JDQE001', 'JDQE002', 'JDQE003', 'JEGE001', 'JEHE002' + ) + ; + INSERT INTO w_cti_encours_se1234 + SELECT p_factures_lignes_h.no_facture, + (MAX(ARRAY[w_cti_encours_actes_se1234.prestation_code,w_cti_encours_actes_se1234.code]))[2] AS acte_se, + (MAX(ARRAY[w_cti_encours_actes_se1234.prestation_code,w_cti_encours_actes_se1234.code]))[1] AS type_se + FROM activite.p_factures_lignes_h + JOIN w_cti_encours_factures ON p_factures_lignes_h.no_facture = w_cti_encours_factures.no_facture AND type_sejour IN ('3') + JOIN w_cti_encours_actes_se1234 ON acte_id = w_cti_encours_actes_se1234.oid + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = p_factures_lignes_h.no_facture AND + w_cti_factures_lignes_non_facturees_c.prestation_code IN ('SE1','SE2','SE3','SE4','SE5','SE6','SE7') + WHERE w_cti_factures_lignes_non_facturees_c.no_facture IS NULL + GROUP BY 1; + INSERT INTO w_cti_encours_se1234 + SELECT p_factures_lignes_non_facturees_h.no_facture, + (MAX(ARRAY[w_cti_encours_actes_se1234.prestation_code,w_cti_encours_actes_se1234.code]))[2] AS acte_se, + (MAX(ARRAY[w_cti_encours_actes_se1234.prestation_code,w_cti_encours_actes_se1234.code]))[1] AS type_se + FROM activite.p_factures_lignes_non_facturees_h + JOIN w_cti_encours_factures ON p_factures_lignes_non_facturees_h.no_facture = w_cti_encours_factures.no_facture AND type_sejour IN ('3') + JOIN w_cti_encours_actes_se1234 ON acte_id = w_cti_encours_actes_se1234.oid + LEFT JOIN w_cti_encours_se1234 ON p_factures_lignes_non_facturees_h.no_facture = w_cti_encours_se1234.no_facture + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = p_factures_lignes_non_facturees_h.no_facture AND + w_cti_factures_lignes_non_facturees_c.prestation_code IN ('SE1','SE2','SE3','SE4','SE5','SE6','SE7') + WHERE w_cti_encours_se1234.no_facture IS NULL AND w_cti_factures_lignes_non_facturees_c.no_facture IS NULL + GROUP BY 1; + + + + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, lieu_id, regle_texte) + SELECT + w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'SEH' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, 1, 1, 1, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, prix_unitaire, p_mouvements_sejour.lieu_id, + 'Prestation générée par l''acte : '||acte_se AS regle_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour AND nb_externes > 0 + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN w_cti_encours_se1234 ON w_cti_encours_factures.no_facture = w_cti_encours_se1234.no_facture + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id + WHERE + prix_unitaire > 0 AND + uniquement_prestations_saisies <> '1' AND + w_cti_encours_se1234.type_se = prestation_code AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG'); + + -- Prestations valorisées selon prix unitaire moyen par jour de présence dans service + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Prestations selon PU moyen par jour'; + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, lieu_id, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, regle_texte) + SELECT + w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'PRESTAM' AS type_ligne, p_mouvements_sejour.date, p_mouvements_sejour.date, p_mouvements_sejour.lieu_id, 1, 1, 1, 1, + prestation_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(prix_unitaire,2), regle_prestation_texte + FROM w_cti_encours_factures + JOIN activite.p_mouvements_sejour ON w_cti_encours_factures.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN activite.p_factures ON w_cti_encours_factures.no_facture = p_factures.no_facture + JOIN w_cti_encours_calcul_parametres_services_prestations ON t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation = '*AVGJOUSER' + LEFT JOIN w_cti_factures_lignes_non_facturees_c ON w_cti_factures_lignes_non_facturees_c.no_facture = w_cti_encours_factures.no_facture AND + w_cti_factures_lignes_non_facturees_c.prestation_code = w_cti_encours_calcul_parametres_services_prestations.prestation_code + WHERE + (p_mouvements_sejour.heure_fin = 240000 OR p_mouvements_sejour.heure_debut > 0 AND p_mouvements_sejour.heure_fin < 240000) AND + w_cti_factures_lignes_non_facturees_c.no_facture IS NULL AND + w_cti_encours_calcul_parametres_services_prestations.prix_unitaire > 0 AND + COALESCE(rubrique_facturation_id,0) <> 0 AND + COALESCE(prestation_id,0) <> 0 AND + uniquement_prestations_saisies <> '1' AND + (w_cti_encours_factures.est_budget_global <> '1' OR w_cti_encours_factures.no_facture LIKE '%BG') AND + (p_mouvements_sejour.date BETWEEN w_cti_encours_factures.date_debut AND w_cti_encours_factures.date_fin OR + service_facturation_id NOT IN (SELECT oid FROM activite.t_services_facturation WHERE avec_facturation_intermediaire = '1') + ) + ORDER BY 1,4; + -- Prestations saisies + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Prestations saisies'; + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, lpp_id, ucd_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'SAISIE' AS type_ligne, p_factures_lignes_non_facturees_c.date_debut, p_factures_lignes_non_facturees_c.date_fin, nb_rubrique, nb_rubrique, coefficient, + COALESCE(p_factures_lignes_non_facturees_c.coefficient_mco,1) AS coefficient_mco, + prestation_id, COALESCE(p_factures_lignes_non_facturees_c.lpp_id,0) AS lpp_id, COALESCE(p_factures_lignes_non_facturees_c.ucd_id,0) AS ucd_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, round(nb_rubrique * coefficient * COALESCE(p_factures_lignes_non_facturees_c.coefficient_mco,1) * prix_unitaire * CASE WHEN t_prestations.code IN ('PJ', 'GMT') AND taux_1_bg BETWEEN 1 AND 99 THEN 100-taux_1_bg ELSE 100 END / 100,2), 'Prestation saisie' + FROM w_cti_encours_factures + JOIN activite.p_factures_lignes_non_facturees_c ON w_cti_encours_factures.no_facture = p_factures_lignes_non_facturees_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + LEFT JOIN + ( + SELECT p_factures.no_sejour, MAX(taux_1) AS taux_1_bg + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN w_cti_encours_factures ON p_factures.no_sejour = w_cti_encours_factures.no_sejour + WHERE p_factures.no_facture LIKE '%BG' AND t_prestations.code = 'GHS' AND taux_1 > 0 + GROUP BY 1 + ) subview_fac_bg ON w_cti_encours_factures.no_sejour = subview_fac_bg.no_sejour + WHERE + ( + t_prestations.code NOT IN ('GHS', 'EXH', 'SRC', 'REA', 'STF') + OR w_OPTION_ENCOURSMCOSUP = '1' + AND w_cti_encours_factures.ghs_id > 0 + AND t_prestations.code IN ('SRC', 'REA', 'STF')) + AND ( + t_prestations.code NOT IN ('GMT', 'PJ','PII') + OR t_prestations.code IN ('PII') AND est_budget_global <> '1' + OR t_prestations.code IN ('GMT', 'PJ') AND type_t2a <> '1' + OR t_prestations.code IN ('GMT', 'PJ','PII') + AND est_budget_global = '1' + AND NOT EXISTS ( + SELECT no_sejour + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE + t_prestations.code = 'GHS' + AND w_cti_encours_factures.no_sejour = w_cti_encours_factures_lignes_c.no_sejour + ) + AND taux_1_bg IS DISTINCT FROM 100 + OR t_prestations.code IN ('PII') + AND est_budget_global = '1' + AND w_cti_encours_factures.no_facture LIKE '%BG' + ) + ; + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, lpp_id, ucd_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'SAISIE' AS type_ligne, p_factures_lignes_c.date_debut, p_factures_lignes_c.date_fin, nb_rubrique, nb_rubrique, coefficient, 1, + prestation_id, COALESCE(p_factures_lignes_c.lpp_id,0) AS lpp_id, COALESCE(p_factures_lignes_c.ucd_id,0) AS ucd_id, rubrique_facturation_id, rubrique_facturation_id, + prix_unitaire, montant_facture + FROM w_cti_encours_factures + JOIN activite.p_factures_lignes_c ON w_cti_encours_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE t_prestations.code NOT IN ('GHS', 'EXH', 'SRC', 'REA', 'STF') AND + montant_facture <> 0 AND + w_cti_encours_factures.date_fin <= w_date_traitement; + + -- En budget global, supprimer en cours GHS si 100% PJ facturé sur mutuelles ou patient ou tp1 + DELETE FROM w_cti_encours_factures_lignes_c + USING + ( + SELECT no_sejour, + MAX(no_facture_bg) AS no_facture_bg, + MAX(taux_mut) AS taux_mut + FROM + ( + SELECT p_factures.no_sejour, + NULL::text AS no_facture_bg, + MAX(taux_0+CASE WHEN montant_facture_1 <> 0 THEN taux_1 ELSE 0 END+taux_2) AS taux_mut + FROM activite.p_factures + JOIN activite.p_sejours on p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations on prestation_id = t_prestations.oid + WHERE est_budget_global = '1' and t_prestations.code IN ('PJ') and + p_factures.no_facture NOT LIKE '%BG' AND + code_facture <> '0' AND + ( + montant_facture_0 <> 0 OR + montant_facture_1 <> 0 OR + montant_facture_2 <> 0 + ) + GROUP BY 1 + HAVING MAX(taux_0+CASE WHEN montant_facture_1 <> 0 THEN taux_1 ELSE 0 END+taux_2) = 100 AND + SUM(montant_facture_0+montant_facture_1+montant_facture_2) <> 0 + UNION + SELECT p_factures.no_sejour, + MAX(p_factures.no_facture) AS no_facture_bg, + 0 AS taux_mut + FROM activite.p_factures + JOIN activite.p_sejours on p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_factures_lignes_c ON p_factures.no_facture = w_cti_encours_factures_lignes_c.no_facture + JOIN activite.t_prestations on prestation_id = t_prestations.oid + WHERE est_budget_global = '1' and t_prestations.code IN ('GHS') and + p_factures.no_facture LIKE '%BG' AND + code_facture = '0' + GROUP BY 1 + ) subview + GROUP BY 1 + HAVING MAX(no_facture_bg) IS NOT NULL AND + MAX(taux_mut) = 100 + ) subview + WHERE w_cti_encours_factures_lignes_c.no_facture = subview.no_facture_bg + ; + + -- En budget global, diminuer en cours GHS si 20% PJ facturé sur mutuelles ou patient + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours = montant_encours*(100-LEAST(taux_mut,20))/100, + regle_texte = regle_texte || ' - TM facturé déduit' + FROM + ( + SELECT no_sejour, + MAX(no_facture_bg) AS no_facture_bg, + MAX(taux_mut) AS taux_mut + FROM + ( + SELECT p_factures.no_sejour, + NULL::text AS no_facture_bg, + MAX(taux_0+taux_2) AS taux_mut + FROM activite.p_factures + JOIN activite.p_sejours on p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations on prestation_id = t_prestations.oid + WHERE est_budget_global = '1' and t_prestations.code IN ('PJ') and + p_factures.no_facture NOT LIKE '%BG' AND + code_facture <> '0' AND + ( + montant_facture_0 <> 0 OR + montant_facture_2 <> 0 + ) + GROUP BY 1 + HAVING MAX(taux_0+taux_2) <> 0 AND + SUM(montant_facture_0+montant_facture_2) <> 0 + UNION + SELECT p_factures.no_sejour, + MAX(p_factures.no_facture) AS no_facture_bg, + 0 AS taux_mut + FROM activite.p_factures + JOIN activite.p_sejours on p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_factures_lignes_c ON p_factures.no_facture = w_cti_encours_factures_lignes_c.no_facture + JOIN activite.t_prestations on prestation_id = t_prestations.oid + WHERE est_budget_global = '1' and t_prestations.code IN ('GHS') and + p_factures.no_facture LIKE '%BG' AND + code_facture = '0' + GROUP BY 1 + ) subview + GROUP BY 1 + HAVING MAX(no_facture_bg) IS NOT NULL AND + MAX(taux_mut) <> 0 + ) subview + WHERE w_cti_encours_factures_lignes_c.no_facture = subview.no_facture_bg + ; + + -- En budget global, diminuer en cours GHS de l'encours TM + UPDATE w_cti_encours_factures_lignes_c + SET montant_encours = montant_encours - montant_encours_tm, + regle_texte = regle_texte || ' - TM moyen déduit' + FROM + ( + SELECT w_cti_encours_factures_lignes_c.no_sejour, + SUM(montant_encours) AS montant_encours_tm + FROM w_cti_encours_factures_lignes_c + JOIN activite.p_sejours on w_cti_encours_factures_lignes_c.no_sejour = p_sejours.no_sejour + + JOIN activite.t_prestations on prestation_id = t_prestations.oid + WHERE est_budget_global = '1' and + prestation_id IN (SELECT oid FROM activite.t_prestations WHERE code IN ('PJ')) and + w_cti_encours_factures_lignes_c.no_facture NOT LIKE '%BG' + GROUP BY 1 + HAVING SUM(montant_encours) > 0 + ORDER BY 1 + ) subview + WHERE w_cti_encours_factures_lignes_c. no_sejour = subview.no_sejour AND + prestation_id IN (SELECT oid FROM activite.t_prestations WHERE code IN ('GHS')) AND + w_cti_encours_factures_lignes_c.no_facture LIKE '%BG' + ; + + -- Honoraires medecins salaries + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Honoraires medecins salaries'; + + IF EXISTS (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSMEDSAL' AND valeur = '1') THEN + + DROP TABLE IF EXISTS w_cti_encours_prestation_rubrique + ; + CREATE TEMP TABLE w_cti_encours_prestation_rubrique AS + SELECT prestation_id, (MAX(Array[nb,rubrique_facturation_id]))[2]::bigint AS rubrique_facturation_id + FROM + ( + SELECT prestation_id, rubrique_facturation_id, count(*) AS nb + FROM activite.p_factures_lignes_c + WHERE montant_comptabilise > 0 + GROUP BY 1,2 + ORDER BY 1,2 + ) subview + GROUP BY 1 + ; + + UPDATE activite.p_factures_lignes_non_facturees_h + SET prix_unitaire = subview.prix_unitaire + FROM + ( + SELECT acte_id, activite_ccam, modificateur_ccam_1, modificateur_ccam_2, modificateur_ccam_3, modificateur_ccam_4, + base.Cti_division(SUM(montant_facture_1),SUM(nb_prestation*coefficient)) AS prix_unitaire + FROM activite.p_factures_lignes_h + WHERE acte_id IN (SELECT acte_id FROM activite.p_factures_lignes_non_facturees_h WHERE prix_unitaire = 0) AND + montant_facture_1 > 0 + GROUP BY 1,2,3,4,5,6 + ) subview + WHERE p_factures_lignes_non_facturees_h.acte_id = subview.acte_id AND + p_factures_lignes_non_facturees_h.activite_ccam = subview.activite_ccam AND + p_factures_lignes_non_facturees_h.modificateur_ccam_1 = subview.modificateur_ccam_1 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_2 = subview.modificateur_ccam_2 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_3 = subview.modificateur_ccam_3 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_4 = subview.modificateur_ccam_4 AND + p_factures_lignes_non_facturees_h.prix_unitaire = 0 + ; + + UPDATE activite.p_factures_lignes_non_facturees_h + SET prix_unitaire = subview.prix_unitaire + FROM + ( + SELECT acte_id, activite_ccam, + base.Cti_division(SUM(montant_facture_1),SUM(nb_prestation*coefficient)) AS prix_unitaire + FROM activite.p_factures_lignes_h + WHERE acte_id IN (SELECT acte_id FROM activite.p_factures_lignes_non_facturees_h WHERE prix_unitaire = 0) AND + montant_facture_1 > 0 + GROUP BY 1,2 + ) subview + WHERE p_factures_lignes_non_facturees_h.acte_id = subview.acte_id AND + p_factures_lignes_non_facturees_h.activite_ccam = subview.activite_ccam AND + p_factures_lignes_non_facturees_h.prix_unitaire = 0 + + ; + + INSERT INTO w_cti_encours_factures_lignes_c( + no_sejour, no_facture, type_ligne, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, + prestation_id, rubrique_facturation_id, rubrique_comptabilisation_id, + prix_unitaire, montant_encours, regle_texte) + SELECT w_cti_encours_factures.no_sejour, w_cti_encours_factures.no_facture, 'SAISIE' AS type_ligne, p_factures_lignes_non_facturees_h.date_debut, p_factures_lignes_non_facturees_h.date_fin, nb_rubrique, nb_rubrique, coefficient, 1, + p_factures_lignes_non_facturees_h.prestation_id, w_cti_encours_prestation_rubrique.rubrique_facturation_id, w_cti_encours_prestation_rubrique.rubrique_facturation_id, + prix_unitaire, round(nb_rubrique * coefficient * prix_unitaire,2), 'Honoraire salarié saisi' + FROM w_cti_encours_factures + JOIN activite.p_factures_lignes_non_facturees_h ON w_cti_encours_factures.no_facture = p_factures_lignes_non_facturees_h.no_facture + JOIN activite.t_prestations ON p_factures_lignes_non_facturees_h.prestation_id = t_prestations.oid + JOIN activite.t_medecins_administratifs ON medecin_facture_id = t_medecins_administratifs.oid + JOIN w_cti_encours_prestation_rubrique ON p_factures_lignes_non_facturees_h.prestation_id = w_cti_encours_prestation_rubrique.prestation_id + WHERE t_medecins_administratifs.est_medecin_salarie = 1 + ; + + END IF; + + + -- Réaffectation forfait journalier sur GHS + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Deduction FJ du GHS'; + UPDATE w_cti_encours_factures_lignes_c + SET montant_encours = w_cti_encours_factures_lignes_c.montant_encours - mt_fjpas, + regle_texte = regle_texte || ' - FJ Déduit' + FROM + ( + SELECT w_cti_encours_factures.no_facture, + SUM(CASE WHEN t_prestations.code = 'GHS' THEN 1 ELSE 0 END) AS nb_ghs, + MAX(CASE WHEN t_prestations.code = 'GHS' THEN w_cti_encours_factures_lignes_c.CTID ELSE NULL END) AS CTID_ghs, + SUM(CASE WHEN t_prestations.code IN ('FJ','PAS') THEN montant_encours ELSE 0 END) AS mt_fjpas + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN w_cti_encours_factures ON + w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture + WHERE w_cti_encours_factures.ghs_id > 0 AND + type_ligne <> 'GHSBB' AND + type_ligne <> 'GHSBBM' AND + w_cti_encours_factures.no_facture NOT LIKE '%BG' AND + t_prestations.code IN ('GHS','FJ', 'PAS') + GROUP BY 1 + HAVING SUM(CASE WHEN t_prestations.code IN ('FJ','PAS') THEN montant_encours ELSE 0 END) <> 0 AND + SUM(CASE WHEN t_prestations.code = 'GHS' THEN 1 ELSE 0 END) = 1 + ) subview + WHERE w_cti_encours_factures_lignes_c.no_facture = subview.no_facture AND + w_cti_encours_factures_lignes_c.CTID = subview.CTID_ghs + ; + + --Déduction du FJ du GHS dans le cas où le PJ facturé et valorisé est à 0 + DROP TABLE IF EXISTS w_montant_fj_par_sejour + ; + CREATE TEMP TABLE w_montant_fj_par_sejour AS + SELECT + p_sejours.no_sejour + ,SUM(CASE WHEN t_prestations.code LIKE 'FJ%' + THEN montant_facture_0 + montant_facture_2 + ELSE 0 + END) as montant_fj + FROM activite.p_sejours + JOIN activite.p_factures ON p_sejours.no_sejour = p_factures.no_sejour + JOIN activite.p_factures_lignes_c on p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations on p_factures_lignes_c.prestation_id = t_prestations.oid + WHERE p_factures.no_facture NOT LIKE '%BG' + AND p_sejours.no_sejour IN ( + SELECT DISTINCT(no_sejour) FROM w_cti_encours_factures_lignes_c + ) + GROUP BY p_sejours.no_sejour + HAVING + SUM(CASE WHEN t_prestations.code LIKE 'PJ%' + THEN montant_facture_0 + montant_facture_2 + p_factures_lignes_c.montant_encours + ELSE 0 END) = 0 AND + SUM(CASE WHEN t_prestations.code LIKE 'FJ%' + THEN montant_facture_0 + montant_facture_2 + ELSE 0 END) <> 0 + ; + + UPDATE w_cti_encours_factures_lignes_c + SET + montant_encours = montant_encours - montant_fj + ,regle_texte = regle_texte || ' - FJ facturé déduit' + FROM w_montant_fj_par_sejour + WHERE w_cti_encours_factures_lignes_c.no_sejour = w_montant_fj_par_sejour.no_sejour + AND w_cti_encours_factures_lignes_c.no_facture LIKE '%BG' + AND prestation_id = ( + SELECT oid + FROM activite.t_prestations + WHERE code = 'GHS' + ) + ; + + -- Réaffectation forfait journalier sur GMT + WITH factures_smr_avec_fj AS ( + SELECT + w_cti_encours_factures.no_facture + , MAX(CASE WHEN t_prestations.code = 'GMT' AND type_ligne = 'GMT' THEN prestation_id ELSE 0 END) AS prestation_gmt_id + , SUM(CASE WHEN t_prestations.code = 'FJ' THEN montant_encours ELSE 0 END) AS montant_fj_total + , SUM(CASE WHEN t_prestations.code = 'GMT' AND type_ligne = 'GMT' THEN 1 ELSE 0 END) AS nb_lignes_gmt + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN w_cti_encours_factures ON w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture + WHERE w_cti_encours_factures.no_facture NOT LIKE '%BG' + AND t_prestations.code IN ('GMT','FJ') + GROUP BY + w_cti_encours_factures.no_facture + HAVING SUM(CASE WHEN t_prestations.code = 'FJ' THEN montant_encours ELSE 0 END) <> 0 + AND SUM(CASE WHEN t_prestations.code = 'GMT' AND type_ligne = 'GMT' THEN 1 ELSE 0 END) > 0 + ), + montant_fj_ventile_par_jour AS ( + SELECT + no_facture + , prestation_gmt_id + , round(montant_fj_total / nb_lignes_gmt, 2) AS prix_unitaire_fj + FROM factures_smr_avec_fj + ) + UPDATE w_cti_encours_factures_lignes_c + SET + montant_encours = w_cti_encours_factures_lignes_c.montant_encours - prix_unitaire_fj, + regle_texte = regle_texte || ' - FJ Déduit' + FROM montant_fj_ventile_par_jour + WHERE w_cti_encours_factures_lignes_c.no_facture = montant_fj_ventile_par_jour.no_facture + AND w_cti_encours_factures_lignes_c.prestation_id = montant_fj_ventile_par_jour.prestation_gmt_id + AND w_cti_encours_factures_lignes_c.type_ligne = 'GMT' + ; + + -- Pour la valorisation SMR, les lignes de rubrique de facturation TJP ne doivent pas être valorisées + UPDATE w_cti_encours_factures_lignes_c + SET montant_encours = 0 + FROM activite.t_rubriques_facturation + WHERE w_cti_encours_factures_lignes_c.rubrique_facturation_id = t_rubriques_facturation.oid + AND t_rubriques_facturation.code ILIKE 'TJP%' + AND w_cti_encours_factures_lignes_c.montant_encours <> 0 + ; + + -- Factures à ignorer + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Factures ignorees'; + UPDATE w_cti_encours_factures + SET ignorer = '1' + FROM activite.t_calcul_encours + WHERE t_calcul_encours.no_facture = w_cti_encours_factures.no_facture AND + t_calcul_encours.type_ligne = 'FACTURE' AND + t_calcul_encours.ignorer = '1' + ; + + -- Forcage par dossier et prestation + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Lignes forcees ou ignorees'; + -- Paramètres de génération + UPDATE w_cti_encours_calcul_parametres_services_prestations + SET type_ligne = 'PRESTA-' || + CASE + WHEN prestation_code IN ('SRC', 'REA', 'STF', 'AMD', 'AMF', 'IGM', 'IGP', 'APD', 'IMD', 'IMI', 'IPD', 'IVG', 'NN1', 'NN2', 'NN3', 'GHT') THEN 'PC' + WHEN prestation_code IN ('CPC', 'SHO', 'CP') THEN 'PC' + WHEN prestation_code IN ('D09', 'D11', 'D13', 'D13', 'D15', 'D16', 'DTP') THEN 'PC' + WHEN prestation_code IN ('ATU','FPU') THEN 'PC' + WHEN prestation_type_valorisation IN ('CP') THEN 'PC' + WHEN prestation_code IN ('GMT', 'PJ', 'FJ', 'FJA', 'ENT', 'PMS') THEN 'PU' + WHEN prestation_type_valorisation IN ('ENT') THEN 'PU' + WHEN prestation_code IN ('SE1','SE2','SE3','SE4','SE5','SE6','SE7') THEN 'PU' + WHEN prestation_type_valorisation = '*AVGJOUSER' THEN 'PU' + ELSE '' END + ; + + -- Initialisation coefficient et prix unitaire calcule + UPDATE w_cti_encours_factures_lignes_c + SET coefficient_calcule = w_cti_encours_factures_lignes_c.coefficient + FROM activite.t_lieux, + w_cti_encours_calcul_parametres_services_prestations + WHERE + w_cti_encours_factures_lignes_c.lieu_id = t_lieux.oid AND + t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + w_cti_encours_factures_lignes_c.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + w_cti_encours_factures_lignes_c.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + w_cti_encours_calcul_parametres_services_prestations.type_ligne LIKE 'PRESTA%' AND + w_cti_encours_factures_lignes_c.coefficient_calcule = 0 + ; + + UPDATE w_cti_encours_factures_lignes_c + SET prix_unitaire_calcule = w_cti_encours_factures_lignes_c.prix_unitaire + FROM activite.t_lieux, + w_cti_encours_calcul_parametres_services_prestations + WHERE + w_cti_encours_factures_lignes_c.lieu_id = t_lieux.oid AND + t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + w_cti_encours_factures_lignes_c.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + w_cti_encours_factures_lignes_c.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + w_cti_encours_calcul_parametres_services_prestations.type_ligne LIKE 'PRESTA%' AND + w_cti_encours_factures_lignes_c.prix_unitaire_calcule = 0 + ; + + UPDATE w_cti_encours_factures_lignes_c SET + coefficient = CASE WHEN t_calcul_encours.coefficient_is_force = '1' THEN t_calcul_encours.coefficient_force ELSE w_cti_encours_factures_lignes_c.coefficient END, + prix_unitaire = CASE WHEN t_calcul_encours.prix_unitaire_is_force = '1' THEN t_calcul_encours.prix_unitaire_force ELSE w_cti_encours_factures_lignes_c.prix_unitaire END, + ignorer = CASE WHEN t_calcul_encours.ignorer = '1' THEN '1' ELSE '0' END, + regle_texte = CASE + WHEN t_calcul_encours.coefficient_is_force = '1' AND w_cti_encours_factures_lignes_c.regle_texte ILIKE 'COEFF%' THEN 'Coefficient forcé dans paramétrage facture : ' || t_calcul_encours.coefficient_force + WHEN t_calcul_encours.prix_unitaire_is_force = '1' AND w_cti_encours_factures_lignes_c.regle_texte ILIKE 'P.U.%' THEN 'P.U. forcé dans paramétrage facture : ' || t_calcul_encours.prix_unitaire_force + ELSE regle_texte END, + montant_encours = + CASE WHEN t_calcul_encours.ignorer IS DISTINCT from '1' THEN + CASE WHEN t_calcul_encours.coefficient_is_force = '1' THEN t_calcul_encours.coefficient_force ELSE w_cti_encours_factures_lignes_c.coefficient END * + CASE WHEN t_calcul_encours.prix_unitaire_is_force = '1' THEN t_calcul_encours.prix_unitaire_force ELSE w_cti_encours_factures_lignes_c.prix_unitaire END * + nb_prestation + ELSE 0 END + FROM activite.t_lieux, + w_cti_encours_calcul_parametres_services_prestations, + activite.t_calcul_encours + WHERE + w_cti_encours_factures_lignes_c.lieu_id = t_lieux.oid AND + t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + w_cti_encours_factures_lignes_c.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + w_cti_encours_factures_lignes_c.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + w_cti_encours_calcul_parametres_services_prestations.type_ligne LIKE 'PRESTA%' AND + + t_calcul_encours.no_facture = w_cti_encours_factures_lignes_c.no_facture AND + t_calcul_encours.lieu_service_id = t_lieux.service_facturation_id AND + t_calcul_encours.prestation_id = w_cti_encours_factures_lignes_c.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_factures_lignes_c.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'PRESEJ%' AND + ( + t_calcul_encours.coefficient_is_force = '1' OR + t_calcul_encours.prix_unitaire_is_force = '1' OR + t_calcul_encours.ignorer = '1' + ) + ; + + -- Ecriture du justificatif + IF w_date_encours = w_date_encours_actuelle THEN + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Ecriture justificatif'; + TRUNCATE activite.p_facture_ligne_valorise_c; + + INSERT INTO activite.p_facture_ligne_valorise_c( + no_facture, facture_id, date_debut, date_fin, lieu_id, nb_rubrique, + nb_prestation, coefficient, coefficient_mco, rubrique_facturation_id, + prestation_id, lpp_id, ucd_id, prix_unitaire, montant_encours, type_ligne_code, mode_calcul_code, + mode_calcul_texte) + + SELECT + w_cti_encours_factures.no_facture, + w_cti_encours_factures.oid, + MIN(w_cti_encours_factures_lignes_c.date_debut), + MAX(w_cti_encours_factures_lignes_c.date_fin), + CASE WHEN t_prestations.code LIKE 'GHS%' THEN w_cti_encours_factures.lieu_sortie_id ELSE w_cti_encours_factures_lignes_c.lieu_id END, + SUM(nb_rubrique), + SUM(nb_prestation), + coefficient, + coefficient_mco, + w_cti_encours_factures_lignes_c.rubrique_facturation_id, + prestation_id, + lpp_id, + ucd_id, + prix_unitaire, + SUM(CASE WHEN w_cti_encours_factures.ignorer IS DISTINCT FROM '1' AND w_cti_encours_factures_lignes_c.ignorer IS DISTINCT FROM '1' THEN montant_encours ELSE 0 END), + w_cti_encours_factures_lignes_c.type_ligne, + CASE + WHEN w_cti_encours_factures.ignorer = '1' AND w_cti_encours_factures_lignes_c.regle_ghs <> '' THEN '00-FORCE' + WHEN w_cti_encours_factures_lignes_c.ignorer = '1' AND w_cti_encours_factures_lignes_c.regle_ghs <> '' THEN '00-FORCE' + ELSE w_cti_encours_factures_lignes_c.regle_ghs END, + CASE + WHEN w_cti_encours_factures.ignorer = '1' THEN 'FACTURE IGNOREE.' + WHEN w_cti_encours_factures_lignes_c.ignorer = '1' THEN 'LIGNE IGNOREE.' + ELSE w_cti_encours_factures_lignes_c.regle_texte END + FROM w_cti_encours_factures_lignes_c + JOIN w_cti_encours_factures ON w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE w_cti_encours_factures_lignes_c.rubrique_facturation_id IS NOT NULL AND + (montant_encours <> 0 OR + w_cti_encours_factures_lignes_c.ignorer = '1' OR + type_ligne = 'GHSECART' + ) + GROUP BY 1,2,5,8,9,10,11,12,13,14,16,17,18 + ORDER BY 1; + + + -- Stockage des paramètres de calcul + INSERT INTO activite.t_calcul_encours + ( + type_ligne, + coefficient_mco, + lieu_service_id, + lieu_unite_fonctionnelle_id, + nb_ambulatoires, + nb_externes, + nb_seances, + nb_journees, + nb_journees_cp, + prestation_id, + prestation_type_valorisation, + rubrique_facturation_id, + nb_prestations_facturees, + prix_unitaire_calcule, + coefficient_calcule + ) + SELECT + w_cti_encours_calcul_parametres_services_prestations.type_ligne, + w_cti_encours_calcul_parametres_services_prestations.coefficient_mco, + w_cti_encours_calcul_parametres_services_prestations.lieu_service_id, + w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id, + w_cti_encours_calcul_parametres_services_prestations.nb_ambulatoires, + w_cti_encours_calcul_parametres_services_prestations.nb_externes, + w_cti_encours_calcul_parametres_services_prestations.nb_seances, + w_cti_encours_calcul_parametres_services_prestations.nb_journees, + w_cti_encours_calcul_parametres_services_prestations.nb_journees_cp, + w_cti_encours_calcul_parametres_services_prestations.prestation_id, + w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation, + w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id, + w_cti_encours_calcul_parametres_services_prestations.nombre AS nb_prestations_facturees, + w_cti_encours_calcul_parametres_services_prestations.prix_unitaire_calcule, + w_cti_encours_calcul_parametres_services_prestations.coefficient_calcule + FROM w_cti_encours_calcul_parametres_services_prestations + LEFT JOIN activite.t_calcul_encours ON + t_calcul_encours.lieu_service_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_calcul_encours.lieu_unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + t_calcul_encours.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'PRESTA%' + WHERE t_calcul_encours.oid IS NULL + ; + + UPDATE activite.t_calcul_encours SET + type_ligne = w_cti_encours_calcul_parametres_services_prestations.type_ligne, + nb_ambulatoires = w_cti_encours_calcul_parametres_services_prestations.nb_ambulatoires, + nb_externes = w_cti_encours_calcul_parametres_services_prestations.nb_externes, + nb_seances = w_cti_encours_calcul_parametres_services_prestations.nb_seances, + nb_journees = w_cti_encours_calcul_parametres_services_prestations.nb_journees, + nb_journees_cp = w_cti_encours_calcul_parametres_services_prestations.nb_journees_cp, + prestation_type_valorisation = w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation, + nb_prestations_facturees = w_cti_encours_calcul_parametres_services_prestations.nombre, + prix_unitaire_calcule = w_cti_encours_calcul_parametres_services_prestations.prix_unitaire_calcule, + coefficient_calcule = w_cti_encours_calcul_parametres_services_prestations.coefficient_calcule + FROM w_cti_encours_calcul_parametres_services_prestations + WHERE t_calcul_encours.lieu_service_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_calcul_encours.lieu_unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + t_calcul_encours.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'PRESTA%' AND + ( + t_calcul_encours.type_ligne IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.type_ligne OR + t_calcul_encours.nb_ambulatoires IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.nb_ambulatoires OR + t_calcul_encours.nb_externes IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.nb_externes OR + t_calcul_encours.nb_seances IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.nb_seances OR + t_calcul_encours.nb_journees IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.nb_journees OR + t_calcul_encours.nb_journees_cp IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.nb_journees_cp OR + t_calcul_encours.prestation_type_valorisation IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.prestation_type_valorisation OR + t_calcul_encours.nb_prestations_facturees IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.nombre OR + t_calcul_encours.prix_unitaire_calcule IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.prix_unitaire_calcule OR + t_calcul_encours.coefficient_calcule IS DISTINCT FROM w_cti_encours_calcul_parametres_services_prestations.coefficient_calcule + ) + ; + + -- Stockage des données de calcul par séjour (GHS) + + INSERT INTO activite.t_calcul_encours + ( + type_ligne, + no_sejour, + no_facture, + coefficient_mco, + lieu_service_id, + lieu_unite_fonctionnelle_id, + nb_ambulatoires, + nb_externes, + nb_seances, + nb_journees, + nb_journees_cp, + prestation_id, + prestation_type_valorisation, + rubrique_facturation_id, + nb_prestations_facturees, + prix_unitaire_calcule, + coefficient_calcule + ) + SELECT + w_cti_encours_factures_lignes_c.type_ligne, + w_cti_encours_factures_lignes_c.no_sejour, + w_cti_encours_factures_lignes_c.no_facture, + w_cti_encours_factures_lignes_c.coefficient_mco, + t_lieux.service_facturation_id AS lieu_service_id, + t_lieux.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + 0::numeric AS nb_ambulatoires, + 0::numeric AS nb_externes, + 0::numeric AS nb_seances, + 0::numeric AS nb_journees, + 0::numeric AS nb_journees_cp, + w_cti_encours_factures_lignes_c.prestation_id, + w_cti_encours_factures_lignes_c.regle_ghs AS prestation_type_valorisation, + w_cti_encours_factures_lignes_c.rubrique_facturation_id, + w_cti_encours_factures_lignes_c.nb_prestation AS nb_prestations_facturees, + w_cti_encours_factures_lignes_c.prix_unitaire_calcule, + 0::numeric AS coefficient_calcule + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + LEFT JOIN activite.t_calcul_encours ON + t_calcul_encours.no_facture = w_cti_encours_factures_lignes_c.no_facture AND + t_calcul_encours.prestation_id = w_cti_encours_factures_lignes_c.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_factures_lignes_c.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'GHSNG%' + WHERE w_cti_encours_factures_lignes_c.type_ligne = 'GHSNG' AND + t_calcul_encours.no_facture IS NULL + ; + + UPDATE activite.t_calcul_encours SET + type_ligne = w_cti_encours_factures_lignes_c.type_ligne, + prix_unitaire_calcule = w_cti_encours_factures_lignes_c.prix_unitaire_calcule + FROM w_cti_encours_factures_lignes_c + WHERE t_calcul_encours.no_facture = w_cti_encours_factures_lignes_c.no_facture AND + t_calcul_encours.prestation_id = w_cti_encours_factures_lignes_c.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_factures_lignes_c.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'GHSNG%' AND + ( + t_calcul_encours.type_ligne IS DISTINCT FROM w_cti_encours_factures_lignes_c.type_ligne OR + t_calcul_encours.prix_unitaire_calcule IS DISTINCT FROM w_cti_encours_factures_lignes_c.prix_unitaire_calcule + ) + ; + + DELETE FROM activite.t_calcul_encours + WHERE type_ligne = 'GHSNG' AND + no_facture NOT IN (SELECT no_facture FROM w_cti_encours_factures_lignes_c WHERE w_cti_encours_factures_lignes_c.type_ligne = 'GHSNG') + ; + + -- Stockage des séjours calculés (prestations) + + INSERT INTO activite.t_calcul_encours + ( + type_ligne, + no_sejour, + no_facture, + coefficient_mco, + lieu_service_id, + lieu_unite_fonctionnelle_id, + nb_ambulatoires, + nb_externes, + nb_seances, + nb_journees, + nb_journees_cp, + prestation_id, + prestation_type_valorisation, + rubrique_facturation_id, + nb_prestations_facturees, + prix_unitaire_calcule, + coefficient_calcule + ) + SELECT + replace(w_cti_encours_calcul_parametres_services_prestations.type_ligne,'PRESTA','PRESEJ') AS type_ligne, + w_cti_encours_factures_lignes_c.no_sejour, + w_cti_encours_factures_lignes_c.no_facture, + w_cti_encours_factures_lignes_c.coefficient_mco, + t_lieux.service_facturation_id AS lieu_service_id, + t_lieux.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + 0::numeric AS nb_ambulatoires, + 0::numeric AS nb_externes, + 0::numeric AS nb_seances, + 0::numeric AS nb_journees, + 0::numeric AS nb_journees_cp, + w_cti_encours_factures_lignes_c.prestation_id, + w_cti_encours_factures_lignes_c.regle_ghs AS prestation_type_valorisation, + w_cti_encours_factures_lignes_c.rubrique_facturation_id, + SUM(w_cti_encours_factures_lignes_c.nb_prestation) AS nb_prestations_facturees, + w_cti_encours_factures_lignes_c.prix_unitaire_calcule, + w_cti_encours_factures_lignes_c.coefficient_calcule + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON + t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + w_cti_encours_factures_lignes_c.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + w_cti_encours_factures_lignes_c.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id + LEFT JOIN activite.t_calcul_encours ON + t_calcul_encours.no_facture = w_cti_encours_factures_lignes_c.no_facture AND + t_calcul_encours.lieu_service_id = t_lieux.service_facturation_id AND + t_calcul_encours.prestation_id = w_cti_encours_factures_lignes_c.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_factures_lignes_c.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'PRESEJ%' + WHERE w_cti_encours_factures_lignes_c.type_ligne <> 'SAISIE' AND + w_cti_encours_calcul_parametres_services_prestations.type_ligne LIKE 'PRESTA%' AND + t_calcul_encours.no_facture IS NULL + GROUP BY 1,2,3,4,5,6,12,13,14,16,17 + ; + + UPDATE activite.t_calcul_encours SET + coefficient_calcule = w_cti_encours_factures_lignes_c.coefficient_calcule, + prix_unitaire_calcule = w_cti_encours_factures_lignes_c.prix_unitaire_calcule + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + WHERE t_calcul_encours.no_facture = w_cti_encours_factures_lignes_c.no_facture AND + t_calcul_encours.lieu_service_id = t_lieux.service_facturation_id AND + t_calcul_encours.prestation_id = w_cti_encours_factures_lignes_c.prestation_id AND + t_calcul_encours.rubrique_facturation_id = w_cti_encours_factures_lignes_c.rubrique_facturation_id AND + t_calcul_encours.type_ligne LIKE 'PRESEJ%' AND + ( + t_calcul_encours.coefficient_calcule IS DISTINCT FROM w_cti_encours_factures_lignes_c.coefficient OR + t_calcul_encours.prix_unitaire_calcule IS DISTINCT FROM w_cti_encours_factures_lignes_c.prix_unitaire + ) + ; + + DELETE + FROM activite.t_calcul_encours + WHERE t_calcul_encours.type_ligne LIKE 'PRESEJ%' AND + ( + t_calcul_encours.no_facture || '-' || + t_calcul_encours.lieu_service_id || '-' || + t_calcul_encours.prestation_id || '-' || + t_calcul_encours.rubrique_facturation_id + ) NOT IN + (SELECT + w_cti_encours_factures_lignes_c.no_facture || '-' || + t_lieux.service_facturation_id || '-' || + w_cti_encours_factures_lignes_c.prestation_id || '-' || + w_cti_encours_factures_lignes_c.rubrique_facturation_id + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN w_cti_encours_calcul_parametres_services_prestations ON + t_lieux.service_facturation_id = w_cti_encours_calcul_parametres_services_prestations.lieu_service_id AND + t_lieux.unite_fonctionnelle_id = w_cti_encours_calcul_parametres_services_prestations.lieu_unite_fonctionnelle_id AND + w_cti_encours_factures_lignes_c.prestation_id = w_cti_encours_calcul_parametres_services_prestations.prestation_id AND + w_cti_encours_factures_lignes_c.rubrique_facturation_id = w_cti_encours_calcul_parametres_services_prestations.rubrique_facturation_id + WHERE w_cti_encours_factures_lignes_c.type_ligne <> 'SAISIE' AND + w_cti_encours_calcul_parametres_services_prestations.type_ligne LIKE 'PRESTA%' + ) + ; + + + -- Stockage des séjours calculés (pour paramétrer séjours à ne pas calculer) + INSERT INTO activite.t_calcul_encours + ( + type_ligne, + no_sejour, + no_facture, + coefficient_mco, + lieu_service_id, + lieu_unite_fonctionnelle_id, + nb_ambulatoires, + nb_externes, + nb_seances, + nb_journees, + nb_journees_cp, + prestation_id, + prestation_type_valorisation, + rubrique_facturation_id, + nb_prestations_facturees, + prix_unitaire_calcule, + coefficient_calcule + ) + SELECT + 'FACTURE'::text, + w_cti_encours_factures_lignes_c.no_sejour, + w_cti_encours_factures_lignes_c.no_facture, + 0::numeric AS coefficient_mco, + 0::bigint AS lieu_service_id, + 0::bigint AS lieu_unite_fonctionnelle_id, + 0::numeric AS nb_ambulatoires, + 0::numeric AS nb_externes, + 0::numeric AS nb_seances, + 0::numeric AS nb_journees, + 0::numeric AS nb_journees_cp, + 0::bigint AS prestation_id, + 0::bigint AS prestation_type_valorisation, + 0::bigint AS rubrique_facturation_id, + 0::bigint AS nb_prestation, + SUM(montant_encours) AS prix_unitaire_calcule, + 0::numeric AS coefficient_calcule + FROM w_cti_encours_factures_lignes_c + LEFT JOIN activite.t_calcul_encours ON + t_calcul_encours.no_facture = w_cti_encours_factures_lignes_c.no_facture AND + t_calcul_encours.type_ligne LIKE 'FACTURE%' + WHERE t_calcul_encours.no_facture IS NULL + GROUP BY 2,3 + ; + + DELETE FROM activite.t_calcul_encours + WHERE type_ligne = 'FACTURE' AND + no_facture NOT IN (SELECT no_facture FROM w_cti_encours_factures_lignes_c) + ; + + END IF; + -- Eclatement des prestations jour par jour + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Eclatement jour par jour'; + INSERT INTO w_cti_encours_factures_lignes_sup_c + SELECT + w_cti_encours_factures_lignes_c.oid AS from_oid, + t_prestations.code AS prestation_code, + date(p_sejours.date_entree) AS date_debut_ghs, + date(date_fin - interval '1 day') AS date_fin_ghs, + (date(date_fin) - date(date_entree)) * CASE WHEN nb_prestation < 0 THEN -1 ELSE 1 END AS nb_prestation_ghs, + w_cti_encours_factures_lignes_c.* + FROM w_cti_encours_factures_lignes_c + JOIN activite.p_sejours ON w_cti_encours_factures_lignes_c.no_sejour = p_sejours.no_sejour + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND code IN ('GMT', 'PJ', 'FJ', 'PHJ','SSM', 'GHS', 'GHT', 'EXH', 'SRC', 'REA', 'STF', 'NN1', 'NN2', 'NN3', 'CP', 'CPC', 'SHO') + WHERE type_sejour = '1' AND (nb_prestation > 1 or nb_prestation < -1 OR (t_prestations.code = 'GHS' AND date(date_fin) - date(date_entree) > 1 )) ; + UPDATE w_cti_encours_factures_lignes_sup_c SET + date_fin_ghs = date(date_debut_exh - interval '1 day'), + nb_prestation_ghs = date(date_debut_exh - interval '1 day') - date_debut_ghs + 1 + FROM ( + SELECT no_facture, date(MIN(date_debut)) AS date_debut_exh + FROM w_cti_encours_factures_lignes_c + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND code = 'EXH' + GROUP BY 1) subview + WHERE w_cti_encours_factures_lignes_sup_c.no_facture = subview.no_facture ; + + INSERT INTO w_cti_encours_factures_lignes_sup_c_gen + SELECT + from_oid, + no_sejour, + no_facture, + date AS date_debut, + date AS date_fin, + lieu_id, + rubrique_facturation_id, + rubrique_comptabilisation_id, + prestation_id, + lpp_id, + ucd_id, + CASE WHEN prestation_code = 'GHS' AND date <> date_fin_ghs AND t_rubriques_facturation.code = '111' THEN 1 WHEN prestation_code = 'GHS' AND date <> date_fin_ghs THEN 0 WHEN nb_prestation < 0 THEN -1 ELSE 1 END AS nb_rubrique, + CASE WHEN prestation_code = 'GHS' AND date <> date_fin_ghs THEN 0 WHEN nb_prestation < 0 THEN -1 ELSE 1 END AS nb_prestation, + coefficient, + coefficient_mco, + prix_unitaire, + w_cti_encours_factures_lignes_sup_c.oid, + round(montant_encours / ABS(CASE WHEN prestation_code <> 'GHS' THEN nb_prestation ELSE nb_prestation_ghs END),2) AS montant_encours, + type_ligne, + regle_ghs, + regle_coefficient, + regle_texte + FROM w_cti_encours_factures_lignes_sup_c + JOIN base.p_calendrier ON date_debut BETWEEN p_calendrier.date - ABS(CASE WHEN prestation_code <> 'GHS' THEN nb_prestation ELSE nb_prestation_ghs END)::integer + 1 AND p_calendrier.date AND + p_calendrier.date <> date_debut + JOIN activite.t_rubriques_facturation ON rubrique_facturation_id = t_rubriques_facturation.oid; + + + INSERT INTO w_cti_encours_factures_lignes_sup_c_gen_tot + SELECT from_oid, + SUM(nb_rubrique) AS nb_rubrique, + SUM(nb_prestation) AS nb_prestation, + SUM(montant_encours) AS montant_encours + FROM w_cti_encours_factures_lignes_sup_c_gen + GROUP BY 1; + UPDATE w_cti_encours_factures_lignes_c + SET + date_fin = w_cti_encours_factures_lignes_c.date_debut, + nb_rubrique = w_cti_encours_factures_lignes_c.nb_rubrique - w_cti_encours_factures_lignes_sup_c_gen_tot.nb_rubrique, + nb_prestation = w_cti_encours_factures_lignes_c.nb_prestation - w_cti_encours_factures_lignes_sup_c_gen_tot.nb_prestation, + montant_encours = w_cti_encours_factures_lignes_c.montant_encours - w_cti_encours_factures_lignes_sup_c_gen_tot.montant_encours + FROM w_cti_encours_factures_lignes_sup_c_gen_tot + WHERE w_cti_encours_factures_lignes_c.oid = from_oid; + UPDATE w_cti_encours_factures_lignes_c + SET + nb_rubrique = nb_prestation + FROM activite.t_rubriques_facturation, activite.t_prestations + WHERE w_cti_encours_factures_lignes_c.prestation_id = t_prestations.oid AND t_prestations.code = 'GHS' AND + w_cti_encours_factures_lignes_c.rubrique_facturation_id = t_rubriques_facturation.oid AND t_rubriques_facturation.code <> '111'; + INSERT INTO w_cti_encours_factures_lignes_c ( + no_sejour, + no_facture, + date_debut, + date_fin, + nb_rubrique, + coefficient, + coefficient_mco, + prestation_id, + lpp_id, + ucd_id, + rubrique_facturation_id, + rubrique_comptabilisation_id, + prix_unitaire, + nb_prestation, + montant_encours, + type_ligne, + regle_ghs, + lieu_id, + regle_coefficient, + regle_texte) + SELECT + no_sejour, + no_facture, + date_debut, + date_fin, + nb_rubrique, + coefficient, + coefficient_mco, + prestation_id, + lpp_id, + ucd_id, + rubrique_facturation_id, + rubrique_comptabilisation_id, + prix_unitaire, + nb_prestation, + montant_encours, + type_ligne, + regle_ghs, + lieu_id, + regle_coefficient, + regle_texte + FROM w_cti_encours_factures_lignes_sup_c_gen; + -- sur ambulatoires avec une nuit, + + UPDATE w_cti_encours_factures_lignes_c + SET date_fin = date_debut + WHERE prestation_id IN (SELECT oid FROM activite.t_prestations WHERE code = 'GHS') AND + nb_rubrique = 1 AND + date_fin - date_debut = 1; + + + -- Lieu + UPDATE w_cti_encours_factures_lignes_c + SET lieu_id = p_mouvements_sejour.lieu_id + FROM + activite.p_factures, + activite.p_mouvements_sejour + WHERE + w_cti_encours_factures_lignes_c.no_facture = p_factures.no_facture AND + p_factures.no_sejour = p_mouvements_sejour.no_sejour AND + w_cti_encours_factures_lignes_c.date_fin = p_mouvements_sejour.date AND + (230000 BETWEEN p_mouvements_sejour.heure_debut AND p_mouvements_sejour.heure_fin OR + nb_entrees_directes = 1 AND heure_fin = 240000 OR + nb_sorties_directes = 1 ) AND + p_mouvements_sejour.lieu_id IS DISTINCT FROM w_cti_encours_factures_lignes_c.lieu_id; + + UPDATE w_cti_encours_factures_lignes_c + SET lieu_id = p_sejours.lieu_sortie_id + FROM activite.p_sejours + WHERE w_cti_encours_factures_lignes_c.no_sejour = p_sejours.no_sejour + AND (lieu_id = 0 OR lieu_id is null); + + -- Lieu des lignes de factures (en tenant compte des absences) + DROP TABLE IF EXISTS w_mouvements_sejour_lieu_jour; + CREATE TEMP TABLE w_mouvements_sejour_lieu_jour AS + SELECT no_sejour, + date, + (MAX(CASE WHEN est_absence <> '1' THEN Array[heure_fin, lieu_id] ELSE NULL END))[2] AS lieu_id, + (MAX(Array[heure_fin, lieu_id]))[2] AS lieu_id_avec_absence + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_services_facturation On service_facturation_id = t_services_facturation.oid + WHERE p_mouvements_sejour.no_sejour IN (SELECT no_sejour FROM w_cti_encours_factures_lignes_c ) + GROUP BY 1,2 + HAVING MAX(est_absence) = '1' + ; + + UPDATE w_cti_encours_factures_lignes_c + SET lieu_id = COALESCE(w_mouvements_sejour_lieu_jour.lieu_id,w_mouvements_sejour_lieu_jour.lieu_id_avec_absence) + FROM w_mouvements_sejour_lieu_jour + WHERE w_cti_encours_factures_lignes_c.no_sejour = w_mouvements_sejour_lieu_jour.no_sejour AND + w_cti_encours_factures_lignes_c.date_fin = w_mouvements_sejour_lieu_jour.date AND + w_cti_encours_factures_lignes_c.lieu_id <> COALESCE(w_mouvements_sejour_lieu_jour.lieu_id,w_mouvements_sejour_lieu_jour.lieu_id_avec_absence) + ; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Reaffectation prestation TDE sur budget global'; + DROP TABLE IF EXISTS w_factures_e; + CREATE TEMP TABLE w_factures_e AS + SELECT p_factures.no_sejour, + p_factures_bg.no_facture AS no_facture_bg, + p_factures.no_facture AS no_facture_nbg + FROM w_cti_encours_factures p_factures + JOIN w_cti_encours_factures p_factures_bg ON p_factures_bg.no_sejour = p_factures.no_sejour AND p_factures_bg.no_facture LIKE '%BG' + WHERE p_factures.no_facture NOT LIKE '%BG' + ; + + ANALYSE w_factures_e + ; + + UPDATE w_cti_encours_factures_lignes_c p_factures_lignes_c + SET no_facture = no_facture_bg + FROM w_factures_e, activite.t_prestations + WHERE p_factures_lignes_c.no_facture = no_facture_nbg AND + prestation_id = t_prestations.oid AND + t_prestations.code LIKE 'TDE%' + ; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Repartition par tiers payant'; + UPDATE w_cti_encours_factures_lignes_c SET + montant_encours_1 = CASE WHEN tiers_payant_1_id <> 0 THEN round(montant_encours * coeff_1,2) ELSE 0 END, + montant_encours_2 = CASE WHEN tiers_payant_2_id <> 0 THEN round(montant_encours * coeff_2,2) ELSE 0 END, + montant_encours_0 = montant_encours - CASE WHEN tiers_payant_1_id <> 0 THEN round(montant_encours * coeff_1,2) ELSE 0 END + - CASE WHEN tiers_payant_2_id <> 0 THEN round(montant_encours * coeff_2,2) ELSE 0 END + FROM w_cti_encours_factures, w_cti_encours_repartition_tp + WHERE w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + w_cti_encours_factures_lignes_c.rubrique_facturation_id = w_cti_encours_repartition_tp.rubrique_facturation_id; + UPDATE w_cti_encours_factures SET + regle_ghs = COALESCE(subview.regle_ghs,'0'), + montant_valorise_c = COALESCE(subview.montant_valorise,0), + montant_valorise_0_c = COALESCE(subview.montant_valorise_0,0), + montant_valorise_1_c = COALESCE(subview.montant_valorise_1,0), + montant_valorise_2_c = COALESCE(subview.montant_valorise_2,0), + montant_encours_c = COALESCE(subview.montant_encours,0), + montant_encours_0_c = COALESCE(subview.montant_encours_0,0), + montant_encours_1_c = COALESCE(subview.montant_encours_1,0), + montant_encours_2_c = COALESCE(subview.montant_encours_2,0), + etat = '' + FROM + (SELECT w_cti_encours_factures.no_facture, + MAX(w_cti_encours_factures_lignes_c.regle_ghs) AS regle_ghs, + SUM(montant_encours) AS montant_valorise, + SUM(montant_encours_0) AS montant_valorise_0, + SUM(montant_encours_1) AS montant_valorise_1, + SUM(montant_encours_2) AS montant_valorise_2, + SUM(CASE WHEN w_cti_encours_factures_lignes_c.date_fin <= w_cti_encours_factures.date_encours THEN montant_encours ELSE 0 END) AS montant_encours, + SUM(CASE WHEN w_cti_encours_factures_lignes_c.date_fin <= w_cti_encours_factures.date_encours THEN montant_encours_0 ELSE 0 END) AS montant_encours_0, + SUM(CASE WHEN w_cti_encours_factures_lignes_c.date_fin <= w_cti_encours_factures.date_encours THEN montant_encours_1 ELSE 0 END) AS montant_encours_1, + SUM(CASE WHEN w_cti_encours_factures_lignes_c.date_fin <= w_cti_encours_factures.date_encours THEN montant_encours_2 ELSE 0 END) AS montant_encours_2 + FROM w_cti_encours_factures + LEFT JOIN w_cti_encours_factures_lignes_c ON w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture AND + w_cti_encours_factures_lignes_c.ignorer IS DISTINCT FROM '1' + WHERE w_cti_encours_factures.ignorer IS DISTINCT FROM '1' + GROUP BY 1 + ) subview + WHERE subview.no_facture = w_cti_encours_factures.no_facture; + + -- Génération encours + + IF w_date_encours = w_date_encours_actuelle THEN + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Generation valorisation non factures'; + DELETE FROM activite.p_factures_lignes_c WHERE montant_encours <> 0; + DELETE FROM activite.p_factures_lignes_h WHERE montant_encours <> 0; + + DELETE + FROM activite.p_factures_lignes_c + WHERE montant_encours = 0 AND + montant_facture = 0 AND + montant_comptabilise = 0 AND + no_facture IN (SELECT no_facture FROM w_cti_encours_factures_lignes_c) + ; + + DELETE + FROM activite.p_factures_lignes_c + USING activite.p_factures + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + p_factures.montant_encours_c <> 0 + ; + DELETE + FROM activite.p_factures_lignes_h + USING activite.p_factures + WHERE p_factures_lignes_h.no_facture = p_factures.no_facture AND + p_factures.montant_encours_c <> 0 + ; + + UPDATE activite.p_factures SET + montant_encours_c = 0, + montant_encours_0_c = 0, + montant_encours_1_c = 0, + montant_encours_2_c = 0, + montant_encours_22_c = 0, + montant_encours_h = 0, + montant_encours_0_h = 0, + montant_encours_1_h = 0, + montant_encours_2_h = 0, + montant_encours_22_h = 0 + WHERE montant_encours_c <> 0 OR montant_encours_h <> 0; + + INSERT INTO activite.p_factures_lignes_c( + facture_id, no_facture, date_debut, date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, prix_unitaire, + prestation_id, lpp_id, ucd_id, rubrique_facturation_id, rubrique_comptabilisation_id, lieu_id, + montant_facture, montant_facture_0, montant_facture_1, montant_facture_2, montant_facture_22, + taux_0, taux_1, taux_2, taux_22, + montant_comptabilise, montant_comptabilise_0, montant_comptabilise_1, montant_comptabilise_2, montant_comptabilise_22, + montant_encours, montant_encours_1, montant_encours_2, montant_encours_0) + SELECT + w_cti_encours_factures.oid, w_cti_encours_factures.no_facture, w_cti_encours_factures_lignes_c.date_debut, w_cti_encours_factures_lignes_c.date_fin, nb_rubrique, nb_prestation, coefficient, coefficient_mco, prix_unitaire, + prestation_id, lpp_id, ucd_id, w_cti_encours_factures_lignes_c.rubrique_facturation_id, rubrique_comptabilisation_id, lieu_id, + 0, 0, 0, 0, 0, + 0, 0, 0, 0, + 0, 0, 0, 0, 0, + montant_encours, + montant_encours_1, + montant_encours_2, + montant_encours_0 + FROM w_cti_encours_factures_lignes_c + JOIN w_cti_encours_factures ON w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture + WHERE w_cti_encours_factures_lignes_c.rubrique_facturation_id IS NOT NULL AND + w_cti_encours_factures.ignorer IS DISTINCT FROM '1' AND + w_cti_encours_factures_lignes_c.ignorer IS DISTINCT FROM '1' AND + type_ligne <> 'GHSECART'; + + UPDATE activite.p_factures SET + tiers_payant_1_id = w_cti_encours_factures.tiers_payant_1_id, + tiers_payant_2_id = w_cti_encours_factures.tiers_payant_2_id, + montant_encours_c = w_cti_encours_factures.montant_valorise_c, + montant_encours_1_c = w_cti_encours_factures.montant_valorise_1_c, + montant_encours_2_c = w_cti_encours_factures.montant_valorise_2_c, + montant_encours_0_c = w_cti_encours_factures.montant_valorise_0_c + FROM w_cti_encours_factures + WHERE w_cti_encours_factures.no_facture = p_factures.no_facture AND + w_cti_encours_factures.ignorer <> '1'; + + + UPDATE activite.p_factures_lignes_non_facturees_h + SET prix_unitaire = subview.prix_unitaire + FROM + ( + SELECT acte_id, activite_ccam, modificateur_ccam_1, modificateur_ccam_2, modificateur_ccam_3, modificateur_ccam_4, + base.Cti_division(SUM(montant_facture_1),SUM(nb_prestation*coefficient)) AS prix_unitaire + FROM activite.p_factures_lignes_h + WHERE acte_id IN (SELECT acte_id FROM activite.p_factures_lignes_non_facturees_h WHERE prix_unitaire = 0) AND + montant_facture_1 > 0 + GROUP BY 1,2,3,4,5,6 + ) subview + WHERE p_factures_lignes_non_facturees_h.acte_id = subview.acte_id AND + p_factures_lignes_non_facturees_h.activite_ccam = subview.activite_ccam AND + p_factures_lignes_non_facturees_h.modificateur_ccam_1 = subview.modificateur_ccam_1 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_2 = subview.modificateur_ccam_2 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_3 = subview.modificateur_ccam_3 AND + p_factures_lignes_non_facturees_h.modificateur_ccam_4 = subview.modificateur_ccam_4 AND + p_factures_lignes_non_facturees_h.prix_unitaire = 0 + ; + + UPDATE activite.p_factures_lignes_non_facturees_h + SET prix_unitaire = subview.prix_unitaire + FROM + ( + SELECT acte_id, activite_ccam, + base.Cti_division(SUM(montant_facture_1),SUM(nb_prestation*coefficient)) AS prix_unitaire + FROM activite.p_factures_lignes_h + WHERE acte_id IN (SELECT acte_id FROM activite.p_factures_lignes_non_facturees_h WHERE prix_unitaire = 0) AND + montant_facture_1 > 0 + GROUP BY 1,2 + ) subview + WHERE p_factures_lignes_non_facturees_h.acte_id = subview.acte_id AND + p_factures_lignes_non_facturees_h.activite_ccam = subview.activite_ccam AND + p_factures_lignes_non_facturees_h.prix_unitaire = 0 + + ; + + INSERT INTO activite.p_factures_lignes_h ( + no_facture, + facture_id, + date_debut, + heure_debut, + date_fin, + coefficient, + coefficient_mco, + lieu_id, + prestation_id, + rubrique_facturation_id, + rubrique_comptabilisation_id, + acte_id, + phase_ccam, + activite_ccam, + extension_ccam, + modificateur_ccam_1, + modificateur_ccam_2, + modificateur_ccam_3, + modificateur_ccam_4, + medecin_facture_id, + medecin_comptabilise_id, + nb_rubrique, + nb_prestation, + prix_unitaire, + taux_0, + taux_1, + taux_2, + taux_22, + montant_facture, + montant_facture_0, + montant_facture_1, + montant_facture_2, + montant_facture_22, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_depassement, + montant_encours, + montant_encours_0, + montant_encours_1, + montant_encours_2, + montant_encours_22, + montant_non_facture + ) + SELECT + w_cti_encours_factures.no_facture, + w_cti_encours_factures.oid AS facture_id, + p_factures_lignes_non_facturees_h.date_debut, + p_factures_lignes_non_facturees_h.heure_debut, + p_factures_lignes_non_facturees_h.date_fin, + p_factures_lignes_non_facturees_h.coefficient, + 1::numeric AS coefficient_mco, + w_cti_encours_factures.lieu_sortie_id AS lieu_id, + p_factures_lignes_non_facturees_h.prestation_id, + 0::bigint AS rubrique_facturation_id, + 0::bigint AS rubrique_comptabilisation_id, + p_factures_lignes_non_facturees_h.acte_id, + p_factures_lignes_non_facturees_h.phase_ccam, + p_factures_lignes_non_facturees_h.activite_ccam, + p_factures_lignes_non_facturees_h.extension_ccam, + p_factures_lignes_non_facturees_h.modificateur_ccam_1, + p_factures_lignes_non_facturees_h.modificateur_ccam_2, + p_factures_lignes_non_facturees_h.modificateur_ccam_3, + p_factures_lignes_non_facturees_h.modificateur_ccam_4, + p_factures_lignes_non_facturees_h.medecin_facture_id, + p_factures_lignes_non_facturees_h.medecin_facture_id AS medecin_comptabilise_id, + p_factures_lignes_non_facturees_h.nb_rubrique, + p_factures_lignes_non_facturees_h.nb_rubrique AS nb_prestation, + p_factures_lignes_non_facturees_h.prix_unitaire, + 0::numeric AS taux_0, + 0::numeric AS taux_1, + 0::numeric AS taux_2, + 0::numeric AS taux_22, + 0::numeric AS montant_facture, + 0::numeric AS montant_facture_0, + 0::numeric AS montant_facture_1, + 0::numeric AS montant_facture_2, + 0::numeric AS montant_facture_22, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + 0::numeric AS montant_depassement, + nb_rubrique * prix_unitaire * p_factures_lignes_non_facturees_h.coefficient AS montant_encours, + 0::numeric AS montant_encours_0, + nb_rubrique * prix_unitaire * p_factures_lignes_non_facturees_h.coefficient AS montant_encours_1, + 0::numeric AS montant_encours_2, + 0::numeric AS montant_encours_22, + nb_rubrique * prix_unitaire * p_factures_lignes_non_facturees_h.coefficient AS montant_non_facture + FROM activite.p_factures_lignes_non_facturees_h + JOIN w_cti_encours_factures ON p_factures_lignes_non_facturees_h.no_facture = w_cti_encours_factures.no_facture + WHERE w_cti_encours_factures.ignorer <> '1' + ; + + -- Total honoraires valorisés + UPDATE activite.p_factures SET + montant_encours_h = COALESCE(subview.montant_valorise,0) + FROM + (SELECT + w_cti_encours_factures.no_facture, + SUM(nb_rubrique * prix_unitaire * p_factures_lignes_non_facturees_h.coefficient) AS montant_valorise + FROM activite.p_factures_lignes_non_facturees_h + JOIN w_cti_encours_factures ON p_factures_lignes_non_facturees_h.no_facture = w_cti_encours_factures.no_facture + WHERE w_cti_encours_factures.ignorer <> '1' + GROUP BY 1 + ) subview + WHERE subview.no_facture = p_factures.no_facture; + + END IF; + -- Transformation factures non valorisées en en cours + UPDATE activite.p_factures_lignes_c SET + montant_encours = montant_facture, + montant_encours_0 = montant_facture_0, + montant_encours_1 = montant_facture_1, + montant_encours_2 = montant_facture_2, + montant_encours_22 = montant_facture_22, + montant_facture = 0, + montant_facture_0 = 0, + montant_facture_1 = 0, + montant_facture_2 = 0, + montant_facture_22 = 0 + FROM activite.p_factures + WHERE p_factures.no_facture = p_factures_lignes_c.no_facture AND + p_factures.code_facture = '3'; + UPDATE activite.p_factures_lignes_h SET + montant_encours = montant_facture, + montant_encours_0 = montant_facture_0, + montant_encours_1 = montant_facture_1, + montant_encours_2 = montant_facture_2, + montant_encours_22 = montant_facture_22, + montant_facture = 0, + montant_facture_0 = 0, + montant_facture_1 = 0, + montant_facture_2 = 0, + montant_facture_22 = 0 + FROM activite.p_factures + WHERE p_factures.no_facture = p_factures_lignes_h.no_facture AND + p_factures.code_facture = '3'; + UPDATE activite.p_factures SET + type_facture = 'E', + code_facture = '0', + montant_encours_c = montant_facture_c, + montant_encours_0_c = montant_facture_0_c, + montant_encours_1_c = montant_facture_1_c, + montant_encours_2_c = montant_facture_2_c, + montant_encours_22_c = montant_facture_22_c, + montant_facture_c = 0, + montant_facture_0_c = 0, + montant_facture_1_c = 0, + montant_facture_2_c = 0, + montant_facture_22_c = 0, + montant_encours_h = montant_facture_h, + montant_encours_0_h = montant_facture_0_h, + montant_encours_1_h = montant_facture_1_h, + montant_encours_2_h = montant_facture_2_h, + montant_encours_22_h = montant_facture_22_h, + montant_facture_h = 0, + montant_facture_0_h = 0, + montant_facture_1_h = 0, + montant_facture_2_h = 0, + montant_facture_22_h = 0 + WHERE code_facture = '3'; + -- Génération encours comptables + IF (i_option NOT ILIKE '%-nogen%') THEN + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Generation en-cours comptables'; + + IF EXISTS (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSACTIVE' AND valeur = '1') THEN + + -- Effacer encours Budget Global + DELETE FROM activite.p_factures_encours + WHERE code_origine = 'C' AND no_facture LIKE '%BG%' AND + (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSACTIVEBG') IS DISTINCT FROM '1'; + -- Effacer factures encours comptabilisées sur même mois + DELETE FROM activite.p_factures_encours + USING activite.p_factures + WHERE code_origine = 'C' AND + p_factures_encours.no_facture_reference = p_factures.no_facture AND + p_factures.code_vente = '1' AND p_factures_encours.date_encours >= p_factures.date_vente AND + date(date_trunc('month',p_factures_encours.date_encours)) >= + (SELECT date(date_trunc('month',t_divers.valeur_date)) FROM activite.t_divers WHERE t_divers.code = 'ENCOURSNOW'); + + + -- Effacer génération précédente + DELETE FROM activite.p_factures_encours + USING w_cti_encours_calcul_parametres + WHERE date_trunc('month',p_factures_encours.date_encours) = date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + code_origine = 'C'; + -- Lignes non référencées + DELETE FROM activite.p_factures_encours_lignes_c + WHERE NOT EXISTS (SELECT 'NOT_TO_DELETE' FROM activite.p_factures_encours WHERE p_factures_encours.no_facture = p_factures_encours_lignes_c.no_facture) + AND p_factures_encours_lignes_c IS NOT NULL; + DELETE FROM activite.p_facture_encours_ligne_valorise_c + WHERE NOT EXISTS (SELECT 'NOT_TO_DELETE' FROM activite.p_factures_encours WHERE p_factures_encours.no_facture = p_facture_encours_ligne_valorise_c.no_facture) + AND p_facture_encours_ligne_valorise_c IS NOT NULL; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Entetes (valorisees)'; + + -- Ajout encours + INSERT INTO activite.p_factures_encours( + sejour_id, + no_sejour, + no_facture, + no_facture_reference, + date_debut, + date_fin, + code_origine, + code_sorti, + date_encours, + date_calcul, + tiers_payant_1_id, + tiers_payant_2_id, + tiers_payant_22_id, + tiers_payant_0_id, + ghs_id, + ghs_bebe1_id, + ghs_bebe2_id, + ghs_bebe3_id, + code_cp_demandee, + montant_encours_c, + montant_encours_0_c, + montant_encours_1_c, + montant_encours_2_c, + montant_encours_22_c, + montant_encours_h, + montant_encours_0_h, + montant_encours_1_h, + montant_encours_2_h, + montant_encours_22_h, + date_entree, + heure_entree, + date_sortie, + heure_sortie, + type_sejour, + lieu_sortie_id, + date_groupage, + provider_id, + ghm_id, + filiere_soin_principale_id + ) + SELECT + w_cti_encours_factures.sejour_id, + w_cti_encours_factures.no_sejour, + w_cti_encours_factures.no_facture_encours, + p_factures.no_facture_reference, + w_cti_encours_factures.date_debut, + w_cti_encours_factures.date_fin, + 'C' AS code_origine, + CASE + WHEN p_sejours.code_sorti = '1' AND p_sejours.type_sejour <> '3' AND date_trunc('month',p_sejours.date_sortie) <= date_trunc('month',w_cti_encours_factures.date_encours) THEN '1' + WHEN p_sejours.type_sejour = '3' THEN '1' + ELSE '0' END AS code_sorti, + w_cti_encours_factures.date_encours AS date_encours, + w_NOW AS date_calcul, + w_cti_encours_factures.tiers_payant_1_id, + w_cti_encours_factures.tiers_payant_2_id, + 0 AS tiers_payant_22_id, + p_factures.tiers_payant_0_id, + w_cti_encours_factures.ghs_id, + w_cti_encours_factures.ghs_bebe1_id, + w_cti_encours_factures.ghs_bebe2_id, + w_cti_encours_factures.ghs_bebe3_id, + w_cti_encours_factures.code_cp_demandee, + w_cti_encours_factures.montant_encours_c, + w_cti_encours_factures.montant_encours_0_c, + w_cti_encours_factures.montant_encours_1_c, + w_cti_encours_factures.montant_encours_2_c, + 0 AS montant_encours_22_c, + 0 AS montant_encours_h, + 0 AS montant_encours_0_h, + 0 AS montant_encours_1_h, + 0 AS montant_encours_2_h, + 0 AS montant_encours_22_h, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.type_sejour, + p_sejours.lieu_sortie_id, + p_sejours.date_groupage, + p_sejours.provider_id, + p_sejours.ghm_id, + p_sejours.filiere_soin_principale_id + FROM w_cti_encours_factures + JOIN activite.p_factures ON w_cti_encours_factures.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + LEFT JOIN activite.t_divers t_divers_encoreactivebg ON t_divers_encoreactivebg.code = 'ENCOURSACTIVEBG' + WHERE w_cti_encours_factures.montant_encours_c <> 0 AND + w_cti_encours_factures.date_debut <= w_cti_encours_factures.date_encours AND + ( + w_cti_encours_factures.no_facture NOT LIKE '%BG' OR + t_divers_encoreactivebg.valeur = '1' + ) AND + w_cti_encours_factures.ignorer <> '1'; + -- detail encours + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Lignes (valorisees)'; + + INSERT INTO activite.p_factures_encours_lignes_c( + facture_id, + no_facture, + date_debut, + date_fin, + nb_rubrique, + coefficient, + coefficient_mco, + rubrique_facturation_id, + prestation_id, + lpp_id, + ucd_id, + prix_unitaire, + lieu_id, + nb_prestation, + rubrique_comptabilisation_id, + montant_encours, + montant_encours_0, + montant_encours_1, + montant_encours_2, + montant_encours_22 + ) + SELECT + p_factures_encours.oid AS facture_id, + w_cti_encours_factures.no_facture_encours, + MIN(w_cti_encours_factures_lignes_c.date_debut), + LEAST(MAX(w_cti_encours_factures_lignes_c.date_fin),MAX(p_factures_encours.date_encours)), + SUM(w_cti_encours_factures_lignes_c.nb_rubrique), + w_cti_encours_factures_lignes_c.coefficient, + w_cti_encours_factures_lignes_c.coefficient_mco, + w_cti_encours_factures_lignes_c.rubrique_facturation_id, + w_cti_encours_factures_lignes_c.prestation_id, + w_cti_encours_factures_lignes_c.lpp_id, + w_cti_encours_factures_lignes_c.ucd_id, + w_cti_encours_factures_lignes_c.prix_unitaire, + w_cti_encours_factures_lignes_c.lieu_id, + SUM(w_cti_encours_factures_lignes_c.nb_prestation), + w_cti_encours_factures_lignes_c.rubrique_comptabilisation_id, + SUM(w_cti_encours_factures_lignes_c.montant_encours), + SUM(w_cti_encours_factures_lignes_c.montant_encours_0), + SUM(w_cti_encours_factures_lignes_c.montant_encours_1), + SUM(w_cti_encours_factures_lignes_c.montant_encours_2), + SUM(w_cti_encours_factures_lignes_c.montant_encours_22) + FROM w_cti_encours_factures_lignes_c + JOIN w_cti_encours_factures ON w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture + JOIN activite.p_factures_encours ON w_cti_encours_factures.no_facture_encours = p_factures_encours.no_facture + LEFT JOIN activite.t_divers t_divers_encoreactivebg ON t_divers_encoreactivebg.code = 'ENCOURSACTIVEBG' + WHERE w_cti_encours_factures_lignes_c.montant_encours <> 0 AND + w_cti_encours_factures_lignes_c.date_debut <= w_cti_encours_factures.date_encours AND + w_cti_encours_factures_lignes_c.rubrique_facturation_id IS NOT NULL AND + ( + w_cti_encours_factures.no_facture NOT LIKE '%BG' OR + t_divers_encoreactivebg.valeur = '1' + ) AND + w_cti_encours_factures.ignorer <> '1' AND + w_cti_encours_factures_lignes_c.ignorer <> '1' + GROUP BY + p_factures_encours.oid, + date_trunc('month',w_cti_encours_factures_lignes_c.date_fin), + w_cti_encours_factures.no_facture_encours, + w_cti_encours_factures_lignes_c.coefficient, + w_cti_encours_factures_lignes_c.coefficient_mco, + w_cti_encours_factures_lignes_c.rubrique_facturation_id, + w_cti_encours_factures_lignes_c.prestation_id, + w_cti_encours_factures_lignes_c.lpp_id, + w_cti_encours_factures_lignes_c.ucd_id, + w_cti_encours_factures_lignes_c.prix_unitaire, + w_cti_encours_factures_lignes_c.lieu_id, + w_cti_encours_factures_lignes_c.rubrique_comptabilisation_id; + + -- Justificatif valorisation + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Justificatif (valorisees)'; + INSERT INTO activite.p_facture_encours_ligne_valorise_c( + no_facture, facture_id, date_debut, date_fin, lieu_id, nb_rubrique, + nb_prestation, coefficient, coefficient_mco, rubrique_facturation_id, + prestation_id, lpp_id, ucd_id, prix_unitaire, montant_valorise_total, montant_encours, type_ligne_code, mode_calcul_code, + mode_calcul_texte) + SELECT + w_cti_encours_factures.no_facture_encours, + p_factures_encours.oid AS facture_id, + MIN(w_cti_encours_factures_lignes_c.date_debut), + MAX(w_cti_encours_factures_lignes_c.date_fin), + CASE + WHEN t_prestations.code LIKE 'GHS%' THEN w_cti_encours_factures.lieu_sortie_id + WHEN w_cti_encours_factures_lignes_c.type_ligne = 'SAISIE' THEN 0 + ELSE w_cti_encours_factures_lignes_c.lieu_id END, + SUM(nb_rubrique), + SUM(nb_prestation), + coefficient, + coefficient_mco, + w_cti_encours_factures_lignes_c.rubrique_facturation_id, + prestation_id, + lpp_id, + ucd_id, + prix_unitaire, + SUM(CASE WHEN w_cti_encours_factures.ignorer IS DISTINCT FROM '1' AND w_cti_encours_factures_lignes_c.ignorer IS DISTINCT FROM '1' THEN montant_encours ELSE 0 END), + SUM(CASE WHEN w_cti_encours_factures.ignorer IS DISTINCT FROM '1' AND w_cti_encours_factures_lignes_c.ignorer IS DISTINCT FROM '1' AND w_cti_encours_factures_lignes_c.date_debut <= w_cti_encours_factures.date_encours THEN montant_encours ELSE 0 END), + w_cti_encours_factures_lignes_c.type_ligne, + CASE + WHEN w_cti_encours_factures.ignorer = '1' AND w_cti_encours_factures_lignes_c.regle_ghs <> '' THEN '00-FORCE' + WHEN w_cti_encours_factures_lignes_c.ignorer = '1' AND w_cti_encours_factures_lignes_c.regle_ghs <> '' THEN '00-FORCE' + ELSE w_cti_encours_factures_lignes_c.regle_ghs END, + CASE + WHEN w_cti_encours_factures.ignorer = '1' THEN 'FACTURE IGNOREE.' + WHEN w_cti_encours_factures_lignes_c.ignorer = '1' THEN 'LIGNE IGNOREE.' + ELSE w_cti_encours_factures_lignes_c.regle_texte END + FROM w_cti_encours_factures_lignes_c + JOIN w_cti_encours_factures ON w_cti_encours_factures_lignes_c.no_facture = w_cti_encours_factures.no_facture + JOIN activite.p_factures_encours ON w_cti_encours_factures.no_facture_encours = p_factures_encours.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE w_cti_encours_factures_lignes_c.rubrique_facturation_id IS NOT NULL AND + (montant_encours <> 0 OR + w_cti_encours_factures_lignes_c.ignorer = '1' + ) + GROUP BY 1,2,5,8,9,10,11,12,13,14,17,18,19 + ORDER BY 1; + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Entetes (facturees debut de mois)'; + + -- Ajout encours + INSERT INTO activite.p_factures_encours( + sejour_id, + no_sejour, + no_facture, + no_facture_reference, + date_debut, + date_fin, + code_origine, + code_sorti, + date_encours, + date_calcul, + tiers_payant_1_id, + tiers_payant_2_id, + tiers_payant_22_id, + tiers_payant_0_id, + ghs_id, + ghs_bebe1_id, + ghs_bebe2_id, + ghs_bebe3_id, + code_cp_demandee, + montant_encours_c, + montant_encours_0_c, + montant_encours_1_c, + montant_encours_2_c, + montant_encours_22_c, + montant_encours_h, + montant_encours_0_h, + montant_encours_1_h, + montant_encours_2_h, + montant_encours_22_h, + date_entree, + heure_entree, + date_sortie, + heure_sortie, + type_sejour, + lieu_sortie_id, + date_groupage, + provider_id, + ghm_id, + filiere_soin_principale_id + ) + SELECT + p_factures.sejour_id, + p_factures.no_sejour, + p_factures.no_facture || '.EV' || substr(to_char(date_part('year', w_cti_encours_calcul_parametres.date_encours),'FM0000'),3,2) || to_char(date_part('month', w_cti_encours_calcul_parametres.date_encours),'FM00') AS no_facture_encours, + p_factures.no_facture_reference, + p_factures.date_debut, + p_factures.date_fin, + 'C' AS code_origine, + CASE + WHEN p_sejours.code_sorti = '1' AND p_sejours.type_sejour <> '3' AND date_trunc('month',p_sejours.date_sortie) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) THEN '1' + WHEN p_sejours.type_sejour = '3' THEN '1' + ELSE '0' END AS code_sorti, + w_cti_encours_calcul_parametres.date_encours AS date_encours, + w_NOW AS date_calcul, + p_factures.tiers_payant_1_id, + p_factures.tiers_payant_2_id, + 0 AS tiers_payant_22_id, + p_factures.tiers_payant_0_id, + p_factures.ghs_id, + p_factures.ghs_bebe1_id, + p_factures.ghs_bebe2_id, + p_factures.ghs_bebe3_id, + p_factures.code_cp_demandee, + p_factures.montant_comptabilise_c AS montant_encours_c, + p_factures.montant_comptabilise_0_c AS montant_encours_0_c, + p_factures.montant_comptabilise_1_c AS montant_encours_1_c, + p_factures.montant_comptabilise_2_c AS montant_encours_2_c, + 0 AS montant_encours_22_c, + 0 AS montant_encours_h, + 0 AS montant_encours_0_h, + 0 AS montant_encours_1_h, + 0 AS montant_encours_2_h, + 0 AS montant_encours_22_h, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.type_sejour, + p_sejours.lieu_sortie_id, + p_sejours.date_groupage, + p_sejours.provider_id, + p_sejours.ghm_id, + p_sejours.filiere_soin_principale_id + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_calcul_parametres ON 1=1 + WHERE date_trunc('month',p_factures.date_fin) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.code_facture >= '1' AND + date_trunc('month',p_factures.date_vente) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.no_facture NOT LIKE '%BG'; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Lignes (facturees debut de mois)'; + INSERT INTO activite.p_factures_encours_lignes_c( + facture_id, + no_facture, + date_debut, + date_fin, + nb_rubrique, + coefficient, + coefficient_mco, + rubrique_facturation_id, + prestation_id, + prix_unitaire, + lieu_id, + nb_prestation, + rubrique_comptabilisation_id, + compte_produit_id, + montant_encours, + montant_encours_0, + montant_encours_1, + montant_encours_2, + montant_encours_22 + ) + SELECT + p_factures_encours.oid AS facture_id, + p_factures_encours.no_facture AS no_facture_encours, + MIN(p_factures_lignes_c.date_debut), + MAX(p_factures_lignes_c.date_fin), + SUM(p_factures_lignes_c.nb_rubrique), + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.lieu_id, + SUM(p_factures_lignes_c.nb_prestation), + p_factures_lignes_c.rubrique_comptabilisation_id, + p_factures_lignes_c.compte_produit_id, + SUM(p_factures_lignes_c.montant_comptabilise), + SUM(p_factures_lignes_c.montant_comptabilise_0), + SUM(p_factures_lignes_c.montant_comptabilise_1), + SUM(p_factures_lignes_c.montant_comptabilise_2), + SUM(p_factures_lignes_c.montant_comptabilise_22) + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_calcul_parametres ON 1=1 + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.p_factures_encours ON (p_factures.no_facture || '.EV' || substr(to_char(date_part('year', w_cti_encours_calcul_parametres.date_encours),'FM0000'),3,2) || to_char(date_part('month', w_cti_encours_calcul_parametres.date_encours),'FM00')) = p_factures_encours.no_facture + WHERE date_trunc('month',p_factures.date_fin) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.code_facture >= '1' AND + date_trunc('month',p_factures.date_vente) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.no_facture NOT LIKE '%BG' AND + p_factures_lignes_c.montant_comptabilise <> 0 + GROUP BY + p_factures_encours.oid, + p_factures_encours.no_facture, + date_trunc('month',p_factures_lignes_c.date_fin), + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.lieu_id, + p_factures_lignes_c.rubrique_comptabilisation_id, + p_factures_lignes_c.compte_produit_id + ; + -- Justificatif valorisation + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Justificatif (facturees debut de mois)'; + INSERT INTO activite.p_facture_encours_ligne_valorise_c( + no_facture, facture_id, date_debut, date_fin, lieu_id, nb_rubrique, + nb_prestation, coefficient, coefficient_mco, rubrique_facturation_id, + prestation_id, prix_unitaire, montant_valorise_total, montant_encours, type_ligne_code, mode_calcul_code, + mode_calcul_texte) + SELECT + p_factures_encours.no_facture, + p_factures_encours.oid AS facture_id, + MIN(p_factures_lignes_c.date_debut), + MAX(p_factures_lignes_c.date_fin), + CASE WHEN t_prestations.code LIKE 'GHS%' THEN p_sejours.lieu_sortie_id ELSE p_factures_lignes_c.lieu_id END, + SUM(p_factures_lignes_c.nb_rubrique), + SUM(p_factures_lignes_c.nb_prestation), + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.prix_unitaire, + SUM(p_factures_lignes_c.montant_comptabilise), + SUM(p_factures_lignes_c.montant_comptabilise), + CASE + WHEN t_prestations.code = 'GHS' AND p_sejours.ghs_id > 0 THEN 'GHS' + WHEN t_prestations.code = 'GHS' AND p_sejours.ghs_id <= 0 THEN 'GHSNG' + WHEN t_prestations.code = 'EXH' AND p_sejours.ghs_id > 0 THEN 'EXH' + WHEN t_prestations.code = 'EXH' AND p_sejours.ghs_id <= 0 THEN 'EXHNG' + WHEN t_prestations.code = 'PJ' OR type_valorisation_non_facture = 'PJ' THEN 'PJ' + WHEN t_prestations.code = 'GMT' OR type_valorisation_non_facture = 'GMT' THEN 'GMT' + WHEN t_prestations.code = 'FJ' THEN 'FJ' + WHEN t_prestations.code = 'PMS' THEN 'PMS' + WHEN t_prestations.code = 'ENT' OR type_valorisation_non_facture = 'ENT' THEN 'ENT' + WHEN t_prestations.code IN ('SRC','STF','REA') THEN 'SSS' + WHEN t_prestations.code IN ('NN1','NN2','NN3') THEN 'NNX' + WHEN t_prestations.code IN ('FJA') THEN 'FJA' + WHEN t_prestations.code IN ('CPC') OR type_valorisation_non_facture = 'CP' THEN 'CPC' + WHEN t_prestations.code LIKE 'ATU' THEN 'ATU' + WHEN t_prestations.code LIKE 'FPU' THEN 'ATU' + WHEN t_prestations.code LIKE 'SE%' THEN 'SEH' + ELSE '' END AS type_ligne, + CASE + WHEN p_factures_encours.no_facture LIKE '%.EV%' AND p_factures_encours.code_sorti = '1' THEN 'FROMJVTSOR' + WHEN p_factures_encours.no_facture LIKE '%.EV%' AND p_factures_encours.code_sorti <> '1' THEN 'FROMJVTPRE' + ELSE 'NOJUSTIF'::text END AS mode_calcul_code, + CASE + WHEN p_factures_encours.no_facture LIKE '%.EV%' AND p_factures_encours.code_sorti = '1' THEN 'Encours depuis facturation (sorti)' + WHEN p_factures_encours.no_facture LIKE '%.EV%' AND p_factures_encours.code_sorti <> '1' THEN 'Encours depuis facturation (présent)' + ELSE 'Sans justificatif de valorisation'::text END AS mode_calcul_texte + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_calcul_parametres ON 1=1 + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN activite.p_factures_encours ON (p_factures.no_facture || '.EV' || substr(to_char(date_part('year', w_cti_encours_calcul_parametres.date_encours),'FM0000'),3,2) || to_char(date_part('month', w_cti_encours_calcul_parametres.date_encours),'FM00')) = p_factures_encours.no_facture + WHERE date_trunc('month',p_factures.date_fin) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.code_facture >= '1' AND + date_trunc('month',p_factures.date_vente) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.no_facture NOT LIKE '%BG' AND + p_factures_lignes_c.montant_comptabilise <> 0 + GROUP BY 1,2,5,8,9,10,11,12,15,16,17 + ; + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Entetes (facturees debut de mois a cheval)'; + + -- Ajout encours + INSERT INTO activite.p_factures_encours( + sejour_id, + no_sejour, + no_facture, + no_facture_reference, + date_debut, + date_fin, + code_origine, + code_sorti, + date_encours, + date_calcul, + tiers_payant_1_id, + tiers_payant_2_id, + tiers_payant_22_id, + tiers_payant_0_id, + ghs_id, + ghs_bebe1_id, + ghs_bebe2_id, + ghs_bebe3_id, + code_cp_demandee, + montant_encours_c, + montant_encours_0_c, + montant_encours_1_c, + montant_encours_2_c, + montant_encours_22_c, + montant_encours_h, + montant_encours_0_h, + montant_encours_1_h, + montant_encours_2_h, + montant_encours_22_h, + date_entree, + heure_entree, + date_sortie, + heure_sortie, + type_sejour, + lieu_sortie_id, + date_groupage, + provider_id, + ghm_id, + filiere_soin_principale_id + ) + SELECT + p_factures.sejour_id, + p_factures.no_sejour, + p_factures.no_facture || '.EV' || substr(to_char(date_part('year', w_cti_encours_calcul_parametres.date_encours),'FM0000'),3,2) || to_char(date_part('month', w_cti_encours_calcul_parametres.date_encours),'FM00') AS no_facture_encours, + p_factures.no_facture_reference, + p_factures.date_debut, + p_factures.date_fin, + 'C' AS code_origine, + CASE + WHEN p_sejours.code_sorti = '1' AND p_sejours.type_sejour <> '3' AND date_trunc('month',p_sejours.date_sortie) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) THEN '1' + WHEN p_sejours.type_sejour = '3' THEN '1' + ELSE '0' END AS code_sorti, + w_cti_encours_calcul_parametres.date_encours AS date_encours, + w_NOW AS date_calcul, + p_factures.tiers_payant_1_id, + p_factures.tiers_payant_2_id, + 0 AS tiers_payant_22_id, + p_factures.tiers_payant_0_id, + p_factures.ghs_id, + p_factures.ghs_bebe1_id, + p_factures.ghs_bebe2_id, + p_factures.ghs_bebe3_id, + p_factures.code_cp_demandee, + SUM(p_factures_lignes_c.montant_comptabilise) AS montant_encours_c, + SUM(p_factures_lignes_c.montant_comptabilise_0) AS montant_encours_0_c, + SUM(p_factures_lignes_c.montant_comptabilise_1) AS montant_encours_1_c, + SUM(p_factures_lignes_c.montant_comptabilise_2) AS montant_encours_2_c, + 0 AS montant_encours_22_c, + 0 AS montant_encours_h, + 0 AS montant_encours_0_h, + 0 AS montant_encours_1_h, + 0 AS montant_encours_2_h, + 0 AS montant_encours_22_h, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.type_sejour, + p_sejours.lieu_sortie_id, + p_sejours.date_groupage, + p_sejours.provider_id, + p_sejours.ghm_id, + p_sejours.filiere_soin_principale_id + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_calcul_parametres ON 1=1 + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + WHERE date_trunc('month',p_factures.date_debut) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + date_trunc('month',p_factures.date_fin) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + date_trunc('month',p_factures_lignes_c.date_debut) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.code_facture >= '1' AND + date_trunc('month',p_factures.date_vente) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.no_facture NOT LIKE '%BG' AND + p_factures_lignes_c.montant_comptabilise <> 0 + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,30,31,32,33,34,35,36,37,38,39 + ; + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Lignes (facturees debut de mois a cheval)'; + INSERT INTO activite.p_factures_encours_lignes_c( + facture_id, + no_facture, + date_debut, + date_fin, + nb_rubrique, + coefficient, + coefficient_mco, + rubrique_facturation_id, + prestation_id, + prix_unitaire, + lieu_id, + nb_prestation, + rubrique_comptabilisation_id, + compte_produit_id, + montant_encours, + montant_encours_0, + montant_encours_1, + montant_encours_2, + montant_encours_22 + ) + SELECT + p_factures_encours.oid AS facture_id, + p_factures_encours.no_facture AS no_facture_encours, + MIN(p_factures_lignes_c.date_debut), + MAX(p_factures_lignes_c.date_fin), + SUM(p_factures_lignes_c.nb_rubrique), + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.lieu_id, + SUM(p_factures_lignes_c.nb_prestation), + p_factures_lignes_c.rubrique_comptabilisation_id, + p_factures_lignes_c.compte_produit_id, + SUM(p_factures_lignes_c.montant_comptabilise), + SUM(p_factures_lignes_c.montant_comptabilise_0), + SUM(p_factures_lignes_c.montant_comptabilise_1), + SUM(p_factures_lignes_c.montant_comptabilise_2), + SUM(p_factures_lignes_c.montant_comptabilise_22) + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_calcul_parametres ON 1=1 + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.p_factures_encours ON (p_factures.no_facture || '.EV' || substr(to_char(date_part('year', w_cti_encours_calcul_parametres.date_encours),'FM0000'),3,2) || to_char(date_part('month', w_cti_encours_calcul_parametres.date_encours),'FM00')) = p_factures_encours.no_facture + WHERE date_trunc('month',p_factures.date_debut) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + date_trunc('month',p_factures.date_fin) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + date_trunc('month',p_factures_lignes_c.date_debut) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.code_facture >= '1' AND + date_trunc('month',p_factures.date_vente) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.no_facture NOT LIKE '%BG' AND + p_factures_lignes_c.montant_comptabilise <> 0 + GROUP BY + p_factures_encours.oid, + p_factures_encours.no_facture, + date_trunc('month',p_factures_lignes_c.date_fin), + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.lieu_id, + p_factures_lignes_c.rubrique_comptabilisation_id, + p_factures_lignes_c.compte_produit_id + ; + + -- Justificatif valorisation + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Justificatif (facturees debut de mois a cheval)'; + INSERT INTO activite.p_facture_encours_ligne_valorise_c( + no_facture, facture_id, date_debut, date_fin, lieu_id, nb_rubrique, + nb_prestation, coefficient, coefficient_mco, rubrique_facturation_id, + prestation_id, prix_unitaire, montant_valorise_total, montant_encours, type_ligne_code, mode_calcul_code, + mode_calcul_texte) + SELECT + p_factures_encours.no_facture, + p_factures_encours.oid AS facture_id, + MIN(p_factures_lignes_c.date_debut), + MAX(p_factures_lignes_c.date_fin), + CASE WHEN t_prestations.code LIKE 'GHS%' THEN p_sejours.lieu_sortie_id ELSE p_factures_lignes_c.lieu_id END, + SUM(p_factures_lignes_c.nb_rubrique), + SUM(p_factures_lignes_c.nb_prestation), + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.prix_unitaire, + SUM(p_factures_lignes_c.montant_comptabilise), + SUM(CASE WHEN date_trunc('month',p_factures_lignes_c.date_debut) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) THEN p_factures_lignes_c.montant_comptabilise ELSE 0 END), + CASE + WHEN t_prestations.code = 'GHS' AND p_sejours.ghs_id > 0 THEN 'GHS' + WHEN t_prestations.code = 'GHS' AND p_sejours.ghs_id <= 0 THEN 'GHSNG' + WHEN t_prestations.code = 'EXH' AND p_sejours.ghs_id > 0 THEN 'EXH' + WHEN t_prestations.code = 'EXH' AND p_sejours.ghs_id <= 0 THEN 'EXHNG' + WHEN t_prestations.code = 'PJ' OR type_valorisation_non_facture = 'PJ' THEN 'PJ' + WHEN t_prestations.code = 'GMT' OR type_valorisation_non_facture = 'GMT' THEN 'GMT' + WHEN t_prestations.code = 'FJ' THEN 'FJ' + WHEN t_prestations.code = 'PMS' THEN 'PMS' + WHEN t_prestations.code = 'ENT' OR type_valorisation_non_facture = 'ENT' THEN 'ENT' + WHEN t_prestations.code IN ('SRC','STF','REA') THEN 'SSS' + WHEN t_prestations.code IN ('NN1','NN2','NN3') THEN 'NNX' + WHEN t_prestations.code IN ('FJA') THEN 'FJA' + WHEN t_prestations.code IN ('CPC') OR type_valorisation_non_facture = 'CP' THEN 'CPC' + WHEN t_prestations.code LIKE 'ATU' THEN 'ATU' + WHEN t_prestations.code LIKE 'FPU' THEN 'ATU' + WHEN t_prestations.code LIKE 'SE%' THEN 'SEH' + ELSE '' END AS type_ligne, + CASE + WHEN p_factures_encours.no_facture LIKE '%.EV%' AND p_factures_encours.code_sorti = '1' THEN 'FROMJVTSOR' + WHEN p_factures_encours.no_facture LIKE '%.EV%' AND p_factures_encours.code_sorti <> '1' THEN 'FROMJVTPRE' + ELSE 'NOJUSTIF'::text END AS mode_calcul_code, + CASE + WHEN p_factures_encours.no_facture LIKE '%.EV%' AND p_factures_encours.code_sorti = '1' THEN 'Encours depuis facturation (sorti)' + WHEN p_factures_encours.no_facture LIKE '%.EV%' AND p_factures_encours.code_sorti <> '1' THEN 'Encours depuis facturation (présent)' + ELSE 'Sans justificatif de valorisation'::text END AS mode_calcul_texte + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN w_cti_encours_calcul_parametres ON 1=1 + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN activite.p_factures_encours ON (p_factures.no_facture || '.EV' || substr(to_char(date_part('year', w_cti_encours_calcul_parametres.date_encours),'FM0000'),3,2) || to_char(date_part('month', w_cti_encours_calcul_parametres.date_encours),'FM00')) = p_factures_encours.no_facture + WHERE date_trunc('month',p_factures.date_debut) <= date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + date_trunc('month',p_factures.date_fin) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.code_facture >= '1' AND + date_trunc('month',p_factures.date_vente) > date_trunc('month',w_cti_encours_calcul_parametres.date_encours) AND + p_factures.no_facture NOT LIKE '%BG' AND + p_factures_lignes_c.montant_comptabilise <> 0 + GROUP BY 1,2,5,8,9,10,11,12,15,16,17 + ; + END IF; + + END IF; + END LOOP; + -- Moulinettes sur encours déjà calculés + IF EXISTS (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSACTIVE' AND valeur = '1') THEN + -- Réactualisation oid séjour + UPDATE activite.p_factures_encours + SET no_sejour = p_factures.no_sejour + FROM activite.p_factures + WHERE code_origine = 'C' AND + p_factures_encours.no_facture_reference = p_factures.no_facture AND + (p_factures_encours.no_sejour = '' OR p_factures_encours.no_sejour IS NULL); + UPDATE activite.p_factures_encours + SET no_sejour = p_sejours.no_sejour + FROM activite.p_sejours + WHERE code_origine = 'C' AND + split_part(p_factures_encours.no_facture,'.',1) = 'E' || p_sejours.no_sejour AND + (p_factures_encours.no_sejour = '' OR p_factures_encours.no_sejour IS NULL); + UPDATE activite.p_factures_encours + SET no_sejour = p_sejours.no_sejour + FROM activite.p_sejours + WHERE code_origine = 'C' AND + split_part(p_factures_encours.no_facture,'.',1) = p_sejours.no_sejour AND + (p_factures_encours.no_sejour = '' OR p_factures_encours.no_sejour IS NULL); + UPDATE activite.p_factures_encours + SET sejour_id = p_sejours.oid + FROM activite.p_sejours + WHERE p_factures_encours.no_sejour = p_sejours.no_sejour AND + sejour_id IS DISTINCT FROM p_sejours.oid; + + UPDATE activite.p_factures_encours + SET no_sejour = split_part(p_factures_encours.no_facture,'.',1), sejour_id = 0 + WHERE p_factures_encours.no_sejour IS NULL OR p_factures_encours.no_sejour = ''; + + UPDATE activite.p_factures_encours + SET sejour_id = 0 + WHERE no_sejour NOT IN (SELECT no_sejour FROM activite.p_sejours) AND + sejour_id <> 0; + + + UPDATE activite.p_factures_encours + SET lieu_sortie_id = p_sejours.lieu_sortie_id + FROM activite.p_sejours + WHERE p_sejours.no_sejour = p_factures_encours.no_sejour AND + p_sejours.lieu_sortie_id <> p_factures_encours.lieu_sortie_id + ; + -- Ajout factures du mois comptabilisées en début de mois suivant (avant date cloture encours) + + RAISE NOTICE '%. %' , w_date_encours_YYMM, 'Ajout factures comptabilisee debut du mois suivant'; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_cti_encours_vente') THEN + CREATE TEMP TABLE w_cti_encours_vente + ( + no_sejour text, + date_encours date, + no_facture text, + no_facture_encours text + ); + END IF; + TRUNCATE w_cti_encours_vente; + INSERT INTO w_cti_encours_vente + SELECT p_factures.no_sejour, + date(date_trunc('month', p_factures.date_fin) + interval '1 month' - interval '1 day') AS date_encours, + (MAX(ARRAY[p_factures.date_vente::text, p_factures.no_facture]))[2] AS no_facture, + (MAX(ARRAY[p_factures.date_vente::text, p_factures.no_facture]))[2] || '.EV' || to_char(p_factures.date_fin,'YYMM') AS no_facture_encours + FROM activite.p_factures + JOIN (SELECT + COALESCE( + MAX(CASE WHEN no_facture LIKE '%.EV%' THEN date(date_encours+interval '1 day') ELSE NULL END), + MIN(date(date_trunc('month',date_encours))) + ) AS date_encours_debut, + MAX(date_encours) AS date_encours_fin + FROM activite.p_factures_encours + WHERE date_encours >= '20140101' AND + code_origine = 'C') w_periode_encours ON 1=1 + JOIN activite.t_divers ON t_divers.code = 'DATEENCOURS' + LEFT JOIN activite.p_factures p_factures_vente ON + p_factures_vente.no_sejour = p_factures.no_sejour AND + p_factures_vente.date_vente BETWEEN date_trunc('month', p_factures.date_fin) AND date_trunc('month', p_factures.date_fin) + interval '1 month' - interval '1 day' + LEFT JOIN activite.p_factures_encours ON + p_factures_encours.no_sejour = p_factures.no_sejour AND + code_origine = 'C' AND + p_factures_encours.date_encours BETWEEN date_trunc('month', p_factures.date_fin) AND date_trunc('month', p_factures.date_fin) + interval '1 month' - interval '1 day' + WHERE p_factures.date_fin BETWEEN date_encours_debut AND date_encours_fin AND + p_factures.date_vente BETWEEN date_trunc('month', p_factures.date_fin) + interval '1 month' - interval '1 day' AND date_trunc('month', p_factures.date_fin) + interval '1 month' - interval '1 day' + (t_divers.valeur||' day')::INTERVAL AND + p_factures.montant_facture_c > 0 AND + p_factures.no_facture NOT LIKE '%BG' AND + p_factures.code_vente = '1' AND + p_factures_vente.no_facture IS NULL AND + p_factures_encours.no_facture IS NULL + GROUP BY 1,2,to_char(p_factures.date_fin,'YYMM') + ORDER BY 1,2 + ; + INSERT INTO activite.p_factures_encours( + sejour_id, + no_sejour, + no_facture, + no_facture_reference, + date_debut, + date_fin, + code_origine, + code_sorti, + date_encours, + tiers_payant_1_id, + tiers_payant_2_id, + tiers_payant_22_id, + tiers_payant_0_id, + ghs_id, + ghs_bebe1_id, + ghs_bebe2_id, + ghs_bebe3_id, + code_cp_demandee, + montant_encours_c, + montant_encours_0_c, + montant_encours_1_c, + montant_encours_2_c, + montant_encours_22_c, + montant_encours_h, + montant_encours_0_h, + montant_encours_1_h, + montant_encours_2_h, + montant_encours_22_h, + date_entree, + heure_entree, + date_sortie, + heure_sortie, + type_sejour, + lieu_sortie_id, + date_groupage, + provider_id, + ghm_id, + filiere_soin_principale_id + ) + SELECT + p_sejours.oid, + p_sejours.no_sejour, + w_cti_encours_vente.no_facture_encours, + p_factures.no_facture_reference, + p_factures.date_debut, + p_factures.date_fin, + 'C' AS code_origine, + '1' AS code_sorti, + w_cti_encours_vente.date_encours AS date_encours, + p_factures.tiers_payant_1_id, + p_factures.tiers_payant_2_id, + 0 AS tiers_payant_22_id, + p_factures.tiers_payant_0_id, + p_factures.ghs_id, + p_factures.ghs_bebe1_id, + p_factures.ghs_bebe2_id, + p_factures.ghs_bebe3_id, + p_factures.code_cp_demandee, + p_factures.montant_facture_c, + p_factures.montant_facture_0_c, + p_factures.montant_facture_1_c, + p_factures.montant_facture_2_c, + 0 AS montant_encours_22_c, + 0 AS montant_encours_h, + 0 AS montant_encours_0_h, + 0 AS montant_encours_1_h, + 0 AS montant_encours_2_h, + 0 AS montant_encours_22_h, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.type_sejour, + p_sejours.lieu_sortie_id, + p_sejours.date_groupage, + p_sejours.provider_id, + p_sejours.ghm_id, + p_sejours.filiere_soin_principale_id + FROM w_cti_encours_vente + JOIN activite.p_factures ON w_cti_encours_vente.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + ; + INSERT INTO activite.p_factures_encours_lignes_c( + facture_id, + no_facture, + date_debut, + date_fin, + nb_rubrique, + coefficient, + coefficient_mco, + rubrique_facturation_id, + prestation_id, + prix_unitaire, + lieu_id, + nb_prestation, + rubrique_comptabilisation_id, + compte_produit_id, + montant_encours, + montant_encours_0, + montant_encours_1, + montant_encours_2, + montant_encours_22 + ) + SELECT + p_factures_encours.oid AS facture_id, + w_cti_encours_vente.no_facture_encours, + MIN(p_factures_lignes_c.date_debut), + MAX(p_factures_lignes_c.date_fin), + SUM(p_factures_lignes_c.nb_rubrique), + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.lieu_id, + SUM(p_factures_lignes_c.nb_prestation), + p_factures_lignes_c.rubrique_comptabilisation_id, + p_factures_lignes_c.compte_produit_id, + SUM(p_factures_lignes_c.montant_facture), + SUM(p_factures_lignes_c.montant_facture_0), + SUM(p_factures_lignes_c.montant_facture_1), + SUM(p_factures_lignes_c.montant_facture_2), + SUM(p_factures_lignes_c.montant_facture_22) + FROM w_cti_encours_vente + JOIN activite.p_factures ON w_cti_encours_vente.no_facture = p_factures.no_facture + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.p_factures_encours ON w_cti_encours_vente.no_facture_encours = p_factures_encours.no_facture + WHERE p_factures_lignes_c.montant_facture <> 0 AND + p_factures_lignes_c.date_debut <= w_cti_encours_vente.date_encours AND + p_factures_lignes_c.rubrique_facturation_id IS NOT NULL + GROUP BY + p_factures_encours.oid, + w_cti_encours_vente.no_facture_encours, + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.lieu_id, + p_factures_lignes_c.rubrique_comptabilisation_id, + p_factures_lignes_c.compte_produit_id + ; + END IF; + + -- désactivation index + RAISE NOTICE '%' , 'Finalisation. Reactivation index'; + PERFORM base.cti_enable_index('activite', 'i_factures_encours_2'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_4'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_5'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_6'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_7'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_8'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_9'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_10'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_11'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_lignes_c_2'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_lignes_c_3'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_lignes_c_4'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_lignes_c_5'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_lignes_c_6'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_lignes_c_7'); + PERFORM base.cti_enable_index('activite', 'i_factures_encours_lignes_c_8'); + + -- Reconstitution LPP et UCD sur encours + IF EXISTS (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSACTIVE' AND valeur = '1') THEN + UPDATE activite.p_factures_encours_lignes_c + SET lpp_id = subview.lpp_id, ucd_id = subview.ucd_id + FROM activite.p_factures_encours, + ( + SELECT p_factures.no_sejour, + prestation_id, + ABS(montant_facture + montant_encours) AS montant, + COUNT(DISTINCT lpp_id::text||ucd_id::text), + MAX(lpp_id) AS lpp_id, + MAX(ucd_id) AS ucd_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + WHERE (montant_facture <> 0 OR montant_encours <> 0) AND + (ucd_id <> 0 OR lpp_id <> 0) + GROUP BY 1,2,3 + ) subview + WHERE p_factures_encours.no_facture = p_factures_encours_lignes_c.no_facture AND + p_factures_encours.no_sejour = subview.no_sejour AND + p_factures_encours_lignes_c.prestation_id = subview.prestation_id AND + p_factures_encours_lignes_c.montant_encours = subview.montant AND + COALESCE(p_factures_encours_lignes_c.lpp_id,0) = 0 AND + COALESCE(p_factures_encours_lignes_c.ucd_id,0) = 0 + ; + + UPDATE activite.p_facture_encours_ligne_valorise_c + SET lpp_id = subview.lpp_id, ucd_id = subview.ucd_id + FROM ( + SELECT p_factures_encours_lignes_c.no_facture, + prestation_id, + ABS(montant_encours) AS montant, + COUNT(DISTINCT lpp_id::text||ucd_id::text), + MAX(lpp_id) AS lpp_id, + MAX(ucd_id) AS ucd_id + FROM activite.p_factures_encours_lignes_c + WHERE montant_encours <> 0 AND + (ucd_id <> 0 OR lpp_id <> 0) + GROUP BY 1,2,3 + ) subview + WHERE p_facture_encours_ligne_valorise_c.no_facture = subview.no_facture AND + p_facture_encours_ligne_valorise_c.prestation_id = subview.prestation_id AND + p_facture_encours_ligne_valorise_c.montant_encours = subview.montant AND + COALESCE(p_facture_encours_ligne_valorise_c.lpp_id,0) = 0 AND + COALESCE(p_facture_encours_ligne_valorise_c.ucd_id,0) = 0 + ; + END IF; + + -- Récupérer le bon compte sur les ventes (WEB100T) car quelque fois, le compte des ventes est provisoire (02020000) au moment des en cours + IF EXISTS (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSACTIVE' AND valeur = '1') THEN + IF (SELECT count(*) FROM activite.p_factures_encours_lignes_c JOIN activite.t_compte ON compte_produit_id = t_compte.oid WHERE t_compte.code LIKE '02%') > 0 THEN + UPDATE activite.p_factures_encours_lignes_c + SET compte_produit_id = subview.compte_produit_id + FROM + ( + SELECT p_factures_encours_lignes_c.no_facture, p_factures_encours_lignes_c.rubrique_facturation_id, p_factures_encours_lignes_c.CTID AS toCTID, MAX(subview.compte_produit_id) AS compte_produit_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.t_compte ON compte_produit_id = t_compte.oid + JOIN (SELECT no_facture, rubrique_facturation_id, MAX(compte_produit_id) AS compte_produit_id FROM activite.p_factures_lignes_c GROUP BY 1,2) subview ON + subview.no_facture = split_part(p_factures_encours_lignes_c.no_facture,'.EV',1) AND + subview.rubrique_facturation_id = p_factures_encours_lignes_c.rubrique_facturation_id + WHERE p_factures_encours_lignes_c.no_facture LIKE '%EV%' AND + t_compte.code LIKE '02%' + GROUP BY 1,2,3 + ) subview + WHERE subview.no_facture = p_factures_encours_lignes_c.no_facture AND + subview.rubrique_facturation_id = p_factures_encours_lignes_c.rubrique_facturation_id AND + p_factures_encours_lignes_c.CTID = toCTID + ; + END IF; + END IF; + -- Initialiser les filieres de soin anterieurs a partir de la valeur courante + IF EXISTS (SELECT valeur FROM activite.t_divers WHERE code = 'ENCOURSACTIVE' AND valeur = '1') THEN + UPDATE activite.p_factures_encours + SET filiere_soin_principale_id = p_sejours.filiere_soin_principale_id + FROM activite.p_sejours + WHERE p_factures_encours.no_sejour = p_sejours.no_sejour AND + p_factures_encours.filiere_soin_principale_id = 0 AND + p_sejours.filiere_soin_principale_id <> 0 + ; + END IF; + RETURN 'OK' ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_ajust_encours.yaml b/db/schema2/functions/cti_ajust_encours.yaml new file mode 100644 index 0000000..313b965 --- /dev/null +++ b/db/schema2/functions/cti_ajust_encours.yaml @@ -0,0 +1,356 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + -- Alimentation des nouveaux champs si pas remplis + IF EXISTS ( + SELECT no_facture + FROM activite.p_factures_encours + WHERE p_factures_encours.date_entree IS NULL OR + p_factures_encours.heure_entree IS NULL OR + p_factures_encours.date_sortie IS NULL OR + p_factures_encours.heure_sortie IS NULL OR + p_factures_encours.type_sejour IS NULL OR + p_factures_encours.date_groupage IS NULL OR + p_factures_encours.provider_id IS NULL OR + p_factures_encours.ghm_id IS NULL + ) THEN + RAISE NOTICE '%' , 'Initialisation nouveaux champs'; + + UPDATE activite.p_factures_encours SET + date_entree = COALESCE(p_factures_encours.date_entree,p_sejours.date_entree), + heure_entree = COALESCE(p_factures_encours.heure_entree,p_sejours.heure_entree), + date_sortie = COALESCE(p_factures_encours.date_sortie,p_sejours.date_sortie), + heure_sortie = COALESCE(p_factures_encours.heure_sortie,p_sejours.heure_sortie), + type_sejour = COALESCE(p_factures_encours.type_sejour,p_sejours.type_sejour), + date_groupage = COALESCE(p_factures_encours.date_groupage,p_sejours.date_groupage), + provider_id = COALESCE(p_factures_encours.provider_id,p_sejours.provider_id), + ghm_id = COALESCE(p_factures_encours.ghm_id,p_sejours.ghm_id) + FROM activite.p_sejours + WHERE p_factures_encours.code_origine = 'C' AND + p_factures_encours.no_sejour = p_sejours.no_sejour AND + ( + p_factures_encours.date_entree IS NULL OR + p_factures_encours.heure_entree IS NULL OR + p_factures_encours.date_sortie IS NULL OR + p_factures_encours.heure_sortie IS NULL OR + p_factures_encours.type_sejour IS NULL OR + p_factures_encours.date_groupage IS NULL OR + p_factures_encours.provider_id IS NULL OR + p_factures_encours.ghm_id IS NULL + ) + ; + -- Alimentation des nouveaux champs si pas remplis et séjour non trouvé + UPDATE activite.p_factures_encours SET + date_entree = COALESCE(p_factures_encours.date_entree,p_factures_encours.date_debut), + heure_entree = COALESCE(p_factures_encours.heure_entree,9), + date_sortie = COALESCE(p_factures_encours.date_sortie,p_factures_encours.date_fin), + heure_sortie = COALESCE(p_factures_encours.heure_sortie,1300), + type_sejour = COALESCE(p_factures_encours.type_sejour), + date_groupage = COALESCE(p_factures_encours.date_groupage,'20991231'), + provider_id = COALESCE(p_factures_encours.provider_id), + ghm_id = COALESCE(p_factures_encours.ghm_id,0) + WHERE p_factures_encours.code_origine = 'C' AND + ( + p_factures_encours.date_entree IS NULL OR + p_factures_encours.heure_entree IS NULL OR + p_factures_encours.date_sortie IS NULL OR + p_factures_encours.heure_sortie IS NULL OR + p_factures_encours.type_sejour IS NULL OR + p_factures_encours.date_groupage IS NULL OR + p_factures_encours.provider_id IS NULL OR + p_factures_encours.ghm_id IS NULL + ) + ; + -- Alimentation du nouveau champ type de séjour si séjour non trouvé selon prestations + UPDATE activite.p_factures_encours + SET type_sejour = '1' + WHERE type_sejour IS NULL AND + oid IN ( + SELECT p_factures_encours_lignes_c.facture_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours.oid = p_factures_encours_lignes_c.facture_id + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE p_factures_encours.code_origine = 'C' AND + p_factures_encours.type_sejour IS NULL AND + t_prestations.code IN ('GHS', 'PJ') AND + (p_factures_encours.date_debut <> p_factures_encours.date_fin OR + code_sorti <> '1' + ) + ) + ; + UPDATE activite.p_factures_encours + SET type_sejour = '2' + WHERE type_sejour IS NULL AND + oid IN ( + SELECT p_factures_encours_lignes_c.facture_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours.oid = p_factures_encours_lignes_c.facture_id + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE p_factures_encours.code_origine = 'C' AND + p_factures_encours.type_sejour IS NULL AND + t_prestations.code IN ('GHS', 'IGM', 'IGM', 'IGM', 'IMD', 'IMI') AND + p_factures_encours.date_debut = p_factures_encours.date_fin AND + p_factures_encours.code_sorti = '1' + ) + ; + UPDATE activite.p_factures_encours + SET type_sejour = '5' + WHERE type_sejour IS NULL AND + oid IN ( + SELECT p_factures_encours_lignes_c.facture_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours.oid = p_factures_encours_lignes_c.facture_id + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE p_factures_encours.code_origine = 'C' AND + p_factures_encours.type_sejour IS NULL AND + t_prestations.code IN ('D09','D13') + ) + ; + UPDATE activite.p_factures_encours + SET type_sejour = '3' + WHERE type_sejour IS NULL AND + oid IN ( + SELECT p_factures_encours_lignes_c.facture_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours.oid = p_factures_encours_lignes_c.facture_id + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE p_factures_encours.code_origine = 'C' AND + p_factures_encours.type_sejour IS NULL AND + t_prestations.code IN ('SE1', 'SE2', 'SE3', 'SE4', 'ATU', 'FPU', 'FFM') + ) + ; + UPDATE activite.p_factures_encours + SET type_sejour = '1' + WHERE type_sejour IS NULL AND + oid IN ( + SELECT p_factures_encours_lignes_c.facture_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours.oid = p_factures_encours_lignes_c.facture_id + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE p_factures_encours.code_origine = 'C' AND + p_factures_encours.type_sejour IS NULL AND + t_prestations.code IN ('GHS', 'PJ') AND + p_factures_encours.date_debut <> p_factures_encours.date_fin AND + code_sorti = '1' + ); + UPDATE activite.p_factures_encours + SET type_sejour = '9' + WHERE p_factures_encours.code_origine = 'C' AND + type_sejour IS NULL; + + -- Cas où les GHM sont à null + UPDATE activite.p_factures_encours + SET ghm_id = 0 + WHERE ghm_id IS NULL; + END IF; + RAISE NOTICE '%' , 'Maintenance lieu des lignes encours'; + + -- Actualisation du lieu selon nouveaux mouvements + UPDATE activite.p_factures_encours_lignes_c + SET lieu_id = 0 + WHERE lieu_id NOT IN + (SELECT oid FROM activite.t_lieux) + ; + UPDATE activite.p_factures_encours_lignes_c + SET lieu_id = p_mouvements_sejour.lieu_id + FROM activite.p_factures_encours + JOIN activite.p_mouvements_sejour ON p_factures_encours.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.p_sejours ON p_sejours.no_sejour = p_factures_encours.no_sejour + WHERE p_factures_encours_lignes_c.facture_id = p_factures_encours.oid AND + activite.p_factures_encours_lignes_c.date_debut = p_mouvements_sejour.date AND + ( + p_mouvements_sejour.heure_fin = 240000 OR + p_mouvements_sejour.nb_sorties_directes = 1 OR + p_mouvements_sejour.nb_seances = 1 AND p_sejours.type_sejour = '5' OR + p_mouvements_sejour.nb_externes = 1 OR + p_mouvements_sejour.nb_ambulatoires = 1 + ) AND + p_factures_encours_lignes_c.lieu_id <> p_mouvements_sejour.lieu_id; + + -- Actualisation du lieu de sortie selon nouveaux mouvements + RAISE NOTICE '%' , 'Maintenance lieu de sortie facture encours'; + + UPDATE activite.p_factures_encours + SET lieu_sortie_id = subview.lieu_sortie_id + FROM ( + SELECT p_factures_encours_lignes_c.facture_id, + (MAX(array[p_factures_encours_lignes_c.date_fin::text, lieu_id::text]))[2]::bigint AS lieu_sortie_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours.oid = p_factures_encours_lignes_c.facture_id + WHERE p_factures_encours.lieu_sortie_id IS NULL + GROUP BY 1 + ) subview + WHERE p_factures_encours.oid = subview.facture_id AND + p_factures_encours.lieu_sortie_id <> subview.lieu_sortie_id; + -- Création de séjours fictifs pour séjours supprimés depuis création en cours + RAISE NOTICE '%' , 'Creation sejours fictifs si supprimes depuis creation en cours'; + PERFORM setval('activite.s_sejours'::regclass, + (SELECT COALESCE(MAX(substr(to_char(oid, 'FM00000000000000000000'),11,10))::bigint,0::bigint)+1 FROm activite.p_sejours)); + + DROP TABLE IF EXISTS w_fac_enc_sej; + CREATE TEMP TABLE w_fac_enc_sej AS + SELECT p_factures_encours.no_sejour, + (MAX(ARRAY[date_encours::text,p_factures_encours.oid::text]))[2] AS oid + FROM activite.p_factures_encours + LEFT JOIN activite.p_sejours ON p_factures_encours.no_sejour = p_sejours.no_sejour + WHERE p_sejours.no_sejour IS NULL + GROUP BY 1; + + ANALYSE w_fac_enc_sej + ; + + INSERT INTO activite.p_sejours ( + oid, + finess, + no_sejour, + code_original, + no_patient, + date_entree, + heure_entree, + date_sortie, + heure_sortie, + code_sexe, + age, + code_sorti, + code_prevu, + type_sejour, + lieu_sortie_id, + medecin_sejour_id, + ghs_id, + ghm_id, + ghs_bebe1_id, + ghs_bebe2_id, + ghs_bebe3_id, + date_groupage, + code_cp_demandee, + mode_traitement_id, + mode_entree, + provenance, + mode_sortie, + destination, + tiers_payant_0_id, + tiers_payant_1_id, + tiers_payant_2_id, + tiers_payant_22_id, + est_budget_global, + code_postal_id + ) + SELECT + (substr(to_char(p_factures_encours.oid, 'FM00000000000000000000'),1,10) || to_char(nextval('activite.s_sejours'::regclass),'FM0000000000'))::bigint AS oid, + p_factures_encours.finess, + p_factures_encours.no_sejour, + '*DEL*'||p_factures_encours.no_sejour AS code_original, + p_factures_encours.no_sejour no_patient, + p_factures_encours.date_entree, + p_factures_encours.heure_entree, + p_factures_encours.date_sortie, + p_factures_encours.heure_sortie, + '1'::text AS code_sexe, + 0::numeric AS age, + base.cti_to_number(p_factures_encours.code_sorti), + 0::numeric AS code_prevu, + '9'::text AS type_sejour, + 0::bigint AS lieu_sortie_id, + 0::bigint AS medecin_sejour_id, + p_factures_encours.ghs_id, + p_factures_encours.ghm_id, + 0::bigint AS ghs_bebe1_id, + 0::bigint AS ghs_bebe2_id, + 0::bigint AS ghs_bebe3_id, + p_factures_encours.date_groupage, + p_factures_encours.code_cp_demandee, + 0::bigint AS mode_traitement_id, + '8'::text AS mode_entree, + ''::text AS provenance, + '8'::text AS mode_sortie, + ''::text AS destination, + p_factures_encours.tiers_payant_0_id, + p_factures_encours.tiers_payant_1_id, + p_factures_encours.tiers_payant_2_id, + p_factures_encours.tiers_payant_22_id, + 0::numeric AS est_budget_global, + 0::bigint AS code_postal_id + FROM activite.p_factures_encours + JOIN w_fac_enc_sej ON p_factures_encours.oid = w_fac_enc_sej.oid + ; + + UPDATE activite.p_sejours + SET type_sejour = '9', etat = '' + FROM activite.p_factures_encours + WHERE p_factures_encours.no_sejour = p_sejours.no_sejour AND + p_sejours.etat = 'I' + ; + + -- Avec patients correspondant + INSERT INTO activite.p_patients(finess, no_patient, nom, prenom, date_naissance, code_sexe) + SELECT '', p_sejours.no_patient, 'Séjour supprimé : ' || p_sejours.no_sejour, '', NULL, '1' + FROM activite.p_sejours + LEFT JOIN activite.p_patients ON (p_sejours.no_patient = p_patients.no_patient) + WHERE p_sejours.code_original LIKE '*DEL%' AND + p_patients.no_patient IS NULL; + + -- Mise à jour des factures encours avec ces sejours + UPDATE activite.p_factures_encours + SET sejour_id = p_sejours.oid + FROM activite.p_sejours + WHERE p_factures_encours.no_sejour = p_sejours.no_sejour AND + sejour_id IS DISTINCT FROM p_sejours.oid; + + + + -- Correction des totaux encours + RAISE NOTICE '%' , 'Correction totaux encours'; + + UPDATE activite.p_factures_encours SET + montant_encours_c = subview.montant_encours, + montant_encours_0_c = subview.montant_encours_0, + montant_encours_1_c = subview.montant_encours_1, + montant_encours_2_c = subview.montant_encours_2, + montant_encours_22_c = subview.montant_encours_22 + FROM ( + SELECT facture_id, + SUM(montant_encours) AS montant_encours, + SUM(montant_encours_0) AS montant_encours_0, + SUM(montant_encours_1) AS montant_encours_1, + SUM(montant_encours_2) AS montant_encours_2, + SUM(montant_encours_22) AS montant_encours_22 + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON facture_id = oid + GROUP BY 1 + HAVING SUM(montant_encours) <> MAX(montant_encours_c) + ) subview + WHERE p_factures_encours.oid = subview.facture_id + ; + -- Correction facture reference + RAISE NOTICE '%' , 'Correction facture reference'; + UPDATE activite.p_factures_encours + SET no_facture_reference = p_factures.no_facture + FROM activite.p_factures + WHERE p_factures_encours.no_sejour = p_factures.no_sejour AND + p_factures_encours.date_debut BETWEEN p_factures.date_debut AND p_factures.date_fin AND + p_factures.no_facture = p_factures.no_facture_reference AND + p_factures_encours.no_facture_reference <> p_factures.no_facture; + + + UPDATE activite.p_factures_reference + SET + montant_encours = p_factures.montant_encours_c + p_factures.montant_encours_h, + montant_encours_c = p_factures.montant_encours_c, + montant_encours_h = p_factures.montant_encours_h, + montant_encours_0 = p_factures.montant_encours_0_c + p_factures.montant_encours_0_h, + montant_encours_0_c = p_factures.montant_encours_0_c, + montant_encours_0_h = p_factures.montant_encours_0_h, + montant_encours_1 = p_factures.montant_encours_1_c + p_factures.montant_encours_1_h, + montant_encours_1_c = p_factures.montant_encours_1_c, + montant_encours_1_h = p_factures.montant_encours_1_h, + montant_encours_2 = p_factures.montant_encours_2_c + p_factures.montant_encours_2_h, + montant_encours_2_c = p_factures.montant_encours_2_c, + montant_encours_2_h = p_factures.montant_encours_2_h + FROM activite.p_factures + WHERE p_factures_reference.no_facture_reference = p_factures.no_facture; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_ajust_fildeleau.yaml b/db/schema2/functions/cti_ajust_fildeleau.yaml new file mode 100644 index 0000000..918de33 --- /dev/null +++ b/db/schema2/functions/cti_ajust_fildeleau.yaml @@ -0,0 +1,429 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + + -- Pour initialiser l'identification des factures sans montant établissement + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'AJUSTFILDELEAU', + 'Ajustement données fil de l''eau PMSI', + '0', + '0=Non, 1=Oui ' + WHERE 'AJUSTFILDELEAU' NOT IN (SELECT code FROM activite.t_divers); + IF NOT EXISTS (SELECT * + FROM activite.t_divers + WHERE t_divers.code = 'AJUSTFILDELEAU' AND + t_divers.valeur = '1' + LIMIT 1) THEN + return 'Non paramétré'; + END IF; + IF NOT EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + return 'Pas de PMSI'; + END IF; + -- Mise à jour données + -- Séjours non groupés dans activité sans correspondance dans PMSI + DROP TABLE IF EXISTS w_rss_new; + CREATE TEMP TABLE w_rss_new AS + SELECT nextval('pmsi.s_rss'::regclass) AS rss_id, + no_sejour + FROM activite.p_factures_reference + WHERE nb_non_groupe = 1 AND + ltrim(no_sejour,'0') NOT IN (SELECT ltrim(no_sejour_administratif,'0') FROM pmsi.p_rss WHERE etat = '') AND + code_sorti = '1' AND + date_sortie >= '20150101' AND + date_sortie - date_entree < 300; + + INSERT INTO pmsi.p_rss ( + finess, + oid, + no_rss, + no_patient, + version_groupage, + date_naissance, + sexe, + date_entree, + date_sortie, + mode_entree, + provenance, + mode_sortie, + destination, + code_postal, + poids_bebe, + igs2, + cma, + groupe_ghm, + duree_sejour, + nb_rsa, + age, + supprime, + date_import, + nb_rum, + secteur, + no_sejour_administratif, + nb_seances, + ghm_fg9, + ghm_id, + medecin_rss_id, + ghs_id, + mois_sortie, + diagnostic_principal_id, + diagnostic_relie_id, + ghm_production_id, + no_rum_principal, + unite_medicale_principale_id, + import_id, + etat, + acte_principal_id, + code_postal_id, + patient_id, + prestation_principale_id, + severite_fg11_simulation_code, + en_cours, + en_cours_etat, + base_remboursement, + sejour_facture, + honoraires_factures, + t2a_facture, + dmi_facture, + phc_facture, + ca_ghs_theorique, + nb_ghs, + ca_ghs, + nb_exb, + ca_exb, + nb_exh, + ca_exh, + nb_si, + ca_si, + nb_sur, + ca_sur, + nb_rea, + ca_rea, + nb_neonat, + ca_neonat, + traitement_epmsi, + code_retour_groupage, + comite_medical_id, + rehosp_meme_ghm, + from_oid + ) + SELECT + (SELECt MAX(FINESS) FROM pmsi.p_rss WHERE en_cours = '1') AS finess, + w_rss_new.rss_id AS oid, + 0 AS no_rss, + 0 AS no_patient, + '*A' AS version_groupage, + date_naissance AS date_naissance, + p_patients.code_sexe AS sexe, + p_sejours.date_entree, + p_sejours.date_sortie, + p_sejours.mode_entree, + p_sejours.provenance, + p_sejours.mode_sortie, + p_sejours.destination, + '' AS code_postal, + 0 AS poids_bebe, + 0 AS igs2, + '' AS cma, + '' AS groupe_ghm, + CASE WHEN p_sejours.date_sortie > p_sejours.date_entree THEN date(p_sejours.date_sortie) - date(p_sejours.date_entree) ELSE 0 END AS duree_sejour, + 1 AS nb_rsa, + CASE WHEN p_sejours.date_sortie > date_naissance AND p_sejours.date_sortie - date_naissance BETWEEN 0 AND 50000 THEN trunc((date(p_sejours.date_entree) - date(date_naissance)) / 365.25,0) ELSE 0 END AS age, + '' AS supprime, + now() AS date_import, + 1 AS nb_rum, + '' AS secteur, + p_sejours.no_sejour AS no_sejour_administratif, + 0 AS nb_seances, + '' AS ghm_fg9, + COALESCE(t_ghm.oid, 0) AS ghm_id, + 0 AS medecin_rss_id, + 0 AS ghs_id, + date_part('year', p_sejours.date_sortie) * 100 + date_part('month', p_sejours.date_sortie) AS mois_sortie, + 0 AS diagnostic_principal_id, + 0 AS diagnostic_relie_id, + COALESCE(t_ghm.oid, 0) AS ghm_production_id, + 1 AS no_rum_principal, + 0 AS unite_medicale_principale_id, + -1 AS import_id, + '' AS etat, + 0 AS acte_principal_id, + 0 AS code_postal_id, + 0 AS patient_id, + 0 AS prestation_principale_id, + '' AS severite_fg11_simulation_code, + '1' AS en_cours, + 'S' AS en_cours_etat, + 0 AS base_remboursement, + 0 AS sejour_facture, + 0 AS honoraires_factures, + 0 AS t2a_facture, + 0 AS dmi_facture, + 0 AS phc_facture, + 0 AS ca_ghs_theorique, + 0 AS nb_ghs, + 0 AS ca_ghs, + 0 AS nb_exb, + 0 AS ca_exb, + 0 AS nb_exh, + 0 AS ca_exh, + 0 AS nb_si, + 0 AS ca_si, + 0 AS nb_sur, + 0 AS ca_sur, + 0 AS nb_rea, + 0 AS ca_rea, + 0 AS nb_neonat, + 0 AS ca_neonat, + '' AS traitement_epmsi, + '' AS code_retour_groupage, + 0 AS comite_medical_id, + '0' AS rehosp_meme_ghm, + 0 AS from_oid + FROM w_rss_new + JOIN activite.p_sejours ON p_sejours.no_sejour = w_rss_new.no_sejour + JOIN activite.p_patients On p_sejours.no_patient = p_patients.no_patient + LEFT JOIN pmsi.t_ghm ON t_ghm.code = '99Z99Z'; + INSERT INTO pmsi.p_identites( + rss_id, + no_rss, + nom, + prenom, + nom_naissance) + SELECT + w_rss_new.rss_id AS oid, + 0 AS no_rss, + nom, + prenom, + nom_naissance + FROM w_rss_new + JOIN activite.p_sejours ON p_sejours.no_sejour = w_rss_new.no_sejour + JOIN activite.p_patients On p_sejours.no_patient = p_patients.no_patient; + INSERT INTO pmsi.p_rss_rum( + rss_id, + no_rss, + no_rum, + date_entree, + date_sortie, + mode_entree, + provenance, + mode_sortie, + destination, + duree_sejour, + nb_seances, + unite_medicale, + diagnostic_principal_id, + diagnostic_relie_id, + unite_medicale_id, + type_autorisation, + igs2, + type_autorisation_lit_dedie, + supplement_code) + SELECT + w_rss_new.rss_id AS rss_id, + 0 AS no_rss, + 1 AS no_rum, + p_sejours.date_entree, + p_sejours.date_sortie, + p_sejours.mode_entree, + p_sejours.provenance, + p_sejours.mode_sortie, + p_sejours.destination, + CASE WHEN p_sejours.date_sortie > p_sejours.date_entree THEN date(p_sejours.date_sortie) - date(p_sejours.date_entree) ELSE 0 END AS duree_sejour, + 0 AS nb_seances, + t_unites_medicales_pmsi.code AS unite_medicale, + 0 AS diagnostic_principal_id, + 0 AS diagnostic_relie_id, + 0 AS unite_medicale_id, + '' AS type_autorisation, + 0 AS igs2, + '' AS type_autorisation_lit_dedie, + '' AS supplement_code + FROM w_rss_new + JOIN activite.p_sejours ON p_sejours.no_sejour = w_rss_new.no_sejour + JOIN activite.p_patients On p_sejours.no_patient = p_patients.no_patient + JOIN activite.t_lieux ON lieu_sortie_id = t_lieux.oid + LEFT JOIN activite.t_unites_medicales on t_lieux.unite_medicale_id = t_unites_medicales.oid + LEFT JOIN activite.t_unites_fonctionnelles on t_lieux.unite_fonctionnelle_id = t_unites_fonctionnelles.oid + LEFT JOIN pmsi.t_unites_medicales t_unites_medicales_pmsi On (CASE WHEN t_lieux.unite_medicale_id <> 0 THEN t_unites_medicales.code ELSE t_unites_fonctionnelles.code END) = t_unites_medicales_pmsi.code; + INSERT INTO pmsi.p_rsf_total( + finess, no_rss, code_pec, rang_beneficiaire, regime, nature_pec, + justificatif_exo, no_facture, code_regularisation, base_remboursement, + sejour_facture, sejour_remboursable, honoraires_factures, honoraires_remboursable, + t2a_facture, dmi_facture, phc_facture, participation_assure_avant_oc, + sejour_remboursable_2, honoraires_remboursable_2, montant_dmi_ghs2006, + nb_si, ca_si, nb_sur, ca_sur, nb_rea, ca_rea, nb_neonat, ca_neonat, + nb_exh, ca_exh, nb_exb, ca_exb, nb_ghs, ca_ghs, rss_id, ca_ghs_theorique) + SELECT + p_rss.finess, p_rss.no_rss, '', '', '', '', '', '', '', 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, p_rss.oid, 0 + FROM pmsi.p_rss + LEFT JOIN pmsi.p_rsf_total ON (p_rsf_total.rss_id = p_rss.oid) + WHERE en_cours = '1' AND p_rsf_total.rss_id IS NULL; + INSERT INTO pmsi.p_rss_etat + ( + rss_id, + est_groupe, + est_valide, + date_groupage, + est_facture, + date_facture + ) + SELECT + w_rss_new.rss_id, + '0' AS est_groupe, + '0' AS est_valide, + '20991231' AS date_groupage, + '0' AS est_facture, + '20991231' AS date_facture + FROM w_rss_new + WHERE rss_id NOT IN (SELECT rss_id FROM pmsi.p_rss_etat); + -- Séjours externes dans PMSi sans facturation ets dans activité à supprimer + DROP TABLE IF EXISTS w_rss_to_delete; + CREATE TEMP TABLE w_rss_to_delete AS + SELECT p_rss.oid AS rss_id + FROM pmsi.p_rss + JOIN activite.p_factures_reference ON p_factures_reference.no_sejour = p_rss.no_sejour_administratif + WHERE p_rss.date_sortie >= '20140101' AND + p_rss.en_cours = '1' AND + p_factures_reference.montant_facture_c = 0 AND + nb_non_calcules = 0; + INSERT INTO w_rss_to_delete + SELECT p_rss.oid AS rss_id + FROM pmsi.p_rss + JOIN activite.p_factures_reference ON p_factures_reference.no_sejour = p_rss.no_sejour_administratif + WHERE p_rss.date_sortie >= '20140101' AND + p_rss.en_cours = '1' AND + nb_non_groupe = 0 AND + nb_groupe = 0 AND + en_cours_etat <> 'F'; + DELETE FROM pmsi.p_identites WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rss_rum WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rss_diagnostics WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rss_actes WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rss_lpp WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rss_ucd WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rsf_total WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rsf_detail WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rss_etat WHERE rss_id IN (SELECT rss_id FROM w_rss_to_delete); + DELETE FROM pmsi.p_rss WHERE oid IN (SELECT rss_id FROM w_rss_to_delete); + -- Séjours facturés donc forcément validés et facturés + UPDATE pmsi.p_rss + SET en_cours_etat = 'F' + FROM activite.p_factures_reference + WHERE en_cours = '1' AND + no_sejour = no_sejour_administratif AND + en_cours_etat IN ('G','V') AND + nb_groupe = 1 AND nb_non_groupe = 0 AND nb_non_calcules = 0; + -- Séjours PMSI non facturés dans activité + UPDATE pmsi.p_rss + SET en_cours_etat = 'V' + FROM activite.p_factures_reference + WHERE en_cours = '1' AND + no_sejour = no_sejour_administratif AND + en_cours_etat = 'F' AND + nb_groupe = 1 AND nb_non_groupe = 0 AND nb_non_calcules = 1; + + UPDATE pmsi.p_rss_etat + SET est_facture = '0' + FROM pmsi.p_rss + JOIN activite.p_factures_reference ON no_sejour = no_sejour_administratif + WHERE p_rss_etat.rss_id = p_rss.oid AND + en_cours = '1' AND + est_facture = '1' AND + nb_non_calcules = 1; + -- Séjours activité non validés dans PMSI + UPDATE activite.p_factures_reference + SET nb_non_groupe = 1 , nb_groupe = 0 + FROM pmsi.p_rss + JOIN pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid AND t_ghm.code NOT LIKE '15%' + WHERE no_sejour = no_sejour_administratif AND + en_cours = '1' AND + en_cours_etat = 'G' AND + nb_groupe = 1 AND nb_non_groupe = 0; + UPDATE activite.p_factures_reference_tiers p_factures_reference + SET nb_non_groupe = 1 , nb_groupe = 0 + FROM pmsi.p_rss + JOIN pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid AND t_ghm.code NOT LIKE '15%' + WHERE no_sejour = no_sejour_administratif AND + en_cours = '1' AND + en_cours_etat = 'G' AND + nb_groupe = 1 AND nb_non_groupe = 0; + UPDATE activite.p_factures_reference + SET nb_non_groupe = 1 , nb_groupe = 0 + FROM pmsi.p_rss + JOIN pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid AND t_ghm.code NOT LIKE '15%' + WHERE no_sejour = no_sejour_administratif AND + en_cours = '1' AND + en_cours_etat = 'S' AND + nb_groupe = 1 AND nb_non_groupe = 0; + UPDATE activite.p_factures_reference_tiers p_factures_reference + SET nb_non_groupe = 1 , nb_groupe = 0 + FROM pmsi.p_rss + JOIN pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid AND t_ghm.code NOT LIKE '15%' + WHERE no_sejour = no_sejour_administratif AND + en_cours = '1' AND + en_cours_etat = 'S' AND + nb_groupe = 1 AND nb_non_groupe = 0; + -- Mise à jour des séjours + UPDATE activite.p_sejours + SET ghs_id = 0 + FROM activite.p_factures_reference + WHERE p_factures_reference.no_sejour = p_sejours.no_sejour AND + p_sejours.ghs_id <> 0 AND + nb_non_groupe = 1; + UPDATE activite.p_sejours + SET date_facture = '20991231' + FROM activite.p_factures_reference + WHERE p_factures_reference.no_sejour = p_sejours.no_sejour AND + p_sejours.date_facture <> '20991231' AND + nb_non_calcules = 1; + UPDATE activite.p_factures + SET ghs_id = 0 + FROM activite.p_factures_reference + WHERE p_factures_reference.no_facture_reference = p_factures.no_facture_reference AND + p_factures.ghs_id <> 0 AND + nb_non_groupe = 1; + + -- Mise à jour ME/MS/PROV/DEST depuis PMSI si non renseigné dans Activité + + + WITH w_rss as ( + SELECT + no_sejour_administratif, + date_naissance, + lpad((MIN(ARRAY[to_char(date_entree, 'YYYYMMDD'), mode_entree]))[2], 1, '8') as mode_entree, + lpad((MIN(ARRAY[to_char(date_entree, 'YYYYMMDD'), provenance]))[2], 1, '0') as provenance, + lpad((MAX(ARRAY[to_char(date_sortie, 'YYYYMMDD'), mode_sortie]))[2], 1, '8') as mode_sortie, + lpad((MAX(ARRAY[to_char(date_sortie, 'YYYYMMDD'), destination]))[2], 1, '0') as destination + FROM + pmsi.p_rss + WHERE + p_rss.date_sortie >= date_trunc('year', now() - interval '2 year')::date + GROUP BY 1,2 + ) + UPDATE activite.p_sejours SET + mode_entree = w_rss.mode_entree, + mode_sortie = w_rss.mode_sortie, + provenance = w_rss.provenance, + destination = w_rss.destination + FROM + w_rss, activite.p_patients + WHERE + p_sejours.no_patient = p_patients.no_patient AND + w_rss.no_sejour_administratif = p_sejours.no_sejour AND + w_rss.date_naissance = p_patients.date_naissance AND + ( + 1!=1 + OR (p_sejours.mode_entree = '8' AND p_sejours.mode_entree != w_rss.mode_entree) + OR (p_sejours.mode_sortie = '8' AND p_sejours.mode_sortie != w_rss.mode_sortie) + OR (p_sejours.provenance = '0' AND p_sejours.provenance != w_rss.provenance) + OR (p_sejours.destination = '0' AND p_sejours.destination != w_rss.destination) + ); + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_ajust_fildeleau_rsf.yaml b/db/schema2/functions/cti_ajust_fildeleau_rsf.yaml new file mode 100644 index 0000000..3637ce7 --- /dev/null +++ b/db/schema2/functions/cti_ajust_fildeleau_rsf.yaml @@ -0,0 +1,231 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + + -- remplacer Chiffre d'affaires fil de l'eau PMSI par celui d'activité + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'AJUSTFILDELEAU', + 'Ajustement données fil de l''eau PMSI', + '0', + '0=Non, 1=Oui ' + WHERE 'AJUSTFILDELEAU' NOT IN (SELECT code FROM activite.t_divers); + IF NOT EXISTS (SELECT * + FROM activite.t_divers + WHERE t_divers.code = 'AJUSTFILDELEAU' AND + t_divers.valeur = '1' + LIMIT 1) THEN + return 'Non paramétré'; + END IF; + IF NOT EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + return 'Pas de PMSI'; + END IF; + + -- CA à générer d'après lignes de factures ou d'encours + DROP TABLE IF EXISTS w_encours_pmsi_rsf_detail; + CREATE TEMP TABLE w_encours_pmsi_rsf_detail AS + SELECT + p_rss.finess AS finess, + p_rss.oid AS rss_id, + p_rss.no_rss AS no_rss, + '' AS nature, + '' AS mt, + '' AS dmt, + MIN(p_factures_lignes_c.date_debut) AS date_debut, + MAX(p_factures_lignes_c.date_fin) AS date_fin, + SUM(p_factures_lignes_c.nb_prestation) AS nombre, + p_factures_lignes_c.coefficient AS coefficient, + p_factures_lignes_c.prix_unitaire AS prix_unitaire, + SUM(montant_facture+montant_encours) AS base_remboursement, + taux_1 AS taux_remboursement, + SUM(montant_facture+montant_encours) AS sejour_facture, + SUM(montant_facture_1+montant_encours_1) AS sejour_remboursable, + 0::numeric AS compteur, + '' AS ligne_t2a, + '' AS pec_fj, + p_factures_lignes_c.coefficient_mco, + 0 AS sejour_remboursable_2, + p_rss.ghs_id, + 0 AS sejour_rembourse_noemie, + '' AS nature_noemie, + t_prestations_pmsi.oid AS prestation_id, + 'B' AS type, + 0 AS coefficient_geo, + '1'::text AS est_ligne_rss, + '0'::text AS est_ligne_rum, + t_prestations.code AS prestation_code, + CASE WHEN t_prestations.code IN ('D09','D13') THEN p_factures_lignes_c.date_debut ELSE NULL END AS date_debut_seance, + CASE WHEN t_prestations.code IN ('D09','D13') THEN p_factures_lignes_c.date_fin ELSE NULL END AS date_fin_seance + FROM activite.p_sejours + JOIN activite.t_lieux ON t_lieux.oid = lieu_sortie_id + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + JOIN activite.p_sejour_pmsi ON p_sejours.oid = p_sejour_pmsi.sejour_id + JOIN pmsi.p_rss ON p_sejour_pmsi.rss_id = p_rss.oid + JOIN activite.p_factures ON p_sejours.no_sejour = p_factures.no_sejour + JOIN activite.p_factures_lignes_c ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN pmsi.t_prestations t_prestations_pmsi ON t_prestations_pmsi.code = t_prestations.code + WHERE p_sejours.type_sejour IN ('1','2','5') AND + p_sejours.code_sorti = '1' AND + p_sejours.date_sortie >= date(date_trunc('year',now()-interval '18 month')) AND + ( + t_services_facturation.type_t2a = '1' OR + p_sejours.ghm_id > 0 + ) AND + p_rss.en_cours = '1' AND + ( + montant_facture_1 <> 0 OR + montant_encours_1 <> 0 + ) AND + p_factures_lignes_c.date_fin BETWEEN p_rss.date_entree AND p_rss.date_sortie + GROUP BY 1,2,3,10,11,13,19,21,24,29,30,31 + HAVING SUM(montant_facture+montant_encours) > 0 + ; + + DROP TABLE IF EXISTS w_encours_pmsi_rss; + CREATE TEMP TABLE w_encours_pmsi_rss AS + SELECT rss_id + FROM w_encours_pmsi_rsf_detail + GROUP BY 1 + ; + + ANALYSE w_encours_pmsi_rss + ; + + -- Suppression du CA déjà généré + + DELETE FROM pmsi.p_rsf_detail + WHERE p_rsf_detail.rss_id IN (SELECT w_encours_pmsi_rss.rss_id FROM w_encours_pmsi_rss) + ; + + -- Ajout des nouvelles lignes + INSERT INTO pmsi.p_rsf_detail( + finess, + rss_id, + no_rss, + nature, + mt, + dmt, + date_debut, + date_fin, + nombre, + coefficient, + prix_unitaire, + base_remboursement, + taux_remboursement, + sejour_facture, + sejour_remboursable, + compteur, + ligne_t2a, + pec_fj, + coefficient_mco, + sejour_remboursable_2, + ghs_id, + sejour_rembourse_noemie, + nature_noemie, + prestation_id, + type, + coefficient_geo, + est_ligne_rss, + est_ligne_rum + ) + SELECT + finess, + rss_id, + no_rss, + nature, + mt, + dmt, + date_debut, + date_fin, + nombre, + coefficient, + prix_unitaire, + base_remboursement, + taux_remboursement, + sejour_facture, + sejour_remboursable, + compteur, + ligne_t2a, + pec_fj, + coefficient_mco, + sejour_remboursable_2, + ghs_id, + sejour_rembourse_noemie, + nature_noemie, + prestation_id, + type, + coefficient_geo, + est_ligne_rss, + est_ligne_rum + FROM w_encours_pmsi_rsf_detail + ; + + + + -- Réplication cumuls + UPDATE pmsi.p_rsf_total SET + base_remboursement = COALESCE(subview.base_remboursement,0), + t2a_facture = COALESCE(subview.t2a_facture,0), + dmi_facture = COALESCE(subview.dmi_facture,0), + phc_facture = COALESCE(subview.phc_facture,0), + forfait_facture = COALESCE(subview.forfait_facture,0), + nb_exh = COALESCE(subview.nb_exh,0), + ca_exh = COALESCE(subview.ca_exh,0), + nb_exb = COALESCE(subview.nb_exb,0), + ca_exb = COALESCE(subview.ca_exb,0), + nb_ghs = COALESCE(subview.nb_ghs,0), + ca_ghs = COALESCE(subview.ca_ghs,0), + nb_ghsmin = COALESCE(subview.nb_ghsmin,0) + FROM pmsi.p_rss + LEFT JOIN ( + SELECT rss_id, + SUM(p_rsf_detail.base_remboursement) as base_remboursement, + SUM(CASE WHEN t_prestations.section_code[9] LIKE 'S1%' THEN p_rsf_detail.base_remboursement ELSE 0 END) as t2a_facture, + SUM(CASE WHEN t_prestations.section_code[9] LIKE 'S2%' THEN p_rsf_detail.base_remboursement ELSE 0 END) as dmi_facture, + SUM(CASE WHEN t_prestations.section_code[9] LIKE 'S3%' THEN p_rsf_detail.base_remboursement ELSE 0 END) as phc_facture, + + SUM(CASE WHEN t_prestations.code = 'EXH' THEN p_rsf_detail.nombre ELSE 0 END) as nb_exh, + SUM(CASE WHEN t_prestations.code = 'EXH' THEN p_rsf_detail.base_remboursement ELSE 0 END) as ca_exh, + SUM(CASE WHEN t_prestations.code = 'GHS' AND coefficient > 0 AND coefficient < 1 AND t_ghs.code NOT IN (9606,9616) THEN p_rsf_detail.nombre ELSE 0 END) as nb_exb, + SUM(CASE WHEN t_prestations.code = 'GHS' AND coefficient > 0 AND coefficient < 1 AND t_ghs.code NOT IN (9606,9616) THEN p_rsf_detail.base_remboursement ELSE 0 END) as ca_exb, + SUM(CASE WHEN t_prestations.code = 'GHS' AND coefficient > 0 AND coefficient < 1 AND t_ghs.code IN (9606,9616) THEN p_rsf_detail.nombre ELSE 0 END) as nb_ghsmin, + SUM(CASE WHEN t_prestations.code = 'GHS' THEN p_rsf_detail.nombre ELSE 0 END) as nb_ghs, + SUM(CASE WHEN t_prestations.code = 'GHS' THEN p_rsf_detail.base_remboursement ELSE 0 END) as ca_ghs, + SUM(CASE WHEN t_prestations.section_code[9] LIKE 'S13%' THEN p_rsf_detail.base_remboursement ELSE 0 END) as forfait_facture + FROM pmsi.p_rsf_detail + JOIN pmsi.t_prestations ON p_rsf_detail.prestation_id = t_prestations.oid JOIN pmsi.t_ghs ON t_ghs.oid = p_rsf_detail.ghs_id + WHERE p_rsf_detail.type = 'B' AND p_rsf_detail.est_ligne_rss = '1' AND + p_rsf_detail.rss_id IN (SELECT w_encours_pmsi_rss.rss_id FROM w_encours_pmsi_rss) + GROUP BY rss_id) subview ON p_rss.oid = subview.rss_id + WHERE p_rsf_total.rss_id = p_rss.oid AND + p_rsf_total.rss_id IN (SELECT w_encours_pmsi_rss.rss_id FROM w_encours_pmsi_rss); + -- total rss + UPDATE pmsi.p_rss + SET base_remboursement = p_rsf_total.base_remboursement, + sejour_facture = p_rsf_total.sejour_facture, + honoraires_factures = p_rsf_total.honoraires_factures, + t2a_facture = p_rsf_total.t2a_facture, + dmi_facture = p_rsf_total.dmi_facture, + phc_facture = p_rsf_total.phc_facture, + ca_ghs_theorique = p_rsf_total.ca_ghs_theorique, + nb_ghs = p_rsf_total.nb_ghs, + ca_ghs = p_rsf_total.ca_ghs, + nb_exb = p_rsf_total.nb_exb, + ca_exb = p_rsf_total.ca_exb, + nb_exh = p_rsf_total.nb_exh, + ca_exh = p_rsf_total.ca_exh, + nb_ghsmin = p_rsf_total.nb_ghsmin, + forfait_facture = p_rsf_total.forfait_facture + FROM pmsi.p_rsf_total + WHERE p_rss.oid = p_rsf_total.rss_id AND + p_rss.oid IN (SELECT w_encours_pmsi_rss.rss_id FROM w_encours_pmsi_rss) + ; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_budget_execute_rules.yaml b/db/schema2/functions/cti_budget_execute_rules.yaml new file mode 100644 index 0000000..4241cfa --- /dev/null +++ b/db/schema2/functions/cti_budget_execute_rules.yaml @@ -0,0 +1,591 @@ +return: text +lang: plpgsql +src: | + DECLARE + _module_pmsimco TEXT; + + BEGIN + -- règles ? + IF NOT EXISTS (SELECT * FROM activite.t_budget_cle_rule LIMIT 1) THEN + return 'Pas de règle'; + END IF; + + -- pmsi mco ? + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + _module_pmsimco = '1'; + ELSE + _module_pmsimco = '0'; + END IF; + -- Réplication du paramétrage + -- INSERT INTO activite.t_budget_cle (oid,code_original,code,texte,texte_court) + -- SELECT oid,code_original,code,texte,texte_court + -- FROM base.t_budget_cle_activite + -- WHERE oid NOT IN (SELECT oid FROM activite.t_budget_cle); + -- UPDATE activite.t_budget_cle + -- SET code = t_budget_cle_activite.code, + -- texte = t_budget_cle_activite.texte, + -- texte_court = t_budget_cle_activite.texte_court + -- FROM base.t_budget_cle_activite + -- WHERE t_budget_cle_activite.oid = t_budget_cle.oid AND + -- ( + -- t_budget_cle.code IS DISTINCT FROM t_budget_cle_activite.code OR + -- t_budget_cle.texte IS DISTINCT FROM t_budget_cle_activite.texte OR + -- t_budget_cle.texte_court IS DISTINCT FROM t_budget_cle_activite.texte_court + -- ); + -- Ménage dans les règles + DELETE FROM activite.t_budget_cle_rule + WHERE budget_cle_id NOT IN (SELECT oid FROM activite.t_budget_cle) + ; + + -- Sejours et RSS à Traiter + + DROP SEQUENCE IF EXISTS w_sejours_rss_sequence; + CREATE SEQUENCE w_sejours_rss_sequence; + DROP TABLE IF EXISTS w_sejours_rss; + + DROP TABLE IF EXISTS w_sejour_lieu; + CREATE TEMP TABLE w_sejour_lieu AS + SELECT no_sejour, lieu_sortie_id AS lieu_id + FROM activite.p_sejours + GROUP BY 1,2 + ; + + INSERT INTO w_sejour_lieu + SELECT p_mouvements_sejour.no_sejour, lieu_id + FROM activite.p_mouvements_sejour + JOIN activite.p_sejours ON p_mouvements_sejour.no_sejour = p_sejours.no_sejour AND + lieu_id <> lieu_sortie_id + GROUP BY 1,2 + ; + + + IF _module_pmsimco = '1' THEN + -- si pmsi mco + CREATE TEMP TABLE w_sejours_rss AS + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + p_sejours.lieu_sortie_id, + w_sejour_lieu.lieu_id, + COALESCE(p_rss.oid,0) AS rss_id, + diagnostic_principal_id, + diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + p_rss.ghm_id AS ghm_pmsi_id, + p_sejours.ghm_id AS ghm_activite_id, + COALESCE(medecin_rss_id,0) AS medecin_rss_id, + p_sejours.medecin_sejour_id, + COALESCE(t_medecins_pmsi.specialite_id,0) AS specialite_rss_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + type_sejour, + service_facturation_id, + unite_fonctionnelle_id AS uf_id, + activite_id, + 0::bigint AS budget_cle_id, + 0::bigint AS budget_cle_priorite + FROM activite.p_sejours + JOIN w_sejour_lieu ON p_sejours.no_sejour = w_sejour_lieu.no_sejour + JOIN activite.t_lieux ON w_sejour_lieu.lieu_id = t_lieux.oid + LEFT JOIN pmsi.p_rss ON no_sejour_administratif = p_sejours.no_sejour AND p_sejours.date_sortie = p_rss.date_sortie AND p_rss.etat = '' + LEFT JOIN pmsi.t_medecins t_medecins_pmsi ON medecin_rss_id = t_medecins_pmsi.oid + LEFT JOIN activite.t_medecins_administratifs ON p_sejours.medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid + LEFT JOIN base.t_finess ON p_rss.finess = t_finess.code; + INSERT INTO w_sejours_rss + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + 0 AS sejour_id, + '' AS no_sejour, + 0::bigint AS lieu_sortie_id, + 0::bigint AS lieu_id, + p_rss.oid AS rss_id, + diagnostic_principal_id, + diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + p_rss.ghm_id AS ghm_pmsi_id, + 0 AS ghm_activite_id, + medecin_rss_id, + 0::bigint AS medecin_sejour_id, + COALESCE(t_medecins_pmsi.specialite_id,0) AS specialite_rss_id, + 0::bigint AS specialite_sejour_id, + ''::text AS type_sejour, + 0::bigint AS service_facturation_id, + 0::bigint AS uf_id, + 0::bigint AS activite_id, + 0::bigint AS budget_cle_id, + 0::bigint AS budget_cle_priorite + FROM pmsi.p_rss + LEFT JOIN pmsi.t_medecins t_medecins_pmsi ON medecin_rss_id = t_medecins_pmsi.oid + LEFT JOIN base.t_finess ON p_rss.finess = t_finess.code + WHERE date_sortie >= '20160101' AND p_rss.oid NOT IN (SELECt rss_id FROM w_sejours_rss); + UPDATE w_sejours_rss SET + medecin_rss_id = t_medecins.oid, + specialite_rss_id = t_medecins.specialite_id + FROM activite.t_medecins_administratifs_c + JOIN pmsi.t_medecins ON t_medecins_administratifs_c.adm_code = t_medecins.code + WHERE medecin_sejour_id = t_medecins_administratifs_c.oid AND + t_medecins.oid <> 0 AND + (t_medecins.oid IS DISTINCT FROM medecin_rss_id OR + specialite_rss_id IS DISTINCT FROM t_medecins.specialite_id) + ; + ELSE + -- si pas pmsi mco + CREATE TEMP TABLE w_sejours_rss AS + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + 0 AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + p_sejours.lieu_sortie_id, + w_sejour_lieu.lieu_id, + 0 AS rss_id, + 0::bigint AS diagnostic_principal_id, + 0::bigint AS diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + 0::bigint AS ghm_pmsi_id, + p_sejours.ghm_id AS ghm_activite_id, + 0 AS medecin_rss_id, + medecin_sejour_id, + 0 AS specialite_rss_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + type_sejour, + service_facturation_id, + unite_fonctionnelle_id AS uf_id, + activite_id, + 0::bigint AS budget_cle_id, + 0::bigint AS budget_cle_priorite + FROM activite.p_sejours + JOIN w_sejour_lieu ON p_sejours.no_sejour = w_sejour_lieu.no_sejour + JOIN activite.t_lieux ON w_sejour_lieu.lieu_id = t_lieux.oid + LEFT JOIN activite.t_medecins_administratifs ON p_sejours.medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid; + END IF; + UPDATE w_sejours_rss SET + medecin_rss_id = 0, + specialite_rss_id = 0 + WHERE medecin_sejour_id <> 0; + UPDATE w_sejours_rss + SET finess_id = (SELECT MAX(finess_id) FROM w_sejours_rss WHERE finess_id <> 0) + WHERE finess_id = 0 AND (SELECT MAX(finess_id) FROM w_sejours_rss WHERE finess_id <> 0) <> 0; + UPDATE w_sejours_rss + SET finess_id = (SELECT MAX(oid) FROM base.t_finess) + WHERE finess_id = 0; + CREATE INDEX w_sejours_rss_i0 ON w_sejours_rss USING btree (oid); + CREATE INDEX w_sejours_rss_i1 ON w_sejours_rss USING btree (rss_id); + CREATE INDEX w_sejours_rss_i2 ON w_sejours_rss USING btree (sejour_id); + CREATE INDEX w_sejours_rss_i3 ON w_sejours_rss USING btree (no_sejour); + + -- Traduction des règles en oid + DROP TABLE IF EXISTS w_budget_cle_rule; + CREATE TEMP TABLE w_budget_cle_rule AS + SELECT + t_budget_cle_rule.oid, + budget_cle_id, + CASE WHEN priorite <> 0 THEN priorite WHEN liste_diagnostic_principal <> '' THEN 90000 ELSE 999999 END AS priorite, + CASE WHEN liste_finess <> '' THEN '1' ELSE '0' END AS a_liste_finess, + string_to_array(replace(liste_finess,'*','%'),' ') AS liste_finess, + NULL::bigint[] AS liste_finess_id , + CASE WHEN liste_diagnostic_principal <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_principal, + string_to_array(replace(liste_diagnostic_principal,'*','%'),' ') AS liste_diagnostic_principal, + NULL::bigint[] AS liste_diagnostic_principal_id , + CASE WHEN liste_diagnostic_relie <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_relie, + string_to_array(replace(liste_diagnostic_relie,'*','%'),' ') AS liste_diagnostic_relie, + NULL::bigint[] AS liste_diagnostic_relie_id , + CASE WHEN liste_diagnostic_associe <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_associe, + string_to_array(replace(liste_diagnostic_associe,'*','%'),' ') AS liste_diagnostic_associe, + NULL::bigint[] AS liste_diagnostic_associe_id , + CASE WHEN liste_acte <> '' THEN '1' ELSE '0' END AS a_liste_acte, + string_to_array(replace(liste_acte,'*','%'),' ') AS liste_acte, + NULL::bigint[] AS liste_acte_pmsi_id , + NULL::bigint[] AS liste_acte_base_id , + CASE WHEN liste_ghm <> '' THEN '1' ELSE '0' END AS a_liste_ghm, + string_to_array(replace(liste_ghm,'*','%'),' ') AS liste_ghm, + NULL::bigint[] AS liste_ghm_pmsi_id, + NULL::bigint[] AS liste_ghm_activite_id, + liste_ghm AS liste_ghm_origine, + CASE WHEN liste_sauf_ghm <> '' THEN '1' ELSE '0' END AS a_liste_sauf_ghm, + string_to_array(replace(liste_sauf_ghm,'*','%'),' ') AS liste_sauf_ghm, + NULL::bigint[] AS liste_sauf_ghm_pmsi_id , + NULL::bigint[] AS liste_sauf_ghm_activite_id , + liste_sauf_ghm AS liste_sauf_ghm_origine, + CASE WHEN liste_type_sejour <> '' THEN '1' ELSE '0' END AS a_liste_type_sejour, + string_to_array(replace(liste_type_sejour,'*','%'),' ') AS liste_type_sejour, + NULL::text[] AS liste_type_sejour_id , + CASE WHEN liste_service <> '' THEN '1' ELSE '0' END AS a_liste_service, + string_to_array(replace(liste_service,'*','%'),' ') AS liste_service, + NULL::bigint[] AS liste_service_id , + CASE WHEN liste_uf <> '' THEN '1' ELSE '0' END AS a_liste_uf, + string_to_array(replace(liste_uf,'*','%'),' ') AS liste_uf, + NULL::bigint[] AS liste_uf_id , + CASE WHEN liste_activite <> '' THEN '1' ELSE '0' END AS a_liste_activite, + string_to_array(replace(liste_activite,'*','%'),' ') AS liste_activite, + NULL::bigint[] AS liste_activite_id , + CASE WHEN liste_medecin <> '' THEN '1' ELSE '0' END AS a_liste_medecin, + string_to_array(CASE WHEN liste_medecin NOT LIKE '%**%' THEN replace(liste_medecin,'*','%') ELSE liste_medecin END,' ') AS liste_medecin, + NULL::bigint[] AS liste_medecin_pmsi_id , + NULL::bigint[] AS liste_medecin_activite_id , + CASE WHEN liste_specialite <> '' THEN '1' ELSE '0' END AS a_liste_specialite, + string_to_array(replace(liste_specialite,'*','%'),' ') AS liste_specialite, + NULL::bigint[] AS liste_specialite_pmsi_id , + NULL::bigint[] AS liste_specialite_activite_id , + CASE WHEN liste_rubrique <> '' THEN '1' ELSE '0' END AS a_liste_rubrique, + string_to_array(replace(liste_rubrique,'*','%'),' ') AS liste_rubrique, + NULL::bigint[] AS liste_rubrique_id + FROM activite.t_budget_cle_rule + JOIN activite.t_budget_cle ON budget_cle_id = t_budget_cle.oid + ORDER BY priorite, budget_cle_id; + UPDATE w_budget_cle_rule + SET liste_finess_id = (SELECT base.cti_group_array3(oid) FROM base.t_finess WHERE code LIKE ANY (liste_finess)) + WHERE a_liste_finess = '1'; + + IF _module_pmsimco = '1' THEN + UPDATE w_budget_cle_rule + SET liste_diagnostic_principal_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_principal)) + WHERE a_liste_diagnostic_principal = '1'; + UPDATE w_budget_cle_rule + SET liste_diagnostic_relie_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_relie)) + WHERE a_liste_diagnostic_relie = '1'; + UPDATE w_budget_cle_rule + SET liste_diagnostic_associe_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_associe)) + WHERE a_liste_diagnostic_associe = '1'; + UPDATE w_budget_cle_rule + SET liste_acte_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_actes WHERE code LIKE ANY (liste_acte)) + WHERE a_liste_acte = '1'; + DROP TABLE IF EXISTS w_budget_cle_rule_actes_pmsi; + CREATE TEMP TABLE w_budget_cle_rule_actes_pmsi AS + SELECT t_actes.oid AS rule_acte_id, w_budget_cle_rule.oid AS rule_id + FROM pmsi.t_actes + JOIN w_budget_cle_rule ON code LIKE ANY (liste_acte); + CREATE INDEX w_budget_cle_rule_actes_pmsi_i1 ON w_budget_cle_rule_actes_pmsi USING btree (rule_acte_id); + END IF; + + + DROP TABLE IF EXISTS w_budget_cle_rule_actes_base; + CREATE TEMP TABLE w_budget_cle_rule_actes_base AS + SELECT t_actes.oid AS rule_acte_id, w_budget_cle_rule.oid AS rule_id + FROM base.t_actes + JOIN w_budget_cle_rule ON code LIKE ANY (liste_acte); + + CREATE INDEX w_budget_cle_rule_actes_base_i1 ON w_budget_cle_rule_actes_base USING btree (rule_acte_id); + DROP TABLE IF EXISTS w_budget_cle_rule_rubriques; + CREATE TEMP TABLE w_budget_cle_rule_rubriques AS + SELECT t_rubriques_facturation.oid AS rule_rubrique_id, w_budget_cle_rule.oid AS rule_id + FROM activite.t_rubriques_facturation + JOIN w_budget_cle_rule ON code LIKE ANY (liste_rubrique); + + CREATE INDEX w_budget_cle_rule_rubriques_i1 ON w_budget_cle_rule_rubriques USING btree (rule_rubrique_id); + + UPDATE w_budget_cle_rule + SET liste_acte_base_id = (SELECT base.cti_group_array3(oid) FROM base.t_actes WHERE code LIKE ANY (liste_acte)) + WHERE a_liste_acte = '1' + ; + + IF _module_pmsimco = '1' THEN + UPDATE w_budget_cle_rule + SET liste_ghm_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_ghm WHERE code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1'; + END IF; + + UPDATE w_budget_cle_rule + SET liste_ghm_activite_id = (SELECT base.cti_group_array3(ghm_id) FROM activite.t_ghm_c WHERE ghm_code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_budget_cle_rule + SET liste_sauf_ghm_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_ghm WHERE code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1'; + END IF; + + UPDATE w_budget_cle_rule + SET liste_sauf_ghm_activite_id = (SELECT base.cti_group_array3(ghm_id) FROM activite.t_ghm_c WHERE ghm_code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_budget_cle_rule + SET liste_medecin_pmsi_id = ( + SELECT base.cti_group_array3(t_medecins_pmsi.oid) + FROM pmsi.t_medecins t_medecins_pmsi + JOIN base.t_medecins ON t_medecins_pmsi.medecin_reference_id = t_medecins.oid + WHERE t_medecins_pmsi.oid <> 0 AND t_medecins_pmsi.code <> '' AND t_medecins_pmsi.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' OR + t_medecins.oid <> 0 AND t_medecins.code <> '' AND t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + WHERE a_liste_medecin = '1'; + END IF; + + UPDATE w_budget_cle_rule + SET liste_medecin_activite_id = ( + SELECT base.cti_group_array3(t_medecins_administratifs.oid) + FROM activite.t_medecins_administratifs + JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + WHERE t_medecins_administratifs.oid <> 0 AND t_medecins_administratifs.code <> '' AND t_medecins_administratifs.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' OR + t_medecins.oid <> 0 AND t_medecins.code <> '' AND t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + WHERE a_liste_medecin = '1' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_budget_cle_rule + SET liste_specialite_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_specialites_medecin WHERE code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1'; + END IF; + + UPDATE w_budget_cle_rule + SET liste_specialite_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_specialites_medecin WHERE code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1' + ; + UPDATE w_budget_cle_rule + SET liste_type_sejour_id = (SELECT base.cti_group_array3(code) FROM activite.t_type_sejour WHERE code <> '' AND code LIKE ANY (liste_type_sejour)) + WHERE a_liste_type_sejour = '1' + ; + UPDATE w_budget_cle_rule + SET liste_service_id = (SELECT base.cti_group_array3(oid) FROM activite.t_services_facturation WHERE code LIKE ANY (liste_service)) + WHERE a_liste_service = '1' + ; + UPDATE w_budget_cle_rule + SET liste_uf_id = (SELECT base.cti_group_array3(oid) FROM activite.t_unites_fonctionnelles WHERE code LIKE ANY (liste_uf)) + WHERE a_liste_uf = '1' + ; + UPDATE w_budget_cle_rule + SET liste_activite_id = (SELECT base.cti_group_array3(oid) FROM activite.t_activites WHERE code LIKE ANY (liste_activite)) + WHERE a_liste_activite = '1' + ; + UPDATE w_budget_cle_rule + SET liste_rubrique_id = (SELECT base.cti_group_array3(oid) FROM activite.t_rubriques_facturation WHERE code LIKE ANY (liste_rubrique)) + WHERE a_liste_rubrique = '1' + ; + -- Association cles aux rubriques + + DROP TABLE IF EXISTS w_factures_rubriques; + CREATE TEMP TABLE w_factures_rubriques AS + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_c + JOIN w_budget_cle_rule_rubriques ON p_factures_lignes_c.rubrique_facturation_id = rule_rubrique_id + UNION + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_non_facturees_c + JOIN w_budget_cle_rule_rubriques ON p_factures_lignes_non_facturees_c.rubrique_facturation_id = rule_rubrique_id + ; + CREATE INDEX w_factures_rubriques_i1 ON w_factures_rubriques USING btree (no_facture); + + DROP TABLE IF EXISTS w_budget_cle_rubriques; + CREATE TEMP TABLE w_budget_cle_rubriques AS + + SELECT oid, base.cti_group_array3(rubrique_rule_id) AS rubrique_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS rubrique_rule_id + FROM w_factures_rubriques + JOIN activite.p_factures ON w_factures_rubriques.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + ) subview + GROUP BY 1; + ALTER TABLE w_budget_cle_rubriques ADD CONSTRAINT w_budget_cle_rubriques_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET rubrique_liste_rule_id = w_budget_cle_rubriques.rubrique_liste_rule_id + FROM w_budget_cle_rubriques + WHERE w_budget_cle_rubriques.oid = w_sejours_rss.oid; + + + -- Association cles aux actes + + DROP TABLE IF EXISTS w_factures_actes; + CREATE TEMP TABLE w_factures_actes AS + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_h + JOIN w_budget_cle_rule_actes_base ON p_factures_lignes_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4' + UNION + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_non_facturees_h + JOIN w_budget_cle_rule_actes_base ON p_factures_lignes_non_facturees_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4'; + CREATE INDEX w_factures_actes_i1 ON w_factures_actes USING btree (no_facture); + + DROP TABLE IF EXISTS w_budget_cle_actes; + IF _module_pmsimco = '1' THEN + CREATE TEMP TABLE w_budget_cle_actes AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM pmsi.p_rss_actes + JOIN w_sejours_rss ON p_rss_actes.rss_id = w_sejours_rss.rss_id + JOIN w_budget_cle_rule_actes_pmsi ON p_rss_actes.acte_id = rule_acte_id + UNION + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + + ) subview + GROUP BY 1; + ELSE + CREATE TEMP TABLE w_budget_cle_actes AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + + ) subview + GROUP BY 1; + END IF; + ALTER TABLE w_budget_cle_actes ADD CONSTRAINT w_budget_cle_actes_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET acte_liste_rule_id = w_budget_cle_actes.acte_liste_rule_id + FROM w_budget_cle_actes + WHERE w_budget_cle_actes.oid = w_sejours_rss.oid; + + -- Diagnostics + IF _module_pmsimco = '1' THEN + DROP TABLE IF EXISTS w_budget_cle_diagnostics; + CREATE TEMP TABLE w_budget_cle_diagnostics AS + SELECT + w_sejours_rss.oid, base.cti_group_array3(w_budget_cle_rule.oid) AS diagnostic_associe_liste_rule_id + FROM pmsi.p_rss_diagnostics + JOIN w_budget_cle_rule ON type_diagnostic_rss IN ('DA', 'DS') AND diagnostic_id = ANY (liste_diagnostic_associe_id) + JOIN w_sejours_rss ON p_rss_diagnostics.rss_id = w_sejours_rss.rss_id + WHERE a_liste_diagnostic_associe <> '0' + GROUP BY 1; + ALTER TABLE w_budget_cle_diagnostics ADD CONSTRAINT w_budget_cle_diagnostics_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET diagnostic_associe_liste_rule_id = w_budget_cle_diagnostics.diagnostic_associe_liste_rule_id + FROM w_budget_cle_diagnostics + WHERE w_budget_cle_diagnostics.oid = w_sejours_rss.oid; + END IF; + + -- Mise à jour des cles venant des données du PMSI + DROP TABLE IF EXISTS w_sejours_budget_cle; + CREATE TEMP TABLE w_sejours_budget_cle AS + SELECT w_sejours_rss.oid, + MIN(priorite)+1 AS budget_cle_priorite, + (MIN(ARRAY[priorite,w_budget_cle_rule.budget_cle_id]))[2] AS budget_cle_id + FROM w_sejours_rss + JOIN w_budget_cle_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_medecin = '0' OR medecin_rss_id = ANY (liste_medecin_pmsi_id)) AND + (a_liste_type_sejour = '0') AND + (a_liste_service = '0') AND + (a_liste_uf = '0') AND + (a_liste_activite = '0') AND + (a_liste_specialite = '0' OR specialite_rss_id = ANY (liste_specialite_pmsi_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_budget_cle_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_budget_cle_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_ghm = '0' OR ghm_pmsi_id = ANY (liste_ghm_pmsi_id)) AND + (a_liste_sauf_ghm = '0' OR ghm_pmsi_id <> ALL (liste_sauf_ghm_pmsi_id)) AND + (a_liste_rubrique = '0') + WHERE w_sejours_rss.rss_id <> 0 + GROUP BY 1 + ORDER BY 1; + UPDATE w_sejours_rss SET + budget_cle_id = w_sejours_budget_cle.budget_cle_id, + budget_cle_priorite = w_sejours_budget_cle.budget_cle_priorite + FROM w_sejours_budget_cle + WHERE w_sejours_rss.oid = w_sejours_budget_cle.oid; + -- Mise à jour des cles venant des données d'activite + DROP TABLE IF EXISTS w_sejours_budget_cle; + CREATE TEMP TABLE w_sejours_budget_cle AS + SELECT w_sejours_rss.oid, + MIN(priorite) AS budget_cle_priorite, + (MIN(ARRAY[priorite,w_budget_cle_rule.budget_cle_id]))[2] AS budget_cle_id + FROM w_sejours_rss + JOIN w_budget_cle_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_type_sejour = '0' OR type_sejour = ANY (liste_type_sejour_id)) AND + (a_liste_service = '0' OR service_facturation_id = ANY (liste_service_id)) AND + (a_liste_uf = '0' OR uf_id = ANY (liste_uf_id)) AND + (a_liste_activite = '0' OR activite_id = ANY (liste_activite_id)) AND + (a_liste_medecin = '0' OR medecin_sejour_id = ANY (liste_medecin_activite_id)) AND + (a_liste_specialite = '0' OR specialite_sejour_id = ANY (liste_specialite_activite_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_budget_cle_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_budget_cle_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_rubrique = '0' OR w_budget_cle_rule.oid = ANY(rubrique_liste_rule_id)) AND + (a_liste_ghm = '0' OR ghm_activite_id = ANY (liste_ghm_activite_id)) AND + (a_liste_sauf_ghm = '0' OR ghm_activite_id <> ALL (liste_sauf_ghm_activite_id)) + WHERE w_sejours_rss.sejour_id <> 0 + GROUP BY 1 + ORDER BY 1; + UPDATE w_sejours_rss SET + budget_cle_id = w_sejours_budget_cle.budget_cle_id, + budget_cle_priorite = w_sejours_budget_cle.budget_cle_priorite + FROM w_sejours_budget_cle + WHERE w_sejours_rss.oid = w_sejours_budget_cle.oid AND + (w_sejours_rss.budget_cle_priorite > w_sejours_budget_cle.budget_cle_priorite OR w_sejours_rss.budget_cle_priorite = 0); + + + TRUNCATE activite.p_sejours_budget_cle; + + UPDATE activite.p_sejours_budget_cle + SET + budget_cle_id = w_sejours_rss.budget_cle_id + FROM w_sejours_rss + WHERE p_sejours_budget_cle.sejour_id = w_sejours_rss.sejour_id AND + w_sejours_rss.lieu_id = w_sejours_rss.lieu_sortie_id AND + p_sejours_budget_cle.sejour_id <> 0 AND + ( + p_sejours_budget_cle.budget_cle_id IS DISTINCT FROM w_sejours_rss.budget_cle_id + ); + + + INSERT INTO activite.p_sejours_budget_cle (sejour_id, budget_cle_id) + SELECT sejour_id, MIN(budget_cle_id) + FROM w_sejours_rss + WHERE sejour_id <> 0 AND + w_sejours_rss.lieu_id = w_sejours_rss.lieu_sortie_id AND + sejour_id NOT IN (SELECT sejour_id FROM activite.p_sejours_budget_cle) + GROUP BY 1 + ; + + ANALYSE activite.p_sejours_budget_cle + ; + + UPDATE activite.p_mouvements_sejour + SET budget_cle_id = w_sejours_rss.budget_cle_id + FROM w_sejours_rss + WHERE p_mouvements_sejour.no_sejour = w_sejours_rss.no_sejour AND + p_mouvements_sejour.lieu_id = w_sejours_rss.lieu_id AND + p_mouvements_sejour.budget_cle_id IS DISTINCT FROM w_sejours_rss.budget_cle_id + ; + + ANALYSE activite.p_mouvements_sejour + ; + + + UPDATE activite.p_factures_lignes_c + SET budget_cle_id = w_sejours_rss.budget_cle_id + FROM w_sejours_rss + JOIN activite.p_factures ON w_sejours_rss.no_sejour = p_factures.no_sejour + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + p_factures_lignes_c.lieu_id = w_sejours_rss.lieu_id AND + p_factures_lignes_c.budget_cle_id IS DISTINCT FROM w_sejours_rss.budget_cle_id + ; + + ANALYSE activite.p_factures_lignes_c + ; + + + RETURN 'OK' ; + + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_budget_generate_keys.yaml b/db/schema2/functions/cti_budget_generate_keys.yaml new file mode 100644 index 0000000..b29b677 --- /dev/null +++ b/db/schema2/functions/cti_budget_generate_keys.yaml @@ -0,0 +1,2552 @@ +return: text +lang: plpgsql +src: | + DECLARE + + + BEGIN + + -- Oid 0 = Non renseigné + INSERT INTO activite.t_budget_cle (oid, code, texte, texte_court) + SELECT + 0, '*NR', 'N/R', 'N/R' + WHERE 0 NOT IN (SELECT oid FROM activite.t_budget_cle) + ; + + -- Clés automatiques ? + IF NOT EXISTS (SELECT * FROM base.t_budget WHERE cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ','CTICLSUF','CTIFILMEDSEJ') LIMIT 1) THEN + return 'Aucune génération automatique'; + END IF; + + DROP TABLE IF EXISTS w_budget_settings; + CREATE TEMP TABLE w_budget_settings AS + SELECT (MAX(ARRAY[date_fin::text,oid::text]))[2]::bigint AS current_budget_id, + (MAX(ARRAY[date_fin::text,cle_budgetaire_activite]))[2]::text AS cle_budgetaire_activite, + (MAX(ARRAY[date_fin::text,classe_code]))[2]::text AS classe_code, + MAX(date_fin) AS date_fin, + NULL::date AS date_debut + FROM base.t_budget + ; + UPDATE w_budget_settings + SET date_debut = t_budget.date_debut + FROM base.t_budget + WHERE t_budget.oid = current_budget_id + ; + + -- Génération des clés selon les médecins + IF EXISTS (SELECT * FROM w_budget_settings WHERE cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ')) THEN + + DROP TABLE IF EXISTS w_medecins_utilises; + CREATE TEMP TABLE w_medecins_utilises AS + SELECT t_medecins.code, t_medecins.nom, t_medecins.prenom, t_medecins.specialite_id + FROM base.t_medecins + JOIN activite.t_medecins_administratifs ON t_medecins.oid = t_medecins_administratifs.medecin_id + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ') + JOIN activite.p_sejours ON t_medecins_administratifs.oid = medecin_sejour_id AND date_sortie >= date(t_budget.date_debut - interval '1 year') + WHERE t_medecins.oid <> 0 AND t_medecins.code <> '' + GROUP BY 1,2,3,4 + ; + + INSERT INTO w_medecins_utilises + SELECT t_medecins.code, t_medecins.nom, t_medecins.prenom, t_medecins.specialite_id + FROM base.t_medecins + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ') + JOIN activite.t_budget_cle ON t_medecins.code = t_budget_cle.code + WHERE t_medecins.oid <> 0 AND t_medecins.code <> '' AND + t_medecins.code NOT IN (SELECT code FROM w_medecins_utilises) AND + t_medecins.specialite_id <> 0 + GROUP BY 1,2,3,4 + ; + + INSERT INTO w_medecins_utilises + SELECT t_medecins.code, t_medecins.nom, t_medecins.prenom, t_medecins.specialite_id + FROM base.t_medecins + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ') + JOIN activite.t_budget_cle ON t_medecins.code = t_budget_cle.code + WHERE t_medecins.oid <> 0 AND t_medecins.code <> '' AND + t_medecins.code NOT IN (SELECT code FROM w_medecins_utilises) + GROUP BY 1,2,3,4 + ; + + -- divers 1 + INSERT INTO w_medecins_utilises(code, nom, prenom, specialite_id) + SELECT + '*SP'||t_specialites_medecin.code||'-1', + 'MEDECIN 1 EN '||t_specialites_medecin.texte|| ' ('||t_specialites_medecin.code|| ')', + '', + w_medecins_utilises.specialite_id + FROM w_medecins_utilises + JOIN base.t_specialites_medecin ON specialite_id = t_specialites_medecin.oid + JOIN w_budget_settings ON cle_budgetaire_activite = 'CTIMEDSEJ' + WHERE specialite_id <> 0 + GROUP BY 1,2,3,4 + ; + -- divers 2 + INSERT INTO w_medecins_utilises(code, nom, prenom, specialite_id) + SELECT + '*SP'||t_specialites_medecin.code||'-2', + 'MEDECIN 2 EN '||t_specialites_medecin.texte|| ' ('||t_specialites_medecin.code|| ')', + '', + w_medecins_utilises.specialite_id + FROM w_medecins_utilises + JOIN base.t_specialites_medecin ON specialite_id = t_specialites_medecin.oid + JOIN w_budget_settings ON cle_budgetaire_activite = 'CTIMEDSEJ' + WHERE specialite_id <> 0 + GROUP BY 1,2,3,4 + ; + -- clés globales + INSERT INTO w_medecins_utilises(code, nom, prenom, specialite_id) + SELECT + '*GLOBAL', + 'Budget Total', + '', + 0::bigint AS specialite_id + FROM w_budget_settings + WHERE cle_budgetaire_activite = 'CTIMEDSEJ' + ; + + + -- Clés = Médecins séjours + INSERT INTO activite.t_budget_cle (code, texte, texte_court) + SELECT + t_medecins.code, MAX(t_medecins.nom || ' ' || t_medecins.prenom), MAX(t_medecins.nom || ' ' || t_medecins.prenom) + FROM w_medecins_utilises t_medecins + WHERE t_medecins.code NOT IN (SELECT code FROM activite.t_budget_cle) + GROUP BY 1 + ; + + + UPDATE activite.t_budget_cle SET + texte = subview.texte, + texte_court = subview.texte + FROM + ( + SELECT code, MAX(nom || ' ' || prenom) AS texte + FROM w_medecins_utilises + GROUP BY 1 + ) subview + WHERE t_budget_cle.code = subview.code AND + t_budget_cle.texte IS DISTINCT FROM subview.texte + ; + + -- Règles standard Médecins séjours + INSERT INTO activite.t_budget_cle_rule (code, texte, budget_cle_id, priorite, liste_medecin) + SELECT + ''::text, + MAX(t_budget_cle.texte) || ' - Standard', + MAX(t_budget_cle.oid), + 5000, + '(R) ' || t_budget_cle.code + FROM activite.t_budget_cle + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ') + JOIN base.t_medecins ON t_budget_cle.code = t_medecins.code + LEFT JOIN activite.t_budget_cle_rule ON + t_budget_cle.oid = budget_cle_id AND + priorite = 5000 + WHERE t_budget_cle.oid <> 0 AND + t_budget_cle.code NOT LIKE '*SP%' AND + t_budget_cle.code NOT LIKE '*GL%' AND + t_budget_cle_rule.oid IS NULL + GROUP BY 5; + + UPDATE activite.t_budget_cle_rule SET + texte = subview.texte, + liste_medecin = subview.liste_medecin + FROM + ( + SELECT + t_budget_cle_rule.oid, + MAX(t_budget_cle.texte) || ' - Standard' AS texte, + '(R) ' || MAX(t_budget_cle.code) AS liste_medecin + FROM activite.t_budget_cle + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ') + JOIN activite.t_budget_cle_rule ON + t_budget_cle.oid = budget_cle_id AND + priorite = 5000 + GROUP BY 1 + HAVING + t_budget_cle_rule.texte <> (MAX(t_budget_cle.texte) || ' - Standard') OR + t_budget_cle_rule.liste_medecin <> ('(R) ' || MAX(t_budget_cle.code)) + ) subview + WHERE t_budget_cle_rule.oid = subview.oid + ; + + -- Suppression des clés pour des spécialités non utilisées (médecins réaffectés) + DELETE FROM activite.t_budget_cle + WHERE code LIKE '*SP%' AND + substr(code,4,length(code)-5) NOT IN + (SELECT t_specialites_medecin.code + FROM w_medecins_utilises + JOIN base.t_specialites_medecin ON specialite_id = t_specialites_medecin.oid + WHERE t_specialites_medecin.code IS NOT NULL) AND + t_budget_cle.oid NOT IN (SELECT budget_cle_id FROM activite.t_budget_cle_budget WHERE budget <> 0) + ; + + DELETE FROM activite.t_budget_cle_budget + WHERE budget = 0 AND budget_cle_id NOT IN (SELECT oid FROM activite.t_budget_cle) + ; + + -- Règles pour médecins divers (non prévus dans budget) + -- En attente + + -- Classes par spécialité + INSERT INTO activite.t_classes( + code, texte, table_id, is_cti, sequence + ) + SELECT 'CTI_SPE_BUDG', 'Spécialités budgétaires', t_listes_tables.oid, '1', 1 + FROM activite.t_listes_tables + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ') + LEFT JOIN activite.t_classes ON t_classes.table_id = t_listes_tables.oid + LEFT JOIN activite.t_classes t_classes_s1 ON t_classes_s1.table_id = t_listes_tables.oid AND t_classes_s1.sequence = 1 + WHERE t_listes_tables.code = 'BUDGETCLE' AND + t_classes.oid IS NULL AND + t_classes_s1.oid IS NULL + GROUP BY 3 + ; + + -- Classe à alimenter + DROP TABLE IF EXISTS w_classes; + CREATE TEMP TABLE w_classes AS + SELECT + COALESCE((MIN(ARRAY[CASE WHEN t_classes.code = 'CTI_SPE_BUDG' THEN '1' WHEN t_classes.sequence = 1 THEN '2' ELSE '9' END, t_classes.oid::text]))[2]::bigint,0) AS oid + FROM activite.t_classes + JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'BUDGETCLE' + ; + + DELETE FROM w_classes + WHERE oid = 0 + ; + + DROP TABLE IF EXISTS w_sections; + CREATE TEMP TABLE w_sections AS + SELECT + t_budget_cle.oid AS budget_cle_id, + (MAX(ARRAY[to_char(t_medecins.specialite_id,'FM0000000000000'),CASE WHEN t_medecins.specialite_id <> 0 THEN t_specialites_medecin.code ELSE '****' END]))[2]::text AS section_code, + (MAX(ARRAY[to_char(t_medecins.specialite_id,'FM0000000000000'),CASE WHEN t_medecins.specialite_id <> 0 THEN t_specialites_medecin.texte ELSE 'SANS SPECIALITE' END]))[2]::text AS section_texte, + 0::bigint AS section_id + FROM w_medecins_utilises t_medecins + JOIN base.t_specialites_medecin ON t_medecins.specialite_id = t_specialites_medecin.oid + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ','MEDSEJ') + JOIN activite.t_budget_cle ON t_budget_cle.code = t_medecins.code + GROUP BY 1 + ; + + INSERT INTO activite.t_classes_sections (code, classe_id, texte) + SELECT section_code, w_classes.oid, MAX(section_texte) + FROM w_classes + JOIN w_sections ON 1=1 + LEFT JOIN activite.t_classes_sections ON classe_id = w_classes.oid AND + t_classes_sections.code = w_sections.section_code + WHERE w_classes.oid <> 0 AND t_classes_sections.oid IS NULL + GROUP BY 1,2 + ORDER BY 1 + ; + + + UPDATE w_sections + SET section_id = t_classes_sections.oid + FROM activite.t_classes_sections + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + WHERE section_code = t_classes_sections.code + ; + + UPDATE activite.t_classes_sections + SET texte = subview.section_texte + FROM + ( + SELECT section_id, section_code, w_classes.oid, MAX(section_texte) AS section_texte + FROM w_classes + JOIN w_sections ON 1=1 + GROUP BY 1,2,3 + ORDER BY 1 + ) subview + WHERE t_classes_sections.oid = section_id AND + t_classes_sections.texte IS DISTINCT FROM subview.section_texte + ; + + WITH subview AS + (SELECT section_id, to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + ) + INSERT INTO activite.t_classes_sections_elements + SELECT section_id, budget_cle_id + FROM w_sections + WHERE budget_cle_id NOT IN (SELECT to_id FROM subview) + ; + + WITH subview AS + (SELECT t_classes_sections_elements.section_id AS section_id, w_sections.section_id AS new_section_id, to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + JOIN w_sections ON w_sections.budget_cle_id = t_classes_sections_elements.to_id + ) + UPDATE activite.t_classes_sections_elements + SET section_id = subview.new_section_id + FROM subview + WHERE subview.to_id = t_classes_sections_elements.to_id AND + subview.section_id = t_classes_sections_elements.section_id AND + t_classes_sections_elements.section_id <> subview.new_section_id + ; + + -- Suppression des enfants avec clé budgétaire supprimée + DELETE + FROM activite.t_classes_sections_elements + USING activite.t_classes_sections + JOIN w_classes ON classe_id = w_classes.oid + WHERE section_id = t_classes_sections.oid AND + to_id NOT IN (SELECT oid FROM activite.t_budget_cle) + ; + + -- Suppression des clés sans enfant + DELETE FROM activite.t_classes_sections + WHERE oid IN + ( + SELECT t_classes_sections.oid + FROM activite.t_classes_sections + JOIN w_classes ON classe_id = w_classes.oid + WHERE t_classes_sections.oid NOT IN (SELECT section_id FROM activite.t_classes_sections_elements) + ) + ; + + PERFORM base.cti_update_classes('activite', 't_budget_cle', 'BUDGETCLE',''); + PERFORM activite.cti_reorganize_indicateur_condition(); + + END IF; + + -- Génération selon classes d'UF + IF EXISTS (SELECT * FROM w_budget_settings WHERE cle_budgetaire_activite IN ('CTICLSUF')) THEN + + + + DROP TABLE IF EXISTS w_budget_cle; + CREATE TEMP TABLE w_budget_cle AS + SELECT cle_code, cle_texte, base.cti_group_concat_without_sep(uf_code || ' ') AS cle_rule + FROM + ( + SELECT t_classes_sections.code AS cle_code, t_classes_sections.texte AS cle_texte, t_unites_fonctionnelles.code AS uf_code + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN activite.t_classes ON t_classes_sections.classe_id = t_classes.oid + JOIN activite.t_unites_fonctionnelles ON t_classes_sections_elements.to_id = t_unites_fonctionnelles.oid + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTICLSUF') + WHERE t_classes.code = t_budget.classe_code + ORDER BY 1,2,3 + ) subview + GROUP BY 1,2 + ORDER BY 1 + ; + + INSERT INTO activite.t_budget_cle (code, texte, texte_court) + SELECT cle_code, cle_texte, cle_texte + FROM w_budget_cle + WHERE cle_code NOT IN (SELECT code FROM activite.t_budget_cle WHERE code IS NOT NULL) + ; + + + INSERT INTO activite.t_budget_cle_rule (code, texte, budget_cle_id, priorite, liste_uf) + SELECT + t_budget_cle.code || '-STD', + MAX(t_budget_cle.texte) || ' - Standard', + MAX(t_budget_cle.oid), + 5000, + cle_rule + FROM activite.t_budget_cle + JOIN w_budget_cle ON t_budget_cle.code = w_budget_cle.cle_code + LEFT JOIN activite.t_budget_cle_rule ON + t_budget_cle.oid = budget_cle_id AND + priorite = 5000 + WHERE t_budget_cle.oid <> 0 AND + t_budget_cle_rule.oid IS NULL + GROUP BY 1,5; + + UPDATE activite.t_budget_cle_rule SET + code = subview.code, + texte = subview.texte, + liste_uf = subview.cle_rule + FROM + ( + SELECT + t_budget_cle_rule.oid, + MAX(t_budget_cle.code) || '-STD' AS code, + MAX(t_budget_cle.texte) || ' - Standard' AS texte, + MAX(cle_rule) AS cle_rule + FROM activite.t_budget_cle + JOIN w_budget_cle ON t_budget_cle.code = w_budget_cle.cle_code + JOIN activite.t_budget_cle_rule ON + t_budget_cle.oid = budget_cle_id AND + priorite = 5000 + GROUP BY 1 + HAVING + t_budget_cle_rule.code <> (MAX(t_budget_cle.code) || '-STD') OR + t_budget_cle_rule.texte <> (MAX(t_budget_cle.texte) || ' - Standard') OR + t_budget_cle_rule.liste_uf <> MAX(cle_rule) + ) subview + WHERE t_budget_cle_rule.oid = subview.oid + ; + + DELETE + FROM activite.t_budget_cle_rule + WHERE priorite = 5000 AND + code NOT IN (SELECT cle_code || '-STD' FROM w_budget_cle) + ; + + + + + END IF; + + -- Génération des clés filiere et medecin + IF EXISTS (SELECT * FROM w_budget_settings WHERE cle_budgetaire_activite IN ('CTIFILMEDSEJ')) THEN + DROP TABLE IF EXISTS w_cle_utilise; + CREATE TEMP TABLE w_cle_utilise AS + SELECT + t_medecins_administratifs.medecin_id, + t_medecins.code AS medecin_code, + t_medecins.nom || ' ' || t_medecins.prenom AS medecin_texte, + t_medecins.specialite_id, + filiere_soin_principale_id AS filiere_soin_id, + t_filiere_soin.code AS filiere_soin_code, + t_filiere_soin.texte AS filiere_soin_texte, + replace(t_filiere_soin.code,'.','')||'#'||t_medecins.code AS cle_budget_code, + t_filiere_soin.code || ' ' || t_filiere_soin.texte||'. Medecin: '||t_medecins.nom || ' ' || t_medecins.prenom AS cle_budget_texte + FROM activite.p_sejours + JOIN activite.t_medecins_administratifs ON t_medecins_administratifs.oid = medecin_sejour_id + JOIN activite.t_filiere_soin ON filiere_soin_principale_id = t_filiere_soin.oid + JOIN base.t_medecins ON t_medecins.oid = t_medecins_administratifs.medecin_id + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIFILMEDSEJ') + WHERE p_sejours.date_sortie >= date(t_budget.date_debut - interval '1 year') AND + medecin_sejour_id > 0 AND + t_medecins_administratifs.medecin_id > 0 AND + t_medecins.code <> '' AND + filiere_soin_principale_id > 0 + GROUP BY 1,2,3,4,5,6,7,8,9 + ; + + + -- divers 1 + INSERT INTO w_cle_utilise(medecin_id, medecin_code, medecin_texte, filiere_soin_id, filiere_soin_code, filiere_soin_texte, cle_budget_code, cle_budget_texte) + SELECT + 0::bigint AS medecin_id, + '*FS'||filiere_soin_code||'-1', + 'MEDECIN 1 EN '||filiere_soin_texte|| ' ('||filiere_soin_code|| ')', + filiere_soin_id, + filiere_soin_code, + filiere_soin_texte, + replace(filiere_soin_code,'.','')||'#*DIV1' AS cle_budget_code, + filiere_soin_code || ' ' || filiere_soin_texte||'. Medecin: Divers 1' AS cle_budget_texte + FROM w_cle_utilise + JOIN w_budget_settings ON cle_budgetaire_activite = 'CTIFILMEDSEJ' + GROUP BY 1,2,3,4,5,6,7,8 + ; + -- divers 2 + INSERT INTO w_cle_utilise(medecin_id, medecin_code, medecin_texte, filiere_soin_id, filiere_soin_code, filiere_soin_texte, cle_budget_code, cle_budget_texte) + SELECT + 0::bigint AS medecin_id, + '*FS'||filiere_soin_code||'-1', + 'MEDECIN 1 EN '||filiere_soin_texte|| ' ('||filiere_soin_code|| ')', + filiere_soin_id, + filiere_soin_code, + filiere_soin_texte, + replace(filiere_soin_code,'.','')||'#*DIV2' AS cle_budget_code, + filiere_soin_code || ' ' || filiere_soin_texte||'. Medecin: Divers 2' AS cle_budget_texte + FROM w_cle_utilise + JOIN w_budget_settings ON cle_budgetaire_activite = 'CTIFILMEDSEJ' + GROUP BY 1,2,3,4,5,6,7,8 + ; + + INSERT INTO w_cle_utilise(medecin_id, medecin_code, medecin_texte, filiere_soin_id, filiere_soin_code, filiere_soin_texte, cle_budget_code, cle_budget_texte) + SELECT + 0::bigint AS medecin_id, + '*ZZ', + 'AUTRES', + 0::bigint AS filiere_soin_id, + ''::text AS filiere_soin_code, + ''::text AS filiere_soin_texte, + '*ZZ' AS cle_budget_code, + 'AUTRES' AS cle_budget_texte + FROM w_cle_utilise + JOIN w_budget_settings ON cle_budgetaire_activite = 'CTIFILMEDSEJ' + GROUP BY 1,2,3,4,5,6,7,8 + ; + -- clés globales + INSERT INTO w_cle_utilise(medecin_id, medecin_code, medecin_texte, filiere_soin_id, filiere_soin_code, filiere_soin_texte, cle_budget_code, cle_budget_texte) + SELECT + 0::bigint AS medecin_id, + '*GLOBAL', + 'Budget Total', + 0::bigint AS filiere_soin_id, + ''::text AS filiere_soin_code, + ''::text AS filiere_soin_texte, + '*GLOBAL'::text AS cle_budget_code, + 'Budget Total'::text AS cle_budget_texte + FROM w_budget_settings + WHERE cle_budgetaire_activite = 'CTIFILMEDSEJ' + ; + + + -- Clés = Médecins séjours + INSERT INTO activite.t_budget_cle (code, texte, texte_court) + SELECT + cle_budget_code, cle_budget_texte, cle_budget_texte + FROM w_cle_utilise + WHERE cle_budget_code NOT IN (SELECT code FROM activite.t_budget_cle) + ; + + + UPDATE activite.t_budget_cle SET + texte = w_cle_utilise.cle_budget_texte, + texte_court = w_cle_utilise.cle_budget_texte + FROM w_cle_utilise + WHERE t_budget_cle.code = w_cle_utilise.cle_budget_code AND + t_budget_cle.texte IS DISTINCT FROM w_cle_utilise.cle_budget_texte + ; + + + -- Règles standard Médecins séjours + DROP TABLE IF EXISTS w_filiere_soin_rule; + CREATE TEMP TABLE w_filiere_soin_rule AS + SELECT + t_filiere_soin_rule.oid AS filiere_soin_rule_id, + row_number() OVER (PARTITION BY filiere_soin_id ORDER BY priorite) AS rule_sequence, + filiere_soin_id, + CASE WHEN priorite <> 0 THEN priorite WHEN liste_diagnostic_principal <> '' THEN 90000 ELSE 999999 END AS priorite, + CASE WHEN liste_specialite <> '' THEN '1' ELSE '0' END AS a_liste_specialite, + string_to_array(translate(liste_specialite,'*,','% '),' ') AS liste_specialite, + NULL::bigint[] AS liste_specialite_id , + CASE WHEN liste_medecin <> '' THEN '1' ELSE '0' END AS a_liste_medecin, + string_to_array(CASE WHEN liste_medecin NOT LIKE '%**%' THEN translate(liste_medecin,'*,','% ') ELSE liste_medecin END,' ') AS liste_medecin, + NULL::bigint[] AS liste_medecin_id + FROM activite.t_filiere_soin_rule t_filiere_soin_rule + JOIN activite.t_filiere_soin t_filiere_soin ON filiere_soin_id = t_filiere_soin.oid + ORDER BY filiere_soin_id, priorite + ; + + UPDATE w_filiere_soin_rule + SET liste_specialite_id = (SELECT base.cti_group_array3(oid) FROM base.t_specialites_medecin WHERE code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1' + ; + + UPDATE w_filiere_soin_rule + SET liste_medecin_id = ( + SELECT base.cti_group_array3(t_medecins_administratifs.oid) + FROM activite.t_medecins_administratifs + LEFT JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + WHERE ( + t_medecins_administratifs.oid <> 0 AND + t_medecins_administratifs.code <> '' AND + t_medecins_administratifs.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' + ) OR + ( + t_medecins_administratifs.oid IN + ( + SELECT + to_id + FROM activite.t_classes + JOIN activite.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + WHERE '[CLASSE:'||t_classes.code||':'||t_classes_sections.code||']' = ANY(liste_medecin) + ) + ) OR + ( + t_medecins.oid <> 0 AND + t_medecins.code <> '' AND + t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + ) + WHERE a_liste_medecin = '1' + ; + + DROP TABLE IF EXISTS w_budget_cle_rule; + CREATE TEMP TABLE w_budget_cle_rule AS + SELECT + t_budget_cle.code || '-' || rule_sequence::text AS code, + t_budget_cle.texte || ' (auto)' AS texte, + t_budget_cle.oid AS budget_cle_id, + t_filiere_soin_rule.priorite, + t_filiere_soin_rule.liste_diagnostic_principal, + t_filiere_soin_rule.liste_diagnostic_relie, + t_filiere_soin_rule.liste_diagnostic_associe, + t_filiere_soin_rule.liste_acte, + t_filiere_soin_rule.liste_ghm, + ''::text AS liste_specialite, + array_to_string(base.cti_array_accum(DISTINCT t_medecins_administratifs.code),' ') AS liste_medecin, + t_filiere_soin_rule.liste_finess, + t_filiere_soin_rule.liste_service, + t_filiere_soin_rule.liste_rubrique, + t_filiere_soin_rule.liste_sauf_ghm, + t_filiere_soin_rule.liste_activite, + t_filiere_soin_rule.liste_type_sejour, + GREATEST(liste_unite_fonctionnelle_entree,t_filiere_soin_rule.liste_unite_fonctionnelle) AS liste_uf + FROM activite.t_budget_cle + JOIN w_cle_utilise ON t_budget_cle.code = cle_budget_code + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIFILMEDSEJ') + JOIN activite.t_filiere_soin_rule ON w_cle_utilise.filiere_soin_id = t_filiere_soin_rule.filiere_soin_id + JOIN activite.t_medecins_administratifs ON + w_cle_utilise.medecin_id <> 0 AND + w_cle_utilise.medecin_id = t_medecins_administratifs.medecin_id + JOIN w_filiere_soin_rule ON + t_filiere_soin_rule.oid = w_filiere_soin_rule.filiere_soin_rule_id AND + (a_liste_medecin = '0' OR t_medecins_administratifs.oid = ANY (liste_medecin_id)) AND + (a_liste_specialite = '0' OR w_cle_utilise.specialite_id = ANY (liste_specialite_id)) + WHERE cle_budget_code NOT LIKE '%*DIV%' + GROUP BY 1,2,3,4,5,6,7,8,9,10,12,13,14,15,16,17,18 + ; + + + INSERT INTO w_budget_cle_rule + SELECT + t_budget_cle.code AS code, + t_budget_cle.texte || ' (auto)' AS texte, + t_budget_cle.oid AS budget_cle_id, + 99999 AS priorite, + ''::text AS liste_diagnostic_principal, + ''::text AS liste_diagnostic_relie, + ''::text AS liste_diagnostic_associe, + ''::text AS liste_acte, + ''::text AS liste_ghm, + ''::text AS liste_specialite, + ''::text AS liste_medecin, + ''::text AS liste_finess, + ''::text AS liste_service, + ''::text AS liste_rubrique, + ''::text AS liste_sauf_ghm, + ''::text AS liste_activite, + ''::text AS liste_type_sejour, + ''::text AS liste_uf + FROM activite.t_budget_cle + WHERE t_budget_cle.code = '*ZZ' + ; + DELETE FROM w_budget_cle_rule + USING + ( + SELECT + budget_cle_id, + liste_diagnostic_principal, + liste_diagnostic_relie, + liste_diagnostic_associe, + liste_acte, + liste_ghm, + liste_specialite, + liste_medecin, + liste_finess, + liste_service, + liste_rubrique, + liste_sauf_ghm, + liste_activite, + liste_type_sejour, + liste_uf, + (MIN(ARRAY[liste_specialite,priorite::text]))[2]::bigint AS keep_priorite + FROM w_budget_cle_rule + WHERE liste_medecin <> '' + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15 + HAVING count(*) > 1 + ) subview + WHERE + w_budget_cle_rule.budget_cle_id = subview.budget_cle_id AND + w_budget_cle_rule.liste_diagnostic_principal = subview.liste_diagnostic_principal AND + w_budget_cle_rule.liste_diagnostic_relie = subview.liste_diagnostic_relie AND + w_budget_cle_rule.liste_diagnostic_associe = subview.liste_diagnostic_associe AND + w_budget_cle_rule.liste_acte = subview.liste_acte AND + w_budget_cle_rule.liste_ghm = subview.liste_ghm AND + w_budget_cle_rule.liste_specialite = subview.liste_specialite AND + w_budget_cle_rule.liste_medecin = subview.liste_medecin AND + w_budget_cle_rule.liste_finess = subview.liste_finess AND + w_budget_cle_rule.liste_service = subview.liste_service AND + w_budget_cle_rule.liste_rubrique = subview.liste_rubrique AND + w_budget_cle_rule.liste_sauf_ghm = subview.liste_sauf_ghm AND + w_budget_cle_rule.liste_activite = subview.liste_activite AND + w_budget_cle_rule.liste_type_sejour = subview.liste_type_sejour AND + w_budget_cle_rule.liste_uf = subview.liste_uf AND + w_budget_cle_rule.priorite <> keep_priorite + ; + + + + INSERT INTO activite.t_budget_cle_rule ( + code, + texte, + budget_cle_id, + priorite, + liste_diagnostic_principal, + liste_diagnostic_relie, + liste_diagnostic_associe, + liste_acte, + liste_ghm, + liste_specialite, + liste_medecin, + liste_finess, + liste_service, + liste_rubrique, + liste_sauf_ghm, + liste_activite, + liste_type_sejour, + liste_uf + ) + SELECT + code, + texte, + budget_cle_id, + priorite, + liste_diagnostic_principal, + liste_diagnostic_relie, + liste_diagnostic_associe, + liste_acte, + liste_ghm, + liste_specialite, + liste_medecin, + liste_finess, + liste_service, + liste_rubrique, + liste_sauf_ghm, + liste_activite, + liste_type_sejour, + liste_uf + FROM w_budget_cle_rule + WHERE w_budget_cle_rule.code NOT IN (SELECT code FROM activite.t_budget_cle_rule) + ; + + UPDATE activite.t_budget_cle_rule SET + texte = w_budget_cle_rule.texte, + budget_cle_id = w_budget_cle_rule.budget_cle_id, + priorite = w_budget_cle_rule.priorite, + liste_diagnostic_principal = w_budget_cle_rule.liste_diagnostic_principal, + liste_diagnostic_relie = w_budget_cle_rule.liste_diagnostic_relie, + liste_diagnostic_associe = w_budget_cle_rule.liste_diagnostic_associe, + liste_acte = w_budget_cle_rule.liste_acte, + liste_ghm = w_budget_cle_rule.liste_ghm, + liste_specialite = w_budget_cle_rule.liste_specialite, + liste_medecin = w_budget_cle_rule.liste_medecin, + liste_finess = w_budget_cle_rule.liste_finess, + liste_service = w_budget_cle_rule.liste_service, + liste_rubrique = w_budget_cle_rule.liste_rubrique, + liste_sauf_ghm = w_budget_cle_rule.liste_sauf_ghm, + liste_activite = w_budget_cle_rule.liste_activite, + liste_type_sejour = w_budget_cle_rule.liste_type_sejour, + liste_uf = w_budget_cle_rule.liste_uf + FROM w_budget_cle_rule + WHERE t_budget_cle_rule.code = w_budget_cle_rule.code AND + ( + t_budget_cle_rule.texte IS DISTINCT FROM w_budget_cle_rule.texte OR + t_budget_cle_rule.budget_cle_id IS DISTINCT FROM w_budget_cle_rule.budget_cle_id OR + t_budget_cle_rule.priorite IS DISTINCT FROM w_budget_cle_rule.priorite OR + t_budget_cle_rule.liste_diagnostic_principal IS DISTINCT FROM w_budget_cle_rule.liste_diagnostic_principal OR + t_budget_cle_rule.liste_diagnostic_relie IS DISTINCT FROM w_budget_cle_rule.liste_diagnostic_relie OR + t_budget_cle_rule.liste_diagnostic_associe IS DISTINCT FROM w_budget_cle_rule.liste_diagnostic_associe OR + t_budget_cle_rule.liste_acte IS DISTINCT FROM w_budget_cle_rule.liste_acte OR + t_budget_cle_rule.liste_ghm IS DISTINCT FROM w_budget_cle_rule.liste_ghm OR + t_budget_cle_rule.liste_specialite IS DISTINCT FROM w_budget_cle_rule.liste_specialite OR + t_budget_cle_rule.liste_medecin IS DISTINCT FROM w_budget_cle_rule.liste_medecin OR + t_budget_cle_rule.liste_finess IS DISTINCT FROM w_budget_cle_rule.liste_finess OR + t_budget_cle_rule.liste_service IS DISTINCT FROM w_budget_cle_rule.liste_service OR + t_budget_cle_rule.liste_rubrique IS DISTINCT FROM w_budget_cle_rule.liste_rubrique OR + t_budget_cle_rule.liste_sauf_ghm IS DISTINCT FROM w_budget_cle_rule.liste_sauf_ghm OR + t_budget_cle_rule.liste_activite IS DISTINCT FROM w_budget_cle_rule.liste_activite OR + t_budget_cle_rule.liste_type_sejour IS DISTINCT FROM w_budget_cle_rule.liste_type_sejour OR + t_budget_cle_rule.liste_uf IS DISTINCT FROM w_budget_cle_rule.liste_uf + ) + ; + + DELETE FROM activite.t_budget_cle_rule + WHERE code <> '*ZZ' AND + code NOT IN (SELECT code FROM w_budget_cle_rule) AND + priorite IN (SELECT priorite FROM w_budget_cle_rule) + ; + + + + -- Classes par filière + INSERT INTO activite.t_classes( + code, texte, table_id, is_cti, sequence + ) + SELECT 'CTI_FIL_BUDG', 'Budget par filière', t_listes_tables.oid, '1', 1 + FROM activite.t_listes_tables + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIFILMEDSEJ') + LEFT JOIN activite.t_classes ON t_classes.table_id = t_listes_tables.oid + LEFT JOIN activite.t_classes t_classes_s1 ON t_classes_s1.table_id = t_listes_tables.oid AND t_classes_s1.sequence = 1 + WHERE t_listes_tables.code = 'BUDGETCLE' AND + t_classes.oid IS NULL AND + t_classes_s1.oid IS NULL + GROUP BY 3 + ; + + -- Classe à alimenter + DROP TABLE IF EXISTS w_classes; + CREATE TEMP TABLE w_classes AS + SELECT + COALESCE((MIN(ARRAY[CASE WHEN t_classes.code = 'CTI_FIL_BUDG' THEN '1' WHEN t_classes.sequence = 1 THEN '2' ELSE '9' END, t_classes.oid::text]))[2]::bigint,0) AS oid + FROM activite.t_classes + JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'BUDGETCLE' + ; + + DELETE FROM w_classes + WHERE oid = 0 + ; + + DROP TABLE IF EXISTS w_sections; + CREATE TEMP TABLE w_sections AS + SELECT + t_budget_cle.oid AS budget_cle_id, + MAX(CASE WHEN filiere_soin_id <> 0 THEN filiere_soin_code ELSE '****' END) AS section_code, + MAX(CASE WHEN filiere_soin_id <> 0 THEN filiere_soin_texte ELSE 'SANS FILIERE' END) AS section_texte, + 0::bigint AS section_id + FROM w_cle_utilise + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIFILMEDSEJ') + JOIN activite.t_budget_cle ON t_budget_cle.code = w_cle_utilise.cle_budget_code + GROUP BY 1 + ; + + INSERT INTO activite.t_classes_sections (code, classe_id, texte) + SELECT section_code, w_classes.oid, MAX(section_texte) + FROM w_classes + JOIN w_sections ON 1=1 + LEFT JOIN activite.t_classes_sections ON classe_id = w_classes.oid AND + t_classes_sections.code = w_sections.section_code + WHERE w_classes.oid <> 0 AND t_classes_sections.oid IS NULL + GROUP BY 1,2 + ORDER BY 1 + ; + + + UPDATE w_sections + SET section_id = t_classes_sections.oid + FROM activite.t_classes_sections + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + WHERE section_code = t_classes_sections.code + ; + + UPDATE activite.t_classes_sections + SET texte = subview.section_texte + FROM + ( + SELECT section_id, section_code, w_classes.oid, MAX(section_texte) AS section_texte + FROM w_classes + JOIN w_sections ON 1=1 + GROUP BY 1,2,3 + ORDER BY 1 + ) subview + WHERE t_classes_sections.oid = section_id AND + t_classes_sections.texte IS DISTINCT FROM subview.section_texte + ; + + WITH subview AS + (SELECT section_id, to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + ) + INSERT INTO activite.t_classes_sections_elements + SELECT section_id, budget_cle_id + FROM w_sections + WHERE budget_cle_id NOT IN (SELECT to_id FROM subview) + ; + + WITH subview AS + (SELECT t_classes_sections_elements.section_id AS section_id, w_sections.section_id AS new_section_id, to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + JOIN w_sections ON w_sections.budget_cle_id = t_classes_sections_elements.to_id + ) + UPDATE activite.t_classes_sections_elements + SET section_id = subview.new_section_id + FROM subview + WHERE subview.to_id = t_classes_sections_elements.to_id AND + subview.section_id = t_classes_sections_elements.section_id AND + t_classes_sections_elements.section_id <> subview.new_section_id + ; + + -- Suppression des enfants avec clé budgétaire supprimée + DELETE + FROM activite.t_classes_sections_elements + USING activite.t_classes_sections + JOIN w_classes ON classe_id = w_classes.oid + WHERE section_id = t_classes_sections.oid AND + to_id NOT IN (SELECT oid FROM activite.t_budget_cle) + ; + + -- Suppression des clés sans enfant + DELETE FROM activite.t_classes_sections + WHERE oid IN + ( + SELECT t_classes_sections.oid + FROM activite.t_classes_sections + JOIN w_classes ON classe_id = w_classes.oid + WHERE t_classes_sections.oid NOT IN (SELECT section_id FROM activite.t_classes_sections_elements) + ) + ; + + + + -- Classes par médecin + INSERT INTO activite.t_classes( + code, texte, table_id, is_cti, sequence + ) + SELECT 'CTI_MED_BUDG', 'Budget par médecin', t_listes_tables.oid, '1', 2 + FROM activite.t_listes_tables + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIFILMEDSEJ') + LEFT JOIN activite.t_classes ON t_classes.table_id = t_listes_tables.oid + LEFT JOIN activite.t_classes t_classes_s1 ON t_classes_s1.table_id = t_listes_tables.oid AND t_classes_s1.sequence = 2 + WHERE t_listes_tables.code = 'BUDGETCLE' AND + t_classes_s1.oid IS NULL + GROUP BY 3 + ; + + -- Classe à alimenter + DROP TABLE IF EXISTS w_classes; + CREATE TEMP TABLE w_classes AS + SELECT + COALESCE((MIN(ARRAY[CASE WHEN t_classes.code = 'CTI_MED_BUDG' THEN '1' WHEN t_classes.sequence = 2 THEN '2' ELSE '9' END, t_classes.oid::text]))[2]::bigint,0) AS oid + FROM activite.t_classes + JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'BUDGETCLE' + ; + + DELETE FROM w_classes + WHERE oid = 0 + ; + + DROP TABLE IF EXISTS w_sections; + CREATE TEMP TABLE w_sections AS + SELECT + t_budget_cle.oid AS budget_cle_id, + MAX(CASE WHEN medecin_id <> 0 THEN medecin_code ELSE '****' END) AS section_code, + MAX(CASE WHEN medecin_id <> 0 THEN medecin_texte ELSE 'SANS FILIERE' END) AS section_texte, + 0::bigint AS section_id + FROM w_cle_utilise + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIFILMEDSEJ') + JOIN activite.t_budget_cle ON t_budget_cle.code = w_cle_utilise.cle_budget_code + WHERE medecin_id <> 0 + GROUP BY 1 + ; + + INSERT INTO activite.t_classes_sections (code, classe_id, texte) + SELECT section_code, w_classes.oid, MAX(section_texte) + FROM w_classes + JOIN w_sections ON 1=1 + LEFT JOIN activite.t_classes_sections ON classe_id = w_classes.oid AND + t_classes_sections.code = w_sections.section_code + WHERE w_classes.oid <> 0 AND t_classes_sections.oid IS NULL + GROUP BY 1,2 + ORDER BY 1 + ; + + + UPDATE w_sections + SET section_id = t_classes_sections.oid + FROM activite.t_classes_sections + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + WHERE section_code = t_classes_sections.code + ; + + UPDATE activite.t_classes_sections + SET texte = subview.section_texte + FROM + ( + SELECT section_id, section_code, w_classes.oid, MAX(section_texte) AS section_texte + FROM w_classes + JOIN w_sections ON 1=1 + GROUP BY 1,2,3 + ORDER BY 1 + ) subview + WHERE t_classes_sections.oid = section_id AND + t_classes_sections.texte IS DISTINCT FROM subview.section_texte + ; + + WITH subview AS + (SELECT section_id, to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + ) + INSERT INTO activite.t_classes_sections_elements + SELECT section_id, budget_cle_id + FROM w_sections + WHERE budget_cle_id NOT IN (SELECT to_id FROM subview) + ; + + WITH subview AS + (SELECT t_classes_sections_elements.section_id AS section_id, w_sections.section_id AS new_section_id, to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN w_classes ON t_classes_sections.classe_id = w_classes.oid + JOIN w_sections ON w_sections.budget_cle_id = t_classes_sections_elements.to_id + ) + UPDATE activite.t_classes_sections_elements + SET section_id = subview.new_section_id + FROM subview + WHERE subview.to_id = t_classes_sections_elements.to_id AND + subview.section_id = t_classes_sections_elements.section_id AND + t_classes_sections_elements.section_id <> subview.new_section_id + ; + + -- Suppression des enfants avec clé budgétaire supprimée + DELETE + FROM activite.t_classes_sections_elements + USING activite.t_classes_sections + JOIN w_classes ON classe_id = w_classes.oid + WHERE section_id = t_classes_sections.oid AND + to_id NOT IN (SELECT oid FROM activite.t_budget_cle) + ; + + -- Suppression des clés sans enfant + DELETE FROM activite.t_classes_sections + WHERE oid IN + ( + SELECT t_classes_sections.oid + FROM activite.t_classes_sections + JOIN w_classes ON classe_id = w_classes.oid + WHERE t_classes_sections.oid NOT IN (SELECT section_id FROM activite.t_classes_sections_elements) + ) + ; + + PERFORM base.cti_update_classes('activite', 't_budget_cle', 'BUDGETCLE',''); + PERFORM activite.cti_reorganize_indicateur_condition(); + + END IF; + + PERFORM activite.cti_reorganize_indicateur_condition() + ; + + -- Génération des indicateurs de budget (CTI) + IF EXISTS (SELECT * FROM w_budget_settings WHERE cle_budgetaire_activite IN ('CTIMEDSEJ')) THEN + DROP SEQUENCE IF EXISTS w_indicateur_budget_sequence; + CREATE TEMP SEQUENCE w_indicateur_budget_sequence; + + DROP TABLE IF EXISTS w_indicateurs_budget; + CREATE TEMP TABLE w_indicateurs_budget AS + SELECT + 'CTI_BUD_MT_RUBMED_HOAM_MCO_FAVA' AS code, 'Budget. CA Séjour Facturé + Valorisé MCO [HOSP + AMBU]' AS texte,'CA Séjour F+V [H+A]' AS entete, 'CA Séjour Facturé + Valorisé MCO [HOSP + AMBU]' AS entete_etendue, '#' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] AND type_sejour IN (''1'',''2'') AND forme_activite_section_code[2] in (''11'',''12'',''13'',''19'') THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTSEJMCO'::text AS indicateur_budget_code, + 'CA Séjour MCO (HC+HJ)'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_RUBMED_HOAM_MCO_FAVA#1' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_EMC_HOAM_MCO' AS code, 'Budget. EMC [Hosp + ambu] MCO' AS texte,'EMC MCO' AS entete, 'EMC hosp et ambu MCO' AS entete_etendue, '#' AS output_format, + 'OCCUPATION' AS table_name, + 'CASE WHEN type_sejour IN (''1'',''2'') AND forme_activite_section_code[2] IN (''11'',''12'',''13'',''19'') THEN equivalent_malade_complet ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '' AS dimension_date_2, + '' AS dimension_date_3, + '' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'EMCMCO'::text AS indicateur_budget_code, + 'EMC MCO (HC+HJ)'::text AS indicateur_budget_texte, + 'CTI_BUD_EMC_HOAM_MCO' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_GHSM_HOAM_MCO' AS code, 'Budget. GHS Moyen [Hosp + ambu] MCO' AS texte,'GHS Moyen' AS entete, 'GHS Moyen hosp et ambu' AS entete_etendue, '#' AS output_format, + '*CALC' AS table_name, + 'base.cti_division([1], [2])' AS column_name, + 'SUM' AS total_function, + '' AS dimension_date_1, + '' AS dimension_date_2, + '' AS dimension_date_3, + '' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'GHSMMCO'::text AS indicateur_budget_code, + 'GHS Moyen MCO (HC+HJ)'::text AS indicateur_budget_texte, + 'CTI_BUD_GHSM_HOAM_MCO' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_JOU_HOAM_MCO' AS code, 'Budget. Nombre de jours [Hosp + ambu] MCO' AS texte,'Jours MCO' AS entete, 'Jours hosp et ambu MCO' AS entete_etendue, '#' AS output_format, + 'OCCUPATION' AS table_name, + 'CASE WHEN type_sejour IN (''1'',''2'') AND forme_activite_section_code[2] IN (''11'',''12'',''13'',''19'') THEN nb_jours_f + nb_ambulatoires ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '' AS dimension_date_2, + '' AS dimension_date_3, + '' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'JOUMCO'::text AS indicateur_budget_code, + 'Jours MCO (HC+HJ)'::text AS indicateur_budget_texte, + 'CTI_BUD_JOU_HOAM_MCO' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_REA_FAVA' AS code, 'Budget. CA REA Facturé + Valorisé' AS texte,'Montant REA F+V' AS entete, 'Montant REA facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''REA'') THEN montant_facture+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTREA'::text AS indicateur_budget_code, + 'CA REA'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_REA_FAVA#1' AS indicateur_code, + '02'::text AS rapport_chapitre_code, + 'CA Suppléments'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_STF_FAVA' AS code, 'Budget. CA STF Facturé + Valorisé' AS texte,'Montant STF F+V' AS entete, 'Montant STF facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''STF'') THEN montant_facture+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTSTF'::text AS indicateur_budget_code, + 'CA STF'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_STF_FAVA#1' AS indicateur_code, + '02'::text AS rapport_chapitre_code, + 'CA Suppléments'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_SRC_FAVA' AS code, 'Budget. CA SRC Facturé + Valorisé' AS texte,'Montant SRC F+V' AS entete, 'Montant SRC facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''SRC'', ''SSC'') THEN montant_facture+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTSRC'::text AS indicateur_budget_code, + 'CA SRC'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_SRC_FAVA#1' AS indicateur_code, + '02'::text AS rapport_chapitre_code, + 'CA Suppléments'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_NNN_FAVA' AS code, 'Budget. CA NNN Facturé + Valorisé' AS texte,'Montant NNN F+V' AS entete, 'Montant NNN facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''NN1'',''NN3'',''NN2'') THEN montant_facture+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTNNN'::text AS indicateur_budget_code, + 'CA NN'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_NNN_FAVA#1' AS indicateur_code, + '02'::text AS rapport_chapitre_code, + 'CA Suppléments'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_RUBMED_CHM_MCO_FAVA' AS code, 'Budget. CA Chimio Facturé + Valorisé' AS texte,'Montant CHM F+V' AS entete, 'Montant Chimio facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] AND type_sejour = ''5'' AND forme_activite_code = ''132'' THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTSEJCHM'::text AS indicateur_budget_code, + 'CA Chimio'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_RUBMED_CHM_MCO_FAVA#1' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_RUBMED_DIA_MCO_FAVA' AS code, 'Budget. CA Dialyse Facturé + Valorisé' AS texte,'Montant DIA F+V' AS entete, 'Montant Dialyse facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] AND type_sejour = ''5'' AND forme_activite_code = ''131'' THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTSEJDIA'::text AS indicateur_budget_code, + 'CA Dialyse'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_RUBMED_DIA_MCO_FAVA#1' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_EST_FAVA' AS code, 'Budget. CA Esthétique Facturé + Valorisé' AS texte,'Montant ESTH F+V' AS entete, 'Montant Esthétique facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_T2A_R] AND forme_activite_section_code[1] = ''1'' AND forme_activite_section_code[2] = ''14'' THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTEST'::text AS indicateur_budget_code, + 'CA Esthétique'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_EST_FAVA#1' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_RUBMED_SSR_FAVA' AS code, 'Budget. CA SSR Facturé + Valorisé' AS texte,'Montant SSR F+V' AS entete, 'Montant SSR facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] AND forme_activite_section_code[1] = ''2'' THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTSEJSSR'::text AS indicateur_budget_code, + 'CA SSR'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_RUBMED_SSR_FAVA#1' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_JOU_SSR' AS code, 'Budget. Nombre de jours SSR' AS texte,'Jours SSR' AS entete, 'Jours SSR' AS entete_etendue, '#' AS output_format, + 'OCCUPATION' AS table_name, + 'CASE WHEN forme_activite_section_code[1] = ''3'' THEN nb_jours_f + nb_ambulatoires ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '' AS dimension_date_2, + '' AS dimension_date_3, + '' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'JOUSSR'::text AS indicateur_budget_code, + 'Jours SSR'::text AS indicateur_budget_texte, + 'CTI_BUD_JOU_SSR' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_RUBMED_PSY_FAVA' AS code, 'Budget. CA PSY Facturé + Valorisé' AS texte,'Montant PSY F+V' AS entete, 'Montant PSY facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] AND forme_activite_section_code[1] = ''3'' THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTSEJPSY'::text AS indicateur_budget_code, + 'CA PSY'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_RUBMED_PSY_FAVA#1' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_JOU_PSY' AS code, 'Budget. Nombre de jours PSY' AS texte,'Jours PSY' AS entete, 'Jours PSY' AS entete_etendue, '#' AS output_format, + 'OCCUPATION' AS table_name, + 'CASE WHEN forme_activite_section_code[1] = ''3'' THEN nb_jours_f + nb_ambulatoires ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '' AS dimension_date_2, + '' AS dimension_date_3, + '' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'JOUPSY'::text AS indicateur_budget_code, + 'Jours PSY'::text AS indicateur_budget_texte, + 'CTI_BUD_JOU_PSY' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_RUBMED_HAD_FAVA' AS code, 'Budget. CA HAD Facturé + Valorisé' AS texte,'Montant HAD F+V' AS entete, 'Montant HAD facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_RUBMED_R] AND forme_activite_section_code[1] = ''4'' THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTHAD'::text AS indicateur_budget_code, + 'CA HAD'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_RUBMED_HAD_FAVA#1' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_IVG_FAVA' AS code, 'Budget. CA IVG Facturé + Valorisé' AS texte,'Montant IVG F+V' AS entete, 'Montant IVG facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_IVG_R] THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTIVG'::text AS indicateur_budget_code, + 'CA IVG'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_IVG_FAVA#1' AS indicateur_code, + '01'::text AS rapport_chapitre_code, + 'CA Séjour'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_CPC_FAVA' AS code, 'Budget. CA CPC Facturé + Valorisé' AS texte,'Montant CPC F+V' AS entete, 'Montant CPC facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SHO_R] THEN montant_facture + montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTCPC'::text AS indicateur_budget_code, + 'CA CPC'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_CPC_FAVA#1' AS indicateur_code, + '03'::text AS rapport_chapitre_code, + 'CA Chambres particulières'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_FSE_FAVA' AS code, 'Budget. CA FSE Facturé + Valorisé' AS texte,'Montant FSE F+V' AS entete, 'Montant FSE facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN rubrique_facturation_id IN [LISTE:CTI_SE_R] THEN montant_facture + montant_encours ELSE NULL END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTFSE'::text AS indicateur_budget_code, + 'CA SE'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_FSE_FAVA#1' AS indicateur_code, + '04'::text AS rapport_chapitre_code, + 'Externes et divers'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_ATU_FAVA' AS code, 'Budget. CA ATU Facturé + Valorisé' AS texte,'Montant ATU F+V' AS entete, 'Montant ATU facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''ATU'',''FPU'') THEN montant_facture+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTATU'::text AS indicateur_budget_code, + 'CA ATU'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_ATU_FAVA#1' AS indicateur_code, + '04'::text AS rapport_chapitre_code, + 'Externes et divers'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_FFM_FAVA' AS code, 'Budget. CA FFM Facturé + Valorisé' AS texte,'Montant FFM F+V' AS entete, 'Montant FFM facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''FFM'') THEN montant_facture+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTFFM'::text AS indicateur_budget_code, + 'CA FFM'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_FFM_FAVA#1' AS indicateur_code, + '04'::text AS rapport_chapitre_code, + 'Externes et divers'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_FSD_FAVA' AS code, 'Budget. CA FSD Facturé + Valorisé' AS texte,'Montant FSD F+V' AS entete, 'Montant FSD facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''FSD'') THEN montant_comptabilise+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTFSD'::text AS indicateur_budget_code, + 'CA FSD'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_FSD_FAVA#1' AS indicateur_code, + '04'::text AS rapport_chapitre_code, + 'Externes et divers'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_ETI_FAVA' AS code, 'Budget. CA ETI Facturé + Valorisé' AS texte,'Montant ETI F+V' AS entete, 'Montant ETI facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''ETI'') THEN montant_facture+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTETI'::text AS indicateur_budget_code, + 'CA ETI'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_ETI_FAVA#1' AS indicateur_code, + '04'::text AS rapport_chapitre_code, + 'Externes et divers'::text AS rapport_chapitre_texte + UNION + SELECT + 'CTI_BUD_MT_EMI_FAVA' AS code, 'Budget. CA EMI Facturé + Valorisé' AS texte,'Montant EMI F+V' AS entete, 'Montant EMI facturé + valorisé' AS entete_etendue, '#E' AS output_format, + 'FACTURATION_CLINIQUE' AS table_name, + 'CASE WHEN prestation_code IN (''EMI'') THEN montant_facture+montant_encours ELSE 0 END' AS column_name, + 'SUM' AS total_function, + '1' AS dimension_date_1, + '2' AS dimension_date_2, + '3' AS dimension_date_3, + '4' AS dimension_date_4, + '' AS dimension_date_5, + '1' AS is_cti, + nextval('w_indicateur_budget_sequence'::regclass) AS numero, + 'MTEMI'::text AS indicateur_budget_code, + 'CA EMI'::text AS indicateur_budget_texte, + 'CTI_BUD_MT_EMI_FAVA#1' AS indicateur_code, + '04'::text AS rapport_chapitre_code, + 'Externes et divers'::text AS rapport_chapitre_texte + ; + + INSERT INTO activite.t_indicateurs ( + code, texte, entete, entete_etendue, output_format, + table_name, column_name, total_function, + dimension_date_1, dimension_date_2, dimension_date_3, dimension_date_4, dimension_date_5, + is_cti, is_hide + ) + SELECT code, texte, entete, entete_etendue, output_format, + table_name, column_name, total_function, + dimension_date_1, dimension_date_2, dimension_date_3, dimension_date_4, dimension_date_5, + is_cti, '0' AS is_hide + FROM w_indicateurs_budget + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ') + WHERE code NOT IN (SELECT code FROM activite.t_indicateurs WHERE code IS NOT NULL) + ; + + UPDATE activite.t_indicateurs SET + texte = w_indicateurs_budget.texte, + entete = w_indicateurs_budget.entete, + entete_etendue = w_indicateurs_budget.entete_etendue, + table_name = w_indicateurs_budget.table_name, + column_name = w_indicateurs_budget.column_name, + dimension_date_1 = w_indicateurs_budget.dimension_date_1, + dimension_date_2 = w_indicateurs_budget.dimension_date_2, + dimension_date_3 = w_indicateurs_budget.dimension_date_3, + dimension_date_4 = w_indicateurs_budget.dimension_date_4, + dimension_date_5 = w_indicateurs_budget.dimension_date_5 + FROM w_indicateurs_budget + WHERE t_indicateurs.code = w_indicateurs_budget.code AND + ( + t_indicateurs.texte IS DISTINCT FROM w_indicateurs_budget.texte OR + t_indicateurs.entete IS DISTINCT FROM w_indicateurs_budget.entete OR + t_indicateurs.entete_etendue IS DISTINCT FROM w_indicateurs_budget.entete_etendue OR + t_indicateurs.table_name IS DISTINCT FROM w_indicateurs_budget.table_name OR + t_indicateurs.column_name IS DISTINCT FROM w_indicateurs_budget.column_name OR + t_indicateurs.dimension_date_1 IS DISTINCT FROM w_indicateurs_budget.dimension_date_1 OR + t_indicateurs.dimension_date_2 IS DISTINCT FROM w_indicateurs_budget.dimension_date_2 OR + t_indicateurs.dimension_date_3 IS DISTINCT FROM w_indicateurs_budget.dimension_date_3 OR + t_indicateurs.dimension_date_4 IS DISTINCT FROM w_indicateurs_budget.dimension_date_4 OR + t_indicateurs.dimension_date_5 IS DISTINCT FROM w_indicateurs_budget.dimension_date_5 + ) + ; + + + PERFORM base.cti_reorganize_indicateurs('activite') + ; + + -- Indicateurs calculés + UPDATE activite.t_indicateurs + SET indicateur_associe_1_id = t_indicateurs_associe.oid + FROM activite.t_indicateurs t_indicateurs_associe + WHERE t_indicateurs.code = 'CTI_BUD_GHSM_HOAM_MCO' AND + t_indicateurs_associe.code = 'CTI_BUD_MT_RUBMED_HOAM_MCO_FAVA#1' + ; + + UPDATE activite.t_indicateurs + SET indicateur_associe_2_id = t_indicateurs_associe.oid + FROM activite.t_indicateurs t_indicateurs_associe + WHERE t_indicateurs.code = 'CTI_BUD_GHSM_HOAM_MCO' AND + t_indicateurs_associe.code = 'CTI_BUD_EMC_HOAM_MCO' + ; + + UPDATE base.t_budget_indicateur SET + code = to_char(w_indicateurs_budget.numero,'FM00') || w_indicateurs_budget.indicateur_budget_code, + texte = w_indicateurs_budget.indicateur_budget_texte, + indicateur_id = t_indicateurs.oid + FROM w_budget_settings t_budget, w_indicateurs_budget + JOIN activite.t_indicateurs ON w_indicateurs_budget.indicateur_code = t_indicateurs.code + WHERE t_budget_indicateur.budget_id = current_budget_id AND + t_budget.cle_budgetaire_activite IN ('CTIMEDSEJ') AND + substr(t_budget_indicateur.code,3) = w_indicateurs_budget.indicateur_budget_code AND + ( + t_budget_indicateur.code <> (to_char(w_indicateurs_budget.numero,'FM00') || w_indicateurs_budget.indicateur_budget_code) OR + t_budget_indicateur.texte <> w_indicateurs_budget.indicateur_budget_texte OR + t_budget_indicateur.indicateur_id <> t_indicateurs.oid + ) + ; + + INSERT INTO base.t_budget_indicateur (code, texte, budget_id, indicateur_id, indicateur_module, actif) + SELECT to_char(w_indicateurs_budget.numero,'FM00') || w_indicateurs_budget.indicateur_budget_code, + w_indicateurs_budget.indicateur_budget_texte, + t_budget.current_budget_id AS budget_id, + t_indicateurs.oid AS indicateur_id, + 'activite' AS indicateur_module, + '1' AS actif + FROM w_indicateurs_budget + JOIN activite.t_indicateurs ON w_indicateurs_budget.indicateur_code = t_indicateurs.code + JOIN w_budget_settings t_budget ON t_budget.cle_budgetaire_activite = 'CTIMEDSEJ' + LEFT JOIN base.t_budget_indicateur ON + t_budget_indicateur.budget_id = t_budget.current_budget_id AND + t_budget_indicateur.code = to_char(w_indicateurs_budget.numero,'FM00') || w_indicateurs_budget.indicateur_budget_code + WHERE t_budget_indicateur.oid IS NULL + ; + END IF; + + + -- Rapports Global + IF EXISTS (SELECT * FROM w_budget_settings WHERE cle_budgetaire_activite IN ('CTIMEDSEJ')) THEN + + INSERT INTO activite.t_rapports(code, texte, is_cti, is_essentiel, group_id) + SELECT 'CTI_BUDG_1', 'Suivi Budget (total)', '1', '1', 4 + WHERE 'CTI_BUDG_1' NOT IN (SELECT code FROM activite.t_rapports WHERE code IS NOT NULL) + ; + + DELETE FROM activite.t_rapports_rubriques + WHERE rapport_id IN (SELECT oid FROM activite.t_rapports WHERE code = 'CTI_BUDG_1') + ; + + DROP SEQUENCE IF EXISTS w_rapport_rubrique_sequence; + CREATE TEMP SEQUENCE w_rapport_rubrique_sequence; + + INSERT INTO activite.t_rapports_rubriques( + rapport_id, numero_rubrique, indicateur_id, entete_etendue, + row_height, padding, font_size, font_weight, border_thickness, color, background_color, + viewlink, viewlink_label, viewlink_param + ) + SELECT + t_rapports.oid AS rapport_id, + nextval('w_indicateur_budget_sequence'::regclass) AS numero_rubrique, + indicateur_id, entete_etendue, + row_height, padding, font_size, font_weight, border_thickness, color, background_color, + viewlink, viewlink_label, viewlink_param + FROM activite.t_rapports + JOIN + ( + SELECT + rapport_chapitre_code, + 0::bigint AS indicateurs_budget_numero, + MAX(rapport_chapitre_texte) AS entete_etendue, + MAX(t_indicateurs.oid) AS indicateur_id, + 26::integer AS row_height, + 0::integer AS padding, + 14::integer AS font_size, + 'bold'::text AS font_weight, + 2::integer AS border_thickness, + '0xc0392b'::text AS color, + '0xcccccc'::text AS background_color, + ''::text AS viewlink, + ''::text AS viewlink_label, + ''::text AS viewlink_param + FROM w_indicateurs_budget + JOIN activite.t_indicateurs ON t_indicateurs.code = 'CTI_SEP' + JOIN w_budget_settings ON 1=1 + JOIN base.t_budget_indicateur ON + t_budget_indicateur.code = (to_char(w_indicateurs_budget.numero,'FM00') || w_indicateurs_budget.indicateur_budget_code) AND + t_budget_indicateur.budget_id = current_budget_id + WHERE t_budget_indicateur.actif IS DISTINCT FROM '0' + GROUP BY 1 + UNION + SELECT + rapport_chapitre_code, + w_indicateurs_budget.numero, + indicateur_budget_texte AS entete_etendue, + t_indicateurs.oid AS indicateur_id, + 22::integer AS row_height, + 10::integer AS padding, + 12::integer AS font_size, + ''::text AS font_weight, + 0::integer AS border_thickness, + ''::text AS color, + ''::text AS background_color, + ''::text AS viewlink, + ''::text AS viewlink_label, + ''::text AS viewlink_param + FROM w_indicateurs_budget + JOIN activite.t_indicateurs ON w_indicateurs_budget.indicateur_code = t_indicateurs.code + JOIN w_budget_settings ON 1=1 + JOIN base.t_budget_indicateur ON + t_budget_indicateur.code = (to_char(w_indicateurs_budget.numero,'FM00') || w_indicateurs_budget.indicateur_budget_code) AND + t_budget_indicateur.budget_id = current_budget_id + WHERE t_budget_indicateur.actif IS DISTINCT FROM '0' + ORDER BY 1,2 + ) subview ON 1=1 + WHERE code = 'CTI_BUDG_1' + ; + + -- Détail par spécialité et médecin + + -- initialisation entete + DROP TABLE IF EXISTS w_rapports_detail; + CREATE TEMP TABLE w_rapports_detail AS + SELECT 'CTI_BUDG_2MCOD1'::text AS code, + 'Suivi Budget (détail MCO par spécialité)'::text AS texte, + 'Suivi Budget (détail MCO / spécialité)'::text AS label, + '1'::text AS is_cti, + '1'::text AS is_essentiel, + 4::bigint AS group_id, + 'ENTETE_ETENDUE|VAP101|VAP100|TDP100|BUP100|BTP100|VAP201|VAP200|TDP200|BUP200|BTP200|VAP301|VAP300|TDP300|BUP300|BTP300|VAP401|VAP400|TDP400|BUP400|BTP400'::text AS colonnes_essentiel, + 'VAP201:backgroundColor=0xdddddd|VAP200:backgroundColor=0xdddddd|TDP200:backgroundColor=0xdddddd|BUP200:backgroundColor=0xdddddd|BTP200:backgroundColor=0xdddddd|VAP401:backgroundColor=0xdddddd|VAP400:backgroundColor=0xdddddd|TDP400:backgroundColor=0xdddddd|BUP400:backgroundColor=0xdddddd|BTP400:backgroundColor=0xdddddd|'::text AS colonnes_essentiel_style, + Array['CA Séjour','EMC','GHS Moyen','Jours'] AS serie_entete, + 'CA Séjour'::text AS entete, + 'EMC'::text AS entete_2 + UNION + SELECT 'CTI_BUDG_2MCOD2'::text AS code, + 'Suivi Budget (détail MCO par médecin)'::text AS texte, + 'Suivi Budget (détail MCO / médecin)'::text AS label, + '1'::text AS is_cti, + '1'::text AS is_essentiel, + 4::bigint AS group_id, + 'ENTETE_ETENDUE|VAP101|VAP100|TDP100|BUP100|BTP100|VAP201|VAP200|TDP200|BUP200|BTP200|VAP301|VAP300|TDP300|BUP300|BTP300|VAP401|VAP400|TDP400|BUP400|BTP400'::text AS colonnes_essentiel, + 'VAP201:backgroundColor=0xdddddd|VAP200:backgroundColor=0xdddddd|TDP200:backgroundColor=0xdddddd|BUP200:backgroundColor=0xdddddd|BTP200:backgroundColor=0xdddddd|VAP401:backgroundColor=0xdddddd|VAP400:backgroundColor=0xdddddd|TDP400:backgroundColor=0xdddddd|BUP400:backgroundColor=0xdddddd|BTP400:backgroundColor=0xdddddd|'::text AS colonnes_essentiel_style, + Array['CA Séjour','EMC','GHS Moyen','Jours'] AS serie_entete, + 'CA Séjour'::text AS entete, + 'EMC'::text AS entete_2 + ; + + INSERT INTO activite.t_rapports( + code, + texte, + label, + is_cti, + is_essentiel, + group_id, + colonnes_essentiel, + colonnes_essentiel_style, + serie_entete, + entete, + entete_2) + SELECT code, + texte, + label, + is_cti, + is_essentiel, + group_id, + colonnes_essentiel, + colonnes_essentiel_style, + serie_entete, + entete, + entete_2 + FROM w_rapports_detail + WHERE code NOT IN (SELECT code FROM activite.t_rapports WHERE code IS NOT NULL) + ; + + UPDATE activite.t_rapports SET + texte = w_rapports_detail.texte, + label = w_rapports_detail.label, + is_cti = w_rapports_detail.is_cti, + is_essentiel = w_rapports_detail.is_essentiel, + group_id = w_rapports_detail.group_id, + colonnes_essentiel = w_rapports_detail.colonnes_essentiel, + colonnes_essentiel_style = w_rapports_detail.colonnes_essentiel_style, + serie_entete = w_rapports_detail.serie_entete, + entete = w_rapports_detail.entete, + entete_2 = w_rapports_detail.entete_2 + FROM w_rapports_detail + WHERE t_rapports.code = w_rapports_detail.code AND + ( + t_rapports.texte IS DISTINCT FROM w_rapports_detail.texte OR + t_rapports.label IS DISTINCT FROM w_rapports_detail.label OR + t_rapports.is_cti IS DISTINCT FROM w_rapports_detail.is_cti OR + t_rapports.is_essentiel IS DISTINCT FROM w_rapports_detail.is_essentiel OR + t_rapports.group_id IS DISTINCT FROM w_rapports_detail.group_id OR + t_rapports.colonnes_essentiel IS DISTINCT FROM w_rapports_detail.colonnes_essentiel OR + t_rapports.colonnes_essentiel_style IS DISTINCT FROM w_rapports_detail.colonnes_essentiel_style OR + t_rapports.serie_entete IS DISTINCT FROM w_rapports_detail.serie_entete OR + t_rapports.entete IS DISTINCT FROM w_rapports_detail.entete OR + t_rapports.entete_2 IS DISTINCT FROM w_rapports_detail.entete_2 + ) + ; + + DELETE FROM activite.t_rapports_rubriques + WHERE rapport_id IN ( + SELECT t_rapports.oid + FROM activite.t_rapports + JOIN w_rapports_detail ON t_rapports.code = w_rapports_detail.code + ) + ; + + + DROP SEQUENCE IF EXISTS w_rapport_rubrique_sequence; + CREATE TEMP SEQUENCE w_rapport_rubrique_sequence; + + + INSERT INTO activite.t_rapports_rubriques( + rapport_id, numero_rubrique, + indicateur_id, indicateur_associe_id, serie_indicateur_id, + picto_enabled, + picto_enabled_2, + positif_is_good, + positif_is_good_2, + serie_picto_enabled, + serie_positif_is_good, + indicateur_condition_id, + entete_etendue, + serie_entete_etendue, + row_height, padding, font_size, font_weight, border_thickness, color, background_color, + hide_on_zero_field, + viewlink, viewlink_label, viewlink_param + ) + SELECT + rapport_id, nextval('w_indicateur_budget_sequence'::regclass) AS numero_rubrique, + indicateur_id, indicateur_associe_id, serie_indicateur_id, + '1'::text AS picto_enabled, + '1'::text AS picto_enabled_2, + '1'::text AS positif_is_good, + '1'::text AS positif_is_good_2, + Array['1','1','1','1'] AS serie_picto_enabled, + Array['1','1','1','1'] AS serie_positif_is_good, + indicateur_condition_id, + entete_etendue, + array[entete_etendue] AS serie_entete_etendue, + row_height, padding, font_size, font_weight, border_thickness, color, background_color, + CASE WHEN level <> '1' THEN '*SELF' ELSE '' END AS hide_on_zero_field, + viewlink, viewlink_label, viewlink_param + FROM + ( + SELECT + t_rapports.oid AS rapport_id, + MAX(t_indicateurs_1.oid) AS indicateur_id, + MAX(t_indicateurs_2.oid) AS indicateur_associe_id, + Array[MAX(t_indicateurs_1.oid),MAX(t_indicateurs_2.oid),MAX(t_indicateurs_3.oid),MAX(t_indicateurs_4.oid)] AS serie_indicateur_id, + CASE WHEN level <> '1' THEN Array[t_indicateur_condition.oid] ELSE NULL END AS indicateur_condition_id, + MAX(rubrique_texte) AS entete_etendue, + MAX(CASE WHEN level = '1' THEN 20 ELSE 18 END) AS row_height, + MAX(CASE WHEN level = '1' THEN 0 ELSE 10 END) AS padding, + MAX(CASE WHEN level = '1' THEN 12 ELSE 10 END) AS font_size, + MAX(CASE WHEN level = '1' THEN 'bold' ELSE '' END) AS font_weight, + MAX(CASE WHEN level = '1' THEN 2 ELSE 0 END) AS border_thickness, + MAX(CASE WHEN level = '1' THEN '0xc0392b' ELSE '' END) AS color, + MAX(CASE WHEN level = '1' THEN '0xcccccc' ELSE '' END) AS background_color, + MAX(''::text) AS viewlink, + MAX(''::text) AS viewlink_label, + MAX(''::text) AS viewlink_param, + section_code, + level, + cle_code + FROM w_indicateurs_budget + JOIN activite.t_rapports ON t_rapports.code = 'CTI_BUDG_2MCOD1' + LEFT JOIN activite.t_indicateurs t_indicateurs_1 ON w_indicateurs_budget.indicateur_code = t_indicateurs_1.code AND t_indicateurs_1.code = 'CTI_BUD_MT_RUBMED_HOAM_MCO_FAVA#1' + LEFT JOIN activite.t_indicateurs t_indicateurs_2 ON w_indicateurs_budget.indicateur_code = t_indicateurs_2.code AND t_indicateurs_2.code = 'CTI_BUD_EMC_HOAM_MCO' + LEFT JOIN activite.t_indicateurs t_indicateurs_3 ON w_indicateurs_budget.indicateur_code = t_indicateurs_3.code AND t_indicateurs_3.code = 'CTI_BUD_GHSM_HOAM_MCO' + LEFT JOIN activite.t_indicateurs t_indicateurs_4 ON w_indicateurs_budget.indicateur_code = t_indicateurs_4.code AND t_indicateurs_4.code = 'CTI_BUD_JOU_HOAM_MCO' + + JOIN + ( + SELECT + chr(1)::text AS section_code, + '1'::text AS level, + NULL::text AS cle_code, + 'TOTAL BUDGET MCO'::text AS rubrique_texte, + NULL::text AS condition_code + UNION + SELECT + t_classes_sections.code AS section_code, + '2'::text AS level, + NULL::text AS cle_code, + t_classes_sections.code || ' ' || t_classes_sections.texte AS rubrique_texte, + 'CTI_BUDGETCLE#LS'||to_char(t_classes.sequence,'FM00')||t_classes_sections.oid AS condition_code + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPE_BUDG' + WHERE t_classes_sections.code <> '****' + + UNION + SELECT + chr(255) AS section_code, + '2'::text AS level, + NULL::text AS cle_code, + 'SANS SPECIALITE' AS rubrique_texte, + 'CTI_BUDGETCLE#LS'||to_char(t_classes.sequence,'FM00')||t_classes_sections.oid AS condition_code + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPE_BUDG' + WHERE t_classes_sections.code = '****' + + ORDER BY 1,2,3 + ) subview ON 1=1 + LEFT JOIN activite.t_indicateur_condition ON t_indicateur_condition.code = subview.condition_code + GROUP BY + t_rapports.oid, + t_indicateur_condition.oid, + section_code, + level, + cle_code + ORDER BY section_code, + level, + cle_code + ) subview + ; + + + + DROP SEQUENCE IF EXISTS w_rapport_rubrique_sequence; + CREATE TEMP SEQUENCE w_rapport_rubrique_sequence; + + + INSERT INTO activite.t_rapports_rubriques( + rapport_id, numero_rubrique, + indicateur_id, indicateur_associe_id, serie_indicateur_id, + picto_enabled, + picto_enabled_2, + positif_is_good, + positif_is_good_2, + serie_picto_enabled, + serie_positif_is_good, + indicateur_condition_id, entete_etendue, + row_height, padding, font_size, font_weight, border_thickness, color, background_color, + hide_on_zero_field, + viewlink, viewlink_label, viewlink_param + ) + SELECT + rapport_id, nextval('w_indicateur_budget_sequence'::regclass) AS numero_rubrique, + indicateur_id, indicateur_associe_id, serie_indicateur_id, + '1'::text AS picto_enabled, + '1'::text AS picto_enabled_2, + '1'::text AS positif_is_good, + '1'::text AS positif_is_good_2, + Array['1','1','1','1'] AS serie_picto_enabled, + Array['1','1','1','1'] AS serie_positif_is_good, + indicateur_condition_id, entete_etendue, + row_height, padding, font_size, font_weight, border_thickness, color, background_color, + '*SELF' AS hide_on_zero_field, + viewlink, viewlink_label, viewlink_param + FROM + ( + SELECT + t_rapports.oid AS rapport_id, + MAX(t_indicateurs_1.oid) AS indicateur_id, + MAX(t_indicateurs_2.oid) AS indicateur_associe_id, + Array[MAX(t_indicateurs_1.oid),MAX(t_indicateurs_2.oid),MAX(t_indicateurs_3.oid),MAX(t_indicateurs_4.oid)] AS serie_indicateur_id, + Array[t_indicateur_condition.oid] AS indicateur_condition_id, + MAX(rubrique_texte) AS entete_etendue, + MAX(CASE WHEN level = '1' THEN 20 ELSE 18 END) AS row_height, + MAX(CASE WHEN level = '1' THEN 0 ELSE 10 END) AS padding, + MAX(CASE WHEN level = '1' THEN 12 ELSE 10 END) AS font_size, + MAX(CASE WHEN level = '1' THEN 'bold' ELSE '' END) AS font_weight, + MAX(CASE WHEN level = '1' THEN 2 ELSE 0 END) AS border_thickness, + MAX(CASE WHEN level = '1' THEN '0xc0392b' ELSE '' END) AS color, + MAX(CASE WHEN level = '1' THEN '0xcccccc' ELSE '' END) AS background_color, + MAX(''::text) AS viewlink, + MAX(''::text) AS viewlink_label, + MAX(''::text) AS viewlink_param, + section_code, + level, + cle_code + FROM w_indicateurs_budget + JOIN activite.t_rapports ON t_rapports.code = 'CTI_BUDG_2MCOD2' + LEFT JOIN activite.t_indicateurs t_indicateurs_1 ON w_indicateurs_budget.indicateur_code = t_indicateurs_1.code AND t_indicateurs_1.code = 'CTI_BUD_MT_RUBMED_HOAM_MCO_FAVA#1' + LEFT JOIN activite.t_indicateurs t_indicateurs_2 ON w_indicateurs_budget.indicateur_code = t_indicateurs_2.code AND t_indicateurs_2.code = 'CTI_BUD_EMC_HOAM_MCO' + LEFT JOIN activite.t_indicateurs t_indicateurs_3 ON w_indicateurs_budget.indicateur_code = t_indicateurs_3.code AND t_indicateurs_3.code = 'CTI_BUD_GHSM_HOAM_MCO' + LEFT JOIN activite.t_indicateurs t_indicateurs_4 ON w_indicateurs_budget.indicateur_code = t_indicateurs_4.code AND t_indicateurs_4.code = 'CTI_BUD_JOU_HOAM_MCO' + + JOIN + ( + SELECT + t_classes_sections.code AS section_code, + '1'::text AS level, + NULL::text AS cle_code, + t_classes_sections.code || ' ' || t_classes_sections.texte AS rubrique_texte, + 'CTI_BUDGETCLE#LS'||to_char(t_classes.sequence,'FM00')||t_classes_sections.oid AS condition_code + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPE_BUDG' + WHERE t_classes_sections.code <> '****' + UNION + SELECT + t_classes_sections.code AS section_code, + '2'::text AS level, + t_budget_cle.code AS cle_code, + t_budget_cle.code || ' ' || t_budget_cle.texte AS rubrique_texte, + 'CTI_BUDGETCLE#DT'||t_budget_cle.oid AS condition_code + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPE_BUDG' + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN activite.t_budget_cle ON to_id = t_budget_cle.oid + WHERE t_classes_sections.code <> '****' AND t_budget_cle.code NOT LIKE '*SP%' + UNION + SELECT + t_classes_sections.code AS section_code, + '3'::text AS level, + t_budget_cle.code AS cle_code, + t_budget_cle.texte AS rubrique_texte, + 'CTI_BUDGETCLE#DT'||t_budget_cle.oid AS condition_code + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPE_BUDG' + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN activite.t_budget_cle ON to_id = t_budget_cle.oid + WHERE t_classes_sections.code <> '****' AND t_budget_cle.code LIKE '*SP%' + UNION + SELECT + chr(255) AS section_code, + '1'::text AS level, + NULL::text AS cle_code, + 'SANS SPECIALITE' AS rubrique_texte, + 'CTI_BUDGETCLE#LS'||to_char(t_classes.sequence,'FM00')||t_classes_sections.oid AS condition_code + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPE_BUDG' + WHERE t_classes_sections.code = '****' + UNION + SELECT + chr(255) AS section_code, + '2'::text AS level, + t_budget_cle.code AS cle_code, + t_budget_cle.texte AS rubrique_texte, + 'CTI_BUDGETCLE#DT'||t_budget_cle.oid AS condition_code + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPE_BUDG' + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + JOIN activite.t_budget_cle ON to_id = t_budget_cle.oid + WHERE t_classes_sections.code = '****' + ORDER BY 1,2,3 + ) subview ON 1=1 + JOIN activite.t_indicateur_condition ON t_indicateur_condition.code = subview.condition_code + GROUP BY + t_rapports.oid, + t_indicateur_condition.oid, + section_code, + level, + cle_code + ORDER BY section_code, + level, + cle_code + ) subview + ; + + -- Avec template + DROP TABLE IF EXISTS w_sections; + CREATE TEMP TABLE w_sections AS + SELECT + t_budget_cle.oid AS cle_id, + t_budget_cle.code AS cle_code, + t_budget_cle.texte AS cle_texte, + 'CTI_BUDGETCLE#DT'||t_budget_cle.oid::text AS cle_condition_code, + COALESCE(CASE WHEN subview_spg.section_code NOT LIKE '**%' THEN subview_spg.section_code ELSE '**' END,'**') AS spg_section_code, + COALESCE(CASE WHEN subview_spg.section_code NOT LIKE '**%' THEN subview_spg.section_texte ELSE 'SANS CHAPITRE' END,'SANS CHAPITRE') AS spg_section_texte, + MAX('CTI_BUDGETCLE#LS'||to_char(COALESCE(subview_spg.sequence,0),'FM00')||COALESCE(subview_spg.section_id,0)) AS spg_condition_code, + COALESCE(CASE WHEN subview_spe.section_code NOT LIKE '**%' THEN subview_spe.section_code ELSE '****' END,'****') AS spe_section_code, + COALESCE(CASE WHEN subview_spe.section_code NOT LIKE '**%' THEN subview_spe.section_texte ELSE 'SANS SPECIALITE' END,'SANS SPECIALITE') AS spe_section_texte, + MAX('CTI_BUDGETCLE#LS'||to_char(COALESCE(subview_spe.sequence,0),'FM00')||COALESCE(subview_spe.section_id,0)) AS spe_condition_code, + 4::numeric AS level, + t_budget_cle.code AS rubrique_code, + t_budget_cle.texte AS rubrique_texte, + NULL::text[] AS sortkey + FROM activite.t_budget_cle + LEFT JOIN + ( + SELECT t_classes_sections_elements.to_id, + MAX(t_classes.sequence) AS sequence, + MAX(t_classes_sections.oid) AS section_id, + MAX(t_classes_sections.code) AS section_code, + MAX(t_classes_sections.texte) AS section_texte + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPG_BUDG' + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + GROUP BY 1 + ) subview_spg ON t_budget_cle.oid = subview_spg.to_id + LEFT JOIN + ( + SELECT t_classes_sections_elements.to_id, + MAX(t_classes.sequence) AS sequence, + MAX(t_classes_sections.oid) AS section_id, + MAX(t_classes_sections.code) AS section_code, + MAX(t_classes_sections.texte) AS section_texte + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_SPE_BUDG' + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + GROUP BY 1 + ) subview_spe ON t_budget_cle.oid = subview_spe.to_id + GROUP BY 1,2,3,4,5,6,8,9,11,12,13,14 + ; + INSERT INTO w_sections + SELECT + 0 AS cle_id, + '' AS cle_code, + '' AS cle_texte, + ''::text AS cle_condition_code, + spg_section_code, + spg_section_texte, + MAX(spg_condition_code), + spe_section_code, + spe_section_texte, + MAX(spe_condition_code), + 3::numeric AS level, + spe_section_code, + spe_section_texte, + NULL::text[] AS sortkey + FROM w_sections + WHERE level = 4 + GROUP BY 1,2,3,4,5,6,8,9,11,12,13,14 + ; + INSERT INTO w_sections + SELECT + 0 AS cle_id, + '' AS cle_code, + '' AS cle_texte, + ''::text AS cle_condition_code, + spg_section_code, + spg_section_texte, + spg_condition_code, + '' AS spe_section_code, + '' AS spe_section_texte, + '' AS spe_condition_code, + 2::numeric AS level, + spg_section_code, + spg_section_texte, + NULL::text[] AS sortkey + FROM w_sections + WHERE level = 4 + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13 + ; + INSERT INTO w_sections + SELECT + 0 AS cle_id, + '' AS cle_code, + '' AS cle_texte, + ''::text AS cle_condition_code, + 0 AS spg_section_code, + '' AS spg_section_texte, + '' AS spg_condition_code, + '' AS spe_section_code, + '' AS spe_section_texte, + '' AS spe_condition_code, + 1::numeric AS level, + '****', + 'TOTAL MCO', + NULL::text[] AS sortkey + FROM w_sections + WHERE level = 4 + GROUP BY 1,2,3,4,5,6,8,9,11,12,13,14 + ; + + UPDATE w_sections + SET sortkey[1] = CASE WHEN level = 1 THEN '' WHEN spg_section_code <> '**' THEN spg_section_code ELSE chr(255) END + ; + UPDATE w_sections + SET sortkey[2] = CASE WHEN level <= 2 THEN '' WHEN spe_section_code <> '****' THEN spe_section_code ELSE chr(255) END + ; + UPDATE w_sections + SET sortkey[3] = CASE WHEN level <= 3 THEN '' ELSE cle_texte END + ; + + -- Présentation rapports selon template + UPDATE activite.t_rapports SET + label = t_rapports_template.label, + group_id = t_rapports_template.group_id, + colonnes_essentiel = t_rapports_template.colonnes_essentiel, + entete = t_rapports_template.entete, + entete_2 = t_rapports_template.entete_2, + serie_entete = t_rapports_template.serie_entete, + colonnes_essentiel_style = t_rapports_template.colonnes_essentiel_style + FROM activite.t_rapports t_rapports_template + WHERE (t_rapports.code || '_TEMPLATE') = t_rapports_template.code AND + ( + t_rapports.label IS DISTINCT FROM t_rapports_template.label OR + t_rapports.group_id IS DISTINCT FROM t_rapports_template.group_id OR + t_rapports.colonnes_essentiel IS DISTINCT FROM t_rapports_template.colonnes_essentiel OR + t_rapports.entete IS DISTINCT FROM t_rapports_template.entete OR + t_rapports.entete_2 IS DISTINCT FROM t_rapports_template.entete_2 OR + t_rapports.serie_entete IS DISTINCT FROM t_rapports_template.serie_entete OR + t_rapports.colonnes_essentiel_style IS DISTINCT FROM t_rapports_template.colonnes_essentiel_style + ) + ; + + DELETE FROM activite.t_rapports_rubriques + USING + ( + SELECT t_rapports.oid + FROM activite.t_rapports + JOIN activite.t_rapports t_rapports_template ON t_rapports_template.code = t_rapports.code || '_TEMPLATE' + WHERE t_rapports.code LIKE '%BUD%' + ) subview + WHERE rapport_id = subview.oid + ; + + + -- Rubriques par spécialité selon rubriques + INSERT INTO activite.t_rapports_rubriques( + rapport_id, + numero_rubrique, + indicateur_id, + indicateur_associe_id, + serie_indicateur_id, + indicateur_condition_id, + entete_etendue, + serie_entete_etendue, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + serie_description, + serie_output_format, + serie_picto_enabled, + serie_positif_is_good, + hide_on_zero_field, + viewlink, + viewlink_label, + viewlink_param + ) + SELECT + rapport_id, + row_number() OVER (PARTITION BY rapport_id ORDER BY sortkey, numero_rubrique) AS numero_rubrique, + indicateur_id, + indicateur_associe_id, + serie_indicateur_id, + indicateur_condition_id, + entete_etendue, + Array[entete_etendue] AS serie_entete_etendue, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + serie_description, + serie_output_format, + serie_picto_enabled, + serie_positif_is_good, + hide_on_zero_field, + viewlink, + viewlink_label, + viewlink_param + FROM + ( + SELECT + t_rapports.oid AS rapport_id, + MAX(t_rapports_rubriques_template.numero_rubrique) AS numero_rubrique, + MAX(t_rapports_rubriques_template.indicateur_id) AS indicateur_id, + MAX(t_rapports_rubriques_template.indicateur_associe_id) AS indicateur_associe_id, + MAX(t_rapports_rubriques_template.serie_indicateur_id) AS serie_indicateur_id, + CASE WHEN level <> '1' THEN Array[t_indicateur_condition.oid] ELSE NULL END AS indicateur_condition_id, + MAX(CASE + WHEN t_rapports_rubriques_template.entete_etendue LIKE '%[LIB=SPG]%' THEN spg_section_texte + WHEN t_rapports_rubriques_template.entete_etendue LIKE '%[LIB=SPE]%' THEN spe_section_texte + WHEN t_rapports_rubriques_template.entete_etendue LIKE '%[LIB=CLE]%' THEN cle_texte + ELSE t_rapports_rubriques_template.entete_etendue END) AS entete_etendue, + MAX(t_rapports_rubriques_template.row_height) AS row_height, + MAX(t_rapports_rubriques_template.padding) AS padding, + MAX(t_rapports_rubriques_template.font_size) AS font_size, + MAX(t_rapports_rubriques_template.font_weight) AS font_weight, + MAX(t_rapports_rubriques_template.border_thickness) AS border_thickness, + MAX(t_rapports_rubriques_template.color) AS color, + MAX(t_rapports_rubriques_template.background_color) AS background_color, + MAX(t_rapports_rubriques_template.serie_description) AS serie_description, + MAX(t_rapports_rubriques_template.serie_output_format) AS serie_output_format, + MAX(t_rapports_rubriques_template.serie_picto_enabled) AS serie_picto_enabled, + MAX(t_rapports_rubriques_template.serie_positif_is_good) AS serie_positif_is_good, + MAX(t_rapports_rubriques_template.hide_on_zero_field) AS hide_on_zero_field, + MAX(''::text) AS viewlink, + MAX(''::text) AS viewlink_label, + MAX(''::text) AS viewlink_param, + MAX(t_indicateurs.code) AS indicateur_code, + sortkey, + level + FROM activite.t_rapports t_rapports_template + JOIN activite.t_rapports_rubriques t_rapports_rubriques_template ON t_rapports_rubriques_template.rapport_id = t_rapports_template.oid + JOIN activite.t_indicateurs ON t_rapports_rubriques_template.indicateur_id = t_indicateurs.oid + JOIN activite.t_rapports ON t_rapports_template.code = t_rapports.code || '_TEMPLATE' AND t_rapports.code LIKE '%BUD%' + JOIN w_sections ON 1=1 + LEFT JOIN activite.t_indicateur_condition ON + t_indicateur_condition.code = w_sections.spg_condition_code AND level = 2 OR + t_indicateur_condition.code = w_sections.spe_condition_code AND level = 3 OR + t_indicateur_condition.code = w_sections.cle_condition_code AND level = 4 + WHERE + ( + level = 1 AND t_rapports_rubriques_template.option LIKE '%[LVL=TOT]%' OR + level = 2 AND t_rapports_rubriques_template.option LIKE '%[LVL=SPG]%' OR + level = 3 AND t_rapports_rubriques_template.option LIKE '%[LVL=SPE]%' OR + level = 4 AND t_rapports_rubriques_template.option LIKE '%[LVL=CLE]%' + ) + GROUP BY + t_rapports.oid, + t_rapports_rubriques_template.rapport_id, + t_rapports_rubriques_template.numero_rubrique, + t_indicateur_condition.oid, + sortkey, + level + ORDER BY + t_rapports_rubriques_template.rapport_id, + sortkey, + level, + t_rapports_rubriques_template.numero_rubrique + ) subview + ; + + + + END IF; + + -- Rapports + IF EXISTS (SELECT * FROM w_budget_settings WHERE cle_budgetaire_activite IN ('CTIFILMEDSEJ')) THEN + + DROP TABLE IF EXISTS w_sections_2; + CREATE TEMP TABLE w_sections_2 AS + SELECT + t_budget_cle.oid AS cle_id, + t_budget_cle.code AS cle_code, + t_budget_cle.texte AS cle_texte, + 'CTI_BUDGETCLE#DT'||t_budget_cle.oid::text AS cle_condition_code, + COALESCE(CASE WHEN subview_fil.section_code NOT LIKE '**%' THEN subview_fil.section_code ELSE '**' END,'**') AS fil_section_code, + COALESCE(CASE WHEN subview_fil.section_code NOT LIKE '**%' THEN subview_fil.section_texte ELSE 'SANS FILIERE' END,'SANS FILIERE') AS fil_section_texte, + MAX('CTI_BUDGETCLE#LS'||to_char(COALESCE(subview_fil.sequence,0),'FM00')||COALESCE(subview_fil.section_id,0)) AS fil_condition_code, + COALESCE(CASE WHEN subview_med.section_code NOT LIKE '**%' THEN subview_med.section_code ELSE '****' END,'****') AS med_section_code, + COALESCE(CASE WHEN subview_med.section_code NOT LIKE '**%' THEN subview_med.section_texte ELSE 'SANS MEDECIN' END,'MEDECIN') AS med_section_texte, + MAX('CTI_BUDGETCLE#LS'||to_char(COALESCE(subview_med.sequence,0),'FM00')||COALESCE(subview_med.section_id,0)) AS med_condition_code, + 4::numeric AS level, + t_budget_cle.code AS rubrique_code, + t_budget_cle.texte AS rubrique_texte, + NULL::text[] AS sortkey + FROM activite.t_budget_cle + LEFT JOIN + ( + SELECT t_classes_sections_elements.to_id, + MAX(t_classes.sequence) AS sequence, + MAX(t_classes_sections.oid) AS section_id, + MAX(t_classes_sections.code) AS section_code, + MAX(t_classes_sections.texte) AS section_texte + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_FIL_BUDG' + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + GROUP BY 1 + ) subview_fil ON t_budget_cle.oid = subview_fil.to_id + LEFT JOIN + ( + SELECT t_classes_sections_elements.to_id, + MAX(t_classes.sequence) AS sequence, + MAX(t_classes_sections.oid) AS section_id, + MAX(t_classes_sections.code) AS section_code, + MAX(t_classes_sections.texte) AS section_texte + FROM activite.t_classes_sections + JOIN activite.t_classes ON classe_id = t_classes.oid AND t_classes.code = 'CTI_MED_BUDG' + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + GROUP BY 1 + ) subview_med ON t_budget_cle.oid = subview_med.to_id + GROUP BY 1,2,3,4,5,6,8,9,11,12,13,14 + ; + + + + DROP TABLE IF EXISTS w_sections; + CREATE TEMP TABLE w_sections AS + SELECT + 'FILMED'::text AS lvl_code, + fil_section_code AS lv1_section_code, + fil_section_code || ' ' || fil_section_texte AS lv1_section_texte, + MAX(fil_condition_code) AS lv1_condition_code, + med_section_code AS lv2_section_code, + med_section_texte AS lv2_section_texte, + MAX(med_condition_code) AS lv2_condition_code, + 3::numeric AS level, + med_section_code AS ent_code, + med_section_texte AS ent_texte, + NULL::text[] AS sortkey + FROM w_sections_2 + WHERE level = 4 AND + fil_section_code NOT LIKE '**%' AND + med_section_code NOT LIKE '**%' + GROUP BY 1,2,3,5,6,9,10,11 + ; + INSERT INTO w_sections + SELECT + 'MEDFIL'::text AS lvl_code, + med_section_code AS lv1_section_code, + med_section_texte AS lv1_section_texte, + MAX(med_condition_code) AS lv1_condition_code, + fil_section_code AS lv2_section_code, + fil_section_code || ' ' || fil_section_texte AS lv2_section_texte, + MAX(fil_condition_code) AS lv2_condition_code, + 3::numeric AS level, + fil_section_code AS code, + fil_section_code || ' ' || fil_section_texte AS texte, + NULL::text[] AS sortkey + FROM w_sections_2 + WHERE level = 4 AND + fil_section_code NOT LIKE '**%' AND + med_section_code NOT LIKE '**%' + GROUP BY 1,2,3,5,6,9,10,11 + ; + INSERT INTO w_sections + SELECT + 'FIL'::text AS lvl_code, + fil_section_code, + fil_section_code || ' ' || fil_section_texte, + MAX(fil_condition_code), + '' AS lv2_section_code, + '' AS lv2_section_texte, + '' AS lv2_condition_code, + 2::numeric AS level, + fil_section_code, + fil_section_code || ' ' || fil_section_texte, + NULL::text[] AS sortkey + FROM w_sections_2 + WHERE level = 4 AND + fil_section_code NOT LIKE '**%' + GROUP BY 1,2,3,5,6,9,10,11 + ; + INSERT INTO w_sections + SELECT + 'MED'::text AS lvl_code, + med_section_code, + med_section_texte, + MAX(med_condition_code), + '' AS lv2_section_code, + '' AS lv2_section_texte, + '' AS lv2_condition_code, + 2::numeric AS level, + med_section_code, + med_section_texte, + NULL::text[] AS sortkey + FROM w_sections_2 + WHERE level = 4 AND + med_section_code NOT LIKE '**%' + GROUP BY 1,2,3,5,6,9,10,11 + ; + INSERT INTO w_sections + SELECT + 'TOT'::text AS lvl_code, + '' AS lv1_section_code, + '' AS lv1_section_texte, + '' AS lv1_condition_code, + '' AS lv2_section_code, + '' AS lv2_section_texte, + '' AS lv2_condition_code, + 1::numeric AS level, + '****', + 'TOTAL', + NULL::text[] AS sortkey + FROM w_sections_2 + WHERE level = 4 + GROUP BY 1,2,3,5,6,9,10,11 + ; + + UPDATE w_sections + SET sortkey[1] = CASE WHEN level = 1 THEN '' WHEN lv1_section_code <> '**' THEN lv1_section_texte ELSE chr(255) END + ; + UPDATE w_sections + SET sortkey[2] = CASE WHEN level <= 2 THEN '' WHEN lv2_section_code <> '****' THEN lv2_section_texte ELSE chr(255) END + ; + + UPDATE activite.t_rapports SET + label = t_rapports_template.label, + group_id = t_rapports_template.group_id, + colonnes_essentiel = t_rapports_template.colonnes_essentiel, + entete = t_rapports_template.entete, + entete_2 = t_rapports_template.entete_2, + serie_entete = t_rapports_template.serie_entete, + colonnes_essentiel_style = t_rapports_template.colonnes_essentiel_style + FROM activite.t_rapports t_rapports_template + WHERE (t_rapports.code || '_TEMPLATE') = t_rapports_template.code AND + ( + t_rapports.label IS DISTINCT FROM t_rapports_template.label OR + t_rapports.group_id IS DISTINCT FROM t_rapports_template.group_id OR + t_rapports.colonnes_essentiel IS DISTINCT FROM t_rapports_template.colonnes_essentiel OR + t_rapports.entete IS DISTINCT FROM t_rapports_template.entete OR + t_rapports.entete_2 IS DISTINCT FROM t_rapports_template.entete_2 OR + t_rapports.serie_entete IS DISTINCT FROM t_rapports_template.serie_entete OR + t_rapports.colonnes_essentiel_style IS DISTINCT FROM t_rapports_template.colonnes_essentiel_style + ) + ; + + + DELETE FROM activite.t_rapports_rubriques + USING + ( + SELECT t_rapports.oid + FROM activite.t_rapports + JOIN activite.t_rapports t_rapports_template ON t_rapports_template.code = t_rapports.code || '_TEMPLATE' + WHERE t_rapports.code LIKE '%BUD%' + ) subview + WHERE rapport_id = subview.oid + ; + + + -- Rubriques par spécialité selon rubriques + INSERT INTO activite.t_rapports_rubriques( + rapport_id, + numero_rubrique, + indicateur_id, + indicateur_associe_id, + serie_indicateur_id, + indicateur_condition_id, + entete_etendue, + serie_entete_etendue, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + serie_description, + serie_output_format, + serie_picto_enabled, + serie_positif_is_good, + hide_on_zero_field, + viewlink, + viewlink_label, + viewlink_param, + option + ) + SELECT + rapport_id, + row_number() OVER (PARTITION BY rapport_id ORDER BY numero_rubrique_chapitre, sortkey, numero_rubrique) AS numero_rubrique, + indicateur_id, + indicateur_associe_id, + serie_indicateur_id, + indicateur_condition_id, + entete_etendue, + Array[entete_etendue] AS serie_entete_etendue, + row_height, + padding, + font_size, + font_weight, + border_thickness, + color, + background_color, + serie_description, + serie_output_format, + serie_picto_enabled, + serie_positif_is_good, + hide_on_zero_field, + viewlink, + viewlink_label, + viewlink_param, + option + FROM + ( + SELECT + t_rapports.oid AS rapport_id, + numero_rubrique_chapitre, + MAX(t_rapports_rubriques_template.numero_rubrique) AS numero_rubrique, + MAX(t_rapports_rubriques_template.indicateur_id) AS indicateur_id, + MAX(t_rapports_rubriques_template.indicateur_associe_id) AS indicateur_associe_id, + MAX(t_rapports_rubriques_template.serie_indicateur_id) AS serie_indicateur_id, + CASE WHEN level <> '1' THEN Array[t_indicateur_condition_2.oid,t_indicateur_condition_3.oid] ELSE NULL END AS indicateur_condition_id, + MAX(CASE + WHEN t_rapports_rubriques_template.entete_etendue LIKE '%[LIB=FIL]%' THEN ent_texte + WHEN t_rapports_rubriques_template.entete_etendue LIKE '%[LIB=MED]%' THEN ent_texte + ELSE t_rapports_rubriques_template.entete_etendue END) AS entete_etendue, + MAX(t_rapports_rubriques_template.row_height) AS row_height, + MAX(t_rapports_rubriques_template.padding) AS padding, + MAX(t_rapports_rubriques_template.font_size) AS font_size, + MAX(t_rapports_rubriques_template.font_weight) AS font_weight, + MAX(t_rapports_rubriques_template.border_thickness) AS border_thickness, + MAX(t_rapports_rubriques_template.color) AS color, + MAX(t_rapports_rubriques_template.background_color) AS background_color, + MAX(t_rapports_rubriques_template.serie_description) AS serie_description, + MAX(t_rapports_rubriques_template.serie_output_format) AS serie_output_format, + MAX(t_rapports_rubriques_template.serie_picto_enabled) AS serie_picto_enabled, + MAX(t_rapports_rubriques_template.serie_positif_is_good) AS serie_positif_is_good, + MAX(t_rapports_rubriques_template.hide_on_zero_field) AS hide_on_zero_field, + MAX(''::text) AS viewlink, + MAX(''::text) AS viewlink_label, + MAX(''::text) AS viewlink_param, + MAX(t_indicateurs.code) AS indicateur_code, + MAX(t_rapports_rubriques_template.option) AS option, + sortkey, + level + FROM activite.t_rapports t_rapports_template + JOIN activite.t_rapports_rubriques t_rapports_rubriques_template ON t_rapports_rubriques_template.rapport_id = t_rapports_template.oid + JOIN activite.t_indicateurs ON t_rapports_rubriques_template.indicateur_id = t_indicateurs.oid + JOIN activite.t_rapports ON t_rapports_template.code = t_rapports.code || '_TEMPLATE' AND t_rapports.code LIKE '%BUD%' + JOIN ( + SELECT rapport_id, + numero_rubrique AS numero_rubrique_chapitre, + COALESCE(LEAD(numero_rubrique) OVER (PARTITION BY rapport_id oRDER BY numero_rubrique) -1,999999) AS numero_rubrique_chapitre_fin + FROM activite.t_rapports_rubriques + JOIN activite.t_rapports ON rapport_id = t_rapports.oid + WHERE t_rapports.code LIKE '%TEMPLATE' AND + option LIKE '%[TREELVL=1]%' + ) subview ON + t_rapports_template.oid = subview.rapport_id AND + t_rapports_rubriques_template.numero_rubrique BETWEEN numero_rubrique_chapitre AND numero_rubrique_chapitre_fin + JOIN w_sections ON 1=1 + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_2 ON + t_indicateur_condition_2.code = w_sections.lv1_condition_code AND level >= 2 + LEFT JOIN activite.t_indicateur_condition t_indicateur_condition_3 ON + t_indicateur_condition_3.code = w_sections.lv2_condition_code AND level = 3 + WHERE + ( + level = 1 AND t_rapports_rubriques_template.option LIKE '%[LVL='||w_sections.lvl_code||']%' OR + level = 2 AND t_rapports_rubriques_template.option LIKE '%[LVL='||w_sections.lvl_code||']%' OR + level = 3 AND t_rapports_rubriques_template.option LIKE '%[LVL='||w_sections.lvl_code||']%' + ) + GROUP BY + t_rapports.oid, + t_rapports_rubriques_template.rapport_id, + numero_rubrique_chapitre, + t_rapports_rubriques_template.numero_rubrique, + t_indicateur_condition_2.oid, + t_indicateur_condition_3.oid, + sortkey, + level + ORDER BY + t_rapports_rubriques_template.rapport_id, + numero_rubrique_chapitre, + sortkey, + level, + t_rapports_rubriques_template.numero_rubrique + ) subview + ; + + + + END IF; + + + RETURN 'OK' ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_budget_translate_list~tx.yaml b/db/schema2/functions/cti_budget_translate_list~tx.yaml new file mode 100644 index 0000000..28e3d4f --- /dev/null +++ b/db/schema2/functions/cti_budget_translate_list~tx.yaml @@ -0,0 +1,23 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_liste +src: | + DECLARE + _liste text; + + BEGIN + _liste = i_liste; + _liste = trim(translate(COALESCE(_liste,''),'"' || chr(9) || chr(10) || chr(13),' ')); + _liste = replace(_liste,' ',' '); + _liste = replace(_liste,' ',' '); + _liste = replace(_liste,' ',' '); + _liste = replace(_liste,' ',' '); + _liste = (SELECT base.cti_group_concat_without_sep(code || ' ') + FROM + (SELECT code FROM base.cti_unnest(string_to_array(_liste,' ')) AS code ORDER BY 1) subview + ); + RETURN _liste ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_calc_duree_occupation.yaml b/db/schema2/functions/cti_calc_duree_occupation.yaml new file mode 100644 index 0000000..7e0b195 --- /dev/null +++ b/db/schema2/functions/cti_calc_duree_occupation.yaml @@ -0,0 +1,83 @@ +return: text +lang: plpgsql +src: | + DECLARE + + BEGIN + -- Identification des journées selon lignes facturées + DROP TABLE IF EXISTS w_duree_occupation; + CREATE TEMP TABLE w_duree_occupation AS + SELECT + no_sejour, + + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + sum(nb_jours_f) AS duree_occ_eta + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25; + + CREATE INDEX w_duree_occupation_i1 ON w_duree_occupation USING btree (no_sejour); + DROP TABLE IF EXISTS activite.p_duree_occupation; + CREATE TABLE activite.p_duree_occupation AS + SELECT + no_sejour::text, + lieu_etage_id::bigint as v_lieu_etage_id, + lieu_etage_code::text as v_lieu_etage_code, + lieu_etage_texte::text as v_lieu_etage_texte, + lieu_etage_section_id::bigint[] as v_lieu_etage_section_id, + lieu_etage_section_code::text[] as v_lieu_etage_section_code, + lieu_etage_section_texte::text[] as v_lieu_etage_section_texte, + lieu_lit_id::bigint as v_lieu_lit_id, + lieu_lit_code::text as v_lieu_lit_code, + lieu_lit_texte::text as v_lieu_lit_texte, + lieu_lit_section_id::bigint[] as v_lieu_lit_section_id, + lieu_lit_section_code::text[] as v_lieu_lit_section_code, + lieu_lit_section_texte::text[] as v_lieu_lit_section_texte, + lieu_unite_medicale_id::bigint as v_lieu_unite_medicale_id, + lieu_unite_medicale_code::text as v_lieu_unite_medicale_code, + lieu_unite_medicale_texte::text as v_lieu_unite_medicale_texte, + lieu_unite_medicale_section_id::bigint[] as v_lieu_unite_medicale_section_id, + lieu_unite_medicale_section_code::text[] as v_lieu_unite_medicale_section_code, + lieu_unite_medicale_section_texte::text[] as v_lieu_unite_medicale_section_texte, + lieu_unite_fonctionnelle_id::bigint as v_lieu_unite_fonctionnelle_id, + lieu_unite_fonctionnelle_code::text as v_lieu_unite_fonctionnelle_code, + lieu_unite_fonctionnelle_texte::text as v_lieu_unite_fonctionnelle_texte, + lieu_unite_fonctionnelle_section_id::bigint[] as v_lieu_unite_fonctionnelle_section_id, + lieu_unite_fonctionnelle_section_code::text[] as v_lieu_unite_fonctionnelle_section_code, + lieu_unite_fonctionnelle_section_texte::text[] as v_lieu_unite_fonctionnelle_section_texte, + duree_occ_eta::bigint + FROM w_duree_occupation; + + -- Détection nouvelles journées pour les services concernés + RAISE NOTICE '%' , 'Fin calcule durée occupation'; + + ANALYZE activite.p_duree_occupation; + + RETURN 'OK' ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_calcul_hdj_mouvements.yaml b/db/schema2/functions/cti_calcul_hdj_mouvements.yaml new file mode 100644 index 0000000..5906c72 --- /dev/null +++ b/db/schema2/functions/cti_calcul_hdj_mouvements.yaml @@ -0,0 +1,116 @@ +return: text +lang: plpgsql +src: | + DECLARE + + BEGIN + -- Ne faire que si un service est concerné + IF NOT EXISTS (SELECT * FROM activite.t_services_facturation WHERE COALESCE(prestations_presence,'') <> '') THEN + RETURN 'OK. Non concerné' ; + END IF; + RAISE NOTICE '%' , 'Initialisations. identification journees'; + + -- Identification des journées selon lignes facturées + DROP TABLE IF EXISTS w_mouvements_seances; + CREATE TEMP TABLE w_mouvements_seances AS + SELECT no_sejour, p_factures_lignes_c.date_debut + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE + t_prestations.code <> '' AND + t_services_facturation.prestations_presence <> '' AND + t_prestations.code ILIKE ANY (string_to_array(translate(prestations_presence,'*,','% '),' ')) + GROUP BY 1,2; + CREATE INDEX w_mouvements_seances_i1 ON w_mouvements_seances USING btree (no_sejour); + -- Identification des journées selon lignes non facturées + INSERT INTO w_mouvements_seances + SELECT p_factures.no_sejour, p_factures_lignes_c.date_debut + FROM activite.p_factures_lignes_non_facturees_c p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + LEFT JOIN w_mouvements_seances ON + w_mouvements_seances.no_sejour = p_factures.no_sejour AND + w_mouvements_seances.date_debut = p_factures_lignes_c.date_debut + WHERE + t_prestations.code <> '' AND + w_mouvements_seances.no_sejour IS NULL AND + t_services_facturation.prestations_presence <> '' AND + (t_prestations.code ILIKE ANY (string_to_array(translate(prestations_presence,'*,','% '),' '))) + GROUP BY 1,2; + + -- Détection nouvelles journées pour les services concernés + RAISE NOTICE '%' , 'Initialisations. Preparation mouvements'; + + DROP TABLE IF EXISTS w_mouvements_nouveaux; + CREATE TEMP TABLE w_mouvements_nouveaux AS + SELECT + p_mouvements_sejour.no_sejour, + p_mouvements_sejour.date, + p_mouvements_sejour.heure_debut, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_js_non_inclus ELSE 0 END AS nb_jours_js_non_inclus, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_js_inclus ELSE 0 END AS nb_jours_js_inclus, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.est_jour_hospitalisation ELSE '0' END AS est_jour_hospitalisation, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.est_chambre_particuliere ELSE '0' END AS est_chambre_particuliere, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.est_chambre_particuliere_facturee ELSE '0' END AS est_chambre_particuliere_facturee, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.est_facture ELSE '0' END AS est_facture, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_d ELSE 0 END AS nb_jours_d, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_f ELSE 0 END AS nb_jours_f, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_12 ELSE 0 END AS nb_jours_12, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_prorata ELSE 0 END AS nb_jours_prorata, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_cp_d ELSE 0 END AS nb_jours_cp_d, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_cp_f ELSE 0 END AS nb_jours_cp_f, + CASE WHEN w_mouvements_seances.no_sejour IS NOT NULL THEN p_mouvements_sejour.nb_jours_cp_12 ELSE 0 END AS nb_jours_cp_12 + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + LEFT JOIN w_mouvements_seances ON p_mouvements_sejour.no_sejour = w_mouvements_seances.no_sejour AND + p_mouvements_sejour.date = w_mouvements_seances.date_debut + WHERE t_services_facturation.prestations_presence <> '' AND + w_mouvements_seances.no_sejour IS NULL; + CREATE INDEX w_mouvements_nouveaux_i1 ON w_mouvements_nouveaux USING btree (no_sejour); + + -- Modification table des mouvements de séjour + RAISE NOTICE '%' , 'Initialisations. Modification mouvements'; + UPDATE activite.p_mouvements_sejour SET + nb_jours_js_non_inclus = w_mouvements_nouveaux.nb_jours_js_non_inclus, + nb_jours_js_inclus = w_mouvements_nouveaux.nb_jours_js_inclus, + est_jour_hospitalisation = w_mouvements_nouveaux.est_jour_hospitalisation, + est_chambre_particuliere = w_mouvements_nouveaux.est_chambre_particuliere, + est_chambre_particuliere_facturee = w_mouvements_nouveaux.est_chambre_particuliere_facturee, + est_facture = w_mouvements_nouveaux.est_facture, + nb_jours_d = w_mouvements_nouveaux.nb_jours_d , + nb_jours_f = w_mouvements_nouveaux.nb_jours_f , + nb_jours_12 = w_mouvements_nouveaux.nb_jours_12, + nb_jours_prorata = w_mouvements_nouveaux.nb_jours_prorata, + nb_jours_cp_d = w_mouvements_nouveaux.nb_jours_cp_d, + nb_jours_cp_f = w_mouvements_nouveaux.nb_jours_cp_f, + nb_jours_cp_12 = w_mouvements_nouveaux.nb_jours_cp_12 + FROM w_mouvements_nouveaux + WHERE p_mouvements_sejour.no_sejour = w_mouvements_nouveaux.no_sejour AND + p_mouvements_sejour.date = w_mouvements_nouveaux.date AND + p_mouvements_sejour.heure_debut = w_mouvements_nouveaux.heure_debut AND + ( + p_mouvements_sejour.nb_jours_js_non_inclus IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_js_non_inclus OR + p_mouvements_sejour.nb_jours_js_inclus IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_js_inclus OR + p_mouvements_sejour.est_jour_hospitalisation IS DISTINCT FROM w_mouvements_nouveaux.est_jour_hospitalisation OR + p_mouvements_sejour.est_chambre_particuliere IS DISTINCT FROM w_mouvements_nouveaux.est_chambre_particuliere OR + p_mouvements_sejour.est_chambre_particuliere_facturee IS DISTINCT FROM w_mouvements_nouveaux.est_chambre_particuliere_facturee OR + p_mouvements_sejour.est_facture IS DISTINCT FROM w_mouvements_nouveaux.est_facture OR + p_mouvements_sejour.nb_jours_d IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_d OR + p_mouvements_sejour.nb_jours_f IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_f OR + p_mouvements_sejour.nb_jours_12 IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_12 OR + p_mouvements_sejour.nb_jours_prorata IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_prorata OR + p_mouvements_sejour.nb_jours_cp_d IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_cp_d OR + p_mouvements_sejour.nb_jours_cp_f IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_cp_f OR + p_mouvements_sejour.nb_jours_cp_12 IS DISTINCT FROM w_mouvements_nouveaux.nb_jours_cp_12 + ); + + ANALYZE activite.p_mouvements_sejour; + + RETURN 'OK' ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_calcul_journees_mouvements.yaml b/db/schema2/functions/cti_calcul_journees_mouvements.yaml new file mode 100644 index 0000000..ad419fe --- /dev/null +++ b/db/schema2/functions/cti_calcul_journees_mouvements.yaml @@ -0,0 +1,1328 @@ +return: text +lang: plpgsql +src: | + DECLARE + _nb_services_absence numeric; + BEGIN + -- Ajout de colonnes dans les tables pour compatibilite descendante + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_mouvements_sejour' AND + column_name = 'equivalent_malade_complet') THEN + ALTER TABLE activite.p_mouvements_sejour ADD COLUMN equivalent_malade_complet numeric DEFAULT 0; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_mouvements_sejour' AND + column_name = 'nb_jour_sejour_sorti') THEN + ALTER TABLE activite.p_mouvements_sejour ADD COLUMN nb_jour_sejour_sorti integer DEFAULT 0; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_mouvements_sejour' AND + column_name = 'nb_seances_chimio') THEN + ALTER TABLE activite.p_mouvements_sejour ADD COLUMN nb_seances_chimio integer DEFAULT 0; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_mouvements_sejour' AND + column_name = 'nb_seances_dialyse') THEN + ALTER TABLE activite.p_mouvements_sejour ADD COLUMN nb_seances_dialyse integer DEFAULT 0; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_mouvements_sejour' AND + column_name = 'nb_seances_autre') THEN + ALTER TABLE activite.p_mouvements_sejour ADD COLUMN nb_seances_autre integer DEFAULT 0; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_mouvements_sejour' AND + column_name = 'nb_seances_chimio') THEN + ALTER TABLE activite.p_mouvements_sejour ADD COLUMN nb_seances_chimio integer DEFAULT 0; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_mouvements_sejour' AND + column_name = 'nb_deces') THEN + ALTER TABLE activite.p_mouvements_sejour ADD COLUMN nb_deces integer DEFAULT 0; + END IF; + + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.t_etages' AND + column_name = 'est_urgence') THEN + ALTER TABLE activite.t_etages ADD COLUMN est_urgence text DEFAULT ''; + END IF; + + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.t_services_facturation' AND + column_name = 'mode_calcul_journees') THEN + ALTER TABLE activite.t_services_facturation ADD COLUMN mode_calcul_journees text DEFAULT ''; + END IF; + + -- Paramétrage + -- Par défaut, On ne compte pas le jour de sortie sauf les hospits où DE = DS + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur2) + SELECT + 'OPTADM_DAYOUT'::text, + 'Activite : Comptabilisation du jour de sortie'::text, + '0'::text, + '0=JS non inclus sauf DE=DS | 1=JS non inclus | 2=JS inclus'::text, + 'Jour de sortie non inclus sauf hospitalisés avec DE=DS'::text + WHERE + 'OPTADM_DAYOUT'::text NOT IN (SELECT code FROM activite.t_divers) ; + + -- Par défaut, l'hospit complète génère un EMC par séjour + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur2) + SELECT + 'EMCHCSSRPSY'::text, + 'Mode génération EMC HC SSR ou PSY'::text, + '0'::text, + '0=1 EMC par séjour, 1=1 EMC par semaine'::text, + 'Jour de sortie non inclus sauf hospitalisés avec DE=DS'::text + WHERE + 'EMCHCSSRPSY'::text NOT IN (SELECT code FROM activite.t_divers) ; + + -- Par défaut, On conserve les séances en hospit + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur2) + SELECT + 'SEANCEHOSPIT'::text, + 'Traitement des séances en hospit'::text, + '1'::text, + '1=Conserver les séances en hospit, 2=Ne conserver que les séances de dialyse, 0=Pas de séance en hospit'::text, + ''::text + WHERE + 'SEANCEHOSPIT'::text NOT IN (SELECT code FROM activite.t_divers) ; + UPDATE activite.t_divers + SET description = '1=Conserver les séances en hospit, 2=Ne conserver que les séances de dialyse, 0=Pas de séance en hospit' + WHERE code = 'SEANCEHOSPIT' AND + description <> '1=Conserver les séances en hospit, 2=Ne conserver que les séances de dialyse, 0=Pas de séance en hospit' + ; + + -- Désactivation index + RAISE NOTICE '%' , 'Desactivation index'; + PERFORM base.cti_stash_table_indexes('activite.p_mouvements_sejour'); + RAISE NOTICE '%' , 'Extraction des mouvements'; + DROP TABLE IF EXISTS w_mvt; + CREATE TEMP TABLE w_mvt AS SELECT * FROM activite.p_mouvements_sejour; + + CREATE INDEX w_mvt_i1 + ON w_mvt + USING btree + (no_sejour); + + + CREATE INDEX w_mvt_i2 + ON w_mvt + USING btree + (lieu_id); + + + + -- Table des services associéss aux lieux + DROP TABLE IF EXISTS w_lieux_etendus; + CREATE TEMP TABLE w_lieux_etendus AS + SELECT t_lieux.*, + t_lits.etage_id, + CASE WHEN COALESCE(t_services_facturation.mode_calcul_journees,'') <> '' THEN t_services_facturation.mode_calcul_journees ELSE t_divers_dayout.valeur END AS service_mode_calcul_journees, + t_services_facturation.est_absence AS service_est_absence, + t_services_facturation.type_sejour AS service_type_sejour, + t_services_facturation.type_t2a AS service_type_t2a, + t_lits.chambre_particuliere AS lit_chambre_particuliere, + t_etages.est_urgence AS etage_est_urgence, + t_modes_traitement.code AS mode_traitement_code, + t_dmt.code AS dmt_code + FROM activite.t_lieux + JOIN activite.t_services_facturation On service_facturation_id = t_services_facturation.oid + JOIN activite.t_lits ON lit_id = t_lits.oid + JOIN activite.t_etages ON t_lits.etage_id = t_etages.oid + JOIN base.t_modes_traitement ON t_modes_traitement.oid = t_services_facturation.mode_traitement_id + JOIN base.t_dmt on dmt_id = t_dmt.oid + JOIN activite.t_divers t_divers_dayout ON t_divers_dayout.code = 'OPTADM_DAYOUT' + ; + CREATE INDEX w_lieux_etendus_i1 + ON w_lieux_etendus + USING btree + (oid); + ANALYSE w_lieux_etendus + ; + + -- Correction heure sortie dans mouvements + UPDATE activite.p_sejours + SET heure_sortie = (substr(to_char(heure_sortie,'FM000000'),1,2) || '59' || substr(to_char(heure_sortie,'FM000000'),5,2))::numeric + WHERE substr(to_char(heure_sortie,'FM000000'),3,2) > '59' + ; + + UPDATE activite.p_sejours + SET heure_sortie = 240000 + WHERE heure_sortie > 240000 + ; + + UPDATE w_mvt p_mouvements_sejour + SET heure_fin = p_sejours.heure_sortie + FROM activite.p_sejours + WHERE p_sejours.no_sejour = p_mouvements_sejour.no_sejour AND + p_mouvements_sejour.nb_sorties_directes = 1 AND + p_mouvements_sejour.date = p_sejours.date_sortie AND + p_mouvements_sejour.heure_fin <> p_sejours.heure_sortie AND + p_sejours.code_sorti = '1' AND + p_sejours.type_sejour = '1' AND + p_sejours.heure_sortie >= p_mouvements_sejour.heure_debut + ; + UPDATE w_mvt p_mouvements_sejour + SET heure_fin = p_sejours.heure_sortie + FROM activite.p_sejours + WHERE p_sejours.no_sejour = p_mouvements_sejour.no_sejour AND + p_mouvements_sejour.nb_ambulatoires = 1 AND + p_mouvements_sejour.date = p_sejours.date_sortie AND + p_mouvements_sejour.heure_fin <> p_sejours.heure_sortie AND + p_sejours.code_sorti = '1' AND + p_sejours.type_sejour IN ('2') AND + p_sejours.heure_sortie >= p_mouvements_sejour.heure_debut + ; + + UPDATE w_mvt p_mouvements_sejour + SET heure_fin = p_sejours.heure_sortie + FROM activite.p_sejours + WHERE p_sejours.no_sejour = p_mouvements_sejour.no_sejour AND + p_mouvements_sejour.nb_externes = 1 AND + p_mouvements_sejour.date = p_sejours.date_sortie AND + p_mouvements_sejour.heure_fin <> p_sejours.heure_sortie AND + p_sejours.code_sorti = '1' AND + p_sejours.type_sejour IN ('3') AND + p_sejours.heure_sortie >= p_mouvements_sejour.heure_debut + ; + + -- Correction mouvements pour jour de sortie HDJ HM + UPDATE w_mvt p_mouvements_sejour + SET est_jour_sortie = '1' + FROM activite.p_sejours + WHERE p_mouvements_sejour.no_sejour = p_sejours.no_sejour AND + p_sejours.code_sorti = '1' AND + p_sejours.type_sejour = '1' AND + p_mouvements_sejour.date = p_sejours.date_sortie AND + p_mouvements_sejour.est_jour_sortie <> '1' + ; + + DROP TABLE IF EXISTS w_correction_hdj; + CREATE TEMP TABLE w_correction_hdj AS + SELECT + p_mouvements_sejour.no_sejour, + p_mouvements_sejour.date, + p_mouvements_sejour.heure_debut, + p_mouvements_sejour.heure_fin, + MAX(p_mouvements_sejour2.heure_debut) AS heure_debut2, + (MAX(Array[p_mouvements_sejour2.heure_debut, p_mouvements_sejour2.lieu_id]))[2]::bigint AS lieu_id2 + FROM w_mvt p_mouvements_sejour + JOIN w_mvt p_mouvements_sejour2 ON + p_mouvements_sejour.no_sejour = p_mouvements_sejour2.no_sejour AND + p_mouvements_sejour.date = p_mouvements_sejour2.date AND + p_mouvements_sejour.heure_debut > p_mouvements_sejour2.heure_fin + WHERE p_mouvements_sejour.est_jour_hospitalisation = '0' AND + p_mouvements_sejour2.est_jour_hospitalisation = '1' AND + p_mouvements_sejour.nb_sorties_directes = 1 AND + p_mouvements_sejour2.nb_sorties_directes = 0 + GROUP BY 1,2,3,4 + HAVING (MAX(Array[p_mouvements_sejour2.heure_debut,p_mouvements_sejour2.lieu_id]))[2]::bigint = MAX(p_mouvements_sejour.lieu_id) ; + + UPDATE w_mvt p_mouvements_sejour + SET est_jour_hospitalisation = '1', est_dernier_mouvement_jour = '1' + FROM w_correction_hdj + WHERE p_mouvements_sejour.no_sejour = w_correction_hdj.no_sejour AND + p_mouvements_sejour.date = w_correction_hdj.date AND + p_mouvements_sejour.heure_debut = w_correction_hdj.heure_debut + ; + + UPDATE w_mvt p_mouvements_sejour + SET est_dernier_mouvement_jour = '0' + FROM w_correction_hdj + WHERE p_mouvements_sejour.no_sejour = w_correction_hdj.no_sejour AND + p_mouvements_sejour.date = w_correction_hdj.date AND + p_mouvements_sejour.heure_debut = w_correction_hdj.heure_debut2 AND + est_dernier_mouvement_jour = '1' + ; + + -- Stockage des décés + UPDATE w_mvt p_mouvements_sejour + SET nb_deces = 1 + FROM activite.p_sejours + WHERE p_sejours.no_sejour = p_mouvements_sejour.no_sejour AND + p_sejours.date_sortie = p_mouvements_sejour.date AND + p_sejours.heure_sortie = p_mouvements_sejour.heure_fin AND + p_sejours.code_sorti = '1' AND + p_sejours.mode_sortie = '9' + ; + + + + -- Traitement des séances qui n'en sont pas (cas du mode generation service = 0sauf5 + UPDATE w_mvt p_mouvements_sejour + SET nb_seances = 0, + nb_ambulatoires = 1 + FROM activite.p_sejours, + w_lieux_etendus t_lieux + WHERE p_mouvements_sejour.no_sejour = p_sejours.no_sejour AND + date_entree = date_sortie AND + lieu_id = t_lieux.oid AND + p_sejours.type_sejour = '5' AND + service_type_sejour = '0sauf5' AND + nb_seances <> 0 + ; + + UPDATE activite.p_sejours + SET type_sejour = '2' + FROM w_lieux_etendus t_lieux + WHERE lieu_sortie_id = t_lieux.oid AND + date_entree = date_sortie AND + p_sejours.type_sejour = '5' AND + service_type_sejour = '0sauf5' + ; + + -- Normalement, une seule séance par jour + UPDATE w_mvt p_mouvements_sejour + SET nb_seances = 1 + WHERE nb_seances > 1; + + + UPDATE w_mvt p_mouvements_sejour + SET nb_seances = 0 + FROM + ( + SELECT w_mvt.no_sejour, w_mvt.date, min(w_mvt.heure_debut) AS heure_seance + FROM w_mvt + JOIN activite.p_sejours ON w_mvt.no_sejour = p_sejours.no_sejour + JOIN base.t_ghm ON p_sejours.ghm_id = t_ghm.oid + WHERE nb_seances > 0 AND + t_ghm.code <> '28Z04Z' + GROUP BY 1,2 + HAVING SUM(nb_seances) > 1 + ) subview + WHERE p_mouvements_sejour.no_sejour = subview.no_sejour AND + p_mouvements_sejour.date = subview.date AND + p_mouvements_sejour.heure_debut <> heure_seance + ; + + -- Deux séances de dialyse le même jour, modif selon facturation + UPDATE w_mvt p_mouvements_sejour + SET nb_seances = 2 + FROM + ( + SELECT no_sejour, p_factures_lignes_h.date_debut, SUM(nb_prestation) + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + JOIN base.t_actes ON acte_id = t_actes.oid + WHERE code_facture = '1' AND t_actes.code LIKE 'JVJF%' AND p_factures_lignes_h.date_debut = p_factures_lignes_h.date_fin + GROUP BY 1,2 + HAVING SUM(nb_prestation) > 1 + ) subview + WHERE p_mouvements_sejour.no_sejour = subview.no_sejour AND + p_mouvements_sejour.date = subview.date_debut AND + p_mouvements_sejour.nb_seances = 1 + ; + + -- Correction pour mouvements CEGI qui finissent à 235959 et redémarrent le lendemain à 0h -> Dans ce cas il manque une journée + UPDATE w_mvt + SET heure_fin = 240000 + WHERE heure_fin = 235959 + ; + -- Recherche date fin journée pour journées avec absence démarrant après midi (dans ce cas la journée doit être imputée) + _nb_services_absence = (SELECT count(*) FROM activite.t_services_facturation WHERE est_absence = '1'); + IF _nb_services_absence > 0 THEN + RAISE NOTICE '%' , 'Traitement special absences'; + DROP TABLE IF EXISTS w_absences; + CREATE TEMP TABLE w_absences AS + SELECT no_sejour, + date, + MIN(CASE WHEN service_est_absence <> '1' THEN heure_debut ELSE 999999 END) AS heure_debut_journee, + MAX(CASE WHEN service_est_absence <> '1' THEN heure_fin ELSE 0 END) AS heure_fin_journee, + MIN(CASE WHEN service_est_absence = '1' THEN heure_debut ELSE 999999 END) AS heure_debut_absence, + MAX(CASE WHEN service_est_absence = '1' THEN heure_fin ELSE 0 END) AS heure_fin_absence + FROM w_mvt + JOIN w_lieux_etendus t_lieux ON lieu_id = t_lieux.oid + GROUP BY 1,2 + HAVING MAX(service_est_absence) = '1' AND + MIN(service_est_absence) <> '1' + ORDER BY 1,2; + UPDATE w_mvt SET + est_premier_mouvement_jour = + CASE + WHEN 120000 BETWEEN heure_debut_journee AND heure_fin_journee AND heure_debut = heure_debut_journee THEN '1' + WHEN 120000 BETWEEN heure_debut_absence AND heure_fin_absence AND heure_debut = heure_debut_absence THEN '1' + ELSE '9' END, + est_dernier_mouvement_jour = + CASE + WHEN 120000 BETWEEN heure_debut_journee AND heure_fin_journee AND heure_debut = heure_debut_journee THEN '1' + WHEN 120000 BETWEEN heure_debut_absence AND heure_fin_absence AND heure_debut = heure_debut_absence THEN '1' + ELSE '9' END + FROM w_absences + WHERE w_absences.no_sejour = w_mvt.no_sejour AND + w_absences.date = w_mvt.date ; + + UPDATE w_mvt SET + nb_chambres_particulieres = 0, + nb_entrees_mutation_service = 0, + nb_entrees_mutation_etage = 0, + nb_sorties_mutation_service = 0, + nb_sorties_mutation_etage = 0 + FROM w_lieux_etendus t_lieux + WHERE lieu_id = t_lieux.oid AND + service_est_absence = '1' AND + ( + nb_chambres_particulieres <> 0 OR + nb_entrees_mutation_service <> 0 OR + nb_entrees_mutation_etage <> 0 OR + nb_sorties_mutation_service <> 0 OR + nb_sorties_mutation_etage <> 0 + ) + ; + + -- enlever mutations absences + DROP TABLE IF EXISTS w_mvt_for_mutations; + CREATE TEMP TABLE w_mvt_for_mutations AS + SELECT no_sejour, date, heure_debut, + ROW_NUMBER() OVER (PARTITION BY no_sejour + ORDER BY no_sejour, date, heure_debut + ) AS rang_mvt, + service_facturation_id, etage_id, unite_fonctionnelle_id, unite_medicale_id, + nb_entrees_directes, + nb_entrees_mutation_service, + nb_entrees_mutation_etage, + nb_sorties_directes, + nb_sorties_mutation_service, + nb_sorties_mutation_etage + FROM w_mvt p_mouvements_sejour + JOIN w_lieux_etendus t_lieux ON lieu_id = t_lieux.oid + WHERE service_est_absence <> '1' + ORDER BY 1,2,3 + ; + + UPDATE w_mvt p_mouvements_sejour SET + nb_entrees_mutation_service = subview.nb_entrees_mutation_service, + nb_entrees_mutation_etage = subview.nb_entrees_mutation_etage + FROM + ( + SELECT w_mvt_for_mutations.no_sejour, w_mvt_for_mutations.date, w_mvt_for_mutations.heure_debut, + CASE WHEN w_mvt_for_mutations.service_facturation_id = w_mvt_for_mutations_2.service_facturation_id THEN 0 ELSE 1 END AS nb_entrees_mutation_service, + CASE WHEN w_mvt_for_mutations.etage_id = w_mvt_for_mutations_2.etage_id THEN 0 ELSE 1 END AS nb_entrees_mutation_etage + FROM w_mvt_for_mutations + JOIN w_mvt_for_mutations w_mvt_for_mutations_2 ON + w_mvt_for_mutations.no_sejour = w_mvt_for_mutations_2.no_sejour AND + w_mvt_for_mutations.rang_mvt = w_mvt_for_mutations_2.rang_mvt+ 1 + WHERE ( + w_mvt_for_mutations.nb_entrees_mutation_service = 1 AND w_mvt_for_mutations.service_facturation_id = w_mvt_for_mutations_2.service_facturation_id OR + w_mvt_for_mutations.nb_entrees_mutation_etage = 1 AND w_mvt_for_mutations.etage_id = w_mvt_for_mutations_2.etage_id + ) + ) subview + WHERE p_mouvements_sejour.no_sejour = subview.no_sejour AND + p_mouvements_sejour.date = subview.date AND + p_mouvements_sejour.heure_debut = subview.heure_debut + ; + + UPDATE w_mvt p_mouvements_sejour SET + nb_sorties_mutation_service = subview.nb_sorties_mutation_service, + nb_sorties_mutation_etage = subview.nb_sorties_mutation_etage + FROM + ( + SELECT w_mvt_for_mutations.no_sejour, w_mvt_for_mutations.date, w_mvt_for_mutations.heure_debut, + CASE WHEN w_mvt_for_mutations.service_facturation_id = w_mvt_for_mutations_2.service_facturation_id AND w_mvt_for_mutations.nb_sorties_directes <> 1 THEN 0 ELSE 1 END AS nb_sorties_mutation_service, + CASE WHEN w_mvt_for_mutations.etage_id = w_mvt_for_mutations_2.etage_id AND w_mvt_for_mutations.nb_sorties_directes <> 1 THEN 0 ELSE 1 END AS nb_sorties_mutation_etage + FROM w_mvt_for_mutations + JOIN w_mvt_for_mutations w_mvt_for_mutations_2 ON + w_mvt_for_mutations.no_sejour = w_mvt_for_mutations_2.no_sejour AND + w_mvt_for_mutations.rang_mvt = w_mvt_for_mutations_2.rang_mvt- 1 + WHERE ( + w_mvt_for_mutations.nb_sorties_mutation_service = 1 AND w_mvt_for_mutations.service_facturation_id = w_mvt_for_mutations_2.service_facturation_id OR + w_mvt_for_mutations.nb_sorties_mutation_etage = 1 AND w_mvt_for_mutations.etage_id = w_mvt_for_mutations_2.etage_id + ) + ) subview + WHERE p_mouvements_sejour.no_sejour = subview.no_sejour AND + p_mouvements_sejour.date = subview.date AND + p_mouvements_sejour.heure_debut = subview.heure_debut + ; + END IF; + + + + RAISE NOTICE '%' , 'Seances dans taux occupation'; + UPDATE w_mvt p_mouvements_sejour + SET nb_seances_dans_taux = CASE WHEN p_sejours.type_sejour = '5' THEN p_mouvements_sejour.nb_seances ELSE 0 END + FROM activite.p_sejours + WHERE p_mouvements_sejour.no_sejour = p_sejours.no_sejour AND + p_mouvements_sejour.nb_seances > 0 AND + p_mouvements_sejour.nb_seances_dans_taux <> CASE WHEN p_sejours.type_sejour = '5' THEN p_mouvements_sejour.nb_seances ELSE 0 END + ; + RAISE NOTICE '%' , 'Chambres particulieres des ambulatoires'; + UPDATE w_mvt + SET est_chambre_particuliere = '1' + WHERE lieu_id = ANY + ( + SELECT t_lieux.oid + FROM w_lieux_etendus t_lieux + WHERE lit_id <> 0 AND lit_chambre_particuliere = 'O' + ) AND + nb_ambulatoires > 0 AND + est_chambre_particuliere <> '1' + ; + RAISE NOTICE '%' , 'Chambres particulieres des hospitalisés'; + UPDATE w_mvt + SET est_chambre_particuliere = '1' + WHERE lieu_id = ANY + ( + SELECT t_lieux.oid + FROM w_lieux_etendus t_lieux + WHERE lit_id <> 0 AND lit_chambre_particuliere = 'O' + ) AND + est_jour_hospitalisation = '1' AND + est_chambre_particuliere <> '1' + ; + + RAISE NOTICE '%' , 'Precalcul EMC'; + DROP TABLE IF EXISTS w_mvt_emc; + CREATE TEMP TABLE w_mvt_emc AS + SELECT no_sejour, + CASE + WHEN service_type_t2a IN ('2','3') AND mode_traitement_code IN ('04','06','19','20','22') THEN to_char(date,'YYYYMMDD') + WHEN service_type_t2a IN ('2','3') AND t_divers.valeur = '1' THEN to_char(date,'YYYYIW') + ELSE '' END AS week, + SUM( + CASE WHEN est_jour_hospitalisation = '1' + THEN EXTRACT(EPOCH FROM (to_char(heure_fin,'FM000000')::time without time zone - to_char(heure_debut,'FM000000')::time without time zone)) + ELSE 0 END + )::numeric AS totseconds + FROM w_mvt + JOIN w_lieux_etendus t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_divers ON t_divers.code = 'EMCHCSSRPSY' + GROUP BY 1,2 + ; + CREATE INDEX w_mvt_emc_i1 + ON w_mvt_emc + USING btree + (no_sejour); + RAISE NOTICE '%' , 'Calcul des journees'; + UPDATE w_mvt SET + nb_jours_d = + CASE + WHEN service_mode_calcul_journees = '1'::text THEN + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND (1!=1 + OR w_mvt.est_jour_sortie <> '1'::bpchar + ) + AND (1!=1 + OR w_mvt.nb_entrees_directes = 1::NUMERIC + OR w_mvt.heure_debut = 0::NUMERIC AND w_mvt.est_premier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_premier_mouvement_jour = '1'::bpchar AND w_mvt.heure_debut <= p_sejours.heure_entree + ) + THEN 1::INTEGER + ELSE 0::INTEGER + END + + WHEN service_mode_calcul_journees = '2'::text THEN + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND (1!=1 + OR w_mvt.nb_entrees_directes = 1::NUMERIC + OR w_mvt.heure_debut = 0::NUMERIC AND w_mvt.est_premier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_premier_mouvement_jour = '1'::bpchar + ) + THEN 1::INTEGER + ELSE 0::INTEGER + END + + ELSE + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND (1!=1 + OR w_mvt.est_jour_sortie <> '1'::bpchar + OR (mode_traitement_code = ANY (ARRAY ['04'::text, '06'::text, '19'::text, '20'::text, '22'::text])) AND w_mvt.nb_sorties_directes = 1::NUMERIC + OR w_mvt.est_jour_entree = '1'::bpchar AND w_mvt.est_jour_sortie = '1'::bpchar + ) + AND (1!=1 + OR w_mvt.nb_entrees_directes = 1::NUMERIC + OR w_mvt.heure_debut = 0::NUMERIC AND w_mvt.est_premier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_premier_mouvement_jour = '1'::bpchar + ) + THEN 1::INTEGER + ELSE 0::INTEGER + END + END + , + + nb_jours_f = + CASE + WHEN service_mode_calcul_journees = '1' THEN + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND (1!=1 + OR w_mvt.est_jour_sortie <> '1'::bpchar + ) + AND (1!=1 + OR w_mvt.heure_fin = 240000::NUMERIC AND w_mvt.est_dernier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_dernier_mouvement_jour = '1'::bpchar + ) + THEN 1::INTEGER + ELSE 0::INTEGER + END + + WHEN service_mode_calcul_journees = '2' THEN + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND (1!=1 + OR w_mvt.heure_fin = 240000::NUMERIC AND w_mvt.est_dernier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_dernier_mouvement_jour = '1'::bpchar + OR w_mvt.nb_sorties_directes = 1::NUMERIC + ) + THEN 1::INTEGER + ELSE 0::INTEGER + END + + ELSE + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND (1!=1 + OR w_mvt.est_jour_sortie <> '1'::bpchar + OR (mode_traitement_code = ANY (ARRAY ['04'::text, '06'::text, '19'::text, '20'::text, '22'::text])) AND w_mvt.nb_sorties_directes = 1::NUMERIC + OR w_mvt.est_jour_entree = '1'::bpchar AND w_mvt.est_jour_sortie = '1'::bpchar + ) + AND (1!=1 + OR w_mvt.heure_fin = 240000::NUMERIC AND w_mvt.est_dernier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_dernier_mouvement_jour = '1'::bpchar + OR w_mvt.nb_sorties_directes = 1::NUMERIC + ) + THEN 1::INTEGER + ELSE 0::INTEGER + END + END + , + + nb_jours_12 = + CASE + WHEN service_est_absence <> '1'::bpchar AND + w_mvt.est_jour_hospitalisation = '1'::bpchar AND + 120000::numeric BETWEEN w_mvt.heure_debut AND w_mvt.heure_fin THEN 1::integer + WHEN service_est_absence <> '1'::bpchar AND + w_mvt.nb_entrees_directes = 1 AND + w_mvt.heure_debut > 120000 THEN 1::integer + WHEN service_est_absence <> '1'::bpchar AND + service_mode_calcul_journees = '2' AND + w_mvt.nb_sorties_directes = 1 AND + w_mvt.heure_fin < 120000 THEN 1::integer + else 0 ::integer + + + END + , + + nb_jours_prorata = + CASE + WHEN service_est_absence <> '1'::bpchar + THEN (( + CASE + WHEN heure_debut <> 240000 THEN substr(to_char(heure_fin,'FM000000'),1,2)::numeric * 3600 + substr(to_char(heure_fin,'FM000000'),3,2)::numeric * 60 + substr(to_char(heure_fin,'FM000000'),5,2)::numeric + ELSE 86400 END + - + CASE + WHEN heure_debut <> 0 THEN substr(to_char(heure_debut,'FM000000'),1,2)::numeric * 3600 + substr(to_char(heure_debut,'FM000000'),3,2)::numeric * 60 + substr(to_char(heure_debut,'FM000000'),5,2)::numeric + ELSE 0 END + ) / 86400)::NUMERIC + ELSE 0::NUMERIC + END + + , + + nb_jours_cp_d = + CASE + WHEN service_mode_calcul_journees = '1' THEN + CASE + WHEN + service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND w_mvt.est_jour_sortie <> '1'::bpchar + AND w_mvt.est_chambre_particuliere = '1'::bpchar + AND (1!=1 + OR w_mvt.nb_entrees_directes = 1::NUMERIC + OR w_mvt.heure_debut = 0::NUMERIC AND w_mvt.est_premier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_premier_mouvement_jour = '1'::bpchar + ) + THEN 1::INTEGER + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.nb_ambulatoires = 1::NUMERIC + AND w_mvt.est_chambre_particuliere = '1'::bpchar + THEN 1::INTEGER + ELSE 0::INTEGER + END + + WHEN service_mode_calcul_journees = '2' THEN + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND w_mvt.est_chambre_particuliere = '1'::bpchar + AND (1!=1 + OR w_mvt.nb_entrees_directes = 1::NUMERIC + OR w_mvt.heure_debut = 0::NUMERIC AND w_mvt.est_premier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_premier_mouvement_jour = '1'::bpchar + ) + THEN 1::INTEGER + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.nb_ambulatoires = 1::NUMERIC + AND w_mvt.est_chambre_particuliere = '1'::bpchar + THEN 1::INTEGER + ELSE 0::INTEGER + END + ELSE + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND (1!=1 + OR w_mvt.est_jour_sortie <> '1'::bpchar + OR w_mvt.est_jour_entree = '1'::bpchar AND w_mvt.est_jour_sortie = '1'::bpchar + ) + AND w_mvt.est_chambre_particuliere = '1'::bpchar + AND (1!=1 + OR w_mvt.nb_entrees_directes = 1::NUMERIC + OR w_mvt.heure_debut = 0::NUMERIC AND w_mvt.est_premier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_premier_mouvement_jour = '1'::bpchar + ) + THEN 1::INTEGER + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.nb_ambulatoires = 1::NUMERIC + AND w_mvt.est_chambre_particuliere = '1'::bpchar + THEN 1::INTEGER + ELSE 0::INTEGER + END + END + , + + nb_jours_cp_f = + CASE + WHEN service_mode_calcul_journees = '1' THEN + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND w_mvt.est_jour_sortie <> '1'::bpchar + AND w_mvt.est_chambre_particuliere = '1'::bpchar + AND (1!=1 + OR w_mvt.heure_fin = 240000::NUMERIC AND w_mvt.est_dernier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_dernier_mouvement_jour = '1'::bpchar + OR w_mvt.nb_sorties_directes = 1::NUMERIC + ) + THEN 1::INTEGER + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.nb_ambulatoires = 1::NUMERIC + AND w_mvt.est_chambre_particuliere = '1'::bpchar + THEN 1::INTEGER + ELSE 0::INTEGER + END + WHEN service_mode_calcul_journees = '2' THEN + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND w_mvt.est_chambre_particuliere = '1'::bpchar + AND (1!=1 + OR w_mvt.heure_fin = 240000::NUMERIC AND w_mvt.est_dernier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_dernier_mouvement_jour = '1'::bpchar + OR w_mvt.nb_sorties_directes = 1::NUMERIC + ) + THEN 1::INTEGER + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.nb_ambulatoires = 1::NUMERIC + AND w_mvt.est_chambre_particuliere = '1'::bpchar + THEN 1::INTEGER + ELSE 0::INTEGER + END + ELSE + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND (1!=1 + OR w_mvt.est_jour_sortie <> '1'::bpchar + OR w_mvt.est_jour_entree = '1'::bpchar AND w_mvt.est_jour_sortie = '1'::bpchar + ) + AND w_mvt.est_chambre_particuliere = '1'::bpchar + AND (1!=1 + OR w_mvt.heure_fin = 240000::NUMERIC AND w_mvt.est_dernier_mouvement_jour IS DISTINCT FROM '9' + OR w_mvt.est_dernier_mouvement_jour = '1'::bpchar + OR w_mvt.nb_sorties_directes = 1::NUMERIC + ) + THEN 1::INTEGER + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.nb_ambulatoires = 1::NUMERIC + AND w_mvt.est_chambre_particuliere = '1'::bpchar + THEN 1::INTEGER + ELSE 0::INTEGER + END + END + , + + nb_jours_cp_12 = + CASE + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.est_jour_hospitalisation = '1'::bpchar + AND w_mvt.est_chambre_particuliere = '1'::bpchar + AND 120000::NUMERIC >= w_mvt.heure_debut + AND 120000::NUMERIC <= w_mvt.heure_fin + THEN 1::INTEGER + WHEN 1=1 + AND service_est_absence <> '1'::bpchar + AND w_mvt.nb_ambulatoires = 1::NUMERIC + AND w_mvt.est_chambre_particuliere = '1'::bpchar + AND 120000::NUMERIC >= w_mvt.heure_debut + AND 120000::NUMERIC <= w_mvt.heure_fin + THEN 1::INTEGER + WHEN service_est_absence <> '1'::bpchar AND + w_mvt.est_chambre_particuliere = '1'::bpchar AND + w_mvt.nb_entrees_directes = 1 AND + w_mvt.heure_debut > 120000 THEN 1::integer + WHEN service_est_absence <> '1'::bpchar AND + w_mvt.est_chambre_particuliere = '1'::bpchar AND + service_mode_calcul_journees = '2' AND + w_mvt.nb_sorties_directes = 1 AND + w_mvt.heure_fin < 120000 THEN 1::integer + ELSE 0::INTEGER + + END, + equivalent_malade_complet = + CASE + WHEN p_sejours.type_sejour = '1' AND est_jour_hospitalisation = '1' + THEN base.cti_division + (EXTRACT(EPOCH FROM (to_char(heure_fin,'FM000000')::time without time zone - to_char(heure_debut,'FM000000')::time without time zone))::numeric, + totseconds + ) + WHEN p_sejours.type_sejour = '2' AND nb_ambulatoires = 1 THEN 1 + WHEN p_sejours.type_sejour = '3' AND nb_externes = 1 THEN 1 + WHEN p_sejours.type_sejour = '5' AND nb_seances >= 1 THEN 1 + ELSE 0 + END + + FROM + w_lieux_etendus t_lieux, + activite.p_sejours, + w_mvt_emc, + activite.t_divers t_divers_emchcssrpsy + WHERE 1=1 + AND w_mvt.lieu_id = t_lieux.oid + AND w_mvt.no_sejour = p_sejours.no_sejour + AND w_mvt.no_sejour = w_mvt_emc.no_sejour + AND (CASE + WHEN service_type_t2a IN ('2','3') AND mode_traitement_code IN ('04','06','19','20','22') THEN to_char(date,'YYYYMMDD') + WHEN service_type_t2a IN ('2','3') AND t_divers_emchcssrpsy.valeur = '1' THEN to_char(date,'YYYYIW') + ELSE '' END) = w_mvt_emc.week + AND t_divers_emchcssrpsy.code = 'EMCHCSSRPSY'; + -- remise en place jours d'absence + IF _nb_services_absence > 0 THEN + RAISE NOTICE '%' , 'Traitement special absences (2)'; + UPDATE w_mvt SET + est_premier_mouvement_jour = '0', + est_dernier_mouvement_jour = '0' + FROM w_absences + WHERE w_absences.no_sejour = w_mvt.no_sejour AND + w_absences.date = w_mvt.date ; + END IF; + + RAISE NOTICE '%' , 'Entrees en urgence'; + + -- entrées en urgence selon etage + UPDATE w_mvt p_mouvements_sejour + SET nb_urgences = 1 + FROM w_lieux_etendus t_lieux + WHERE lieu_id = t_lieux.oid AND + etage_est_urgence = '1' AND + nb_urgences = 0 AND + (nb_entrees_directes = 1 OR + nb_ambulatoires = 1 OR + nb_externes = 1 + ) + ; + + + UPDATE activite.p_sejours + SET provenance = '5' + FROM w_mvt p_mouvements_sejour + WHERE p_sejours.no_sejour = p_mouvements_sejour.no_sejour AND + p_mouvements_sejour.nb_urgences = 1 AND + p_sejours.provenance <> '5' + ; + + -- entrées en urgence selon dmt + UPDATE w_mvt + SET nb_urgences = 1 + FROM w_lieux_etendus t_lieux + WHERE lieu_id = t_lieux.oid AND + dmt_code = ANY(ARRAY['303', '307', '308', '401', '402', '403', '404', '405', '406', '407', '408', '409']) AND + nb_urgences <> 1 AND + ( + nb_entrees_directes = 1 OR + nb_ambulatoires = 1 OR + nb_externes = 1 + ) + ; + UPDATE w_mvt + SET nb_urgences = 1 + FROM activite.p_sejours + WHERE w_mvt.no_sejour = p_sejours.no_sejour AND + nb_urgences <> 1 AND + provenance = '5' AND + ( + nb_entrees_directes = 1 OR + nb_ambulatoires = 1 OR + nb_externes = 1) + ; + + -- Enlever les séances en hospit si paramétrage + UPDATE w_mvt + SET nb_seances = 0 + FROM activite.p_sejours + JOIN activite.t_divers ON t_divers.code = 'SEANCEHOSPIT' AND t_divers.valeur = '0' + WHERE w_mvt.no_sejour = p_sejours.no_sejour AND + type_sejour <> '5' AND + nb_seances <> 0 + ; + + -- Enlever les séances (sauf dialyse) en hospit si paramétrage + DROP TABLE IF EXISTS w_seances_all; + CREATE TEMP TABLE w_seances_all AS + SELECT p_sejours.no_sejour, date, '0'::text AS dialyse + FROM w_mvt + JOIN activite.p_sejours ON w_mvt.no_sejour = p_sejours.no_sejour + JOIN activite.t_divers ON t_divers.code = 'SEANCEHOSPIT' AND t_divers.valeur = '2' + WHERE type_sejour <> '5' AND + nb_seances <> 0 + ; + + UPDATE w_seances_all + SET dialyse = '1' + FROM activite.p_factures_lignes_h p_factures_lignes + JOIN base.t_actes ON acte_id = t_actes.oid AND t_actes.code LIKE 'JVJF%' + JOIN activite.p_factures ON p_factures_lignes.no_facture = p_factures.no_facture + WHERE p_factures.no_sejour = w_seances_all.no_sejour AND + p_factures_lignes.date_debut = w_seances_all.date + ; + + UPDATE w_seances_all + SET dialyse = '1' + FROM activite.p_factures_lignes_non_facturees_h p_factures_lignes + JOIN base.t_actes ON acte_id = t_actes.oid AND t_actes.code LIKE 'JVJF%' + JOIN activite.p_factures ON p_factures_lignes.no_facture = p_factures.no_facture + WHERE p_factures.no_sejour = w_seances_all.no_sejour AND + p_factures_lignes.date_debut = w_seances_all.date + ; + + UPDATE w_seances_all + SET dialyse = '1' + FROM activite.p_factures_lignes_c p_factures_lignes + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND (t_prestations.code LIKE 'D0%' OR t_prestations.code LIKE 'D1%' ) + JOIN activite.p_factures ON p_factures_lignes.no_facture = p_factures.no_facture + WHERE p_factures.no_sejour = w_seances_all.no_sejour AND + p_factures_lignes.date_debut = w_seances_all.date + ; + + UPDATE w_seances_all + SET dialyse = '1' + FROM activite.p_factures_lignes_non_facturees_c p_factures_lignes + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND (t_prestations.code LIKE 'D0%' OR t_prestations.code LIKE 'D1%' ) + JOIN activite.p_factures ON p_factures_lignes.no_facture = p_factures.no_facture + WHERE p_factures.no_sejour = w_seances_all.no_sejour AND + p_factures_lignes.date_debut = w_seances_all.date + ; + + UPDATE w_mvt + SET nb_seances = 0 + FROM w_seances_all + WHERE w_mvt.no_sejour = w_seances_all.no_sejour AND + w_mvt.date = w_seances_all.date AND + dialyse = '0' + ; + + -- Nb jours des sortis pour calcul DMS + UPDATE w_mvt + SET nb_jour_sejour_sorti = subview.nb_jour_sejour_sorti + FROM + (SELECT no_sejour, + SUM(nb_jours_f) AS nb_jour_sejour_sorti, + MAX(CASE WHEN nb_sorties_directes > 0 THEN date ELSE NULL END) AS date, + MAX(CASE WHEN nb_sorties_directes > 0 THEN heure_fin ELSE NULL END) AS heure_fin + FROM w_mvt + WHERE est_mouvement_previsionnel <> '1' + GROUP BY 1 + HAVING SUM(nb_sorties_directes) > 0 + ) subview + WHERE w_mvt.no_sejour = subview.no_sejour AND + w_mvt.date = subview.date AND + w_mvt.heure_fin = subview.heure_fin AND + nb_sorties_directes > 0 + ; + + UPDATE w_mvt + SET nb_jour_sejour_sorti = nb_ambulatoires + WHERE est_mouvement_previsionnel <> '1' AND + nb_ambulatoires <> 0 + ; + + UPDATE w_mvt + SET nb_jour_sejour_sorti = nb_seances + FROM activite.p_sejours + WHERE w_mvt.no_sejour = p_sejours.no_sejour AND + p_sejours.type_sejour = '5' AND + est_mouvement_previsionnel <> '1' AND + nb_seances <> 0 + ; + + -- Distinction des types de séances + UPDATE w_mvt p_mouvements_sejour + SET nb_seances_dialyse = nb_seances + FROM activite.p_sejours + JOIN base.t_ghm ON ghm_id = t_ghm.oid + WHERE p_mouvements_sejour.no_sejour = p_sejours.no_sejour AND + p_sejours.type_sejour = '5' AND + nb_seances <> 0 AND + t_ghm.code = ANY(Array['28Z01Z','28Z02Z','28Z03Z','28Z04Z','28Z05Z','28Z06Z']) AND + nb_seances_dialyse IS DISTINCT FROM nb_seances + ; + + UPDATE w_mvt p_mouvements_sejour + SET nb_seances_chimio = nb_seances + FROM activite.p_sejours + JOIN base.t_ghm ON ghm_id = t_ghm.oid + WHERE p_mouvements_sejour.no_sejour = p_sejours.no_sejour AND + p_sejours.type_sejour = '5' AND + nb_seances <> 0 AND + t_ghm.code = ANY(Array['28Z07Z','28Z17Z']) AND + nb_seances_dialyse IS DISTINCT FROM nb_seances + ; + + UPDATE w_mvt p_mouvements_sejour + SET nb_seances_chimio = nb_seances + FROM activite.p_sejours + JOIN base.t_ghs ON ghs_id = t_ghs.oid + WHERE p_mouvements_sejour.no_sejour = p_sejours.no_sejour AND + p_sejours.type_sejour = '5' AND + nb_seances <> 0 AND + t_ghs.code = ANY(Array[9606]) AND + nb_seances_chimio = 0 + ; + + DROP TABLE IF EXISTS w_seances_hospit_fac; + CREATE TEMP TABLE w_seances_hospit_fac AS + SELECT p_factures.no_sejour + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + WHERE p_sejours.type_sejour <> '5' AND + t_prestations.code = ANY(Array['D09','D11','D15','D16','DTP']) + GROUP BY 1 + ; + + UPDATE w_mvt p_mouvements_sejour + SET nb_seances_dialyse = nb_seances + WHERE nb_seances <> 0 AND + nb_seances_dialyse IS DISTINCT FROM nb_seances AND + no_sejour IN (SELECT no_sejour FROM w_seances_hospit_fac) + ; + + DROP TABLE IF EXISTS w_seances_hospit_nfac; + CREATE TEMP TABLE w_seances_hospit_nfac AS + SELECT p_factures.no_sejour + FROM activite.p_factures_lignes_non_facturees_c p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + WHERE p_sejours.type_sejour <> '5' AND + t_prestations.code = ANY(Array['D09','D11','D15','D16','DTP']) + GROUP BY 1 + ; + + UPDATE w_mvt p_mouvements_sejour + SET nb_seances_dialyse = nb_seances + WHERE nb_seances <> 0 AND + nb_seances_dialyse IS DISTINCT FROM nb_seances AND + no_sejour IN (SELECT no_sejour FROM w_seances_hospit_nfac) + ; + + DROP TABLE IF EXISTS w_seances_dialyse_dmt; + CREATE TEMP TABLE w_seances_dialyse_dmt AS + SELECT no_sejour + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + JOIN base.t_dmt ON dmt_id = t_dmt.oid + WHERE nb_seances_autre > 0 AND + t_dmt.texte ILIKE '%dialyse%' + GROUP BY 1 + ; + + UPDATE w_mvt p_mouvements_sejour + SET nb_seances_dialyse = nb_seances + WHERE nb_seances <> 0 AND + nb_seances_dialyse IS DISTINCT FROM nb_seances AND + no_sejour IN (SELECT no_sejour FROM w_seances_dialyse_dmt) + ; + + UPDATE w_mvt p_mouvements_sejour + SET nb_seances_autre = nb_seances - nb_seances_dialyse - nb_seances_chimio + WHERE nb_seances <> 0 AND + nb_seances_autre IS DISTINCT FROM (nb_seances - nb_seances_dialyse - nb_seances_chimio) + ; + + UPDATE w_mvt p_mouvements_sejour SET + nb_preadmission_validee = 1, + nb_preadmission_validee_j1 = subview.preadmission_j1, + nb_preadmission_validee_j2 = subview.preadmission_j2 + FROM + ( + SELECT p_sejours_preadmission.no_sejour, + p_mouvements_sejour.date, + preadmission_j1, + preadmission_j2 + FROM activite.p_sejours_preadmission + JOIN activite.p_sejours on p_sejours_preadmission.no_sejour = p_sejours.no_sejour + JOIN w_mvt p_mouvements_sejour on + p_sejours_preadmission.no_sejour = p_mouvements_sejour.no_sejour AND + date(p_sejours_preadmission.date_entree) = p_mouvements_sejour.date AND + ( + nb_entrees_directes = 1 OR + nb_ambulatoires = 1 OR + nb_externes = 1 OR + nb_seances > 0 + ) + WHERE date_validation_preadmission IS NOT NULL AND + code_prevu = '0' + ) subview + WHERE p_mouvements_sejour.no_sejour = subview.no_sejour AND + p_mouvements_sejour.date = subview.date AND + ( + nb_entrees_directes = 1 OR + nb_ambulatoires = 1 OR + nb_externes = 1 OR + nb_seances > 0 + ) + ; + + -- Enlever les journées pour les bébés (type séjour 6 - MEDSPHERE, HM) + UPDATE w_mvt p_mouvements_sejour + SET + nb_ambulatoires = 0, + nb_chambres_particulieres = 0, + nb_entrees_directes = 0, + nb_entrees_mutation_activite = 0, + nb_entrees_mutation_etage = 0, + nb_entrees_mutation_service = 0, + nb_entrees_mutation_unite_medicale = 0, + nb_entrees_mutations = 0, + nb_externes = 0, + nb_jour_sejour_sorti = 0, + nb_jours_12 = 0, + nb_jours_cp_12 = 0, + nb_jours_cp_d = 0, + nb_jours_cp_f = 0, + nb_jours_d = 0, + nb_jours_f = 0, + nb_jours_js_inclus = 0, + nb_jours_js_non_inclus = 0, + nb_jours_prorata = 0, + nb_passage_externe = 0, + nb_seances = 0, + nb_seances_autre = 0, + nb_seances_chimio = 0, + nb_seances_dans_taux = 0, + nb_seances_dialyse = 0, + nb_sorties_directes = 0, + nb_sorties_mutation_activite = 0, + nb_sorties_mutation_etage = 0, + nb_sorties_mutation_service = 0, + nb_sorties_mutation_unite_medicale = 0, + nb_sorties_mutations = 0, + nb_urgences = 0 + FROM activite.p_sejours + WHERE p_sejours.no_sejour = p_mouvements_sejour.no_sejour AND + p_sejours.type_sejour IN ('6') + ; + + RAISE NOTICE '%' , 'Décomposition par type pmsi'; + + --Décomposition par type_pmsi et type_sejour + DROP TABLE IF EXISTS w_mvt_pmsi; + CREATE TEMP TABLE w_mvt_pmsi AS + SELECT w_mvt.*, + p_sejours.type_pmsi, + p_sejours.mode_traitement_id , + p_sejours.type_sejour, + p_sejours.forme_activite_id + FROM w_mvt + JOIN activite.p_sejours ON p_sejours.no_sejour = w_mvt.no_sejour + JOIN w_lieux_etendus ON w_lieux_etendus.oid = w_mvt.lieu_id; + + + -- MAJ MCO hospi + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 11 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 1 AND w_mvt_pmsi.type_sejour = 1; + + -- MAJ MCO ambu + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 12 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 1 AND w_mvt_pmsi.type_sejour = 2; + + -- MAJ MCO seances + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 15 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 1 AND w_mvt_pmsi.type_sejour = 5; + + + -- MAJ SSR hospitalisation complète + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 21 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 2 AND w_mvt_pmsi.type_sejour = 1; + + -- MAJ SSR hospitalisation partiel ou HDJ + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 22 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 2 AND w_mvt_pmsi.type_sejour = 2; + + -- MAJ SSR Autres + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 24 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 2 AND w_mvt_pmsi.type_sejour not in ('1','2'); + + -- MAJ SSR Autres + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 24 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 2 AND w_mvt_pmsi.type_sejour not in ('1','2'); + + -- MAJ PSY HC + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 31 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 3 AND w_mvt_pmsi.type_sejour = 1; + + -- MAJ PSY HP (HDJ) + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 32 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 3 AND w_mvt_pmsi.type_sejour = 2; + + -- MAJ PSY Autres + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 33 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 3 AND w_mvt_pmsi.type_sejour not in ('1','2'); + + -- MAJ HAD Hospi + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 41 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_pmsi = 4 AND w_mvt_pmsi.type_sejour = 1; + + -- MAJ Externes + UPDATE activite.p_sejours + SET type_hospi_pmsi_id = 30 + FROM w_mvt_pmsi + WHERE 1=1 + AND p_sejours.no_sejour = w_mvt_pmsi.no_sejour + AND w_mvt_pmsi.type_sejour = 3; + + RAISE NOTICE '%' , 'sequence de changement du lieu'; + + with clustering as ( + select + sejour_id, + lieu_id, + date, + case when lag(lieu_id) over w = coalesce(lieu_id) then null else true end as new_cluster + from w_mvt + window w as (partition by sejour_id order by date, nb_jours_js_non_inclus) + ) + ,assigned_clustering as ( + select + sejour_id, + lieu_id, + date, + count(new_cluster) over (order by sejour_id, date rows unbounded preceding) as cluster_id + from clustering) + UPDATE w_mvt + SET sequences = assigned_clustering.cluster_id + FROM assigned_clustering + WHERE w_mvt.sejour_id = assigned_clustering.sejour_id + AND w_mvt.lieu_id = assigned_clustering.lieu_id + AND w_mvt.date = assigned_clustering.date + ; + + -- Réécriture des données dans la table de production + RAISE NOTICE '%' , 'Ecriture des donnees dans la table de production'; + TRUNCATE activite.p_mouvements_sejour; + + INSERT INTO activite.p_mouvements_sejour + SELECT * FROM w_mvt; + + -- Activation index + RAISE NOTICE '%' , 'Reactivation index'; + PERFORM base.cti_stash_pop_table_indexes('activite.p_mouvements_sejour'); + + ANALYZE activite.p_mouvements_sejour; + + RETURN 'OK' ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_cegi_signe_reglement~nu,bia,nua.yaml b/db/schema2/functions/cti_cegi_signe_reglement~nu,bia,nua.yaml new file mode 100644 index 0000000..4985f1d --- /dev/null +++ b/db/schema2/functions/cti_cegi_signe_reglement~nu,bia,nua.yaml @@ -0,0 +1,248 @@ +return: 'numeric[]' +lang: plpgsql +parameters: + p0: + type: numeric + name: montant_fact + p1: + type: 'bigint[]' + name: oid_array + p2: + type: 'numeric[]' + name: montant_reglement_array +strict: STRICT +src: | + DECLARE + i integer; + i1 integer; + i2 integer; + i3 integer; + l integer; + n integer; + new_montant_fact numeric; + new_montant_reglement_array numeric[500][3]; + signe_array_1 numeric[]; + signe_array_2 numeric[]; + signe_array_3 numeric[]; + BEGIN + i = 1; + l = split_part(split_part(split_part(array_dims(oid_array),':',2),'[',1),']',1)::int; + FOR i IN 1..l LOOP + signe_array_1[i] = 1; + signe_array_2[i] = 1; + signe_array_3[i] = 1; + END LOOP; + FOR i1 IN 1..l LOOP + signe_array_1[l - i1 + 1] = 0 - signe_array_1[l - i1 + 1]; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = montant_fact THEN + return new_montant_reglement_array; + END IF; + FOR i2 IN 1..l LOOP + signe_array_2[l - i2 + 1] = 0 - signe_array_2[l - i2 + 1]; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = montant_fact THEN + return new_montant_reglement_array; + END IF; + + FOR i3 IN 1..l LOOP + signe_array_2[l - i3 + 1] = 0 - signe_array_2[l - i3 + 1]; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = montant_fact THEN + return new_montant_reglement_array; + END IF; + + END LOOP; + + END LOOP; + + END LOOP; + FOR i IN 1..l LOOP + signe_array_1[i] = 1; + signe_array_2[i] = 1; + signe_array_3[i] = 1; + END LOOP; + FOR i1 IN 1..l LOOP + FOR i IN 1..l LOOP + signe_array_1[i] = 1; + END LOOP; + signe_array_1[l - i1 + 1] = 0; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = montant_fact THEN + return new_montant_reglement_array; + END IF; + FOR i2 IN 1..l LOOP + + FOR i IN 1..l LOOP + signe_array_2[i] = 1; + END LOOP; + signe_array_2[l - i2 + 1] = 0; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = montant_fact THEN + return new_montant_reglement_array; + END IF; + + FOR i3 IN 1..l LOOP + FOR i IN 1..l LOOP + signe_array_3[i] = 1; + END LOOP; + signe_array_3[l - i3 + 1] = 0; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = montant_fact THEN + return new_montant_reglement_array; + END IF; + + END LOOP; + + END LOOP; + + END LOOP; + FOR i IN 1..l LOOP + signe_array_1[i] = 1; + signe_array_2[i] = 1; + signe_array_3[i] = 1; + END LOOP; + FOR i1 IN 1..l LOOP + signe_array_1[l - i1 + 1] = 0 - signe_array_1[l - i1 + 1]; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = 0 THEN + return new_montant_reglement_array; + END IF; + FOR i2 IN 1..l LOOP + signe_array_2[l - i2 + 1] = 0 - signe_array_2[l - i2 + 1]; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = 0 THEN + return new_montant_reglement_array; + END IF; + + FOR i3 IN 1..l LOOP + signe_array_2[l - i3 + 1] = 0 - signe_array_2[l - i3 + 1]; + new_montant_fact = 0; + new_montant_reglement_array = array[array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0],array[0,0], + array[0,0]]; + n = 0; + FOR i IN 1..l LOOP + IF signe_array_1[i] * signe_array_2[i] * signe_array_3[i] <> 1 THEN + n = n + 1; + new_montant_reglement_array[n][1] = oid_array[i]::numeric; + new_montant_reglement_array[n][2] = montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END IF; + new_montant_fact = new_montant_fact + montant_reglement_array[i] * signe_array_1[i] * signe_array_2[i] * signe_array_3[i]; + END LOOP; + + IF new_montant_fact = 0 THEN + return new_montant_reglement_array; + END IF; + + END LOOP; + + END LOOP; + + END LOOP; + return null; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_execute_compte_produit_analytique_rule.yaml b/db/schema2/functions/cti_execute_compte_produit_analytique_rule.yaml new file mode 100644 index 0000000..a5d6bcd --- /dev/null +++ b/db/schema2/functions/cti_execute_compte_produit_analytique_rule.yaml @@ -0,0 +1,502 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + _module_pmsimco TEXT; + _with_acte TEXT; + BEGIN + + RAISE NOTICE '%' , 'Initialisation'; + + IF (SELECT count(*) FROM activite.t_compte_produit_analytique_rule) = 0 THEN + RETURN 'OK. Aucune regle'; + END IF; + + RAISE NOTICE '%' , 'Application des regles'; + + -- pmsi mco ? + _module_pmsimco = '0'; + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + IF (SELECT count(*) + FROM activite.t_compte_produit_analytique_rule + WHERE + COALESCE(liste_diagnostic_principal,'') <> '' OR + COALESCE(liste_diagnostic_relie,'') <> '' OR + COALESCE(liste_diagnostic_associe,'') <> '') > 1 THEN + _module_pmsimco = '1'; + RAISE NOTICE '%' , 'Application des regles. Avec PMSI MCO'; + END IF; + END IF; + + -- Rubriques ? + _with_acte = '0'; + IF (SELECT count(*) + FROM activite.t_compte_produit_analytique_rule + WHERE COALESCE(liste_acte,'') <> '' + ) > 0 THEN + _with_acte = '1'; + END IF; + + -- Sejours et RSS à Traiter + + RAISE NOTICE '%' , 'Application des regles. Identification des sejours'; + DROP SEQUENCE IF EXISTS w_factures_sequence; + CREATE SEQUENCE w_factures_sequence; + + DROP TABLE IF EXISTS w_factures; + CREATE TEMP TABLE w_factures AS + SELECT + nextval('w_factures_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + p_factures.no_facture AS no_facture, + 0::bigint AS diagnostic_principal_id, + 0::bigint AS diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + p_sejours.ghm_id AS ghm_id, + medecin_sejour_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + p_sejours.type_sejour, + p_sejours.lieu_sortie_id, + t_lieux.unite_fonctionnelle_id AS unite_fonctionnelle_sortie_id, + t_lieux.service_facturation_id AS service_facturation_sortie_id, + t_lits.etage_id AS etage_sortie_id, + t_lieux.activite_id AS activite_sortie + FROM activite.p_sejours + JOIN activite.p_factures ON p_sejours.no_sejour = p_factures.no_sejour + JOIN activite.t_lieux ON p_sejours.lieu_sortie_id = t_lieux.oid + JOIN activite.t_lits ON lit_id =t_lits.oid + LEFT JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid + LEFT JOIN base.t_finess ON p_sejours.finess = t_finess.code + ; + + + UPDATE w_factures + SET finess_id = (SELECT MAX(finess_id) FROM w_factures WHERE finess_id <> 0) + WHERE finess_id = 0 AND (SELECT MAX(finess_id) FROM w_factures WHERE finess_id <> 0) <> 0; + UPDATE w_factures + SET finess_id = (SELECT MAX(oid) FROM base.t_finess) + WHERE finess_id = 0; + CREATE INDEX w_factures_i0 ON w_factures USING btree (oid); + CREATE INDEX w_factures_i1 ON w_factures USING btree (sejour_id); + CREATE INDEX w_factures_i2 ON w_factures USING btree (no_sejour); + CREATE INDEX w_factures_i3 ON w_factures USING btree (no_facture); + + ANALYSE w_factures + ; + + + + + DROP TABLE IF EXISTS w_factures_encours; + CREATE TEMP TABLE w_factures_encours AS + SELECT + nextval('w_factures_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + p_factures_encours.no_facture AS no_facture, + 0::bigint AS diagnostic_principal_id, + 0::bigint AS diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + p_factures_encours.ghm_id AS ghm_id, + p_sejours.medecin_sejour_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + p_factures_encours.type_sejour, + p_factures_encours.lieu_sortie_id, + t_lieux.unite_fonctionnelle_id AS unite_fonctionnelle_sortie_id, + t_lieux.service_facturation_id AS service_facturation_sortie_id, + t_lits.etage_id AS etage_sortie_id, + t_lieux.activite_id AS activite_sortie + FROM activite.p_sejours + JOIN activite.p_factures_encours ON p_sejours.no_sejour = p_factures_encours.no_sejour + JOIN activite.t_lieux ON p_factures_encours.lieu_sortie_id = t_lieux.oid + JOIN activite.t_lits ON lit_id = t_lits.oid + LEFT JOIN activite.t_medecins_administratifs ON p_sejours.medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid + LEFT JOIN base.t_finess ON p_sejours.finess = t_finess.code + ; + + + UPDATE w_factures_encours + SET finess_id = (SELECT MAX(finess_id) FROM w_factures WHERE finess_id <> 0) + WHERE finess_id = 0 AND (SELECT MAX(finess_id) FROM w_factures WHERE finess_id <> 0) <> 0; + UPDATE w_factures_encours + SET finess_id = (SELECT MAX(oid) FROM base.t_finess) + WHERE finess_id = 0; + CREATE INDEX w_factures_encours_i0 ON w_factures_encours USING btree (oid); + CREATE INDEX w_factures_encours_i1 ON w_factures_encours USING btree (sejour_id); + CREATE INDEX w_factures_encours_i2 ON w_factures_encours USING btree (no_sejour); + CREATE INDEX w_factures_encours_i3 ON w_factures_encours USING btree (no_facture); + + ANALYSE w_factures_encours + ; + + -- Traduction des règles en oid + RAISE NOTICE '%' , 'Application des regles. Traduction en oid'; + DROP TABLE IF EXISTS w_execute_compte_produit_analytique_rule; + CREATE TEMP TABLE w_execute_compte_produit_analytique_rule AS + SELECT + t_compte_produit_analytique_rule.oid, + compte_produit_analytique_id, + CASE WHEN priorite <> 0 THEN priorite WHEN liste_diagnostic_principal <> '' THEN 90000 ELSE 999999 END AS priorite, + CASE WHEN liste_finess <> '' THEN '1' ELSE '0' END AS a_liste_finess, + string_to_array(translate(liste_finess,'*,','% '),' ') AS liste_finess, + NULL::bigint[] AS liste_finess_id , + CASE WHEN liste_diagnostic_principal <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_principal, + string_to_array(translate(liste_diagnostic_principal,'*,','% '),' ') AS liste_diagnostic_principal, + NULL::bigint[] AS liste_diagnostic_principal_id , + CASE WHEN liste_diagnostic_relie <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_relie, + string_to_array(translate(liste_diagnostic_relie,'*,','% '),' ') AS liste_diagnostic_relie, + NULL::bigint[] AS liste_diagnostic_relie_id , + CASE WHEN liste_diagnostic_associe <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_associe, + string_to_array(translate(liste_diagnostic_associe,'*,','% '),' ') AS liste_diagnostic_associe, + NULL::bigint[] AS liste_diagnostic_associe_id , + CASE WHEN liste_acte <> '' THEN '1' ELSE '0' END AS a_liste_acte, + string_to_array(translate(liste_acte,'*,','% '),' ') AS liste_acte, + NULL::bigint[] AS liste_acte_base_id , + CASE WHEN liste_ghm <> '' THEN '1' ELSE '0' END AS a_liste_ghm, + string_to_array(translate(liste_ghm,'*,','% '),' ') AS liste_ghm, + NULL::bigint[] AS liste_ghm_id, + liste_ghm AS liste_ghm_origine, + CASE WHEN liste_sauf_ghm <> '' THEN '1' ELSE '0' END AS a_liste_sauf_ghm, + string_to_array(translate(liste_sauf_ghm,'*,','% '),' ') AS liste_sauf_ghm, + NULL::bigint[] AS liste_sauf_ghm_id , + liste_sauf_ghm AS liste_sauf_ghm_origine, + CASE WHEN liste_type_sejour <> '' THEN '1' ELSE '0' END AS a_liste_type_sejour, + string_to_array(translate(liste_type_sejour,'*,','% '),' ') AS liste_type_sejour, + NULL::text[] AS liste_type_sejour_id , + CASE WHEN liste_unite_fonctionnelle <> '' THEN '1' ELSE '0' END AS a_liste_unite_fonctionnelle, + string_to_array(translate(liste_unite_fonctionnelle,'*,','% '),' ') AS liste_unite_fonctionnelle, + NULL::bigint[] AS liste_unite_fonctionnelle_id , + CASE WHEN liste_service <> '' THEN '1' ELSE '0' END AS a_liste_service, + string_to_array(translate(liste_service,'*,','% '),' ') AS liste_service, + NULL::bigint[] AS liste_service_id , + CASE WHEN liste_etage <> '' THEN '1' ELSE '0' END AS a_liste_etage, + string_to_array(translate(liste_etage,'*,','% '),' ') AS liste_etage, + NULL::bigint[] AS liste_etage_id , + CASE WHEN liste_activite <> '' THEN '1' ELSE '0' END AS a_liste_activite, + string_to_array(translate(liste_activite,'*,','% '),' ') AS liste_activite, + NULL::bigint[] AS liste_activite_id , + CASE WHEN liste_medecin <> '' THEN '1' ELSE '0' END AS a_liste_medecin, + string_to_array(CASE WHEN liste_medecin NOT LIKE '%**%' THEN translate(liste_medecin,'*,','% ') ELSE liste_medecin END,' ') AS liste_medecin, + NULL::bigint[] AS liste_medecin_activite_id , + CASE WHEN liste_specialite <> '' THEN '1' ELSE '0' END AS a_liste_specialite, + string_to_array(translate(liste_specialite,'*,','% '),' ') AS liste_specialite, + NULL::bigint[] AS liste_specialite_activite_id , + CASE WHEN liste_compte_produit <> '' THEN '1' ELSE '0' END AS a_liste_compte_produit, + string_to_array(translate(liste_compte_produit,'*,','% '),' ') AS liste_compte_produit, + NULL::bigint[] AS liste_compte_produit_id, + CASE WHEN liste_rubrique <> '' THEN '1' ELSE '0' END AS a_liste_rubrique, + string_to_array(translate(liste_rubrique,'*,','% '),' ') AS liste_rubrique, + NULL::bigint[] AS liste_rubrique_id, + CASE WHEN liste_prestation <> '' THEN '1' ELSE '0' END AS a_liste_prestation, + string_to_array(translate(liste_prestation,'*,','% '),' ') AS liste_prestation, + NULL::bigint[] AS liste_prestation_id + FROM activite.t_compte_produit_analytique_rule + JOIN activite.t_compte ON compte_produit_analytique_id = t_compte.oid + ORDER BY priorite, compte_produit_analytique_id; + + + + UPDATE w_execute_compte_produit_analytique_rule + SET liste_finess_id = (SELECT base.cti_group_array3(oid) FROM base.t_finess WHERE code LIKE ANY (liste_finess)) + WHERE a_liste_finess = '1'; + + IF _module_pmsimco = '1' THEN + UPDATE w_execute_compte_produit_analytique_rule + SET liste_diagnostic_principal_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_principal)) + WHERE a_liste_diagnostic_principal = '1'; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_diagnostic_relie_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_relie)) + WHERE a_liste_diagnostic_relie = '1'; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_diagnostic_associe_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_associe)) + WHERE a_liste_diagnostic_associe = '1'; + END IF; + + + DROP TABLE IF EXISTS w_execute_compte_produit_analytique_rule_actes_base; + CREATE TEMP TABLE w_execute_compte_produit_analytique_rule_actes_base AS + SELECT t_actes.oid AS rule_acte_id, w_execute_compte_produit_analytique_rule.oid AS rule_id + FROM base.t_actes + JOIN w_execute_compte_produit_analytique_rule ON code LIKE ANY (liste_acte); + CREATE INDEX w_execute_compte_produit_analytique_rule_actes_base_i1 ON w_execute_compte_produit_analytique_rule_actes_base USING btree (rule_acte_id); + + UPDATE w_execute_compte_produit_analytique_rule + SET liste_acte_base_id = (SELECT base.cti_group_array3(oid) FROM base.t_actes WHERE code LIKE ANY (liste_acte)) + WHERE a_liste_acte = '1' + ; + + UPDATE w_execute_compte_produit_analytique_rule + SET liste_ghm_id = (SELECT base.cti_group_array3(oid) FROM base.t_ghm WHERE code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_ghm_id = + array_cat(liste_ghm_id, + (SELECT base.cti_group_array3(t_ghm.oid) FROM base.t_ghm JOIN base.t_cas ON cas_id = t_cas.oid WHERE '[CAS:'||t_cas.code||']' LIKE ANY (liste_ghm)) + ) + WHERE a_liste_ghm = '1' AND + liste_ghm_origine LIKE '%[CAS:%' + ; + + UPDATE w_execute_compte_produit_analytique_rule + SET liste_sauf_ghm_id = (SELECT base.cti_group_array3(oid) FROM base.t_ghm WHERE code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1' + ; + + UPDATE w_execute_compte_produit_analytique_rule + SET liste_medecin_activite_id = ( + SELECT base.cti_group_array3(t_medecins_administratifs.oid) + FROM activite.t_medecins_administratifs + LEFT JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + WHERE ( + t_medecins_administratifs.oid <> 0 AND + t_medecins_administratifs.code <> '' AND + t_medecins_administratifs.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' + ) OR + ( + t_medecins_administratifs.oid IN + ( + SELECT + to_id + FROM activite.t_classes + JOIN activite.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + WHERE '[CLASSE:'||t_classes.code||':'||t_classes_sections.code||']' = ANY(liste_medecin) + ) + ) OR + ( + t_medecins.oid <> 0 AND + t_medecins.code <> '' AND + t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + ) + WHERE a_liste_medecin = '1' + ; + + UPDATE w_execute_compte_produit_analytique_rule + SET liste_specialite_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_specialites_medecin WHERE oid <> 0 AND code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_type_sejour_id = (SELECT base.cti_group_array3(code) FROM activite.t_type_sejour WHERE oid <> 0 AND code <> '' AND code LIKE ANY (liste_type_sejour)) + WHERE a_liste_type_sejour = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_unite_fonctionnelle_id = (SELECT base.cti_group_array3(oid) FROM activite.t_unites_fonctionnelles WHERE oid <> 0 AND code LIKE ANY (liste_unite_fonctionnelle)) + WHERE a_liste_unite_fonctionnelle = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_service_id = (SELECT base.cti_group_array3(oid) FROM activite.t_services_facturation WHERE oid <> 0 AND code LIKE ANY (liste_service)) + WHERE a_liste_service = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_etage_id = (SELECT base.cti_group_array3(oid) FROM activite.t_etages WHERE oid <> 0 AND code LIKE ANY (liste_etage)) + WHERE a_liste_etage = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_activite_id = (SELECT base.cti_group_array3(oid) FROM activite.t_activites WHERE oid <> 0 AND code LIKE ANY (liste_activite)) + WHERE a_liste_activite = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_rubrique_id = (SELECT base.cti_group_array3(oid) FROM activite.t_rubriques_facturation WHERE oid <> 0 AND code LIKE ANY (liste_rubrique)) + WHERE a_liste_rubrique = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_prestation_id = (SELECT base.cti_group_array3(oid) FROM activite.t_prestations WHERE oid <> 0 AND code LIKE ANY (liste_prestation)) + WHERE a_liste_prestation = '1' + ; + UPDATE w_execute_compte_produit_analytique_rule + SET liste_compte_produit_id = (SELECT base.cti_group_array3(oid) FROM activite.t_compte WHERE oid <> 0 AND code LIKE ANY (liste_compte_produit)) + WHERE a_liste_compte_produit = '1' + ; + + + + -- Association cles aux actes + RAISE NOTICE '%' , 'Application des regles. Traitement des actes'; + DROP TABLE IF EXISTS w_factures_actes; + IF _with_acte = '1' THEN + CREATE TEMP TABLE w_factures_actes AS + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_h + JOIN w_execute_compte_produit_analytique_rule_actes_base ON p_factures_lignes_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4' + UNION + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_non_facturees_h + JOIN w_execute_compte_produit_analytique_rule_actes_base ON p_factures_lignes_non_facturees_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4'; + ELSE + CREATE TEMP TABLE w_factures_actes (no_facture text, rule_id bigint); + END IF; + CREATE INDEX w_factures_actes_i1 ON w_factures_actes USING btree (no_facture); + + DROP TABLE IF EXISTS w_compte_acte; + CREATE TEMP TABLE w_compte_acte AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_factures.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_factures ON p_factures.no_sejour = w_factures.no_sejour + + ) subview + GROUP BY 1; + + ALTER TABLE w_compte_acte ADD CONSTRAINT w_compte_acte_pkey PRIMARY KEY(oid); + UPDATE w_factures + SET acte_liste_rule_id = w_compte_acte.acte_liste_rule_id + FROM w_compte_acte + WHERE w_compte_acte.oid = w_factures.oid; + + -- Diagnostics + IF _module_pmsimco = '1' THEN + RAISE NOTICE '%' , 'Application des regles. Traitement des diagnostics'; + DROP TABLE IF EXISTS w_compte_diagnostic; + CREATE TEMP TABLE w_compte_diagnostic AS + SELECT + w_factures.oid, base.cti_group_array3(w_execute_compte_produit_analytique_rule.oid) AS diagnostic_associe_liste_rule_id + FROM pmsi.p_rss_diagnostics + JOIN w_execute_compte_produit_analytique_rule ON type_diagnostic_rss IN ('DA', 'DS') AND diagnostic_id = ANY (liste_diagnostic_associe_id) + JOIN w_factures ON p_rss_diagnostics.rss_id = w_factures.rss_id + WHERE a_liste_diagnostic_associe <> '0' + GROUP BY 1; + ALTER TABLE w_compte_diagnostic ADD CONSTRAINT w_compte_diagnostic_pkey PRIMARY KEY(oid); + UPDATE w_factures + SET diagnostic_associe_liste_rule_id = w_compte_diagnostic.diagnostic_associe_liste_rule_id + FROM w_compte_diagnostic + WHERE w_compte_diagnostic.oid = w_factures.oid; + END IF; + + + + RAISE NOTICE '%' , 'Application des regles. Validation des regles'; + + -- Réplication dans tables de prod + RAISE NOTICE '%' , 'Application des regles. Validation des regles. p_factures_lignes_c'; + DROP TABLE IF EXISTS w_factures_lignes_c_compte; + CREATE TEMP TABLE w_factures_lignes_c_compte AS + SELECT p_factures_lignes_c.no_facture, + p_factures_lignes_c.CTID AS fromCTID, + COALESCE( + (MIN(ARRAY[w_execute_compte_produit_analytique_rule.priorite,w_execute_compte_produit_analytique_rule.compte_produit_analytique_id]))[2], + MAX(p_factures_lignes_c.compte_produit_id)) AS compte_produit_analytique_id + FROM activite.p_factures_lignes_c + JOIN activite.t_lieux ON p_factures_lignes_c.lieu_id = t_lieux.oid + JOIN activite.t_lits ON lit_id = t_lits.oid + JOIN w_factures ON p_factures_lignes_c.no_facture = w_factures.no_facture + LEFT JOIN w_execute_compte_produit_analytique_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_type_sejour = '0' OR type_sejour = ANY (liste_type_sejour_id)) AND + (a_liste_unite_fonctionnelle = '0' OR t_lieux.unite_fonctionnelle_id = ANY (liste_unite_fonctionnelle_id)) AND + (a_liste_service = '0' OR t_lieux.service_facturation_id = ANY (liste_service_id)) AND + (a_liste_etage = '0' OR t_lits.etage_id = ANY (liste_etage_id)) AND + (a_liste_activite = '0' OR t_lieux.activite_id = ANY (liste_activite_id)) AND + (a_liste_medecin = '0' OR medecin_sejour_id = ANY (liste_medecin_activite_id)) AND + (a_liste_specialite = '0' OR specialite_sejour_id = ANY (liste_specialite_activite_id)) AND + (a_liste_ghm = '0' OR ghm_id = ANY (liste_ghm_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_execute_compte_produit_analytique_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_execute_compte_produit_analytique_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_compte_produit = '0' OR compte_produit_id = ANY (liste_compte_produit_id)) + GROUP BY 1,2 + ; + + ANALYSE w_factures_lignes_c_compte + ; + + CREATE INDEX w_factures_lignes_c_compte_i1 ON w_factures_lignes_c_compte USING btree (no_facture) + ; + + UPDATE activite.p_factures_lignes_c + SET compte_produit_analytique_id = w_factures_lignes_c_compte.compte_produit_analytique_id + FROM w_factures_lignes_c_compte + WHERE p_factures_lignes_c.no_facture = w_factures_lignes_c_compte.no_facture AND + p_factures_lignes_c.CTID = w_factures_lignes_c_compte.fromCTID AND + p_factures_lignes_c.compte_produit_analytique_id IS DISTINCT FROM w_factures_lignes_c_compte.compte_produit_analytique_id + ; + + ANALYSE activite.p_factures_lignes_c + ; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. p_factures_encours_lignes_c'; + + DROP TABLE IF EXISTS w_factures_encours_lignes_c_compte; + CREATE TEMP TABLE w_factures_encours_lignes_c_compte AS + SELECT p_factures_encours_lignes_c.no_facture, + p_factures_encours_lignes_c.CTID AS fromCTID, + COALESCE( + (MIN(ARRAY[w_execute_compte_produit_analytique_rule.priorite,w_execute_compte_produit_analytique_rule.compte_produit_analytique_id]))[2], + MAX(p_factures_encours_lignes_c.compte_produit_id)) AS compte_produit_analytique_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.t_lieux ON p_factures_encours_lignes_c.lieu_id = t_lieux.oid + JOIN activite.t_lits ON lit_id = t_lits.oid + JOIN w_factures_encours ON p_factures_encours_lignes_c.no_facture = w_factures_encours.no_facture + LEFT JOIN w_execute_compte_produit_analytique_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_type_sejour = '0' OR type_sejour = ANY (liste_type_sejour_id)) AND + (a_liste_unite_fonctionnelle = '0' OR t_lieux.unite_fonctionnelle_id = ANY (liste_unite_fonctionnelle_id)) AND + (a_liste_service = '0' OR t_lieux.service_facturation_id = ANY (liste_service_id)) AND + (a_liste_etage = '0' OR t_lits.etage_id = ANY (liste_etage_id)) AND + (a_liste_activite = '0' OR t_lieux.activite_id = ANY (liste_activite_id)) AND + (a_liste_medecin = '0' OR medecin_sejour_id = ANY (liste_medecin_activite_id)) AND + (a_liste_specialite = '0' OR specialite_sejour_id = ANY (liste_specialite_activite_id)) AND + (a_liste_ghm = '0' OR ghm_id = ANY (liste_ghm_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_execute_compte_produit_analytique_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_execute_compte_produit_analytique_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_compte_produit = '0' OR compte_produit_id = ANY (liste_compte_produit_id)) + WHERE p_factures_encours_lignes_c.compte_produit_analytique_id = 0 + GROUP BY 1,2 + ; + + ANALYSE w_factures_encours_lignes_c_compte + ; + + CREATE INDEX w_factures_encours_lignes_c_compte_i1 ON w_factures_encours_lignes_c_compte USING btree (no_facture) + ; + + UPDATE activite.p_factures_encours_lignes_c + SET compte_produit_analytique_id = w_factures_encours_lignes_c_compte.compte_produit_analytique_id + FROM w_factures_encours_lignes_c_compte + WHERE p_factures_encours_lignes_c.no_facture = w_factures_encours_lignes_c_compte.no_facture AND + p_factures_encours_lignes_c.CTID = w_factures_encours_lignes_c_compte.fromCTID AND + p_factures_encours_lignes_c.compte_produit_analytique_id IS DISTINCT FROM w_factures_encours_lignes_c_compte.compte_produit_analytique_id + ; + + ANALYSE activite.p_factures_encours_lignes_c + ; + + + + INSERT INTO activite.p_oids (code_table, oid) + SELECT 'compte', compte_produit_analytique_id + FROM activite.p_factures_lignes_c + WHERE compte_produit_analytique_id NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = 'compte') + GROUP BY 2; + + + INSERT INTO activite.p_oids (code_table, oid) + SELECT 'compte', compte_produit_analytique_id + FROM activite.p_factures_encours_lignes_c + WHERE compte_produit_analytique_id NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = 'compte') + GROUP BY 2; + + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_filiere_soin_execute_rule.yaml b/db/schema2/functions/cti_filiere_soin_execute_rule.yaml new file mode 100644 index 0000000..f191b8f --- /dev/null +++ b/db/schema2/functions/cti_filiere_soin_execute_rule.yaml @@ -0,0 +1,740 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + _module_pmsimco TEXT; + BEGIN + + RAISE NOTICE '%' , 'Initialisation filiere'; + -- Contenu table + INSERT INTO activite.t_filiere_soin (oid, code, texte, texte_court) + SELECT 0, '**', 'Non renseignée', 'Non renseignée' + WHERE 0 NOT IN (SELECT oid FROM activite.t_filiere_soin); + + IF (SELECT count(*) FROM activite.t_filiere_soin WHERE oid > 0) = 0 THEN + RETURN 'OK. Aucune filiere'; + END IF; + + + + RAISE NOTICE '%' , 'Application des regles'; + + -- pmsi mco ? + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + _module_pmsimco = '1'; + RAISE NOTICE '%' , 'Application des regles. Avec PMSI MCO'; + ELSE + _module_pmsimco = '0'; + END IF; + + + -- Sejours et RSS à Traiter + + RAISE NOTICE '%' , 'Application des regles. Identification des sejours'; + DROP SEQUENCE IF EXISTS w_sejours_rss_sequence; + CREATE SEQUENCE w_sejours_rss_sequence; + DROP TABLE IF EXISTS w_sejours_rss; + + IF _module_pmsimco = '1' THEN + -- si pmsi mco + CREATE TEMP TABLE w_sejours_rss AS + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + COALESCE(p_rss.oid,0) AS rss_id, + diagnostic_principal_id, + diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS prestation_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + p_rss.ghm_id AS ghm_pmsi_id, + p_sejours.ghm_id AS ghm_activite_id, + COALESCE(medecin_rss_id,0) AS medecin_rss_id, + medecin_sejour_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + p_sejours.type_sejour, + t_lieux.unite_fonctionnelle_id, + t_lieux.service_facturation_id, + t_lits.etage_id, + t_lieux.unite_fonctionnelle_id AS unite_fonctionnelle_entree_id, + t_lieux.service_facturation_id AS service_facturation_entree_id, + t_lits.etage_id AS etage_entree_id, + t_lieux.activite_id, + 0::bigint AS filiere_soin_id, + 0::bigint AS filiere_soin_priorite + FROM activite.p_sejours + JOIN activite.t_lieux ON lieu_sortie_id = t_lieux.oid + JOIN activite.t_lits ON t_lieux.lit_id = t_lits.oid + LEFT JOIN pmsi.p_rss ON no_sejour_administratif = no_sejour AND p_sejours.date_sortie = p_rss.date_sortie AND p_rss.etat = '' + LEFT JOIN pmsi.t_medecins t_medecins_pmsi ON medecin_rss_id = t_medecins_pmsi.oid + LEFT JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid + LEFT JOIN base.t_finess ON p_sejours.finess = t_finess.code + ; + INSERT INTO w_sejours_rss + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + 0 AS sejour_id, + '' AS no_sejour, + p_rss.oid AS rss_id, + diagnostic_principal_id, + diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS prestation_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + p_rss.ghm_id AS ghm_pmsi_id, + 0 AS ghm_activite_id, + medecin_rss_id, + 0::bigint AS medecin_sejour_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + ''::text AS type_sejour, + 0::bigint AS unite_fonctionnelle_id, + 0::bigint AS service_facturation_id, + 0::bigint AS etage_id, + 0::bigint AS unite_fonctionnelle_entree_id, + 0::bigint AS service_facturation_entree_id, + 0::bigint AS etage_entree_id, + 0::bigint AS activite_id, + 0::bigint AS filiere_soin_id, + 0::bigint AS filiere_soin_priorite + FROM pmsi.p_rss + LEFT JOIN pmsi.t_medecins t_medecins_pmsi ON medecin_rss_id = t_medecins_pmsi.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_pmsi.medecin_id = t_medecins_base.oid + LEFT JOIN base.t_finess ON p_rss.finess = t_finess.code + WHERE p_rss.oid NOT IN (SELECT rss_id FROM w_sejours_rss); + + ELSE + -- si pas pmsi mco + CREATE TEMP TABLE w_sejours_rss AS + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + 0 AS rss_id, + 0::bigint AS diagnostic_principal_id, + 0::bigint AS diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS prestation_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + 0::bigint AS ghm_pmsi_id, + p_sejours.ghm_id AS ghm_activite_id, + 0 AS medecin_rss_id, + medecin_sejour_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + p_sejours.type_sejour, + t_lieux.unite_fonctionnelle_id, + t_lieux.service_facturation_id, + t_lits.etage_id, + t_lieux.unite_fonctionnelle_id AS unite_fonctionnelle_entree_id, + t_lieux.service_facturation_id AS service_facturation_entree_id, + t_lits.etage_id AS etage_entree_id, + t_lieux.activite_id, + 0::bigint AS filiere_soin_id, + 0::bigint AS filiere_soin_priorite + FROM activite.p_sejours + JOIN activite.t_lieux ON lieu_sortie_id = t_lieux.oid + JOIN activite.t_lits ON t_lieux.lit_id = t_lits.oid + LEFT JOIN base.t_finess ON p_sejours.finess = t_finess.code + LEFT JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid; + END IF; + + -- Unites d'entrées + UPDATE w_sejours_rss SET + unite_fonctionnelle_entree_id = t_lieux.unite_fonctionnelle_id, + service_facturation_entree_id = t_lieux.service_facturation_id, + etage_entree_id = t_lits.etage_id + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN activite.t_lits ON t_lieux.lit_id = t_lits.oid + WHERE w_sejours_rss.no_sejour = p_mouvements_sejour.no_sejour AND nb_entrees_directes = 1 AND + ( + t_lieux.unite_fonctionnelle_id <> unite_fonctionnelle_entree_id OR + t_lieux.service_facturation_id <> service_facturation_entree_id OR + t_lits.etage_id <> etage_entree_id + ) + ; + + + -- GHM sur services non MCO + -- Verrouillé pour l'instant (on verra par la suite) + -- UPDATE w_sejours_rss SET + -- ghm_pmsi_id = 0, + -- ghm_activite_id = 0 + -- FROM activite.t_services_facturation + -- WHERE service_facturation_id = t_services_facturation .oid AND + -- type_t2a <> '1' AND + -- service_facturation_id <> 0 AND + -- (ghm_pmsi_id > 0 OR + -- ghm_activite_id > 0) + -- ; + + -- + UPDATE w_sejours_rss SET + medecin_rss_id = 0 + WHERE medecin_sejour_id <> 0; + UPDATE w_sejours_rss + SET finess_id = (SELECT MAX(finess_id) FROM w_sejours_rss WHERE finess_id <> 0) + WHERE finess_id = 0 AND (SELECT MAX(finess_id) FROM w_sejours_rss WHERE finess_id <> 0) <> 0; + UPDATE w_sejours_rss + SET finess_id = (SELECT MAX(oid) FROM base.t_finess) + WHERE finess_id = 0; + CREATE INDEX w_sejours_rss_i0 ON w_sejours_rss USING btree (oid); + CREATE INDEX w_sejours_rss_i1 ON w_sejours_rss USING btree (rss_id); + CREATE INDEX w_sejours_rss_i2 ON w_sejours_rss USING btree (sejour_id); + CREATE INDEX w_sejours_rss_i3 ON w_sejours_rss USING btree (no_sejour); + + -- Traduction des règles en oid + RAISE NOTICE '%' , 'Application des regles. Traduction en oid'; + DROP TABLE IF EXISTS w_filiere_soin_rule; + CREATE TEMP TABLE w_filiere_soin_rule AS + SELECT + t_filiere_soin_rule.oid, + filiere_soin_id, + CASE WHEN priorite <> 0 THEN priorite WHEN liste_diagnostic_principal <> '' THEN 90000 ELSE 999999 END AS priorite, + CASE WHEN liste_finess <> '' THEN '1' ELSE '0' END AS a_liste_finess, + string_to_array(translate(liste_finess,'*,','% '),' ') AS liste_finess, + NULL::bigint[] AS liste_finess_id , + CASE WHEN liste_diagnostic_principal <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_principal, + string_to_array(translate(liste_diagnostic_principal,'*,','% '),' ') AS liste_diagnostic_principal, + NULL::bigint[] AS liste_diagnostic_principal_id , + CASE WHEN liste_diagnostic_relie <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_relie, + string_to_array(translate(liste_diagnostic_relie,'*,','% '),' ') AS liste_diagnostic_relie, + NULL::bigint[] AS liste_diagnostic_relie_id , + CASE WHEN liste_diagnostic_associe <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_associe, + string_to_array(translate(liste_diagnostic_associe,'*,','% '),' ') AS liste_diagnostic_associe, + NULL::bigint[] AS liste_diagnostic_associe_id , + CASE WHEN liste_acte <> '' THEN '1' ELSE '0' END AS a_liste_acte, + string_to_array(translate(liste_acte,'*,','% '),' ') AS liste_acte, + NULL::bigint[] AS liste_acte_pmsi_id , + NULL::bigint[] AS liste_acte_base_id , + CASE WHEN liste_ghm <> '' THEN '1' ELSE '0' END AS a_liste_ghm, + string_to_array(translate(liste_ghm,'*,','% '),' ') AS liste_ghm, + NULL::bigint[] AS liste_ghm_pmsi_id, + NULL::bigint[] AS liste_ghm_activite_id, + liste_ghm AS liste_ghm_origine, + CASE WHEN liste_sauf_ghm <> '' THEN '1' ELSE '0' END AS a_liste_sauf_ghm, + string_to_array(translate(liste_sauf_ghm,'*,','% '),' ') AS liste_sauf_ghm, + NULL::bigint[] AS liste_sauf_ghm_pmsi_id , + NULL::bigint[] AS liste_sauf_ghm_activite_id , + liste_sauf_ghm AS liste_sauf_ghm_origine, + CASE WHEN liste_type_sejour <> '' THEN '1' ELSE '0' END AS a_liste_type_sejour, + string_to_array(translate(liste_type_sejour,'*,','% '),' ') AS liste_type_sejour, + NULL::text[] AS liste_type_sejour_id , + CASE WHEN liste_unite_fonctionnelle <> '' THEN '1' ELSE '0' END AS a_liste_unite_fonctionnelle, + string_to_array(translate(liste_unite_fonctionnelle,'*,','% '),' ') AS liste_unite_fonctionnelle, + NULL::bigint[] AS liste_unite_fonctionnelle_id , + CASE WHEN liste_service <> '' THEN '1' ELSE '0' END AS a_liste_service, + string_to_array(translate(liste_service,'*,','% '),' ') AS liste_service, + NULL::bigint[] AS liste_service_id , + CASE WHEN liste_etage <> '' THEN '1' ELSE '0' END AS a_liste_etage, + string_to_array(translate(liste_etage,'*,','% '),' ') AS liste_etage, + NULL::bigint[] AS liste_etage_id , + CASE WHEN liste_unite_fonctionnelle_entree <> '' THEN '1' ELSE '0' END AS a_liste_unite_fonctionnelle_entree, + string_to_array(translate(liste_unite_fonctionnelle_entree,'*,','% '),' ') AS liste_unite_fonctionnelle_entree, + NULL::bigint[] AS liste_unite_fonctionnelle_entree_id , + CASE WHEN liste_service_entree <> '' THEN '1' ELSE '0' END AS a_liste_service_entree, + string_to_array(translate(liste_service_entree,'*,','% '),' ') AS liste_service_entree, + NULL::bigint[] AS liste_service_entree_id , + CASE WHEN liste_etage_entree <> '' THEN '1' ELSE '0' END AS a_liste_etage_entree, + string_to_array(translate(liste_etage_entree,'*,','% '),' ') AS liste_etage_entree, + NULL::bigint[] AS liste_etage_entree_id , + CASE WHEN liste_activite <> '' THEN '1' ELSE '0' END AS a_liste_activite, + string_to_array(translate(liste_activite,'*,','% '),' ') AS liste_activite, + NULL::bigint[] AS liste_activite_id , + CASE WHEN liste_medecin <> '' THEN '1' ELSE '0' END AS a_liste_medecin, + string_to_array(CASE WHEN liste_medecin NOT LIKE '%**%' THEN translate(liste_medecin,'*,','% ') ELSE liste_medecin END,' ') AS liste_medecin, + NULL::bigint[] AS liste_medecin_pmsi_id , + NULL::bigint[] AS liste_medecin_activite_id , + CASE WHEN liste_specialite <> '' THEN '1' ELSE '0' END AS a_liste_specialite, + string_to_array(translate(liste_specialite,'*,','% '),' ') AS liste_specialite, + NULL::bigint[] AS liste_specialite_activite_id , + CASE WHEN liste_rubrique <> '' THEN '1' ELSE '0' END AS a_liste_rubrique, + string_to_array(translate(liste_rubrique,'*,','% '),' ') AS liste_rubrique, + NULL::bigint[] AS liste_rubrique_id, + CASE WHEN liste_prestation <> '' THEN '1' ELSE '0' END AS a_liste_prestation, + string_to_array(translate(liste_prestation,'*,','% '),' ') AS liste_prestation, + NULL::bigint[] AS liste_prestation_id + FROM activite.t_filiere_soin_rule t_filiere_soin_rule + JOIN activite.t_filiere_soin t_filiere_soin ON filiere_soin_id = t_filiere_soin.oid + ORDER BY priorite, filiere_soin_id; + + + + UPDATE w_filiere_soin_rule + SET liste_finess_id = (SELECT base.cti_group_array3(oid) FROM base.t_finess WHERE code LIKE ANY (liste_finess)) + WHERE a_liste_finess = '1'; + + IF _module_pmsimco = '1' THEN + UPDATE w_filiere_soin_rule + SET liste_diagnostic_principal_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_principal)) + WHERE a_liste_diagnostic_principal = '1'; + UPDATE w_filiere_soin_rule + SET liste_diagnostic_relie_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_relie)) + WHERE a_liste_diagnostic_relie = '1'; + UPDATE w_filiere_soin_rule + SET liste_diagnostic_associe_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_associe)) + WHERE a_liste_diagnostic_associe = '1'; + UPDATE w_filiere_soin_rule + SET liste_acte_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_actes WHERE code LIKE ANY (liste_acte) AND code <> '') + WHERE a_liste_acte = '1'; + DROP TABLE IF EXISTS w_filiere_soin_rule_actes_pmsi; + CREATE TEMP TABLE w_filiere_soin_rule_actes_pmsi AS + SELECT t_actes.oid AS rule_acte_id, w_filiere_soin_rule.oid AS rule_id + FROM pmsi.t_actes + JOIN w_filiere_soin_rule ON code LIKE ANY (liste_acte); + CREATE INDEX w_filiere_soin_rule_actes_pmsi_i1 ON w_filiere_soin_rule_actes_pmsi USING btree (rule_acte_id); + END IF; + + + DROP TABLE IF EXISTS w_filiere_soin_rule_actes_base; + CREATE TEMP TABLE w_filiere_soin_rule_actes_base AS + SELECT t_actes.oid AS rule_acte_id, w_filiere_soin_rule.oid AS rule_id + FROM base.t_actes + JOIN w_filiere_soin_rule ON code LIKE ANY (liste_acte) AND code <> ''; + CREATE INDEX w_filiere_soin_rule_actes_base_i1 ON w_filiere_soin_rule_actes_base USING btree (rule_acte_id); + + DROP TABLE IF EXISTS w_filiere_soin_rule_rubriques; + CREATE TEMP TABLE w_filiere_soin_rule_rubriques AS + SELECT t_rubriques_facturation.oid AS rule_rubrique_id, w_filiere_soin_rule.oid AS rule_id + FROM activite.t_rubriques_facturation + JOIN w_filiere_soin_rule ON code LIKE ANY (liste_rubrique) AND code <> ''; + CREATE INDEX w_filiere_soin_rule_rubriques_i1 ON w_filiere_soin_rule_rubriques USING btree (rule_rubrique_id); + + DROP TABLE IF EXISTS w_filiere_soin_rule_prestations; + CREATE TEMP TABLE w_filiere_soin_rule_prestations AS + SELECT t_prestations.oid AS rule_prestation_id, w_filiere_soin_rule.oid AS rule_id + FROM activite.t_prestations + JOIN w_filiere_soin_rule ON code LIKE ANY (liste_prestation) AND code <> ''; + CREATE INDEX w_filiere_soin_rule_prestations_i1 ON w_filiere_soin_rule_prestations USING btree (rule_prestation_id); + + UPDATE w_filiere_soin_rule + SET liste_acte_base_id = (SELECT base.cti_group_array3(oid) FROM base.t_actes WHERE code LIKE ANY (liste_acte)) + WHERE a_liste_acte = '1' + ; + + IF _module_pmsimco = '1' THEN + UPDATE w_filiere_soin_rule + SET liste_ghm_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_ghm WHERE code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1'; + UPDATE w_filiere_soin_rule + SET liste_ghm_pmsi_id = + array_cat(liste_ghm_pmsi_id, + (SELECT base.cti_group_array3(t_ghm.oid) FROM pmsi.t_ghm JOIN base.t_cas ON cas_id = t_cas.oid WHERE '[CAS:'||t_cas.code||']' LIKE ANY (liste_ghm)) + ) + WHERE a_liste_ghm = '1' AND + liste_ghm_origine LIKE '%[CAS:%' + ; + END IF; + + UPDATE w_filiere_soin_rule + SET liste_ghm_activite_id = (SELECT base.cti_group_array3(ghm_id) FROM activite.t_ghm_c WHERE ghm_code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_ghm_activite_id = + array_cat(liste_ghm_activite_id, + (SELECT base.cti_group_array3(t_ghm.oid) FROM base.t_ghm JOIN base.t_cas ON cas_id = t_cas.oid WHERE '[CAS:'||t_cas.code||']' LIKE ANY (liste_ghm)) + ) + WHERE a_liste_ghm = '1' AND + liste_ghm_origine LIKE '%[CAS:%' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_filiere_soin_rule + SET liste_sauf_ghm_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_ghm WHERE code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1'; + END IF; + + UPDATE w_filiere_soin_rule + SET liste_sauf_ghm_activite_id = (SELECT base.cti_group_array3(ghm_id) FROM activite.t_ghm_c WHERE ghm_code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_filiere_soin_rule + SET liste_medecin_pmsi_id = ( + SELECT base.cti_group_array3(t_medecins_pmsi.oid) + FROM pmsi.t_medecins t_medecins_pmsi + LEFT JOIN base.t_medecins ON t_medecins_pmsi.medecin_reference_id = t_medecins.oid + WHERE t_medecins_pmsi.oid <> 0 AND t_medecins_pmsi.code <> '' AND t_medecins_pmsi.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' OR + t_medecins.oid <> 0 AND t_medecins.code <> '' AND t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + WHERE a_liste_medecin = '1'; + END IF; + + UPDATE w_filiere_soin_rule + SET liste_medecin_activite_id = ( + SELECT base.cti_group_array3(t_medecins_administratifs.oid) + FROM activite.t_medecins_administratifs + LEFT JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + WHERE ( + t_medecins_administratifs.oid <> 0 AND + t_medecins_administratifs.code <> '' AND + t_medecins_administratifs.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' + ) OR + ( + t_medecins_administratifs.oid IN + ( + SELECT + to_id + FROM activite.t_classes + JOIN activite.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid + JOIN activite.t_classes_sections_elements ON t_classes_sections_elements.section_id = t_classes_sections.oid + WHERE '[CLASSE:'||t_classes.code||':'||t_classes_sections.code||']' = ANY(liste_medecin) + ) + ) OR + ( + t_medecins.oid <> 0 AND + t_medecins.code <> '' AND + t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + ) + WHERE a_liste_medecin = '1' + ; + + UPDATE w_filiere_soin_rule + SET liste_specialite_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_specialites_medecin WHERE code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_type_sejour_id = (SELECT base.cti_group_array3(code) FROM activite.t_type_sejour WHERE code <> '' AND code LIKE ANY (liste_type_sejour)) + WHERE a_liste_type_sejour = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_unite_fonctionnelle_id = (SELECT base.cti_group_array3(oid) FROM activite.t_unites_fonctionnelles WHERE code LIKE ANY (liste_unite_fonctionnelle)) + WHERE a_liste_unite_fonctionnelle = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_service_id = (SELECT base.cti_group_array3(oid) FROM activite.t_services_facturation WHERE code LIKE ANY (liste_service)) + WHERE a_liste_service = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_etage_id = (SELECT base.cti_group_array3(oid) FROM activite.t_etages WHERE code LIKE ANY (liste_etage)) + WHERE a_liste_etage = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_unite_fonctionnelle_entree_id = (SELECT base.cti_group_array3(oid) FROM activite.t_unites_fonctionnelles WHERE code LIKE ANY (liste_unite_fonctionnelle_entree)) + WHERE a_liste_unite_fonctionnelle_entree = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_service_entree_id = (SELECT base.cti_group_array3(oid) FROM activite.t_services_facturation WHERE code LIKE ANY (liste_service_entree)) + WHERE a_liste_service_entree = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_etage_entree_id = (SELECT base.cti_group_array3(oid) FROM activite.t_etages WHERE code LIKE ANY (liste_etage_entree)) + WHERE a_liste_etage_entree = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_activite_id = (SELECT base.cti_group_array3(oid) FROM activite.t_activites WHERE code LIKE ANY (liste_activite)) + WHERE a_liste_activite = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_rubrique_id = (SELECT base.cti_group_array3(oid) FROM activite.t_rubriques_facturation WHERE code LIKE ANY (liste_rubrique)) + WHERE a_liste_rubrique = '1' + ; + UPDATE w_filiere_soin_rule + SET liste_prestation_id = (SELECT base.cti_group_array3(oid) FROM activite.t_prestations WHERE code LIKE ANY (liste_prestation)) + WHERE a_liste_prestation = '1' + ; + + + -- Association cles aux rubriques + RAISE NOTICE '%' , 'Application des regles. Traitement des rubriques'; + DROP TABLE IF EXISTS w_factures_rubriques; + CREATE TEMP TABLE w_factures_rubriques AS + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN w_filiere_soin_rule_rubriques ON p_factures_lignes_c.rubrique_facturation_id = rule_rubrique_id + WHERE p_factures_lignes_c.montant_facture <> 0 + GROUP BY 1,2 + HAVING SUM(p_factures_lignes_c.montant_facture) > 0 + UNION + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_non_facturees_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_non_facturees_c.no_facture + JOIN w_filiere_soin_rule_rubriques ON p_factures_lignes_non_facturees_c.rubrique_facturation_id = rule_rubrique_id + ; + CREATE INDEX w_factures_rubriques_i1 ON w_factures_rubriques USING btree (no_sejour); + + DROP TABLE IF EXISTS w_filiere_soin_rubriques; + CREATE TEMP TABLE w_filiere_soin_rubriques AS + + SELECT oid, base.cti_group_array3(rubrique_rule_id) AS rubrique_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS rubrique_rule_id + FROM w_factures_rubriques + JOIN w_sejours_rss ON w_factures_rubriques.no_sejour = w_sejours_rss.no_sejour + ) subview + GROUP BY 1; + ALTER TABLE w_filiere_soin_rubriques ADD CONSTRAINT w_filiere_soin_rubriques_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET rubrique_liste_rule_id = w_filiere_soin_rubriques.rubrique_liste_rule_id + FROM w_filiere_soin_rubriques + WHERE w_filiere_soin_rubriques.oid = w_sejours_rss.oid; + + + + -- Association cles aux prestations + RAISE NOTICE '%' , 'Application des regles. Traitement des prestations'; + DROP TABLE IF EXISTS w_factures_prestations; + CREATE TEMP TABLE w_factures_prestations AS + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN w_filiere_soin_rule_prestations ON p_factures_lignes_c.prestation_id = rule_prestation_id + WHERE p_factures_lignes_c.montant_facture <> 0 + GROUP BY 1,2 + HAVING SUM(p_factures_lignes_c.montant_facture) > 0 + UNION + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_non_facturees_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_non_facturees_c.no_facture + JOIN w_filiere_soin_rule_prestations ON p_factures_lignes_non_facturees_c.prestation_id = rule_prestation_id + GROUP BY 1,2 + ; + CREATE INDEX w_factures_prestations_i1 ON w_factures_prestations USING btree (no_sejour); + + DROP TABLE IF EXISTS w_filiere_soin_prestations; + CREATE TEMP TABLE w_filiere_soin_prestations AS + + SELECT oid, base.cti_group_array3(prestation_rule_id) AS prestation_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS prestation_rule_id + FROM w_factures_prestations + JOIN w_sejours_rss ON w_factures_prestations.no_sejour = w_sejours_rss.no_sejour + ) subview + GROUP BY 1; + ALTER TABLE w_filiere_soin_prestations ADD CONSTRAINT w_filiere_soin_prestations_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET prestation_liste_rule_id = w_filiere_soin_prestations.prestation_liste_rule_id + FROM w_filiere_soin_prestations + WHERE w_filiere_soin_prestations.oid = w_sejours_rss.oid; + + + -- Association cles aux actes + RAISE NOTICE '%' , 'Application des regles. Traitement des actes'; + DROP TABLE IF EXISTS w_factures_actes; + CREATE TEMP TABLE w_factures_actes AS + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_h + JOIN w_filiere_soin_rule_actes_base ON p_factures_lignes_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4' + UNION + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_non_facturees_h + JOIN w_filiere_soin_rule_actes_base ON p_factures_lignes_non_facturees_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4'; + CREATE INDEX w_factures_actes_i1 ON w_factures_actes USING btree (no_facture); + + DROP TABLE IF EXISTS w_filiere_soin_actes; + IF _module_pmsimco = '1' THEN + CREATE TEMP TABLE w_filiere_soin_actes AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM pmsi.p_rss_actes + JOIN w_sejours_rss ON p_rss_actes.rss_id = w_sejours_rss.rss_id + JOIN w_filiere_soin_rule_actes_pmsi ON p_rss_actes.acte_id = rule_acte_id + UNION + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + + ) subview + GROUP BY 1; + ELSE + CREATE TEMP TABLE w_filiere_soin_actes AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + + ) subview + GROUP BY 1; + END IF; + ALTER TABLE w_filiere_soin_actes ADD CONSTRAINT w_filiere_soin_actes_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET acte_liste_rule_id = w_filiere_soin_actes.acte_liste_rule_id + FROM w_filiere_soin_actes + WHERE w_filiere_soin_actes.oid = w_sejours_rss.oid; + + -- Diagnostics + IF _module_pmsimco = '1' THEN + RAISE NOTICE '%' , 'Application des regles. Traitement des diagnostics'; + DROP TABLE IF EXISTS w_filiere_soin_diagnostics; + CREATE TEMP TABLE w_filiere_soin_diagnostics AS + SELECT + w_sejours_rss.oid, base.cti_group_array3(w_filiere_soin_rule.oid) AS diagnostic_associe_liste_rule_id + FROM pmsi.p_rss_diagnostics + JOIN w_filiere_soin_rule ON type_diagnostic_rss IN ('DA', 'DS') AND diagnostic_id = ANY (liste_diagnostic_associe_id) + JOIN w_sejours_rss ON p_rss_diagnostics.rss_id = w_sejours_rss.rss_id + WHERE a_liste_diagnostic_associe <> '0' + GROUP BY 1; + ALTER TABLE w_filiere_soin_diagnostics ADD CONSTRAINT w_filiere_soin_diagnostics_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET diagnostic_associe_liste_rule_id = w_filiere_soin_diagnostics.diagnostic_associe_liste_rule_id + FROM w_filiere_soin_diagnostics + WHERE w_filiere_soin_diagnostics.oid = w_sejours_rss.oid; + END IF; + + -- Mise à jour des cles venant des données du PMSI + RAISE NOTICE '%' , 'Application des regles. Attribution des formes activite venant du pmsi'; + DROP TABLE IF EXISTS w_sejours_filiere_soin_rule; + CREATE TEMP TABLE w_sejours_filiere_soin_rule AS + SELECT w_sejours_rss.oid, + w_filiere_soin_rule.oid AS rule_id, + 'P'::text AS source, + priorite, + w_filiere_soin_rule.filiere_soin_id + FROM w_sejours_rss + JOIN w_filiere_soin_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_medecin = '0' OR medecin_rss_id = ANY (liste_medecin_pmsi_id)) AND + (a_liste_type_sejour = '0') AND + (a_liste_unite_fonctionnelle = '0') AND + (a_liste_service = '0') AND + (a_liste_etage = '0') AND + (a_liste_unite_fonctionnelle_entree = '0') AND + (a_liste_service_entree = '0') AND + (a_liste_etage_entree = '0') AND + (a_liste_activite = '0') AND + (a_liste_specialite = '0' OR specialite_sejour_id = ANY (liste_specialite_activite_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_filiere_soin_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_filiere_soin_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_ghm = '0' OR ghm_pmsi_id = ANY (liste_ghm_pmsi_id)) AND + (a_liste_sauf_ghm = '0' OR ghm_pmsi_id <> ALL (liste_sauf_ghm_pmsi_id)) AND + (a_liste_prestation = '0') AND + (a_liste_rubrique = '0') + WHERE w_sejours_rss.rss_id <> 0 + GROUP BY 1,2,3,4,5 + ORDER BY 1; + + -- Mise à jour des cles venant des données d'activite + RAISE NOTICE '%' , 'Application des regles. Attribution des formes activite venant de la GAP'; + INSERT INTO w_sejours_filiere_soin_rule + SELECT w_sejours_rss.oid, + w_filiere_soin_rule.oid AS rule_id, + 'A'::text AS source, + priorite, + w_filiere_soin_rule.filiere_soin_id + FROM w_sejours_rss + JOIN w_filiere_soin_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_type_sejour = '0' OR type_sejour = ANY (liste_type_sejour_id)) AND + (a_liste_unite_fonctionnelle = '0' OR unite_fonctionnelle_id = ANY (liste_unite_fonctionnelle_id)) AND + (a_liste_service = '0' OR service_facturation_id = ANY (liste_service_id)) AND + (a_liste_etage = '0' OR etage_id = ANY (liste_etage_id)) AND + (a_liste_unite_fonctionnelle_entree = '0' OR unite_fonctionnelle_entree_id = ANY (liste_unite_fonctionnelle_entree_id)) AND + (a_liste_service_entree = '0' OR service_facturation_entree_id = ANY (liste_service_entree_id)) AND + (a_liste_etage_entree = '0' OR etage_entree_id = ANY (liste_etage_entree_id)) AND + (a_liste_activite = '0' OR activite_id = ANY (liste_activite_id)) AND + (a_liste_medecin = '0' OR medecin_sejour_id = ANY (liste_medecin_activite_id)) AND + (a_liste_specialite = '0' OR specialite_sejour_id = ANY (liste_specialite_activite_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_filiere_soin_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_filiere_soin_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_rubrique = '0' OR w_filiere_soin_rule.oid = ANY(rubrique_liste_rule_id)) AND + (a_liste_prestation = '0' OR w_filiere_soin_rule.oid = ANY(prestation_liste_rule_id)) AND + (a_liste_ghm = '0' OR ghm_activite_id = ANY (liste_ghm_activite_id)) AND + (a_liste_sauf_ghm = '0' OR ghm_activite_id <> ALL (liste_sauf_ghm_activite_id)) + WHERE w_sejours_rss.sejour_id <> 0 + GROUP BY 1,2,3,4,5 + ORDER BY 1; + + + + + RAISE NOTICE '%' , 'Application des regles. Filiere principale'; + DROP TABLE IF EXISTS w_sejours_filiere_soin; + CREATE TEMP TABLE w_sejours_filiere_soin AS + SELECT w_sejours_filiere_soin_rule.oid, + MIN(priorite) AS filiere_soin_priorite, + ((MIN(ARRAY[to_char(priorite,'FM000000000000')||source,filiere_soin_id::text]))[2])::bigint AS filiere_soin_id + FROM w_sejours_filiere_soin_rule + GROUP BY 1 + ORDER BY 1; + + UPDATE w_sejours_rss SET + filiere_soin_id = w_sejours_filiere_soin.filiere_soin_id, + filiere_soin_priorite = w_sejours_filiere_soin.filiere_soin_priorite + FROM w_sejours_filiere_soin + WHERE w_sejours_rss.oid = w_sejours_filiere_soin.oid ; + + + + RAISE NOTICE '%' , 'Application des regles. Deductions depuis utilisation'; + + + + + RAISE NOTICE '%' , 'Application des regles. Validation des filieres'; + UPDATE activite.p_sejours + SET + filiere_soin_principale_id = w_sejours_rss.filiere_soin_id + FROM w_sejours_rss + WHERE p_sejours.oid = w_sejours_rss.sejour_id AND + p_sejours.oid <> 0 AND + ( + p_sejours.filiere_soin_principale_id IS DISTINCT FROM w_sejours_rss.filiere_soin_id + ); + + ANALYSE activite.p_sejours + ; + + TRUNCATE activite.p_sejour_filiere_soin + ; + + INSERT INTO activite.p_sejour_filiere_soin + (sejour_id, + filiere_soin_id + ) + SELECT + w_sejours_rss.oid, + COALESCE(w_sejours_filiere_soin_rule.filiere_soin_id,0) AS filiere_soin_id + FROM w_sejours_rss + LEFT JOIN w_sejours_filiere_soin_rule ON w_sejours_rss.oid = w_sejours_filiere_soin_rule.oid + GROUP BY 1,2 + ; + + ANALYSE activite.p_sejours + ; + + + INSERT INTO activite.p_oids (code_table, oid) + SELECT 'filiere_soin', filiere_soin_id + FROM activite.p_sejour_filiere_soin + WHERE filiere_soin_id NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = 'filiere_soin') + GROUP BY 2; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_gen_0ets.yaml b/db/schema2/functions/cti_gen_0ets.yaml new file mode 100644 index 0000000..784d229 --- /dev/null +++ b/db/schema2/functions/cti_gen_0ets.yaml @@ -0,0 +1,194 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + + -- Pour initialiser l'identification des factures sans montant établissement + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + '0ETS', + 'Génération ligne facture sans montant établissement', + '0', + 'Génération d''une rubrique fictive pour identifier les factures sans montant établissement. 0=Non, 1=Oui ' + WHERE '0ETS' NOT IN (SELECT code FROM activite.t_divers); + -- Mise à jour données + IF EXISTS (SELECT * + FROM activite.t_divers + WHERE t_divers.code = '0ETS' AND + t_divers.valeur = '1' + LIMIT 1) THEN + -- Codes Prestations. + INSERT INTO activite.t_prestations (code_original, code, texte, texte_court) + SELECT '*CTI_0ETS', '0ETS', 'Sans facturation établissement', 'Sans facturation établissement' + WHERE '*CTI_0ETS' NOT IN (SELECT code_original FROM activite.t_prestations WHERE code_original IS NOT NULL); + -- Codes Rubriques facturation. Attention à loid si fusion de plusieurs sources + IF NOT EXISTS (SELECT * + FROM activite.t_rubriques_facturation + WHERE t_rubriques_facturation.code_original = '*CTI_0ETS' + LIMIT 1) THEN + PERFORM + setval((sequence_schema||'.'||sequence_name)::regclass, + (SELECT (MAX(ARRAY[CASE WHEN sequence_schema = 'activite' then 0 ELSE 1 END, + nextval((sequence_schema||'.'||sequence_name)::regclass)]))[2] + FROM information_schema.sequences + WHERE sequence_name = 's_rubriques_facturation' AND + sequence_schema LIKE 'activite%' + )) + FROM information_schema.sequences + WHERE sequence_name = 's_rubriques_facturation' AND + sequence_schema LIKE 'activite%'; + + INSERT INTO activite.t_rubriques_facturation(code_original, code, texte, texte_court) + SELECT '*CTI_0ETS', '0ETS', 'Sans facturation établissement', 'Sans facturation établissement' + WHERE '*CTI_0ETS' NOT IN (SELECT code_original FROM activite.t_rubriques_facturation WHERE code_original IS NOT NULL); + PERFORM + setval((sequence_schema||'.'||sequence_name)::regclass, + (SELECT MAX(oid) FROM activite.t_rubriques_facturation WHERE oid < 200000000)) + FROM information_schema.sequences + WHERE sequence_name = 's_rubriques_facturation' AND + sequence_schema LIKE 'activite%'; + END IF; + + RAISE NOTICE '%' , 'RAZ precedente generation'; + + -- Ajout des lignes + DELETE FROM activite.p_factures_lignes_c + WHERE origine_facturation_id IN (8,9); + + + -- Identification dates facturées par séjour + RAISE NOTICE '%' , 'Identification dates factures'; + DROP TABLE IF EXISTS w_factures_lignes_c_date; + CREATE TEMP TABLE w_factures_lignes_c_date AS + SELECT + p_factures.no_sejour, + p_factures_lignes_c.date_fin, + MIN(p_factures_lignes_c.date_debut) AS date_debut, + SUM(p_factures_lignes_c.montant_facture + p_factures_lignes_c.montant_encours) AS montant + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + WHERE type_sejour <> '9' AND + p_sejours.est_sans_facturation <> '1' + GROUP BY 1,2 + ; + + + -- Identification dates de mouvements + RAISE NOTICE '%' , 'Identification dates mouvements'; + DROP TABLE IF EXISTS w_mouvements_sejour_date; + CREATE TEMP TABLE w_mouvements_sejour_date AS + SELECT + p_mouvements_sejour.no_sejour, + p_mouvements_sejour.date, + p_factures_reference.no_facture_reference, + MAX(p_sejours.type_sejour) AS type_sejour, + MAX(p_sejours.code_sorti) AS code_sorti, + MAX(p_factures_reference.facture_reference_id) AS facture_reference_id, + MAX(p_factures_reference.date_debut_facture) AS date_debut_facture, + MAX(p_factures_reference.date_fin_facture) AS date_fin_facture, + MAX(p_factures_reference.code_facture) AS code_facture, + (MAX(Array[heure_fin,lieu_id]))[2]::bigint AS lieu_id + FROM activite.p_mouvements_sejour + JOIN activite.p_sejours ON p_mouvements_sejour.no_sejour = p_sejours.no_sejour + JOIN activite.p_factures_reference ON + p_mouvements_sejour.no_sejour = p_factures_reference.no_sejour AND + p_mouvements_sejour.date BETWEEN p_factures_reference.date_debut_facture AND p_factures_reference.date_fin_facture + WHERE p_sejours.type_sejour <> '9' AND + p_sejours.est_sans_facturation <> '1' AND + p_mouvements_sejour.date <= now() AND + p_factures_reference.no_facture_reference <> '' + GROUP BY 1,2,3 + ; + + ANALYSE w_mouvements_sejour_date; + ANALYSE w_factures_lignes_c_date; + + RAISE NOTICE '%' , 'Identification dates manquantes'; + DROP TABLE IF EXISTS w_factures_lignes_0ets; + CREATE TEMP TABLE w_factures_lignes_0ets AS + SELECT + w_mouvements_sejour_date.no_facture_reference, + w_mouvements_sejour_date.type_sejour, + w_mouvements_sejour_date.code_sorti, + w_mouvements_sejour_date.facture_reference_id, + w_mouvements_sejour_date.date, + 0 AS nb_rubrique, + 0 AS nb_prestation, + t_rubriques_facturation.oid AS rubrique_facturation_id, + t_rubriques_facturation.oid AS rubrique_comptabilisation_id, + t_prestations.oid AS prestation_id, + 100 AS taux_0, + w_mouvements_sejour_date.lieu_id, + 9::bigint AS origine_facturation_id, + CASE WHEN w_mouvements_sejour_date.code_facture = '1' THEN 0.0001 ELSE 0 END AS montant_facture, + CASE WHEN w_mouvements_sejour_date.code_facture <> '1' THEN 0.0001 ELSE 0 END AS montant_encours + FROM w_mouvements_sejour_date + LEFT JOIN w_factures_lignes_c_date ON + w_mouvements_sejour_date.no_sejour = w_factures_lignes_c_date.no_sejour AND + w_mouvements_sejour_date.date BETWEEN w_factures_lignes_c_date.date_debut AND w_factures_lignes_c_date.date_fin + JOIN activite.t_rubriques_facturation ON t_rubriques_facturation.code_original = '*CTI_0ETS' + JOIN activite.t_prestations ON t_prestations.code_original = '*CTI_0ETS' + WHERE w_factures_lignes_c_date.no_sejour IS NULL + ; + + -- Si la date de fin seule n'est pas facturée, ne pas générer + DELETE FROM w_factures_lignes_0ets + WHERE no_facture_reference IN + ( + SELECT w_factures_lignes_0ets.no_facture_reference + FROM w_factures_lignes_0ets + JOIN activite.p_factures_reference ON w_factures_lignes_0ets.no_facture_reference = p_factures_reference.no_facture_reference + WHERE p_factures_reference.date_fin_facture > p_factures_reference.date_debut_facture + GROUP BY 1 + having count(*) = SUM(CASE WHEN w_factures_lignes_0ets.date = p_factures_reference.date_fin_facture THEN 1 ELSE 0 END) + ) + ; + + + + + -- Ajout des lignes + RAISE NOTICE '%' , 'Ajout dates manquantes'; + INSERT INTO activite.p_factures_lignes_c( + no_facture, + facture_id, + date_debut, + date_fin, + nb_rubrique, + nb_prestation, + rubrique_facturation_id, + rubrique_comptabilisation_id, + prestation_id, + taux_0, + lieu_id, + origine_facturation_id, + montant_facture, + montant_encours + ) + SELECT + w_factures_lignes_0ets.no_facture_reference, + w_factures_lignes_0ets.facture_reference_id, + w_factures_lignes_0ets.date, + w_factures_lignes_0ets.date, + w_factures_lignes_0ets.nb_rubrique, + w_factures_lignes_0ets.nb_prestation, + w_factures_lignes_0ets.rubrique_facturation_id, + w_factures_lignes_0ets.rubrique_comptabilisation_id, + w_factures_lignes_0ets.prestation_id, + w_factures_lignes_0ets.taux_0, + w_factures_lignes_0ets.lieu_id, + w_factures_lignes_0ets.origine_facturation_id, + montant_facture, + montant_encours + FROM w_factures_lignes_0ets + + ; + + END IF; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_gen_dma_ssr.yaml b/db/schema2/functions/cti_gen_dma_ssr.yaml new file mode 100644 index 0000000..0a6e482 --- /dev/null +++ b/db/schema2/functions/cti_gen_dma_ssr.yaml @@ -0,0 +1,577 @@ +return: text +lang: plpgsql +src: | + DECLARE + _module_pmsissr TEXT; + result TEXT; + BEGIN + IF NOT EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsissr' AND tablename = 'p_ssr') THEN + return 'Pas de SSR'; + END IF; + + IF NOT EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsissr' AND tablename = 'p_file_valo_ssr') THEN + return 'Pas de visual valo installé'; + END IF; + + -- Génération + + -- Création de la prestation DMA + INSERT INTO activite.t_rubriques_facturation(code_original, code, texte, texte_court) + SELECT 'DMASSR', 'DMASSR', 'DMA SSR', 'DMA SSR' + WHERE 'DMASSR' NOT IN (SELECT code_original FROM activite.t_rubriques_facturation WHERE code_original IS NOT NULL); + + + + INSERT INTO activite.t_prestations(code_original, code, texte, texte_court) + SELECT 'DMASSR', 'DMASSR', 'DMA SSR', 'DMA SSR' + WHERE 'DMASSR' NOT IN (SELECT code FROM activite.t_prestations WHERE code IS NOT NULL); + + -- Création des listes + INSERT INTO activite.t_listes (code, texte, is_cti, contenu_non_replicable_ailleurs, utilisateur_createur, chapitre, table_id) + SELECT + 'DMAP_'||subview.code AS code, + subview.texte, + '1' AS is_cti, + '1' AS contenu_non_replicable_ailleurs, + 'cti'::text AS utilisateur_createur, + 'DMA SSR' AS chapitre, + t_listes_tables.oid AS table_id + FROM + ( + SELECT 'MFS'::text AS code, 'Prestations impactées par la minoration frais de séjour ' AS texte + UNION + SELECT 'MFSM'::text AS code, 'Prestations négatives de la minoration frais de séjour ' AS texte + + ) subview + JOIN activite.t_listes_tables ON t_listes_tables.code = 'PRESTA_C' + WHERE 'DMAP_'||subview.code NOT IN (SELECT code FROm activite.t_listes WHERE code IS NOT NULL) + ; + + INSERT INTO activite.t_listes_contenu (liste_id, to_id) + SELECT t_listes.oid, t_prestations.oid + FROM activite.t_prestations + JOIN activite.t_listes ON t_listes.code = 'DMAP_MFS' + LEFT JOIN activite.t_listes_contenu ON t_listes_contenu.liste_id = t_listes.oid + WHERE t_prestations.code IN ('PJ', 'FJ', 'ENT', 'SSM', 'PHJ', 'PMS', 'SHO', 'SNS', 'FS', 'TSG') AND + t_listes_contenu.liste_id IS NULL + ; + + INSERT INTO activite.t_listes_contenu (liste_id, to_id) + SELECT t_listes.oid, t_prestations.oid + FROM activite.t_prestations + JOIN activite.t_listes ON t_listes.code = 'DMAP_MFSM' + LEFT JOIN activite.t_listes_contenu ON t_listes_contenu.liste_id = t_listes.oid + WHERE ( + t_prestations.code IN ('MPJ', 'MPJS', 'MFJ', 'MENT', 'MSSM', 'MPHJ', 'MPMS', 'MSHO', 'MSNS', 'MFS', 'MTSG') OR + t_prestations.code LIKE ('DMAM%') + ) AND + t_listes_contenu.liste_id IS NULL + ; + + -- Forcer type de ventilation journalière dans le prochain import + UPDATE activite.t_prestations + SET type_ventilation_jour = '1' + FROM activite.t_listes_contenu + JOIN activite.t_listes ON liste_id = t_listes.oid + WHERE t_listes_contenu.to_id = t_prestations.oid AND + t_listes.code IN ('DMAP_MFS','DMAP_MFSM') AND + type_ventilation_jour IS DIStINCT FROM '1' + ; + + -- Suppression avant génération + DELETE FROM activite.p_factures_lignes_c WHERE no_facture LIKE '%.DMA'; + DELETE FROM activite.p_factures WHERE no_facture LIKE '%.DMA'; + + PERFORM setval('activite.s_factures', COALESCE(MAX(oid),0) + 1) FROM activite.p_factures; + + -- Cas de plusieurs SSR pour le même numéro de séjour, identification du bon pour l'année + DROP TABLE IF EXISTS w_ssr; + CREATE TEMP TABLE w_ssr AS + SELECT p_ssr.oid, + trim(num_admin_sejour) AS num_admin_sejour, + CASE WHEN trim(num_admin_sejour) IN ( + SELECT trim(num_admin_sejour) + FROM pmsissr.p_ssr + JOIN pmsissr.p_rhs ON ssr_id = p_ssr.oid + WHERE est_version_actuelle = '1' + GROUP BY 1 + HAVING count(DISTINCT ssr_id) > 1) THEN import_ref_year::numeric ELSE 0 END AS import_ref_year, + MAX(p_ssr.date_entree) AS date_entree, + MAX(p_ssr.date_sortie) AS date_sortie, + MAX(p_ssr.nb_jours) AS nb_jours + FROM pmsissr.p_ssr + JOIN pmsissr.p_rhs ON ssr_id = p_ssr.oid + JOIN pmsissr.p_imports ON import_id = p_imports.oid + WHERE import_ref_year >= 2017 AND + est_version_actuelle = '1' + GROUP BY 1,2,3 + ORDER BY 2 + ; + + ANALYSE w_ssr + ; + + + + -- Correction p_file_valo_ssr + UPDATE pmsissr.p_file_valo_ssr + SET numsemaine = subq.numsemaine + FROM + ( + SELECT + (MAX(Array[p_rhs.date_fin::text,LPAD(p_rhs.num_semaine, 2, '0') || p_rhs.annee::text]))[2] as numsemaine, + p_rhs.ssr_id, + trim(p_ssr.num_admin_sejour)::text as numadmin + FROM pmsissr.p_ssr + JOIN pmsissr.p_rhs ON p_rhs.ssr_id = p_ssr.oid + JOIN pmsissr.p_file_valo_ssr ON numadmin = num_admin_sejour + WHERE p_file_valo_ssr.numsemaine = '522016' AND file_name_annee_import = 2017 AND hosp = 'C' + GROUP BY 2,3 + ) subq + WHERE 1=1 AND + trim(p_file_valo_ssr.numadmin)::text = subq.numadmin AND + p_file_valo_ssr.numsemaine = '522016' AND + file_name_annee_import = 2017 AND + subq.numsemaine <> '522016' + ; + + UPDATE pmsissr.p_file_valo_ssr + SET numsemaine = lpad(numsemaine,6,'0') + WHERE length(numsemaine) = 5 + ; + + UPDATE pmsissr.p_file_valo_ssr + SET numadmin = trim(numadmin) + WHERE numadmin <> trim(numadmin) + ; + + DELETE FROM pmsissr.p_file_valo_ssr + USING + ( + SELECT finess, date_part('year',file_name_date_import) AS year, MAX(file_name_date_import) AS file_name_date_import_ok + FROM pmsissr.p_file_valo_ssr + GROUP BY 1,2 + ) subview + WHERE p_file_valo_ssr.finess = subview.finess AND + date_part('year',file_name_date_import) = subview.year AND + file_name_date_import <> file_name_date_import_ok + ; + + -- Identification reprise. Ajout champs pour comptabililité + PERFORM base.cti_execute('ALTER TABLE pmsissr.p_file_valo_ssr ADD COLUMN ' || new_column_name || ' numeric DEFAULT 0',1) + FROM + ( + SELECT 'avance_reprise_nbj'::text AS new_column_name + UNION + SELECT 'avance_reprise_dma_br' AS new_column_name + UNION + SELECT 'avance_reprise_dma_br_prud' AS new_column_name + UNION + SELECT 'avance_reprise_dma_am' AS new_column_name + ) subview + LEFT JOIN information_schema.columns ON + table_schema = 'pmsissr' AND + table_name = 'p_file_valo_ssr' AND + column_name = new_column_name + WHERE column_name IS NULL + ; + + + + + + -- semaines en double car même semaine sur plusieurs imports + DROP TABLE IF EXISTS w_file_valo_ssr; + CREATE TEMP TABLE w_file_valo_ssr AS + SELECT + file_name_annee_import, + numadmin, + numsemaine, + hosp, + MAX(txremb) AS txremb, + SUM(nbjp-avance_reprise_nbj) AS nbjp, + SUM(dma_am-avance_reprise_dma_am) AS dma_am, + count(*) + FROM pmsissr.p_file_valo_ssr + WHERE dma_am <> 0 + + GROUP BY 1,2,3,4 + ; + + + + ANALYSE w_file_valo_ssr + ; + + CREATE INDEX iw_file_valo_ssr_1 ON w_file_valo_ssr USING btree (numadmin) + ; + + + -- Identification des factures de référence pour génération sur dernière + DROP TABLE IF EXISTS w_gen_dma_facture_reference; + CREATE TEMP TABLE w_gen_dma_facture_reference AS + SELECT subview.no_sejour, + subview.sejour_id, + subview.no_facture_reference, + COALESCE(p_factures.facture_reference_id,0) AS facture_reference_id, + COALESCE(p_factures.date_facture,subview.date_sortie) AS date_facture, + COALESCE(p_factures.code_vente,'0') AS code_vente, + COALESCE(p_factures.mois_vente,209912) AS mois_vente, + COALESCE(p_factures.date_vente,'20991231') AS date_vente, + COALESCE(p_factures.tiers_payant_0_id,subview.tiers_payant_0_id) AS tiers_payant_0_id, + COALESCE(p_factures.tiers_payant_1_id,subview.tiers_payant_1_id) AS tiers_payant_1_id, + COALESCE(p_factures.tiers_payant_2_id,subview.tiers_payant_2_id) AS tiers_payant_2_id, + COALESCE(p_factures.tiers_payant_22_id,subview.tiers_payant_22_id) AS tiers_payant_22_id + FROM + ( + SELECT + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + MAX(p_sejours.date_sortie) AS date_sortie, + MAX(p_sejours.tiers_payant_0_id) AS tiers_payant_0_id, + MAX(p_sejours.tiers_payant_1_id) AS tiers_payant_1_id, + MAX(p_sejours.tiers_payant_2_id) AS tiers_payant_2_id, + MAX(p_sejours.tiers_payant_22_id) AS tiers_payant_22_id, + COALESCE((MAX(Array[p_factures_reference.date_facture::text,no_facture_reference]))[2],'NOSEJOUR'||MAX(p_sejours.no_sejour)) AS no_facture_reference + FROM activite.p_sejours + LEFT JOIN activite.p_factures_reference ON p_factures_reference.no_sejour = p_sejours.no_sejour + GROUP BY 1,2 + ) subview + LEFT JOIN activite.p_factures ON subview.no_facture_reference = p_factures.no_facture + ; + + + + + -- Factures DMA à partir de valo SSR + DROP TABLE IF EXISTS w_gen_dma_facture; + CREATE TEMP TABLE w_gen_dma_facture AS + SELECT + p_sejour_pmsi.no_sejour, + p_sejour_pmsi.sejour_id, + w_ssr.oid AS ssr_id, + w_ssr.date_entree AS date_debut_dma, + file_name_annee_import, + hosp, + CASE WHEN w_ssr.nb_jours = nbjp AND w_ssr.date_sortie <> '2099-12-31' THEN w_ssr.date_sortie ELSE COALESCE(p_calendrier.date,'2099-12-31') END AS date_fin_dma, + NULL::date AS date_fin_facture, + CASE WHEN numsemaine <> '' THEN COALESCE((substr(numsemaine,3,4) || substr(numsemaine,1,2))::numeric,209912) ELSE 0 END AS semaine_valo, + GREATEST(nbjp,1) AS nbjp_source, + GREATEST(nbjp,1) AS nbjp, + '0'::text AS est_suite, + txremb, + dma_am, + round(dma_am / GREATEST(nbjp,1),2) AS dma_pu, + 0::numeric AS dma_round, + ''::text AS no_facture_reference, + ''::text AS no_facture + + FROM w_file_valo_ssr p_file_valo_ssr + JOIN w_ssr ON w_ssr.num_admin_sejour = p_file_valo_ssr.numadmin AND (w_ssr.import_ref_year = file_name_annee_import OR w_ssr.import_ref_year = 0) + JOIN activite.p_sejour_pmsi ON w_ssr.oid = ANY(p_sejour_pmsi.ssr_id_array) + JOIN w_gen_dma_facture_reference ON p_sejour_pmsi.sejour_id = w_gen_dma_facture_reference.sejour_id + LEFT JOIN base.p_calendrier ON CASE WHEN numsemaine <> '' THEN COALESCE((substr(numsemaine,3,4) || substr(numsemaine,1,2))::numeric,209912) ELSE 0 END = p_calendrier.semaine AND + p_calendrier.jour_semaine = '7' + WHERE dma_am <> 0 + ; + + WITH w_set_date_fin_dma AS + ( + SELECT + sum( jour_1 + jour_2 +jour_3 +jour_4 +jour_5 +jour_6 + jour_7) over ( partition by ssr_id order by p_rhs.date_fin, p_rhs.oid) as nb_jours_cum_rhs, + date_fin, + ssr_id, + p_rhs.date_sortie + FROM pmsissr.p_ssr + JOIN pmsissr.p_rhs ON p_ssr.oid = ssr_id + WHERE p_rhs.est_version_actuelle = '1' AND p_rhs.date_debut >= '20170102' + ) + UPDATE w_gen_dma_facture + SET date_fin_dma = COALESCE(w_set_date_fin_dma.date_fin, w_set_date_fin_dma.date_sortie) + FROM w_set_date_fin_dma + WHERE true + AND w_gen_dma_facture.ssr_id = w_set_date_fin_dma.ssr_id + AND nb_jours_cum_rhs = nbjp + AND date_fin_dma = '2099-12-31' + ; + UPDATE w_gen_dma_facture + SET date_fin_dma = subview.date_fin_dma + FROM + ( + SELECT + w_gen_dma_facture.file_name_annee_import, + p_rhs.ssr_id, + w_gen_dma_facture.no_sejour, + w_gen_dma_facture.no_facture, + MAX(p_rhs.date_fin) AS date_fin_dma + FROM pmsissr.p_ssr + JOIN pmsissr.p_rhs ON p_ssr.oid = p_rhs.ssr_id + JOIN base.p_calendrier ON p_rhs.date_fin = p_calendrier.date + JOIN w_gen_dma_facture ON + w_gen_dma_facture.ssr_id = p_ssr.oid AND + w_gen_dma_facture.file_name_annee_import = substr(semaine::text,1,4)::numeric AND + (w_gen_dma_facture.date_fin_dma = '20991231' OR w_gen_dma_facture.hosp = 'C') + WHERE p_rhs.est_version_actuelle = '1' + GROUP BY 1,2,3,4 + ) subview + WHERE w_gen_dma_facture.ssr_id = subview.ssr_id AND + w_gen_dma_facture.file_name_annee_import = subview.file_name_annee_import AND + w_gen_dma_facture.no_sejour = subview.no_sejour AND + w_gen_dma_facture.no_facture = subview.no_facture AND + (w_gen_dma_facture.date_fin_dma = '20991231' OR w_gen_dma_facture.hosp = 'C') + ; + + UPDATE w_gen_dma_facture + SET date_debut_dma = w_gen_dma_facture2.date_fin_dma + interval '1 day', est_suite = '1' + FROM w_gen_dma_facture w_gen_dma_facture2 + WHERE + w_gen_dma_facture.no_sejour = w_gen_dma_facture2.no_sejour AND + w_gen_dma_facture.file_name_annee_import = w_gen_dma_facture2.file_name_annee_import + 1 + ; + + -- Sur hospit complète, le nombre de jours de nbjp n'est pas forcément égal aux rhs de l'année (cas des avances) + UPDATE w_gen_dma_facture + SET nbjp = subview.nb_jours_rhs, dma_pu = round(dma_am / subview.nb_jours_rhs,2) + FROM + ( + SELECT + p_ssr.num_admin_sejour, + p_rhs.ssr_id, + file_name_annee_import, + sum( jour_1 + jour_2 +jour_3 +jour_4 +jour_5 +jour_6 + jour_7) as nb_jours_rhs + FROM pmsissr.p_ssr + JOIN pmsissr.p_rhs ON p_ssr.oid = ssr_id + JOIN w_gen_dma_facture ON + p_ssr.oid = w_gen_dma_facture.ssr_id AND + p_rhs.date_fin BETWEEN date_debut_dma AND date_fin_dma + WHERE hosp = 'C' AND + p_rhs.est_version_actuelle = '1' AND + p_rhs.date_debut >= '20170102' AND + est_suite = '1' + GROUP BY 1,2,3 + HAVING sum( jour_1 + jour_2 +jour_3 +jour_4 +jour_5 +jour_6 + jour_7) <> MAX(nbjp_source) AND + sum( jour_1 + jour_2 +jour_3 +jour_4 +jour_5 +jour_6 + jour_7) > 0 + ORDER BY 1,3 + ) subview + WHERE w_gen_dma_facture.ssr_id = subview.ssr_id AND + w_gen_dma_facture.file_name_annee_import = subview.file_name_annee_import + ; + + UPDATE w_gen_dma_facture + SET semaine_valo = p_calendrier.semaine + FROM base.p_calendrier + WHERE date_fin_dma = p_calendrier.date AND + semaine_valo = 0 + ; + + UPDATE w_gen_dma_facture + SET dma_round = dma_am - (nbjp*dma_pu) + ; + + UPDATE w_gen_dma_facture SET + no_facture_reference = w_gen_dma_facture_reference.no_facture_reference, + no_facture = w_gen_dma_facture_reference.no_facture_reference || '.' || substr(file_name_annee_import::text,3,2) || '.DMA' + FROm w_gen_dma_facture_reference + WHERE w_gen_dma_facture.no_sejour = w_gen_dma_facture_reference.no_sejour + ; + + UPDATE w_gen_dma_facture + SET date_fin_facture = + CASE + WHEN date_fin_dma BETWEEN date_debut_ssr AND date_fin_ssr THEN date_fin_dma + WHEN date_fin_dma < date_debut_ssr THEN date_debut_ssr + WHEN date_fin_dma > date_fin_ssr THEN date_fin_ssr + ELSE NULL END + FROM + ( + SELECT date_part('year',date) AS annee_ssr, + MIN(date) AS date_debut_ssr, + MAX(date) AS date_fin_ssr + FROM base.p_calendrier + GROUP BY 1 + ORDER BY 1 + ) subview + WHERE w_gen_dma_facture.file_name_annee_import = annee_ssr + ; + + + DROP TABLE IF EXISTS w_gen_dma_calendrier; + CREATE TEMP TABLE w_gen_dma_calendrier AS + SELECT no_sejour, no_facture, semaine_valo, p_calendrier.date, p_rhs.date_fin_presence, nbjp + FROM w_gen_dma_facture + JOIN pmsissr.p_rhs ON w_gen_dma_facture.ssr_id = p_rhs.ssr_id + JOIN base.p_calendrier ON + ( + hosp = 'P' AND p_calendrier.semaine = semaine_valo OR + hosp = 'C' AND p_calendrier.semaine <= semaine_valo + ) + WHERE + p_rhs.est_version_actuelle = '1' AND + ( + p_rhs.date_debut = p_calendrier.date AND jour_1 = 1 OR + date(p_rhs.date_debut + interval '1 day') = p_calendrier.date AND jour_2 = 1 OR + date(p_rhs.date_debut + interval '2 day') = p_calendrier.date AND jour_3 = 1 OR + date(p_rhs.date_debut + interval '3 day') = p_calendrier.date AND jour_4 = 1 OR + date(p_rhs.date_debut + interval '4 day') = p_calendrier.date AND jour_5 = 1 OR + date(p_rhs.date_debut + interval '5 day') = p_calendrier.date AND jour_6 = 1 OR + date(p_rhs.date_debut + interval '6 day') = p_calendrier.date AND jour_7 = 1 + ) + ; + + INSERT INTO w_gen_dma_calendrier + SELECT no_sejour, no_facture, semaine_valo, p_calendrier.date, p_rhs.date_fin_presence, nbjp + FROM w_gen_dma_facture + JOIN pmsissr.p_rhs ON w_gen_dma_facture.ssr_id = p_rhs.ssr_id + JOIN base.p_calendrier ON + ( + hosp = 'P' AND p_calendrier.semaine = semaine_valo OR + hosp = 'C' AND p_calendrier.semaine <= semaine_valo + ) + WHERE + p_rhs.est_version_actuelle = '1' AND + hosp = 'C' AND + nbjp = 1 AND + p_rhs.date_debut = p_calendrier.date AND + jour_1 = 0 AND jour_2 = 0 AND jour_3 = 0 AND jour_4 = 0 AND jour_5 = 0 AND jour_6 = 0 AND jour_7 = 0 + ; + DELETE FROM w_gen_dma_calendrier + USING + ( + SELECT *, row_number() OVER (PARTITION BY no_facture, semaine_valo ORDER BY date DESC) AS nbjf + FROM w_gen_dma_calendrier + ) subview + WHERE w_gen_dma_calendrier.no_facture= subview.no_facture AND + w_gen_dma_calendrier.semaine_valo = subview.semaine_valo AND + w_gen_dma_calendrier.date = subview.date AND + subview.nbjf > subview.nbjp + ; + + + INSERT INTO activite.p_factures ( + sejour_id, + no_sejour, + no_facture, + no_facture_reference, + facture_reference_id, + date_debut, + date_fin, + type_facture, + code_facture, + date_facture, + code_vente, + mois_vente, + date_vente, + tiers_payant_0_id, + tiers_payant_1_id, + tiers_payant_2_id, + tiers_payant_22_id, + montant_facture_c, + montant_facture_1_c + ) + SELECT + w_gen_dma_facture.sejour_id, + w_gen_dma_facture.no_sejour, + w_gen_dma_facture.no_facture, + MAX(w_gen_dma_facture.no_facture_reference) AS no_facture_reference, + MAX(w_gen_dma_facture_reference.facture_reference_id) AS facture_reference_id, + MIN(w_gen_dma_facture.date_debut_dma), + MAX(w_gen_dma_facture.date_fin_facture), + MAX('2'::text) AS type_facture, + MAX('1'::text) AS code_facture, + MAX(w_gen_dma_facture_reference.date_facture), + MAX(w_gen_dma_facture_reference.code_vente), + MAX(w_gen_dma_facture_reference.mois_vente), + MAX(w_gen_dma_facture_reference.date_vente), + MAX(w_gen_dma_facture_reference.tiers_payant_0_id), + MAX(w_gen_dma_facture_reference.tiers_payant_1_id), + MAX(w_gen_dma_facture_reference.tiers_payant_2_id), + MAX(w_gen_dma_facture_reference.tiers_payant_22_id), + SUM(dma_am) AS montant_facture_c, + SUM(dma_am) AS montant_facture_1_c + FROM w_gen_dma_facture + JOIN w_gen_dma_facture_reference ON w_gen_dma_facture.no_sejour = w_gen_dma_facture_reference.no_sejour + GROUP BY 1,2,3 + ; + + + INSERT INTO activite.p_factures_lignes_c ( + facture_id, + no_facture, + date_debut, + date_fin, + nb_rubrique, + nb_prestation, + coefficient, + coefficient_mco, + rubrique_facturation_id, + rubrique_comptabilisation_id, + prestation_id, + montant_facture, + montant_facture_1, + taux_1, + prix_unitaire, + lieu_id + ) + SELECT + p_factures.oid AS facture_id, + w_gen_dma_facture.no_facture, + w_gen_dma_calendrier.date, + w_gen_dma_calendrier.date, + 1 AS nb_rubrique, + 1 AS nb_prestation, + 1 AS coefficient, + 1 AS coefficient_mco, + t_rubriques_facturation.oid AS rubrique_facturation_id, + t_rubriques_facturation.oid AS rubrique_comptabilisation_id, + t_prestations.oid AS prestation_id, + dma_pu + CASE WHEN w_gen_dma_calendrier.date = date_fin_presence AND to_char(w_gen_dma_calendrier.date, 'YYYYIW') = w_gen_dma_facture.semaine_valo THEN dma_round ELSE 0 END AS montant_facture, + dma_pu + CASE WHEN w_gen_dma_calendrier.date = date_fin_presence AND to_char(w_gen_dma_calendrier.date, 'YYYYIW') = w_gen_dma_facture.semaine_valo THEN dma_round ELSE 0 END AS montant_facture_1, + txremb AS taux_1, + dma_pu AS prix_unitaire, + 0::bigint AS lieu_id + FROM w_gen_dma_facture + JOIN activite.p_factures ON w_gen_dma_facture.no_facture = p_factures.no_facture + JOIN w_gen_dma_calendrier ON w_gen_dma_calendrier.no_facture = w_gen_dma_facture.no_facture AND w_gen_dma_calendrier.semaine_valo = w_gen_dma_facture.semaine_valo + JOIN activite.t_rubriques_facturation ON 'DMASSR' = t_rubriques_facturation.code_original + JOIN activite.t_prestations ON 'DMASSR' = t_prestations.code_original + ; + + + PERFORM activite.cti_reorganize_rubrique_facture_c('activite.p_factures_lignes_c'); + + + -- Lieu des lignes de factures (en tenant compte des absences) + DROP TABLE IF EXISTS w_mouvements_sejour_lieu_jour; + CREATE TEMP TABLE w_mouvements_sejour_lieu_jour AS + SELECT no_sejour, + date, + (MAX(CASE WHEN est_absence <> '1' THEN Array[heure_fin, lieu_id] ELSE NULL END))[2] AS lieu_id, + (MAX(Array[heure_fin, lieu_id]))[2] AS lieu_id_avec_absence + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_services_facturation On service_facturation_id = t_services_facturation.oid + GROUP BY 1,2 + ; + + UPDATE activite.p_factures_lignes_c + SET lieu_id = COALESCE(w_mouvements_sejour_lieu_jour.lieu_id,w_mouvements_sejour_lieu_jour.lieu_id_avec_absence) + FROM activite.p_factures, w_mouvements_sejour_lieu_jour + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + p_factures.no_sejour = w_mouvements_sejour_lieu_jour.no_sejour AND + p_factures_lignes_c.date_debut = w_mouvements_sejour_lieu_jour.date AND + p_factures_lignes_c.lieu_id <> COALESCE(w_mouvements_sejour_lieu_jour.lieu_id,w_mouvements_sejour_lieu_jour.lieu_id_avec_absence) + ; + + UPDATE activite.p_factures_lignes_c + SET lieu_id = p_sejours.lieu_sortie_id + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + p_factures_lignes_c.lieu_id = 0 AND + p_factures.no_facture LIKE '%DMA' + ; + + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_gen_dotation.yaml b/db/schema2/functions/cti_gen_dotation.yaml new file mode 100644 index 0000000..12248d3 --- /dev/null +++ b/db/schema2/functions/cti_gen_dotation.yaml @@ -0,0 +1,249 @@ +return: text +lang: plpgsql +src: | + DECLARE result TEXT; + BEGIN + IF NOT EXISTS (SELECT * FROM activite.t_service_rubrique_dotation) THEN + return 'Pas de dotation paramétrée'; + END IF; + + -- Calcul coefficient dotation/facture + DELETE FROM activite.p_factures_lignes_c + WHERE rubrique_facturation_id <> 0 AND + rubrique_facturation_id IN (SELECT to_rubrique_facturation_id FROM activite.t_service_rubrique_dotation WHERE to_rubrique_facturation_id <> 0) + ; + + DROP TABLE IF EXISTS w_apply_dotation_new; + CREATE TEMP TABLE w_apply_dotation_new AS + SELECT p_factures_lignes_c.*, + to_prestation_id, + to_rubrique_facturation_id + FROM activite.p_factures_lignes_c + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_service_rubrique_dotation ON + t_lieux.service_facturation_id = ANY(t_service_rubrique_dotation.service_facturation_id_array) AND + p_factures_lignes_c.rubrique_facturation_id = ANY(t_service_rubrique_dotation.rubrique_facturation_id_array) AND + date_part('year',p_factures_lignes_c.date_fin) = t_service_rubrique_dotation.annee + WHERE t_service_rubrique_dotation.to_prestation_id <> 0 + ; + + UPDATE w_apply_dotation_new SET + rubrique_facturation_id = to_rubrique_facturation_id, + rubrique_comptabilisation_id = to_rubrique_facturation_id, + prestation_id = to_prestation_id, + montant_facture_1 = montant_facture, + montant_facture_2 = 0, + montant_facture_22 = 0, + montant_facture_0 = 0, + montant_comptabilise = 0, + montant_comptabilise_1 = 0, + montant_comptabilise_2 = 0, + montant_comptabilise_22 = 0 + ; + + ALTER TABLE w_apply_dotation_new DROP COLUMN to_rubrique_facturation_id; + ALTER TABLE w_apply_dotation_new DROP COLUMN to_prestation_id; + + INSERT INTO activite.p_factures_lignes_c + SELECT * + FROM w_apply_dotation_new + ; + + DROP TABLE IF EXISTS w_apply_dotation; + CREATE TEMP TABLE w_apply_dotation AS + SELECT t_service_rubrique_dotation.oid AS dotation_id, + t_service_rubrique_dotation.service_facturation_id_array, + t_service_rubrique_dotation.rubrique_facturation_id_array, + annee, + SUM(nb_rubrique) AS nb_rubrique_tot, + SUM(CASE WHEN p_factures_lignes_c.montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_1 ELSE 0 END) + + SUM(CASE WHEN p_factures_lignes_c.montant_facture_2 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_2 ELSE 0 END) + + SUM(CASE WHEN p_factures_lignes_c.montant_facture_22 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_22 ELSE 0 END) + + SUM(p_factures_lignes_c.montant_encours) AS montant_fac_tot, + MAX(t_service_rubrique_dotation.montant_dotation*CASE WHEN date_part('year',now()) > annee THEN 1 ELSE (date(now()) - to_date(annee,'YYYY'))/365.00 END) As montant_dot, + 0::numeric AS coefficient_dot + FROM activite.p_factures_lignes_c + JOIN activite.t_rubriques_facturation ON + rubrique_facturation_id = t_rubriques_facturation.oid + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_service_rubrique_dotation ON + t_lieux.service_facturation_id = ANY(t_service_rubrique_dotation.service_facturation_id_array) AND + p_factures_lignes_c.rubrique_facturation_id = ANY(t_service_rubrique_dotation.rubrique_facturation_id_array) AND + date_part('year',p_factures_lignes_c.date_fin) = t_service_rubrique_dotation.annee + WHERE (p_factures_lignes_c.montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 OR + p_factures_lignes_c.montant_facture_2 <> 0 AND montant_comptabilise_2 = 0 OR + p_factures_lignes_c.montant_facture_22 <> 0 AND montant_comptabilise_22 = 0 OR + p_factures_lignes_c.montant_encours <> 0 + + ) AND + t_service_rubrique_dotation.to_prestation_id = 0 + GROUP BY 1,2,3,4; + + INSERT INTO w_apply_dotation + SELECT t_service_rubrique_dotation.oid AS dotation_id, + t_service_rubrique_dotation.service_facturation_id_array, + ARRAY[to_rubrique_facturation_id], + annee, + SUM(nb_rubrique) AS nb_rubrique_tot, + SUM(CASE WHEN p_factures_lignes_c.montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_1 ELSE 0 END) + + SUM(CASE WHEN p_factures_lignes_c.montant_facture_2 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_2 ELSE 0 END) + + SUM(CASE WHEN p_factures_lignes_c.montant_facture_22 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_22 ELSE 0 END) + + SUM(p_factures_lignes_c.montant_encours) AS montant_fac_tot, + MAX(t_service_rubrique_dotation.montant_dotation*CASE WHEN date_part('year',now()) > annee THEN 1 ELSE (date(now()) - to_date(annee,'YYYY'))/365.00 END) As montant_dot, + 0::numeric AS coefficient_dot + FROM activite.p_factures_lignes_c + JOIN activite.t_rubriques_facturation ON + rubrique_facturation_id = t_rubriques_facturation.oid + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_service_rubrique_dotation ON + t_lieux.service_facturation_id = ANY(t_service_rubrique_dotation.service_facturation_id_array) AND + p_factures_lignes_c.rubrique_facturation_id = to_rubrique_facturation_id AND + date_part('year',p_factures_lignes_c.date_fin) = t_service_rubrique_dotation.annee + WHERE (p_factures_lignes_c.montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 OR + p_factures_lignes_c.montant_facture_2 <> 0 AND montant_comptabilise_2 = 0 OR + p_factures_lignes_c.montant_facture_22 <> 0 AND montant_comptabilise_22 = 0 OR + p_factures_lignes_c.montant_encours <> 0 + + ) AND + t_service_rubrique_dotation.to_rubrique_facturation_id <> 0 + GROUP BY 1,2,3,4; + + UPDATE w_apply_dotation + SET coefficient_dot = base.cti_division(montant_dot,montant_fac_tot) + ; + + + -- Application coefficient + UPDATE activite.p_factures_lignes_c SET + montant_facture_1 = CASE WHEN p_factures_lignes_c.montant_facture_1 <> 0 AND p_factures_lignes_c.montant_comptabilise_1 = 0 THEN p_factures_lignes_c.montant_facture_1 * coefficient_dot ELSE 0 END , + montant_comptabilise_budget_global_1 = CASE WHEN p_factures_lignes_c.montant_facture_1 <> 0 AND p_factures_lignes_c.montant_comptabilise_1 = 0 THEN p_factures_lignes_c.montant_facture_1 * coefficient_dot ELSE 0 END , + montant_facture_2 = CASE WHEN p_factures_lignes_c.montant_facture_2 <> 0 AND p_factures_lignes_c.montant_comptabilise_2 = 0 THEN p_factures_lignes_c.montant_facture_2 * coefficient_dot ELSE 0 END , + montant_facture_22 = CASE WHEN p_factures_lignes_c.montant_facture_22 <> 0 AND p_factures_lignes_c.montant_comptabilise_22 = 0 THEN p_factures_lignes_c.montant_facture_22 * coefficient_dot ELSE 0 END , + montant_facture = montant_facture_0 + + CASE WHEN p_factures_lignes_c.montant_facture_1 <> 0 AND p_factures_lignes_c.montant_comptabilise_1 = 0 THEN p_factures_lignes_c.montant_facture_1 * coefficient_dot ELSE 0 END + + CASE WHEN p_factures_lignes_c.montant_facture_2 <> 0 AND p_factures_lignes_c.montant_comptabilise_2 = 0 THEN p_factures_lignes_c.montant_facture_2 * coefficient_dot ELSE 0 END + + CASE WHEN p_factures_lignes_c.montant_facture_22 <> 0 AND p_factures_lignes_c.montant_comptabilise_22 = 0 THEN p_factures_lignes_c.montant_facture_22 * coefficient_dot ELSE 0 END, + montant_encours = CASE WHEN p_factures_lignes_c.montant_encours <> 0 THEN p_factures_lignes_c.montant_encours * coefficient_dot ELSE 0 END, + prix_unitaire = + base.cti_division + ( + montant_facture_0 + + CASE WHEN p_factures_lignes_c.montant_facture_1 <> 0 AND p_factures_lignes_c.montant_comptabilise_1 = 0 THEN p_factures_lignes_c.montant_facture_1 * coefficient_dot ELSE 0 END + + CASE WHEN p_factures_lignes_c.montant_facture_2 <> 0 AND p_factures_lignes_c.montant_comptabilise_2 = 0 THEN p_factures_lignes_c.montant_facture_2 * coefficient_dot ELSE 0 END + + CASE WHEN p_factures_lignes_c.montant_facture_22 <> 0 AND p_factures_lignes_c.montant_comptabilise_22 = 0 THEN p_factures_lignes_c.montant_facture_22 * coefficient_dot ELSE 0 END + + CASE WHEN p_factures_lignes_c.montant_encours <> 0 THEN p_factures_lignes_c.montant_encours * coefficient_dot ELSE 0 END + , + nb_rubrique + ) + FROM w_apply_dotation, activite.t_lieux + WHERE p_factures_lignes_c.lieu_id = t_lieux.oid AND + t_lieux.service_facturation_id = ANY(w_apply_dotation.service_facturation_id_array) AND + p_factures_lignes_c.rubrique_facturation_id = ANY(w_apply_dotation.rubrique_facturation_id_array) AND + date_part('year',p_factures_lignes_c.date_fin) = w_apply_dotation.annee + ; + + -- Arrondi sur une ligne + UPDATE activite.p_factures_lignes_c SET + montant_facture = montant_facture + round_montant, + montant_facture_1 = CASE WHEN montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_1 + round_montant ELSE montant_facture_1 END, + montant_comptabilise_budget_global_1 = CASE WHEN montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_1 + round_montant ELSE montant_facture_1 END, + montant_facture_2 = CASE WHEN (montant_facture_1 = 0 OR montant_comptabilise_1 <> 0) AND montant_facture_2 <> 0 AND montant_comptabilise_2 = 0 THEN montant_facture_2 + round_montant ELSE montant_facture_2 END, + montant_facture_22 = CASE WHEN (montant_facture_1 = 0 OR montant_comptabilise_1 <> 0) AND (montant_facture_2 = 0 OR montant_comptabilise_2 <> 0) AND montant_facture_22 <> 0 AND montant_comptabilise_22 = 0 THEN montant_facture_22 + round_montant ELSE montant_facture_22 END + FROM + ( + SELECT dotation_id, + MAX(montant_dot) - + ( + SUM(CASE WHEN p_factures_lignes_c.montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_1 ELSE 0 END) + + SUM(CASE WHEN p_factures_lignes_c.montant_facture_2 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_2 ELSE 0 END) + + SUM(CASE WHEN p_factures_lignes_c.montant_facture_22 <> 0 AND montant_comptabilise_1 = 0 THEN montant_facture_22 ELSE 0 END) + + SUM(p_factures_lignes_c.montant_encours) + ) AS round_montant, + MAX(CASE + WHEN p_factures_lignes_c.montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 THEN p_factures_lignes_c.CTID + WHEN p_factures_lignes_c.montant_facture_2 <> 0 AND montant_comptabilise_2 = 0 THEN p_factures_lignes_c.CTID + WHEN p_factures_lignes_c.montant_facture_22 <> 0 AND montant_comptabilise_22 = 0 THEN p_factures_lignes_c.CTID + ELSE NULL END) AS round_ctid + FROM activite.p_factures_lignes_c + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN w_apply_dotation ON + t_lieux.service_facturation_id = ANY(w_apply_dotation.service_facturation_id_array) AND + p_factures_lignes_c.rubrique_facturation_id = ANY(w_apply_dotation.rubrique_facturation_id_array) AND + date_part('year',p_factures_lignes_c.date_fin) = w_apply_dotation.annee + WHERE (p_factures_lignes_c.montant_facture_1 <> 0 AND montant_comptabilise_1 = 0 OR + p_factures_lignes_c.montant_facture_2 <> 0 AND montant_comptabilise_2 = 0 OR + p_factures_lignes_c.montant_facture_22 <> 0 AND montant_comptabilise_22 = 0 OR + p_factures_lignes_c.montant_encours <> 0 + ) + GROUP BY 1 + ) subview + WHERE p_factures_lignes_c.CTID = subview.round_ctid; + + -- Mise a jour entetes + DROP TABLE IF EXISTS w_apply_dotation_factures; + CREATE TEMP TABLE w_apply_dotation_factures AS + SELECT p_factures.no_facture, + SUM(montant_facture) AS montant_facture_c, + SUM(montant_facture_1) AS montant_facture_1_c, + SUM(montant_facture_2) AS montant_facture_2_c, + SUM(montant_facture_22) AS montant_facture_22_c, + SUM(montant_encours) AS montant_encours_c + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN w_apply_dotation ON + p_factures_lignes_c.rubrique_facturation_id = ANY(w_apply_dotation.rubrique_facturation_id_array) AND + date_part('year',p_factures_lignes_c.date_fin) = w_apply_dotation.annee + GROUP BY 1 + ; + + UPDATE activite.p_factures SET + montant_facture_c = w_apply_dotation_factures.montant_facture_c, + montant_facture_1_c = w_apply_dotation_factures.montant_facture_1_c, + montant_comptabilise_budget_global_c = w_apply_dotation_factures.montant_facture_1_c, + montant_facture_2_c = w_apply_dotation_factures.montant_facture_2_c, + montant_facture_22_c = w_apply_dotation_factures.montant_facture_22_c, + montant_encours_c = w_apply_dotation_factures.montant_encours_c + FROM w_apply_dotation_factures + WHERE p_factures.no_facture = w_apply_dotation_factures.no_facture + ; + + DROP TABLE IF EXISTS w_apply_dotation_factures; + CREATE TEMP TABLE w_apply_dotation_factures AS + SELECT p_factures.no_facture_reference, + SUM(montant_facture) AS montant_facture_c, + SUM(montant_facture_1) AS montant_facture_1_c, + SUM(montant_facture_2) AS montant_facture_2_c, + SUM(montant_facture_22) AS montant_facture_22_c, + SUM(montant_encours) AS montant_encours_c + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN w_apply_dotation ON + p_factures_lignes_c.rubrique_facturation_id = ANY(w_apply_dotation.rubrique_facturation_id_array) AND + date_part('year',p_factures_lignes_c.date_fin) = w_apply_dotation.annee + GROUP BY 1 + ; + + + UPDATE activite.p_factures_reference SET + montant_facture = w_apply_dotation_factures.montant_facture_c + p_factures_reference.montant_facture_h, + montant_facture_c = w_apply_dotation_factures.montant_facture_c, + montant_facture_1 = w_apply_dotation_factures.montant_facture_1_c + p_factures_reference.montant_facture_1_h, + montant_facture_1_c = w_apply_dotation_factures.montant_facture_1_c, + montant_facture_2 = w_apply_dotation_factures.montant_facture_2_c + w_apply_dotation_factures.montant_facture_22_c + p_factures_reference.montant_facture_2_h, + montant_facture_2_c = w_apply_dotation_factures.montant_facture_2_c + w_apply_dotation_factures.montant_facture_22_c, + montant_encours = w_apply_dotation_factures.montant_encours_c + p_factures_reference.montant_encours_h, + montant_encours_c = w_apply_dotation_factures.montant_encours_c, + montant_comptabilise_budget_global_c = w_apply_dotation_factures.montant_facture_1_c + FROM w_apply_dotation_factures + WHERE p_factures_reference.no_facture_reference = w_apply_dotation_factures.no_facture_reference + ; + + UPDATE activite.p_factures_lignes_c + SET prix_unitaire = montant_facture / nb_rubrique + WHERE rubrique_facturation_id <> 0 AND + rubrique_facturation_id IN (SELECT to_rubrique_facturation_id FROM activite.t_service_rubrique_dotation WHERE to_rubrique_facturation_id <> 0) + ; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_gen_sejour_effet_tarif.yaml b/db/schema2/functions/cti_gen_sejour_effet_tarif.yaml new file mode 100644 index 0000000..25a0225 --- /dev/null +++ b/db/schema2/functions/cti_gen_sejour_effet_tarif.yaml @@ -0,0 +1,576 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + + IF NOT EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + return 'Pas de PMSI'; + END IF; + + -- Calcul simulation + + -- Initialisation du coefficient MCO non alimenté (exemple WEB100T) + UPDATE activite.p_factures_lignes_c + SET coefficient_mco = + CASE + WHEN date(date_fin) >= '20170301' THEN 0.993 + WHEN date(date_fin) >= '20160301' THEN 0.995 + WHEN date(date_fin) >= '20140301' THEN 0.9965 + ELSE 1::numeric + END + FROM activite.t_prestations + WHERE + prestation_id = t_prestations.oid AND + t_prestations.code IN ('GHS', 'EXH') AND + coefficient_mco = 1 + ; + + + -- Initialisation des GHS bebes non alimentés depuis PMSI + UPDATE activite.p_sejours SET + ghs_bebe1_id = subview.ghs_bebe1_id, + ghs_bebe2_id = subview.ghs_bebe2_id, + ghs_bebe3_id = subview.ghs_bebe3_id + FROM + ( + SELECT p_sejours.no_sejour, + MAX(ghs_bebe1_id), + MAX(ghs_bebe2_id), + MAX(ghs_bebe3_id), + MAX(CASE WHEN row_number = 1 THEN ghs_bebe_id ELSE 0 END) AS ghs_bebe1_id, + MAX(CASE WHEN row_number = 2 THEN ghs_bebe_id ELSE 0 END) AS ghs_bebe2_id, + MAX(CASE WHEN row_number = 3 THEN ghs_bebe_id ELSE 0 END) AS ghs_bebe3_id + FROM activite.p_sejours + JOIN + ( + SELECT p_sejour_pmsi.no_sejour, + CASE WHEN p_rsf_detail.ghs_id <> p_rss.ghs_id THEN t_ghs_base.oid ELSE 0 END AS ghs_bebe_id, + row_number() OVER (PARTITION BY p_sejour_pmsi.no_sejour ORDER BY CASE WHEN p_rsf_detail.ghs_id <> p_rss.ghs_id THEN t_ghs_base.oid ELSE 999999999999 END) AS row_number + FROM pmsi.p_rsf_detail + JOIN pmsi.p_rss ON p_rsf_detail.rss_id = p_rss.oid + JOIN pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid + JOIN pmsi.t_prestations ON prestation_id = t_prestations.oid + JOIN pmsi.t_ghs ON p_rsf_detail.ghs_id = t_ghs.oid + JOIN base.t_ghs t_ghs_base ON t_ghs_base.code = t_ghs.code + JOIN activite.p_sejour_pmsi ON p_sejour_pmsi.rss_id = p_rss.oid + WHERE t_prestations.code = 'GHS' AND + t_ghm.code LIKE '14%' AND + p_rss.en_cours = '0' AND + est_ligne_rss = '1' + order by 3 desc + ) subview ON p_sejours.no_sejour = subview.no_sejour + GROUP BY 1 + HAVING + ( + MAX(ghs_bebe1_id) <> MAX(CASE WHEN row_number = 1 THEN ghs_bebe_id ELSE 0 END) OR + MAX(ghs_bebe2_id) <> MAX(CASE WHEN row_number = 2 THEN ghs_bebe_id ELSE 0 END) OR + MAX(ghs_bebe3_id) <> MAX(CASE WHEN row_number = 3 THEN ghs_bebe_id ELSE 0 END) + ) + ) subview + WHERE p_sejours.no_sejour = subview.no_sejour + ; + + + -- Rechreche coefficient MCO par période pour simulation + DROP TABLE IF EXISTS w_coefficient; + CREATE TEMP TABLE w_coefficient AS + SELECT * + FROM + ( + SELECT date_debut, date_fin,coefficient_mco, nb, + row_number() OVER (PARTITION BY date_debut ORDER BY nb DESC) AS row_number + FROM + ( + SELECT date(date_trunc('month',p_factures.date_fin)) AS date_debut, + date(date_trunc('month',p_factures.date_fin)+interval '1 month'-interval '1 day') AS date_fin, + coefficient_mco, + count(*) AS nb + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + WHERE t_prestations.code = 'GHS' AND p_factures.date_fin >= '20140301' + GROUP BY 1,2,3 + ) subview + ) subview + WHERE row_number = 1 + ; + + + INSERT INTO w_coefficient + SELECT p_calendrier_mois.date_debut, + p_calendrier_mois.date_fin, + CASE + WHEN date(p_calendrier_mois.date_fin) >= '20170301' THEN 0.993 + WHEN date(p_calendrier_mois.date_fin) >= '20160301' THEN 0.995 + WHEN date(p_calendrier_mois.date_fin) >= '20140301' THEN 0.9965 + ELSE 1::numeric + END + AS coefficient_mco, + 1::numeric AS nb, + 1::bigint AS row_number + FROm base.p_calendrier_mois + LEFT JOIN w_coefficient ON p_calendrier_mois.date_fin = w_coefficient.date_fin + WHERE p_calendrier_mois.date_debut BETWEEN '20170101' AND now() AND w_coefficient IS NULL + ; + + + + -- Identification des séjours à traiter + DROP TABLE IF EXISTS w_simulation; + CREATE TEMP TABLE w_simulation AS + SELECT p_sejours.oid AS sejour_id, + p_sejours.no_sejour, + type_sejour, + date_entree, + date_sortie, + mode_sortie, + date_sortie - date_entree AS duree_sejour, + 1::numeric AS nb, + p_sejours.ghm_id, + t_ghm.code AS ghm_code, + t_ghm.texte As ghm_texte, + p_sejours.ghs_id, + t_ghs.code AS ghs_code, + 0::numeric AS coefficient_f, + '1'::numeric AS ok_ghs_f, + COALESCE(w_coefficient.coefficient_mco,0) AS coefficient_c, + CASE WHEN t_ghs_tarifs.tarif_ghs IS NOT NULL THEN '1' ELSE '0' END AS ok_ghs_c, + COALESCE(t_ghs_tarifs.tarif_ghs,0) AS tarif_ghs_c, + COALESCE(t_ghs_tarifs.tarif_exh,0) AS tarif_exh_c, + COALESCE(t_ghs_tarifs.tarif_exb,0) AS tarif_exb_c, + COALESCE(t_ghs_tarifs.forfait_exb,0) AS forfait_exb_c, + COALESCE(t_ghs_tarifs.borne_basse,0) AS borne_basse_c, + COALESCE(t_ghs_tarifs.borne_haute,0) AS borne_haute_c, + p_sejours.ghs_bebe1_id, + 0::numeric AS tarif_ghs_bb1_c, + p_sejours.ghs_bebe2_id, + 0::numeric AS tarif_ghs_bb2_c, + p_sejours.ghs_bebe3_id, + 0::numeric AS tarif_ghs_bb3_c, + COALESCE(w_coefficient_p.coefficient_mco,0) AS coefficient_p, + CASE WHEN t_ghs_tarifs_p.tarif_ghs IS NOT NULL THEN '1' ELSE '0' END AS ok_ghs_p, + COALESCE(t_ghs_tarifs_p.tarif_ghs,0) AS tarif_ghs_p, + COALESCE(t_ghs_tarifs_p.tarif_exh,0) AS tarif_exh_p, + COALESCE(t_ghs_tarifs_p.tarif_exb,0) AS tarif_exb_p, + COALESCE(t_ghs_tarifs_p.forfait_exb,0) AS forfait_exb_p, + COALESCE(t_ghs_tarifs_p.borne_basse,0) AS borne_basse_p, + COALESCE(t_ghs_tarifs_p.borne_haute,0) AS borne_haute_p, + 0::numeric AS tarif_ghs_bb1_p, + 0::numeric AS tarif_ghs_bb2_p, + 0::numeric AS tarif_ghs_bb3_p, + 0::numeric AS montant_ghs_f, + 0::numeric AS montant_exh_f, + 0::numeric AS montant_tot_f, + 0::numeric AS montant_ghs_c, + 0::numeric AS montant_exh_c, + 0::numeric AS montant_exb_c, + 0::numeric AS montant_ghs_bb1_c, + 0::numeric AS montant_ghs_bb2_c, + 0::numeric AS montant_ghs_bb3_c, + 0::numeric AS montant_tot_c, + 0::numeric AS montant_ghs_p, + 0::numeric AS montant_exh_p, + 0::numeric AS montant_exb_p, + 0::numeric AS montant_tot_p, + 0::numeric AS montant_ghs_bb1_p, + 0::numeric AS montant_ghs_bb2_p, + 0::numeric AS montant_ghs_bb3_p + FROM activite.p_sejours + JOIN base.t_ghs ON p_sejours.ghs_id = t_ghs.oid + JOIN base.t_ghm ON p_sejours.ghm_id = t_ghm.oid + LEFT JOIN base.t_ghs_tarifs ON t_ghs_tarifs.ghs_id = p_sejours.ghs_id AND + p_sejours.date_sortie BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin AND + t_ghs_tarifs.secteur = '2' + LEFT JOIN w_coefficient ON p_sejours.date_sortie BETWEEN w_coefficient.date_debut AND w_coefficient.date_fin + LEFT JOIN base.t_ghs_tarifs t_ghs_tarifs_p ON t_ghs_tarifs_p.ghs_id = p_sejours.ghs_id AND + date(date_trunc('month',p_sejours.date_sortie)-interval '1 year') BETWEEN t_ghs_tarifs_p.date_debut AND t_ghs_tarifs_p.date_fin AND + t_ghs_tarifs_p.secteur = '2' + LEFT JOIN w_coefficient w_coefficient_p ON date(date_trunc('month',p_sejours.date_sortie)-interval '1 year') BETWEEN w_coefficient_p.date_debut AND w_coefficient_p.date_fin + WHERE date_sortie >= '20160301' AND + code_sorti = '1' AND + type_sejour IN ('1','2','5') AND + p_sejours.ghs_id > 0 AND + p_sejours.ghm_id > 0 AND + t_ghm.code <> ALL(Array['09Z02A','14Z08Z']) + ; + + -- Mise à jour des tarifs ghs bebes + UPDATE w_simulation SET + tarif_ghs_bb1_c = t_ghs_tarifs.tarif_ghs + FROM base.t_ghs_tarifs + WHERE ghs_bebe1_id = t_ghs_tarifs.ghs_id AND + ghs_bebe1_id <> 0 AND + ghm_code LIKE '14%' AND + date_sortie BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin AND + secteur = '2' + ; + UPDATE w_simulation SET + tarif_ghs_bb2_c = t_ghs_tarifs.tarif_ghs + FROM base.t_ghs_tarifs + WHERE ghs_bebe1_id = t_ghs_tarifs.ghs_id AND + ghs_bebe2_id <> 0 AND + ghm_code LIKE '14%' AND + date_sortie BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin AND + secteur = '2' + ; + UPDATE w_simulation SET + tarif_ghs_bb3_c = t_ghs_tarifs.tarif_ghs + FROM base.t_ghs_tarifs + WHERE ghs_bebe1_id = t_ghs_tarifs.ghs_id AND + ghs_bebe3_id <> 0 AND + ghm_code LIKE '14%' AND + date_sortie BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin AND + secteur = '2' + ; + + + UPDATE w_simulation SET + tarif_ghs_bb1_p = t_ghs_tarifs.tarif_ghs + FROM base.t_ghs_tarifs + WHERE ghs_bebe1_id = t_ghs_tarifs.ghs_id AND + ghs_bebe1_id <> 0 AND + ghm_code LIKE '14%' AND + date(date_trunc('month',date_sortie)-interval '1 year') BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin AND + secteur = '2' + ; + UPDATE w_simulation SET + tarif_ghs_bb2_p = t_ghs_tarifs.tarif_ghs + FROM base.t_ghs_tarifs + WHERE ghs_bebe1_id = t_ghs_tarifs.ghs_id AND + ghs_bebe2_id <> 0 AND + ghm_code LIKE '14%' AND + date(date_trunc('month',date_sortie)-interval '1 year') BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin AND + secteur = '2' + ; + UPDATE w_simulation SET + tarif_ghs_bb3_p = t_ghs_tarifs.tarif_ghs + FROM base.t_ghs_tarifs + WHERE ghs_bebe1_id = t_ghs_tarifs.ghs_id AND + ghs_bebe3_id <> 0 AND + ghm_code LIKE '14%' AND + date(date_trunc('month',date_sortie)-interval '1 year') BETWEEN t_ghs_tarifs.date_debut AND t_ghs_tarifs.date_fin AND + secteur = '2' + ; + + -- Nombre de séances + UPDATE w_simulation + SET nb = subview.nb + FROM + ( + SELECT p_mouvements_sejour.no_sejour, COUNT(DISTINCT p_mouvements_sejour.date) AS nb + FROM activite.p_mouvements_sejour + JOIN w_simulation ON w_simulation.no_sejour = p_mouvements_sejour.no_sejour AND + w_simulation.type_sejour = '5' + WHERE nb_seances > 0 + GROUP BY 1 + ) subview + WHERE w_simulation.no_sejour = subview.no_sejour + ; + + -- Nombre de séances selon PMSI + UPDATE w_simulation + SET nb = subview.nb + FROM + ( + SELECT p_sejour_pmsi.no_sejour, COUNT(DISTINCT date_fin) AS nb + FROM pmsi.p_rsf_detail + JOIN pmsi.p_rss ON p_rsf_detail.rss_id = p_rss.oid AND en_cours = '0' + JOIN pmsi.t_ghs ON t_ghs.oid = p_rsf_detail.ghs_id AND t_ghs.code = ANY(Array[9606]) + JOIN pmsi.t_prestations ON t_prestations.oid = p_rsf_detail.prestation_id AND t_prestations.code = 'GHS' + JOIN activite.p_sejour_pmsi ON p_sejour_pmsi.rss_id = p_rss.oid + JOIN w_simulation ON p_sejour_pmsi.no_sejour = w_simulation.no_sejour + GROUP BY 1 + HAVING MAX(w_simulation.nb) <> COUNT(DISTINCT p_rsf_detail.date_fin) AND + MAX(ghm_code) LIKE '28%' + ) subview + WHERE w_simulation.no_sejour = subview.no_sejour + ; + -- Nombre de séances selon facturation + UPDATE w_simulation + SET nb= subview.nb + FROM + ( + SELECT p_factures.no_sejour, SUM(nb_prestation) AS nb + FROM activite.p_factures_lignes_c + JOIN activite.t_prestations ON t_prestations.oid = prestation_id AND t_prestations.code = 'GHS' + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN w_simulation ON p_factures.no_sejour = w_simulation.no_sejour + WHERE w_simulation.nb = 1 AND w_simulation.ghm_code LIKE '28%' + GROUP BY 1 + HAVING SUM(nb_prestation) > 1) subview + WHERE w_simulation.no_sejour = subview.no_sejour + ; + -- Recherche montant réellement facturé + UPDATE w_simulation + SET coefficient_f = subview.coefficient_f, + montant_ghs_f = subview.montant_ghs_f, + montant_exh_f = subview.montant_exh_f + FROM + ( + SELECT p_factures.no_sejour, + MAX(CASE WHEN t_prestations.code = 'GHS' THEN coefficient_mco ELSE 0 END) AS coefficient_f, + round(SUM(CASE WHEN t_prestations.code = ANY(Array['GHS','FJ','FJM','FRL']) THEN montant_facture ELSE 0 END),2) AS montant_ghs_f, + round(SUM(CASE WHEN t_prestations.code = 'EXH' THEN montant_facture ELSE 0 END),2) AS montant_exh_f + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN w_simulation ON w_simulation.no_sejour = p_factures.no_sejour + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND + t_prestations.code = ANY(Array['GHS','EXH','FJ','FJM','FRL']) AND + ( + t_prestations.code NOT IN ('FJ','FJM') OR + p_factures_lignes_c.date_fin < w_simulation.date_sortie + ) + GROUP BY 1 + ) + subview + WHERE w_simulation.no_sejour = subview.no_sejour + ; + + -- Si tarif ghs précédent inexistant (nouveau ghs), prendre tarif en cours + UPDATE w_simulation SET + tarif_ghs_p = tarif_ghs_c, + tarif_exh_p = tarif_exh_c, + tarif_exb_p = tarif_exb_c, + forfait_exb_p = forfait_exb_c, + borne_basse_p = borne_basse_c, + borne_haute_p = borne_haute_c + WHERE ok_ghs_p = '0' + ; + + -- Simulation calcul + UPDATE w_simulation SET + montant_ghs_c = round( + tarif_ghs_c * coefficient_c * nb + ,2), + montant_exh_c = round( + CASE + WHEN duree_sejour + CASE WHEN mode_sortie IN ('6','7','9') THEN 1 ELSE 0 END > borne_haute_c AND borne_haute_c > 0 + THEN tarif_exh_c * (duree_sejour + CASE WHEN mode_sortie IN ('6','7','9') THEN 1 ELSE 0 END - borne_haute_c) * coefficient_c + ELSE 0 END + ,2), + montant_exb_c = round( + 0 - CASE + WHEN borne_basse_c = 0 OR duree_sejour >= borne_basse_c OR mode_sortie = '9' THEN 0 + WHEN forfait_exb_c > 0 THEN forfait_exb_c * coefficient_c + WHEN forfait_exb_c = 0 AND tarif_exb_c > 0 AND duree_sejour = 0 THEN (tarif_ghs_c * coefficient_c) - (tarif_exb_c / 2 * coefficient_c) + WHEN forfait_exb_c = 0 AND tarif_exb_c > 0 AND duree_sejour > 0 THEN (tarif_exb_c * (borne_basse_c-duree_sejour)) * coefficient_c + ELSE 0 END + ,2), + montant_ghs_bb1_c = round(tarif_ghs_bb1_c * coefficient_c ,2), + montant_ghs_bb2_c = round(tarif_ghs_bb2_c * coefficient_c ,2), + montant_ghs_bb3_c = round(tarif_ghs_bb3_c * coefficient_c ,2), + montant_ghs_p = round( + tarif_ghs_p * coefficient_p * nb + ,2), + montant_exh_p = round( + CASE + WHEN duree_sejour + CASE WHEN mode_sortie IN ('6','7','9') THEN 1 ELSE 0 END > borne_haute_p AND borne_haute_p > 0 + THEN tarif_exh_p * (duree_sejour + CASE WHEN mode_sortie IN ('6','7','9') THEN 1 ELSE 0 END - borne_haute_p) * coefficient_p + ELSE 0 END + ,2), + montant_exb_p = round( + 0 - CASE + WHEN borne_basse_p = 0 OR duree_sejour >= borne_basse_p OR mode_sortie = '9' THEN 0 + WHEN forfait_exb_p > 0 THEN forfait_exb_p * coefficient_p + WHEN forfait_exb_p = 0 AND tarif_exb_p > 0 AND duree_sejour = 0 THEN (tarif_ghs_p * coefficient_p) - (tarif_exb_p / 2 * coefficient_p) + WHEN forfait_exb_p = 0 AND tarif_exb_p > 0 AND duree_sejour > 0 THEN (tarif_exb_p * (borne_basse_p-duree_sejour)) * coefficient_p + ELSE 0 END + ,2), + montant_ghs_bb1_p = round(tarif_ghs_bb1_p * coefficient_p ,2), + montant_ghs_bb2_p = round(tarif_ghs_bb2_p * coefficient_p ,2), + montant_ghs_bb3_p = round(tarif_ghs_bb3_p * coefficient_p ,2) + + ; + + -- Sur séances avec ucd enlever 40 euros + UPDATE w_simulation + SET montant_ghs_c = round(montant_ghs_c - 40*nb_ph8*coefficient_c,2), + montant_ghs_p = round(montant_ghs_p - 40*nb_ph8*coefficient_p,2) + FROM + ( + SELECT no_sejour, + count(DISTINCT date_fin) AS nb_ph8 + FROM + ( + SELECT p_factures.no_sejour, + p_factures_lignes_c.date_fin, + SUM(montant_facture) + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN w_simulation ON w_simulation.no_sejour = p_factures.no_sejour + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND + t_prestations.code = ANY(Array['PH8','UCD']) + WHERE w_simulation.ghm_code = ANY(Array['28Z07Z','28Z17Z']) + GROUP BY 1,2 + HAVING SUM(montant_facture) <> 0 + ) subview + GROUP BY 1 + ) subview + WHERE w_simulation.no_sejour = subview.no_sejour AND + ABS(montant_ghs_f - montant_ghs_c) > 2 + ; + + + -- total + UPDATE w_simulation SET + montant_tot_f = montant_ghs_f + montant_exh_f, + montant_tot_c = montant_ghs_c + montant_exb_c + montant_exh_c + montant_ghs_bb1_c + montant_ghs_bb2_c + montant_ghs_bb3_c, + montant_tot_p = montant_ghs_p + montant_exb_p + montant_exh_p + montant_ghs_bb1_p + montant_ghs_bb2_p + montant_ghs_bb3_p + ; + + -- Complement bebe si ghs_bebe non trouve + UPDATE w_simulation SET + ghs_bebe1_id = subview.ghs_bebe1_id, + tarif_ghs_bb1_c = subview.tarif_ghs_bb1_c, + montant_ghs_bb1_c = subview.montant_ghs_bb1_c, + montant_tot_c = montant_tot_c + subview.montant_ghs_bb1_c, + tarif_ghs_bb1_p = subview.tarif_ghs_bb1_p, + montant_ghs_bb1_p = subview.montant_ghs_bb1_p, + montant_tot_p = montant_tot_p + subview.montant_ghs_bb1_p + FROM + ( + SELECT montant_ghs_bb1_c, + (MAX(ARRAY[nb,ghs_bebe1_id]))[2] AS ghs_bebe1_id, + (MAX(ARRAY[nb,tarif_ghs_bb1_c]))[2] AS tarif_ghs_bb1_c, + (MAX(ARRAY[nb,tarif_ghs_bb1_p]))[2] AS tarif_ghs_bb1_p, + (MAX(ARRAY[nb,montant_ghs_bb1_p]))[2] AS montant_ghs_bb1_p + FROM + ( + SELECT montant_ghs_bb1_c, + ghs_bebe1_id, + MAX(tarif_ghs_bb1_c) AS tarif_ghs_bb1_c, + MAX(tarif_ghs_bb1_p) AS tarif_ghs_bb1_p, + MAX(montant_ghs_bb1_p) AS montant_ghs_bb1_p, + count(*) AS nb + FROM w_simulation + WHERE ghm_code LIKE '14%' AND ghs_bebe1_id <> 0 + GROUP BY 1,2 + ) subview + GROUP BY 1 + ) subview + WHERE w_simulation.ghm_code LIKE '14%' AND + w_simulation.ghs_bebe1_id = 0 AND + subview.montant_ghs_bb1_c BETWEEN (montant_tot_f - montant_tot_c) - 0.01 AND (montant_tot_f - montant_tot_c) + 0.01 + ; + + -- Ajustement montant facture Forfait journalier JS ? + UPDATE w_simulation + SET montant_tot_f = montant_tot_c, + montant_ghs_f = montant_ghs_c + montant_exb_c + montant_ghs_bb1_c + montant_ghs_bb2_c + montant_ghs_bb3_c, + montant_exh_f = montant_exh_c + WHERE ABS(montant_tot_f - montant_tot_c) BETWEEN 17.99 AND 18.01 + ; + + -- Ajustement montant facture Centimes ? + UPDATE w_simulation + SET montant_tot_f = montant_tot_c, + montant_ghs_f = montant_ghs_c + montant_exb_c + montant_ghs_bb1_c + montant_ghs_bb2_c + montant_ghs_bb3_c, + montant_exh_f = montant_exh_c + WHERE ABS(montant_tot_f - montant_tot_c) BETWEEN 0.01 AND 0.03 + ; + + -- Pointeur séjour facturé + UPDATE w_simulation SET + ok_ghs_f = '0' + WHERE montant_tot_f = 0 + ; + + --Ajout à la table + TRUNCATE activite.p_sejour_effet_tarif; + INSERT INTO activite.p_sejour_effet_tarif + ( + sejour_id, + no_sejour, + ok_ghs_f, + coefficient_c, + ok_ghs_c, + tarif_ghs_c, + tarif_exh_c, + tarif_exb_c, + forfait_exb_c, + borne_basse_c, + borne_haute_c, + tarif_ghs_bb1_c, + tarif_ghs_bb2_c, + tarif_ghs_bb3_c, + coefficient_p, + ok_ghs_p, + tarif_ghs_p, + tarif_exh_p, + tarif_exb_p, + forfait_exb_p, + borne_basse_p, + borne_haute_p, + tarif_ghs_bb1_p, + tarif_ghs_bb2_p, + tarif_ghs_bb3_p, + montant_ghs_f, + montant_exh_f, + montant_tot_f, + montant_ghs_c, + montant_exb_c, + montant_exh_c, + montant_ghs_bb1_c, + montant_ghs_bb2_c, + montant_ghs_bb3_c, + montant_tot_c, + montant_ghs_p, + montant_exh_p, + montant_exb_p, + montant_tot_p, + montant_ghs_bb1_p, + montant_ghs_bb2_p, + montant_ghs_bb3_p + ) + SELECT + sejour_id, + no_sejour, + ok_ghs_f, + coefficient_c, + ok_ghs_c, + tarif_ghs_c, + tarif_exh_c, + tarif_exb_c, + forfait_exb_c, + borne_basse_c, + borne_haute_c, + tarif_ghs_bb1_c, + tarif_ghs_bb2_c, + tarif_ghs_bb3_c, + coefficient_p, + ok_ghs_p, + tarif_ghs_p, + tarif_exh_p, + tarif_exb_p, + forfait_exb_p, + borne_basse_p, + borne_haute_p, + tarif_ghs_bb1_p, + tarif_ghs_bb2_p, + tarif_ghs_bb3_p, + montant_ghs_f, + montant_exh_f, + montant_tot_f, + montant_ghs_c, + montant_exb_c, + montant_exh_c, + montant_ghs_bb1_c, + montant_ghs_bb2_c, + montant_ghs_bb3_c, + montant_tot_c, + montant_ghs_p, + montant_exh_p, + montant_exb_p, + montant_tot_p, + montant_ghs_bb1_p, + montant_ghs_bb2_p, + montant_ghs_bb3_p + FROM w_simulation + ; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_initialize_tables.yaml b/db/schema2/functions/cti_initialize_tables.yaml new file mode 100644 index 0000000..49e963e --- /dev/null +++ b/db/schema2/functions/cti_initialize_tables.yaml @@ -0,0 +1,246 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + + -- Géographie + INSERT INTO base.t_regions(oid, code, texte, texte_court) + SELECT 0, chr(127) || '**', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_regions); + + INSERT INTO base.t_departements(oid, code, texte, texte_court) + SELECT 0, chr(127) || '**', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_departements); + + INSERT INTO base.t_territoires_sante(oid, code, texte, texte_court) + SELECT 0, chr(127) || '*******', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_territoires_sante); + + INSERT INTO base.t_codes_geographiques_pmsi(oid, code, texte, texte_court, population, departement_id, territoire_sante_id) + SELECT 0, chr(127) || '*****', 'Non renseigné', 'Non renseigné', 0, 0, 0 + WHERE 0 NOT IN (SELECT oid FROM base.t_codes_geographiques_pmsi WHERE oid = 0); + + INSERT INTO base.t_codes_postaux(oid, code, texte, texte_court, secteur_geographique_id, population, + code_geographique_pmsi, longitude, latitude, departement_id, territoire_sante_id) + SELECT 0, chr(127) || '*****', 'Non renseigné', 'Non renseigné', 0, 0, '', 0, 0, 0, 0 + WHERE 0 NOT IN (SELECT oid FROM base.t_codes_postaux); + + -- Médecins + INSERT INTO base.t_specialites_medecin (oid, code, texte) + SELECT 0, chr(127) || '**', 'Non saisie' + WHERE 0 NOT IN (SELECT oid FROM base.t_specialites_medecin); + + INSERT INTO base.t_medecins (oid, code, nom, specialite_id) + SELECT 0, chr(127) || '******', 'Non saisi', 0 + WHERE 0 NOT IN (SELECT oid FROM base.t_medecins); + + -- GHM + INSERT INTO base.t_cmd(oid, code, texte, texte_court) + SELECT 0, chr(127) || '*', 'Hors PMSI', 'Hors PMSI' + WHERE 0 NOT IN (SELECT oid FROM base.t_cmd); + + INSERT INTO base.t_poles_oap(oid, code, texte, texte_court) + SELECT 0, chr(127) || '**', 'Hors PMSI', 'Hors PMSI' + WHERE 0 NOT IN (SELECT oid FROM base.t_poles_oap); + + INSERT INTO base.t_lignes_oap(oid, code, texte, pole_oap_id, mco) + SELECT 0, chr(127) || '****', 'Hors PMSI', 0, '*' + WHERE 0 NOT IN (SELECT oid FROM base.t_lignes_oap); + + INSERT INTO base.t_cas(oid, code, texte, texte_court) + SELECT 0, chr(127), 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_cas); + + INSERT INTO base.t_ipa(oid, code, texte, texte_court, categorie_oid, categorie_code, categorie_texte, categorie_texte_court) + SELECT 0, chr(127) || '**', 'Non renseigné', 'Non renseigné', 0, chr(127), 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_ipa); + + INSERT INTO base.t_ghm5 (oid, code, texte) + SELECT 0, chr(127) || '****', 'Hors PMSI' + WHERE 0 NOT IN (SELECT oid FROM base.t_ghm5); + + INSERT INTO base.t_ghm (oid, code, texte, ghm3, mco, aso, severite, statut, cmd_id, groupe_activite_id, ghm5_id, ligne_oap_id, cas_id) + SELECT 0, chr(127) || '*****', 'Hors PMSI', '*', '*', '*', '*', 'I', 0, 0, 0, 0, (SELECT oid FROM base.t_cas WHERE code = '*') + WHERE 0 NOT IN (SELECT oid FROM base.t_ghm); + + INSERT INTO base.t_ghs (oid, code, texte, ghm_id, borne_basse, borne_haute, dms_nationale) + SELECT 0, 0, 'Sans GHS', 0, 0, 0, 0 + WHERE 0 NOT IN (SELECT oid FROM base.t_ghs); + + -- GME + INSERT INTO base.t_gn (oid, code, texte) + SELECT 0, chr(127) || '****'::text, 'Non renseigné'::text + WHERE 0 NOT IN (SELECT oid FROM base.t_gn); + + INSERT INTO base.t_cm (oid, code, texte) + SELECT 0, chr(127) || '**'::text, 'Non renseigné'::text + WHERE 0 NOT IN (SELECT oid FROM base.t_cm); + + INSERT INTO base.t_rgme (oid, code, texte) + SELECT 0, chr(127) || '*****'::text, 'Non renseigné'::text + WHERE 0 NOT IN (SELECT oid FROM base.t_rgme); + + INSERT INTO base.t_gme (oid, code, texte, cm_id, gn_id, rgme_id) + SELECT 0, chr(127) || '******'::text, 'Non renseigné'::text, 0, 0, 0 + WHERE 0 NOT IN (SELECT oid FROM base.t_gme); + + -- Actes + INSERT INTO base.t_actes (oid, code, texte, texte_court) + SELECT 0, '*******', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_actes); + + -- Regroupements CCAM + INSERT INTO base.t_ccam_regroupements (oid) + SELECT 0 + WHERE 0 NOT IN (SELECT oid FROM base.t_ccam_regroupements); + + -- Modes de traitement + INSERT INTO base.t_modes_traitement (oid, code, code_original, texte, texte_court) + SELECT 0, '**', '', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_modes_traitement); + + + + + -- Activités + INSERT INTO activite.t_activites(oid, code_original, texte, texte_court, code, etage_par_defaut_id, etage_force_id) + SELECT 0, '0', 'Non renseigné', 'Non renseigné', '', 0, 0 + WHERE 0 NOT IN (SELECT oid FROM activite.t_activites); + + -- Etages + INSERT INTO activite.t_etages(oid, code_original, texte, texte_court, nb_lits, code, + section_id, section_code, section_texte) + SELECT 0, '0', 'Non renseigné', 'Non renseigné', 0, '', + array[0::bigint, 0::bigint, 0::bigint], + array[chr(127) || '***'::text, chr(127) || '***'::text, chr(127) || '***'::text], + array['Autres'::text, 'Autres'::text, 'Autres'::text] + WHERE 0 NOT IN (SELECT oid FROM activite.t_etages); + + -- Lieux + INSERT INTO activite.t_lieux(oid) + SELECT 0 + WHERE 0 NOT IN (SELECT oid FROM activite.t_lieux); + + -- Lits + INSERT INTO activite.t_lits (oid, texte, texte_court, etage_id, code, chambre_particuliere) + SELECT 0, 'Non renseigné', 'Non renseigné', 0, '*', 'N' + WHERE 0 NOT IN (SELECT oid FROM activite.t_lits); + + -- Médecins administratifs + INSERT INTO activite.t_medecins_administratifs (oid, code, code_original, nom, prenom, specialite_id, medecin_id, est_medecin_salarie) + SELECT 0, '****', '0', 'Non renseigné', '', 0, 0, 0 + WHERE 0 NOT IN (SELECT oid FROM activite.t_medecins_administratifs); + + -- Places + INSERT INTO activite.t_places_parents (oid, parent_code, parent_texte, parent_type) + SELECT 0, '', 'Non renseigné', 'ETA' + WHERE 0 NOT IN (SELECT oid FROM activite.t_places_parents); + + -- Prestations + INSERT INTO activite.t_prestations (oid, code_original, texte, texte_court, code) + SELECT 0, '0', 'Non renseigné', 'Non renseigné', '***' + WHERE 0 NOT IN (SELECT oid FROM activite.t_prestations); + UPDATE activite.t_prestations + SET code = '***' + WHERE oid = 0 AND + '***' NOT IN (SELECT code FROM activite.t_prestations WHERE code = '***'); + + -- Protocoles + INSERT INTO activite.t_protocoles (oid, code_original, texte, texte_court, code) + SELECT 0, '0', 'Non renseigné', 'Non renseigné', '***' + WHERE 0 NOT IN (SELECT oid FROM activite.t_protocoles); + + -- Rubriques facturation + INSERT INTO activite.t_rubriques_facturation (oid, code_original, texte, texte_court, code, actes_inclus_public) + SELECT 0, '0', 'Non renseigné', 'Non renseigné', '', '0' + WHERE 0 NOT IN (SELECT oid FROM activite.t_rubriques_facturation); + + -- Services de facturation + INSERT INTO activite.t_services_facturation (oid, code_original, texte, texte_court, code, nb_lits) + SELECT 0, '0', 'Non renseigné', 'Non renseigné', '', 0 + WHERE 0 NOT IN (SELECT oid FROM activite.t_services_facturation); + + -- Spécialités médecin + INSERT INTO activite.t_specialites_medecin (oid, code_original, texte, texte_court, code) + SELECT 0, '0', 'Non saisie', 'Non saisie', '' + WHERE 0 NOT IN (SELECT oid FROM activite.t_specialites_medecin); + + -- Tiers payant + INSERT INTO activite.t_tiers_payant (oid, code, code_original, texte, texte_court, type_tiers_payant) + SELECT 0, '', '', 'Non saisi', 'Non saisi', '0' + WHERE 0 NOT IN (SELECT oid FROM activite.t_tiers_payant); + + -- Unités fonctionnelles + INSERT INTO activite.t_unites_fonctionnelles (oid, code, code_original, texte, texte_court) + SELECT 0, '', '0', 'Non renseignée', 'Non renseignée' + WHERE 0 NOT IN (SELECT oid FROM activite.t_unites_fonctionnelles); + + -- Unités médicales + INSERT INTO activite.t_unites_medicales (oid, code, code_original, texte, texte_court) + SELECT 0, '', '0', 'Non renseignée', 'Non renseignée' + WHERE 0 NOT IN (SELECT oid FROM activite.t_unites_medicales); + + + -- Formes d'activité + INSERT INTO activite.t_forme_activite (oid, code, texte, texte_court) + SELECT 0, '**', 'Non renseignée', 'Non renseignée' + WHERE 0 NOT IN (SELECT oid FROM activite.t_forme_activite); + + -- Codes risque + INSERT INTO activite.t_risque (oid, code, texte) + SELECT 0, '**', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM activite.t_risque); + + -- Motifs de non facturation + INSERT INTO activite.t_motif_non_facturation(oid, code_original, code, texte, texte_court) + SELECT 0, 0, '', 'Non renseigné', 'Non renseigné' WHERE 0 NOT IN (SELECt oid FROM activite.t_motif_non_facturation) + ; + INSERT INTO activite.t_motif_non_facturation(code_original, code, texte, texte_court) + SELECT '*CTIZZZ', '*AUTRES', 'Autres', 'Autres' WHERE '*CTIZZZ' NOT IN (SELECT code_original FROM activite.t_motif_non_facturation) + ; + INSERT INTO activite.t_motif_non_facturation(code_original, code, texte, texte_court) + SELECT '*CTING', '*NG', 'Non groupé', 'Non groupé' WHERE '*CTING' NOT IN (SELECT code_original FROM activite.t_motif_non_facturation) + ; + + + -- Liste des tables pour installation après version + INSERT INTO activite.t_listes_tables (code, name, texte, select_cmd) + SELECT + 'FORMEACTIVITE', + 't_forme_activite', + 'Formes d''activité', + 'SELECT oid, code, texte, ''''::text as complement, + CASE WHEN oid in (SELECT oid FROM activite.p_oids WHERE code_table IN (''forme_activite'')) THEN ''O'' ELSE ''N'' END as utilise + FROM activite.t_forme_activite + ORDER BY 2' + WHERE 'FORMEACTIVITE' NOT IN (SELECT code FROM activite.t_listes_tables WHERE code IS NOT NULL) + ; + WITH subview AS + (SELECT + 'FORMEACTIVITE'::text AS code, + 't_forme_activite'::text AS name, + 'Formes d''activité'::text AS texte, + 'SELECT oid, code, texte, ''''::text as complement, + CASE WHEN oid in (SELECT oid FROM activite.p_oids WHERE code_table IN (''forme_activite'')) THEN ''O'' ELSE ''N'' END as utilise + FROM activite.t_forme_activite + ORDER BY 2'::text AS select_cmd + ) + UPDATE activite.t_listes_tables SET + name = subview.name, + texte = subview.texte, + select_cmd = subview.select_cmd + FROM subview + WHERE t_listes_tables.code = subview.code AND + ( + t_listes_tables.name IS DISTINCT FROM subview.name OR + t_listes_tables.texte IS DISTINCT FROM subview.texte OR + t_listes_tables.select_cmd IS DISTINCT FROM subview.select_cmd + ) + ; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_kiwee_sigems_honpatcpt.yaml b/db/schema2/functions/cti_kiwee_sigems_honpatcpt.yaml new file mode 100644 index 0000000..ae70dd3 --- /dev/null +++ b/db/schema2/functions/cti_kiwee_sigems_honpatcpt.yaml @@ -0,0 +1,343 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + -- Non comptabilisation des honoaraires / patients + + DROP TABLE IF EXISTS w_medecin_non_solde; + CREATE TEMP TABLE w_medecin_non_solde AS + SELECT no_facture, + facture_id, + medecin_comptabilise_id, + + rubrique_comptabilisee_id, + prestation_id, + MIN(date_comptable) AS date_comptable, + SUM(montant_comptabilise_0) - SUM(montant_regle_0) AS solde_0 + FROM activite.p_factures_soldes_h + JOIN activite.t_medecins_administratifs ON medecin_comptabilise_id = t_medecins_administratifs.oid + WHERE medecin_comptabilise_id <> 0 AND + KIWEE_SIGEMS_HONPATCPT = '0' + GROUP BY 1,2,3,4,5 + HAVING SUM(montant_comptabilise_0) <> SUM(montant_regle_0) + ; + + ANALYSE w_medecin_non_solde + ; + + -- Deduction du montant depassement dans les lignes comptables + INSERT INTO activite.p_factures_soldes_h( + facture_id, + no_facture, + date_comptable, + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_regle, + montant_regle_0, + montant_regle_1, + montant_regle_2, + montant_regle_22, + od_non_comptabilise + + ) + SELECT + facture_id, + no_facture, + date_comptable, + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + 0::numeric - solde_0 AS montant_comptabilise, + 0::numeric - solde_0 AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + 0::numeric AS montant_regle, + 0::numeric AS montant_regle_0, + 0::numeric AS montant_regle_1, + 0::numeric AS montant_regle_2, + 0 AS montant_regle_22, + '1'::text AS od_non_comptabilise + FROM w_medecin_non_solde + ; + + + -- Modification montant comptabilise dans les lignes facturees + UPDATE activite.p_factures_lignes_h SET + montant_comptabilise = montant_comptabilise - montant_comptabilise_0, + montant_comptabilise_0 = 0 + FROM activite.t_medecins_administratifs + WHERE medecin_comptabilise_id = t_medecins_administratifs.oid AND + KIWEE_SIGEMS_HONPATCPT = '0' AND + montant_comptabilise_0 <> 0 + ; + + -- Correction des totaux factures (comptabilise) + DROP TABLE IF EXISTS w_depassement_non_compta_corr; + CREATE TEMP TABLE w_depassement_non_compta_corr AS + SELECT no_facture, SUM(montant_comptabilise) AS montant_comptabilise, + SUM(montant_comptabilise_0) AS montant_comptabilise_0 + FROM activite.p_factures_lignes_h + WHERE no_facture IN (SELECT no_facture FROM w_medecin_non_solde) + GROUP BY 1 + ; + + ANALYSE w_depassement_non_compta_corr + ; + + UPDATE activite.p_factures SET + montant_comptabilise_h = w_depassement_non_compta_corr.montant_comptabilise, + montant_comptabilise_0_h = w_depassement_non_compta_corr.montant_comptabilise_0 + FROM w_depassement_non_compta_corr + WHERE w_depassement_non_compta_corr.no_facture = p_factures.no_facture AND + ( + montant_comptabilise_h IS DISTINCT FROM w_depassement_non_compta_corr.montant_comptabilise OR + montant_comptabilise_0_h IS DISTINCT FROM w_depassement_non_compta_corr.montant_comptabilise_0 + ) + ; + + + -- Non comptabilisation des dépassements / patients + + -- Reperage des factures honoraires non soldees (les soldees ne sont pas concernees) + DROP TABLE IF EXISTS w_medecin_non_solde; + CREATE TEMP TABLE w_medecin_non_solde AS + SELECT no_facture, + medecin_comptabilise_id, + rubrique_comptabilisee_id, + prestation_id + FROM activite.p_factures_soldes_h + JOIN activite.t_medecins_administratifs ON medecin_comptabilise_id = t_medecins_administratifs.oid + WHERE medecin_comptabilise_id <> 0 AND + KIWEE_SIGEMS_HONPATCPTDEP = '0' + GROUP BY 1,2,3,4 + HAVING SUM(montant_comptabilise_0) <> SUM(montant_regle_0) + ; + + ANALYSE w_medecin_non_solde + ; + + -- Lignes honoraires avec depassement honoraire patient (sauf les medecins parametres) + DROP TABLE IF EXISTS w_depassement_non_compta; + CREATE TEMP TABLE w_depassement_non_compta AS + SELECT p_factures_lignes_h.no_facture, + p_factures.oid AS facture_id, + p_factures.date_vente, + p_factures_lignes_h.medecin_facture_id, + t_medecins_administratifs.code, + p_factures_lignes_h.montant_comptabilise_0, + p_factures_lignes_h.montant_depassement, + p_factures_lignes_h.rubrique_facturation_id, + p_factures_lignes_h.prestation_id, + p_factures_lignes_h.CTID AS from_CTID + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + JOIN activite.t_medecins_administratifs ON medecin_facture_id = t_medecins_administratifs.oid + JOIN w_medecin_non_solde ON + p_factures_lignes_h.no_facture = w_medecin_non_solde.no_facture AND + p_factures_lignes_h.medecin_facture_id = w_medecin_non_solde.medecin_comptabilise_id AND + p_factures_lignes_h.prestation_id = w_medecin_non_solde.prestation_id AND + p_factures_lignes_h.rubrique_facturation_id = w_medecin_non_solde.rubrique_comptabilisee_id + WHERE KIWEE_SIGEMS_HONPATCPTDEP = '0' AND + montant_depassement <> 0 AND + abs(montant_depassement) <= abs(montant_comptabilise_0) AND + montant_comptabilise_0 <> 0 + ; + + ANALYSE w_depassement_non_compta + ; + + -- Total par medecin et prestation + DROP TABLE IF EXISTS w_depassement_non_compta_ven; + CREATE TEMP TABLE w_depassement_non_compta_ven AS + SELECT no_facture, + facture_id, + date_vente, + medecin_facture_id, + prestation_id, + rubrique_facturation_id, + SUM(montant_comptabilise_0) AS montant_comptabilise_0, + SUM(montant_depassement) AS montant_depassement + FROM w_depassement_non_compta + GROUP BY 1,2,3,4,5,6 + ; + + + ANALYSE w_depassement_non_compta_ven + ; + + -- Deduction du montant depassement dans les lignes comptables + INSERT INTO activite.p_factures_soldes_h( + facture_id, + no_facture, + date_comptable, + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_regle, + montant_regle_0, + montant_regle_1, + montant_regle_2, + montant_regle_22, + od_non_comptabilise + + ) + SELECT + facture_id, + no_facture, + date_vente, + medecin_facture_id, + prestation_id, + rubrique_facturation_id, + 0::numeric - montant_depassement AS montant_comptabilise, + 0::numeric - montant_depassement AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + 0::numeric AS montant_regle, + 0::numeric AS montant_regle_0, + 0::numeric AS montant_regle_1, + 0::numeric AS montant_regle_2, + 0 AS montant_regle_22, + '0'::text AS od_non_comptabilise + FROM w_depassement_non_compta_ven + ; + + -- Deduction des depassements dans les lignes de reglements regul + INSERT INTO activite.p_factures_soldes_h( + facture_id, + no_facture, + date_comptable, + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_regle, + montant_regle_0, + montant_regle_1, + montant_regle_2, + montant_regle_22, + od_non_comptabilise + + ) + SELECT + facture_id, + no_facture, + date_vente, + 0::bigint AS medecin_comptabilise_id, + 0::bigint AS prestation_id, + 0::bigint AS rubrique_comptabiliseen_id, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + 0::numeric - SUM(montant_depassement) AS montant_regle, + 0::numeric - SUM(montant_depassement) AS montant_regle_0, + 0::numeric AS montant_regle_1, + 0::numeric AS montant_regle_2, + 0 AS montant_regle_22, + '1'::text AS od_non_comptabilise + FROM w_depassement_non_compta_ven + WHERE no_facture IN (SELECT no_facture FROM activite.p_factures_soldes_h WHERE medecin_comptabilise_id = 0 AND montant_regle_0 <> 0) + GROUP BY 1,2,3 + ; + + -- Modification montant comptabilise dans les lignes facturees + UPDATE activite.p_factures_lignes_h SET + montant_comptabilise = p_factures_lignes_h.montant_comptabilise - w_depassement_non_compta.montant_depassement, + montant_comptabilise_0 = p_factures_lignes_h.montant_comptabilise_0 - w_depassement_non_compta.montant_depassement + FROM w_depassement_non_compta + WHERE p_factures_lignes_h.no_facture = w_depassement_non_compta.no_facture AND + p_factures_lignes_h.CTID = w_depassement_non_compta.from_CTID + ; + + -- Correction des totaux factures (comptabilise) + DROP TABLE IF EXISTS w_depassement_non_compta_corr; + CREATE TEMP TABLE w_depassement_non_compta_corr AS + SELECT no_facture, SUM(montant_comptabilise) AS montant_comptabilise, + SUM(montant_comptabilise_0) AS montant_comptabilise_0 + FROM activite.p_factures_lignes_h + WHERE no_facture IN (SELECT no_facture FROM w_depassement_non_compta_ven) + GROUP BY 1 + ; + + ANALYSE w_depassement_non_compta_corr + ; + + UPDATE activite.p_factures SET + montant_comptabilise_h = w_depassement_non_compta_corr.montant_comptabilise, + montant_comptabilise_0_h = w_depassement_non_compta_corr.montant_comptabilise_0 + FROM w_depassement_non_compta_corr + WHERE w_depassement_non_compta_corr.no_facture = p_factures.no_facture + ; + + + -- Purge des montants OD regles (annules par negatif) + DROP TABLE IF EXISTS w_depassement_non_compta_corr_purge; + CREATE TEMP TABLE w_depassement_non_compta_corr_purge AS + SELECT p_factures_soldes_h.no_facture, + SUM(montant_regle_0) AS montant_regle_0, + SUM(montant_regle) AS montant_regle + FROM activite.p_factures_soldes_h + JOIN activite.p_factures On p_factures_soldes_h.no_facture = p_factures.no_facture + WHERE medecin_comptabilise_id = 0 AND + montant_regle_0 <> 0 + GROUP BY 1 + HAVING SUM(p_factures.montant_facture_h) >= 0 AND SUM(montant_regle_0) <= 0 OR + SUM(p_factures.montant_facture_h) < 0 AND SUM(montant_regle_0) > 0 + ; + + ANALYSE w_depassement_non_compta_corr_purge + ; + + DELETE FROM activite.p_factures_soldes_h + USING w_depassement_non_compta_corr_purge + WHERE p_factures_soldes_h.no_facture = w_depassement_non_compta_corr_purge.no_facture AND + p_factures_soldes_h.medecin_comptabilise_id = 0 AND + p_factures_soldes_h.montant_regle_0 <> 0 + ; + + -- Correction des totaux factures (regle) + DROP TABLE IF EXISTS w_depassement_non_compta_corr; + CREATE TEMP TABLE w_depassement_non_compta_corr AS + SELECT p_factures_soldes_h.no_facture, + SUM(p_factures_soldes_h.montant_regle) AS montant_regle, + SUM(p_factures_soldes_h.montant_regle_0) AS montant_regle_0 + FROM activite.p_factures_soldes_h + JOIN activite.p_factures ON p_factures_soldes_h.no_facture = p_factures.no_facture + GROUP BY 1 + HAVING SUM(p_factures_soldes_h.montant_regle_0) <> MAX(p_factures.montant_regle_0_h) + ; + + ANALYSE w_depassement_non_compta_corr + ; + + UPDATE activite.p_factures SET + montant_regle_h = w_depassement_non_compta_corr.montant_regle, + montant_regle_0_h = w_depassement_non_compta_corr.montant_regle_0 + FROM w_depassement_non_compta_corr + WHERE w_depassement_non_compta_corr.no_facture = p_factures.no_facture + ; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_now_activite~tx.yaml b/db/schema2/functions/cti_now_activite~tx.yaml new file mode 100644 index 0000000..019d482 --- /dev/null +++ b/db/schema2/functions/cti_now_activite~tx.yaml @@ -0,0 +1,36 @@ +return: date +lang: plpgsql +parameters: + p0: + type: text + name: i_option +src: | + DECLARE + + _now_activite date; + BEGIN + IF NOT EXISTS (SELECT * FROM activite.t_divers WHERE code = 'NOW') THEN + INSERT INTO activite.t_divers (code, texte, valeur, valeur_date, description, valeur2) + SELECT + 'NOW', + 'Date des derniers mouvements', + now_activite, + now_activite, + 'Date non modifiable', + '' + FROM (SELECT MAX(date) AS now_activite FROM activite.p_mouvements_sejour WHERE est_mouvement_previsionnel <> '1') subview + WHERE 'NOW' NOT IN (SELECT code FROM activite.t_divers); + END IF; + IF i_option = 'FORCE' THEN + UPDATE activite.t_divers + SET + valeur_date = now_activite, + valeur = now_activite + FROM (SELECT MAX(date) AS now_activite FROM activite.p_mouvements_sejour WHERE est_mouvement_previsionnel <> '1') subview + WHERE code = 'NOW'; + END IF; + + _now_activite = (SELECT valeur_date FROM activite.t_divers WHERE code = 'NOW'); + + RETURN _now_activite; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_now~tx,tx.yaml b/db/schema2/functions/cti_now~tx,tx.yaml new file mode 100644 index 0000000..2663a4a --- /dev/null +++ b/db/schema2/functions/cti_now~tx,tx.yaml @@ -0,0 +1,75 @@ +return: date +lang: plpgsql +parameters: + p0: + type: text + name: i_code + p1: + type: text + name: i_option +src: | + DECLARE + _code text; + _option text; + _now date; + BEGIN + _code = i_code; + IF _code NOT IN ('NOW', 'NOWCLOTURE') THEN + _code = 'NOW'; + END IF; + _option = i_option; + IF NOT EXISTS (SELECT * FROM activite.t_divers WHERE code = _code) THEN + _option = 'FORCE'; + END IF; + -- Nouveaux paramètres dans t_divers pour gestion date de fermeture + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'DATEFERMETURE', + 'Date fermeture établissement', + '', + 'Date de fermeture (AAAAMMJJ). Vide si ouvert ' + WHERE 'DATEFERMETURE' NOT IN (SELECT code FROM activite.t_divers); + + IF _option = 'FORCE' THEN + _now = + CASE _code + WHEN 'NOW' THEN + (SELECT MAX(date) FROM activite.p_mouvements_sejour WHERE date < now() AND est_mouvement_previsionnel <> '1') + WHEN 'NOWCLOTURE' THEN + (SELECT date(date_trunc('month',MAX(date_vente)) - interval '1 day') + FROM activite.p_factures + WHERE date_vente <= (SELECT MAX(date) FROM activite.p_mouvements_sejour WHERE date < now() AND est_mouvement_previsionnel <> '1') + ) + ELSE date(now()) + END; + + UPDATE activite.t_divers SET + texte = CASE _code + WHEN 'NOW' THEN 'Date des derniers mouvements' + WHEN 'NOWCLOTURE' THEN 'Date clôture' + ELSE 'Date des derniers mouvements' + END, + valeur = _now::text, + valeur_date = _now, + show_info_module = true + WHERE code = _code; + INSERT INTO activite.t_divers (code, texte, valeur, valeur_date, description, valeur2, show_info_module) + SELECT + _code, + CASE _code + WHEN 'NOW' THEN 'Date des derniers mouvements' + WHEN 'NOWCLOTURE' THEN 'Date clôture' + ELSE 'Date des derniers mouvements' + END, + _now::text, + _now, + 'Date non modifiable', + '', + true + WHERE _code NOT IN (SELECT code FROM activite.t_divers); + ELSE + _now = (SELECT valeur_date FROM activite.t_divers WHERE code = _code); + END IF; + + RETURN _now; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport_calc_indicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi,bi,bi.yaml b/db/schema2/functions/cti_prepare_rapport_calc_indicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi,bi,bi.yaml new file mode 100644 index 0000000..b95e126 --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport_calc_indicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi,bi,bi.yaml @@ -0,0 +1,76 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_column_name + p1: + type: text + name: i_table_name + p2: + type: integer + name: i_indicators_count + p3: + type: integer + name: i_array_index + p4: + type: bigint + name: i_indicateur_id + p5: + type: bigint + name: i_indicateur_associe_1_id + p6: + type: bigint + name: i_indicateur_associe_2_id + p7: + type: bigint + name: i_indicateur_associe_3_id + p8: + type: bigint + name: i_indicateur_associe_4_id + p9: + type: bigint + name: i_indicateur_associe_5_id + p10: + type: bigint + name: i_indicateur_associe_6_id + p11: + type: bigint + name: i_indicateur_associe_7_id +comment: Remplace la fonction cti_prepare_rapport_calc_indicator( 2x text, 2x integer, 6x bigint) +src: | + DECLARE + column_name text; + array_index text; + BEGIN + array_index = ''; + if i_array_index > 0 THEN + END IF; + if i_table_name <> '*CALC' THEN + column_name = 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_id)::text || ']' ||')'; + ELSE + column_name = replace(i_column_name, '[1]', 'SUM(COALESCE(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_1_id)::text || '],0)' ||')'); + column_name = replace(column_name, '[2]', 'SUM(COALESCE(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_2_id)::text || '],0)' ||')'); + column_name = replace(column_name, '[3]', 'SUM(COALESCE(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_3_id)::text || '],0)' ||')'); + column_name = replace(column_name, '[4]', 'SUM(COALESCE(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_4_id)::text || '],0)' ||')'); + column_name = replace(column_name, '[5]', 'SUM(COALESCE(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_5_id)::text || '],0)' ||')'); + column_name = replace(column_name, '[6]', 'SUM(COALESCE(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_6_id)::text || '],0)' ||')'); + column_name = replace(column_name, '[7]', 'SUM(COALESCE(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_7_id)::text || '],0)' ||')'); + --column_name = replace(column_name, '[8]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_8_id)::text || ']' ||')'); + --column_name = replace(column_name, '[9]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_9_id)::text || ']' ||')'); + --column_name = replace(column_name, '[10]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_10_id)::text || ']' ||')'); + --column_name = replace(column_name, '[11]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_11_id)::text || ']' ||')'); + --column_name = replace(column_name, '[12]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_12_id)::text || ']' ||')'); + --column_name = replace(column_name, '[13]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_13_id)::text || ']' ||')'); + --column_name = replace(column_name, '[14]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_14_id)::text || ']' ||')'); + --column_name = replace(column_name, '[15]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_15_id)::text || ']' ||')'); + --column_name = replace(column_name, '[16]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_16_id)::text || ']' ||')'); + --column_name = replace(column_name, '[17]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_17_id)::text || ']' ||')'); + --column_name = replace(column_name, '[18]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_18_id)::text || ']' ||')'); + --column_name = replace(column_name, '[19]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_19_id)::text || ']' ||')'); + --column_name = replace(column_name, '[20]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_20_id)::text || ']' ||')'); + + END IF; + + RETURN column_name; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport_calc_indicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi.yaml b/db/schema2/functions/cti_prepare_rapport_calc_indicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi.yaml new file mode 100644 index 0000000..234cb60 --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport_calc_indicator~tx,tx,in,in,bi,bi,bi,bi,bi,bi.yaml @@ -0,0 +1,72 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_column_name + p1: + type: text + name: i_table_name + p2: + type: integer + name: i_indicators_count + p3: + type: integer + name: i_array_index + p4: + type: bigint + name: i_indicateur_id + p5: + type: bigint + name: i_indicateur_associe_1_id + p6: + type: bigint + name: i_indicateur_associe_2_id + p7: + type: bigint + name: i_indicateur_associe_3_id + p8: + type: bigint + name: i_indicateur_associe_4_id + p9: + type: bigint + name: i_indicateur_associe_5_id +comment: | + Remplacée par la fonction cti_prepare_rapport_calc_indicator( 2x text, 2x integer, 8x bigint). + Elle est conservée pour la rétro-compatibilité +src: | + DECLARE + column_name text; + array_index text; + BEGIN + array_index = ''; + if i_array_index > 0 THEN + END IF; + if i_table_name <> '*CALC' THEN + column_name = 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_id)::text || ']' ||')'; + ELSE + column_name = replace(i_column_name, '[1]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_1_id)::text || ']' ||')'); + column_name = replace(column_name, '[2]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_2_id)::text || ']' ||')'); + column_name = replace(column_name, '[3]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_3_id)::text || ']' ||')'); + column_name = replace(column_name, '[4]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_4_id)::text || ']' ||')'); + column_name = replace(column_name, '[5]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_5_id)::text || ']' ||')'); + --column_name = replace(column_name, '[6]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_6_id)::text || ']' ||')'); + --column_name = replace(column_name, '[7]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_7_id)::text || ']' ||')'); + --column_name = replace(column_name, '[8]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_8_id)::text || ']' ||')'); + --column_name = replace(column_name, '[9]', 'SUM(indicateurs[000' || (i_array_index * i_indicators_count + i_indicateur_associe_9_id)::text || ']' ||')'); + --column_name = replace(column_name, '[10]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_10_id)::text || ']' ||')'); + --column_name = replace(column_name, '[11]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_11_id)::text || ']' ||')'); + --column_name = replace(column_name, '[12]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_12_id)::text || ']' ||')'); + --column_name = replace(column_name, '[13]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_13_id)::text || ']' ||')'); + --column_name = replace(column_name, '[14]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_14_id)::text || ']' ||')'); + --column_name = replace(column_name, '[15]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_15_id)::text || ']' ||')'); + --column_name = replace(column_name, '[16]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_16_id)::text || ']' ||')'); + --column_name = replace(column_name, '[17]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_17_id)::text || ']' ||')'); + --column_name = replace(column_name, '[18]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_18_id)::text || ']' ||')'); + --column_name = replace(column_name, '[19]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_19_id)::text || ']' ||')'); + --column_name = replace(column_name, '[20]', 'SUM(indicateurs[00' || (i_array_index * i_indicators_count + i_indicateur_associe_20_id)::text || ']' ||')'); + + END IF; + + RETURN column_name; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport_comp~bi,tx,tx.yaml b/db/schema2/functions/cti_prepare_rapport_comp~bi,tx,tx.yaml new file mode 100644 index 0000000..6eaf265 --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport_comp~bi,tx,tx.yaml @@ -0,0 +1,370 @@ +return: SETOF record +lang: plpgsql +parameters: + p0: + type: bigint + name: i_rapport_id + p1: + type: text + name: type_comp + p2: + type: text + name: mode_comp +src: | + DECLARE + + _maxind integer; + row RECORD; + + BEGIN + + -- Valeurs de type_comp + -- -1 : Pas de comparaison + -- 2 : Comparaison avec année précédente + -- 3 : Comparaison avec deux années précédentes + -- 4 : Comparaison avec trois années précédentes + -- S : Comparaison avec une période donnéeach + + -- Valeurs de mode_comp + -- PREC : Comparaison avec l'année directement précédente + -- FIRST : Comparaison avec la première période (la plus ancienne) + -- LAST : Comparaison avec la dernière période (la plus récente) + + -- Valeurs du quatrième paramètre (i_array_index) de la fonction activite.cti_prepare_rapport_calc_indicator(text, text, integer, integer, bigint, bigint, bigint, bigint, bigint, bigint, bigint, bigint) : + -- 0 : valeur pour l'année n + -- 1 : valeur pour l'année n-1 + -- 2 : valeur pour l'année n-2 + -- 3 : valeur pour l'année n-3 + -- 4 : valeur du dernier mois de l'année n + -- 5 : valeur du dernier mois de l'année n-1 + -- 6 : valeur du dernier mois de l'année n-2 + -- 7 : valeur du dernier mois de l'année n-3 + + -- _maxind représente le plus grand identifiant des indicateurs présents dans le rapport dont l'id est passé en paramètre de la fonction + _maxind = activite.cti_prepare_rapport_maxoid(i_rapport_id); + + FOR row IN + SELECT * FROM activite.cti_prepare_rapport_indicateurs(i_rapport_id, 'COMP') AS (name text, value text) + UNION + SELECT 'RUBRIQUES_RAPPORT', + + + base.cti_group_concat( + 'ARRAY[' || + + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + CASE + WHEN mode_comp = 'PREC' AND type_comp <> '-1' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN mode_comp = 'FIRST' THEN + CASE + WHEN type_comp = '2' OR type_comp = 'S' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN type_comp = '3' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN type_comp = '4' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END + ELSE '0::integer' END || ', ' || + + CASE + WHEN mode_comp = 'PREC' AND type_comp <> '-1' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN mode_comp = 'FIRST' THEN + CASE + WHEN type_comp = '2' OR type_comp = 'S' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN type_comp = '3' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN type_comp = '4' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END + ELSE '0::integer' END || ', ' || + + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + CASE + WHEN mode_comp = 'PREC' AND type_comp IN ('3', '4') THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN mode_comp = 'FIRST' THEN + CASE + WHEN type_comp = '3' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN type_comp = '4' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END + WHEN mode_comp = 'LAST' AND type_comp <> '-1' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END || ', ' || + + CASE + WHEN mode_comp = 'PREC' AND type_comp IN ('3', '4') THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN mode_comp = 'FIRST' THEN + CASE + WHEN type_comp = '3' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN type_comp = '4' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END + WHEN mode_comp = 'LAST' AND type_comp <> '-1' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END || ', ' || + + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + CASE + WHEN (mode_comp = 'PREC' OR mode_comp = 'FIRST') AND type_comp = '4' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN mode_comp = 'LAST' AND type_comp IN ('3', '4') THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END || ', ' || + CASE + WHEN (mode_comp = 'PREC' OR mode_comp = 'FIRST') AND type_comp = '4' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN mode_comp = 'LAST' AND type_comp IN ('3', '4') THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + CASE + WHEN mode_comp = 'LAST' AND type_comp = '4' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END || ', ' || + CASE + WHEN mode_comp = 'LAST' AND type_comp = '4' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END || ', ' || + + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + CASE + WHEN mode_comp = 'PREC' AND type_comp <> '-1' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN mode_comp = 'FIRST' THEN + CASE + WHEN type_comp = '2' OR type_comp = 'S' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN type_comp = '3' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN type_comp = '4' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END + ELSE '0::integer' END || ', ' || + + CASE + WHEN mode_comp = 'PREC' AND type_comp <> '-1' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN mode_comp = 'FIRST' THEN + CASE + WHEN type_comp = '2' OR type_comp = 'S' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN type_comp = '3' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN type_comp = '4' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END + ELSE '0::integer' END || ', ' || + + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + CASE + WHEN mode_comp = 'PREC' AND type_comp IN ('3', '4') THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN mode_comp = 'FIRST' THEN + CASE + WHEN type_comp = '3' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN type_comp = '4' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END + WHEN mode_comp = 'LAST' AND type_comp <> '-1' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END || ', ' || + + CASE + WHEN mode_comp = 'PREC' AND type_comp IN ('3', '4') THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN mode_comp = 'FIRST' THEN + CASE + WHEN type_comp = '3' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN type_comp = '4' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END + WHEN mode_comp = 'LAST' AND type_comp <> '-1' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END || ', ' || + + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + CASE + WHEN (mode_comp = 'PREC' OR mode_comp = 'FIRST') AND type_comp = '4' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + WHEN mode_comp = 'LAST' AND type_comp IN ('3', '4') THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END || ', ' || + CASE + WHEN (mode_comp = 'PREC' OR mode_comp = 'FIRST') AND type_comp = '4' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + WHEN mode_comp = 'LAST' AND type_comp IN ('3', '4') THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + CASE + WHEN mode_comp = 'LAST' AND type_comp = '4' THEN + '((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')) ' + ELSE '0::integer' END || ', ' || + CASE + WHEN mode_comp = 'LAST' AND type_comp = '4' THEN + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ' > 0 THEN base.cti_division (((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') - (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ')), (' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || + ')) * 100 ELSE 0 END' + ELSE '0::integer' END + + || ']' + ) + + FROM (SELECT * FROM activite.t_rapports_rubriques + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid + WHERE rapport_id = i_rapport_id ORDER BY numero_rubrique + ) subview + + LOOP + RETURN NEXT row; + END LOOP; + + RETURN ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport_comp~bi.yaml b/db/schema2/functions/cti_prepare_rapport_comp~bi.yaml new file mode 100644 index 0000000..d585633 --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport_comp~bi.yaml @@ -0,0 +1,96 @@ +return: SETOF record +lang: plpgsql +parameters: + p0: + type: bigint + name: i_rapport_id +comment: Fonction remplacée par activite.cti_prepare_rapport_comp(bigint, bigint) mais laissée pour des raisons de rétro-compatibilité +src: | + DECLARE + sqlcmd text; + + + temp_cursor refcursor; + _oid integer; + _maxind integer; + + row RECORD; + BEGIN + + _maxind = activite.cti_prepare_rapport_maxoid(i_rapport_id); + + FOR row IN + SELECT * FROM activite.cti_prepare_rapport_indicateurs(i_rapport_id, 'COMP') AS (name text, value text) + UNION + SELECT 'RUBRIQUES_RAPPORT', + + + base.cti_group_concat( + 'ARRAY[' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + '(' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') ' || + ', ' || + + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '> 0 THEN ' || + 'base.cti_division((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '), ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') * 100 ' || + 'ELSE 0 END, ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + '(' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') ' || + ', ' || + + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '> 0 THEN ' || + 'base.cti_division((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '), ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') * 100 ' || + 'ELSE 0 END , ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + '(' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') ' || + ', ' || + + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '> 0 THEN ' || + 'base.cti_division((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '), ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') * 100 ' || + 'ELSE 0 END, ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ', ' || + + '(' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') ' || + ', ' || + + 'CASE WHEN ' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' > 0 AND ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '> 0 THEN ' || + 'base.cti_division((' || activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ' - ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || '), ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id ) || ') * 100 ' || + 'ELSE 0 END ' || + ']' + ) + + FROM (SELECT * FROM activite.t_rapports_rubriques + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid + WHERE rapport_id = i_rapport_id ORDER BY numero_rubrique + ) subview + + LOOP + + + RETURN NEXT row; + END LOOP; + RETURN ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport_get_column~tx,tx.yaml b/db/schema2/functions/cti_prepare_rapport_get_column~tx,tx.yaml new file mode 100644 index 0000000..6a50142 --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport_get_column~tx,tx.yaml @@ -0,0 +1,109 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_column_name + p1: + type: text + name: i_option +src: | + DECLARE + to_column_name text; + listeString text; + listeCode text; + d int; + f int; + l int; + BEGIN + to_column_name = i_column_name; + IF (i_option = 'MONTH') THEN + IF to_column_name NOT ILIKE 'DISTINCT%' THEN + to_column_name = 'CASE WHEN COLUMNCHECKSEQUENCE THEN ' || to_column_name || ' ELSE NULL END'; + ELSE + to_column_name = 'DISTINCT CASE WHEN COLUMNCHECKSEQUENCE THEN ' || substr(to_column_name,9) || ' ELSE NULL END'; + END IF; + END IF; + d = strpos(to_column_name,'[LISTE:'); + IF (d > 0) THEN + f = strpos(to_column_name,']'); + IF (f > 0) THEN + l = f - d + 1; + listeString = substr(to_column_name, d, l); + listeCode = substr(listeString, 8, length(listeString) - 8); + to_column_name = replace(to_column_name, listeString, '(SELECT to_id FROM activite.t_listes JOIN activite.t_listes_contenu ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = ''' || listeCode || ''')'); + END IF; + END IF; + d = strpos(to_column_name,'[LISTE:'); + IF (d > 0) THEN + f = strpos(to_column_name,']'); + IF (f > 0) THEN + l = f - d + 1; + listeString = substr(to_column_name, d, l); + listeCode = substr(listeString, 8, length(listeString) - 8); + to_column_name = replace(to_column_name, listeString, '(SELECT to_id FROM activite.t_listes JOIN activite.t_listes_contenu ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = ''' || listeCode || ''')'); + END IF; + END IF; + d = strpos(to_column_name,'[LISTE:'); + IF (d > 0) THEN + f = strpos(to_column_name,']'); + IF (f > 0) THEN + l = f - d + 1; + listeString = substr(to_column_name, d, l); + listeCode = substr(listeString, 8, length(listeString) - 8); + to_column_name = replace(to_column_name, listeString, '(SELECT to_id FROM activite.t_listes JOIN activite.t_listes_contenu ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = ''' || listeCode || ''')'); + END IF; + END IF; + d = strpos(to_column_name,'[LISTE:'); + IF (d > 0) THEN + f = strpos(to_column_name,']'); + IF (f > 0) THEN + l = f - d + 1; + listeString = substr(to_column_name, d, l); + listeCode = substr(listeString, 8, length(listeString) - 8); + to_column_name = replace(to_column_name, listeString, '(SELECT to_id FROM activite.t_listes JOIN activite.t_listes_contenu ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = ''' || listeCode || ''')'); + END IF; + END IF; + d = strpos(to_column_name,'[LISTE:'); + IF (d > 0) THEN + f = strpos(to_column_name,']'); + IF (f > 0) THEN + l = f - d + 1; + listeString = substr(to_column_name, d, l); + listeCode = substr(listeString, 8, length(listeString) - 8); + to_column_name = replace(to_column_name, listeString, '(SELECT to_id FROM activite.t_listes JOIN activite.t_listes_contenu ON t_listes.oid = t_listes_contenu.liste_id WHERE t_listes.code = ''' || listeCode || ''')'); + END IF; + END IF; + d = strpos(to_column_name,'[CLASSE:'); + IF (d > 0) THEN + f = strpos(to_column_name,']'); + IF (f > 0) THEN + l = f - d + 1; + listeString = substr(to_column_name, d, l); + listeCode = substr(listeString, 9, length(listeString) - 9); + to_column_name = replace(to_column_name, listeString, '(SELECT to_id FROM activite.t_classes JOIN activite.t_classes_sections ON classe_id = t_classes.oid JOIN activite.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code || '':'' || t_classes_sections.code = ''' || listeCode || ''')'); + END IF; + END IF; + d = strpos(to_column_name,'[CLASSE:'); + IF (d > 0) THEN + f = strpos(to_column_name,']'); + IF (f > 0) THEN + l = f - d + 1; + listeString = substr(to_column_name, d, l); + listeCode = substr(listeString, 9, length(listeString) - 9); + to_column_name = replace(to_column_name, listeString, '(SELECT to_id FROM activite.t_classes JOIN activite.t_classes_sections ON classe_id = t_classes.oid JOIN activite.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code || '':'' || t_classes_sections.code = ''' || listeCode || ''')'); + END IF; + END IF; + d = strpos(to_column_name,'[CLASSE:'); + IF (d > 0) THEN + f = strpos(to_column_name,']'); + IF (f > 0) THEN + l = f - d + 1; + listeString = substr(to_column_name, d, l); + listeCode = substr(listeString, 9, length(listeString) - 9); + to_column_name = replace(to_column_name, listeString, '(SELECT to_id FROM activite.t_classes JOIN activite.t_classes_sections ON classe_id = t_classes.oid JOIN activite.t_classes_sections_elements ON section_id = t_classes_sections.oid WHERE t_classes.code || '':'' || t_classes_sections.code = ''' || listeCode || ''')'); + END IF; + END IF; + + RETURN to_column_name; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport_indicateurs~bi,tx.yaml b/db/schema2/functions/cti_prepare_rapport_indicateurs~bi,tx.yaml new file mode 100644 index 0000000..f1d8e1a --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport_indicateurs~bi,tx.yaml @@ -0,0 +1,238 @@ +return: SETOF record +lang: plpgsql +parameters: + p0: + type: bigint + name: i_rapport_id + p1: + type: text + name: i_option +src: | + DECLARE + sqlcmd text; + + + _maxind integer; + + row RECORD; + BEGIN + + _maxind = activite.cti_prepare_rapport_maxoid(i_rapport_id); + + + IF (i_option <> 'COMP' AND i_rapport_id <> 0) THEN + FOR row IN + SELECT + 'INDICATEURS_' || subview_s.table_name || '#' || subview_s.dimension_date, + CASE WHEN SUM(subview.oid) > 0 + THEN base.cti_group_concat(CASE WHEN subview.oid IS NOT NULL THEN total_function || '(' || activite.cti_prepare_rapport_get_column(column_name,'') || ')' ELSE 'NULL::numeric' END) + ELSE '' END + FROM + (SELECT v_rapports_tables_indicateurs_1.code AS table_name, generate_series AS indicateur_id , dimension_date + FROM activite.v_rapports_tables_indicateurs_1, generate_series(1, _maxind), base.cti_unnest(Array['1','2','3','4','5']) AS dimension_date + WHERE dimensions_date LIKE '%' || dimension_date || '%') subview_s + LEFT JOIN + ( + + SELECT * + FROM activite.t_indicateurs + WHERE oid IN ( + SELECT base.cti_unnest(Array[indicateur_id, indicateur_associe_1_id, indicateur_associe_2_id, indicateur_associe_3_id, indicateur_associe_4_id, indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id]) + FROM activite.t_rapports + JOIN activite.t_rapports_rubriques ON t_rapports.oid = t_rapports_rubriques.rapport_id AND rapport_id = i_rapport_id + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid) + ) subview ON subview_s.indicateur_id = subview.oid AND subview.table_name = subview_s.table_name AND subview.dimension_date = subview_s.dimension_date + GROUP BY 1 + UNION + SELECT + 'INDICATEURS_BUDGET'::text, + CASE WHEN SUM(subview.oid) > 0 + THEN base.cti_group_concat(CASE WHEN subview.oid IS NOT NULL THEN 'SUM' || '(' || activite.cti_prepare_rapport_get_column('CASE WHEN indicateur_id = ' || subview.oid::text || ' THEN budget ELSE 0 END','') || ')' ELSE 'NULL::numeric' END) + ELSE '' END + FROM + ( + SELECT * + FROM + (SELECT generate_series AS indicateur_id , ''::text AS dimension_date + FROM generate_series(1, _maxind) + ORDER BY 1) subview_s + LEFT JOIN + ( + + SELECT * + FROM activite.t_indicateurs + WHERE oid IN ( + SELECT base.cti_unnest(Array[indicateur_id, indicateur_associe_1_id, indicateur_associe_2_id, indicateur_associe_3_id, indicateur_associe_4_id, indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id]) + FROM activite.t_rapports + JOIN activite.t_rapports_rubriques ON t_rapports.oid = t_rapports_rubriques.rapport_id AND rapport_id = i_rapport_id + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid) + AND oid IN (SELECT indicateur_id FROM activite.t_budget_cle_budget) + ) subview ON subview_s.indicateur_id = subview.oid + ORDER BY 1 + ) subview + GROUP BY 1 + + ORDER BY 1 + + + + LOOP + RETURN NEXT row; + END LOOP; + + END IF; + FOR row IN + SELECT + 'INDICATEURS_WHERE_' || subview_s.table_name || '#' || subview_s.dimension_date, + CASE WHEN SUM(subview.oid) > 0 + THEN + 'AND (1<>1 ' || base.cti_group_concat_without_sep( + CASE WHEN subview.oid IS NOT NULL + THEN ' OR ' || + CASE WHEN total_function <> 'COUNT' THEN 'COALESCE(' || activite.cti_prepare_rapport_get_column(column_name,'') || ',0) <> 0' + ELSE replace(activite.cti_prepare_rapport_get_column(column_name,''),'DISTINCT', '') || ' IS NOT NULL' END + ELSE '' END) || ')' + ELSE '' END + FROM + (SELECT v_rapports_tables_indicateurs_1.code AS table_name, generate_series AS indicateur_id , dimension_date + FROM activite.v_rapports_tables_indicateurs_1, generate_series(1,_maxind), base.cti_unnest(Array['1','2','3','4','5']) AS dimension_date + WHERE dimensions_date LIKE '%' || dimension_date || '%') subview_s + LEFT JOIN + ( + + SELECT * + FROM activite.t_indicateurs + WHERE oid IN ( + SELECT base.cti_unnest(Array[indicateur_id, indicateur_associe_1_id, indicateur_associe_2_id, indicateur_associe_3_id, indicateur_associe_4_id, indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id]) + FROM activite.t_rapports + JOIN activite.t_rapports_rubriques ON t_rapports.oid = t_rapports_rubriques.rapport_id AND rapport_id = i_rapport_id + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid) + ) subview ON subview_s.indicateur_id = subview.oid AND subview.table_name = subview_s.table_name AND subview.dimension_date = subview_s.dimension_date + GROUP BY 1 + UNION + SELECT + 'INDICATEURS_WHERE_BUDGET'::text, + CASE WHEN SUM(subview.oid) > 0 + THEN + 'AND (1<>1 ' || base.cti_group_concat_without_sep( + CASE WHEN subview.oid IS NOT NULL + THEN ' OR ' || + 'COALESCE(' || activite.cti_prepare_rapport_get_column('CASE WHEN indicateur_id = ' || subview.oid || ' THEN budget ELSE 0 END','') || ',0) <> 0' + ELSE '' END) || ')' + ELSE '' END + FROM + (SELECT generate_series AS indicateur_id , ''::text AS dimension_date + FROM generate_series(1, _maxind) + GROUP BY 1 ORDER BY 1) subview_s + LEFT JOIN + ( + + SELECT * + FROM activite.t_indicateurs + WHERE oid IN ( + SELECT base.cti_unnest(Array[indicateur_id, indicateur_associe_1_id, indicateur_associe_2_id, indicateur_associe_3_id, indicateur_associe_4_id, indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id]) + FROM activite.t_rapports + JOIN activite.t_rapports_rubriques ON t_rapports.oid = t_rapports_rubriques.rapport_id AND rapport_id = i_rapport_id + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid) + AND oid IN (SELECT indicateur_id FROM activite.t_budget_cle_budget) + ) subview ON subview_s.indicateur_id = subview.oid + GROUP BY 1 + ORDER BY 1 + + + + LOOP + RETURN NEXT row; + END LOOP; + IF (i_option = 'MONTH' OR i_option = 'COMP') AND i_rapport_id <> 0 THEN + FOR row IN + SELECT + 'INDICATEURS_COLUMNS_' || subview_s.table_name || '#' || subview_s.dimension_date, + CASE WHEN SUM(subview.oid) > 0 + THEN base.cti_group_concat(CASE WHEN subview.oid IS NOT NULL THEN total_function || '(' || activite.cti_prepare_rapport_get_column(column_name,'MONTH') || ')' ELSE 'NULL::numeric' END) + ELSE '' END + FROM + (SELECT v_rapports_tables_indicateurs_1.code AS table_name, generate_series AS indicateur_id , dimension_date + FROM activite.v_rapports_tables_indicateurs_1, generate_series(1, _maxind), base.cti_unnest(Array['1','2','3','4','5']) AS dimension_date + WHERE dimensions_date LIKE '%' || dimension_date || '%') subview_s + LEFT JOIN + ( + + SELECT * + FROM activite.t_indicateurs + WHERE oid IN ( + SELECT base.cti_unnest(Array[indicateur_id, indicateur_associe_1_id, indicateur_associe_2_id, indicateur_associe_3_id, indicateur_associe_4_id, indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id]) + FROM activite.t_rapports + JOIN activite.t_rapports_rubriques ON t_rapports.oid = t_rapports_rubriques.rapport_id AND rapport_id = i_rapport_id + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid) + ) subview ON subview_s.indicateur_id = subview.oid AND subview.table_name = subview_s.table_name AND subview.dimension_date = subview_s.dimension_date + GROUP BY 1 + UNION + SELECT + 'INDICATEURS_COLUMNS_BUDGET'::text, + CASE WHEN SUM(subview.oid) > 0 + THEN base.cti_group_concat(CASE WHEN subview.oid IS NOT NULL THEN 'SUM' || '(' || activite.cti_prepare_rapport_get_column('CASE WHEN indicateur_id = ' || subview.oid::text || ' THEN budget ELSE 0 END','MONTH') || ')' ELSE 'NULL::numeric' END) + ELSE '' END + FROM + (SELECT subview_s.indicateur_id, subview_s.dimension_date, subview.oid + FROM + (SELECT generate_series AS indicateur_id , ''::text AS dimension_date + FROM generate_series(1, _maxind) + GROUP BY 1 ORDER BY 1) subview_s + LEFT JOIN + ( + + SELECT * + FROM activite.t_indicateurs + WHERE oid IN ( + SELECT base.cti_unnest(Array[indicateur_id, indicateur_associe_1_id, indicateur_associe_2_id, indicateur_associe_3_id, indicateur_associe_4_id, indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id]) + FROM activite.t_rapports + JOIN activite.t_rapports_rubriques ON t_rapports.oid = t_rapports_rubriques.rapport_id AND rapport_id = i_rapport_id + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid) + AND oid IN (SELECT indicateur_id FROM activite.t_budget_cle_budget) + ) subview ON subview_s.indicateur_id = subview.oid + ORDER BY 1 + ) subview + GROUP BY 1 + ORDER BY 1 + + + + LOOP + RETURN NEXT row; + END LOOP; + + END IF; + IF (i_option = 'DASHBOARD') THEN + FOR row IN + SELECT + 'INDICATEURS_' || subview_s.table_name || '#' || subview_s.dimension_date, + CASE WHEN SUM(subview.oid) > 0 + THEN base.cti_group_concat(CASE WHEN subview.oid IS NOT NULL THEN total_function || '(' || activite.cti_prepare_rapport_get_column(column_name,'') || ')' ELSE 'NULL::numeric' END) + ELSE '' END + FROM + (SELECT v_rapports_tables_indicateurs_1.code AS table_name, generate_series AS indicateur_id , dimension_date + FROM activite.v_rapports_tables_indicateurs_1, generate_series(1, _maxind), base.cti_unnest(Array['1','2','3','4','5']) AS dimension_date + WHERE dimensions_date LIKE '%' || dimension_date || '%') subview_s + LEFT JOIN + ( + + SELECT * + FROM activite.t_indicateurs + WHERE oid IN ( + SELECT base.cti_unnest(Array[oid, indicateur_associe_1_id, indicateur_associe_2_id, indicateur_associe_3_id, indicateur_associe_4_id, indicateur_associe_5_id]) + FROM activite.t_indicateurs WHERE code <> '' AND t_indicateurs.oid > 0 AND (indicateur_reference_id <> 0 OR COALESCE(dimension_date_2,'') = '')) + ) subview ON subview_s.indicateur_id = subview.oid AND subview.table_name = subview_s.table_name AND subview.dimension_date = subview_s.dimension_date + GROUP BY 1 + ORDER BY 1 + + + + LOOP + RETURN NEXT row; + END LOOP; + + END IF; + + RETURN ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport_maxoid~bi.yaml b/db/schema2/functions/cti_prepare_rapport_maxoid~bi.yaml new file mode 100644 index 0000000..77a2b8a --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport_maxoid~bi.yaml @@ -0,0 +1,41 @@ +return: integer +lang: plpgsql +parameters: + p0: + type: bigint + name: i_rapport_id +src: | + DECLARE + + + temp_cursor refcursor; + _oid integer; + _maxind integer; + BEGIN + + _maxind = 100; + IF i_rapport_id <> 0 THEN + + OPEN temp_cursor FOR + SELECT MAX(oid) + FROM activite.t_indicateurs + WHERE oid IN ( + SELECT base.cti_unnest(Array[indicateur_id, indicateur_associe_1_id, indicateur_associe_2_id, indicateur_associe_3_id, indicateur_associe_4_id, indicateur_associe_5_id, indicateur_associe_6_id, indicateur_associe_7_id]) + FROM activite.t_rapports + JOIN activite.t_rapports_rubriques ON t_rapports.oid = t_rapports_rubriques.rapport_id AND rapport_id = i_rapport_id + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid); + ELSE + OPEN temp_cursor FOR + SELECT MAX(oid) + FROM activite.t_indicateurs; + END IF; + + FETCH temp_cursor INTO _oid; + WHILE FOUND LOOP + _maxind = _oid; + FETCH temp_cursor INTO _oid; + END LOOP; + CLOSE temp_cursor; + + RETURN _maxind; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport_month~bi.yaml b/db/schema2/functions/cti_prepare_rapport_month~bi.yaml new file mode 100644 index 0000000..254ff68 --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport_month~bi.yaml @@ -0,0 +1,67 @@ +return: SETOF record +lang: plpgsql +parameters: + p0: + type: bigint + name: i_rapport_id +src: | + DECLARE + sqlcmd text; + + temp_cursor refcursor; + _oid integer; + _maxind integer; + + row RECORD; + BEGIN + + + _maxind = activite.cti_prepare_rapport_maxoid(i_rapport_id); + FOR row IN + SELECT * FROM activite.cti_prepare_rapport_indicateurs(i_rapport_id, 'MONTH') AS (name text, value text) + UNION + SELECT 'RUBRIQUES_RAPPORT', + + + base.cti_group_concat( + 'ARRAY[' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 1, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 2, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 3, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 4, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 5, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 6, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 7, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 8, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 9, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 10, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 11, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 12, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 13, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 14, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 15, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 16, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 17, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 18, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 19, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 20, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 21, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 22, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) || ', ' || + activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 23, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id ) + + || ']' + ) + + FROM (SELECT * FROM activite.t_rapports_rubriques + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid + WHERE rapport_id = i_rapport_id ORDER BY numero_rubrique + ) subview + + LOOP + + + RETURN NEXT row; + END LOOP; + RETURN ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_prepare_rapport~bi.yaml b/db/schema2/functions/cti_prepare_rapport~bi.yaml new file mode 100644 index 0000000..637859d --- /dev/null +++ b/db/schema2/functions/cti_prepare_rapport~bi.yaml @@ -0,0 +1,75 @@ +return: SETOF record +lang: plpgsql +parameters: + p0: + type: bigint + name: i_rapport_id +src: | + DECLARE + sqlcmd text; + + + temp_cursor refcursor; + _oid integer; + _maxind integer; + + row RECORD; + BEGIN + + _maxind = activite.cti_prepare_rapport_maxoid(i_rapport_id); + + FOR row IN + SELECT * FROM activite.cti_prepare_rapport_indicateurs(i_rapport_id, '') AS (name text, value text) + + UNION + + + SELECT 'RUBRIQUES_RAPPORT', + base.cti_group_concat(activite.cti_prepare_rapport_calc_indicator(column_name, table_name, _maxind, 0, indicateur_id, indicateur_associe_1_id , indicateur_associe_2_id , indicateur_associe_3_id ,indicateur_associe_4_id ,indicateur_associe_5_id ,indicateur_associe_6_id ,indicateur_associe_7_id)) + FROM (SELECT * FROM activite.t_rapports_rubriques + JOIN activite.t_indicateurs ON t_rapports_rubriques.indicateur_id = t_indicateurs.oid + WHERE rapport_id = i_rapport_id ORDER BY numero_rubrique + ) subview + UNION + + + SELECT 'IC' || numero_rubrique::text, t_indicateurs.oid::text FROM activite.t_rapports_rubriques, activite.t_indicateurs + WHERE t_rapports_rubriques.rapport_id = i_rapport_id AND t_rapports_rubriques.indicateur_id = t_indicateurs.oid + + UNION + + SELECT 'IH' || numero_rubrique::text, CASE WHEN t_rapports_rubriques.entete <> '' THEN t_rapports_rubriques.entete ELSE t_indicateurs.entete END FROM activite.t_rapports_rubriques, activite.t_indicateurs + WHERE t_rapports_rubriques.rapport_id = i_rapport_id AND t_rapports_rubriques.indicateur_id = t_indicateurs.oid + + UNION + + SELECT 'IW' || numero_rubrique::text, + CASE + WHEN t_indicateurs.table_name = 'SEP' THEN '2' + WHEN t_rapports_rubriques.width > 0 THEN t_rapports_rubriques.width::text + WHEN t_indicateurs.width > 0 THEN t_indicateurs.width::text + ELSE '80' + END + FROM activite.t_rapports_rubriques, activite.t_indicateurs + WHERE t_rapports_rubriques.rapport_id = i_rapport_id AND t_rapports_rubriques.indicateur_id = t_indicateurs.oid + + UNION + + SELECT 'IO' || numero_rubrique::text, + CASE WHEN t_rapports_rubriques.output_format <> '' THEN t_rapports_rubriques.output_format + WHEN t_indicateurs.output_format <> '' THEN t_indicateurs.output_format + ELSE '#' END + FROM activite.t_rapports_rubriques, activite.t_indicateurs + WHERE t_rapports_rubriques.rapport_id = i_rapport_id AND t_rapports_rubriques.indicateur_id = t_indicateurs.oid + + UNION + + SELECT 'IT' || numero_rubrique::text, t_indicateurs.table_name::text FROM activite.t_rapports_rubriques, activite.t_indicateurs + WHERE t_rapports_rubriques.rapport_id = i_rapport_id AND t_rapports_rubriques.indicateur_id = t_indicateurs.oid + LOOP + + + RETURN NEXT row; + END LOOP; + RETURN ; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_actes_c.yaml b/db/schema2/functions/cti_reorganize_actes_c.yaml new file mode 100644 index 0000000..912af83 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_actes_c.yaml @@ -0,0 +1,197 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + DELETE FROM activite.t_actes_c + WHERE oid NOT IN (SELECT oid FROM base.t_actes); + + UPDATE activite.t_actes_c SET + code = t_actes.code, + texte = t_actes.texte, + texte_court = t_actes.texte_court, + nomenclature = t_actes.nomenclature, + classant = t_actes.classant, + ccam_regroupement_id_1 = t_actes.ccam_regroupement_id_1, + ccam_regroupement_code_1 = t_ccam_regroupements_1.code, + ccam_regroupement_texte_1 = t_ccam_regroupements_1.texte, + ccam_regroupement_id_4 = t_actes.ccam_regroupement_id_4, + ccam_regroupement_code_4 = t_ccam_regroupements_4.code, + ccam_regroupement_texte_4 = t_ccam_regroupements_4.code, + chapitre_1_id = t_actes.chapitre_1_id, + chapitre_1_code = t_actes.chapitre_1_code, + chapitre_1_texte = t_actes.chapitre_1_texte, + chapitre_2_id = t_actes.chapitre_2_id, + chapitre_2_code = t_actes.chapitre_2_code, + chapitre_2_texte = t_actes.chapitre_2_texte, + chapitre_3_id = CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END, + chapitre_3_code = CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END, + chapitre_3_texte = CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END, + chapitre_4_id = CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END + ELSE t_actes.chapitre_4_id END, + chapitre_4_code = CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END + ELSE t_actes.chapitre_4_code END, + chapitre_4_texte = CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END + ELSE t_actes.chapitre_4_texte END, + type_id = t_actes.type_id, + type_code = t_actes.type_code, + type_texte = t_actes.type_texte, + topographie_1_id = t_actes.topographie_1_id, + topographie_1_code = t_actes.topographie_1_code, + topographie_1_texte = t_actes.topographie_1_texte, + topographie_2_id = t_actes.topographie_2_id, + topographie_2_code = t_actes.topographie_2_code, + topographie_2_texte = t_actes.topographie_2_texte, + action_id = t_actes.action_id, + action_code = t_actes.action_code, + action_texte = t_actes.action_texte, + technique_id = t_actes.technique_id, + technique_code = t_actes.technique_code, + technique_texte = t_actes.technique_texte + FROM base.t_actes + JOIN base.t_ccam_regroupements t_ccam_regroupements_1 ON t_actes.ccam_regroupement_id_1 = t_ccam_regroupements_1.oid + JOIN base.t_ccam_regroupements t_ccam_regroupements_4 ON t_actes.ccam_regroupement_id_4 = t_ccam_regroupements_4.oid + WHERE t_actes_c.oid = t_actes.oid AND + ( + t_actes_c.code IS DISTINCT FROM t_actes.code OR + t_actes_c.texte IS DISTINCT FROM t_actes.texte OR + t_actes_c.texte_court IS DISTINCT FROM t_actes.texte_court OR + t_actes_c.nomenclature IS DISTINCT FROM t_actes.nomenclature OR + t_actes_c.classant IS DISTINCT FROM t_actes.classant OR + t_actes_c.ccam_regroupement_id_1 IS DISTINCT FROM t_actes.ccam_regroupement_id_1 OR + t_actes_c.ccam_regroupement_code_1 IS DISTINCT FROM t_ccam_regroupements_1.code OR + t_actes_c.ccam_regroupement_texte_1 IS DISTINCT FROM t_ccam_regroupements_1.texte OR + t_actes_c.ccam_regroupement_id_4 IS DISTINCT FROM t_actes.ccam_regroupement_id_4 OR + t_actes_c.ccam_regroupement_code_4 IS DISTINCT FROM t_ccam_regroupements_4.code OR + t_actes_c.ccam_regroupement_texte_4 IS DISTINCT FROM t_ccam_regroupements_4.code OR + t_actes_c.chapitre_1_id IS DISTINCT FROM t_actes.chapitre_1_id OR + t_actes_c.chapitre_1_code IS DISTINCT FROM t_actes.chapitre_1_code OR + t_actes_c.chapitre_1_texte IS DISTINCT FROM t_actes.chapitre_1_texte OR + t_actes_c.chapitre_2_id IS DISTINCT FROM t_actes.chapitre_2_id OR + t_actes_c.chapitre_2_code IS DISTINCT FROM t_actes.chapitre_2_code OR + t_actes_c.chapitre_2_texte IS DISTINCT FROM t_actes.chapitre_2_texte OR + t_actes_c.chapitre_3_id IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END OR + t_actes_c.chapitre_3_code IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END OR + t_actes_c.chapitre_3_texte IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END OR + t_actes_c.chapitre_4_id IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END + ELSE t_actes.chapitre_4_id END OR + t_actes_c.chapitre_4_code IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END + ELSE t_actes.chapitre_4_code END OR + t_actes_c.chapitre_4_texte IS DISTINCT FROM CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END + ELSE t_actes.chapitre_4_texte END OR + t_actes_c.type_id IS DISTINCT FROM t_actes.type_id OR + t_actes_c.type_code IS DISTINCT FROM t_actes.type_code OR + t_actes_c.type_texte IS DISTINCT FROM t_actes.type_texte OR + t_actes_c.topographie_1_id IS DISTINCT FROM t_actes.topographie_1_id OR + t_actes_c.topographie_1_code IS DISTINCT FROM t_actes.topographie_1_code OR + t_actes_c.topographie_1_texte IS DISTINCT FROM t_actes.topographie_1_texte OR + t_actes_c.topographie_2_id IS DISTINCT FROM t_actes.topographie_2_id OR + t_actes_c.topographie_2_code IS DISTINCT FROM t_actes.topographie_2_code OR + t_actes_c.topographie_2_texte IS DISTINCT FROM t_actes.topographie_2_texte OR + t_actes_c.action_id IS DISTINCT FROM t_actes.action_id OR + t_actes_c.action_code IS DISTINCT FROM t_actes.action_code OR + t_actes_c.action_texte IS DISTINCT FROM t_actes.action_texte OR + t_actes_c.technique_id IS DISTINCT FROM t_actes.technique_id OR + t_actes_c.technique_code IS DISTINCT FROM t_actes.technique_code OR + t_actes_c.technique_texte IS DISTINCT FROM t_actes.technique_texte + ); + INSERT INTO activite.t_actes_c( + oid, + code, + texte, + texte_court, + nomenclature, + classant, + ccam_regroupement_id_1, + ccam_regroupement_code_1, + ccam_regroupement_texte_1, + ccam_regroupement_id_4, + ccam_regroupement_code_4, + ccam_regroupement_texte_4, + chapitre_1_id, + chapitre_1_code, + chapitre_1_texte, + chapitre_2_id, + chapitre_2_code, + chapitre_2_texte, + chapitre_3_id, + chapitre_3_code, + chapitre_3_texte, + chapitre_4_id, + chapitre_4_code, + chapitre_4_texte, + type_id, + type_code, + type_texte, + topographie_1_id, + topographie_1_code, + topographie_1_texte, + topographie_2_id, + topographie_2_code, + topographie_2_texte, + action_id, + action_code, + action_texte, + technique_id, + technique_code, + technique_texte) + SELECT + t_actes.oid, + t_actes.code, + t_actes.texte, + t_actes.texte_court, + t_actes.nomenclature, + t_actes.classant, + t_actes.ccam_regroupement_id_1, + t_ccam_regroupements_1.code AS ccam_regroupement_code_1, + t_ccam_regroupements_1.texte_court AS ccam_regroupement_texte_1, + t_actes.ccam_regroupement_id_4, + t_ccam_regroupements_4.code AS ccam_regroupement_code_4, + t_ccam_regroupements_4.texte_court AS ccam_regroupement_texte_4, + t_actes.chapitre_1_id AS ccam_chapitre_1_id, + t_actes.chapitre_1_code AS ccam_chapitre_1_code, + t_actes.chapitre_1_texte AS ccam_chapitre_1_texte, + t_actes.chapitre_2_id AS ccam_chapitre_2_id, + t_actes.chapitre_2_code AS ccam_chapitre_2_code, + t_actes.chapitre_2_texte AS ccam_chapitre_2_texte, + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END AS ccam_chapitre_3_id, + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END AS ccam_chapitre_3_code, + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END AS ccam_chapitre_3_texte, + CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_id ELSE t_actes.chapitre_3_id END + ELSE t_actes.chapitre_4_id END AS ccam_chapitre_4_id, + CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_code ELSE t_actes.chapitre_3_code END + ELSE t_actes.chapitre_4_code END AS ccam_chapitre_4_code, + CASE WHEN substr(t_actes.chapitre_4_code::text, 10, 2) = '99'::text THEN + CASE WHEN substr(t_actes.chapitre_3_code::text, 7, 2) = '99'::text THEN t_actes.chapitre_2_texte ELSE t_actes.chapitre_3_texte END + ELSE t_actes.chapitre_4_texte END AS ccam_chapitre_4_texte, + t_actes.type_id AS ccam_type_id, + t_actes.type_code AS ccam_type_code, + t_actes.type_texte AS ccam_type_texte, + t_actes.topographie_1_id AS ccam_topographie_1_id, + t_actes.topographie_1_code AS ccam_topographie_1_code, + t_actes.topographie_1_texte AS ccam_topographie_1_texte, + t_actes.topographie_2_id AS ccam_topographie_2_id, + t_actes.topographie_2_code AS ccam_topographie_2_code, + t_actes.topographie_2_texte AS ccam_topographie_2_texte, + t_actes.action_id AS ccam_action_id, + t_actes.action_code AS ccam_action_code, + t_actes.action_texte AS ccam_action_texte, + t_actes.technique_id AS ccam_technique_id, + t_actes.technique_code AS ccam_technique_code, + t_actes.technique_texte AS ccam_technique_texte + FROM base.t_actes + JOIN base.t_ccam_regroupements t_ccam_regroupements_1 ON t_actes.ccam_regroupement_id_1 = t_ccam_regroupements_1.oid + JOIN base.t_ccam_regroupements t_ccam_regroupements_4 ON t_actes.ccam_regroupement_id_4 = t_ccam_regroupements_4.oid + WHERE (t_actes.nomenclature IN ('CCAM', 'NGAP') OR t_actes.oid = 0) AND t_actes.oid NOT IN (SELECT oid FROM activite.t_actes_c); + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_ages_c.yaml b/db/schema2/functions/cti_reorganize_ages_c.yaml new file mode 100644 index 0000000..4f9b360 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_ages_c.yaml @@ -0,0 +1,74 @@ +return: text +lang: plpgsql +src: | + DECLARE result TEXT; + BEGIN + -- Table des ages à créer + DROP TABLE IF EXISTS w_tmp; + + CREATE TEMP TABLE w_tmp AS + SELECT + t_ages.oid, + t_ages.code, + t_ages.texte + FROM base.t_ages + ORDER BY code; + + -- Remise bon oid (en deux étapes pour éviter clés en double) + UPDATE + activite.t_ages_c + SET + oid = 0 - w_tmp.oid + FROM + w_tmp + WHERE + t_ages_c.code = w_tmp.code + AND ( + t_ages_c.oid <> w_tmp.oid + ); + + UPDATE + activite.t_ages_c + SET + oid = w_tmp.oid + FROM + w_tmp + WHERE + t_ages_c.code = w_tmp.code + AND ( + t_ages_c.oid <> w_tmp.oid + ); + + -- Mise à jour codes selon base + UPDATE + activite.t_ages_c + SET + code = w_tmp.code, + texte = w_tmp.texte + FROM + w_tmp + WHERE + t_ages_c.oid = w_tmp.oid + AND ( + t_ages_c.code IS DISTINCT FROM w_tmp.code + OR t_ages_c.texte IS DISTINCT FROM w_tmp.texte + ); + + -- Ajout nouveaux codes + INSERT INTO activite.t_ages_c ( + oid, + code, + texte + ) + SELECT w_tmp.oid, + w_tmp.code, + w_tmp.texte + FROM w_tmp + WHERE w_tmp.oid NOT IN ( + SELECT oid + FROM activite.t_ages_c + ) + ORDER BY w_tmp.code; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_controle_chiffrier.yaml b/db/schema2/functions/cti_reorganize_controle_chiffrier.yaml new file mode 100644 index 0000000..d73808c --- /dev/null +++ b/db/schema2/functions/cti_reorganize_controle_chiffrier.yaml @@ -0,0 +1,281 @@ +return: text +lang: plpgsql +src: | + DECLARE + _marge_erreur numeric; + _ignorer_reglements text; + result TEXT; + BEGIN + RAISE NOTICE 'Initialisations'; + -- marge de validation automatique + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur2) + SELECT + 'CHIFERRMAX', + 'Marge d'' erreur pour validation automatique chiffrier', + '0', + 'Montant', + '' + WHERE 'CHIFERRMAX' NOT IN (SELECT code FROM activite.t_divers); + _marge_erreur = base.cti_to_number((SELECT valeur FROM activite.t_divers WHERE code = 'CHIFERRMAX')) ; + -- Controle des règlements ? + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur2) + SELECT + 'CHIFERRREG', + 'Ignorer les règlements pour la validation automatique', + '0', + '0=Tenir compte des règlements, 1=Ignorer', + '' + WHERE 'CHIFERRREG' NOT IN (SELECT code FROM activite.t_divers); + _ignorer_reglements = (SELECT valeur FROM activite.t_divers WHERE code = 'CHIFERRREG') ; + + -- Ne pas controler le mois en cours; + UPDATE activite.p_chiffrier_comptable + SET montant_ventes_c = 0, + montant_ventes_h = 0, + montant_reglements_c = 0, + montant_reglements_h = 0 + WHERE date_comptable >= date(date_trunc('month', now())); + + -- table de travail + DROP TABLE IF EXISTS w_chiffrier_comptable; + CREATE TEMP TABLE w_chiffrier_comptable + ( + date_comptable date, + provider_id bigint, + montant_comptabilise_d_c numeric(13,2) DEFAULT 0, + montant_comptabilise_t_c numeric(13,2) DEFAULT 0, + montant_comptabilise_s_c numeric(13,2) DEFAULT 0, + montant_comptabilise_c_c numeric(13,2) DEFAULT 0, + montant_regle_s_c numeric(13,2) DEFAULT 0, + montant_regle_c_c numeric(13,2) DEFAULT 0, + montant_comptabilise_d_h numeric(13,2) DEFAULT 0, + montant_comptabilise_t_h numeric(13,2) DEFAULT 0, + montant_comptabilise_s_h numeric(13,2) DEFAULT 0, + montant_comptabilise_c_h numeric(13,2) DEFAULT 0, + montant_regle_s_h numeric(13,2) DEFAULT 0, + montant_regle_c_h numeric(13,2) DEFAULT 0 + ) ; + + + RAISE NOTICE 'Lignes facturées CLINIQUE'; + INSERT INTO w_chiffrier_comptable(date_comptable, provider_id, montant_comptabilise_d_c) + SELECT date_trunc('month',p_factures.date_vente) AS date_comptable, p_factures.provider_id, + SUM(p_factures_lignes_c.montant_comptabilise) AS montant_comptabilise_d_c + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour AND p_sejours.etat = '' + WHERE p_factures.date_vente BETWEEN '20090101' AND date(now()) AND + p_factures.code_vente = '1' + GROUP BY 1,2; + RAISE NOTICE 'Lignes facturées HONORAIRES'; + + INSERT INTO w_chiffrier_comptable(date_comptable, provider_id, montant_comptabilise_d_h) + SELECT date_trunc('month',p_factures.date_vente) AS date_comptable, p_factures.provider_id, + SUM(p_factures_lignes_h.montant_comptabilise) AS montant_comptabilise_d_h + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour AND p_sejours.etat = '' + WHERE date_vente BETWEEN '20090101' AND date(now()) AND + p_factures.code_vente = '1' + GROUP BY 1,2; + RAISE NOTICE 'Factures'; + + INSERT INTO w_chiffrier_comptable(date_comptable, provider_id, montant_comptabilise_t_c, montant_comptabilise_t_h) + SELECT date_trunc('month',date_vente) AS date_comptable, p_factures.provider_id, + SUM(p_factures.montant_comptabilise_c) AS montant_comptabilise_t_c, + SUM(p_factures.montant_comptabilise_h) AS montant_comptabilise_t_h + FROM activite.p_factures + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour AND p_sejours.etat = '' + WHERE date_vente BETWEEN '20090101' AND date(now()) AND + code_vente = '1' + GROUP BY 1,2; + RAISE NOTICE 'Comptabilisation CLINIQUE'; + + INSERT INTO w_chiffrier_comptable(date_comptable, provider_id, montant_comptabilise_s_c, montant_regle_s_c) + SELECT date_trunc('month',p_facture_solde_tiers_c.date_comptable) AS date_comptable, p_factures.provider_id, + SUM(CASE WHEN p_factures.code_vente = '1' THEN montant_comptabilise ELSE 0 END) AS montant_comptabilise_s_c, + SUM(CASE WHEN od_avoir <> '1' AND od_non_comptabilise IS DISTINCT FROM '1' THEN montant_regle ELSE 0 END) AS montant_regle_s_c + FROM activite.p_facture_solde_tiers_c + JOIN activite.p_factures ON p_facture_solde_tiers_c.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour AND p_sejours.etat = '' + WHERE date_comptable BETWEEN '20090101' AND date(now()) + GROUP BY 1,2 ; + RAISE NOTICE 'Comptabilisation HONORAIRE'; + + INSERT INTO w_chiffrier_comptable(date_comptable, provider_id, montant_comptabilise_s_h, montant_regle_s_h) + SELECT date_trunc('month',date_comptable) AS date_comptable, p_factures.provider_id, + SUM(CASE WHEN p_factures.code_vente = '1' THEN montant_comptabilise ELSE 0 END) AS montant_comptabilise_s_h, + SUM(CASE WHEN od_avoir <> '1' AND od_non_comptabilise IS DISTINCT FROM '1' THEN montant_regle ELSE 0 END) AS montant_regle_s_h + FROM activite.p_factures_soldes_h + JOIN activite.p_factures ON p_factures_soldes_h.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour AND p_sejours.etat = '' + WHERE date_comptable BETWEEN '20090101' AND date(now()) + GROUP BY 1,2 ; + RAISE NOTICE 'Chiffrier production'; + + INSERT INTO w_chiffrier_comptable(date_comptable, provider_id, montant_comptabilise_c_c, montant_comptabilise_c_h, montant_regle_c_c, montant_regle_c_h) + SELECT date_trunc('month',date_comptable) AS date_comptable, provider_id, + SUM(montant_ventes_c) AS montant_comptabilise_c_c, + SUM(montant_ventes_h) AS montant_comptabilise_c_h, + SUM(montant_reglements_c) AS montant_regle_c_c, + SUM(montant_reglements_h) AS montant_regle_c_h + FROM activite.p_chiffrier_comptable + WHERE date_comptable BETWEEN '20090101' AND date(now()) + GROUP BY 1,2 ; + RAISE NOTICE 'Controles'; + DROP TABLE IF EXISTS w_controle_chiffrier; + CREATE TEMP TABLE w_controle_chiffrier AS + SELECT + date_comptable AS w_date_comptable, + COALESCE(provider_id,0) AS w_provider_id, + SUM(montant_comptabilise_d_c) AS w_montant_comptabilise_d_c, + SUM(montant_comptabilise_t_c) AS w_montant_comptabilise_t_c, + SUM(montant_comptabilise_s_c) AS w_montant_comptabilise_s_c, + SUM(montant_comptabilise_c_c) AS w_montant_comptabilise_c_c, + SUM(montant_regle_s_c) AS w_montant_regle_s_c, + SUM(montant_regle_c_c) AS w_montant_regle_c_c, + SUM(montant_comptabilise_d_h) AS w_montant_comptabilise_d_h, + SUM(montant_comptabilise_t_h) AS w_montant_comptabilise_t_h, + SUM(montant_comptabilise_s_h) AS w_montant_comptabilise_s_h, + SUM(montant_comptabilise_c_h) AS w_montant_comptabilise_c_h, + SUM(montant_regle_s_h) AS w_montant_regle_s_h, + SUM(montant_regle_c_h) AS w_montant_regle_c_h + FROM w_chiffrier_comptable + GROUP BY 1,2; + -- Suppression lignes antérieures (si changement de date début) + DELETE + FROM activite.t_controle_chiffrier + WHERE date_comptable < (SELECT date(MIN(date_trunc('month',date_comptable))) FROM activite.p_chiffrier_comptable); + + -- Ajout nouvelles lignes + INSERT INTO activite.t_controle_chiffrier + (date_comptable, + provider_id, + montant_comptabilise_d_c, + montant_comptabilise_t_c, + montant_comptabilise_s_c, + montant_comptabilise_c_c, + montant_regle_s_c, + montant_regle_c_c, + montant_comptabilise_d_h, + montant_comptabilise_t_h, + montant_comptabilise_s_h, + montant_comptabilise_c_h, + montant_regle_s_h, + montant_regle_c_h, + valide + ) + SELECT + w_date_comptable, + w_provider_id, + w_montant_comptabilise_d_c, + w_montant_comptabilise_t_c, + w_montant_comptabilise_s_c, + w_montant_comptabilise_c_c, + w_montant_regle_s_c, + w_montant_regle_c_c, + w_montant_comptabilise_d_h, + w_montant_comptabilise_t_h, + w_montant_comptabilise_s_h, + w_montant_comptabilise_c_h, + w_montant_regle_s_h, + w_montant_regle_c_h, + CASE WHEN w_montant_comptabilise_d_c <> w_montant_comptabilise_t_c OR + w_montant_comptabilise_s_c <> w_montant_comptabilise_s_c OR + w_montant_comptabilise_d_c <> w_montant_comptabilise_c_c AND w_montant_comptabilise_c_c <> 0 OR + w_montant_regle_s_c <> w_montant_regle_c_c AND w_montant_regle_c_c <> 0 OR + w_montant_comptabilise_d_h <> w_montant_comptabilise_t_h OR + w_montant_comptabilise_s_h <> w_montant_comptabilise_s_h OR + w_montant_comptabilise_d_h <> w_montant_comptabilise_c_h AND w_montant_comptabilise_c_c <> 0 OR + w_montant_regle_s_h <> w_montant_regle_c_h AND w_montant_regle_c_h <> 0 THEN 0 ELSE 1 END + FROM w_controle_chiffrier + LEFT JOIN activite.t_controle_chiffrier ON w_date_comptable = date_comptable AND w_provider_id = provider_id + WHERE date_comptable IS NULL; + UPDATE activite.t_controle_chiffrier SET + montant_comptabilise_d_c = w_montant_comptabilise_d_c, + montant_comptabilise_t_c = w_montant_comptabilise_t_c, + montant_comptabilise_s_c = w_montant_comptabilise_s_c, + montant_comptabilise_c_c = w_montant_comptabilise_c_c, + montant_regle_s_c = w_montant_regle_s_c, + montant_regle_c_c = w_montant_regle_c_c, + montant_comptabilise_d_h = w_montant_comptabilise_d_h, + montant_comptabilise_t_h = w_montant_comptabilise_t_h, + montant_comptabilise_s_h = w_montant_comptabilise_s_h, + montant_comptabilise_c_h = w_montant_comptabilise_c_h, + montant_regle_s_h = w_montant_regle_s_h, + montant_regle_c_h = w_montant_regle_c_h, + valide = CASE WHEN w_montant_comptabilise_d_c <> w_montant_comptabilise_t_c OR + w_montant_comptabilise_s_c <> w_montant_comptabilise_s_c OR + w_montant_comptabilise_d_c <> w_montant_comptabilise_c_c AND w_montant_comptabilise_c_c <> 0 OR + w_montant_regle_s_c <> w_montant_regle_c_c AND w_montant_regle_c_c <> 0 OR + w_montant_comptabilise_d_h <> w_montant_comptabilise_t_h OR + w_montant_comptabilise_s_h <> w_montant_comptabilise_s_h OR + w_montant_comptabilise_d_h <> w_montant_comptabilise_c_h AND w_montant_comptabilise_c_c <> 0 OR + w_montant_regle_s_h <> w_montant_regle_c_h AND w_montant_regle_c_h <> 0 THEN 0 ELSE 1 END + FROM w_controle_chiffrier + WHERE w_date_comptable = date_comptable AND w_provider_id = provider_id + AND ( + montant_comptabilise_d_c IS DISTINCT FROM w_montant_comptabilise_d_c OR + montant_comptabilise_t_c IS DISTINCT FROM w_montant_comptabilise_t_c OR + montant_comptabilise_s_c IS DISTINCT FROM w_montant_comptabilise_s_c OR + montant_comptabilise_c_c IS DISTINCT FROM w_montant_comptabilise_c_c OR + montant_regle_s_c IS DISTINCT FROM w_montant_regle_s_c OR + montant_regle_c_c IS DISTINCT FROM w_montant_regle_c_c OR + montant_comptabilise_d_h IS DISTINCT FROM w_montant_comptabilise_d_h OR + montant_comptabilise_t_h IS DISTINCT FROM w_montant_comptabilise_t_h OR + montant_comptabilise_s_h IS DISTINCT FROM w_montant_comptabilise_s_h OR + montant_comptabilise_c_h IS DISTINCT FROM w_montant_comptabilise_c_h OR + montant_regle_s_h IS DISTINCT FROM w_montant_regle_s_h OR + montant_regle_c_h IS DISTINCT FROM w_montant_regle_c_h + ); + + + UPDATE activite.t_controle_chiffrier + SET valide = 1 + WHERE valide <> 1 AND + NOT + (montant_comptabilise_d_c IS DISTINCT FROM montant_comptabilise_c_c AND montant_comptabilise_c_c <> 0 OR + montant_comptabilise_t_c IS DISTINCT FROM montant_comptabilise_c_c AND montant_comptabilise_c_c <> 0 OR + montant_comptabilise_s_c IS DISTINCT FROM montant_comptabilise_c_c AND montant_comptabilise_c_c <> 0 OR + montant_comptabilise_c_c IS DISTINCT FROM montant_comptabilise_c_c AND montant_comptabilise_c_c <> 0 OR + montant_regle_s_c IS DISTINCT FROM montant_regle_c_c AND montant_regle_c_c <> 0 OR + montant_comptabilise_d_h IS DISTINCT FROM montant_comptabilise_c_h AND montant_comptabilise_c_h <> 0 OR + montant_comptabilise_t_h IS DISTINCT FROM montant_comptabilise_c_h AND montant_comptabilise_c_h <> 0 OR + montant_comptabilise_s_h IS DISTINCT FROM montant_comptabilise_c_h AND montant_comptabilise_c_h <> 0 OR + montant_comptabilise_c_h IS DISTINCT FROM montant_comptabilise_c_h AND montant_comptabilise_c_h <> 0 OR + montant_regle_s_h IS DISTINCT FROM montant_regle_c_h AND montant_regle_c_h <> 0 + ) OR + + (CASE WHEN montant_comptabilise_c_c <> 0 THEN + ABS(montant_comptabilise_d_c - montant_comptabilise_c_c) + + ABS(montant_comptabilise_t_c - montant_comptabilise_c_c) + + ABS(montant_comptabilise_s_c - montant_comptabilise_c_c) + ELSE + 0 + END + + + CASE WHEN montant_comptabilise_c_h <> 0 THEN + ABS(montant_comptabilise_d_h - montant_comptabilise_c_h) + + ABS(montant_comptabilise_t_h - montant_comptabilise_c_h) + + ABS(montant_comptabilise_s_h - montant_comptabilise_c_h) + ELSE + 0 + END + + + CASE WHEN montant_regle_c_c <> 0 AND _ignorer_reglements IS DISTINCT FROM '1' THEN + ABS(montant_regle_s_c - montant_regle_c_c) + ELSE + 0 + END + + + CASE WHEN montant_regle_c_h <> 0 AND _ignorer_reglements IS DISTINCT FROM '1' THEN + ABS(montant_regle_s_h - montant_regle_c_h) + ELSE + 0 + END + ) <= _marge_erreur + ; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_durees_sejour_c.yaml b/db/schema2/functions/cti_reorganize_durees_sejour_c.yaml new file mode 100644 index 0000000..b641186 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_durees_sejour_c.yaml @@ -0,0 +1,46 @@ +return: text +lang: plpgsql +src: | + DECLARE result TEXT; + BEGIN + EXECUTE 'DROP TABLE IF EXISTS w_tmp;'; + EXECUTE ' + CREATE TEMP TABLE w_tmp AS + SELECT + t_durees_sejour.oid, + t_durees_sejour.code, + t_durees_sejour.texte + FROM base.t_durees_sejour + ORDER BY code;'; + EXECUTE ' + UPDATE + activite.t_durees_sejour_c + SET + code = w_tmp.code, + texte = w_tmp.texte + FROM + w_tmp + WHERE + t_durees_sejour_c.oid = w_tmp.oid + AND ( + t_durees_sejour_c.code IS DISTINCT FROM w_tmp.code + OR t_durees_sejour_c.texte IS DISTINCT FROM w_tmp.texte + );'; + EXECUTE ' + INSERT INTO activite.t_durees_sejour_c ( + oid, + code, + texte + ) + SELECT w_tmp.oid, + w_tmp.code, + w_tmp.texte + FROM w_tmp + WHERE w_tmp.oid NOT IN ( + SELECT oid + FROM activite.t_durees_sejour_c + ) + ORDER BY w_tmp.code;'; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_etages_places.yaml b/db/schema2/functions/cti_reorganize_etages_places.yaml new file mode 100644 index 0000000..b506186 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_etages_places.yaml @@ -0,0 +1,166 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + EXECUTE 'INSERT INTO activite.t_etages_historique( + etage_id, + date, + nb_lits_theoriques, + nb_lits_cp_theoriques, + nb_lits_ouverts, + nb_lits_cp_ouverts, + est_ouvert_1, + est_ouvert_2, + est_ouvert_3, + est_ouvert_4, + est_ouvert_5, + est_ouvert_6, + est_ouvert_7) + SELECT + oid, + ''20070101'', + COALESCE(nb_lits,0), + COALESCE(nb_cp,0), + COALESCE(nb_lits,0), + COALESCE(nb_cp,0), + ''1'', + ''1'', + ''1'', + ''1'', + ''1'', + ''1'', + ''1'' + FROM activite.t_etages + LEFT JOIN activite.t_etages_historique ON t_etages_historique.etage_id = t_etages.oid AND t_etages_historique.date = ''20070101'' + WHERE t_etages_historique.etage_id IS NULL'; + EXECUTE 'UPDATE activite.t_etages_historique SET + date_fin = date(COALESCE((( + SELECT min(t_etages_historique_f.date) AS min + FROM activite.t_etages_historique t_etages_historique_f + WHERE t_etages_historique_f.etage_id = t_etages_historique.etage_id AND + t_etages_historique_f.date > t_etages_historique.date)) - interval ''1 day'', ''2099-12-31''::date)) '; + EXECUTE 'UPDATE activite.t_etages + SET nb_lits = t_etages_historique.nb_lits_theoriques + FROM activite.t_etages_historique + WHERE t_etages.oid = t_etages_historique.etage_id AND + date_fin = ''20991231'''; + EXECUTE 'UPDATE activite.t_etages_historique SET + heberge_hospitalises = ''0'', + heberge_ambulatoires = ''0'', + heberge_externes = ''0'', + heberge_urgences = ''0'', + heberge_bebes = ''0'''; + + EXECUTE 'UPDATE activite.t_etages_historique SET + heberge_hospitalises = subview.heberge_hospitalises, + heberge_ambulatoires = subview.heberge_ambulatoires, + heberge_externes = subview.heberge_externes, + heberge_urgences = subview.heberge_urgences, + heberge_bebes = subview.heberge_bebes + FROM ( + SELECT + t_lieux_c.etage_id, + t_etages_historique.date, + MAX(CASE WHEN est_jour_hospitalisation = ''1'' THEN ''1'' ELSE ''0'' END) AS heberge_hospitalises, + MAX(CASE WHEN nb_ambulatoires > 0 THEN ''1'' ELSE ''0'' END) AS heberge_ambulatoires, + MAX(CASE WHEN nb_externes > 0 THEN ''1'' ELSE ''0'' END) AS heberge_externes, + MAX(CASE WHEN nb_urgences > 0 THEN ''1'' ELSE ''0'' END) AS heberge_urgences, + MAX(CASE WHEN nb_bebes > 0 THEN ''1'' ELSE ''0'' END) AS heberge_bebes + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON lieu_id = t_lieux_c.oid + JOIN activite.t_etages_historique ON t_lieux_c.etage_id = t_etages_historique.etage_id AND p_mouvements_sejour.date BETWEEN t_etages_historique.date AND t_etages_historique.date_fin + GROUP BY 1,2 + ORDER BY 1,2 + ) subview + WHERE subview.etage_id = t_etages_historique.etage_id AND subview.date = t_etages_historique.date;'; + + EXECUTE 'DROP TABLE IF EXISTS w_etages_places; + DROP TYPE IF EXISTS w_etages_places;'; + EXECUTE 'CREATE TEMP TABLE w_etages_places AS + SELECT + t_etages.oid AS etage_id, + p_calendrier.date, + t_etages_historique.nb_lits_theoriques, + t_etages_historique.nb_lits_ouverts, + 0::numeric AS nb_lits_cp_theoriques, + 0::numeric AS nb_lits_cp_ouverts, + CASE WHEN date_part(''DOW'',p_calendrier.date) = 1 THEN est_ouvert_1 + WHEN date_part(''DOW'',p_calendrier.date) = 2 THEN est_ouvert_2 + WHEN date_part(''DOW'',p_calendrier.date) = 3 THEN est_ouvert_3 + WHEN date_part(''DOW'',p_calendrier.date) = 4 THEN est_ouvert_4 + WHEN date_part(''DOW'',p_calendrier.date) = 5 THEN est_ouvert_5 + WHEN date_part(''DOW'',p_calendrier.date) = 6 THEN est_ouvert_6 + WHEN date_part(''DOW'',p_calendrier.date) = 0 THEN est_ouvert_7 + ELSE ''0'' END AS est_ouvert, + heberge_hospitalises, + heberge_ambulatoires, + heberge_externes, + heberge_urgences, + heberge_bebes + FROM activite.t_etages + JOIN activite.t_etages_historique ON t_etages.oid = t_etages_historique.etage_id + JOIN base.p_calendrier ON p_calendrier.date BETWEEN t_etages_historique.date AND t_etages_historique.date_fin AND p_calendrier.date BETWEEN ''20070101'' AND now() + interval ''1 month'' + ORDER BY 1,2;'; + EXECUTE 'INSERT INTO activite.t_etages_places( + etage_id, + date, + nb_lits_theoriques, + nb_lits_ouverts, + nb_lits_cp_theoriques, + nb_lits_cp_ouverts, + est_ouvert, + heberge_hospitalises, + heberge_ambulatoires, + heberge_externes, + heberge_urgences, + heberge_bebes) + SELECT + w_etages_places.etage_id, + w_etages_places.date, + w_etages_places.nb_lits_theoriques, + w_etages_places.nb_lits_ouverts, + w_etages_places.nb_lits_cp_theoriques, + w_etages_places.nb_lits_cp_ouverts, + w_etages_places.est_ouvert, + w_etages_places.heberge_hospitalises, + w_etages_places.heberge_ambulatoires, + w_etages_places.heberge_externes, + w_etages_places.heberge_urgences, + w_etages_places.heberge_bebes + FROM w_etages_places + LEFT JOIN activite.t_etages_places t_etages_places_deja ON w_etages_places.etage_id = t_etages_places_deja.etage_id AND w_etages_places.date = t_etages_places_deja.date + WHERE t_etages_places_deja.etage_id IS NULL; '; + EXECUTE 'UPDATE activite.t_etages_places SET + nb_lits_theoriques = w_etages_places.nb_lits_theoriques, + nb_lits_ouverts = w_etages_places.nb_lits_ouverts, + nb_lits_cp_theoriques = w_etages_places.nb_lits_cp_theoriques, + nb_lits_cp_ouverts = w_etages_places.nb_lits_cp_ouverts, + est_ouvert = w_etages_places.est_ouvert, + heberge_hospitalises = w_etages_places.heberge_hospitalises, + heberge_ambulatoires = w_etages_places.heberge_ambulatoires, + heberge_externes = w_etages_places.heberge_externes, + heberge_urgences = w_etages_places.heberge_urgences, + heberge_bebes = w_etages_places.heberge_bebes + FROM w_etages_places + WHERE w_etages_places.etage_id = t_etages_places.etage_id AND w_etages_places.date = t_etages_places.date AND + ( + t_etages_places.nb_lits_theoriques IS DISTINCT FROM w_etages_places.nb_lits_theoriques OR + t_etages_places.nb_lits_ouverts IS DISTINCT FROM w_etages_places.nb_lits_ouverts OR + t_etages_places.nb_lits_cp_theoriques IS DISTINCT FROM w_etages_places.nb_lits_cp_theoriques OR + t_etages_places.nb_lits_cp_ouverts IS DISTINCT FROM w_etages_places.nb_lits_cp_ouverts OR + t_etages_places.est_ouvert IS DISTINCT FROM w_etages_places.est_ouvert OR + t_etages_places.heberge_hospitalises IS DISTINCT FROM w_etages_places.heberge_hospitalises OR + t_etages_places.heberge_ambulatoires IS DISTINCT FROM w_etages_places.heberge_ambulatoires OR + t_etages_places.heberge_externes IS DISTINCT FROM w_etages_places.heberge_externes OR + t_etages_places.heberge_urgences IS DISTINCT FROM w_etages_places.heberge_urgences OR + t_etages_places.heberge_bebes IS DISTINCT FROM w_etages_places.heberge_bebes + ); + + '; + EXECUTE 'DROP TABLE IF EXISTS w_etages_places; + DROP TYPE IF EXISTS w_etages_places;'; + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_finess_c.yaml b/db/schema2/functions/cti_reorganize_finess_c.yaml new file mode 100644 index 0000000..9c38c63 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_finess_c.yaml @@ -0,0 +1,177 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + + -- Recopie listes de FINESS de activité vers base + IF NOT EXISTS ( + SELECT t_listes.code + FROM base.t_listes + ) AND + EXISTS + (SELECT t_listes.code + FROM activite.t_listes + JOIN activite.t_listes_tables ON t_listes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'FINESS' + ) + THEN + DROP TABLE IF EXISTS w_listes_finess; + CREATE TEMP TABLE w_listes_finess AS + SELECT t_listes.* + FROM activite.t_listes + JOIN activite.t_listes_tables ON t_listes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'FINESS' AND + (SELECT count(*) FROM base.t_listes) = 0 + ; + + INSERT INTO base.t_listes( + chapitre, + code, + contenu_by_code, + contenu_non_replicable_ailleurs, + est_partagee_modification, + exclude_code, + include_code, + is_cti, + oid, + show_omit, + table_id, + texte, + utilisateur_createur) + SELECT + w_listes_finess.chapitre, + w_listes_finess.code, + w_listes_finess.contenu_by_code, + w_listes_finess.contenu_non_replicable_ailleurs, + w_listes_finess.est_partagee_modification, + w_listes_finess.exclude_code, + w_listes_finess.include_code, + w_listes_finess.is_cti, + w_listes_finess.oid, + w_listes_finess.show_omit, + t_listes_tables.oid AS table_id, + w_listes_finess.texte, + w_listes_finess.utilisateur_createur + FROM w_listes_finess + JOIN base.t_listes_tables ON t_listes_tables.code = 'FINESS' + ; + + INSERT INTO base.t_listes_contenu( + liste_id, + to_id) + SELECT liste_id, + to_id + FROM activite.t_listes_contenu + WHERE liste_id IN (SELECT oid FROM w_listes_finess) + ; + + END IF; + + -- Recopie classes de FINESS de activité vers base + IF NOT EXISTS ( + SELECT t_classes.code + FROM base.t_classes + ) AND + EXISTS + (SELECT t_classes.code + FROM activite.t_classes + JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'FINESS' + ) + THEN + DROP TABLE IF EXISTS w_classes_finess; + CREATE TEMP TABLE w_classes_finess AS + SELECT t_classes.* + FROM activite.t_classes + JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'FINESS' AND + (SELECT count(*) FROM base.t_classes) = 0 + ; + + + INSERT INTO base.t_classes( + oid, + sequence, + code, + contenu_by_code, + contenu_non_replicable_ailleurs, + is_cti, + table_id, + texte) + SELECT + w_classes_finess.oid, + w_classes_finess.sequence, + w_classes_finess.code, + w_classes_finess.contenu_by_code, + w_classes_finess.contenu_non_replicable_ailleurs, + w_classes_finess.is_cti, + t_listes_tables.oid AS table_id, + w_classes_finess.texte + FROM w_classes_finess + JOIN base.t_listes_tables ON t_listes_tables.code = 'FINESS' + ; + + INSERT INTO base.t_classes_sections( + oid, + classe_id, + code, + condition, + exclude_code, + include_code, + texte) + SELECT oid, + classe_id, + code, + condition, + exclude_code, + include_code, + texte + FROM activite.t_classes_sections + WHERE classe_id IN (SELECT oid FROM w_classes_finess) + ; + + INSERT INTO base.t_classes_sections_elements(section_id, to_id) + SELECT t_classes_sections_elements.section_id, t_classes_sections_elements.to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON section_id = t_classes_sections.oid + WHERE t_classes_sections.classe_id IN (SELECT oid FROM w_classes_finess) + ; + + PERFORM base.cti_update_classes('base', 't_finess', 'FINESS',''); + END IF; + + EXECUTE 'UPDATE activite.t_finess_c SET + code = t_finess.code, + texte = t_finess.texte, + texte_court = t_finess.texte_court, + type_etablissement = t_finess.type_etablissement, + secondaire = t_finess.secondaire, + section_id = t_finess.section_id, + section_code = t_finess.section_code, + section_texte = t_finess.section_texte + FROM base.t_finess + WHERE t_finess.oid = t_finess_c.oid AND + ( + t_finess_c.code IS DISTINCT FROM t_finess.code OR + t_finess_c.texte IS DISTINCT FROM t_finess.texte OR + t_finess_c.texte_court IS DISTINCT FROM t_finess.texte_court OR + t_finess_c.type_etablissement IS DISTINCT FROM t_finess.type_etablissement OR + t_finess_c.secondaire IS DISTINCT FROM t_finess.secondaire OR + t_finess_c.section_id IS DISTINCT FROM t_finess.section_id OR + t_finess_c.section_code IS DISTINCT FROM t_finess.section_code OR + t_finess_c.section_texte IS DISTINCT FROM t_finess.section_texte + )'; + EXECUTE 'INSERT INTO activite.t_finess_c(oid, code, texte, texte_court, type_etablissement, section_id, section_code, section_texte) + SELECT 0, ''000000000'', ''Non renseigné'', ''Non renseigné'', ''0'', NULL, NULL, NULL + WHERE 0 != ALL(ARRAY(SELECT oid FROM activite.t_finess_c)::bigint[])'; + EXECUTE 'INSERT INTO activite.t_finess_c(oid, code, texte, texte_court, type_etablissement, secondaire, section_id, section_code, section_texte) + SELECT oid, code, texte, texte_court, type_etablissement, secondaire, section_id, section_code, section_texte + FROM base.t_finess + WHERE t_finess.oid NOT IN (SELECT oid FROM activite.t_finess_c) + ORDER BY t_finess.oid;'; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_forme_activite.yaml b/db/schema2/functions/cti_reorganize_forme_activite.yaml new file mode 100644 index 0000000..c6ce67f --- /dev/null +++ b/db/schema2/functions/cti_reorganize_forme_activite.yaml @@ -0,0 +1,1480 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + _module_pmsimco TEXT; + BEGIN + + RAISE NOTICE '%' , 'Initialisation formes d''activite'; + -- Contenu table + INSERT INTO activite.t_forme_activite (oid, code, texte, texte_court) + SELECT 0, '**', 'Non renseignée', 'Non renseignée' + WHERE 0 NOT IN (SELECT oid FROM activite.t_forme_activite); + + + -- MCO + INSERT INTO activite.t_forme_activite (code, texte, texte_court) + SELECT code, texte, texte + FROM ( + SELECT '111' AS code, 'Hospitalisation complète MCO Médecine' AS texte + UNION + SELECT '112' AS code, 'Hospitalisation complète MCO Chirurgie' AS texte + UNION + SELECT '113' AS code, 'Hospitalisation complète MCO Obstétrique' AS texte + UNION + SELECT '114' AS code, 'Hospitalisation complète MCO Esthétique' AS texte + UNION + SELECT '117' AS code, 'Hospitalisation complète MCO A préciser' AS texte + UNION + SELECT '118' AS code, 'Hospitalisation complète MCO A préciser' AS texte + UNION + SELECT '119' AS code, 'Hospitalisation complète MCO Autre' AS texte + UNION + SELECT '121' AS code, 'Hospitalisation de jour MCO Médecine' AS texte + UNION + SELECT '122' AS code, 'Hospitalisation de jour MCO Chirurgie' AS texte + UNION + SELECT '123' AS code, 'Hospitalisation de jour MCO Obstétrique' AS texte + UNION + SELECT '124' AS code, 'Hospitalisation de jour MCO Esthétique' AS texte + UNION + SELECT '127' AS code, 'Hospitalisation de jour MCO A préciser' AS texte + UNION + SELECT '128' AS code, 'Hospitalisation de jour MCO A préciser' AS texte + UNION + SELECT '129' AS code, 'Hospitalisation de jour MCO Autre' AS texte + UNION + SELECT '131' AS code, 'Séances de dialyse' AS texte + UNION + SELECT '132' AS code, 'Séances de chimiothérapie' AS texte + UNION + SELECT '133' AS code, 'Séances de transfusion' AS texte + UNION + SELECT '139' AS code, 'Autres séances' AS texte + UNION + SELECT '211' AS code, 'Hospitalisation complète SSR Soins de Suite Médicalisés' AS texte + UNION + SELECT '212' AS code, 'Hospitalisation complète SSR Rééducation Fonctionnelle' AS texte + UNION + SELECT '217' AS code, 'Hospitalisation complète SSR A préciser' AS texte + UNION + SELECT '218' AS code, 'Hospitalisation complète SSR A préciser' AS texte + UNION + SELECT '219' AS code, 'Hospitalisation complète SSR Autre' AS texte + UNION + SELECT '221' AS code, 'Hospitalisation de jour SSR Soins de Suite Médicalisés' AS texte + UNION + SELECT '222' AS code, 'Hospitalisation de jour SSR Rééducation Fonctionnelle' AS texte + UNION + SELECT '227' AS code, 'Hospitalisation de jour SSR A préciser' AS texte + UNION + SELECT '228' AS code, 'Hospitalisation de jour SSR A préciser' AS texte + UNION + SELECT '229' AS code, 'Hospitalisation de jour SSR Autre' AS texte + UNION + SELECT '317' AS code, 'Hospitalisation complète PSY A préciser' AS texte + UNION + SELECT '318' AS code, 'Hospitalisation complète PSY A préciser' AS texte + UNION + SELECT '319' AS code, 'Hospitalisation complète PSY Autre' AS texte + UNION + SELECT '327' AS code, 'Hospitalisation de jour PSY A préciser' AS texte + UNION + SELECT '328' AS code, 'Hospitalisation de jour PSY A préciser' AS texte + UNION + SELECT '329' AS code, 'Hospitalisation de jour PSY Autre' AS texte + UNION + SELECT '401' AS code, 'Hospitalisation à Domicile' AS texte + UNION + SELECT '501' AS code, 'EHPAD' AS texte + UNION + SELECT '502' AS code, 'USLD' AS texte + UNION + SELECT '503' AS code, 'Foyer de vie' AS texte + UNION + SELECT '701' AS code, 'Activité SE' AS texte + UNION + SELECT '702' AS code, 'Urgences' AS texte + UNION + SELECT '709' AS code, 'Activité externe' AS texte + UNION + SELECT '999' AS code, 'Autres formes d''activité' AS texte + ) subview + WHERE code NOT IN (SELECT code FROM activite.t_forme_activite WHERE code IS NOT NULL) + ORDER BY 1 + ; + + -- Si consolidation, pas de règle + IF EXISTS (SELECT * FROM activite.t_forme_activite_rule WHERE code = '*NORULE_CONSO') THEN + return 'Pas de règle en consolidation'; + END IF; + + + DELETE FROM activite.t_forme_activite_rule WHERE code LIKE 'CTI%' ; + DELETE FROM activite.t_forme_activite_rule WHERE COALESCE(forme_activite_id,0) = 0 OR + COALESCE(priorite,0) = 0; + + RAISE NOTICE '%' , 'Generation regles CTI'; + + DROP SEQUENCE IF EXISTS w_priorite; + CREATE TEMP SEQUENCE w_priorite; + + + + -- Associations possibles + + -- Identification des codes utilisés + DROP TABLE IF EXISTS cti_rfar_w_forme_activite_used; + CREATE TEMP TABLE cti_rfar_w_forme_activite_used AS + SELECT service_facturation_id, + t_services_facturation.code AS service_facturation_code, + t_services_facturation.texte AS service_facturation_texte, + t_services_facturation.dmt_id, + t_services_facturation.mode_traitement_id, + t_services_facturation.type_t2a, + p_sejours.type_sejour, + ''::text AS forme_activite_code + FROM activite.p_mouvements_sejour + JOIN activite.p_sejours ON p_mouvements_sejour.no_sejour = p_sejours.no_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_services_facturation ON t_lieux.service_facturation_id = t_services_facturation.oid + WHERE t_lieux.service_facturation_id <> 0 + GROUP BY 1,2,3,4,5,6,7 + ; + + INSERT INTO cti_rfar_w_forme_activite_used + SELECT 0::bigint AS service_facturation_id, + ''::text AS service_facturation_code, + ''::text AS service_facturation_texte, + 0::bigint AS dmt_id, + 0::bigint AS mode_traitement_id, + ''::text AS type_t2a, + type_sejour, + ''::text AS forme_activite_code + FROM cti_rfar_w_forme_activite_used + GROUP BY type_sejour + ; + + + + -- Valeurs par défaut par service + + + UPDATE cti_rfar_w_forme_activite_used + SET forme_activite_code = + CASE + WHEN service_facturation_id = 0 AND type_sejour = '1' THEN '119' + WHEN service_facturation_id = 0 AND type_sejour = '2' THEN '129' + WHEN service_facturation_id = 0 AND type_sejour = '3' THEN '709' + WHEN service_facturation_id = 0 AND type_sejour = '5' THEN '139' + WHEN service_facturation_id = 0 AND type_sejour = '6' THEN '113' + WHEN service_facturation_id = 0 AND type_sejour = '9' THEN '999' + + WHEN service_facturation_texte iLIKE '%esthetique%' AND type_sejour = '2' THEN '124' + WHEN service_facturation_texte iLIKE '%esthetique%' THEN '114' + WHEN service_facturation_texte iLIKE '%esthétique%' AND type_sejour = '2' THEN '124' + WHEN service_facturation_texte iLIKE '%esthétique%' THEN '114' + + WHEN t_dmt.code = '958' AND type_sejour = '3' THEN '701' + WHEN t_dmt.code = '924' THEN '501' + WHEN t_dmt.code = '657' THEN '501' + WHEN t_dmt.code = '273' THEN '502' + WHEN t_dmt.code = '936' THEN '503' + WHEN service_facturation_texte LIKE 'FSE%' AND type_sejour = '3' THEN '701' + WHEN service_facturation_texte LIKE 'SEH%' AND type_sejour = '3' THEN '701' + + WHEN t_modes_traitement.code = '10' THEN '702' + + WHEN t_dmt.code IN ('552','553','554','555','556','723','796','797','798') THEN '131' + WHEN t_modes_traitement.code = '19' AND t_dmt.code = '302' THEN '132' + + WHEN t_modes_traitement.code = '03' AND type_t2a = '2' THEN '219' + WHEN t_modes_traitement.code = '03' AND t_dmt.texte ILIKE '%SSR%' THEN '219' + WHEN t_modes_traitement.code = '04' AND type_t2a = '2' THEN '229' + WHEN t_modes_traitement.code = '04' AND t_dmt.texte ILIKE '%SSR%' THEN '229' + WHEN t_modes_traitement.code = '19' AND type_t2a = '2' THEN '229' + WHEN t_modes_traitement.code = '19' AND t_dmt.texte ILIKE '%SSR%' THEN '229' + WHEN t_modes_traitement.code = '22' AND type_t2a = '2' THEN '229' + WHEN t_modes_traitement.code = '22' AND t_dmt.texte ILIKE '%SSR%' THEN '229' + WHEN t_modes_traitement.code = '03' AND type_t2a = '3' THEN '319' + WHEN t_modes_traitement.code = '03' AND t_dmt.texte ILIKE '%PSY%' THEN '319' + WHEN t_modes_traitement.code = '04' AND type_t2a = '3' THEN '329' + WHEN t_modes_traitement.code = '04' AND t_dmt.texte ILIKE '%PSY%' THEN '329' + WHEN t_modes_traitement.code = '19' AND type_t2a = '3' THEN '329' + WHEN t_modes_traitement.code = '19' AND t_dmt.texte ILIKE '%PSY%' THEN '329' + WHEN t_modes_traitement.code = '22' AND type_t2a = '3' THEN '329' + WHEN t_modes_traitement.code = '22' AND t_dmt.texte ILIKE '%PSY%' THEN '329' + WHEN type_t2a = '4' THEN '401' + WHEN service_facturation_texte iLIKE '%EHPAD%' THEN '501' + WHEN service_facturation_texte iLIKE '%USLD%' THEN '502' + WHEN service_facturation_texte iLIKE '%FOVAH%' THEN '503' + WHEN t_modes_traitement.code = '06' THEN '401' + + ELSE '' + END + FROM base.t_modes_traitement,base.t_dmt + WHERE mode_traitement_id = t_modes_traitement.oid AND + dmt_id = t_dmt.oid + ; + + UPDATE cti_rfar_w_forme_activite_used + SET forme_activite_code = '212' + WHERE forme_activite_code = '219' AND + ( + service_facturation_code LIKE 'REE%' OR + service_facturation_texte ILIKE '%rééducation%' OR + service_facturation_texte ILIKE '%reeducation%' + ) + ; + + UPDATE cti_rfar_w_forme_activite_used + SET forme_activite_code = '222' + WHERE forme_activite_code = '229' AND + ( + service_facturation_code LIKE 'REE%' OR + service_facturation_texte ILIKE '%rééducation%' OR + service_facturation_texte ILIKE '%reeducation%' + ) + ; + + -- Les premiers 1000 oid sont réservés à CTI + PERFORM setval('activite.s_forme_activite_rule', (SELECT GREATEST(COALESCE(max(oid),0),1000) FROM activite.t_forme_activite_rule), true); + + UPDATE activite.t_forme_activite_rule + SET oid = nextval('activite.s_forme_activite_rule'::regclass) + WHERE oid < 1000; + + + PERFORM setval('w_priorite', 70000, true); + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_service) + SELECT code, + texte, + forme_activite_id, + nextval('w_priorite'::regclass), + liste_type_sejour, + liste_service + FROM + ( + SELECT 'CTI#' || service_facturation_code || '#' || type_sejour AS code, + 'Valeur par défaut CTI ' || + service_facturation_texte || '(' || service_facturation_code || ')' || ' - ' || + CASE type_sejour + WHEN '1' THEN 'Hospitalisés' + WHEN '2' THEN 'Ambulatoires' + WHEN '3' THEn 'Externes' + WHEN '5' THEN 'Séances' + WHEN '6' THEN 'Bébés' + WHEN '9' THEN 'Séjours fictifs' + END AS texte + , + t_forme_activite.oid AS forme_activite_id, + type_sejour AS liste_type_sejour, + service_facturation_code AS liste_service + FROM cti_rfar_w_forme_activite_used + JOIN activite.t_forme_activite ON t_forme_activite.code = forme_activite_code AND forme_activite_code <> '' + WHERE service_facturation_id <> 0 + ORDER BY 1 + ) subview + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_service_entree) + SELECT code, + texte, + forme_activite_id, + nextval('w_priorite'::regclass), + liste_type_sejour, + liste_service + FROM + ( + SELECT 'CTI#' || service_facturation_code || '#' || type_sejour AS code, + 'Valeur par défaut CTI ' || + service_facturation_texte || '(' || service_facturation_code || ')' || ' - ' || + CASE type_sejour + WHEN '1' THEN 'Hospitalisés' + WHEN '2' THEN 'Ambulatoires' + WHEN '3' THEn 'Externes' + WHEN '5' THEN 'Séances' + WHEN '6' THEN 'Bébés' + WHEN '9' THEN 'Séjours fictifs' + END AS texte + , + t_forme_activite.oid AS forme_activite_id, + type_sejour AS liste_type_sejour, + service_facturation_code AS liste_service + FROM cti_rfar_w_forme_activite_used + JOIN activite.t_forme_activite ON t_forme_activite.code = forme_activite_code AND forme_activite_code <> '' + WHERE service_facturation_id <> 0 + ORDER BY 1 + ) subview + ; + + PERFORM setval('w_priorite', 99000, true); + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour) + SELECT code, + texte, + forme_activite_id, + nextval('w_priorite'::regclass), + liste_type_sejour + FROM + ( + SELECT 'CTI#'||type_sejour AS code, + 'Valeur par défaut CTI ' || + CASE type_sejour + WHEN '1' THEN 'Hospitalisés' + WHEN '2' THEN 'Ambulatoires' + WHEN '3' THEn 'Externes' + WHEN '5' THEN 'Séances' + WHEN '6' THEN 'Bébés' + WHEN '9' THEN 'Séjours fictifs' + END AS texte + , + t_forme_activite.oid AS forme_activite_id, + type_sejour AS liste_type_sejour + FROM cti_rfar_w_forme_activite_used + JOIN activite.t_forme_activite ON t_forme_activite.code = forme_activite_code AND forme_activite_code <> '' + WHERE service_facturation_id = 0 + ORDER BY 1 + ) subview + ; + + + + -- Spécifique selon les GHM + PERFORM setval('w_priorite', 10000, true); + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM1415#1', + 'Valeur par défaut CTI CMD 14 et 15 - Hospitalisés', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '1', + '14* 15*' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '113' + ORDER BY 1 + ; + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM1415#2', + 'Valeur par défaut CTI CMD 14 et 15 - Ambulatoires', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '2', + '14* 15*' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '123' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM09Z02#1', + 'Valeur par défaut CTI GHM 09Z02, 23Z03 - Hospitalisés', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '1', + '09Z02* 23Z03*' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '114' + ORDER BY 1 + ; + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM09Z02#2', + 'Valeur par défaut CTI GHM 09Z02, 23Z03 - Ambulatoires', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '2', + '09Z02* 23Z03*' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '124' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM28DIA', + 'Valeur par défaut CTI GHM Dialyse - Séances', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '5', + '28Z01Z 28Z02Z 28Z03Z 28Z04Z 28Z05Z 28Z06Z' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '131' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM28CHM', + 'Valeur par défaut CTI GHM Chimio - Séances', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '5', + '28Z07Z 28Z17Z' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '132' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM28TRF', + 'Valeur par défaut CTI GHM Dialyse - Séances', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '5', + '28Z14Z' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '133' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM28AUT', + 'Valeur par défaut CTI - Autres séances', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '5', + '28*' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '139' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM28CHM1', + 'Valeur par défaut CTI GHM Chimio - Hospit = Médecine', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '1', + '28*' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '111' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#GHM28CHM1', + 'Valeur par défaut CTI GHM Chimio - Ambu = Médecine', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '2', + '28*' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '121' + ORDER BY 1 + ; + + -- Spécifique selon les classes de GHM + PERFORM setval('w_priorite', 50100, true); + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#CASC#1', + 'Valeur par défaut CTI CAS C - Hospitalisés', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '1', + '[CAS:C]' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '112' + ORDER BY 1 + ; + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#CASC#1', + 'Valeur par défaut CTI CAS C - Ambulatoires', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '2', + '[CAS:C]' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '122' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#CASCKX#1', + 'Valeur par défaut CTI CAS KX - Hospitalisés', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '1', + '[CAS:K] [CAS:X]' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '111' + ORDER BY 1 + ; + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_ghm) + SELECT 'CTI#CASKX#1', + 'Valeur par défaut CTI CAS KX - Ambulatoires', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '2', + '[CAS:K] [CAS:X]' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '121' + ORDER BY 1 + ; + + + -- Spécifique selon les rubriques + PERFORM setval('w_priorite', 50200, true); + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_prestation) + SELECT 'CTI#SEH#3', + 'Valeur par défaut CTI SEh - Externes', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '3', + 'SE1 SE2 SE3 SE4 SE5 SE6 SE7' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '701' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_prestation) + SELECT 'CTI#GHS#1', + 'Valeur par défaut CTI GHS - Hospitalisés', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '1', + 'GHS' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '119' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_prestation) + SELECT 'CTI#GHS#2', + 'Valeur par défaut CTI GHS - Ambulatoires', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '2', + 'GHS' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '129' + ORDER BY 1 + ; + + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite, liste_type_sejour, liste_prestation) + SELECT 'CTI#ATU#3', + 'Valeur par défaut CTI ATU - Externes', + t_forme_activite.oid, + nextval('w_priorite'::regclass), + '3', + 'ATU FPU FPV FPX FPL FPM' + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '702' + ORDER BY 1 + ; + + -- Autres + INSERT INTO activite.t_forme_activite_rule (code, texte, forme_activite_id, priorite) + SELECT 'CTI#999', + 'Autres formes', + t_forme_activite.oid, + 99999 + FROM activite.t_forme_activite + WHERE t_forme_activite.code = '999' + ORDER BY 1 + ; + + + PERFORM setval('activite.s_forme_activite_rule', (SELECT GREATEST(COALESCE(max(oid),0),1000) FROM activite.t_forme_activite_rule), true); + + UPDATE activite.t_forme_activite_rule + SET oid = nextval('activite.s_forme_activite_rule'::regclass) + WHERE oid < 1000; + + PERFORM setval('activite.s_forme_activite_rule', 1, true); + + + + RAISE NOTICE '%' , 'Application des regles'; + + -- pmsi mco ? + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + _module_pmsimco = '1'; + RAISE NOTICE '%' , 'Application des regles. Avec PMSI MCO'; + ELSE + _module_pmsimco = '0'; + END IF; + + + -- Sejours et RSS à Traiter + + RAISE NOTICE '%' , 'Application des regles. Identification des sejours'; + DROP SEQUENCE IF EXISTS w_sejours_rss_sequence; + CREATE SEQUENCE w_sejours_rss_sequence; + DROP TABLE IF EXISTS w_sejours_rss; + + IF _module_pmsimco = '1' THEN + -- si pmsi mco + CREATE TEMP TABLE w_sejours_rss AS + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + COALESCE(p_rss.oid,0) AS rss_id, + diagnostic_principal_id, + diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS prestation_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + p_rss.ghm_id AS ghm_pmsi_id, + p_sejours.ghm_id AS ghm_activite_id, + COALESCE(medecin_rss_id,0) AS medecin_rss_id, + medecin_sejour_id, + COALESCE(t_medecins_pmsi.specialite_id,0) AS specialite_rss_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + p_sejours.type_sejour, + t_lieux.unite_fonctionnelle_id, + t_lieux.service_facturation_id, + t_lits.etage_id, + t_lieux.unite_fonctionnelle_id AS unite_fonctionnelle_entree_id, + t_lieux.service_facturation_id AS service_facturation_entree_id, + t_lits.etage_id AS etage_entree_id, + t_lieux.activite_id, + 0::bigint AS forme_activite_id, + 0::bigint AS forme_activite_priorite + FROM activite.p_sejours + JOIN activite.t_lieux ON lieu_sortie_id = t_lieux.oid + JOIN activite.t_lits ON t_lieux.lit_id = t_lits.oid + LEFT JOIN pmsi.p_rss ON no_sejour_administratif = no_sejour AND p_sejours.date_sortie = p_rss.date_sortie AND p_rss.etat = '' + LEFT JOIN pmsi.t_medecins t_medecins_pmsi ON medecin_rss_id = t_medecins_pmsi.oid + LEFT JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid + LEFT JOIN base.t_finess ON p_sejours.finess = t_finess.code; + INSERT INTO w_sejours_rss + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + 0 AS sejour_id, + '' AS no_sejour, + p_rss.oid AS rss_id, + diagnostic_principal_id, + diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS prestation_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + p_rss.ghm_id AS ghm_pmsi_id, + 0 AS ghm_activite_id, + medecin_rss_id, + 0::bigint AS medecin_sejour_id, + COALESCE(t_medecins_pmsi.specialite_id,0) AS specialite_rss_id, + 0::bigint AS specialite_sejour_id, + ''::text AS type_sejour, + 0::bigint AS unite_fonctionnelle_id, + 0::bigint AS service_facturation_id, + 0::bigint AS etage_id, + 0::bigint AS unite_fonctionnelle_entree_id, + 0::bigint AS service_facturation_entree_id, + 0::bigint AS etage_entree_id, + 0::bigint AS activite_id, + 0::bigint AS forme_activite_id, + 0::bigint AS forme_activite_priorite + FROM pmsi.p_rss + LEFT JOIN pmsi.t_medecins t_medecins_pmsi ON medecin_rss_id = t_medecins_pmsi.oid + LEFT JOIN base.t_finess ON p_rss.finess = t_finess.code + WHERE date_sortie >= '20100101' AND p_rss.oid NOT IN (SELECt rss_id FROM w_sejours_rss); + UPDATE w_sejours_rss SET + medecin_rss_id = t_medecins.oid, + specialite_rss_id = t_medecins.specialite_id + FROM activite.t_medecins_administratifs_c + JOIN pmsi.t_medecins ON t_medecins_administratifs_c.adm_code = t_medecins.code + WHERE medecin_sejour_id = t_medecins_administratifs_c.oid AND + t_medecins.oid <> 0 AND + (t_medecins.oid IS DISTINCT FROM medecin_rss_id OR + specialite_rss_id IS DISTINCT FROM t_medecins.specialite_id) + ; + ELSE + -- si pas pmsi mco + CREATE TEMP TABLE w_sejours_rss AS + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + 0 AS rss_id, + 0::bigint AS diagnostic_principal_id, + 0::bigint AS diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS prestation_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + 0::bigint AS ghm_pmsi_id, + p_sejours.ghm_id AS ghm_activite_id, + 0 AS medecin_rss_id, + medecin_sejour_id, + 0 AS specialite_rss_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + p_sejours.type_sejour, + t_lieux.unite_fonctionnelle_id, + t_lieux.service_facturation_id, + t_lits.etage_id, + t_lieux.unite_fonctionnelle_id AS unite_fonctionnelle_entree_id, + t_lieux.service_facturation_id AS service_facturation_entree_id, + t_lits.etage_id AS etage_entree_id, + t_lieux.activite_id, + 0::bigint AS forme_activite_id, + 0::bigint AS forme_activite_priorite + FROM activite.p_sejours + JOIN activite.t_lieux ON lieu_sortie_id = t_lieux.oid + JOIN activite.t_lits ON t_lieux.lit_id = t_lits.oid + LEFT JOIN base.t_finess ON p_sejours.finess = t_finess.code + LEFT JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid; + END IF; + + -- Unites d'entrées + UPDATE w_sejours_rss SET + unite_fonctionnelle_entree_id = t_lieux.unite_fonctionnelle_id, + service_facturation_entree_id = t_lieux.service_facturation_id, + etage_entree_id = t_lits.etage_id + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON p_mouvements_sejour.lieu_id = t_lieux.oid + JOIN activite.t_lits ON t_lieux.lit_id = t_lits.oid + WHERE w_sejours_rss.no_sejour = p_mouvements_sejour.no_sejour AND nb_entrees_directes = 1 AND + ( + t_lieux.unite_fonctionnelle_id <> unite_fonctionnelle_entree_id OR + t_lieux.service_facturation_id <> service_facturation_entree_id OR + t_lits.etage_id <> etage_entree_id + ) + ; + + + -- GHM sur services non MCO + -- Verrouillé pour l'instant (on verra par la suite) + -- UPDATE w_sejours_rss SET + -- ghm_pmsi_id = 0, + -- ghm_activite_id = 0 + -- FROM activite.t_services_facturation + -- WHERE service_facturation_id = t_services_facturation .oid AND + -- type_t2a <> '1' AND + -- service_facturation_id <> 0 AND + -- (ghm_pmsi_id > 0 OR + -- ghm_activite_id > 0) + -- ; + + -- + UPDATE w_sejours_rss SET + medecin_rss_id = 0, + specialite_rss_id = 0 + WHERE medecin_sejour_id <> 0; + UPDATE w_sejours_rss + SET finess_id = (SELECT MAX(finess_id) FROM w_sejours_rss WHERE finess_id <> 0) + WHERE finess_id = 0 AND (SELECT MAX(finess_id) FROM w_sejours_rss WHERE finess_id <> 0) <> 0; + UPDATE w_sejours_rss + SET finess_id = (SELECT MAX(oid) FROM base.t_finess) + WHERE finess_id = 0; + CREATE INDEX w_sejours_rss_i0 ON w_sejours_rss USING btree (oid); + CREATE INDEX w_sejours_rss_i1 ON w_sejours_rss USING btree (rss_id); + CREATE INDEX w_sejours_rss_i2 ON w_sejours_rss USING btree (sejour_id); + CREATE INDEX w_sejours_rss_i3 ON w_sejours_rss USING btree (no_sejour); + + -- Traduction des règles en oid + RAISE NOTICE '%' , 'Application des regles. Traduction en oid'; + DROP TABLE IF EXISTS w_forme_activite_rule; + CREATE TEMP TABLE w_forme_activite_rule AS + SELECT + t_forme_activite_rule.oid, + forme_activite_id, + CASE WHEN priorite <> 0 THEN priorite WHEN liste_diagnostic_principal <> '' THEN 90000 ELSE 999999 END AS priorite, + CASE WHEN liste_finess <> '' THEN '1' ELSE '0' END AS a_liste_finess, + string_to_array(translate(liste_finess,'*,','% '),' ') AS liste_finess, + NULL::bigint[] AS liste_finess_id , + CASE WHEN liste_diagnostic_principal <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_principal, + string_to_array(translate(liste_diagnostic_principal,'*,','% '),' ') AS liste_diagnostic_principal, + NULL::bigint[] AS liste_diagnostic_principal_id , + CASE WHEN liste_diagnostic_relie <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_relie, + string_to_array(translate(liste_diagnostic_relie,'*,','% '),' ') AS liste_diagnostic_relie, + NULL::bigint[] AS liste_diagnostic_relie_id , + CASE WHEN liste_diagnostic_associe <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_associe, + string_to_array(translate(liste_diagnostic_associe,'*,','% '),' ') AS liste_diagnostic_associe, + NULL::bigint[] AS liste_diagnostic_associe_id , + CASE WHEN liste_acte <> '' THEN '1' ELSE '0' END AS a_liste_acte, + string_to_array(translate(liste_acte,'*,','% '),' ') AS liste_acte, + NULL::bigint[] AS liste_acte_pmsi_id , + NULL::bigint[] AS liste_acte_base_id , + CASE WHEN liste_ghm <> '' THEN '1' ELSE '0' END AS a_liste_ghm, + string_to_array(translate(liste_ghm,'*,','% '),' ') AS liste_ghm, + NULL::bigint[] AS liste_ghm_pmsi_id, + NULL::bigint[] AS liste_ghm_activite_id, + liste_ghm AS liste_ghm_origine, + CASE WHEN liste_sauf_ghm <> '' THEN '1' ELSE '0' END AS a_liste_sauf_ghm, + string_to_array(translate(liste_sauf_ghm,'*,','% '),' ') AS liste_sauf_ghm, + NULL::bigint[] AS liste_sauf_ghm_pmsi_id , + NULL::bigint[] AS liste_sauf_ghm_activite_id , + liste_sauf_ghm AS liste_sauf_ghm_origine, + CASE WHEN liste_type_sejour <> '' THEN '1' ELSE '0' END AS a_liste_type_sejour, + string_to_array(translate(liste_type_sejour,'*,','% '),' ') AS liste_type_sejour, + NULL::text[] AS liste_type_sejour_id , + CASE WHEN liste_unite_fonctionnelle <> '' THEN '1' ELSE '0' END AS a_liste_unite_fonctionnelle, + string_to_array(translate(liste_unite_fonctionnelle,'*,','% '),' ') AS liste_unite_fonctionnelle, + NULL::bigint[] AS liste_unite_fonctionnelle_id , + CASE WHEN liste_service <> '' THEN '1' ELSE '0' END AS a_liste_service, + string_to_array(translate(liste_service,'*,','% '),' ') AS liste_service, + NULL::bigint[] AS liste_service_id , + CASE WHEN liste_etage <> '' THEN '1' ELSE '0' END AS a_liste_etage, + string_to_array(translate(liste_etage,'*,','% '),' ') AS liste_etage, + NULL::bigint[] AS liste_etage_id , + CASE WHEN liste_unite_fonctionnelle_entree <> '' THEN '1' ELSE '0' END AS a_liste_unite_fonctionnelle_entree, + string_to_array(translate(liste_unite_fonctionnelle_entree,'*,','% '),' ') AS liste_unite_fonctionnelle_entree, + NULL::bigint[] AS liste_unite_fonctionnelle_entree_id , + CASE WHEN liste_service_entree <> '' THEN '1' ELSE '0' END AS a_liste_service_entree, + string_to_array(translate(liste_service_entree,'*,','% '),' ') AS liste_service_entree, + NULL::bigint[] AS liste_service_entree_id , + CASE WHEN liste_etage_entree <> '' THEN '1' ELSE '0' END AS a_liste_etage_entree, + string_to_array(translate(liste_etage_entree,'*,','% '),' ') AS liste_etage_entree, + NULL::bigint[] AS liste_etage_entree_id , + NULL::bigint[] AS liste_activite_id , + CASE WHEN liste_medecin <> '' THEN '1' ELSE '0' END AS a_liste_medecin, + string_to_array(CASE WHEN liste_medecin NOT LIKE '%**%' THEN translate(liste_medecin,'*,','% ') ELSE liste_medecin END,' ') AS liste_medecin, + NULL::bigint[] AS liste_medecin_pmsi_id , + NULL::bigint[] AS liste_medecin_activite_id , + CASE WHEN liste_specialite <> '' THEN '1' ELSE '0' END AS a_liste_specialite, + string_to_array(translate(liste_specialite,'*,','% '),' ') AS liste_specialite, + NULL::bigint[] AS liste_specialite_pmsi_id , + NULL::bigint[] AS liste_specialite_activite_id , + CASE WHEN liste_rubrique <> '' THEN '1' ELSE '0' END AS a_liste_rubrique, + string_to_array(translate(liste_rubrique,'*,','% '),' ') AS liste_rubrique, + NULL::bigint[] AS liste_rubrique_id, + CASE WHEN liste_prestation <> '' THEN '1' ELSE '0' END AS a_liste_prestation, + string_to_array(translate(liste_prestation,'*,','% '),' ') AS liste_prestation, + NULL::bigint[] AS liste_prestation_id + FROM activite.t_forme_activite_rule + JOIN activite.t_forme_activite ON forme_activite_id = t_forme_activite.oid + ORDER BY priorite, forme_activite_id; + + + + UPDATE w_forme_activite_rule + SET liste_finess_id = (SELECT base.cti_group_array3(oid) FROM base.t_finess WHERE code LIKE ANY (liste_finess)) + WHERE a_liste_finess = '1'; + + IF _module_pmsimco = '1' THEN + UPDATE w_forme_activite_rule + SET liste_diagnostic_principal_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_principal)) + WHERE a_liste_diagnostic_principal = '1'; + UPDATE w_forme_activite_rule + SET liste_diagnostic_relie_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_relie)) + WHERE a_liste_diagnostic_relie = '1'; + UPDATE w_forme_activite_rule + SET liste_diagnostic_associe_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_associe)) + WHERE a_liste_diagnostic_associe = '1'; + UPDATE w_forme_activite_rule + SET liste_acte_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_actes WHERE code LIKE ANY (liste_acte)) + WHERE a_liste_acte = '1'; + DROP TABLE IF EXISTS w_forme_activite_rule_actes_pmsi; + CREATE TEMP TABLE w_forme_activite_rule_actes_pmsi AS + SELECT t_actes.oid AS rule_acte_id, w_forme_activite_rule.oid AS rule_id + FROM pmsi.t_actes + JOIN w_forme_activite_rule ON code LIKE ANY (liste_acte); + CREATE INDEX w_forme_activite_rule_actes_pmsi_i1 ON w_forme_activite_rule_actes_pmsi USING btree (rule_acte_id); + END IF; + + + DROP TABLE IF EXISTS w_forme_activite_rule_actes_base; + CREATE TEMP TABLE w_forme_activite_rule_actes_base AS + SELECT t_actes.oid AS rule_acte_id, w_forme_activite_rule.oid AS rule_id + FROM base.t_actes + JOIN w_forme_activite_rule ON code LIKE ANY (liste_acte); + CREATE INDEX w_forme_activite_rule_actes_base_i1 ON w_forme_activite_rule_actes_base USING btree (rule_acte_id); + + DROP TABLE IF EXISTS w_forme_activite_rule_rubriques; + CREATE TEMP TABLE w_forme_activite_rule_rubriques AS + SELECT t_rubriques_facturation.oid AS rule_rubrique_id, w_forme_activite_rule.oid AS rule_id + FROM activite.t_rubriques_facturation + JOIN w_forme_activite_rule ON code LIKE ANY (liste_rubrique); + CREATE INDEX w_forme_activite_rule_rubriques_i1 ON w_forme_activite_rule_rubriques USING btree (rule_rubrique_id); + + DROP TABLE IF EXISTS w_forme_activite_rule_prestations; + CREATE TEMP TABLE w_forme_activite_rule_prestations AS + SELECT t_prestations.oid AS rule_prestation_id, w_forme_activite_rule.oid AS rule_id + FROM activite.t_prestations + JOIN w_forme_activite_rule ON code LIKE ANY (liste_prestation); + CREATE INDEX w_forme_activite_rule_prestations_i1 ON w_forme_activite_rule_prestations USING btree (rule_prestation_id); + + UPDATE w_forme_activite_rule + SET liste_acte_base_id = (SELECT base.cti_group_array3(oid) FROM base.t_actes WHERE code LIKE ANY (liste_acte)) + WHERE a_liste_acte = '1' + ; + + IF _module_pmsimco = '1' THEN + UPDATE w_forme_activite_rule + SET liste_ghm_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_ghm WHERE code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1'; + UPDATE w_forme_activite_rule + SET liste_ghm_pmsi_id = + array_cat(liste_ghm_pmsi_id, + (SELECT base.cti_group_array3(t_ghm.oid) FROM pmsi.t_ghm JOIN base.t_cas ON cas_id = t_cas.oid WHERE '[CAS:'||t_cas.code||']' LIKE ANY (liste_ghm)) + ) + WHERE a_liste_ghm = '1' AND + liste_ghm_origine LIKE '%[CAS:%' + ; + END IF; + + UPDATE w_forme_activite_rule + SET liste_ghm_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_ghm WHERE code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1' + ; + UPDATE w_forme_activite_rule + SET liste_ghm_activite_id = + array_cat(liste_ghm_activite_id, + (SELECT base.cti_group_array3(t_ghm.oid) FROM base.t_ghm JOIN base.t_cas ON cas_id = t_cas.oid WHERE '[CAS:'||t_cas.code||']' LIKE ANY (liste_ghm)) + ) + WHERE a_liste_ghm = '1' AND + liste_ghm_origine LIKE '%[CAS:%' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_forme_activite_rule + SET liste_sauf_ghm_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_ghm WHERE code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1'; + END IF; + + UPDATE w_forme_activite_rule + SET liste_sauf_ghm_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_ghm WHERE code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_forme_activite_rule + SET liste_medecin_pmsi_id = ( + SELECT base.cti_group_array3(t_medecins_pmsi.oid) + FROM pmsi.t_medecins t_medecins_pmsi + JOIN base.t_medecins ON t_medecins_pmsi.medecin_reference_id = t_medecins.oid + WHERE t_medecins_pmsi.oid <> 0 AND t_medecins_pmsi.code <> '' AND t_medecins_pmsi.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' OR + t_medecins.oid <> 0 AND t_medecins.code <> '' AND t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + WHERE a_liste_medecin = '1'; + END IF; + + UPDATE w_forme_activite_rule + SET liste_medecin_activite_id = ( + SELECT base.cti_group_array3(t_medecins_administratifs.oid) + FROM activite.t_medecins_administratifs + JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + WHERE t_medecins_administratifs.oid <> 0 AND t_medecins_administratifs.code <> '' AND t_medecins_administratifs.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' OR + t_medecins.oid <> 0 AND t_medecins.code <> '' AND t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + WHERE a_liste_medecin = '1' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_forme_activite_rule + SET liste_specialite_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_specialites_medecin WHERE code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1'; + END IF; + + UPDATE w_forme_activite_rule + SET liste_specialite_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_specialites_medecin WHERE code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1' + ; + UPDATE w_forme_activite_rule + SET liste_type_sejour_id = (SELECT base.cti_group_array3(code) FROM activite.t_type_sejour WHERE code <> '' AND code LIKE ANY (liste_type_sejour)) + WHERE a_liste_type_sejour = '1' + ; + UPDATE w_forme_activite_rule + SET liste_unite_fonctionnelle_id = (SELECT base.cti_group_array3(oid) FROM activite.t_unites_fonctionnelles WHERE code LIKE ANY (liste_unite_fonctionnelle)) + WHERE a_liste_unite_fonctionnelle = '1' + ; + UPDATE w_forme_activite_rule + SET liste_service_id = (SELECT base.cti_group_array3(oid) FROM activite.t_services_facturation WHERE code LIKE ANY (liste_service)) + WHERE a_liste_service = '1' + ; + UPDATE w_forme_activite_rule + SET liste_etage_id = (SELECT base.cti_group_array3(oid) FROM activite.t_etages WHERE code LIKE ANY (liste_etage)) + WHERE a_liste_etage = '1' + ; + UPDATE w_forme_activite_rule + SET liste_unite_fonctionnelle_entree_id = (SELECT base.cti_group_array3(oid) FROM activite.t_unites_fonctionnelles WHERE code LIKE ANY (liste_unite_fonctionnelle_entree)) + WHERE a_liste_unite_fonctionnelle_entree = '1' + ; + UPDATE w_forme_activite_rule + SET liste_service_entree_id = (SELECT base.cti_group_array3(oid) FROM activite.t_services_facturation WHERE code LIKE ANY (liste_service_entree)) + WHERE a_liste_service_entree = '1' + ; + UPDATE w_forme_activite_rule + SET liste_etage_entree_id = (SELECT base.cti_group_array3(oid) FROM activite.t_etages WHERE code LIKE ANY (liste_etage_entree)) + WHERE a_liste_etage_entree = '1' + ; + UPDATE w_forme_activite_rule + SET liste_rubrique_id = (SELECT base.cti_group_array3(oid) FROM activite.t_rubriques_facturation WHERE code LIKE ANY (liste_rubrique)) + WHERE a_liste_rubrique = '1' + ; + UPDATE w_forme_activite_rule + SET liste_prestation_id = (SELECT base.cti_group_array3(oid) FROM activite.t_prestations WHERE code LIKE ANY (liste_prestation)) + WHERE a_liste_prestation = '1' + ; + + + -- Association cles aux rubriques + RAISE NOTICE '%' , 'Application des regles. Traitement des rubriques'; + DROP TABLE IF EXISTS w_factures_rubriques; + CREATE TEMP TABLE w_factures_rubriques AS + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN w_forme_activite_rule_rubriques ON p_factures_lignes_c.rubrique_facturation_id = rule_rubrique_id + WHERE p_factures_lignes_c.montant_facture <> 0 + GROUP BY 1,2 + HAVING SUM(p_factures_lignes_c.montant_facture) > 0 + UNION + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_non_facturees_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_non_facturees_c.no_facture + JOIN w_forme_activite_rule_rubriques ON p_factures_lignes_non_facturees_c.rubrique_facturation_id = rule_rubrique_id + ; + CREATE INDEX w_factures_rubriques_i1 ON w_factures_rubriques USING btree (no_sejour); + + DROP TABLE IF EXISTS w_forme_activite_rubriques; + CREATE TEMP TABLE w_forme_activite_rubriques AS + + SELECT oid, base.cti_group_array3(rubrique_rule_id) AS rubrique_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS rubrique_rule_id + FROM w_factures_rubriques + JOIN w_sejours_rss ON w_factures_rubriques.no_sejour = w_sejours_rss.no_sejour + ) subview + GROUP BY 1; + ALTER TABLE w_forme_activite_rubriques ADD CONSTRAINT w_forme_activite_rubriques_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET rubrique_liste_rule_id = w_forme_activite_rubriques.rubrique_liste_rule_id + FROM w_forme_activite_rubriques + WHERE w_forme_activite_rubriques.oid = w_sejours_rss.oid; + + + + -- Association cles aux prestations + RAISE NOTICE '%' , 'Application des regles. Traitement des prestations'; + DROP TABLE IF EXISTS w_factures_prestations; + CREATE TEMP TABLE w_factures_prestations AS + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN w_forme_activite_rule_prestations ON p_factures_lignes_c.prestation_id = rule_prestation_id + WHERE p_factures_lignes_c.montant_facture <> 0 + GROUP BY 1,2 + HAVING SUM(p_factures_lignes_c.montant_facture) > 0 + UNION + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_non_facturees_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_non_facturees_c.no_facture + JOIN w_forme_activite_rule_prestations ON p_factures_lignes_non_facturees_c.prestation_id = rule_prestation_id + GROUP BY 1,2 + ; + CREATE INDEX w_factures_prestations_i1 ON w_factures_prestations USING btree (no_sejour); + + DROP TABLE IF EXISTS w_forme_activite_prestations; + CREATE TEMP TABLE w_forme_activite_prestations AS + + SELECT oid, base.cti_group_array3(prestation_rule_id) AS prestation_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS prestation_rule_id + FROM w_factures_prestations + JOIN w_sejours_rss ON w_factures_prestations.no_sejour = w_sejours_rss.no_sejour + ) subview + GROUP BY 1; + ALTER TABLE w_forme_activite_prestations ADD CONSTRAINT w_forme_activite_prestations_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET prestation_liste_rule_id = w_forme_activite_prestations.prestation_liste_rule_id + FROM w_forme_activite_prestations + WHERE w_forme_activite_prestations.oid = w_sejours_rss.oid; + + + -- Association cles aux actes + RAISE NOTICE '%' , 'Application des regles. Traitement des actes'; + DROP TABLE IF EXISTS w_factures_actes; + CREATE TEMP TABLE w_factures_actes AS + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_h + JOIN w_forme_activite_rule_actes_base ON p_factures_lignes_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4' + UNION + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_non_facturees_h + JOIN w_forme_activite_rule_actes_base ON p_factures_lignes_non_facturees_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4'; + CREATE INDEX w_factures_actes_i1 ON w_factures_actes USING btree (no_facture); + + DROP TABLE IF EXISTS w_forme_activite_actes; + IF _module_pmsimco = '1' THEN + CREATE TEMP TABLE w_forme_activite_actes AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM pmsi.p_rss_actes + JOIN w_sejours_rss ON p_rss_actes.rss_id = w_sejours_rss.rss_id + JOIN w_forme_activite_rule_actes_pmsi ON p_rss_actes.acte_id = rule_acte_id + UNION + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + + ) subview + GROUP BY 1; + ELSE + CREATE TEMP TABLE w_forme_activite_actes AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + + ) subview + GROUP BY 1; + END IF; + ALTER TABLE w_forme_activite_actes ADD CONSTRAINT w_forme_activite_actes_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET acte_liste_rule_id = w_forme_activite_actes.acte_liste_rule_id + FROM w_forme_activite_actes + WHERE w_forme_activite_actes.oid = w_sejours_rss.oid; + + -- Diagnostics + IF _module_pmsimco = '1' THEN + RAISE NOTICE '%' , 'Application des regles. Traitement des diagnostics'; + DROP TABLE IF EXISTS w_forme_activite_diagnostics; + CREATE TEMP TABLE w_forme_activite_diagnostics AS + SELECT + w_sejours_rss.oid, base.cti_group_array3(w_forme_activite_rule.oid) AS diagnostic_associe_liste_rule_id + FROM pmsi.p_rss_diagnostics + JOIN w_forme_activite_rule ON type_diagnostic_rss IN ('DA', 'DS') AND diagnostic_id = ANY (liste_diagnostic_associe_id) + JOIN w_sejours_rss ON p_rss_diagnostics.rss_id = w_sejours_rss.rss_id + WHERE a_liste_diagnostic_associe <> '0' + GROUP BY 1; + ALTER TABLE w_forme_activite_diagnostics ADD CONSTRAINT w_forme_activite_diagnostics_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET diagnostic_associe_liste_rule_id = w_forme_activite_diagnostics.diagnostic_associe_liste_rule_id + FROM w_forme_activite_diagnostics + WHERE w_forme_activite_diagnostics.oid = w_sejours_rss.oid; + END IF; + + -- Mise à jour des cles venant des données du PMSI + RAISE NOTICE '%' , 'Application des regles. Attribution des formes activite venant du pmsi'; + DROP TABLE IF EXISTS w_sejours_forme_activite; + CREATE TEMP TABLE w_sejours_forme_activite AS + SELECT w_sejours_rss.oid, + MIN(priorite)+1 AS forme_activite_priorite, + (MIN(ARRAY[priorite,w_forme_activite_rule.forme_activite_id]))[2] AS forme_activite_id + FROM w_sejours_rss + JOIN w_forme_activite_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_medecin = '0' OR medecin_rss_id = ANY (liste_medecin_pmsi_id)) AND + (a_liste_type_sejour = '0') AND + (a_liste_unite_fonctionnelle = '0') AND + (a_liste_service = '0') AND + (a_liste_etage = '0') AND + (a_liste_unite_fonctionnelle_entree = '0') AND + (a_liste_service_entree = '0') AND + (a_liste_etage_entree = '0') AND + (a_liste_specialite = '0' OR specialite_rss_id = ANY (liste_specialite_pmsi_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_forme_activite_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_forme_activite_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_ghm = '0' OR ghm_pmsi_id = ANY (liste_ghm_pmsi_id)) AND + (a_liste_sauf_ghm = '0' OR ghm_pmsi_id <> ALL (liste_sauf_ghm_pmsi_id)) AND + (a_liste_prestation = '0') AND + (a_liste_rubrique = '0') + WHERE w_sejours_rss.rss_id <> 0 + GROUP BY 1 + ORDER BY 1; + UPDATE w_sejours_rss SET + forme_activite_id = w_sejours_forme_activite.forme_activite_id, + forme_activite_priorite = w_sejours_forme_activite.forme_activite_priorite + FROM w_sejours_forme_activite + WHERE w_sejours_rss.oid = w_sejours_forme_activite.oid; + -- Mise à jour des cles venant des données d'activite + RAISE NOTICE '%' , 'Application des regles. Attribution des formes activite venant de la GAP'; + DROP TABLE IF EXISTS w_sejours_forme_activite; + CREATE TEMP TABLE w_sejours_forme_activite AS + SELECT w_sejours_rss.oid, + MIN(priorite) AS forme_activite_priorite, + (MIN(ARRAY[priorite,w_forme_activite_rule.forme_activite_id]))[2] AS forme_activite_id + FROM w_sejours_rss + JOIN w_forme_activite_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_type_sejour = '0' OR type_sejour = ANY (liste_type_sejour_id)) AND + (a_liste_unite_fonctionnelle = '0' OR unite_fonctionnelle_id = ANY (liste_unite_fonctionnelle_id)) AND + (a_liste_service = '0' OR service_facturation_id = ANY (liste_service_id)) AND + (a_liste_etage = '0' OR etage_id = ANY (liste_etage_id)) AND + (a_liste_unite_fonctionnelle_entree = '0' OR unite_fonctionnelle_entree_id = ANY (liste_unite_fonctionnelle_entree_id)) AND + (a_liste_service_entree = '0' OR service_facturation_entree_id = ANY (liste_service_entree_id)) AND + (a_liste_etage_entree = '0' OR etage_entree_id = ANY (liste_etage_entree_id)) AND + (a_liste_medecin = '0' OR medecin_sejour_id = ANY (liste_medecin_activite_id)) AND + (a_liste_specialite = '0' OR specialite_sejour_id = ANY (liste_specialite_activite_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_forme_activite_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_forme_activite_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_rubrique = '0' OR w_forme_activite_rule.oid = ANY(rubrique_liste_rule_id)) AND + (a_liste_prestation = '0' OR w_forme_activite_rule.oid = ANY(prestation_liste_rule_id)) AND + (a_liste_ghm = '0' OR ghm_activite_id = ANY (liste_ghm_activite_id)) AND + (a_liste_sauf_ghm = '0' OR ghm_activite_id <> ALL (liste_sauf_ghm_activite_id)) + WHERE w_sejours_rss.sejour_id <> 0 + GROUP BY 1 + ORDER BY 1; + UPDATE w_sejours_rss SET + forme_activite_id = w_sejours_forme_activite.forme_activite_id, + forme_activite_priorite = w_sejours_forme_activite.forme_activite_priorite + FROM w_sejours_forme_activite + WHERE w_sejours_rss.oid = w_sejours_forme_activite.oid AND + (w_sejours_rss.forme_activite_priorite > w_sejours_forme_activite.forme_activite_priorite OR w_sejours_rss.forme_activite_priorite = 0); + + + + RAISE NOTICE '%' , 'Application des regles. Deductions depuis utilisation'; + + -- Valeurs par defaut des médecins + DROP TABLE IF EXISTS w_dft; + CREATE TEMP TABLE w_dft AS + SELECT medecin_sejour_id, type_sejour, + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint AS forme_activite_id, + MAX(forme_activite_div_id) AS forme_activite_div_id, + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) AS pct + FROM + ( + SELECT medecin_sejour_id, type_sejour, forme_activite_id, count(*) AS nb, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN '1' ELSE '0' END) AS is_div, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN forme_activite_id ELSE 0 END) AS forme_activite_div_id + FROM w_sejours_rss + JOIN activite.t_forme_activite ON forme_activite_id = t_forme_activite.oid + WHERE type_sejour <> '9' AND medecin_sejour_id <> 0 AND sejour_id <> 0 + GROUP BY 1,2,3 + ) subview + GROUP BY 1,2 + HAVING MAX(is_div) = '1' AND + MIN(is_div) = '0' AND + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) > 0.95 AND + SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) > 50 AND + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint <> MAX(forme_activite_div_id) + ; + + DELETE FROM w_dft + USING + activite.t_forme_activite, + activite.t_forme_activite t_forme_activite_div + WHERE forme_activite_id = t_forme_activite.oid AND + forme_activite_div_id = t_forme_activite_div.oid AND + substr(t_forme_activite.code,1,2) <> substr(t_forme_activite_div.code,1,2) + ; + + UPDATE w_sejours_rss + SET forme_activite_id = w_dft.forme_activite_id + FROM w_dft + WHERE w_sejours_rss.medecin_sejour_id = w_dft.medecin_sejour_id AND + w_sejours_rss.type_sejour = w_dft.type_sejour AND + w_sejours_rss.forme_activite_id = w_dft.forme_activite_div_id + ; + + -- Defaut selon medecin et service de sortie + DROP TABLE IF EXISTS w_dft; + CREATE TEMP TABLE w_dft AS + SELECT service_facturation_id, medecin_sejour_id, type_sejour, + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint AS forme_activite_id, + MAX(forme_activite_div_id) AS forme_activite_div_id, + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) AS pct + FROM + ( + SELECT service_facturation_id,medecin_sejour_id, type_sejour, forme_activite_id, count(*) AS nb, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN '1' ELSE '0' END) AS is_div, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN forme_activite_id ELSE 0 END) AS forme_activite_div_id + FROM w_sejours_rss + JOIN activite.t_forme_activite ON forme_activite_id = t_forme_activite.oid + WHERE type_sejour <> '9' AND medecin_sejour_id <> 0 AND service_facturation_id <> 0 AND sejour_id <> 0 + GROUP BY 1,2,3,4 + ) subview + GROUP BY 1,2,3 + HAVING MAX(is_div) = '1' AND + MIN(is_div) = '0' AND + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) > 0.90 AND + SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) > 50 AND + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint <> MAX(forme_activite_div_id) + ; + + DELETE FROM w_dft + USING + activite.t_forme_activite, + activite.t_forme_activite t_forme_activite_div + WHERE forme_activite_id = t_forme_activite.oid AND + forme_activite_div_id = t_forme_activite_div.oid AND + substr(t_forme_activite.code,1,2) <> substr(t_forme_activite_div.code,1,2) + ; + + UPDATE w_sejours_rss + SET forme_activite_id = w_dft.forme_activite_id + FROM w_dft + WHERE w_sejours_rss.medecin_sejour_id = w_dft.medecin_sejour_id AND + w_sejours_rss.type_sejour = w_dft.type_sejour AND + w_sejours_rss.service_facturation_id = w_dft.service_facturation_id AND + w_sejours_rss.forme_activite_id = w_dft.forme_activite_div_id + ; + + -- Defaut selon service sortie + DROP TABLE IF EXISTS w_dft; + CREATE TEMP TABLE w_dft AS + SELECT service_facturation_id, type_sejour, + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint AS forme_activite_id, + MAX(forme_activite_div_id) AS forme_activite_div_id, + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) AS pct + FROM + ( + SELECT service_facturation_id,type_sejour, forme_activite_id, count(*) AS nb, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN '1' ELSE '0' END) AS is_div, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN forme_activite_id ELSE 0 END) AS forme_activite_div_id + FROM w_sejours_rss + JOIN activite.t_forme_activite ON forme_activite_id = t_forme_activite.oid + WHERE type_sejour <> '9' AND service_facturation_id <> 0 AND sejour_id <> 0 + GROUP BY 1,2,3 + ) subview + GROUP BY 1,2 + HAVING MAX(is_div) = '1' AND + MIN(is_div) = '0' AND + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) > 0.95 AND + SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) > 50 AND + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint <> MAX(forme_activite_div_id) + ; + + DELETE FROM w_dft + USING + activite.t_forme_activite, + activite.t_forme_activite t_forme_activite_div + WHERE forme_activite_id = t_forme_activite.oid AND + forme_activite_div_id = t_forme_activite_div.oid AND + substr(t_forme_activite.code,1,2) <> substr(t_forme_activite_div.code,1,2) + ; + + UPDATE w_sejours_rss + SET forme_activite_id = w_dft.forme_activite_id + FROM w_dft + WHERE w_sejours_rss.type_sejour = w_dft.type_sejour AND + w_sejours_rss.service_facturation_id = w_dft.service_facturation_id AND + w_sejours_rss.forme_activite_id = w_dft.forme_activite_div_id + ; + + -- Defaut selon medecin et service d'entree + DROP TABLE IF EXISTS w_dft; + CREATE TEMP TABLE w_dft AS + SELECT service_facturation_entree_id, medecin_sejour_id, type_sejour, + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint AS forme_activite_id, + MAX(forme_activite_div_id) AS forme_activite_div_id, + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) AS pct + FROM + ( + SELECT service_facturation_entree_id,medecin_sejour_id, type_sejour, forme_activite_id, count(*) AS nb, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN '1' ELSE '0' END) AS is_div, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN forme_activite_id ELSE 0 END) AS forme_activite_div_id + FROM w_sejours_rss + JOIN activite.t_forme_activite ON forme_activite_id = t_forme_activite.oid + WHERE type_sejour <> '9' AND medecin_sejour_id <> 0 AND service_facturation_entree_id <> 0 AND sejour_id <> 0 + GROUP BY 1,2,3,4 + ) subview + GROUP BY 1,2,3 + HAVING MAX(is_div) = '1' AND + MIN(is_div) = '0' AND + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) > 0.90 AND + SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) > 50 AND + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint <> MAX(forme_activite_div_id) + ; + + DELETE FROM w_dft + USING + activite.t_forme_activite, + activite.t_forme_activite t_forme_activite_div + WHERE forme_activite_id = t_forme_activite.oid AND + forme_activite_div_id = t_forme_activite_div.oid AND + substr(t_forme_activite.code,1,2) <> substr(t_forme_activite_div.code,1,2) + ; + + UPDATE w_sejours_rss + SET forme_activite_id = w_dft.forme_activite_id + FROM w_dft + WHERE w_sejours_rss.medecin_sejour_id = w_dft.medecin_sejour_id AND + w_sejours_rss.type_sejour = w_dft.type_sejour AND + w_sejours_rss.service_facturation_entree_id = w_dft.service_facturation_entree_id AND + w_sejours_rss.forme_activite_id = w_dft.forme_activite_div_id + ; + + + -- Defaut selon service entree + DROP TABLE IF EXISTS w_dft; + CREATE TEMP TABLE w_dft AS + SELECT service_facturation_entree_id, type_sejour, + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint AS forme_activite_id, + MAX(forme_activite_div_id) AS forme_activite_div_id, + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) AS pct + FROM + ( + SELECT service_facturation_entree_id,type_sejour, forme_activite_id, count(*) AS nb, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN '1' ELSE '0' END) AS is_div, + MAX(CASE WHEN t_forme_activite.code LIKE '%9' THEN forme_activite_id ELSE 0 END) AS forme_activite_div_id + FROM w_sejours_rss + JOIN activite.t_forme_activite ON forme_activite_id = t_forme_activite.oid + WHERE type_sejour <> '9' AND service_facturation_entree_id <> 0 AND sejour_id <> 0 + GROUP BY 1,2,3 + ) subview + GROUP BY 1,2 + HAVING MAX(is_div) = '1' AND + MIN(is_div) = '0' AND + (MAX(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) / SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END)) > 0.95 AND + SUM(CASE WHEN is_div <> '1' THEN nb ELSE 0 END) > 50 AND + (MAX(ARRAY[to_char(nb,'FM000000000000'),forme_activite_id::text]))[2]::bigint <> MAX(forme_activite_div_id) + ; + + DELETE FROM w_dft + USING + activite.t_forme_activite, + activite.t_forme_activite t_forme_activite_div + WHERE forme_activite_id = t_forme_activite.oid AND + forme_activite_div_id = t_forme_activite_div.oid AND + substr(t_forme_activite.code,1,2) <> substr(t_forme_activite_div.code,1,2) + ; + + UPDATE w_sejours_rss + SET forme_activite_id = w_dft.forme_activite_id + FROM w_dft + WHERE w_sejours_rss.type_sejour = w_dft.type_sejour AND + w_sejours_rss.service_facturation_entree_id = w_dft.service_facturation_entree_id AND + w_sejours_rss.forme_activite_id = w_dft.forme_activite_div_id + ; + + + + + RAISE NOTICE '%' , 'Application des regles. Validation des forme activite'; + UPDATE activite.p_sejours + SET + forme_activite_id = w_sejours_rss.forme_activite_id + FROM w_sejours_rss + WHERE p_sejours.oid = w_sejours_rss.sejour_id AND + p_sejours.oid <> 0 AND + ( + p_sejours.forme_activite_id IS DISTINCT FROM w_sejours_rss.forme_activite_id + ); + + ANALYSE activite.p_sejours + ; + + + INSERT INTO activite.p_oids (code_table, oid) + SELECT 'forme_activite', forme_activite_id + FROM activite.p_sejours + WHERE forme_activite_id NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = 'forme_activite') + GROUP BY 2; + + REINDEX INDEX activite.i_sejours_forme_activite_id; + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_ghm_c.yaml b/db/schema2/functions/cti_reorganize_ghm_c.yaml new file mode 100644 index 0000000..7c3f585 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_ghm_c.yaml @@ -0,0 +1,328 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + DELETE FROM activite.t_ghm_c + WHERE ghm_id NOT IN (SELECT oid FROM base.t_ghm) AND ghm_id > 0; + UPDATE base.t_ghm SET severite = substr(code,6,1) WHERE severite ='' AND oid <> 0; + -- Standard + + UPDATE activite.t_ghm_c SET + ghm_code = t_ghm.code, + ghm_texte = t_ghm.texte, + mco_id = t_mco.oid, + mco_code = t_mco.code, + mco_texte = t_mco.texte, + cas_id = t_ghm.cas_id, + cas_code = t_cas.code, + cas_texte = t_cas.texte, + severite_ghm_id = t_severites_ghm.oid, + severite_ghm_code = t_ghm.severite, + severite_ghm_texte = t_severites_ghm.texte, + cmd_id = t_ghm.cmd_id, + cmd_code = t_cmd.code, + cmd_texte = t_cmd.texte, + ghm5_id = t_ghm.ghm5_id, + ghm5_code = t_ghm5.code, + ghm5_texte = t_ghm5.texte + FROM base.t_ghm + JOIN base.t_cmd ON t_ghm.cmd_id = t_cmd.oid AND t_cmd.code <> '90' + JOIN base.t_mco ON t_mco.code::bpchar = CASE + WHEN t_cmd.code = '28'::bpchar THEN 'S' + WHEN t_ghm.mco = 'M'::bpchar THEN 'M' + WHEN t_ghm.mco = 'C'::bpchar THEN 'C' + WHEN t_ghm.mco = 'O'::bpchar THEN 'O' + ELSE '*' END + JOIN base.t_severites_ghm ON t_ghm.severite = t_severites_ghm.code + JOIN base.t_ghm5 ON t_ghm.ghm5_id = t_ghm5.oid + JOIN base.t_cas ON t_ghm.cas_id = t_cas.oid + WHERE t_ghm.oid = t_ghm_c.ghm_id AND + ( + t_ghm_c.ghm_code IS DISTINCT FROM t_ghm.code OR + t_ghm_c.ghm_texte IS DISTINCT FROM t_ghm.texte OR + t_ghm_c.mco_id IS DISTINCT FROM t_mco.oid OR + t_ghm_c.mco_code IS DISTINCT FROM t_mco.code OR + t_ghm_c.mco_texte IS DISTINCT FROM t_mco.texte OR + t_ghm_c.cas_id IS DISTINCT FROM t_ghm.cas_id OR + t_ghm_c.cas_code IS DISTINCT FROM t_cas.code OR + t_ghm_c.cas_texte IS DISTINCT FROM t_cas.texte OR + t_ghm_c.severite_ghm_id IS DISTINCT FROM t_severites_ghm.oid OR + t_ghm_c.severite_ghm_code IS DISTINCT FROM t_ghm.severite OR + t_ghm_c.severite_ghm_texte IS DISTINCT FROM t_severites_ghm.texte OR + t_ghm_c.cmd_id IS DISTINCT FROM t_ghm.cmd_id OR + t_ghm_c.cmd_code IS DISTINCT FROM t_cmd.code OR + t_ghm_c.cmd_texte IS DISTINCT FROM t_cmd.texte OR + t_ghm_c.ghm5_id IS DISTINCT FROM t_ghm.ghm5_id OR + t_ghm_c.ghm5_code IS DISTINCT FROM t_ghm5.code OR + t_ghm_c.ghm5_texte IS DISTINCT FROM t_ghm5.texte + ); + INSERT INTO activite.t_ghm_c( + ghm_id, + ghm_code, + ghm_texte, + mco_id, + mco_code, + mco_texte, + cas_id, + cas_code, + cas_texte, + severite_ghm_id, + severite_ghm_code, + severite_ghm_texte, + cmd_id, + cmd_code, + cmd_texte, + ghm5_id, + ghm5_code, + ghm5_texte) + SELECT + t_ghm.oid, + t_ghm.code AS ghm_code, + t_ghm.texte AS ghm_texte, + t_mco.oid AS mco_id, + t_mco.code AS mco_code, + t_mco.texte AS mco_texte, + t_ghm.cas_id, + t_cas.code AS cas_code, + t_cas.texte AS cas_texte, + t_severites_ghm.oid AS severite_ghm_id, + t_ghm.severite AS severite_ghm_code, + t_severites_ghm.texte AS severite_ghm_texte, + t_ghm.cmd_id, + t_cmd.code AS cmd_code, + t_cmd.texte_court AS cmd_texte, + t_ghm.ghm5_id AS ghm5_id, + t_ghm5.code AS ghm5_code, + t_ghm5.texte AS ghm5_texte + FROM base.t_ghm + JOIN base.t_cmd ON t_ghm.cmd_id = t_cmd.oid AND t_cmd.code <> '90' + JOIN base.t_mco ON t_mco.code::bpchar = CASE + WHEN t_cmd.code = '28'::bpchar THEN 'S' + WHEN t_ghm.mco = 'M'::bpchar THEN 'M' + WHEN t_ghm.mco = 'C'::bpchar THEN 'C' + WHEN t_ghm.mco = 'O'::bpchar THEN 'O' + ELSE '*' END + JOIN base.t_severites_ghm ON t_ghm.severite = t_severites_ghm.code + JOIN base.t_ghm5 ON t_ghm.ghm5_id = t_ghm5.oid + JOIN base.t_cas ON t_ghm.cas_id = t_cas.oid + WHERE t_ghm.oid NOT IN (SELECT ghm_id FROM activite.t_ghm_c); + -- Codes spéciaux + UPDATE activite.t_ghm_c SET + ghm_code = t_ghm.code, + ghm_texte = t_ghm.texte, + mco_id = t_mco.oid, + mco_code = t_mco.code, + mco_texte = t_mco.texte, + cas_id = t_cas.oid, + cas_code = t_cas.code, + cas_texte = t_cas.texte, + severite_ghm_id = t_severites_ghm.oid, + severite_ghm_code = t_severites_ghm.code, + severite_ghm_texte = t_severites_ghm.texte, + cmd_id = t_ghm.cmd_id, + cmd_code = t_ghm.cmd_code, + cmd_texte = t_ghm.cmd_texte, + ghm5_id = t_ghm.oid, + ghm5_code = t_ghm.code, + ghm5_texte = t_ghm.texte + FROM ( + SELECT -9991 AS oid, '99_SE1' AS code, 'Hors GHM. Forfaits SE1' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9992 AS oid, '99_SE2' AS code, 'Hors GHM. Forfaits SE2' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9993 AS oid, '99_SE3' AS code, 'Hors GHM. Forfaits SE3' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9994 AS oid, '99_SE4' AS code, 'Hors GHM. Forfaits SE4' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9995 AS oid, '99_ATU' AS code, 'Hors GHM. Forfaits ATU' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9996 AS oid, '99_FFM' AS code, 'Hors GHM. Forfaits FFM' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9990 AS oid, '99_ZZZ' AS code, 'Hors GHM. Divers' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9980 AS oid, '98_P' AS code, 'Champ GHM. Présents' AS texte, -9980 AS cmd_id, '98' AS cmd_code, 'Champ GHM. Non groupés' AS cmd_texte, -9980 AS groupe_id, 'ZY' AS groupe_code, 'Champ GHM. Non groupés' AS groupe_texte + UNION + SELECT -9981 AS oid, '98_NG' AS code, 'Champ GHM. Sortis non groupés' AS texte, -9980 AS cmd_id, '98' AS cmd_code, 'Champ GHM. Non groupés' AS cmd_texte, -9980 AS groupe_id, 'ZY' AS groupe_code, 'Champ GHM. Non groupés' AS groupe_texte) t_ghm + JOIN base.t_mco ON t_mco.code = '*' + JOIN base.t_severites_ghm ON t_severites_ghm.code = '*' + JOIN base.t_cas ON t_cas.code = '*' + WHERE t_ghm.oid = t_ghm_c.ghm_id AND + ( + t_ghm_c.ghm_code IS DISTINCT FROM t_ghm.code OR + t_ghm_c.ghm_texte IS DISTINCT FROM t_ghm.texte OR + t_ghm_c.mco_id IS DISTINCT FROM t_mco.oid OR + t_ghm_c.mco_code IS DISTINCT FROM t_mco.code OR + t_ghm_c.mco_texte IS DISTINCT FROM t_mco.texte OR + t_ghm_c.cas_id IS DISTINCT FROM t_cas.oid OR + t_ghm_c.cas_code IS DISTINCT FROM t_cas.code OR + t_ghm_c.cas_texte IS DISTINCT FROM t_cas.texte OR + t_ghm_c.severite_ghm_id IS DISTINCT FROM t_severites_ghm.oid OR + t_ghm_c.severite_ghm_code IS DISTINCT FROM t_severites_ghm.code OR + t_ghm_c.severite_ghm_texte IS DISTINCT FROM t_severites_ghm.texte OR + t_ghm_c.cmd_id IS DISTINCT FROM t_ghm.cmd_id OR + t_ghm_c.cmd_code IS DISTINCT FROM t_ghm.cmd_code OR + t_ghm_c.cmd_texte IS DISTINCT FROM t_ghm.cmd_texte OR + t_ghm_c.ghm5_id IS DISTINCT FROM t_ghm.oid OR + t_ghm_c.ghm5_code IS DISTINCT FROM t_ghm.code OR + t_ghm_c.ghm5_texte IS DISTINCT FROM t_ghm.texte + ); + INSERT INTO activite.t_ghm_c( + ghm_id, + ghm_code, + ghm_texte, + mco_id, + mco_code, + mco_texte, + cas_id, + cas_code, + cas_texte, + severite_ghm_id, + severite_ghm_code, + severite_ghm_texte, + cmd_id, + cmd_code, + cmd_texte, + ghm5_id, + ghm5_code, + ghm5_texte) + SELECT + t_ghm.oid AS oid, + t_ghm.code AS ghm_code, + t_ghm.texte AS ghm_texte, + t_mco.oid AS mco_id, + t_mco.code AS mco_code, + t_mco.texte AS mco_texte, + t_cas.oid AS cas_id, + t_cas.code AS cas_code, + t_cas.texte AS cas_texte, + t_severites_ghm.oid AS severite_ghm_id, + t_severites_ghm.code AS severite_ghm_code, + t_severites_ghm.texte AS severite_ghm_texte, + t_ghm.cmd_id AS cmd_id, + t_ghm.cmd_code AS cmd_code, + t_ghm.cmd_texte AS cmd_texte, + t_ghm.oid AS ghm5_id, + t_ghm.code AS ghm5_code, + t_ghm.texte AS ghm5_texte + FROM ( + SELECT -9991 AS oid, '99_SE1' AS code, 'Hors GHM. Forfaits SE1' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9992 AS oid, '99_SE2' AS code, 'Hors GHM. Forfaits SE2' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9993 AS oid, '99_SE3' AS code, 'Hors GHM. Forfaits SE3' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9994 AS oid, '99_SE4' AS code, 'Hors GHM. Forfaits SE4' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9997 AS oid, '99_SE5' AS code, 'Hors GHM. Forfaits SE5' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9998 AS oid, '99_SE6' AS code, 'Hors GHM. Forfaits SE6' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9995 AS oid, '99_ATU' AS code, 'Hors GHM. Forfaits ATU' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9996 AS oid, '99_FFM' AS code, 'Hors GHM. Forfaits FFM' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9990 AS oid, '99_ZZZ' AS code, 'Hors GHM. Divers' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9980 AS oid, '98_P' AS code, 'Champ GHM. Présents' AS texte, -9980 AS cmd_id, '98' AS cmd_code, 'Champ GHM. Non groupés' AS cmd_texte, -9980 AS groupe_id, 'ZY' AS groupe_code, 'Champ GHM. Non groupés' AS groupe_texte + UNION + SELECT -9981 AS oid, '98_NG' AS code, 'Champ GHM. Sortis non groupés' AS texte, -9980 AS cmd_id, '98' AS cmd_code, 'Champ GHM. Non groupés' AS cmd_texte, -9980 AS groupe_id, 'ZY' AS groupe_code, 'Champ GHM. Non groupés' AS groupe_texte) t_ghm + JOIN base.t_mco ON t_mco.code = '*' + JOIN base.t_severites_ghm ON t_severites_ghm.code = '*' + JOIN base.t_cas ON t_cas.code = '*' + WHERE t_ghm.oid NOT IN (SELECT ghm_id FROM activite.t_ghm_c); + -- Erreurs de groupage + UPDATE activite.t_ghm_c SET + ghm_code = t_ghm.code, + ghm_texte = t_ghm.texte, + mco_id = t_mco.oid, + mco_code = t_mco.code, + mco_texte = t_mco.texte, + cas_id = t_cas.oid, + cas_code = t_cas.code, + cas_texte = t_cas.texte, + severite_ghm_id = t_severites_ghm.oid, + severite_ghm_code = t_severites_ghm.code, + severite_ghm_texte = t_severites_ghm.texte, + cmd_id = t_ghm.cmd_id, + cmd_code = t_cmd.code, + cmd_texte = t_cmd.texte, + ghm5_id = t_ghm.ghm5_id, + ghm5_code = t_ghm5.code, + ghm5_texte = t_ghm5.texte + FROM base.t_ghm + JOIN base.t_cmd ON t_ghm.cmd_id = t_cmd.oid AND t_cmd.code = '90' + JOIN base.t_mco ON t_mco.code = '*' + JOIN base.t_severites_ghm ON t_severites_ghm.code = '*' + JOIN base.t_cas ON t_cas.code = '*' + JOIN base.t_ghm5 ON t_ghm.ghm5_id = t_ghm5.oid + WHERE t_ghm.oid = t_ghm_c.ghm_id AND + ( + t_ghm_c.ghm_code IS DISTINCT FROM t_ghm.code OR + t_ghm_c.ghm_texte IS DISTINCT FROM t_ghm.texte OR + t_ghm_c.mco_id IS DISTINCT FROM t_mco.oid OR + t_ghm_c.mco_code IS DISTINCT FROM t_mco.code OR + t_ghm_c.mco_texte IS DISTINCT FROM t_mco.texte OR + t_ghm_c.cas_id IS DISTINCT FROM t_cas.oid OR + t_ghm_c.cas_code IS DISTINCT FROM t_cas.code OR + t_ghm_c.cas_texte IS DISTINCT FROM t_cas.texte OR + t_ghm_c.severite_ghm_id IS DISTINCT FROM t_severites_ghm.oid OR + t_ghm_c.severite_ghm_code IS DISTINCT FROM t_severites_ghm.code OR + t_ghm_c.severite_ghm_texte IS DISTINCT FROM t_severites_ghm.texte OR + t_ghm_c.cmd_id IS DISTINCT FROM t_ghm.cmd_id OR + t_ghm_c.cmd_code IS DISTINCT FROM t_cmd.code OR + t_ghm_c.cmd_texte IS DISTINCT FROM t_cmd.texte OR + t_ghm_c.ghm5_id IS DISTINCT FROM t_ghm.ghm5_id OR + t_ghm_c.ghm5_code IS DISTINCT FROM t_ghm5.code OR + t_ghm_c.ghm5_texte IS DISTINCT FROM t_ghm5.texte + ); + INSERT INTO activite.t_ghm_c( + ghm_id, + ghm_code, + ghm_texte, + mco_id, + mco_code, + mco_texte, + cas_id, + cas_code, + cas_texte, + severite_ghm_id, + severite_ghm_code, + severite_ghm_texte, + cmd_id, + cmd_code, + cmd_texte, + ghm5_id, + ghm5_code, + ghm5_texte) + SELECT + t_ghm.oid AS oid, + t_ghm.code AS ghm_code, + t_ghm.texte AS ghm_texte, + t_mco.oid AS mco_id, + t_mco.code AS mco_code, + t_mco.texte AS mco_texte, + t_cas.oid AS cas_id, + t_cas.code AS cas_code, + t_cas.texte AS cas_texte, + t_severites_ghm.oid AS severite_ghm_id, + t_severites_ghm.code AS severite_ghm_code, + t_severites_ghm.texte AS severite_ghm_texte, + t_ghm.cmd_id AS cmd_id, + t_cmd.code AS cmd_code, + t_cmd.texte AS cmd_texte, + t_ghm.ghm5_id AS ghm5_id, + t_ghm5.code AS ghm5_code, + t_ghm5.texte AS ghm5_texte + FROM base.t_ghm + JOIN base.t_cmd ON t_ghm.cmd_id = t_cmd.oid AND t_cmd.code = '90' + JOIN base.t_mco ON t_mco.code = '*' + JOIN base.t_severites_ghm ON t_severites_ghm.code = '*' + JOIN base.t_cas ON t_cas.code = '*' + JOIN base.t_ghm5 ON t_ghm.ghm5_id = t_ghm5.oid + WHERE t_ghm.oid NOT IN (SELECT ghm_id FROM activite.t_ghm_c); + PERFORM base.cti_update_classes('activite', 't_ghm_c', 'GHM','ghm_section'); + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_ghmgme_c.yaml b/db/schema2/functions/cti_reorganize_ghmgme_c.yaml new file mode 100644 index 0000000..ded5055 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_ghmgme_c.yaml @@ -0,0 +1,139 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + TRUNCATE activite.t_ghmgme_c + ; + INSERT INTO activite.t_ghmgme_c + ( ghmgme_id, ghmgme_code, ghmgme_texte,cm_id, cm_code, cm_texte, gn_id, gn_code, gn_texte,rgme_id,rgme_code,rgme_texte, gme_id, gme_code, gme_texte,ghm_id,ghm_code,ghm_texte, cmd_id, cmd_code, cmd_texte,ghm5_id,ghm5_code, ghm5_texte, type_pmsi) + VALUES + (0, 'Non renseigné', 'Non renseigné', 0, 'Non renseigné', 'Non renseigné', 0, 'Non renseigné', 'Non renseigné', 0, 'Non renseigné', 'Non renseigné', 0, 'Non renseigné', 'Non renseigné', 0, 'Non renseigné', 'Non renseigné', 0, 'Non renseigné', 'Non renseigné', 0, 'Non renseigné', 'Non renseigné', 'MCO/SSR'); + + /* + Insertion GHM sauf 99 + */ + INSERT INTO activite.t_ghmgme_c + ( + ghmgme_id, + ghmgme_code, + ghmgme_texte, + + ghm_id, + ghm_code, + ghm_texte, + + cmd_id, + cmd_code, + cmd_texte, + + ghm5_id, + ghm5_code, + ghm5_texte, + + type_pmsi) + SELECT + ghm_id, + ghm_code, + 'MCO: ' || ghm_texte, + + ghm_id, + ghm_code, + 'MCO: ' || ghm_texte, + + cmd_id, + cmd_code, + 'MCO: ' || cmd_texte, + + ghm5_id, + ghm5_code, + 'MCO: ' || ghm5_texte, + '1' + FROM activite.t_ghm_c + where ghm_id > 0 AND length(ghm_code) > 5 + order by ghm_id + ; + + /* + Insertion GME sauf 99 + */ + + INSERT INTO activite.t_ghmgme_c + ( + ghmgme_id, + ghmgme_code, + ghmgme_texte, + + cm_id, + cm_code, + cm_texte, + + gn_id, + gn_code, + gn_texte, + + rgme_id, + rgme_code, + rgme_texte, + + gme_id, + gme_code, + gme_texte, + + type_pmsi) + + SELECT + gme_id + 10000, + gme_code, + 'SSR: ' || gme_texte, + + cm_id, + cm_code, + 'SSR: ' || cm_texte, + + gn_id, + gn_code, + 'SSR: ' || gn_texte, + + rgme_id, + rgme_code, + 'SSR: ' || rgme_texte, + + gme_id, + gme_code, + 'SSR: ' || gme_texte, + '2' + FROM activite.t_gme_c + WHERE gme_id > 0 AND length(gme_code) > 5 + ; + + INSERT INTO activite.t_ghmgme_c + ( + ghmgme_id, + ghmgme_code, + ghmgme_texte, + type_pmsi ) + SELECT -9991 AS oid, '99_SE1' AS code, 'Hors GHM-GME. Forfaits SE1' AS texte, '12' + UNION + SELECT -9992 AS oid, '99_SE2' AS code, 'Hors GHM-GME. Forfaits SE2' AS texte, '12' + UNION + SELECT -9993 AS oid, '99_SE3' AS code, 'Hors GHM-GME. Forfaits SE3' AS texte, '12' + UNION + SELECT -9994 AS oid, '99_SE4' AS code, 'Hors GHM-GME. Forfaits SE4' AS texte, '12' + UNION + SELECT -9995 AS oid, '99_ATU' AS code, 'Hors GHM-GME. Forfaits ATU' AS texte, '12' + UNION + SELECT -9996 AS oid, '99_FFM' AS code, 'Hors GHM-GME. Forfaits FFM' AS texte, '12' + UNION + SELECT -9990 AS oid, '99_ZZZ' AS code, 'Hors GHM-GME. Divers' AS texte, '12' + UNION + SELECT -9980 AS oid, '98_P' AS code, 'Champ GHM-GME. Présents' AS texte, '12' + UNION + SELECT -9981 AS oid, '98_NG' AS code, 'Champ GHM-GME. Sortis non groupés' AS texte, '12'; + + /*PERFORM base.cti_update_classes + ('activite', 't_ghmgme_c', 'GHMGME','ghmgme_section');*/ + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_ghs_c.yaml b/db/schema2/functions/cti_reorganize_ghs_c.yaml new file mode 100644 index 0000000..b9c5564 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_ghs_c.yaml @@ -0,0 +1,179 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + -- Standard + UPDATE activite.t_ghs_c + SET + ghs_code = t_ghs.code, + ghs_code_text = CASE WHEN t_ghs.code_text IS NOT NULL AND t_ghs.code_text <> '' THEN t_ghs.code_text ELSE to_char(t_ghs.code,'FM0000') END , + ghs_texte = t_ghs.texte, + ghm_id=t_ghm.oid, + ghm_code=t_ghm.code, + ghm_texte=t_ghm.texte, + mco_id=t_mco.oid, + mco_code=t_mco.code, + mco_texte=t_mco.texte, + cmd_id=t_cmd.oid, + cmd_code=t_cmd.code, + cmd_texte=t_cmd.texte + FROM base.t_ghs, base.t_ghm, base.t_mco, base.t_cmd + WHERE + t_ghs_c.ghs_id = t_ghs.oid + AND t_ghs.oid > 0 + AND t_ghs.ghm_id = t_ghm.oid + AND t_mco.code = t_ghm.mco + AND t_cmd.oid = t_ghm.cmd_id + AND ( + t_ghs_c.ghs_code IS DISTINCT FROM t_ghs.code OR + t_ghs_c.ghs_code_text IS DISTINCT FROM CASE WHEN t_ghs.code_text IS NOT NULL AND t_ghs.code_text <> '' THEN t_ghs.code_text ELSE to_char(t_ghs.code,'FM0000') END OR + t_ghs_c.ghs_texte IS DISTINCT FROM t_ghs.texte OR + t_ghs_c.ghm_id IS DISTINCT FROM t_ghm.oid OR + t_ghs_c.ghm_code IS DISTINCT FROM t_ghm.code OR + t_ghs_c.ghm_texte IS DISTINCT FROM t_ghm.texte OR + t_ghs_c.mco_id IS DISTINCT FROM t_mco.oid OR + t_ghs_c.mco_code IS DISTINCT FROM t_mco.code OR + t_ghs_c.mco_texte IS DISTINCT FROM t_mco.texte OR + t_ghs_c.cmd_id IS DISTINCT FROM t_cmd.oid OR + t_ghs_c.cmd_code IS DISTINCT FROM t_cmd.code OR + t_ghs_c.cmd_texte IS DISTINCT FROM t_cmd.texte + ); + INSERT INTO activite.t_ghs_c( + ghs_id, ghs_code, ghs_code_text, ghs_texte, ghm_id, ghm_code, + ghm_texte, mco_id, mco_code, mco_texte, cmd_id, cmd_code, cmd_texte) + SELECT + t_ghs.oid, + t_ghs.code, + CASE WHEN t_ghs.code_text IS NOT NULL AND t_ghs.code_text <> '' THEN t_ghs.code_text ELSE to_char(t_ghs.code,'FM0000') END AS ghs_code_text, + t_ghs.texte, + t_ghm.oid, + t_ghm.code, + t_ghm.texte, + t_mco.oid, + t_mco.code, + t_mco.texte, + t_cmd.oid, + t_cmd.code, + t_cmd.texte + FROM base.t_ghs, base.t_ghm, base.t_mco, base.t_cmd + WHERE + t_ghs.ghm_id::text = t_ghm.oid::text + AND t_ghs.oid >= 0 + AND t_mco.code = t_ghm.mco + AND t_cmd.oid = t_ghm.cmd_id + AND t_ghs.oid NOT IN (SELECT ghs_id FROM activite.t_ghs_c) + ORDER BY t_ghs.oid; + -- Codes spéciaux + + UPDATE activite.t_ghs_c + SET + ghs_code = 0 - t_ghs.oid, + ghs_code_text = (0 - t_ghs.oid)::text, + ghs_texte = t_ghs.texte, + ghm_id = t_ghs.oid, + ghm_code = t_ghs.code, + ghm_texte = t_ghs.texte, + mco_id = t_mco.oid, + mco_code = t_mco.code, + mco_texte = t_mco.texte, + cmd_id = t_ghs.cmd_id, + cmd_code = t_ghs.cmd_code, + cmd_texte = t_ghs.cmd_texte + FROM ( + SELECT -9991 AS oid, '99_SE1' AS code, 'Hors GHM. Forfaits SE1' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9992 AS oid, '99_SE2' AS code, 'Hors GHM. Forfaits SE2' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9993 AS oid, '99_SE3' AS code, 'Hors GHM. Forfaits SE3' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9994 AS oid, '99_SE4' AS code, 'Hors GHM. Forfaits SE4' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9995 AS oid, '99_ATU' AS code, 'Hors GHM. Forfaits ATU' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9996 AS oid, '99_FFM' AS code, 'Hors GHM. Forfaits FFM' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9990 AS oid, '99_ZZZ' AS code, 'Hors GHM. Divers' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9980 AS oid, '98_P' AS code, 'Champ GHM. Présents' AS texte, -9980 AS cmd_id, '98' AS cmd_code, 'Champ GHM. Non groupés' AS cmd_texte, -9980 AS groupe_id, 'ZY' AS groupe_code, 'Champ GHM. Non groupés' AS groupe_texte + UNION + SELECT -9981 AS oid, '98_NG' AS code, 'Champ GHM. Sortis non groupés' AS texte, -9980 AS cmd_id, '98' AS cmd_code, 'Champ GHM. Non groupés' AS cmd_texte, -9980 AS groupe_id, 'ZY' AS groupe_code, 'Champ GHM. Non groupés' AS groupe_texte) t_ghs + JOIN base.t_mco ON t_mco.code = '*' + JOIN base.t_severites_ghm ON t_severites_ghm.code = '*' + JOIN base.t_cas ON t_cas.code = '*' + WHERE t_ghs_c.ghs_id = t_ghs.oid AND + ( + t_ghs_c.ghs_code IS DISTINCT FROM 0 - t_ghs.oid OR + t_ghs_c.ghs_code_text IS DISTINCT FROM (0 - t_ghs.oid)::text OR + t_ghs_c.ghs_texte IS DISTINCT FROM t_ghs.texte OR + t_ghs_c.ghm_id IS DISTINCT FROM t_ghs.oid OR + t_ghs_c.ghm_code IS DISTINCT FROM t_ghs.code OR + t_ghs_c.ghm_texte IS DISTINCT FROM t_ghs.texte OR + t_ghs_c.mco_id IS DISTINCT FROM t_mco.oid OR + t_ghs_c.mco_code IS DISTINCT FROM t_mco.code OR + t_ghs_c.mco_texte IS DISTINCT FROM t_mco.texte OR + t_ghs_c.cmd_id IS DISTINCT FROM t_ghs.cmd_id OR + t_ghs_c.cmd_code IS DISTINCT FROM t_ghs.cmd_code OR + t_ghs_c.cmd_texte IS DISTINCT FROM t_ghs.cmd_texte + + ); + INSERT INTO activite.t_ghs_c( + ghs_id, + ghs_code, + ghs_code_text, + ghs_texte, + ghm_id, + ghm_code, + ghm_texte, + mco_id, + mco_code, + mco_texte, + cmd_id, + cmd_code, + cmd_texte) + SELECT + t_ghs.oid, + 0 - t_ghs.oid, + (0 - t_ghs.oid)::text, + t_ghs.texte, + t_ghs.oid AS ghm_id, + t_ghs.code AS ghm_code, + t_ghs.texte AS ghm_texte, + t_mco.oid AS mco_id, + t_mco.code AS mco_code, + t_mco.texte AS mco_texte, + cmd_id, + cmd_code, + cmd_texte + FROM ( + SELECT -9991 AS oid, '99_SE1' AS code, 'Hors GHM. Forfaits SE1' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9992 AS oid, '99_SE2' AS code, 'Hors GHM. Forfaits SE2' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9993 AS oid, '99_SE3' AS code, 'Hors GHM. Forfaits SE3' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9994 AS oid, '99_SE4' AS code, 'Hors GHM. Forfaits SE4' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9997 AS oid, '99_SE5' AS code, 'Hors GHM. Forfaits SE5' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9998 AS oid, '99_SE6' AS code, 'Hors GHM. Forfaits SE6' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9995 AS oid, '99_ATU' AS code, 'Hors GHM. Forfaits ATU' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9996 AS oid, '99_FFM' AS code, 'Hors GHM. Forfaits FFM' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9990 AS oid, '99_ZZZ' AS code, 'Hors GHM. Divers' AS texte, -9990 AS cmd_id, '99' AS cmd_code, 'Hors GHM' AS cmd_texte, -9990 AS groupe_id, 'ZZ' AS groupe_code, 'Hors GHM' AS groupe_texte + UNION + SELECT -9980 AS oid, '98_P' AS code, 'Champ GHM. Présents' AS texte, -9980 AS cmd_id, '98' AS cmd_code, 'Champ GHM. Non groupés' AS cmd_texte, -9980 AS groupe_id, 'ZY' AS groupe_code, 'Champ GHM. Non groupés' AS groupe_texte + UNION + SELECT -9981 AS oid, '98_NG' AS code, 'Champ GHM. Sortis non groupés' AS texte, -9980 AS cmd_id, '98' AS cmd_code, 'Champ GHM. Non groupés' AS cmd_texte, -9980 AS groupe_id, 'ZY' AS groupe_code, 'Champ GHM. Non groupés' AS groupe_texte) t_ghs + JOIN base.t_mco ON t_mco.code = '*' + JOIN base.t_severites_ghm ON t_severites_ghm.code = '*' + JOIN base.t_cas ON t_cas.code = '*' + WHERE t_ghs.oid NOT IN (SELECT ghs_id FROM activite.t_ghs_c) + ORDER BY t_ghs.oid; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_gme_c.yaml b/db/schema2/functions/cti_reorganize_gme_c.yaml new file mode 100644 index 0000000..28c7739 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_gme_c.yaml @@ -0,0 +1,86 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + TRUNCATE activite.t_gme_c + ; + INSERT INTO activite.t_gme_c( + gme_id, gme_code, gme_texte, gme_section_id, gme_section_code, gme_section_texte, cm_id, + cm_code, cm_texte, cm_section_id, cm_section_code, cm_section_texte, + gn_id, gn_code, gn_texte, gn_section_id, gn_section_code, gn_section_texte, + rgme_id, rgme_code, rgme_texte, rgme_section_id, rgme_section_code, + rgme_section_texte) + SELECT + t_gme.oid, + t_gme.code, + t_gme.texte, + t_gme.section_id, + t_gme.section_code, + t_gme.section_texte, + t_cm.oid, + t_cm.code, + t_cm.texte, + t_cm.section_id, + t_cm.section_code, + t_cm.section_texte, + t_gn.oid, + t_gn.code, + t_gn.texte, + t_gn.section_id, + t_gn.section_code, + t_gn.section_texte, + t_rgme.oid, + t_rgme.code, + t_rgme.texte, + t_rgme.section_id, + t_rgme.section_code, + t_rgme.section_texte + FROM base.t_gme + JOIN base.t_cm ON t_cm.oid = t_gme.cm_id + JOIN base.t_gn ON t_gn.oid = t_gme.gn_id + JOIN base.t_rgme ON t_rgme.oid = t_gme.rgme_id + ; + INSERT INTO activite.t_gme_c( + gme_id, gme_code, gme_texte, + cm_id, cm_code, cm_texte, + gn_id, gn_code, gn_texte, + rgme_id, rgme_code, rgme_texte + ) + SELECT + oid, + code, + texte, + cm_id, + cm_code, + cm_texte, + gn_id, + gn_code, + gn_texte, + rgme_id, + rgme_code, + rgme_texte + FROM + ( + SELECT -9991 AS oid, '99_MCO' AS code, 'Hors SSR. MCO' AS texte, -9990 AS cm_id, '99' AS cm_code, 'Hors SSR' AS cm_texte, -9990 AS gn_id, 'ZZ' AS gn_code, 'Hors SSR' AS gn_texte, -9990 AS rgme_id, 'ZZ' AS rgme_code, 'Hors SSR' AS rgme_texte + UNION + SELECT -9990 AS oid, '99_ZZZ' AS code, 'Hors SSR. Divers' AS texte, -9990 AS cm_id, '99' AS cm_code, 'Hors SSR' AS cm_texte, -9990 AS gn_id, 'ZZ' AS gn_code, 'Hors SSR' AS gn_texte, -9990 AS rgme_id, 'ZZ' AS rgme_code, 'Hors SSR' AS rgme_texte + UNION + SELECT -9980 AS oid, '98_P' AS code, 'Champ SSR. Présents' AS texte, -9980 AS cm_id, '98' AS cm_code, 'Champ SSR. Non groupés' AS cm_texte, -9980 AS gn_id, 'ZY' AS gn_code, 'Champ SSR. Non groupés' AS gn_texte, -9980 AS rgme_id, 'ZY' AS rgme_code, 'Champ SSR. Non groupés' AS rgme_texte + UNION + SELECT -9981 AS oid, '98_NG' AS code, 'Champ SSR. Sortis non groupés' AS texte, -9980 AS cm_id, '98' AS cm_code, 'Champ SSR. Non groupés' AS cm_texte, -9980 AS gn_id, 'ZY' AS gn_code, 'Champ SSR. Non groupés' AS gn_texte, -9980 AS rgme_id, 'ZY' AS rgme_code, 'Champ SSR. Non groupés' AS rgme_texte + UNION + SELECT -9982 AS oid, '98_AX' AS code, 'Champ SSR. Sortis avant première expédition' AS texte, -9980 AS cm_id, '98' AS cm_code, 'Champ SSR. Non groupés' AS cm_texte, -9980 AS gn_id, 'ZY' AS gn_code, 'Champ SSR. Non groupés' AS gn_texte, -9980 AS rgme_id, 'ZY' AS rgme_code, 'Champ SSR. Non groupés' AS rgme_texte + + ) subview + WHERE oid NOT IN (SELECT gme_id FROM activite.t_gme_c) + ; + + ANALYSE activite.t_gme_c + ; + + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_gmt_c.yaml b/db/schema2/functions/cti_reorganize_gmt_c.yaml new file mode 100644 index 0000000..cd206a5 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_gmt_c.yaml @@ -0,0 +1,32 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + -- Standard + UPDATE activite.t_gmt_c + SET + gmt_code = t_gmt.code, + gmt_texte = t_gmt.texte + FROM base.t_gmt + WHERE + t_gmt_c.gmt_id = t_gmt.oid + AND ( + t_gmt_c.gmt_code IS DISTINCT FROM t_gmt.code OR + t_gmt_c.gmt_texte IS DISTINCT FROM t_gmt.texte + ); + INSERT INTO activite.t_gmt_c( + gmt_id, gmt_code,gmt_texte) + SELECT + t_gmt.oid, + t_gmt.code, + t_gmt.texte + FROM base.t_gmt + WHERE t_gmt.oid NOT IN (SELECT gmt_id FROM activite.t_gmt_c) + ORDER BY t_gmt.oid; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_indicateur_condition.yaml b/db/schema2/functions/cti_reorganize_indicateur_condition.yaml new file mode 100644 index 0000000..0d6d7ef --- /dev/null +++ b/db/schema2/functions/cti_reorganize_indicateur_condition.yaml @@ -0,0 +1,1410 @@ +return: text +lang: plpgsql +src: | + DECLARE + + sqlcmd text; + def_cursor refcursor; + _schemaname text; + result TEXT; + BEGIN + + -- Etablissements + DROP TABLE IF EXISTS w_indicateur_condition; + CREATE TEMP TABLE w_indicateur_condition AS + SELECT + 'CTI_FINESS#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Etablissement ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'finess_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'FINESS='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.code + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + + ] AS arbre_texte + FROM activite.v_finess_1 v_source + LEFT JOIN base.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN base.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN base.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN base.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + WHERE v_source.oid NOT LIKE 'LC%' AND + v_source.oid <> 'DT0' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Unités médicales + INSERT INTO w_indicateur_condition + SELECT + 'CTI_UMMOUVEMENT#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'UM ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'lieu_unite_medicale_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'UM_MOUVEMENT='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'UM%' THEN COALESCE('UM#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_unites_medicales_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_unites_medicales t_source ON v_source.oid LIKE 'UM%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + (v_source.oid LIKE 'UM%' OR v_source.oid LIKE 'LS%' OR v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%')AND + v_source.oid <> 'UM0' + ; + + -- Etablissements + INSERT INTO w_indicateur_condition + SELECT + 'CTI_POLE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Pole ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'pole_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'POLE='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.code + ELSE v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + + ] AS arbre_texte + FROM activite.v_pole_2 v_source + LEFT JOIN base.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN base.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN base.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN base.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + WHERE v_source.oid NOT LIKE 'LC%' AND + v_source.oid <> 'DT0' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Formes d'activité + INSERT INTO w_indicateur_condition + SELECT + 'CTI_FORMEACTIVITE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Forme d''activité ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'forme_activite_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'FORMEACTIVITE='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + + ] AS arbre_texte + FROM activite.v_forme_activite_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_forme_activite t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Filières de soin + INSERT INTO w_indicateur_condition + SELECT + 'CTI_FILIERESOIN#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Filiere soins ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'filiere_soin_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'FILIERESOINSEJOUR='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'DT%' THEN COALESCE('DT#'||t_source.code,v_source.oid) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + + ] AS arbre_texte + FROM activite.v_filiere_soin_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_filiere_soin t_source ON v_source.oid LIKE 'DT%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Types de séjour + INSERT INTO w_indicateur_condition + SELECT + 'CTI_TYPESEJOUR#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Type de séjour ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'type_sejour_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'TYPESEJOUR='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'DT%' THEN v_source.oid + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM activite.v_type_sejour_1 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Durée séjour + INSERT INTO w_indicateur_condition + SELECT + 'CTI_DUREESEJOUR#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Durée séjour ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'duree_sejour_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'DUREESEJOUR='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'DT%' THEN v_source.oid + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes_sections.texte + ELSE v_source.texte END + ] AS arbre_texte + FROM activite.v_durees_sejour_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + WHERE v_source.oid NOT LIKE 'LC%' AND + v_source.oid NOT LIKE 'DU%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' + ; + + -- Etages + INSERT INTO w_indicateur_condition + SELECT + 'CTI_ETAGEMOUVEMENT#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Etage. ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'lieu_etage_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'ETAGE_MOUVEMENT='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'ET%' THEN COALESCE('ET#'||t_source.code,v_source.oid) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_etages_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_etages t_source ON v_source.oid LIKE 'ET%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'ET0' + ; + + -- Services + INSERT INTO w_indicateur_condition + SELECT + 'CTI_SERVICEMOUVEMENT#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Service ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'lieu_service_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'SERVICE_MOUVEMENT='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SF%' THEN COALESCE('SF#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_services_facturation_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_services_facturation t_source ON v_source.oid LIKE 'SF%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'SF0' + ; + + -- Activités + INSERT INTO w_indicateur_condition + SELECT + 'CTI_ACTIVITEMOUVEMENT#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'Activite ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'lieu_activite_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'ACTIVITE_MOUVEMENT='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SF%' THEN COALESCE('SF#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_activites_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_activites t_source ON v_source.oid LIKE 'AC%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'AC0' + ; + + -- Unités fonctionnelles + INSERT INTO w_indicateur_condition + SELECT + 'CTI_UFMOUVEMENT#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'UF ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'lieu_unite_fonctionnelle_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'UF_MOUVEMENT='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'UF%' THEN COALESCE('UF#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_unites_fonctionnelles_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_unites_fonctionnelles t_source ON v_source.oid LIKE 'UF%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'UF0' + ; + + -- Médecins séjours + INSERT INTO w_indicateur_condition + SELECT + 'CTI_MEDECINSEJOUR#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte, + CASE WHEN v_source.oid LIKE 'SP%' THEN 'Spécialité ' ELSE 'Médecin ' END || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + CASE WHEN v_source.oid LIKE 'SP%' THEN 'medecin_sejour_specialite_id' ELSE 'medecin_adm_sejour_id' END AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'MEDECIN_SEJOUR='||v_source.oid||'&MEDECIN_MOUVEMENT='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SP%' THEN COALESCE('SP#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + + ] AS arbre_texte + FROM activite.v_medecins_5 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN base.t_specialites_medecin t_source ON v_source.oid LIKE 'SP%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid NOT LIKE 'MD%' AND + v_source.oid NOT LIKE 'MA%' + ; + + + -- Médecins séjours + INSERT INTO w_indicateur_condition + SELECT + 'CTI_MEDECINFACTURE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte, + CASE WHEN v_source.oid LIKE 'SP%' THEN 'Spécialité ' ELSE 'Médecin facturé ' END || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + CASE WHEN v_source.oid LIKE 'SP%' THEN 'medecin_facture_specialite_id' ELSE 'medecin_adm_facture_id' END AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'MEDECINEXECUTANT='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SP%' THEN COALESCE('SP#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + + ] AS arbre_texte + FROM activite.v_medecins_6 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN base.t_specialites_medecin t_source ON v_source.oid LIKE 'SP%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid NOT LIKE 'MD%' AND + v_source.oid NOT LIKE 'MA%' + ; + + + + -- Modes entrees + INSERT INTO w_indicateur_condition + SELECT + 'CTI_MODEENTREE#' || v_source.code::text AS code, + 'Mode entree ' || v_source.texte::text AS texte, + v_source.texte AS texte_court, + 'mode_entree'::text AS column_name, + ''::text AS rule, + v_source.code::text AS value, + 'MODE_ENTREE='||v_source.code AS view_select_rule, + ARRAY[ + '9'::text, + 'ME#'||t_source.code + + ] AS arbre_code, + ARRAY[ + 'Valeurs'::text, + v_source.texte + ] AS arbre_texte + FROM activite.v_modes_entree_2 v_source + JOIN base.t_modes_entree t_source ON t_source.code = substr(v_source.code,3) + WHERE + v_source.code <> 'ME' + ; + + -- Modes sortie + INSERT INTO w_indicateur_condition + SELECT + 'CTI_MODESORTIE#' || v_source.code::text AS code, + 'Mode sortie ' || v_source.texte::text AS texte, + v_source.texte AS texte_court, + 'mode_sortie'::text AS column_name, + ''::text AS rule, + v_source.code::text AS value, + 'MODE_SORTIE='||v_source.code AS view_select_rule, + ARRAY[ + '9'::text, + 'MS#'||t_source.code + + ] AS arbre_code, + ARRAY[ + 'Valeurs'::text, + v_source.texte + ] AS arbre_texte + FROM activite.v_modes_sortie_2 v_source + JOIN base.t_modes_sortie t_source ON t_source.code = substr(v_source.code,3) + WHERE + v_source.code <> 'MS' + ; + + + + + -- codes postaux + INSERT INTO w_indicateur_condition + SELECT + 'CTI_CODEPOSTAL#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte, + CASE WHEN v_source.oid LIKE 'DP%' THEN 'Département ' ELSE 'Code postal ' END || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + CASE WHEN v_source.oid LIKE 'DP%' THEN 'departement_id' ELSE 'code_postal_id' END AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'ORIGINEGEO_PATIENT='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'DP%' THEN COALESCE('DP#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + + ] AS arbre_texte + FROM activite.v_codes_postaux_3 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN base.t_departements t_source ON v_source.oid LIKE 'SP%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'DP0' AND + v_source.oid NOT LIKE 'CP%' AND + v_source.oid NOT LIKE 'DG%' AND + v_source.oid NOT LIKE 'GP%' AND + v_source.oid NOT LIKE 'TS%' AND + v_source.code <> '-1' AND + (trim(v_source.code) <> '' OR v_source.oid LIKE 'LS%' OR v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') + ; + + + -- codes postaux + INSERT INTO w_indicateur_condition + SELECT + 'CTI_GHM#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte, + CASE WHEN v_source.oid LIKE 'GM%' THEN 'GHM ' ELSE 'GHM ' END || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + CASE WHEN v_source.oid LIKE 'GM%' THEN 'ghm_id' ELSE 'ghm_id' END AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'GHM='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'DP%' THEN COALESCE('DP#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + + ] AS arbre_texte + FROM activite.v_ghm_c_1 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN base.t_ghm t_source ON v_source.oid LIKE 'GM%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + (v_source.oid LIKE 'LS%' OR v_source.oid LIKE 'LI%') + ; + + -- Clés budgétaires + INSERT INTO w_indicateur_condition + SELECT + 'CTI_BUDGETCLE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte, + 'Clé budgétaire ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'budget_cle_id' AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'BUDGET_CLE='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'DP%' THEN COALESCE('DP#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + + ] AS arbre_texte + FROM activite.v_budget_cle_1 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_budget_cle t_source ON v_source.oid LIKE 'GM%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + (v_source.oid LIKE 'LS%' OR v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%' OR v_source.oid LIKE 'DT%') + ; + + -- Rubrique facturée + INSERT INTO w_indicateur_condition + SELECT + 'CTI_RUBRIQUE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'RUB ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'rubrique_facturation_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'RUBRIQUE='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'UF%' THEN COALESCE('UF#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_rubriques_facturation_2 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_rubriques_facturation t_source ON v_source.oid LIKE 'RU%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'RU0' + ; + + -- Prestation + INSERT INTO w_indicateur_condition + SELECT + 'CTI_PRESTA#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'PRESTATION ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'prestation_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'PRESTATION='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'UF%' THEN COALESCE('UF#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_prestations_3 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_prestations t_source ON v_source.oid LIKE 'PR%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'PR0' + UNION + SELECT + 'CTI_PRESTA#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'PRESTATION ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'prestation_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'PRESTATION='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + + WHEN (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste ETS' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'UF%' THEN COALESCE('UF#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_prestations_4 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_prestations t_source ON v_source.oid LIKE 'PR%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid <> 'PR0' + ORDER BY 1 + ; + + + -- Rubrique facturée + INSERT INTO w_indicateur_condition + SELECT + 'CTI_ACTE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'ACTE ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'acte_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'ACTE='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'UF%' THEN COALESCE('UF#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_actes_3 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN base.t_actes t_source ON v_source.oid LIKE 'RU%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + v_source.oid NOT LIKE 'AC%' AND + v_source.oid NOT LIKE 'NO%' AND + v_source.oid <> 'AC0' + ; + + -- Comptes + INSERT INTO w_indicateur_condition + SELECT + 'CTI_COMPTE#' || v_source.oid::text AS code, + COALESCE(t_classes.texte || '. ' || t_classes_sections.texte,'CPT ' || v_source.texte::text) AS texte, + v_source.texte AS texte_court, + 'compte_produit_id'::text AS column_name, + ''::text AS rule, + v_source.oid::text AS value, + 'COMPTE='||v_source.oid AS view_select_rule, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN '1-Classe' || substr(v_source.oid,3,2) + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '2-Liste CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN '3-Liste CTI' + ELSE '9' END, + CASE + WHEN v_source.oid LIKE 'LS%' THEN 'LS#'||t_listes_tables_classes.code||':'||CASE WHEN t_classes.code <> '' THEN t_classes.code ELSE '*CLS'||to_char(t_classes.sequence,'FM00') END||':'||t_classes_sections.code + WHEN v_source.oid LIKE 'LI%' THEN 'LI#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'SL%' THEN 'SL#'||t_listes_tables_listes.code||':'||CASE WHEN t_listes.code <> '' THEN t_listes.code ELSE '*TXT:'||upper(t_listes.texte) END + WHEN v_source.oid LIKE 'UM%' THEN COALESCE('UM#'||t_source.code,v_source.texte) + ELSE '###'||v_source.oid END + + ] AS arbre_code, + ARRAY[ + CASE + WHEN v_source.oid LIKE 'LS%' THEN t_classes.texte + WHEN v_source.is_cti = '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes CTI' + WHEN v_source.is_cti <> '1' AND (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') THEN 'Listes Etablissement' + ELSE 'Valeurs' END, + v_source.texte + ] AS arbre_texte + FROM activite.v_compte_1 v_source + LEFT JOIN activite.t_classes_sections ON v_source.oid LIKE 'LS%' AND + t_classes_sections.oid::text = substr(v_source.oid,5) + LEFT JOIN activite.t_classes ON t_classes.oid = t_classes_sections.classe_id + LEFT JOIN activite.t_listes_tables t_listes_tables_classes ON t_classes.table_id = t_listes_tables_classes.oid + LEFT JOIN activite.t_listes ON (v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%') AND + t_listes.oid::text = substr(v_source.oid,3) AND + t_listes.code <> '' + LEFT JOIN activite.t_listes_tables t_listes_tables_listes ON t_listes.table_id = t_listes_tables_listes.oid + LEFT JOIN activite.t_unites_medicales t_source ON v_source.oid LIKE 'UM%' AND t_source.oid = substr(v_source.oid,3) + WHERE v_source.oid NOT LIKE 'LC%' AND + (v_source.oid NOT LIKE 'LS%' OR substr(v_source.oid,5) <> '0') AND + v_source.oid <> '-1' AND + (v_source.oid LIKE 'DT%' OR v_source.oid LIKE 'LS%' OR v_source.oid LIKE 'LI%' OR v_source.oid LIKE 'SL%')AND + v_source.oid <> 'DT0' + ; + + + INSERT INTO activite.t_indicateur_condition(code, texte,texte_court,column_name,rule,value,view_select_rule, arbre_code, arbre_texte) + SELECT code, texte,texte_court,column_name,rule,value,view_select_rule, arbre_code, arbre_texte + FROM w_indicateur_condition + WHERE code NOT IN (SELECT code FROM activite.t_indicateur_condition WHERE code IS NOT NULL) + ; + + UPDATE activite.t_indicateur_condition SET + texte = w_indicateur_condition.texte, + texte_court = w_indicateur_condition.texte_court, + column_name = w_indicateur_condition.column_name, + rule = w_indicateur_condition.rule, + value = w_indicateur_condition.value, + view_select_rule = w_indicateur_condition.view_select_rule, + arbre_code = w_indicateur_condition.arbre_code, + arbre_texte = w_indicateur_condition.arbre_texte + FROM w_indicateur_condition + WHERE w_indicateur_condition.code = t_indicateur_condition.code AND + ( + t_indicateur_condition.texte IS DISTINCT FROM w_indicateur_condition.texte OR + t_indicateur_condition.texte_court IS DISTINCT FROM w_indicateur_condition.texte_court OR + t_indicateur_condition.column_name IS DISTINCT FROM w_indicateur_condition.column_name OR + t_indicateur_condition.rule IS DISTINCT FROM w_indicateur_condition.rule OR + t_indicateur_condition.value IS DISTINCT FROM w_indicateur_condition.value OR + t_indicateur_condition.view_select_rule IS DISTINCT FROM w_indicateur_condition.view_select_rule OR + t_indicateur_condition.arbre_code IS DISTINCT FROM w_indicateur_condition.arbre_code OR + t_indicateur_condition.arbre_texte IS DISTINCT FROM w_indicateur_condition.arbre_texte + ) + ; + + DELETE FROM activite.t_indicateur_condition + WHERE code LIKE 'CTI%' AND + code NOT IN (SELECT code FROM w_indicateur_condition) + ; + + UPDATE activite.t_indicateur_condition SET + column_texte = CASE column_name + WHEN 'lieu_unite_medicale_id' THEN 'Unité médicale' + WHEN 'finess_id' THEN 'Etablissement' + WHEN 'forme_activite_id' THEN 'Forme d''activité' + WHEN 'type_sejour_id' THEN 'Type de séjour' + WHEN 'lieu_etage_id' THEN 'Etage Mouvement' + WHEN 'lieu_activite_id' THEN 'Activité Mouvement' + WHEN 'lieu_service_id' THEN 'Service Mouvement' + WHEN 'lieu_unite_fonctionnelle_id' THEN 'UF Mouvement' + WHEN 'medecin_sejour_specialite_id' THEN 'Spécialité Médecin' + WHEN 'medecin_adm_sejour_id' THEN 'Médecin séjour' + ELSE replace(Upper(substr(split_part(column_name,'_id',1),1,1)) || substr(split_part(column_name,'_id',1),2),'_',' ') END + WHERE + column_texte IS DISTINCT FROM + CASE column_name + WHEN 'lieu_unite_medicale_id' THEN 'Unité médicale' + WHEN 'finess_id' THEN 'Etablissement' + WHEN 'forme_activite_id' THEN 'Forme d''activité' + WHEN 'type_sejour_id' THEN 'Type de séjour' + WHEN 'lieu_etage_id' THEN 'Etage Mouvement' + WHEN 'lieu_activite_id' THEN 'Activité Mouvement' + WHEN 'lieu_service_id' THEN 'Service Mouvement' + WHEN 'lieu_unite_fonctionnelle_id' THEN 'UF Mouvement' + WHEN 'medecin_sejour_specialite_id' THEN 'Spécialité Médecin' + WHEN 'medecin_adm_sejour_id' THEN 'Médecin séjour' + ELSE replace(Upper(substr(split_part(column_name,'_id',1),1,1)) || substr(split_part(column_name,'_id',1),2),'_',' ') END + ; + + UPDATE activite.t_indicateur_condition + SET external_code = split_part(code,'#',1)||'#'||arbre_code[2] + WHERE external_code IS DISTINCT FROM (split_part(code,'#',1)||'#'||arbre_code[2]) + ; + + + DROP TABLE IF EXISTS w_indicateur_condition_table; + CREATE TEMP TABLE w_indicateur_condition_table AS + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + ''::text As table_name, + t_indicateur_condition.column_name || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN '= ANY(ARRAY' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN '= ANY(ARRAY' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN '<> ALL(ARRAY' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN '=' + ELSE '=' + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN + '(SELECT to_id FROM ' || CASE WHEN t_indicateur_condition.column_name <> 'finess_id' THEN 'activite' ELSE 'base' END ||'.t_classes_sections_elements WHERE section_id = ' || substr(value,5) || ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN + '(SELECT to_id FROM ' || CASE WHEN t_indicateur_condition.column_name <> 'finess_id' THEN 'activite' ELSE 'base' END ||'.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN + '(SELECT to_id FROM ' || CASE WHEN t_indicateur_condition.column_name <> 'finess_id' THEN 'activite' ELSE 'base' END ||'.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN + substr(value,3) + ELSE substr(value,3) + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN ')' + ELSE '' + END AS check_where + FROM activite.t_indicateur_condition + WHERE t_indicateur_condition.code LIKE 'CTI%' + ; + + INSERT INTO w_indicateur_condition_table + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + 'PLACES'::text As table_name, + ''::text AS check_where + FROM activite.t_indicateur_condition + LEFT JOIN activite.t_divers ON t_divers.code = 'PLACESREF' + WHERE t_indicateur_condition.code LIKE 'CTI%' AND + ( + column_name IN ('forme_activite_id', 'medecin_sejour_specialite_id','medecin_adm_sejour_id', 'lieu_unite_medicale_id') OR + column_name = 'lieu_service_id' AND t_divers.valeur NOT IN ('SER') OR + column_name = 'lieu_unite_fonctionnelle_id' AND t_divers.valeur NOT IN ('UF') OR + column_name = 'lieu_etage_id' AND t_divers.valeur IN ('SER','UF') OR + column_name = 'budget_cle_id' + ) + ; + INSERT INTO w_indicateur_condition_table + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + 'PLACES'::text As table_name, + CASE t_divers.valeur + WHEN 'SER' THEN 'service_id' + WHEN 'UF' THEN 'uf_id' + ELSE 'etage_id' END + || ' '::text || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN 'NOT IN' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN '=' + ELSE '=' + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN + '(SELECT to_id FROM activite.t_classes_sections_elements WHERE section_id = ' || substr(value,5) || ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN + substr(value,3) + ELSE substr(value,3) + END AS check_where + FROM activite.t_indicateur_condition + LEFT JOIN activite.t_divers ON t_divers.code = 'PLACESREF' + WHERE t_indicateur_condition.code LIKE 'CTI%' AND + ( + column_name = 'lieu_service_id' AND t_divers.valeur IN ('SER') OR + column_name = 'lieu_unite_fonctionnelle_id' AND t_divers.valeur IN ('UF') OR + column_name = 'lieu_etage_id' AND t_divers.valeur NOT IN ('SER','UF') + ) + ; + + INSERT INTO w_indicateur_condition_table + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + 'FACTURATION_CLINIQUE'::text As table_name, + replace(column_name,'lieu_','lieu_ligne_') || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN 'NOT IN' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN '=' + ELSE '=' + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN + '(SELECT to_id FROM activite.t_classes_sections_elements WHERE section_id = ' || substr(value,5) || ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN + substr(value,3) + ELSE substr(value,3) + END AS check_where + FROM activite.t_indicateur_condition + WHERE t_indicateur_condition.code LIKE 'CTI%' AND + column_name IN ('lieu_etage_id', 'lieu_activite_id', 'lieu_service_id', 'lieu_unite_fonctionnelle_id', 'lieu_unite_medicale_id') + ; + + INSERT INTO w_indicateur_condition_table + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + 'FACTURATION_HONORAIRE'::text As table_name, + replace(column_name,'lieu_','lieu_ligne_') || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN 'NOT IN' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN '=' + ELSE '=' + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN + '(SELECT to_id FROM activite.t_classes_sections_elements WHERE section_id = ' || substr(value,5) || ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN + substr(value,3) + ELSE substr(value,3) + END AS check_where + FROM activite.t_indicateur_condition + WHERE t_indicateur_condition.code LIKE 'CTI%' AND + column_name IN ('lieu_etage_id', 'lieu_activite_id', 'lieu_service_id', 'lieu_unite_fonctionnelle_id', 'lieu_unite_medicale_id') + ; + + INSERT INTO w_indicateur_condition_table + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + 'EN_COURS'::text As table_name, + replace(column_name,'lieu_','lieu_reference_') || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN 'NOT IN' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN '=' + ELSE '=' + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN + '(SELECT to_id FROM activite.t_classes_sections_elements WHERE section_id = ' || substr(value,5) || ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN + substr(value,3) + ELSE substr(value,3) + END AS check_where + FROM activite.t_indicateur_condition + WHERE t_indicateur_condition.code LIKE 'CTI%' AND + column_name IN ('lieu_etage_id', 'lieu_activite_id', 'lieu_service_id', 'lieu_unite_fonctionnelle_id', 'lieu_unite_medicale_id') + ; + + INSERT INTO w_indicateur_condition_table + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + 'SEJOURS'::text As table_name, + replace(column_name,'lieu_','lieu_sortie_') || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN 'IN' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN 'NOT IN' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN '=' + ELSE '=' + END || ' ' || + CASE + WHEN t_indicateur_condition.value LIKE 'LS%' THEN + '(SELECT to_id FROM activite.t_classes_sections_elements WHERE section_id = ' || substr(value,5) || ')' + WHEN t_indicateur_condition.value LIKE 'LI%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'SL%' THEN + '(SELECT to_id FROM activite.t_listes_contenu WHERE liste_id = ' || substr(value,3) || ')' + WHEN t_indicateur_condition.value LIKE 'DT%' THEN + substr(value,3) + ELSE substr(value,3) + END AS check_where + FROM activite.t_indicateur_condition + WHERE t_indicateur_condition.code LIKE 'CTI%' AND + column_name IN ('lieu_etage_id', 'lieu_activite_id', 'lieu_service_id', 'lieu_unite_fonctionnelle_id', 'lieu_unite_medicale_id') + ; + + INSERT INTO w_indicateur_condition_table + SELECT t_indicateur_condition.oid AS indicateur_condition_id, + 'BUDGET_ACTIVITE'::text As table_name, + '1<>1' AS check_where + FROM activite.t_indicateur_condition + WHERE t_indicateur_condition.code LIKE 'CTI%' AND + column_name NOT IN ('budget_cle_id') + ; + + INSERT INTO activite.t_indicateur_condition_table(indicateur_condition_id, table_name, check_where) + SELECT indicateur_condition_id, table_name, check_where + FROM w_indicateur_condition_table + WHERE (indicateur_condition_id || '-' || table_name) NOT IN + (SELECT indicateur_condition_id || '-' || table_name FROM activite.t_indicateur_condition_table WHERE table_name IS NOT NULL) + ; + + UPDATE activite.t_indicateur_condition_table SET + check_where = w_indicateur_condition_table.check_where + FROM w_indicateur_condition_table + WHERE t_indicateur_condition_table.indicateur_condition_id = w_indicateur_condition_table.indicateur_condition_id AND + t_indicateur_condition_table.table_name = w_indicateur_condition_table.table_name AND + ( + t_indicateur_condition_table.check_where IS DISTINCT FROM w_indicateur_condition_table.check_where + ) + ; + + DELETE FROM activite.t_indicateur_condition_table + USING activite.t_indicateur_condition + WHERE t_indicateur_condition.oid = t_indicateur_condition_table.indicateur_condition_id AND + t_indicateur_condition.code LIKE 'CTI%' AND + (indicateur_condition_id || '-' || table_name) NOT IN + (SELECT indicateur_condition_id || '-' || table_name FROM w_indicateur_condition_table WHERE table_name IS NOT NULL) + ; + + UPDATE activite.t_indicateur_condition_table + SET check_where = 'type_sejour_id IN (1,2)' + WHERE check_where ilike '%type_sejour_id = 12%' + ; + + UPDATE activite.t_indicateur_condition_table + SET check_where = replace(check_where,'duree_sejour_id','duree') + WHERE check_where ilike '%duree_sejour_id%' + ; + + + RETURN 'OK'; + + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_lieux_c.yaml b/db/schema2/functions/cti_reorganize_lieux_c.yaml new file mode 100644 index 0000000..b2073b3 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_lieux_c.yaml @@ -0,0 +1,940 @@ +return: text +lang: plpgsql +src: | + DECLARE + + + + result TEXT; + BEGIN + -- Nouvelles colonnes pour compatibilité descendante + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.t_services_facturation' AND + column_name = 'activite_par_defaut_id') THEN + ALTER TABLE activite.t_services_facturation ADD COLUMN activite_par_defaut_id bigint DEFAULT 0; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.t_services_facturation' AND + column_name = 'activite_force_id') THEN + ALTER TABLE activite.t_services_facturation ADD COLUMN activite_force_id bigint DEFAULT 0; + END IF; + + -- Import de l'historique des lits + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'ETALITCSVFILE', + 'Emplacement du fichier CSV qui contient l''historique des places', + '', + 'Emplacement du fichier CSV qui contient l''historique des places' + WHERE 'ETALITCSVFILE' NOT IN (SELECT code FROM activite.t_divers) + ; + + + IF EXISTS (SELECT valeur FROM activite.t_divers WHERE code = 'ETALITCSVFILE' AND valeur <> '' LIMIT 1) THEN + BEGIN + + DROP TABLE IF EXISTS w_data; + CREATE TEMP TABLE w_data ( + etage_code text DEFAULT '', + etage_id bigint DEFAULT 0, + date_debut date, + nb_lits_theoriques numeric DEFAULT 0, + nb_lits_ouverts numeric DEFAULT 0, + nb_box_ambulatoires_theoriques numeric DEFAULT 0, + nb_box_ambulatoires_ouverts numeric DEFAULT 0, + nb_box_seances_theoriques numeric DEFAULT 0, + nb_box_seances_ouverts numeric DEFAULT 0, + nb_lits_cp_theoriques numeric DEFAULT 0, + nb_lits_cp_ouverts numeric DEFAULT 0, + est_ouvert_1 text DEFAULT '1', + est_ouvert_2 text DEFAULT '1', + est_ouvert_3 text DEFAULT '1', + est_ouvert_4 text DEFAULT '1', + est_ouvert_5 text DEFAULT '1', + est_ouvert_6 text DEFAULT '1', + est_ouvert_7 text DEFAULT '1', + source text); + + PERFORM base.cti_execute(' + COPY w_data (source) FROM ''' || (SELECT valeur FROM activite.t_divers WHERE code = 'ETALITCSVFILE') || '''' ,1) + FROM activite.t_divers + WHERE code = 'ETALITCSVFILE' AND valeur <> '' + ; + + UPDATE w_data SET + etage_code = split_part(source,';',1), + etage_id = t_etages.oid, + date_debut = base.cti_to_date(split_part(source,';',3)), + nb_lits_theoriques = base.cti_to_number(split_part(source,';',4)), + nb_lits_ouverts = base.cti_to_number(split_part(source,';',5)), + nb_box_ambulatoires_theoriques = base.cti_to_number(split_part(source,';',6)), + nb_box_ambulatoires_ouverts = base.cti_to_number(split_part(source,';',7)), + nb_box_seances_theoriques = base.cti_to_number(split_part(source,';',8)), + nb_box_seances_ouverts = base.cti_to_number(split_part(source,';',9)), + nb_lits_cp_theoriques = base.cti_to_number(split_part(source,';',10)), + nb_lits_cp_ouverts = base.cti_to_number(split_part(source,';',11)), + est_ouvert_1 = CASE WHEN split_part(source,';',12) IN ('0','N') THEN '0' ELSE '1' END, + est_ouvert_2 = CASE WHEN split_part(source,';',13) IN ('0','N') THEN '0' ELSE '1' END, + est_ouvert_3 = CASE WHEN split_part(source,';',14) IN ('0','N') THEN '0' ELSE '1' END, + est_ouvert_4 = CASE WHEN split_part(source,';',15) IN ('0','N') THEN '0' ELSE '1' END, + est_ouvert_5 = CASE WHEN split_part(source,';',16) IN ('0','N') THEN '0' ELSE '1' END, + est_ouvert_6 = CASE WHEN split_part(source,';',17) IN ('0','N') THEN '0' ELSE '1' END, + est_ouvert_7 = CASE WHEN split_part(source,';',18) IN ('0','N') THEN '0' ELSE '1' END + FROM activite.t_etages + WHERE split_part(source,';',1) = t_etages.code + ; + + DELETE + FROM activite.t_etages_historique + USING + ( + SELECT etage_id, MIN(date_debut) AS date_debut + FROM w_data + WHERE etage_id <> 0 AND date_debut IS NOT NULL + GROUP BY 1 + ) subview + WHERE t_etages_historique.etage_id = subview.etage_id AND + t_etages_historique.date >= subview.date_debut + ; + + INSERT INTO activite.t_etages_historique ( + etage_id, + date, + nb_lits_theoriques, + nb_lits_ouverts, + nb_box_ambulatoires_theoriques, + nb_box_ambulatoires_ouverts, + nb_box_seances_theoriques, + nb_box_seances_ouverts, + nb_lits_cp_theoriques, + nb_lits_cp_ouverts, + est_ouvert_1, + est_ouvert_2, + est_ouvert_3, + est_ouvert_4, + est_ouvert_5, + est_ouvert_6, + est_ouvert_7 + ) + SELECT + etage_id, + date_debut, + nb_lits_theoriques, + nb_lits_ouverts, + nb_box_ambulatoires_theoriques, + nb_box_ambulatoires_ouverts, + nb_box_seances_theoriques, + nb_box_seances_ouverts, + nb_lits_cp_theoriques, + nb_lits_cp_ouverts, + est_ouvert_1, + est_ouvert_2, + est_ouvert_3, + est_ouvert_4, + est_ouvert_5, + est_ouvert_6, + est_ouvert_7 + FROM w_data + WHERE etage_id <> 0 AND date_debut IS NOT NULL + ; + + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , 'Import historique des lits CSV'; + END; + END IF; + + -- Initialisation valeurs par défaut + UPDATE activite.t_services_facturation SET etage_par_defaut_id = 0 WHERE etage_par_defaut_id IS NULL; + UPDATE activite.t_services_facturation SET etage_force_id = 0 WHERE etage_force_id IS NULL; + UPDATE activite.t_services_facturation SET activite_par_defaut_id = 0 WHERE activite_par_defaut_id IS NULL; + UPDATE activite.t_services_facturation SET activite_force_id = 0 WHERE activite_force_id IS NULL; + UPDATE activite.t_etages SET service_force_id = 0 WHERE service_force_id IS NULL; + UPDATE activite.t_etages SET remplacer_par_valeur_par_defaut = '0' WHERE remplacer_par_valeur_par_defaut IS NULL; + UPDATE activite.t_unites_medicales SET etage_par_defaut_id = 0 WHERE etage_par_defaut_id IS NULL; + UPDATE activite.t_unites_medicales SET etage_force_id = 0 WHERE etage_force_id IS NULL; + + INSERT INTO activite.t_lits (oid, texte, texte_court, etage_id, code, chambre_particuliere) + SELECT 0, 'Non renseigné', 'Non renseigné', 0, '*', 'N' + WHERE 0 NOT IN (SELECT oid FROM activite.t_lits WHERE oid = 0) + ; + + INSERT INTO activite.t_lieux(oid) + SELECT 0 WHERE 0 NOT IN (SELECT oid FROM activite.t_lieux WHERE oid = 0) + ; + + WITH to_del AS ( + SELECT t_lieux_c.oid + FROM activite.t_lieux_c + LEFT JOIN activite.t_lieux on t_lieux.oid = t_lieux_c.oid + WHERE t_lieux.oid IS NULL + ) + DELETE FROM activite.t_lieux_c + USING to_del + WHERE t_lieux_c.oid = to_del.oid + ; + -- Coherence historique lits + + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_lit_historique') THEN + CREATE TEMP TABLE w_lit_historique (sequence bigint, lit_id bigint, date_debut date, date_fin date, oid bigint); + ELSE + TRUNCATE w_lit_historique; + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_sequence') THEN + CREATE TEMP SEQUENCE w_sequence; + ELSE + END IF; + + DELETE FROM activite.t_lit_historique + USING + ( + SELECT lit_id, MIN(date_debut) AS keep_date + FROm activite.t_lit_historique + GROUP BY 1 + having count(*) > 1 AND + count(DISTINCT etage_id) = 1 + ) subview + where t_lit_historique.lit_id = subview.lit_id AND + date_debut <> keep_date + ; + + INSERT INTO w_lit_historique + SELECT nextval('w_sequence'::regclass) AS sequence, * + FROM ( + SELECT t_lit_historique.lit_id, date_debut, date_fin, t_lit_historique.oid + FROM activite.t_lit_historique + ORDER BY 1,2 + ) subview; + + UPDATE activite.t_lit_historique + SET date_debut = '00010101' + FROM w_lit_historique + LEFT JOIN w_lit_historique w_lit_historique_b + ON w_lit_historique.lit_id = w_lit_historique_b.lit_id AND + w_lit_historique.sequence = w_lit_historique_b.sequence +1 + WHERE t_lit_historique.oid = w_lit_historique.oid AND + t_lit_historique.date_debut IS DISTINCT FROM '00010101' AND + w_lit_historique_b.oid IS NULL; + UPDATE activite.t_lit_historique + SET date_fin = CASE WHEN w_lit_historique_p.oid IS NULL THEN '20991231' ELSE date(w_lit_historique_p.date_debut - interval '1 day') END + FROM w_lit_historique w_lit_historique_2 + LEFT JOIN w_lit_historique w_lit_historique_p + ON w_lit_historique_2.lit_id = w_lit_historique_p.lit_id AND + w_lit_historique_2.sequence = w_lit_historique_p.sequence -1 + WHERE t_lit_historique.oid = w_lit_historique_2.oid AND + t_lit_historique.date_fin IS DISTINCT FROM CASE WHEN w_lit_historique_p.oid IS NULL THEN '20991231' ELSE date(w_lit_historique_p.date_debut - interval '1 day') END; + DELETE FROM activite.t_lit_historique + WHERE date_fin < date_debut; + -- Forcage service selon etage + UPDATE activite.t_lieux + SET service_facturation_id = t_etages.service_force_id + FROM activite.t_lits + JOIN activite.t_etages ON etage_id = t_etages.oid + WHERE lit_id = t_lits.oid AND + service_force_id <> 0 AND + service_facturation_id IS DISTINCT FROM t_etages.service_force_id; + + -- Forcage activite selon service + UPDATE activite.t_lieux + SET activite_id = t_services_facturation.activite_par_defaut_id + FROM activite.t_services_facturation + WHERE service_facturation_id = t_services_facturation.oid AND + t_services_facturation.activite_par_defaut_id <> 0 AND + t_lieux.activite_id = 0; + + UPDATE activite.t_lieux + SET activite_id = t_services_facturation.activite_force_id + FROM activite.t_services_facturation + WHERE service_facturation_id = t_services_facturation.oid AND + t_services_facturation.activite_force_id <> 0 AND + t_lieux.activite_id IS DISTINCT FROM t_services_facturation.activite_force_id; + + -- Mise à jour t_lieux_c + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_lieux_c') THEN + CREATE TEMP TABLE w_lieux_c + ( + oid bigint, + date_debut date, + date_fin date, + from_oid bigint, + code_original_1 text, + code_original_2 text, + code_original_3 text, + code_original_4 text, + code_original_5 text, + code_original_6 text, + code_original_7 text, + unite_medicale_id bigint, + unite_medicale_code text, + unite_medicale_texte text, + unite_fonctionnelle_id bigint, + unite_fonctionnelle_code text, + unite_fonctionnelle_texte text, + mode_traitement_id bigint, + mode_traitement_code text, + mode_traitement_texte text, + type_t2a character(1), + service_facturation_est_sans_mouvement character(1), + service_facturation_est_absence character(1), + service_facturation_id bigint, + service_facturation_code text, + service_facturation_texte text, + activite_id bigint, + activite_code text, + activite_texte text, + etage_id bigint, + etage_code text, + etage_texte text, + lit_id bigint, + lit_code text, + lit_texte text, + gir_code_original text, + gir_id bigint, + gir_code text, + gir_texte text, + gir_coefficient numeric + ); + ELSE + TRUNCATE w_lieux_c; + END IF; + + INSERT INTO w_lieux_c ( + oid, + date_debut, + date_fin, + from_oid, + code_original_1, + code_original_2, + code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + unite_medicale_id, + unite_medicale_code, + unite_medicale_texte, + unite_fonctionnelle_id, + unite_fonctionnelle_code, + unite_fonctionnelle_texte, + mode_traitement_id, + mode_traitement_code, + mode_traitement_texte, + service_facturation_id, + service_facturation_code, + service_facturation_texte, + type_t2a, + service_facturation_est_sans_mouvement, + service_facturation_est_absence, + activite_id, + activite_code, + activite_texte, + etage_id, + etage_code, + etage_texte, + lit_id, + lit_code, + lit_texte, + gir_code_original, + gir_id, + gir_code, + gir_texte, + gir_coefficient + ) + SELECT + t_lieux.oid, + COALESCE(t_lit_historique.date_debut,'00010101') AS date_debut, + COALESCE(t_lit_historique.date_fin,'20991231') AS date_fin, + t_lieux.oid, + code_original_1, + code_original_2, + code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + t_lieux.unite_medicale_id, + t_unites_medicales.code AS unite_medicale_code, + t_unites_medicales.texte_court AS unite_medicale_texte, + t_lieux.unite_fonctionnelle_id, + t_unites_fonctionnelles.code AS unite_fonctionnelle_code, + t_unites_fonctionnelles.texte_court AS unite_fonctionnelle_texte, + t_services_facturation.mode_traitement_id, + t_modes_traitement.code AS mode_traitement_code, + t_modes_traitement.texte_court AS mode_traitement_texte, + t_lieux.service_facturation_id, + t_services_facturation.code AS service_facturation_code, + t_services_facturation.texte_court AS service_facturation_texte, + t_services_facturation.type_t2a, + COALESCE(t_services_facturation.est_sans_mouvement,'0') AS service_facturation_est_sans_mouvement, + COALESCE(t_services_facturation.est_absence,'0') AS service_facturation_est_absence, + t_lieux.activite_id, + t_activites.code AS activite_code, + t_activites.texte_court AS activite_texte, + CASE + WHEN COALESCE(t_services_facturation.etage_force_id,0) IS DISTINCT FROM 0 THEN t_etages_forces_service.oid + WHEN COALESCE(t_activites.etage_force_id,0) IS DISTINCT FROM 0 THEN t_etages_forces_activite.oid + WHEN COALESCE(t_unites_fonctionnelles.etage_force_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force_um_id_array) THEN t_unites_fonctionnelles.etage_force_id + WHEN COALESCE(t_unites_fonctionnelles.etage_force2_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force2_um_id_array) THEN t_unites_fonctionnelles.etage_force2_id + WHEN COALESCE(t_unites_fonctionnelles.etage_force3_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force3_um_id_array) THEN t_unites_fonctionnelles.etage_force3_id + WHEN COALESCE(t_unites_medicales.etage_force_id,0) IS DISTINCT FROM 0 THEN t_unites_medicales.etage_force_id + WHEN COALESCE(t_services_facturation.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_service.oid + WHEN COALESCE(t_activites.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_activite.oid + WHEN COALESCE(t_unites_medicales.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_um.oid + WHEN COALESCE(t_lit_historique.etage_id,0) IS DISTINCT FROM 0 THEN t_lit_historique.etage_id + ELSE t_lits.etage_id END AS etage_id, + CASE + WHEN COALESCE(t_services_facturation.etage_force_id,0) IS DISTINCT FROM 0 THEN t_etages_forces_service.code + WHEN COALESCE(t_activites.etage_force_id,0) IS DISTINCT FROM 0 THEN t_etages_forces_activite.code + WHEN COALESCE(t_unites_fonctionnelles.etage_force_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force_um_id_array) THEN t_etages_forces_uf.code + WHEN COALESCE(t_unites_fonctionnelles.etage_force2_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force2_um_id_array) THEN t_etages_forces2_uf.code + WHEN COALESCE(t_unites_fonctionnelles.etage_force3_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force3_um_id_array) THEN t_etages_forces3_uf.code + WHEN COALESCE(t_unites_medicales.etage_force_id,0) IS DISTINCT FROM 0 THEN t_etages_forces_um.code + WHEN COALESCE(t_services_facturation.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_service.code + WHEN COALESCE(t_activites.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_activite.code + WHEN COALESCE(t_unites_medicales.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_um.code + WHEN COALESCE(t_lit_historique.etage_id,0) IS DISTINCT FROM 0 THEN t_lit_historique_etage.code + ELSE t_etages.code END AS etage_code, + CASE + WHEN COALESCE(t_services_facturation.etage_force_id,0) IS DISTINCT FROM 0 THEN t_etages_forces_service.texte + WHEN COALESCE(t_activites.etage_force_id,0) IS DISTINCT FROM 0 THEN t_etages_forces_activite.texte + WHEN COALESCE(t_unites_fonctionnelles.etage_force_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force_um_id_array) THEN t_etages_forces_uf.texte + WHEN COALESCE(t_unites_fonctionnelles.etage_force2_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force2_um_id_array) THEN t_etages_forces2_uf.texte + WHEN COALESCE(t_unites_fonctionnelles.etage_force3_id,0) IS DISTINCT FROM 0 AND t_lieux.unite_medicale_id = ANY(etage_force3_um_id_array) THEN t_etages_forces3_uf.texte + WHEN COALESCE(t_unites_medicales.etage_force_id,0) IS DISTINCT FROM 0 THEN t_etages_forces_um.texte + WHEN COALESCE(t_services_facturation.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_service.texte + WHEN COALESCE(t_activites.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_activite.texte + WHEN COALESCE(t_unites_medicales.etage_par_defaut_id,0) IS DISTINCT FROM 0 AND (t_lits.etage_id = 0 OR t_etages.remplacer_par_valeur_par_defaut = '1') AND COALESCE(t_lit_historique.etage_id,0) = 0 THEN t_etages_par_defaut_um.texte + WHEN COALESCE(t_lit_historique.etage_id,0) IS DISTINCT FROM 0 THEN t_lit_historique_etage.texte + ELSE t_etages.texte END AS etage_texte, + t_lieux.lit_id, + t_lits.code AS lit_code, + t_lits.texte_court AS lit_texte, + COALESCE(gir_code_original,'') AS gir_code_original, + COALESCE(t_lieux.gir_id,0) AS gir_id, + COALESCE(t_gir.code,'') AS gir_code, + COALESCE(t_gir.texte_court,'') AS gir_texte, + CASE WHEN t_lieux.gir_id > 0 THEN t_gir.coefficient ELSE NULL END + FROM activite.t_lieux + JOIN activite.t_services_facturation ON t_lieux.service_facturation_id = t_services_facturation.oid + JOIN activite.t_activites ON t_lieux.activite_id = t_activites.oid + JOIN activite.t_lits ON t_lieux.lit_id = t_lits.oid + JOIN activite.t_etages ON t_lits.etage_id = t_etages.oid + LEFT JOIN activite.t_lit_historique ON t_lieux.lit_id = t_lit_historique.lit_id + LEFT JOIN activite.t_etages t_lit_historique_etage ON t_lit_historique.etage_id = t_lit_historique_etage.oid + JOIN activite.t_unites_fonctionnelles ON t_lieux.unite_fonctionnelle_id = t_unites_fonctionnelles.oid + JOIN activite.t_unites_medicales ON t_lieux.unite_medicale_id = t_unites_medicales.oid + JOIN base.t_modes_traitement ON t_services_facturation.mode_traitement_id = t_modes_traitement.oid + LEFT JOIN activite.t_etages t_etages_forces_service ON t_services_facturation.etage_force_id = t_etages_forces_service.oid + LEFT JOIN activite.t_etages t_etages_par_defaut_service ON t_services_facturation.etage_par_defaut_id = t_etages_par_defaut_service.oid + LEFT JOIN activite.t_etages t_etages_forces_activite ON COALESCE(t_activites.etage_force_id,0) = t_etages_forces_activite.oid + LEFT JOIN activite.t_etages t_etages_par_defaut_activite ON COALESCE(t_activites.etage_par_defaut_id,0) = t_etages_par_defaut_activite.oid + LEFT JOIN activite.t_etages t_etages_forces_uf ON t_unites_fonctionnelles.etage_force_id = t_etages_forces_uf.oid + LEFT JOIN activite.t_etages t_etages_forces2_uf ON t_unites_fonctionnelles.etage_force2_id = t_etages_forces2_uf.oid + LEFT JOIN activite.t_etages t_etages_forces3_uf ON t_unites_fonctionnelles.etage_force3_id = t_etages_forces3_uf.oid + LEFT JOIN activite.t_etages t_etages_forces_um ON t_unites_medicales.etage_force_id = t_etages_forces_um.oid + LEFT JOIN activite.t_etages t_etages_par_defaut_um ON t_unites_medicales.etage_par_defaut_id = t_etages_par_defaut_um.oid + LEFT JOIN base.t_gir ON t_lieux.gir_id = t_gir.oid + ; + + PERFORM setval('activite.s_lieux', (SELECT COALESCE(MAX(oid),0) + 1 FROM activite.t_lieux), true); + UPDATE w_lieux_c + SET oid = nextval('activite.s_lieux'::regclass) + WHERE date_debut > '00010101'; + UPDATE activite.t_lieux_c + SET date_debut = COALESCE(date_debut,'00010101'), + date_fin = COALESCE(date_fin,'20991231') + WHERE + date_debut IS DISTINCT FROM COALESCE(date_debut,'00010101') OR + date_fin IS DISTINCT FROM COALESCE(date_fin,'20991231'); + -- Forcage séjours + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_lieux_new') THEN + CREATE TEMP TABLE w_lieux_new + ( + no_sejour text, + lieu_sortie_id bigint, + oid bigint, + date_debut date, + date_fin date, + unite_medicale_id bigint, + unite_medicale_code text, + unite_medicale_texte text, + unite_fonctionnelle_id bigint, + unite_fonctionnelle_code text, + unite_fonctionnelle_texte text, + mode_traitement_id bigint, + mode_traitement_code text, + mode_traitement_texte text, + service_facturation_id bigint, + service_facturation_code text, + service_facturation_texte text, + type_t2a character(1), + service_facturation_est_sans_mouvement character(1), + service_facturation_est_absence character(1), + activite_id bigint, + activite_code text, + activite_texte text, + etage_id bigint, + etage_code text, + etage_texte text, + lit_id bigint, + lit_code text, + lit_texte text, + code_original_1 text, + code_original_2 text, + code_original_3 text, + code_original_4 text, + code_original_5 text, + code_original_6 text, + code_original_7 text, + gir_code_original text, + gir_id bigint, + gir_code text, + gir_texte text, + gir_coefficient numeric + ); + ELSE + TRUNCATE w_lieux_new; + END IF; + + INSERT INTO w_lieux_new + SELECT p_sejours.no_sejour, + lieu_sortie_id, + nextval('activite.s_lieux'::regclass) AS oid, + date_debut, + date_fin, + unite_medicale_id, + unite_medicale_code, + unite_medicale_texte, + unite_fonctionnelle_id, + unite_fonctionnelle_code, + unite_fonctionnelle_texte, + w_lieux_c.mode_traitement_id, + mode_traitement_code, + mode_traitement_texte, + CASE WHEN COALESCE(t_services_facturation.oid,0) <> 0 THEN t_services_facturation.oid ELSE w_lieux_c.service_facturation_id END AS service_facturation_id, + CASE WHEN COALESCE(t_services_facturation.oid,0) <> 0 THEN t_services_facturation.code ELSE w_lieux_c.service_facturation_code END AS service_facturation_code, + CASE WHEN COALESCE(t_services_facturation.oid,0) <> 0 THEN t_services_facturation.texte ELSE w_lieux_c.service_facturation_texte END AS service_facturation_texte, + w_lieux_c.type_t2a, + w_lieux_c.service_facturation_est_sans_mouvement, + w_lieux_c.service_facturation_est_absence, + w_lieux_c.activite_id, + activite_code, + activite_texte, + CASE WHEN COALESCE(t_etages.oid,0) <> 0 THEN t_etages.oid ELSE w_lieux_c.etage_id END AS etage_id, + CASE WHEN COALESCE(t_etages.oid,0) <> 0 THEN t_etages.code ELSE w_lieux_c.etage_code END etage_code, + CASE WHEN COALESCE(t_etages.oid,0) <> 0 THEN t_etages.texte ELSE w_lieux_c.etage_texte END etage_texte, + w_lieux_c.lit_id, + lit_code, + lit_texte, + CASE WHEN COALESCE(t_services_facturation.oid,0) <> 0 THEN t_services_facturation.code_original ELSE w_lieux_c.code_original_1 END AS code_original_1, + code_original_2, + CASE WHEN COALESCE(t_etages.oid,0) <> 0 THEN t_etages.code_original ELSE w_lieux_c.code_original_3 END AS code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + gir_code_original, + gir_id, + gir_code, + gir_texte, + gir_coefficient + FROM activite.p_sejours + JOIN activite.t_sejour ON t_sejour.no_sejour = p_sejours.no_sejour + JOIN w_lieux_c ON p_sejours.lieu_sortie_id = w_lieux_c.oid + LEFT JOIN activite.t_services_facturation ON t_sejour.service_facturation_id = t_services_facturation.oid + LEFT JOIN activite.t_etages ON t_sejour.etage_id = t_etages.oid + WHERE est_ignore <> '1' AND + ( + t_sejour.service_facturation_id <> 0 OR + t_sejour.etage_id <> 0 + ) + ; + INSERT INTO w_lieux_c( + oid, + date_debut, + date_fin, + unite_medicale_id, + unite_medicale_code, + unite_medicale_texte, + unite_fonctionnelle_id, + unite_fonctionnelle_code, + unite_fonctionnelle_texte, + mode_traitement_id, + mode_traitement_code, + mode_traitement_texte, + service_facturation_id, + service_facturation_code, + service_facturation_texte, + type_t2a, + service_facturation_est_sans_mouvement, + service_facturation_est_absence, + activite_id, + activite_code, + activite_texte, + etage_id, + etage_code, + etage_texte, + lit_id, + lit_code, + lit_texte, + gir_code_original, + gir_id, + gir_code, + gir_texte, + gir_coefficient) + SELECT w_lieux_c.oid, + w_lieux_c.date_debut, + w_lieux_c.date_fin, + w_lieux_c.unite_medicale_id, + w_lieux_c.unite_medicale_code, + w_lieux_c.unite_medicale_texte, + w_lieux_c.unite_fonctionnelle_id, + w_lieux_c.unite_fonctionnelle_code, + w_lieux_c.unite_fonctionnelle_texte, + w_lieux_c.mode_traitement_id, + w_lieux_c.mode_traitement_code, + w_lieux_c.mode_traitement_texte, + w_lieux_c.service_facturation_id, + w_lieux_c.service_facturation_code, + w_lieux_c.service_facturation_texte, + w_lieux_c.type_t2a, + w_lieux_c.service_facturation_est_sans_mouvement, + w_lieux_c.service_facturation_est_absence, + w_lieux_c.activite_id, + w_lieux_c.activite_code, + w_lieux_c.activite_texte, + w_lieux_c.etage_id, + w_lieux_c.etage_code, + w_lieux_c.etage_texte, + w_lieux_c.lit_id, + w_lieux_c.lit_code, + w_lieux_c.lit_texte, + w_lieux_c.gir_code_original, + w_lieux_c.gir_id, + w_lieux_c.gir_code, + w_lieux_c.gir_texte, + w_lieux_c.gir_coefficient + FROM w_lieux_new w_lieux_c + LEFT JOIN activite.t_lieux_c ON t_lieux_c.oid = w_lieux_c.oid AND + t_lieux_c.date_debut = w_lieux_c.date_debut AND + t_lieux_c.date_fin = w_lieux_c.date_fin + WHERE t_lieux_c.oid IS NULL; + INSERT INTO activite.t_lieux( + oid, + code_original_1, + code_original_2, + code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + service_facturation_id, + activite_id, + lit_id, + unite_medicale_id, + unite_fonctionnelle_id, + mode_traitement_id, + gir_code_original, + gir_id) + SELECT + w_lieux_c.oid, + w_lieux_c.code_original_1, + w_lieux_c.code_original_2, + w_lieux_c.code_original_3, + w_lieux_c.code_original_4, + w_lieux_c.code_original_5, + w_lieux_c.code_original_6, + w_lieux_c.code_original_7, + w_lieux_c.service_facturation_id, + w_lieux_c.activite_id, + w_lieux_c.lit_id, + w_lieux_c.unite_medicale_id, + w_lieux_c.unite_fonctionnelle_id, + w_lieux_c.mode_traitement_id, + w_lieux_c.gir_code_original, + w_lieux_c.gir_id + FROM w_lieux_new as w_lieux_c + left join activite.t_lieux on t_lieux.oid = w_lieux_c.oid + WHERE t_lieux.oid is null + ; + + UPDATE activite.p_sejours + SET lieu_sortie_id = w_lieux_new.oid + FROM w_lieux_new + WHERE p_sejours.no_sejour = w_lieux_new.no_sejour; + UPDATE activite.p_mouvements_sejour + SET lieu_id = w_lieux_new.oid + FROM w_lieux_new + WHERE p_mouvements_sejour.no_sejour = w_lieux_new.no_sejour; + UPDATE activite.p_factures_lignes_c + SET lieu_id = w_lieux_new.oid + FROM activite.p_factures + JOIN w_lieux_new ON p_factures.no_sejour = w_lieux_new.no_sejour + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture; + UPDATE activite.p_factures_lignes_h + SET lieu_id = w_lieux_new.oid + FROM activite.p_factures + JOIN w_lieux_new ON p_factures.no_sejour = w_lieux_new.no_sejour + WHERE p_factures_lignes_h.no_facture = p_factures.no_facture; + UPDATE activite.p_sejours + SET lieu_sortie_id = 0 + WHERE lieu_sortie_id IS NULL; + + REINDEX TABLE activite.t_lieux; + + -- Etage affecté selon date + + DELETE FROM activite.t_lieux_c + USING ( + SELECT t_lieux_c.oid + FROM activite.t_lieux_c + LEFT JOIN w_lieux_c ON t_lieux_c.oid = w_lieux_c.oid AND + t_lieux_c.date_debut = w_lieux_c.date_debut AND + t_lieux_c.date_fin = w_lieux_c.date_fin + WHERE w_lieux_c.oid IS NULL) subview + WHERE t_lieux_c.oid = subview.oid; + + UPDATE activite.t_lieux_c SET + unite_medicale_id = w_lieux_c.unite_medicale_id, + unite_medicale_code = w_lieux_c.unite_medicale_code, + unite_medicale_texte = w_lieux_c.unite_medicale_texte, + unite_fonctionnelle_id = w_lieux_c.unite_fonctionnelle_id, + unite_fonctionnelle_code = w_lieux_c.unite_fonctionnelle_code, + unite_fonctionnelle_texte = w_lieux_c.unite_fonctionnelle_texte, + mode_traitement_id = w_lieux_c.mode_traitement_id, + mode_traitement_code = w_lieux_c.mode_traitement_code, + mode_traitement_texte = w_lieux_c.mode_traitement_texte, + service_facturation_id = w_lieux_c.service_facturation_id, + service_facturation_code = w_lieux_c.service_facturation_code, + service_facturation_texte = w_lieux_c.service_facturation_texte, + type_t2a = w_lieux_c.type_t2a, + service_facturation_est_sans_mouvement = w_lieux_c.service_facturation_est_sans_mouvement, + service_facturation_est_absence = w_lieux_c.service_facturation_est_absence, + activite_id = w_lieux_c.activite_id, + activite_code = w_lieux_c.activite_code, + activite_texte = w_lieux_c.activite_texte, + etage_id = w_lieux_c.etage_id, + etage_code = w_lieux_c.etage_code, + etage_texte = w_lieux_c.etage_texte, + lit_id = w_lieux_c.lit_id, + lit_code = w_lieux_c.lit_code, + lit_texte = w_lieux_c.lit_texte, + gir_id = w_lieux_c.gir_id, + gir_code = w_lieux_c.gir_code, + gir_texte = w_lieux_c.gir_texte, + gir_coefficient = w_lieux_c.gir_coefficient + FROM w_lieux_c + WHERE w_lieux_c.oid = t_lieux_c.oid AND + w_lieux_c.date_debut = t_lieux_c.date_debut AND + w_lieux_c.date_fin = t_lieux_c.date_fin AND + ( + t_lieux_c.unite_medicale_id IS DISTINCT FROM w_lieux_c.unite_medicale_id OR + t_lieux_c.unite_medicale_code IS DISTINCT FROM w_lieux_c.unite_medicale_code OR + t_lieux_c.unite_medicale_texte IS DISTINCT FROM w_lieux_c.unite_medicale_texte OR + t_lieux_c.unite_fonctionnelle_id IS DISTINCT FROM w_lieux_c.unite_fonctionnelle_id OR + t_lieux_c.unite_fonctionnelle_code IS DISTINCT FROM w_lieux_c.unite_fonctionnelle_code OR + t_lieux_c.unite_fonctionnelle_texte IS DISTINCT FROM w_lieux_c.unite_fonctionnelle_texte OR + t_lieux_c.mode_traitement_id IS DISTINCT FROM w_lieux_c.mode_traitement_id OR + t_lieux_c.mode_traitement_code IS DISTINCT FROM w_lieux_c.mode_traitement_code OR + t_lieux_c.mode_traitement_texte IS DISTINCT FROM w_lieux_c.mode_traitement_texte OR + t_lieux_c.service_facturation_id IS DISTINCT FROM w_lieux_c.service_facturation_id OR + t_lieux_c.service_facturation_code IS DISTINCT FROM w_lieux_c.service_facturation_code OR + t_lieux_c.service_facturation_texte IS DISTINCT FROM w_lieux_c.service_facturation_texte OR + t_lieux_c.type_t2a IS DISTINCT FROM w_lieux_c.type_t2a OR + t_lieux_c.service_facturation_est_sans_mouvement IS DISTINCT FROM w_lieux_c.service_facturation_est_sans_mouvement OR + t_lieux_c.service_facturation_est_absence IS DISTINCT FROM w_lieux_c.service_facturation_est_absence OR + t_lieux_c.activite_id IS DISTINCT FROM w_lieux_c.activite_id OR + t_lieux_c.activite_code IS DISTINCT FROM w_lieux_c.activite_code OR + t_lieux_c.activite_texte IS DISTINCT FROM w_lieux_c.activite_texte OR + t_lieux_c.etage_id IS DISTINCT FROM w_lieux_c.etage_id OR + t_lieux_c.etage_code IS DISTINCT FROM w_lieux_c.etage_code OR + t_lieux_c.etage_texte IS DISTINCT FROM w_lieux_c.etage_texte OR + t_lieux_c.lit_id IS DISTINCT FROM w_lieux_c.lit_id OR + t_lieux_c.lit_code IS DISTINCT FROM w_lieux_c.lit_code OR + t_lieux_c.lit_texte IS DISTINCT FROM w_lieux_c.lit_texte OR + t_lieux_c.gir_id IS DISTINCT FROM w_lieux_c.gir_id OR + t_lieux_c.gir_code IS DISTINCT FROM w_lieux_c.gir_code OR + t_lieux_c.gir_texte IS DISTINCT FROM w_lieux_c.gir_texte OR + t_lieux_c.gir_coefficient IS DISTINCT FROM w_lieux_c.gir_coefficient + ); + INSERT INTO activite.t_lieux_c( + oid, + date_debut, + date_fin, + unite_medicale_id, + unite_medicale_code, + unite_medicale_texte, + unite_fonctionnelle_id, + unite_fonctionnelle_code, + unite_fonctionnelle_texte, + mode_traitement_id, + mode_traitement_code, + mode_traitement_texte, + service_facturation_id, + service_facturation_code, + service_facturation_texte, + type_t2a, + service_facturation_est_sans_mouvement, + service_facturation_est_absence, + activite_id, + activite_code, + activite_texte, + etage_id, + etage_code, + etage_texte, + lit_id, + lit_code, + lit_texte, + gir_id, + gir_code, + gir_texte, + gir_coefficient) + SELECT w_lieux_c.oid, + w_lieux_c.date_debut, + w_lieux_c.date_fin, + w_lieux_c.unite_medicale_id, + w_lieux_c.unite_medicale_code, + w_lieux_c.unite_medicale_texte, + w_lieux_c.unite_fonctionnelle_id, + w_lieux_c.unite_fonctionnelle_code, + w_lieux_c.unite_fonctionnelle_texte, + w_lieux_c.mode_traitement_id, + w_lieux_c.mode_traitement_code, + w_lieux_c.mode_traitement_texte, + w_lieux_c.service_facturation_id, + w_lieux_c.service_facturation_code, + w_lieux_c.service_facturation_texte, + w_lieux_c.type_t2a, + w_lieux_c.service_facturation_est_sans_mouvement, + w_lieux_c.service_facturation_est_absence, + w_lieux_c.activite_id, + w_lieux_c.activite_code, + w_lieux_c.activite_texte, + w_lieux_c.etage_id, + w_lieux_c.etage_code, + w_lieux_c.etage_texte, + w_lieux_c.lit_id, + w_lieux_c.lit_code, + w_lieux_c.lit_texte, + w_lieux_c.gir_id, + w_lieux_c.gir_code, + w_lieux_c.gir_texte, + w_lieux_c.gir_coefficient + FROM w_lieux_c + LEFT JOIN activite.t_lieux_c ON t_lieux_c.oid = w_lieux_c.oid AND + t_lieux_c.date_debut = w_lieux_c.date_debut AND + t_lieux_c.date_fin = w_lieux_c.date_fin + WHERE t_lieux_c.oid IS NULL; + + -- Ajout Lieux créés par changement de date lit + INSERT INTO activite.t_lieux( + oid, + code_original_1, + code_original_2, + code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + service_facturation_id, + activite_id, + lit_id, + unite_medicale_id, + unite_fonctionnelle_id, + mode_traitement_id, + gir_code_original, + gir_id) + SELECT + w_lieux_c.oid, + w_lieux_c.code_original_1, + w_lieux_c.code_original_2, + w_lieux_c.code_original_3, + w_lieux_c.code_original_4, + w_lieux_c.code_original_5, + w_lieux_c.code_original_6, + w_lieux_c.code_original_7, + w_lieux_c.service_facturation_id, + w_lieux_c.activite_id, + w_lieux_c.lit_id, + w_lieux_c.unite_medicale_id, + w_lieux_c.unite_fonctionnelle_id, + w_lieux_c.mode_traitement_id, + w_lieux_c.gir_code_original, + w_lieux_c.gir_id + FROM w_lieux_c + left join activite.t_lieux on t_lieux.oid = w_lieux_c.oid + WHERE t_lieux.oid is null + ; + -- Mise à jour des lieux dans les tables + UPDATE activite.p_sejours + SET lieu_sortie_id = w_lieux_c.oid + FROM w_lieux_c + WHERE p_sejours.lieu_sortie_id = w_lieux_c.from_oid AND + w_lieux_c.oid <> w_lieux_c.from_oid AND + p_sejours.date_sortie BETWEEN w_lieux_c.date_debut AND w_lieux_c.date_fin; + UPDATE activite.p_mouvements_sejour + SET lieu_id = w_lieux_c.oid + FROM w_lieux_c + WHERE p_mouvements_sejour.lieu_id = w_lieux_c.from_oid AND + w_lieux_c.oid <> w_lieux_c.from_oid AND + p_mouvements_sejour.date BETWEEN w_lieux_c.date_debut AND w_lieux_c.date_fin; + UPDATE activite.p_factures_lignes_c + SET lieu_id = w_lieux_c.oid + FROM w_lieux_c + WHERE p_factures_lignes_c.lieu_id = w_lieux_c.from_oid AND + w_lieux_c.oid <> w_lieux_c.from_oid AND + p_factures_lignes_c.date_debut BETWEEN w_lieux_c.date_debut AND w_lieux_c.date_fin; + UPDATE activite.p_factures_encours_lignes_c + SET lieu_id = w_lieux_c.oid + FROM w_lieux_c + WHERE p_factures_encours_lignes_c.lieu_id = w_lieux_c.from_oid AND + w_lieux_c.oid <> w_lieux_c.from_oid AND + p_factures_encours_lignes_c.date_debut BETWEEN w_lieux_c.date_debut AND w_lieux_c.date_fin; + UPDATE activite.p_factures_lignes_h + SET lieu_id = w_lieux_c.oid + FROM w_lieux_c + WHERE p_factures_lignes_h.lieu_id = w_lieux_c.from_oid AND + w_lieux_c.oid <> w_lieux_c.from_oid AND + p_factures_lignes_h.date_debut BETWEEN w_lieux_c.date_debut AND w_lieux_c.date_fin; + + -- Types de séjour + INSERT INTO activite.t_type_sejour (oid, code, texte) + SELECT + base.cti_to_number(type_sejour), + type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::bpchar THEN 'Hospitalisé'::bpchar + WHEN p_sejours.type_sejour = '2'::bpchar THEN 'Ambulatoires'::bpchar + WHEN p_sejours.type_sejour = '3'::bpchar THEN 'Externes'::bpchar + WHEN p_sejours.type_sejour = '4'::bpchar THEN 'Long séjours'::bpchar + WHEN p_sejours.type_sejour = '5'::bpchar THEN 'Séances'::bpchar + WHEN p_sejours.type_sejour = '6'::bpchar THEN 'Bébés sans séjour'::bpchar + WHEN p_sejours.type_sejour = '9'::bpchar THEN 'Fictifs'::bpchar + ELSE p_sejours.type_sejour + END AS texte + FROM activite.p_sejours + WHERE type_sejour NOT IN (SELECT code FROM activite.t_type_sejour) + GROUP BY 1,2,3; + -- Si etage modifié, l'inclure dans les oids + INSERT INTO activite.p_oids (code_table, oid) + SELECT 'etage', etage_id + FROM activite.t_lieux_c WHERE etage_id NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = 'etage') + GROUP BY 2; + + -- Classes + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'SERVICE_F','service_facturation_section'); + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'ETAGE','etage_section'); + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'LIT','lit_section'); + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'UM','unite_medicale_section'); + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'UF','unite_fonctionnelle_section'); + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'ACTIVITE','activite_section'); + PERFORM base.cti_update_classes('activite', 't_etages', 'ETAGE',''); + PERFORM base.cti_update_classes('activite', 't_unites_fonctionnelles', 'UF',''); + PERFORM base.cti_update_classes('activite', 't_type_sejour', 'TYPESEJOUR',''); + PERFORM activite.cti_reorganize_places(); + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_medecins_administratifs_c.yaml b/db/schema2/functions/cti_reorganize_medecins_administratifs_c.yaml new file mode 100644 index 0000000..5b77b13 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_medecins_administratifs_c.yaml @@ -0,0 +1,313 @@ +return: text +lang: plpgsql +src: | + DECLARE + + + + result TEXT; + BEGIN + -- Réplication des médecins dans Base + IF EXISTS (SELECT * FROM activite.t_medecins_administratifs WHERE oid <> 0 AND COALESCE(medecin_id,0) = 0) THEN + BEGIN + PERFORM base.cti_initialize_medecins(); + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , 'base.cti_initialize_medecins'; + END; + END IF; + + BEGIN + -- Mise à jour code médecin + UPDATE base.t_medecins + SET code = subview.code + FROM + ( + SELECT medecin_id, (MAX(Array[date_entree::text, t_medecins_administratifs.code]))[2] AS code + FROM activite.p_sejours + JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid AND t_medecins.oid <> 0 AND (t_medecins.code = '' OR t_medecins.code IS NULL) + GROUP BY 1 + ) subview + WHERE t_medecins.oid = subview.medecin_id; + UPDATE base.t_medecins + SET code = subview.code + FROM + ( + SELECT medecin_id, (MAX(Array[date_debut::text, t_medecins_administratifs.code]))[2] AS code + FROM activite.p_factures_lignes_h + JOIN activite.t_medecins_administratifs ON p_factures_lignes_h.medecin_facture_id = t_medecins_administratifs.oid + JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid AND t_medecins.oid <> 0 AND (t_medecins.code = '' OR t_medecins.code IS NULL) + GROUP BY 1 + ) subview + WHERE t_medecins.oid = subview.medecin_id; + UPDATE base.t_medecins + SET code = subview.code + FROM + ( + SELECT medecin_id, (MAX(Array[date_debut::text, t_medecins_administratifs.code]))[2] AS code + FROM activite.p_factures_lignes_non_facturees_h + JOIN activite.t_medecins_administratifs ON p_factures_lignes_non_facturees_h.medecin_facture_id = t_medecins_administratifs.oid + JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid AND t_medecins.oid <> 0 AND (t_medecins.code = '' OR t_medecins.code IS NULL) + GROUP BY 1 + ) subview + WHERE t_medecins.oid = subview.medecin_id; + UPDATE base.t_medecins + SET code = subview.code + FROM + ( + SELECT medecin_id, (MIN(Array[to_char(t_medecins_administratifs.oid,'FM000000000000000000000000'), t_medecins_administratifs.code]))[2] AS code + FROM activite.t_medecins_administratifs + JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid AND t_medecins.oid <> 0 AND (t_medecins.code = '' OR t_medecins.code IS NULL) + GROUP BY 1 + ) subview + WHERE t_medecins.oid = subview.medecin_id; + UPDATE base.t_medecins + SET code = subview.code + FROM + ( + SELECT t_medecins_administratifs.medecin_id, MAX(t_medecins_administratifs.code) AS code + FROM activite.t_medecins_administratifs + JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + LEFT JOIN activite.t_budget_cle_rule ON + t_medecins.code <> '' AND + t_budget_cle_rule.liste_medecin LIKE '(R)%' AND + t_budget_cle_rule.liste_medecin LIKE '%'||t_medecins.code||'%' + WHERE t_medecins_administratifs.oid <> 0 AND + t_medecins_administratifs.medecin_id <> 0 AND + t_budget_cle_rule.oid IS NULL + GROUP BY 1 + HAVING count(*) = 1 AND + MAX(t_medecins_administratifs.code) <> MAX(t_medecins.code) + ) subview + WHERE t_medecins.oid = subview.medecin_id + ; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , '1'; + END; + BEGIN + INSERT INTO base.t_specialites_medecin (code_original, code, texte, texte_court) + SELECT t_specialites_internes_pmsi.code, t_specialites_internes_pmsi.code, t_specialites_internes_pmsi.texte, t_specialites_internes_pmsi.texte + FROM base.t_medecins + JOIN activite.t_medecins_administratifs ON medecin_id = t_medecins.oid + JOIN pmsi.t_medecins t_medecins_pmsi ON t_medecins_administratifs.code = t_medecins_pmsi.code + JOIN pmsi.t_specialites_internes_medecin t_specialites_internes_pmsi ON t_medecins_pmsi.specialite_interne_id = t_specialites_internes_pmsi.oid + WHERE t_medecins.specialite_id = 0 AND + t_specialites_internes_pmsi.code NOT IN (SELECT code_original FROM base.t_specialites_medecin) + GROUP BY 1,2,3,4; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , '2'; + END; + + + BEGIN + UPDATE base.t_medecins + SET specialite_id = t_specialites_medecin.oid + FROM activite.t_medecins_administratifs + JOIN pmsi.t_medecins t_medecins_pmsi ON t_medecins_administratifs.code = t_medecins_pmsi.code + JOIN pmsi.t_specialites_internes_medecin t_specialites_internes_pmsi ON t_medecins_pmsi.specialite_interne_id = t_specialites_internes_pmsi.oid + JOIN base.t_specialites_medecin ON t_specialites_internes_pmsi.code = t_specialites_medecin.code_original + WHERE t_medecins_administratifs.medecin_id = t_medecins.oid AND + t_medecins.specialite_id = 0; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , '3'; + END; + + -- Mise à jour du code rpps médecin des médecins administratifs depuis les données du module base + BEGIN + UPDATE activite.t_medecins_administratifs + SET code_rpps = subview.code_rpps + FROM + ( + SELECT t_medecins.code_rpps, t_medecins.oid + FROM base.t_medecins + JOIN activite.t_medecins_administratifs ON t_medecins_administratifs.medecin_id = t_medecins.oid + WHERE t_medecins.code_rpps <> '' + AND medecin_id <> 0 + ) subview + WHERE t_medecins_administratifs.code_rpps = '' + AND t_medecins_administratifs.medecin_id = subview.oid + ; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , 'Mise à jour des code rpps médecins'; + END; + -- Conditions d'exercice, alimentation automatique d'une classe + BEGIN + INSERT INTO activite.t_classes( + code, + texte, + table_id, + is_cti, + sequence, + contenu_by_code, + contenu_non_replicable_ailleurs + ) + SELECT + 'CTI_MEDLIBSAL'::text AS code, + 'Conditions d''exercice'::text AS texte, + t_listes_tables.oid AS table_id, + '1'::text AS is_cti, + (SELECT COALESCE(MAX(sequence),0)+1 FROM activite.t_classes JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MEDECIN' WHERE sequence < 30) AS sequence, + '0'::text AS contenu_by_code, + '1'::text AS contenu_non_replicable_ailleurs + FROM activite.t_listes_tables + WHERE t_listes_tables.Code = 'MEDECIN' AND + 'CTI_MEDLIBSAL'::text NOT IN (SELECT code FROM activite.t_classes) + ; + + INSERT INTO activite.t_classes_sections( + code, + texte, + classe_id, + condition, + include_code, + exclude_code + ) + SELECT + '1'::text AS code, + 'Libéraux'::text AS texte, + t_classes.oid AS classe_id, + ''::text AS condition, + ''::text AS include_code, + ''::text AS exclude_code + FROM activite.t_classes + WHERE t_classes.code = 'CTI_MEDLIBSAL' AND + (t_classes.oid::text||'-1') NOT IN (SELECT classe_id::text||'-'||code FROM activite.t_classes_sections WHERE code IS NOT NULL) + ; + + INSERT INTO activite.t_classes_sections( + code, + texte, + classe_id, + condition, + include_code, + exclude_code + ) + SELECT + '2'::text AS code, + 'Salariés'::text AS texte, + t_classes.oid AS classe_id, + ''::text AS condition, + ''::text AS include_code, + ''::text AS exclude_code + FROM activite.t_classes + WHERE t_classes.code = 'CTI_MEDLIBSAL' AND + (t_classes.oid::text||'-2') NOT IN (SELECT classe_id::text||'-'||code FROM activite.t_classes_sections WHERE code IS NOT NULL) + ; + + + DROP TABLE IF EXISTS w_classe_CTI_MEDLIBSAL; + CREATE TEMP TABLE w_classe_CTI_MEDLIBSAL AS + SELECT t_medecins_administratifs.oid AS to_id, + MIN(classe_id) AS classe_id, + MIN(section_id_1) AS section_id_1, + MIN(section_id_2) AS section_id_2, + MIN(CASE WHEN est_medecin_salarie = '1' OR t_medecins.numero_ordre = t_finess.code THEN section_id_2 ELSE section_id_1 END) AS section_id + FROM activite.t_medecins_administratifs + LEFT JOIN base.t_finess ON t_finess.secondaire = '0' + LEFT JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + JOIN + ( + SELECT classe_id, + MAX(CASE WHEN t_classes_sections.code = '1' THEN t_classes_sections.oid ELSE 0 END) AS section_id_1, + MAX(CASE WHEN t_classes_sections.code = '2' THEN t_classes_sections.oid ELSE 0 END) AS section_id_2 + FROM activite.t_classes + JOIN activite.t_classes_sections ON classe_id = t_classes.oid + WHERE t_classes.code = 'CTI_MEDLIBSAL' + GROUP BY 1 + ) subview ON 1=1 + GROUP BY 1 + ; + + DELETE + FROM activite.t_classes_sections_elements + USING w_classe_CTI_MEDLIBSAL + WHERE t_classes_sections_elements.to_id = w_classe_CTI_MEDLIBSAL.to_id AND + t_classes_sections_elements.section_id = section_id_2 AND + w_classe_CTI_MEDLIBSAL.section_id = section_id_1 + ; + + DELETE + FROM activite.t_classes_sections_elements + USING w_classe_CTI_MEDLIBSAL + WHERE t_classes_sections_elements.to_id = w_classe_CTI_MEDLIBSAL.to_id AND + t_classes_sections_elements.section_id = section_id_1 AND + w_classe_CTI_MEDLIBSAL.section_id = section_id_2 + ; + + INSERT INTO activite.t_classes_sections_elements(section_id, to_id) + SELECT section_id, to_id + FROM w_classe_CTI_MEDLIBSAL + WHERE (section_id::text||to_id::text) NOT IN (SELECT (section_id::text||to_id::text) FROM activite.t_classes_sections_elements) + ; + + PERFORM activite.cti_update_schema_classes('MEDECIN') + ; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , '4'; + END; + + BEGIN + UPDATE activite.t_medecins_administratifs_c + SET + adm_code = t_medecins_administratifs.code, + adm_nom = t_medecins_administratifs.nom, + adm_prenom = t_medecins_administratifs.prenom, + adm_nom_prenom = (t_medecins_administratifs.nom || ' ') || t_medecins_administratifs.prenom, + medecin_id = t_medecins_administratifs.medecin_id, + medecin_code = COALESCE(t_medecins.code,''), + nom = t_medecins.nom, + prenom = t_medecins.prenom, + nom_prenom = (t_medecins.nom || ' ') || t_medecins.prenom, + specialite_id = t_medecins.specialite_id, + specialite_code = t_specialites_medecin.code, + specialite_texte = t_specialites_medecin.texte_court + FROM activite.t_medecins_administratifs, base.t_medecins, base.t_specialites_medecin + WHERE t_medecins_administratifs_c.oid = t_medecins_administratifs.oid + AND t_medecins_administratifs.medecin_id = t_medecins.oid + AND t_medecins.specialite_id = t_specialites_medecin.oid + AND ( + t_medecins_administratifs_c.adm_code IS DISTINCT FROM t_medecins_administratifs.code OR + t_medecins_administratifs_c.adm_nom IS DISTINCT FROM t_medecins_administratifs.nom OR + t_medecins_administratifs_c.adm_prenom IS DISTINCT FROM t_medecins_administratifs.prenom OR + t_medecins_administratifs_c.adm_nom_prenom IS DISTINCT FROM (t_medecins_administratifs.nom || ' ' || t_medecins_administratifs.prenom) OR + t_medecins_administratifs_c.medecin_id IS DISTINCT FROM t_medecins_administratifs.medecin_id OR + t_medecins_administratifs_c.medecin_code IS DISTINCT FROM COALESCE (t_medecins.code,'') OR + t_medecins_administratifs_c.nom IS DISTINCT FROM t_medecins.nom OR + t_medecins_administratifs_c.prenom IS DISTINCT FROM t_medecins.prenom OR + t_medecins_administratifs_c.nom_prenom IS DISTINCT FROM (t_medecins.nom || ' ' || t_medecins.prenom) OR + t_medecins_administratifs_c.specialite_id IS DISTINCT FROM t_medecins.specialite_id OR + t_medecins_administratifs_c.specialite_code IS DISTINCT FROM t_specialites_medecin.code OR + t_medecins_administratifs_c.specialite_texte IS DISTINCT FROM t_specialites_medecin.texte_court + ); + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , '5'; + END; + BEGIN + INSERT INTO activite.t_medecins_administratifs_c( + oid, adm_code, adm_nom, adm_prenom, adm_nom_prenom, medecin_id, medecin_code, + nom, prenom, nom_prenom, specialite_id, specialite_code, specialite_texte) + SELECT + t_medecins_administratifs.oid, t_medecins_administratifs.code, t_medecins_administratifs.nom, t_medecins_administratifs.prenom, + (t_medecins_administratifs.nom::text || ' '::text) || t_medecins_administratifs.prenom::text, + t_medecins_administratifs.medecin_id, COALESCE(t_medecins.code,''), t_medecins.nom, t_medecins.prenom, + (t_medecins.nom::text || ' '::text) || t_medecins.prenom::text, + t_medecins.specialite_id, t_specialites_medecin.code, t_specialites_medecin.texte_court + FROM activite.t_medecins_administratifs, base.t_medecins, base.t_specialites_medecin + WHERE t_medecins_administratifs.medecin_id = t_medecins.oid + AND t_medecins.specialite_id = t_specialites_medecin.oid + AND t_medecins_administratifs.oid NOT IN (SELECT oid FROM activite.t_medecins_administratifs_c) + ORDER BY t_medecins_administratifs.oid; + UPDATE activite.t_medecins_administratifs_c + SET medecin_code = subview.code + FROM + (SELECT subview.medecin_id, t_medecins_administratifs.code + FROM activite.t_medecins_administratifs, + (SELECT medecin_id, min(oid) AS oid FROM activite.t_medecins_administratifs WHERE medecin_id <> 0 GROUP BY 1) subview + WHERE t_medecins_administratifs.oid = subview.oid) subview + WHERE t_medecins_administratifs_c.medecin_id = subview.medecin_id AND medecin_code = ''; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , '6'; + END; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_places.yaml b/db/schema2/functions/cti_reorganize_places.yaml new file mode 100644 index 0000000..52a346d --- /dev/null +++ b/db/schema2/functions/cti_reorganize_places.yaml @@ -0,0 +1,939 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + UPDATE activite.t_divers SET + valeur2 = CASE WHEN valeur = 'ETA' THEN 'ETAGE' + WHEN valeur = 'UF' THEN 'UF' + WHEN valeur = 'SER' THEN 'SERVICE_F' + WHEN valeur = 'UM' THEN 'UM' + ELSE '' END + where code = 'PLACESREF'; + + INSERT INTO activite.t_divers (code, valeur, valeur2) + SELECT 'PLACESREF', 'ETA', 'ETAGE' + WHERE 'PLACESREF' NOT IN (SELECT code FROM activite.t_divers); + + INSERT INTO activite.t_divers(code, texte, valeur, description) + SELECT 'TAUXSORAVANT', 'Taux de sortie avant hh:mm', '120000', 'par default taux de sortie avant 12hh00' + WHERE 'TAUXSORAVANT' NOT IN (SELECT code FROM activite.t_divers); + + INSERT INTO activite.t_etages_historique( + etage_id, + date, + nb_lits_theoriques, + nb_box_ambulatoires_theoriques, + nb_box_seances_theoriques, + nb_lits_cp_theoriques, + nb_lits_ouverts, + nb_box_ambulatoires_ouverts, + nb_box_seances_ouverts, + nb_lits_cp_ouverts, + est_ouvert_1, + est_ouvert_2, + est_ouvert_3, + est_ouvert_4, + est_ouvert_5, + est_ouvert_6, + est_ouvert_7) + SELECT + oid, + '20070101'::date, + COALESCE(nb_lits,0), + 0, + 0, + COALESCE(nb_cp,0), + COALESCE(nb_lits,0), + 0, + 0, + COALESCE(nb_cp,0), + '1', + '1', + '1', + '1', + '1', + '1', + '1' + FROM activite.t_etages + LEFT JOIN activite.t_etages_historique ON t_etages_historique.etage_id = t_etages.oid AND t_etages_historique.date = '20070101'::date + WHERE t_etages_historique.etage_id IS NULL; + + DROP TABLE IF EXISTS w_etages_historique + ; + CREATE TEMP TABLE w_etages_historique AS + SELECT + t_etages_historique.etage_id, + t_etages_historique.date, + COALESCE(LEAD(date - interval '1 day') OVER (PARTITION BY etage_id ORDER BY etage_id, date), '2099-12-31'::date)::date AS moins_un_jour + FROM activite.t_etages_historique + ORDER BY 1, 2 + ; + + UPDATE activite.t_etages_historique + SET date_fin = date_suivante.moins_un_jour + FROM ( + SELECT + w_etages_historique.* + FROM w_etages_historique + ) date_suivante + WHERE + t_etages_historique.etage_id = date_suivante.etage_id + AND t_etages_historique.date = date_suivante.date + ; + + UPDATE activite.t_etages + SET + nb_lits = t_etages_historique.nb_lits_theoriques + coalesce(t_etages_historique.nb_box_ambulatoires_theoriques) + coalesce(t_etages_historique.nb_box_seances_theoriques), + nb_cp = t_etages_historique.nb_lits_cp_theoriques + FROM activite.t_etages_historique + WHERE t_etages.oid = t_etages_historique.etage_id AND + date_fin = '20991231'; + + UPDATE activite.t_etages_historique SET + heberge_hospitalises = '0', + heberge_ambulatoires = '0', + heberge_seances = '0', + heberge_externes = '0', + heberge_urgences = '0', + heberge_bebes = '0'; + + UPDATE activite.t_etages_historique SET + heberge_hospitalises = subview.heberge_hospitalises, + heberge_ambulatoires = subview.heberge_ambulatoires, + heberge_seances = subview.heberge_seances, + heberge_externes = subview.heberge_externes, + heberge_urgences = subview.heberge_urgences, + heberge_bebes = subview.heberge_bebes + FROM ( + SELECT + t_lieux_c.etage_id, + t_etages_historique.date, + MAX(CASE WHEN est_jour_hospitalisation = '1' THEN '1' ELSE '0' END) AS heberge_hospitalises, + MAX(CASE WHEN nb_ambulatoires > 0 THEN '1' ELSE '0' END) AS heberge_ambulatoires, + MAX(CASE WHEN nb_seances > 0 AND nb_jours_js_inclus = 0 AND nb_ambulatoires = 0 THEN '1' ELSE '0' END) AS heberge_seances, + MAX(CASE WHEN nb_externes > 0 THEN '1' ELSE '0' END) AS heberge_externes, + MAX(CASE WHEN nb_urgences > 0 THEN '1' ELSE '0' END) AS heberge_urgences, + MAX(CASE WHEN nb_bebes > 0 THEN '1' ELSE '0' END) AS heberge_bebes + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON lieu_id = t_lieux_c.oid + JOIN activite.t_etages_historique ON t_lieux_c.etage_id = t_etages_historique.etage_id AND p_mouvements_sejour.date BETWEEN t_etages_historique.date AND t_etages_historique.date_fin + GROUP BY 1,2 + ORDER BY 1,2 + ) subview + WHERE subview.etage_id = t_etages_historique.etage_id AND subview.date = t_etages_historique.date; + + INSERT INTO activite.t_services_facturation_historique( + service_facturation_id, + date, + nb_lits_theoriques, + nb_box_ambulatoires_theoriques, + nb_box_seances_theoriques, + nb_lits_cp_theoriques, + nb_lits_ouverts, + nb_box_ambulatoires_ouverts, + nb_box_seances_ouverts, + nb_lits_cp_ouverts, + est_ouvert_1, + est_ouvert_2, + est_ouvert_3, + est_ouvert_4, + est_ouvert_5, + est_ouvert_6, + est_ouvert_7) + SELECT + oid, + '20070101'::date, + COALESCE(nb_lits,0), + 0, + 0, + COALESCE(nb_cp,0), + COALESCE(nb_lits,0), + 0, + 0, + COALESCE(nb_cp,0), + '1', + '1', + '1', + '1', + '1', + '1', + '1' + FROM activite.t_services_facturation + LEFT JOIN activite.t_services_facturation_historique ON t_services_facturation_historique.service_facturation_id = t_services_facturation.oid AND t_services_facturation_historique.date = '20070101'::date + WHERE t_services_facturation_historique.service_facturation_id IS NULL; + + DROP TABLE IF EXISTS w_services_facturation_historique + ; + CREATE TEMP TABLE w_services_facturation_historique AS + SELECT + t_services_facturation_historique.service_facturation_id, + t_services_facturation_historique.date, + COALESCE(LEAD(date - interval '1 day') OVER (PARTITION BY service_facturation_id ORDER BY service_facturation_id, date), '2099-12-31'::date)::date AS moins_un_jour + FROM activite.t_services_facturation_historique + ORDER BY 1, 2 + ; + + UPDATE activite.t_services_facturation_historique + SET date_fin = date_suivante.moins_un_jour + FROM ( + SELECT + w_services_facturation_historique.* + FROM w_services_facturation_historique + ) date_suivante + WHERE + t_services_facturation_historique.service_facturation_id = date_suivante.service_facturation_id + AND t_services_facturation_historique.date = date_suivante.date + ; + + UPDATE activite.t_services_facturation + SET + nb_lits = t_services_facturation_historique.nb_lits_theoriques + COALESCE(t_services_facturation_historique.nb_box_ambulatoires_theoriques,0) + coalesce(t_services_facturation_historique.nb_box_seances_theoriques), + nb_cp = t_services_facturation_historique.nb_lits_cp_theoriques + FROM activite.t_services_facturation_historique + WHERE t_services_facturation.oid = t_services_facturation_historique.service_facturation_id AND + date_fin = '20991231'; + + UPDATE activite.t_services_facturation_historique SET + heberge_hospitalises = '0', + heberge_ambulatoires = '0', + heberge_seances = '0', + heberge_externes = '0', + heberge_urgences = '0', + heberge_bebes = '0'; + + UPDATE activite.t_services_facturation_historique SET + heberge_hospitalises = subview.heberge_hospitalises, + heberge_ambulatoires = subview.heberge_ambulatoires, + heberge_seances = subview.heberge_seances, + heberge_externes = subview.heberge_externes, + heberge_urgences = subview.heberge_urgences, + heberge_bebes = subview.heberge_bebes + FROM ( + SELECT + t_lieux_c.service_facturation_id, + t_services_facturation_historique.date, + MAX(CASE WHEN est_jour_hospitalisation = '1' THEN '1' ELSE '0' END) AS heberge_hospitalises, + MAX(CASE WHEN nb_ambulatoires > 0 THEN '1' ELSE '0' END) AS heberge_ambulatoires, + MAX(CASE WHEN nb_seances > 0 AND nb_ambulatoires = 0 AND est_jour_hospitalisation <> '1' THEN '1' ELSE '0' END) AS heberge_seances, + MAX(CASE WHEN nb_externes > 0 THEN '1' ELSE '0' END) AS heberge_externes, + MAX(CASE WHEN nb_urgences > 0 THEN '1' ELSE '0' END) AS heberge_urgences, + MAX(CASE WHEN nb_bebes > 0 THEN '1' ELSE '0' END) AS heberge_bebes + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON lieu_id = t_lieux_c.oid + JOIN activite.t_services_facturation_historique ON t_lieux_c.service_facturation_id = t_services_facturation_historique.service_facturation_id AND p_mouvements_sejour.date BETWEEN t_services_facturation_historique.date AND t_services_facturation_historique.date_fin + GROUP BY 1,2 + ORDER BY 1,2 + ) subview + WHERE subview.service_facturation_id = t_services_facturation_historique.service_facturation_id AND subview.date = t_services_facturation_historique.date; + + INSERT INTO activite.t_unites_fonctionnelles_historique( + unite_fonctionnelle_id, + date, + nb_lits_theoriques, + nb_box_ambulatoires_theoriques, + nb_box_seances_theoriques, + nb_lits_cp_theoriques, + nb_lits_ouverts, + nb_box_ambulatoires_ouverts, + nb_box_seances_ouverts, + nb_lits_cp_ouverts, + est_ouvert_1, + est_ouvert_2, + est_ouvert_3, + est_ouvert_4, + est_ouvert_5, + est_ouvert_6, + est_ouvert_7) + SELECT + oid, + '20070101'::date, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + '1', + '1', + '1', + '1', + '1', + '1', + '1' + FROM activite.t_unites_fonctionnelles + LEFT JOIN activite.t_unites_fonctionnelles_historique ON t_unites_fonctionnelles_historique.unite_fonctionnelle_id = t_unites_fonctionnelles.oid AND t_unites_fonctionnelles_historique.date = '20070101'::date + WHERE t_unites_fonctionnelles_historique.unite_fonctionnelle_id IS NULL; + + DROP TABLE IF EXISTS w_unites_fonctionnelles_historique + ; + CREATE TEMP TABLE w_unites_fonctionnelles_historique AS + SELECT + t_unites_fonctionnelles_historique.unite_fonctionnelle_id, + t_unites_fonctionnelles_historique.date, + COALESCE(LEAD(date - interval '1 day') OVER (PARTITION BY unite_fonctionnelle_id ORDER BY unite_fonctionnelle_id, date), '2099-12-31'::date)::date AS moins_un_jour + FROM activite.t_unites_fonctionnelles_historique + ORDER BY 1, 2 + ; + + UPDATE activite.t_unites_fonctionnelles_historique + SET date_fin = date_suivante.moins_un_jour + FROM ( + SELECT + w_unites_fonctionnelles_historique.* + FROM w_unites_fonctionnelles_historique + ) date_suivante + WHERE + t_unites_fonctionnelles_historique.unite_fonctionnelle_id = date_suivante.unite_fonctionnelle_id + AND t_unites_fonctionnelles_historique.date = date_suivante.date + ; + + UPDATE activite.t_unites_fonctionnelles_historique SET + heberge_hospitalises = '0', + heberge_ambulatoires = '0', + heberge_seances = '0', + heberge_externes = '0', + heberge_urgences = '0', + heberge_bebes = '0'; + + UPDATE activite.t_unites_fonctionnelles_historique SET + heberge_hospitalises = subview.heberge_hospitalises, + heberge_ambulatoires = subview.heberge_ambulatoires, + heberge_seances = subview.heberge_seances, + heberge_externes = subview.heberge_externes, + heberge_urgences = subview.heberge_urgences, + heberge_bebes = subview.heberge_bebes + FROM ( + SELECT + t_lieux_c.unite_fonctionnelle_id, + t_unites_fonctionnelles_historique.date, + MAX(CASE WHEN est_jour_hospitalisation = '1' THEN '1' ELSE '0' END) AS heberge_hospitalises, + MAX(CASE WHEN nb_ambulatoires > 0 THEN '1' ELSE '0' END) AS heberge_ambulatoires, + MAX(CASE WHEN nb_seances > 0 AND est_jour_hospitalisation <> '1' AND nb_ambulatoires = 0 THEN '1' ELSE '0' END) AS heberge_seances, + MAX(CASE WHEN nb_externes > 0 THEN '1' ELSE '0' END) AS heberge_externes, + MAX(CASE WHEN nb_urgences > 0 THEN '1' ELSE '0' END) AS heberge_urgences, + MAX(CASE WHEN nb_bebes > 0 THEN '1' ELSE '0' END) AS heberge_bebes + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON lieu_id = t_lieux_c.oid + JOIN activite.t_unites_fonctionnelles_historique ON t_lieux_c.unite_fonctionnelle_id = t_unites_fonctionnelles_historique.unite_fonctionnelle_id AND p_mouvements_sejour.date BETWEEN t_unites_fonctionnelles_historique.date AND t_unites_fonctionnelles_historique.date_fin + GROUP BY 1,2 + ORDER BY 1,2 + ) subview + WHERE subview.unite_fonctionnelle_id = t_unites_fonctionnelles_historique.unite_fonctionnelle_id AND subview.date = t_unites_fonctionnelles_historique.date; + + INSERT INTO activite.t_unites_medicales_historique( + unite_medicale_id, + date, + nb_lits_theoriques, + nb_box_ambulatoires_theoriques, + nb_box_seances_theoriques, + nb_lits_cp_theoriques, + nb_lits_ouverts, + nb_box_ambulatoires_ouverts, + nb_box_seances_ouverts, + nb_lits_cp_ouverts, + est_ouvert_1, + est_ouvert_2, + est_ouvert_3, + est_ouvert_4, + est_ouvert_5, + est_ouvert_6, + est_ouvert_7) + SELECT + oid, + '20070101'::date, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + '1', + '1', + '1', + '1', + '1', + '1', + '1' + FROM activite.t_unites_medicales + LEFT JOIN activite.t_unites_medicales_historique ON t_unites_medicales_historique.unite_medicale_id = t_unites_medicales.oid AND t_unites_medicales_historique.date = '20070101'::date + WHERE t_unites_medicales_historique.unite_medicale_id IS NULL; + + DROP TABLE IF EXISTS w_unites_medicales_historique + ; + CREATE TEMP TABLE w_unites_medicales_historique AS + SELECT + t_unites_medicales_historique.unite_medicale_id, + t_unites_medicales_historique.date, + COALESCE(LEAD(date - interval '1 day') OVER (PARTITION BY unite_medicale_id ORDER BY unite_medicale_id, date), '2099-12-31'::date)::date AS moins_un_jour + FROM activite.t_unites_medicales_historique + ORDER BY 1, 2 + ; + + UPDATE activite.t_unites_medicales_historique + SET date_fin = date_suivante.moins_un_jour + FROM ( + SELECT + w_unites_medicales_historique.* + FROM w_unites_medicales_historique + ) date_suivante + WHERE + t_unites_medicales_historique.unite_medicale_id = date_suivante.unite_medicale_id + AND t_unites_medicales_historique.date = date_suivante.date + ; + + UPDATE activite.t_unites_medicales_historique SET + heberge_hospitalises = '0', + heberge_ambulatoires = '0', + heberge_seances = '0', + heberge_externes = '0', + heberge_urgences = '0', + heberge_bebes = '0'; + + UPDATE activite.t_unites_medicales_historique SET + heberge_hospitalises = subview.heberge_hospitalises, + heberge_ambulatoires = subview.heberge_ambulatoires, + heberge_seances = subview.heberge_seances, + heberge_externes = subview.heberge_externes, + heberge_urgences = subview.heberge_urgences, + heberge_bebes = subview.heberge_bebes + FROM ( + SELECT + t_lieux_c.unite_medicale_id, + t_unites_medicales_historique.date, + MAX(CASE WHEN est_jour_hospitalisation = '1' THEN '1' ELSE '0' END) AS heberge_hospitalises, + MAX(CASE WHEN nb_ambulatoires > 0 THEN '1' ELSE '0' END) AS heberge_ambulatoires, + MAX(CASE WHEN nb_seances > 0 AND est_jour_hospitalisation <> '1' AND nb_ambulatoires = 0 THEN '1' ELSE '0' END) AS heberge_seances, + MAX(CASE WHEN nb_externes > 0 THEN '1' ELSE '0' END) AS heberge_externes, + MAX(CASE WHEN nb_urgences > 0 THEN '1' ELSE '0' END) AS heberge_urgences, + MAX(CASE WHEN nb_bebes > 0 THEN '1' ELSE '0' END) AS heberge_bebes + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON lieu_id = t_lieux_c.oid + JOIN activite.t_unites_medicales_historique ON t_lieux_c.unite_medicale_id = t_unites_medicales_historique.unite_medicale_id AND p_mouvements_sejour.date BETWEEN t_unites_medicales_historique.date AND t_unites_medicales_historique.date_fin + GROUP BY 1,2 + ORDER BY 1,2 + ) subview + WHERE subview.unite_medicale_id = t_unites_medicales_historique.unite_medicale_id AND subview.date = t_unites_medicales_historique.date; + + DROP TABLE IF EXISTS w_places; + + CREATE TEMP TABLE w_places AS + SELECT + t_etages.oid AS parent_id, + t_type_sejour.oid AS type_sejour_id, + p_calendrier.date, + p_calendrier.jour_semaine, + p_calendrier.is_weekend, + CASE + WHEN t_type_sejour.oid = 1 THEN t_etages_historique.nb_lits_theoriques + WHEN t_type_sejour.oid = 2 THEN t_etages_historique.nb_box_ambulatoires_theoriques + WHEN t_type_sejour.oid = 5 THEN t_etages_historique.nb_box_seances_theoriques + ELSE 0 END AS nb_lits_theoriques, + CASE + WHEN t_type_sejour.oid = 1 THEN t_etages_historique.nb_lits_ouverts + WHEN t_type_sejour.oid = 2 THEN t_etages_historique.nb_box_ambulatoires_ouverts + WHEN t_type_sejour.oid = 5 THEN t_etages_historique.nb_box_seances_ouverts + ELSE 0 END AS nb_lits_ouverts, + CASE + WHEN t_type_sejour.oid = 1 THEN t_etages_historique.nb_lits_cp_theoriques + ELSE 0 END AS nb_lits_cp_theoriques, + CASE + WHEN t_type_sejour.oid = 1 THEN t_etages_historique.nb_lits_cp_ouverts + ELSE 0 END AS nb_lits_cp_ouverts, + CASE + WHEN t_type_sejour.oid = 5 THEN t_etages_historique.nb_box_seances_theoriques + ELSE 0 END AS nb_box_seances_theoriques, + CASE + WHEN t_type_sejour.oid = 5 THEN t_etages_historique.nb_box_seances_ouverts + ELSE 0 END AS nb_box_seances_ouverts, + CASE WHEN date_part('DOW',p_calendrier.date) = 1 THEN est_ouvert_1 + WHEN date_part('DOW',p_calendrier.date) = 2 THEN est_ouvert_2 + WHEN date_part('DOW',p_calendrier.date) = 3 THEN est_ouvert_3 + WHEN date_part('DOW',p_calendrier.date) = 4 THEN est_ouvert_4 + WHEN date_part('DOW',p_calendrier.date) = 5 THEN est_ouvert_5 + WHEN date_part('DOW',p_calendrier.date) = 6 THEN est_ouvert_6 + WHEN date_part('DOW',p_calendrier.date) = 0 THEN est_ouvert_7 + ELSE '0' END AS est_ouvert, + heberge_hospitalises, + heberge_ambulatoires, + heberge_seances, + heberge_externes, + heberge_urgences, + heberge_bebes + FROM activite.t_etages + JOIN activite.t_etages_historique ON t_etages.oid = t_etages_historique.etage_id + JOIN base.p_calendrier ON p_calendrier.date BETWEEN t_etages_historique.date AND t_etages_historique.date_fin AND p_calendrier.date BETWEEN '20070101'::date AND now() + interval '1 month' + JOIN activite.p_chiffrier ON p_calendrier.mois = p_chiffrier.mois + LEFT JOIN activite.t_divers ON t_divers.code = 'PLACESREF' + JOIN activite.t_type_sejour ON t_type_sejour.oid IN (1,2,5) + WHERE t_divers.valeur = 'ETA' OR t_divers.valeur IS NULL + ORDER BY 1,2; + + INSERT INTO w_places + SELECT + t_services_facturation.oid AS service_facturation_id, + t_type_sejour.oid AS type_sejour_id, + p_calendrier.date, + p_calendrier.jour_semaine, + p_calendrier.is_weekend, + CASE + WHEN t_type_sejour.oid = 1 THEN t_services_facturation_historique.nb_lits_theoriques + WHEN t_type_sejour.oid = 2 THEN t_services_facturation_historique.nb_box_ambulatoires_theoriques + WHEN t_type_sejour.oid = 5 THEN t_services_facturation_historique.nb_box_seances_theoriques + ELSE 0 END AS nb_lits_theoriques, + CASE + WHEN t_type_sejour.oid = 1 THEN t_services_facturation_historique.nb_lits_ouverts + WHEN t_type_sejour.oid = 2 THEN t_services_facturation_historique.nb_box_ambulatoires_ouverts + WHEN t_type_sejour.oid = 5 THEN t_services_facturation_historique.nb_box_seances_ouverts + ELSE 0 END AS nb_lits_ouverts, + CASE + WHEN t_type_sejour.oid = 1 THEN t_services_facturation_historique.nb_lits_cp_theoriques + ELSE 0 END AS nb_lits_cp_theoriques, + CASE + WHEN t_type_sejour.oid = 1 THEN t_services_facturation_historique.nb_lits_cp_ouverts + ELSE 0 END AS nb_lits_cp_ouverts, + CASE + WHEN t_type_sejour.oid = 5 THEN t_services_facturation_historique.nb_box_seances_theoriques + ELSE 0 END AS nb_box_seances_theoriques, + CASE + WHEN t_type_sejour.oid = 5 THEN t_services_facturation_historique.nb_box_seances_ouverts + ELSE 0 END AS nb_box_seances_ouverts, + CASE WHEN date_part('DOW',p_calendrier.date) = 1 THEN est_ouvert_1 + WHEN date_part('DOW',p_calendrier.date) = 2 THEN est_ouvert_2 + WHEN date_part('DOW',p_calendrier.date) = 3 THEN est_ouvert_3 + WHEN date_part('DOW',p_calendrier.date) = 4 THEN est_ouvert_4 + WHEN date_part('DOW',p_calendrier.date) = 5 THEN est_ouvert_5 + WHEN date_part('DOW',p_calendrier.date) = 6 THEN est_ouvert_6 + WHEN date_part('DOW',p_calendrier.date) = 0 THEN est_ouvert_7 + ELSE '0' END AS est_ouvert, + heberge_hospitalises, + heberge_ambulatoires, + heberge_seances, + heberge_externes, + heberge_urgences, + heberge_bebes + FROM activite.t_services_facturation + JOIN activite.t_services_facturation_historique ON t_services_facturation.oid = t_services_facturation_historique.service_facturation_id + JOIN base.p_calendrier ON p_calendrier.date BETWEEN t_services_facturation_historique.date AND t_services_facturation_historique.date_fin AND p_calendrier.date BETWEEN '20070101'::date AND now() + interval '1 month' + JOIN activite.p_chiffrier ON p_calendrier.mois = p_chiffrier.mois + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'SER' + JOIN activite.t_type_sejour ON t_type_sejour.oid IN (1,2,5) + ORDER BY 1,2; + + INSERT INTO w_places + SELECT + t_unites_fonctionnelles.oid AS unite_fonctionnelle_id, + t_type_sejour.oid AS type_sejour_id, + p_calendrier.date, + p_calendrier.jour_semaine, + p_calendrier.is_weekend, + CASE + WHEN t_type_sejour.oid = 1 THEN t_unites_fonctionnelles_historique.nb_lits_theoriques + WHEN t_type_sejour.oid = 2 THEN t_unites_fonctionnelles_historique.nb_box_ambulatoires_theoriques + WHEN t_type_sejour.oid = 5 THEN t_unites_fonctionnelles_historique.nb_box_seances_theoriques + ELSE 0 END AS nb_lits_theoriques, + CASE + WHEN t_type_sejour.oid = 1 THEN t_unites_fonctionnelles_historique.nb_lits_ouverts + WHEN t_type_sejour.oid = 2 THEN t_unites_fonctionnelles_historique.nb_box_ambulatoires_ouverts + WHEN t_type_sejour.oid = 5 THEN t_unites_fonctionnelles_historique.nb_box_seances_ouverts + ELSE 0 END AS nb_lits_ouverts, + CASE + WHEN t_type_sejour.oid = 1 THEN t_unites_fonctionnelles_historique.nb_lits_cp_theoriques + ELSE 0 END AS nb_lits_cp_theoriques, + CASE + WHEN t_type_sejour.oid = 1 THEN t_unites_fonctionnelles_historique.nb_lits_cp_ouverts + ELSE 0 END AS nb_lits_cp_ouverts, + CASE + WHEN t_type_sejour.oid = 5 THEN t_unites_fonctionnelles_historique.nb_box_seances_theoriques + ELSE 0 END AS nb_box_seances_theoriques, + CASE + WHEN t_type_sejour.oid = 5 THEN t_unites_fonctionnelles_historique.nb_box_seances_ouverts + ELSE 0 END AS nb_box_seances_ouverts, + CASE WHEN date_part('DOW',p_calendrier.date) = 1 THEN est_ouvert_1 + WHEN date_part('DOW',p_calendrier.date) = 2 THEN est_ouvert_2 + WHEN date_part('DOW',p_calendrier.date) = 3 THEN est_ouvert_3 + WHEN date_part('DOW',p_calendrier.date) = 4 THEN est_ouvert_4 + WHEN date_part('DOW',p_calendrier.date) = 5 THEN est_ouvert_5 + WHEN date_part('DOW',p_calendrier.date) = 6 THEN est_ouvert_6 + WHEN date_part('DOW',p_calendrier.date) = 0 THEN est_ouvert_7 + ELSE '0' END AS est_ouvert, + heberge_hospitalises, + heberge_ambulatoires, + heberge_seances, + heberge_externes, + heberge_urgences, + heberge_bebes + FROM activite.t_unites_fonctionnelles + JOIN activite.t_unites_fonctionnelles_historique ON t_unites_fonctionnelles.oid = t_unites_fonctionnelles_historique.unite_fonctionnelle_id + JOIN base.p_calendrier ON p_calendrier.date BETWEEN t_unites_fonctionnelles_historique.date AND t_unites_fonctionnelles_historique.date_fin AND p_calendrier.date BETWEEN '20070101'::date AND now() + interval '1 month' + JOIN activite.p_chiffrier ON p_calendrier.mois = p_chiffrier.mois + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'UF' + JOIN activite.t_type_sejour ON t_type_sejour.oid IN (1,2,5) + ORDER BY 1,2; + + INSERT INTO w_places + SELECT + t_unites_medicales.oid AS unite_medicale_id, + t_type_sejour.oid AS type_sejour_id, + p_calendrier.date, + p_calendrier.jour_semaine, + p_calendrier.is_weekend, + CASE + WHEN t_type_sejour.oid = 1 THEN t_unites_medicales_historique.nb_lits_theoriques + WHEN t_type_sejour.oid = 2 THEN t_unites_medicales_historique.nb_box_ambulatoires_theoriques + WHEN t_type_sejour.oid = 5 THEN t_unites_medicales_historique.nb_box_seances_theoriques + ELSE 0 END AS nb_lits_theoriques, + CASE + WHEN t_type_sejour.oid = 1 THEN t_unites_medicales_historique.nb_lits_ouverts + WHEN t_type_sejour.oid = 2 THEN t_unites_medicales_historique.nb_box_ambulatoires_ouverts + WHEN t_type_sejour.oid = 5 THEN t_unites_medicales_historique.nb_box_seances_ouverts + ELSE 0 END AS nb_lits_ouverts, + CASE + WHEN t_type_sejour.oid = 1 THEN t_unites_medicales_historique.nb_lits_cp_theoriques + ELSE 0 END AS nb_lits_cp_theoriques, + CASE + WHEN t_type_sejour.oid = 1 THEN t_unites_medicales_historique.nb_lits_cp_ouverts + ELSE 0 END AS nb_lits_cp_ouverts, + CASE + WHEN t_type_sejour.oid = 5 THEN t_unites_medicales_historique.nb_box_seances_theoriques + ELSE 0 END AS nb_box_seances_theoriques, + CASE + WHEN t_type_sejour.oid = 5 THEN t_unites_medicales_historique.nb_box_seances_ouverts + ELSE 0 END AS nb_box_seances_ouverts, + CASE WHEN date_part('DOW',p_calendrier.date) = 1 THEN est_ouvert_1 + WHEN date_part('DOW',p_calendrier.date) = 2 THEN est_ouvert_2 + WHEN date_part('DOW',p_calendrier.date) = 3 THEN est_ouvert_3 + WHEN date_part('DOW',p_calendrier.date) = 4 THEN est_ouvert_4 + WHEN date_part('DOW',p_calendrier.date) = 5 THEN est_ouvert_5 + WHEN date_part('DOW',p_calendrier.date) = 6 THEN est_ouvert_6 + WHEN date_part('DOW',p_calendrier.date) = 0 THEN est_ouvert_7 + ELSE '0' END AS est_ouvert, + heberge_hospitalises, + heberge_ambulatoires, + heberge_seances, + heberge_externes, + heberge_urgences, + heberge_bebes + FROM activite.t_unites_medicales + JOIN activite.t_unites_medicales_historique ON t_unites_medicales.oid = t_unites_medicales_historique.unite_medicale_id + JOIN base.p_calendrier ON p_calendrier.date BETWEEN t_unites_medicales_historique.date AND t_unites_medicales_historique.date_fin AND p_calendrier.date BETWEEN '20070101'::date AND now() + interval '1 month' + JOIN activite.p_chiffrier ON p_calendrier.mois = p_chiffrier.mois + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'UM' + JOIN activite.t_type_sejour ON t_type_sejour.oid IN (1,2,5) + ORDER BY 1,2; + + + -- Selon lits réellement occupés (ambulatoires) + DROP TABLE IF EXISTS w_etages_date; + + CREATE TEMP TABLE w_etages_date AS + SELECT t_etages_historique.etage_id, p_calendrier.date + FROM base.p_calendrier + JOIN activite.t_etages_historique ON nb_box_ambulatoires_ouverts < 0 AND + p_calendrier.date BETWEEN t_etages_historique.date AND t_etages_historique.date_fin + WHERE p_calendrier.date <= date(now()) + ; + + + DROP TABLE IF EXISTS w_places_lits_reels; + + CREATE TEMP TABLE w_places_lits_reels AS + SELECT w_etages_date.etage_id, w_etages_date.date, count(DISTINCT lit_id) AS nb_box_ambulatoires + FROM w_etages_date + LEFT JOIN (activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON lieu_id = t_lieux_c.oid + JOIN activite.t_etages ON etage_id = t_etages.oid + ) ON w_etages_date.etage_id = t_lieux_c.etage_id AND + w_etages_date.date = p_mouvements_sejour.date + GROUP BY 1,2 + ; + + + UPDATE w_places SET + nb_lits_ouverts = nb_box_ambulatoires + FROM w_places_lits_reels + WHERE w_places.parent_id = w_places_lits_reels.etage_id AND + w_places.date = w_places_lits_reels.date AND + type_sejour_id = 2 + ; + + TRUNCATE activite.t_places; + + INSERT INTO activite.t_places( + parent_id, + type_sejour_id, + date, + jour_semaine, + is_weekend, + nb_lits_theoriques, + nb_lits_ouverts, + nb_lits_cp_theoriques, + nb_lits_cp_ouverts, + est_ouvert, + heberge_hospitalises, + heberge_ambulatoires, + heberge_seances, + heberge_externes, + heberge_urgences, + heberge_bebes, + nb_box_seances_theoriques, + nb_box_seances_ouverts + ) + SELECT + w_places.parent_id, + w_places.type_sejour_id, + w_places.date, + w_places.jour_semaine, + w_places.is_weekend, + w_places.nb_lits_theoriques, + w_places.nb_lits_ouverts, + w_places.nb_lits_cp_theoriques, + w_places.nb_lits_cp_ouverts, + w_places.est_ouvert, + w_places.heberge_hospitalises, + w_places.heberge_ambulatoires, + w_places.heberge_seances, + w_places.heberge_externes, + w_places.heberge_urgences, + w_places.heberge_bebes, + w_places.nb_box_seances_theoriques, + w_places.nb_box_seances_ouverts + FROM w_places + LEFT JOIN activite.t_places t_places_deja ON w_places.parent_id = t_places_deja.parent_id AND + w_places.date = t_places_deja.date AND + w_places.type_sejour_id = t_places_deja.type_sejour_id + WHERE t_places_deja.parent_id IS NULL; + + + ANALYSE activite.t_places; + + DROP TABLE IF EXISTS w_places; + + DROP TABLE IF EXISTS w_places_parents; + + CREATE TEMP TABLE w_places_parents AS + SELECT + t_etages.oid AS oid, + t_etages.code AS parent_code, + t_etages.texte AS parent_texte, + 'ETA'::text AS parent_type, + t_etages.section_id AS parent_section_id, + t_etages.section_code AS parent_section_code, + t_etages.section_texte AS parent_section_texte, + finess_id, t_finess_c.code AS finess_code, + t_finess_c.texte AS finess_texte, + t_finess_c.section_id AS finess_section_id, + t_finess_c.section_code AS finess_section_code, + t_finess_c.section_texte AS finess_section_texte, + -111::bigint AS mode_traitement_id, + ''::text AS mode_traitement_code, + ''::text AS mode_traitement_texte + FROM + activite.t_etages + LEFT JOIN activite.t_divers ON t_divers.code = 'PLACESREF' + LEFT JOIN activite.t_finess_c ON finess_id = t_finess_c.oid + WHERE + t_divers.valeur = 'ETA' OR t_divers.valeur IS NULL + UNION all + SELECT + t_services_facturation.oid AS oid, + t_services_facturation.code AS parent_code, + t_services_facturation.texte AS parent_texte, + 'SER'::text AS parent_type, + t_services_facturation.section_id AS parent_section_id, + t_services_facturation.section_code AS parent_section_code, + t_services_facturation.section_texte AS parent_section_texte, + finess_id, + t_finess_c.code AS finess_code, + t_finess_c.texte AS finess_texte, + t_finess_c.section_id AS finess_section_id, + t_finess_c.section_code AS finess_section_code, + t_finess_c.section_texte AS finess_section_texte, + t_services_facturation.mode_traitement_id, + COALESCE(t_modes_traitement.code,''::text)::text AS mode_traitement_code, + COALESCE(t_modes_traitement.texte_court,''::text)::text AS mode_traitement_texte + FROM + activite.t_services_facturation + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'SER' + LEFT JOIN activite.t_finess_c ON finess_id = t_finess_c.oid + LEFT JOIN base.t_modes_traitement ON t_services_facturation.mode_traitement_id = t_modes_traitement.oid + UNION All + SELECT + t_unites_fonctionnelles.oid AS oid, + t_unites_fonctionnelles.code AS parent_code, + t_unites_fonctionnelles.texte AS parent_texte, + 'UF'::text AS parent_type, + t_unites_fonctionnelles.section_id AS parent_section_id, + t_unites_fonctionnelles.section_code AS parent_section_code, + t_unites_fonctionnelles.section_texte AS parent_section_texte, + finess_id, + t_finess_c.code AS finess_code, + t_finess_c.texte AS finess_texte, + t_finess_c.section_id AS finess_section_id, + t_finess_c.section_code AS finess_section_code, + t_finess_c.section_texte AS finess_section_texte, + -111::bigint AS mode_traitement_id, + ''::text AS mode_traitement_code, + ''::text AS mode_traitement_texte + FROM + activite.t_unites_fonctionnelles + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'UF' + LEFT JOIN activite.t_finess_c ON finess_id = t_finess_c.oid + UNION All + SELECT + t_unites_medicales.oid AS oid, + t_unites_medicales.code AS parent_code, + t_unites_medicales.texte AS parent_texte, + 'UM'::text AS parent_type, + t_unites_medicales.section_id AS parent_section_id, + t_unites_medicales.section_code AS parent_section_code, + t_unites_medicales.section_texte AS parent_section_texte, + finess_id, + t_finess_c.code AS finess_code, + t_finess_c.texte AS finess_texte, + t_finess_c.section_id AS finess_section_id, + t_finess_c.section_code AS finess_section_code, + t_finess_c.section_texte AS finess_section_texte, + -111::bigint AS mode_traitement_id, + ''::text AS mode_traitement_code, + ''::text AS mode_traitement_texte + FROM + activite.t_unites_medicales + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'UM' + LEFT JOIN activite.t_finess_c ON finess_id = t_finess_c.oid; + + TRUNCATE activite.t_places_parents; + + INSERT INTO activite.t_places_parents ( + oid, + parent_code, + parent_texte, + parent_type, + parent_section_id, + parent_section_code, + parent_section_texte, + finess_id, + finess_code, + finess_texte, + finess_section_id, + finess_section_code, + finess_section_texte, + mode_traitement_id, + mode_traitement_code, + mode_traitement_texte + ) + SELECT + oid, + parent_code, + parent_texte, + parent_type, + parent_section_id, + parent_section_code, + parent_section_texte, + finess_id, + finess_code, + finess_texte, + finess_section_id, + finess_section_code, + finess_section_texte, + mode_traitement_id, + mode_traitement_code, + mode_traitement_texte + FROM w_places_parents + WHERE oid NOT IN (SELECT oid FROM activite.t_places_parents); + + ANALYSE activite.t_places_parents; + + -- Désactivation RAZ séances dans taux car géré dans cti_calcul_journees_mouvements + IF 1<>1 THEN + UPDATE activite.p_mouvements_sejour + SET nb_seances_dans_taux = + CASE + WHEN t_places.nb_box_seances_theoriques > 0 THEN nb_seances + WHEN nb_seances_dans_taux > 0 AND t_places.nb_box_seances_theoriques = 0 THEN 0 + ELSE nb_seances_dans_taux END + FROM activite.t_lieux + JOIN activite.t_lits ON lit_id = t_lits.oid + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + LEFT JOIN activite.t_etages t_etages_forces_service ON t_services_facturation.etage_force_id = t_etages_forces_service.oid + LEFT JOIN activite.t_etages t_etages_par_defaut_service ON t_services_facturation.etage_par_defaut_id = t_etages_par_defaut_service.oid + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'ETA' + JOIN activite.t_places ON + (t_lits.etage_id = t_places.parent_id AND t_services_facturation.etage_par_defaut_id = 0 AND t_services_facturation.etage_force_id = 0) OR + (t_lits.etage_id = t_places.parent_id AND t_services_facturation.etage_par_defaut_id <> 0 AND t_lits.etage_id <> 0 AND t_services_facturation.etage_force_id = 0) OR + (t_lits.etage_id = 0 AND t_services_facturation.etage_par_defaut_id <> 0 AND t_services_facturation.etage_par_defaut_id = t_places.parent_id) OR + (t_services_facturation.etage_force_id = t_places.parent_id AND t_services_facturation.etage_force_id <> 0) + WHERE lieu_id = t_lieux.oid AND nb_seances > 0 AND t_places.date = p_mouvements_sejour.date AND + nb_seances_dans_taux IS DISTINCT FROM + CASE + WHEN t_places.nb_box_seances_theoriques > 0 THEN nb_seances + WHEN nb_seances_dans_taux > 0 AND t_places.nb_box_seances_theoriques = 0 THEN 0 + ELSE nb_seances_dans_taux END; + + UPDATE activite.p_mouvements_sejour + SET nb_seances_dans_taux = + CASE + WHEN t_places.nb_box_seances_theoriques > 0 THEN nb_seances + WHEN nb_seances_dans_taux > 0 AND t_places.nb_box_seances_theoriques = 0 THEN 0 + ELSE nb_seances_dans_taux END + FROM activite.t_lieux + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'SER' + JOIN activite.t_places ON service_facturation_id = t_places.parent_id + WHERE lieu_id = t_lieux.oid AND nb_seances > 0 AND t_places.date = p_mouvements_sejour.date AND + nb_seances_dans_taux IS DISTINCT FROM + CASE + WHEN t_places.nb_box_seances_theoriques > 0 THEN nb_seances + WHEN nb_seances_dans_taux > 0 AND t_places.nb_box_seances_theoriques = 0 THEN 0 + ELSE nb_seances_dans_taux END; + + UPDATE activite.p_mouvements_sejour + SET nb_seances_dans_taux = + CASE + WHEN t_places.nb_box_seances_theoriques > 0 THEN nb_seances + WHEN nb_seances_dans_taux > 0 AND t_places.nb_box_seances_theoriques = 0 THEN 0 + ELSE nb_seances_dans_taux END + FROM activite.t_lieux + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'UF' + JOIN activite.t_places ON unite_fonctionnelle_id = t_places.parent_id + WHERE lieu_id = t_lieux.oid AND nb_seances > 0 AND t_places.date = p_mouvements_sejour.date AND + nb_seances_dans_taux IS DISTINCT FROM + CASE + WHEN t_places.nb_box_seances_theoriques > 0 THEN nb_seances + WHEN nb_seances_dans_taux > 0 AND t_places.nb_box_seances_theoriques = 0 THEN 0 + ELSE nb_seances_dans_taux END; + + UPDATE activite.p_mouvements_sejour + SET nb_seances_dans_taux = + CASE + WHEN t_places.nb_box_seances_theoriques > 0 THEN nb_seances + WHEN nb_seances_dans_taux > 0 AND t_places.nb_box_seances_theoriques = 0 THEN 0 + ELSE nb_seances_dans_taux END + FROM activite.t_lieux + JOIN activite.t_divers ON t_divers.code = 'PLACESREF' AND t_divers.valeur = 'UM' + JOIN activite.t_places ON unite_medicale_id = t_places.parent_id + WHERE lieu_id = t_lieux.oid AND nb_seances > 0 AND t_places.date = p_mouvements_sejour.date AND + nb_seances_dans_taux IS DISTINCT FROM + CASE + WHEN t_places.nb_box_seances_theoriques > 0 THEN nb_seances + WHEN nb_seances_dans_taux > 0 AND t_places.nb_box_seances_theoriques = 0 THEN 0 + ELSE nb_seances_dans_taux END; + END IF; + + -- Application des poles aux places + UPDATE activite.t_places + SET pole_id = pole_occupation_id + FROM activite.t_places_parents + JOIN activite.t_etages_historique ON t_places_parents.oid = t_etages_historique.etage_id + WHERE t_places.parent_id = t_places_parents.oid AND + parent_type = 'ETA' AND + t_places.date BETWEEN t_etages_historique.date AND t_etages_historique.date_fin + ; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_pole.yaml b/db/schema2/functions/cti_reorganize_pole.yaml new file mode 100644 index 0000000..37ab298 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_pole.yaml @@ -0,0 +1,1123 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + _module_pmsimco TEXT; + _with_rubrique TEXT; + _with_prestation TEXT; + _with_acte TEXT; + BEGIN + + RAISE NOTICE '%' , 'Initialisation poles'; + -- Contenu table + INSERT INTO base.t_pole (oid, code, texte, texte_court) + SELECT 0, '**', 'Non renseigné', 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_pole); + + IF (SELECT count(*) FROM base.t_pole WHERE oid > 0) = 0 THEN + RETURN 'OK. Aucun pole'; + END IF; + + -- replication dans activite + TRUNCATE activite.t_pole; + INSERT INTO activite.t_pole (oid, code, texte, texte_court, section_id, section_code, section_texte) + SELECT oid, code, texte, texte_court, section_id, section_code, section_texte + FROM base.t_pole + ; + + + RAISE NOTICE '%' , 'Preparation mouvemennts'; + + DROP TABLE IF EXISTS w_sejour_lieu; + + CREATE TEMP TABLE w_sejour_lieu AS + SELECT p_mouvements_sejour.no_sejour, p_mouvements_sejour.lieu_id + FROM activite.p_mouvements_sejour + GROUP BY 1,2 + ; + + ANALYSE w_sejour_lieu + ; + + CREATE INDEX i_w_sejour_lieu_no_sejour + ON w_sejour_lieu + USING btree + (no_sejour COLLATE pg_catalog."default"); + + CREATE INDEX i_w_sejour_lieu_lieu_id + ON w_sejour_lieu + USING btree + (lieu_id); + + INSERT INTO w_sejour_lieu (no_sejour, lieu_id) + SELECT p_sejours.no_sejour, p_sejours.lieu_sortie_id + FROM activite.p_sejours + LEFT JOIN w_sejour_lieu ON + p_sejours.no_sejour = w_sejour_lieu.no_sejour AND + p_sejours.lieu_sortie_id = w_sejour_lieu.lieu_id + WHERE w_sejour_lieu.lieu_id IS NULL + GROUP BY 1,2 + ; + + INSERT INTO w_sejour_lieu (no_sejour, lieu_id) + SELECT p_factures.no_sejour, p_factures_lignes_c.lieu_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + LEFT JOIN w_sejour_lieu ON + p_factures.no_sejour = w_sejour_lieu.no_sejour AND + p_factures_lignes_c.lieu_id = w_sejour_lieu.lieu_id + WHERE w_sejour_lieu.lieu_id IS NULL + GROUP BY 1,2 + ; + + + + + INSERT INTO w_sejour_lieu (no_sejour, lieu_id) + SELECT p_factures.no_sejour, p_factures_lignes_h.lieu_id + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_h.no_facture + LEFT JOIN w_sejour_lieu ON + p_factures.no_sejour = w_sejour_lieu.no_sejour AND + p_factures_lignes_h.lieu_id = w_sejour_lieu.lieu_id + WHERE w_sejour_lieu.lieu_id IS NULL + GROUP BY 1,2 + ; + + + RAISE NOTICE '%' , 'Application des regles'; + + -- pmsi mco ? + _module_pmsimco = '0'; + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + IF (SELECT count(*) + FROM activite.t_pole_rule + WHERE liste_ghm <> '' OR + COALESCE(liste_sauf_ghm,'') <> '' OR + COALESCE(liste_diagnostic_principal,'') <> '' OR + COALESCE(liste_diagnostic_relie,'') <> '' OR + COALESCE(liste_diagnostic_associe,'') <> '' OR + COALESCE(liste_acte,'') <> '') > 1 THEN + _module_pmsimco = '1'; + RAISE NOTICE '%' , 'Application des regles. Avec PMSI MCO'; + END IF; + END IF; + + -- Rubriques ? + _with_rubrique = '0'; + IF (SELECT count(*) + FROM activite.t_pole_rule + WHERE COALESCE(liste_rubrique,'') <> '' + ) > 1 THEN + _with_rubrique = '1'; + END IF; + _with_prestation = '0'; + IF (SELECT count(*) + FROM activite.t_pole_rule + WHERE COALESCE(liste_prestation,'') <> '' OR + COALESCE(liste_sauf_prestation,'') <> '' + ) > 1 THEN + _with_prestation = '1'; + END IF; + _with_acte = '0'; + IF (SELECT count(*) + FROM activite.t_pole_rule + WHERE COALESCE(liste_acte,'') <> '' + ) > 1 THEN + _with_acte = '1'; + END IF; + + -- Sejours et RSS à Traiter + + RAISE NOTICE '%' , 'Application des regles. Identification des sejours'; + DROP SEQUENCE IF EXISTS w_sejours_rss_sequence; + CREATE SEQUENCE w_sejours_rss_sequence; + DROP TABLE IF EXISTS w_sejours_rss; + + IF _module_pmsimco = '1' THEN + -- si pmsi mco + CREATE TEMP TABLE w_sejours_rss AS + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + COALESCE(p_rss.oid,0) AS rss_id, + diagnostic_principal_id, + diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS prestation_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + p_rss.ghm_id AS ghm_pmsi_id, + p_sejours.ghm_id AS ghm_activite_id, + COALESCE(medecin_rss_id,0) AS medecin_rss_id, + medecin_sejour_id, + COALESCE(t_medecins_pmsi.specialite_id,0) AS specialite_rss_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + p_sejours.type_sejour, + w_sejour_lieu.lieu_id, + t_lieux_c.unite_fonctionnelle_id, + t_lieux_c.service_facturation_id, + t_lieux_c.etage_id, + t_lieux_c.activite_id, + 0::bigint AS pole_id, + 0::bigint AS pole_priorite + FROM activite.p_sejours + JOIN w_sejour_lieu ON p_sejours.no_sejour = w_sejour_lieu.no_sejour + JOIN activite.t_lieux_c ON w_sejour_lieu.lieu_id = t_lieux_c.oid + LEFT JOIN pmsi.p_rss ON no_sejour_administratif = p_sejours.no_sejour AND p_sejours.date_sortie = p_rss.date_sortie AND p_rss.etat = '' + LEFT JOIN pmsi.t_medecins t_medecins_pmsi ON medecin_rss_id = t_medecins_pmsi.oid + LEFT JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid + LEFT JOIN base.t_finess ON p_sejours.finess = t_finess.code; + + UPDATE w_sejours_rss SET + medecin_rss_id = t_medecins.oid, + specialite_rss_id = t_medecins.specialite_id + FROM activite.t_medecins_administratifs_c + JOIN pmsi.t_medecins ON t_medecins_administratifs_c.adm_code = t_medecins.code + WHERE medecin_sejour_id = t_medecins_administratifs_c.oid AND + t_medecins.oid <> 0 AND + (t_medecins.oid IS DISTINCT FROM medecin_rss_id OR + specialite_rss_id IS DISTINCT FROM t_medecins.specialite_id) + ; + ELSE + -- si pas pmsi mco + CREATE TEMP TABLE w_sejours_rss AS + SELECT + nextval('w_sejours_rss_sequence'::regclass) AS oid, + COALESCE(t_finess.oid,0) AS finess_id, + p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + 0 AS rss_id, + 0::bigint AS diagnostic_principal_id, + 0::bigint AS diagnostic_relie_id, + NULL::bigint[] AS diagnostic_associe_liste_rule_id, + NULL::bigint[] AS acte_liste_rule_id, + NULL::bigint[] AS prestation_liste_rule_id, + NULL::bigint[] AS rubrique_liste_rule_id, + 0::bigint AS ghm_pmsi_id, + p_sejours.ghm_id AS ghm_activite_id, + 0 AS medecin_rss_id, + medecin_sejour_id, + 0 AS specialite_rss_id, + COALESCE(t_medecins_base.specialite_id,0) AS specialite_sejour_id, + p_sejours.type_sejour, + w_sejour_lieu.lieu_id, + t_lieux_c.unite_fonctionnelle_id, + t_lieux_c.service_facturation_id, + t_lieux_c.etage_id, + t_lieux_c.activite_id, + 0::bigint AS pole_id, + 0::bigint AS pole_priorite + FROM activite.p_sejours + JOIN w_sejour_lieu ON p_sejours.no_sejour = w_sejour_lieu.no_sejour + JOIN activite.t_lieux_c ON w_sejour_lieu.lieu_id = t_lieux_c.oid + LEFT JOIN base.t_finess ON p_sejours.finess = t_finess.code + LEFT JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN base.t_medecins t_medecins_base ON t_medecins_administratifs.medecin_id = t_medecins_base.oid + ; + END IF; + -- GHM sur services non MCO + -- Verrouillé pour l'instant (on verra par la suite) + -- UPDATE w_sejours_rss SET + -- ghm_pmsi_id = 0, + -- ghm_activite_id = 0 + -- FROM activite.t_services_facturation + -- WHERE service_facturation_id = t_services_facturation .oid AND + -- type_t2a <> '1' AND + -- service_facturation_id <> 0 AND + -- (ghm_pmsi_id > 0 OR + -- ghm_activite_id > 0) + -- ; + + -- + UPDATE w_sejours_rss SET + medecin_rss_id = 0, + specialite_rss_id = 0 + WHERE medecin_sejour_id <> 0 AND + (medecin_rss_id <> 0 OR specialite_rss_id <> 0); + UPDATE w_sejours_rss + SET finess_id = (SELECT MAX(finess_id) FROM w_sejours_rss WHERE finess_id <> 0) + WHERE finess_id = 0 AND (SELECT MAX(finess_id) FROM w_sejours_rss WHERE finess_id <> 0) <> 0; + UPDATE w_sejours_rss + SET finess_id = (SELECT MAX(oid) FROM base.t_finess) + WHERE finess_id = 0; + CREATE INDEX w_sejours_rss_i0 ON w_sejours_rss USING btree (oid); + CREATE INDEX w_sejours_rss_i1 ON w_sejours_rss USING btree (rss_id); + CREATE INDEX w_sejours_rss_i2 ON w_sejours_rss USING btree (sejour_id); + CREATE INDEX w_sejours_rss_i3 ON w_sejours_rss USING btree (no_sejour); + + -- Traduction des règles en oid + RAISE NOTICE '%' , 'Application des regles. Traduction en oid'; + DROP TABLE IF EXISTS w_pole_rule; + CREATE TEMP TABLE w_pole_rule AS + SELECT + t_pole_rule.oid, + pole_id, + CASE WHEN priorite <> 0 THEN priorite WHEN liste_diagnostic_principal <> '' THEN 90000 ELSE 999999 END AS priorite, + CASE WHEN liste_finess <> '' THEN '1' ELSE '0' END AS a_liste_finess, + string_to_array(translate(liste_finess,'*,','% '),' ') AS liste_finess, + NULL::bigint[] AS liste_finess_id , + CASE WHEN liste_diagnostic_principal <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_principal, + string_to_array(translate(liste_diagnostic_principal,'*,','% '),' ') AS liste_diagnostic_principal, + NULL::bigint[] AS liste_diagnostic_principal_id , + CASE WHEN liste_diagnostic_relie <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_relie, + string_to_array(translate(liste_diagnostic_relie,'*,','% '),' ') AS liste_diagnostic_relie, + NULL::bigint[] AS liste_diagnostic_relie_id , + CASE WHEN liste_diagnostic_associe <> '' THEN '1' ELSE '0' END AS a_liste_diagnostic_associe, + string_to_array(translate(liste_diagnostic_associe,'*,','% '),' ') AS liste_diagnostic_associe, + NULL::bigint[] AS liste_diagnostic_associe_id , + CASE WHEN liste_acte <> '' THEN '1' ELSE '0' END AS a_liste_acte, + string_to_array(translate(liste_acte,'*,','% '),' ') AS liste_acte, + NULL::bigint[] AS liste_acte_pmsi_id , + NULL::bigint[] AS liste_acte_base_id , + CASE WHEN liste_ghm <> '' THEN '1' ELSE '0' END AS a_liste_ghm, + string_to_array(translate(liste_ghm,'*,','% '),' ') AS liste_ghm, + NULL::bigint[] AS liste_ghm_pmsi_id, + NULL::bigint[] AS liste_ghm_activite_id, + liste_ghm AS liste_ghm_origine, + CASE WHEN liste_sauf_ghm <> '' THEN '1' ELSE '0' END AS a_liste_sauf_ghm, + string_to_array(translate(liste_sauf_ghm,'*,','% '),' ') AS liste_sauf_ghm, + NULL::bigint[] AS liste_sauf_ghm_pmsi_id , + NULL::bigint[] AS liste_sauf_ghm_activite_id , + liste_sauf_ghm AS liste_sauf_ghm_origine, + CASE WHEN liste_type_sejour <> '' THEN '1' ELSE '0' END AS a_liste_type_sejour, + string_to_array(translate(liste_type_sejour,'*,','% '),' ') AS liste_type_sejour, + NULL::text[] AS liste_type_sejour_id , + CASE WHEN liste_unite_fonctionnelle <> '' THEN '1' ELSE '0' END AS a_liste_unite_fonctionnelle, + string_to_array(translate(liste_unite_fonctionnelle,'*,','% '),' ') AS liste_unite_fonctionnelle, + NULL::bigint[] AS liste_unite_fonctionnelle_id , + CASE WHEN liste_service <> '' THEN '1' ELSE '0' END AS a_liste_service, + string_to_array(translate(liste_service,'*,','% '),' ') AS liste_service, + NULL::bigint[] AS liste_service_id , + CASE WHEN liste_etage <> '' THEN '1' ELSE '0' END AS a_liste_etage, + string_to_array(translate(liste_etage,'*,','% '),' ') AS liste_etage, + NULL::bigint[] AS liste_etage_id , + CASE WHEN liste_activite <> '' THEN '1' ELSE '0' END AS a_liste_activite, + string_to_array(translate(liste_activite,'*,','% '),' ') AS liste_activite, + NULL::bigint[] AS liste_activite_id , + CASE WHEN liste_medecin <> '' THEN '1' ELSE '0' END AS a_liste_medecin, + string_to_array(CASE WHEN liste_medecin NOT LIKE '%**%' THEN translate(liste_medecin,'*,','% ') ELSE liste_medecin END,' ') AS liste_medecin, + NULL::bigint[] AS liste_medecin_pmsi_id , + NULL::bigint[] AS liste_medecin_activite_id , + CASE WHEN liste_specialite <> '' THEN '1' ELSE '0' END AS a_liste_specialite, + string_to_array(translate(liste_specialite,'*,','% '),' ') AS liste_specialite, + NULL::bigint[] AS liste_specialite_pmsi_id , + NULL::bigint[] AS liste_specialite_activite_id , + CASE WHEN liste_rubrique <> '' THEN '1' ELSE '0' END AS a_liste_rubrique, + string_to_array(translate(liste_rubrique,'*,','% '),' ') AS liste_rubrique, + NULL::bigint[] AS liste_rubrique_id, + CASE WHEN liste_prestation <> '' THEN '1' ELSE '0' END AS a_liste_prestation, + string_to_array(translate(liste_prestation,'*,','% '),' ') AS liste_prestation, + NULL::bigint[] AS liste_prestation_id + FROM activite.t_pole_rule + JOIN activite.t_pole ON pole_id = t_pole.oid + ORDER BY priorite, pole_id; + + + + UPDATE w_pole_rule + SET liste_finess_id = (SELECT base.cti_group_array3(oid) FROM base.t_finess WHERE code LIKE ANY (liste_finess)) + WHERE a_liste_finess = '1'; + + IF _module_pmsimco = '1' THEN + UPDATE w_pole_rule + SET liste_diagnostic_principal_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_principal)) + WHERE a_liste_diagnostic_principal = '1'; + UPDATE w_pole_rule + SET liste_diagnostic_relie_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_relie)) + WHERE a_liste_diagnostic_relie = '1'; + UPDATE w_pole_rule + SET liste_diagnostic_associe_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_diagnostics WHERE code LIKE ANY (liste_diagnostic_associe)) + WHERE a_liste_diagnostic_associe = '1'; + UPDATE w_pole_rule + SET liste_acte_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_actes WHERE code LIKE ANY (liste_acte)) + WHERE a_liste_acte = '1'; + DROP TABLE IF EXISTS w_pole_rule_actes_pmsi; + CREATE TEMP TABLE w_pole_rule_actes_pmsi AS + SELECT t_actes.oid AS rule_acte_id, w_pole_rule.oid AS rule_id + FROM pmsi.t_actes + JOIN w_pole_rule ON code LIKE ANY (liste_acte); + CREATE INDEX w_pole_rule_actes_pmsi_i1 ON w_pole_rule_actes_pmsi USING btree (rule_acte_id); + END IF; + + + DROP TABLE IF EXISTS w_pole_rule_actes_base; + CREATE TEMP TABLE w_pole_rule_actes_base AS + SELECT t_actes.oid AS rule_acte_id, w_pole_rule.oid AS rule_id + FROM base.t_actes + JOIN w_pole_rule ON code LIKE ANY (liste_acte); + CREATE INDEX w_pole_rule_actes_base_i1 ON w_pole_rule_actes_base USING btree (rule_acte_id); + + DROP TABLE IF EXISTS w_pole_rule_rubriques; + CREATE TEMP TABLE w_pole_rule_rubriques AS + SELECT t_rubriques_facturation.oid AS rule_rubrique_id, w_pole_rule.oid AS rule_id + FROM activite.t_rubriques_facturation + JOIN w_pole_rule ON code LIKE ANY (liste_rubrique); + CREATE INDEX w_pole_rule_rubriques_i1 ON w_pole_rule_rubriques USING btree (rule_rubrique_id); + + DROP TABLE IF EXISTS w_pole_rule_prestations; + CREATE TEMP TABLE w_pole_rule_prestations AS + SELECT t_prestations.oid AS rule_prestation_id, w_pole_rule.oid AS rule_id + FROM activite.t_prestations + JOIN w_pole_rule ON code LIKE ANY (liste_prestation); + CREATE INDEX w_pole_rule_prestations_i1 ON w_pole_rule_prestations USING btree (rule_prestation_id); + + UPDATE w_pole_rule + SET liste_acte_base_id = (SELECT base.cti_group_array3(oid) FROM base.t_actes WHERE code LIKE ANY (liste_acte)) + WHERE a_liste_acte = '1' + ; + UPDATE w_pole_rule + SET liste_acte_base_id = + array_cat(liste_acte_base_id, + (SELECT base.cti_group_array3(t_actes.oid) + FROM base.t_actes + JOIN activite.t_listes_contenu ON to_id = t_actes.oid + JOIN activite.t_listes ON t_listes_contenu.liste_id = t_listes.oid + WHERE '[LISTE:'||t_listes.code||']' LIKE ANY (liste_acte)) + ) + WHERE a_liste_acte = '1' AND + array_to_string(liste_acte,' ') LIKE '%[LISTE:%' + ; + + + IF _module_pmsimco = '1' THEN + UPDATE w_pole_rule + SET liste_ghm_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_ghm WHERE code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1'; + UPDATE w_pole_rule + SET liste_ghm_pmsi_id = + array_cat(liste_ghm_pmsi_id, + (SELECT base.cti_group_array3(t_ghm.oid) FROM pmsi.t_ghm JOIN base.t_cas ON cas_id = t_cas.oid WHERE '[CAS:'||t_cas.code||']' LIKE ANY (liste_ghm)) + ) + WHERE a_liste_ghm = '1' AND + liste_ghm_origine LIKE '%[CAS:%' + ; + END IF; + + UPDATE w_pole_rule + SET liste_ghm_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_ghm WHERE code LIKE ANY (liste_ghm)) + WHERE a_liste_ghm = '1' + ; + UPDATE w_pole_rule + SET liste_ghm_activite_id = + array_cat(liste_ghm_activite_id, + (SELECT base.cti_group_array3(t_ghm.oid) FROM base.t_ghm JOIN base.t_cas ON cas_id = t_cas.oid WHERE '[CAS:'||t_cas.code||']' LIKE ANY (liste_ghm)) + ) + WHERE a_liste_ghm = '1' AND + liste_ghm_origine LIKE '%[CAS:%' + ; + UPDATE w_pole_rule + SET liste_acte_base_id = + array_cat(liste_acte_base_id, + (SELECT base.cti_group_array3(t_actes.oid) + FROM base.t_actes + JOIN activite.t_listes_contenu ON to_id = t_actes.oid + JOIN activite.t_listes ON t_listes_contenu.liste_id = t_listes.oid + WHERE '[LISTE:'||t_listes.code||']' LIKE ANY (liste_acte)) + ) + WHERE a_liste_acte = '1' AND + array_to_string(liste_acte,' ') LIKE '%[LISTE:%' + ; + + + IF _module_pmsimco = '1' THEN + UPDATE w_pole_rule + SET liste_sauf_ghm_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_ghm WHERE code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1'; + END IF; + + UPDATE w_pole_rule + SET liste_sauf_ghm_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_ghm WHERE code LIKE ANY (liste_sauf_ghm)) + WHERE a_liste_sauf_ghm = '1' + ; + UPDATE w_pole_rule + SET liste_sauf_ghm_activite_id = + array_cat(liste_sauf_ghm_activite_id, + (SELECT base.cti_group_array3(t_ghm.oid) + FROM base.t_ghm + JOIN activite.t_listes_contenu ON to_id = t_ghm.oid + JOIN activite.t_listes ON t_listes_contenu.liste_id = t_listes.oid + WHERE '[LISTE:'||t_listes.code||']' LIKE ANY (liste_sauf_ghm)) + ) + WHERE a_liste_sauf_ghm = '1' AND + liste_sauf_ghm_origine LIKE '%[LISTE:%' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_pole_rule + SET liste_medecin_pmsi_id = ( + SELECT base.cti_group_array3(t_medecins_pmsi.oid) + FROM pmsi.t_medecins t_medecins_pmsi + JOIN base.t_medecins ON t_medecins_pmsi.medecin_reference_id = t_medecins.oid + WHERE t_medecins_pmsi.oid <> 0 AND t_medecins_pmsi.code <> '' AND t_medecins_pmsi.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' OR + t_medecins.oid <> 0 AND t_medecins.code <> '' AND t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + WHERE a_liste_medecin = '1'; + END IF; + + UPDATE w_pole_rule + SET liste_medecin_activite_id = ( + SELECT base.cti_group_array3(t_medecins_administratifs.oid) + FROM activite.t_medecins_administratifs + JOIN base.t_medecins ON t_medecins_administratifs.medecin_id = t_medecins.oid + WHERE t_medecins_administratifs.oid <> 0 AND t_medecins_administratifs.code <> '' AND t_medecins_administratifs.code LIKE ANY (liste_medecin) AND liste_medecin[1] <> '(R)' OR + t_medecins.oid <> 0 AND t_medecins.code <> '' AND t_medecins.code LIKE ANY (liste_medecin) AND liste_medecin[1] = '(R)' + ) + WHERE a_liste_medecin = '1' + ; + IF _module_pmsimco = '1' THEN + UPDATE w_pole_rule + SET liste_specialite_pmsi_id = (SELECT base.cti_group_array3(oid) FROM pmsi.t_specialites_medecin WHERE oid <> 0 AND code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1'; + END IF; + + UPDATE w_pole_rule + SET liste_specialite_activite_id = (SELECT base.cti_group_array3(oid) FROM base.t_specialites_medecin WHERE oid <> 0 AND code LIKE ANY (liste_specialite)) + WHERE a_liste_specialite = '1' + ; + UPDATE w_pole_rule + SET liste_type_sejour_id = (SELECT base.cti_group_array3(code) FROM activite.t_type_sejour WHERE oid <> 0 AND code <> '' AND code LIKE ANY (liste_type_sejour)) + WHERE a_liste_type_sejour = '1' + ; + UPDATE w_pole_rule + SET liste_unite_fonctionnelle_id = (SELECT base.cti_group_array3(oid) FROM activite.t_unites_fonctionnelles WHERE oid <> 0 AND code LIKE ANY (liste_unite_fonctionnelle)) + WHERE a_liste_unite_fonctionnelle = '1' + ; + UPDATE w_pole_rule + SET liste_service_id = (SELECT base.cti_group_array3(oid) FROM activite.t_services_facturation WHERE oid <> 0 AND code LIKE ANY (liste_service)) + WHERE a_liste_service = '1' + ; + UPDATE w_pole_rule + SET liste_etage_id = (SELECT base.cti_group_array3(oid) FROM activite.t_etages WHERE oid <> 0 AND code LIKE ANY (liste_etage)) + WHERE a_liste_etage = '1' + ; + UPDATE w_pole_rule + SET liste_activite_id = (SELECT base.cti_group_array3(oid) FROM activite.t_activites WHERE oid <> 0 AND code LIKE ANY (liste_activite)) + WHERE a_liste_activite = '1' + ; + UPDATE w_pole_rule + SET liste_rubrique_id = (SELECT base.cti_group_array3(oid) FROM activite.t_rubriques_facturation WHERE oid <> 0 AND code LIKE ANY (liste_rubrique)) + WHERE a_liste_rubrique = '1' + ; + UPDATE w_pole_rule + SET liste_prestation_id = (SELECT base.cti_group_array3(oid) FROM activite.t_prestations WHERE oid <> 0 AND code LIKE ANY (liste_prestation)) + WHERE a_liste_prestation = '1' + ; + + + -- Association cles aux rubriques + RAISE NOTICE '%' , 'Application des regles. Traitement des rubriques'; + DROP TABLE IF EXISTS w_factures_rubriques; + IF _with_rubrique = '1' THEN + CREATE TEMP TABLE w_factures_rubriques AS + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN w_pole_rule_rubriques ON p_factures_lignes_c.prestation_id = rule_rubrique_id + WHERE p_factures_lignes_c.montant_facture <> 0 + GROUP BY 1,2 + HAVING SUM(p_factures_lignes_c.montant_facture) > 0 + UNION + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_non_facturees_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_non_facturees_c.no_facture + JOIN w_pole_rule_rubriques ON p_factures_lignes_non_facturees_c.prestation_id = rule_rubrique_id + ; + CREATE INDEX w_factures_rubriques_i1 ON w_factures_rubriques USING btree (no_sejour); + ELSE + CREATE TEMP TABLE w_factures_rubriques (no_sejour text, rule_id bigint); + END IF; + + DROP TABLE IF EXISTS w_pole_rubriques; + CREATE TEMP TABLE w_pole_rubriques AS + + SELECT oid, base.cti_group_array3(rubrique_rule_id) AS rubrique_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS rubrique_rule_id + FROM w_factures_rubriques + JOIN w_sejours_rss ON w_factures_rubriques.no_sejour = w_sejours_rss.no_sejour + ) subview + GROUP BY 1; + ALTER TABLE w_pole_rubriques ADD CONSTRAINT w_pole_rubriques_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET rubrique_liste_rule_id = w_pole_rubriques.rubrique_liste_rule_id + FROM w_pole_rubriques + WHERE w_pole_rubriques.oid = w_sejours_rss.oid; + + + + -- Association cles aux prestations + RAISE NOTICE '%' , 'Application des regles. Traitement des prestations'; + DROP TABLE IF EXISTS w_factures_prestations; + IF _with_prestation = '1' THEN + CREATE TEMP TABLE w_factures_prestations AS + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN w_pole_rule_prestations ON p_factures_lignes_c.prestation_id = rule_prestation_id + WHERE p_factures_lignes_c.montant_facture <> 0 + GROUP BY 1,2 + HAVING SUM(p_factures_lignes_c.montant_facture) > 0 + UNION + SELECT + p_factures.no_sejour, rule_id + FROM activite.p_factures_lignes_non_facturees_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_non_facturees_c.no_facture + JOIN w_pole_rule_prestations ON p_factures_lignes_non_facturees_c.prestation_id = rule_prestation_id + GROUP BY 1,2 + ; + ELSE + CREATE TEMP TABLE w_factures_prestations (no_sejour text, rule_id bigint); + END IF; + CREATE INDEX w_factures_prestations_i1 ON w_factures_prestations USING btree (no_sejour); + + DROP TABLE IF EXISTS w_pole_prestations; + CREATE TEMP TABLE w_pole_prestations AS + + SELECT oid, base.cti_group_array3(prestation_rule_id) AS prestation_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS prestation_rule_id + FROM w_factures_prestations + JOIN w_sejours_rss ON w_factures_prestations.no_sejour = w_sejours_rss.no_sejour + ) subview + GROUP BY 1; + ALTER TABLE w_pole_prestations ADD CONSTRAINT w_pole_prestations_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET prestation_liste_rule_id = w_pole_prestations.prestation_liste_rule_id + FROM w_pole_prestations + WHERE w_pole_prestations.oid = w_sejours_rss.oid; + + + -- Association cles aux actes + RAISE NOTICE '%' , 'Application des regles. Traitement des actes'; + DROP TABLE IF EXISTS w_factures_actes; + IF _with_acte = '1' THEN + CREATE TEMP TABLE w_factures_actes AS + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_h + JOIN w_pole_rule_actes_base ON p_factures_lignes_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4' + UNION + SELECT + no_facture, rule_id + FROM activite.p_factures_lignes_non_facturees_h + JOIN w_pole_rule_actes_base ON p_factures_lignes_non_facturees_h.acte_id = rule_acte_id + WHERE activite_ccam <> '4'; + ELSE + CREATE TEMP TABLE w_factures_actes (no_facture text, rule_id bigint); + END IF; + CREATE INDEX w_factures_actes_i1 ON w_factures_actes USING btree (no_facture); + + DROP TABLE IF EXISTS w_pole_actes; + IF _module_pmsimco = '1' THEN + CREATE TEMP TABLE w_pole_actes AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM pmsi.p_rss_actes + JOIN w_sejours_rss ON p_rss_actes.rss_id = w_sejours_rss.rss_id + JOIN w_pole_rule_actes_pmsi ON p_rss_actes.acte_id = rule_acte_id + UNION + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + + ) subview + GROUP BY 1; + ELSE + CREATE TEMP TABLE w_pole_actes AS + SELECT oid, base.cti_group_array3(acte_rule_id) AS acte_liste_rule_id + FROM + ( + SELECT + w_sejours_rss.oid, rule_id AS acte_rule_id + FROM w_factures_actes + JOIN activite.p_factures ON w_factures_actes.no_facture = p_factures.no_facture + JOIN w_sejours_rss ON p_factures.no_sejour = w_sejours_rss.no_sejour + + ) subview + GROUP BY 1; + END IF; + ALTER TABLE w_pole_actes ADD CONSTRAINT w_pole_actes_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET acte_liste_rule_id = w_pole_actes.acte_liste_rule_id + FROM w_pole_actes + WHERE w_pole_actes.oid = w_sejours_rss.oid; + + -- Diagnostics + IF _module_pmsimco = '1' THEN + RAISE NOTICE '%' , 'Application des regles. Traitement des diagnostics'; + DROP TABLE IF EXISTS w_pole_diagnostics; + CREATE TEMP TABLE w_pole_diagnostics AS + SELECT + w_sejours_rss.oid, base.cti_group_array3(w_pole_rule.oid) AS diagnostic_associe_liste_rule_id + FROM pmsi.p_rss_diagnostics + JOIN w_pole_rule ON type_diagnostic_rss IN ('DA', 'DS') AND diagnostic_id = ANY (liste_diagnostic_associe_id) + JOIN w_sejours_rss ON p_rss_diagnostics.rss_id = w_sejours_rss.rss_id + WHERE a_liste_diagnostic_associe <> '0' + GROUP BY 1; + ALTER TABLE w_pole_diagnostics ADD CONSTRAINT w_pole_diagnostics_pkey PRIMARY KEY(oid); + UPDATE w_sejours_rss + SET diagnostic_associe_liste_rule_id = w_pole_diagnostics.diagnostic_associe_liste_rule_id + FROM w_pole_diagnostics + WHERE w_pole_diagnostics.oid = w_sejours_rss.oid; + END IF; + + -- Mise à jour des cles venant des données du PMSI + RAISE NOTICE '%' , 'Application des regles. Attribution des poles venant du pmsi'; + DROP TABLE IF EXISTS w_sejours_pole; + CREATE TEMP TABLE w_sejours_pole AS + SELECT w_sejours_rss.oid, + MIN(priorite)+1 AS pole_priorite, + (MIN(ARRAY[priorite,w_pole_rule.pole_id]))[2] AS pole_id + FROM w_sejours_rss + JOIN w_pole_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_medecin = '0' OR medecin_rss_id = ANY (liste_medecin_pmsi_id)) AND + (a_liste_type_sejour = '0') AND + (a_liste_unite_fonctionnelle = '0') AND + (a_liste_service = '0') AND + (a_liste_etage = '0') AND + (a_liste_activite = '0') AND + (a_liste_specialite = '0' OR specialite_rss_id = ANY (liste_specialite_pmsi_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_pole_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_pole_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_ghm = '0' OR ghm_pmsi_id = ANY (liste_ghm_pmsi_id)) AND + (a_liste_sauf_ghm = '0' OR ghm_pmsi_id <> ALL (liste_sauf_ghm_pmsi_id)) AND + (a_liste_prestation = '0') AND + (a_liste_rubrique = '0') + WHERE w_sejours_rss.rss_id <> 0 + GROUP BY 1 + ORDER BY 1; + UPDATE w_sejours_rss SET + pole_id = w_sejours_pole.pole_id, + pole_priorite = w_sejours_pole.pole_priorite + FROM w_sejours_pole + WHERE w_sejours_rss.oid = w_sejours_pole.oid; + -- Mise à jour des cles venant des données d'activite + RAISE NOTICE '%' , 'Application des regles. Attribution des poles venant de la GAP'; + DROP TABLE IF EXISTS w_sejours_pole; + CREATE TEMP TABLE w_sejours_pole AS + SELECT w_sejours_rss.oid, + MIN(priorite) AS pole_priorite, + (MIN(ARRAY[priorite,w_pole_rule.pole_id]))[2] AS pole_id + FROM w_sejours_rss + JOIN w_pole_rule ON + (a_liste_finess = '0' OR finess_id = ANY (liste_finess_id)) AND + (a_liste_type_sejour = '0' OR type_sejour = ANY (liste_type_sejour_id)) AND + (a_liste_unite_fonctionnelle = '0' OR unite_fonctionnelle_id = ANY (liste_unite_fonctionnelle_id)) AND + (a_liste_service = '0' OR service_facturation_id = ANY (liste_service_id)) AND + (a_liste_etage = '0' OR etage_id = ANY (liste_etage_id)) AND + (a_liste_activite = '0' OR activite_id = ANY (liste_activite_id)) AND + (a_liste_medecin = '0' OR medecin_sejour_id = ANY (liste_medecin_activite_id)) AND + (a_liste_specialite = '0' OR specialite_sejour_id = ANY (liste_specialite_activite_id)) AND + (a_liste_diagnostic_principal = '0' OR diagnostic_principal_id = ANY (liste_diagnostic_principal_id)) AND + (a_liste_diagnostic_relie = '0' OR diagnostic_relie_id = ANY (liste_diagnostic_relie_id)) AND + (a_liste_diagnostic_associe = '0' OR w_pole_rule.oid = ANY(diagnostic_associe_liste_rule_id)) AND + (a_liste_acte = '0' OR w_pole_rule.oid = ANY(acte_liste_rule_id)) AND + (a_liste_rubrique = '0' OR w_pole_rule.oid = ANY(rubrique_liste_rule_id)) AND + (a_liste_prestation = '0' OR w_pole_rule.oid = ANY(prestation_liste_rule_id)) AND + (a_liste_ghm = '0' OR ghm_activite_id = ANY (liste_ghm_activite_id)) AND + (a_liste_sauf_ghm = '0' OR ghm_activite_id <> ALL (liste_sauf_ghm_activite_id)) + WHERE w_sejours_rss.sejour_id <> 0 + GROUP BY 1 + ORDER BY 1; + UPDATE w_sejours_rss SET + pole_id = w_sejours_pole.pole_id, + pole_priorite = w_sejours_pole.pole_priorite + FROM w_sejours_pole + WHERE w_sejours_rss.oid = w_sejours_pole.oid AND + (w_sejours_rss.pole_priorite > w_sejours_pole.pole_priorite OR w_sejours_rss.pole_priorite = 0); + + RAISE NOTICE '%' , 'Application des regles. Validation des poles'; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. p_sejour_lieu'; + + TRUNCATE activite.p_sejour_lieu; + + INSERT INTO activite.p_sejour_lieu (no_sejour, sejour_id, lieu_id, pole_id) + SELECT no_sejour, sejour_id, lieu_id, MAX(pole_id) AS pole_id + FROM w_sejours_rss + GROUP BY 1,2,3 + ; + + ANALYSE activite.p_sejour_lieu + ; + + -- Réplication dans tables de prod + RAISE NOTICE '%' , 'Application des regles. Validation des poles. p_mouvements_sejour'; + + DROP TABLE IF EXISTS w_mouvement_pole; + CREATE TEMP TABLE w_mouvement_pole AS + SELECT p_mouvements_sejour.*, COALESCE(p_sejour_lieu.pole_id,0) AS new_pole_id + FROM activite.p_mouvements_sejour + LEFT JOIN activite.p_sejour_lieu ON + p_mouvements_sejour.no_sejour = p_sejour_lieu.no_sejour AND + p_mouvements_sejour.lieu_id = p_sejour_lieu.lieu_id + ; + UPDATE w_mouvement_pole + SET pole_id = new_pole_id + WHERE pole_id IS DISTINCT FROM new_pole_id + ; + ALTER TABLE w_mouvement_pole DROP COLUMN new_pole_id + ; + TRUNCATE activite.p_mouvements_sejour + ; + INSERT INTO activite.p_mouvements_sejour SELECT * FROM w_mouvement_pole + ; + ANALYSE activite.p_mouvements_sejour + ; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. p_factures_lignes_c'; + + DROP TABLE IF EXISTS w_ligne_pole_c; + CREATE TEMP TABLE w_ligne_pole_c AS + SELECT p_factures_lignes_c.*, COALESCE(p_sejour_lieu.pole_id,0) AS new_pole_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + LEFT JOIN activite.p_sejour_lieu ON + p_factures.no_sejour = p_sejour_lieu.no_sejour AND + p_factures_lignes_c.lieu_id = p_sejour_lieu.lieu_id + ; + UPDATE w_ligne_pole_c + SET pole_id = new_pole_id + WHERE pole_id IS DISTINCT FROM new_pole_id + ; + ALTER TABLE w_ligne_pole_c DROP COLUMN new_pole_id + ; + TRUNCATE activite.p_factures_lignes_c + ; + INSERT INTO activite.p_factures_lignes_c SELECT * FROM w_ligne_pole_c + ; + ANALYSE activite.p_factures_lignes_c + ; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. p_factures_encours_lignes_c'; + + DROP TABLE IF EXISTS w_encours_ligne_pole_c; + CREATE TEMP TABLE w_encours_ligne_pole_c AS + SELECT p_factures_encours_lignes_c.*, COALESCE(p_sejour_lieu.pole_id,0) AS new_pole_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours_lignes_c.no_facture = p_factures_encours.no_facture + LEFT JOIN activite.p_sejour_lieu ON + p_factures_encours.no_sejour = p_sejour_lieu.no_sejour AND + p_factures_encours_lignes_c.lieu_id = p_sejour_lieu.lieu_id + ; + UPDATE w_encours_ligne_pole_c + SET pole_id = new_pole_id + WHERE pole_id IS DISTINCT FROM new_pole_id + ; + ALTER TABLE w_encours_ligne_pole_c DROP COLUMN new_pole_id + ; + TRUNCATE activite.p_factures_encours_lignes_c + ; + INSERT INTO activite.p_factures_encours_lignes_c SELECT * FROM w_encours_ligne_pole_c + ; + ANALYSE activite.p_factures_encours_lignes_c + ; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. p_factures_lignes_h'; + + DROP TABLE IF EXISTS w_ligne_pole_h; + CREATE TEMP TABLE w_ligne_pole_h AS + SELECT p_factures_lignes_h.*, COALESCE(p_sejour_lieu.pole_id,0) AS new_pole_id + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + LEFT JOIN activite.p_sejour_lieu ON + p_factures.no_sejour = p_sejour_lieu.no_sejour AND + p_factures_lignes_h.lieu_id = p_sejour_lieu.lieu_id + ; + UPDATE w_ligne_pole_h + SET pole_id = new_pole_id + WHERE pole_id IS DISTINCT FROM new_pole_id + ; + ALTER TABLE w_ligne_pole_h DROP COLUMN new_pole_id + ; + TRUNCATE activite.p_factures_lignes_h + ; + INSERT INTO activite.p_factures_lignes_h SELECT * FROM w_ligne_pole_h + ; + ANALYSE activite.p_factures_lignes_h + ; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. p_factures_reference'; + + DROP TABLE IF EXISTS w_facture_pole; + CREATE TEMP TABLE w_facture_pole AS + SELECT no_facture_reference, + (MAX(ARRAY[p_mouvements_sejour.date::text, to_char(p_mouvements_sejour.heure_debut,'FM000000'), p_mouvements_sejour.pole_id::text]))[3]::bigint AS pole_sortie_id + FROM activite.p_factures_reference + JOIN activite.p_mouvements_sejour ON + p_mouvements_sejour.no_sejour = p_factures_reference.no_sejour AND + p_mouvements_sejour.date BETWEEN p_factures_reference.date_debut_facture AND date_fin_facture + GROUP BY 1 + ; + + UPDATE activite.p_factures_reference + SET pole_sortie_id = w_facture_pole.pole_sortie_id + FROM w_facture_pole + WHERE p_factures_reference.no_facture_reference = w_facture_pole.no_facture_reference AND + p_factures_reference.pole_sortie_id IS DISTINCT FROM w_facture_pole.pole_sortie_id + ; + + ANALYSE activite.p_factures_reference + ; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. p_factures_reference'; + + UPDATE activite.p_factures_reference_tiers + SET pole_sortie_id = w_facture_pole.pole_sortie_id + FROM w_facture_pole + WHERE p_factures_reference_tiers.no_facture_reference = w_facture_pole.no_facture_reference AND + p_factures_reference_tiers.pole_sortie_id IS DISTINCT FROM w_facture_pole.pole_sortie_id + ; + + ANALYSE activite.p_factures_reference_tiers + ; + + + -- Pole par defaut pour taux d'occupation + RAISE NOTICE '%' , 'Application des regles. Validation des poles. t_etages_historique'; + + UPDATE activite.t_etages_historique + SET pole_occupation_id = subview.pole_occupation_id + FROM + ( + SELECT etage_id, date_debut, (MAX(ARRAY[nb, pole_id]))[2] AS pole_occupation_id + FROM + ( + SELECT t_lieux_c.etage_id, t_etages_historique.date AS date_debut, t_etages_historique.date_fin, p_mouvements_sejour.pole_id, count(*) AS nb + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid + JOIN activite.t_etages_historique ON t_lieux_c.etage_id = t_etages_historique.etage_id AND p_mouvements_sejour.date BETWEEN t_etages_historique.date AND t_etages_historique.date_fin + WHERE t_lieux_c.etage_id <> 0 + GROUP BY 1,2,3,4 + ORDER BY 1,2 + ) subview + GROUP BY 1,2 + ) subview + WHERE t_etages_historique.etage_id = subview.etage_id AND + t_etages_historique.date = subview.date_debut AND + t_etages_historique.pole_occupation_id IS DISTINCT FROM subview.pole_occupation_id + ; + + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. t_services_facturation_historique'; + + UPDATE activite.t_services_facturation_historique + SET pole_occupation_id = subview.pole_occupation_id + FROM + ( + SELECT service_facturation_id, date_debut, (MAX(ARRAY[nb, pole_id]))[2] AS pole_occupation_id + FROM + ( + SELECT t_lieux_c.service_facturation_id, t_services_facturation_historique.date AS date_debut, t_services_facturation_historique.date_fin, p_mouvements_sejour.pole_id, count(*) AS nb + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid + JOIN activite.t_services_facturation_historique ON t_lieux_c.service_facturation_id = t_services_facturation_historique.service_facturation_id AND p_mouvements_sejour.date BETWEEN t_services_facturation_historique.date AND t_services_facturation_historique.date_fin + WHERE t_lieux_c.service_facturation_id <> 0 + GROUP BY 1,2,3,4 + ORDER BY 1,2 + ) subview + GROUP BY 1,2 + ) subview + WHERE t_services_facturation_historique.service_facturation_id = subview.service_facturation_id AND + t_services_facturation_historique.date = subview.date_debut AND + t_services_facturation_historique.pole_occupation_id IS DISTINCT FROM subview.pole_occupation_id + ; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. t_unites_fonctionnelles_historique'; + + UPDATE activite.t_unites_fonctionnelles_historique + SET pole_occupation_id = subview.pole_occupation_id + FROM + ( + SELECT unite_fonctionnelle_id, date_debut, (MAX(ARRAY[nb, pole_id]))[2] AS pole_occupation_id + FROM + ( + SELECT t_lieux_c.unite_fonctionnelle_id, t_unites_fonctionnelles_historique.date AS date_debut, t_unites_fonctionnelles_historique.date_fin, p_mouvements_sejour.pole_id, count(*) AS nb + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid + JOIN activite.t_unites_fonctionnelles_historique ON t_lieux_c.unite_fonctionnelle_id = t_unites_fonctionnelles_historique.unite_fonctionnelle_id AND p_mouvements_sejour.date BETWEEN t_unites_fonctionnelles_historique.date AND t_unites_fonctionnelles_historique.date_fin + WHERE t_lieux_c.unite_fonctionnelle_id <> 0 + GROUP BY 1,2,3,4 + ORDER BY 1,2 + ) subview + GROUP BY 1,2 + ) subview + WHERE t_unites_fonctionnelles_historique.unite_fonctionnelle_id = subview.unite_fonctionnelle_id AND + t_unites_fonctionnelles_historique.date = subview.date_debut AND + t_unites_fonctionnelles_historique.pole_occupation_id IS DISTINCT FROM subview.pole_occupation_id + ; + + RAISE NOTICE '%' , 'Application des regles. Validation des poles. t_places'; + + UPDATE activite.t_places + SET pole_id = pole_occupation_id + FROM activite.t_places_parents + JOIN activite.t_etages_historique ON t_places_parents.oid = t_etages_historique.etage_id + WHERE t_places.parent_id = t_places_parents.oid AND + parent_type = 'ETA' AND + t_places.date BETWEEN t_etages_historique.date AND t_etages_historique.date_fin + ; + + + ANALYSE activite.t_places + ; + + -- + + INSERT INTO activite.p_oids (code_table, oid) + SELECT 'pole', pole_id + FROM activite.p_sejour_lieu + WHERE pole_id NOT IN (SELECT oid FROM activite.p_oids WHERE code_table = 'pole') + GROUP BY 2; + + + -- Replication Pole dans PMSI MCO + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss_rum') THEN + + TRUNCATE pmsi.t_pole; + INSERT INTO pmsi.t_pole (oid, code, texte, texte_court, section_id, section_code, section_texte) + SELECT oid, code, texte, texte_court, section_id, section_code, section_texte + FROM base.t_pole + ; + + RAISE NOTICE '%' , 'Application des regles PMSI MCO. Validation des poles. p_rss_rum'; + + DROP TABLE IF EXISTS w_rss_rum_pole; + CREATE TEMP TABLE w_rss_rum_pole AS + SELECT rss_id, no_rum, unite_medicale_id, (MAX(ARRAY[nb, pole_id]))[2] AS pole_id, COUNT(DISTINCT nb) AS nb_nb, count(*) AS nb + FROM + ( + SELECT p_rss_rum.rss_id, p_rss_rum.no_rum, unite_medicale_id, p_mouvements_sejour.pole_id, COUNT(DISTINCT(p_mouvements_sejour.date)) AS nb + FROM pmsi.p_rss_rum + JOIN activite.p_sejour_pmsi ON pmsi.p_rss_rum.rss_id = p_sejour_pmsi.rss_id + JOIN activite.p_mouvements_sejour ON + p_mouvements_sejour.sejour_id = p_sejour_pmsi.sejour_id AND + p_mouvements_sejour.date BETWEEN p_rss_rum.date_entree AND p_rss_rum.date_sortie + GROUP BY 1,2,3,4 + ) subview + GROUP BY 1,2,3 + ; + + + + UPDATE pmsi.p_rss_rum + SET pole_id = w_rss_rum_pole.pole_id + FROM w_rss_rum_pole + WHERE w_rss_rum_pole.rss_id = p_rss_rum.rss_id AND + w_rss_rum_pole.no_rum = p_rss_rum.no_rum AND + p_rss_rum.pole_id IS DISTINCT FROM w_rss_rum_pole.pole_id AND + nb = nb_nb + ; + + UPDATE pmsi.p_rss_rum + SET pole_id = 0 + WHERE pole_id <> 0 AND + rss_id::text||'-'||no_rum::text NOT IN (SELECT rss_id::text||'-'||no_rum::text FROM w_rss_rum_pole WHERE nb = nb_nb) + ; + + UPDATE pmsi.p_rss_rum + SET pole_id = subview.pole_id + FROM + ( + SELECT unite_medicale_id, (MAX(ARRAY[nb, pole_id]))[2] AS pole_id + FROM + ( + SELECT unite_medicale_id, pole_id, count(*) AS nb + FROM w_rss_rum_pole + WHERE pole_id <> 0 AND nb = nb_nb + GROUP BY 1,2 + ) subview + GROUP BY 1 + ) subview + WHERE p_rss_rum.pole_id = 0 AND + p_rss_rum.unite_medicale_id = subview.unite_medicale_id + ; + + ANALYSE pmsi.p_rss_rum + ; + + RAISE NOTICE '%' , 'Application des regles PMSI MCO. Validation des poles. p_rss_actes'; + + UPDATE pmsi.p_rss_actes + SET pole_id = p_rss_rum.pole_id + FROM pmsi.p_rss_rum + WHERE p_rss_rum.rss_id = p_rss_actes.rss_id AND + p_rss_rum.no_rum = p_rss_actes.no_rum AND + p_rss_actes.pole_id IS DISTINCT FROM p_rss_rum.pole_id + ; + + RAISE NOTICE '%' , 'Application des regles PMSI MCO. Validation des poles. p_rss_diagnostics'; + + UPDATE pmsi.p_rss_diagnostics + SET pole_id = p_rss_rum.pole_id + FROM pmsi.p_rss_rum + WHERE p_rss_rum.rss_id = p_rss_diagnostics.rss_id AND + p_rss_rum.no_rum = p_rss_diagnostics.no_rum AND + p_rss_diagnostics.pole_id IS DISTINCT FROM p_rss_rum.pole_id + ; + + RAISE NOTICE '%' , 'Application des regles PMSI MCO. Validation des poles. p_rss'; + + UPDATE pmsi.p_rss + SET pole_id = subview.pole_id + FROM + ( + SELECT p_rss_rum.rss_id, MAX(p_rss_rum.pole_id) AS pole_id + FROM pmsi.p_rss_rum + JOIN pmsi.p_rss ON p_rss_rum.rss_id = p_rss.oid AND + p_rss_rum.unite_medicale_id = p_rss.unite_medicale_principale_id + GROUP BY 1 + HAVING MAX(p_rss.pole_id) IS DISTINCT FROM MAX(p_rss_rum.pole_id) + ) subview + WHERE p_rss.oid = subview.rss_id + ; + + + INSERT INTO pmsi.p_oids (code_table, oid) + SELECT 'pole', pole_id + FROM pmsi.p_rss_rum + WHERE pole_id NOT IN (SELECT oid FROM pmsi.p_oids WHERE code_table = 'pole') + GROUP BY 2; + + END IF; + + IF EXISTS (SELECT * FROM information_schema.columns WHERE table_schema = 'pmsissr' AND table_name = 'p_ssr' AND column_name = 'pole_id') THEN + + UPDATE pmsissr.p_ssr + SET pole_id = subview.pole_id + FROM + ( + SELECT p_ssr.oid, (MAX(ARRAY[p_mouvements_sejour.date::text,p_mouvements_sejour.pole_id::text]))[2]::bigint AS pole_id + FROM activite.p_mouvements_sejour + JOIN activite.p_sejour_pmsi ON p_mouvements_sejour.no_sejour = p_sejour_pmsi.no_sejour + JOIN pmsissr.p_ssr ON p_ssr.oid = ANY(ssr_id_array) + GROUP BY 1 + ) subview + WHERE p_ssr.oid = subview.oid + ; + + END IF; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_rubrique_facture_c~tx.yaml b/db/schema2/functions/cti_reorganize_rubrique_facture_c~tx.yaml new file mode 100644 index 0000000..f63161d --- /dev/null +++ b/db/schema2/functions/cti_reorganize_rubrique_facture_c~tx.yaml @@ -0,0 +1,175 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_table +src: | + DECLARE + w_table TEXT; + result TEXT; + BEGIN + -- i_table = + -- Table à mettre à jour, si '*NONE', ne met à jour que les codes et libellés + + w_table = i_table; + IF w_table = '' THEN + w_table = 'activite.p_factures_lignes_c'; + END IF; + + IF w_table <> '*NONE' THEN + BEGIN + RAISE NOTICE '%' , 'Creation nouvelles rubriques'; + EXECUTE ' + INSERT INTO activite.t_rubrique_facture_c + (rubrique_facturation_id,rubrique_comptabilisation_id, prestation_id, compte_produit_id) + SELECT + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.rubrique_comptabilisation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.compte_produit_id + FROM ' || w_table || ' p_factures_lignes_c + LEFT JOIN activite.t_rubrique_facture_c ON + (p_factures_lignes_c.rubrique_facturation_id = t_rubrique_facture_c.rubrique_facturation_id AND + p_factures_lignes_c.rubrique_comptabilisation_id = t_rubrique_facture_c.rubrique_comptabilisation_id AND + p_factures_lignes_c.prestation_id = t_rubrique_facture_c.prestation_id AND + p_factures_lignes_c.compte_produit_id = t_rubrique_facture_c.compte_produit_id) + WHERE t_rubrique_facture_c.oid IS NULL + GROUP BY 1,2,3,4 + ORDER BY 1,2,3,4'; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'1'; + END; + RAISE NOTICE '%' , 'Mise a jour lignes de factures'; + + -- Création colonne + BEGIN + IF NOT EXISTS (SELECT CASE WHEN table_schema NOT LIKE 'pg_temp%' THEN table_schema||'.' ELSE '' END ||table_name + FROM information_schema.columns + WHERE CASE WHEN table_schema NOT LIKE 'pg_temp%' THEN table_schema||'.' ELSE '' END ||table_name ILIKE w_table AND + column_name = 'rubrique_facture_id') THEN + + EXECUTE ' + ALTER TABLE ' || w_table || ' ADD COLUMN rubrique_facture_id bigint; + ALTER TABLE ' || w_table || ' ALTER COLUMN rubrique_facture_id SET DEFAULT 0'; + END IF; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'2'; + END; + + -- Création index + -- (REINDEX Désactivé) EXECUTE ' REINDEX TABLE ' || w_table; + BEGIN + IF NOT EXISTS (SELECT CASE WHEN schemaname NOT LIKE 'pg_temp%' THEN schemaname||'.' ELSE '' END ||tablename from pg_indexes + WHERE (CASE WHEN schemaname NOT LIKE 'pg_temp%' THEN schemaname||'.' ELSE '' END ||tablename) ILIKE w_table AND + indexdef ILIKE '%rubrique_facturation_id%') THEN + EXECUTE ' + CREATE INDEX i_' || w_table || '_rubrique_facturation_id + ON ' || w_table || ' + USING btree + (rubrique_facturation_id)'; + + END IF; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'3'; + END; + + -- Mise à jour nouvelle zone + BEGIN + EXECUTE ' + UPDATE ' || w_table || ' p_factures_lignes_c + SET rubrique_facture_id = t_rubrique_facture_c.oid + FROM activite.t_rubrique_facture_c + WHERE + p_factures_lignes_c.rubrique_facturation_id = t_rubrique_facture_c.rubrique_facturation_id AND + p_factures_lignes_c.rubrique_comptabilisation_id = t_rubrique_facture_c.rubrique_comptabilisation_id AND + p_factures_lignes_c.prestation_id = t_rubrique_facture_c.prestation_id AND + p_factures_lignes_c.compte_produit_id = t_rubrique_facture_c.compte_produit_id AND + rubrique_facture_id IS DISTINCT FROM t_rubrique_facture_c.oid'; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'4'; + END; + + EXECUTE ' + ANALYSE ' || w_table; + END IF; + RAISE NOTICE '%' , 'Mise a jour libelles'; + BEGIN + UPDATE activite.t_rubrique_facture_c SET + rubrique_facturation_code = t_rubriques_facturation.code, + rubrique_facturation_texte = t_rubriques_facturation.texte_court, + rubrique_facturation_section_id = t_rubriques_facturation.section_id, + rubrique_facturation_section_code = t_rubriques_facturation.section_code, + rubrique_facturation_section_texte = t_rubriques_facturation.section_texte + FROM activite.t_rubriques_facturation + WHERE rubrique_facturation_id = t_rubriques_facturation.oid AND + ( + rubrique_facturation_code::text IS DISTINCT FROM t_rubriques_facturation.code::text OR + rubrique_facturation_texte::text IS DISTINCT FROM t_rubriques_facturation.texte_court::text OR + rubrique_facturation_section_id::bigint[] IS DISTINCT FROM t_rubriques_facturation.section_id::bigint[] OR + rubrique_facturation_section_code::text[] IS DISTINCT FROM t_rubriques_facturation.section_code::text[] OR + rubrique_facturation_section_texte::text[] IS DISTINCT FROM t_rubriques_facturation.section_texte::text[] + ); + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'5'; + END; + BEGIN + UPDATE activite.t_rubrique_facture_c SET + rubrique_comptabilisation_code = t_rubriques_facturation.code, + rubrique_comptabilisation_texte = t_rubriques_facturation.texte_court, + rubrique_comptabilisation_section_id = t_rubriques_facturation.section_id, + rubrique_comptabilisation_section_code = t_rubriques_facturation.section_code, + rubrique_comptabilisation_section_texte = t_rubriques_facturation.section_texte + FROM activite.t_rubriques_facturation + WHERE rubrique_comptabilisation_id = t_rubriques_facturation.oid AND + ( + rubrique_comptabilisation_code::text IS DISTINCT FROM t_rubriques_facturation.code::text OR + rubrique_comptabilisation_texte::text IS DISTINCT FROM t_rubriques_facturation.texte_court::text OR + rubrique_comptabilisation_section_id::bigint[] IS DISTINCT FROM t_rubriques_facturation.section_id::bigint[] OR + rubrique_comptabilisation_section_code::text[] IS DISTINCT FROM t_rubriques_facturation.section_code::text[] OR + rubrique_comptabilisation_section_texte::text[] IS DISTINCT FROM t_rubriques_facturation.section_texte::text[] + ); + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'6'; + END; + BEGIN + UPDATE activite.t_rubrique_facture_c SET + prestation_code = t_prestations.code, + prestation_texte = t_prestations.texte_court, + prestation_section_id = t_prestations.section_id, + prestation_section_code = t_prestations.section_code, + prestation_section_texte = t_prestations.section_texte + FROM activite.t_prestations + WHERE prestation_id = t_prestations.oid AND + ( + prestation_code::text IS DISTINCT FROM t_prestations.code::text OR + prestation_texte::text IS DISTINCT FROM t_prestations.texte_court::text OR + prestation_section_id::bigint[] IS DISTINCT FROM t_prestations.section_id::bigint[] OR + prestation_section_code::text[] IS DISTINCT FROM t_prestations.section_code::text[] OR + prestation_section_texte::text[] IS DISTINCT FROM t_prestations.section_texte::text[] + ); + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'7'; + END; + BEGIN + UPDATE activite.t_rubrique_facture_c SET + compte_produit_code = t_compte.code, + compte_produit_texte = t_compte.texte_court, + compte_produit_section_id = t_compte.section_id, + compte_produit_section_code = t_compte.section_code, + compte_produit_section_texte = t_compte.section_texte + FROM activite.t_compte + WHERE compte_produit_id = t_compte.oid AND + ( + compte_produit_code::text IS DISTINCT FROM t_compte.code::text OR + compte_produit_texte::text IS DISTINCT FROM t_compte.texte_court::text OR + compte_produit_section_id::bigint[] IS DISTINCT FROM t_compte.section_id::bigint[] OR + compte_produit_section_code::text[] IS DISTINCT FROM t_compte.section_code::text[] OR + compte_produit_section_texte::text[] IS DISTINCT FROM t_compte.section_texte::text[] + ); + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'8'; + END; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_sejour_pmsi.yaml b/db/schema2/functions/cti_reorganize_sejour_pmsi.yaml new file mode 100644 index 0000000..a9a8e56 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_sejour_pmsi.yaml @@ -0,0 +1,966 @@ +return: text +lang: plpgsql +src: | + DECLARE + _module_pmsimco TEXT; + _module_pmsissr TEXT; + result TEXT; + BEGIN + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 'p_rss') THEN + _module_pmsimco = '1'; + ELSE + _module_pmsimco = '0'; + END IF; + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsissr' AND tablename = 'p_ssr') THEN + _module_pmsissr = '1'; + ELSE + _module_pmsissr = '0'; + END IF; + + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_sejour_pmsi' AND + column_name = 'ssr_id') THEN + ALTER TABLE activite.p_sejour_pmsi ADD COLUMN ssr_id bigint DEFAULT 0; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_sejour_pmsi' AND + column_name = 'ssr_id_array') THEN + ALTER TABLE activite.p_sejour_pmsi ADD COLUMN ssr_id_array bigint[] ; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_sejour_pmsi' AND + column_name = 'en_cours_pmsi') THEN + ALTER TABLE activite.p_sejour_pmsi ADD COLUMN en_cours_pmsi text; + END IF; + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'activite.p_sejour_pmsi' AND + column_name = 'traitement_epmsi') THEN + ALTER TABLE activite.p_sejour_pmsi ADD COLUMN traitement_epmsi text; + END IF; + + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_rss_rsp') THEN + CREATE TEMP TABLE w_rss_rsp + ( + rss_id bigint, + no_rss bigint, + etat text, + matricule_assure text, + date_naissance date, + sexe text, + no_sejour_pmsi text, + date_entree date, + date_sortie date, + ghm_code text, + prestation_code text, + traitement_epmsi text, + en_cours_pmsi text, + no_sejour_activite text, + no_sejour_activite_reel text + ) ; + CREATE INDEX w_rss_rsp_i1 + ON w_rss_rsp + USING btree + (no_sejour_activite); + CREATE INDEX w_rss_rsp_i2 + ON w_rss_rsp + USING btree + (no_sejour_pmsi); + CREATE INDEX w_rss_rsp_i3 + ON w_rss_rsp + USING btree + (rss_id); + CREATE INDEX w_rss_rsp_i4 + ON w_rss_rsp + USING btree + (no_sejour_activite_reel); + CREATE INDEX w_rss_rsp_i5 + ON w_rss_rsp + USING btree + (traitement_epmsi); + CREATE INDEX w_rss_rsp_i6 + ON w_rss_rsp + USING btree + (en_cours_pmsi); + END IF; + TRUNCATE activite.p_sejour_pmsi; + TRUNCATE w_rss_rsp; + + -- Creation association rss pmsi mco - sejour activite + IF _module_pmsimco = '1' THEN + BEGIN + -- Pour les externes, il faut mettre en accord les dates sejours avec dates des actes + -- (special public rafael) + UPDATE pmsi.p_rss + SET date_entree = subview.date_debut + FROM + ( + SELECT rss_id, p_rss.no_rss, no_sejour_administratif, + MAX(date_entree), + MAX(date_sortie), + MIN(p_rsf_detail.date_debut) AS date_debut, + MAX(p_rsf_detail.date_fin) + FROM pmsi.p_rsf_detail + JOIN pmsi.p_rss ON rss_id = p_rss.oid + JOIN base.t_finess ON t_finess.code = p_rss.finess AND type_etablissement <> '1' + WHERE p_rss.en_cours = '0' AND + p_rss.etat = '' AND + p_rss.ghm_id = 0 + GROUP BY 1,2,3 + HAVING MAX(date_entree) <> MIN(p_rsf_detail.date_debut) AND MIN(p_rsf_detail.date_debut) <= MAX(date_sortie) + ) subview + WHERE p_rss.oid = subview.rss_id + ; + + INSERT INTO w_rss_rsp + SELECT p_rss.oid AS rss_id, + p_rss.no_rss, + p_rss.etat, + p_rsf_total.matricule_assure, + p_rss.date_naissance, + p_rss.sexe, + no_sejour_administratif AS no_sejour_pmsi, + p_rss.date_entree, + p_rss.date_sortie, + t_ghm.code AS ghm_code, + t_prestations.code AS prestation_code, + p_rss.traitement_epmsi, + p_rss.en_cours, + MAX(no_sejour) AS no_sejour_activite, + MAX(no_sejour) AS no_sejour_activite_reel + FROM pmsi.p_rss + LEFT JOIN pmsi.p_rsf_total ON p_rss.oid = p_rsf_total.rss_id + JOIN pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid + JOIN pmsi.t_prestations ON p_rss.prestation_principale_id = t_prestations.oid + JOIN activite.p_sejours ON no_sejour_administratif = no_sejour AND + (p_rss.date_entree BETWEEN p_sejours.date_entree AND p_sejours.date_sortie AND p_sejours.date_sortie <> '20991231' OR + p_rss.date_sortie BETWEEN p_sejours.date_entree AND p_sejours.date_sortie AND p_sejours.date_sortie <> '20991231' OR + p_rss.date_entree = p_sejours.date_entree) + WHERE p_rss.etat = '' + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13; + + INSERT INTO w_rss_rsp + SELECT p_rss.oid AS rss_id, + p_rss.no_rss, + p_rss.etat, + p_rsf_total.matricule_assure, + p_rss.date_naissance, + p_rss.sexe, + no_sejour_administratif AS no_sejour_pmsi, + p_rss.date_entree, + p_rss.date_sortie, + t_ghm.code AS ghm_code, + t_prestations.code AS prestation_code, + p_rss.traitement_epmsi, + p_rss.en_cours, + MAX(no_sejour) AS no_sejour_activite, + MAX(no_sejour) AS no_sejour_activite_reel + FROM pmsi.p_rss + LEFT JOIN pmsi.p_rsf_total ON p_rss.oid = p_rsf_total.rss_id + JOIN pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid + JOIN pmsi.t_prestations ON p_rss.prestation_principale_id = t_prestations.oid + JOIN activite.p_sejours ON (substr(no_sejour_administratif,2,7) = no_sejour AND length(no_sejour) = 7) AND + (p_rss.date_entree BETWEEN p_sejours.date_entree AND p_sejours.date_sortie AND p_sejours.date_sortie <> '20991231' OR + p_rss.date_sortie BETWEEN p_sejours.date_entree AND p_sejours.date_sortie AND p_sejours.date_sortie <> '20991231' OR + p_rss.date_entree = p_sejours.date_entree) + WHERE p_rss.etat = '' + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13; + + + INSERT INTO w_rss_rsp + SELECT p_rss.oid AS rss_id, + p_rss.no_rss, + p_rss.etat, + p_rsf_total.matricule_assure, + p_rss.date_naissance, + p_rss.sexe, + no_sejour_administratif AS no_sejour_pmsi, + p_rss.date_entree, + p_rss.date_sortie, + t_ghm.code AS ghm_code, + t_prestations.code AS prestation_code, + p_rss.traitement_epmsi, + p_rss.en_cours, + NULL AS no_sejour_activite, + NULL AS no_sejour_activite_reel + FROM pmsi.p_rss + LEFT JOIN pmsi.p_rsf_total ON p_rss.oid = p_rsf_total.rss_id + JOIN pmsi.t_ghm ON p_rss.ghm_id = t_ghm.oid + JOIN pmsi.t_prestations ON p_rss.prestation_principale_id = t_prestations.oid + WHERE p_rss.etat = '' AND p_rss.oid NOT IN (SELECT rss_id FROM w_rss_rsp) + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13; + + -- Special CERNER avec les externes avec sejours multiples + UPDATE w_rss_rsp SET + no_sejour_activite = subview.no_sejour, + no_sejour_activite_reel = subview.no_sejour + FROM + ( + SELECT w_rss_rsp.rss_id, count(distinct p_sejours.no_sejour) , max(p_sejours.no_sejour) AS no_sejour + FROM w_rss_rsp + JOIN activite.p_sejours ON no_sejour_pmsi = split_part(p_sejours.no_sejour,'.',1) + WHERE no_sejour_activite is null AND + date(w_rss_rsp.date_entree) = date(p_sejours.date_entree) AND + date(w_rss_rsp.date_sortie) = date(p_sejours.date_sortie) AND + p_sejours.no_sejour NOT IN (SELECT no_sejour_activite FROM w_rss_rsp WHERE no_sejour_activite IS NOT NULL) + GROUP BY 1 + HAVING count(distinct p_sejours.no_sejour) = 1 + ) subview + WHERE w_rss_rsp.rss_id = subview.rss_id + ; + + + UPDATE w_rss_rsp SET + no_sejour_activite = subview.no_sejour, + no_sejour_activite_reel = subview.no_sejour + FROM + ( + SELECT w_rss_rsp.rss_id, count(distinct p_sejours.no_sejour) , max(p_sejours.no_sejour) AS no_sejour + FROM w_rss_rsp + JOIN activite.p_sejours ON no_sejour_pmsi = split_part(p_sejours.no_sejour,'.',1) + WHERE no_sejour_activite is null AND + date(w_rss_rsp.date_sortie) = date(p_sejours.date_sortie) AND + p_sejours.no_sejour NOT IN (SELECT no_sejour_activite FROM w_rss_rsp WHERE no_sejour_activite IS NOT NULL) + GROUP BY 1 + HAVING count(distinct p_sejours.no_sejour) = 1 + ) subview + WHERE w_rss_rsp.rss_id = subview.rss_id + ; + UPDATE w_rss_rsp SET + no_sejour_activite = subview.no_sejour, + no_sejour_activite_reel = subview.no_sejour + FROM + ( + SELECT w_rss_rsp.rss_id, count(distinct p_sejours.no_sejour) , max(p_sejours.no_sejour) AS no_sejour + FROM w_rss_rsp + JOIN activite.p_sejours ON no_sejour_pmsi = split_part(p_sejours.no_sejour,'.',1) + WHERE no_sejour_activite is null AND + date(p_sejours.date_entree) BETWEEN date(w_rss_rsp.date_entree) AND date(w_rss_rsp.date_sortie) AND + date(p_sejours.date_sortie) BETWEEN date(w_rss_rsp.date_entree) AND date(w_rss_rsp.date_sortie) AND + p_sejours.no_sejour NOT IN (SELECT no_sejour_activite FROM w_rss_rsp WHERE no_sejour_activite IS NOT NULL) + GROUP BY 1 + HAVING count(distinct p_sejours.no_sejour) = 1 + ) subview + WHERE w_rss_rsp.rss_id = subview.rss_id + ; + UPDATE w_rss_rsp SET + no_sejour_activite = subview.no_sejour, + no_sejour_activite_reel = subview.no_sejour + FROM + ( + SELECT w_rss_rsp.rss_id, count(distinct p_sejours.no_sejour) , max(p_sejours.no_sejour) AS no_sejour + FROM w_rss_rsp + JOIN activite.p_sejours ON no_sejour_pmsi = split_part(p_sejours.no_sejour,'.',1) + WHERE no_sejour_activite is null AND + date(p_sejours.date_sortie) BETWEEN date(w_rss_rsp.date_entree) AND date(w_rss_rsp.date_sortie) AND + p_sejours.no_sejour NOT IN (SELECT no_sejour_activite FROM w_rss_rsp WHERE no_sejour_activite IS NOT NULL) + GROUP BY 1 + ) subview + WHERE w_rss_rsp.rss_id = subview.rss_id + ; + DROP TABLE IF EXISTS w_doublons; + CREATE TEMP TABLE w_doublons AS + SELECT date_entree, date_sortie, date_naissance, sexe + FROM w_rss_rsp + GROUP BY 1,2,3,4 + HAVING count(*) > 1; + + UPDATE w_rss_rsp + SET no_sejour_activite = subview.no_sejour, no_sejour_activite_reel = subview.no_sejour_reel + FROM + (SELECT w_rss_rsp.rss_id, + MAX(CASE WHEN provider_id = 0 OR (provider_id = 2 AND (code is null OR code = 'LOGHOS')) THEN no_sejour ELSE substr(no_sejour,4) END) AS no_sejour, + MAX(no_sejour) AS no_sejour_reel + FROM w_rss_rsp, activite.p_sejours LEFT JOIN activite.t_providers ON provider_id = t_providers.oid + WHERE no_sejour_activite IS NULL AND + p_sejours.date_sortie = w_rss_rsp.date_sortie AND + p_sejours.no_sejour LIKE '%' || no_sejour_pmsi + GROUP BY 1 + HAVING count(DISTINCT no_sejour) = 1) subview + WHERE w_rss_rsp.rss_id = subview.rss_id; + + WITH fullSejours AS ( + SELECT + p_sejours.no_sejour, + p_sejours.date_sortie, + p_sejours.date_entree, + p_patients.date_naissance, + p_patients.code_sexe, + t_providers.code, + p_sejours.provider_id + FROM activite.p_sejours + JOIN activite.p_patients ON p_sejours.no_patient = p_patients.no_patient + LEFT JOIN activite.t_providers ON provider_id = t_providers.oid + ) + UPDATE w_rss_rsp + SET no_sejour_activite = subview.no_sejour, no_sejour_activite_reel = subview.no_sejour_reel + FROM + (SELECT w_rss_rsp.rss_id, no_sejour_pmsi, + MAX(CASE WHEN provider_id = 0 OR (provider_id = 2 AND (code is null OR code = 'LOGHOS')) THEN no_sejour ELSE substr(no_sejour,4) END) AS no_sejour, + MAX(no_sejour) AS no_sejour_reel + FROM w_rss_rsp + LEFT JOIN w_doublons ON + w_doublons.date_entree = w_rss_rsp.date_entree AND + w_doublons.date_sortie = w_rss_rsp.date_sortie AND + w_doublons.date_naissance = w_rss_rsp.date_naissance AND + w_doublons.sexe = w_rss_rsp.sexe + JOIN fullSejours ON + fullSejours.date_entree = w_rss_rsp.date_entree AND + fullSejours.date_sortie = w_rss_rsp.date_sortie AND + fullSejours.date_naissance = w_rss_rsp.date_naissance AND + fullSejours.code_sexe = w_rss_rsp.sexe + WHERE no_sejour_activite IS NULL + AND w_doublons IS NULL + GROUP BY 1,2 + HAVING count(DISTINCT no_sejour) = 1) subview + WHERE w_rss_rsp.rss_id = subview.rss_id; + + UPDATE w_rss_rsp + SET no_sejour_activite = subview.no_sejour_activite, no_sejour_activite_reel = subview.no_sejour_activite_reel + FROM + (SELECT w_rss_rsp.rss_id, + MAX(w_rss_rsp_mere.no_sejour_activite) AS no_sejour_activite, + MAX(w_rss_rsp_mere.no_sejour_activite_reel) AS no_sejour_activite_reel + FROM w_rss_rsp + JOIN w_rss_rsp w_rss_rsp_mere ON w_rss_rsp.matricule_assure = w_rss_rsp_mere.matricule_assure AND + w_rss_rsp.rss_id <> w_rss_rsp_mere.rss_id + WHERE w_rss_rsp.matricule_assure <> '' AND + (substr(w_rss_rsp.ghm_code,1,2) = '15' OR w_rss_rsp.ghm_code IN ('24Z23Z', '24Z24Z')) AND + (substr(w_rss_rsp_mere.ghm_code,1,2) = '14' OR w_rss_rsp_mere.ghm_code IN ('24Z20Z')) AND + w_rss_rsp.no_sejour_activite IS NULL AND + w_rss_rsp.date_entree BETWEEN w_rss_rsp_mere.date_entree AND w_rss_rsp_mere.date_sortie + GROUP BY 1 + HAVING count(DISTINCT w_rss_rsp_mere.no_sejour_activite) = 1) subview + WHERE w_rss_rsp.rss_id = subview.rss_id; + + UPDATE w_rss_rsp + SET no_sejour_activite = subviewa.no_sejour, no_sejour_activite_reel = subviewa.no_sejour_reel + FROM + (SELECT prestation_code, date_sortie, MAX(rss_id) AS rss_id + FROM w_rss_rsp + WHERE no_sejour_activite is null + GROUP BY 1,2 + HAVING count(*) = 1) subviewp, + (SELECT t_prestations.code AS prestation_code, + p_sejours.date_sortie, + MAX(CASE WHEN p_sejours.provider_id = 0 OR (p_sejours.provider_id = 2 AND (t_providers.code is null OR t_providers.code = 'LOGHOS')) THEN p_sejours.no_sejour ELSE substr(p_sejours.no_sejour,4) END) AS no_sejour, + MAX(p_sejours.no_sejour) AS no_sejour_reel + FROM activite.p_sejours LEFT JOIN activite.t_providers ON provider_id = t_providers.oid + JOIN activite.p_factures ON p_factures.no_sejour = p_sejours.no_sejour AND p_factures.no_facture_reference = p_factures.no_facture + JOIN activite.p_factures_lignes_c ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_prestations ON prestation_id = t_prestations.oid + LEFT JOIN w_rss_rsp ON p_sejours.no_sejour = no_sejour_activite_reel + WHERE p_sejours.code_sorti = '1' AND + p_factures.date_facture <> '20991231' AND + w_rss_rsp.rss_id IS NULL AND + t_prestations.code IN ('SE1', 'SE2', 'SE3', 'SE4', 'FFM', 'ATU', 'FPU', 'GHS') + GROUP BY 1,2 + HAVING count(DISTINCT p_sejours.no_sejour) = 1 + ORDER BY 1,2) subviewa + WHERE subviewa.prestation_code = subviewp.prestation_code AND + subviewa.date_sortie = subviewp.date_sortie AND + w_rss_rsp.rss_id = subviewp.rss_id; + UPDATE w_rss_rsp + SET no_sejour_activite = subview.no_sejour + FROM + (SELECT rss_id, MAX(no_sejour) AS no_sejour + FROM w_rss_rsp, activite.p_factures + WHERE no_sejour_activite IS NULL AND + p_factures.date_fin = w_rss_rsp.date_sortie AND + p_factures.no_facture LIKE '%' || no_sejour_pmsi + GROUP BY 1 + HAVING count(DISTINCT no_sejour) = 1 + ) subview + WHERE w_rss_rsp.rss_id = subview.rss_id; + + + UPDATE w_rss_rsp + SET no_sejour_activite = subview.no_sejour, no_sejour_activite_reel = subview.no_sejour + FROM + ( + SELECT w_rss_rsp.rss_id, count(distinct p_sejours.no_sejour) , max(p_sejours.no_sejour) AS no_sejour + FROM w_rss_rsp + JOIN activite.p_sejours ON no_sejour_pmsi = p_sejours.no_sejour + JOIN activite.p_patients On p_patients.no_patient = p_sejours.no_patient + WHERE no_sejour_activite is null AND + date_trunc('year',p_sejours.date_sortie) = date_trunc('year',w_rss_rsp.date_sortie) AND + w_rss_rsp.ghm_code LIKE '28%' AND + p_patients.date_naissance = w_rss_rsp.date_naissance + GROUP BY 1 + ) subview + WHERE w_rss_rsp.rss_id = subview.rss_id + ; + + UPDATE w_rss_rsp + SET no_sejour_activite = subview.no_sejour, no_sejour_activite_reel = subview.no_sejour + FROM + ( + SELECT w_rss_rsp.rss_id, + MAX(no_sejour) AS no_sejour, + MAX(no_sejour) AS no_sejour_reel + FROM w_rss_rsp, activite.p_sejours + WHERE no_sejour_activite IS NULL AND + date_trunc('month',p_sejours.date_sortie) = date_trunc('month',w_rss_rsp.date_sortie) AND + p_sejours.no_sejour LIKE '%' || no_sejour_pmsi + GROUP BY 1 + HAVING count(DISTINCT no_sejour) = 1 + ) subview + WHERE w_rss_rsp.rss_id = subview.rss_id + ; + + UPDATE pmsi.p_rss + SET no_sejour_administratif = w_rss_rsp.no_sejour_activite + FROM w_rss_rsp + WHERE w_rss_rsp.rss_id = p_rss.oid AND + no_sejour_administratif IS DISTINCT FROM w_rss_rsp.no_sejour_activite AND + w_rss_rsp.no_sejour_activite IS NOT NULL; + + + + INSERT INTO activite.p_sejour_pmsi ( + sejour_id, + no_sejour, + pmsi_type, + rss_id, + no_rss, + traitement_epmsi, + en_cours_pmsi + ) + SELECT p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + 'MCO' AS pmsi_type, + w_rss_rsp.rss_id, + w_rss_rsp.no_rss, + w_rss_rsp.traitement_epmsi, + w_rss_rsp.en_cours_pmsi + FROM activite.p_sejours + JOIN w_rss_rsp ON p_sejours.no_sejour = no_sejour_activite_reel + WHERE w_rss_rsp.no_sejour_activite_reel IS NOT NULL; + --EXCEPTION + --WHEN others THEN RAISE NOTICE 'Erreur %' , 'PMSI MCO'; + END; + END IF; + -- Sejours activite sans PMSi + BEGIN + INSERT INTO activite.p_sejour_pmsi ( + sejour_id, + no_sejour, + pmsi_type, + rss_id, + no_rss + ) + SELECT p_sejours.oid AS sejour_id, + p_sejours.no_sejour AS no_sejour, + '' AS pmsi_type, + 0, + 0 + FROM activite.p_sejours + WHERE no_sejour NOT IN (SELECT no_sejour FROM activite.p_sejour_pmsi); + + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , 'FIN'; + END; + -- Mise e jour des medecins PMSI MCO / Activite + IF _module_pmsimco = '1' THEN + BEGIN + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur2) + SELECT + 'PMSIMEDECIN', + 'Replication medecins Activite/PMSI', + '0', + '0=Pas de replication, 1=Remplacemet medecin PMSI par medecin Activite', + '' + WHERE 'PMSIMEDECIN' NOT IN (SELECT code FROM activite.t_divers); + IF EXISTS (SELECT * FROM activite.t_divers WHERE code = 'PMSIMEDECIN' AND valeur = '1') THEN + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_dif') THEN + CREATE TEMP TABLE w_dif ( + rss_id bigint, + no_rss bigint, + pmsi_medecin_id bigint, + pmsi_medecin_pmsi_id bigint, + no_sejour text, + adm_medecin_id bigint + ); + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_adm_medecin') THEN + CREATE TEMP TABLE w_adm_medecin ( + adm_medecin_id bigint + ); + END IF; + IF NOT EXISTS (SELECT * FROM pg_class WHERE relnamespace = pg_my_temp_schema() AND relname = 'w_adm_medecin_pmsi') THEN + CREATE TEMP TABLE w_adm_medecin_pmsi ( + adm_medecin_id bigint, + pmsi_oid bigint + ); + END IF; + TRUNCATE w_dif; + TRUNCATE w_adm_medecin; + TRUNCATE w_adm_medecin_pmsi; + + INSERT INTO w_dif + SELECT + p_rss.oid AS rss_id, + p_rss.no_rss, + t_medecins_pmsi.medecin_id AS pmsi_medecin_id, + t_medecins_pmsi.oid AS pmsi_medecin_pmsi_id, + p_sejours.no_sejour, + t_medecins_administratifs.medecin_id AS adm_medecin_id + FROM activite.p_sejour_pmsi + JOIN activite.p_sejours ON p_sejour_pmsi.no_sejour = p_sejours.no_sejour + JOIN pmsi.p_rss ON p_sejour_pmsi.rss_id = p_rss.oid + LEFT JOIN activite.t_medecins_administratifs ON medecin_sejour_id = t_medecins_administratifs.oid + LEFT JOIN pmsi.t_medecins t_medecins_pmsi ON p_rss.medecin_rss_id = t_medecins_pmsi.oid + WHERE pmsi_type = 'MCO' AND + t_medecins_administratifs.medecin_id <> 0 AND + t_medecins_pmsi.medecin_id IS DISTINCT FROM t_medecins_administratifs.medecin_id; + INSERT INTO w_adm_medecin + SELECT adm_medecin_id + FROM w_dif + GROUP BY 1; + INSERT INTO w_adm_medecin_pmsi + SELECT adm_medecin_id, (MAX(Array[date_sortie::text,pmsi_oid::text]))[2]::bigint AS pmsi_oid + FROM ( + SELECT adm_medecin_id, t_medecins_pmsi.oid AS pmsi_oid, MAX(COALESCE(date_sortie,'00010101')) AS date_sortie + FROM w_adm_medecin + JOIN pmsi.t_medecins t_medecins_pmsi ON adm_medecin_id = t_medecins_pmsi.medecin_id + JOIN pmsi.p_rss ON t_medecins_pmsi.oid = p_rss.medecin_rss_id + GROUP BY 1,2 + ORDER BY 1,2,3 DESC + ) subview + GROUP BY 1; + INSERT INTO w_adm_medecin_pmsi + SELECT adm_medecin_id, (MAX(Array[date_sortie::text,pmsi_oid::text]))[2]::bigint AS pmsi_oid + FROM ( + SELECT adm_medecin_id, t_medecins_pmsi.oid AS pmsi_oid, MAX(COALESCE(date_acte,'00010101')) AS date_sortie + FROM w_adm_medecin + JOIN pmsi.t_medecins t_medecins_pmsi ON adm_medecin_id = t_medecins_pmsi.medecin_id + JOIN pmsi.p_rss_actes ON t_medecins_pmsi.oid = p_rss_actes.medecin_id + WHERE adm_medecin_id NOT IN (SELECT adm_medecin_id FROM w_adm_medecin_pmsi) + GROUP BY 1,2 + ORDER BY 1,2,3 DESC + ) subview + GROUP BY 1; + INSERT INTO pmsi.t_medecins( + code, + nom, + prenom, + specialite_id, + no_adeli, + statut, + medecin_reference_id, + specialite_interne_id, + identifiant_annuaire, + medecin_id) + SELECT + t_medecins.code, + t_medecins.nom, + t_medecins.prenom, + 0, + '', + '', + 0, + 0, + '', + adm_medecin_id + FROM w_adm_medecin + JOIN base.t_medecins ON adm_medecin_id = t_medecins.oid + WHERE adm_medecin_id NOT IN (SELECT adm_medecin_id FROM w_adm_medecin_pmsi) AND + code NOT IN (SELECT code FROM pmsi.t_medecins); + INSERT INTO w_adm_medecin_pmsi + SELECT adm_medecin_id, MAX(pmsi_oid) AS pmsi_oid + FROM ( + SELECT adm_medecin_id, t_medecins_pmsi.oid AS pmsi_oid + FROM w_adm_medecin + JOIN pmsi.t_medecins t_medecins_pmsi ON adm_medecin_id = t_medecins_pmsi.medecin_id + WHERE adm_medecin_id NOT IN (SELECT adm_medecin_id FROM w_adm_medecin_pmsi) + GROUP BY 1,2 + ) subview + GROUP BY 1; + PERFORM pmsi.cti_reorganize_medecins_c(); + UPDATE pmsi.p_rss + SET medecin_rss_id = pmsi_oid + FROM w_dif + JOIN w_adm_medecin_pmsi ON w_dif.adm_medecin_id = w_adm_medecin_pmsi.adm_medecin_id + WHERE p_rss.oid = w_dif.rss_id AND pmsi_medecin_pmsi_id = medecin_rss_id; + END IF; + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' , 'FIN'; + END; + END IF; + + -- Mise e jour des associations provenant du SSR + IF _module_pmsissr = '1' THEN + + -- Tables dans base + INSERT INTO base.t_gn (code, texte) + SELECT code, texte + FROM pmsissr.t_gn + WHERE oid <> 0 AND code NOT IN (SELECT code FROM base.t_gn) + ; + + INSERT INTO base.t_cm (code, texte) + SELECT code, texte + FROM pmsissr.t_cm + WHERE oid <> 0 AND code NOT IN (SELECT code FROM base.t_cm) + ; + + INSERT INTO base.t_rgme (code, texte) + SELECT code, texte + FROM pmsissr.t_rgme + WHERE oid <> 0 AND code NOT IN (SELECT code FROM base.t_rgme) + ; + + INSERT INTO base.t_gme (code, texte) + SELECT code, texte + FROM pmsissr.t_gme + WHERE oid <> 0 AND code NOT IN (SELECT code FROM base.t_gme) + ; + + UPDATE base.t_gme t_gme_base + SET gn_id = t_gn_base.oid + FROm pmsissr.t_gme + JOIN pmsissr.t_gn ON t_gme.gn_id = t_gn.oid + JOIN base.t_gn t_gn_base ON t_gn_base.code = t_gn.code + WHERE t_gme_base.code = t_gme.code AND + t_gme_base.gn_id IS DISTINCT FROM t_gn_base.oid + ; + + UPDATE base.t_gme t_gme_base + SET cm_id = t_cm_base.oid + FROm pmsissr.t_gme + JOIN pmsissr.t_cm ON t_gme.cm_id = t_cm.oid + JOIN base.t_cm t_cm_base ON t_cm_base.code = t_cm.code + WHERE t_gme_base.code = t_gme.code AND + t_gme_base.cm_id IS DISTINCT FROM t_cm_base.oid + ; + + UPDATE base.t_gme t_gme_base + SET rgme_id = t_rgme_base.oid + FROm pmsissr.t_gme + JOIN pmsissr.t_rgme ON t_gme.rgme_id = t_rgme.oid + JOIN base.t_rgme t_rgme_base ON t_rgme_base.code = t_rgme.code + WHERE t_gme_base.code = t_gme.code AND + t_gme_base.rgme_id IS DISTINCT FROM t_rgme_base.oid + ; + + DROP TABLE IF EXISTS w_ssr; + CREATE TEMP TABLE w_ssr AS + SELECT oid, + trim(num_admin_sejour ) AS num_admin_sejour , + CASE + WHEN substr(p_ssr.num_admin_sejour,1,1) = '0' THEN ltrim(trim(p_ssr.num_admin_sejour),'0') + WHEN substr(p_ssr.num_admin_sejour,1,1) BETWEEN 'A' AND 'Z' THEN trim(substr(p_ssr.num_admin_sejour,2)) + ELSE NULL END AS num_admin_sejour_2, + p_ssr.date_sortie, + ''::text AS no_sejour, + 0::bigint AS sejour_id + FROM pmsissr.p_ssr; + + ANALYSE w_ssr + ; + + CREATE INDEX w_ssr_i1 + ON w_ssr + USING btree + (num_admin_sejour); + + CREATE INDEX w_ssr_i2 + ON w_ssr + USING btree + (num_admin_sejour_2); + + DROP TABLE IF EXISTS w_sejours; + CREATE TEMP TABLE w_sejours AS + SELECT oid, + trim(no_sejour) AS no_sejour, + trim(no_sejour) AS no_sejour_secondaire, + trim(CASE WHEN substr(p_sejours.no_sejour,1) BETWEEN 'A' AND 'Z' THEN substr(no_sejour,2) ELSE NULL END) AS no_sejour_hm, + trim(CASE WHEN substr(p_sejours.no_sejour,1) BETWEEN 'A' AND 'Z' AND substr(no_sejour,3,1) = '_' THEN substr(no_sejour,4) ELSE NULL END) AS no_sejour_anterieur, + p_sejours.date_sortie, + NULL::text[] AS no_sejours_dependants + FROM activite.p_sejours; + + ANALYSE w_sejours + ; + + CREATE INDEX w_sejours_i1 + ON w_sejours + USING btree + (no_sejour); + + INSERT INTO w_sejours + SELECT w_sejours.oid, + w_sejours.no_sejour, + split_part(no_facture,'.',1) AS no_sejour_secondaire, + NULL::text AS no_sejour_hm, + trim(CASE WHEN substr(split_part(no_facture,'.',1),1) BETWEEN 'A' AND 'Z' AND substr(split_part(no_facture,'.',1),3,1) = '_' THEN substr(split_part(no_facture,'.',1),4) ELSE NULL END) AS no_sejour_anterieur + FROM w_sejours + JOIN activite.p_factures ON p_factures.no_sejour = w_sejours.no_sejour + WHERE no_facture LIKE '%.00' AND + split_part(no_facture,'.',1) <> w_sejours.no_sejour AND + trim(CASE WHEN substr(split_part(no_facture,'.',1),1) BETWEEN 'A' AND 'Z' AND substr(split_part(no_facture,'.',1),3,1) = '_' THEN substr(split_part(no_facture,'.',1),4) ELSE NULL END) <> w_sejours.no_sejour + ; + + + UPDATE w_ssr + SET no_sejour = w_sejours.no_sejour, sejour_id = w_sejours.oid + FROM w_sejours + WHERE + w_sejours.no_sejour_secondaire = w_ssr.num_admin_sejour OR + w_sejours.no_sejour_hm = w_ssr.num_admin_sejour OR + w_sejours.no_sejour_anterieur = w_ssr.num_admin_sejour + ; + + + + UPDATE w_ssr + SET no_sejour = w_sejours.no_sejour, sejour_id = w_sejours.oid + FROM w_sejours + WHERE + w_sejours.no_sejour_secondaire = w_ssr.num_admin_sejour_2 OR + w_sejours.no_sejour_hm = w_ssr.num_admin_sejour_2 OR + w_sejours.no_sejour_anterieur = w_ssr.num_admin_sejour_2 + ; + + UPDATE activite.p_sejour_pmsi SET + ssr_id = subview.ssr_id, + ssr_id_array = subview.ssr_id_array, + pmsi_type = 'SSR' + FROM + ( + SELECT no_sejour, + MAX(oid) AS ssr_id, + base.cti_array_accum(oid) As ssr_id_array , + count(*) + FROM w_ssr + GROUP BY 1 + ) subview + WHERE p_sejour_pmsi.no_sejour = subview.no_sejour + ; + + + -- Récupération des gme provenant des lots + UPDATE activite.p_sejours + SET gme_id = subview.gme_id + FROM + ( + SELECT p_sejour_pmsi.no_sejour, t_gme_base.oid AS gme_id + FROM pmsissr.p_ssr + JOIN activite.p_sejour_pmsi ON p_sejour_pmsi.ssr_id = p_ssr.oid AND p_ssr.oid <> 0 + JOIN pmsissr.t_gme On gme_id = t_gme.oid + JOIN base.t_gme t_gme_base ON t_gme.code = t_gme_base.code + ) subview + WHERE p_sejours.no_sejour = subview.no_sejour AND + p_sejours.gme_id IS DISTINCT FROM subview.gme_id + ; + + -- Récupération des gme provenant du fil de l'eau + -- On prend le GME de la dernière semaine des séjours + UPDATE activite.p_sejours + SET gme_id = subview.gme_id + FROM + ( + SELECT ssr_id, p_rhs_fil_eau.gme_id,p_ssr_fil_eau.num_admin_sejour, ROW_NUMBER() OVER (PARTITION BY ssr_id ORDER BY rang DESC) AS rn + FROM pmsissr.p_rhs_fil_eau + JOIN pmsissr.p_ssr_fil_eau ON ssr_id = p_ssr_fil_eau.oid + LEFT JOIN pmsissr.p_ssr ON p_ssr_fil_eau.num_admin_sejour = p_ssr.num_admin_sejour + WHERE p_ssr.num_admin_sejour IS NULL + ) subview + WHERE subview.num_admin_sejour = p_sejours.no_sejour + AND subview.rn = 1 + AND p_sejours.gme_id IS DISTINCT FROM subview.gme_id + ; + + -- Hors SSR. Divers + UPDATE activite.p_sejours + SET gme_id = -9990 + FROM activite.t_lieux + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + JOIN activite.t_gme_c ON t_gme_c.gme_id = -9990 + WHERE lieu_sortie_id = t_lieux.oid AND + p_sejours.gme_id = 0 AND + type_t2a NOT IN ('1','2') + ; + + -- Hors SSR. MCO + UPDATE activite.p_sejours + SET gme_id = -9991 + FROM activite.t_lieux + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + JOIN activite.t_gme_c ON t_gme_c.gme_id = -9991 + WHERE lieu_sortie_id = t_lieux.oid AND + p_sejours.gme_id = 0 AND + type_t2a = '1' + ; + + -- Champ SSR. Présents + UPDATE activite.p_sejours + SET gme_id = -9980 + FROM activite.t_lieux + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + JOIN activite.t_gme_c ON t_gme_c.gme_id = -9980 + WHERE lieu_sortie_id = t_lieux.oid AND + p_sejours.gme_id = 0 AND + type_t2a = '2' AND + code_sorti <> '1' + ; + + -- Champ SSR. Sortis non groupés + UPDATE activite.p_sejours + SET gme_id = -9981 + FROM activite.t_lieux + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + JOIN activite.t_gme_c ON t_gme_c.gme_id = -9981 + WHERE lieu_sortie_id = t_lieux.oid AND + p_sejours.gme_id = 0 AND + type_t2a = '2' AND + code_sorti = '1' + ; + + -- Calcul du délai de groupage + UPDATE activite.p_sejours + SET delai_groupage = date_groupage - date_sortie + WHERE code_sorti = '1' AND + date_groupage > date_sortie AND + date_groupage < '2099-12-31' AND + gme_id > 0 + ; + END IF; + + -- Mise e jour des modes entree sortie selon pmsi ssr + IF _module_pmsissr = '1' THEN + UPDATE activite.p_sejours SET + mode_entree = p_ssr.mode_entree, + provenance = CASE WHEN p_ssr.provenance <> '' THEN p_ssr.provenance ELSE '0' END + FROM pmsissr.p_ssr + WHERE p_sejours.no_sejour = p_ssr.num_admin_sejour AND + p_ssr.mode_entree <> '' AND + ( + p_sejours.mode_entree IS DISTINCT FROM p_ssr.mode_entree OR + p_sejours.provenance IS DISTINCT FROM CASE WHEN p_ssr.provenance <> '' THEN p_ssr.provenance ELSE '0' END + ) + ; + + UPDATE activite.p_sejours SET + mode_sortie = p_ssr.mode_sortie, + destination = CASE WHEN p_ssr.destination <> '' THEN p_ssr.destination ELSE '0' END + FROM pmsissr.p_ssr + WHERE p_sejours.no_sejour = p_ssr.num_admin_sejour AND + p_sejours.code_sorti = '1' AND + p_ssr.mode_sortie <> '' AND + ( + p_sejours.mode_sortie IS DISTINCT FROM p_ssr.mode_sortie OR + p_sejours.destination IS DISTINCT FROM CASE WHEN p_ssr.destination <> '' THEN p_ssr.destination ELSE '0' END + ) + ; + + -- Mise à jour Nom dans PMSI SSR (si pas fait par import SSR + UPDATE pmsissr.p_patients SET + nom = subview.nom, + prenom = subview.prenom, + num_patient = subview.no_patient + FROM + ( + SELECT p_patients.oid, p_patients_a.nom, p_patients_a.prenom, p_patients_a.nom_naissance, base.cti_to_number(p_patients_a.no_patient) AS no_patient + FROM pmsissr.p_patients + JOIN pmsissr.p_ssr ON p_ssr.patient_id = p_patients.oid + JOIN activite.p_sejour_pmsi ON p_ssr.oid = p_sejour_pmsi.ssr_id + JOIN activite.p_sejours ON p_sejour_pmsi.sejour_id = p_sejours.oid + JOIN activite.p_patients p_patients_a ON p_patients_a.no_patient = p_sejours.no_patient + WHERE p_patients.date_naissance = p_patients_a.date_naissance AND + p_patients.nom ilike '%non rens%' + ) subview + WHERE p_patients.oid = subview.oid + ; + + END IF ; + + -- Mise e jour matricule assure depuis pmsi mco + IF _module_pmsimco = '1' THEN + DROP TABLE IF EXISTS w_sejour_assurance; + CREATE TEMP TABLE w_sejour_assurance AS + SELECT + p_sejours.oid AS sejour_id, + tiers_payant_0_id, tiers_payant_1_id, tiers_payant_2_id, tiers_payant_22_id, + MAX(p_rsf_total.matricule_assure) AS matricule_assure + FROM activite.p_sejours + JOIN activite.p_sejour_pmsi ON p_sejours.oid = p_sejour_pmsi.sejour_id + JOIN pmsi.p_rsf_total ON p_sejour_pmsi.rss_id = p_rsf_total.rss_id + WHERE p_rsf_total.matricule_assure <> '' AND + substr(p_rsf_total.matricule_assure,1,5) <> '00000' AND + length(p_rsf_total.matricule_assure) = 13 + GROUP BY 1,2,3,4,5 + ; + + UPDATE activite.p_sejours_assurance + SET matricule_1 = w_sejour_assurance.matricule_assure + FROM w_sejour_assurance + WHERE w_sejour_assurance.sejour_id = p_sejours_assurance.sejour_id AND + w_sejour_assurance.matricule_assure IS DISTINCT FROM p_sejours_assurance.matricule_1 AND + w_sejour_assurance.matricule_assure IS DISTINCT FROM substr(p_sejours_assurance.matricule_1,1,13) AND + p_sejours_assurance.matricule_1 = '' + ; + + + INSERT INTO activite.p_sejours_assurance( + sejour_id, + tiers_payant_0_id, tiers_payant_1_id, tiers_payant_2_id, tiers_payant_22_id, + matricule_1, matricule_2, matricule_22) + SELECT + sejour_id, + tiers_payant_0_id, tiers_payant_1_id, tiers_payant_2_id, tiers_payant_22_id, + matricule_assure, '', '' + FROM w_sejour_assurance + WHERE sejour_id NOT IN (SELECT sejour_id FROM activite.p_sejours_assurance) + ; + + END IF; + + -- Mise e jour matricule assure depuis pmsi ssr + IF _module_pmsissr = '1' THEN + DROP TABLE IF EXISTS w_sejour_assurance; + CREATE TEMP TABLE w_sejour_assurance AS + SELECT + p_sejours.oid AS sejour_id, + tiers_payant_0_id, tiers_payant_1_id, tiers_payant_2_id, tiers_payant_22_id, + MAX(to_char(p_ssr.numero_matricule,'FM0000000000000')) AS matricule_assure + FROM activite.p_sejours + JOIN activite.p_sejour_pmsi ON p_sejours.oid = p_sejour_pmsi.sejour_id + JOIN pmsissr.p_ssr ON p_sejour_pmsi.ssr_id = p_ssr.oid + WHERE p_ssr.numero_matricule <> 0 + GROUP BY 1,2,3,4,5 + ; + + UPDATE activite.p_sejours_assurance + SET matricule_1 = w_sejour_assurance.matricule_assure + FROM w_sejour_assurance + WHERE w_sejour_assurance.sejour_id = p_sejours_assurance.sejour_id AND + w_sejour_assurance.matricule_assure IS DISTINCT FROM p_sejours_assurance.matricule_1 AND + w_sejour_assurance.matricule_assure IS DISTINCT FROM substr(p_sejours_assurance.matricule_1,1,13) AND + p_sejours_assurance.matricule_1 = '' + ; + + + INSERT INTO activite.p_sejours_assurance( + sejour_id, + tiers_payant_0_id, tiers_payant_1_id, tiers_payant_2_id, tiers_payant_22_id, + matricule_1, matricule_2, matricule_22) + SELECT + sejour_id, + tiers_payant_0_id, tiers_payant_1_id, tiers_payant_2_id, tiers_payant_22_id, + matricule_assure, '', '' + FROM w_sejour_assurance + WHERE sejour_id NOT IN (SELECT sejour_id FROM activite.p_sejours_assurance) + ; + + END IF; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_sejours~tx.yaml b/db/schema2/functions/cti_reorganize_sejours~tx.yaml new file mode 100644 index 0000000..3b59071 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_sejours~tx.yaml @@ -0,0 +1,53 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_table +src: | + DECLARE + w_table TEXT; + result TEXT; + BEGIN + -- i_table = + -- Table à mettre à jour, si '*NONE', ne met à jour que les codes et libellés + w_table = i_table; + IF w_table = '' THEN + w_table = 'activite.p_sejours'; + END IF; + -- Mise à jour nouvelle zone + BEGIN + EXECUTE ' + UPDATE ' || w_table || ' p_sejours + SET type_pmsi = COALESCE(t_services_facturation.type_t2a,''0'') + FROM activite.t_lieux + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + WHERE p_sejours.lieu_sortie_id = t_lieux.oid AND + p_sejours.type_pmsi IS DISTINCT FROM COALESCE(t_services_facturation.type_t2a,''0'')'; + + -- Initialisation des transferts non renseignés + IF w_table = 'activite.p_sejours' THEN + INSERT INTO activite.p_sejours_transferts(sejour_id, provenance_id, destination_id) + SELECT p_sejours.oid, 0::bigint AS provenance_id, 0::bigint AS destination_id + FROM activite.p_sejours + LEFT JOIN activite.p_sejours_transferts ON p_sejours.oid = p_sejours_transferts.sejour_id + WHERE p_sejours_transferts.sejour_id IS NULL + ; + UPDATE activite.p_sejours_transferts SET + provenance_id = COALESCE(provenance_id,0), + destination_id = COALESCE(destination_id,0) + WHERE provenance_id IS NULL OR destination_id IS NULL + ; + END IF; + + + EXCEPTION + WHEN others THEN RAISE NOTICE 'Erreur %' ,'1'; + END; + + EXECUTE ' + ANALYSE ' || w_table; + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_tiers_payant.yaml b/db/schema2/functions/cti_reorganize_tiers_payant.yaml new file mode 100644 index 0000000..3413443 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_tiers_payant.yaml @@ -0,0 +1,240 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + BEGIN + + -- Réaffectation des types selon l'utilisation + UPDATE activite.t_tiers_payant + SET type_tiers_payant = '1' + FROM + ( + SELECT t_tiers_payant.oid,t_tiers_payant.code, + SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_1_id THEN 1 ELSE 0 END), + SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_2_id AND tiers_payant_1_id <> tiers_payant_2_id THEN 1 ELSE 0 END) + FROM activite.t_tiers_payant + JOIN activite.p_factures ON + t_tiers_payant.oid = tiers_payant_1_id OR t_tiers_payant.oid = tiers_payant_2_id + WHERE type_tiers_payant = '2' + GROUP BY 1,2 + HAVING SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_1_id THEN 1 ELSE 0 END) > 0 AND + SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_2_id AND tiers_payant_1_id <> tiers_payant_2_id THEN 1 ELSE 0 END) = 0 + ) subview + WHERE t_tiers_payant.oid = subview.oid + ; + + + + UPDATE activite.t_tiers_payant + SET type_tiers_payant = '1' + FROM + ( + SELECT t_tiers_payant.oid,t_tiers_payant.code, + SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_2_id THEN 1 ELSE 0 END), + SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_1_id AND tiers_payant_1_id <> tiers_payant_2_id THEN 1 ELSE 0 END) + FROM activite.t_tiers_payant + JOIN activite.p_factures ON + t_tiers_payant.oid = tiers_payant_1_id OR t_tiers_payant.oid = tiers_payant_2_id + WHERE type_tiers_payant = '1' + GROUP BY 1,2 + HAVING SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_2_id THEN 1 ELSE 0 END) > 0 AND + SUM(CASE WHEN t_tiers_payant.oid = tiers_payant_1_id AND tiers_payant_1_id <> tiers_payant_2_id THEN 1 ELSE 0 END) = 0 + ) subview + WHERE t_tiers_payant.oid = subview.oid + ; + + -- Grands régimes + UPDATE activite.t_tiers_payant + SET + grand_regime_id = 0 + WHERE grand_regime_id IS NULL; + UPDATE activite.t_tiers_payant + SET type_tiers_payant_texte = t_types_tiers_payant.texte_court, + type_tiers_payant_id = to_number('0' || type_tiers_payant,'00') + FROM activite.t_types_tiers_payant + WHERE type_tiers_payant = t_types_tiers_payant.code AND + ( + type_tiers_payant_texte IS DISTINCT FROM t_types_tiers_payant.texte_court OR + type_tiers_payant_id IS DISTINCT FROM to_number('0' || type_tiers_payant,'00') + ) + ; + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '01' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%CPAM%' OR t_tiers_payant.texte ILIKE '%C.P.A.M%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '02' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%MSA%' OR t_tiers_payant.texte ILIKE '%M.S.A%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '02' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%GAMEX%' OR t_tiers_payant.texte ILIKE '%GROUPAMA%' ); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '03' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%AMPI%' OR t_tiers_payant.texte ILIKE '%A.M.P.I%'); + + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '03' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%AGF %' OR t_tiers_payant.texte ILIKE '%A.G.F.%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '03' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE 'RAM %' OR t_tiers_payant.texte ILIKE '%R.A.M.%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '04' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%SNCF%' OR t_tiers_payant.texte ILIKE '%S.N.C.F%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '05' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%RATP%' OR t_tiers_payant.texte ILIKE '%R.A.T.P%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '06' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%ENIM%' OR t_tiers_payant.texte ILIKE '%E.N.I.M%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '07' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%MINEUR%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '08' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%MILITAIRE%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '09' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%BANQUE%' AND t_tiers_payant.texte ILIKE '%FRANCE%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '10' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%NOTAIRE%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '14' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%ASSEMBLEE%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '15' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%SENAT%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '17' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%FRANCAIS%' AND t_tiers_payant.texte ILIKE '%ETRANGER%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '80' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%COMBATTANT%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '91' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%MGEN%' OR t_tiers_payant.texte ILIKE '%M.G.E.N%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '92' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%PTT%' OR t_tiers_payant.texte ILIKE '%P.T.T%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '93' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%MGP%' OR t_tiers_payant.texte ILIKE '%M.G.P%' OR t_tiers_payant.texte ILIKE '%POLICE%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '93' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%POLICE%' OR t_tiers_payant.texte ILIKE '%M.G.P%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '94' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%MFP%' OR t_tiers_payant.texte ILIKE '%M.F.P.%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '95' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%MNH%' OR t_tiers_payant.texte ILIKE '%M.N.H%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '96' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%AVIATION%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '99' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE 'MMI %' OR t_tiers_payant.texte ILIKE '%M.M.I%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '99' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%LMDE%'); + UPDATE activite.t_tiers_payant + SET grand_regime_id = t_grands_regimes.oid + FROM base.t_grands_regimes + WHERE t_grands_regimes.code = '99' AND + (grand_regime_id IS NULL OR grand_regime_id = 0) AND + (t_tiers_payant.texte ILIKE '%VITTAVI%'); + + + UPDATE activite.t_tiers_payant SET + grand_regime_code = t_grands_regimes.code, + grand_regime_texte = t_grands_regimes.texte + FROM base.t_grands_regimes + WHERE grand_regime_id = t_grands_regimes.oid AND + ( + grand_regime_code IS DISTINCT FROM t_grands_regimes.code OR + grand_regime_texte IS DISTINCT FROM t_grands_regimes.texte + ); + + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_reorganize_ucd_lpp_c.yaml b/db/schema2/functions/cti_reorganize_ucd_lpp_c.yaml new file mode 100644 index 0000000..adb75f3 --- /dev/null +++ b/db/schema2/functions/cti_reorganize_ucd_lpp_c.yaml @@ -0,0 +1,746 @@ +return: text +lang: plpgsql +src: | + DECLARE + _module_pmsimco TEXT; + result TEXT; + BEGIN + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 't_lpp') THEN + _module_pmsimco = '1'; + ELSE + _module_pmsimco = '0'; + END IF; + + -- NOuvelle table dans base pour retro comptabilite + IF NOT EXISTS ( + SELECT table_name + FROM information_schema.tables + WHERE table_schema || '.' || table_name = 'base.t_classification_atc' ) THEN + CREATE TABLE base.t_classification_atc + ( + classification_atc_1_code text DEFAULT ''::text, + classification_atc_1_id bigint DEFAULT 0, + classification_atc_1_texte text DEFAULT ''::text, + classification_atc_2_code text DEFAULT ''::text, + classification_atc_2_id bigint DEFAULT 0, + classification_atc_2_texte text DEFAULT ''::text, + classification_atc_3_code text DEFAULT ''::text, + classification_atc_3_id bigint DEFAULT 0, + classification_atc_3_texte text DEFAULT ''::text, + classification_atc_4_code text DEFAULT ''::text, + classification_atc_4_id bigint DEFAULT 0, + classification_atc_4_texte text DEFAULT ''::text, + code text DEFAULT ''::text, + code_original text NOT NULL, + est_atc text DEFAULT ''::text, + est_cladimed text DEFAULT ''::text, + oid bigint NOT NULL DEFAULT nextval('base.s_classification_atc'::regclass), + section_code character varying(10)[], + section_id bigint[], + section_texte text[], + texte text, + texte_court text, + CONSTRAINT t_classification_atc_pkey PRIMARY KEY (oid), + CONSTRAINT t_classification_atc_ukey UNIQUE (code_original) + ) + WITH ( + OIDS=FALSE + ) + ; + INSERT INTO base.t_classification_atc( + oid, code_original, code, texte, texte_court, + classification_atc_1_code, classification_atc_1_id, classification_atc_1_texte, + classification_atc_2_code, classification_atc_2_id, classification_atc_2_texte, + classification_atc_3_code, classification_atc_3_id, classification_atc_3_texte, + classification_atc_4_code, classification_atc_4_id, classification_atc_4_texte, + est_atc, est_cladimed) + SELECT + 0::bigint AS oid, '*' AS code_original, chr(127) || '*********' AS code, 'Non renseignée' AS texte, 'Non renseignée' AS texte_court, + chr(127) || '*********' AS classification_atc_1_code, 0::bigint AS classification_atc_1_id, 'Non renseignée' AS classification_atc_1_texte, + chr(127) || '*********' AS classification_atc_2_code, 0::bigint AS classification_atc_2_id, 'Non renseignée' AS classification_atc_2_texte, + chr(127) || '*********' AS classification_atc_3_code, 0::bigint AS classification_atc_3_id, 'Non renseignée' AS classification_atc_3_texte, + chr(127) || '*********' AS classification_atc_4_code, 0::bigint AS classification_atc_4_id, 'Non renseignée' AS classification_atc_4_texte, + '0' AS est_atc, '0' AS est_cladimed + WHERE 0 NOT IN (SELECT oid FROM base.t_classification_atc) + ; + END IF; + + -- Nouvelle colonne dans base (retro comptabililité) + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'base.t_ucd' AND + column_name = 'classification_atc_id') THEN + ALTER TABLE base.t_ucd ADD COLUMN classification_atc_id bigint default 0; + END IF; + + -- Si module pmsi, ajout des ucd pmsi + IF _module_pmsimco = '1' THEN + INSERT INTO base.t_ucd (code, texte, texte_court, atc_code) + SELECT code, texte, texte_court, atc_code + FROM pmsi.t_ucd + WHERE oid <> 0 AND + code NOT IN (SELECT code FROM base.t_ucd WHERE code IS NOT NULL) + ; + UPDATE base.t_ucd + SET atc_code = t_ucd_pmsi.atc_code + FROM pmsi.t_ucd t_ucd_pmsi + WHERE t_ucd.code = t_ucd_pmsi.code AND + t_ucd.atc_code IS DISTINCT FROM t_ucd_pmsi.atc_code + ; + END IF; + + + + INSERT INTO base.t_ucd(oid, code, texte, texte_court) + SELECT 0, chr(127) || '*******', chr(127) || 'Non renseigné', chr(127) || 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_ucd); + + UPDATE base.t_ucd SET texte_court = texte WHERE COALESCE(texte_court,'') = ''; + + -- Initialisation arborescence ATC + INSERT INTO base.t_classification_atc (code, code_original, texte, texte_court) + SELECT + atc_code, MAX(atc_code), MAX(atc_texte), MAX(atc_texte) + FROm base.t_ucd + WHERE atc_code <> '' AND + length(atc_code) = 7 AND + atc_code NOT IN (SELECT code FROM base.t_classification_atc WHERE code IS NOT NULL) + GROUP BY 1 + ; + + INSERT INTO base.t_classification_atc (code, code_original, texte, texte_court) + SELECT substr(code,1,5), MAX(substr(code,1,5)), MAX(substr(code,1,5)), MAX(substr(code,1,5)) + FROM base.t_classification_atc + WHERE length(code) = 7 AND + substr(code,1,5) NOT IN (SELECT code FROM base.t_classification_atc WHERE code IS NOT NULL) + GROUP BY 1 + ; + + INSERT INTO base.t_classification_atc (code, code_original, texte, texte_court) + SELECT substr(code,1,4), MAX(substr(code,1,4)), MAX(substr(code,1,4)), MAX(substr(code,1,4)) + FROM base.t_classification_atc + WHERE length(code) = 7 AND + substr(code,1,4) NOT IN (SELECT code FROM base.t_classification_atc WHERE code IS NOT NULL) + GROUP BY 1 + ; + + INSERT INTO base.t_classification_atc (code, code_original, texte, texte_court) + SELECT substr(code,1,3), MAX(substr(code,1,3)), MAX(substr(code,1,3)), MAX(substr(code,1,3)) + FROM base.t_classification_atc + WHERE length(code) = 7 AND + substr(code,1,3) NOT IN (SELECT code FROM base.t_classification_atc WHERE code IS NOT NULL) + GROUP BY 1 + ; + + INSERT INTO base.t_classification_atc (code, code_original, texte, texte_court) + SELECT substr(code,1,2), MAX(substr(code,1,2)), MAX(substr(code,1,2)), MAX(substr(code,1,2)) + FROM base.t_classification_atc + WHERE length(code) = 7 AND + substr(code,1,2) NOT IN (SELECT code FROM base.t_classification_atc WHERE code IS NOT NULL) + GROUP BY 1 + ; + + + -- Standard ATC + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99XX99', code_original || '99XX99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 1 AND + code_original || '99XX99' NOT IN (SELECT code FROM base.t_classification_atc); + + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99', code_original || '99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 1 AND + code_original || '99' NOT IN (SELECT code FROM base.t_classification_atc); + + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99X', code_original || '99X', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 1 AND + code_original || '99X' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99XX', code_original || '99XX', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 1 AND + code_original || '99XX' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'XX99', code_original || 'XX99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 3 AND substr(code,2,1) BETWEEN '0' AND '9' AND + substr(code,1,1) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'XX99' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'XX', code_original || 'XX', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 3 AND substr(code,2,1) BETWEEN '0' AND '9' AND + substr(code,1,1) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'XX' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'X', code_original || 'X', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 3 AND substr(code,2,1) BETWEEN '0' AND '9' AND + substr(code,1,1) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'X' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'X99', code_original || 'X99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 4 AND substr(code,2,1) BETWEEN '0' AND '9' AND + substr(code,1,3) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'X99' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'X', code_original || 'X', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 4 AND substr(code,2,1) BETWEEN '0' AND '9' AND + substr(code,1,3) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'X' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99', code_original || '99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 5 AND substr(code,2,1) BETWEEN '0' AND '9' AND + substr(code,1,4) IN (SELECT code FROM base.t_classification_atc) AND + code_original || '99' NOT IN (SELECT code FROM base.t_classification_atc); + + -- Spécial préfixe à deux caractères + + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99XX99', code_original || '99XX99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 2 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + code_original || '99XX99' NOT IN (SELECT code FROM base.t_classification_atc); + + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99', code_original || '99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 2 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + code_original || '99' NOT IN (SELECT code FROM base.t_classification_atc); + + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99X', code_original || '99X', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 2 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + code_original || '99X' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99XX', code_original || '99XX', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 2 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + code_original || '99XX' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'XX99', code_original || 'XX99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 4 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + substr(code,1,2) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'XX99' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'XX', code_original || 'XX', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 4 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + substr(code,1,2) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'XX' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'X', code_original || 'X', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 4 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + substr(code,1,2) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'X' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'X99', code_original || 'X99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 5 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + substr(code,1,4) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'X99' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || 'X', code_original || 'X', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 5 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + substr(code,1,4) IN (SELECT code FROM base.t_classification_atc) AND + code_original || 'X' NOT IN (SELECT code FROM base.t_classification_atc); + INSERT INTO base.t_classification_atc(code_original, code, texte, texte_court ) + SELECT code_original || '99', code_original || '99', texte || ' (NON PRECISE)', texte_court || ' (NON PRECISE)' + FROM base.t_classification_atc + WHERE oid <> 0 AND + length(code) = 6 AND substr(code,2,1) NOT BETWEEN '0' AND '9' AND + substr(code,1,5) IN (SELECT code FROM base.t_classification_atc) AND + code_original || '99' NOT IN (SELECT code FROM base.t_classification_atc); + -- compléments + UPDATE base.t_classification_atc SET + texte = trim(replace(texte,'(NON PRECISE)','')), + texte_court = trim(replace(texte,'(NON PRECISE)','')) + WHERE code like 'Z%' AND texte like '%(NON PRECISE)%'; + UPDATE base.t_classification_atc SET + classification_atc_1_id = t_classification_atc_1.oid, + classification_atc_1_code = t_classification_atc_1.code, + classification_atc_1_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + substr(t_classification_atc.code,1,1) = t_classification_atc_1.code AND + substr(t_classification_atc.code,2,1) BETWEEN '0' AND '9' AND + ( + t_classification_atc.classification_atc_1_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_1_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_1_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_1_id = t_classification_atc_1.oid, + classification_atc_1_code = t_classification_atc_1.code, + classification_atc_1_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + substr(t_classification_atc.code,1,2) = t_classification_atc_1.code AND + substr(t_classification_atc.code,2,1) NOT BETWEEN '0' AND '9' AND + ( + t_classification_atc.classification_atc_1_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_1_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_1_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_1_id = t_classification_atc_1.oid, + classification_atc_1_code = t_classification_atc_1.code, + classification_atc_1_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + t_classification_atc_1.code = 'X' AND COALESCE(t_classification_atc.classification_atc_1_id,0) = 0 AND + ( + t_classification_atc.classification_atc_1_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_1_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_1_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_1_code = t_classification_atc_1.code, + classification_atc_1_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.classification_atc_1_id = t_classification_atc_1.oid AND + ( + t_classification_atc.classification_atc_1_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_1_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_2_id = t_classification_atc_1.oid, + classification_atc_2_code = t_classification_atc_1.code, + classification_atc_2_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + substr(t_classification_atc.code,1,3) = t_classification_atc_1.code AND + substr(t_classification_atc.code,2,1) BETWEEN '0' AND '9' AND + length(t_classification_atc.code) >= 3 AND + ( + t_classification_atc.classification_atc_2_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_2_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_2_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_2_id = t_classification_atc_1.oid, + classification_atc_2_code = t_classification_atc_1.code, + classification_atc_2_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + substr(t_classification_atc.code,1,4) = t_classification_atc_1.code AND + substr(t_classification_atc.code,2,1) NOT BETWEEN '0' AND '9' AND + length(t_classification_atc.code) >= 4 AND + ( + t_classification_atc.classification_atc_2_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_2_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_2_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_2_id = t_classification_atc_1.oid, + classification_atc_2_code = t_classification_atc_1.code, + classification_atc_2_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + t_classification_atc_1.code = t_classification_atc.classification_atc_1_code || '99' AND COALESCE(t_classification_atc.classification_atc_2_id,0) = 0 AND + ( + t_classification_atc.classification_atc_2_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_2_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_2_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_2_code = t_classification_atc_1.code, + classification_atc_2_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.classification_atc_2_id = t_classification_atc_1.oid AND + ( + t_classification_atc.classification_atc_2_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_2_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_3_id = t_classification_atc_1.oid, + classification_atc_3_code = t_classification_atc_1.code, + classification_atc_3_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + substr(t_classification_atc.code,1,4) = t_classification_atc_1.code AND + substr(t_classification_atc.code,2,1) BETWEEN '0' AND '9' AND + length(t_classification_atc.code) >= 4 AND + ( + t_classification_atc.classification_atc_3_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_3_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_3_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_3_id = t_classification_atc_1.oid, + classification_atc_3_code = t_classification_atc_1.code, + classification_atc_3_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + substr(t_classification_atc.code,1,5) = t_classification_atc_1.code AND + substr(t_classification_atc.code,2,1) NOT BETWEEN '0' AND '9' AND + length(t_classification_atc.code) >= 5 AND + ( + t_classification_atc.classification_atc_3_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_3_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_3_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_3_id = t_classification_atc_1.oid, + classification_atc_3_code = t_classification_atc_1.code, + classification_atc_3_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + t_classification_atc_1.code = t_classification_atc.classification_atc_2_code || 'X' AND COALESCE(t_classification_atc.classification_atc_3_id,0) = 0 AND + ( + t_classification_atc.classification_atc_3_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_3_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_3_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_3_code = t_classification_atc_1.code, + classification_atc_3_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.classification_atc_3_id = t_classification_atc_1.oid AND + ( + t_classification_atc.classification_atc_3_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_3_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_4_id = t_classification_atc_1.oid, + classification_atc_4_code = t_classification_atc_1.code, + classification_atc_4_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + substr(t_classification_atc.code,2,1) BETWEEN '0' AND '9' AND + substr(t_classification_atc.code,1,5) = t_classification_atc_1.code AND + length(t_classification_atc.code) >= 5 AND + ( + t_classification_atc.classification_atc_4_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_4_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_4_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_4_id = t_classification_atc_1.oid, + classification_atc_4_code = t_classification_atc_1.code, + classification_atc_4_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + substr(t_classification_atc.code,2,1) NOT BETWEEN '0' AND '9' AND + substr(t_classification_atc.code,1,6) = t_classification_atc_1.code AND + length(t_classification_atc.code) >= 6 AND + ( + t_classification_atc.classification_atc_4_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_4_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_4_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_4_id = t_classification_atc_1.oid, + classification_atc_4_code = t_classification_atc_1.code, + classification_atc_4_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.oid <> 0 AND + t_classification_atc_1.code = t_classification_atc.classification_atc_3_code || 'X' AND COALESCE(t_classification_atc.classification_atc_4_id,0) = 0 AND + ( + t_classification_atc.classification_atc_4_id IS DISTINCT FROM t_classification_atc_1.oid OR + t_classification_atc.classification_atc_4_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_4_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_4_code = t_classification_atc_1.code, + classification_atc_4_texte = t_classification_atc_1.texte + FROM base.t_classification_atc t_classification_atc_1 + WHERE t_classification_atc.classification_atc_4_id = t_classification_atc_1.oid AND + ( + t_classification_atc.classification_atc_4_code IS DISTINCT FROM t_classification_atc_1.code OR + t_classification_atc.classification_atc_4_texte IS DISTINCT FROM t_classification_atc_1.texte + ); + UPDATE base.t_classification_atc SET + classification_atc_1_id = oid, + classification_atc_1_code = code, + classification_atc_1_texte = texte_court, + classification_atc_2_id = oid, + classification_atc_2_code = code, + classification_atc_2_texte = texte_court, + classification_atc_3_id = oid, + classification_atc_3_code = code, + classification_atc_3_texte = texte_court, + classification_atc_4_id = oid, + classification_atc_4_code = code, + classification_atc_4_texte = texte_court + WHERE + ( + classification_atc_1_code = 'X' AND code NOT LIKE 'X%' OR + classification_atc_1_id = 0 OR + classification_atc_1_id IS NULL + ) + AND + (classification_atc_1_id IS DISTINCT FROM oid OR + classification_atc_1_code IS DISTINCT FROM code OR + classification_atc_1_texte IS DISTINCT FROM texte_court OR + classification_atc_2_id IS DISTINCT FROM oid OR + classification_atc_2_code IS DISTINCT FROM code OR + classification_atc_2_texte IS DISTINCT FROM texte_court OR + classification_atc_3_id IS DISTINCT FROM oid OR + classification_atc_3_code IS DISTINCT FROM code OR + classification_atc_3_texte IS DISTINCT FROM texte_court OR + classification_atc_4_id IS DISTINCT FROM oid OR + classification_atc_4_code IS DISTINCT FROM code OR + classification_atc_4_texte IS DISTINCT FROM texte_court + ) + ; + -- Ventilation ATC/CLADIMED + UPDATE base.t_classification_atc SET + est_atc = subview.est_atc, + est_cladimed = subview.est_cladimed + FROM + (SELECT substr(t_classification_atc.code,1,1) AS code, MAX(est_atc) AS est_atc, MAX(est_cladimed) AS est_cladimed + FROM base.t_classification_atc + WHERE oid <> 0 + GROUP BY 1 + ORDER BY 1 + ) subview + WHERE substr(t_classification_atc.code,2,6) = '99' AND + substr(t_classification_atc.code,1,1) = subview.code AND + ( + t_classification_atc.est_atc IS DISTINCT FROM subview.est_atc OR + t_classification_atc.est_cladimed IS DISTINCT FROM subview.est_cladimed + ) + ; + UPDATE base.t_classification_atc SET + est_atc = subview.est_atc, + est_cladimed = subview.est_cladimed + FROM + (SELECT substr(t_classification_atc.code,1,3) AS code, MAX(est_atc) AS est_atc, MAX(est_cladimed) AS est_cladimed + FROM base.t_classification_atc + WHERE oid <> 0 + GROUP BY 1 + ORDER BY 1 + ) subview + WHERE substr(t_classification_atc.code,4,4) = 'X' AND + substr(t_classification_atc.code,1,3) = subview.code AND + ( + t_classification_atc.est_atc IS DISTINCT FROM subview.est_atc OR + t_classification_atc.est_cladimed IS DISTINCT FROM subview.est_cladimed + ) + ; + + UPDATE base.t_classification_atc SET + est_atc = subview.est_atc, + est_cladimed = subview.est_cladimed + FROM + (SELECT substr(t_classification_atc.code,1,4) AS code, MAX(est_atc) AS est_atc, MAX(est_cladimed) AS est_cladimed + FROM base.t_classification_atc + WHERE oid <> 0 + GROUP BY 1 + ORDER BY 1 + ) subview + WHERE substr(t_classification_atc.code,5,3) = 'X' AND + substr(t_classification_atc.code,1,4) = subview.code AND + ( + t_classification_atc.est_atc IS DISTINCT FROM subview.est_atc OR + t_classification_atc.est_cladimed IS DISTINCT FROM subview.est_cladimed + ) + ; + + UPDATE base.t_classification_atc SET + est_atc = subview.est_atc, + est_cladimed = subview.est_cladimed + FROM + (SELECT substr(t_classification_atc.code,1,5) AS code, MAX(est_atc) AS est_atc, MAX(est_cladimed) AS est_cladimed + FROM base.t_classification_atc + WHERE oid <> 0 + GROUP BY 1 + ORDER BY 1 + ) subview + WHERE substr(t_classification_atc.code,6,2) = 'XX' AND + substr(t_classification_atc.code,1,5) = subview.code AND + ( + t_classification_atc.est_atc IS DISTINCT FROM subview.est_atc OR + t_classification_atc.est_cladimed IS DISTINCT FROM subview.est_cladimed + ) + ; + + UPDATE base.t_ucd + SET classification_atc_id = t_classification_atc.oid + FROM base.t_classification_atc + WHERE t_classification_atc.code = atc_code AND + classification_atc_id IS DISTINCT FROM t_classification_atc.oid + ; + + -- Recopie dans activite + INSERT INTO activite.t_ucd_c (oid, code, texte, texte_court, classification_atc_id) + SELECT oid, code, texte, texte_court, classification_atc_id + FROM base.t_ucd + WHERE oid NOT IN (SELECT oid FROM activite.t_ucd_c); + + UPDATE activite.t_ucd_c SET + code = t_ucd.code, + texte = t_ucd.texte, + texte_court = t_ucd.texte_court, + classification_atc_id = t_ucd.classification_atc_id + FROM base.t_ucd + WHERE t_ucd.oid = t_ucd_c.oid AND + ( + t_ucd_c.code IS DISTINCT FROM t_ucd.code OR + t_ucd_c.texte IS DISTINCT FROM t_ucd.texte OR + t_ucd_c.texte_court IS DISTINCT FROM t_ucd.texte_court OR + t_ucd_c.classification_atc_id IS DISTINCT FROM t_ucd.classification_atc_id + ); + + UPDATE activite.t_ucd_c SET + classification_atc_code = t_classification_atc.code, + classification_atc_texte = t_classification_atc.texte_court, + classification_atc_section_id = t_classification_atc.section_id, + classification_atc_section_code = t_classification_atc.section_code, + classification_atc_section_texte = t_classification_atc.section_texte, + classification_atc_1_id = t_classification_atc.classification_atc_1_id, + classification_atc_1_code = t_classification_atc.classification_atc_1_code, + classification_atc_1_texte = t_classification_atc.classification_atc_1_texte, + classification_atc_2_id = t_classification_atc.classification_atc_2_id, + classification_atc_2_code = t_classification_atc.classification_atc_2_code, + classification_atc_2_texte = t_classification_atc.classification_atc_2_texte, + classification_atc_3_id = t_classification_atc.classification_atc_3_id, + classification_atc_3_code = t_classification_atc.classification_atc_3_code, + classification_atc_3_texte = t_classification_atc.classification_atc_3_texte, + classification_atc_4_id = t_classification_atc.classification_atc_4_id, + classification_atc_4_code = t_classification_atc.classification_atc_4_code, + classification_atc_4_texte = t_classification_atc.classification_atc_4_texte + FROM base.t_classification_atc + WHERE classification_atc_id = t_classification_atc.oid AND + ( + t_ucd_c.classification_atc_code IS DISTINCT FROM t_classification_atc.code OR + t_ucd_c.classification_atc_texte IS DISTINCT FROM t_classification_atc.texte_court OR + t_ucd_c.classification_atc_section_id IS DISTINCT FROM t_classification_atc.section_id OR + t_ucd_c.classification_atc_section_code::text[] IS DISTINCT FROM t_classification_atc.section_code::text[] OR + t_ucd_c.classification_atc_section_texte::text[] IS DISTINCT FROM t_classification_atc.section_texte::text[] OR + t_ucd_c.classification_atc_1_id IS DISTINCT FROM t_classification_atc.classification_atc_1_id OR + t_ucd_c.classification_atc_1_code IS DISTINCT FROM t_classification_atc.classification_atc_1_code OR + t_ucd_c.classification_atc_1_texte IS DISTINCT FROM t_classification_atc.classification_atc_1_texte OR + t_ucd_c.classification_atc_2_id IS DISTINCT FROM t_classification_atc.classification_atc_2_id OR + t_ucd_c.classification_atc_2_code IS DISTINCT FROM t_classification_atc.classification_atc_2_code OR + t_ucd_c.classification_atc_2_texte IS DISTINCT FROM t_classification_atc.classification_atc_2_texte OR + t_ucd_c.classification_atc_3_id IS DISTINCT FROM t_classification_atc.classification_atc_3_id OR + t_ucd_c.classification_atc_3_code IS DISTINCT FROM t_classification_atc.classification_atc_3_code OR + t_ucd_c.classification_atc_3_texte IS DISTINCT FROM t_classification_atc.classification_atc_3_texte OR + t_ucd_c.classification_atc_4_id IS DISTINCT FROM t_classification_atc.classification_atc_4_id OR + t_ucd_c.classification_atc_4_code IS DISTINCT FROM t_classification_atc.classification_atc_4_code OR + t_ucd_c.classification_atc_4_texte IS DISTINCT FROM t_classification_atc.classification_atc_4_texte + ) + ; + + + -- Nouvelle colonne dans base (retro comptabililité) + IF NOT EXISTS ( + SELECT column_name + FROM information_schema.columns + WHERE table_schema || '.' || table_name = 'base.t_lpp' AND + column_name = 'classification_atc_id') THEN + ALTER TABLE base.t_lpp ADD COLUMN classification_atc_id bigint default 0; + END IF; + + + INSERT INTO base.t_lpp(oid, code, texte, texte_court) + SELECT 0, chr(127) || '*******', chr(127) || 'Non renseigné', chr(127) || 'Non renseigné' + WHERE 0 NOT IN (SELECT oid FROM base.t_lpp); + + -- Si module pmsi, ajout des lpp pmsi + IF _module_pmsimco = '1' THEN + INSERT INTO base.t_lpp (code, texte, texte_court) + SELECT code, texte, texte_court + FROM pmsi.t_lpp + WHERE oid <> 0 AND + code NOT IN (SELECT code FROM base.t_lpp WHERE code IS NOT NULL) + ; + END IF; + + UPDATE base.t_lpp SET texte_court = texte WHERE COALESCE(texte_court,'') = ''; + + INSERT INTO activite.t_lpp_c (oid, code, texte, texte_court, classification_atc_id) + SELECT oid, code, texte, texte_court, classification_atc_id + FROM base.t_lpp + WHERE oid NOT IN (SELECT oid FROM activite.t_lpp_c); + + UPDATE activite.t_lpp_c SET + code = t_lpp.code, + texte = t_lpp.texte, + texte_court = t_lpp.texte_court, + classification_atc_id = t_lpp.classification_atc_id + FROM base.t_lpp + WHERE t_lpp.oid = t_lpp_c.oid AND + ( + t_lpp_c.code IS DISTINCT FROM t_lpp.code OR + t_lpp_c.texte IS DISTINCT FROM t_lpp.texte OR + t_lpp_c.texte_court IS DISTINCT FROM t_lpp.texte_court OR + t_lpp_c.classification_atc_id IS DISTINCT FROM t_lpp.classification_atc_id + ); + + UPDATE activite.t_lpp_c SET + classification_atc_code = t_classification_atc.code, + classification_atc_texte = t_classification_atc.texte_court, + classification_atc_section_id = t_classification_atc.section_id, + classification_atc_section_code = t_classification_atc.section_code, + classification_atc_section_texte = t_classification_atc.section_texte, + classification_atc_1_id = t_classification_atc.classification_atc_1_id, + classification_atc_1_code = t_classification_atc.classification_atc_1_code, + classification_atc_1_texte = t_classification_atc.classification_atc_1_texte, + classification_atc_2_id = t_classification_atc.classification_atc_2_id, + classification_atc_2_code = t_classification_atc.classification_atc_2_code, + classification_atc_2_texte = t_classification_atc.classification_atc_2_texte, + classification_atc_3_id = t_classification_atc.classification_atc_3_id, + classification_atc_3_code = t_classification_atc.classification_atc_3_code, + classification_atc_3_texte = t_classification_atc.classification_atc_3_texte, + classification_atc_4_id = t_classification_atc.classification_atc_4_id, + classification_atc_4_code = t_classification_atc.classification_atc_4_code, + classification_atc_4_texte = t_classification_atc.classification_atc_4_texte + FROM base.t_classification_atc + WHERE classification_atc_id = t_classification_atc.oid AND + ( + t_lpp_c.classification_atc_code IS DISTINCT FROM t_classification_atc.code OR + t_lpp_c.classification_atc_texte IS DISTINCT FROM t_classification_atc.texte_court OR + t_lpp_c.classification_atc_section_id IS DISTINCT FROM t_classification_atc.section_id OR + t_lpp_c.classification_atc_section_code::text[] IS DISTINCT FROM t_classification_atc.section_code::text[] OR + t_lpp_c.classification_atc_section_texte::text[] IS DISTINCT FROM t_classification_atc.section_texte::text[] OR + t_lpp_c.classification_atc_1_id IS DISTINCT FROM t_classification_atc.classification_atc_1_id OR + t_lpp_c.classification_atc_1_code IS DISTINCT FROM t_classification_atc.classification_atc_1_code OR + t_lpp_c.classification_atc_1_texte IS DISTINCT FROM t_classification_atc.classification_atc_1_texte OR + t_lpp_c.classification_atc_2_id IS DISTINCT FROM t_classification_atc.classification_atc_2_id OR + t_lpp_c.classification_atc_2_code IS DISTINCT FROM t_classification_atc.classification_atc_2_code OR + t_lpp_c.classification_atc_2_texte IS DISTINCT FROM t_classification_atc.classification_atc_2_texte OR + t_lpp_c.classification_atc_3_id IS DISTINCT FROM t_classification_atc.classification_atc_3_id OR + t_lpp_c.classification_atc_3_code IS DISTINCT FROM t_classification_atc.classification_atc_3_code OR + t_lpp_c.classification_atc_3_texte IS DISTINCT FROM t_classification_atc.classification_atc_3_texte OR + t_lpp_c.classification_atc_4_id IS DISTINCT FROM t_classification_atc.classification_atc_4_id OR + t_lpp_c.classification_atc_4_code IS DISTINCT FROM t_classification_atc.classification_atc_4_code OR + t_lpp_c.classification_atc_4_texte IS DISTINCT FROM t_classification_atc.classification_atc_4_texte + ) + ; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_solde_auto.yaml b/db/schema2/functions/cti_solde_auto.yaml new file mode 100644 index 0000000..c059a05 --- /dev/null +++ b/db/schema2/functions/cti_solde_auto.yaml @@ -0,0 +1,632 @@ +return: text +lang: plpgsql +src: | + DECLARE + result TEXT; + _SOLDEAUTO_nb numeric; + BEGIN + + + -- Pour initialiser le paramétrage + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'SOLDEAUTO', + 'Nombre d''années pour solde automatique des factures', + '2', + 'Tout séjour non soldé sorti avant sera soldé (-1 si pas de solde auto)' + WHERE 'SOLDEAUTO' NOT IN (SELECT code FROM activite.t_divers); + + INSERT INTO activite.t_divers (code, texte, valeur, description) + SELECT + 'SOLDEAUTOHON', + 'Solde automatique des honoraires si solde etablissement à ', + '0', + 'Si la partie clinique est soldée, il faut solder les honoaires' + WHERE 'SOLDEAUTOHON' NOT IN (SELECT code FROM activite.t_divers); + + + _SOLDEAUTO_nb = (SELECT base.cti_to_number(valeur) + FROM activite.t_divers + WHERE t_divers.code = 'SOLDEAUTO' + LIMIT 1) + ; + + -- Solde des parts patient si solde total = 0 et solde cli/hon <> 0 + DROP TABLE IF EXISTS w_facture_solde_auto_0; + CREATE TEMP TABLE w_facture_solde_auto_0 AS + SELECT + no_facture, + date_fin, + date_vente AS date_solde + FROM activite.p_factures + WHERE + ( + ( + p_factures.montant_comptabilise_0_c + p_factures.montant_comptabilise_0_h + - p_factures.montant_regle_0_c - p_factures.montant_regle_0_h + ) = 0 + ) AND + p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c + ; + + + ANALYSE w_facture_solde_auto_0; + + UPDATE w_facture_solde_auto_0 + SET date_solde = subview.date_solde + FROM + ( + SELECT p_factures_soldes_c.no_facture, + MAX(date_comptable) AS date_solde + FROM activite.p_factures_soldes_c + JOIN w_facture_solde_auto_0 ON w_facture_solde_auto_0.no_facture = p_factures_soldes_c.no_facture + WHERE montant_regle_0 <> 0 + GROUP BY 1 + ) subview + WHERE w_facture_solde_auto_0.no_facture = subview.no_facture AND + subview.date_solde > w_facture_solde_auto_0.date_solde + ; + + UPDATE w_facture_solde_auto_0 + SET date_solde = subview.date_solde + FROM + ( + SELECT p_factures_soldes_h.no_facture, + MAX(date_comptable) AS date_solde + FROM activite.p_factures_soldes_h + JOIN w_facture_solde_auto_0 ON w_facture_solde_auto_0.no_facture = p_factures_soldes_h.no_facture + WHERE montant_regle_0 <> 0 + GROUP BY 1 + ) subview + WHERE w_facture_solde_auto_0.no_facture = subview.no_facture AND + subview.date_solde > w_facture_solde_auto_0.date_solde + ; + + + + INSERT INTO activite.p_factures_soldes_c( + facture_id, + no_facture, + date_comptable, + prestation_id, + rubrique_comptabilisee_id, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_regle, + montant_regle_0, + montant_regle_1, + montant_regle_2, + montant_regle_22, + od_non_comptabilise + ) + SELECT + facture_id, + p_factures_soldes_c.no_facture, + date_solde, + prestation_id, + rubrique_comptabilisee_id, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + + SUM(montant_comptabilise_0-montant_regle_0) AS montant_regle, + SUM(montant_comptabilise_0-montant_regle_0) AS montant_regle_0, + 0::numeric AS montant_regle_1, + 0::numeric AS montant_regle_2, + 0::numeric AS montant_regle_22, + '1' AS od_non_comptabilise + FROM activite.p_factures_soldes_c + JOIN w_facture_solde_auto_0 ON w_facture_solde_auto_0.no_facture = p_factures_soldes_c.no_facture + GROUP BY 1,2,3,4,5,6 + HAVING SUM(montant_comptabilise_0-montant_regle_0) <> 0 + ; + + INSERT INTO activite.p_factures_soldes_h( + facture_id, + no_facture, + date_comptable, + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_regle, + montant_regle_0, + montant_regle_1, + montant_regle_2, + montant_regle_22, + od_non_comptabilise + ) + SELECT + facture_id, + p_factures_soldes_h.no_facture, + date_solde, + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + + SUM(montant_comptabilise_0-montant_regle_0) AS montant_regle, + SUM(montant_comptabilise_0-montant_regle_0) AS montant_regle_0, + 0::numeric AS montant_regle_1, + 0::numeric AS montant_regle_2, + 0::numeric AS montant_regle_22, + '1' AS od_non_comptabilise + FROM activite.p_factures_soldes_h + JOIN w_facture_solde_auto_0 ON w_facture_solde_auto_0.no_facture = p_factures_soldes_h.no_facture + GROUP BY 1,2,3,4,5,6,7 + HAVING SUM(montant_comptabilise_0-montant_regle_0) <> 0 + ; + + + + UPDATE activite.p_factures SET + montant_regle_c = montant_comptabilise_0_c + montant_regle_1_c + montant_regle_2_c + montant_regle_22_c, + montant_regle_0_c = montant_comptabilise_0_c, + montant_regle_h = montant_comptabilise_0_h + montant_regle_1_h + montant_regle_2_h + montant_regle_22_h, + montant_regle_0_h = montant_comptabilise_0_h + FROM w_facture_solde_auto_0 + WHERE w_facture_solde_auto_0.no_facture = p_factures.no_facture + ; + + -- Solde automatique selon age solde + IF _SOLDEAUTO_nb >= 2 THEN + DROP TABLE IF EXISTS w_facture_solde_auto; + CREATE TEMP TABLE w_facture_solde_auto AS + SELECT + no_facture,date_fin, + date(date_trunc('year',now())-(t_divers.valeur||' years')::interval-interval '1 day') AS date_solde + FROM activite.p_factures + JOIN activite.t_divers ON t_divers.code = 'SOLDEAUTO' + WHERE date_fin < date(date_trunc('year',now())-(t_divers.valeur||' years')::interval) + ; + + + + INSERT INTO activite.p_factures_soldes_c( + facture_id, + no_facture, + date_comptable, + prestation_id, + rubrique_comptabilisee_id, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_regle, + montant_regle_0, + montant_regle_1, + montant_regle_2, + montant_regle_22, + od_non_comptabilise + ) + SELECT + facture_id, + p_factures_soldes_c.no_facture, + MAX(GREATEST(date_comptable,date_solde)), + prestation_id, + rubrique_comptabilisee_id, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + + SUM(montant_comptabilise_0-montant_regle_0)+ + SUM(montant_comptabilise_1-montant_regle_1)+ + SUM(montant_comptabilise_2-montant_regle_2)+ + SUM(montant_comptabilise_22-montant_regle_22) AS montant_regle, + SUM(montant_comptabilise_0-montant_regle_0) AS montant_regle_0, + SUM(montant_comptabilise_1-montant_regle_1) AS montant_regle_1, + SUM(montant_comptabilise_2-montant_regle_2) AS montant_regle_2, + SUM(montant_comptabilise_22-montant_regle_22) AS montant_regle_22, + '1' AS od_non_comptabilise + FROM activite.p_factures_soldes_c + JOIN w_facture_solde_auto ON w_facture_solde_auto.no_facture = p_factures_soldes_c.no_facture + GROUP BY 1,2,4,5,6 + HAVING SUM(montant_comptabilise-montant_regle) <> 0 OR + SUM(montant_comptabilise_1-montant_regle_1) <> 0 OR + SUM(montant_comptabilise_2-montant_regle_2) <> 0 OR + SUM(montant_comptabilise_22-montant_regle_22) <> 0 OR + SUM(montant_comptabilise_0-montant_regle_0) <> 0 + ; + + INSERT INTO activite.p_factures_soldes_h( + facture_id, + no_facture, + date_comptable, + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_regle, + montant_regle_0, + montant_regle_1, + montant_regle_2, + montant_regle_22, + od_non_comptabilise + ) + SELECT + facture_id, + p_factures_soldes_h.no_facture, + MAX(GREATEST(date_comptable,date_solde)), + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + + SUM(montant_comptabilise_0-montant_regle_0)+ + SUM(montant_comptabilise_1-montant_regle_1)+ + SUM(montant_comptabilise_2-montant_regle_2) AS montant_regle, + SUM(montant_comptabilise_0-montant_regle_0) AS montant_regle_0, + SUM(montant_comptabilise_1-montant_regle_1) AS montant_regle_1, + SUM(montant_comptabilise_2-montant_regle_2) AS montant_regle_2, + SUM(montant_comptabilise_22-montant_regle_22) AS montant_regle_22, + '1' AS od_non_comptabilise + FROM activite.p_factures_soldes_h + JOIN w_facture_solde_auto ON w_facture_solde_auto.no_facture = p_factures_soldes_h.no_facture + GROUP BY 1,2,4,5,6,7 + HAVING SUM(montant_comptabilise-montant_regle) <> 0 OR + SUM(montant_comptabilise_1-montant_regle_1) <> 0 OR + SUM(montant_comptabilise_2-montant_regle_2) <> 0 OR + SUM(montant_comptabilise_22-montant_regle_22) <> 0 OR + SUM(montant_comptabilise_0-montant_regle_0) <> 0 + ; + + + + UPDATE activite.p_factures SET + montant_regle_c = montant_comptabilise_c, + montant_regle_0_c = montant_comptabilise_0_c, + montant_regle_1_c = montant_comptabilise_1_c, + montant_regle_2_c = montant_comptabilise_2_c, + montant_regle_22_c = montant_comptabilise_22_c, + montant_regle_h = montant_comptabilise_h, + montant_regle_0_h = montant_comptabilise_0_h, + montant_regle_1_h = montant_comptabilise_1_h, + montant_regle_2_h = montant_comptabilise_2_h, + montant_regle_22_h = montant_comptabilise_22_h + FROM w_facture_solde_auto + WHERE w_facture_solde_auto.no_facture = p_factures.no_facture AND + ( + montant_regle_c <> montant_comptabilise_c OR + montant_regle_h <> montant_comptabilise_h + ) + ; + END IF; + + + -- Solde automatique honoraires si clinique soldé + IF (SELECT MAX(valeur) FROM activite.t_divers WHERE t_divers.code = 'SOLDEAUTOHON') = '1' THEN + DROP TABLE IF EXISTS w_facture_solde_auto_hon; + CREATE TEMP TABLE w_facture_solde_auto_hon AS + SELECT + no_facture, + '1'::text AS tiers_type, + SUM(montant_comptabilise_1) - SUM(montant_regle_1) AS montant_solde_h, + 0::numeric AS montant_solde_c, + NULL::date AS date_solde_c + FROM activite.p_factures_soldes_h + GROUP BY 1 + HAVING SUM(montant_comptabilise_1) <> SUM(montant_regle_1) + ; + INSERT INTO w_facture_solde_auto_hon + SELECT + no_facture, + '0'::text AS tiers_type, + SUM(montant_comptabilise_0) - SUM(montant_regle_0) AS montant_solde_h, + 0::numeric AS montant_solde_c, + NULL::date AS date_solde_c + FROM activite.p_factures_soldes_h + GROUP BY 1 + HAVING SUM(montant_comptabilise_0) <> SUM(montant_regle_0) + ; + INSERT INTO w_facture_solde_auto_hon + SELECT + no_facture, + '2'::text AS tiers_type, + SUM(montant_comptabilise_2) - SUM(montant_regle_2) AS montant_solde_h, + 0::numeric AS montant_solde_c, + NULL::date AS date_solde_c + FROM activite.p_factures_soldes_h + GROUP BY 1 + HAVING SUM(montant_comptabilise_2) <> SUM(montant_regle_2) + ; + INSERT INTO w_facture_solde_auto_hon + SELECT + no_facture, + '22'::text AS tiers_type, + SUM(montant_comptabilise_22) - SUM(montant_regle_22) AS montant_solde_h, + 0::numeric AS montant_solde_c, + NULL::date AS date_solde_c + FROM activite.p_factures_soldes_h + GROUP BY 1 + HAVING SUM(montant_comptabilise_22) <> SUM(montant_regle_22) + ; + + ANALYSE w_facture_solde_auto_hon + ; + + UPDATE w_facture_solde_auto_hon SET + montant_solde_c = subview.montant_solde_c, + date_solde_c = subview.date_solde_c + FROM + ( + SELECT w_facture_solde_auto_hon.no_facture, + w_facture_solde_auto_hon.tiers_type, + CASE WHEN SUM(montant_comptabilise_1) - SUM(montant_regle_1) = 0 THEN MAX(date_comptable) ELSE NULL END AS date_solde_c, + SUM(montant_comptabilise_1) - SUM(montant_regle_1) AS montant_solde_c + FROM activite.p_factures_soldes_c + JOIN w_facture_solde_auto_hon ON + activite.p_factures_soldes_c.no_facture = w_facture_solde_auto_hon.no_facture AND tiers_type = '1' + GROUP BY 1,2 + HAVING SUM(montant_comptabilise_1) <> 0 + ) subview + WHERE w_facture_solde_auto_hon.no_facture = subview.no_facture AND + w_facture_solde_auto_hon.tiers_type = subview.tiers_type + ; + + UPDATE w_facture_solde_auto_hon SET + montant_solde_c = subview.montant_solde_c, + date_solde_c = subview.date_solde_c + FROM + ( + SELECT w_facture_solde_auto_hon.no_facture, + w_facture_solde_auto_hon.tiers_type, + CASE WHEN SUM(montant_comptabilise_0) - SUM(montant_regle_0) = 0 THEN MAX(date_comptable) ELSE NULL END AS date_solde_c, + SUM(montant_comptabilise_0) - SUM(montant_regle_0) AS montant_solde_c + FROM activite.p_factures_soldes_c + JOIN w_facture_solde_auto_hon ON + activite.p_factures_soldes_c.no_facture = w_facture_solde_auto_hon.no_facture AND tiers_type = '0' + GROUP BY 1,2 + HAVING SUM(montant_comptabilise_0) <> 0 + ) subview + WHERE w_facture_solde_auto_hon.no_facture = subview.no_facture AND + w_facture_solde_auto_hon.tiers_type = subview.tiers_type + ; + + UPDATE w_facture_solde_auto_hon SET + montant_solde_c = subview.montant_solde_c, + date_solde_c = subview.date_solde_c + FROM + ( + SELECT w_facture_solde_auto_hon.no_facture, + w_facture_solde_auto_hon.tiers_type, + CASE WHEN SUM(montant_comptabilise_2) - SUM(montant_regle_2) = 0 THEN MAX(date_comptable) ELSE NULL END AS date_solde_c, + SUM(montant_comptabilise_2) - SUM(montant_regle_2) AS montant_solde_c + FROM activite.p_factures_soldes_c + JOIN w_facture_solde_auto_hon ON + activite.p_factures_soldes_c.no_facture = w_facture_solde_auto_hon.no_facture AND tiers_type = '2' + GROUP BY 1,2 + HAVING SUM(montant_comptabilise_2) <> 0 + ) subview + WHERE w_facture_solde_auto_hon.no_facture = subview.no_facture AND + w_facture_solde_auto_hon.tiers_type = subview.tiers_type + ; + + UPDATE w_facture_solde_auto_hon SET + montant_solde_c = subview.montant_solde_c, + date_solde_c = subview.date_solde_c + FROM + ( + SELECT w_facture_solde_auto_hon.no_facture, + w_facture_solde_auto_hon.tiers_type, + CASE WHEN SUM(montant_comptabilise_22) - SUM(montant_regle_22) = 0 THEN MAX(date_comptable) ELSE NULL END AS date_solde_c, + SUM(montant_comptabilise_22) - SUM(montant_regle_22) AS montant_solde_c + FROM activite.p_factures_soldes_c + JOIN w_facture_solde_auto_hon ON + activite.p_factures_soldes_c.no_facture = w_facture_solde_auto_hon.no_facture AND tiers_type = '22' + GROUP BY 1,2 + HAVING SUM(montant_comptabilise_22) <> 0 + ) subview + WHERE w_facture_solde_auto_hon.no_facture = subview.no_facture AND + w_facture_solde_auto_hon.tiers_type = subview.tiers_type + ; + + + INSERT INTO activite.p_factures_soldes_h( + facture_id, + no_facture, + date_comptable, + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_regle, + montant_regle_0, + montant_regle_1, + montant_regle_2, + montant_regle_22, + od_non_comptabilise + ) + SELECT + facture_id, + p_factures_soldes_h.no_facture, + MAX(GREATEST(date_comptable,date_solde_c)), + medecin_comptabilise_id, + prestation_id, + rubrique_comptabilisee_id, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + + SUM(CASE WHEN tiers_type = '0' THEN montant_comptabilise_0-montant_regle_0 ELSE 0 END)+ + SUM(CASE WHEN tiers_type = '1' THEN montant_comptabilise_1-montant_regle_1 ELSE 0 END)+ + SUM(CASE WHEN tiers_type = '2' THEN montant_comptabilise_2-montant_regle_2 ELSE 0 END)+ + SUM(CASE WHEN tiers_type = '22' THEN montant_comptabilise_22-montant_regle_22 ELSE 0 END) AS montant_regle, + SUM(CASE WHEN tiers_type = '0' THEN montant_comptabilise_0-montant_regle_0 ELSE 0 END) AS montant_regle_0, + SUM(CASE WHEN tiers_type = '1' THEN montant_comptabilise_1-montant_regle_1 ELSE 0 END) AS montant_regle_1, + SUM(CASE WHEN tiers_type = '2' THEN montant_comptabilise_2-montant_regle_2 ELSE 0 END) AS montant_regle_2, + SUM(CASE WHEN tiers_type = '22' THEN montant_comptabilise_22-montant_regle_22 ELSE 0 END) AS montant_regle_22, + '1' AS od_non_comptabilise + FROM activite.p_factures_soldes_h + JOIN w_facture_solde_auto_hon ON w_facture_solde_auto_hon.no_facture = p_factures_soldes_h.no_facture + WHERE date_solde_c IS NOT NULL + GROUP BY 1,2,4,5,6,7 + HAVING SUM(CASE WHEN tiers_type = '0' THEN montant_comptabilise_0-montant_regle_0 ELSE 0 END) <> 0 OR + SUM(CASE WHEN tiers_type = '1' THEN montant_comptabilise_1-montant_regle_1 ELSE 0 END) <> 0 OR + SUM(CASE WHEN tiers_type = '2' THEN montant_comptabilise_2-montant_regle_2 ELSE 0 END) <> 0 OR + SUM(CASE WHEN tiers_type = '22' THEN montant_comptabilise_22-montant_regle_22 ELSE 0 END) <> 0 + ; + + + + UPDATE activite.p_factures SET + montant_regle_h = montant_regle_0_h + montant_comptabilise_1_h + montant_regle_2_h + montant_regle_22_h, + montant_regle_1_h = montant_comptabilise_1_h + FROM w_facture_solde_auto_hon + WHERE w_facture_solde_auto_hon.no_facture = p_factures.no_facture AND + w_facture_solde_auto_hon.tiers_type = '1' AND + w_facture_solde_auto_hon.date_solde_c IS NOT NULL + ; + UPDATE activite.p_factures SET + montant_regle_h = montant_comptabilise_0_h + montant_regle_1_h + montant_regle_2_h + montant_regle_22_h, + montant_regle_0_h = montant_comptabilise_0_h + FROM w_facture_solde_auto_hon + WHERE w_facture_solde_auto_hon.no_facture = p_factures.no_facture AND + w_facture_solde_auto_hon.tiers_type = '0' AND + w_facture_solde_auto_hon.date_solde_c IS NOT NULL + ; + + UPDATE activite.p_factures SET + montant_regle_h = montant_regle_0_h + montant_regle_1_h + montant_comptabilise_2_h + montant_regle_22_h, + montant_regle_2_h = montant_comptabilise_2_h + FROM w_facture_solde_auto_hon + WHERE w_facture_solde_auto_hon.no_facture = p_factures.no_facture AND + w_facture_solde_auto_hon.tiers_type = '2' AND + w_facture_solde_auto_hon.date_solde_c IS NOT NULL + ; + + UPDATE activite.p_factures SET + montant_regle_h = montant_regle_0_h + montant_regle_1_h + montant_regle_2_h + montant_comptabilise_22_h, + montant_regle_22_h = montant_comptabilise_22_h + FROM w_facture_solde_auto_hon + WHERE w_facture_solde_auto_hon.no_facture = p_factures.no_facture AND + w_facture_solde_auto_hon.tiers_type = '22' AND + w_facture_solde_auto_hon.date_solde_c IS NOT NULL + ; + + + + + END IF; + + -- Ajustement des dates de solde après ces manipulations + DROP TABLE IF EXISTS w_correction_date_c; + CREATE TEMP TABLE w_correction_date_c AS + SELECT p_factures.no_facture, no_sejour, + MAX(p_factures.date_solde_0_c) AS date_solde_0_c_old, + MAX(p_factures.date_solde_1_c) AS date_solde_1_c_old, + MAX(p_factures.date_solde_2_c) AS date_solde_2_c_old, + MAX(p_factures.date_solde_22_c) AS date_solde_22_c_old, + MAX(CASE WHEN montant_comptabilise_0_c = 0 THEN '00010101' WHEN montant_comptabilise_0_c = montant_regle_0_c AND p_factures.date_solde_0_c = '20991231' AND montant_comptabilise_0_c <> 0 AND p_factures_soldes_c.montant_regle_0 <> 0 THEN date_comptable ELSE NULL END) AS date_solde_0_c_new, + MAX(CASE WHEN montant_comptabilise_1_c = 0 THEN '00010101' WHEN montant_comptabilise_1_c = montant_regle_1_c AND p_factures.date_solde_1_c = '20991231' AND montant_comptabilise_1_c <> 0 AND p_factures.date_solde_1_c = '20991231' AND p_factures_soldes_c.montant_regle_1 <> 0 THEN date_comptable ELSE NULL END) AS date_solde_1_c_new, + MAX(CASE WHEN montant_comptabilise_2_c = 0 THEN '00010101' WHEN montant_comptabilise_2_c = montant_regle_2_c AND p_factures.date_solde_2_c = '20991231' AND montant_comptabilise_2_c <> 0 AND p_factures.date_solde_2_c = '20991231' AND p_factures_soldes_c.montant_regle_2 <> 0 THEN date_comptable ELSE NULL END) AS date_solde_2_c_new, + MAX(CASE WHEN montant_comptabilise_22_c = 0 THEN '00010101' WHEN montant_comptabilise_22_c = montant_regle_22_c AND p_factures.date_solde_22_c = '20991231' AND montant_comptabilise_22_c <> 0 AND p_factures.date_solde_22_c = '20991231' AND p_factures_soldes_c.montant_regle_22 <> 0 THEN date_comptable ELSE NULL END) AS date_solde_22_c_new + FROM activite.p_factures + LEFT JOIN activite.p_factures_soldes_c ON p_factures.no_facture = p_factures_soldes_c.no_facture AND p_factures_soldes_c.montant_regle <> 0 + GROUP BY 1,2 + ; + + UPDATE activite.p_factures SET + date_solde_c = GREATEST( + COALESCE(date_solde_0_c_new,date_solde_0_c), + COALESCE(date_solde_1_c_new,date_solde_1_c), + COALESCE(date_solde_2_c_new,date_solde_2_c), + COALESCE(date_solde_22_c_new,date_solde_22_c) + ), + date_solde_0_c = COALESCE(date_solde_0_c_new,date_solde_0_c), + date_solde_1_c = COALESCE(date_solde_1_c_new,date_solde_1_c), + date_solde_2_c = COALESCE(date_solde_2_c_new,date_solde_2_c), + date_solde_22_c = COALESCE(date_solde_22_c_new,date_solde_22_c) + FROM w_correction_date_c + WHERE p_factures.no_facture = w_correction_date_c.no_facture AND + ( + date_solde_c <> GREATEST( + COALESCE(date_solde_0_c_new,date_solde_0_c), + COALESCE(date_solde_1_c_new,date_solde_1_c), + COALESCE(date_solde_2_c_new,date_solde_2_c), + COALESCE(date_solde_22_c_new,date_solde_22_c) + ) OR + date_solde_0_c <> COALESCE(date_solde_0_c_new,date_solde_0_c) OR + date_solde_1_c <> COALESCE(date_solde_1_c_new,date_solde_1_c) OR + date_solde_2_c <> COALESCE(date_solde_2_c_new,date_solde_2_c) OR + date_solde_22_c <> COALESCE(date_solde_22_c_new,date_solde_22_c) + ) + ; + + + DROP TABLE IF EXISTS w_correction_date_h; + CREATE TEMP TABLE w_correction_date_h AS + SELECT p_factures.no_facture, no_sejour, + MAX(p_factures.date_solde_0_h) AS date_solde_0_h_old, + MAX(p_factures.date_solde_1_h) AS date_solde_1_h_old, + MAX(p_factures.date_solde_2_h) AS date_solde_2_h_old, + MAX(p_factures.date_solde_22_h) AS date_solde_22_h_old, + MAX(CASE WHEN montant_comptabilise_0_h = 0 THEN '00010101' WHEN montant_comptabilise_0_h = montant_regle_0_h AND p_factures.date_solde_0_h = '20991231' AND montant_comptabilise_0_h <> 0 AND p_factures_soldes_h.montant_regle_0 <> 0 THEN date_comptable ELSE NULL END) AS date_solde_0_h_new, + MAX(CASE WHEN montant_comptabilise_1_h = 0 THEN '00010101' WHEN montant_comptabilise_1_h = montant_regle_1_h AND p_factures.date_solde_1_h = '20991231' AND montant_comptabilise_1_h <> 0 AND p_factures.date_solde_1_h = '20991231' AND p_factures_soldes_h.montant_regle_1 <> 0 THEN date_comptable ELSE NULL END) AS date_solde_1_h_new, + MAX(CASE WHEN montant_comptabilise_2_h = 0 THEN '00010101' WHEN montant_comptabilise_2_h = montant_regle_2_h AND p_factures.date_solde_2_h = '20991231' AND montant_comptabilise_2_h <> 0 AND p_factures.date_solde_2_h = '20991231' AND p_factures_soldes_h.montant_regle_2 <> 0 THEN date_comptable ELSE NULL END) AS date_solde_2_h_new, + MAX(CASE WHEN montant_comptabilise_22_h = 0 THEN '00010101' WHEN montant_comptabilise_22_h = montant_regle_22_h AND p_factures.date_solde_22_h = '20991231' AND montant_comptabilise_22_h <> 0 AND p_factures.date_solde_22_h = '20991231' AND p_factures_soldes_h.montant_regle_22 <> 0 THEN date_comptable ELSE NULL END) AS date_solde_22_h_new + FROM activite.p_factures + LEFT JOIN activite.p_factures_soldes_h ON p_factures.no_facture = p_factures_soldes_h.no_facture AND p_factures_soldes_h.montant_regle <> 0 + GROUP BY 1,2 + ; + + UPDATE activite.p_factures SET + date_solde_h = GREATEST( + COALESCE(date_solde_0_h_new,date_solde_0_h), + COALESCE(date_solde_1_h_new,date_solde_1_h), + COALESCE(date_solde_2_h_new,date_solde_2_h), + COALESCE(date_solde_22_h_new,date_solde_22_h) + ), + date_solde_0_h = COALESCE(date_solde_0_h_new,date_solde_0_h), + date_solde_1_h = COALESCE(date_solde_1_h_new,date_solde_1_h), + date_solde_2_h = COALESCE(date_solde_2_h_new,date_solde_2_h), + date_solde_22_h = COALESCE(date_solde_22_h_new,date_solde_22_h) + FROM w_correction_date_h + WHERE p_factures.no_facture = w_correction_date_h.no_facture AND + ( + date_solde_h <> GREATEST( + COALESCE(date_solde_0_h_new,date_solde_0_h), + COALESCE(date_solde_1_h_new,date_solde_1_h), + COALESCE(date_solde_2_h_new,date_solde_2_h), + COALESCE(date_solde_22_h_new,date_solde_22_h) + ) OR + date_solde_0_h <> COALESCE(date_solde_0_h_new,date_solde_0_h) OR + date_solde_1_h <> COALESCE(date_solde_1_h_new,date_solde_1_h) OR + date_solde_2_h <> COALESCE(date_solde_2_h_new,date_solde_2_h) OR + date_solde_22_h <> COALESCE(date_solde_22_h_new,date_solde_22_h) + ) + ; + + + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_transform_uf.yaml b/db/schema2/functions/cti_transform_uf.yaml new file mode 100644 index 0000000..f8b1f88 --- /dev/null +++ b/db/schema2/functions/cti_transform_uf.yaml @@ -0,0 +1,267 @@ +return: text +lang: plpgsql +src: | + DECLARE + + BEGIN + IF NOT EXISTS (SELECT *FROM information_schema.columns WHERE table_name = 't_unites_fonctionnelles' AND table_schema = 'activite' AND column_name = 'type_eclatement') THEN + RETURN 'KO. Pas de colonne type_eclatement'; + END IF; + PERFORM setval('activite.s_lieux', (SELECT COALESCE(MAX(oid),0) + 1 FROM activite.t_lieux), true); + -- Eclatement à la première UF (cas des soins continus) + IF EXISTS (SELECT * FROM activite.t_unites_fonctionnelles WHERE type_eclatement = '1') THEN + RAISE NOTICE '%' , 'Ventilation premiere UF. Recherche sejours'; + DROP TABLE IF EXISTS w_transform_uf_0; + CREATE TEMP TABLE w_transform_uf_0 AS + SELECT no_sejour, + (MIN(CASE WHEN type_eclatement IS DISTINCT FROM '1' THEN ARRAY[to_char(date,'YYYYMMDD')::text||to_char(heure_debut,'FM000000'),unite_fonctionnelle_id::text] ELSE ARRAY['20991231999999'::text,'0'::text] END))[2]::bigint AS first_unite_fonctionnelle_id, + ''::text AS first_unite_fonctionnelle_code, + ''::text AS first_unite_fonctionnelle_texte + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_unites_fonctionnelles ON unite_fonctionnelle_id = t_unites_fonctionnelles.oid + GROUP BY 1 + HAVING SUM(CASE WHEN type_eclatement = '1' THEN 1 ELSE 0 END)>0 + ; + -- Au moins un séjour concerné + IF EXISTS (SELECT * FROM w_transform_uf_0) THEN + UPDATE w_transform_uf_0 SET + first_unite_fonctionnelle_code = t_unites_fonctionnelles.code, + first_unite_fonctionnelle_texte = t_unites_fonctionnelles.texte + FROM activite.t_unites_fonctionnelles + WHERE first_unite_fonctionnelle_id = t_unites_fonctionnelles.oid AND + first_unite_fonctionnelle_id <> 0; + UPDATE w_transform_uf_0 SET + first_unite_fonctionnelle_code = 'MONO', + first_unite_fonctionnelle_texte = 'MonoRUM' + WHERE first_unite_fonctionnelle_id = 0; + RAISE NOTICE '%' , 'Ventilation premiere UF. Recherche lieux'; + DROP TABLE IF EXISTS w_transform_uf_1; + CREATE TEMP TABLE w_transform_uf_1 AS + SELECT p_mouvements_sejour.no_sejour, + lieu_id, + MAX(t_unites_fonctionnelles.code || '-' || first_unite_fonctionnelle_code) AS new_unite_fonctionnelle_code, + MAX(t_unites_fonctionnelles.texte || '-' || first_unite_fonctionnelle_texte) AS new_unite_fonctionnelle_texte, + MAX(service_facturation_id) AS service_facturation_id, + MAX(activite_id) AS activite_id, + MAX(lit_id) AS lit_id, + MAX(unite_medicale_id) AS unite_medicale_id, + MAX(unite_fonctionnelle_id) AS unite_fonctionnelle_id, + 0::bigint AS new_unite_fonctionnelle_id, + 0::bigint AS new_lieu_id + FROM activite.p_mouvements_sejour + JOIN w_transform_uf_0 ON w_transform_uf_0.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_unites_fonctionnelles ON unite_fonctionnelle_id = t_unites_fonctionnelles.oid + WHERE type_eclatement = '1' + GROUP BY 1,2; + + RAISE NOTICE '%' , 'Ventilation premiere UF. Nouvelles UF'; + INSERT INTO activite.t_unites_fonctionnelles(code_original, code, texte, texte_court) + SELECT '*'||new_unite_fonctionnelle_code, new_unite_fonctionnelle_code, new_unite_fonctionnelle_texte, new_unite_fonctionnelle_texte + FROM w_transform_uf_1 + WHERE ('*'||new_unite_fonctionnelle_code) NOT IN (SELECT code_original FROM activite.t_unites_fonctionnelles) + GROUP BY 1,2,3,4 + ORDER BY 1; + UPDATE w_transform_uf_1 + SET new_unite_fonctionnelle_id = t_unites_fonctionnelles.oid + FROM activite.t_unites_fonctionnelles + WHERE ('*'||new_unite_fonctionnelle_code) = code_original; + + INSERT INTO activite.t_lieux + ( + oid, + code_original_1, + code_original_2, + code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + service_facturation_id, + activite_id, + lit_id, + unite_medicale_id, + unite_fonctionnelle_id, + mode_traitement_id + ) + SELECT + nextval('activite.s_lieux'::regclass) AS oid, + subview.* + FROM + ( + SELECT t_lieux.code_original_1, + t_lieux.code_original_2, + t_lieux.code_original_3, + t_lieux.code_original_4, + t_lieux.code_original_5, + ('*'||new_unite_fonctionnelle_code) AS code_original_6, + t_lieux.code_original_7, + t_lieux.service_facturation_id, + t_lieux.activite_id, + t_lieux.lit_id, + t_lieux.unite_medicale_id, + new_unite_fonctionnelle_id AS unite_fonctionnelle_id, + t_lieux.mode_traitement_id + FROM activite.t_lieux + JOIN w_transform_uf_1 ON t_lieux.oid = w_transform_uf_1.lieu_id + LEFT JOIN activite.t_lieux t_lieux_deja ON + t_lieux.service_facturation_id = t_lieux_deja.service_facturation_id AND + t_lieux.activite_id = t_lieux_deja.activite_id AND + t_lieux.lit_id = t_lieux_deja.lit_id AND + t_lieux.unite_medicale_id = t_lieux_deja.unite_medicale_id AND + new_unite_fonctionnelle_id = t_lieux_deja.unite_fonctionnelle_id + WHERE t_lieux_deja.oid IS NULL + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13 + ) subview; + UPDATE w_transform_uf_1 + SET new_lieu_id = t_lieux.oid + FROM activite.t_lieux + WHERE t_lieux.service_facturation_id = w_transform_uf_1.service_facturation_id AND + t_lieux.activite_id = w_transform_uf_1.activite_id AND + t_lieux.lit_id = w_transform_uf_1.lit_id AND + t_lieux.unite_medicale_id = w_transform_uf_1.unite_medicale_id AND + t_lieux.unite_fonctionnelle_id = w_transform_uf_1.new_unite_fonctionnelle_id; + RAISE NOTICE '%' , 'Ventilation premiere UF. Modification sejours'; + UPDATE activite.p_mouvements_sejour + SET lieu_id = new_lieu_id + FROM w_transform_uf_1 + WHERE w_transform_uf_1.no_sejour = p_mouvements_sejour.no_sejour AND + w_transform_uf_1.lieu_id = p_mouvements_sejour.lieu_id; + UPDATE activite.p_sejours + SET lieu_sortie_id = new_lieu_id + FROM w_transform_uf_1 + WHERE w_transform_uf_1.no_sejour = p_sejours.no_sejour AND + w_transform_uf_1.lieu_id = p_sejours.lieu_sortie_id; + UPDATE activite.p_factures_lignes_c + SET lieu_id = new_lieu_id + FROM w_transform_uf_1 + JOIN activite.p_factures on p_factures.no_sejour = w_transform_uf_1.no_sejour + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + w_transform_uf_1.lieu_id = p_factures_lignes_c.lieu_id; + UPDATE activite.p_factures_lignes_h + SET lieu_id = new_lieu_id + FROM w_transform_uf_1 + JOIN activite.p_factures on p_factures.no_sejour = w_transform_uf_1.no_sejour + WHERE p_factures_lignes_h.no_facture = p_factures.no_facture AND + w_transform_uf_1.lieu_id = p_factures_lignes_h.lieu_id; + END IF; + END IF; + -- Eclatement à la spécialité médecin (cas des externes) + IF EXISTS (SELECT * FROM activite.t_unites_fonctionnelles WHERE type_eclatement = '2') THEN + RAISE NOTICE '%' , 'Ventilation Specialite. Recherche sejours'; + DROP TABLE IF EXISTS w_transform_uf_2; + CREATE TEMP TABLE w_transform_uf_2 AS + SELECT no_sejour, + lieu_id, + MAX(specialite_code) AS specialite_code, + MAX(replace(t_unites_fonctionnelles.code,'-MONO','') || '-' || replace(specialite_code,'.','')) AS new_unite_fonctionnelle_code, + MAX(replace(t_unites_fonctionnelles.texte,'-MonoRUM','') || '-' || specialite_texte) AS new_unite_fonctionnelle_texte, + MAX(service_facturation_id) AS service_facturation_id, + MAX(activite_id) AS activite_id, + MAX(lit_id) AS lit_id, + MAX(unite_medicale_id) AS unite_medicale_id, + MAX(unite_fonctionnelle_id) AS unite_fonctionnelle_id, + 0::bigint AS new_unite_fonctionnelle_id, + 0::bigint AS new_lieu_id + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_unites_fonctionnelles ON unite_fonctionnelle_id = t_unites_fonctionnelles.oid + JOIN activite.t_medecins_administratifs_c ON medecin_sejour_id = t_medecins_administratifs_c.oid + WHERE type_eclatement = '2' AND specialite_id <> 0 + GROUP BY 1,2; + -- Au moins un séjour concerné + IF EXISTS (SELECT * FROM w_transform_uf_2) THEN + RAISE NOTICE '%' , 'Ventilation Specialite. Nouvelles UF'; + INSERT INTO activite.t_unites_fonctionnelles(code_original, code, texte, texte_court) + SELECT '*'||new_unite_fonctionnelle_code, new_unite_fonctionnelle_code, new_unite_fonctionnelle_texte, new_unite_fonctionnelle_texte + FROM w_transform_uf_2 + WHERE ('*'||new_unite_fonctionnelle_code) NOT IN (SELECT code_original FROM activite.t_unites_fonctionnelles) + GROUP BY 1,2,3,4 + ORDER BY 1; + UPDATE w_transform_uf_2 + SET new_unite_fonctionnelle_id = t_unites_fonctionnelles.oid + FROM activite.t_unites_fonctionnelles + WHERE ('*'||new_unite_fonctionnelle_code) = code_original; + INSERT INTO activite.t_lieux + ( + oid, + code_original_1, + code_original_2, + code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + service_facturation_id, + activite_id, + lit_id, + unite_medicale_id, + unite_fonctionnelle_id, + mode_traitement_id + ) + SELECT + nextval('activite.s_lieux'::regclass) AS oid, + subview.* + FROM + ( + SELECT t_lieux.code_original_1, + t_lieux.code_original_2, + t_lieux.code_original_3, + t_lieux.code_original_4, + t_lieux.code_original_5, + ('*'||new_unite_fonctionnelle_code) AS code_original_6, + t_lieux.code_original_7, + t_lieux.service_facturation_id, + t_lieux.activite_id, + t_lieux.lit_id, + t_lieux.unite_medicale_id, + new_unite_fonctionnelle_id AS unite_fonctionnelle_id, + t_lieux.mode_traitement_id + FROM activite.t_lieux + JOIN w_transform_uf_2 ON t_lieux.oid = w_transform_uf_2.lieu_id + LEFT JOIN activite.t_lieux t_lieux_deja ON + t_lieux.service_facturation_id = t_lieux_deja.service_facturation_id AND + t_lieux.activite_id = t_lieux_deja.activite_id AND + t_lieux.lit_id = t_lieux_deja.lit_id AND + t_lieux.unite_medicale_id = t_lieux_deja.unite_medicale_id AND + new_unite_fonctionnelle_id = t_lieux_deja.unite_fonctionnelle_id + WHERE t_lieux_deja.oid IS NULL + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13 + ) subview; + UPDATE w_transform_uf_2 + SET new_lieu_id = t_lieux.oid + FROM activite.t_lieux + WHERE t_lieux.service_facturation_id = w_transform_uf_2.service_facturation_id AND + t_lieux.activite_id = w_transform_uf_2.activite_id AND + t_lieux.lit_id = w_transform_uf_2.lit_id AND + t_lieux.unite_medicale_id = w_transform_uf_2.unite_medicale_id AND + t_lieux.unite_fonctionnelle_id = w_transform_uf_2.new_unite_fonctionnelle_id; + RAISE NOTICE '%' , 'Ventilation Specialite. Modification séjours'; + UPDATE activite.p_mouvements_sejour + SET lieu_id = new_lieu_id + FROM w_transform_uf_2 + WHERE w_transform_uf_2.no_sejour = p_mouvements_sejour.no_sejour AND + w_transform_uf_2.lieu_id = p_mouvements_sejour.lieu_id; + UPDATE activite.p_sejours + SET lieu_sortie_id = new_lieu_id + FROM w_transform_uf_2 + WHERE w_transform_uf_2.no_sejour = p_sejours.no_sejour AND + w_transform_uf_2.lieu_id = p_sejours.lieu_sortie_id; + UPDATE activite.p_factures_lignes_c + SET lieu_id = new_lieu_id + FROM w_transform_uf_2 + JOIN activite.p_factures on p_factures.no_sejour = w_transform_uf_2.no_sejour + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + w_transform_uf_2.lieu_id = p_factures_lignes_c.lieu_id; + UPDATE activite.p_factures_lignes_h + SET lieu_id = new_lieu_id + FROM w_transform_uf_2 + JOIN activite.p_factures on p_factures.no_sejour = w_transform_uf_2.no_sejour + WHERE p_factures_lignes_h.no_facture = p_factures.no_facture AND + w_transform_uf_2.lieu_id = p_factures_lignes_h.lieu_id; + END IF; + END IF; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_transform_um.yaml b/db/schema2/functions/cti_transform_um.yaml new file mode 100644 index 0000000..1441803 --- /dev/null +++ b/db/schema2/functions/cti_transform_um.yaml @@ -0,0 +1,267 @@ +return: text +lang: plpgsql +src: | + DECLARE + + BEGIN + IF NOT EXISTS (SELECT *FROM information_schema.columns WHERE table_name = 't_unites_medicales' AND table_schema = 'activite' AND column_name = 'type_eclatement') THEN + RETURN 'KO. Pas de colonne type_eclatement'; + END IF; + PERFORM setval('activite.s_lieux', (SELECT COALESCE(MAX(oid),0) + 1 FROM activite.t_lieux), true); + -- Eclatement à la première um (cas des soins continus) + IF EXISTS (SELECT * FROM activite.t_unites_medicales WHERE type_eclatement = '1') THEN + RAISE NOTICE '%' , 'Ventilation premiere um. Recherche sejours'; + DROP TABLE IF EXISTS w_transform_um_0; + CREATE TEMP TABLE w_transform_um_0 AS + SELECT no_sejour, + (MIN(CASE WHEN type_eclatement IS DISTINCT FROM '1' THEN ARRAY[to_char(date,'YYYYMMDD')::text||to_char(heure_debut,'FM000000'),unite_medicale_id::text] ELSE ARRAY['20991231999999'::text,'0'::text] END))[2]::bigint AS first_unite_medicale_id, + ''::text AS first_unite_medicale_code, + ''::text AS first_unite_medicale_texte + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_unites_medicales ON unite_medicale_id = t_unites_medicales.oid + GROUP BY 1 + HAVING SUM(CASE WHEN type_eclatement = '1' THEN 1 ELSE 0 END)>0 + ; + -- Au moins un séjour concerné + IF EXISTS (SELECT * FROM w_transform_um_0) THEN + UPDATE w_transform_um_0 SET + first_unite_medicale_code = t_unites_medicales.code, + first_unite_medicale_texte = t_unites_medicales.texte + FROM activite.t_unites_medicales + WHERE first_unite_medicale_id = t_unites_medicales.oid AND + first_unite_medicale_id <> 0; + UPDATE w_transform_um_0 SET + first_unite_medicale_code = 'MONO', + first_unite_medicale_texte = 'MonoRUM' + WHERE first_unite_medicale_id = 0; + RAISE NOTICE '%' , 'Ventilation premiere um. Recherche lieux'; + DROP TABLE IF EXISTS w_transform_um_1; + CREATE TEMP TABLE w_transform_um_1 AS + SELECT p_mouvements_sejour.no_sejour, + lieu_id, + MAX(t_unites_medicales.code || '-' || first_unite_medicale_code) AS new_unite_medicale_code, + MAX(t_unites_medicales.texte || '-' || first_unite_medicale_texte) AS new_unite_medicale_texte, + MAX(service_facturation_id) AS service_facturation_id, + MAX(activite_id) AS activite_id, + MAX(lit_id) AS lit_id, + MAX(unite_medicale_id) AS unite_medicale_id, + MAX(unite_fonctionnelle_id) AS unite_fonctionnelle_id, + 0::bigint AS new_unite_medicale_id, + 0::bigint AS new_lieu_id + FROM activite.p_mouvements_sejour + JOIN w_transform_um_0 ON w_transform_um_0.no_sejour = p_mouvements_sejour.no_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_unites_medicales ON unite_medicale_id = t_unites_medicales.oid + WHERE type_eclatement = '1' + GROUP BY 1,2; + + RAISE NOTICE '%' , 'Ventilation premiere um. Nouvelles um'; + INSERT INTO activite.t_unites_medicales(code_original, code, texte, texte_court) + SELECT '*'||new_unite_medicale_code, new_unite_medicale_code, new_unite_medicale_texte, new_unite_medicale_texte + FROM w_transform_um_1 + WHERE ('*'||new_unite_medicale_code) NOT IN (SELECT code_original FROM activite.t_unites_medicales) + GROUP BY 1,2,3,4 + ORDER BY 1; + UPDATE w_transform_um_1 + SET new_unite_medicale_id = t_unites_medicales.oid + FROM activite.t_unites_medicales + WHERE ('*'||new_unite_medicale_code) = code_original; + + INSERT INTO activite.t_lieux + ( + oid, + code_original_1, + code_original_2, + code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + service_facturation_id, + activite_id, + lit_id, + unite_medicale_id, + unite_fonctionnelle_id, + mode_traitement_id + ) + SELECT + nextval('activite.s_lieux'::regclass) AS oid, + subview.* + FROM + ( + SELECT t_lieux.code_original_1, + t_lieux.code_original_2, + t_lieux.code_original_3, + t_lieux.code_original_4, + ('*'||new_unite_medicale_code) AS code_original_5, + t_lieux.code_original_6, + t_lieux.code_original_7, + t_lieux.service_facturation_id, + t_lieux.activite_id, + t_lieux.lit_id, + new_unite_medicale_id AS unite_medicale_id, + t_lieux.unite_fonctionnelle_id, + t_lieux.mode_traitement_id + FROM activite.t_lieux + JOIN w_transform_um_1 ON t_lieux.oid = w_transform_um_1.lieu_id + LEFT JOIN activite.t_lieux t_lieux_deja ON + t_lieux.service_facturation_id = t_lieux_deja.service_facturation_id AND + t_lieux.activite_id = t_lieux_deja.activite_id AND + t_lieux.lit_id = t_lieux_deja.lit_id AND + t_lieux.unite_fonctionnelle_id = t_lieux_deja.unite_fonctionnelle_id AND + new_unite_medicale_id = t_lieux_deja.unite_medicale_id + WHERE t_lieux_deja.oid IS NULL + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13 + ) subview; + UPDATE w_transform_um_1 + SET new_lieu_id = t_lieux.oid + FROM activite.t_lieux + WHERE t_lieux.service_facturation_id = w_transform_um_1.service_facturation_id AND + t_lieux.activite_id = w_transform_um_1.activite_id AND + t_lieux.lit_id = w_transform_um_1.lit_id AND + t_lieux.unite_fonctionnelle_id = w_transform_um_1.unite_fonctionnelle_id AND + t_lieux.unite_medicale_id = w_transform_um_1.new_unite_medicale_id; + RAISE NOTICE '%' , 'Ventilation premiere um. Modification sejours'; + UPDATE activite.p_mouvements_sejour + SET lieu_id = new_lieu_id + FROM w_transform_um_1 + WHERE w_transform_um_1.no_sejour = p_mouvements_sejour.no_sejour AND + w_transform_um_1.lieu_id = p_mouvements_sejour.lieu_id; + UPDATE activite.p_sejours + SET lieu_sortie_id = new_lieu_id + FROM w_transform_um_1 + WHERE w_transform_um_1.no_sejour = p_sejours.no_sejour AND + w_transform_um_1.lieu_id = p_sejours.lieu_sortie_id; + UPDATE activite.p_factures_lignes_c + SET lieu_id = new_lieu_id + FROM w_transform_um_1 + JOIN activite.p_factures on p_factures.no_sejour = w_transform_um_1.no_sejour + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + w_transform_um_1.lieu_id = p_factures_lignes_c.lieu_id; + UPDATE activite.p_factures_lignes_h + SET lieu_id = new_lieu_id + FROM w_transform_um_1 + JOIN activite.p_factures on p_factures.no_sejour = w_transform_um_1.no_sejour + WHERE p_factures_lignes_h.no_facture = p_factures.no_facture AND + w_transform_um_1.lieu_id = p_factures_lignes_h.lieu_id; + END IF; + END IF; + -- Eclatement à la spécialité médecin (cas des externes) + IF EXISTS (SELECT * FROM activite.t_unites_medicales WHERE type_eclatement = '2') THEN + RAISE NOTICE '%' , 'Ventilation Specialite. Recherche sejours'; + DROP TABLE IF EXISTS w_transform_um_2; + CREATE TEMP TABLE w_transform_um_2 AS + SELECT no_sejour, + lieu_id, + MAX(specialite_code) AS specialite_code, + MAX(replace(t_unites_medicales.code,'-MONO','') || '-' || replace(specialite_code,'.','')) AS new_unite_medicale_code, + MAX(replace(t_unites_medicales.texte,'-MonoRUM','') || '-' || specialite_texte) AS new_unite_medicale_texte, + MAX(service_facturation_id) AS service_facturation_id, + MAX(activite_id) AS activite_id, + MAX(lit_id) AS lit_id, + MAX(unite_medicale_id) AS unite_medicale_id, + MAX(unite_fonctionnelle_id) AS unite_fonctionnelle_id, + 0::bigint AS new_unite_medicale_id, + 0::bigint AS new_lieu_id + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux ON lieu_id = t_lieux.oid + JOIN activite.t_unites_medicales ON unite_medicale_id = t_unites_medicales.oid + JOIN activite.t_medecins_administratifs_c ON medecin_sejour_id = t_medecins_administratifs_c.oid + WHERE type_eclatement = '2' AND specialite_id <> 0 + GROUP BY 1,2; + -- Au moins un séjour concerné + IF EXISTS (SELECT * FROM w_transform_um_2) THEN + RAISE NOTICE '%' , 'Ventilation Specialite. Nouvelles um'; + INSERT INTO activite.t_unites_medicales(code_original, code, texte, texte_court) + SELECT '*'||new_unite_medicale_code, new_unite_medicale_code, new_unite_medicale_texte, new_unite_medicale_texte + FROM w_transform_um_2 + WHERE ('*'||new_unite_medicale_code) NOT IN (SELECT code_original FROM activite.t_unites_medicales) + GROUP BY 1,2,3,4 + ORDER BY 1; + UPDATE w_transform_um_2 + SET new_unite_medicale_id = t_unites_medicales.oid + FROM activite.t_unites_medicales + WHERE ('*'||new_unite_medicale_code) = code_original; + INSERT INTO activite.t_lieux + ( + oid, + code_original_1, + code_original_2, + code_original_3, + code_original_4, + code_original_5, + code_original_6, + code_original_7, + service_facturation_id, + activite_id, + lit_id, + unite_medicale_id, + unite_fonctionnelle_id, + mode_traitement_id + ) + SELECT + nextval('activite.s_lieux'::regclass) AS oid, + subview.* + FROM + ( + SELECT t_lieux.code_original_1, + t_lieux.code_original_2, + t_lieux.code_original_3, + t_lieux.code_original_4, + ('*'||new_unite_medicale_code) AS code_original_5, + t_lieux.code_original_6, + t_lieux.code_original_7, + t_lieux.service_facturation_id, + t_lieux.activite_id, + t_lieux.lit_id, + new_unite_medicale_id AS unite_medicale_id, + t_lieux.unite_fonctionnelle_id, + t_lieux.mode_traitement_id + FROM activite.t_lieux + JOIN w_transform_um_2 ON t_lieux.oid = w_transform_um_2.lieu_id + LEFT JOIN activite.t_lieux t_lieux_deja ON + t_lieux.service_facturation_id = t_lieux_deja.service_facturation_id AND + t_lieux.activite_id = t_lieux_deja.activite_id AND + t_lieux.lit_id = t_lieux_deja.lit_id AND + t_lieux.unite_fonctionnelle_id = t_lieux_deja.unite_fonctionnelle_id AND + new_unite_medicale_id = t_lieux_deja.unite_medicale_id + WHERE t_lieux_deja.oid IS NULL + GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13 + ) subview; + UPDATE w_transform_um_2 + SET new_lieu_id = t_lieux.oid + FROM activite.t_lieux + WHERE t_lieux.service_facturation_id = w_transform_um_2.service_facturation_id AND + t_lieux.activite_id = w_transform_um_2.activite_id AND + t_lieux.lit_id = w_transform_um_2.lit_id AND + t_lieux.unite_fonctionnelle_id = w_transform_um_2.unite_fonctionnelle_id AND + t_lieux.unite_medicale_id = w_transform_um_2.new_unite_medicale_id; + RAISE NOTICE '%' , 'Ventilation Specialite. Modification séjours'; + UPDATE activite.p_mouvements_sejour + SET lieu_id = new_lieu_id + FROM w_transform_um_2 + WHERE w_transform_um_2.no_sejour = p_mouvements_sejour.no_sejour AND + w_transform_um_2.lieu_id = p_mouvements_sejour.lieu_id; + UPDATE activite.p_sejours + SET lieu_sortie_id = new_lieu_id + FROM w_transform_um_2 + WHERE w_transform_um_2.no_sejour = p_sejours.no_sejour AND + w_transform_um_2.lieu_id = p_sejours.lieu_sortie_id; + UPDATE activite.p_factures_lignes_c + SET lieu_id = new_lieu_id + FROM w_transform_um_2 + JOIN activite.p_factures on p_factures.no_sejour = w_transform_um_2.no_sejour + WHERE p_factures_lignes_c.no_facture = p_factures.no_facture AND + w_transform_um_2.lieu_id = p_factures_lignes_c.lieu_id; + UPDATE activite.p_factures_lignes_h + SET lieu_id = new_lieu_id + FROM w_transform_um_2 + JOIN activite.p_factures on p_factures.no_sejour = w_transform_um_2.no_sejour + WHERE p_factures_lignes_h.no_facture = p_factures.no_facture AND + w_transform_um_2.lieu_id = p_factures_lignes_h.lieu_id; + END IF; + END IF; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_update_schema_classes~tx.yaml b/db/schema2/functions/cti_update_schema_classes~tx.yaml new file mode 100644 index 0000000..9267666 --- /dev/null +++ b/db/schema2/functions/cti_update_schema_classes~tx.yaml @@ -0,0 +1,311 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_table_code +src: | + DECLARE + result TEXT; + BEGIN + + -- Si public, réplication des classes de prestations PMSI + IF (i_table_code = 'PRESTA_C' OR i_table_code = '*ALL') THEN + IF EXISTS (SELECT * FROM pg_tables WHERE schemaname = 'pmsi' AND tablename = 't_classes') THEN + IF EXISTS (SELECT * FROM activite.p_sejours WHERE est_budget_global = '1' LIMIT 1) THEN + UPDATE activite.t_classes + SET code = 'CTI_RAFA_P' + WHERE code LIKE 'CTI\_RAFA\_P%' AND + code <> 'CTI_RAFA_P' + ; + + DROP TABLE IF EXISTS w_classes_pmsi + ; + CREATE TEMP TABLE w_classes_pmsi AS + SELECT + t_listes_tables.oid AS table_id, + 0::bigint AS classe_id, + t_classes.code AS classe_code, + t_classes.texte AS classe_texte, + 0::bigint AS section_id, + t_classes_sections.code AS section_code, + t_classes_sections.texte AS section_texte, + t_prestations.code::text AS prestation_code, + t_prestations_activite.oid AS prestation_id + FROM pmsi.t_classes + JOIN pmsi.t_classes_sections ON classe_id = t_classes.oid + JOIN pmsi.t_classes_sections_elements ON section_id = t_classes_sections.oid + JOIN pmsi.t_prestations ON to_id = t_prestations.oid + JOIN activite.t_prestations t_prestations_activite ON t_prestations_activite.code = t_prestations.code + JOIN activite.t_listes_tables ON t_listes_tables.code = 'PRESTA_C' + WHERE t_classes.code IN ('CTI_RAFA_P','CTI_ARRETEVERS') + ; + + INSERT INTO activite.t_classes( + code, + texte, + table_id, + is_cti, + sequence, + contenu_by_code, + contenu_non_replicable_ailleurs + ) + SELECT w_classes_pmsi.classe_code, + w_classes_pmsi.classe_texte, + w_classes_pmsi.table_id, + '1'::text AS is_cti, + (SELECT MAX(t_classes.sequence) FROM activite.t_classes WHERE t_classes.table_id = w_classes_pmsi.table_id AND t_classes.sequence < 30) + row_number() OVER (ORDER BY w_classes_pmsi.classe_code) , + '0'::text AS contenu_by_code, + '0'::text AS contenu_non_replicable_ailleurs + FROM w_classes_pmsi + LEFT JOIN activite.t_classes ON + w_classes_pmsi.classe_code = t_classes.code AND + w_classes_pmsi.table_id = t_classes.table_id + WHERE t_classes.oid IS NULL + GROUP BY 1,2,3 + ; + + UPDATE w_classes_pmsi + SET classe_id = t_classes.oid + FROM activite.t_classes + WHERE t_classes.code = classe_code AND + t_classes.table_id = w_classes_pmsi.table_id + ; + + INSERT INTO w_classes_pmsi + SELECT + t_classes.table_id, + t_classes.oid AS classe_id, + t_classes.code AS classe_code, + t_classes.texte AS classe_texte, + 0::bigint AS section_id, + '99'::text AS section_code, + 'Autres prestations'::text AS section_texte, + t_prestations.code AS prestation_code, + t_prestations.oid AS prestation_id + FROM activite.t_prestations + JOIN activite.t_classes ON t_classes.oid IN (SELECT classe_id FROM w_classes_pmsi) + LEFT JOIn w_classes_pmsi ON + w_classes_pmsi.classe_id = t_classes.oid AND + w_classes_pmsi.prestation_id = t_prestations.oid + WHERE w_classes_pmsi.prestation_id IS NULL + ; + + INSERT INTO activite.t_classes_sections( + code, + texte, + classe_id, + condition, + include_code, + exclude_code + ) + SELECT + w_classes_pmsi.section_code, + w_classes_pmsi.section_texte, + w_classes_pmsi.classe_id, + ''::text AS condition, + ''::text AS include_code, + ''::text AS exclude_code + FROM w_classes_pmsi + LEFT JOIN activite.t_classes_sections ON + t_classes_sections.classe_id = w_classes_pmsi.classe_id AND + t_classes_sections.code = w_classes_pmsi.section_code + WHERE w_classes_pmsi.classe_id <> 0 AND + t_classes_sections IS NULL + GROUP BY 1,2,3 + ORDER BY 1 + ; + + UPDATE w_classes_pmsi + SET section_id = t_classes_sections.oid + FROM activite.t_classes_sections + WHERE t_classes_sections.classe_id = w_classes_pmsi.classe_id AND + t_classes_sections.code = w_classes_pmsi.section_code + ; + + DELETE + FROM activite.t_classes_sections + USING activite.t_classes + WHERE classe_id = t_classes.oid AND + t_classes.oid IN (SELECT classe_id FROM w_classes_pmsi) AND + t_classes.oid::text||'-'||t_classes_sections.oid::text NOT IN (SELECT classe_id::text||'-'||section_id::text FROm w_classes_pmsi) + ; + + UPDATE activite.t_classes_sections + SET texte = section_texte + FROM w_classes_pmsi + WHERE t_classes_sections.oid = section_id AND + t_classes_sections.texte IS DISTINCT FROM section_texte + ; + + DELETE FROM activite.t_classes_sections_elements + USING + ( + SELECT t_classes_sections_elements.section_id, to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON section_id = t_classes_sections.oid + JOIN w_classes_pmsi ON + t_classes_sections.classe_id = w_classes_pmsi.classe_id AND + t_classes_sections_elements.to_id = w_classes_pmsi.prestation_id AND + t_classes_sections.oid <> w_classes_pmsi.section_id + GROUP BY 1,2 + ) subview + WHERE t_classes_sections_elements.section_id = subview.section_id AND + t_classes_sections_elements.to_id = subview.to_id + ; + + INSERT INTO activite.t_classes_sections_elements ( + section_id, + to_id + ) + SELECT section_id, prestation_id AS to_id + FROM w_classes_pmsi + LEFT JOIN + ( + SELECT classe_id, to_id + FROM activite.t_classes_sections_elements + JOIN activite.t_classes_sections ON section_id = t_classes_sections.oid + GROUP BY 1,2 + ) subview ON w_classes_pmsi.classe_id = subview.classe_id AND + w_classes_pmsi.prestation_id = subview.to_id + WHERE w_classes_pmsi.classe_id <> 0 + AND w_classes_pmsi.section_id <> 0 AND + subview.to_id IS NULL + GROUP BY 1,2 + ; + + DELETE + FROM activite.t_classes_sections + USING activite.t_classes + WHERE classe_id = t_classes.oid AND + t_classes.oid IN (SELECT classe_id FROM w_classes_pmsi) AND + t_classes.oid::text||'-'||t_classes_sections.oid::text NOT IN (SELECT classe_id::text||'-'||section_id::text FROm w_classes_pmsi) + ; + + END IF; + END IF; + END IF; + + -- Si Toutes les tables, mettre à jour oid par codes + IF (i_table_code = '*ALL') THEN + PERFORM base.cti_initialize_classes_by_code('activite'); + PERFORM base.cti_initialize_listes_by_code('activite'); + END IF; + + IF (i_table_code = 'SERVICE_F' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'SERVICE_F','service_facturation_section'); + END IF; + IF (i_table_code = 'SERVICE_F' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_services_facturation', 'SERVICE_F',''); + END IF; + IF (i_table_code = 'ETAGE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'ETAGE','etage_section'); + END IF; + IF (i_table_code = 'ETAGE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_etages', 'ETAGE',''); + END IF; + IF (i_table_code = 'LIT' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_lits', 'LIT',''); + END IF; + IF (i_table_code = 'LIT' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'LIT','lit_section'); + END IF; + IF (i_table_code = 'UM' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_unites_medicales', 'UM',''); + END IF; + IF (i_table_code = 'UM' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'UM','unite_medicale_section'); + END IF; + IF (i_table_code = 'UF' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'UF','unite_fonctionnelle_section'); + END IF; + IF (i_table_code = 'UF' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_unites_fonctionnelles', 'UF',''); + END IF; + IF (i_table_code = 'MEDECIN' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_medecins_administratifs_c', 'MEDECIN',''); + END IF; + IF (i_table_code = 'PRESTA_C' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_prestations', 'PRESTA_C',''); + END IF; + IF (i_table_code = 'RUBRIQUE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_rubriques_facturation', 'RUBRIQUE',''); + END IF; + IF (i_table_code = 'TIERSP' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_tiers_payant', 'TIERSP',''); + END IF; + IF (i_table_code = 'FINESS' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('base', 't_finess', 'FINESS',''); + UPDATE activite.t_finess_c SET + section_id = t_finess.section_id, + section_code = t_finess.section_code, + section_texte = t_finess.section_texte + FROM base.t_finess + WHERE t_finess.oid = t_finess_c.oid AND + ( + t_finess_c.section_id IS DISTINCT FROM t_finess.section_id OR + t_finess_c.section_code IS DISTINCT FROM t_finess.section_code OR + t_finess_c.section_texte IS DISTINCT FROM t_finess.section_texte + ) + ; + END IF; + IF (i_table_code = 'ACTE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_actes_c', 'ACTE',''); + END IF; + IF (i_table_code = 'GHM' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_ghm_c', 'GHM','ghm_section'); + END IF; + IF (i_table_code = 'GME' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_gme_c', 'GME','gme_section'); + END IF; + IF (i_table_code = 'GHMGME' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_ghmgme_c', 'GHMGME','ghmgme_section'); + END IF; + IF (i_table_code = 'COMPTE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_compte', 'COMPTE', ''); + END IF; + IF (i_table_code = 'DURSEJ' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_durees_sejour_c', 'DURSEJ',''); + END IF; + IF (i_table_code = 'AGE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_ages_c', 'AGE',''); + END IF; + IF (i_table_code = 'CODEPOST' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_codes_postaux_c', 'CODEPOST',''); + END IF; + IF (i_table_code = 'REJETNOEMI' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_rejets_noemie', 'REJETNOEMI',''); + END IF; + IF (i_table_code = 'BUDGETCLE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_budget_cle', 'BUDGETCLE',''); + END IF; + IF (i_table_code = 'FORMEACTIVITE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_forme_activite', 'FORMEACTIVITE',''); + END IF; + IF (i_table_code = 'ETATSEJOUR' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_etat_sejour', 'ETATSEJOUR',''); + END IF; + IF (i_table_code = 'ACTIVITE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_activites', 'ACTIVITE',''); + END IF; + IF (i_table_code = 'ACTIVITE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('activite', 't_lieux_c', 'ACTIVITE','activite_section'); + END IF; + IF (i_table_code = 'POLE' OR i_table_code = '*ALL') THEN + PERFORM base.cti_update_classes('base', 't_pole', 'POLE',''); + UPDATE activite.t_pole SET + section_id = t_pole.section_id, + section_code = t_pole.section_code, + section_texte = t_pole.section_texte + FROM base.t_pole as t_pole_base + WHERE t_pole.oid = t_pole_base.oid AND + ( + t_pole.section_id IS DISTINCT FROM t_pole_base.section_id OR + t_pole.section_code IS DISTINCT FROM t_pole_base.section_code OR + t_pole.section_texte IS DISTINCT FROM t_pole_base.section_texte + ) + ; + END IF; + + RETURN 'OK'; + END; \ No newline at end of file diff --git a/db/schema2/functions/cti_ventilation_lignes~tx.yaml b/db/schema2/functions/cti_ventilation_lignes~tx.yaml new file mode 100644 index 0000000..993ac7b --- /dev/null +++ b/db/schema2/functions/cti_ventilation_lignes~tx.yaml @@ -0,0 +1,373 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_table +src: | + DECLARE + _taux_int1 numeric(5,2); + _taux_int0 numeric(5,2); + _sqlcmd text; + BEGIN + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur2) + SELECT + 'VENTGHS', + 'Ventilation GHS', + '0', + '0=Prix moyen par jour, 1=Poids donné au jour de l''intervention', + '' + WHERE 'VENTGHS' NOT IN (SELECT code FROM activite.t_divers); + INSERT INTO activite.t_divers (code, texte, valeur, description, valeur2) + SELECT + 'VENTGHSPINT', + 'Ventilation GHS. Poids jour intervention', + '000', + 'Pourcentage', + '' + WHERE 'VENTGHSPINT' NOT IN (SELECT code FROM activite.t_divers); + -- Spécialite selon specialite pmsi + IF NOT EXISTS (SELECT * FROM activite.t_divers WHERE code = 'VENTGHS' AND valeur = '1') THEN + return 'Pas de ventilation à faire'; + END IF; + IF NOT EXISTS (SELECT * FROM activite.t_divers WHERE code = 'VENTGHSPINT') THEN + return 'Pas de taux paramétré'; + END IF; + _taux_int1 = base.cti_to_number((SELECT valeur FROM activite.t_divers WHERE code = 'VENTGHSPINT')) / 100.00; + IF _taux_int1 <= 0 THEN + return 'Pas de taux paramétré'; + END IF; + IF _taux_int1 > 1 THEN + return 'Taux incorrect'; + END IF; + _taux_int0 = 1 - _taux_int1; + + _sqlcmd = ' + DROP TABLE IF EXISTS w_ventilation_inter'; + + EXECUTE _sqlcmd; + IF (i_table NOT LIKE '%encours%') THEN + _sqlcmd = ' + CREATE TEMP TABLE w_ventilation_inter AS + SELECT + p_factures.sejour_id, + p_factures_lignes_c.no_facture, + p_factures_lignes_c.date_debut, + p_factures_lignes_c.nb_prestation, + montant_facture, + montant_facture_0, + montant_facture_1, + montant_facture_2, + montant_facture_22, + montant_comptabilise, + montant_comptabilise_0, + montant_comptabilise_1, + montant_comptabilise_2, + montant_comptabilise_22, + montant_encours, + montant_encours_0, + montant_encours_1, + montant_encours_2, + montant_encours_22, + ''0''::text AS est_date_intervention, + p_factures_lignes_c.CTID AS from_ctid + FROM activite.p_factures_lignes_c p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture AND p_factures.date_fin > p_factures.date_debut + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND t_prestations.code = ''GHS'' + WHERE sejour_id IN (SELECT sejour_id FROM activite.p_intervention) + ORDER BY 1,2,3;'; + ELSE + _sqlcmd = ' + CREATE TEMP TABLE w_ventilation_inter AS + SELECT + p_factures.sejour_id, + p_factures_lignes_c.no_facture, + p_factures_lignes_c.date_debut, + p_factures_lignes_c.nb_prestation, + 0::numeric AS montant_facture, + 0::numeric AS montant_facture_0, + 0::numeric AS montant_facture_1, + 0::numeric AS montant_facture_2, + 0::numeric AS montant_facture_22, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + montant_encours, + montant_encours_0, + montant_encours_1, + montant_encours_2, + montant_encours_22, + ''0''::text AS est_date_intervention, + p_factures_lignes_c.CTID AS from_ctid + FROM activite.p_factures_lignes_c p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture AND p_factures.date_fin > p_factures.date_debut + JOIN activite.t_prestations ON prestation_id = t_prestations.oid AND t_prestations.code = ''GHS'' + WHERE sejour_id IN (SELECT sejour_id FROM activite.p_intervention) + ORDER BY 1,2,3;'; + END IF; + + _sqlcmd = replace(_sqlcmd,'activite.p_factures_lignes_c',i_table); + EXECUTE _sqlcmd; + _sqlcmd = ' + CREATE INDEX w_ventilation_inter_i1 ON w_ventilation_inter USING btree (sejour_id);'; + + EXECUTE _sqlcmd; + + _sqlcmd = ' + UPDATE w_ventilation_inter + SET est_date_intervention = ''1'' + FROM activite.p_intervention + WHERE p_intervention.sejour_id = w_ventilation_inter.sejour_id AND + p_intervention.date_debut = w_ventilation_inter.date_debut;'; + + EXECUTE _sqlcmd; + _sqlcmd = ' + DROP TABLE IF EXISTS w_ventilation_total_inter;'; + + EXECUTE _sqlcmd; + + _sqlcmd = ' + CREATE TEMP TABLE w_ventilation_total_inter AS + SELECT no_facture, + MAX(CASE WHEN est_date_intervention = ''0'' AND nb_prestation <> 0 THEN from_ctid ELSE NULL END) AS last_ctid, + MAX(CASE WHEN est_date_intervention = ''0'' THEN from_ctid ELSE NULL END) AS last_ctid_2, + count(*) AS nb, + SUM(CASE WHEN est_date_intervention = ''0'' THEN 1 ELSE 0 END) AS nb_int0, + SUM(CASE WHEN est_date_intervention = ''1'' THEN 1 ELSE 0 END) AS nb_int1, + SUM(montant_facture) AS total_facture, + SUM(montant_facture_0) AS total_facture_0, + SUM(montant_facture_1) AS total_facture_1, + SUM(montant_facture_2) AS total_facture_2, + SUM(montant_facture_22) AS total_facture_22, + SUM(montant_comptabilise) AS total_comptabilise, + SUM(montant_comptabilise_0) AS total_comptabilise_0, + SUM(montant_comptabilise_1) AS total_comptabilise_1, + SUM(montant_comptabilise_2) AS total_comptabilise_2, + SUM(montant_comptabilise_22) AS total_comptabilise_22, + SUM(montant_encours) AS total_encours, + SUM(montant_encours_0) AS total_encours_0, + SUM(montant_encours_1) AS total_encours_1, + SUM(montant_encours_2) AS total_encours_2, + SUM(montant_encours_22) AS total_encours_22, + 0::numeric(15,2) AS montant_facture_int0, + 0::numeric(15,2) AS montant_facture_int0_last, + 0::numeric(15,2) AS montant_facture_int1, + 0::numeric(15,2) AS montant_facture_0_int0, + 0::numeric(15,2) AS montant_facture_0_int0_last, + 0::numeric(15,2) AS montant_facture_0_int1, + 0::numeric(15,2) AS montant_facture_1_int0, + 0::numeric(15,2) AS montant_facture_1_int0_last, + 0::numeric(15,2) AS montant_facture_1_int1, + 0::numeric(15,2) AS montant_facture_2_int0, + 0::numeric(15,2) AS montant_facture_2_int0_last, + 0::numeric(15,2) AS montant_facture_2_int1, + 0::numeric(15,2) AS montant_facture_22_int0, + 0::numeric(15,2) AS montant_facture_22_int0_last, + 0::numeric(15,2) AS montant_facture_22_int1, + 0::numeric(15,2) AS montant_comptabilise_int0, + 0::numeric(15,2) AS montant_comptabilise_int0_last, + 0::numeric(15,2) AS montant_comptabilise_int1, + 0::numeric(15,2) AS montant_comptabilise_0_int0, + 0::numeric(15,2) AS montant_comptabilise_0_int0_last, + 0::numeric(15,2) AS montant_comptabilise_0_int1, + 0::numeric(15,2) AS montant_comptabilise_1_int0, + 0::numeric(15,2) AS montant_comptabilise_1_int0_last, + 0::numeric(15,2) AS montant_comptabilise_1_int1, + 0::numeric(15,2) AS montant_comptabilise_2_int0, + 0::numeric(15,2) AS montant_comptabilise_2_int0_last, + 0::numeric(15,2) AS montant_comptabilise_2_int1, + 0::numeric(15,2) AS montant_comptabilise_22_int0, + 0::numeric(15,2) AS montant_comptabilise_22_int0_last, + 0::numeric(15,2) AS montant_comptabilise_22_int1, + 0::numeric(15,2) AS montant_encours_int0, + 0::numeric(15,2) AS montant_encours_int0_last, + 0::numeric(15,2) AS montant_encours_int1, + 0::numeric(15,2) AS montant_encours_0_int0, + 0::numeric(15,2) AS montant_encours_0_int0_last, + 0::numeric(15,2) AS montant_encours_0_int1, + 0::numeric(15,2) AS montant_encours_1_int0, + 0::numeric(15,2) AS montant_encours_1_int0_last, + 0::numeric(15,2) AS montant_encours_1_int1, + 0::numeric(15,2) AS montant_encours_2_int0, + 0::numeric(15,2) AS montant_encours_2_int0_last, + 0::numeric(15,2) AS montant_encours_2_int1, + 0::numeric(15,2) AS montant_encours_22_int0, + 0::numeric(15,2) AS montant_encours_22_int0_last, + 0::numeric(15,2) AS montant_encours_22_int1 + FROM w_ventilation_inter + GROUP BY 1 + having count(*) > 1 AND + SUM(CASE WHEN est_date_intervention = ''1'' THEN 1 ELSE 0 END) > 0 AND + SUM(CASE WHEN est_date_intervention = ''0'' THEN 1 ELSE 0 END) > 0 AND + SUM(CASE WHEN nb_prestation <> 0 THEN 1 ELSE 0 END) = 1 + ORDER BY 1;'; + + EXECUTE _sqlcmd; + + _sqlcmd = ' + UPDATE w_ventilation_total_inter SET + last_ctid = last_ctid_2 + WHERE last_ctid IS NULL;'; + + EXECUTE _sqlcmd; + + _sqlcmd = ' + UPDATE w_ventilation_total_inter SET + montant_facture_int0 = round(total_facture * (0.4) / nb,2), + montant_facture_int1 = round(total_facture * (0.6) / nb_int1,2), + montant_facture_0_int0 = round(total_facture_0 * (0.4) / nb,2), + montant_facture_0_int1 = round(total_facture_0 * (0.6) / nb_int1,2), + montant_facture_1_int0 = round(total_facture_1 * (0.4) / nb,2), + montant_facture_1_int1 = round(total_facture_1 * (0.6) / nb_int1,2), + montant_facture_2_int0 = round(total_facture_2 * (0.4) / nb,2), + montant_facture_2_int1 = round(total_facture_2 * (0.6) / nb_int1,2), + montant_facture_22_int0 = round(total_facture_22 * (0.4) / nb,2), + montant_facture_22_int1 = round(total_facture_22 * (0.6) / nb_int1,2), + + montant_comptabilise_int0 = round(total_comptabilise * (0.4) / nb,2), + montant_comptabilise_int1 = round(total_comptabilise * (0.6) / nb_int1,2), + montant_comptabilise_0_int0 = round(total_comptabilise_0 * (0.4) / nb,2), + montant_comptabilise_0_int1 = round(total_comptabilise_0 * (0.6) / nb_int1,2), + montant_comptabilise_1_int0 = round(total_comptabilise_1 * (0.4) / nb,2), + montant_comptabilise_1_int1 = round(total_comptabilise_1 * (0.6) / nb_int1,2), + montant_comptabilise_2_int0 = round(total_comptabilise_2 * (0.4) / nb,2), + montant_comptabilise_2_int1 = round(total_comptabilise_2 * (0.6) / nb_int1,2), + montant_comptabilise_22_int0 = round(total_comptabilise_22 * (0.4) / nb,2), + montant_comptabilise_22_int1 = round(total_comptabilise_22 * (0.6) / nb_int1,2), + + montant_encours_int0 = round(total_encours * (0.4) / nb,2), + montant_encours_int1 = round(total_encours * (0.6) / nb_int1,2), + montant_encours_0_int0 = round(total_encours_0 * (0.4) / nb,2), + montant_encours_0_int1 = round(total_encours_0 * (0.6) / nb_int1,2), + montant_encours_1_int0 = round(total_encours_1 * (0.4) / nb,2), + montant_encours_1_int1 = round(total_encours_1 * (0.6) / nb_int1,2), + montant_encours_2_int0 = round(total_encours_2 * (0.4) / nb,2), + montant_encours_2_int1 = round(total_encours_2 * (0.6) / nb_int1,2), + montant_encours_22_int0 = round(total_encours_22 * (0.4) / nb,2), + montant_encours_22_int1 = round(total_encours_22 * (0.6) / nb_int1,2) + ;'; + + _sqlcmd = replace(_sqlcmd,'(0.6)',_taux_int1); + _sqlcmd = replace(_sqlcmd,'(0.4)',_taux_int0); + EXECUTE _sqlcmd; + + _sqlcmd = ' + UPDATE w_ventilation_total_inter SET + montant_facture_int0_last = total_facture - ((nb-1) * montant_facture_int0) - (nb_int1 * montant_facture_int1), + montant_facture_0_int0_last = total_facture_0 - ((nb-1) * montant_facture_0_int0) - (nb_int1 * montant_facture_0_int1), + montant_facture_1_int0_last = total_facture_1 - ((nb-1) * montant_facture_1_int0) - (nb_int1 * montant_facture_1_int1), + montant_facture_2_int0_last = total_facture_2 - ((nb-1) * montant_facture_2_int0) - (nb_int1 * montant_facture_2_int1), + montant_facture_22_int0_last = total_facture_22 - ((nb-1) * montant_facture_22_int0) - (nb_int1 * montant_facture_22_int1), + montant_comptabilise_int0_last = total_comptabilise - ((nb-1) * montant_comptabilise_int0) - (nb_int1 * montant_comptabilise_int1), + montant_comptabilise_0_int0_last = total_comptabilise_0 - ((nb-1) * montant_comptabilise_0_int0) - (nb_int1 * montant_comptabilise_0_int1), + montant_comptabilise_1_int0_last = total_comptabilise_1 - ((nb-1) * montant_comptabilise_1_int0) - (nb_int1 * montant_comptabilise_1_int1), + montant_comptabilise_2_int0_last = total_comptabilise_2 - ((nb-1) * montant_comptabilise_2_int0) - (nb_int1 * montant_comptabilise_2_int1), + montant_comptabilise_22_int0_last = total_comptabilise_22 - ((nb-1) * montant_comptabilise_22_int0) - (nb_int1 * montant_comptabilise_22_int1), + montant_encours_int0_last = total_encours - ((nb-1) * montant_encours_int0) - (nb_int1 * montant_encours_int1), + montant_encours_0_int0_last = total_encours_0 - ((nb-1) * montant_encours_0_int0) - (nb_int1 * montant_encours_0_int1), + montant_encours_1_int0_last = total_encours_1 - ((nb-1) * montant_encours_1_int0) - (nb_int1 * montant_encours_1_int1), + montant_encours_2_int0_last = total_encours_2 - ((nb-1) * montant_encours_2_int0) - (nb_int1 * montant_encours_2_int1), + montant_encours_22_int0_last = total_encours_22 - ((nb-1) * montant_encours_22_int0) - (nb_int1 * montant_encours_22_int1), + montant_facture_int1 = montant_facture_int0 + montant_facture_int1, + montant_facture_0_int1 = montant_facture_0_int0 + montant_facture_0_int1, + montant_facture_1_int1 = montant_facture_1_int0 + montant_facture_1_int1, + montant_facture_2_int1 = montant_facture_2_int0 + montant_facture_2_int1, + montant_facture_22_int1 = montant_facture_22_int0 + montant_facture_22_int1, + montant_comptabilise_int1 = montant_comptabilise_int0 + montant_comptabilise_int1, + montant_comptabilise_0_int1 = montant_comptabilise_0_int0 + montant_comptabilise_0_int1, + montant_comptabilise_1_int1 = montant_comptabilise_1_int0 + montant_comptabilise_1_int1, + montant_comptabilise_2_int1 = montant_comptabilise_2_int0 + montant_comptabilise_2_int1, + montant_comptabilise_22_int1 = montant_comptabilise_22_int0 + montant_comptabilise_22_int1, + montant_encours_int1 = montant_encours_int0 + montant_encours_int1, + montant_encours_0_int1 = montant_encours_0_int0 + montant_encours_0_int1, + montant_encours_1_int1 = montant_encours_1_int0 + montant_encours_1_int1, + montant_encours_2_int1 = montant_encours_2_int0 + montant_encours_2_int1, + montant_encours_22_int1 = montant_encours_22_int0 + montant_encours_22_int1 + ;'; + + EXECUTE _sqlcmd; + + _sqlcmd = ' + CREATE INDEX w_ventilation_total_inter_i1 ON w_ventilation_total_inter USING btree (no_facture);'; + + EXECUTE _sqlcmd; + + IF (i_table NOT LIKE '%encours%') THEN + _sqlcmd = ' + UPDATE activite.p_factures_lignes_c p_factures_lignes_c SET + montant_facture = CASE WHEN est_date_intervention = ''1'' THEN montant_facture_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_int0_last ELSE montant_facture_int0 END, + montant_facture_0 = CASE WHEN est_date_intervention = ''1'' THEN montant_facture_0_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_0_int0_last ELSE montant_facture_0_int0 END, + montant_facture_1 = CASE WHEN est_date_intervention = ''1'' THEN montant_facture_1_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_1_int0_last ELSE montant_facture_1_int0 END, + montant_facture_2 = CASE WHEN est_date_intervention = ''1'' THEN montant_facture_2_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_2_int0_last ELSE montant_facture_2_int0 END, + montant_facture_22 = CASE WHEN est_date_intervention = ''1'' THEN montant_facture_22_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_22_int0_last ELSE montant_facture_22_int0 END, + montant_comptabilise = CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_int0_last ELSE montant_comptabilise_int0 END, + montant_comptabilise_0 = CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_0_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_0_int0_last ELSE montant_comptabilise_0_int0 END, + montant_comptabilise_1 = CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_1_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_1_int0_last ELSE montant_comptabilise_1_int0 END, + montant_comptabilise_2 = CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_2_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_2_int0_last ELSE montant_comptabilise_2_int0 END, + montant_comptabilise_22 = CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_22_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_22_int0_last ELSE montant_comptabilise_22_int0 END, + montant_encours = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_int0_last ELSE montant_encours_int0 END, + montant_encours_0 = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_0_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_0_int0_last ELSE montant_encours_0_int0 END, + montant_encours_1 = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_1_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_1_int0_last ELSE montant_encours_1_int0 END, + montant_encours_2 = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_2_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_2_int0_last ELSE montant_encours_2_int0 END, + montant_encours_22 = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_22_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_22_int0_last ELSE montant_encours_22_int0 END + + FROM w_ventilation_total_inter, w_ventilation_inter + WHERE w_ventilation_inter.from_ctid = p_factures_lignes_c.CTID AND + w_ventilation_total_inter.no_facture = p_factures_lignes_c.no_facture AND + ( + p_factures_lignes_c.montant_facture IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_facture_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_int0_last ELSE montant_facture_int0 END OR + p_factures_lignes_c.montant_facture_0 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_facture_0_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_0_int0_last ELSE montant_facture_0_int0 END OR + p_factures_lignes_c.montant_facture_1 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_facture_1_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_1_int0_last ELSE montant_facture_1_int0 END OR + p_factures_lignes_c.montant_facture_2 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_facture_2_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_2_int0_last ELSE montant_facture_2_int0 END OR + p_factures_lignes_c.montant_facture_22 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_facture_22_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_facture_22_int0_last ELSE montant_facture_22_int0 END OR + p_factures_lignes_c.montant_comptabilise IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_int0_last ELSE montant_comptabilise_int0 END OR + p_factures_lignes_c.montant_comptabilise_0 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_0_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_0_int0_last ELSE montant_comptabilise_0_int0 END OR + p_factures_lignes_c.montant_comptabilise_1 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_1_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_1_int0_last ELSE montant_comptabilise_1_int0 END OR + p_factures_lignes_c.montant_comptabilise_2 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_2_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_2_int0_last ELSE montant_comptabilise_2_int0 END OR + p_factures_lignes_c.montant_comptabilise_22 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_comptabilise_22_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_comptabilise_22_int0_last ELSE montant_comptabilise_22_int0 END OR + p_factures_lignes_c.montant_encours IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_int0_last ELSE montant_encours_int0 END OR + p_factures_lignes_c.montant_encours_0 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_0_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_0_int0_last ELSE montant_encours_0_int0 END OR + p_factures_lignes_c.montant_encours_1 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_1_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_1_int0_last ELSE montant_encours_1_int0 END OR + p_factures_lignes_c.montant_encours_2 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_2_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_2_int0_last ELSE montant_encours_2_int0 END OR + p_factures_lignes_c.montant_encours_22 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_22_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_22_int0_last ELSE montant_encours_22_int0 END + ) + ;'; + ELSE + _sqlcmd = ' + UPDATE activite.p_factures_lignes_c p_factures_lignes_c SET + montant_encours = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_int0_last ELSE montant_encours_int0 END, + montant_encours_0 = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_0_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_0_int0_last ELSE montant_encours_0_int0 END, + montant_encours_1 = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_1_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_1_int0_last ELSE montant_encours_1_int0 END, + montant_encours_2 = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_2_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_2_int0_last ELSE montant_encours_2_int0 END, + montant_encours_22 = CASE WHEN est_date_intervention = ''1'' THEN montant_encours_22_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_22_int0_last ELSE montant_encours_22_int0 END + + FROM w_ventilation_total_inter, w_ventilation_inter + WHERE w_ventilation_inter.from_ctid = p_factures_lignes_c.CTID AND + w_ventilation_total_inter.no_facture = p_factures_lignes_c.no_facture AND + ( + p_factures_lignes_c.montant_encours IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_int0_last ELSE montant_encours_int0 END OR + p_factures_lignes_c.montant_encours_0 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_0_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_0_int0_last ELSE montant_encours_0_int0 END OR + p_factures_lignes_c.montant_encours_1 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_1_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_1_int0_last ELSE montant_encours_1_int0 END OR + p_factures_lignes_c.montant_encours_2 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_2_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_2_int0_last ELSE montant_encours_2_int0 END OR + p_factures_lignes_c.montant_encours_22 IS DISTINCT FROM CASE WHEN est_date_intervention = ''1'' THEN montant_encours_22_int1 WHEN p_factures_lignes_c.CTID = last_ctid THEN montant_encours_22_int0_last ELSE montant_encours_22_int0 END + ) + ;'; + END IF; + + _sqlcmd = replace(_sqlcmd,'activite.p_factures_lignes_c',i_table); + EXECUTE _sqlcmd; + _sqlcmd = ' + DROP TABLE IF EXISTS w_ventilation_inter'; + + + EXECUTE _sqlcmd; + _sqlcmd = ' + DROP TABLE IF EXISTS w_ventilation_total_inter;'; + + EXECUTE _sqlcmd; + + + RETURN 'OK' ; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_montant_fj_valorise_par_sejour~tx.yaml b/db/schema2/functions/get_montant_fj_valorise_par_sejour~tx.yaml new file mode 100644 index 0000000..3d38b92 --- /dev/null +++ b/db/schema2/functions/get_montant_fj_valorise_par_sejour~tx.yaml @@ -0,0 +1,22 @@ +return: integer +lang: plpgsql +parameters: + p0: + type: text + name: _numero_sejour +src: | + DECLARE + _montant_fj integer; + BEGIN + + SELECT SUM(montant_encours) INTO _montant_fj + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures.no_facture = p_factures_lignes_c.no_facture + JOIN activite.t_prestations ON t_prestations.oid = p_factures_lignes_c.prestation_id + WHERE p_factures.no_sejour = _numero_sejour + AND t_prestations.code = 'FJ' + ; + + RETURN _montant_fj + ; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_oids_from_classement~tx,tx,tx,in,in,tx,tx,tx.yaml b/db/schema2/functions/get_oids_from_classement~tx,tx,tx,in,in,tx,tx,tx.yaml new file mode 100644 index 0000000..46b38aa --- /dev/null +++ b/db/schema2/functions/get_oids_from_classement~tx,tx,tx,in,in,tx,tx,tx.yaml @@ -0,0 +1,277 @@ +return: SETOF record +lang: plpgsql +parameters: + p0: + type: text + name: p_v_sejours_x + p1: + type: text + name: p_groupby + p2: + type: text + name: p_onfield + p3: + type: integer + name: p_onmaxpercent + p4: + type: integer + name: p_onmaxnumber + p5: + type: text + name: p_selections_date + p6: + type: text + name: p_selections + p7: + type: text + name: p_selections_context +src: | + DECLARE + oidField TEXT; + oidFieldComplete TEXT; + oidFieldText TEXT; + ch TEXT; + table_name TEXT; + sumField TEXT; + selectCmd TEXT; + selectCmdBase TEXT; + temp_cursor refcursor; + oids_array TEXT; + oids_array_bis TEXT; + oids_array_toapply TEXT; + oids_array_bis_toapply TEXT; + onmaxpercent integer; + onmaxnumber integer; + winteger integer; + select_percent integer; + other_percent integer; + onfield_text TEXT; + rec RECORD; + BEGIN + oidField = ''; + oidFieldComplete = '0'; + oidFieldText = '0'; + FOR i IN 1..length(p_groupby) LOOP + ch = substring(p_groupby,i,1); + IF (ch = ',') THEN + oidFieldComplete = '1'; + IF(oidField = 'v_sejours_1.no_oid') THEN + oidField = ''; + oidFieldComplete = '0'; + oidFieldText = '1'; + END IF; + ELSE + IF (oidFieldComplete = '0') THEN + oidField = oidField || ch; + END IF; + END IF; + END LOOP; + IF(oidField = '') THEN + oidField = 'v_sejours_1.ghs_id'; + END IF; + + sumField = p_onfield; + onfield_text = ''; + if (sumField = 'v_sejours_1.nb_sejours') THEN + onfield_text = 'des séjours'; + END IF; + if (sumField = 'v_mouvements_sejour_2.nb_journees_classement') THEN + onfield_text = 'des journées'; + END IF; + if (sumField = 'v_mouvements_sejour_2.nb_sejours') THEN + onfield_text = 'des séjours'; + END IF; + if (sumField = 'v_factures_lignes_c_4.montant_facture') THEN + onfield_text = 'du C.A.'; + END IF; + if (sumField = 'v_factures_lignes_c_4.nb_sejours') THEN + onfield_text = 'des séjours'; + END IF; + table_name = 'v_sejours_1'; + IF (oidField = 'v_sejours_1.tiers_payant_id') THEN + table_name = 'v_sejours_2'; + END IF; + IF (oidField = 'v_sejours_1.type_tiers_payant_id') THEN + table_name = 'v_sejours_3'; + END IF; + if (sumField = 'v_mouvements_sejour_2.nb_journees_classement') THEN + table_name = 'v_mouvements_sejour_2'; + END IF; + if (sumField = 'v_mouvements_sejour_2.nb_sejours') THEN + table_name = 'v_mouvements_sejour_2'; + END IF; + if (sumField = 'v_factures_lignes_c_4.montant_facture') THEN + table_name = 'v_factures_lignes_c_4'; + END IF; + if (sumField = 'v_factures_lignes_c_4.nb_sejours') THEN + table_name = 'v_factures_lignes_c_4'; + END IF; + + onmaxpercent = 0; + onmaxnumber = 0; + IF(p_onmaxpercent > 0) THEN + onmaxpercent = p_onmaxpercent; + ELSE + IF(p_onmaxnumber > 0) THEN + onmaxnumber = p_onmaxnumber; + END IF; + END IF; + + IF(onmaxpercent = 0 AND onmaxnumber = 0) THEN + onmaxpercent = 100; + END IF; + + IF(onmaxpercent < 100 AND oidfield != '*all') THEN + DROP SEQUENCE IF EXISTS temp_sequence; + CREATE TEMP SEQUENCE temp_sequence; + DROP TABLE IF EXISTS temp_sum_table; + + IF (table_name = 'v_sejours_1') THEN + selectCmdBase = 'SELECT ' || oidField || ' as oid, sum(' || sumField || ') as sum + FROM activite.v_sejours_1 + WHERE ' || p_selections_date || ' ' || p_selections || ' + GROUP BY ' || oidField || ' + ORDER BY sum(' || sumField || ') desc'; + END IF; + IF (table_name = 'v_sejours_2') THEN + selectCmdBase = 'SELECT ' || oidField || ' as oid, sum(' || sumField || ') as sum + FROM activite.v_sejours_2 v_sejours_1 + WHERE ' || p_selections_date || ' ' || p_selections || ' + GROUP BY ' || oidField || ' + ORDER BY sum(' || sumField || ') desc'; + END IF; + IF (table_name = 'v_sejours_3') THEN + selectCmdBase = 'SELECT ' || oidField || ' as oid, sum(' || sumField || ') as sum + FROM activite.v_sejours_3 v_sejours_1 + WHERE ' || p_selections_date || ' ' || p_selections || ' + GROUP BY ' || oidField || ' + ORDER BY sum(' || sumField || ') desc'; + END IF; + IF (table_name = 'v_mouvements_sejour_2') THEN + if (sumField = 'v_mouvements_sejour_2.nb_sejours') THEN + selectCmdBase = 'SELECT ' || oidField || ' as oid, count(DISTINCT v_mouvements_sejour_2.no_sejour) as sum + FROM activite.v_sejours_1, activite.v_mouvements_sejour_2 + WHERE ' || p_selections_date || ' ' || p_selections || ' + AND v_mouvements_sejour_2.no_sejour = v_sejours_1.no_sejour + GROUP BY ' || oidField || ' + ORDER BY count(DISTINCT v_mouvements_sejour_2.no_sejour) desc'; + ELSE + selectCmdBase = 'SELECT ' || oidField || ' as oid, sum(' || sumField || ') as sum + FROM activite.v_sejours_1, activite.v_mouvements_sejour_2 + WHERE ' || p_selections_date || ' ' || p_selections || ' + AND v_mouvements_sejour_2.no_sejour = v_sejours_1.no_sejour + GROUP BY ' || oidField || ' + ORDER BY sum(' || sumField || ') desc'; + END IF; + END IF; + IF (table_name = 'v_factures_lignes_c_4') THEN + if (sumField = 'v_factures_lignes_c_4.nb_sejours') THEN + selectCmdBase = 'SELECT ' || oidField || ' as oid, count(DISTINCT v_factures_lignes_c_4.no_sejour) as sum + FROM activite.v_sejours_1, activite.v_factures_lignes_c_4 + WHERE ' || p_selections_date || ' ' || p_selections || ' + AND v_factures_lignes_c_4.no_sejour = v_sejours_1.no_sejour + GROUP BY ' || oidField || ' + ORDER BY count(DISTINCT v_factures_lignes_c_4.no_sejour) desc'; + ELSE + selectCmdBase = 'SELECT ' || oidField || ' as oid, sum(' || sumField || ') as sum + FROM activite.v_sejours_1, activite.v_factures_lignes_c_4 + WHERE ' || p_selections_date || ' ' || p_selections || ' + AND v_factures_lignes_c_4.no_sejour = v_sejours_1.no_sejour + GROUP BY ' || oidField || ' + ORDER BY sum(' || sumField || ') desc'; + END IF; + END IF; + + selectCmd = 'CREATE TEMP TABLE temp_sum_table AS + SELECT *, 0.00 as temp_pourcentage from ( + SELECT nextval(''temp_sequence''::regclass) as temp_sequence, * from (' || selectCmdBase || ') subview ) subview2'; + EXECUTE selectCmd; + oids_array_toapply=''; + + -- Liste des oids + IF(onmaxpercent > 0) THEN + EXECUTE 'UPDATE temp_sum_table SET temp_pourcentage = (select sum(sum) FROM temp_sum_table temp_sum_table_t WHERE temp_sum_table.temp_sequence > temp_sum_table_t.temp_sequence) / (SELECT sum(sum) FROM temp_sum_table temp_sum_table_t) * 100 WHERE temp_sum_table.temp_sequence > 1'; + IF (oidFieldText = '0') THEN + selectCmd = 'SELECT array(SELECT oid FROM temp_sum_table where temp_pourcentage <= ' || onmaxpercent || '), array(SELECT oid FROM temp_sum_table where temp_pourcentage <= ' || onmaxpercent || ')'; + ELSE + selectCmd = 'SELECT array(SELECT '''''''''''' || oid || '''''''''''' FROM temp_sum_table where temp_pourcentage <= ' || onmaxpercent || '), array(SELECT '''''''' || oid || '''''''' FROM temp_sum_table where temp_pourcentage <= ' || onmaxpercent || ')'; + END IF; + + ELSE + + IF (oidFieldText = '0') THEN + selectCmd = 'SELECT array(SELECT oid FROM temp_sum_table where temp_sequence <= ' || onmaxnumber || '), array(SELECT oid FROM temp_sum_table where temp_sequence <= ' || onmaxnumber || ')'; + ELSE + selectCmd = 'SELECT array(SELECT '''''''''''' || oid || '''''''''''' FROM temp_sum_table where temp_sequence <= ' || onmaxnumber || '), array(SELECT '''''''' || oid || '''''''' FROM temp_sum_table where temp_sequence <= ' || onmaxnumber || ')'; + END IF; + END IF; + OPEN temp_cursor FOR + EXECUTE selectCmd; + FETCH temp_cursor INTO oids_array, oids_array_bis; + WHILE FOUND LOOP + IF(oids_array is null) THEN + IF (oidFieldText = '0') THEN + oids_array = '(-1)'; + oids_array_bis = '(-1)'; + ELSE + oids_array = '(''''-1'''')'; + oids_array_bis = '(''-1'')'; + END IF; + END IF; + oids_array_toapply = translate(oids_array,'{}','()'); + oids_array_bis_toapply = translate(oids_array_bis,'{}','()'); + FETCH temp_cursor INTO oids_array; + END LOOP; + CLOSE temp_cursor; + -- pourcentages retournés + select_percent = 0; + other_percent = 0; + + selectCmd = 'SELECT round(sum(CASE WHEN oid in ' || oids_array_bis_toapply || ' THEN sum ELSE 0 END) / sum(sum) * 100, 0) , sum(sum) FROM temp_sum_table '; + OPEN temp_cursor FOR + EXECUTE selectCmd; + FETCH temp_cursor INTO winteger; + WHILE FOUND LOOP + IF(winteger is null) THEN + winteger = 0; + END IF; + select_percent = winteger; + FETCH temp_cursor INTO oids_array; + END LOOP; + CLOSE temp_cursor; + other_percent = 100 - select_percent; + -- Retour des valeurs + FOR rec IN EXECUTE 'SELECT ''SOUSSELECT_OID_IN''::text, ''AND ' || oidField|| ' IN ' || oids_array_toapply || '''::text + UNION + SELECT ''SOUSSELECT_OID_WHENIN''::text, ''' || oidField || ' IN ' || oids_array_toapply || '''::text + UNION + SELECT ''SOUSSELECT_SELECT_PERCENT''::text, ''' || select_percent || '% ' || onfield_text || '''::text + UNION + SELECT ''SOUSSELECT_OTHER_PERCENT''::text, ''' || other_percent || '% ' || onfield_text || '''::text + UNION + SELECT ''SOUSSELECT_TODO''::text, ''AND ''''1'''' = ''''1''''''::text + ' + + LOOP + RETURN NEXT rec; + END LOOP; + + ELSE + + FOR rec IN EXECUTE 'SELECT ''SOUSSELECT_OID_IN''::text, ''''::text + UNION + SELECT ''SOUSSELECT_OID_WHENIN''::text, ''1 = 1''::text + UNION + SELECT ''SOUSSELECT_SELECT_PERCENT''::text, ''100% ' || onfield_text || '''::text + UNION + SELECT ''SOUSSELECT_OTHER_PERCENT''::text, ''''::text + UNION + SELECT ''SOUSSELECT_TODO''::text, ''AND ''''1'''' <> ''''1''''''::text + ' + + LOOP + RETURN NEXT rec; + END LOOP; + END IF; + RETURN; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_parametre~tx.yaml b/db/schema2/functions/get_parametre~tx.yaml new file mode 100644 index 0000000..822befc --- /dev/null +++ b/db/schema2/functions/get_parametre~tx.yaml @@ -0,0 +1,27 @@ +return: text +lang: plpgsql +parameters: + p0: + type: text + name: i_parametre +strict: STRICT +src: | + DECLARE + _valeur TEXT; + _cursor refcursor; + _returnValue TEXT; + + BEGIN + _returnValue = ''; + OPEN _cursor FOR + SELECT valeur + FROM activite.t_divers + WHERE code = i_parametre; + FETCH _cursor INTO _valeur; + WHILE FOUND LOOP + _returnValue = _valeur; + FETCH _cursor INTO _valeur; + END LOOP; + CLOSE _cursor; + RETURN _returnValue ; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_rapport_columns_case~in,tx.yaml b/db/schema2/functions/get_rapport_columns_case~in,tx.yaml new file mode 100644 index 0000000..a77e45e --- /dev/null +++ b/db/schema2/functions/get_rapport_columns_case~in,tx.yaml @@ -0,0 +1,36 @@ +return: text +lang: plpgsql +parameters: + p0: + type: integer + name: input_rapport_id + p1: + type: text + name: select_name +strict: STRICT +src: | + DECLARE + rapport_columns TEXT; + rapports_cursor refcursor; + numero_rubrique INTEGER; + table_name TEXT; + BEGIN + rapport_columns = 'CASE'; + OPEN rapports_cursor FOR + SELECT t_rapports_rubriques.numero_rubrique, t_indicateurs.table_name + FROM activite.t_rapports_rubriques, activite.t_indicateurs + WHERE rapport_id = $1 AND indicateur_id = t_indicateurs.oid + ORDER BY t_rapports_rubriques.numero_rubrique; + FETCH rapports_cursor INTO numero_rubrique, table_name; + WHILE FOUND LOOP + + IF (table_name != 'SEP') THEN + rapport_columns = rapport_columns || ' WHEN t_rapports_rubriques.numero_rubrique = ' || numero_rubrique || ' THEN ' || $2 || '.indicateur' || numero_rubrique; + END IF; + + FETCH rapports_cursor INTO numero_rubrique, table_name ; + END LOOP; + CLOSE rapports_cursor; + rapport_columns = rapport_columns || ' ELSE 0 END'; + RETURN rapport_columns ; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_rapport_columns~in.yaml b/db/schema2/functions/get_rapport_columns~in.yaml new file mode 100644 index 0000000..d3b270e --- /dev/null +++ b/db/schema2/functions/get_rapport_columns~in.yaml @@ -0,0 +1,48 @@ +return: text +lang: plpgsql +parameters: + p0: + type: integer + name: input_rapport_id +strict: STRICT +src: | + DECLARE + rapport_columns TEXT; + rapports_cursor refcursor; + numero_rubrique INTEGER; + column_name TEXT; + rubrique_texte TEXT; + table_name TEXT; + total_function TEXT; + last_rubrique INTEGER; + BEGIN + rapport_columns = ''; + last_rubrique = 0; + OPEN rapports_cursor FOR + SELECT t_rapports_rubriques.numero_rubrique, t_indicateurs.column_name, t_indicateurs.table_name, t_indicateurs.total_function + FROM activite.t_rapports_rubriques, activite.t_indicateurs + WHERE rapport_id = $1 AND indicateur_id = t_indicateurs.oid ORDER BY t_rapports_rubriques.numero_rubrique; + FETCH rapports_cursor INTO numero_rubrique, column_name , table_name, total_function; + WHILE FOUND LOOP + last_rubrique = last_rubrique + 1; + FOR i IN last_rubrique..numero_rubrique - 1 LOOP + rapport_columns = rapport_columns || ', 0 ' ; + last_rubrique = last_rubrique + 1; + END LOOP; + IF (table_name != 'SEP') THEN + IF (table_name = 'v_rss_1') THEN + rapport_columns = rapport_columns || ', ' || total_function || '(' || column_name || ') ' ; + END IF; + IF (table_name != 'v_rss_1') THEN + rapport_columns = rapport_columns || ', ' || total_function || '(indicateur' || numero_rubrique || ') ' ; + END IF; + END IF; + IF (table_name = 'SEP') THEN + rapport_columns = rapport_columns || ', 0'; + END IF; + rapport_columns = rapport_columns || ' AS indicateur' || numero_rubrique; + FETCH rapports_cursor INTO numero_rubrique, column_name , table_name, total_function; + END LOOP; + CLOSE rapports_cursor; + RETURN rapport_columns ; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_rapport_joins~in.yaml b/db/schema2/functions/get_rapport_joins~in.yaml new file mode 100644 index 0000000..ecc30d7 --- /dev/null +++ b/db/schema2/functions/get_rapport_joins~in.yaml @@ -0,0 +1,67 @@ +return: text +lang: plpgsql +parameters: + p0: + type: integer + name: input_rapport_id +strict: STRICT +src: | + DECLARE + rapport_joins TEXT; + rapport_joins_v_rsf_detail_1 TEXT; + rapport_joins_v_rss_lpp_1 TEXT; + rapport_joins_v_rss_actes_1 TEXT; + rapport_joins_v_rss_diagnostics_1 TEXT; + rapports_cursor refcursor; + numero_rubrique INTEGER; + column_name TEXT; + rubrique_texte TEXT; + table_name TEXT; + total_function TEXT; + last_rubrique INTEGER; + BEGIN + rapport_joins = ''; + rapport_joins_v_rsf_detail_1 = ''; + rapport_joins_v_rss_lpp_1 = ''; + rapport_joins_v_rss_actes_1 = ''; + rapport_joins_v_rss_diagnostics_1 = ''; + OPEN rapports_cursor FOR + SELECT t_rapports_rubriques.numero_rubrique, t_indicateurs.column_name, t_indicateurs.table_name, t_indicateurs.total_function + FROM activite.t_rapports_rubriques, activite.t_indicateurs + WHERE rapport_id = $1 AND indicateur_id = t_indicateurs.oid + ORDER BY numero_rubrique; + FETCH rapports_cursor INTO numero_rubrique, column_name, table_name, total_function; + WHILE FOUND LOOP + IF (table_name = 'v_rsf_detail_1') THEN + rapport_joins_v_rsf_detail_1 = rapport_joins_v_rsf_detail_1 || ', ' || total_function || '(' || column_name || ') AS indicateur' || numero_rubrique; + END IF; + IF (table_name = 'v_rss_lpp_1') THEN + rapport_joins_v_rss_lpp_1 = rapport_joins_v_rss_lpp_1 || ', ' || total_function || '(' || column_name || ') AS indicateur' || numero_rubrique; + END IF; + IF (table_name = 'v_rss_actes_1') THEN + rapport_joins_v_rss_actes_1 = rapport_joins_v_rss_actes_1 || ', ' || total_function || '(' || column_name || ') AS indicateur' || numero_rubrique; + END IF; + IF (table_name = 'v_rss_diagnostics_1') THEN + rapport_joins_v_rss_diagnostics_1 = rapport_joins_rss_diagnostics_1 || ', ' || total_function || '(' || column_name || ') AS indicateur' || numero_rubrique; + END IF; + FETCH rapports_cursor INTO numero_rubrique, column_name, table_name, total_function; + END LOOP; + CLOSE rapports_cursor; + IF (rapport_joins_v_rsf_detail_1 != '') THEN + rapport_joins_v_rsf_detail_1 = 'LEFT JOIN (SELECT v_rsf_detail_1.no_rss, v_rsf_detail_1.finess' || rapport_joins_v_rsf_detail_1 || ' FROM activite.v_rsf_detail_1, activite.v_rss_1 WHERE v_rsf_detail_1.no_rss = activite.v_rss_1.no_rss AND v_rsf_detail_1.finess = activite.v_rss_1.finess GROUP BY v_rsf_detail_1.no_rss, v_rsf_detail_1.finess) subview_v_rsf_detail_1 ON (v_rss_1.no_rss = subview_v_rsf_detail_1.no_rss AND v_rss_1.finess = subview_v_rsf_detail_1.finess) '; + rapport_joins = rapport_joins || rapport_joins_v_rsf_detail_1; + END IF; + IF (rapport_joins_v_rss_lpp_1 != '') THEN + rapport_joins_v_rss_lpp_1 = 'LEFT JOIN (SELECT v_rss_lpp_1.no_rss, v_rss_lpp_1.finess' || rapport_joins_v_rss_lpp_1 || ' FROM activite.v_rss_lpp_1, activite.v_rss_1 WHERE v_rss_lpp_1.no_rss = activite.v_rss_1.no_rss AND v_rss_lpp_1.finess = activite.v_rss_1.finess GROUP BY v_rss_lpp_1.no_rss, v_rss_lpp_1.finess) subview_v_rss_lpp_1 ON (v_rss_1.no_rss = subview_v_rss_lpp_1.no_rss AND v_rss_1.finess = subview_v_rss_lpp_1.finess) '; + rapport_joins = rapport_joins || rapport_joins_v_rss_lpp_1; + END IF; + IF (rapport_joins_v_rss_actes_1 != '') THEN + rapport_joins_v_rss_actes_1 = 'LEFT JOIN (SELECT v_rss_actes_1.no_rss, v_rss_actes_1.finess' || rapport_joins_v_rss_actes_1 || ' FROM activite.v_rss_actes_1, activite.v_rss_1 WHERE v_rss_actes_1.no_rss = activite.v_rss_1.no_rss AND v_rss_actes_1.finess = activite.v_rss_1.finess GROUP BY v_rss_actes_1.no_rss, v_rss_actes_1.finess) subview_v_rss_actes_1 ON (v_rss_1.no_rss = subview_v_rss_1.no_rss AND v_rss_actes_1.finess = subview_v_rss_actes_1.finess) '; + rapport_joins = rapport_joins || rapport_joins_v_rss_actes_1; + END IF; + IF (rapport_joins_v_rss_diagnostics_1 != '') THEN + rapport_joins_v_rss_diagnostics_1 = 'LEFT JOIN (SELECT v_rss_diagnostics_1.no_rss, v_rss_diagnostics_1.finess' || rapport_joins_v_rss_diagnostics_1 || ' FROM activite.v_rss_diagnostics_1, activite.v_rss_1 WHERE v_rss_diagnostics_1.no_rss = activite.v_rss_1.no_rss AND v_rss_diagnostics_1.finess = activite.v_rss_1.finess GROUP BY v_rss_diagnostics_1.no_rss, v_rss_diagnostics_1.finess) subview_v_rss_diagnostics_1 ON (v_rss_1.no_rss = subview_v_rss_diagnostics_1.no_rss AND v_rss_1.finess = subview_v_rss_diagnostics_1.finess) '; + rapport_joins = rapport_joins || rapport_joins_v_rss_diagnostics_1; + END IF; + RETURN rapport_joins; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_valorisation_gmt_forfaitisables.yaml b/db/schema2/functions/get_valorisation_gmt_forfaitisables.yaml new file mode 100644 index 0000000..5f1ad6d --- /dev/null +++ b/db/schema2/functions/get_valorisation_gmt_forfaitisables.yaml @@ -0,0 +1,96 @@ +return: SETOF activite.p_gmt_valorises +lang: plpgsql +src: | + DECLARE + _nb_jours_presence int; + _dzf1 int; + _fzf1 int; + _dzf2 int; + _fzf2 int; + _dzf3 int; + _fzf3 int; + _zone_sejour int; + _montant_valorise int; + _montant_fj int; + _input_record RECORD; + _output_record activite.p_gmt_valorises%ROWTYPE; + BEGIN + FOR _input_record IN + SELECT + p_sejours_groupes_smr.no_sejour + , p_sejours_groupes_smr.nb_jours_presence + , p_sejours_groupes_smr.gme_code + , p_sejours_groupes_smr.gmt_code + , p_sejours_groupes_smr.date_debut_gmt + , p_sejours_groupes_smr.date_fin_gmt + , v_tarifs_prive_gmt_forfaitisables.texte + , v_tarifs_prive_gmt_forfaitisables.dzf + , v_tarifs_prive_gmt_forfaitisables.fzf + , v_tarifs_prive_gmt_forfaitisables.tzb + , v_tarifs_prive_gmt_forfaitisables.tzf1 + , v_tarifs_prive_gmt_forfaitisables.tzf2 + , v_tarifs_prive_gmt_forfaitisables.tzf3 + , v_tarifs_prive_gmt_forfaitisables.szb + , v_tarifs_prive_gmt_forfaitisables.szh + FROM activite.p_sejours_groupes_smr + JOIN base.v_tarifs_prive_gmt_forfaitisables ON p_sejours_groupes_smr.gmt_code = v_tarifs_prive_gmt_forfaitisables.code + AND p_sejours_groupes_smr.date_fin_gmt BETWEEN v_tarifs_prive_gmt_forfaitisables.date_debut AND v_tarifs_prive_gmt_forfaitisables.date_fin + AND p_sejours_groupes_smr.gme_code = v_tarifs_prive_gmt_forfaitisables.gme_code + WHERE p_sejours_groupes_smr.types_gmt_code = 'hc_forfaitisable' + LOOP + _nb_jours_presence := LEAST(_input_record.nb_jours_presence, 90); + SELECT COALESCE(activite.get_montant_fj_valorise_par_sejour(_input_record.no_sejour), 0) INTO _montant_fj; + + -- Une zone forfaitaire dure 3 semaines soit 21 jours + -- Nous ne disposons que des valeurs de début de zone forfaitaire (dzf) et de fin de zone forfaitaire (fzf) + -- Nous calculons donc les autres délimiteurs des trois zones différentes (dzf1, fzf1, dzf2, fzf2, dzf3, fzf3) + -- Chaque zone INCLUT ses propres délimiteurs de début et fin de zone (soit 7 jours complets) + + -- Le début des zones commence le lendemain de la fin de zone de la précédente (logique) (ex : dzf2 = fzf1 + 1) + -- Sauf pour dzf1 qui est égal au dzf déjà fourni par l'ATIH + -- La fin d'une zone est donc calculée comme étant début de la zone + 6 jours (ex : dzf1 = 8, fzf = 14) + -- Sauf pour fzf3 qui est égal à fzf déjà fourni par l'ATIH + _dzf1 := _input_record.dzf; + _fzf1 := _dzf1 + 6; + _dzf2 := _fzf1 + 1; + _fzf2 := _dzf2 + 6; + _dzf3 := _fzf2 + 1; + _fzf3 := _input_record.fzf; + + IF _nb_jours_presence > _fzf3 + THEN + _zone_sejour := 5; + ELSIF _nb_jours_presence >= _dzf3 + THEN + _zone_sejour := 4; + ELSIF _nb_jours_presence >= _dzf2 + THEN + _zone_sejour := 3; + ELSIF _nb_jours_presence >= _dzf1 + THEN + _zone_sejour := 2; + ELSE + _zone_sejour := 1; + END IF; + + CASE _zone_sejour + WHEN 1 THEN _montant_valorise := _input_record.tzb - (_input_record.dzf - _nb_jours_presence) * _input_record.szb; + WHEN 2 THEN _montant_valorise := _input_record.tzf1; + WHEN 3 THEN _montant_valorise := _input_record.tzf2; + WHEN 4 THEN _montant_valorise := _input_record.tzf3; + WHEN 5 THEN _montant_valorise := _input_record.tzf3 + (_nb_jours_presence - _input_record.fzf) * _input_record.szh; + END CASE; + + _output_record.no_sejour := _input_record.no_sejour; + _output_record.gme_code := _input_record.gme_code; + _output_record.gmt_code := _input_record.gmt_code; + _output_record.gmt_libelle := _input_record.texte; + _output_record.date_debut_gmt := _input_record.date_debut_gmt; + _output_record.date_fin_gmt := _input_record.date_fin_gmt; + _output_record.montant_valorise := _montant_valorise - _montant_fj; + _output_record.montant_valorise_par_jour := (_montant_valorise - _montant_fj) / _nb_jours_presence; + + RETURN NEXT _output_record; + END LOOP; + RETURN; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_valorisation_gmt_hc_sans_zf.yaml b/db/schema2/functions/get_valorisation_gmt_hc_sans_zf.yaml new file mode 100644 index 0000000..b218dfe --- /dev/null +++ b/db/schema2/functions/get_valorisation_gmt_hc_sans_zf.yaml @@ -0,0 +1,80 @@ +return: SETOF activite.p_gmt_valorises +lang: plpgsql +src: | + DECLARE + _nb_jours_presence int; + _zone_sejour int; + _montant_valorise int; + _montant_fj int; + _input_record RECORD; + _output_record activite.p_gmt_valorises%ROWTYPE; + BEGIN + FOR _input_record IN + SELECT + p_sejours_groupes_smr.no_sejour, + p_sejours_groupes_smr.nb_jours_presence, + p_sejours_groupes_smr.gme_code, + p_sejours_groupes_smr.gmt_code, + p_sejours_groupes_smr.date_debut_gmt, + p_sejours_groupes_smr.date_fin_gmt, + COALESCE(v1.texte, v2.texte, v3.texte) AS texte, + COALESCE(v1.dzf, v2.dzf, v3.dzf) AS dzf, + COALESCE(v1.fzf, v2.fzf, v3.fzf) AS fzf, + COALESCE(v1.tzb, v2.tzb, v3.tzb) AS tzb, + COALESCE(v1.tzf1, v2.tzf1, v3.tzf1) AS tzf1, + COALESCE(v1.szb, v2.szb, v3.szb) AS szb, + COALESCE(v1.szh, v2.szh, v3.szh) AS szh + FROM activite.p_sejours_groupes_smr + LEFT JOIN base.v_tarifs_prive_gmt_en_7 v1 ON p_sejours_groupes_smr.gmt_code = v1.code + AND p_sejours_groupes_smr.date_fin_gmt BETWEEN v1.date_debut AND v1.date_fin + AND p_sejours_groupes_smr.gme_code = v1.gme_code + LEFT JOIN base.v_tarifs_prive_gmt_en_8 v2 ON p_sejours_groupes_smr.gmt_code = v2.code + AND p_sejours_groupes_smr.date_fin_gmt BETWEEN v2.date_debut AND v2.date_fin + AND p_sejours_groupes_smr.gme_code = v2.gme_code + LEFT JOIN base.v_tarifs_prive_gmt_dzf_90 v3 ON p_sejours_groupes_smr.gmt_code = v3.code + AND p_sejours_groupes_smr.date_fin_gmt BETWEEN v3.date_debut AND v3.date_fin + AND p_sejours_groupes_smr.gme_code = v3.gme_code + WHERE p_sejours_groupes_smr.types_gmt_code = 'hc_sans_zf' + LOOP + IF _input_record.gmt_code LIKE '7%' + THEN + _nb_jours_presence := _input_record.nb_jours_presence; + ELSE + _nb_jours_presence := LEAST(_input_record.nb_jours_presence, 90); + END IF; + SELECT COALESCE(activite.get_montant_fj_valorise_par_sejour(_input_record.no_sejour), 0) INTO _montant_fj; + + IF _nb_jours_presence >= _input_record.dzf + THEN + _zone_sejour := 2; + ELSE + _zone_sejour := 1; + END IF; + + CASE _zone_sejour + WHEN 1 THEN _montant_valorise := _input_record.tzb - (_input_record.dzf - _nb_jours_presence) * _input_record.szb ; + WHEN 2 THEN _montant_valorise := _input_record.tzf1; + END CASE + ; + + _output_record.no_sejour := _input_record.no_sejour; + _output_record.gme_code := _input_record.gme_code; + _output_record.gmt_code := _input_record.gmt_code; + _output_record.gmt_libelle := _input_record.texte; + _output_record.date_debut_gmt := _input_record.date_debut_gmt; + _output_record.date_fin_gmt := _input_record.date_fin_gmt; + + IF _input_record.gmt_code LIKE '7%' + THEN + _output_record.montant_valorise := (_montant_valorise * _nb_jours_presence/7) - _montant_fj; + _output_record.montant_valorise_par_jour := ((_montant_valorise * _nb_jours_presence/7) - _montant_fj) / _nb_jours_presence; + ELSE + _output_record.montant_valorise := _montant_valorise - _montant_fj; + _output_record.montant_valorise_par_jour := (_montant_valorise - _montant_fj) / _nb_jours_presence; + END IF; + + RETURN NEXT _output_record; + END LOOP; + + RETURN; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_valorisation_gmt_hospitalisation_partielle.yaml b/db/schema2/functions/get_valorisation_gmt_hospitalisation_partielle.yaml new file mode 100644 index 0000000..d727a88 --- /dev/null +++ b/db/schema2/functions/get_valorisation_gmt_hospitalisation_partielle.yaml @@ -0,0 +1,40 @@ +return: SETOF activite.p_gmt_valorises +lang: plpgsql +src: | + DECLARE + _input_record RECORD; + _output_record activite.p_gmt_valorises%ROWTYPE; + BEGIN + FOR _input_record IN + SELECT + p_sejours_groupes_smr.no_sejour + , p_sejours_groupes_smr.nb_jours_presence + , p_sejours_groupes_smr.gme_code + , p_sejours_groupes_smr.gmt_code + , p_sejours_groupes_smr.date_debut_gmt + , p_sejours_groupes_smr.date_fin_gmt + , v_tarifs_prive_gmt_hospitalisation_partielle.texte + , v_tarifs_prive_gmt_hospitalisation_partielle.dzf + , v_tarifs_prive_gmt_hospitalisation_partielle.fzf + , v_tarifs_prive_gmt_hospitalisation_partielle.tzb + , v_tarifs_prive_gmt_hospitalisation_partielle.tzf1 + , v_tarifs_prive_gmt_hospitalisation_partielle.szb + , v_tarifs_prive_gmt_hospitalisation_partielle.szh + FROM activite.p_sejours_groupes_smr + JOIN base.v_tarifs_prive_gmt_hospitalisation_partielle ON p_sejours_groupes_smr.gmt_code = v_tarifs_prive_gmt_hospitalisation_partielle.code + AND p_sejours_groupes_smr.date_fin_gmt BETWEEN v_tarifs_prive_gmt_hospitalisation_partielle.date_debut AND v_tarifs_prive_gmt_hospitalisation_partielle.date_fin + AND p_sejours_groupes_smr.gme_code = v_tarifs_prive_gmt_hospitalisation_partielle.gme_code + WHERE p_sejours_groupes_smr.types_gmt_code = 'hp_hebdomadaire' + LOOP + _output_record.no_sejour := _input_record.no_sejour; + _output_record.gme_code := _input_record.gme_code; + _output_record.gmt_code := _input_record.gmt_code; + _output_record.gmt_libelle := _input_record.texte; + _output_record.date_debut_gmt := _input_record.date_debut_gmt; + _output_record.date_fin_gmt := _input_record.date_fin_gmt; + _output_record.montant_valorise := _input_record.tzf1 * _input_record.nb_jours_presence; + _output_record.montant_valorise_par_jour := _input_record.tzf1; + RETURN NEXT _output_record; + END LOOP; + RETURN; + END; \ No newline at end of file diff --git a/db/schema2/functions/get_valorisation_gmt_non_forfaitisables.yaml b/db/schema2/functions/get_valorisation_gmt_non_forfaitisables.yaml new file mode 100644 index 0000000..352d7b5 --- /dev/null +++ b/db/schema2/functions/get_valorisation_gmt_non_forfaitisables.yaml @@ -0,0 +1,65 @@ +return: SETOF activite.p_gmt_valorises +lang: plpgsql +src: | + DECLARE + _nb_jours_presence int; + _zone_sejour int; + _montant_valorise int; + _montant_fj int; + _input_record RECORD; + _output_record activite.p_gmt_valorises%ROWTYPE; + BEGIN + FOR _input_record IN + SELECT + p_sejours_groupes_smr.no_sejour + , p_sejours_groupes_smr.nb_jours_presence + , p_sejours_groupes_smr.gme_code + , p_sejours_groupes_smr.gmt_code + , p_sejours_groupes_smr.date_debut_gmt + , p_sejours_groupes_smr.date_fin_gmt + , v_tarifs_prive_gmt_non_forfaitisables.texte + , v_tarifs_prive_gmt_non_forfaitisables.dzf + , v_tarifs_prive_gmt_non_forfaitisables.fzf + , v_tarifs_prive_gmt_non_forfaitisables.tzb + , v_tarifs_prive_gmt_non_forfaitisables.tzf1 + , v_tarifs_prive_gmt_non_forfaitisables.szb + , v_tarifs_prive_gmt_non_forfaitisables.szh + FROM activite.p_sejours_groupes_smr + JOIN base.v_tarifs_prive_gmt_non_forfaitisables ON p_sejours_groupes_smr.gmt_code = v_tarifs_prive_gmt_non_forfaitisables.code + AND p_sejours_groupes_smr.date_fin_gmt BETWEEN v_tarifs_prive_gmt_non_forfaitisables.date_debut AND v_tarifs_prive_gmt_non_forfaitisables.date_fin + AND p_sejours_groupes_smr.gme_code = v_tarifs_prive_gmt_non_forfaitisables.gme_code + WHERE p_sejours_groupes_smr.types_gmt_code = 'hc_non_forfaitisable' + LOOP + _nb_jours_presence := LEAST(_input_record.nb_jours_presence, 90); + SELECT COALESCE(activite.get_montant_fj_valorise_par_sejour(_input_record.no_sejour), 0) INTO _montant_fj; + + IF _nb_jours_presence > _input_record.fzf + THEN + _zone_sejour := 3; + ELSIF _nb_jours_presence >= _input_record.dzf + THEN + _zone_sejour := 2; + ELSE + _zone_sejour := 1; + END IF; + + CASE _zone_sejour + WHEN 1 THEN _montant_valorise := _input_record.tzb - (_input_record.dzf - _nb_jours_presence) * _input_record.szb; + WHEN 2 THEN _montant_valorise := _input_record.tzf1; + WHEN 3 THEN _montant_valorise := _input_record.tzf1 + (_nb_jours_presence - _input_record.fzf) * _input_record.szh; + END CASE; + + _output_record.no_sejour := _input_record.no_sejour; + _output_record.gme_code := _input_record.gme_code; + _output_record.gmt_code := _input_record.gmt_code; + _output_record.gmt_libelle := _input_record.texte; + _output_record.date_debut_gmt := _input_record.date_debut_gmt; + _output_record.date_fin_gmt := _input_record.date_fin_gmt; + _output_record.montant_valorise := _montant_valorise - _montant_fj; + _output_record.montant_valorise_par_jour := (_montant_valorise - _montant_fj) / _nb_jours_presence; + + RETURN NEXT _output_record; + END LOOP; + RETURN; + + END; \ No newline at end of file diff --git a/db/schema2/functions/valoriser_sejours_groupes_smr.yaml b/db/schema2/functions/valoriser_sejours_groupes_smr.yaml new file mode 100644 index 0000000..5eb43e9 --- /dev/null +++ b/db/schema2/functions/valoriser_sejours_groupes_smr.yaml @@ -0,0 +1,100 @@ +return: void +lang: plpgsql +src: | + BEGIN + + -- Appeler les différentes fonctions de valorisation + -- Insérer les enregistrements renvoyés par ces fonctions dans la table finale p_gmt_valorises + -- TODO : Gestion des logs et des erreurs + -- TODO : Sous forme de transactions + + TRUNCATE activite.p_gmt_valorises; + + -- Insertion des montants calculés pour les séjours ayant des GMT forfaitisables + INSERT INTO activite.p_gmt_valorises( + no_sejour + , gme_code + , gmt_code + , gmt_libelle + , date_debut_gmt + , date_fin_gmt + , montant_valorise + , montant_valorise_par_jour + ) + SELECT + no_sejour + , gme_code + , gmt_code + , gmt_libelle + , date_debut_gmt + , date_fin_gmt + , montant_valorise + , montant_valorise_par_jour + FROM activite.get_valorisation_gmt_forfaitisables(); + + -- Insertion des montants calculés pour les séjours ayant des GMT non forfaitisables + INSERT INTO activite.p_gmt_valorises( + no_sejour + ,gme_code + ,gmt_code + ,gmt_libelle + ,date_debut_gmt + ,date_fin_gmt + ,montant_valorise + ,montant_valorise_par_jour + ) + SELECT + no_sejour + , gme_code + , gmt_code + , gmt_libelle + , date_debut_gmt + , date_fin_gmt + , montant_valorise + , montant_valorise_par_jour + FROM activite.get_valorisation_gmt_non_forfaitisables(); + + -- Insertion des montants calculés pour les séjours ayant des GMT sans zone forfaitaire (GMT en 8, GMT en 7, et GMT avec DZF = FZF = 90 ou 7) + INSERT INTO activite.p_gmt_valorises( + no_sejour + , gme_code + , gmt_code + , gmt_libelle + , date_debut_gmt + , date_fin_gmt + , montant_valorise + , montant_valorise_par_jour + ) + SELECT + no_sejour + , gme_code + , gmt_code + , gmt_libelle + , date_debut_gmt + , date_fin_gmt + , montant_valorise + , montant_valorise_par_jour + FROM activite.get_valorisation_gmt_hc_sans_zf(); + + -- Insertion des montants calculés pour les séjours ayant des GMT hospitalisation partielle + INSERT INTO activite.p_gmt_valorises( + no_sejour + , gme_code + , gmt_code + , gmt_libelle + , date_debut_gmt + , date_fin_gmt + , montant_valorise + , montant_valorise_par_jour + ) + SELECT + no_sejour + , gme_code + , gmt_code + , gmt_libelle + , date_debut_gmt + , date_fin_gmt + , montant_valorise + , montant_valorise_par_jour + FROM activite.get_valorisation_gmt_hospitalisation_partielle(); + END; \ No newline at end of file diff --git a/db/schema2/sequences/s_activites.yaml b/db/schema2/sequences/s_activites.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_activites.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_bloc.yaml b/db/schema2/sequences/s_bloc.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_bloc.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_bloc_motif_intervention.yaml b/db/schema2/sequences/s_bloc_motif_intervention.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_bloc_motif_intervention.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_bloc_occupation.yaml b/db/schema2/sequences/s_bloc_occupation.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_bloc_occupation.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_bloc_salle.yaml b/db/schema2/sequences/s_bloc_salle.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_bloc_salle.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_bloc_salle_disponibilite.yaml b/db/schema2/sequences/s_bloc_salle_disponibilite.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_bloc_salle_disponibilite.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budget.yaml b/db/schema2/sequences/s_budget.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budget.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budget_cle.yaml b/db/schema2/sequences/s_budget_cle.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budget_cle.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budget_cle_rule.yaml b/db/schema2/sequences/s_budget_cle_rule.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budget_cle_rule.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budget_indicateur.yaml b/db/schema2/sequences/s_budget_indicateur.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budget_indicateur.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budgets.yaml b/db/schema2/sequences/s_budgets.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budgets.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_budgets_saisis.yaml b/db/schema2/sequences/s_budgets_saisis.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_budgets_saisis.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_calcul_encours.yaml b/db/schema2/sequences/s_calcul_encours.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_calcul_encours.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_chart.yaml b/db/schema2/sequences/s_chart.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_chart.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_classes.yaml b/db/schema2/sequences/s_classes.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_classes.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_classes_sections.yaml b/db/schema2/sequences/s_classes_sections.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_classes_sections.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_compte.yaml b/db/schema2/sequences/s_compte.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_compte.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_compte_produit_analytique_rule.yaml b/db/schema2/sequences/s_compte_produit_analytique_rule.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_compte_produit_analytique_rule.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_dashboard.yaml b/db/schema2/sequences/s_dashboard.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_dashboard.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_dashboard_filter.yaml b/db/schema2/sequences/s_dashboard_filter.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_dashboard_filter.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_dashboard_onglet.yaml b/db/schema2/sequences/s_dashboard_onglet.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_dashboard_onglet.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_dashboard_widget.yaml b/db/schema2/sequences/s_dashboard_widget.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_dashboard_widget.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_etages.yaml b/db/schema2/sequences/s_etages.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_etages.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_etat_sejour.yaml b/db/schema2/sequences/s_etat_sejour.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_etat_sejour.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_expert_controle.yaml b/db/schema2/sequences/s_expert_controle.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_expert_controle.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_expert_controle_rule.yaml b/db/schema2/sequences/s_expert_controle_rule.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_expert_controle_rule.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_factures.yaml b/db/schema2/sequences/s_factures.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_factures.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_factures_encours.yaml b/db/schema2/sequences/s_factures_encours.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_factures_encours.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_filiere_soin.yaml b/db/schema2/sequences/s_filiere_soin.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_filiere_soin.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_filiere_soin_rule.yaml b/db/schema2/sequences/s_filiere_soin_rule.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_filiere_soin_rule.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_forme_activite.yaml b/db/schema2/sequences/s_forme_activite.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_forme_activite.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_forme_activite_rule.yaml b/db/schema2/sequences/s_forme_activite_rule.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_forme_activite_rule.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateur_condition.yaml b/db/schema2/sequences/s_indicateur_condition.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateur_condition.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateur_condition_table.yaml b/db/schema2/sequences/s_indicateur_condition_table.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateur_condition_table.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateur_serie.yaml b/db/schema2/sequences/s_indicateur_serie.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateur_serie.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateur_theme.yaml b/db/schema2/sequences/s_indicateur_theme.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateur_theme.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_indicateurs.yaml b/db/schema2/sequences/s_indicateurs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_indicateurs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_journal.yaml b/db/schema2/sequences/s_journal.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_journal.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_kiwee_params.yaml b/db/schema2/sequences/s_kiwee_params.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_kiwee_params.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_lieux.yaml b/db/schema2/sequences/s_lieux.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_lieux.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_listes.yaml b/db/schema2/sequences/s_listes.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_listes.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_listes_tables.yaml b/db/schema2/sequences/s_listes_tables.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_listes_tables.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_lit_historique.yaml b/db/schema2/sequences/s_lit_historique.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_lit_historique.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_lits.yaml b/db/schema2/sequences/s_lits.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_lits.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_medecins.yaml b/db/schema2/sequences/s_medecins.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_medecins.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_medecins_traitants_administratifs.yaml b/db/schema2/sequences/s_medecins_traitants_administratifs.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_medecins_traitants_administratifs.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_motif_non_facturation.yaml b/db/schema2/sequences/s_motif_non_facturation.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_motif_non_facturation.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_parametre_personnalise_sejour_1.yaml b/db/schema2/sequences/s_parametre_personnalise_sejour_1.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_parametre_personnalise_sejour_1.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_parametre_personnalise_sejour_2.yaml b/db/schema2/sequences/s_parametre_personnalise_sejour_2.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_parametre_personnalise_sejour_2.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_pole_rule.yaml b/db/schema2/sequences/s_pole_rule.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_pole_rule.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_prestations.yaml b/db/schema2/sequences/s_prestations.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_prestations.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_protocoles.yaml b/db/schema2/sequences/s_protocoles.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_protocoles.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_rapports.yaml b/db/schema2/sequences/s_rapports.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_rapports.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_rejets_noemie.yaml b/db/schema2/sequences/s_rejets_noemie.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_rejets_noemie.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_risque.yaml b/db/schema2/sequences/s_risque.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_risque.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_rubrique_facture_c.yaml b/db/schema2/sequences/s_rubrique_facture_c.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_rubrique_facture_c.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_rubriques_facturation.yaml b/db/schema2/sequences/s_rubriques_facturation.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_rubriques_facturation.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_sejour.yaml b/db/schema2/sequences/s_sejour.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_sejour.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_sejours.yaml b/db/schema2/sequences/s_sejours.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_sejours.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_service_rubrique.yaml b/db/schema2/sequences/s_service_rubrique.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_service_rubrique.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_service_rubrique_dotation.yaml b/db/schema2/sequences/s_service_rubrique_dotation.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_service_rubrique_dotation.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_services_facturation.yaml b/db/schema2/sequences/s_services_facturation.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_services_facturation.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_sigems_transformation_uf.yaml b/db/schema2/sequences/s_sigems_transformation_uf.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_sigems_transformation_uf.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_specialites_medecin.yaml b/db/schema2/sequences/s_specialites_medecin.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_specialites_medecin.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_tiers_payant.yaml b/db/schema2/sequences/s_tiers_payant.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_tiers_payant.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_transformation.yaml b/db/schema2/sequences/s_transformation.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_transformation.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_unites_fonctionnelles.yaml b/db/schema2/sequences/s_unites_fonctionnelles.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_unites_fonctionnelles.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_unites_medicales.yaml b/db/schema2/sequences/s_unites_medicales.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_unites_medicales.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_validation_parametre.yaml b/db/schema2/sequences/s_validation_parametre.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_validation_parametre.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_vue_parametre.yaml b/db/schema2/sequences/s_vue_parametre.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_vue_parametre.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/sequences/s_web100t_forcage_uf_soin.yaml b/db/schema2/sequences/s_web100t_forcage_uf_soin.yaml new file mode 100644 index 0000000..e63c2f9 --- /dev/null +++ b/db/schema2/sequences/s_web100t_forcage_uf_soin.yaml @@ -0,0 +1,5 @@ +min: NO MINVALUE +max: NO MAXVALUE +start: 1 +increment: 1 +cache: 1 \ No newline at end of file diff --git a/db/schema2/tables/p_bloc_occupation.yaml b/db/schema2/tables/p_bloc_occupation.yaml new file mode 100644 index 0000000..12f9ae5 --- /dev/null +++ b/db/schema2/tables/p_bloc_occupation.yaml @@ -0,0 +1,92 @@ +columns: + code_original: + type: text + date: + type: date + not_null: NOT NULL + date_programmation: + type: date + default: "'2099-12-31'::date" + duree_debordement: + type: numeric + default: "0" + duree_disponible: + type: numeric + default: "0" + duree_occupation: + type: numeric + default: "0" + duree_remise_en_etat: + type: numeric + default: "0" + duree_salle: + type: numeric + default: "0" + duree_total: + type: numeric + default: "0" + finess_id: + type: bigint + default: "0" + heure_debut_occupation: + type: timestamp without time zone + default: "'2099-12-31 00:00:00'::timestamp without time zone" + heure_debut_remise_en_etat: + type: timestamp without time zone + default: "'2099-12-31 00:00:00'::timestamp without time zone" + heure_entree_salle: + type: timestamp without time zone + default: "'2099-12-31 00:00:00'::timestamp without time zone" + heure_fin_occupation: + type: timestamp without time zone + default: "'2099-12-31 00:00:00'::timestamp without time zone" + heure_fin_remise_en_etat: + type: timestamp without time zone + default: "'2099-12-31 00:00:00'::timestamp without time zone" + heure_sortie_salle: + type: timestamp without time zone + default: "'2099-12-31 00:00:00'::timestamp without time zone" + medecin_chirurgien_id: + type: bigint + default: "0" + motif_intervention_id: + type: bigint + default: "0" + no_sejour: + type: text + not_null: NOT NULL + oid: + type: bigint + default: "nextval('s_bloc_occupation'::regclass)" + salle_id: + type: bigint + sejour_id: + type: bigint + type_mouvement: + type: text + default: "''::text" + type_programmation: + type: text + default: "''::text" + valide: + type: text + default: "''::text" +indexes: + i_bloc_occupation_date_key: + column: date + method: btree + i_bloc_occupation_medecin_chirurgien_id_key: + column: medecin_chirurgien_id + method: btree + i_bloc_occupation_motif_intervention_id_key: + column: motif_intervention_id + method: btree + i_bloc_occupation_no_sejour_id_key: + column: no_sejour + method: btree + i_bloc_occupation_salle_id_key: + column: salle_id + method: btree + i_bloc_occupation_sejour_id_key: + column: sejour_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_budgets_generes.yaml b/db/schema2/tables/p_budgets_generes.yaml new file mode 100644 index 0000000..9cf1362 --- /dev/null +++ b/db/schema2/tables/p_budgets_generes.yaml @@ -0,0 +1,34 @@ +columns: + budget_saisi_id: + type: bigint + not_null: NOT NULL + date: + type: date + nb_ambulatoires: + type: numeric(11,0) + default: "0" + nb_entrees_directes: + type: numeric(7,0) + default: "0" + nb_externes: + type: numeric(11,0) + default: "0" + nb_jours_js_non_inclus: + type: numeric(11,0) + default: "0" + nb_seances: + type: numeric(11,0) + default: "0" + nb_sorties_directes: + type: numeric(7,0) + default: "0" + parent_id: + type: bigint + not_null: NOT NULL +indexes: + i_budgets_generes_1: + column: budget_saisi_id + method: btree + i_budgets_generes_2: + column: date + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier.yaml b/db/schema2/tables/p_chiffrier.yaml new file mode 100644 index 0000000..fede9bd --- /dev/null +++ b/db/schema2/tables/p_chiffrier.yaml @@ -0,0 +1,8 @@ +columns: + mois: + type: numeric(6,0) + not_null: NOT NULL +constraints: + p_chiffrier_pkey: + type: PRIMARY KEY + column: mois \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_comptable.yaml b/db/schema2/tables/p_chiffrier_comptable.yaml new file mode 100644 index 0000000..fe6a3ff --- /dev/null +++ b/db/schema2/tables/p_chiffrier_comptable.yaml @@ -0,0 +1,35 @@ +columns: + date_comptable: + type: date + not_null: NOT NULL + default: "'2099-12-31'::date" + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + montant_reglements_c: + type: numeric(13,2) + default: "0" + montant_reglements_h: + type: numeric(13,2) + default: "0" + montant_solde_client_c: + type: numeric(13,2) + default: "0" + montant_solde_client_h: + type: numeric(13,2) + default: "0" + montant_ventes_c: + type: numeric(13,2) + default: "0" + montant_ventes_h: + type: numeric(13,2) + default: "0" + provider_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + p_chiffrier_comptable_ukey: + type: PRIMARY KEY + column: date_comptable, finess, provider_id \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_data_calcule_gliss.yaml b/db/schema2/tables/p_chiffrier_data_calcule_gliss.yaml new file mode 100644 index 0000000..4c3d050 --- /dev/null +++ b/db/schema2/tables/p_chiffrier_data_calcule_gliss.yaml @@ -0,0 +1,37 @@ +columns: + date_comptable: + type: date + date_groupage: + type: date + date_occupation: + type: date + date_sortie: + type: date + montant_comptabilise: + type: numeric + montant_comptabilise_dt_grp: + type: numeric + montant_comptabilise_dt_occ: + type: numeric + montant_comptabilise_dt_sor: + type: numeric + montant_encours_cti: + type: numeric + montant_encours_prs: + type: numeric + montant_regle: + type: numeric + montant_report_encours_cti: + type: numeric + montant_report_encours_prs: + type: numeric + montant_solde: + type: numeric + nb_sejour: + type: bigint + nb_sejour_dt_grp: + type: bigint + nb_sejour_dt_occ: + type: bigint + nb_sejour_dt_sor: + type: bigint \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_occupation.yaml b/db/schema2/tables/p_chiffrier_occupation.yaml new file mode 100644 index 0000000..f7838c1 --- /dev/null +++ b/db/schema2/tables/p_chiffrier_occupation.yaml @@ -0,0 +1,26 @@ +columns: + date: + type: date + not_null: NOT NULL + default: "'2099-12-31'::date" + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + nb_entrees_directes: + type: numeric(13,0) + default: "0" + nb_sorties_directes: + type: numeric(13,0) + default: "0" + no_sejour: + type: text + not_null: NOT NULL + provider_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + p_chiffrier_occupation_ukey: + type: PRIMARY KEY + column: date, finess, no_sejour, provider_id \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_resultat_calcule_gliss.yaml b/db/schema2/tables/p_chiffrier_resultat_calcule_gliss.yaml new file mode 100644 index 0000000..7b5671e --- /dev/null +++ b/db/schema2/tables/p_chiffrier_resultat_calcule_gliss.yaml @@ -0,0 +1,51 @@ +columns: + date_comptable: + type: date + mt_act_cpt: + type: numeric + mt_act_cpt_j: + type: numeric + mt_cpt: + type: numeric + mt_cpt_grp: + type: numeric + mt_cpt_grp_j: + type: numeric + mt_cpt_j: + type: numeric + mt_cpt_occ: + type: numeric + mt_cpt_occ_j: + type: numeric + mt_cpt_sor: + type: numeric + mt_cpt_sor_j: + type: numeric + mt_reg: + type: numeric + mt_reg_j: + type: numeric + mt_sol: + type: numeric + mt_sol_j: + type: numeric + nb_sej: + type: numeric + nb_sej_dt_grp: + type: numeric + nb_sej_dt_grp_j: + type: numeric + nb_sej_dt_occ: + type: numeric + nb_sej_dt_occ_j: + type: numeric + nb_sej_dt_sor: + type: numeric + nb_sej_dt_sor_j: + type: numeric + nb_sej_j: + type: numeric + periode: + type: text + texte: + type: text \ No newline at end of file diff --git a/db/schema2/tables/p_chiffrier_shs.yaml b/db/schema2/tables/p_chiffrier_shs.yaml new file mode 100644 index 0000000..1a95cf9 --- /dev/null +++ b/db/schema2/tables/p_chiffrier_shs.yaml @@ -0,0 +1,27 @@ +columns: + date_comptable: + type: date + not_null: NOT NULL + default: "'2099-12-31'::date" + montant_reglements_c: + type: numeric(13,2) + default: "0" + montant_reglements_h: + type: numeric(13,2) + default: "0" + montant_solde_client_c: + type: numeric(13,2) + default: "0" + montant_solde_client_h: + type: numeric(13,2) + default: "0" + montant_ventes_c: + type: numeric(13,2) + default: "0" + montant_ventes_h: + type: numeric(13,2) + default: "0" +constraints: + p_chiffrier_ukey: + type: PRIMARY KEY + column: date_comptable \ No newline at end of file diff --git a/db/schema2/tables/p_consolidation_translation.yaml b/db/schema2/tables/p_consolidation_translation.yaml new file mode 100644 index 0000000..3ca5ada --- /dev/null +++ b/db/schema2/tables/p_consolidation_translation.yaml @@ -0,0 +1,30 @@ +columns: + from_code: + type: text + default: "''::text" + from_database: + type: text + from_id: + type: bigint + default: "0" + table_code: + type: text + to_code: + type: text + default: "''::text" + to_id: + type: bigint + default: "0" +indexes: + i_consolidation_translation_1: + column: from_database + method: btree + i_consolidation_translation_2: + column: table_code + method: btree + i_consolidation_translation_3: + column: from_id + method: btree + i_consolidation_translation_4: + column: to_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_coordonnees_patient.yaml b/db/schema2/tables/p_coordonnees_patient.yaml new file mode 100644 index 0000000..6b5e284 --- /dev/null +++ b/db/schema2/tables/p_coordonnees_patient.yaml @@ -0,0 +1,17 @@ +columns: + adresse: + type: text + code_postal_id: + type: bigint + default: "0" + commune: + type: text + default: "''::text" + email: + type: text + sejour_id: + type: bigint + telephone_fixe: + type: text + telephone_portable: + type: text \ No newline at end of file diff --git a/db/schema2/tables/p_duree_occupation.yaml b/db/schema2/tables/p_duree_occupation.yaml new file mode 100644 index 0000000..e40f6fb --- /dev/null +++ b/db/schema2/tables/p_duree_occupation.yaml @@ -0,0 +1,53 @@ +columns: + duree_occ_eta: + type: bigint + no_sejour: + type: text + v_lieu_etage_code: + type: text + v_lieu_etage_id: + type: bigint + v_lieu_etage_section_code: + type: 'text[]' + v_lieu_etage_section_id: + type: 'bigint[]' + v_lieu_etage_section_texte: + type: 'text[]' + v_lieu_etage_texte: + type: text + v_lieu_lit_code: + type: text + v_lieu_lit_id: + type: bigint + v_lieu_lit_section_code: + type: 'text[]' + v_lieu_lit_section_id: + type: 'bigint[]' + v_lieu_lit_section_texte: + type: 'text[]' + v_lieu_lit_texte: + type: text + v_lieu_unite_fonctionnelle_code: + type: text + v_lieu_unite_fonctionnelle_id: + type: bigint + v_lieu_unite_fonctionnelle_section_code: + type: 'text[]' + v_lieu_unite_fonctionnelle_section_id: + type: 'bigint[]' + v_lieu_unite_fonctionnelle_section_texte: + type: 'text[]' + v_lieu_unite_fonctionnelle_texte: + type: text + v_lieu_unite_medicale_code: + type: text + v_lieu_unite_medicale_id: + type: bigint + v_lieu_unite_medicale_section_code: + type: 'text[]' + v_lieu_unite_medicale_section_id: + type: 'bigint[]' + v_lieu_unite_medicale_section_texte: + type: 'text[]' + v_lieu_unite_medicale_texte: + type: text \ No newline at end of file diff --git a/db/schema2/tables/p_ecriture_comptable.yaml b/db/schema2/tables/p_ecriture_comptable.yaml new file mode 100644 index 0000000..5fbe801 --- /dev/null +++ b/db/schema2/tables/p_ecriture_comptable.yaml @@ -0,0 +1,75 @@ +columns: + clinique_honoraire: + type: text + code_erreur: + type: text + default: "''::text" + code_original: + type: text + default: "''::text" + compte_id: + type: bigint + default: "0" + date_comptable: + type: date + not_null: NOT NULL + default: "'2099-12-31'::date" + est_comptabilise: + type: text + default: "'1'::text" + facture_id: + type: bigint + default: "0" + journal_id: + type: bigint + default: "0" + medecin_id: + type: bigint + default: "0" + mode_reglement_code: + type: text + default: "''::text" + montant_credit: + type: numeric + default: "0" + montant_debit: + type: numeric + default: "0" + no_facture: + type: text + default: "''::text" + no_sejour: + type: text + default: "''::text" + piece: + type: text + default: "''::text" + provider_id: + type: bigint + not_null: NOT NULL + default: "0" + sejour_id: + type: bigint + default: "0" + taux_tva: + type: numeric + default: "0" + texte: + type: text + default: "''::text" + tiers_payant_id: + type: bigint + default: "0" + type_ecriture: + type: text + default: "''::text" + type_piece: + type: text + default: "''::text" +indexes: + i_ecriture_comptable_1: + column: code_original + method: btree + i_ecriture_comptable_2: + column: piece + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_expert_sejour_controle.yaml b/db/schema2/tables/p_expert_sejour_controle.yaml new file mode 100644 index 0000000..cd3c1d5 --- /dev/null +++ b/db/schema2/tables/p_expert_sejour_controle.yaml @@ -0,0 +1,34 @@ +columns: + code_justificatif: + type: text + default: "''::text" + controle_id: + type: bigint + default: "0" + date_correction: + type: date + default: "'2099-12-31'::date" + date_signalement: + type: date + date_sortie: + type: date + no_sejour: + type: text + sejour_id: + type: bigint +indexes: + i_expert_sejour_controle_1: + column: sejour_id + method: btree + i_expert_sejour_controle_2: + column: no_sejour + method: btree + i_expert_sejour_controle_3: + column: controle_id + method: btree + i_expert_sejour_controle_5: + column: date_signalement + method: btree + i_expert_sejour_controle_6: + column: date_correction + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_facture_encours_ligne_valorise_c.yaml b/db/schema2/tables/p_facture_encours_ligne_valorise_c.yaml new file mode 100644 index 0000000..486eabb --- /dev/null +++ b/db/schema2/tables/p_facture_encours_ligne_valorise_c.yaml @@ -0,0 +1,78 @@ +columns: + coefficient: + type: numeric(7,2) + default: "1" + coefficient_mco: + type: numeric(7,4) + default: "1" + date_debut: + type: date + date_fin: + type: date + facture_id: + type: bigint + default: "0" + lieu_id: + type: bigint + default: "0" + lpp_id: + type: bigint + default: "0" + mode_calcul_code: + type: text + default: "''::text" + mode_calcul_texte: + type: text + default: "''::text" + montant_encours: + type: numeric(13,2) + default: "0" + montant_valorise_total: + type: numeric(13,2) + default: "0" + nb_prestation: + type: numeric(5,0) + default: "1" + nb_rubrique: + type: numeric(5,0) + default: "1" + no_facture: + type: text + not_null: NOT NULL + prestation_id: + type: bigint + default: "0" + prix_unitaire: + type: numeric(13,2) + default: "0" + rubrique_facturation_id: + type: bigint + default: "0" + type_ligne_code: + type: text + default: "''::text" + ucd_id: + type: bigint + default: "0" +indexes: + i_facture_encours_ligne_valorise_c_1: + column: no_facture + method: btree + i_facture_encours_ligne_valorise_c_2: + column: prestation_id + method: btree + i_facture_encours_ligne_valorise_c_3: + column: rubrique_facturation_id + method: btree + i_facture_encours_ligne_valorise_c_4: + column: date_fin + method: btree + i_facture_encours_ligne_valorise_c_5: + column: date_debut + method: btree + i_facture_encours_ligne_valorise_c_6: + column: lieu_id + method: btree + i_facture_encours_ligne_valorise_c_8: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_facture_ligne_valorise_c.yaml b/db/schema2/tables/p_facture_ligne_valorise_c.yaml new file mode 100644 index 0000000..fe2c575 --- /dev/null +++ b/db/schema2/tables/p_facture_ligne_valorise_c.yaml @@ -0,0 +1,75 @@ +columns: + coefficient: + type: numeric(7,2) + default: "1" + coefficient_mco: + type: numeric(7,4) + default: "1" + date_debut: + type: date + date_fin: + type: date + facture_id: + type: bigint + default: "0" + lieu_id: + type: bigint + default: "0" + lpp_id: + type: bigint + default: "0" + mode_calcul_code: + type: text + default: "''::text" + mode_calcul_texte: + type: text + default: "''::text" + montant_encours: + type: numeric(13,2) + default: "0" + nb_prestation: + type: numeric(5,0) + default: "1" + nb_rubrique: + type: numeric(5,0) + default: "1" + no_facture: + type: text + not_null: NOT NULL + prestation_id: + type: bigint + default: "0" + prix_unitaire: + type: numeric(13,2) + default: "0" + rubrique_facturation_id: + type: bigint + default: "0" + type_ligne_code: + type: text + default: "''::text" + ucd_id: + type: bigint + default: "0" +indexes: + i_facture_ligne_valorise_c_1: + column: no_facture + method: btree + i_facture_ligne_valorise_c_2: + column: prestation_id + method: btree + i_facture_ligne_valorise_c_3: + column: rubrique_facturation_id + method: btree + i_facture_ligne_valorise_c_4: + column: date_fin + method: btree + i_facture_ligne_valorise_c_5: + column: date_debut + method: btree + i_facture_ligne_valorise_c_6: + column: lieu_id + method: btree + i_facture_ligne_valorise_c_8: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_facture_solde_tiers_c.yaml b/db/schema2/tables/p_facture_solde_tiers_c.yaml new file mode 100644 index 0000000..8fa7bc1 --- /dev/null +++ b/db/schema2/tables/p_facture_solde_tiers_c.yaml @@ -0,0 +1,66 @@ +columns: + date_comptable: + type: date + facture_id: + type: bigint + default: "0" + montant_comptabilise: + type: numeric(13,2) + default: "0" + montant_comptabilise_0: + type: numeric(13,2) + default: "0" + montant_comptabilise_1: + type: numeric(13,2) + default: "0" + montant_comptabilise_2: + type: numeric(13,2) + default: "0" + montant_regle: + type: numeric(13,2) + default: "0" + montant_regle_0: + type: numeric(13,2) + default: "0" + montant_regle_1: + type: numeric(13,2) + default: "0" + montant_regle_2: + type: numeric(13,2) + default: "0" + no_facture: + type: text + not_null: NOT NULL + od_avoir: + type: character(1) + default: "'0'::character varying" + od_non_comptabilise: + type: text + default: "'0'::text" + prestation_id: + type: bigint + default: "0" + rubrique_comptabilisation_id: + type: bigint + default: "0" + tiers_payant_id: + type: bigint +indexes: + i_facture_solde_tiers_c_1: + column: no_facture + method: btree + i_facture_solde_tiers_c_2: + column: prestation_id + method: btree + i_facture_solde_tiers_c_3: + column: rubrique_comptabilisation_id + method: btree + i_facture_solde_tiers_c_4: + column: date_comptable + method: btree + i_facture_solde_tiers_c_5: + column: tiers_payant_id + method: btree + i_facture_solde_tiers_c_8: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_facture_solde_tiers_h.yaml b/db/schema2/tables/p_facture_solde_tiers_h.yaml new file mode 100644 index 0000000..77e45b6 --- /dev/null +++ b/db/schema2/tables/p_facture_solde_tiers_h.yaml @@ -0,0 +1,66 @@ +columns: + date_comptable: + type: date + facture_id: + type: bigint + default: "0" + montant_comptabilise: + type: numeric(13,2) + default: "0" + montant_comptabilise_0: + type: numeric(13,2) + default: "0" + montant_comptabilise_1: + type: numeric(13,2) + default: "0" + montant_comptabilise_2: + type: numeric(13,2) + default: "0" + montant_regle: + type: numeric(13,2) + default: "0" + montant_regle_0: + type: numeric(13,2) + default: "0" + montant_regle_1: + type: numeric(13,2) + default: "0" + montant_regle_2: + type: numeric(13,2) + default: "0" + no_facture: + type: text + not_null: NOT NULL + od_avoir: + type: character(1) + default: "'0'::character varying" + od_non_comptabilise: + type: text + default: "'0'::text" + prestation_id: + type: bigint + default: "0" + rubrique_comptabilisation_id: + type: bigint + default: "0" + tiers_payant_id: + type: bigint +indexes: + i_facture_solde_tiers_h_1: + column: no_facture + method: btree + i_facture_solde_tiers_h_2: + column: prestation_id + method: btree + i_facture_solde_tiers_h_3: + column: rubrique_comptabilisation_id + method: btree + i_facture_solde_tiers_h_4: + column: date_comptable + method: btree + i_facture_solde_tiers_h_5: + column: tiers_payant_id + method: btree + i_facture_solde_tiers_h_8: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures.yaml b/db/schema2/tables/p_factures.yaml new file mode 100644 index 0000000..b219f9d --- /dev/null +++ b/db/schema2/tables/p_factures.yaml @@ -0,0 +1,438 @@ +columns: + code_cloture: + type: character(1) + default: "0" + code_cp_demandee: + type: character(1) + default: "0" + code_expedie_0: + type: character(1) + default: "''::bpchar" + code_expedie_1: + type: character(1) + default: "''::bpchar" + code_expedie_2: + type: character(1) + default: "''::bpchar" + code_expedie_22: + type: character(1) + default: "''::bpchar" + code_facture: + type: character(1) + default: "'0'::bpchar" + code_vente: + type: character(1) + default: "0" + date_debut: + type: date + date_encours: + type: date + default: "'2099-12-31'::date" + date_expedition: + type: date + default: "'2099-12-31'::date" + date_expedition_0: + type: date + default: "'2099-12-31'::date" + date_expedition_1: + type: date + default: "'2099-12-31'::date" + date_expedition_2: + type: date + default: "'2099-12-31'::date" + date_expedition_22: + type: date + default: "'2099-12-31'::date" + date_facture: + type: date + default: "'2099-12-31'::date" + date_fin: + type: date + date_solde: + type: date + default: "'2099-12-31'::date" + date_solde_0_c: + type: date + default: "'2099-12-31'::date" + date_solde_0_h: + type: date + default: "'2099-12-31'::date" + date_solde_1_c: + type: date + default: "'2099-12-31'::date" + date_solde_1_h: + type: date + default: "'2099-12-31'::date" + date_solde_22_c: + type: date + default: "'2099-12-31'::date" + date_solde_22_h: + type: date + default: "'2099-12-31'::date" + date_solde_2_c: + type: date + default: "'2099-12-31'::date" + date_solde_2_h: + type: date + default: "'2099-12-31'::date" + date_solde_c: + type: date + default: "'2099-12-31'::date" + date_solde_h: + type: date + default: "'2099-12-31'::date" + date_solde_reference: + type: date + default: "'2099-12-31'::date" + date_solde_reference_0_c: + type: date + default: "'2099-12-31'::date" + date_solde_reference_0_h: + type: date + default: "'2099-12-31'::date" + date_solde_reference_1_c: + type: date + default: "'2099-12-31'::date" + date_solde_reference_1_h: + type: date + default: "'2099-12-31'::date" + date_solde_reference_22_c: + type: date + default: "'2099-12-31'::date" + date_solde_reference_22_h: + type: date + default: "'2099-12-31'::date" + date_solde_reference_2_c: + type: date + default: "'2099-12-31'::date" + date_solde_reference_2_h: + type: date + default: "'2099-12-31'::date" + date_solde_reference_c: + type: date + default: "'2099-12-31'::date" + date_solde_reference_h: + type: date + default: "'2099-12-31'::date" + date_vente: + type: date + delai_expedition: + type: numeric(5,0) + default: "0" + delai_expedition_0: + type: numeric(5,0) + default: "0" + delai_expedition_1: + type: numeric(5,0) + default: "0" + delai_expedition_2: + type: numeric(5,0) + default: "0" + delai_expedition_22: + type: numeric(5,0) + default: "0" + delai_facture: + type: numeric(5,0) + default: "0" + delai_solde: + type: numeric(5,0) + default: "0" + delai_solde_0_c: + type: numeric(5,0) + default: "0" + delai_solde_0_h: + type: numeric(5,0) + default: "0" + delai_solde_1_c: + type: numeric(5,0) + default: "0" + delai_solde_1_h: + type: numeric(5,0) + default: "0" + delai_solde_22_c: + type: numeric(5,0) + default: "0" + delai_solde_22_h: + type: numeric(5,0) + default: "0" + delai_solde_2_c: + type: numeric(5,0) + default: "0" + delai_solde_2_h: + type: numeric(5,0) + default: "0" + facture_od_avoir_id: + type: bigint + default: "0" + facture_reference_id: + type: bigint + default: "0" + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + ghm_id: + type: bigint + default: "0" + ghs_bebe1_id: + type: bigint + default: "0" + ghs_bebe2_id: + type: bigint + default: "0" + ghs_bebe3_id: + type: bigint + default: "0" + ghs_id: + type: bigint + default: "0" + gmt_id: + type: bigint + default: "0" + mois_vente: + type: numeric(6,0) + default: "0" + montant_comptabilise_0_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_0_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_1_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_1_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_22_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_22_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_2_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_2_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_budget_global_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_h: + type: numeric(13,2) + default: "0" + montant_encours_0_c: + type: numeric(13,2) + default: "0" + montant_encours_0_h: + type: numeric(13,2) + default: "0" + montant_encours_1_c: + type: numeric(13,2) + default: "0" + montant_encours_1_h: + type: numeric(13,2) + default: "0" + montant_encours_22_c: + type: numeric(13,2) + default: "0" + montant_encours_22_h: + type: numeric(13,2) + default: "0" + montant_encours_2_c: + type: numeric(13,2) + default: "0" + montant_encours_2_h: + type: numeric(13,2) + default: "0" + montant_encours_c: + type: numeric(13,2) + default: "0" + montant_encours_h: + type: numeric(13,2) + default: "0" + montant_facture_0_c: + type: numeric(13,2) + default: "0" + montant_facture_0_h: + type: numeric(13,2) + default: "0" + montant_facture_1_c: + type: numeric(13,2) + default: "0" + montant_facture_1_h: + type: numeric(13,2) + default: "0" + montant_facture_22_c: + type: numeric(13,2) + default: "0" + montant_facture_22_h: + type: numeric(13,2) + default: "0" + montant_facture_2_c: + type: numeric(13,2) + default: "0" + montant_facture_2_h: + type: numeric(13,2) + default: "0" + montant_facture_c: + type: numeric(13,2) + default: "0" + montant_facture_c_actes_inclus_dans_sejour: + type: numeric(13,2) + default: "0" + montant_facture_h: + type: numeric(13,2) + default: "0" + montant_facture_h_actes_inclus_dans_sejour: + type: numeric(13,2) + default: "0" + montant_regle_0_c: + type: numeric(13,2) + default: "0" + montant_regle_0_h: + type: numeric(13,2) + default: "0" + montant_regle_1_c: + type: numeric(13,2) + default: "0" + montant_regle_1_h: + type: numeric(13,2) + default: "0" + montant_regle_22_c: + type: numeric(13,2) + default: "0" + montant_regle_22_h: + type: numeric(13,2) + default: "0" + montant_regle_2_c: + type: numeric(13,2) + default: "0" + montant_regle_2_h: + type: numeric(13,2) + default: "0" + montant_regle_c: + type: numeric(13,2) + default: "0" + montant_regle_h: + type: numeric(13,2) + default: "0" + motif_non_facturation_comment: + type: text + default: "''::text" + motif_non_facturation_id: + type: bigint + default: "0" + nb_rejets: + type: numeric + default: "0" + no_bordereau_0: + type: text + default: "''::text" + no_bordereau_1: + type: text + default: "''::text" + no_bordereau_2: + type: text + default: "''::text" + no_bordereau_22: + type: text + default: "''::text" + no_facture: + type: text + not_null: NOT NULL + no_facture_od_avoir: + type: text + default: "''::text" + no_facture_reference: + type: text + default: "''::text" + no_sejour: + type: text + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_factures'::regclass)" + particularite_t2a: + type: text + default: "''::text" + comment: | + SE1 = Forfait SE1 + SE2 = Forfait SE2 + SE3 = Forfait SE3 + provider_id: + type: bigint + default: "0" + sejour_id: + type: bigint + default: "0" + tiers_payant_0_id: + type: bigint + default: "0" + tiers_payant_1_id: + type: bigint + default: "0" + tiers_payant_22_id: + type: bigint + default: "0" + tiers_payant_2_id: + type: bigint + default: "0" + type_facture: + type: character(1) + default: "0" +constraints: + p_factures_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_factures_1: + column: no_facture, no_sejour + method: btree + i_factures_10: + column: date_vente + method: btree + i_factures_11: + column: no_facture_reference + method: btree + i_factures_12: + column: no_facture_od_avoir + method: btree + i_factures_13: + column: sejour_id + method: btree + i_factures_14: + column: facture_reference_id + method: btree + i_factures_15: + column: date_fin + method: btree + i_factures_2: + column: no_facture + method: btree + i_factures_3: + column: tiers_payant_1_id + method: btree + i_factures_4: + column: tiers_payant_2_id + method: btree + i_factures_5: + column: no_sejour + method: btree + i_factures_6: + column: tiers_payant_0_id + method: btree + i_factures_7: + column: tiers_payant_22_id + method: btree + i_factures_8: + column: ghs_id + method: btree + i_factures_9: + column: date_facture + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_comptables.yaml b/db/schema2/tables/p_factures_comptables.yaml new file mode 100644 index 0000000..b10058c --- /dev/null +++ b/db/schema2/tables/p_factures_comptables.yaml @@ -0,0 +1,39 @@ +columns: + date_comptable: + type: date + not_null: NOT NULL + default: "'2099-12-31'::date" + facture_id: + type: bigint + default: "0" + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + montant_reglements_c: + type: numeric(13,2) + default: "0" + montant_reglements_h: + type: numeric(13,2) + default: "0" + montant_ventes_c: + type: numeric(13,2) + default: "0" + montant_ventes_h: + type: numeric(13,2) + default: "0" + no_facture: + type: text + not_null: NOT NULL + provider_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + p_factures_comptables_ukey: + type: PRIMARY KEY + column: date_comptable, no_facture +indexes: + i_factures_comptables_1: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_encours.yaml b/db/schema2/tables/p_factures_encours.yaml new file mode 100644 index 0000000..40be769 --- /dev/null +++ b/db/schema2/tables/p_factures_encours.yaml @@ -0,0 +1,155 @@ +columns: + code_cp_demandee: + type: character(1) + default: "0" + code_origine: + type: character(1) + default: "'C'::bpchar" + code_sorti: + type: character(1) + default: "'0'::bpchar" + date_calcul: + type: date + default: "'2099-12-31'::date" + date_debut: + type: date + date_encours: + type: date + default: "'2099-12-31'::date" + date_entree: + type: date + date_fin: + type: date + date_groupage: + type: date + date_sortie: + type: date + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + ghm_id: + type: bigint + ghs_bebe1_id: + type: bigint + default: "0" + ghs_bebe2_id: + type: bigint + default: "0" + ghs_bebe3_id: + type: bigint + default: "0" + ghs_id: + type: bigint + default: "0" + heure_entree: + type: numeric(6,0) + heure_sortie: + type: numeric(6,0) + lieu_sortie_id: + type: bigint + montant_encours_0_c: + type: numeric(13,2) + default: "0" + montant_encours_0_h: + type: numeric(13,2) + default: "0" + montant_encours_1_c: + type: numeric(13,2) + default: "0" + montant_encours_1_h: + type: numeric(13,2) + default: "0" + montant_encours_22_c: + type: numeric(13,2) + default: "0" + montant_encours_22_h: + type: numeric(13,2) + default: "0" + montant_encours_2_c: + type: numeric(13,2) + default: "0" + montant_encours_2_h: + type: numeric(13,2) + default: "0" + montant_encours_c: + type: numeric(13,2) + default: "0" + montant_encours_h: + type: numeric(13,2) + default: "0" + no_facture: + type: text + not_null: NOT NULL + no_facture_reference: + type: text + default: "''::text" + no_sejour: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_factures_encours'::regclass)" + provider_id: + type: bigint + sejour_id: + type: bigint + not_null: NOT NULL + tiers_payant_0_id: + type: bigint + default: "0" + tiers_payant_1_id: + type: bigint + default: "0" + tiers_payant_22_id: + type: bigint + default: "0" + tiers_payant_2_id: + type: bigint + default: "0" + type_sejour: + type: text + filiere_soin_principale_id: + type: bigint + default: "0" +constraints: + p_factures_encours_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_factures_encours_1: + column: no_facture + method: btree + i_factures_encours_10: + column: sejour_id + method: btree + i_factures_encours_11: + column: ghs_id + method: btree + i_factures_encours_12: + column: no_sejour + method: btree + i_factures_encours_13: + column: type_sejour + method: btree + i_factures_encours_2: + column: date_encours + method: btree + i_factures_encours_4: + column: no_facture_reference + method: btree + i_factures_encours_5: + column: date_fin + method: btree + i_factures_encours_6: + column: tiers_payant_1_id + method: btree + i_factures_encours_7: + column: tiers_payant_2_id + method: btree + i_factures_encours_8: + column: tiers_payant_0_id + method: btree + i_factures_encours_9: + column: tiers_payant_22_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_encours_lignes_c.yaml b/db/schema2/tables/p_factures_encours_lignes_c.yaml new file mode 100644 index 0000000..bc8c998 --- /dev/null +++ b/db/schema2/tables/p_factures_encours_lignes_c.yaml @@ -0,0 +1,118 @@ +columns: + coefficient: + type: numeric(7,2) + default: "1" + coefficient_mco: + type: numeric(7,4) + default: "1" + compte_produit_analytique_id: + type: bigint + default: "0" + compte_produit_id: + type: bigint + default: "0" + date_debut: + type: date + date_fin: + type: date + facture_id: + type: bigint + default: "0" + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + lieu_id: + type: bigint + default: "0" + lpp_id: + type: bigint + default: "0" + montant_encours: + type: numeric(13,2) + default: "0" + montant_encours_0: + type: numeric(13,2) + default: "0" + montant_encours_1: + type: numeric(13,2) + default: "0" + montant_encours_2: + type: numeric(13,2) + default: "0" + montant_encours_22: + type: numeric(13,2) + default: "0" + nb_prestation: + type: numeric(5,0) + default: "1" + nb_rubrique: + type: numeric(5,0) + default: "1" + no_facture: + type: text + not_null: NOT NULL + pole_id: + type: bigint + default: "0" + prestation_id: + type: bigint + default: "0" + prix_unitaire: + type: numeric(13,2) + default: "0" + rubrique_comptabilisation_id: + type: bigint + default: "0" + rubrique_facturation_id: + type: bigint + default: "0" + rubrique_facture_id: + type: bigint + default: "0" + taux_0: + type: numeric(5,2) + default: "0" + taux_1: + type: numeric(5,2) + default: "0" + taux_2: + type: numeric(5,2) + default: "0" + taux_22: + type: numeric(5,2) + default: "0" + ucd_id: + type: bigint + default: "0" +indexes: + i_factures_encours_lignes_c_1: + column: no_facture + method: btree + i_factures_encours_lignes_c_2: + column: prestation_id + method: btree + i_factures_encours_lignes_c_3: + column: rubrique_facturation_id + method: btree + i_factures_encours_lignes_c_4: + column: date_fin + method: btree + i_factures_encours_lignes_c_5: + column: date_debut + method: btree + i_factures_encours_lignes_c_6: + column: lieu_id + method: btree + i_factures_encours_lignes_c_7: + column: rubrique_comptabilisation_id + method: btree + i_factures_encours_lignes_c_8: + column: facture_id + method: btree + i_factures_encours_lignes_c_compte_produit_analytique_id: + column: compte_produit_analytique_id + method: btree + i_factures_encours_lignes_c_rubrique_facture_id: + column: rubrique_facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_lignes_c.yaml b/db/schema2/tables/p_factures_lignes_c.yaml new file mode 100644 index 0000000..7eb9059 --- /dev/null +++ b/db/schema2/tables/p_factures_lignes_c.yaml @@ -0,0 +1,184 @@ +columns: + budget_cle_id: + type: bigint + default: "0" + coefficient: + type: numeric(7,2) + default: "1" + coefficient_mco: + type: numeric(7,4) + default: "1" + compte_produit_analytique_id: + type: bigint + default: "0" + compte_produit_id: + type: bigint + default: "0" + date_debut: + type: date + date_fin: + type: date + facture_id: + type: bigint + default: "0" + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + lieu_id: + type: bigint + default: "0" + lpp_id: + type: bigint + default: "0" + montant_comptabilise: + type: numeric(13,2) + default: "0" + montant_comptabilise_0: + type: numeric(13,2) + default: "0" + montant_comptabilise_1: + type: numeric(13,2) + default: "0" + montant_comptabilise_2: + type: numeric(13,2) + default: "0" + montant_comptabilise_22: + type: numeric(13,2) + default: "0" + montant_comptabilise_budget_global_1: + type: numeric(13,2) + default: "0" + montant_encours: + type: numeric(13,2) + default: "0" + montant_encours_0: + type: numeric(13,2) + default: "0" + montant_encours_1: + type: numeric(13,2) + default: "0" + montant_encours_2: + type: numeric(13,2) + default: "0" + montant_encours_22: + type: numeric(13,2) + default: "0" + montant_facture: + type: numeric(13,2) + default: "0" + montant_facture_0: + type: numeric(13,2) + default: "0" + montant_facture_0_actes_inclus_dans_sejour: + type: numeric(13,2) + default: "0" + montant_facture_1: + type: numeric(13,2) + default: "0" + montant_facture_1_actes_inclus_dans_sejour: + type: numeric(13,2) + default: "0" + montant_facture_2: + type: numeric(13,2) + default: "0" + montant_facture_22: + type: numeric(13,2) + default: "0" + montant_facture_22_actes_inclus_dans_sejour: + type: numeric(13,2) + default: "0" + montant_facture_2_actes_inclus_dans_sejour: + type: numeric(13,2) + default: "0" + montant_facture_actes_inclus_dans_sejour: + type: numeric(13,2) + default: "0" + nb_prestation: + type: numeric(5,0) + default: "1" + nb_rubrique: + type: numeric(5,0) + default: "1" + no_facture: + type: text + not_null: NOT NULL + origine_facturation_id: + type: integer + default: "1" + pole_id: + type: bigint + default: "0" + prestation_id: + type: bigint + default: "0" + prix_unitaire: + type: numeric(13,2) + default: "0" + protocole_id: + type: bigint + default: "0" + rubrique_comptabilisation_id: + type: bigint + default: "0" + rubrique_facturation_id: + type: bigint + default: "0" + rubrique_facture_id: + type: bigint + default: "0" + taux_0: + type: numeric(5,2) + default: "0" + taux_1: + type: numeric(5,2) + default: "0" + taux_2: + type: numeric(5,2) + default: "0" + taux_22: + type: numeric(5,2) + default: "0" + taux_tva: + type: numeric + default: "0" + ucd_id: + type: bigint + default: "0" +indexes: + i_factures_lignes_c_1: + column: no_facture + method: btree + i_factures_lignes_c_2: + column: prestation_id + method: btree + i_factures_lignes_c_3: + column: rubrique_facturation_id + method: btree + i_factures_lignes_c_4: + column: date_fin + method: btree + i_factures_lignes_c_5: + column: date_debut + method: btree + i_factures_lignes_c_6: + column: lieu_id + method: btree + i_factures_lignes_c_7: + column: rubrique_comptabilisation_id + method: btree + i_factures_lignes_c_8: + column: facture_id + method: btree + i_factures_lignes_c_budget_cle_id: + column: budget_cle_id + method: btree + i_factures_lignes_c_compte_produit_analytique_id: + column: compte_produit_analytique_id + method: btree + i_factures_lignes_c_pole_id: + column: pole_id + method: btree + i_factures_lignes_c_rubrique_facture_id: + column: rubrique_facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_lignes_h.yaml b/db/schema2/tables/p_factures_lignes_h.yaml new file mode 100644 index 0000000..b0b8386 --- /dev/null +++ b/db/schema2/tables/p_factures_lignes_h.yaml @@ -0,0 +1,185 @@ +columns: + acte_id: + type: bigint + default: "0" + activite_ccam: + type: character(1) + default: "''::bpchar" + coefficient: + type: numeric(9,2) + default: "1" + coefficient_mco: + type: numeric(7,4) + default: "1" + date_debut: + type: date + date_fin: + type: date + extension_ccam: + type: character(1) + default: "''::bpchar" + facture_id: + type: bigint + default: "0" + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + heure_debut: + type: integer + default: "0" + lieu_id: + type: bigint + default: "0" + medecin_comptabilise_id: + type: bigint + default: "0" + medecin_facture_id: + type: bigint + default: "0" + modificateur_ccam_1: + type: character(1) + default: "''::bpchar" + modificateur_ccam_2: + type: character(1) + default: "''::bpchar" + modificateur_ccam_3: + type: character(1) + default: "''::bpchar" + modificateur_ccam_4: + type: character(1) + default: "''::bpchar" + montant_comptabilise: + type: numeric(13,2) + default: "0" + montant_comptabilise_0: + type: numeric(13,2) + default: "0" + montant_comptabilise_1: + type: numeric(13,2) + default: "0" + montant_comptabilise_2: + type: numeric(13,2) + default: "0" + montant_comptabilise_22: + type: numeric(13,2) + default: "0" + montant_depassement: + type: numeric(13,2) + default: "0" + montant_encours: + type: numeric(13,2) + default: "0" + montant_encours_0: + type: numeric(13,2) + default: "0" + montant_encours_1: + type: numeric(13,2) + default: "0" + montant_encours_2: + type: numeric(13,2) + default: "0" + montant_encours_22: + type: numeric(13,2) + default: "0" + montant_facture: + type: numeric(13,2) + default: "0" + montant_facture_0: + type: numeric(13,2) + default: "0" + montant_facture_0_actes_inclus_dans_sejour: + type: numeric(13,2) + montant_facture_1: + type: numeric(13,2) + default: "0" + montant_facture_1_actes_inclus_dans_sejour: + type: numeric(13,2) + montant_facture_2: + type: numeric(13,2) + default: "0" + montant_facture_22: + type: numeric(13,2) + default: "0" + montant_facture_22_actes_inclus_dans_sejour: + type: numeric(13,2) + montant_facture_2_actes_inclus_dans_sejour: + type: numeric(13,2) + montant_facture_actes_inclus_dans_sejour: + type: numeric(13,2) + montant_non_facture: + type: numeric(13,2) + default: "0" + nb_prestation: + type: numeric(5,0) + default: "1" + nb_rubrique: + type: numeric(5,0) + default: "1" + no_facture: + type: text + not_null: NOT NULL + phase_ccam: + type: character(1) + default: "''::bpchar" + pole_id: + type: bigint + default: "0" + prestation_id: + type: bigint + default: "0" + prix_unitaire: + type: numeric(13,2) + default: "0" + protocole_id: + type: bigint + default: "0" + rubrique_comptabilisation_id: + type: bigint + default: "0" + rubrique_facturation_id: + type: bigint + default: "0" + taux_0: + type: numeric(5,2) + default: "0" + taux_1: + type: numeric(5,2) + default: "0" + taux_2: + type: numeric(5,2) + default: "0" + taux_22: + type: numeric(5,2) + default: "0" +indexes: + i_factures_lignes_h_1: + column: no_facture + method: btree + i_factures_lignes_h_2: + column: prestation_id + method: btree + i_factures_lignes_h_3: + column: medecin_facture_id + method: btree + i_factures_lignes_h_4: + column: medecin_comptabilise_id + method: btree + i_factures_lignes_h_5: + column: date_fin + method: btree + i_factures_lignes_h_6: + column: date_debut + method: btree + i_factures_lignes_h_7: + column: lieu_id + method: btree + i_factures_lignes_h_8: + column: acte_id + method: btree + i_factures_lignes_h_9: + column: facture_id + method: btree + i_factures_lignes_h_pole_id: + column: pole_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_lignes_non_facturees_c.yaml b/db/schema2/tables/p_factures_lignes_non_facturees_c.yaml new file mode 100644 index 0000000..62074cf --- /dev/null +++ b/db/schema2/tables/p_factures_lignes_non_facturees_c.yaml @@ -0,0 +1,63 @@ +columns: + coefficient: + type: numeric(7,2) + default: "1" + coefficient_mco: + type: numeric + default: "1" + date_debut: + type: date + date_fin: + type: date + facture_id: + type: bigint + default: "0" + lieu_id: + type: bigint + default: "0" + lpp_id: + type: bigint + default: "0" + montant_encours: + type: numeric(13,2) + default: "0" + nb_rubrique: + type: numeric(5,0) + default: "1" + no_facture: + type: text + not_null: NOT NULL + prestation_id: + type: bigint + default: "0" + prix_unitaire: + type: numeric(13,2) + default: "0" + rubrique_facturation_id: + type: bigint + default: "0" + ucd_id: + type: bigint + default: "0" +indexes: + i_factures_lignes_non_facturees_c_1: + column: no_facture + method: btree + i_factures_lignes_non_facturees_c_2: + column: prestation_id + method: btree + i_factures_lignes_non_facturees_c_3: + column: rubrique_facturation_id + method: btree + i_factures_lignes_non_facturees_c_4: + column: date_fin + method: btree + i_factures_lignes_non_facturees_c_5: + column: date_debut + method: btree + i_factures_lignes_non_facturees_c_6: + column: lieu_id + method: btree + i_factures_lignes_non_facturees_c_8: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_lignes_non_facturees_h.yaml b/db/schema2/tables/p_factures_lignes_non_facturees_h.yaml new file mode 100644 index 0000000..3f6ce84 --- /dev/null +++ b/db/schema2/tables/p_factures_lignes_non_facturees_h.yaml @@ -0,0 +1,66 @@ +columns: + acte_id: + type: bigint + default: "0" + activite_ccam: + type: character(1) + default: "''::bpchar" + coefficient: + type: numeric(7,2) + default: "1" + date_debut: + type: date + date_fin: + type: date + extension_ccam: + type: character(1) + default: "''::bpchar" + facture_id: + type: bigint + default: "0" + heure_debut: + type: integer + default: "0" + lieu_id: + type: bigint + default: "0" + medecin_facture_id: + type: bigint + default: "0" + modificateur_ccam_1: + type: character(1) + default: "''::bpchar" + modificateur_ccam_2: + type: character(1) + default: "''::bpchar" + modificateur_ccam_3: + type: character(1) + default: "''::bpchar" + modificateur_ccam_4: + type: character(1) + default: "''::bpchar" + montant_depassement: + type: numeric(13,2) + default: "0" + nb_rubrique: + type: numeric(5,0) + default: "1" + no_facture: + type: text + not_null: NOT NULL + phase_ccam: + type: character(1) + default: "''::bpchar" + prestation_id: + type: bigint + default: "0" + prix_unitaire: + type: numeric(13,2) + default: "0" + rubrique_facturation_id: + type: bigint + default: "0" +indexes: + i_factures_lignes_non_facturees_h_8: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_reference.yaml b/db/schema2/tables/p_factures_reference.yaml new file mode 100644 index 0000000..a38a7b5 --- /dev/null +++ b/db/schema2/tables/p_factures_reference.yaml @@ -0,0 +1,357 @@ +columns: + code_expedie_0: + type: text + code_expedie_1: + type: character(1) + code_expedie_2: + type: character(1) + code_facture: + type: text + code_sorti: + type: numeric(1,0) + code_vente: + type: character(1) + date_debut_facture: + type: date + date_entree: + type: date + date_expedition: + type: date + date_expedition_0: + type: date + date_expedition_1: + type: date + date_expedition_2: + type: date + date_facture: + type: date + date_fin_facture: + type: date + date_groupage: + type: date + date_solde: + type: date + date_solde_0: + type: date + date_solde_0_c: + type: date + date_solde_0_h: + type: date + date_solde_1: + type: date + date_solde_1_c: + type: date + date_solde_1_h: + type: date + date_solde_2: + type: date + date_solde_2_c: + type: date + date_solde_2_h: + type: date + date_solde_c: + type: date + date_solde_h: + type: date + date_sortie: + type: date + date_vente: + type: date + delai_expedition: + type: numeric + delai_expedition_0: + type: numeric + delai_expedition_1: + type: numeric + delai_expedition_2: + type: numeric + delai_facture: + type: numeric + delai_groupage: + type: numeric + delai_solde: + type: numeric + delai_solde_0: + type: numeric + delai_solde_0_c: + type: numeric + delai_solde_0_h: + type: numeric + delai_solde_1: + type: numeric + delai_solde_1_c: + type: numeric + delai_solde_1_h: + type: numeric + delai_solde_2: + type: numeric + delai_solde_2_c: + type: numeric + delai_solde_2_h: + type: numeric + delai_solde_c: + type: numeric + delai_solde_h: + type: numeric + facture_reference_id: + type: bigint + ghs_bebe1_id: + type: bigint + ghs_bebe2_id: + type: bigint + ghs_bebe3_id: + type: bigint + ghs_id: + type: bigint + gmt_id: + type: bigint + default: "0" + lieu_sortie_id: + type: bigint + default: "0" + montant_comptabilise: + type: numeric + montant_comptabilise_0: + type: numeric + montant_comptabilise_0_c: + type: numeric + montant_comptabilise_0_h: + type: numeric + montant_comptabilise_1: + type: numeric + montant_comptabilise_1_c: + type: numeric + montant_comptabilise_1_h: + type: numeric + montant_comptabilise_2: + type: numeric + montant_comptabilise_2_c: + type: numeric + montant_comptabilise_2_h: + type: numeric + montant_comptabilise_budget_global_c: + type: numeric + montant_comptabilise_c: + type: numeric + montant_comptabilise_h: + type: numeric + montant_encours: + type: numeric + montant_encours_0: + type: numeric + montant_encours_0_c: + type: numeric + montant_encours_0_h: + type: numeric + montant_encours_1: + type: numeric + montant_encours_1_c: + type: numeric + montant_encours_1_h: + type: numeric + montant_encours_2: + type: numeric + montant_encours_2_c: + type: numeric + montant_encours_2_h: + type: numeric + montant_encours_c: + type: numeric + montant_encours_h: + type: numeric + montant_facture: + type: numeric + montant_facture_0: + type: numeric + montant_facture_0_c: + type: numeric + montant_facture_0_h: + type: numeric + montant_facture_1: + type: numeric + montant_facture_1_c: + type: numeric + montant_facture_1_h: + type: numeric + montant_facture_2: + type: numeric + montant_facture_2_c: + type: numeric + montant_facture_2_h: + type: numeric + montant_facture_c: + type: numeric + montant_facture_c_actes_inclus_dans_sejour: + type: numeric + montant_facture_h: + type: numeric + montant_facture_h_actes_inclus_dans_sejour: + type: numeric + montant_regle: + type: numeric + montant_regle_0: + type: numeric + montant_regle_0_c: + type: numeric + montant_regle_0_h: + type: numeric + montant_regle_1: + type: numeric + montant_regle_1_c: + type: numeric + montant_regle_1_h: + type: numeric + montant_regle_2: + type: numeric + montant_regle_2_c: + type: numeric + montant_regle_2_h: + type: numeric + montant_regle_c: + type: numeric + montant_regle_h: + type: numeric + motif_non_facturation_comment: + type: text + default: "''::text" + motif_non_facturation_id: + type: bigint + default: "0" + nb_calculable: + type: numeric + nb_factures: + type: bigint + nb_factures_regularisation: + type: bigint + nb_groupe: + type: numeric + nb_non_calcules: + type: integer + nb_non_calcules_bg: + type: integer + nb_non_calcules_horsbg: + type: integer + nb_non_cloture: + type: integer + nb_non_cloture_0: + type: integer + nb_non_cloture_0_c: + type: integer + nb_non_cloture_0_h: + type: integer + nb_non_cloture_1: + type: integer + nb_non_cloture_1_c: + type: integer + nb_non_cloture_1_h: + type: integer + nb_non_cloture_2: + type: integer + nb_non_cloture_2_c: + type: integer + nb_non_cloture_2_h: + type: integer + nb_non_cloture_c: + type: integer + nb_non_cloture_h: + type: integer + nb_non_expedie: + type: numeric + nb_non_expedie_0: + type: numeric + nb_non_expedie_0_c: + type: numeric + nb_non_expedie_0_h: + type: numeric + nb_non_expedie_1: + type: numeric + nb_non_expedie_1_c: + type: numeric + nb_non_expedie_1_h: + type: numeric + nb_non_expedie_2: + type: numeric + nb_non_expedie_2_c: + type: numeric + nb_non_expedie_2_h: + type: numeric + nb_non_expedie_c: + type: numeric + nb_non_expedie_h: + type: numeric + nb_non_groupe: + type: numeric + nb_non_solde: + type: numeric + nb_non_solde_0: + type: numeric + nb_non_solde_0_c: + type: numeric + nb_non_solde_0_h: + type: numeric + nb_non_solde_1: + type: numeric + nb_non_solde_1_c: + type: numeric + nb_non_solde_1_h: + type: numeric + nb_non_solde_2: + type: numeric + nb_non_solde_2_c: + type: numeric + nb_non_solde_2_h: + type: numeric + nb_non_solde_c: + type: numeric + nb_non_solde_h: + type: numeric + nb_rejets: + type: numeric + nb_rubriques_c: + type: numeric + nb_rubriques_h: + type: numeric + no_bordereau_0: + type: text + no_bordereau_1: + type: text + no_bordereau_2: + type: text + no_facture_reference: + type: text + no_sejour: + type: text + pole_sortie_id: + type: bigint + default: "0" + retard_facture: + type: numeric + retard_groupage: + type: numeric + sejour_id: + type: bigint + tiers_payant_0_id: + type: bigint + tiers_payant_1_id: + type: bigint + tiers_payant_22_id: + type: bigint + tiers_payant_2_id: + type: bigint + type_facture: + type: character(1) + type_t2a: + type: character(1) +indexes: + i_factures_reference_1: + column: sejour_id + method: btree + i_factures_reference_2: + column: no_sejour + method: btree + i_factures_reference_3: + column: tiers_payant_1_id + method: btree + i_factures_reference_4: + column: date_fin_facture + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_reference_tiers.yaml b/db/schema2/tables/p_factures_reference_tiers.yaml new file mode 100644 index 0000000..2145761 --- /dev/null +++ b/db/schema2/tables/p_factures_reference_tiers.yaml @@ -0,0 +1,347 @@ +columns: + code_expedie_0: + type: text + code_expedie_1: + type: character(1) + code_expedie_2: + type: character(1) + code_facture: + type: text + code_sorti: + type: numeric(1,0) + code_vente: + type: character(1) + date_debut_facture: + type: date + date_entree: + type: date + date_expedition: + type: date + date_expedition_0: + type: date + date_expedition_1: + type: date + date_expedition_2: + type: date + date_facture: + type: date + date_fin_facture: + type: date + date_groupage: + type: date + date_solde: + type: date + date_solde_0: + type: date + date_solde_0_c: + type: date + date_solde_0_h: + type: date + date_solde_1: + type: date + date_solde_1_c: + type: date + date_solde_1_h: + type: date + date_solde_2: + type: date + date_solde_2_c: + type: date + date_solde_2_h: + type: date + date_solde_c: + type: date + date_solde_h: + type: date + date_sortie: + type: date + date_vente: + type: date + delai_expedition: + type: numeric + delai_expedition_0: + type: numeric + delai_expedition_1: + type: numeric + delai_expedition_2: + type: numeric + delai_facture: + type: numeric + delai_groupage: + type: numeric + delai_solde: + type: numeric + delai_solde_0: + type: numeric + delai_solde_0_c: + type: numeric + delai_solde_0_h: + type: numeric + delai_solde_1: + type: numeric + delai_solde_1_c: + type: numeric + delai_solde_1_h: + type: numeric + delai_solde_2: + type: numeric + delai_solde_2_c: + type: numeric + delai_solde_2_h: + type: numeric + delai_solde_c: + type: numeric + delai_solde_h: + type: numeric + facture_reference_id: + type: bigint + ghs_bebe1_id: + type: bigint + ghs_bebe2_id: + type: bigint + ghs_bebe3_id: + type: bigint + ghs_id: + type: bigint + gmt_id: + type: bigint + default: "0" + lieu_sortie_id: + type: bigint + default: "0" + montant_comptabilise: + type: numeric + montant_comptabilise_0: + type: numeric + montant_comptabilise_0_c: + type: numeric + montant_comptabilise_0_h: + type: numeric + montant_comptabilise_1: + type: numeric + montant_comptabilise_1_c: + type: numeric + montant_comptabilise_1_h: + type: numeric + montant_comptabilise_2: + type: numeric + montant_comptabilise_2_c: + type: numeric + montant_comptabilise_2_h: + type: numeric + montant_comptabilise_budget_global_c: + type: numeric + montant_comptabilise_c: + type: numeric + montant_comptabilise_h: + type: numeric + montant_encours: + type: numeric + montant_encours_0: + type: numeric + montant_encours_0_c: + type: numeric + montant_encours_0_h: + type: numeric + montant_encours_1: + type: numeric + montant_encours_1_c: + type: numeric + montant_encours_1_h: + type: numeric + montant_encours_2: + type: numeric + montant_encours_2_c: + type: numeric + montant_encours_2_h: + type: numeric + montant_encours_c: + type: numeric + montant_encours_h: + type: numeric + montant_facture: + type: numeric + montant_facture_0: + type: numeric + montant_facture_0_c: + type: numeric + montant_facture_0_h: + type: numeric + montant_facture_1: + type: numeric + montant_facture_1_c: + type: numeric + montant_facture_1_h: + type: numeric + montant_facture_2: + type: numeric + montant_facture_2_c: + type: numeric + montant_facture_2_h: + type: numeric + montant_facture_c: + type: numeric + montant_facture_c_actes_inclus_dans_sejour: + type: numeric + montant_facture_h: + type: numeric + montant_facture_h_actes_inclus_dans_sejour: + type: numeric + montant_regle: + type: numeric + montant_regle_0: + type: numeric + montant_regle_0_c: + type: numeric + montant_regle_0_h: + type: numeric + montant_regle_1: + type: numeric + montant_regle_1_c: + type: numeric + montant_regle_1_h: + type: numeric + montant_regle_2: + type: numeric + montant_regle_2_c: + type: numeric + montant_regle_2_h: + type: numeric + montant_regle_c: + type: numeric + montant_regle_h: + type: numeric + motif_non_facturation_comment: + type: text + default: "''::text" + motif_non_facturation_id: + type: bigint + default: "0" + nb_calculable: + type: numeric + nb_factures: + type: bigint + nb_factures_regularisation: + type: bigint + nb_groupe: + type: numeric + nb_non_calcules: + type: integer + nb_non_calcules_bg: + type: integer + nb_non_calcules_horsbg: + type: integer + nb_non_cloture: + type: integer + nb_non_cloture_0: + type: integer + nb_non_cloture_0_c: + type: integer + nb_non_cloture_0_h: + type: integer + nb_non_cloture_1: + type: integer + nb_non_cloture_1_c: + type: integer + nb_non_cloture_1_h: + type: integer + nb_non_cloture_2: + type: integer + nb_non_cloture_2_c: + type: integer + nb_non_cloture_2_h: + type: integer + nb_non_cloture_c: + type: integer + nb_non_cloture_h: + type: integer + nb_non_expedie: + type: numeric + nb_non_expedie_0: + type: numeric + nb_non_expedie_0_c: + type: numeric + nb_non_expedie_0_h: + type: numeric + nb_non_expedie_1: + type: numeric + nb_non_expedie_1_c: + type: numeric + nb_non_expedie_1_h: + type: numeric + nb_non_expedie_2: + type: numeric + nb_non_expedie_2_c: + type: numeric + nb_non_expedie_2_h: + type: numeric + nb_non_expedie_c: + type: numeric + nb_non_expedie_h: + type: numeric + nb_non_groupe: + type: numeric + nb_non_solde: + type: numeric + nb_non_solde_0: + type: numeric + nb_non_solde_0_c: + type: numeric + nb_non_solde_0_h: + type: numeric + nb_non_solde_1: + type: numeric + nb_non_solde_1_c: + type: numeric + nb_non_solde_1_h: + type: numeric + nb_non_solde_2: + type: numeric + nb_non_solde_2_c: + type: numeric + nb_non_solde_2_h: + type: numeric + nb_non_solde_c: + type: numeric + nb_non_solde_h: + type: numeric + nb_rejets: + type: numeric + no_bordereau_0: + type: text + no_bordereau_1: + type: text + no_bordereau_2: + type: text + no_facture_reference: + type: text + no_sejour: + type: text + pole_sortie_id: + type: bigint + default: "0" + retard_facture: + type: numeric + retard_groupage: + type: numeric + sejour_id: + type: bigint + tiers_payant_id: + type: bigint + type_facture: + type: character(1) + type_t2a: + type: character(1) +indexes: + i_factures_reference_tiers_1: + column: sejour_id + method: btree + i_factures_reference_tiers_2: + column: no_sejour + method: btree + i_factures_reference_tiers_3: + column: tiers_payant_id + method: btree + i_factures_reference_tiers_4: + column: date_fin_facture + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_rejets.yaml b/db/schema2/tables/p_factures_rejets.yaml new file mode 100644 index 0000000..1893659 --- /dev/null +++ b/db/schema2/tables/p_factures_rejets.yaml @@ -0,0 +1,28 @@ +columns: + date_rejet: + type: date + facture_id: + type: bigint + default: "0" + no_facture: + type: text + not_null: NOT NULL + rejet_code: + type: text + default: "''::text" + rejet_id: + type: bigint + default: "0" + rejet_texte: + type: text + default: "''::text" +indexes: + i_factures_rejets_1: + column: no_facture + method: btree + i_factures_rejets_2: + column: rejet_id + method: btree + i_factures_rejets_3: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_soldes_c.yaml b/db/schema2/tables/p_factures_soldes_c.yaml new file mode 100644 index 0000000..ca642ee --- /dev/null +++ b/db/schema2/tables/p_factures_soldes_c.yaml @@ -0,0 +1,70 @@ +columns: + date_comptable: + type: date + facture_id: + type: bigint + default: "0" + finess: + type: character(9) + default: "''::bpchar" + montant_comptabilise: + type: numeric(13,2) + default: "0" + montant_comptabilise_0: + type: numeric(13,2) + default: "0" + montant_comptabilise_1: + type: numeric(13,2) + default: "0" + montant_comptabilise_2: + type: numeric(13,2) + default: "0" + montant_comptabilise_22: + type: numeric(13,2) + default: "0" + montant_regle: + type: numeric(13,2) + default: "0" + montant_regle_0: + type: numeric(13,2) + default: "0" + montant_regle_1: + type: numeric(13,2) + default: "0" + montant_regle_2: + type: numeric(13,2) + default: "0" + montant_regle_22: + type: numeric(13,2) + default: "0" + no_facture: + type: text + not_null: NOT NULL + od_avoir: + type: character(1) + default: "'0'::character varying" + od_non_comptabilise: + type: text + default: "'0'::text" + prestation_id: + type: bigint + default: "0" + rubrique_comptabilisee_id: + type: bigint + default: "0" +indexes: + i_factures_soldes_c_1: + column: no_facture + method: btree + i_factures_soldes_c_2: + column: prestation_id + method: btree + i_factures_soldes_c_3: + column: rubrique_comptabilisee_id + method: btree + i_factures_soldes_c_4: + column: date_comptable + method: btree + i_factures_soldes_c_8: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_factures_soldes_h.yaml b/db/schema2/tables/p_factures_soldes_h.yaml new file mode 100644 index 0000000..ebcb123 --- /dev/null +++ b/db/schema2/tables/p_factures_soldes_h.yaml @@ -0,0 +1,85 @@ +columns: + date_comptable: + type: date + facture_id: + type: bigint + default: "0" + finess: + type: character(9) + default: "''::bpchar" + medecin_comptabilise_id: + type: bigint + default: "0" + montant_comptabilise: + type: numeric(13,2) + default: "0" + montant_comptabilise_0: + type: numeric(13,2) + default: "0" + montant_comptabilise_1: + type: numeric(13,2) + default: "0" + montant_comptabilise_2: + type: numeric(13,2) + default: "0" + montant_comptabilise_22: + type: numeric(13,2) + default: "0" + montant_regle: + type: numeric(13,2) + default: "0" + montant_regle_0: + type: numeric(13,2) + default: "0" + montant_regle_1: + type: numeric(13,2) + default: "0" + montant_regle_2: + type: numeric(13,2) + default: "0" + montant_regle_22: + type: numeric(13,2) + default: "0" + montant_solde: + type: numeric(13,2) + default: "0" + montant_solde_0: + type: numeric(13,2) + default: "0" + montant_solde_1: + type: numeric(13,2) + default: "0" + montant_solde_2: + type: numeric(13,2) + default: "0" + montant_solde_22: + type: numeric(13,2) + default: "0" + no_facture: + type: text + not_null: NOT NULL + od_avoir: + type: character(1) + default: "'0'::character varying" + od_non_comptabilise: + type: text + default: "'0'::text" + prestation_id: + type: bigint + default: "0" + rubrique_comptabilisee_id: + type: bigint + default: "0" +indexes: + i_factures_soldes_h_1: + column: no_facture + method: btree + i_factures_soldes_h_3: + column: medecin_comptabilise_id + method: btree + i_factures_soldes_h_4: + column: date_comptable + method: btree + i_factures_soldes_h_8: + column: facture_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_gmt_valorises.yaml b/db/schema2/tables/p_gmt_valorises.yaml new file mode 100644 index 0000000..f475d54 --- /dev/null +++ b/db/schema2/tables/p_gmt_valorises.yaml @@ -0,0 +1,29 @@ +columns: + created_at: + type: timestamp without time zone + not_null: NOT NULL + default: now() + date_debut_gmt: + type: timestamp without time zone + not_null: NOT NULL + date_fin_gmt: + type: timestamp without time zone + not_null: NOT NULL + gme_code: + type: text + gmt_code: + type: text + not_null: NOT NULL + gmt_libelle: + type: text + montant_valorise: + type: integer + montant_valorise_par_jour: + type: numeric(13,2) + no_sejour: + type: text + not_null: NOT NULL +constraints: + p_gmt_valorises_pkey: + type: PRIMARY KEY + column: gmt_code, no_sejour \ No newline at end of file diff --git a/db/schema2/tables/p_indicateurs_cumules.yaml b/db/schema2/tables/p_indicateurs_cumules.yaml new file mode 100644 index 0000000..2c7b248 --- /dev/null +++ b/db/schema2/tables/p_indicateurs_cumules.yaml @@ -0,0 +1,40 @@ +columns: + date_reference: + type: date + finess_id: + type: bigint + default: "0" + indicateur_condition_id: + type: 'bigint[]' + indicateur_id: + type: bigint + periode_type: + type: text + pole_id: + type: bigint + default: "0" + value: + type: numeric + value_cum: + type: numeric + value_cum12: + type: numeric + value_cum4t: + type: numeric + default: "0" + value_exercice: + type: numeric + default: "0" + value_trimestre: + type: numeric + default: "0" +indexes: + i_indicateurs_cumules_1: + column: indicateur_id + method: btree + i_indicateurs_cumules_2: + column: date_reference + method: btree + i_indicateurs_cumules_3: + column: periode_type + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_intervention.yaml b/db/schema2/tables/p_intervention.yaml new file mode 100644 index 0000000..e7c3c80 --- /dev/null +++ b/db/schema2/tables/p_intervention.yaml @@ -0,0 +1,42 @@ +columns: + acte_id: + type: bigint + not_null: NOT NULL + date_debut: + type: date + not_null: NOT NULL + heure_debut: + type: numeric(6,0) + default: "0" + medecin_anesthesiste_id: + type: bigint + default: "0" + medecin_chirurgien_id: + type: bigint + default: "0" + salle_id: + type: bigint + default: "0" + sejour_id: + type: bigint + not_null: NOT NULL +constraints: + intervention_ukey: + type: UNIQUE + column: date_debut, heure_debut, sejour_id +indexes: + i_intervention_1: + column: sejour_id + method: btree + i_intervention_2: + column: date_debut + method: btree + i_intervention_3: + column: acte_id + method: btree + i_intervention_4: + column: medecin_chirurgien_id + method: btree + i_intervention_5: + column: medecin_anesthesiste_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_mouvements_sejour.yaml b/db/schema2/tables/p_mouvements_sejour.yaml new file mode 100644 index 0000000..739fb87 --- /dev/null +++ b/db/schema2/tables/p_mouvements_sejour.yaml @@ -0,0 +1,206 @@ +columns: + budget_cle_id: + type: bigint + default: "0" + date: + type: date + not_null: NOT NULL + equivalent_malade_complet: + type: numeric + default: "0" + est_chambre_particuliere: + type: character(1) + default: "'0'::bpchar" + est_chambre_particuliere_facturee: + type: character(1) + default: "'0'::bpchar" + est_dernier_mouvement_jour: + type: character(1) + est_facture: + type: character(1) + default: "'1'::bpchar" + est_jour_entree: + type: character(1) + default: "'0'::bpchar" + est_jour_hospitalisation: + type: character(1) + default: "'0'::bpchar" + est_jour_sortie: + type: character(1) + default: "'0'::bpchar" + est_mouvement_previsionnel: + type: character(1) + default: "'0'::bpchar" + est_premier_mouvement_jour: + type: character(1) + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + heure_debut: + type: numeric(6,0) + default: "0" + heure_fin: + type: numeric(6,0) + default: "240000" + is_annulation: + type: smallint + default: "0" + is_weekend: + type: character(1) + jour_semaine: + type: numeric + lieu_id: + type: bigint + not_null: NOT NULL + medecin_sejour_id: + type: bigint + nb_ambulatoires: + type: numeric(5,0) + default: "0" + nb_bebes: + type: numeric(5,0) + default: "0" + nb_chambres_particulieres: + type: numeric(5,0) + default: "0" + nb_deces: + type: integer + default: "0" + nb_entrees_directes: + type: numeric(5,0) + default: "0" + nb_entrees_mutation_activite: + type: numeric(5,0) + default: "0" + nb_entrees_mutation_etage: + type: numeric(5,0) + default: "0" + nb_entrees_mutation_service: + type: numeric(5,0) + default: "0" + nb_entrees_mutation_unite_medicale: + type: numeric(5,0) + default: "0" + nb_entrees_mutations: + type: numeric(5,0) + default: "0" + nb_externes: + type: numeric(5,0) + default: "0" + nb_jour_sejour_sorti: + type: integer + default: "0" + nb_jours_12: + type: integer + default: "0" + nb_jours_cp_12: + type: integer + default: "0" + nb_jours_cp_d: + type: integer + default: "1" + nb_jours_cp_f: + type: integer + default: "0" + nb_jours_d: + type: integer + default: "1" + nb_jours_f: + type: integer + default: "0" + nb_jours_js_inclus: + type: numeric(5,0) + nb_jours_js_non_inclus: + type: numeric(5,0) + nb_jours_prorata: + type: numeric + default: "0" + nb_passage_externe: + type: integer + default: "0" + nb_preadmission_validee: + type: numeric + default: "0" + nb_preadmission_validee_j1: + type: numeric + default: "0" + nb_preadmission_validee_j2: + type: numeric + default: "0" + nb_seances: + type: numeric(5,0) + default: "0" + nb_seances_autre: + type: integer + default: "0" + nb_seances_chimio: + type: integer + default: "0" + nb_seances_dans_taux: + type: numeric(5,0) + default: "0" + nb_seances_dialyse: + type: integer + default: "0" + nb_sorties_directes: + type: numeric(5,0) + default: "0" + nb_sorties_mutation_activite: + type: numeric(5,0) + default: "0" + nb_sorties_mutation_etage: + type: numeric(5,0) + default: "0" + nb_sorties_mutation_service: + type: numeric(5,0) + default: "0" + nb_sorties_mutation_unite_medicale: + type: numeric(5,0) + default: "0" + nb_sorties_mutations: + type: numeric(5,0) + default: "0" + nb_urgences: + type: numeric(5,0) + default: "0" + no_sejour: + type: text + not_null: NOT NULL + pole_id: + type: bigint + default: "0" + sejour_id: + type: bigint + default: "0" + sequences: + type: bigint +constraints: + mouvements_sejour_ukey: + type: UNIQUE + column: date, heure_debut, no_sejour +indexes: + i_mouvements_sejour_1: + column: date, no_sejour + method: btree + i_mouvements_sejour_2: + column: date + method: btree + i_mouvements_sejour_3: + column: lieu_id + method: btree + i_mouvements_sejour_4: + column: medecin_sejour_id + method: btree + i_mouvements_sejour_5: + column: sejour_id + method: btree + i_mouvements_sejour_budget_cle_id: + column: budget_cle_id + method: btree + i_mouvements_sejour_no_sejour: + column: no_sejour + method: btree + i_mouvements_sejour_pole_id: + column: pole_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_oids.yaml b/db/schema2/tables/p_oids.yaml new file mode 100644 index 0000000..cd7e580 --- /dev/null +++ b/db/schema2/tables/p_oids.yaml @@ -0,0 +1,16 @@ +columns: + code_table: + type: text + oid: + type: bigint +constraints: + p_oids_code_table_key: + type: UNIQUE + column: code_table, oid +indexes: + i_oids_1: + column: code_table + method: btree + i_oids_2: + column: oid + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_patients.yaml b/db/schema2/tables/p_patients.yaml new file mode 100644 index 0000000..99cafc4 --- /dev/null +++ b/db/schema2/tables/p_patients.yaml @@ -0,0 +1,29 @@ +columns: + code_sexe: + type: character(1) + default: "'1'::bpchar" + date_naissance: + type: date + default: "'2099-12-31'::date" + finess: + type: character(9) + not_null: NOT NULL + default: "''::bpchar" + no_patient: + type: character(20) + not_null: NOT NULL + nom: + type: text + nom_naissance: + type: text + default: "''::text" + prenom: + type: text +constraints: + p_patients_pkey: + type: PRIMARY KEY + column: finess, no_patient +indexes: + i_patients_1: + column: no_patient + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_sejour_effet_tarif.yaml b/db/schema2/tables/p_sejour_effet_tarif.yaml new file mode 100644 index 0000000..8c236a7 --- /dev/null +++ b/db/schema2/tables/p_sejour_effet_tarif.yaml @@ -0,0 +1,134 @@ +columns: + borne_basse_c: + type: numeric + default: "0" + borne_basse_p: + type: numeric + default: "0" + borne_haute_c: + type: numeric + default: "0" + borne_haute_p: + type: numeric + default: "0" + coefficient_c: + type: numeric + default: "0" + coefficient_p: + type: numeric + default: "0" + forfait_exb_c: + type: numeric + default: "0" + forfait_exb_p: + type: numeric + default: "0" + montant_exb_c: + type: numeric + default: "0" + montant_exb_p: + type: numeric + default: "0" + montant_exh_c: + type: numeric + default: "0" + montant_exh_f: + type: numeric + default: "0" + montant_exh_p: + type: numeric + default: "0" + montant_ghs_bb1_c: + type: numeric + default: "0" + montant_ghs_bb1_p: + type: numeric + default: "0" + montant_ghs_bb2_c: + type: numeric + default: "0" + montant_ghs_bb2_p: + type: numeric + default: "0" + montant_ghs_bb3_c: + type: numeric + default: "0" + montant_ghs_bb3_p: + type: numeric + default: "0" + montant_ghs_c: + type: numeric + default: "0" + montant_ghs_f: + type: numeric + default: "0" + montant_ghs_p: + type: numeric + default: "0" + montant_tot_c: + type: numeric + default: "0" + montant_tot_f: + type: numeric + default: "0" + montant_tot_p: + type: numeric + default: "0" + no_sejour: + type: text + not_null: NOT NULL + ok_ghs_c: + type: text + default: "''::text" + ok_ghs_f: + type: text + default: "''::text" + ok_ghs_p: + type: text + default: "''::text" + sejour_id: + type: bigint + not_null: NOT NULL + tarif_exb_c: + type: numeric + default: "0" + tarif_exb_p: + type: numeric + default: "0" + tarif_exh_c: + type: numeric + default: "0" + tarif_exh_p: + type: numeric + default: "0" + tarif_ghs_bb1_c: + type: numeric + default: "0" + tarif_ghs_bb1_p: + type: numeric + default: "0" + tarif_ghs_bb2_c: + type: numeric + default: "0" + tarif_ghs_bb2_p: + type: numeric + default: "0" + tarif_ghs_bb3_c: + type: numeric + default: "0" + tarif_ghs_bb3_p: + type: numeric + default: "0" + tarif_ghs_c: + type: numeric + default: "0" + tarif_ghs_p: + type: numeric + default: "0" +indexes: + i_sejour_effet_tarif_no_sejour: + column: no_sejour + method: btree + i_sejour_effet_tarif_sejour_id: + column: sejour_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_sejour_filiere_soin.yaml b/db/schema2/tables/p_sejour_filiere_soin.yaml new file mode 100644 index 0000000..5e8e3f9 --- /dev/null +++ b/db/schema2/tables/p_sejour_filiere_soin.yaml @@ -0,0 +1,14 @@ +columns: + filiere_soin_id: + type: bigint + default: "0" + sejour_id: + type: bigint + not_null: NOT NULL +indexes: + i_sejour_filiere_soin_filiere_soin_id: + column: filiere_soin_id + method: btree + i_sejour_filiere_soin_sejour_id: + column: sejour_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_sejour_lieu.yaml b/db/schema2/tables/p_sejour_lieu.yaml new file mode 100644 index 0000000..60e9933 --- /dev/null +++ b/db/schema2/tables/p_sejour_lieu.yaml @@ -0,0 +1,26 @@ +columns: + lieu_id: + type: bigint + not_null: NOT NULL + no_sejour: + type: text + not_null: NOT NULL + pole_id: + type: bigint + default: "0" + sejour_id: + type: bigint + not_null: NOT NULL +indexes: + i_sejour_lieu_lieu_id: + column: lieu_id + method: btree + i_sejour_lieu_no_sejour: + column: no_sejour + method: btree + i_sejour_lieu_pole_id: + column: pole_id + method: btree + i_sejour_lieu_sejour_id: + column: sejour_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_sejour_pmsi.yaml b/db/schema2/tables/p_sejour_pmsi.yaml new file mode 100644 index 0000000..e75edfe --- /dev/null +++ b/db/schema2/tables/p_sejour_pmsi.yaml @@ -0,0 +1,35 @@ +columns: + en_cours_pmsi: + type: text + no_rss: + type: bigint + default: "0" + no_sejour: + type: text + not_null: NOT NULL + pmsi_type: + type: text + default: "''::text" + rss_id: + type: bigint + default: "0" + sejour_id: + type: bigint + not_null: NOT NULL + ssr_id: + type: bigint + default: "0" + ssr_id_array: + type: 'bigint[]' + traitement_epmsi: + type: text +indexes: + i_sejour_pmsi_1: + column: no_sejour + method: btree + i_sejour_pmsi_2: + column: rss_id + method: btree + i_sejour_pmsi_3: + column: sejour_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_sejours.yaml b/db/schema2/tables/p_sejours.yaml new file mode 100644 index 0000000..4c66b89 --- /dev/null +++ b/db/schema2/tables/p_sejours.yaml @@ -0,0 +1,406 @@ +columns: + age: + type: numeric(3,0) + code_cp_demandee: + type: character(1) + default: "0" + code_original: + type: text + default: "''::text" + code_postal_id: + type: bigint + default: "0" + code_prevu: + type: numeric(1,0) + default: "0" + code_sexe: + type: character(1) + code_sorti: + type: numeric(1,0) + default: "0" + date_entree: + type: date + date_etat: + type: timestamp without time zone + date_expedition: + type: date + default: "'2099-12-31'::date" + date_expedition_0: + type: date + default: "'2099-12-31'::date" + date_expedition_1: + type: date + default: "'2099-12-31'::date" + date_expedition_12: + type: date + default: "'2099-12-31'::date" + date_expedition_2: + type: date + default: "'2099-12-31'::date" + date_expedition_22: + type: date + default: "'2099-12-31'::date" + date_facture: + type: date + date_groupage: + type: date + default: "'2099-12-31'::date" + date_solde: + type: date + date_solde_0: + type: date + default: "'2099-12-31'::date" + date_solde_1: + type: date + default: "'2099-12-31'::date" + date_solde_12: + type: date + default: "'2099-12-31'::date" + date_solde_2: + type: date + default: "'2099-12-31'::date" + date_solde_22: + type: date + default: "'2099-12-31'::date" + date_sortie: + type: date + delai_expedition: + type: numeric(5,0) + default: "0" + delai_expedition_0: + type: numeric(5,0) + default: "0" + delai_expedition_1: + type: numeric(5,0) + default: "0" + delai_expedition_12: + type: numeric(5,0) + default: "0" + delai_expedition_2: + type: numeric(5,0) + default: "0" + delai_expedition_22: + type: numeric(5,0) + default: "0" + delai_facture: + type: numeric(5,0) + delai_groupage: + type: numeric(5,0) + default: "0" + delai_solde: + type: numeric(5,0) + delai_solde_0: + type: numeric(5,0) + default: "0" + delai_solde_1: + type: numeric(5,0) + default: "0" + delai_solde_12: + type: numeric(5,0) + default: "0" + delai_solde_2: + type: numeric(5,0) + default: "0" + delai_solde_22: + type: numeric(5,0) + default: "0" + destination: + type: character(1) + default: "''::bpchar" + est_budget_global: + type: numeric(1,0) + default: "0" + est_sans_facturation: + type: character(1) + default: "'0'::bpchar" + comment: 1=Pas de facturation pour ce séjour (services ou UF spéciaux) + etat: + type: character(1) + default: "''::bpchar" + comment: | + S = Supprimé + I = Ignoré + etat_sejour: + type: text + filiere_soin_principale_id: + type: bigint + default: "0" + finess: + type: text + not_null: NOT NULL + default: "''::bpchar" + forme_activite_id: + type: integer + default: "0" + ghm_id: + type: bigint + default: "0" + ghmgme_id: + type: integer + default: "0" + ghs_bebe1_id: + type: bigint + default: "0" + ghs_bebe2_id: + type: bigint + default: "0" + ghs_bebe3_id: + type: bigint + default: "0" + ghs_id: + type: bigint + default: "0" + gme_id: + type: integer + default: "0" + gmt_id: + type: bigint + default: "0" + heure_entree: + type: numeric(6,0) + default: "0" + heure_sortie: + type: numeric(6,0) + default: "0" + lieu_sortie_id: + type: bigint + default: "0" + medecin_sejour_id: + type: bigint + medecin_traitant_id: + type: bigint + default: "0" + mode_entree: + type: character(1) + default: "'8'::bpchar" + mode_sortie: + type: character(1) + mode_traitement_id: + type: bigint + default: "0" + montant_comptabilise_0_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_0_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_1_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_1_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_22_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_22_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_2_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_2_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_budget_global_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_h: + type: numeric(13,2) + default: "0" + montant_facture_0_c: + type: numeric(13,2) + default: "0" + montant_facture_0_h: + type: numeric(13,2) + default: "0" + montant_facture_12_c: + type: numeric(13,2) + default: "0" + montant_facture_12_h: + type: numeric(13,2) + default: "0" + montant_facture_1_c: + type: numeric(13,2) + default: "0" + montant_facture_1_h: + type: numeric(13,2) + default: "0" + montant_facture_22_c: + type: numeric(13,2) + default: "0" + montant_facture_22_h: + type: numeric(13,2) + default: "0" + montant_facture_2_c: + type: numeric(13,2) + default: "0" + montant_facture_2_h: + type: numeric(13,2) + default: "0" + montant_facture_c: + type: numeric(13,2) + default: "0" + montant_facture_c_actes_inclus_dans_sejour: + type: numeric(13,2) + montant_facture_h: + type: numeric(13,2) + default: "0" + montant_facture_h_actes_inclus_dans_sejour: + type: numeric(13,2) + montant_regle_0_c: + type: numeric(13,2) + default: "0" + montant_regle_0_h: + type: numeric(13,2) + default: "0" + montant_regle_12_c: + type: numeric(13,2) + default: "0" + montant_regle_12_h: + type: numeric(13,2) + default: "0" + montant_regle_1_c: + type: numeric(13,2) + default: "0" + montant_regle_1_h: + type: numeric(13,2) + default: "0" + montant_regle_22_c: + type: numeric(13,2) + default: "0" + montant_regle_22_h: + type: numeric(13,2) + default: "0" + montant_regle_2_c: + type: numeric(13,2) + default: "0" + montant_regle_2_h: + type: numeric(13,2) + default: "0" + montant_regle_c: + type: numeric(13,2) + montant_regle_h: + type: numeric(13,2) + nb_factures: + type: numeric(5,0) + nb_factures_regularisation: + type: numeric(5,0) + nb_factures_rejet: + type: numeric(5,0) + default: "0" + no_patient: + type: character(20) + no_sejour: + type: text + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_sejours'::regclass)" + particularite_t2a: + type: text + default: "''::text" + comment: | + SE1 = Forfait SE1 + SE2 = Forfait SE2 + SE3 = Forfait SE3 + provenance: + type: character(1) + default: "''::bpchar" + provider_id: + type: bigint + default: "0" + risque_id: + type: integer + default: "0" + tiers_payant_0_id: + type: bigint + default: "0" + tiers_payant_1_id: + type: bigint + default: "0" + tiers_payant_22_id: + type: bigint + default: "0" + tiers_payant_2_id: + type: bigint + default: "0" + traitement_epmsi_id: + type: bigint + default: "0" + type_hospi_pmsi_id: + type: integer + default: "0" + type_pmsi: + type: character(1) + default: "'0'::bpchar" + comment: 'Type PMSI : 1=MCO, 2=SSR, 3=PSY' + type_sejour: + type: text + comment: | + 1=Hospitalisés + 2=Ambulatoires + 3=Externes +constraints: + p_sejours_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_sejours_1: + column: no_sejour + method: btree + i_sejours_10: + column: ghs_id + method: btree + i_sejours_11: + column: no_patient + method: btree + i_sejours_12: + column: type_sejour + method: btree + i_sejours_13: + column: code_original + method: btree + i_sejours_14: + column: ghm_id + method: btree + i_sejours_15: + column: medecin_sejour_id + method: btree + i_sejours_16: + column: age + method: btree + i_sejours_2: + column: lieu_sortie_id + method: btree + i_sejours_3: + column: date_sortie + method: btree + i_sejours_4: + column: tiers_payant_1_id + method: btree + i_sejours_5: + column: tiers_payant_2_id + method: btree + i_sejours_6: + column: date_facture + method: btree + i_sejours_7: + column: code_sorti + method: btree + i_sejours_8: + column: tiers_payant_0_id + method: btree + i_sejours_9: + column: tiers_payant_22_id + method: btree + i_sejours_forme_activite_id: + column: forme_activite_id + method: btree + i_sejours_gme_id: + column: gme_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_sejours_assurance.yaml b/db/schema2/tables/p_sejours_assurance.yaml new file mode 100644 index 0000000..6f05f15 --- /dev/null +++ b/db/schema2/tables/p_sejours_assurance.yaml @@ -0,0 +1,48 @@ +columns: + matricule_1: + type: text + default: "''::text" + matricule_2: + type: text + default: "''::text" + matricule_22: + type: text + default: "''::text" + nom_assure: + type: text + default: "''::text" + prenom_assure: + type: text + default: "''::text" + sejour_id: + type: bigint + not_null: NOT NULL + tiers_payant_0_id: + type: bigint + default: "0" + tiers_payant_1_id: + type: bigint + default: "0" + tiers_payant_22_id: + type: bigint + default: "0" + tiers_payant_2_id: + type: bigint + default: "0" +constraints: + p_sejours_assurance_pkey: + type: PRIMARY KEY + column: sejour_id +indexes: + i_sejours_assurance_1: + column: tiers_payant_0_id + method: btree + i_sejours_assurance_2: + column: tiers_payant_1_id + method: btree + i_sejours_assurance_3: + column: tiers_payant_2_id + method: btree + i_sejours_assurance_4: + column: tiers_payant_22_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_sejours_budget_cle.yaml b/db/schema2/tables/p_sejours_budget_cle.yaml new file mode 100644 index 0000000..16f217e --- /dev/null +++ b/db/schema2/tables/p_sejours_budget_cle.yaml @@ -0,0 +1,14 @@ +columns: + budget_cle_id: + type: bigint + default: "0" + sejour_id: + type: bigint + not_null: NOT NULL +indexes: + i_sejours_budget_cle_1: + column: sejour_id + method: btree + i_sejours_budget_cle_3: + column: budget_cle_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/p_sejours_groupes_smr.yaml b/db/schema2/tables/p_sejours_groupes_smr.yaml new file mode 100644 index 0000000..ed8c40f --- /dev/null +++ b/db/schema2/tables/p_sejours_groupes_smr.yaml @@ -0,0 +1,53 @@ +columns: + created_at: + type: timestamp without time zone + not_null: NOT NULL + default: now() + date_debut_gmt: + type: timestamp without time zone + not_null: NOT NULL + date_entree: + type: timestamp without time zone + not_null: NOT NULL + date_fin_gmt: + type: timestamp without time zone + not_null: NOT NULL + date_groupage: + type: timestamp without time zone + not_null: NOT NULL + date_sortie: + type: timestamp without time zone + gme_code: + type: text + not_null: NOT NULL + gme_id: + type: integer + not_null: NOT NULL + gmt_code: + type: text + not_null: NOT NULL + gmt_id: + type: integer + not_null: NOT NULL + nb_jours_presence: + type: integer + not_null: NOT NULL + no_sejour: + type: text + not_null: NOT NULL + types_gmt_code: + type: text + not_null: NOT NULL +constraints: + fk_types_gmt_code: + type: FOREIGN KEY + fk_references: FOREIGN KEY (types_gmt_code) REFERENCES activite.t_types_gmt(code) + column_name: types_gmt_code + foreign_schema_name: activite + foreign_table_name: t_types_gmt + foreign_column_name: code + on_update: no_action + on_delete: no_action + p_sejours_groupes_smr_pkey: + type: PRIMARY KEY + column: no_sejour, gmt_code \ No newline at end of file diff --git a/db/schema2/tables/p_sejours_parametres_personnalises.yaml b/db/schema2/tables/p_sejours_parametres_personnalises.yaml new file mode 100644 index 0000000..0eeca21 --- /dev/null +++ b/db/schema2/tables/p_sejours_parametres_personnalises.yaml @@ -0,0 +1,14 @@ +columns: + parametre_personnalise_1_id: + type: bigint + default: "0" + parametre_personnalise_2_id: + type: bigint + default: "0" + sejour_id: + type: bigint + not_null: NOT NULL +constraints: + p_sejours_parametres_personnalises_pkey: + type: PRIMARY KEY + column: sejour_id \ No newline at end of file diff --git a/db/schema2/tables/p_sejours_preadmission.yaml b/db/schema2/tables/p_sejours_preadmission.yaml new file mode 100644 index 0000000..b6c3429 --- /dev/null +++ b/db/schema2/tables/p_sejours_preadmission.yaml @@ -0,0 +1,18 @@ +columns: + date_entree: + type: timestamp without time zone + date_validation_preadmission: + type: timestamp without time zone + no_sejour: + type: text + not_null: NOT NULL + preadmission_j1: + type: smallint + default: "0" + preadmission_j2: + type: smallint + default: "0" +constraints: + p_sejours_preadmission_pkey: + type: PRIMARY KEY + column: no_sejour \ No newline at end of file diff --git a/db/schema2/tables/p_sejours_transferts.yaml b/db/schema2/tables/p_sejours_transferts.yaml new file mode 100644 index 0000000..c56e8bf --- /dev/null +++ b/db/schema2/tables/p_sejours_transferts.yaml @@ -0,0 +1,12 @@ +columns: + destination_id: + type: bigint + provenance_id: + type: bigint + sejour_id: + type: bigint + not_null: NOT NULL +constraints: + p_sejours_transferts_pkey: + type: PRIMARY KEY + column: sejour_id \ No newline at end of file diff --git a/db/schema2/tables/t_actes_c.yaml b/db/schema2/tables/t_actes_c.yaml new file mode 100644 index 0000000..7f198c0 --- /dev/null +++ b/db/schema2/tables/t_actes_c.yaml @@ -0,0 +1,110 @@ +columns: + action_code: + type: text + action_id: + type: bigint + default: "0" + action_texte: + type: text + ccam_regroupement_code_1: + type: text + ccam_regroupement_code_4: + type: text + ccam_regroupement_id_1: + type: bigint + ccam_regroupement_id_4: + type: bigint + ccam_regroupement_texte_1: + type: text + ccam_regroupement_texte_4: + type: text + chapitre_1_code: + type: text + default: "0" + chapitre_1_id: + type: bigint + default: "0" + chapitre_1_texte: + type: text + chapitre_2_code: + type: text + default: "0" + chapitre_2_id: + type: bigint + default: "0" + chapitre_2_texte: + type: text + chapitre_3_code: + type: text + default: "0" + chapitre_3_id: + type: bigint + default: "0" + chapitre_3_texte: + type: text + chapitre_4_code: + type: text + default: "0" + chapitre_4_id: + type: bigint + default: "0" + chapitre_4_texte: + type: text + classant: + type: character(1) + code: + type: text + nomenclature: + type: text + oid: + type: bigint + not_null: NOT NULL + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + technique_code: + type: text + technique_id: + type: bigint + default: "0" + technique_texte: + type: text + texte: + type: text + texte_court: + type: text + topographie_1_code: + type: text + topographie_1_id: + type: bigint + default: "0" + topographie_1_texte: + type: text + topographie_2_code: + type: text + topographie_2_id: + type: bigint + default: "0" + topographie_2_texte: + type: text + type_code: + type: text + type_id: + type: bigint + default: "0" + type_texte: + type: text +constraints: + t_actes_c_pkey: + type: PRIMARY KEY + column: oid + t_actes_c_ukey1: + type: UNIQUE + column: code +indexes: + i_actes_c_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_activites.yaml b/db/schema2/tables/t_activites.yaml new file mode 100644 index 0000000..b2ad648 --- /dev/null +++ b/db/schema2/tables/t_activites.yaml @@ -0,0 +1,35 @@ +columns: + code: + type: text + code_original: + type: text + etage_force_id: + type: bigint + default: "0" + etage_par_defaut_id: + type: bigint + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_activites'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + statut: + type: character(1) + texte: + type: text + texte_court: + type: text +constraints: + t_activites_pkey: + type: PRIMARY KEY + column: oid +indexes: + t_activites_code_key: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_ages_c.yaml b/db/schema2/tables/t_ages_c.yaml new file mode 100644 index 0000000..7eb212a --- /dev/null +++ b/db/schema2/tables/t_ages_c.yaml @@ -0,0 +1,24 @@ +columns: + code: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "0" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + default: "''::text" +constraints: + t_ages_c_pkey: + type: PRIMARY KEY + column: oid + t_ages_c_code_key: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_bloc.yaml b/db/schema2/tables/t_bloc.yaml new file mode 100644 index 0000000..cf3cab7 --- /dev/null +++ b/db/schema2/tables/t_bloc.yaml @@ -0,0 +1,21 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_bloc'::regclass)" + texte: + type: text + texte_court: + type: text +constraints: + t_bloc_pkey: + type: PRIMARY KEY + column: oid +indexes: + t_bloc_code_key: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_bloc_motif_intervention.yaml b/db/schema2/tables/t_bloc_motif_intervention.yaml new file mode 100644 index 0000000..97a92d9 --- /dev/null +++ b/db/schema2/tables/t_bloc_motif_intervention.yaml @@ -0,0 +1,27 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_bloc_motif_intervention'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_bloc_motif_intervention_pkey: + type: PRIMARY KEY + column: oid +indexes: + t_bloc_motif_intervention_code_key: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_bloc_salle.yaml b/db/schema2/tables/t_bloc_salle.yaml new file mode 100644 index 0000000..9ab0bab --- /dev/null +++ b/db/schema2/tables/t_bloc_salle.yaml @@ -0,0 +1,33 @@ +columns: + bloc_id: + type: bigint + default: "0" + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_bloc_salle'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_bloc_salle_pkey: + type: PRIMARY KEY + column: oid +indexes: + t_bloc_salle_bloc_id_key: + column: bloc_id + method: btree + t_bloc_salle_code_key: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_bloc_salle_disponibilite.yaml b/db/schema2/tables/t_bloc_salle_disponibilite.yaml new file mode 100644 index 0000000..186a8a0 --- /dev/null +++ b/db/schema2/tables/t_bloc_salle_disponibilite.yaml @@ -0,0 +1,27 @@ +columns: + date: + type: date + duree: + type: numeric + heure_debut: + type: 'timestamp without time zone[]' + heure_fin: + type: 'timestamp without time zone[]' + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_bloc_salle_disponibilite'::regclass)" + salle_id: + type: bigint + default: "0" +constraints: + t_bloc_salle_disponibilite_pkey: + type: PRIMARY KEY + column: oid +indexes: + t_bloc_salle_disponibilite_date_key: + column: date + method: btree + t_bloc_salle_disponibilite_salle_id_key: + column: salle_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_budget.yaml b/db/schema2/tables/t_budget.yaml new file mode 100644 index 0000000..b32dafc --- /dev/null +++ b/db/schema2/tables/t_budget.yaml @@ -0,0 +1,27 @@ +columns: + code: + type: text + date_debut: + type: date + date_fin: + type: date + indicateurs: + type: 'bigint[]' + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budget'::regclass)" + reference_date_debut: + type: date + reference_date_fin: + type: date + texte: + type: text +constraints: + t_budget_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_budget_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_budget_cle.yaml b/db/schema2/tables/t_budget_cle.yaml new file mode 100644 index 0000000..00aab6b --- /dev/null +++ b/db/schema2/tables/t_budget_cle.yaml @@ -0,0 +1,23 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budget_cle'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_budget_cle_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_budget_cle_budget.yaml b/db/schema2/tables/t_budget_cle_budget.yaml new file mode 100644 index 0000000..bf403a7 --- /dev/null +++ b/db/schema2/tables/t_budget_cle_budget.yaml @@ -0,0 +1,18 @@ +columns: + budget: + type: numeric + budget_cle_id: + type: bigint + not_null: NOT NULL + default: "0" + budget_id: + type: bigint + budget_indicateur_id: + type: bigint + date: + type: date + indicateur_id: + type: bigint + indicateur_module: + type: text + default: "'iCTI_activite'::text" \ No newline at end of file diff --git a/db/schema2/tables/t_budget_cle_rule.yaml b/db/schema2/tables/t_budget_cle_rule.yaml new file mode 100644 index 0000000..8d52501 --- /dev/null +++ b/db/schema2/tables/t_budget_cle_rule.yaml @@ -0,0 +1,52 @@ +columns: + budget_cle_id: + type: bigint + not_null: NOT NULL + default: "0" + budget_id: + type: bigint + not_null: NOT NULL + default: "0" + code: + type: text + liste_acte: + type: text + liste_activite: + type: text + liste_diagnostic_associe: + type: text + liste_diagnostic_principal: + type: text + liste_diagnostic_relie: + type: text + liste_finess: + type: text + liste_ghm: + type: text + liste_medecin: + type: text + liste_rubrique: + type: text + liste_sauf_ghm: + type: text + liste_service: + type: text + liste_specialite: + type: text + liste_type_sejour: + type: text + liste_uf: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budget_cle_rule'::regclass)" + priorite: + type: numeric(5,0) + texte: + type: text +constraints: + t_budget_cle_rule_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_budget_indicateur.yaml b/db/schema2/tables/t_budget_indicateur.yaml new file mode 100644 index 0000000..148ea7b --- /dev/null +++ b/db/schema2/tables/t_budget_indicateur.yaml @@ -0,0 +1,23 @@ +columns: + budget_id: + type: bigint + not_null: NOT NULL + default: "0" + code: + type: text + indicateur_id: + type: bigint + default: "0" + indicateur_module: + type: text + default: "'iCTI_activite'::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budget_indicateur'::regclass)" + texte: + type: text +constraints: + t_budget_indicateur_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_budgets.yaml b/db/schema2/tables/t_budgets.yaml new file mode 100644 index 0000000..afc395d --- /dev/null +++ b/db/schema2/tables/t_budgets.yaml @@ -0,0 +1,31 @@ +columns: + code: + type: text + date_debut: + type: date + date_fin: + type: date + dimension1: + type: text + default: "''::text" + dimension2: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budgets'::regclass)" + reference_date_debut: + type: date + reference_date_fin: + type: date + texte: + type: text +constraints: + t_budgets_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_budgets_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_budgets_saisis.yaml b/db/schema2/tables/t_budgets_saisis.yaml new file mode 100644 index 0000000..6a67ecc --- /dev/null +++ b/db/schema2/tables/t_budgets_saisis.yaml @@ -0,0 +1,111 @@ +columns: + budget_id: + type: bigint + not_null: NOT NULL + budget_nb_ambulatoires_mois: + type: 'numeric(7,0)[]' + budget_nb_ambulatoires_total: + type: numeric(11,0) + default: "0" + budget_nb_entrees_directes_mois: + type: 'numeric(7,0)[]' + budget_nb_entrees_directes_total: + type: numeric(7,0) + default: "0" + budget_nb_externes_mois: + type: 'numeric(7,0)[]' + budget_nb_externes_total: + type: numeric(11,0) + default: "0" + budget_nb_jours_js_non_inclus_mois: + type: 'numeric(7,0)[]' + budget_nb_jours_js_non_inclus_total: + type: numeric(11,0) + default: "0" + budget_nb_seances_mois: + type: 'numeric(7,0)[]' + budget_nb_seances_total: + type: numeric(11,0) + default: "0" + budget_nb_sorties_directes_mois: + type: 'numeric(7,0)[]' + budget_nb_sorties_directes_total: + type: numeric(7,0) + default: "0" + finess_code: + type: text + finess_id: + type: bigint + default: "0" + finess_section_code: + type: 'text[]' + finess_section_id: + type: 'bigint[]' + finess_section_texte: + type: 'text[]' + finess_texte: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_budgets_saisis'::regclass)" + parent_code: + type: text + parent_id: + type: bigint + not_null: NOT NULL + parent_section_code: + type: 'text[]' + parent_section_id: + type: 'bigint[]' + parent_section_texte: + type: 'text[]' + parent_texte: + type: text + parent_type: + type: text + default: "''::text" + reference_nb_ambulatoires_mois: + type: 'numeric(7,0)[]' + reference_nb_ambulatoires_total: + type: numeric(7,0) + default: "0" + reference_nb_entrees_directes_mois: + type: 'numeric(7,0)[]' + reference_nb_entrees_directes_total: + type: numeric(7,0) + default: "0" + reference_nb_externes_mois: + type: 'numeric(7,0)[]' + reference_nb_externes_total: + type: numeric(7,0) + default: "0" + reference_nb_jours_js_non_inclus_mois: + type: 'numeric(11,0)[]' + reference_nb_jours_js_non_inclus_total: + type: numeric(11,0) + default: "0" + reference_nb_seances_mois: + type: 'numeric(7,0)[]' + reference_nb_seances_total: + type: numeric(7,0) + default: "0" + reference_nb_sorties_directes_mois: + type: 'numeric(7,0)[]' + reference_nb_sorties_directes_total: + type: numeric(7,0) + default: "0" + repartition_type: + type: character(1) + default: "'0'::character varying" +constraints: + t_budgets_saisis_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_budgets_saisis_1: + column: parent_id + method: btree + i_budgets_saisis_2: + column: budget_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_calcul_encours.yaml b/db/schema2/tables/t_calcul_encours.yaml new file mode 100644 index 0000000..d8c9462 --- /dev/null +++ b/db/schema2/tables/t_calcul_encours.yaml @@ -0,0 +1,60 @@ +columns: + coefficient_calcule: + type: numeric + coefficient_force: + type: numeric + default: "0" + coefficient_is_force: + type: text + default: "'0'::text" + coefficient_mco: + type: numeric + ignorer: + type: text + default: "'0'::text" + lieu_service_id: + type: bigint + lieu_unite_fonctionnelle_id: + type: bigint + nb_ambulatoires: + type: numeric + nb_externes: + type: numeric + nb_journees: + type: numeric + nb_journees_cp: + type: numeric + nb_prestations_facturees: + type: numeric + nb_seances: + type: numeric + no_facture: + type: text + default: "''::text" + no_sejour: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_calcul_encours'::regclass)" + prestation_id: + type: bigint + prestation_type_valorisation: + type: text + prix_unitaire_calcule: + type: numeric + prix_unitaire_force: + type: numeric + default: "0" + prix_unitaire_is_force: + type: text + default: "'0'::text" + rubrique_facturation_id: + type: bigint + type_ligne: + type: text +constraints: + t_calcul_encours_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_chart.yaml b/db/schema2/tables/t_chart.yaml new file mode 100644 index 0000000..b4cfac5 --- /dev/null +++ b/db/schema2/tables/t_chart.yaml @@ -0,0 +1,26 @@ +columns: + category: + type: text + code: + type: text + default_time_calc: + type: text + drilldown: + type: jsonb + label_view_code: + type: numeric + default: "0" + name: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_chart'::regclass)" + serie_id: + type: 'bigint[]' + type: + type: text +constraints: + t_chart_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_classes.yaml b/db/schema2/tables/t_classes.yaml new file mode 100644 index 0000000..36ee41a --- /dev/null +++ b/db/schema2/tables/t_classes.yaml @@ -0,0 +1,36 @@ +columns: + code: + type: text + contenu_by_code: + type: text + default: "'0'::text" + contenu_non_replicable_ailleurs: + type: character(1) + default: "'0'::bpchar" + is_cti: + type: character(1) + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_classes'::regclass)" + sequence: + type: integer + default: "1" + table_id: + type: bigint + not_null: NOT NULL + default: "0" + texte: + type: text +constraints: + t_classes_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_classes_1: + column: code + method: btree + i_classes_classes_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_classes_sections.yaml b/db/schema2/tables/t_classes_sections.yaml new file mode 100644 index 0000000..d92b56c --- /dev/null +++ b/db/schema2/tables/t_classes_sections.yaml @@ -0,0 +1,26 @@ +columns: + classe_id: + type: bigint + not_null: NOT NULL + default: "0" + code: + type: text + condition: + type: text + default: "''::text" + exclude_code: + type: text + default: "''::text" + include_code: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_classes_sections'::regclass)" + texte: + type: text +constraints: + t_classes_sections_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_classes_sections_elements.yaml b/db/schema2/tables/t_classes_sections_elements.yaml new file mode 100644 index 0000000..f336934 --- /dev/null +++ b/db/schema2/tables/t_classes_sections_elements.yaml @@ -0,0 +1,20 @@ +columns: + section_id: + type: bigint + not_null: NOT NULL + default: "0" + to_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + t_classes_sections_elements_ukey: + type: UNIQUE + column: section_id, to_id +indexes: + i_classes_sections_elements_1: + column: section_id + method: btree + i_classes_sections_elements_2: + column: to_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_codes_postaux_c.yaml b/db/schema2/tables/t_codes_postaux_c.yaml new file mode 100644 index 0000000..303b1c4 --- /dev/null +++ b/db/schema2/tables/t_codes_postaux_c.yaml @@ -0,0 +1,100 @@ +comment: Générée par base.cti_reorganize_codes_postaux_c(''activite'') +columns: + code: + type: text + code_geographique_pmsi: + type: text + default: "''::text" + code_geographique_pmsi_code: + type: text + default: "''::text" + code_geographique_pmsi_id: + type: bigint + default: "0" + code_geographique_pmsi_population: + type: numeric + default: "0" + code_geographique_pmsi_texte: + type: text + default: "''::text" + code_postal_rattache_code: + type: text + default: "''::text" + code_postal_rattache_id: + type: bigint + default: "0" + code_postal_rattache_texte: + type: text + default: "''::text" + departement_code: + type: text + default: "''::text" + departement_id: + type: bigint + default: "0" + departement_texte: + type: text + default: "''::text" + latitude: + type: double precision + default: "0" + longitude: + type: double precision + default: "0" + oid: + type: bigint + not_null: NOT NULL + population: + type: numeric + default: "0" + region_code: + type: text + default: "''::text" + region_id: + type: bigint + default: "0" + region_texte: + type: text + default: "''::text" + secteur_geographique_id: + type: bigint + default: "0" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + territoire_sante_code: + type: text + default: "''::text" + territoire_sante_id: + type: bigint + default: "0" + territoire_sante_texte: + type: text + default: "''::text" + texte: + type: text + texte_court: + type: text +constraints: + t_codes_postaux__c_pkey: + type: PRIMARY KEY + column: oid + t_codes_postaux_c_ukey: + type: UNIQUE + column: code +indexes: + i_codes_postaux_c_0: + column: oid + method: btree + i_codes_postaux_c_1: + column: code + method: btree + i_codes_postaux_c_2: + column: departement_id + method: btree + i_codes_postaux_c_3: + column: code_geographique_pmsi_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_compte.yaml b/db/schema2/tables/t_compte.yaml new file mode 100644 index 0000000..7057ba6 --- /dev/null +++ b/db/schema2/tables/t_compte.yaml @@ -0,0 +1,32 @@ +columns: + code: + type: text + code_original: + type: text + compte_tva_id: + type: bigint + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_compte'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + taux_tva: + type: numeric + default: "0" + texte: + type: text + texte_court: + type: text +constraints: + t_compte_pkey: + type: PRIMARY KEY + column: oid + t_compte_ukey: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_compte_produit_analytique_rule.yaml b/db/schema2/tables/t_compte_produit_analytique_rule.yaml new file mode 100644 index 0000000..046a3d1 --- /dev/null +++ b/db/schema2/tables/t_compte_produit_analytique_rule.yaml @@ -0,0 +1,79 @@ +columns: + code: + type: text + compte_produit_analytique_id: + type: bigint + not_null: NOT NULL + default: "0" + liste_acte: + type: text + default: "''::text" + liste_activite: + type: text + default: "''::text" + liste_compte_produit: + type: text + default: "''::text" + liste_diagnostic_associe: + type: text + default: "''::text" + liste_diagnostic_principal: + type: text + default: "''::text" + liste_diagnostic_relie: + type: text + default: "''::text" + liste_etage: + type: text + default: "''::text" + liste_finess: + type: text + default: "''::text" + liste_ghm: + type: text + default: "''::text" + liste_medecin: + type: text + default: "''::text" + liste_prestation: + type: text + default: "''::text" + liste_rubrique: + type: text + default: "''::text" + liste_sauf_compte_produit: + type: text + default: "''::text" + liste_sauf_ghm: + type: text + default: "''::text" + liste_sauf_prestation: + type: text + default: "''::text" + liste_sauf_rubrique: + type: text + default: "''::text" + liste_service: + type: text + default: "''::text" + liste_specialite: + type: text + default: "''::text" + liste_type_sejour: + type: text + default: "''::text" + liste_unite_fonctionnelle: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_compte_produit_analytique_rule'::regclass)" + priorite: + type: numeric(5,0) + texte: + type: text +constraints: + t_compte_produit_analytique_rule_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_controle_chiffrier.yaml b/db/schema2/tables/t_controle_chiffrier.yaml new file mode 100644 index 0000000..f882760 --- /dev/null +++ b/db/schema2/tables/t_controle_chiffrier.yaml @@ -0,0 +1,55 @@ +columns: + commentaire: + type: text + default: "''::text" + date_comptable: + type: date + not_null: NOT NULL + default: "'2099-12-31'::date" + montant_comptabilise_c_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_c_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_d_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_d_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_s_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_s_h: + type: numeric(13,2) + default: "0" + montant_comptabilise_t_c: + type: numeric(13,2) + default: "0" + montant_comptabilise_t_h: + type: numeric(13,2) + default: "0" + montant_regle_c_c: + type: numeric(13,2) + default: "0" + montant_regle_c_h: + type: numeric(13,2) + default: "0" + montant_regle_s_c: + type: numeric(13,2) + default: "0" + montant_regle_s_h: + type: numeric(13,2) + default: "0" + provider_id: + type: bigint + not_null: NOT NULL + default: "0" + valide: + type: character(1) + default: "'0'::bpchar" +constraints: + t_controle_chiffrier_ukey: + type: PRIMARY KEY + column: date_comptable, provider_id \ No newline at end of file diff --git a/db/schema2/tables/t_dashboard.yaml b/db/schema2/tables/t_dashboard.yaml new file mode 100644 index 0000000..4b47a3c --- /dev/null +++ b/db/schema2/tables/t_dashboard.yaml @@ -0,0 +1,14 @@ +columns: + code: + type: text + label: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_dashboard'::regclass)" +constraints: + t_dashboard_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_dashboard_filter.yaml b/db/schema2/tables/t_dashboard_filter.yaml new file mode 100644 index 0000000..380d3e7 --- /dev/null +++ b/db/schema2/tables/t_dashboard_filter.yaml @@ -0,0 +1,13 @@ +columns: + condition_id: + type: bigint + dashboard_id: + type: bigint + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_dashboard_filter'::regclass)" +constraints: + t_dashboard_filter_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_dashboard_onglet.yaml b/db/schema2/tables/t_dashboard_onglet.yaml new file mode 100644 index 0000000..f2771ed --- /dev/null +++ b/db/schema2/tables/t_dashboard_onglet.yaml @@ -0,0 +1,15 @@ +columns: + dashboard_id: + type: bigint + index: + type: bigint + name: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_dashboard_onglet'::regclass)" +constraints: + t_dashboard_onglet_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_dashboard_widget.yaml b/db/schema2/tables/t_dashboard_widget.yaml new file mode 100644 index 0000000..602ad66 --- /dev/null +++ b/db/schema2/tables/t_dashboard_widget.yaml @@ -0,0 +1,15 @@ +columns: + chart_id: + type: bigint + dashboard_id: + type: bigint + deprecated: + type: boolean + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_dashboard_widget'::regclass)" +constraints: + t_dashboard_widget_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_divers.yaml b/db/schema2/tables/t_divers.yaml new file mode 100644 index 0000000..667404e --- /dev/null +++ b/db/schema2/tables/t_divers.yaml @@ -0,0 +1,21 @@ +columns: + code: + type: text + not_null: NOT NULL + description: + type: text + show_info_module: + type: boolean + default: 'false' + texte: + type: text + valeur: + type: text + valeur2: + type: text + valeur_date: + type: date +constraints: + t_divers_pkey: + type: PRIMARY KEY + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_durees_sejour_c.yaml b/db/schema2/tables/t_durees_sejour_c.yaml new file mode 100644 index 0000000..b02edc6 --- /dev/null +++ b/db/schema2/tables/t_durees_sejour_c.yaml @@ -0,0 +1,21 @@ +columns: + code: + type: text + oid: + type: bigint + not_null: NOT NULL + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text +constraints: + t_durees_sejour_c_pkey: + type: PRIMARY KEY + column: oid + t_durees_sejour_c_code_key: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_encours_calcul_parametres_services_prestations_histo.yaml b/db/schema2/tables/t_encours_calcul_parametres_services_prestations_histo.yaml new file mode 100644 index 0000000..24c839a --- /dev/null +++ b/db/schema2/tables/t_encours_calcul_parametres_services_prestations_histo.yaml @@ -0,0 +1,71 @@ +columns: + coefficient: + type: numeric + coefficient_calcule: + type: numeric + coefficient_is_force: + type: text + coefficient_mco: + type: numeric + lieu_service_code: + type: text + lieu_service_id: + type: bigint + lieu_unite_fonctionnelle_code: + type: text + lieu_unite_fonctionnelle_id: + type: bigint + nb_ambulatoires: + type: numeric + nb_externes: + type: numeric + nb_journees: + type: numeric + nb_journees_cp: + type: numeric + nb_prix_unitaire_moyen_1: + type: numeric + nb_prix_unitaire_moyen_3: + type: numeric + nb_seances: + type: numeric + nombre: + type: numeric + prestation_10p_code: + type: text + prestation_10p_id: + type: bigint + prestation_code: + type: text + prestation_id: + type: bigint + prestation_type_valorisation: + type: text + prix_unitaire: + type: numeric + prix_unitaire_calcule: + type: numeric + prix_unitaire_is_force: + type: text + prix_unitaire_moyen: + type: numeric + prix_unitaire_moyen_1: + type: numeric + prix_unitaire_moyen_3: + type: numeric + regle_prestation_texte: + type: text + rubrique_10p_code: + type: text + rubrique_10p_id: + type: bigint + rubrique_code: + type: text + rubrique_facturation_code: + type: text + rubrique_facturation_id: + type: bigint + tranche_ght: + type: text + type_ligne: + type: text \ No newline at end of file diff --git a/db/schema2/tables/t_encours_histo_sejour_facture_histo.yaml b/db/schema2/tables/t_encours_histo_sejour_facture_histo.yaml new file mode 100644 index 0000000..2eaa038 --- /dev/null +++ b/db/schema2/tables/t_encours_histo_sejour_facture_histo.yaml @@ -0,0 +1,45 @@ +columns: + classe_ghm: + type: text + date_fin: + type: date + duree_sejour: + type: integer + lieu_sortie_service_code: + type: text + lieu_sortie_service_id: + type: bigint + lieu_sortie_unite_fonctionnelle_code: + type: text + lieu_sortie_unite_fonctionnelle_id: + type: bigint + medecin_sejour_code: + type: text + medecin_sejour_id: + type: bigint + medecin_sejour_nom: + type: text + medecin_sejour_prenom: + type: text + montant_ghs: + type: numeric + montant_ghs_original: + type: numeric + nb_ghs: + type: numeric + no_sejour: + type: text + specialite_medecin_sejour_code: + type: text + specialite_medecin_sejour_id: + type: bigint + specialite_medecin_sejour_texte: + type: text + taux_0: + type: numeric + taux_1: + type: numeric + taux_2: + type: numeric + tranche_sejour: + type: text \ No newline at end of file diff --git a/db/schema2/tables/t_etages.yaml b/db/schema2/tables/t_etages.yaml new file mode 100644 index 0000000..05d8232 --- /dev/null +++ b/db/schema2/tables/t_etages.yaml @@ -0,0 +1,46 @@ +columns: + code: + type: text + code_original: + type: text + est_urgence: + type: text + default: "'0'::text" + finess_id: + type: bigint + default: "0" + nb_cp: + type: numeric(5,0) + default: "0" + nb_lits: + type: numeric(5,0) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_etages'::regclass)" + remplacer_par_valeur_par_defaut: + type: text + default: "'0'::text" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + service_force_id: + type: bigint + default: "0" + statut: + type: character(1) + texte: + type: text + texte_court: + type: text +constraints: + t_etages_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_etages_1: + column: code_original + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_etages_historique.yaml b/db/schema2/tables/t_etages_historique.yaml new file mode 100644 index 0000000..11b3834 --- /dev/null +++ b/db/schema2/tables/t_etages_historique.yaml @@ -0,0 +1,78 @@ +columns: + date: + type: date + date_fin: + type: date + default: "'2099-12-31'::date" + est_ouvert_1: + type: character(1) + default: "'1'::bpchar" + est_ouvert_2: + type: character(1) + default: "'1'::bpchar" + est_ouvert_3: + type: character(1) + default: "'1'::bpchar" + est_ouvert_4: + type: character(1) + default: "'1'::bpchar" + est_ouvert_5: + type: character(1) + default: "'1'::bpchar" + est_ouvert_6: + type: character(1) + default: "'1'::bpchar" + est_ouvert_7: + type: character(1) + default: "'1'::bpchar" + etage_id: + type: bigint + not_null: NOT NULL + heberge_ambulatoires: + type: character(1) + default: "'1'::bpchar" + heberge_bebes: + type: character(1) + default: "'1'::bpchar" + heberge_externes: + type: character(1) + default: "'1'::bpchar" + heberge_hospitalises: + type: character(1) + default: "'1'::bpchar" + heberge_seances: + type: character(1) + default: "'1'::bpchar" + heberge_urgences: + type: character(1) + default: "'1'::bpchar" + lit_force: + type: text + default: "''::text" + nb_box_ambulatoires_ouverts: + type: numeric(5,0) + default: "0" + nb_box_ambulatoires_theoriques: + type: numeric(5,0) + default: "0" + nb_box_seances_ouverts: + type: numeric(5,0) + default: "0" + nb_box_seances_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_cp_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_cp_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_theoriques: + type: numeric(5,0) + default: "0" + pole_occupation_id: + type: bigint + default: "0" \ No newline at end of file diff --git a/db/schema2/tables/t_etat_sejour.yaml b/db/schema2/tables/t_etat_sejour.yaml new file mode 100644 index 0000000..066fd7f --- /dev/null +++ b/db/schema2/tables/t_etat_sejour.yaml @@ -0,0 +1,23 @@ +columns: + code: + type: text + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_etat_sejour'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text +constraints: + t_etat_sejour_pkey: + type: PRIMARY KEY + column: oid + t_etat_sejour_ukey: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_expert_controle.yaml b/db/schema2/tables/t_expert_controle.yaml new file mode 100644 index 0000000..60bc5d1 --- /dev/null +++ b/db/schema2/tables/t_expert_controle.yaml @@ -0,0 +1,58 @@ +columns: + alert_exp: + type: text + not_null: NOT NULL + default: "'0'::text" + code: + type: text + date_validite_debut: + type: date + date_validite_fin: + type: date + description: + type: text + default: "''::text" + etat_cible: + type: bigint + default: "5" + comment: 0=Tous, 1=Présents, 2=Non facturés + gravite_id: + type: bigint + default: "5" + comment: 0=Information, 5=Avertissement, 9=Erreur + is_active: + type: character(1) + default: "'1'::bpchar" + is_cti: + type: character(1) + default: "'0'::bpchar" + is_global: + type: character(1) + default: "'0'::bpchar" + is_hide: + type: character(1) + default: "'0'::bpchar" + last_execution_ok: + type: character(1) + last_execution_timestamp: + type: timestamp without time zone + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_expert_controle'::regclass)" + prestataire_id: + type: bigint + default: (-1) + comment: '-1: tous, voir table base.t_prestataires pour le reste' + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_abrege: + type: text + texte_court: + type: text \ No newline at end of file diff --git a/db/schema2/tables/t_expert_controle_rule.yaml b/db/schema2/tables/t_expert_controle_rule.yaml new file mode 100644 index 0000000..26a72c3 --- /dev/null +++ b/db/schema2/tables/t_expert_controle_rule.yaml @@ -0,0 +1,20 @@ +columns: + controle_id: + type: bigint + numero: + type: bigint + default: "1" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_expert_controle_rule'::regclass)" + sqlcmd_justificatif: + type: text + default: "''::text" + sqlcmd_where: + type: text + default: "''::text" + table_id: + type: bigint + default: (0)::bigint + comment: Table de référence pour la condition. 0:séjours | 1:mouvements | 2:factures | 99:SQL brut \ No newline at end of file diff --git a/db/schema2/tables/t_filiere_soin.yaml b/db/schema2/tables/t_filiere_soin.yaml new file mode 100644 index 0000000..4624d44 --- /dev/null +++ b/db/schema2/tables/t_filiere_soin.yaml @@ -0,0 +1,28 @@ +columns: + code: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_filiere_soin'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_filiere_soin_1_pkey: + type: PRIMARY KEY + column: oid + t_filiere_soin_1_ukey1: + type: UNIQUE + column: code +indexes: + i_filiere_soin_1_code: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_filiere_soin_rule.yaml b/db/schema2/tables/t_filiere_soin_rule.yaml new file mode 100644 index 0000000..3cba8bf --- /dev/null +++ b/db/schema2/tables/t_filiere_soin_rule.yaml @@ -0,0 +1,82 @@ +columns: + code: + type: text + filiere_soin_id: + type: bigint + not_null: NOT NULL + default: "0" + liste_acte: + type: text + default: "''::text" + liste_activite: + type: text + default: "''::text" + liste_diagnostic_associe: + type: text + default: "''::text" + liste_diagnostic_principal: + type: text + default: "''::text" + liste_diagnostic_relie: + type: text + default: "''::text" + liste_etage: + type: text + default: "''::text" + liste_etage_entree: + type: text + default: "''::text" + liste_finess: + type: text + default: "''::text" + liste_ghm: + type: text + default: "''::text" + liste_medecin: + type: text + default: "''::text" + liste_prestation: + type: text + default: "''::text" + liste_rubrique: + type: text + default: "''::text" + liste_sauf_ghm: + type: text + default: "''::text" + liste_sauf_prestation: + type: text + default: "''::text" + liste_sauf_rubrique: + type: text + default: "''::text" + liste_service: + type: text + default: "''::text" + liste_service_entree: + type: text + default: "''::text" + liste_specialite: + type: text + default: "''::text" + liste_type_sejour: + type: text + default: "''::text" + liste_unite_fonctionnelle: + type: text + default: "''::text" + liste_unite_fonctionnelle_entree: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_filiere_soin_rule'::regclass)" + priorite: + type: numeric(5,0) + texte: + type: text +constraints: + t_filiere_soin_1_rule_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_finess_c.yaml b/db/schema2/tables/t_finess_c.yaml new file mode 100644 index 0000000..5cdd583 --- /dev/null +++ b/db/schema2/tables/t_finess_c.yaml @@ -0,0 +1,34 @@ +columns: + code: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "0" + secondaire: + type: character(1) + default: "'0'::bpchar" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text + type_etablissement: + type: character(1) + default: "1" +constraints: + t_finess_pkey: + type: PRIMARY KEY + column: oid + t_finess_ukey1: + type: UNIQUE + column: code +indexes: + i_finess_c_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_forme_activite.yaml b/db/schema2/tables/t_forme_activite.yaml new file mode 100644 index 0000000..b58d056 --- /dev/null +++ b/db/schema2/tables/t_forme_activite.yaml @@ -0,0 +1,28 @@ +columns: + code: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_forme_activite'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_forme_activite_pkey: + type: PRIMARY KEY + column: oid + t_forme_activite_ukey1: + type: UNIQUE + column: code +indexes: + i_forme_activite_code: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_forme_activite_rule.yaml b/db/schema2/tables/t_forme_activite_rule.yaml new file mode 100644 index 0000000..a17f17c --- /dev/null +++ b/db/schema2/tables/t_forme_activite_rule.yaml @@ -0,0 +1,73 @@ +columns: + code: + type: text + forme_activite_id: + type: bigint + not_null: NOT NULL + default: "0" + liste_acte: + type: text + default: "''::text" + liste_diagnostic_associe: + type: text + default: "''::text" + liste_diagnostic_principal: + type: text + default: "''::text" + liste_diagnostic_relie: + type: text + default: "''::text" + liste_etage: + type: text + default: "''::text" + liste_etage_entree: + type: text + default: "''::text" + liste_finess: + type: text + default: "''::text" + liste_ghm: + type: text + default: "''::text" + liste_medecin: + type: text + default: "''::text" + liste_prestation: + type: text + default: "''::text" + liste_rubrique: + type: text + default: "''::text" + liste_sauf_ghm: + type: text + default: "''::text" + liste_service: + type: text + default: "''::text" + liste_service_entree: + type: text + default: "''::text" + liste_specialite: + type: text + default: "''::text" + liste_type_sejour: + type: text + default: "''::text" + liste_unite_fonctionnelle: + type: text + default: "''::text" + liste_unite_fonctionnelle_entree: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_forme_activite_rule'::regclass)" + priorite: + type: numeric(5,0) + texte: + type: text +constraints: + t_forme_activite_rule_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_ghm_c.yaml b/db/schema2/tables/t_ghm_c.yaml new file mode 100644 index 0000000..819298e --- /dev/null +++ b/db/schema2/tables/t_ghm_c.yaml @@ -0,0 +1,67 @@ +columns: + cas_code: + type: character(1) + cas_id: + type: bigint + cas_texte: + type: text + cmd_code: + type: text + cmd_id: + type: bigint + cmd_texte: + type: text + ghm5_code: + type: text + ghm5_id: + type: bigint + ghm5_texte: + type: text + ghm_code: + type: text + ghm_id: + type: bigint + not_null: NOT NULL + ghm_section_code: + type: 'text[]' + ghm_section_id: + type: 'bigint[]' + ghm_section_texte: + type: 'text[]' + ghm_texte: + type: text + mco_code: + type: character(1) + mco_id: + type: bigint + mco_texte: + type: text + severite_ghm_code: + type: character(1) + severite_ghm_id: + type: bigint + severite_ghm_texte: + type: text +constraints: + t_ghm_c_pkey: + type: PRIMARY KEY + column: ghm_id + t_ghm_c_ukey1: + type: UNIQUE + column: ghm_code +indexes: + i_ghm_c_1: + column: mco_id + method: btree + i_ghm_c_11: + column: cas_id + method: btree + i_ghm_c_2: + column: severite_ghm_id + method: btree + i_ghm_c_3: + column: cmd_id + method: btree + i_ghm_c_7: + column: ghm5_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_ghmgme_c.yaml b/db/schema2/tables/t_ghmgme_c.yaml new file mode 100644 index 0000000..c2794e1 --- /dev/null +++ b/db/schema2/tables/t_ghmgme_c.yaml @@ -0,0 +1,78 @@ +columns: + cm_code: + type: text + cm_id: + type: bigint + cm_texte: + type: text + cmd_code: + type: text + cmd_id: + type: bigint + cmd_texte: + type: text + ghm5_code: + type: text + ghm5_id: + type: bigint + ghm5_texte: + type: text + ghm_code: + type: text + ghm_id: + type: bigint + ghm_texte: + type: text + ghmgme_code: + type: text + ghmgme_id: + type: integer + not_null: NOT NULL + ghmgme_section_code: + type: 'text[]' + ghmgme_section_id: + type: 'bigint[]' + ghmgme_section_texte: + type: 'text[]' + ghmgme_texte: + type: text + gme_code: + type: text + gme_id: + type: bigint + gme_texte: + type: text + gn_code: + type: text + gn_id: + type: bigint + gn_texte: + type: text + rgme_code: + type: text + rgme_id: + type: bigint + rgme_texte: + type: text + type_pmsi: + type: text +constraints: + t_ghmgme_c_pkey: + type: PRIMARY KEY + column: ghmgme_id +indexes: + i_ghmgme_c_3: + column: cmd_id + method: btree + i_ghmgme_c_7: + column: ghm5_id + method: btree + i_ghmgme_c_gme_id: + column: gme_id + method: btree + i_ghmgme_c_gn_id: + column: gn_id + method: btree + i_ghmgme_c_rgme_id: + column: rgme_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_ghs_c.yaml b/db/schema2/tables/t_ghs_c.yaml new file mode 100644 index 0000000..e668428 --- /dev/null +++ b/db/schema2/tables/t_ghs_c.yaml @@ -0,0 +1,51 @@ +columns: + cmd_code: + type: text + default: "0" + cmd_id: + type: bigint + default: "0" + cmd_texte: + type: text + ghm_code: + type: text + default: "0" + ghm_id: + type: bigint + default: "0" + ghm_texte: + type: text + ghs_code: + type: numeric(6,0) + ghs_code_text: + type: text + ghs_id: + type: bigint + not_null: NOT NULL + ghs_texte: + type: text + mco_code: + type: text + default: "0" + mco_id: + type: bigint + default: "0" + mco_texte: + type: text +constraints: + t_ghs_c_pkey: + type: PRIMARY KEY + column: ghs_id +indexes: + i_ghs_c_1: + column: ghs_id + method: btree + i_ghs_c_4: + column: ghm_id + method: btree + i_ghs_c_5: + column: mco_id + method: btree + i_ghs_c_6: + column: cmd_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_gme_c.yaml b/db/schema2/tables/t_gme_c.yaml new file mode 100644 index 0000000..01657d0 --- /dev/null +++ b/db/schema2/tables/t_gme_c.yaml @@ -0,0 +1,65 @@ +columns: + cm_code: + type: text + cm_id: + type: bigint + cm_section_code: + type: 'text[]' + cm_section_id: + type: 'bigint[]' + cm_section_texte: + type: 'text[]' + cm_texte: + type: text + gme_code: + type: text + gme_id: + type: bigint + gme_section_code: + type: 'text[]' + gme_section_id: + type: 'bigint[]' + gme_section_texte: + type: 'text[]' + gme_texte: + type: text + gn_code: + type: text + gn_id: + type: bigint + gn_section_code: + type: 'text[]' + gn_section_id: + type: 'bigint[]' + gn_section_texte: + type: 'text[]' + gn_texte: + type: text + rgme_code: + type: text + rgme_id: + type: bigint + rgme_section_code: + type: 'text[]' + rgme_section_id: + type: 'bigint[]' + rgme_section_texte: + type: 'text[]' + rgme_texte: + type: text +indexes: + i_gme_c_cm_id: + column: cm_id + method: btree + i_gme_c_gn_id: + column: gn_id + method: btree + i_gme_c_gme_id: + column: gme_id + method: btree + i_gme_c_rgme_id: + column: rgme_id + method: btree + i_gme_c_gme_section_id: + column: gme_section_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_gmt_c.yaml b/db/schema2/tables/t_gmt_c.yaml new file mode 100644 index 0000000..f3e4b89 --- /dev/null +++ b/db/schema2/tables/t_gmt_c.yaml @@ -0,0 +1,16 @@ +columns: + gmt_code: + type: text + gmt_id: + type: bigint + not_null: NOT NULL + gmt_texte: + type: text +constraints: + t_gmt_c_pkey: + type: PRIMARY KEY + column: gmt_id +indexes: + i_gmt_c_1: + column: gmt_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_indicateur_condition.yaml b/db/schema2/tables/t_indicateur_condition.yaml new file mode 100644 index 0000000..b7962c5 --- /dev/null +++ b/db/schema2/tables/t_indicateur_condition.yaml @@ -0,0 +1,39 @@ +columns: + arbre_code: + type: 'text[]' + arbre_texte: + type: 'text[]' + code: + type: text + default: "''::text" + column_name: + type: text + default: "''::text" + column_texte: + type: text + default: "''::text" + external_code: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateur_condition'::regclass)" + rule: + type: text + default: "''::text" + texte: + type: text + default: "''::text" + texte_court: + type: text + default: "''::text" + value: + type: text + default: "''::text" + view_select_rule: + type: text + default: "''::text" +constraints: + t_indicateur_condition_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_indicateur_condition_table.yaml b/db/schema2/tables/t_indicateur_condition_table.yaml new file mode 100644 index 0000000..7fcbfa5 --- /dev/null +++ b/db/schema2/tables/t_indicateur_condition_table.yaml @@ -0,0 +1,17 @@ +columns: + check_where: + type: text + default: "''::text" + indicateur_condition_id: + type: bigint + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateur_condition_table'::regclass)" + table_name: + type: text + default: "''::text" +constraints: + t_indicateur_condition_table_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_indicateur_serie.yaml b/db/schema2/tables/t_indicateur_serie.yaml new file mode 100644 index 0000000..e5c74d3 --- /dev/null +++ b/db/schema2/tables/t_indicateur_serie.yaml @@ -0,0 +1,33 @@ +columns: + calc: + type: boolean + code: + type: text + color: + type: text + condition_id: + type: 'bigint[]' + drilldown: + type: jsonb + format: + type: text + formula: + type: text + indicateur_id: + type: bigint + name: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateur_serie'::regclass)" + serie_id: + type: text + default: "''::text" + total: + type: boolean + default: 'false' +constraints: + t_indicateur_serie_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_indicateur_theme.yaml b/db/schema2/tables/t_indicateur_theme.yaml new file mode 100644 index 0000000..1bca744 --- /dev/null +++ b/db/schema2/tables/t_indicateur_theme.yaml @@ -0,0 +1,29 @@ +columns: + children_id: + type: 'bigint[]' + code: + type: text + default: "''::text" + level: + type: numeric + default: "1" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateur_theme'::regclass)" + parent_id: + type: bigint + default: "0" + parent_tree_code: + type: 'text[]' + parent_tree_id: + type: 'bigint[]' + parent_tree_texte: + type: 'text[]' + texte: + type: text + default: "''::text" +constraints: + t_indicateur_theme_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_indicateurs.yaml b/db/schema2/tables/t_indicateurs.yaml new file mode 100644 index 0000000..eb54453 --- /dev/null +++ b/db/schema2/tables/t_indicateurs.yaml @@ -0,0 +1,137 @@ +columns: + code: + type: text + column_name: + type: text + default: "''::text" + description: + type: text + default: "''::text" + dimension_date: + type: character(1) + default: "''::bpchar" + dimension_date_1: + type: character(1) + default: "''::bpchar" + dimension_date_2: + type: character(1) + default: "''::bpchar" + dimension_date_3: + type: character(1) + default: "''::bpchar" + dimension_date_4: + type: character(1) + default: "''::bpchar" + dimension_date_5: + type: character(1) + default: "''::bpchar" + entete: + type: text + entete_etendue: + type: text + indicateur_associe_10_id: + type: bigint + default: "0" + indicateur_associe_11_id: + type: bigint + default: "0" + indicateur_associe_12_id: + type: bigint + default: "0" + indicateur_associe_13_id: + type: bigint + default: "0" + indicateur_associe_14_id: + type: bigint + default: "0" + indicateur_associe_15_id: + type: bigint + default: "0" + indicateur_associe_16_id: + type: bigint + default: "0" + indicateur_associe_17_id: + type: bigint + default: "0" + indicateur_associe_18_id: + type: bigint + default: "0" + indicateur_associe_19_id: + type: bigint + default: "0" + indicateur_associe_1_id: + type: bigint + default: "0" + indicateur_associe_20_id: + type: bigint + default: "0" + indicateur_associe_2_id: + type: bigint + default: "0" + indicateur_associe_3_id: + type: bigint + default: "0" + indicateur_associe_4_id: + type: bigint + default: "0" + indicateur_associe_5_id: + type: bigint + default: "0" + indicateur_associe_6_id: + type: bigint + default: "0" + indicateur_associe_7_id: + type: bigint + default: "0" + indicateur_associe_8_id: + type: bigint + default: "0" + indicateur_associe_9_id: + type: bigint + default: "0" + indicateur_reference_id: + type: bigint + default: "0" + indicateur_template_id: + type: bigint + default: "0" + is_cti: + type: character(1) + default: "0" + is_hide: + type: character(1) + is_template: + type: text + default: "'0'::text" + last_error: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_indicateurs'::regclass)" + output_format: + type: text + default: "'#'::text" + table_name: + type: text + texte: + type: text + theme_id: + type: 'bigint[]' + total_function: + type: text + default: "'sum'::text" + variable_definition: + type: 'text[]' + variable_value: + type: 'text[]' + variable_value_text: + type: 'text[]' + width: + type: numeric(3,0) + default: "0" +constraints: + t_indicateurs_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_journal.yaml b/db/schema2/tables/t_journal.yaml new file mode 100644 index 0000000..bbb31f3 --- /dev/null +++ b/db/schema2/tables/t_journal.yaml @@ -0,0 +1,18 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_journal'::regclass)" + texte: + type: text + type_journal: + type: text + default: "''::text" +indexes: + t_journal_code_key: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_kiwee_params.yaml b/db/schema2/tables/t_kiwee_params.yaml new file mode 100644 index 0000000..26bed04 --- /dev/null +++ b/db/schema2/tables/t_kiwee_params.yaml @@ -0,0 +1,18 @@ +columns: + code: + type: text + not_null: NOT NULL + description: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_kiwee_params'::regclass)" + texte: + type: text + valeur: + type: boolean +constraints: + t_kiwee_params_pkey: + type: PRIMARY KEY + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_lieux.yaml b/db/schema2/tables/t_lieux.yaml new file mode 100644 index 0000000..4bc7391 --- /dev/null +++ b/db/schema2/tables/t_lieux.yaml @@ -0,0 +1,107 @@ +columns: + activite_id: + type: bigint + default: "0" + code_original_1: + type: text + default: "''::text" + comment: Pour SHS = service + code_original_2: + type: text + default: "''::text" + comment: Pour SHS = activite + code_original_3: + type: text + default: "''::text" + comment: Pour SHS = etage + code_original_4: + type: text + default: "''::text" + comment: Pour SHS = lit + code_original_5: + type: text + default: "''::text" + comment: Pour SHS = blanc + code_original_6: + type: text + default: "''::text" + comment: Pour SHS = blanc + code_original_7: + type: text + default: "''::text" + comment: Pour SHS = blanc + gir_code_original: + type: text + default: "''::text" + gir_id: + type: bigint + default: "0" + lit_id: + type: bigint + default: "0" + mode_traitement_id: + type: bigint + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_lieux'::regclass)" + service_facturation_id: + type: bigint + default: "0" + unite_fonctionnelle_id: + type: bigint + default: "0" + unite_medicale_id: + type: bigint + default: "0" +constraints: + t_lieux_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_lieux_1: + column: code_original_1 + method: btree + i_lieux_10: + column: code_original_5 + method: btree + i_lieux_11: + column: code_original_6 + method: btree + i_lieux_12: + column: code_original_7 + method: btree + i_lieux_13: + column: unite_medicale_id + method: btree + i_lieux_14: + column: unite_fonctionnelle_id + method: btree + i_lieux_15: + column: mode_traitement_id + method: btree + i_lieux_2: + column: code_original_2 + method: btree + i_lieux_3: + column: code_original_3 + method: btree + i_lieux_4: + column: code_original_4 + method: btree + i_lieux_5: + column: lit_id + method: btree + i_lieux_6: + column: service_facturation_id + method: btree + i_lieux_7: + column: activite_id + method: btree + i_lieux_8: + column: unite_medicale_id + method: btree + i_lieux_9: + column: unite_fonctionnelle_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_lieux_c.yaml b/db/schema2/tables/t_lieux_c.yaml new file mode 100644 index 0000000..6213608 --- /dev/null +++ b/db/schema2/tables/t_lieux_c.yaml @@ -0,0 +1,149 @@ +columns: + activite_code: + type: text + activite_id: + type: bigint + activite_section_code: + type: 'text[]' + activite_section_id: + type: 'bigint[]' + activite_section_texte: + type: 'text[]' + activite_texte: + type: text + date_debut: + type: date + not_null: NOT NULL + default: "'0001-01-01'::date" + date_fin: + type: date + default: "'2099-12-31'::date" + etage_code: + type: text + etage_id: + type: bigint + etage_section_code: + type: 'text[]' + etage_section_id: + type: 'bigint[]' + etage_section_texte: + type: 'text[]' + etage_texte: + type: text + gir_code: + type: text + default: "''::text" + gir_coefficient: + type: numeric + default: "0" + gir_id: + type: bigint + default: "0" + gir_section_code: + type: 'text[]' + gir_section_id: + type: 'bigint[]' + gir_section_texte: + type: 'text[]' + gir_texte: + type: text + default: "''::text" + lit_code: + type: text + lit_id: + type: bigint + lit_section_code: + type: 'text[]' + lit_section_id: + type: 'bigint[]' + lit_section_texte: + type: 'text[]' + lit_texte: + type: text + mode_traitement_code: + type: text + mode_traitement_id: + type: bigint + mode_traitement_texte: + type: text + oid: + type: bigint + not_null: NOT NULL + service_facturation_code: + type: text + service_facturation_est_absence: + type: character(1) + default: "'0'::bpchar" + service_facturation_est_sans_mouvement: + type: character(1) + default: "''::bpchar" + service_facturation_id: + type: bigint + service_facturation_section_code: + type: 'text[]' + service_facturation_section_id: + type: 'bigint[]' + service_facturation_section_nb_cp: + type: 'numeric[]' + service_facturation_section_nb_lits: + type: 'numeric[]' + service_facturation_section_texte: + type: 'text[]' + service_facturation_texte: + type: text + type_t2a: + type: character(1) + default: "''::bpchar" + unite_fonctionnelle_code: + type: text + unite_fonctionnelle_id: + type: bigint + unite_fonctionnelle_section_code: + type: 'text[]' + unite_fonctionnelle_section_id: + type: 'bigint[]' + unite_fonctionnelle_section_texte: + type: 'text[]' + unite_fonctionnelle_texte: + type: text + unite_medicale_code: + type: text + unite_medicale_id: + type: bigint + unite_medicale_section_code: + type: 'text[]' + unite_medicale_section_id: + type: 'bigint[]' + unite_medicale_section_texte: + type: 'text[]' + unite_medicale_texte: + type: text +constraints: + t_lieux_c_pkey: + type: PRIMARY KEY + column: date_debut, oid +indexes: + i_lieux_c_1: + column: unite_medicale_id + method: btree + i_lieux_c_2: + column: unite_fonctionnelle_id + method: btree + i_lieux_c_3: + column: mode_traitement_id + method: btree + i_lieux_c_4: + column: service_facturation_id + method: btree + i_lieux_c_5: + column: activite_id + method: btree + i_lieux_c_6: + column: etage_id + method: btree + i_lieux_c_7: + column: lit_id + method: btree + i_lieux_c_service_facturation_est_sans_mouvement: + column: service_facturation_est_sans_mouvement + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_listes.yaml b/db/schema2/tables/t_listes.yaml new file mode 100644 index 0000000..febdd35 --- /dev/null +++ b/db/schema2/tables/t_listes.yaml @@ -0,0 +1,48 @@ +columns: + chapitre: + type: text + default: "''::text" + code: + type: text + contenu_by_code: + type: text + default: "'0'::text" + contenu_non_replicable_ailleurs: + type: character(1) + default: "'0'::bpchar" + est_partagee_modification: + type: character(1) + default: "'1'::bpchar" + exclude_code: + type: text + default: "''::text" + include_code: + type: text + default: "''::text" + is_cti: + type: character(1) + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_listes'::regclass)" + show_omit: + type: character(1) + default: "'1'::bpchar" + table_id: + type: bigint + not_null: NOT NULL + default: "0" + texte: + type: text + utilisateur_createur: + type: text + default: "''::text" +constraints: + t_listes_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_listes_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_listes_contenu.yaml b/db/schema2/tables/t_listes_contenu.yaml new file mode 100644 index 0000000..450c5ee --- /dev/null +++ b/db/schema2/tables/t_listes_contenu.yaml @@ -0,0 +1,20 @@ +columns: + liste_id: + type: bigint + not_null: NOT NULL + default: "0" + to_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + t_listes_contenu_ukey: + type: UNIQUE + column: liste_id, to_id +indexes: + i_listes_contenu_1: + column: liste_id + method: btree + i_listes_contenu_2: + column: to_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_listes_tables.yaml b/db/schema2/tables/t_listes_tables.yaml new file mode 100644 index 0000000..a87f7ea --- /dev/null +++ b/db/schema2/tables/t_listes_tables.yaml @@ -0,0 +1,18 @@ +columns: + code: + type: text + default: "''::text" + name: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_listes_tables'::regclass)" + select_cmd: + type: text + texte: + type: text +constraints: + t_listes_tables_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_lit_historique.yaml b/db/schema2/tables/t_lit_historique.yaml new file mode 100644 index 0000000..646bcc2 --- /dev/null +++ b/db/schema2/tables/t_lit_historique.yaml @@ -0,0 +1,21 @@ +columns: + date_debut: + type: date + date_fin: + type: date + etage_id: + type: bigint + lit_id: + type: bigint + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_lit_historique'::regclass)" +constraints: + t_lit_historique_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_lit_historique_1: + column: lit_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_lits.yaml b/db/schema2/tables/t_lits.yaml new file mode 100644 index 0000000..1152c0a --- /dev/null +++ b/db/schema2/tables/t_lits.yaml @@ -0,0 +1,40 @@ +columns: + chambre_particuliere: + type: character(1) + default: "''::bpchar" + code: + type: text + code_original: + type: text + est_prioritaire: + type: text + default: "'0'::text" + etage_id: + type: bigint + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_lits'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + statut: + type: character(1) + texte: + type: text + texte_court: + type: text +constraints: + t_lits_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_lits_1: + column: etage_id + method: btree + i_lits_2: + column: code_original + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_lpp_c.yaml b/db/schema2/tables/t_lpp_c.yaml new file mode 100644 index 0000000..3a93efb --- /dev/null +++ b/db/schema2/tables/t_lpp_c.yaml @@ -0,0 +1,76 @@ +columns: + classification_atc_1_code: + type: character varying(30) + default: "''::character varying" + classification_atc_1_id: + type: bigint + default: "0" + classification_atc_1_texte: + type: character varying(255) + default: "''::character varying" + classification_atc_2_code: + type: character varying(30) + default: "''::character varying" + classification_atc_2_id: + type: bigint + default: "0" + classification_atc_2_texte: + type: character varying(255) + default: "''::character varying" + classification_atc_3_code: + type: character varying(30) + default: "''::character varying" + classification_atc_3_id: + type: bigint + default: "0" + classification_atc_3_texte: + type: character varying(255) + default: "''::character varying" + classification_atc_4_code: + type: character varying(30) + default: "''::character varying" + classification_atc_4_id: + type: bigint + default: "0" + classification_atc_4_texte: + type: character varying(255) + default: "''::character varying" + classification_atc_code: + type: character varying(30) + default: "''::character varying" + classification_atc_id: + type: bigint + default: "0" + classification_atc_section_code: + type: 'character varying(10)[]' + classification_atc_section_id: + type: 'bigint[]' + classification_atc_section_texte: + type: 'character varying(255)[]' + classification_atc_texte: + type: character varying(250) + default: "''::character varying" + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_lpp_c_pkey: + type: PRIMARY KEY + column: oid + t_lpp_c_ukey: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_medecins_administratifs.yaml b/db/schema2/tables/t_medecins_administratifs.yaml new file mode 100644 index 0000000..ba9cfaa --- /dev/null +++ b/db/schema2/tables/t_medecins_administratifs.yaml @@ -0,0 +1,67 @@ +columns: + adresse: + type: text + default: "''::text" + code: + type: text + code_original: + type: text + code_postal_id: + type: bigint + default: "0" + code_rpps: + type: text + default: "''::text" + email: + type: text + default: "''::text" + est_medecin_salarie: + type: numeric(1,0) + default: "0" + fax: + type: text + default: "''::text" + kiwee_sigems_honpatcpt: + type: text + default: "'1'::text" + kiwee_sigems_honpatcptdep: + type: text + default: "'1'::text" + medecin_id: + type: bigint + no_adeli: + type: text + default: "''::text" + nom: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_medecins'::regclass)" + prenom: + type: text + specialite_id: + type: bigint + telephone: + type: text + default: "''::text" + ville: + type: text + default: "''::text" +constraints: + t_medecins_pkey: + type: PRIMARY KEY + column: oid + t_medecins_ukey: + type: UNIQUE + column: code_original +indexes: + i_medecins_administratifs_1: + column: specialite_id + method: btree + i_medecins_administratifs_2: + column: medecin_id + method: btree + i_medecins_administratifs_3: + column: code_original + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_medecins_administratifs_c.yaml b/db/schema2/tables/t_medecins_administratifs_c.yaml new file mode 100644 index 0000000..207fbd4 --- /dev/null +++ b/db/schema2/tables/t_medecins_administratifs_c.yaml @@ -0,0 +1,57 @@ +columns: + adm_code: + type: text + adm_nom: + type: text + adm_nom_prenom: + type: text + adm_prenom: + type: text + medecin_code: + type: text + medecin_id: + type: bigint + nom: + type: text + nom_prenom: + type: text + oid: + type: bigint + not_null: NOT NULL + prenom: + type: text + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + specialite_code: + type: text + default: "''::text" + specialite_id: + type: bigint + default: "0" + specialite_texte: + type: text + default: "''::text" +constraints: + t_medecins_administratifs_c_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_medecins_administratifs_c_1: + column: specialite_id + method: btree + i_medecins_administratifs_c_2: + column: medecin_id + method: btree + i_medecins_administratifs_c_3: + column: '(section_id[1])' + method: btree + i_medecins_administratifs_c_4: + column: '(section_id[2])' + method: btree + i_medecins_administratifs_c_5: + column: '(section_id[3])' + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_medecins_traitants_administratifs.yaml b/db/schema2/tables/t_medecins_traitants_administratifs.yaml new file mode 100644 index 0000000..deaec28 --- /dev/null +++ b/db/schema2/tables/t_medecins_traitants_administratifs.yaml @@ -0,0 +1,56 @@ +columns: + adresse: + type: text + code: + type: text + code_original: + type: text + code_postal_id: + type: bigint + est_medecin_salarie: + type: numeric(1,0) + default: "0" + is_medecin_executant: + type: numeric(1,0) + default: "0" + is_medecin_sejour: + type: numeric(1,0) + default: "0" + medecin_id: + type: bigint + no_adeli: + type: character varying(30) + default: "''::character varying" + no_rpps: + type: text + nom: + type: character varying(255) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_medecins_traitants_administratifs'::regclass)" + prenom: + type: character varying(255) + specialite_id: + type: bigint + statut: + type: character(1) + ville: + type: text +constraints: + t_medecins_traitants_administratifs_pkey: + type: PRIMARY KEY + column: oid + t_medecins_traitants_administratifs_ukey: + type: UNIQUE + column: code_original +indexes: + i_medecins_traitants_administratifs_1: + column: specialite_id + method: btree + i_medecins_traitants_administratifs_2: + column: medecin_id + method: btree + i_medecins_traitants_administratifs_3: + column: code_original + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_motif_non_facturation.yaml b/db/schema2/tables/t_motif_non_facturation.yaml new file mode 100644 index 0000000..0025435 --- /dev/null +++ b/db/schema2/tables/t_motif_non_facturation.yaml @@ -0,0 +1,26 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_motif_non_facturation'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_motif_non_facturation_pkey: + type: PRIMARY KEY + column: oid + t_motif_non_facturation_code_key: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_parametre_personnalise_sejour_1.yaml b/db/schema2/tables/t_parametre_personnalise_sejour_1.yaml new file mode 100644 index 0000000..b169f0f --- /dev/null +++ b/db/schema2/tables/t_parametre_personnalise_sejour_1.yaml @@ -0,0 +1,23 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_parametre_personnalise_sejour_1'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_parametre_personnalise_sejour_1_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_parametre_personnalise_sejour_2.yaml b/db/schema2/tables/t_parametre_personnalise_sejour_2.yaml new file mode 100644 index 0000000..09d2bc3 --- /dev/null +++ b/db/schema2/tables/t_parametre_personnalise_sejour_2.yaml @@ -0,0 +1,23 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_parametre_personnalise_sejour_2'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_parametre_personnalise_sejour_2_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_places.yaml b/db/schema2/tables/t_places.yaml new file mode 100644 index 0000000..0988e10 --- /dev/null +++ b/db/schema2/tables/t_places.yaml @@ -0,0 +1,70 @@ +columns: + date: + type: date + est_ouvert: + type: character(1) + default: "'1'::bpchar" + heberge_ambulatoires: + type: character(1) + default: "'1'::bpchar" + heberge_bebes: + type: character(1) + default: "'1'::bpchar" + heberge_externes: + type: character(1) + default: "'1'::bpchar" + heberge_hospitalises: + type: character(1) + default: "'1'::bpchar" + heberge_seances: + type: character(1) + default: "'0'::bpchar" + heberge_urgences: + type: character(1) + default: "'1'::bpchar" + is_weekend: + type: character(1) + jour_semaine: + type: numeric + nb_box_ambulatoires_ouverts: + type: numeric(5,0) + default: "0" + nb_box_ambulatoires_theoriques: + type: numeric(5,0) + default: "0" + nb_box_seances_ouverts: + type: numeric(5,0) + default: "0" + nb_box_seances_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_cp_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_cp_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_theoriques: + type: numeric(5,0) + default: "0" + parent_id: + type: bigint + not_null: NOT NULL + pole_id: + type: bigint + default: "0" + type_sejour_id: + type: bigint +indexes: + i_places_1: + column: parent_id + method: btree + i_places_2: + column: date + method: btree + i_places_3: + column: type_sejour_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_places_parents.yaml b/db/schema2/tables/t_places_parents.yaml new file mode 100644 index 0000000..faf7eaa --- /dev/null +++ b/db/schema2/tables/t_places_parents.yaml @@ -0,0 +1,44 @@ +columns: + finess_code: + type: text + finess_id: + type: bigint + default: "0" + finess_section_code: + type: 'text[]' + finess_section_id: + type: 'bigint[]' + finess_section_texte: + type: 'text[]' + finess_texte: + type: text + mode_traitement_code: + type: text + default: "''::text" + mode_traitement_id: + type: bigint + default: "0" + mode_traitement_texte: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "0" + parent_code: + type: text + parent_section_code: + type: 'text[]' + parent_section_id: + type: 'bigint[]' + parent_section_texte: + type: 'text[]' + parent_texte: + type: text + parent_type: + type: text + default: "''::text" +constraints: + t_places_parents_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_pole.yaml b/db/schema2/tables/t_pole.yaml new file mode 100644 index 0000000..c15e0db --- /dev/null +++ b/db/schema2/tables/t_pole.yaml @@ -0,0 +1,23 @@ +columns: + code: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + default: "''::text" + texte_court: + type: text + default: "''::text" +constraints: + t_pole_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_pole_rule.yaml b/db/schema2/tables/t_pole_rule.yaml new file mode 100644 index 0000000..35a15df --- /dev/null +++ b/db/schema2/tables/t_pole_rule.yaml @@ -0,0 +1,73 @@ +columns: + code: + type: text + liste_acte: + type: text + default: "''::text" + liste_activite: + type: text + default: "''::text" + liste_diagnostic_associe: + type: text + default: "''::text" + liste_diagnostic_principal: + type: text + default: "''::text" + liste_diagnostic_relie: + type: text + default: "''::text" + liste_etage: + type: text + default: "''::text" + liste_finess: + type: text + default: "''::text" + liste_ghm: + type: text + default: "''::text" + liste_medecin: + type: text + default: "''::text" + liste_prestation: + type: text + default: "''::text" + liste_rubrique: + type: text + default: "''::text" + liste_sauf_ghm: + type: text + default: "''::text" + liste_sauf_prestation: + type: text + default: "''::text" + liste_sauf_rubrique: + type: text + default: "''::text" + liste_service: + type: text + default: "''::text" + liste_specialite: + type: text + default: "''::text" + liste_type_sejour: + type: text + default: "''::text" + liste_unite_fonctionnelle: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_pole_rule'::regclass)" + pole_id: + type: bigint + not_null: NOT NULL + default: "0" + priorite: + type: numeric(5,0) + texte: + type: text +constraints: + t_pole_rule_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_prestations.yaml b/db/schema2/tables/t_prestations.yaml new file mode 100644 index 0000000..ad5bb74 --- /dev/null +++ b/db/schema2/tables/t_prestations.yaml @@ -0,0 +1,41 @@ +columns: + clinique_honoraire: + type: character(1) + not_null: NOT NULL + default: "''::bpchar" + code: + type: text + code_original: + type: text + norme: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_prestations'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + statut: + type: character(1) + texte: + type: text + texte_court: + type: text + type_valorisation_non_facture: + type: text + default: "''::text" + type_ventilation_jour: + type: text + default: "''::text" +constraints: + t_prestations_pkey: + type: PRIMARY KEY + column: oid + t_prestations_code_key: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_protocoles.yaml b/db/schema2/tables/t_protocoles.yaml new file mode 100644 index 0000000..f240e8e --- /dev/null +++ b/db/schema2/tables/t_protocoles.yaml @@ -0,0 +1,26 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_protocoles'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_protocoles_pkey: + type: PRIMARY KEY + column: oid + t_protocoles_code_key: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_providers.yaml b/db/schema2/tables/t_providers.yaml new file mode 100644 index 0000000..1e58449 --- /dev/null +++ b/db/schema2/tables/t_providers.yaml @@ -0,0 +1,22 @@ +columns: + code: + type: text + date_arret: + type: date + default: "'2099-12-31'::date" + date_demarrage: + type: date + default: "'0001-01-01'::date" + oid: + type: bigint + not_null: NOT NULL + default: "0" + texte: + type: text +constraints: + t_providers_pkey: + type: PRIMARY KEY + column: oid + t_providers_code_key: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_rapport_group.yaml b/db/schema2/tables/t_rapport_group.yaml new file mode 100644 index 0000000..7dd9942 --- /dev/null +++ b/db/schema2/tables/t_rapport_group.yaml @@ -0,0 +1,15 @@ +columns: + code: + type: text + oid: + type: bigint + not_null: NOT NULL + one_click: + type: text + default: "''::text" + texte: + type: text +constraints: + t_rapport_group_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_rapports.yaml b/db/schema2/tables/t_rapports.yaml new file mode 100644 index 0000000..1018103 --- /dev/null +++ b/db/schema2/tables/t_rapports.yaml @@ -0,0 +1,65 @@ +columns: + code: + type: text + colonnes_essentiel: + type: text + default: "''::text" + colonnes_essentiel_style: + type: text + default: "''::text" + contexte: + type: text + default: "''::text" + entete: + type: text + default: "''::text" + entete_2: + type: text + default: "''::text" + essentiel_date_level: + type: character(1) + default: "'M'::bpchar" + group_id: + type: bigint + default: "0" + is_cti: + type: character(1) + default: "0" + is_essentiel: + type: character(1) + default: "'0'::bpchar" + is_hide: + type: text + default: "'0'::text" + is_template_updatable: + type: character(1) + default: "'0'::bpchar" + label: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_rapports'::regclass)" + rapport_indicateur_condition_id: + type: 'bigint[]' + rapport_lie_id: + type: 'bigint[]' + rapport_template_id: + type: bigint + default: "0" + serie_entete: + type: 'text[]' + texte: + type: text + type_rapport: + type: text + default: "''::text" +constraints: + t_rapports_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_rapports_1: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_rapports_rubriques.yaml b/db/schema2/tables/t_rapports_rubriques.yaml new file mode 100644 index 0000000..5eb7e22 --- /dev/null +++ b/db/schema2/tables/t_rapports_rubriques.yaml @@ -0,0 +1,147 @@ +columns: + background_color: + type: text + default: "''::text" + base_nationale: + type: character(1) + default: "'0'::bpchar" + base_nationale_qualifiee: + type: character(1) + default: "'0'::bpchar" + border_thickness: + type: integer + default: "0" + calc_formula: + type: text + default: "''::text" + color: + type: text + default: "''::text" + compared_indicator_id: + type: bigint + default: "0" + description: + type: text + default: "''::text" + description_2: + type: text + default: "''::text" + entete: + type: text + default: "''::text" + entete_etendue: + type: text + default: "''::text" + entete_etendue_2: + type: text + default: "''::text" + erase_rapport_indicateur_condition: + type: text + default: "'0'::text" + field_tag: + type: text + default: "''::text" + font_size: + type: integer + default: "0" + font_weight: + type: text + default: "'normal'::text" + hide_on_zero_field: + type: text + default: "''::text" + indicateur_associe_id: + type: bigint + default: "0" + indicateur_condition_id: + type: 'bigint[]' + indicateur_id: + type: bigint + default: "0" + is_hide: + type: text + default: "'0'::text" + last_sql: + type: text + default: "''::text" + last_sql_error: + type: text + default: "''::text" + numero_rubrique: + type: integer + not_null: NOT NULL + option: + type: text + default: "''::text" + output_format: + type: text + default: "''::text" + output_format_2: + type: text + default: "''::text" + padding: + type: integer + default: "0" + periode_reference: + type: text + picto_enabled: + type: character(1) + default: "'1'::bpchar" + comment: "Affiche ou non le pictogramme selon la tendance de l''indicateur (par défaut oui)" + picto_enabled_2: + type: text + default: "''::text" + positif_is_good: + type: character(1) + default: "'1'::bpchar" + comment: Indique si une tendance positive est une bonne chose ou non (par défaut oui) + positif_is_good_2: + type: text + default: "''::text" + rapport_id: + type: bigint + not_null: NOT NULL + default: "0" + row_height: + type: integer + default: "0" + serie_description: + type: 'text[]' + serie_entete_etendue: + type: 'text[]' + serie_indicateur_id: + type: 'bigint[]' + serie_output_format: + type: 'text[]' + serie_picto_enabled: + type: 'text[]' + serie_positif_is_good: + type: 'text[]' + specific_viewlink: + type: text + default: "''::text" + specific_viewlink_label: + type: text + default: "''::text" + specific_viewlink_param: + type: text + default: "''::text" + viewlink: + type: text + default: "''::text" + comment: "Nom de la vue à ouvrir à partir des Essentiels pour l''accès aux détails de l''indicateur" + viewlink_label: + type: text + default: "''::text" + comment: Texte du lien vers la vue de détails + viewlink_param: + type: text + default: "''::text" + comment: Paramétrage des regroupements et des filtres pour les Viewlinks des Essentiels + width: + type: numeric(3,0) + default: "0" +constraints: + t_rapports_rubriques_pkey: + type: PRIMARY KEY + column: numero_rubrique, rapport_id \ No newline at end of file diff --git a/db/schema2/tables/t_rejets_noemie.yaml b/db/schema2/tables/t_rejets_noemie.yaml new file mode 100644 index 0000000..e8efdcb --- /dev/null +++ b/db/schema2/tables/t_rejets_noemie.yaml @@ -0,0 +1,19 @@ +columns: + code: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_rejets_noemie'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text +constraints: + t_rejets_noemie_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_risque.yaml b/db/schema2/tables/t_risque.yaml new file mode 100644 index 0000000..78cd82b --- /dev/null +++ b/db/schema2/tables/t_risque.yaml @@ -0,0 +1,13 @@ +columns: + code: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_risque'::regclass)" + texte: + type: text +constraints: + t_web100t_risque_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_rubrique_facture_c.yaml b/db/schema2/tables/t_rubrique_facture_c.yaml new file mode 100644 index 0000000..21f7ea9 --- /dev/null +++ b/db/schema2/tables/t_rubrique_facture_c.yaml @@ -0,0 +1,70 @@ +columns: + compte_produit_code: + type: text + compte_produit_id: + type: bigint + compte_produit_section_code: + type: 'text[]' + compte_produit_section_id: + type: 'bigint[]' + compte_produit_section_texte: + type: 'text[]' + compte_produit_texte: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_rubrique_facture_c'::regclass)" + prestation_code: + type: text + prestation_id: + type: bigint + prestation_section_code: + type: 'text[]' + prestation_section_id: + type: 'bigint[]' + prestation_section_texte: + type: 'text[]' + prestation_texte: + type: text + rubrique_comptabilisation_code: + type: text + rubrique_comptabilisation_id: + type: bigint + rubrique_comptabilisation_section_code: + type: 'text[]' + rubrique_comptabilisation_section_id: + type: 'bigint[]' + rubrique_comptabilisation_section_texte: + type: 'text[]' + rubrique_comptabilisation_texte: + type: text + rubrique_facturation_code: + type: text + rubrique_facturation_id: + type: bigint + rubrique_facturation_section_code: + type: 'text[]' + rubrique_facturation_section_id: + type: 'bigint[]' + rubrique_facturation_section_texte: + type: 'text[]' + rubrique_facturation_texte: + type: text +constraints: + t_rubrique_facture_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_rubrique_facture_c_compte_produit_id: + column: compte_produit_id + method: btree + i_rubrique_facture_c_prestation_id: + column: prestation_id + method: btree + i_rubrique_facture_c_rubrique_comptabilisation_id: + column: rubrique_comptabilisation_id + method: btree + i_rubrique_facture_c_rubrique_facturation_id: + column: rubrique_facturation_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_rubriques_facturation.yaml b/db/schema2/tables/t_rubriques_facturation.yaml new file mode 100644 index 0000000..54bb495 --- /dev/null +++ b/db/schema2/tables/t_rubriques_facturation.yaml @@ -0,0 +1,42 @@ +columns: + actes_inclus_public: + type: character(1) + default: "0" + comment: 1 = Dans un etablissement public, cette rubrique de séjour inclus les actes + code: + type: text + code_force: + type: text + default: "''::text" + code_original: + type: text + est_force_etablissement: + type: text + default: "'0'::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_rubriques_facturation'::regclass)" + prestation_forcee_id: + type: bigint + default: "0" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + statut: + type: character(1) + texte: + type: text + texte_court: + type: text +constraints: + t_rubriques_facturation_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_rubriques_facturation_1: + column: section_id + method: gin \ No newline at end of file diff --git a/db/schema2/tables/t_sejour.yaml b/db/schema2/tables/t_sejour.yaml new file mode 100644 index 0000000..f4ac6f2 --- /dev/null +++ b/db/schema2/tables/t_sejour.yaml @@ -0,0 +1,33 @@ +columns: + encours_est_ignore: + type: 'text[]' + encours_from_date: + type: 'date[]' + est_ignore: + type: character(1) + etage_id: + type: bigint + default: "0" + medecin_sejour_id: + type: bigint + default: "0" + no_sejour: + type: text + not_null: NOT NULL + no_sejour_fusion: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_sejour'::regclass)" + service_facturation_id: + type: bigint + default: "0" + type_sejour: + type: text + default: "'0'::text" +constraints: + t_sejour_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_service_rubrique.yaml b/db/schema2/tables/t_service_rubrique.yaml new file mode 100644 index 0000000..9424ef0 --- /dev/null +++ b/db/schema2/tables/t_service_rubrique.yaml @@ -0,0 +1,38 @@ +columns: + compte_id: + type: bigint + not_null: NOT NULL + default: "0" + est_compte_force: + type: character(1) + default: "''::bpchar" + comment: 1 = Forcage du compte + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_service_rubrique'::regclass)" + prestation_forcee_id: + type: bigint + default: "0" + rubrique_facturation_id: + type: bigint + not_null: NOT NULL + default: "0" + service_facturation_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + t_service_rubrique_pkey: + type: PRIMARY KEY + column: oid + t_service_rubrique_ukey: + type: UNIQUE + column: rubrique_facturation_id, service_facturation_id +indexes: + i_service_rubrique_1: + column: service_facturation_id + method: btree + i_service_rubrique_2: + column: rubrique_facturation_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_service_rubrique_dotation.yaml b/db/schema2/tables/t_service_rubrique_dotation.yaml new file mode 100644 index 0000000..f572ad2 --- /dev/null +++ b/db/schema2/tables/t_service_rubrique_dotation.yaml @@ -0,0 +1,27 @@ +columns: + annee: + type: numeric + montant_dotation: + type: numeric + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_service_rubrique_dotation'::regclass)" + rubrique_facturation_id_array: + type: 'bigint[]' + service_facturation_id_array: + type: 'bigint[]' + texte: + type: text + default: "''::text" + to_prestation_id: + type: bigint + default: "0" + to_rubrique_facturation_id: + type: bigint + default: "0" +constraints: + t_service_rubrique_dotation_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_services_facturation.yaml b/db/schema2/tables/t_services_facturation.yaml new file mode 100644 index 0000000..fdb300e --- /dev/null +++ b/db/schema2/tables/t_services_facturation.yaml @@ -0,0 +1,118 @@ +columns: + activite_force_id: + type: bigint + default: "0" + activite_par_defaut_id: + type: bigint + default: "0" + avec_facturation_intermediaire: + type: character(1) + default: "''::bpchar" + comment: 1 = Facturation intermediaire + code: + type: text + code_original: + type: text + dmt_id: + type: bigint + default: "0" + est_absence: + type: character(1) + default: "'0'::bpchar" + comment: "1 = Service d''absence" + est_budget_global: + type: character(1) + default: "'0'::bpchar" + comment: 1 = Budget_global + est_sans_facturation: + type: character(1) + default: "''::bpchar" + comment: | + 1 = Pas de facturation + 2 = Facturation facultative si budget global expédié MAT2A + est_sans_mouvement: + type: character(1) + default: "''::bpchar" + comment: 1 = Pas de mouvement (Entrées, journ Sorties) + etage_force_id: + type: bigint + default: "0" + etage_par_defaut_id: + type: bigint + default: "0" + finess_id: + type: bigint + default: "0" + medecin_force_id: + type: bigint + default: "0" + medecin_par_defaut_id: + type: bigint + default: "0" + mode_calcul_journees: + type: text + default: "''::text" + mode_traitement_id: + type: bigint + default: "0" + nb_cp: + type: numeric(5,0) + default: "0" + nb_lits: + type: numeric(5,0) + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_services_facturation'::regclass)" + option_jour_ferme: + type: character(1) + default: "''::bpchar" + comment: 1 = Enlever les mouvements des jours de fermeture + particularites_encours: + type: text + default: "''::bpchar" + comment: IVG, MAT + prestations_presence: + type: text + default: "''::text" + comment: | + Si renseigné, identifie les prestations qui permettent d''identifier la présence (Exemple PY* pour HDJ PSY) + Codes ou génériques* séparés par virgule + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + sej_sans_acte_fictif: + type: character(1) + default: "''::bpchar" + statut: + type: character(1) + texte: + type: text + texte_court: + type: text + type_sejour: + type: text + default: "''::bpchar" + comment: 0 = Pas de type séjour forcé + type_t2a: + type: character(1) + default: "''::bpchar" + comment: | + 1 = PMSI + 2 = PMSI SSR + 3 = PMSI PSY + 0 = Hors PMSI + unite_medicale_modifiable: + type: character(1) + default: "'0'::bpchar" +constraints: + t_services_facturation_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_services_facturation_1: + column: code_original + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_services_facturation_historique.yaml b/db/schema2/tables/t_services_facturation_historique.yaml new file mode 100644 index 0000000..8c7a4dc --- /dev/null +++ b/db/schema2/tables/t_services_facturation_historique.yaml @@ -0,0 +1,75 @@ +columns: + date: + type: date + date_fin: + type: date + default: "'2099-12-31'::date" + est_ouvert_1: + type: character(1) + default: "'1'::bpchar" + est_ouvert_2: + type: character(1) + default: "'1'::bpchar" + est_ouvert_3: + type: character(1) + default: "'1'::bpchar" + est_ouvert_4: + type: character(1) + default: "'1'::bpchar" + est_ouvert_5: + type: character(1) + default: "'1'::bpchar" + est_ouvert_6: + type: character(1) + default: "'1'::bpchar" + est_ouvert_7: + type: character(1) + default: "'1'::bpchar" + heberge_ambulatoires: + type: character(1) + default: "'1'::bpchar" + heberge_bebes: + type: character(1) + default: "'1'::bpchar" + heberge_externes: + type: character(1) + default: "'1'::bpchar" + heberge_hospitalises: + type: character(1) + default: "'1'::bpchar" + heberge_seances: + type: character(1) + default: "'1'::bpchar" + heberge_urgences: + type: character(1) + default: "'1'::bpchar" + nb_box_ambulatoires_ouverts: + type: numeric(5,0) + default: "0" + nb_box_ambulatoires_theoriques: + type: numeric(5,0) + default: "0" + nb_box_seances_ouverts: + type: numeric(5,0) + default: "0" + nb_box_seances_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_cp_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_cp_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_theoriques: + type: numeric(5,0) + default: "0" + pole_occupation_id: + type: bigint + default: "0" + service_facturation_id: + type: bigint + not_null: NOT NULL \ No newline at end of file diff --git a/db/schema2/tables/t_severites_cti.yaml b/db/schema2/tables/t_severites_cti.yaml new file mode 100644 index 0000000..9627da2 --- /dev/null +++ b/db/schema2/tables/t_severites_cti.yaml @@ -0,0 +1,16 @@ +columns: + severite_code: + type: text + not_null: NOT NULL + default: "''::bpchar" + severite_id: + type: character(1) + not_null: NOT NULL + default: "''::bpchar" + severite_texte: + type: character varying(255) + default: "''::character varying" +constraints: + t_severite_cti_pkey: + type: PRIMARY KEY + column: severite_id \ No newline at end of file diff --git a/db/schema2/tables/t_sigems_transformation_uf.yaml b/db/schema2/tables/t_sigems_transformation_uf.yaml new file mode 100644 index 0000000..0bfed9c --- /dev/null +++ b/db/schema2/tables/t_sigems_transformation_uf.yaml @@ -0,0 +1,19 @@ +columns: + from_medecin: + type: text + from_mode: + type: text + from_uf: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_sigems_transformation_uf'::regclass)" + texte: + type: text + to_uf: + type: text +constraints: + t_sigems_transformation_uf_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_specialites_medecin.yaml b/db/schema2/tables/t_specialites_medecin.yaml new file mode 100644 index 0000000..e8b9ed3 --- /dev/null +++ b/db/schema2/tables/t_specialites_medecin.yaml @@ -0,0 +1,22 @@ +columns: + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_specialites_medecin'::regclass)" + statut: + type: character(1) + texte: + type: text + texte_court: + type: text +constraints: + t_specialites_medecin_pkey: + type: PRIMARY KEY + column: oid + t_specialites_medecin_code_key: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_tiers_payant.yaml b/db/schema2/tables/t_tiers_payant.yaml new file mode 100644 index 0000000..ee9447c --- /dev/null +++ b/db/schema2/tables/t_tiers_payant.yaml @@ -0,0 +1,76 @@ +columns: + adresse: + type: text + default: "''::text" + code: + type: text + code_original: + type: text + code_postal_id: + type: bigint + default: "0" + email: + type: text + default: "''::text" + fax: + type: text + default: "''::text" + grand_regime_code: + type: text + default: "''::text" + grand_regime_id: + type: bigint + default: "0" + grand_regime_texte: + type: text + default: "''::text" + identifiant_groupe: + type: text + default: "''::text" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_tiers_payant'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + statut: + type: character(1) + telephone: + type: text + default: "''::text" + texte: + type: text + texte_court: + type: text + type_tiers_payant: + type: character(1) + type_tiers_payant_id: + type: bigint + default: "0" + type_tiers_payant_texte: + type: text + default: "''::text" + ville: + type: text + default: "''::text" +constraints: + t_tiers_payant_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_tiers_payant_1: + column: code + method: btree + i_tiers_payant_2: + column: type_tiers_payant + method: btree + i_tiers_payant_3: + column: grand_regime_id + method: btree + i_tiers_payant_4: + column: type_tiers_payant_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_traitement_epmsi.yaml b/db/schema2/tables/t_traitement_epmsi.yaml new file mode 100644 index 0000000..524a705 --- /dev/null +++ b/db/schema2/tables/t_traitement_epmsi.yaml @@ -0,0 +1,23 @@ +columns: + code: + type: text + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + default: "0" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text +constraints: + t_traitement_epmsi_pkey: + type: PRIMARY KEY + column: oid + t_traitement_epmsi_ukey: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_transformation.yaml b/db/schema2/tables/t_transformation.yaml new file mode 100644 index 0000000..374f3d2 --- /dev/null +++ b/db/schema2/tables/t_transformation.yaml @@ -0,0 +1,38 @@ +columns: + activite_id: + type: bigint + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_transformation'::regclass)" + prestation_id: + type: bigint + default: "0" + rubrique_id: + type: bigint + default: "0" + service_facturation_id: + type: bigint + default: "0" + texte: + type: text + to_id: + type: bigint + default: "0" + type: + type: text + unite_fonctionnelle_id: + type: bigint + default: "0" +constraints: + t_transformation_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_transformation_prestation_id: + column: prestation_id + method: btree + i_transformation_rubrique_id: + column: rubrique_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_type_hospi_pmsi.yaml b/db/schema2/tables/t_type_hospi_pmsi.yaml new file mode 100644 index 0000000..bb777ee --- /dev/null +++ b/db/schema2/tables/t_type_hospi_pmsi.yaml @@ -0,0 +1,22 @@ +columns: + code: + type: text + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text +constraints: + t_type_hospi_pmsi_pkey: + type: PRIMARY KEY + column: oid + t_type_hospi_pmsi_ukey: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_type_sejour.yaml b/db/schema2/tables/t_type_sejour.yaml new file mode 100644 index 0000000..9d7b3cb --- /dev/null +++ b/db/schema2/tables/t_type_sejour.yaml @@ -0,0 +1,22 @@ +columns: + code: + type: text + not_null: NOT NULL + oid: + type: bigint + not_null: NOT NULL + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text +constraints: + t_type_sejour_pkey: + type: PRIMARY KEY + column: oid + t_type_sejour_ukey: + type: UNIQUE + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_types_gmt.yaml b/db/schema2/tables/t_types_gmt.yaml new file mode 100644 index 0000000..3550d48 --- /dev/null +++ b/db/schema2/tables/t_types_gmt.yaml @@ -0,0 +1,13 @@ +columns: + code: + type: text + not_null: NOT NULL + description: + type: text + label: + type: text + not_null: NOT NULL +constraints: + t_types_gmt_code_key: + type: PRIMARY KEY + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_types_tiers_payant.yaml b/db/schema2/tables/t_types_tiers_payant.yaml new file mode 100644 index 0000000..a648cb2 --- /dev/null +++ b/db/schema2/tables/t_types_tiers_payant.yaml @@ -0,0 +1,12 @@ +columns: + code: + type: character(1) + not_null: NOT NULL + texte: + type: text + texte_court: + type: text +constraints: + t_types_tiers_payant_pkey: + type: PRIMARY KEY + column: code \ No newline at end of file diff --git a/db/schema2/tables/t_ucd_c.yaml b/db/schema2/tables/t_ucd_c.yaml new file mode 100644 index 0000000..5684121 --- /dev/null +++ b/db/schema2/tables/t_ucd_c.yaml @@ -0,0 +1,76 @@ +columns: + classification_atc_1_code: + type: character varying(30) + default: "''::character varying" + classification_atc_1_id: + type: bigint + default: "0" + classification_atc_1_texte: + type: character varying(255) + default: "''::character varying" + classification_atc_2_code: + type: character varying(30) + default: "''::character varying" + classification_atc_2_id: + type: bigint + default: "0" + classification_atc_2_texte: + type: character varying(255) + default: "''::character varying" + classification_atc_3_code: + type: character varying(30) + default: "''::character varying" + classification_atc_3_id: + type: bigint + default: "0" + classification_atc_3_texte: + type: character varying(255) + default: "''::character varying" + classification_atc_4_code: + type: character varying(30) + default: "''::character varying" + classification_atc_4_id: + type: bigint + default: "0" + classification_atc_4_texte: + type: character varying(255) + default: "''::character varying" + classification_atc_code: + type: character varying(30) + default: "''::character varying" + classification_atc_id: + type: bigint + default: "0" + classification_atc_section_code: + type: 'character varying(10)[]' + classification_atc_section_id: + type: 'bigint[]' + classification_atc_section_texte: + type: 'character varying(255)[]' + classification_atc_texte: + type: character varying(250) + default: "''::character varying" + code: + type: text + code_original: + type: text + oid: + type: bigint + not_null: NOT NULL + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text +constraints: + t_ucd_c_pkey: + type: PRIMARY KEY + column: oid + t_ucd_c_ukey: + type: UNIQUE + column: code_original \ No newline at end of file diff --git a/db/schema2/tables/t_unites_fonctionnelles.yaml b/db/schema2/tables/t_unites_fonctionnelles.yaml new file mode 100644 index 0000000..9f8b820 --- /dev/null +++ b/db/schema2/tables/t_unites_fonctionnelles.yaml @@ -0,0 +1,59 @@ +columns: + code: + type: text + code_original: + type: text + est_sans_facturation: + type: character(1) + default: "''::bpchar" + comment: 1 = Pas de facturation + etage_force2_id: + type: bigint + default: "0" + etage_force2_um_id_array: + type: 'bigint[]' + etage_force3_id: + type: bigint + default: "0" + etage_force3_um_id_array: + type: 'bigint[]' + etage_force_id: + type: bigint + default: "0" + etage_force_um_id_array: + type: 'bigint[]' + etage_par_defaut_id: + type: bigint + default: "0" + finess_id: + type: bigint + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_unites_fonctionnelles'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text + type_eclatement: + type: character(1) + default: "''::bpchar" + comment: | + Eclatement : Le code est suffixé avec : + 1=Première unité médicale + 2=Spécialité du médecin séjour +constraints: + t_unites_fonctionnelles_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_unites_fonctionnelles_1: + column: code_original + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_unites_fonctionnelles_historique.yaml b/db/schema2/tables/t_unites_fonctionnelles_historique.yaml new file mode 100644 index 0000000..7de1b6d --- /dev/null +++ b/db/schema2/tables/t_unites_fonctionnelles_historique.yaml @@ -0,0 +1,75 @@ +columns: + date: + type: date + date_fin: + type: date + default: "'2099-12-31'::date" + est_ouvert_1: + type: character(1) + default: "'1'::bpchar" + est_ouvert_2: + type: character(1) + default: "'1'::bpchar" + est_ouvert_3: + type: character(1) + default: "'1'::bpchar" + est_ouvert_4: + type: character(1) + default: "'1'::bpchar" + est_ouvert_5: + type: character(1) + default: "'1'::bpchar" + est_ouvert_6: + type: character(1) + default: "'1'::bpchar" + est_ouvert_7: + type: character(1) + default: "'1'::bpchar" + heberge_ambulatoires: + type: character(1) + default: "'1'::bpchar" + heberge_bebes: + type: character(1) + default: "'1'::bpchar" + heberge_externes: + type: character(1) + default: "'1'::bpchar" + heberge_hospitalises: + type: character(1) + default: "'1'::bpchar" + heberge_seances: + type: character(1) + default: "'1'::bpchar" + heberge_urgences: + type: character(1) + default: "'1'::bpchar" + nb_box_ambulatoires_ouverts: + type: numeric(5,0) + default: "0" + nb_box_ambulatoires_theoriques: + type: numeric(5,0) + default: "0" + nb_box_seances_ouverts: + type: numeric(5,0) + default: "0" + nb_box_seances_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_cp_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_cp_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_theoriques: + type: numeric(5,0) + default: "0" + pole_occupation_id: + type: bigint + default: "0" + unite_fonctionnelle_id: + type: bigint + not_null: NOT NULL \ No newline at end of file diff --git a/db/schema2/tables/t_unites_medicales.yaml b/db/schema2/tables/t_unites_medicales.yaml new file mode 100644 index 0000000..24620cc --- /dev/null +++ b/db/schema2/tables/t_unites_medicales.yaml @@ -0,0 +1,39 @@ +columns: + code: + type: text + code_original: + type: text + etage_force_id: + type: bigint + default: "0" + etage_par_defaut_id: + type: bigint + default: "0" + finess_id: + type: bigint + default: "0" + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_unites_medicales'::regclass)" + section_code: + type: 'text[]' + section_id: + type: 'bigint[]' + section_texte: + type: 'text[]' + texte: + type: text + texte_court: + type: text + type_eclatement: + type: character(1) + default: "''::bpchar" + comment: | + Eclatement : Le code est suffixé avec : + 1=Première unité médicale + 2=Spécialité du médecin séjour +constraints: + t_unites_medicales_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/tables/t_unites_medicales_historique.yaml b/db/schema2/tables/t_unites_medicales_historique.yaml new file mode 100644 index 0000000..62e6293 --- /dev/null +++ b/db/schema2/tables/t_unites_medicales_historique.yaml @@ -0,0 +1,72 @@ +columns: + date: + type: date + date_fin: + type: date + default: "'2099-12-31'::date" + est_ouvert_1: + type: character(1) + default: "'1'::bpchar" + est_ouvert_2: + type: character(1) + default: "'1'::bpchar" + est_ouvert_3: + type: character(1) + default: "'1'::bpchar" + est_ouvert_4: + type: character(1) + default: "'1'::bpchar" + est_ouvert_5: + type: character(1) + default: "'1'::bpchar" + est_ouvert_6: + type: character(1) + default: "'1'::bpchar" + est_ouvert_7: + type: character(1) + default: "'1'::bpchar" + heberge_ambulatoires: + type: character(1) + default: "'1'::bpchar" + heberge_bebes: + type: character(1) + default: "'1'::bpchar" + heberge_externes: + type: character(1) + default: "'1'::bpchar" + heberge_hospitalises: + type: character(1) + default: "'1'::bpchar" + heberge_seances: + type: character(1) + default: "'1'::bpchar" + heberge_urgences: + type: character(1) + default: "'1'::bpchar" + nb_box_ambulatoires_ouverts: + type: numeric(5,0) + default: "0" + nb_box_ambulatoires_theoriques: + type: numeric(5,0) + default: "0" + nb_box_seances_ouverts: + type: numeric(5,0) + default: "0" + nb_box_seances_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_cp_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_cp_theoriques: + type: numeric(5,0) + default: "0" + nb_lits_ouverts: + type: numeric(5,0) + default: "0" + nb_lits_theoriques: + type: numeric(5,0) + default: "0" + unite_medicale_id: + type: bigint + not_null: NOT NULL \ No newline at end of file diff --git a/db/schema2/tables/t_validation_parametre.yaml b/db/schema2/tables/t_validation_parametre.yaml new file mode 100644 index 0000000..1a777c3 --- /dev/null +++ b/db/schema2/tables/t_validation_parametre.yaml @@ -0,0 +1,30 @@ +columns: + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_validation_parametre'::regclass)" + parametre_code: + type: text + parametre_date: + type: date + default: now() + parametre_id: + type: bigint + default: "0" + parametre_texte: + type: text + parametre_valide: + type: text + default: "'0'::text" + table_id: + type: bigint + not_null: NOT NULL + default: "0" +constraints: + t_validation_parametre_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_validation_parametre_table_id: + column: table_id + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_vue_parametre.yaml b/db/schema2/tables/t_vue_parametre.yaml new file mode 100644 index 0000000..3a69be2 --- /dev/null +++ b/db/schema2/tables/t_vue_parametre.yaml @@ -0,0 +1,30 @@ +columns: + code: + type: text + data_code: + type: 'text[]' + data_description: + type: 'text[]' + data_entete: + type: 'text[]' + data_format: + type: 'text[]' + oid: + type: bigint + not_null: NOT NULL + default: "nextval('s_vue_parametre'::regclass)" + position_ratio: + type: character(15) + default: "'000000000000000'::character varying" + rang: + type: integer + texte: + type: text +constraints: + t_vue_parametre_pkey: + type: PRIMARY KEY + column: oid +indexes: + i_vue_parametre: + column: code + method: btree \ No newline at end of file diff --git a/db/schema2/tables/t_widget_user_parameter.yaml b/db/schema2/tables/t_widget_user_parameter.yaml new file mode 100644 index 0000000..402e2c2 --- /dev/null +++ b/db/schema2/tables/t_widget_user_parameter.yaml @@ -0,0 +1,34 @@ +columns: + dashboard_widget_id: + type: bigint + h: + type: numeric + include_series_id: + type: 'bigint[]' + max_cat: + type: bigint + default: "0" + oid: + type: text + not_null: NOT NULL + tab_id: + type: bigint + time_calc: + type: text + title: + type: text + username: + type: text + visible: + type: boolean + default: 'false' + w: + type: numeric + x: + type: numeric + y: + type: numeric +constraints: + _widget_user_parameter_pkey: + type: PRIMARY KEY + column: oid \ No newline at end of file diff --git a/db/schema2/views/v_actes_1.yaml b/db/schema2/views/v_actes_1.yaml new file mode 100644 index 0000000..6b09cc6 --- /dev/null +++ b/db/schema2/views/v_actes_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_actes_c.oid, + (t_actes_c.code || ' '::text) || t_actes_c.texte_court AS texte + FROM activite.t_actes_c + WHERE t_actes_c.nomenclature = 'CCAM'::text AND (t_actes_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'acte_h'::text)) + ORDER BY t_actes_c.code; \ No newline at end of file diff --git a/db/schema2/views/v_actes_2.yaml b/db/schema2/views/v_actes_2.yaml new file mode 100644 index 0000000..eae36f0 --- /dev/null +++ b/db/schema2/views/v_actes_2.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_actes_c.oid, + (t_actes_c.code || ' '::text) || t_actes_c.texte_court AS texte + FROM activite.t_actes_c + WHERE t_actes_c.nomenclature = 'NGAP'::text AND (t_actes_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'acte_h'::text)) + ORDER BY t_actes_c.code; \ No newline at end of file diff --git a/db/schema2/views/v_actes_3.yaml b/db/schema2/views/v_actes_3.yaml new file mode 100644 index 0000000..88e1d83 --- /dev/null +++ b/db/schema2/views/v_actes_3.yaml @@ -0,0 +1,73 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'ACTE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ACTE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ACTE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ACTE'::text + UNION ALL + SELECT 'NOCCAM'::text AS oid, + 'CCAM'::character varying AS texte, + '1'::text AS level, + '9CCAM'::text AS sort, + '0'::character(1) AS is_cti + UNION ALL + SELECT 'NONGAP'::text AS oid, + 'NGAP'::character varying AS texte, + '1'::text AS level, + '9NGAP'::text AS sort, + '0'::character(1) AS is_cti + UNION ALL + SELECT 'AC'::text || t_actes_c.oid::text AS oid, + (t_actes_c.code || ' '::text) || t_actes_c.texte_court AS texte, + '2'::text AS level, + ('9'::text || t_actes_c.nomenclature) || t_actes_c.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_actes_c + WHERE (t_actes_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'acte_h'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_activites_1.yaml b/db/schema2/views/v_activites_1.yaml new file mode 100644 index 0000000..3fabf67 --- /dev/null +++ b/db/schema2/views/v_activites_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_activites.oid, + (t_activites.code || ' '::text) || t_activites.texte_court AS texte + FROM activite.t_activites + WHERE (t_activites.oid IN ( SELECT DISTINCT t_lieux_c.activite_id + FROM activite.t_lieux_c + ORDER BY t_lieux_c.activite_id)) + ORDER BY t_activites.texte_court; \ No newline at end of file diff --git a/db/schema2/views/v_activites_2.yaml b/db/schema2/views/v_activites_2.yaml new file mode 100644 index 0000000..84cb0f0 --- /dev/null +++ b/db/schema2/views/v_activites_2.yaml @@ -0,0 +1,61 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'ACTIVITE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ACTIVITE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ACTIVITE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ACTIVITE'::text + UNION ALL + SELECT 'AC'::text || t_activites.oid::text AS oid, + (t_activites.code || ' '::text) || t_activites.texte_court AS texte, + '1'::text AS level, + '9'::text || t_activites.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_activites + WHERE (t_activites.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'activite'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_ages_1.yaml b/db/schema2/views/v_ages_1.yaml new file mode 100644 index 0000000..b672f18 --- /dev/null +++ b/db/schema2/views/v_ages_1.yaml @@ -0,0 +1,16 @@ +src: | + SELECT t_ages_c.oid AS age_id, + t_ages_c.code AS age_code, + t_ages_c.texte AS age_texte, + t_ages_c.section_id AS age_section_id, + t_ages_c.section_code AS age_section_code, + t_ages_c.section_texte AS age_section_texte + FROM activite.t_ages_c + UNION + SELECT (-1) AS age_id, + '999'::text AS age_code, + 'Non disponible'::text AS age_texte, + NULL::bigint[] AS age_section_id, + NULL::text[] AS age_section_code, + NULL::text[] AS age_section_texte + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_ages_2.yaml b/db/schema2/views/v_ages_2.yaml new file mode 100644 index 0000000..5f0fd9d --- /dev/null +++ b/db/schema2/views/v_ages_2.yaml @@ -0,0 +1,77 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'AGE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'AGE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'AGE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'AGE'::text + UNION ALL + SELECT '-8'::text AS oid, + 'Choix d''un age'::character varying AS texte, + 'A'::text AS code, + '1'::text AS level, + '9'::text || chr(1) AS tri, + '0'::character(1) AS is_cti + UNION ALL + SELECT 'AG'::text || t_ages.oid::text AS oid, + t_ages.texte, + t_ages.code, + '2'::text AS level, + '9'::text || t_ages.code AS tri, + '0'::character(1) AS is_cti + FROM base.t_ages + UNION ALL + SELECT 'AG-1'::text AS oid, + 'Non disponible'::character varying AS texte, + '999'::text AS code, + '2'::text AS level, + '9999'::text AS tri, + '0'::character(1) AS is_cti + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_alias_periode_1.yaml b/db/schema2/views/v_alias_periode_1.yaml new file mode 100644 index 0000000..cf8f126 --- /dev/null +++ b/db/schema2/views/v_alias_periode_1.yaml @@ -0,0 +1,743 @@ +src: | + WITH ctl_dates AS ( + SELECT now.now, + to_char(now.now::timestamp with time zone, 'DD/MM/YYYY'::text) AS now_l, + (now.now - '6 days'::interval)::date AS now_7, + date_trunc('YEAR'::text, now.now::timestamp with time zone)::date AS first_day_current_year, + CASE now.now + WHEN (date_trunc('MONTH'::text, now.now::timestamp with time zone)::date + '1 mon -1 days'::interval)::date THEN now.now + ELSE (date_trunc('MONTH'::text, now.now::timestamp with time zone)::date - '1 day'::interval)::date + END AS last_day_of_last_month, + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN now.now::timestamp without time zone + ELSE to_date(to_char(now.now::timestamp with time zone, 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text) - '7 days'::interval + END::date AS last_day_of_last_week, + to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '-1'::text + ELSE '0'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text) AS last_day_of_week_0, + to_char(to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '-1'::text + ELSE '0'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS last_day_of_weekn_0, + to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '0'::text + ELSE '1'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text) AS last_day_of_week_1, + to_char(to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '0'::text + ELSE '1'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS last_day_of_weekn_1, + to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '1'::text + ELSE '2'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text) AS last_day_of_week_2, + to_char(to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '1'::text + ELSE '2'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS last_day_of_weekn_2, + to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '2'::text + ELSE '3'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text) AS last_day_of_week_3, + to_char(to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '2'::text + ELSE '3'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS last_day_of_weekn_3, + to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '3'::text + ELSE '4'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text) AS last_day_of_week_4, + to_char(to_date(to_char(now.now - (( + CASE to_char(now.now::timestamp with time zone, 'ID'::text) + WHEN '7'::text THEN '3'::text + ELSE '4'::text + END || ' week'::text)::interval), 'IYYYIW'::text) || '7'::text, 'IYYYIWID'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS last_day_of_weekn_4, + CASE + WHEN to_char(now.now::timestamp with time zone, 'DD'::text) = base.cti_last_day(now.now)::text THEN now.now + WHEN to_char(now.now::timestamp with time zone, 'DD'::text) >= 20::text THEN to_date(to_char(now.now::timestamp with time zone, 'YYYYMM'::text) || '20'::text, 'YYYYMMDD'::text) + WHEN to_char(now.now::timestamp with time zone, 'DD'::text) >= 10::text THEN to_date(to_char(now.now::timestamp with time zone, 'YYYYMM'::text) || '10'::text, 'YYYYMMDD'::text) + ELSE base.cti_last_day((now.now - '1 mon'::interval)::date) + END AS decade_last, + base.cti_last_day(now.now) AS decade_0, + to_date(to_char(now.now::timestamp with time zone, 'YYYYMM'::text) || '20'::text, 'YYYYMMDD'::text) AS decade_1, + to_date(to_char(now.now::timestamp with time zone, 'YYYYMM'::text) || '10'::text, 'YYYYMMDD'::text) AS decade_2, + base.cti_last_day((now.now - '1 mon'::interval)::date) AS decade_3, + to_date(to_char(now.now - '1 mon'::interval, 'YYYYMM'::text) || '20'::text, 'YYYYMMDD'::text) AS decade_4, + to_date(to_char(now.now - '1 mon'::interval, 'YYYYMM'::text) || '10'::text, 'YYYYMMDD'::text) AS decade_5, + base.cti_last_day((now.now - '2 mons'::interval)::date) AS decade_6, + to_char(base.cti_last_day(now.now)::timestamp with time zone, 'DD/MM/YYYY'::text) AS decade_0_l, + to_char(to_date(to_char(now.now::timestamp with time zone, 'YYYYMM'::text) || '20'::text, 'YYYYMMDD'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS decade_1_l, + to_char(to_date(to_char(now.now::timestamp with time zone, 'YYYYMM'::text) || '10'::text, 'YYYYMMDD'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS decade_2_l, + to_char(base.cti_last_day((now.now - '1 mon'::interval)::date)::timestamp with time zone, 'DD/MM/YYYY'::text) AS decade_3_l, + to_char(to_date(to_char(now.now - '1 mon'::interval, 'YYYYMM'::text) || '20'::text, 'YYYYMMDD'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS decade_4_l, + to_char(to_date(to_char(now.now - '1 mon'::interval, 'YYYYMM'::text) || '10'::text, 'YYYYMMDD'::text)::timestamp with time zone, 'DD/MM/YYYY'::text) AS decade_5_l, + to_char(base.cti_last_day((now.now - '2 mons'::interval)::date)::timestamp with time zone, 'DD/MM/YYYY'::text) AS decade_6_l + FROM ( SELECT t_divers.valeur_date AS now + FROM activite.t_divers + WHERE t_divers.code = 'NOW'::text) now + ) + SELECT 1000 AS tri, + 1 AS lvl, + 'Cumul au dernier mois'::text AS txt, + 'CUM_LAST_MONTH'::text AS cod, + date(date_trunc('year'::text, ctl_dates.last_day_of_last_month::timestamp with time zone)) AS deb, + ctl_dates.last_day_of_last_month AS fin + FROM ctl_dates + UNION + SELECT 1001 AS tri, + 2 AS lvl, + 'Janvier à décembre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_DEC'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1201'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1002 AS tri, + 2 AS lvl, + 'Janvier à novembre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_NOV'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1101'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1003 AS tri, + 2 AS lvl, + 'Janvier à octobre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_OCT'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1001'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1004 AS tri, + 2 AS lvl, + 'Janvier à septembre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_SEP'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0901'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1005 AS tri, + 2 AS lvl, + 'Janvier à août '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_AUG'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0801'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1006 AS tri, + 2 AS lvl, + 'Janvier à juillet '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_JUL'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0701'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1007 AS tri, + 2 AS lvl, + 'Janvier à juin '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_JUN'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0601'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1008 AS tri, + 2 AS lvl, + 'Janvier à mai '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_MAY'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0501'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1009 AS tri, + 2 AS lvl, + 'Janvier à avril '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_APR'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0401'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1010 AS tri, + 2 AS lvl, + 'Janvier à mars '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_MAR'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0301'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1011 AS tri, + 2 AS lvl, + 'Janvier à février '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_FEB'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0201'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 1012 AS tri, + 2 AS lvl, + 'Janvier à janvier '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'CURRENT_YEAR_JAN'::text AS cod, + ctl_dates.first_day_current_year AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0101'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 2000 AS tri, + 1 AS lvl, + 'Cumul à dernière décade'::text AS txt, + 'CUM_LAST_DECADE'::text AS cod, + date(date_trunc('year'::text, ctl_dates.decade_last::timestamp with time zone)) AS deb, + ctl_dates.decade_last AS fin + FROM ctl_dates + UNION + SELECT 2001 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.decade_0_l AS txt, + 'CUM_LAST_DECADE_0'::text AS cod, + date(date_trunc('year'::text, ctl_dates.decade_0::timestamp with time zone)) AS deb, + ctl_dates.decade_0 AS fin + FROM ctl_dates + UNION + SELECT 2002 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.decade_1_l AS txt, + 'CUM_LAST_DECADE_1'::text AS cod, + date(date_trunc('year'::text, ctl_dates.decade_1::timestamp with time zone)) AS deb, + ctl_dates.decade_1 AS fin + FROM ctl_dates + UNION + SELECT 2003 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.decade_2_l AS txt, + 'CUM_LAST_DECADE_2'::text AS cod, + date(date_trunc('year'::text, ctl_dates.decade_2::timestamp with time zone)) AS deb, + ctl_dates.decade_2 AS fin + FROM ctl_dates + UNION + SELECT 2004 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.decade_3_l AS txt, + 'CUM_LAST_DECADE_3'::text AS cod, + date(date_trunc('year'::text, ctl_dates.decade_3::timestamp with time zone)) AS deb, + ctl_dates.decade_3 AS fin + FROM ctl_dates + UNION + SELECT 2005 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.decade_4_l AS txt, + 'CUM_LAST_DECADE_4'::text AS cod, + date(date_trunc('year'::text, ctl_dates.decade_4::timestamp with time zone)) AS deb, + ctl_dates.decade_4 AS fin + FROM ctl_dates + UNION + SELECT 2006 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.decade_5_l AS txt, + 'CUM_LAST_DECADE_5'::text AS cod, + date(date_trunc('year'::text, ctl_dates.decade_5::timestamp with time zone)) AS deb, + ctl_dates.decade_5 AS fin + FROM ctl_dates + UNION + SELECT 2007 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.decade_6_l AS txt, + 'CUM_LAST_DECADE_6'::text AS cod, + date(date_trunc('year'::text, ctl_dates.decade_6::timestamp with time zone)) AS deb, + ctl_dates.decade_6 AS fin + FROM ctl_dates + UNION + SELECT 3000 AS tri, + 1 AS lvl, + 'Cumul à dernière semaine'::text AS txt, + 'CUM_LAST_WEEK'::text AS cod, + date(date_trunc('year'::text, ctl_dates.last_day_of_last_week::timestamp with time zone)) AS deb, + ctl_dates.last_day_of_last_week AS fin + FROM ctl_dates + UNION + SELECT 3001 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.last_day_of_weekn_0 AS txt, + 'CUM_LAST_MONTH_W0'::text AS cod, + date(date_trunc('year'::text, ctl_dates.last_day_of_week_0::timestamp with time zone)) AS deb, + ctl_dates.last_day_of_week_0 AS fin + FROM ctl_dates + UNION + SELECT 3002 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.last_day_of_weekn_1 AS txt, + 'CUM_LAST_MONTH_W1'::text AS cod, + date(date_trunc('year'::text, ctl_dates.last_day_of_week_1::timestamp with time zone)) AS deb, + ctl_dates.last_day_of_week_1 AS fin + FROM ctl_dates + UNION + SELECT 3003 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.last_day_of_weekn_2 AS txt, + 'CUM_LAST_MONTH_W2'::text AS cod, + date(date_trunc('year'::text, ctl_dates.last_day_of_week_2::timestamp with time zone)) AS deb, + ctl_dates.last_day_of_week_2 AS fin + FROM ctl_dates + UNION + SELECT 3004 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.last_day_of_weekn_3 AS txt, + 'CUM_LAST_MONTH_W3'::text AS cod, + date(date_trunc('year'::text, ctl_dates.last_day_of_week_3::timestamp with time zone)) AS deb, + ctl_dates.last_day_of_week_3 AS fin + FROM ctl_dates + UNION + SELECT 3005 AS tri, + 2 AS lvl, + 'Cumul au '::text || ctl_dates.last_day_of_weekn_4 AS txt, + 'CUM_LAST_MONTH_W4'::text AS cod, + date(date_trunc('year'::text, ctl_dates.last_day_of_week_4::timestamp with time zone)) AS deb, + ctl_dates.last_day_of_week_4 AS fin + FROM ctl_dates + UNION + SELECT 4000 AS tri, + 1 AS lvl, + 'Cumul au '::text || ctl_dates.now_l AS txt, + 'CUM_NOW'::text AS cod, + ctl_dates.first_day_current_year AS deb, + ctl_dates.now AS fin + FROM ctl_dates + UNION + SELECT 4500 AS tri, + 1 AS lvl, + '12 derniers mois glissants'::text AS txt, + 'CUM_LAST_12_MONTH'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.last_day_of_last_month - '11 mons'::interval)::date AS deb, + ctl_dates.last_day_of_last_month AS fin + FROM ctl_dates + UNION + SELECT 4501 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '11 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(ctl_dates.now::timestamp with time zone, 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_0'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '11 mons'::interval)::date AS deb, + base.cti_last_day(ctl_dates.now) AS fin + FROM ctl_dates + UNION + SELECT 4502 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 mon'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_1'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '1 mon'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4503 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 1 mon'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '2 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_2'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 1 mon'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '2 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4504 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 2 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '3 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_3'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 2 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '3 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4505 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 3 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '4 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_4'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 3 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '4 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4506 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 4 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '5 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_5'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 4 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '5 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4507 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 5 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '6 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_6'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 5 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '6 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4508 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 6 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '7 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_7'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 6 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '7 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4509 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 7 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '8 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_8'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 7 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '8 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4510 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 8 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '9 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_9'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 8 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '9 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4511 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 9 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '10 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_10'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 9 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '10 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 4512 AS tri, + 2 AS lvl, + (base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '1 year 10 mons'::interval), 'Month'::text)) || ' à '::text) || base.cti_to_french(to_char(date_trunc('MONTH'::text, ctl_dates.now - '11 mons'::interval), 'Month YYYY'::text)) AS txt, + 'CUM_LAST_12_MONTH_11'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.now - '1 year 10 mons'::interval)::date AS deb, + base.cti_last_day(date_trunc('MONTH'::text, ctl_dates.now - '11 mons'::interval)::date) AS fin + FROM ctl_dates + UNION + SELECT 5000 AS tri, + 1 AS lvl, + '7 derniers jours'::text AS txt, + 'LAST_7_DAYS'::text AS cod, + ctl_dates.now_7 AS deb, + ctl_dates.now AS fin + FROM ctl_dates + UNION + SELECT 7000 AS tri, + 1 AS lvl, + 'Cumul année précédente'::text AS txt, + 'LAST_YEAR'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1201'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7001 AS tri, + 2 AS lvl, + 'Janvier à décembre '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_DEC'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1201'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7002 AS tri, + 2 AS lvl, + 'Janvier à novembre '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_NOV'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1101'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7003 AS tri, + 2 AS lvl, + 'Janvier à octobre '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_OCT'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1001'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7004 AS tri, + 2 AS lvl, + 'Janvier à septembre '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_SEP'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0901'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7005 AS tri, + 2 AS lvl, + 'Janvier à août '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_AUG'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0801'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7006 AS tri, + 2 AS lvl, + 'Janvier à juillet '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_JUL'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0701'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7007 AS tri, + 2 AS lvl, + 'Janvier à juin '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_JUN'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0601'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7008 AS tri, + 2 AS lvl, + 'Janvier à mai '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_MAY'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0501'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7009 AS tri, + 2 AS lvl, + 'Janvier à avril '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_APR'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0401'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7010 AS tri, + 2 AS lvl, + 'Janvier à mars '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_MAR'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0301'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7011 AS tri, + 2 AS lvl, + 'Janvier à février '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_FEB'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0201'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 7012 AS tri, + 2 AS lvl, + 'Janvier à janvier '::text || to_char(ctl_dates.first_day_current_year - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_JAN'::text AS cod, + (ctl_dates.first_day_current_year - '1 year'::interval)::date AS deb, + (base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0101'::text)::date) - '1 year'::interval)::date AS fin + FROM ctl_dates + UNION + SELECT 8000 AS tri, + 1 AS lvl, + 'Dernier semestre'::text AS txt, + 'LAST_HALF'::text AS cod, + CASE + WHEN to_char(ctl_dates.now::timestamp with time zone, 'MM'::text)::integer >= 7 THEN ctl_dates.first_day_current_year + ELSE (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0701'::text)::date + END AS deb, + CASE + WHEN to_char(ctl_dates.now::timestamp with time zone, 'MM'::text)::integer >= 7 THEN (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0630'::text)::date + ELSE (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '1231'::text)::date + END AS fin + FROM ctl_dates + UNION + SELECT 8001 AS tri, + 2 AS lvl, + '1ème semestre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'HALF_1'::text AS cod, + ctl_dates.first_day_current_year AS deb, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0630'::text)::date AS fin + FROM ctl_dates + WHERE to_char(ctl_dates.now::timestamp with time zone, 'MM'::text)::integer >= 7 + UNION + SELECT 8002 AS tri, + 2 AS lvl, + '2ème semestre '::text || to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_HALF_2'::text AS cod, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0701'::text)::date AS deb, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '1231'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 8003 AS tri, + 2 AS lvl, + '1er semestre '::text || to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_HALF_1'::text AS cod, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0101'::text)::date AS deb, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0630'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 9000 AS tri, + 1 AS lvl, + 'Dernier trimestre'::text AS txt, + 'LAST_QUARTER'::text AS cod, + CASE + WHEN to_char(ctl_dates.now::timestamp with time zone, 'MM'::text)::integer >= 10 THEN (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0701'::text)::date + WHEN to_char(ctl_dates.now::timestamp with time zone, 'MM'::text)::integer >= 7 THEN (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0401'::text)::date + ELSE ctl_dates.first_day_current_year + END AS deb, + CASE + WHEN to_char(ctl_dates.now::timestamp with time zone, 'MM'::text)::integer >= 10 THEN (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0930'::text)::date + WHEN to_char(ctl_dates.now::timestamp with time zone, 'MM'::text)::integer >= 7 THEN (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0630'::text)::date + ELSE (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0331'::text)::date + END AS fin + FROM ctl_dates + UNION + SELECT 9002 AS tri, + 2 AS lvl, + '3ème trimestre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'QUARTER_3'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0701'::text)::date AS deb, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0930'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 9003 AS tri, + 2 AS lvl, + '2ème trimestre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'QUARTER_2'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0401'::text)::date AS deb, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0630'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 9004 AS tri, + 2 AS lvl, + '1er trimestre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'QUARTER_1'::text AS cod, + ctl_dates.first_day_current_year AS deb, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0331'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 9011 AS tri, + 2 AS lvl, + '4ème trimestre '::text || to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_QUARTER_4'::text AS cod, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '1001'::text)::date AS deb, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '1231'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 9012 AS tri, + 2 AS lvl, + '3ème trimestre '::text || to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_QUARTER_3'::text AS cod, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0701'::text)::date AS deb, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0930'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 9013 AS tri, + 2 AS lvl, + '2ème trimestre '::text || to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_QUARTER_2'::text AS cod, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0401'::text)::date AS deb, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0630'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 9014 AS tri, + 2 AS lvl, + '1er trimestre '::text || to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) AS txt, + 'LAST_YEAR_QUARTER_1'::text AS cod, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0101'::text)::date AS deb, + (to_char(ctl_dates.now - '1 year'::interval, 'YYYY'::text) || '0331'::text)::date AS fin + FROM ctl_dates + UNION + SELECT 10000 AS tri, + 1 AS lvl, + 'Dernier mois'::text AS txt, + 'LAST_MONTH'::text AS cod, + date_trunc('MONTH'::text, ctl_dates.last_day_of_last_month::timestamp with time zone)::date AS deb, + ctl_dates.last_day_of_last_month AS fin + FROM ctl_dates + UNION + SELECT 10001 AS tri, + 2 AS lvl, + 'Décembre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_DEC'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1201'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1201'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10002 AS tri, + 2 AS lvl, + 'Novembre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_NOV'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1101'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1101'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10003 AS tri, + 2 AS lvl, + 'Octobre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_OCT'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1001'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '1001'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10004 AS tri, + 2 AS lvl, + 'Septembre '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_SEP'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0901'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0901'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10005 AS tri, + 2 AS lvl, + 'Août '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_AUG'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0801'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0801'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10006 AS tri, + 2 AS lvl, + 'Juillet '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_JUL'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0701'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0701'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10007 AS tri, + 2 AS lvl, + 'Juin '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_JUN'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0601'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0601'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10008 AS tri, + 2 AS lvl, + 'Mai '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_MAY'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0501'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0501'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10009 AS tri, + 2 AS lvl, + 'Avril '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_APR'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0401'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0401'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10010 AS tri, + 2 AS lvl, + 'Mars '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_MAR'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0301'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0301'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10011 AS tri, + 2 AS lvl, + 'Février '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_FEB'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0201'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0201'::text)::date) AS fin + FROM ctl_dates + UNION + SELECT 10012 AS tri, + 2 AS lvl, + 'Janvier '::text || to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) AS txt, + 'MONTH_JAN'::text AS cod, + (to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0101'::text)::date AS deb, + base.cti_last_day((to_char(ctl_dates.now::timestamp with time zone, 'YYYY'::text) || '0101'::text)::date) AS fin + FROM ctl_dates + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_bloc_occupation_1.yaml b/db/schema2/views/v_bloc_occupation_1.yaml new file mode 100644 index 0000000..e3744f3 --- /dev/null +++ b/db/schema2/views/v_bloc_occupation_1.yaml @@ -0,0 +1,66 @@ +src: | + SELECT p_bloc_occupation.finess_id, + p_bloc_occupation.code_original, + p_bloc_occupation.date, + to_char(p_bloc_occupation.date::timestamp with time zone, 'YYYYMMDD'::text)::bigint AS date_id, + p_bloc_occupation.date::text AS date_code, + p_calendrier.texte AS date_texte, + p_calendrier.mois AS mois_id, + p_calendrier.mois::text AS mois_code, + (p_calendrier.mois_texte || ' '::text) || p_calendrier.iso_annee::text AS mois_texte, + p_bloc_occupation.date_programmation, + p_bloc_occupation.heure_debut_occupation, + p_bloc_occupation.heure_debut_remise_en_etat, + p_bloc_occupation.heure_entree_salle, + p_bloc_occupation.heure_fin_occupation, + p_bloc_occupation.heure_fin_remise_en_etat, + p_bloc_occupation.heure_sortie_salle, + p_bloc_occupation.medecin_chirurgien_id, + t_medecins_administratifs_c.adm_code AS medecin_chirurgien_adm_intervention_code, + t_medecins_administratifs_c.adm_nom AS medecin_chirurgien_adm_intervention_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_chirurgien_adm_intervention_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_chirurgien_adm_intervention_texte, + t_medecins_administratifs_c.section_id AS medecin_chirurgien_adm_intervention_section_id, + t_medecins_administratifs_c.section_code AS medecin_chirurgien_adm_intervention_section_code, + t_medecins_administratifs_c.section_texte AS medecin_chirurgien_adm_intervention_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_chirurgien_intervention_id, + t_medecins_administratifs_c.medecin_code AS medecin_chirurgien_intervention_code, + t_medecins_administratifs_c.nom AS medecin_chirurgien_intervention_nom, + t_medecins_administratifs_c.prenom AS medecin_chirurgien_intervention_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_chirurgien_intervention_texte, + t_medecins_administratifs_c.specialite_id AS medecin_chirurgien_intervention_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_chirurgien_intervention_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_chirurgien_intervention_specialite_texte, + p_bloc_occupation.motif_intervention_id, + t_bloc_motif_intervention.code AS motif_intervention_code, + t_bloc_motif_intervention.texte_court AS motif_intervention_texte, + t_bloc_motif_intervention.section_id AS motif_intervention_section_id, + t_bloc_motif_intervention.section_code AS motif_intervention_section_code, + t_bloc_motif_intervention.section_texte AS motif_intervention_section_texte, + p_bloc_occupation.no_sejour, + p_bloc_occupation.salle_id, + t_bloc_salle.code AS salle_code, + t_bloc_salle.texte_court AS salle_texte, + t_bloc_salle.section_id AS salle_section_id, + t_bloc_salle.section_code AS salle_section_code, + t_bloc_salle.section_texte AS salle_section_texte, + t_bloc_salle.bloc_id, + t_bloc.code AS bloc_code, + t_bloc.texte_court AS bloc_texte, + p_bloc_occupation.sejour_id, + p_bloc_occupation.type_programmation, + p_bloc_occupation.valide, + 1::numeric AS nb_intervention, + p_bloc_occupation.duree_disponible, + p_bloc_occupation.type_mouvement, + p_bloc_occupation.duree_debordement, + p_bloc_occupation.duree_occupation, + p_bloc_occupation.duree_remise_en_etat, + p_bloc_occupation.duree_salle, + p_bloc_occupation.duree_total + FROM activite.p_bloc_occupation + JOIN activite.t_bloc_salle ON p_bloc_occupation.salle_id = t_bloc_salle.oid + JOIN activite.t_bloc ON t_bloc_salle.bloc_id = t_bloc.oid + JOIN activite.t_bloc_motif_intervention ON p_bloc_occupation.motif_intervention_id = t_bloc_motif_intervention.oid + JOIN activite.t_medecins_administratifs_c ON p_bloc_occupation.medecin_chirurgien_id = t_medecins_administratifs_c.oid + JOIN base.p_calendrier ON p_bloc_occupation.date = p_calendrier.date; \ No newline at end of file diff --git a/db/schema2/views/v_budget_cle_1.yaml b/db/schema2/views/v_budget_cle_1.yaml new file mode 100644 index 0000000..f5048df --- /dev/null +++ b/db/schema2/views/v_budget_cle_1.yaml @@ -0,0 +1,58 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'BUDGETCLE'::text AND v_listes_1.lvl <> '0'::text + UNION + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'BUDGETCLE'::text + UNION + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + (t_classes_sections.code || ' '::text) || t_classes_sections.texte AS texte, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'BUDGETCLE'::text + UNION + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'BUDGETCLE'::text + UNION + SELECT 'DT'::text || t_budget_cle.oid::text AS oid, + (t_budget_cle.code || ' '::text) || t_budget_cle.texte AS texte, + '1'::text AS level, + '6'::text || t_budget_cle.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_budget_cle + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_budget_cle_2.yaml b/db/schema2/views/v_budget_cle_2.yaml new file mode 100644 index 0000000..1ab4088 --- /dev/null +++ b/db/schema2/views/v_budget_cle_2.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_budget_cle.oid AS join_budget_cle_id, + t_budget_cle.code AS budget_cle_code, + t_budget_cle.texte AS budget_cle_texte, + t_budget_cle.section_id AS budget_cle_section_id, + t_budget_cle.section_code AS budget_cle_section_code, + t_budget_cle.section_texte AS budget_cle_section_texte + FROM activite.t_budget_cle; \ No newline at end of file diff --git a/db/schema2/views/v_budget_cle_budget_r_1.yaml b/db/schema2/views/v_budget_cle_budget_r_1.yaml new file mode 100644 index 0000000..bb3cd48 --- /dev/null +++ b/db/schema2/views/v_budget_cle_budget_r_1.yaml @@ -0,0 +1,16 @@ +src: | + SELECT 0::bigint AS finess_id, + t_budget_cle_budget.budget_id, + t_budget_cle_budget.date AS date_reference, + t_budget_cle_budget.budget_cle_id, + t_budget_cle.code AS budget_cle_code, + t_budget_cle.texte AS budget_cle_texte, + t_budget_cle.section_id AS budget_cle_section_id, + t_budget_cle.section_code AS budget_cle_section_code, + t_budget_cle.section_texte AS budget_cle_section_texte, + t_budget_cle_budget.indicateur_module, + t_budget_cle_budget.indicateur_id, + t_budget_cle_budget.budget, + 0::bigint as pole_id + FROM activite.t_budget_cle_budget + JOIN activite.t_budget_cle ON t_budget_cle_budget.budget_cle_id = t_budget_cle.oid; \ No newline at end of file diff --git a/db/schema2/views/v_budgets_saisis_1.yaml b/db/schema2/views/v_budgets_saisis_1.yaml new file mode 100644 index 0000000..c70eaa4 --- /dev/null +++ b/db/schema2/views/v_budgets_saisis_1.yaml @@ -0,0 +1,58 @@ +src: | + SELECT subview.budget_id, + base.cti_group_concat_without_sep(subview.xmldef) AS xmldef + FROM ( SELECT t_budgets_saisis.budget_id, + t_budgets_saisis.parent_code, + 1 AS level, + ((((((((((((((''::text AS xmldef + FROM activite.t_budgets_saisis + UNION ALL + SELECT t_budgets_saisis.budget_id, + t_budgets_saisis.parent_code, + 21 AS level, + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''::text + FROM activite.t_budgets_saisis + WHERE t_budgets_saisis.reference_nb_entrees_directes_total <> 0::numeric + UNION ALL + SELECT t_budgets_saisis.budget_id, + t_budgets_saisis.parent_code, + 22 AS level, + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''::text + FROM activite.t_budgets_saisis + WHERE t_budgets_saisis.reference_nb_sorties_directes_total <> 0::numeric + UNION ALL + SELECT t_budgets_saisis.budget_id, + t_budgets_saisis.parent_code, + 23 AS level, + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''::text + FROM activite.t_budgets_saisis + WHERE t_budgets_saisis.reference_nb_ambulatoires_total <> 0::numeric + UNION ALL + SELECT t_budgets_saisis.budget_id, + t_budgets_saisis.parent_code, + 24 AS level, + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''::text + FROM activite.t_budgets_saisis + WHERE t_budgets_saisis.reference_nb_externes_total <> 0::numeric + UNION ALL + SELECT t_budgets_saisis.budget_id, + t_budgets_saisis.parent_code, + 25 AS level, + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''::text + FROM activite.t_budgets_saisis + WHERE t_budgets_saisis.reference_nb_jours_js_non_inclus_total <> 0::numeric + UNION ALL + SELECT t_budgets_saisis.budget_id, + t_budgets_saisis.parent_code, + 26 AS level, + (((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((''::text + FROM activite.t_budgets_saisis + WHERE t_budgets_saisis.reference_nb_seances_total <> 0::numeric + UNION ALL + SELECT t_budgets_saisis.budget_id, + t_budgets_saisis.parent_code, + 99 AS level, + ''::text AS text + FROM activite.t_budgets_saisis + ORDER BY 1, 2, 3) subview + GROUP BY subview.budget_id; \ No newline at end of file diff --git a/db/schema2/views/v_budgets_saisis_2.yaml b/db/schema2/views/v_budgets_saisis_2.yaml new file mode 100644 index 0000000..5f157aa --- /dev/null +++ b/db/schema2/views/v_budgets_saisis_2.yaml @@ -0,0 +1,53 @@ +src: | + SELECT t_budgets.oid, + t_budgets_saisis.parent_id, + CASE + WHEN t_budgets.dimension1 = 'UF'::text THEN t_unites_fonctionnelles.code + WHEN t_budgets.dimension1 = 'SER'::text THEN t_services_facturation.code + ELSE ''::text + END AS parent_code, + CASE + WHEN t_budgets.dimension1 = 'UF'::text THEN t_unites_fonctionnelles.texte + WHEN t_budgets.dimension1 = 'SER'::text THEN t_services_facturation.texte + ELSE ''::text + END AS parent_texte, + CASE + WHEN t_budgets.dimension1 = 'UF'::text THEN t_unites_fonctionnelles.section_id + WHEN t_budgets.dimension1 = 'SER'::text THEN t_services_facturation.section_id + ELSE NULL::bigint[] + END AS parent_section_id, + CASE + WHEN t_budgets.dimension1 = 'UF'::text THEN t_unites_fonctionnelles.section_code + WHEN t_budgets.dimension1 = 'SER'::text THEN t_services_facturation.section_code + ELSE NULL::text[] + END AS parent_section_code, + CASE + WHEN t_budgets.dimension1 = 'UF'::text THEN t_unites_fonctionnelles.section_texte + WHEN t_budgets.dimension1 = 'SER'::text THEN t_services_facturation.section_texte + ELSE NULL::text[] + END AS parent_section_texte, + COALESCE( + CASE + WHEN t_budgets.dimension1 = 'UF'::text THEN t_unites_fonctionnelles.finess_id + WHEN t_budgets.dimension1 = 'SER'::text THEN t_services_facturation.finess_id + ELSE NULL::bigint + END, 0::bigint) AS finess_id, + COALESCE(t_finess_c.code, ''::text) AS finess_code, + COALESCE(t_finess_c.texte, ''::text) AS finess_texte, + t_finess_c.section_id AS finess_section_id, + t_finess_c.section_code AS finess_section_code, + t_finess_c.section_texte AS finess_section_texte, + p_calendrier_mois.date_fin AS date, + t_budgets_saisis.budget_nb_entrees_directes_mois[date_part('month'::text, p_calendrier_mois.date_fin)] AS nb_entrees_directes, + t_budgets_saisis.budget_nb_sorties_directes_mois[date_part('month'::text, p_calendrier_mois.date_fin)] AS nb_sorties_directes, + t_budgets_saisis.budget_nb_ambulatoires_mois[date_part('month'::text, p_calendrier_mois.date_fin)] AS nb_ambulatoires, + t_budgets_saisis.budget_nb_externes_mois[date_part('month'::text, p_calendrier_mois.date_fin)] AS nb_externes, + t_budgets_saisis.budget_nb_jours_js_non_inclus_mois[date_part('month'::text, p_calendrier_mois.date_fin)] AS nb_jours_js_non_inclus, + t_budgets_saisis.budget_nb_seances_mois[date_part('month'::text, p_calendrier_mois.date_fin)] AS nb_seances + FROM activite.t_budgets + JOIN base.p_calendrier_mois ON p_calendrier_mois.date_fin >= t_budgets.date_debut AND p_calendrier_mois.date_fin <= t_budgets.date_fin + JOIN activite.t_budgets_saisis ON t_budgets_saisis.budget_id = t_budgets.oid + LEFT JOIN activite.t_unites_fonctionnelles ON t_budgets_saisis.parent_id = t_unites_fonctionnelles.oid AND t_budgets.dimension1 = 'UF'::text + LEFT JOIN activite.t_services_facturation ON t_budgets_saisis.parent_id = t_services_facturation.oid AND t_budgets.dimension1 = 'SER'::text + LEFT JOIN activite.t_finess_c ON t_finess_c.oid = COALESCE(t_unites_fonctionnelles.finess_id, t_services_facturation.finess_id) + ORDER BY t_budgets.oid, t_budgets_saisis.parent_code, t_budgets_saisis.parent_section_id; \ No newline at end of file diff --git a/db/schema2/views/v_calendrier_1.yaml b/db/schema2/views/v_calendrier_1.yaml new file mode 100644 index 0000000..e612c0b --- /dev/null +++ b/db/schema2/views/v_calendrier_1.yaml @@ -0,0 +1,43 @@ +src: | + SELECT min(p_calendrier.date) AS date, + p_calendrier_mois.annee::text AS texte, + min(p_calendrier.mois::text) AS alias, + min(p_calendrier.mois)::numeric(6,0) AS mois, + '1'::text AS level, + max(p_calendrier.mois)::numeric(6,0) AS tri1, + '1962-04-18'::date AS tri2 + FROM base.p_calendrier, + base.p_calendrier_mois, + ( SELECT to_number(substr(max(p_chiffrier.mois)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_chiffrier.mois)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM activite.p_chiffrier) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois AND p_calendrier.mois = p_calendrier_mois.mois + GROUP BY p_calendrier_mois.annee + UNION ALL + SELECT p_calendrier.date, + p_calendrier_mois.texte, + p_calendrier.mois::text AS alias, + p_calendrier.mois, + '2'::text AS level, + p_calendrier.mois AS tri1, + '1962-04-18'::date AS tri2 + FROM base.p_calendrier, + base.p_calendrier_mois, + ( SELECT to_number(substr(max(p_chiffrier.mois)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_chiffrier.mois)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM activite.p_chiffrier) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois AND p_calendrier.mois = p_calendrier_mois.mois AND substr(p_calendrier.date::text, 9, 2) = '01'::bpchar::text + UNION ALL + SELECT p_calendrier.date, + p_calendrier.texte, + ''::text AS alias, + p_calendrier.mois, + '3'::text AS level, + p_calendrier.mois AS tri1, + p_calendrier.date AS tri2 + FROM base.p_calendrier, + ( SELECT to_number(substr(max(p_chiffrier.mois)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_chiffrier.mois)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM activite.p_chiffrier) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois + ORDER BY 6 DESC, 7, 5; \ No newline at end of file diff --git a/db/schema2/views/v_calendrier_2.yaml b/db/schema2/views/v_calendrier_2.yaml new file mode 100644 index 0000000..457b0f3 --- /dev/null +++ b/db/schema2/views/v_calendrier_2.yaml @@ -0,0 +1,43 @@ +src: | + SELECT max(p_calendrier.date) AS date, + p_calendrier_mois.annee::text AS texte, + max(p_calendrier.mois::text) AS alias, + max(p_calendrier.mois)::numeric(6,0) AS mois, + '1'::text AS level, + max(p_calendrier.mois)::numeric(6,0) AS tri1, + '1962-04-18'::date AS tri2 + FROM base.p_calendrier, + base.p_calendrier_mois, + ( SELECT to_number(substr(max(p_chiffrier.mois)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_chiffrier.mois)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM activite.p_chiffrier) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois AND p_calendrier.mois = p_calendrier_mois.mois + GROUP BY p_calendrier_mois.annee + UNION ALL + SELECT p_calendrier.date, + p_calendrier_mois.texte, + p_calendrier.mois::text AS alias, + p_calendrier.mois, + '2'::text AS level, + p_calendrier.mois AS tri1, + '1962-04-18'::date AS tri2 + FROM base.p_calendrier, + base.p_calendrier_mois, + ( SELECT to_number(substr(max(p_chiffrier.mois)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_chiffrier.mois)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM activite.p_chiffrier) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois AND p_calendrier.mois = p_calendrier_mois.mois AND p_calendrier.dernier_jour = '1'::bpchar + UNION ALL + SELECT p_calendrier.date, + p_calendrier.texte, + ''::text AS alias, + p_calendrier.mois, + '3'::text AS level, + p_calendrier.mois AS tri1, + p_calendrier.date AS tri2 + FROM base.p_calendrier, + ( SELECT to_number(substr(max(p_chiffrier.mois)::text, 1, 4) || '12'::text, '000000'::text) AS max_mois, + to_number(substr(min(p_chiffrier.mois)::text, 1, 4) || '01'::text, '000000'::text) AS min_mois + FROM activite.p_chiffrier) bornes + WHERE p_calendrier.mois >= bornes.min_mois AND p_calendrier.mois <= bornes.max_mois + ORDER BY 6 DESC, 7, 5; \ No newline at end of file diff --git a/db/schema2/views/v_calendrier_3.yaml b/db/schema2/views/v_calendrier_3.yaml new file mode 100644 index 0000000..e31e123 --- /dev/null +++ b/db/schema2/views/v_calendrier_3.yaml @@ -0,0 +1,25 @@ +src: | + SELECT 'M'::text || + CASE + WHEN (p_calendrier_mois.mois - p_calendrier_mois_1.mois + 1::numeric) <= 12::numeric THEN p_calendrier_mois.mois - p_calendrier_mois_1.mois + 1::numeric + ELSE p_calendrier_mois.mois - p_calendrier_mois_1.mois + 1::numeric - 88::numeric + END::text AS code, + p_calendrier_mois.texte_court AS texte, + p_calendrier_mois.mois, + p_calendrier_mois_1.mois AS premier_mois + FROM base.p_calendrier_mois, + base.p_calendrier_mois p_calendrier_mois_1 + WHERE p_calendrier_mois.mois >= p_calendrier_mois_1.mois AND (p_calendrier_mois.mois - p_calendrier_mois_1.mois) <= 99::numeric + UNION + SELECT 'N'::text || + CASE + WHEN (p_calendrier_mois.mois - p_calendrier_mois_1.mois + 1::numeric) <= 12::numeric THEN p_calendrier_mois.mois - p_calendrier_mois_1.mois + 1::numeric + ELSE p_calendrier_mois.mois - p_calendrier_mois_1.mois + 1::numeric - 88::numeric + END::text AS code, + to_char(p_calendrier_mois.mois, 'FM999999'::text) AS texte, + p_calendrier_mois.mois, + p_calendrier_mois_1.mois AS premier_mois + FROM base.p_calendrier_mois, + base.p_calendrier_mois p_calendrier_mois_1 + WHERE p_calendrier_mois.mois >= p_calendrier_mois_1.mois AND (p_calendrier_mois.mois - p_calendrier_mois_1.mois) <= 99::numeric + ORDER BY 4, 3; \ No newline at end of file diff --git a/db/schema2/views/v_calendrier_4.yaml b/db/schema2/views/v_calendrier_4.yaml new file mode 100644 index 0000000..eff5d8e --- /dev/null +++ b/db/schema2/views/v_calendrier_4.yaml @@ -0,0 +1,25 @@ +src: | + SELECT 'M'::text || + CASE + WHEN (p_calendrier_mois_1.mois - p_calendrier_mois.mois + 1::numeric) <= 12::numeric THEN 12::numeric - (p_calendrier_mois_1.mois - p_calendrier_mois.mois) + ELSE 12::numeric - (p_calendrier_mois_1.mois - p_calendrier_mois.mois + 1::numeric - 89::numeric) + END::text AS code, + p_calendrier_mois.texte_court AS texte, + p_calendrier_mois.mois, + p_calendrier_mois_1.mois AS dernier_mois + FROM base.p_calendrier_mois, + base.p_calendrier_mois p_calendrier_mois_1 + WHERE p_calendrier_mois_1.mois >= p_calendrier_mois.mois AND (p_calendrier_mois_1.mois - p_calendrier_mois.mois) <= 99::numeric + UNION + SELECT 'N'::text || + CASE + WHEN (p_calendrier_mois_1.mois - p_calendrier_mois.mois + 1::numeric) <= 12::numeric THEN 12::numeric - (p_calendrier_mois_1.mois - p_calendrier_mois.mois) + ELSE 12::numeric - (p_calendrier_mois_1.mois - p_calendrier_mois.mois + 1::numeric - 89::numeric) + END::text AS code, + to_char(p_calendrier_mois.mois, 'FM999999'::text) AS texte, + p_calendrier_mois.mois, + p_calendrier_mois_1.mois AS dernier_mois + FROM base.p_calendrier_mois, + base.p_calendrier_mois p_calendrier_mois_1 + WHERE p_calendrier_mois_1.mois >= p_calendrier_mois.mois AND (p_calendrier_mois_1.mois - p_calendrier_mois.mois) <= 99::numeric + ORDER BY 4, 3; \ No newline at end of file diff --git a/db/schema2/views/v_classes_1.yaml b/db/schema2/views/v_classes_1.yaml new file mode 100644 index 0000000..8faa2b9 --- /dev/null +++ b/db/schema2/views/v_classes_1.yaml @@ -0,0 +1,87 @@ +src: | + SELECT t_listes_tables.oid AS table_id, + 0 AS sequence, + t_listes_tables.texte || + CASE + WHEN count(DISTINCT t_classes.oid) > 0 THEN (' ('::text || count(DISTINCT t_classes.oid)::text) || ')'::text + ELSE ''::text + END AS texte, + t_listes_tables.texte AS sort_1, + - 1::bigint AS sort_2, + 0::bigint AS classe_id, + '1'::text AS lvl, + ''::text AS code, + 'activite'::text AS schema + FROM activite.t_listes_tables + LEFT JOIN activite.t_classes ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = ANY (ARRAY['CODEPOST'::text, 'ACTIVITE'::text, 'AGE'::text, 'DURSEJ'::text, 'SERVICE_F'::text, 'ETAGE'::text, 'LIT'::text, 'MEDECIN'::text, 'MEDECIN_TRAITANT'::text, 'RUBRIQUEX'::text, 'ACTE'::text, 'PERSO_SEJ1'::text, 'COMPTE'::text, 'BUDGETCLE'::text, 'GHM'::text, 'GME'::text, 'TSE'::text, 'ETATSEJOUR'::text, 'PRESTA_C'::text, 'UM'::text, 'UF'::text, 'REJETNOEMI'::text, 'TIERSP'::text, 'RUBRIQUE'::text, 'ACTE'::text, 'PERSO_SEJ1'::text, 'COMPTE'::text, 'BUDGETCLE'::text, 'GHM'::text, 'GME'::text, 'TYPESEJOUR'::text, 'FORMEACTIVITE'::text, 'GHMGME'::text]) + GROUP BY t_listes_tables.oid, t_listes_tables.texte + UNION + SELECT t_classes.table_id, + t_classes.sequence, + t_classes.texte, + t_listes_tables.texte AS sort_1, + t_classes.sequence AS sort_2, + t_classes.oid AS classe_id, + '2'::text AS lvl, + t_classes.code, + 'activite'::text AS schema + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND (t_listes_tables.code = ANY (ARRAY['CODEPOST'::text, 'ACTIVITE'::text, 'AGE'::text, 'DURSEJ'::text, 'SERVICE_F'::text, 'ETAGE'::text, 'LIT'::text, 'MEDECIN'::text, 'MEDECIN_TRAITANT'::text, 'RUBRIQUEX'::text, 'ACTE'::text, 'PERSO_SEJ1'::text, 'COMPTE'::text, 'BUDGETCLE'::text, 'GHM'::text, 'GHM'::text, 'TSE'::text, 'ETATSEJOUR'::text, 'PRESTA_C'::text, 'UM'::text, 'UF'::text, 'REJETNOEMI'::text, 'TIERSP'::text, 'RUBRIQUE'::text, 'ACTE'::text, 'PERSO_SEJ1'::text, 'COMPTE'::text, 'BUDGETCLE'::text, 'GHM'::text, 'GME'::text, 'TYPESEJOUR'::text, 'FORMEACTIVITE'::text, 'GHMGME'::text])) AND t_classes.sequence >= 1 + UNION + SELECT t_listes_tables.oid AS table_id, + (-1) AS sequence, + 'Nouvelle classe'::text AS texte, + t_listes_tables.texte AS sort_1, + 0::bigint AS sort_2, + (-1)::bigint AS classe_id, + '2'::text AS lvl, + ''::text AS code, + 'activite'::text AS schema + FROM activite.t_listes_tables + WHERE t_listes_tables.code = ANY (ARRAY['CODEPOST'::text, 'ACTIVITE'::text, 'AGE'::text, 'DURSEJ'::text, 'SERVICE_F'::text, 'ETAGE'::text, 'LIT'::text, 'MEDECIN'::text, 'MEDECIN_TRAITANT'::text, 'RUBRIQUEX'::text, 'ACTE'::text, 'PERSO_SEJ1'::text, 'COMPTE'::text, 'BUDGETCLE'::text, 'GHM'::text, 'GHM'::text, 'TSE'::text, 'ETATSEJOUR'::text, 'PRESTA_C'::text, 'UM'::text, 'UF'::text, 'REJETNOEMI'::text, 'TIERSP'::text, 'RUBRIQUE'::text, 'ACTE'::text, 'PERSO_SEJ1'::text, 'COMPTE'::text, 'BUDGETCLE'::text, 'GHM'::text, 'GME'::text, 'TYPESEJOUR'::text, 'FORMEACTIVITE'::text, 'GHMGME'::text]) + UNION + SELECT t_listes_tables.oid AS table_id, + 0 AS sequence, + t_listes_tables.texte || + CASE + WHEN count(DISTINCT t_classes.oid) > 0 THEN (' ('::text || count(DISTINCT t_classes.oid)::text) || ')'::text + ELSE ''::text + END AS texte, + t_listes_tables.texte AS sort_1, + - 1::bigint AS sort_2, + 0::bigint AS classe_id, + '1'::text AS lvl, + ''::text AS code, + 'base'::text AS schema + FROM base.t_listes_tables + LEFT JOIN base.t_classes ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = ANY (ARRAY['FINESS'::text, 'POLE'::text]) + GROUP BY t_listes_tables.oid, t_listes_tables.texte + UNION + SELECT t_classes.table_id, + t_classes.sequence, + t_classes.texte, + t_listes_tables.texte AS sort_1, + t_classes.sequence AS sort_2, + t_classes.oid AS classe_id, + '2'::text AS lvl, + t_classes.code, + 'base'::text AS schema + FROM base.t_classes, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND (t_listes_tables.code = ANY (ARRAY['FINESS'::text, 'POLE'::text])) AND t_classes.sequence >= 1 + UNION + SELECT t_listes_tables.oid AS table_id, + (-1) AS sequence, + 'Nouvelle classe'::text AS texte, + t_listes_tables.texte AS sort_1, + 0::bigint AS sort_2, + (-1)::bigint AS classe_id, + '2'::text AS lvl, + ''::text AS code, + 'base'::text AS schema + FROM base.t_listes_tables + WHERE t_listes_tables.code = ANY (ARRAY['FINESS'::text, 'POLE'::text]) + ORDER BY 4, 5; \ No newline at end of file diff --git a/db/schema2/views/v_codes_postaux_2.yaml b/db/schema2/views/v_codes_postaux_2.yaml new file mode 100644 index 0000000..7540f50 --- /dev/null +++ b/db/schema2/views/v_codes_postaux_2.yaml @@ -0,0 +1,18 @@ +src: | + SELECT t_codes_postaux_c.oid AS code_postal_id, + t_codes_postaux_c.code AS code_postal_code, + t_codes_postaux_c.texte_court AS code_postal_texte, + t_codes_postaux_c.departement_id, + t_codes_postaux_c.departement_code, + t_codes_postaux_c.departement_texte, + t_codes_postaux_c.code_geographique_pmsi_id, + t_codes_postaux_c.code_geographique_pmsi_code, + t_codes_postaux_c.code_geographique_pmsi_texte, + t_codes_postaux_c.code_geographique_pmsi_population, + t_codes_postaux_c.territoire_sante_id, + t_codes_postaux_c.territoire_sante_code, + t_codes_postaux_c.territoire_sante_texte, + t_codes_postaux_c.section_id AS code_postal_section_id, + t_codes_postaux_c.section_code AS code_postal_section_code, + t_codes_postaux_c.section_texte AS code_postal_section_texte + FROM activite.t_codes_postaux_c; \ No newline at end of file diff --git a/db/schema2/views/v_codes_postaux_3.yaml b/db/schema2/views/v_codes_postaux_3.yaml new file mode 100644 index 0000000..0eee923 --- /dev/null +++ b/db/schema2/views/v_codes_postaux_3.yaml @@ -0,0 +1,170 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'CODEPOST'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes + JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'CODEPOST'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes + JOIN activite.t_classes_sections ON t_classes_sections.classe_id = t_classes.oid + JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'CODEPOST'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes + JOIN activite.t_listes_tables ON t_classes.table_id = t_listes_tables.oid + WHERE t_listes_tables.code = 'CODEPOST'::text + UNION ALL + SELECT '-8'::text AS oid, + 'Codes postaux'::character varying AS texte, + 'A'::text AS code, + '1'::text AS level, + '7'::text AS tri, + '0'::character(1) AS is_cti + UNION ALL + ( SELECT DISTINCT 'DP'::text || t_codes_postaux_c.departement_id::text AS oid, + (t_codes_postaux_c.departement_code || ' '::text) || t_codes_postaux_c.departement_texte AS texte, + t_codes_postaux_c.departement_code AS code, + '2'::text AS level, + '7'::text || substr(t_codes_postaux_c.departement_code || ' '::text, 1, 5) AS tri, + '0'::character(1) AS is_cti + FROM activite.t_codes_postaux_c + WHERE (t_codes_postaux_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'c_postaux'::text)) + ORDER BY 'DP'::text || t_codes_postaux_c.departement_id::text, (t_codes_postaux_c.departement_code || ' '::text) || t_codes_postaux_c.departement_texte, t_codes_postaux_c.departement_code, '2'::text, '7'::text || substr(t_codes_postaux_c.departement_code || ' '::text, 1, 5)) + UNION ALL + ( SELECT DISTINCT 'CP'::text || t_codes_postaux_c.oid::text AS oid, + (t_codes_postaux_c.code || ' '::text) || t_codes_postaux_c.texte AS texte, + t_codes_postaux_c.code, + '3'::text AS level, + (('7'::text || substr(t_codes_postaux_c.departement_code || ' '::text, 1, 5)) || 'P'::text) || t_codes_postaux_c.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_codes_postaux_c + WHERE (t_codes_postaux_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'c_postaux'::text)) + ORDER BY 'CP'::text || t_codes_postaux_c.oid::text, (t_codes_postaux_c.code || ' '::text) || t_codes_postaux_c.texte, t_codes_postaux_c.code, '3'::text, (('7'::text || substr(t_codes_postaux_c.departement_code || ' '::text, 1, 5)) || 'P'::text) || t_codes_postaux_c.code) + UNION ALL + SELECT '-8'::text AS oid, + 'Codes géographiques PMSI'::character varying AS texte, + 'A'::text AS code, + '1'::text AS level, + '8'::text AS tri, + '0'::character(1) AS is_cti + UNION ALL + ( SELECT DISTINCT 'DG'::text || t_codes_postaux_c.departement_id::text AS oid, + (t_codes_postaux_c.departement_code || ' '::text) || t_codes_postaux_c.departement_texte AS texte, + t_codes_postaux_c.departement_code AS code, + '2'::text AS level, + '8'::text || substr(t_codes_postaux_c.departement_code || ' '::text, 1, 5) AS tri, + '0'::character(1) AS is_cti + FROM activite.t_codes_postaux_c + WHERE (t_codes_postaux_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'c_postaux'::text)) + ORDER BY 'DG'::text || t_codes_postaux_c.departement_id::text, (t_codes_postaux_c.departement_code || ' '::text) || t_codes_postaux_c.departement_texte, t_codes_postaux_c.departement_code, '2'::text, '8'::text || substr(t_codes_postaux_c.departement_code || ' '::text, 1, 5)) + UNION ALL + ( SELECT DISTINCT 'GP'::text || t_codes_postaux_c.code_geographique_pmsi_id::text AS oid, + (t_codes_postaux_c.code_geographique_pmsi_code || ' '::text) || t_codes_postaux_c.code_geographique_pmsi_texte AS texte, + t_codes_postaux_c.code_geographique_pmsi_code AS code, + '3'::text AS level, + (('8'::text || substr(t_codes_postaux_c.departement_code || ' '::text, 1, 5)) || 'P'::text) || t_codes_postaux_c.code_geographique_pmsi_code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_codes_postaux_c + WHERE (t_codes_postaux_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'c_postaux'::text)) + ORDER BY 'GP'::text || t_codes_postaux_c.code_geographique_pmsi_id::text, (t_codes_postaux_c.code_geographique_pmsi_code || ' '::text) || t_codes_postaux_c.code_geographique_pmsi_texte, t_codes_postaux_c.code_geographique_pmsi_code, '3'::text, (('8'::text || substr(t_codes_postaux_c.departement_code || ' '::text, 1, 5)) || 'P'::text) || t_codes_postaux_c.code_geographique_pmsi_code) + UNION ALL + SELECT '-8'::text AS oid, + 'Territoires de santé'::character varying AS texte, + 'A'::text AS code, + '1'::text AS level, + '9'::text AS tri, + '0'::character(1) AS is_cti + UNION ALL + ( SELECT DISTINCT 'TS'::text || t_codes_postaux_c.territoire_sante_id::text AS oid, + CASE + WHEN t_codes_postaux_c.territoire_sante_texte = ''::text THEN 'Non renseigné'::text + ELSE t_codes_postaux_c.territoire_sante_texte + END AS texte, + CASE + WHEN t_codes_postaux_c.territoire_sante_code = ''::text THEN chr(127) || '*******'::text + ELSE t_codes_postaux_c.territoire_sante_code + END AS code, + '2'::text AS level, + CASE + WHEN t_codes_postaux_c.territoire_sante_texte = ''::text THEN '9 '::text || 'Non renseigné'::text + ELSE '9'::text || t_codes_postaux_c.territoire_sante_texte + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_codes_postaux_c + WHERE (t_codes_postaux_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'c_postaux'::text)) + GROUP BY 'TS'::text || t_codes_postaux_c.territoire_sante_id::text, + CASE + WHEN t_codes_postaux_c.territoire_sante_texte = ''::text THEN 'Non renseigné'::text + ELSE t_codes_postaux_c.territoire_sante_texte + END, + CASE + WHEN t_codes_postaux_c.territoire_sante_code = ''::text THEN chr(127) || '*******'::text + ELSE t_codes_postaux_c.territoire_sante_code + END, '2'::text, + CASE + WHEN t_codes_postaux_c.territoire_sante_texte = ''::text THEN '9 '::text || 'Non renseigné'::text + ELSE '9'::text || t_codes_postaux_c.territoire_sante_texte + END + ORDER BY 'TS'::text || t_codes_postaux_c.territoire_sante_id::text, + CASE + WHEN t_codes_postaux_c.territoire_sante_texte = ''::text THEN 'Non renseigné'::text + ELSE t_codes_postaux_c.territoire_sante_texte + END, + CASE + WHEN t_codes_postaux_c.territoire_sante_code = ''::text THEN chr(127) || '*******'::text + ELSE t_codes_postaux_c.territoire_sante_code + END, '2'::text, + CASE + WHEN t_codes_postaux_c.territoire_sante_texte = ''::text THEN '9 '::text || 'Non renseigné'::text + ELSE '9'::text || t_codes_postaux_c.territoire_sante_texte + END) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_compte_1.yaml b/db/schema2/views/v_compte_1.yaml new file mode 100644 index 0000000..e738198 --- /dev/null +++ b/db/schema2/views/v_compte_1.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE 1 = 1 AND v_listes_1.table_code = 'COMPTE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE 1 = 1 AND t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'COMPTE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE 1 = 1 AND t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'COMPTE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE 1 = 1 AND t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'COMPTE'::text + UNION ALL + SELECT 'DT'::text || t_compte.oid::text AS oid, + (t_compte.code || ' '::text) || t_compte.texte_court AS texte, + t_compte.code, + '1'::text AS level, + '9'::text || t_compte.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_compte + WHERE (t_compte.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'compte'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_compte_produit_analytique_1.yaml b/db/schema2/views/v_compte_produit_analytique_1.yaml new file mode 100644 index 0000000..cbd6e3e --- /dev/null +++ b/db/schema2/views/v_compte_produit_analytique_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_compte.oid AS compte_produit_analytique_linkid, + t_compte.code AS compte_produit_analytique_code, + t_compte.texte AS compte_produit_analytique_texte, + t_compte.section_id AS compte_produit_analytique_section_id, + t_compte.section_code AS compte_produit_analytique_section_code, + t_compte.section_texte AS compte_produit_analytique_section_texte + FROM activite.t_compte; \ No newline at end of file diff --git a/db/schema2/views/v_compte_produit_analytique_link.yaml b/db/schema2/views/v_compte_produit_analytique_link.yaml new file mode 100644 index 0000000..cbd6e3e --- /dev/null +++ b/db/schema2/views/v_compte_produit_analytique_link.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_compte.oid AS compte_produit_analytique_linkid, + t_compte.code AS compte_produit_analytique_code, + t_compte.texte AS compte_produit_analytique_texte, + t_compte.section_id AS compte_produit_analytique_section_id, + t_compte.section_code AS compte_produit_analytique_section_code, + t_compte.section_texte AS compte_produit_analytique_section_texte + FROM activite.t_compte; \ No newline at end of file diff --git a/db/schema2/views/v_destinations_sortie_1.yaml b/db/schema2/views/v_destinations_sortie_1.yaml new file mode 100644 index 0000000..1cb7a93 --- /dev/null +++ b/db/schema2/views/v_destinations_sortie_1.yaml @@ -0,0 +1,9 @@ +src: | + SELECT ascii(t_destinations_sortie.code::text) AS destination_id, + t_destinations_sortie.code AS destination_code, + CASE + WHEN t_destinations_sortie.code <> ''::bpchar THEN t_destinations_sortie.texte + ELSE 'Non saisi'::text + END AS destination_texte + FROM base.t_destinations_sortie + ORDER BY t_destinations_sortie.code; \ No newline at end of file diff --git a/db/schema2/views/v_destinations_sortie_2.yaml b/db/schema2/views/v_destinations_sortie_2.yaml new file mode 100644 index 0000000..f35623d --- /dev/null +++ b/db/schema2/views/v_destinations_sortie_2.yaml @@ -0,0 +1,23 @@ +src: | + SELECT 'DS'::text || t_destinations_sortie.code::text AS code, + CASE + WHEN t_destinations_sortie.code <> ''::bpchar THEN (t_destinations_sortie.code::text || ' - '::text) || t_destinations_sortie.texte + ELSE 'Non saisi'::text + END AS texte, + CASE + WHEN t_destinations_sortie.code <> ''::bpchar THEN (t_destinations_sortie.code::text || ' - '::text) || t_destinations_sortie.texte_court + ELSE 'Non saisi'::text + END AS texte_court + FROM base.t_destinations_sortie + UNION ALL + SELECT 'DX'::text || t_destinations_sortie.code::text AS code, + CASE + WHEN t_destinations_sortie.code <> ''::bpchar THEN ('SAUF '::text || (t_destinations_sortie.code::text || ' - '::text)) || t_destinations_sortie.texte + ELSE 'SAUF Non saisi'::text + END AS texte, + CASE + WHEN t_destinations_sortie.code <> ''::bpchar THEN ('SAUF '::text || (t_destinations_sortie.code::text || ' - '::text)) || t_destinations_sortie.texte_court + ELSE 'SAUF Non saisi'::text + END AS texte_court + FROM base.t_destinations_sortie + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_durees_occupation_1.yaml b/db/schema2/views/v_durees_occupation_1.yaml new file mode 100644 index 0000000..24befeb --- /dev/null +++ b/db/schema2/views/v_durees_occupation_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_durees_sejour_c.oid AS duree_occupation_id, + t_durees_sejour_c.code AS duree_occupation_code, + t_durees_sejour_c.texte AS duree_occupation_texte, + t_durees_sejour_c.section_id AS duree_occupation_section_id, + t_durees_sejour_c.section_code AS duree_occupation_section_code, + t_durees_sejour_c.section_texte AS duree_occupation_section_texte + FROM activite.t_durees_sejour_c; \ No newline at end of file diff --git a/db/schema2/views/v_durees_occupation_2.yaml b/db/schema2/views/v_durees_occupation_2.yaml new file mode 100644 index 0000000..3ade8ce --- /dev/null +++ b/db/schema2/views/v_durees_occupation_2.yaml @@ -0,0 +1,32 @@ +src: | + SELECT p_mouvements_sejour.no_sejour, + t_lieux_c.etage_id AS do_lieu_etage_id, + t_lieux_c.etage_code AS do_lieu_etage_code, + t_lieux_c.etage_texte AS do_lieu_etage_texte, + t_lieux_c.etage_section_id AS do_lieu_etage_section_id, + t_lieux_c.etage_section_code AS do_lieu_etage_section_code, + t_lieux_c.etage_section_texte AS do_lieu_etage_section_texte, + t_lieux_c.lit_id AS do_lieu_lit_id, + t_lieux_c.lit_code AS do_lieu_lit_code, + t_lieux_c.lit_texte AS do_lieu_lit_texte, + t_lieux_c.lit_section_id AS do_lieu_lit_section_id, + t_lieux_c.lit_section_code AS do_lieu_lit_section_code, + t_lieux_c.lit_section_texte AS do_lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS do_lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS do_lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS do_lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS do_lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS do_lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS do_lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS do_lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS do_lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS do_lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS do_lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS do_lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS do_lieu_unite_fonctionnelle_section_texte, + sum(p_mouvements_sejour.nb_jours_f) AS duree_occ_eta + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid + WHERE t_lieux_c.service_facturation_est_sans_mouvement <> '1'::bpchar + GROUP BY p_mouvements_sejour.no_sejour, t_lieux_c.etage_id, t_lieux_c.etage_code, t_lieux_c.etage_texte, t_lieux_c.etage_section_id, t_lieux_c.etage_section_code, t_lieux_c.etage_section_texte, t_lieux_c.lit_id, t_lieux_c.lit_code, t_lieux_c.lit_texte, t_lieux_c.lit_section_id, t_lieux_c.lit_section_code, t_lieux_c.lit_section_texte, t_lieux_c.unite_medicale_id, t_lieux_c.unite_medicale_code, t_lieux_c.unite_medicale_texte, t_lieux_c.unite_medicale_section_id, t_lieux_c.unite_medicale_section_code, t_lieux_c.unite_medicale_section_texte, t_lieux_c.unite_fonctionnelle_id, t_lieux_c.unite_fonctionnelle_code, t_lieux_c.unite_fonctionnelle_texte, t_lieux_c.unite_fonctionnelle_section_id, t_lieux_c.unite_fonctionnelle_section_code, t_lieux_c.unite_fonctionnelle_section_texte + ORDER BY p_mouvements_sejour.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_durees_occupation_3.yaml b/db/schema2/views/v_durees_occupation_3.yaml new file mode 100644 index 0000000..3b31412 --- /dev/null +++ b/db/schema2/views/v_durees_occupation_3.yaml @@ -0,0 +1,12 @@ +src: | + SELECT 'DO'::text || t_durees_sejour_c.oid::text AS oid, + t_durees_sejour_c.texte, + t_durees_sejour_c.code, + '2'::text AS level, + '9'::text || t_durees_sejour_c.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_durees_sejour_c + WHERE (t_durees_sejour_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'dursej'::text)) + ORDER BY '9'::text || t_durees_sejour_c.code; \ No newline at end of file diff --git a/db/schema2/views/v_durees_sejour_1.yaml b/db/schema2/views/v_durees_sejour_1.yaml new file mode 100644 index 0000000..62d8407 --- /dev/null +++ b/db/schema2/views/v_durees_sejour_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_durees_sejour_c.oid AS duree_sejour_id, + t_durees_sejour_c.code AS duree_sejour_code, + t_durees_sejour_c.texte AS duree_sejour_texte, + t_durees_sejour_c.section_id AS duree_sejour_section_id, + t_durees_sejour_c.section_code AS duree_sejour_section_code, + t_durees_sejour_c.section_texte AS duree_sejour_section_texte + FROM activite.t_durees_sejour_c; \ No newline at end of file diff --git a/db/schema2/views/v_durees_sejour_2.yaml b/db/schema2/views/v_durees_sejour_2.yaml new file mode 100644 index 0000000..b76ca17 --- /dev/null +++ b/db/schema2/views/v_durees_sejour_2.yaml @@ -0,0 +1,73 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'DURSEJ'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'DURSEJ'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'DURSEJ'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'DURSEJ'::text + UNION ALL + SELECT '-8'::text AS oid, + 'Choix d''une durée'::character varying AS texte, + 'A'::text AS code, + '1'::text AS level, + '9'::text || chr(1) AS tri, + '0'::character(1) AS is_cti + UNION ALL + SELECT 'DU'::text || t_durees_sejour_c.oid::text AS oid, + t_durees_sejour_c.texte, + t_durees_sejour_c.code, + '2'::text AS level, + '9'::text || t_durees_sejour_c.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_durees_sejour_c + WHERE (t_durees_sejour_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'dursej'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_etages_1.yaml b/db/schema2/views/v_etages_1.yaml new file mode 100644 index 0000000..dc5f421 --- /dev/null +++ b/db/schema2/views/v_etages_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_etages.oid, + t_etages.texte_court AS texte + FROM activite.t_etages + WHERE (t_etages.oid IN ( SELECT DISTINCT t_lieux_c.etage_id + FROM activite.t_lieux_c + ORDER BY t_lieux_c.etage_id)) + ORDER BY t_etages.texte_court; \ No newline at end of file diff --git a/db/schema2/views/v_etages_2.yaml b/db/schema2/views/v_etages_2.yaml new file mode 100644 index 0000000..e21e1a0 --- /dev/null +++ b/db/schema2/views/v_etages_2.yaml @@ -0,0 +1,61 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'ETAGE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ETAGE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ETAGE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ETAGE'::text + UNION ALL + SELECT 'ET'::text || t_etages.oid::text AS oid, + (t_etages.code || ' '::text) || t_etages.texte_court AS texte, + '1'::text AS level, + '9'::text || t_etages.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_etages + WHERE (t_etages.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'etage'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_etat_sejour_1.yaml b/db/schema2/views/v_etat_sejour_1.yaml new file mode 100644 index 0000000..51abdda --- /dev/null +++ b/db/schema2/views/v_etat_sejour_1.yaml @@ -0,0 +1,9 @@ +src: | + SELECT t_etat_sejour.oid AS to_etat_sejour_id, + t_etat_sejour.code AS etat_sejour_code, + t_etat_sejour.texte AS etat_sejour_texte, + t_etat_sejour.section_id AS etat_sejour_section_id, + t_etat_sejour.section_code AS etat_sejour_section_code, + t_etat_sejour.section_texte AS etat_sejour_section_texte + FROM activite.t_etat_sejour + ORDER BY t_etat_sejour.oid; \ No newline at end of file diff --git a/db/schema2/views/v_etat_sejour_2.yaml b/db/schema2/views/v_etat_sejour_2.yaml new file mode 100644 index 0000000..2f75ba9 --- /dev/null +++ b/db/schema2/views/v_etat_sejour_2.yaml @@ -0,0 +1,33 @@ +src: | + SELECT ('LC'::text || to_char(t_classes.sequence, 'FM00'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '2'::text || btrim(rpad(to_char(t_classes.sequence, 'FM00'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'ETATSEJOUR'::text + UNION ALL + SELECT ('LS'::text || to_char(t_classes.sequence, 'FM00'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text || btrim(rpad(to_char(t_classes.sequence, 'FM00'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'ETATSEJOUR'::text + UNION ALL + SELECT 'DT'::text || t_etat_sejour.oid::text AS oid, + (t_etat_sejour.code || ' '::text) || t_etat_sejour.texte AS texte, + '9'::text || t_etat_sejour.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_etat_sejour + ORDER BY 3; \ No newline at end of file diff --git a/db/schema2/views/v_expert_controle_2.yaml b/db/schema2/views/v_expert_controle_2.yaml new file mode 100644 index 0000000..a6ae823 --- /dev/null +++ b/db/schema2/views/v_expert_controle_2.yaml @@ -0,0 +1,69 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.liste_id_combo AS alias, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'EXPERTCTL'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + ''::text AS alias, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'EXPERTCTL'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + ('#LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.code AS alias, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'EXPERTCTL'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + ''::text AS alias, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'EXPERTCTL'::text + UNION ALL + SELECT 'DT'::text || t_expert_controle.oid::text AS oid, + '#LP'::text || t_expert_controle.code AS alias, + (t_expert_controle.code || ' '::text) || t_expert_controle.texte_court AS texte, + t_expert_controle.code, + '1'::text AS level, + '9'::text || t_expert_controle.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_expert_controle + WHERE t_expert_controle.is_global IS DISTINCT FROM '1'::bpchar + ORDER BY 6; \ No newline at end of file diff --git a/db/schema2/views/v_expert_sejour_controle_1.yaml b/db/schema2/views/v_expert_sejour_controle_1.yaml new file mode 100644 index 0000000..a80b31e --- /dev/null +++ b/db/schema2/views/v_expert_sejour_controle_1.yaml @@ -0,0 +1,37 @@ +src: | + SELECT t_expert_controle.oid AS expert_controle_id, + t_expert_controle.code AS expert_controle_code, + t_expert_controle.texte_court AS expert_controle_texte, + COALESCE(t_expert_controle.texte_abrege, t_expert_controle.texte_court) AS expert_controle_texte_abrege, + t_expert_controle.gravite_id AS expert_controle_gravite_id, + to_char(t_expert_controle.gravite_id, 'FM0'::text) AS expert_controle_gravite_code, + CASE + WHEN t_expert_controle.gravite_id = 0 THEN 'INFO'::text + WHEN t_expert_controle.gravite_id >= 1 AND t_expert_controle.gravite_id <= 5 THEN 'ATT'::text + WHEN t_expert_controle.gravite_id >= 6 AND t_expert_controle.gravite_id <= 9 THEN 'ERREUR'::text + ELSE 'ATT'::text + END AS expert_controle_gravite_texte, + t_expert_controle.date_validite_debut AS expert_controle_date_validite_debut, + t_expert_controle.date_validite_fin AS expert_controle_date_validite_fin, + t_expert_controle.section_id AS expert_controle_section_id, + t_expert_controle.section_code AS expert_controle_section_code, + t_expert_controle.section_texte AS expert_controle_section_texte, + t_expert_controle.alert_exp, + p_expert_sejour_controle.date_signalement, + date_part('epoch'::text, p_expert_sejour_controle.date_signalement) AS date_signalement_id, + p_expert_sejour_controle.date_signalement::text AS date_signalement_code, + p_calendrier_s.texte_court AS date_signalement_texte, + p_calendrier_s.mois AS date_signalement_mois_id, + to_char(p_calendrier_s.mois, 'FM000000'::text) AS date_signalement_mois_code, + (p_calendrier_s.mois_texte || ' '::text) || to_char(p_calendrier_s.iso_annee, 'FM0000'::text) AS date_signalement_mois_texte, + p_calendrier_s.semaine AS date_signalement_semaine_id, + to_char(p_calendrier_s.semaine, 'FM000000'::text) AS date_signalement_semaine_code, + (('Semaine '::text || to_char(p_calendrier_s.iso_semaine, 'FM00'::text)) || ' '::text) || to_char(p_calendrier_s.iso_annee, 'FM0000'::text) AS date_signalement_semaine_texte, + p_expert_sejour_controle.sejour_id, + p_expert_sejour_controle.no_sejour, + p_expert_sejour_controle.code_justificatif, + t_expert_controle.is_active AS expert_controle_is_active + FROM activite.t_expert_controle + JOIN activite.p_expert_sejour_controle ON p_expert_sejour_controle.controle_id = t_expert_controle.oid + JOIN base.p_calendrier p_calendrier_s ON p_expert_sejour_controle.date_signalement = p_calendrier_s.date + WHERE t_expert_controle.is_hide IS DISTINCT FROM '1'::bpchar AND t_expert_controle.is_global IS DISTINCT FROM '1'::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_facture_encours_ligne_valorise_c_1.yaml b/db/schema2/views/v_facture_encours_ligne_valorise_c_1.yaml new file mode 100644 index 0000000..e9e118a --- /dev/null +++ b/db/schema2/views/v_facture_encours_ligne_valorise_c_1.yaml @@ -0,0 +1,135 @@ +src: | + SELECT p_factures_encours.sejour_id, + p_factures_encours.oid AS facture_id, + p_factures_encours.code_sorti, + p_factures_encours.date_debut AS date_debut_facture, + p_factures_encours.date_fin AS date_fin_facture, + to_char(p_factures_encours.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + p_factures_encours.no_sejour, + p_facture_encours_ligne_valorise_c.no_facture, + to_char(p_factures_encours.date_encours::timestamp with time zone, 'YYYYMM'::text) AS mois_encours, + p_factures_encours.date_encours, + p_factures_encours.date_calcul, + to_char(p_facture_encours_ligne_valorise_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_facture_encours_ligne_valorise_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_facture_encours_ligne_valorise_c.date_debut, + p_facture_encours_ligne_valorise_c.date_fin, + p_facture_encours_ligne_valorise_c.coefficient, + p_facture_encours_ligne_valorise_c.coefficient_mco, + p_facture_encours_ligne_valorise_c.prix_unitaire, + p_facture_encours_ligne_valorise_c.lieu_id, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + p_facture_encours_ligne_valorise_c.rubrique_facturation_id, + t_rubriques_facturation.code AS rubrique_facturation_code, + t_rubriques_facturation.texte AS rubrique_facturation_texte, + t_rubriques_facturation.section_id AS rubrique_facturation_section_id, + t_rubriques_facturation.section_code AS rubrique_facturation_section_code, + t_rubriques_facturation.section_texte AS rubrique_facturation_section_texte, + p_facture_encours_ligne_valorise_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_facture_encours_ligne_valorise_c.lpp_id, + COALESCE(t_lpp_c.code, ''::text) AS lpp_code, + COALESCE(t_lpp_c.texte, ''::text) AS lpp_texte, + p_facture_encours_ligne_valorise_c.ucd_id, + COALESCE(t_ucd_c.code, ''::text) AS ucd_code, + COALESCE(t_ucd_c.texte, ''::text) AS ucd_texte, + p_facture_encours_ligne_valorise_c.nb_rubrique, + p_facture_encours_ligne_valorise_c.nb_prestation, + p_facture_encours_ligne_valorise_c.montant_encours, + p_facture_encours_ligne_valorise_c.montant_valorise_total, + CASE p_facture_encours_ligne_valorise_c.type_ligne_code + WHEN 'GHS'::text THEN 1 + WHEN 'GHSBB'::text THEN 2 + WHEN 'GHSNG'::text THEN 3 + WHEN 'GHSBBM'::text THEN 4 + WHEN 'EXH'::text THEN 11 + WHEN 'EXHNG'::text THEN 12 + WHEN 'SSS'::text THEN 21 + WHEN 'IVG'::text THEN 22 + WHEN 'NNX'::text THEN 23 + WHEN 'DIA'::text THEN 24 + WHEN 'PJ'::text THEN 31 + WHEN 'TMBG'::text THEN 32 + WHEN 'FJ'::text THEN 33 + WHEN 'PMS'::text THEN 34 + WHEN 'ENT'::text THEN 35 + WHEN 'GHT'::text THEN 81 + WHEN 'FJA'::text THEN 91 + WHEN 'CPC'::text THEN 101 + WHEN 'PRESTAM'::text THEN 201 + WHEN 'SEH'::text THEN 701 + WHEN 'ATU'::text THEN 702 + WHEN 'SAISIE'::text THEN 999 + ELSE 801 + END AS type_ligne_id, + p_facture_encours_ligne_valorise_c.type_ligne_code, + CASE p_facture_encours_ligne_valorise_c.type_ligne_code + WHEN 'GHS'::text THEN 'GHS dossier groupé'::text + WHEN 'GHSBB'::text THEN 'GHS bébé dossier bébé groupé'::text + WHEN 'GHSNG'::text THEN 'GHS dossier non groupé'::text + WHEN 'GHSBB'::text THEN 'GHS moyen bébé dossier maman groupé'::text + WHEN 'EXH'::text THEN 'EXH dossier groupé'::text + WHEN 'EXHNG'::text THEN 'EXH dossier non groupé'::text + WHEN 'SSS'::text THEN 'Suppléments SRC,STF,REA'::text + WHEN 'IVG'::text THEN 'Forfaits IVG'::text + WHEN 'NNX'::text THEN 'Suppléments NN'::text + WHEN 'DIA'::text THEN 'Dialyse'::text + WHEN 'PJ'::text THEN 'PJ'::text + WHEN 'TMBG'::text THEN 'TM Budget Global MCO'::text + WHEN 'FJ'::text THEN 'FJ'::text + WHEN 'PMS'::text THEN 'Forfait PMS SSR'::text + WHEN 'ENT'::text THEN 'Forfait entrée'::text + WHEN 'GHT'::text THEN 'GHT (HAD'::text + WHEN 'FJA'::text THEN 'Forfait jour de sortie'::text + WHEN 'CPC'::text THEN 'Chambre particulière'::text + WHEN 'PRESTAM'::text THEN 'Montant moyen par jour'::text + WHEN 'SEH'::text THEN 'Forfaits SEh'::text + WHEN 'ATU'::text THEN 'ATU'::text + WHEN 'SAISIE'::text THEN 'Prestations saisies'::text + ELSE p_facture_encours_ligne_valorise_c.type_ligne_code + END AS type_ligne_texte, + p_facture_encours_ligne_valorise_c.mode_calcul_code, + p_facture_encours_ligne_valorise_c.mode_calcul_texte + FROM activite.p_facture_encours_ligne_valorise_c + JOIN activite.p_factures_encours ON p_facture_encours_ligne_valorise_c.no_facture = p_factures_encours.no_facture + JOIN activite.t_lieux_c ON p_facture_encours_ligne_valorise_c.lieu_id = t_lieux_c.oid + JOIN activite.t_rubriques_facturation ON p_facture_encours_ligne_valorise_c.rubrique_facturation_id = t_rubriques_facturation.oid + JOIN activite.t_prestations ON p_facture_encours_ligne_valorise_c.prestation_id = t_prestations.oid + LEFT JOIN activite.t_lpp_c ON p_facture_encours_ligne_valorise_c.lpp_id = t_lpp_c.oid + LEFT JOIN activite.t_ucd_c ON p_facture_encours_ligne_valorise_c.ucd_id = t_ucd_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_facture_ligne_valorise_c_1.yaml b/db/schema2/views/v_facture_ligne_valorise_c_1.yaml new file mode 100644 index 0000000..de7ae73 --- /dev/null +++ b/db/schema2/views/v_facture_ligne_valorise_c_1.yaml @@ -0,0 +1,135 @@ +src: | + SELECT p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.code_facture, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + to_char(p_factures.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + p_factures.no_sejour, + p_facture_ligne_valorise_c.no_facture, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_facture_ligne_valorise_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_facture_ligne_valorise_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_facture_ligne_valorise_c.date_debut, + p_facture_ligne_valorise_c.date_fin, + p_facture_ligne_valorise_c.coefficient, + p_facture_ligne_valorise_c.coefficient_mco, + p_facture_ligne_valorise_c.prix_unitaire, + p_facture_ligne_valorise_c.lieu_id, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + p_facture_ligne_valorise_c.rubrique_facturation_id, + t_rubriques_facturation.code AS rubrique_facturation_code, + t_rubriques_facturation.texte AS rubrique_facturation_texte, + t_rubriques_facturation.section_id AS rubrique_facturation_section_id, + t_rubriques_facturation.section_code AS rubrique_facturation_section_code, + t_rubriques_facturation.section_texte AS rubrique_facturation_section_texte, + p_facture_ligne_valorise_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_facture_ligne_valorise_c.lpp_id, + COALESCE(t_lpp_c.code, ''::text) AS lpp_code, + COALESCE(t_lpp_c.texte, ''::text) AS lpp_texte, + p_facture_ligne_valorise_c.ucd_id, + COALESCE(t_ucd_c.code, ''::text) AS ucd_code, + COALESCE(t_ucd_c.texte, ''::text) AS ucd_texte, + p_facture_ligne_valorise_c.nb_rubrique, + p_facture_ligne_valorise_c.nb_prestation, + p_facture_ligne_valorise_c.montant_encours, + CASE p_facture_ligne_valorise_c.type_ligne_code + WHEN 'GHS'::text THEN 1 + WHEN 'GHSBB'::text THEN 2 + WHEN 'GHSNG'::text THEN 3 + WHEN 'GHSBBM'::text THEN 4 + WHEN 'EXH'::text THEN 11 + WHEN 'EXHNG'::text THEN 12 + WHEN 'SSS'::text THEN 21 + WHEN 'IVG'::text THEN 22 + WHEN 'NNX'::text THEN 23 + WHEN 'DIA'::text THEN 24 + WHEN 'PJ'::text THEN 31 + WHEN 'TMBG'::text THEN 32 + WHEN 'FJ'::text THEN 33 + WHEN 'PMS'::text THEN 34 + WHEN 'ENT'::text THEN 35 + WHEN 'GHT'::text THEN 81 + WHEN 'FJA'::text THEN 91 + WHEN 'CPC'::text THEN 101 + WHEN 'PRESTAM'::text THEN 201 + WHEN 'SEH'::text THEN 701 + WHEN 'ATU'::text THEN 702 + WHEN 'SAISIE'::text THEN 999 + ELSE 801 + END AS type_ligne_id, + p_facture_ligne_valorise_c.type_ligne_code, + CASE p_facture_ligne_valorise_c.type_ligne_code + WHEN 'GHS'::text THEN 'GHS dossier groupé'::text + WHEN 'GHSBB'::text THEN 'GHS bébé dossier bébé groupé'::text + WHEN 'GHSNG'::text THEN 'GHS dossier non groupé'::text + WHEN 'GHSBB'::text THEN 'GHS moyen bébé dossier maman groupé'::text + WHEN 'EXH'::text THEN 'EXH dossier groupé'::text + WHEN 'EXHNG'::text THEN 'EXH dossier non groupé'::text + WHEN 'SSS'::text THEN 'Suppléments SRC,STF,REA'::text + WHEN 'IVG'::text THEN 'Forfaits IVG'::text + WHEN 'NNX'::text THEN 'Suppléments NN'::text + WHEN 'DIA'::text THEN 'Dialyse'::text + WHEN 'PJ'::text THEN 'PJ'::text + WHEN 'TMBG'::text THEN 'TM Budget Global MCO'::text + WHEN 'FJ'::text THEN 'FJ'::text + WHEN 'PMS'::text THEN 'Forfait PMS SSR'::text + WHEN 'ENT'::text THEN 'Forfait entrée'::text + WHEN 'GHT'::text THEN 'GHT (HAD'::text + WHEN 'FJA'::text THEN 'Forfait jour de sortie'::text + WHEN 'CPC'::text THEN 'Chambre particulière'::text + WHEN 'PRESTAM'::text THEN 'Montant moyen par jour'::text + WHEN 'SEH'::text THEN 'Forfaits SEh'::text + WHEN 'ATU'::text THEN 'ATU'::text + WHEN 'SAISIE'::text THEN 'Prestations saisies'::text + ELSE p_facture_ligne_valorise_c.type_ligne_code + END AS type_ligne_texte, + p_facture_ligne_valorise_c.mode_calcul_code, + p_facture_ligne_valorise_c.mode_calcul_texte + FROM activite.p_facture_ligne_valorise_c + JOIN activite.p_factures ON p_facture_ligne_valorise_c.no_facture = p_factures.no_facture + JOIN activite.t_lieux_c ON p_facture_ligne_valorise_c.lieu_id = t_lieux_c.oid + JOIN activite.t_rubriques_facturation ON p_facture_ligne_valorise_c.rubrique_facturation_id = t_rubriques_facturation.oid + JOIN activite.t_prestations ON p_facture_ligne_valorise_c.prestation_id = t_prestations.oid + LEFT JOIN activite.t_lpp_c ON p_facture_ligne_valorise_c.lpp_id = t_lpp_c.oid + LEFT JOIN activite.t_ucd_c ON p_facture_ligne_valorise_c.ucd_id = t_ucd_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_facture_solde_tiers_c_1.yaml b/db/schema2/views/v_facture_solde_tiers_c_1.yaml new file mode 100644 index 0000000..8a79c74 --- /dev/null +++ b/db/schema2/views/v_facture_solde_tiers_c_1.yaml @@ -0,0 +1,22 @@ +src: | + SELECT p_facture_solde_tiers_c.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + p_facture_solde_tiers_c.date_comptable, + p_facture_solde_tiers_c.tiers_payant_id, + p_facture_solde_tiers_c.rubrique_comptabilisation_id, + p_facture_solde_tiers_c.prestation_id, + p_facture_solde_tiers_c.montant_comptabilise, + p_facture_solde_tiers_c.montant_regle, + p_facture_solde_tiers_c.montant_regle_0, + p_facture_solde_tiers_c.montant_regle_1, + p_facture_solde_tiers_c.montant_regle_2, + p_facture_solde_tiers_c.montant_comptabilise - p_facture_solde_tiers_c.montant_regle AS montant_solde + FROM activite.p_facture_solde_tiers_c + JOIN activite.p_factures ON p_facture_solde_tiers_c.no_facture = p_factures.no_facture; \ No newline at end of file diff --git a/db/schema2/views/v_facture_solde_tiers_c_r_4.yaml b/db/schema2/views/v_facture_solde_tiers_c_r_4.yaml new file mode 100644 index 0000000..35748ec --- /dev/null +++ b/db/schema2/views/v_facture_solde_tiers_c_r_4.yaml @@ -0,0 +1,148 @@ +dep: + - v_facture_solde_tiers_c_1 + - v_facture_solde_tiers_payant_1 + - v_facture_solde_tiers_prestation_1 + - v_facture_solde_tiers_rubrique_1 + - v_sejours_1 +src: | + SELECT v_facture_solde_tiers_c_1.date_comptable AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_facture_solde_tiers_c_1.no_facture, + v_facture_solde_tiers_c_1.facture_id, + v_facture_solde_tiers_c_1.date_facture, + v_facture_solde_tiers_c_1.date_vente, + v_facture_solde_tiers_c_1.date_comptable, + v_facture_solde_tiers_payant_1.type_tiers_payant_id, + v_facture_solde_tiers_payant_1.type_tiers_payant_code, + v_facture_solde_tiers_payant_1.type_tiers_payant_texte, + v_facture_solde_tiers_c_1.tiers_payant_id, + v_facture_solde_tiers_payant_1.tiers_payant_code, + v_facture_solde_tiers_payant_1.tiers_payant_texte, + v_facture_solde_tiers_c_1.rubrique_comptabilisation_id, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_code, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_texte, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_section_id, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_section_code, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_section_texte, + v_facture_solde_tiers_c_1.prestation_id, + v_facture_solde_tiers_prestation_1.prestation_code, + v_facture_solde_tiers_prestation_1.prestation_texte, + v_facture_solde_tiers_c_1.montant_comptabilise, + v_facture_solde_tiers_c_1.montant_regle, + v_facture_solde_tiers_c_1.montant_comptabilise - v_facture_solde_tiers_c_1.montant_regle AS montant_solde + FROM activite.v_facture_solde_tiers_c_1 + JOIN activite.v_sejours_1 ON v_facture_solde_tiers_c_1.no_sejour = v_sejours_1.no_sejour + JOIN activite.v_facture_solde_tiers_payant_1 ON v_facture_solde_tiers_payant_1.oid = v_facture_solde_tiers_c_1.tiers_payant_id + JOIN activite.v_facture_solde_tiers_prestation_1 ON v_facture_solde_tiers_prestation_1.oid = v_facture_solde_tiers_c_1.prestation_id + JOIN activite.v_facture_solde_tiers_rubrique_1 ON v_facture_solde_tiers_rubrique_1.oid = v_facture_solde_tiers_c_1.rubrique_comptabilisation_id; \ No newline at end of file diff --git a/db/schema2/views/v_facture_solde_tiers_h_1.yaml b/db/schema2/views/v_facture_solde_tiers_h_1.yaml new file mode 100644 index 0000000..b557411 --- /dev/null +++ b/db/schema2/views/v_facture_solde_tiers_h_1.yaml @@ -0,0 +1,22 @@ +src: | + SELECT p_facture_solde_tiers_h.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + p_facture_solde_tiers_h.date_comptable, + p_facture_solde_tiers_h.tiers_payant_id, + p_facture_solde_tiers_h.rubrique_comptabilisation_id, + p_facture_solde_tiers_h.prestation_id, + p_facture_solde_tiers_h.montant_comptabilise, + p_facture_solde_tiers_h.montant_regle, + p_facture_solde_tiers_h.montant_regle_0, + p_facture_solde_tiers_h.montant_regle_1, + p_facture_solde_tiers_h.montant_regle_2, + p_facture_solde_tiers_h.montant_comptabilise - p_facture_solde_tiers_h.montant_regle AS montant_solde + FROM activite.p_facture_solde_tiers_h + JOIN activite.p_factures ON p_facture_solde_tiers_h.no_facture = p_factures.no_facture; \ No newline at end of file diff --git a/db/schema2/views/v_facture_solde_tiers_h_r_4.yaml b/db/schema2/views/v_facture_solde_tiers_h_r_4.yaml new file mode 100644 index 0000000..817f5d6 --- /dev/null +++ b/db/schema2/views/v_facture_solde_tiers_h_r_4.yaml @@ -0,0 +1,148 @@ +dep: + - v_facture_solde_tiers_h_1 + - v_facture_solde_tiers_payant_1 + - v_facture_solde_tiers_prestation_1 + - v_facture_solde_tiers_rubrique_1 + - v_sejours_1 +src: | + SELECT v_facture_solde_tiers_h_1.date_comptable AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_facture_solde_tiers_h_1.no_facture, + v_facture_solde_tiers_h_1.facture_id, + v_facture_solde_tiers_h_1.date_facture, + v_facture_solde_tiers_h_1.date_vente, + v_facture_solde_tiers_h_1.date_comptable, + v_facture_solde_tiers_payant_1.type_tiers_payant_id, + v_facture_solde_tiers_payant_1.type_tiers_payant_code, + v_facture_solde_tiers_payant_1.type_tiers_payant_texte, + v_facture_solde_tiers_h_1.tiers_payant_id, + v_facture_solde_tiers_payant_1.tiers_payant_code, + v_facture_solde_tiers_payant_1.tiers_payant_texte, + v_facture_solde_tiers_h_1.rubrique_comptabilisation_id, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_code, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_texte, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_section_id, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_section_code, + v_facture_solde_tiers_rubrique_1.rubrique_comptabilisation_section_texte, + v_facture_solde_tiers_h_1.prestation_id, + v_facture_solde_tiers_prestation_1.prestation_code, + v_facture_solde_tiers_prestation_1.prestation_texte, + v_facture_solde_tiers_h_1.montant_comptabilise, + v_facture_solde_tiers_h_1.montant_regle, + v_facture_solde_tiers_h_1.montant_comptabilise - v_facture_solde_tiers_h_1.montant_regle AS montant_solde + FROM activite.v_facture_solde_tiers_h_1 + JOIN activite.v_sejours_1 ON v_facture_solde_tiers_h_1.no_sejour = v_sejours_1.no_sejour + JOIN activite.v_facture_solde_tiers_payant_1 ON v_facture_solde_tiers_payant_1.oid = v_facture_solde_tiers_h_1.tiers_payant_id + JOIN activite.v_facture_solde_tiers_prestation_1 ON v_facture_solde_tiers_prestation_1.oid = v_facture_solde_tiers_h_1.prestation_id + JOIN activite.v_facture_solde_tiers_rubrique_1 ON v_facture_solde_tiers_rubrique_1.oid = v_facture_solde_tiers_h_1.rubrique_comptabilisation_id; \ No newline at end of file diff --git a/db/schema2/views/v_facture_solde_tiers_payant_1.yaml b/db/schema2/views/v_facture_solde_tiers_payant_1.yaml new file mode 100644 index 0000000..5812654 --- /dev/null +++ b/db/schema2/views/v_facture_solde_tiers_payant_1.yaml @@ -0,0 +1,14 @@ +src: | + SELECT t_tiers_payant.oid, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte + FROM activite.t_tiers_payant; \ No newline at end of file diff --git a/db/schema2/views/v_facture_solde_tiers_prestation_1.yaml b/db/schema2/views/v_facture_solde_tiers_prestation_1.yaml new file mode 100644 index 0000000..3a6a9fd --- /dev/null +++ b/db/schema2/views/v_facture_solde_tiers_prestation_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_prestations.oid, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte + FROM activite.t_prestations; \ No newline at end of file diff --git a/db/schema2/views/v_facture_solde_tiers_rubrique_1.yaml b/db/schema2/views/v_facture_solde_tiers_rubrique_1.yaml new file mode 100644 index 0000000..f471efa --- /dev/null +++ b/db/schema2/views/v_facture_solde_tiers_rubrique_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_rubriques_facturation.oid, + t_rubriques_facturation.code AS rubrique_comptabilisation_code, + t_rubriques_facturation.texte_court AS rubrique_comptabilisation_texte, + t_rubriques_facturation.section_id AS rubrique_comptabilisation_section_id, + t_rubriques_facturation.section_code AS rubrique_comptabilisation_section_code, + t_rubriques_facturation.section_texte AS rubrique_comptabilisation_section_texte + FROM activite.t_rubriques_facturation; \ No newline at end of file diff --git a/db/schema2/views/v_factures_1.yaml b/db/schema2/views/v_factures_1.yaml new file mode 100644 index 0000000..7ab9d65 --- /dev/null +++ b/db/schema2/views/v_factures_1.yaml @@ -0,0 +1,81 @@ +src: | + SELECT p_factures.finess, + p_factures.no_sejour, + p_factures.sejour_id, + p_factures.no_facture, + p_factures.oid AS facture_id, + p_factures.date_debut, + p_factures.facture_reference_id, + p_factures.no_facture_reference, + p_factures.date_fin, + p_factures.type_facture, + p_factures.code_facture, + p_factures.date_facture, + p_factures.code_vente, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.date_solde, + p_factures.montant_facture_c, + p_factures.montant_facture_h, + p_factures.montant_regle_c, + p_factures.montant_regle_h, + p_factures.delai_facture, + p_factures.delai_solde, + p_factures.date_expedition, + p_factures.delai_expedition, + p_factures.tiers_payant_1_id, + p_factures.tiers_payant_2_id, + p_factures.tiers_payant_22_id, + p_factures.tiers_payant_0_id, + p_factures.date_solde_0_c, + p_factures.date_solde_0_h, + p_factures.date_solde_1_c, + p_factures.date_solde_1_h, + p_factures.date_solde_2_c, + p_factures.date_solde_2_h, + p_factures.date_solde_22_c, + p_factures.date_solde_22_h, + p_factures.date_expedition_0, + p_factures.date_expedition_1, + p_factures.date_expedition_2, + p_factures.date_expedition_22, + p_factures.code_expedie_0, + p_factures.code_expedie_1, + p_factures.code_expedie_2, + p_factures.code_expedie_22, + p_factures.no_bordereau_0, + p_factures.no_bordereau_1, + p_factures.no_bordereau_2, + p_factures.no_bordereau_22, + p_factures.montant_facture_0_c, + p_factures.montant_facture_0_h, + p_factures.montant_facture_1_c, + p_factures.montant_facture_1_h, + p_factures.montant_facture_2_c, + p_factures.montant_facture_2_h, + p_factures.montant_facture_22_c, + p_factures.montant_facture_22_h, + p_factures.montant_regle_0_c, + p_factures.montant_regle_0_h, + p_factures.montant_regle_1_c, + p_factures.montant_regle_1_h, + p_factures.montant_regle_2_c, + p_factures.montant_regle_2_h, + p_factures.montant_regle_22_c, + p_factures.montant_regle_22_h, + p_factures.delai_expedition_0, + p_factures.delai_expedition_1, + p_factures.delai_expedition_2, + p_factures.delai_expedition_22, + p_factures.delai_solde_0_c, + p_factures.delai_solde_0_h, + p_factures.delai_solde_1_c, + p_factures.delai_solde_1_h, + p_factures.delai_solde_2_c, + p_factures.delai_solde_2_h, + p_factures.delai_solde_22_c, + p_factures.delai_solde_22_h, + p_factures.ghs_id, + p_factures.particularite_t2a, + p_factures.code_cloture + FROM activite.p_factures; \ No newline at end of file diff --git a/db/schema2/views/v_factures_2.yaml b/db/schema2/views/v_factures_2.yaml new file mode 100644 index 0000000..6db65b7 --- /dev/null +++ b/db/schema2/views/v_factures_2.yaml @@ -0,0 +1,535 @@ +src: | + SELECT p_factures.finess, + p_factures.no_sejour, + p_factures.sejour_id, + p_factures.no_facture, + p_factures.oid AS facture_id, + p_factures.no_facture_reference, + p_factures.facture_reference_id, + p_factures_references.date_debut, + p_factures_references.date_fin, + p_factures.type_facture, + p_factures.code_facture, + p_factures.date_facture, + CASE + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN p_factures_references.date_facture - p_factures_references.date_fin + ELSE 0 + END AS delai_facture, + CASE + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_factures.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + p_factures.code_vente, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.ghs_id, + p_factures.particularite_t2a, + p_factures.code_cloture, + p_factures.code_cp_demandee, + p_factures.date_encours, + p_factures.ghs_bebe1_id, + p_factures.ghs_bebe2_id, + p_factures.ghs_bebe3_id, + 1 AS nb_factures, + CASE + WHEN p_factures.type_facture = '0'::bpchar THEN 0 + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + ELSE 1 + END AS nb_factures_regularisation, + p_factures.nb_rejets AS nb_factures_rejet, + t_types_tiers_payant_0.code AS type_tiers_payant_0_code, + t_types_tiers_payant_0.texte AS type_tiers_payant_0_texte, + t_tiers_payant_0.oid AS tiers_payant_0_id, + t_tiers_payant_0.code AS tiers_payant_0_code, + t_tiers_payant_0.texte_court AS tiers_payant_0_texte, + t_types_tiers_payant_1.code AS type_tiers_payant_1_code, + t_types_tiers_payant_1.texte AS type_tiers_payant_1_texte, + t_tiers_payant_1.oid AS tiers_payant_1_id, + t_tiers_payant_1.code AS tiers_payant_1_code, + t_tiers_payant_1.texte_court AS tiers_payant_1_texte, + t_types_tiers_payant_2.code AS type_tiers_payant_2_code, + t_types_tiers_payant_2.texte AS type_tiers_payant_2_texte, + t_tiers_payant_2.oid AS tiers_payant_2_id, + t_tiers_payant_2.code AS tiers_payant_2_code, + t_tiers_payant_2.texte_court AS tiers_payant_2_texte, + t_types_tiers_payant_22.code AS type_tiers_payant_22_code, + t_types_tiers_payant_22.texte AS type_tiers_payant_22_texte, + t_tiers_payant_22.oid AS tiers_payant_22_id, + t_tiers_payant_22.code AS tiers_payant_22_code, + t_tiers_payant_22.texte_court AS tiers_payant_22_texte, + p_factures.montant_facture_c + p_factures.montant_facture_h AS montant_facture, + p_factures.montant_facture_c, + p_factures.montant_facture_h, + p_factures.montant_facture_0_c + p_factures.montant_facture_0_c AS montant_facture_0, + p_factures.montant_facture_0_c, + p_factures.montant_facture_0_h, + p_factures.montant_facture_1_c + p_factures.montant_facture_1_c AS montant_facture_1, + p_factures.montant_facture_1_c, + p_factures.montant_facture_1_h, + p_factures.montant_facture_2_c + p_factures.montant_facture_2_c AS montant_facture_2, + p_factures.montant_facture_2_c, + p_factures.montant_facture_2_h, + p_factures.montant_facture_22_c + p_factures.montant_facture_22_c AS montant_facture_22, + p_factures.montant_facture_22_c, + p_factures.montant_facture_22_h, + p_factures.montant_comptabilise_c + p_factures.montant_comptabilise_h AS montant_comptabilise, + p_factures.montant_comptabilise_c, + p_factures.montant_comptabilise_h, + p_factures.montant_comptabilise_0_c + p_factures.montant_comptabilise_0_c AS montant_comptabilise_0, + p_factures.montant_comptabilise_0_c, + p_factures.montant_comptabilise_0_h, + p_factures.montant_comptabilise_1_c + p_factures.montant_comptabilise_1_c AS montant_comptabilise_1, + p_factures.montant_comptabilise_1_c, + p_factures.montant_comptabilise_1_h, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_2_c AS montant_comptabilise_2, + p_factures.montant_comptabilise_2_c, + p_factures.montant_comptabilise_2_h, + p_factures.montant_comptabilise_22_c + p_factures.montant_comptabilise_22_c AS montant_comptabilise_22, + p_factures.montant_comptabilise_22_c, + p_factures.montant_comptabilise_22_h, + p_factures.montant_encours_c + p_factures.montant_encours_h AS montant_encours, + p_factures.montant_encours_c, + p_factures.montant_encours_h, + p_factures.montant_encours_0_c + p_factures.montant_encours_0_c AS montant_encours_0, + p_factures.montant_encours_0_c, + p_factures.montant_encours_0_h, + p_factures.montant_encours_1_c + p_factures.montant_encours_1_c AS montant_encours_1, + p_factures.montant_encours_1_c, + p_factures.montant_encours_1_h, + p_factures.montant_encours_2_c + p_factures.montant_encours_2_c AS montant_encours_2, + p_factures.montant_encours_2_c, + p_factures.montant_encours_2_h, + p_factures.montant_encours_22_c + p_factures.montant_encours_22_c AS montant_encours_22, + p_factures.montant_encours_22_c, + p_factures.montant_encours_22_h, + p_factures.montant_regle_c + p_factures.montant_regle_h AS montant_regle, + p_factures.montant_regle_c, + p_factures.montant_regle_h, + p_factures.montant_regle_0_c + p_factures.montant_regle_0_c AS montant_regle_0, + p_factures.montant_regle_0_c, + p_factures.montant_regle_0_h, + p_factures.montant_regle_1_c + p_factures.montant_regle_1_c AS montant_regle_1, + p_factures.montant_regle_1_c, + p_factures.montant_regle_1_h, + p_factures.montant_regle_2_c + p_factures.montant_regle_2_c AS montant_regle_2, + p_factures.montant_regle_2_c, + p_factures.montant_regle_2_h, + p_factures.montant_regle_22_c + p_factures.montant_regle_22_c AS montant_regle_22, + p_factures.montant_regle_22_c, + p_factures.montant_regle_22_h, + p_factures.montant_regle_c + p_factures.montant_regle_h - p_factures.montant_comptabilise_c - p_factures.montant_comptabilise_h AS montant_solde, + p_factures.montant_regle_c - p_factures.montant_comptabilise_c AS montant_solde_c, + p_factures.montant_regle_h - p_factures.montant_comptabilise_h AS montant_solde_h, + p_factures.montant_regle_0_c + p_factures.montant_regle_0_c - p_factures.montant_comptabilise_0_c - p_factures.montant_comptabilise_0_h AS montant_solde_0, + p_factures.montant_regle_0_c - p_factures.montant_comptabilise_0_c AS montant_solde_0_c, + p_factures.montant_regle_0_h - p_factures.montant_comptabilise_0_h AS montant_solde_0_h, + p_factures.montant_regle_1_c + p_factures.montant_regle_1_c - p_factures.montant_comptabilise_1_c - p_factures.montant_comptabilise_1_h AS montant_solde_1, + p_factures.montant_regle_1_c - p_factures.montant_comptabilise_1_c AS montant_solde_1_c, + p_factures.montant_regle_1_h - p_factures.montant_comptabilise_1_h AS montant_solde_1_h, + p_factures.montant_regle_2_c + p_factures.montant_regle_2_c - p_factures.montant_comptabilise_2_c - p_factures.montant_comptabilise_2_h AS montant_solde_2, + p_factures.montant_regle_2_c - p_factures.montant_comptabilise_2_c AS montant_solde_2_c, + p_factures.montant_regle_2_h - p_factures.montant_comptabilise_2_h AS montant_solde_2_h, + p_factures.montant_regle_22_c + p_factures.montant_regle_22_c - p_factures.montant_comptabilise_22_c - p_factures.montant_comptabilise_22_h AS montant_solde_22, + p_factures.montant_regle_22_c - p_factures.montant_comptabilise_22_c AS montant_solde_22_c, + p_factures.montant_regle_22_h - p_factures.montant_comptabilise_22_h AS montant_solde_22_h, + p_factures.code_expedie_0, + p_factures.code_expedie_1, + p_factures.code_expedie_2, + p_factures.code_expedie_22, + p_factures.date_expedition_0, + p_factures.date_expedition_1, + p_factures.date_expedition_2, + p_factures.date_expedition_22, + p_factures.no_bordereau_0, + p_factures.no_bordereau_1, + p_factures.no_bordereau_2, + p_factures.no_bordereau_22, + CASE + WHEN p_factures_references.date_expedition <> '2099-12-31'::date AND p_factures_references.date_expedition > p_factures_references.date_fin THEN (p_factures_references.date_expedition - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition, + CASE + WHEN p_factures_references.date_expedition <> '2099-12-31'::date AND p_factures_references.date_expedition > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition, + CASE + WHEN p_factures_references.date_expedition_0 <> '2099-12-31'::date AND p_factures_references.date_expedition_0 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_0 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition_0, + CASE + WHEN p_factures_references.date_expedition_0 <> '2099-12-31'::date AND p_factures_references.date_expedition_0 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition_0, + CASE + WHEN p_factures_references.date_expedition_1 <> '2099-12-31'::date AND p_factures_references.date_expedition_1 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_1 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition_1, + CASE + WHEN p_factures_references.date_expedition_1 <> '2099-12-31'::date AND p_factures_references.date_expedition_1 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition_1, + CASE + WHEN p_factures_references.date_expedition_2 <> '2099-12-31'::date AND p_factures_references.date_expedition_2 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_2 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition_2, + CASE + WHEN p_factures_references.date_expedition_2 <> '2099-12-31'::date AND p_factures_references.date_expedition_2 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition_2, + CASE + WHEN p_factures_references.date_expedition_22 <> '2099-12-31'::date AND p_factures_references.date_expedition_22 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_22 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition_22, + CASE + WHEN p_factures_references.date_expedition_22 <> '2099-12-31'::date AND p_factures_references.date_expedition_22 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition_22, + CASE + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND (p_factures.montant_facture_1_c <> 0::numeric AND p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c OR p_factures.montant_facture_1_h <> 0::numeric AND p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h) THEN 1 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_c <> 0::numeric AND p_factures.montant_comptabilise_2_c <> p_factures.montant_regle_2_c OR p_factures.montant_facture_2_h <> 0::numeric AND p_factures.montant_comptabilise_2_h <> p_factures.montant_regle_2_h) THEN 1 + WHEN (p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL) AND (p_factures.montant_facture_22_c <> 0::numeric AND p_factures.montant_comptabilise_22_c <> p_factures.montant_regle_22_c OR p_factures.montant_facture_22_h <> 0::numeric AND p_factures.montant_comptabilise_22_h <> p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_c <> 0::numeric AND p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND p_factures.montant_facture_2_c <> 0::numeric AND p_factures.montant_comptabilise_2_c <> p_factures.montant_regle_2_c THEN 1 + WHEN (p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL) AND p_factures.montant_facture_22_c <> 0::numeric AND p_factures.montant_comptabilise_22_c <> p_factures.montant_regle_22_c THEN 1 + ELSE 0 + END AS nb_non_expedie_c, + CASE + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_h <> 0::numeric AND p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND p_factures.montant_facture_2_h <> 0::numeric AND p_factures.montant_comptabilise_2_h <> p_factures.montant_regle_2_h THEN 1 + WHEN (p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL) AND p_factures.montant_facture_22_h <> 0::numeric AND p_factures.montant_comptabilise_22_h <> p_factures.montant_regle_22_h THEN 1 + ELSE 0 + END AS nb_non_expedie_h, + 0 AS nb_non_expedie_0, + 0 AS nb_non_expedie_0_c, + 0 AS nb_non_expedie_0_h, + CASE + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND (p_factures.montant_facture_1_c <> 0::numeric OR p_factures.montant_facture_1_h <> 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie_1, + CASE + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_c <> 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_1_c, + CASE + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_h <> 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_1_h, + CASE + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_c <> 0::numeric OR p_factures.montant_facture_2_h <> 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie_2, + CASE + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND p_factures.montant_facture_2_c <> 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_2_c, + CASE + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND p_factures.montant_facture_2_h <> 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_2_h, + CASE + WHEN (p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL) AND (p_factures.montant_facture_22_c <> 0::numeric OR p_factures.montant_facture_22_h <> 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie_22, + CASE + WHEN (p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL) AND p_factures.montant_facture_22_c <> 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_22_c, + CASE + WHEN (p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL) AND p_factures.montant_facture_22_h <> 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_22_h, + CASE + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL THEN p_factures.montant_comptabilise_2_c - p_factures.montant_regle_2_c + p_factures.montant_comptabilise_2_h - p_factures.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL THEN p_factures.montant_comptabilise_22_c - p_factures.montant_regle_22_c + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + ELSE 0::numeric + END + + CASE + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL THEN p_factures.montant_comptabilise_2_c - p_factures.montant_regle_2_c + ELSE 0::numeric + END + + CASE + WHEN p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL THEN p_factures.montant_comptabilise_22_c - p_factures.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_c, + CASE + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL THEN p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL THEN p_factures.montant_comptabilise_2_h - p_factures.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL THEN p_factures.montant_comptabilise_22_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_h, + 0 AS montant_non_expedie_0, + 0 AS montant_non_expedie_0_c, + 0 AS montant_non_expedie_0_h, + CASE + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1, + CASE + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + ELSE 0::numeric + END AS montant_non_expedie_1_c, + CASE + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL THEN p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1_h, + CASE + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL THEN p_factures.montant_comptabilise_2_c - p_factures.montant_regle_2_c + p_factures.montant_comptabilise_2_h - p_factures.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie_2, + CASE + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL THEN p_factures.montant_comptabilise_2_c - p_factures.montant_regle_2_c + ELSE 0::numeric + END AS montant_non_expedie_2_c, + CASE + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL THEN p_factures.montant_comptabilise_2_h - p_factures.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie_2_h, + CASE + WHEN p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL THEN p_factures.montant_comptabilise_22_c - p_factures.montant_regle_22_c + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_22, + CASE + WHEN p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL THEN p_factures.montant_comptabilise_22_c - p_factures.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_22_c, + CASE + WHEN p_factures.code_expedie_22 <> '1'::bpchar OR p_factures.code_expedie_22 IS NULL THEN p_factures.montant_comptabilise_22_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_22_h, + p_factures.date_solde_reference, + CASE + WHEN p_factures_references.date_solde_reference <> '2099-12-31'::date AND p_factures_references.date_solde_reference > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference, + CASE + WHEN p_factures_references.date_solde_reference <> '2099-12-31'::date AND p_factures_references.date_solde_reference > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference, + p_factures.date_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_c, + p_factures.date_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_h, + GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) AS date_solde_reference_0, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0, + p_factures.date_solde_reference_0_c, + CASE + WHEN p_factures_references.date_solde_reference_0_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_0_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0_c, + CASE + WHEN p_factures_references.date_solde_reference_0_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0_c, + p_factures.date_solde_reference_0_h, + CASE + WHEN p_factures_references.date_solde_reference_0_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_0_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0_h, + CASE + WHEN p_factures_references.date_solde_reference_0_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0_h, + GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) AS date_solde_reference_1, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1, + p_factures.date_solde_reference_1_c, + CASE + WHEN p_factures_references.date_solde_reference_1_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_1_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1_c, + CASE + WHEN p_factures_references.date_solde_reference_1_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1_c, + p_factures.date_solde_reference_1_h, + CASE + WHEN p_factures_references.date_solde_reference_1_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_1_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1_h, + CASE + WHEN p_factures_references.date_solde_reference_1_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1_h, + GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) AS date_solde_reference_2, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2, + p_factures.date_solde_reference_2_c, + CASE + WHEN p_factures_references.date_solde_reference_2_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_2_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2_c, + CASE + WHEN p_factures_references.date_solde_reference_2_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2_c, + p_factures.date_solde_reference_2_h, + CASE + WHEN p_factures_references.date_solde_reference_2_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_2_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2_h, + CASE + WHEN p_factures_references.date_solde_reference_2_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2_h, + GREATEST(p_factures_references.date_solde_reference_22_c, p_factures_references.date_solde_reference_22_h) AS date_solde_reference_22, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_22_c, p_factures_references.date_solde_reference_22_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_22_c, p_factures_references.date_solde_reference_22_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_22_c, p_factures_references.date_solde_reference_22_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_22, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_22_c, p_factures_references.date_solde_reference_22_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_22_c, p_factures_references.date_solde_reference_22_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_22, + p_factures.date_solde_reference_22_c, + CASE + WHEN p_factures_references.date_solde_reference_22_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_22_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_22_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_22_c, + CASE + WHEN p_factures_references.date_solde_reference_22_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_22_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_22_c, + p_factures.date_solde_reference_22_h, + CASE + WHEN p_factures_references.date_solde_reference_22_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_22_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_22_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_22_h, + CASE + WHEN p_factures_references.date_solde_reference_22_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_22_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_22_h, + CASE + WHEN p_factures.montant_comptabilise_c <> p_factures.montant_regle_c THEN 1 + WHEN p_factures.montant_comptabilise_h <> p_factures.montant_regle_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_factures.montant_comptabilise_c <> p_factures.montant_regle_c THEN 1 + ELSE 0 + END AS nb_non_solde_c, + CASE + WHEN p_factures.montant_comptabilise_h <> p_factures.montant_regle_h THEN 1 + ELSE 0 + END AS nb_non_solde_h, + CASE + WHEN p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + WHEN p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + ELSE 0 + END AS nb_non_solde_0, + CASE + WHEN p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + ELSE 0 + END AS nb_non_solde_0_c, + CASE + WHEN p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + ELSE 0 + END AS nb_non_solde_0_h, + CASE + WHEN p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + WHEN p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_solde_1, + CASE + WHEN p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + ELSE 0 + END AS nb_non_solde_1_c, + CASE + WHEN p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_solde_1_h, + CASE + WHEN p_factures.montant_comptabilise_2_c <> p_factures.montant_regle_2_c THEN 1 + WHEN p_factures.montant_comptabilise_2_h <> p_factures.montant_regle_2_h THEN 1 + ELSE 0 + END AS nb_non_solde_2, + CASE + WHEN p_factures.montant_comptabilise_2_c <> p_factures.montant_regle_2_c THEN 1 + ELSE 0 + END AS nb_non_solde_2_c, + CASE + WHEN p_factures.montant_comptabilise_2_h <> p_factures.montant_regle_2_h THEN 1 + ELSE 0 + END AS nb_non_solde_2_h, + CASE + WHEN p_factures.montant_comptabilise_22_c <> p_factures.montant_regle_22_c THEN 1 + WHEN p_factures.montant_comptabilise_22_h <> p_factures.montant_regle_22_h THEN 1 + ELSE 0 + END AS nb_non_solde_22, + CASE + WHEN p_factures.montant_comptabilise_22_c <> p_factures.montant_regle_22_c THEN 1 + ELSE 0 + END AS nb_non_solde_22_c, + CASE + WHEN p_factures.montant_comptabilise_22_h <> p_factures.montant_regle_22_h THEN 1 + ELSE 0 + END AS nb_non_solde_22_h, + p_factures.montant_comptabilise_c - p_factures.montant_regle_c + p_factures.montant_comptabilise_h - p_factures.montant_regle_h AS montant_non_solde, + p_factures.montant_comptabilise_c - p_factures.montant_regle_c AS montant_non_solde_c, + p_factures.montant_comptabilise_h - p_factures.montant_regle_h AS montant_non_solde_h + FROM activite.p_factures + JOIN activite.p_factures p_factures_references ON p_factures.no_facture_reference = p_factures_references.no_facture + JOIN activite.t_tiers_payant t_tiers_payant_0 ON p_factures.tiers_payant_0_id = t_tiers_payant_0.oid + JOIN activite.t_tiers_payant t_tiers_payant_1 ON p_factures.tiers_payant_1_id = t_tiers_payant_1.oid + JOIN activite.t_tiers_payant t_tiers_payant_2 ON p_factures.tiers_payant_2_id = t_tiers_payant_2.oid + JOIN activite.t_tiers_payant t_tiers_payant_22 ON p_factures.tiers_payant_22_id = t_tiers_payant_22.oid + JOIN activite.t_types_tiers_payant t_types_tiers_payant_0 ON t_tiers_payant_0.type_tiers_payant = t_types_tiers_payant_0.code + JOIN activite.t_types_tiers_payant t_types_tiers_payant_1 ON t_tiers_payant_1.type_tiers_payant = t_types_tiers_payant_1.code + JOIN activite.t_types_tiers_payant t_types_tiers_payant_2 ON t_tiers_payant_2.type_tiers_payant = t_types_tiers_payant_2.code + JOIN activite.t_types_tiers_payant t_types_tiers_payant_22 ON t_tiers_payant_22.type_tiers_payant = t_types_tiers_payant_22.code; \ No newline at end of file diff --git a/db/schema2/views/v_factures_4.yaml b/db/schema2/views/v_factures_4.yaml new file mode 100644 index 0000000..f30184f --- /dev/null +++ b/db/schema2/views/v_factures_4.yaml @@ -0,0 +1,518 @@ +src: | + SELECT p_factures.finess, + p_factures.sejour_id, + p_factures.no_sejour, + p_factures.oid AS facture_id, + p_factures.no_facture, + p_factures.facture_reference_id, + p_factures.no_facture_reference, + p_factures_references.date_debut, + p_factures_references.date_fin, + p_factures.type_facture, + p_factures.code_facture, + p_factures.date_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN p_factures_references.date_facture - p_factures_references.date_fin + ELSE 0 + END AS delai_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 1 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + p_factures.code_vente, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.ghs_id, + p_factures.particularite_t2a, + p_factures.code_cloture, + p_factures.code_cp_demandee, + p_factures.date_encours, + - 1::bigint AS type_tiers_payant_id, + ''::text AS type_tiers_payant_code, + ''::text AS type_tiers_payant_texte, + 0 AS tiers_payant_id, + ''::text AS tiers_payant_code, + ''::text AS tiers_payant_texte, + 0 AS tiers_payant_grand_regime_id, + ''::text AS tiers_payant_grand_regime_code, + ''::text AS tiers_payant_grand_regime_texte, + 1 AS nb_factures, + CASE + WHEN p_factures.type_facture = '0'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + ELSE 1 + END AS nb_factures_regularisation, + p_factures.nb_rejets AS nb_factures_rejet, + p_factures.montant_facture_c + p_factures.montant_facture_h AS montant_facture, + p_factures.montant_facture_c, + p_factures.montant_facture_h, + p_factures.montant_facture_0_c + p_factures.montant_facture_0_h AS montant_facture_0, + p_factures.montant_facture_0_c, + p_factures.montant_facture_0_h, + p_factures.montant_facture_1_c + p_factures.montant_facture_1_h AS montant_facture_1, + p_factures.montant_facture_1_c, + p_factures.montant_facture_1_h, + p_factures.montant_facture_2_c + p_factures.montant_facture_22_c + p_factures.montant_facture_2_h + p_factures.montant_facture_22_h AS montant_facture_2, + p_factures.montant_facture_2_c + p_factures.montant_facture_22_c AS montant_facture_2_c, + p_factures.montant_facture_2_h + p_factures.montant_facture_22_h AS montant_facture_2_h, + p_factures.montant_comptabilise_c + p_factures.montant_comptabilise_h AS montant_comptabilise, + p_factures.montant_comptabilise_c, + p_factures.montant_comptabilise_h, + p_factures.montant_comptabilise_0_c + p_factures.montant_comptabilise_0_h AS montant_comptabilise_0, + p_factures.montant_comptabilise_0_c, + p_factures.montant_comptabilise_0_h, + p_factures.montant_comptabilise_1_c + p_factures.montant_comptabilise_1_h AS montant_comptabilise_1, + p_factures.montant_comptabilise_1_c, + p_factures.montant_comptabilise_1_h, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h AS montant_comptabilise_2, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c AS montant_comptabilise_2_c, + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h AS montant_comptabilise_2_h, + p_factures.montant_encours_c + p_factures.montant_encours_h AS montant_encours, + p_factures.montant_encours_c, + p_factures.montant_encours_h, + p_factures.montant_encours_0_c + p_factures.montant_encours_0_h AS montant_encours_0, + p_factures.montant_encours_0_c, + p_factures.montant_encours_0_h, + p_factures.montant_encours_1_c + p_factures.montant_encours_1_h AS montant_encours_1, + p_factures.montant_encours_1_c, + p_factures.montant_encours_1_h, + p_factures.montant_encours_2_c + p_factures.montant_encours_2_h AS montant_encours_2, + p_factures.montant_encours_2_c, + p_factures.montant_encours_2_h, + p_factures.montant_regle_c + p_factures.montant_regle_h AS montant_regle, + p_factures.montant_regle_c, + p_factures.montant_regle_h, + p_factures.montant_regle_0_c + p_factures.montant_regle_0_h AS montant_regle_0, + p_factures.montant_regle_0_c, + p_factures.montant_regle_0_h, + p_factures.montant_regle_1_c + p_factures.montant_regle_1_h AS montant_regle_1, + p_factures.montant_regle_1_c, + p_factures.montant_regle_1_h, + p_factures.montant_regle_2_c + p_factures.montant_regle_22_c + p_factures.montant_regle_2_h + p_factures.montant_regle_22_h AS montant_regle_2, + p_factures.montant_regle_2_c + p_factures.montant_regle_22_c AS montant_regle_2_c, + p_factures.montant_regle_2_h + p_factures.montant_regle_22_h AS montant_regle_2_h, + p_factures.montant_comptabilise_c + p_factures.montant_comptabilise_h - p_factures.montant_regle_c - p_factures.montant_regle_h AS montant_solde, + p_factures.montant_comptabilise_c - p_factures.montant_regle_c AS montant_solde_c, + p_factures.montant_comptabilise_h - p_factures.montant_regle_h AS montant_solde_h, + p_factures.montant_comptabilise_0_c + p_factures.montant_comptabilise_0_h - p_factures.montant_regle_0_c - p_factures.montant_regle_0_h AS montant_solde_0, + p_factures.montant_comptabilise_0_c - p_factures.montant_regle_0_c AS montant_solde_0_c, + p_factures.montant_comptabilise_0_h - p_factures.montant_regle_0_h AS montant_solde_0_h, + p_factures.montant_comptabilise_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_c - p_factures.montant_regle_1_h AS montant_solde_1, + p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c AS montant_solde_1_c, + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h AS montant_solde_1_h, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h AS montant_solde_2, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c AS montant_solde_2_c, + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h AS montant_solde_2_h, + ''::text AS code_expedie, + NULL::date AS date_expedition, + ''::text AS no_bordereau, + CASE + WHEN p_factures_references.date_expedition <> '2099-12-31'::date AND p_factures_references.date_expedition > p_factures_references.date_fin THEN (p_factures_references.date_expedition - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition, + CASE + WHEN p_factures_references.date_expedition <> '2099-12-31'::date AND p_factures_references.date_expedition > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition, + 0 AS delai_expedition_0, + 0 AS nb_delai_expedition_0, + CASE + WHEN p_factures_references.date_expedition_1 <> '2099-12-31'::date AND p_factures_references.date_expedition_1 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_1 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition_1, + CASE + WHEN p_factures_references.date_expedition_1 <> '2099-12-31'::date AND p_factures_references.date_expedition_1 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition_1, + CASE + WHEN p_factures_references.date_expedition_2 <> '2099-12-31'::date AND p_factures_references.date_expedition_2 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_1 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition_2, + CASE + WHEN p_factures_references.date_expedition_2 <> '2099-12-31'::date AND p_factures_references.date_expedition_2 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition_2, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c = p_factures.montant_regle_1_c AND p_factures.montant_comptabilise_1_h = p_factures.montant_regle_1_h AND (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) = (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) = (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND (p_factures.montant_facture_1_c > 0::numeric OR p_factures.montant_facture_1_h > 0::numeric) THEN 1 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND ((p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c = p_factures.montant_regle_1_c AND (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) = (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_c > 0::numeric THEN 1 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_h = p_factures.montant_regle_1_h AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) = (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_h <> 0::numeric THEN 1 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) <> 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_h, + 0 AS nb_non_expedie_0, + 0 AS nb_non_expedie_0_c, + 0 AS nb_non_expedie_0_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c = p_factures.montant_regle_1_c AND p_factures.montant_comptabilise_1_h = p_factures.montant_regle_1_h THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND (p_factures.montant_facture_1_c > 0::numeric OR p_factures.montant_facture_1_h > 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie_1, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c = p_factures.montant_regle_1_c THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_c > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_1_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_h = p_factures.montant_regle_1_h THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_h > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_1_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) = (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) = (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND ((p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie_2, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) = (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_2_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) = (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_2_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND (p_factures.montant_facture_1_c > 0::numeric OR p_factures.montant_facture_1_h > 0::numeric) THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND ((p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric) THEN p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND p_factures.montant_facture_1_c > 0::numeric THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + ELSE 0::numeric + END + + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric THEN p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND p_factures.montant_facture_1_h > 0::numeric THEN p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric THEN p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_h, + 0 AS montant_non_expedie_0, + 0 AS montant_non_expedie_0_c, + 0 AS montant_non_expedie_0_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND (p_factures.montant_facture_1_c > 0::numeric OR p_factures.montant_facture_1_h > 0::numeric) THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND p_factures.montant_facture_1_c > 0::numeric THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + ELSE 0::numeric + END AS montant_non_expedie_1_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND p_factures.montant_facture_1_h > 0::numeric THEN p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND ((p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric) THEN p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_2, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric THEN p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_2_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric THEN p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_2_h, + GREATEST(p_factures_references.date_solde_reference_c, p_factures_references.date_solde_reference_h) AS date_solde_reference, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_c, p_factures_references.date_solde_reference_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_c, p_factures_references.date_solde_reference_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_c, p_factures_references.date_solde_reference_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_c, p_factures_references.date_solde_reference_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_c, p_factures_references.date_solde_reference_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference, + p_factures.date_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_c, + p_factures.date_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_h, + GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) AS date_solde_reference_0, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0, + p_factures.date_solde_reference_0_c, + CASE + WHEN p_factures_references.date_solde_reference_0_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_0_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0_c, + CASE + WHEN p_factures_references.date_solde_reference_0_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0_c, + p_factures.date_solde_reference_0_h, + CASE + WHEN p_factures_references.date_solde_reference_0_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_0_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0_h, + CASE + WHEN p_factures_references.date_solde_reference_0_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0_h, + GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) AS date_solde_reference_1, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1, + p_factures.date_solde_reference_1_c, + CASE + WHEN p_factures_references.date_solde_reference_1_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_1_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1_c, + CASE + WHEN p_factures_references.date_solde_reference_1_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1_c, + p_factures.date_solde_reference_1_h, + CASE + WHEN p_factures_references.date_solde_reference_1_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_1_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1_h, + CASE + WHEN p_factures_references.date_solde_reference_1_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1_h, + GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) AS date_solde_reference_2, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2, + p_factures.date_solde_reference_2_c, + CASE + WHEN p_factures_references.date_solde_reference_2_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_2_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2_c, + CASE + WHEN p_factures_references.date_solde_reference_2_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2_c, + p_factures.date_solde_reference_2_h, + CASE + WHEN p_factures_references.date_solde_reference_2_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_2_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2_h, + CASE + WHEN p_factures_references.date_solde_reference_2_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + WHEN p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + WHEN p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + WHEN p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) <> (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 1 + WHEN (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) <> (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + WHEN p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) <> (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 1 + ELSE 0 + END AS nb_non_solde_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + WHEN p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + WHEN (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) <> (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + WHEN p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + ELSE 0 + END AS nb_non_solde_0, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + ELSE 0 + END AS nb_non_solde_0_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + ELSE 0 + END AS nb_non_solde_0_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + WHEN p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_solde_1, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + ELSE 0 + END AS nb_non_solde_1_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_solde_1_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) <> (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 1 + WHEN (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) <> (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde_2, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) <> (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 1 + ELSE 0 + END AS nb_non_solde_2_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) <> (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde_2_h, + NULL::bigint[] AS tiers_payant_section_id, + NULL::text[] AS tiers_payant_section_code, + NULL::text[] AS tiers_payant_section_texte + FROM activite.p_factures + JOIN activite.p_factures p_factures_references ON p_factures.no_facture_reference = p_factures_references.no_facture + WHERE p_factures.type_facture <> 'P'::bpchar AND p_factures.type_facture <> 'G'::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_factures_4_0.yaml b/db/schema2/views/v_factures_4_0.yaml new file mode 100644 index 0000000..81c1432 --- /dev/null +++ b/db/schema2/views/v_factures_4_0.yaml @@ -0,0 +1,269 @@ +src: | + SELECT p_factures.finess, + p_factures.sejour_id, + p_factures.no_sejour, + p_factures.oid AS facture_id, + p_factures.no_facture, + p_factures.facture_reference_id, + p_factures.no_facture_reference, + p_factures_references.date_debut, + p_factures_references.date_fin, + p_factures.type_facture, + p_factures.code_facture, + p_factures.date_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN p_factures_references.date_facture - p_factures_references.date_fin + ELSE 0 + END AS delai_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 1 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + p_factures.code_vente, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.ghs_id, + p_factures.particularite_t2a, + p_factures.code_cloture, + p_factures.code_cp_demandee, + p_factures.date_encours, + t_types_tiers_payant.code::bigint AS type_tiers_payant_id, + t_types_tiers_payant.code AS type_tiers_payant_code, + t_types_tiers_payant.texte AS type_tiers_payant_texte, + t_tiers_payant.oid AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + 1 AS nb_factures, + CASE + WHEN p_factures.type_facture = '0'::bpchar THEN 0 + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + ELSE 1 + END AS nb_factures_regularisation, + p_factures.nb_rejets AS nb_factures_rejet, + p_factures.montant_facture_0_c + p_factures.montant_facture_0_h AS montant_facture, + p_factures.montant_facture_0_c AS montant_facture_c, + p_factures.montant_facture_0_h AS montant_facture_h, + p_factures.montant_facture_0_c + p_factures.montant_facture_0_h AS montant_facture_0, + p_factures.montant_facture_0_c, + p_factures.montant_facture_0_h, + 0 AS montant_facture_1, + 0 AS montant_facture_1_c, + 0 AS montant_facture_1_h, + 0 AS montant_facture_2, + 0 AS montant_facture_2_c, + 0 AS montant_facture_2_h, + p_factures.montant_comptabilise_0_c + p_factures.montant_comptabilise_0_h AS montant_comptabilise, + p_factures.montant_comptabilise_0_c AS montant_comptabilise_c, + p_factures.montant_comptabilise_0_h AS montant_comptabilise_h, + p_factures.montant_comptabilise_0_c + p_factures.montant_comptabilise_0_h AS montant_comptabilise_0, + p_factures.montant_comptabilise_0_c, + p_factures.montant_comptabilise_0_h, + 0 AS montant_comptabilise_1, + 0 AS montant_comptabilise_1_c, + 0 AS montant_comptabilise_1_h, + 0 AS montant_comptabilise_2, + 0 AS montant_comptabilise_2_c, + 0 AS montant_comptabilise_2_h, + p_factures.montant_encours_0_c + p_factures.montant_encours_0_h AS montant_encours, + p_factures.montant_encours_0_c AS montant_encours_c, + p_factures.montant_encours_0_h AS montant_encours_h, + p_factures.montant_encours_0_c + p_factures.montant_encours_0_h AS montant_encours_0, + p_factures.montant_encours_0_c, + p_factures.montant_encours_0_h, + 0 AS montant_encours_1, + 0 AS montant_encours_1_c, + 0 AS montant_encours_1_h, + 0 AS montant_encours_2, + 0 AS montant_encours_2_c, + 0 AS montant_encours_2_h, + p_factures.montant_regle_0_c + p_factures.montant_regle_0_h AS montant_regle, + p_factures.montant_regle_0_c AS montant_regle_c, + p_factures.montant_regle_0_h AS montant_regle_h, + p_factures.montant_regle_0_c + p_factures.montant_regle_0_h AS montant_regle_0, + p_factures.montant_regle_0_c, + p_factures.montant_regle_0_h, + 0 AS montant_regle_1, + 0 AS montant_regle_1_c, + 0 AS montant_regle_1_h, + 0 AS montant_regle_2, + 0 AS montant_regle_2_c, + 0 AS montant_regle_2_h, + p_factures.montant_comptabilise_0_c + p_factures.montant_comptabilise_0_h - p_factures.montant_regle_0_c - p_factures.montant_regle_0_h AS montant_solde, + p_factures.montant_comptabilise_0_c - p_factures.montant_regle_0_c AS montant_solde_c, + p_factures.montant_comptabilise_0_h - p_factures.montant_regle_0_h AS montant_solde_h, + p_factures.montant_comptabilise_0_c + p_factures.montant_comptabilise_0_h - p_factures.montant_regle_0_c - p_factures.montant_regle_0_h AS montant_solde_0, + p_factures.montant_comptabilise_0_c - p_factures.montant_regle_0_c AS montant_solde_0_c, + p_factures.montant_comptabilise_0_h - p_factures.montant_regle_0_h AS montant_solde_0_h, + 0 AS montant_solde_1, + 0 AS montant_solde_1_c, + 0 AS montant_solde_1_h, + 0 AS montant_solde_2, + 0 AS montant_solde_2_c, + 0 AS montant_solde_2_h, + p_factures.code_expedie_0 AS code_expedie, + p_factures.date_expedition_0 AS date_expedition, + ''::text AS no_bordereau, + 0 AS delai_expedition, + 0 AS nb_delai_expedition, + 0 AS delai_expedition_0, + 0 AS nb_delai_expedition_0, + 0 AS delai_expedition_1, + 0 AS nb_delai_expedition_1, + 0 AS delai_expedition_2, + 0 AS nb_delai_expedition_2, + 0 AS nb_non_expedie, + 0 AS nb_non_expedie_c, + 0 AS nb_non_expedie_h, + 0 AS nb_non_expedie_0, + 0 AS nb_non_expedie_0_c, + 0 AS nb_non_expedie_0_h, + 0 AS nb_non_expedie_1, + 0 AS nb_non_expedie_1_c, + 0 AS nb_non_expedie_1_h, + 0 AS nb_non_expedie_2, + 0 AS nb_non_expedie_2_c, + 0 AS nb_non_expedie_2_h, + 0 AS montant_non_expedie, + 0 AS montant_non_expedie_c, + 0 AS montant_non_expedie_h, + 0 AS montant_non_expedie_0, + 0 AS montant_non_expedie_0_c, + 0 AS montant_non_expedie_0_h, + 0 AS montant_non_expedie_1, + 0 AS montant_non_expedie_1_c, + 0 AS montant_non_expedie_1_h, + 0 AS montant_non_expedie_2, + 0 AS montant_non_expedie_2_c, + 0 AS montant_non_expedie_2_h, + GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) AS date_solde_reference, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference, + p_factures.date_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_0_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_0_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_0_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_c, + p_factures.date_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_0_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_0_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_0_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_h, + GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) AS date_solde_reference_0, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_0_c, p_factures_references.date_solde_reference_0_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0, + p_factures.date_solde_reference_0_c, + CASE + WHEN p_factures_references.date_solde_reference_0_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_0_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0_c, + CASE + WHEN p_factures_references.date_solde_reference_0_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0_c, + p_factures.date_solde_reference_0_h, + CASE + WHEN p_factures_references.date_solde_reference_0_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_0_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_0_h, + CASE + WHEN p_factures_references.date_solde_reference_0_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_0_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_0_h, + NULL::date AS date_solde_reference_1, + 0 AS delai_solde_reference_1, + 0 AS nb_delai_solde_reference_1, + NULL::date AS date_solde_reference_1_c, + 0 AS delai_solde_reference_1_c, + 0 AS nb_delai_solde_reference_1_c, + NULL::date AS date_solde_reference_1_h, + 0 AS delai_solde_reference_1_h, + 0 AS nb_delai_solde_reference_1_h, + NULL::date AS date_solde_reference_2, + 0 AS delai_solde_reference_2, + 0 AS nb_delai_solde_reference_2, + NULL::date AS date_solde_reference_2_c, + 0 AS delai_solde_reference_2_c, + 0 AS nb_delai_solde_reference_2_c, + NULL::date AS date_solde_reference_2_h, + 0 AS delai_solde_reference_2_h, + 0 AS nb_delai_solde_reference_2_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + ELSE 0 + END AS nb_non_solde_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + ELSE 0 + END AS nb_non_solde_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + ELSE 0 + END AS nb_non_solde_0, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_0_c <> p_factures.montant_regle_0_c THEN 1 + ELSE NULL::integer + END AS nb_non_solde_0_c, + CASE + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_0_h <> p_factures.montant_regle_0_h THEN 1 + ELSE 0 + END AS nb_non_solde_0_h, + 0 AS nb_non_solde_1, + 0 AS nb_non_solde_1_c, + 0 AS nb_non_solde_1_h, + 0 AS nb_non_solde_2, + 0 AS nb_non_solde_2_c, + 0 AS nb_non_solde_2_h, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte + FROM activite.p_factures + JOIN activite.p_factures p_factures_references ON p_factures.no_facture_reference = p_factures_references.no_facture + JOIN activite.t_tiers_payant ON t_tiers_payant.oid = p_factures.tiers_payant_0_id AND t_tiers_payant.oid <> 0 AND (p_factures.montant_encours_0_c <> 0::numeric OR p_factures.montant_facture_0_c <> 0::numeric OR p_factures.montant_facture_0_h <> 0::numeric OR p_factures.montant_regle_0_c <> 0::numeric OR p_factures.montant_regle_0_h <> 0::numeric OR p_factures.montant_facture_1_c = 0::numeric AND p_factures.montant_facture_1_h = 0::numeric AND p_factures.montant_facture_2_c = 0::numeric AND p_factures.montant_facture_2_h = 0::numeric OR p_factures.type_facture = 'E'::bpchar) + JOIN activite.t_types_tiers_payant ON t_tiers_payant.type_tiers_payant = t_types_tiers_payant.code + WHERE p_factures.type_facture <> 'P'::bpchar AND p_factures.type_facture <> 'G'::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_factures_4_1.yaml b/db/schema2/views/v_factures_4_1.yaml new file mode 100644 index 0000000..c17fcbb --- /dev/null +++ b/db/schema2/views/v_factures_4_1.yaml @@ -0,0 +1,372 @@ +src: | + SELECT p_factures.finess, + p_factures.sejour_id, + p_factures.no_sejour, + p_factures.oid AS facture_id, + p_factures.no_facture, + p_factures.facture_reference_id, + p_factures.no_facture_reference, + p_factures_references.date_debut, + p_factures_references.date_fin, + p_factures.type_facture, + p_factures.code_facture, + p_factures.date_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN p_factures_references.date_facture - p_factures_references.date_fin + ELSE 0 + END AS delai_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 1 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + p_factures.code_vente, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.ghs_id, + p_factures.particularite_t2a, + p_factures.code_cloture, + p_factures.code_cp_demandee, + p_factures.date_encours, + t_types_tiers_payant.code::bigint AS type_tiers_payant_id, + t_types_tiers_payant.code AS type_tiers_payant_code, + t_types_tiers_payant.texte AS type_tiers_payant_texte, + t_tiers_payant.oid AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + 1 AS nb_factures, + CASE + WHEN p_factures.type_facture = '0'::bpchar THEN 0 + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + ELSE 1 + END AS nb_factures_regularisation, + p_factures.nb_rejets AS nb_factures_rejet, + p_factures.montant_facture_1_c + p_factures.montant_facture_1_h AS montant_facture, + p_factures.montant_facture_1_c AS montant_facture_c, + p_factures.montant_facture_1_h AS montant_facture_h, + 0 AS montant_facture_0, + 0 AS montant_facture_0_c, + 0 AS montant_facture_0_h, + p_factures.montant_facture_1_c + p_factures.montant_facture_1_h AS montant_facture_1, + p_factures.montant_facture_1_c, + p_factures.montant_facture_1_h, + 0 AS montant_facture_2, + 0 AS montant_facture_2_c, + 0 AS montant_facture_2_h, + p_factures.montant_comptabilise_1_c + p_factures.montant_comptabilise_1_h AS montant_comptabilise, + p_factures.montant_comptabilise_1_c AS montant_comptabilise_c, + p_factures.montant_comptabilise_1_h AS montant_comptabilise_h, + 0 AS montant_comptabilise_0, + 0 AS montant_comptabilise_0_c, + 0 AS montant_comptabilise_0_h, + p_factures.montant_comptabilise_1_c + p_factures.montant_comptabilise_1_h AS montant_comptabilise_1, + p_factures.montant_comptabilise_1_c, + p_factures.montant_comptabilise_1_h, + 0 AS montant_comptabilise_2, + 0 AS montant_comptabilise_2_c, + 0 AS montant_comptabilise_2_h, + p_factures.montant_encours_1_c + p_factures.montant_encours_1_h AS montant_encours, + p_factures.montant_encours_1_c AS montant_encours_c, + p_factures.montant_encours_1_h AS montant_encours_h, + 0 AS montant_encours_0, + 0 AS montant_encours_0_c, + 0 AS montant_encours_0_h, + p_factures.montant_encours_1_c + p_factures.montant_encours_1_h AS montant_encours_1, + p_factures.montant_encours_1_c, + p_factures.montant_encours_1_h, + 0 AS montant_encours_2, + 0 AS montant_encours_2_c, + 0 AS montant_encours_2_h, + p_factures.montant_regle_1_c + p_factures.montant_regle_1_h AS montant_regle, + p_factures.montant_regle_1_c AS montant_regle_c, + p_factures.montant_regle_1_h AS montant_regle_h, + 0 AS montant_regle_0, + 0 AS montant_regle_0_c, + 0 AS montant_regle_0_h, + p_factures.montant_regle_1_c + p_factures.montant_regle_1_h AS montant_regle_1, + p_factures.montant_regle_1_c, + p_factures.montant_regle_1_h, + 0 AS montant_regle_2, + 0 AS montant_regle_2_c, + 0 AS montant_regle_2_h, + p_factures.montant_comptabilise_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_c - p_factures.montant_regle_1_h AS montant_solde, + p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c AS montant_solde_c, + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h AS montant_solde_h, + 0 AS montant_solde_0, + 0 AS montant_solde_0_c, + 0 AS montant_solde_0_h, + p_factures.montant_comptabilise_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_c - p_factures.montant_regle_1_h AS montant_solde_1, + p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c AS montant_solde_1_c, + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h AS montant_solde_1_h, + 0 AS montant_solde_2, + 0 AS montant_solde_2_c, + 0 AS montant_solde_2_h, + p_factures.code_expedie_1 AS code_expedie, + p_factures.date_expedition_1 AS date_expedition, + p_factures.no_bordereau_1 AS no_bordereau, + CASE + WHEN p_factures_references.date_expedition_1 <> '2099-12-31'::date AND p_factures_references.date_expedition_1 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_1 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition, + CASE + WHEN p_factures_references.date_expedition_1 <> '2099-12-31'::date AND p_factures_references.date_expedition_1 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition, + 0 AS delai_expedition_0, + 0 AS nb_delai_expedition_0, + CASE + WHEN p_factures_references.date_expedition_1 <> '2099-12-31'::date AND p_factures_references.date_expedition_1 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_1 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition_1, + CASE + WHEN p_factures_references.date_expedition_1 <> '2099-12-31'::date AND p_factures_references.date_expedition_1 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition_1, + 0 AS delai_expedition_2, + 0 AS nb_delai_expedition_2, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c = p_factures.montant_regle_1_c AND p_factures.montant_comptabilise_1_h = p_factures.montant_regle_1_h THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND (p_factures.montant_facture_1_c > 0::numeric OR p_factures.montant_facture_1_h > 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c = p_factures.montant_regle_1_c THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_c > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_h = p_factures.montant_regle_1_h THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_h > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_h, + 0 AS nb_non_expedie_0, + 0 AS nb_non_expedie_0_c, + 0 AS nb_non_expedie_0_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c = p_factures.montant_regle_1_c AND p_factures.montant_comptabilise_1_h = p_factures.montant_regle_1_h THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND (p_factures.montant_facture_1_c > 0::numeric OR p_factures.montant_facture_1_h > 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie_1, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_c = p_factures.montant_regle_1_c THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_c > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_1_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.montant_comptabilise_1_h = p_factures.montant_regle_1_h THEN 0 + WHEN (p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL) AND p_factures.montant_facture_1_h > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_1_h, + 0 AS nb_non_expedie_2, + 0 AS nb_non_expedie_2_c, + 0 AS nb_non_expedie_2_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND (p_factures.montant_facture_1_c > 0::numeric OR p_factures.montant_facture_1_h > 0::numeric) THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND p_factures.montant_facture_1_c > 0::numeric THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + ELSE 0::numeric + END AS montant_non_expedie_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND p_factures.montant_facture_1_h > 0::numeric THEN p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_h, + 0 AS montant_non_expedie_0, + 0 AS montant_non_expedie_0_c, + 0 AS montant_non_expedie_0_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND (p_factures.montant_facture_1_c > 0::numeric OR p_factures.montant_facture_1_h > 0::numeric) THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND p_factures.montant_facture_1_c > 0::numeric THEN p_factures.montant_comptabilise_1_c - p_factures.montant_regle_1_c + ELSE 0::numeric + END AS montant_non_expedie_1_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_1 <> '1'::bpchar OR p_factures.code_expedie_1 IS NULL AND p_factures.montant_facture_1_h > 0::numeric THEN p_factures.montant_comptabilise_1_h - p_factures.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1_h, + 0 AS montant_non_expedie_2, + 0 AS montant_non_expedie_2_c, + 0 AS montant_non_expedie_2_h, + GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) AS date_solde_reference, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference, + p_factures.date_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_1_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_1_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_1_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_c, + p_factures.date_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_1_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_1_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_1_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_h, + NULL::date AS date_solde_reference_0, + 0 AS delai_solde_reference_0, + 0 AS nb_delai_solde_reference_0, + NULL::date AS date_solde_reference_0_c, + 0 AS delai_solde_reference_0_c, + 0 AS nb_delai_solde_reference_0_c, + NULL::date AS date_solde_reference_0_h, + 0 AS delai_solde_reference_0_h, + 0 AS nb_delai_solde_reference_0_h, + GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) AS date_solde_reference_1, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_1_c, p_factures_references.date_solde_reference_1_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1, + p_factures.date_solde_reference_1_c, + CASE + WHEN p_factures_references.date_solde_reference_1_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_1_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1_c, + CASE + WHEN p_factures_references.date_solde_reference_1_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1_c, + p_factures.date_solde_reference_1_h, + CASE + WHEN p_factures_references.date_solde_reference_1_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_1_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_1_h, + CASE + WHEN p_factures_references.date_solde_reference_1_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_1_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_1_h, + NULL::date AS date_solde_reference_2, + 0 AS delai_solde_reference_2, + 0 AS nb_delai_solde_reference_2, + NULL::date AS date_solde_reference_2_c, + 0 AS delai_solde_reference_2_c, + 0 AS nb_delai_solde_reference_2_c, + NULL::date AS date_solde_reference_2_h, + 0 AS delai_solde_reference_2_h, + 0 AS nb_delai_solde_reference_2_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + ELSE 0 + END AS nb_non_solde_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_solde_h, + 0 AS nb_non_solde_0, + 0 AS nb_non_solde_0_c, + 0 AS nb_non_solde_0_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_solde_1, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_1_c <> p_factures.montant_regle_1_c THEN 1 + ELSE 0 + END AS nb_non_solde_1_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.montant_comptabilise_1_h <> p_factures.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_solde_1_h, + 0 AS nb_non_solde_2, + 0 AS nb_non_solde_2_c, + 0 AS nb_non_solde_2_h, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte + FROM activite.p_factures + JOIN activite.p_factures p_factures_references ON p_factures.no_facture_reference = p_factures_references.no_facture + JOIN activite.t_tiers_payant ON t_tiers_payant.oid = p_factures.tiers_payant_1_id AND t_tiers_payant.oid <> 0 AND (p_factures.montant_encours_1_c <> 0::numeric OR p_factures.montant_facture_1_c <> 0::numeric OR p_factures.montant_facture_1_h <> 0::numeric OR p_factures.montant_regle_1_c <> 0::numeric OR p_factures.montant_regle_1_h <> 0::numeric OR p_factures.type_facture = 'E'::bpchar) + JOIN activite.t_types_tiers_payant ON t_tiers_payant.type_tiers_payant = t_types_tiers_payant.code + WHERE p_factures.type_facture <> 'P'::bpchar AND p_factures.type_facture <> 'G'::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_factures_4_2.yaml b/db/schema2/views/v_factures_4_2.yaml new file mode 100644 index 0000000..83b8d9b --- /dev/null +++ b/db/schema2/views/v_factures_4_2.yaml @@ -0,0 +1,372 @@ +src: | + SELECT p_factures.finess, + p_factures.sejour_id, + p_factures.no_sejour, + p_factures.oid AS facture_id, + p_factures.no_facture, + p_factures.facture_reference_id, + p_factures.no_facture_reference, + p_factures_references.date_debut, + p_factures_references.date_fin, + p_factures.type_facture, + p_factures.code_facture, + p_factures.date_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN p_factures_references.date_facture - p_factures_references.date_fin + ELSE 0 + END AS delai_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures_references.date_facture <> '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_factures.type_facture = 'E'::bpchar THEN 1 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN p_factures.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + p_factures.code_vente, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.ghs_id, + p_factures.particularite_t2a, + p_factures.code_cloture, + p_factures.code_cp_demandee, + p_factures.date_encours, + t_types_tiers_payant.code::bigint AS type_tiers_payant_id, + t_types_tiers_payant.code AS type_tiers_payant_code, + t_types_tiers_payant.texte AS type_tiers_payant_texte, + t_tiers_payant.oid AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + 1 AS nb_factures, + CASE + WHEN p_factures.type_facture = '0'::bpchar THEN 0 + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + ELSE 1 + END AS nb_factures_regularisation, + p_factures.nb_rejets AS nb_factures_rejet, + p_factures.montant_facture_2_c + p_factures.montant_facture_22_c + p_factures.montant_facture_2_h + p_factures.montant_facture_22_h AS montant_facture, + p_factures.montant_facture_2_c + p_factures.montant_facture_22_c AS montant_facture_c, + p_factures.montant_facture_2_h + p_factures.montant_facture_22_h AS montant_facture_h, + 0 AS montant_facture_0, + 0 AS montant_facture_0_c, + 0 AS montant_facture_0_h, + 0 AS montant_facture_1, + 0 AS montant_facture_1_c, + 0 AS montant_facture_1_h, + p_factures.montant_facture_2_c + p_factures.montant_facture_22_c + p_factures.montant_facture_2_h + p_factures.montant_facture_22_h AS montant_facture_2, + p_factures.montant_facture_2_c + p_factures.montant_facture_22_c AS montant_facture_2_c, + p_factures.montant_facture_2_h + p_factures.montant_facture_22_h AS montant_facture_2_h, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h AS montant_comptabilise, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c AS montant_comptabilise_c, + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h AS montant_comptabilise_h, + 0 AS montant_comptabilise_0, + 0 AS montant_comptabilise_0_c, + 0 AS montant_comptabilise_0_h, + 0 AS montant_comptabilise_1, + 0 AS montant_comptabilise_1_c, + 0 AS montant_comptabilise_1_h, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h AS montant_comptabilise_2, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c AS montant_comptabilise_2_c, + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h AS montant_comptabilise_2_h, + p_factures.montant_encours_2_c + p_factures.montant_encours_2_h AS montant_encours, + p_factures.montant_encours_2_c AS montant_encours_c, + p_factures.montant_encours_2_h AS montant_encours_h, + 0 AS montant_encours_0, + 0 AS montant_encours_0_c, + 0 AS montant_encours_0_h, + 0 AS montant_encours_1, + 0 AS montant_encours_1_c, + 0 AS montant_encours_1_h, + p_factures.montant_encours_2_c + p_factures.montant_encours_2_h AS montant_encours_2, + p_factures.montant_encours_2_c, + p_factures.montant_encours_2_h, + p_factures.montant_regle_2_c + p_factures.montant_regle_22_c + p_factures.montant_regle_2_h + p_factures.montant_regle_22_h AS montant_regle, + p_factures.montant_regle_2_c + p_factures.montant_regle_22_c AS montant_regle_c, + p_factures.montant_regle_2_h + p_factures.montant_regle_22_h AS montant_regle_h, + 0 AS montant_regle_0, + 0 AS montant_regle_0_c, + 0 AS montant_regle_0_h, + 0 AS montant_regle_1, + 0 AS montant_regle_1_c, + 0 AS montant_regle_1_h, + p_factures.montant_regle_2_c + p_factures.montant_regle_22_c + p_factures.montant_regle_2_h + p_factures.montant_regle_22_h AS montant_regle_2, + p_factures.montant_regle_2_c + p_factures.montant_regle_22_c AS montant_regle_2_c, + p_factures.montant_regle_2_h + p_factures.montant_regle_22_h AS montant_regle_2_h, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h AS montant_solde, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c AS montant_solde_c, + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h AS montant_solde_h, + 0 AS montant_solde_0, + 0 AS montant_solde_0_c, + 0 AS montant_solde_0_h, + 0 AS montant_solde_1, + 0 AS montant_solde_1_c, + 0 AS montant_solde_1_h, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h AS montant_solde_2, + p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c AS montant_solde_2_c, + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h AS montant_solde_2_h, + p_factures.code_expedie_2 AS code_expedie, + p_factures.date_expedition_2 AS date_expedition, + p_factures.no_bordereau_2 AS no_bordereau, + CASE + WHEN p_factures_references.date_expedition_2 <> '2099-12-31'::date AND p_factures_references.date_expedition_2 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_2 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition, + CASE + WHEN p_factures_references.date_expedition_2 <> '2099-12-31'::date AND p_factures_references.date_expedition_2 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition, + 0 AS delai_expedition_0, + 0 AS nb_delai_expedition_0, + 0 AS delai_expedition_1, + 0 AS nb_delai_expedition_1, + CASE + WHEN p_factures_references.date_expedition_2 <> '2099-12-31'::date AND p_factures_references.date_expedition_2 > p_factures_references.date_fin THEN (p_factures_references.date_expedition_2 - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_expedition_2, + CASE + WHEN p_factures_references.date_expedition_2 <> '2099-12-31'::date AND p_factures_references.date_expedition_2 > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_expedition_2, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) = (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) = (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND ((p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) = (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) = (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_h, + 0 AS nb_non_expedie_0, + 0 AS nb_non_expedie_0_c, + 0 AS nb_non_expedie_0_h, + 0 AS nb_non_expedie_1, + 0 AS nb_non_expedie_1_c, + 0 AS nb_non_expedie_1_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) = (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) = (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND ((p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric) THEN 1 + ELSE 0 + END AS nb_non_expedie_2, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) = (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_2_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0 + WHEN p_factures.type_facture = '1'::bpchar THEN 0 + WHEN p_factures.type_facture = 'E'::bpchar THEN 0 + WHEN p_factures.type_facture = 'P'::bpchar THEN 0 + WHEN (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) = (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 0 + WHEN (p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL) AND (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric THEN 1 + ELSE 0 + END AS nb_non_expedie_2_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND ((p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric) THEN p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric THEN p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric THEN p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_h, + 0 AS montant_non_expedie_0, + 0 AS montant_non_expedie_0_c, + 0 AS montant_non_expedie_0_h, + 0 AS montant_non_expedie_1, + 0 AS montant_non_expedie_1_c, + 0 AS montant_non_expedie_1_h, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND ((p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric) THEN p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c + p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_2, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) > 0::numeric THEN p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c - p_factures.montant_regle_2_c - p_factures.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_2_c, + CASE + WHEN p_factures.type_facture = 'X'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = '1'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'E'::bpchar THEN 0::numeric + WHEN p_factures.type_facture = 'P'::bpchar THEN 0::numeric + WHEN p_factures.code_expedie_2 <> '1'::bpchar OR p_factures.code_expedie_2 IS NULL AND (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) > 0::numeric THEN p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h - p_factures.montant_regle_2_h - p_factures.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_2_h, + GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) AS date_solde_reference, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference, + p_factures.date_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_2_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_2_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_c, + CASE + WHEN p_factures_references.date_solde_reference_2_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_c, + p_factures.date_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_2_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_2_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_h, + CASE + WHEN p_factures_references.date_solde_reference_2_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_h, + NULL::date AS date_solde_reference_0, + 0 AS delai_solde_reference_0, + 0 AS nb_delai_solde_reference_0, + NULL::date AS date_solde_reference_0_c, + 0 AS delai_solde_reference_0_c, + 0 AS nb_delai_solde_reference_0_c, + NULL::date AS date_solde_reference_0_h, + 0 AS delai_solde_reference_0_h, + 0 AS nb_delai_solde_reference_0_h, + NULL::date AS date_solde_reference_1, + 0 AS delai_solde_reference_1, + 0 AS nb_delai_solde_reference_1, + NULL::date AS date_solde_reference_1_c, + 0 AS delai_solde_reference_1_c, + 0 AS nb_delai_solde_reference_1_c, + NULL::date AS date_solde_reference_1_h, + 0 AS delai_solde_reference_1_h, + 0 AS nb_delai_solde_reference_1_h, + GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) AS date_solde_reference_2, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) > p_factures_references.date_fin THEN (GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2, + CASE + WHEN GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) <> '2099-12-31'::date AND GREATEST(p_factures_references.date_solde_reference_2_c, p_factures_references.date_solde_reference_2_h) > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2, + p_factures.date_solde_reference_2_c, + CASE + WHEN p_factures_references.date_solde_reference_2_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_c > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_2_c - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2_c, + CASE + WHEN p_factures_references.date_solde_reference_2_c <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_c > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2_c, + p_factures.date_solde_reference_2_h, + CASE + WHEN p_factures_references.date_solde_reference_2_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_h > p_factures_references.date_fin THEN (p_factures_references.date_solde_reference_2_h - p_factures_references.date_fin)::numeric + ELSE 0::numeric + END AS delai_solde_reference_2_h, + CASE + WHEN p_factures_references.date_solde_reference_2_h <> '2099-12-31'::date AND p_factures_references.date_solde_reference_2_h > p_factures_references.date_fin THEN 1::numeric + ELSE 0::numeric + END AS nb_delai_solde_reference_2_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) <> (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 1 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) <> (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) <> (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 1 + ELSE 0 + END AS nb_non_solde_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) <> (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde_h, + 0 AS nb_non_solde_0, + 0 AS nb_non_solde_0_c, + 0 AS nb_non_solde_0_h, + 0 AS nb_non_solde_1, + 0 AS nb_non_solde_1_c, + 0 AS nb_non_solde_1_h, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) <> (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 1 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) <> (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde_2, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.montant_comptabilise_2_c + p_factures.montant_comptabilise_22_c) <> (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) THEN 1 + ELSE 0 + END AS nb_non_solde_2_c, + CASE + WHEN p_factures.code_facture <> '1'::bpchar THEN 0 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.montant_comptabilise_2_h + p_factures.montant_comptabilise_22_h) <> (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde_2_h, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte + FROM activite.p_factures + JOIN activite.p_factures p_factures_references ON p_factures.no_facture_reference = p_factures_references.no_facture + JOIN activite.t_tiers_payant ON t_tiers_payant.oid = p_factures.tiers_payant_2_id AND t_tiers_payant.oid <> 0 AND (p_factures.montant_encours_2_c <> 0::numeric OR (p_factures.montant_facture_2_c + p_factures.montant_facture_22_c) <> 0::numeric OR (p_factures.montant_facture_2_h + p_factures.montant_facture_22_h) <> 0::numeric OR (p_factures.montant_regle_2_c + p_factures.montant_regle_22_c) <> 0::numeric OR (p_factures.montant_regle_2_h + p_factures.montant_regle_22_h) <> 0::numeric OR p_factures.type_facture = 'E'::bpchar) + JOIN activite.t_types_tiers_payant ON t_tiers_payant.type_tiers_payant = t_types_tiers_payant.code + WHERE p_factures.type_facture <> 'P'::bpchar AND p_factures.type_facture <> 'G'::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_factures_encours_lignes_c_1.yaml b/db/schema2/views/v_factures_encours_lignes_c_1.yaml new file mode 100644 index 0000000..f0c106b --- /dev/null +++ b/db/schema2/views/v_factures_encours_lignes_c_1.yaml @@ -0,0 +1,194 @@ +src: | + SELECT p_factures_encours_lignes_c.finess, + p_factures_encours.sejour_id, + p_factures_encours.oid AS facture_id, + p_factures_encours.code_origine, + p_factures_encours.date_debut AS date_debut_facture, + p_factures_encours.date_fin AS date_fin_facture, + to_char(p_factures_encours.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + p_sejours.no_sejour, + p_sejours.date_sortie, + CASE + WHEN p_factures_encours.ghs_id > 0 THEN p_factures_encours.date_groupage + ELSE '2099-12-31'::date + END AS encours_date_groupage, + p_factures_encours.ghs_id AS encours_ghs_id, + p_factures_encours_lignes_c.no_facture, + to_char(p_factures_encours.date_encours::timestamp with time zone, 'YYYYMM'::text) AS mois_comptable, + p_factures_encours.date_encours AS date_comptable, + to_char(p_factures_encours_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_encours_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_encours_lignes_c.date_debut, + p_factures_encours_lignes_c.date_fin, + p_factures_encours_lignes_c.coefficient, + p_factures_encours_lignes_c.coefficient_mco, + p_factures_encours_lignes_c.prix_unitaire, + p_factures_encours_lignes_c.taux_0, + p_factures_encours_lignes_c.taux_1, + p_factures_encours_lignes_c.taux_2, + p_factures_encours_lignes_c.taux_22, + p_factures_encours_lignes_c.lieu_id, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + p_factures_encours_lignes_c.rubrique_facturation_id, + t_rubriques_facturation.code AS rubrique_facturation_code, + t_rubriques_facturation.texte_court AS rubrique_facturation_texte, + t_rubriques_facturation.section_id AS rubrique_facturation_section_id, + t_rubriques_facturation.section_code AS rubrique_facturation_section_code, + t_rubriques_facturation.section_texte AS rubrique_facturation_section_texte, + p_factures_encours_lignes_c.rubrique_comptabilisation_id, + t_rubriques_facturation_c.code AS rubrique_comptabilisation_code, + t_rubriques_facturation_c.section_id AS rubrique_comptabilisation_section_id, + t_rubriques_facturation_c.section_code AS rubrique_comptabilisation_section_code, + t_rubriques_facturation_c.section_texte AS rubrique_comptabilisation_section_texte, + t_rubriques_facturation_c.texte_court AS rubrique_comptabilisation_texte, + p_factures_encours_lignes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_factures_encours_lignes_c.compte_produit_id, + t_compte.code AS compte_produit_code, + t_compte.texte_court AS compte_produit_texte, + t_compte.section_id AS compte_produit_section_id, + t_compte.section_code AS compte_produit_section_code, + t_compte.section_texte AS compte_produit_section_texte, + p_factures_encours_lignes_c.nb_rubrique, + p_factures_encours_lignes_c.nb_prestation, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_sorti, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_sorti_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_sorti_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_sorti_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_sorti_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_present, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_present_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_present_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_present_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_present_22, + CASE + WHEN p_factures_encours.code_sorti <> '1'::bpchar THEN 0::numeric + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND (p_factures_encours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) THEN p_factures_encours_lignes_c.montant_encours + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) <= p_factures_encours.date_encours THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_groupe, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_factures_encours.code_sorti = '1'::bpchar AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe_sorti, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_factures_encours.code_sorti <> '1'::bpchar AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe_present, + 0 AS no_oid, + 0 AS no_nb_lits, + p_factures_encours_lignes_c.pole_id, + p_factures_encours.filiere_soin_principale_id, + p_factures_encours.type_sejour, + t_type_sejour.oid AS type_sejour_id, + p_factures_encours.type_sejour AS type_sejour_code, + t_type_sejour.texte AS type_sejour_texte, + t_type_sejour.section_id AS type_sejour_section_id, + t_type_sejour.section_code AS type_sejour_section_code, + t_type_sejour.section_texte AS type_sejour_section_texte + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours_lignes_c.facture_id = p_factures_encours.oid + JOIN activite.p_sejours ON p_factures_encours.sejour_id = p_sejours.oid + JOIN activite.t_lieux_c ON p_factures_encours_lignes_c.lieu_id = t_lieux_c.oid + JOIN activite.t_rubriques_facturation ON p_factures_encours_lignes_c.rubrique_facturation_id = t_rubriques_facturation.oid + JOIN activite.t_rubriques_facturation t_rubriques_facturation_c ON p_factures_encours_lignes_c.rubrique_comptabilisation_id = t_rubriques_facturation_c.oid + JOIN activite.t_prestations ON p_factures_encours_lignes_c.prestation_id = t_prestations.oid + JOIN activite.t_type_sejour ON p_factures_encours.type_sejour = t_type_sejour.code + LEFT JOIN activite.t_lieux_c t_lieux_c_sortie ON p_factures_encours.lieu_sortie_id = t_lieux_c_sortie.oid + LEFT JOIN activite.t_compte ON p_factures_encours_lignes_c.compte_produit_id = t_compte.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_encours_lignes_c_2.yaml b/db/schema2/views/v_factures_encours_lignes_c_2.yaml new file mode 100644 index 0000000..be7463d --- /dev/null +++ b/db/schema2/views/v_factures_encours_lignes_c_2.yaml @@ -0,0 +1,166 @@ +src: | + SELECT p_sejours.finess, + p_sejours.provider_id, + p_factures_encours.no_sejour, + p_factures_encours.sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_postal_id, + p_sejours.code_prevu, + p_factures_encours.type_sejour, + p_sejours.forme_activite_id, + p_sejours.est_budget_global, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.mode_entree, + p_sejours.provenance, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.code_sorti, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.mode_sortie, + p_sejours.destination, + p_sejours.code_cp_demandee, + p_factures_encours.ghs_id, + p_factures_encours.ghm_id, + p_sejours.tiers_payant_0_id, + p_sejours.tiers_payant_1_id, + p_sejours.tiers_payant_2_id, + p_sejours.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + p_factures_encours.lieu_sortie_id, + p_sejours.gme_id, + p_sejours.risque_id, + p_factures_encours.oid AS facture_id, + p_factures_encours.code_origine, + p_factures_encours.date_debut AS date_debut_facture, + p_factures_encours.date_fin AS date_fin_facture, + to_char(p_factures_encours.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + CASE + WHEN p_factures_encours.ghs_id > 0 THEN p_factures_encours.date_groupage + ELSE '2099-12-31'::date + END AS encours_date_groupage, + p_factures_encours.ghs_id AS encours_ghs_id, + p_factures_encours_lignes_c.no_facture, + to_char(p_factures_encours.date_encours::timestamp with time zone, 'YYYYMM'::text) AS mois_comptable, + p_factures_encours.date_encours AS date_comptable, + to_char(p_factures_encours_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_encours_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_encours_lignes_c.date_debut, + p_factures_encours_lignes_c.date_fin, + p_factures_encours_lignes_c.coefficient, + p_factures_encours_lignes_c.coefficient_mco, + p_factures_encours_lignes_c.prix_unitaire, + p_factures_encours_lignes_c.taux_0, + p_factures_encours_lignes_c.taux_1, + p_factures_encours_lignes_c.taux_2, + p_factures_encours_lignes_c.taux_22, + p_factures_encours_lignes_c.lieu_id, + p_factures_encours_lignes_c.rubrique_facturation_id, + p_factures_encours_lignes_c.rubrique_comptabilisation_id, + p_factures_encours_lignes_c.prestation_id, + p_factures_encours_lignes_c.compte_produit_id, + p_factures_encours_lignes_c.compte_produit_analytique_id, + p_factures_encours_lignes_c.nb_rubrique, + p_factures_encours_lignes_c.nb_prestation, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_sorti, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_sorti_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_sorti_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_sorti_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_sorti_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_present, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_present_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_present_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_present_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_present_22, + CASE + WHEN p_factures_encours.code_sorti <> '1'::bpchar THEN 0::numeric + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND (p_factures_encours.type_sejour <> ALL (ARRAY['1'::bpchar, '2'::bpchar, '5'::bpchar]::text[])) THEN p_factures_encours_lignes_c.montant_encours + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) <= p_factures_encours.date_encours THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_groupe, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar, '2'::bpchar, '5'::bpchar]::text[])) AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar, '2'::bpchar, '5'::bpchar]::text[])) AND p_factures_encours.code_sorti = '1'::bpchar AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe_sorti, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar, '2'::bpchar, '5'::bpchar]::text[])) AND p_factures_encours.code_sorti <> '1'::bpchar AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_factures_encours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe_present, + 0 AS no_oid, + 0 AS no_nb_lits, + p_factures_encours_lignes_c.pole_id, + p_factures_encours.filiere_soin_principale_id, + p_factures_encours_lignes_c.lpp_id, + p_factures_encours_lignes_c.ucd_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours_lignes_c.facture_id = p_factures_encours.oid + JOIN activite.p_sejours ON p_sejours.no_sejour = p_factures_encours.no_sejour + LEFT JOIN activite.t_lieux_c t_lieux_c_sortie ON p_factures_encours.lieu_sortie_id = t_lieux_c_sortie.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_encours_lignes_c_3.yaml b/db/schema2/views/v_factures_encours_lignes_c_3.yaml new file mode 100644 index 0000000..10356e3 --- /dev/null +++ b/db/schema2/views/v_factures_encours_lignes_c_3.yaml @@ -0,0 +1,165 @@ +src: | + SELECT p_sejours.finess, + p_sejours.provider_id, + p_factures_encours.no_sejour, + p_factures_encours.sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_postal_id, + p_sejours.code_prevu, + p_factures_encours.type_sejour, + p_sejours.forme_activite_id, + p_sejours.est_budget_global, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.mode_entree, + p_sejours.provenance, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.code_sorti, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.mode_sortie, + p_sejours.destination, + p_sejours.code_cp_demandee, + p_sejours.ghs_id, + p_sejours.ghm_id, + p_sejours.tiers_payant_0_id, + p_sejours.tiers_payant_1_id, + p_sejours.tiers_payant_2_id, + p_sejours.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + p_sejours.lieu_sortie_id, + p_sejours.gme_id, + p_sejours.risque_id, + p_factures_encours.oid AS facture_id, + p_factures_encours.code_origine, + p_factures_encours.date_debut AS date_debut_facture, + p_factures_encours.date_fin AS date_fin_facture, + to_char(p_factures_encours.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + CASE + WHEN p_sejours.ghs_id > 0 THEN p_factures_encours.date_groupage + ELSE '2099-12-31'::date + END AS encours_date_groupage, + p_sejours.ghs_id AS encours_ghs_id, + p_factures_encours_lignes_c.no_facture, + to_char(p_factures_encours.date_encours::timestamp with time zone, 'YYYYMM'::text) AS mois_comptable, + p_factures_encours.date_encours AS date_comptable, + to_char(p_factures_encours_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_encours_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_encours_lignes_c.date_debut, + p_factures_encours_lignes_c.date_fin, + p_factures_encours_lignes_c.coefficient, + p_factures_encours_lignes_c.coefficient_mco, + p_factures_encours_lignes_c.prix_unitaire, + p_factures_encours_lignes_c.taux_0, + p_factures_encours_lignes_c.taux_1, + p_factures_encours_lignes_c.taux_2, + p_factures_encours_lignes_c.taux_22, + p_factures_encours_lignes_c.lieu_id, + p_factures_encours_lignes_c.rubrique_facturation_id, + p_factures_encours_lignes_c.rubrique_comptabilisation_id, + p_factures_encours_lignes_c.prestation_id, + p_factures_encours_lignes_c.compte_produit_id, + p_factures_encours_lignes_c.nb_rubrique, + p_factures_encours_lignes_c.nb_prestation, + 0::numeric AS montant_comptabilise, + 0::numeric AS montant_comptabilise_0, + 0::numeric AS montant_comptabilise_1, + 0::numeric AS montant_comptabilise_2, + 0::numeric AS montant_comptabilise_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_sorti, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_sorti_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_sorti_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_sorti_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL AND p_factures_encours.code_sorti = '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_sorti_22, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_present, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_0 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_present_0, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_1 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_present_1, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_2 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_present_2, + CASE + WHEN p_factures_encours_lignes_c.montant_encours_22 IS NOT NULL AND p_factures_encours.code_sorti <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_present_22, + CASE + WHEN p_factures_encours.code_sorti <> '1'::bpchar THEN 0::numeric + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a <> '1'::bpchar THEN p_factures_encours_lignes_c.montant_encours + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND (p_factures_encours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) THEN p_factures_encours_lignes_c.montant_encours + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) <= p_factures_encours.date_encours THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_groupe, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_sejours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_factures_encours.code_sorti = '1'::bpchar AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_sejours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe_sorti, + CASE + WHEN p_factures_encours_lignes_c.montant_encours IS NOT NULL AND t_lieux_c_sortie.type_t2a = '1'::bpchar AND (p_factures_encours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_factures_encours.code_sorti <> '1'::bpchar AND (date(date_trunc('month'::text, p_factures_encours.date_groupage::timestamp with time zone)) > p_factures_encours.date_encours OR p_sejours.ghs_id < 0) THEN p_factures_encours_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupe_present, + 0 AS no_oid, + 0 AS no_nb_lits, + p_factures_encours_lignes_c.pole_id, + p_factures_encours.filiere_soin_principale_id, + p_factures_encours_lignes_c.lpp_id, + p_factures_encours_lignes_c.ucd_id + FROM activite.p_factures_encours_lignes_c + JOIN activite.p_factures_encours ON p_factures_encours_lignes_c.facture_id = p_factures_encours.oid + JOIN activite.p_sejours ON p_sejours.no_sejour = p_factures_encours.no_sejour + LEFT JOIN activite.t_lieux_c t_lieux_c_sortie ON p_sejours.lieu_sortie_id = t_lieux_c_sortie.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_encours_lignes_c_r_4.yaml b/db/schema2/views/v_factures_encours_lignes_c_r_4.yaml new file mode 100644 index 0000000..200a93c --- /dev/null +++ b/db/schema2/views/v_factures_encours_lignes_c_r_4.yaml @@ -0,0 +1,195 @@ +dep: + - v_factures_encours_lignes_c_1 + - v_sejours_1 +src: | + SELECT subview.type_ligne, + CASE + WHEN subview.type_ligne = 'E'::text THEN v_factures_encours_lignes_c_1.date_comptable + ELSE date(date_trunc('month'::text, v_factures_encours_lignes_c_1.date_comptable::timestamp with time zone) + '1 mon'::interval) + END AS date_reference, + v_factures_encours_lignes_c_1.code_origine, + v_factures_encours_lignes_c_1.date_debut, + v_factures_encours_lignes_c_1.date_fin, + v_factures_encours_lignes_c_1.lieu_service_id AS lieu_reference_service_id, + v_factures_encours_lignes_c_1.lieu_service_code AS lieu_reference_service_code, + v_factures_encours_lignes_c_1.lieu_service_texte AS lieu_reference_service_texte, + v_factures_encours_lignes_c_1.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_encours_lignes_c_1.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_encours_lignes_c_1.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_encours_lignes_c_1.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_encours_lignes_c_1.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_encours_lignes_c_1.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_encours_lignes_c_1.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_encours_lignes_c_1.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_encours_lignes_c_1.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_encours_lignes_c_1.lieu_activite_id AS lieu_reference_activite_id, + v_factures_encours_lignes_c_1.lieu_activite_code AS lieu_reference_activite_code, + v_factures_encours_lignes_c_1.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_encours_lignes_c_1.lieu_etage_id AS lieu_reference_etage_id, + v_factures_encours_lignes_c_1.lieu_etage_code AS lieu_reference_etage_code, + v_factures_encours_lignes_c_1.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_encours_lignes_c_1.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_encours_lignes_c_1.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_encours_lignes_c_1.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_encours_lignes_c_1.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_encours_lignes_c_1.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_encours_lignes_c_1.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_factures_encours_lignes_c_1.type_sejour_id, + v_factures_encours_lignes_c_1.type_sejour, + v_factures_encours_lignes_c_1.type_sejour_code, + v_factures_encours_lignes_c_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.code_cp_demandee, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.duree AS duree_sejour, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_factures_encours_lignes_c_1.pole_id, + v_factures_encours_lignes_c_1.filiere_soin_principale_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_encours_lignes_c_1.no_facture, + v_factures_encours_lignes_c_1.facture_id, + v_factures_encours_lignes_c_1.rubrique_facturation_id, + v_factures_encours_lignes_c_1.rubrique_facturation_code, + v_factures_encours_lignes_c_1.rubrique_facturation_texte, + v_factures_encours_lignes_c_1.rubrique_facturation_section_id, + v_factures_encours_lignes_c_1.rubrique_facturation_section_code, + v_factures_encours_lignes_c_1.rubrique_facturation_section_texte, + v_factures_encours_lignes_c_1.rubrique_comptabilisation_id, + v_factures_encours_lignes_c_1.rubrique_comptabilisation_code, + v_factures_encours_lignes_c_1.rubrique_comptabilisation_texte, + v_factures_encours_lignes_c_1.rubrique_comptabilisation_section_id, + v_factures_encours_lignes_c_1.rubrique_comptabilisation_section_code, + v_factures_encours_lignes_c_1.rubrique_comptabilisation_section_texte, + v_factures_encours_lignes_c_1.prestation_id, + v_factures_encours_lignes_c_1.prestation_code, + v_factures_encours_lignes_c_1.prestation_texte, + v_factures_encours_lignes_c_1.prestation_section_id, + v_factures_encours_lignes_c_1.prestation_section_code, + v_factures_encours_lignes_c_1.prestation_section_texte, + v_factures_encours_lignes_c_1.coefficient, + CASE + WHEN subview.type_ligne = 'E'::text THEN v_factures_encours_lignes_c_1.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + CASE + WHEN subview.type_ligne = 'E'::text THEN v_factures_encours_lignes_c_1.nb_prestation + ELSE 0::numeric + END AS nb_prestation_encours, + CASE + WHEN subview.type_ligne = 'E'::text THEN v_factures_encours_lignes_c_1.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN subview.type_ligne = 'E'::text THEN 0::numeric + ELSE 0::numeric - v_factures_encours_lignes_c_1.nb_rubrique + END AS nb_rubrique_report, + CASE + WHEN subview.type_ligne = 'E'::text THEN 0::numeric + ELSE 0::numeric - v_factures_encours_lignes_c_1.nb_prestation + END AS nb_prestation_report, + CASE + WHEN subview.type_ligne = 'E'::text THEN 0::numeric + ELSE 0::numeric - v_factures_encours_lignes_c_1.montant_encours + END AS montant_report_encours, + CASE + WHEN subview.type_ligne = 'E'::text THEN v_factures_encours_lignes_c_1.nb_rubrique + ELSE 0::numeric - v_factures_encours_lignes_c_1.nb_rubrique + END AS nb_rubrique_variation, + CASE + WHEN subview.type_ligne = 'E'::text THEN v_factures_encours_lignes_c_1.nb_prestation + ELSE 0::numeric - v_factures_encours_lignes_c_1.nb_prestation + END AS nb_prestation_variation, + CASE + WHEN subview.type_ligne = 'E'::text THEN v_factures_encours_lignes_c_1.montant_encours + ELSE 0::numeric - v_factures_encours_lignes_c_1.montant_encours + END AS montant_variation_encours + FROM activite.v_factures_encours_lignes_c_1 + JOIN activite.v_sejours_1 ON v_factures_encours_lignes_c_1.no_sejour = v_sejours_1.no_sejour + JOIN ( SELECT 'E'::text AS type_ligne + UNION + SELECT 'R'::text AS text) subview ON 1 = 1; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_1.yaml b/db/schema2/views/v_factures_lignes_c_1.yaml new file mode 100644 index 0000000..98668ee --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_1.yaml @@ -0,0 +1,179 @@ +src: | + SELECT p_factures_lignes_c.finess, + p_sejours.no_sejour, + p_sejours.etat AS sejour_etat, + p_factures.sejour_id, + p_factures.no_facture_reference, + p_factures.facture_reference_id, + p_factures.oid AS facture_id, + p_sejours.no_patient, + p_sejours.date_entree, + p_factures_lignes_c.no_facture, + p_factures.type_facture, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text) AS mois_sortie, + p_sejours.date_sortie, + to_char(p_factures_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_c.date_debut, + p_factures_lignes_c.date_fin, + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.taux_0, + p_factures_lignes_c.taux_1, + p_factures_lignes_c.taux_2, + p_factures_lignes_c.taux_22, + p_sejours.ghs_id, + t_ghs_c.ghs_code_text AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + p_sejours.type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + p_factures_lignes_c.lieu_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id, + t_lieux_c.lit_section_code, + t_lieux_c.lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_id, + p_factures_lignes_c.rubrique_facturation_id, + t_rubriques_facturation.code AS rubrique_facturation_code, + t_rubriques_facturation.texte_court AS rubrique_facturation_texte, + p_factures_lignes_c.rubrique_comptabilisation_id, + t_rubriques_facturation_c.code AS rubrique_comptabilisation_code, + t_rubriques_facturation_c.texte_court AS rubrique_comptabilisation_texte, + p_factures_lignes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + p_factures_lignes_c.nb_rubrique, + p_factures_lignes_c.nb_prestation, + p_factures_lignes_c.montant_facture, + p_factures_lignes_c.montant_facture_0, + p_factures_lignes_c.montant_facture_1, + p_factures_lignes_c.montant_facture_2, + p_factures_lignes_c.montant_facture_22, + p_factures_lignes_c.origine_facturation_id, + CASE p_factures_lignes_c.origine_facturation_id + WHEN 1 THEN '1'::text + WHEN 2 THEN '2'::text + WHEN 3 THEN '3'::text + ELSE p_factures_lignes_c.origine_facturation_id::text + END AS origine_facturation_code, + CASE p_factures_lignes_c.origine_facturation_id + WHEN 1 THEN 'Séjour'::text + WHEN 2 THEN 'Actes'::text + WHEN 3 THEN 'Actes inclus dans séjour'::text + ELSE p_factures_lignes_c.origine_facturation_id::text + END AS origine_facturation_texte, + p_factures_lignes_c.montant_facture_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_0_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_1_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_2_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_22_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_comptabilise, + p_factures_lignes_c.montant_comptabilise_0, + p_factures_lignes_c.montant_comptabilise_1, + p_factures_lignes_c.montant_comptabilise_2, + p_factures_lignes_c.montant_comptabilise_22, + p_factures_lignes_c.montant_comptabilise_budget_global_1 AS montant_comptabilise_budget_global, + 0 AS montant_comptabilise_budget_global_0, + p_factures_lignes_c.montant_comptabilise_budget_global_1, + 0 AS montant_comptabilise_budget_global_2, + 0 AS montant_comptabilise_budget_global_22, + CASE + WHEN p_factures_lignes_c.montant_encours IS NOT NULL THEN p_factures_lignes_c.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN p_factures_lignes_c.montant_encours_0 IS NOT NULL THEN p_factures_lignes_c.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_0, + CASE + WHEN p_factures_lignes_c.montant_encours_1 IS NOT NULL THEN p_factures_lignes_c.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_1, + CASE + WHEN p_factures_lignes_c.montant_encours_2 IS NOT NULL THEN p_factures_lignes_c.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_2, + CASE + WHEN p_factures_lignes_c.montant_encours_22 IS NOT NULL THEN p_factures_lignes_c.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_22, + 0 AS no_oid, + 0 AS no_nb_lits + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_factures_lignes_c.lieu_id = t_lieux_c.oid + JOIN activite.t_rubriques_facturation ON p_factures_lignes_c.rubrique_facturation_id = t_rubriques_facturation.oid + JOIN activite.t_rubriques_facturation t_rubriques_facturation_c ON p_factures_lignes_c.rubrique_comptabilisation_id = t_rubriques_facturation_c.oid + JOIN activite.t_prestations ON p_factures_lignes_c.prestation_id = t_prestations.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_2.yaml b/db/schema2/views/v_factures_lignes_c_2.yaml new file mode 100644 index 0000000..dcae4be --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_2.yaml @@ -0,0 +1,117 @@ +src: | + SELECT p_factures_lignes_c.finess, + p_sejours.no_sejour, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_sejours.no_patient, + p_sejours.date_entree, + p_factures_lignes_c.no_facture, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text) AS mois_sortie, + p_sejours.date_sortie, + to_char(p_factures_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_c.date_debut, + p_factures_lignes_c.date_fin, + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.taux_0, + p_factures_lignes_c.taux_1, + p_factures_lignes_c.taux_2, + p_factures_lignes_c.taux_22, + p_sejours.ghs_id, + p_sejours.type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + p_factures_lignes_c.lieu_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_id, + p_factures_lignes_c.rubrique_facturation_id, + t_rubriques_facturation.code AS rubrique_facturation_code, + t_rubriques_facturation.texte_court AS rubrique_facturation_texte, + p_factures_lignes_c.rubrique_comptabilisation_id, + t_rubriques_facturation_c.code AS rubrique_comptabilisation_code, + t_rubriques_facturation_c.texte_court AS rubrique_comptabilisation_texte, + p_factures_lignes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + p_factures_lignes_c.nb_rubrique, + p_factures_lignes_c.nb_prestation, + p_factures_lignes_c.montant_facture, + p_factures_lignes_c.montant_facture_0, + p_factures_lignes_c.montant_facture_1, + p_factures_lignes_c.montant_facture_2, + p_factures_lignes_c.montant_facture_22, + p_factures_lignes_c.montant_comptabilise, + p_factures_lignes_c.montant_comptabilise_0, + p_factures_lignes_c.montant_comptabilise_1, + p_factures_lignes_c.montant_comptabilise_2, + p_factures_lignes_c.montant_comptabilise_22, + 0 AS no_oid, + 0 AS no_nb_lits, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN 'S'::text + ELSE t_ghs_c.mco_code + END AS mcos_code, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN t_ghs_c.cmd_texte + ELSE + CASE + WHEN t_ghs_c.mco_code = '*'::text THEN 'Hors GHM ou N/A'::text + ELSE t_ghs_c.mco_texte + END + END AS mcos_texte, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN 4 + ELSE + CASE t_ghs_c.mco_code + WHEN '*'::text THEN 0 + WHEN 'M'::text THEN 1 + WHEN 'C'::text THEN 2 + WHEN 'O'::text THEN 3 + ELSE NULL::integer + END + END AS mcos_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_factures_lignes_c.lieu_id = t_lieux_c.oid + JOIN activite.t_rubriques_facturation ON p_factures_lignes_c.rubrique_facturation_id = t_rubriques_facturation.oid + JOIN activite.t_rubriques_facturation t_rubriques_facturation_c ON p_factures_lignes_c.rubrique_comptabilisation_id = t_rubriques_facturation_c.oid + JOIN activite.t_prestations ON p_factures_lignes_c.prestation_id = t_prestations.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_3.yaml b/db/schema2/views/v_factures_lignes_c_3.yaml new file mode 100644 index 0000000..3e6dc9d --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_3.yaml @@ -0,0 +1,58 @@ +src: | + SELECT p_factures_lignes_c.finess, + p_factures_lignes_c.facture_id, + p_factures_lignes_c.no_facture, + to_char(p_factures_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_c.date_debut, + p_factures_lignes_c.date_fin, + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.taux_0, + p_factures_lignes_c.taux_1, + p_factures_lignes_c.taux_2, + p_factures_lignes_c.taux_22, + p_factures_lignes_c.lieu_id, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_id, + p_factures_lignes_c.rubrique_facturation_id, + t_rubriques_facturation.code AS rubrique_facturation_code, + t_rubriques_facturation.texte_court AS rubrique_facturation_texte, + p_factures_lignes_c.rubrique_comptabilisation_id, + t_rubriques_facturation_c.code AS rubrique_comptabilisation_code, + t_rubriques_facturation_c.texte_court AS rubrique_comptabilisation_texte, + p_factures_lignes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + p_factures_lignes_c.nb_rubrique, + p_factures_lignes_c.nb_prestation, + p_factures_lignes_c.montant_facture, + p_factures_lignes_c.montant_facture_0, + p_factures_lignes_c.montant_facture_1, + p_factures_lignes_c.montant_facture_2, + p_factures_lignes_c.montant_facture_22, + p_factures_lignes_c.montant_comptabilise, + p_factures_lignes_c.montant_comptabilise_0, + p_factures_lignes_c.montant_comptabilise_1, + p_factures_lignes_c.montant_comptabilise_2, + p_factures_lignes_c.montant_comptabilise_22, + 0 AS no_oid, + 0 AS no_nb_lits + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_lieux_c ON p_factures_lignes_c.lieu_id = t_lieux_c.oid + JOIN activite.t_rubriques_facturation ON p_factures_lignes_c.rubrique_facturation_id = t_rubriques_facturation.oid + JOIN activite.t_rubriques_facturation t_rubriques_facturation_c ON p_factures_lignes_c.rubrique_comptabilisation_id = t_rubriques_facturation_c.oid + JOIN activite.t_prestations ON p_factures_lignes_c.prestation_id = t_prestations.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_4.yaml b/db/schema2/views/v_factures_lignes_c_4.yaml new file mode 100644 index 0000000..d1a24cf --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_4.yaml @@ -0,0 +1,144 @@ +src: | + SELECT p_factures_lignes_c.finess, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.code_facture, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + to_char(p_factures.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + p_factures.no_sejour, + p_factures_lignes_c.no_facture, + p_factures_lignes_c.pole_id, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_factures_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_c.date_debut, + p_factures_lignes_c.date_fin, + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.taux_0, + p_factures_lignes_c.taux_1, + p_factures_lignes_c.taux_2, + p_factures_lignes_c.taux_22, + p_factures_lignes_c.lieu_id, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + p_factures_lignes_c.rubrique_facturation_id, + t_rubrique_facture.rubrique_facturation_code, + t_rubrique_facture.rubrique_facturation_texte, + t_rubrique_facture.rubrique_facturation_section_id, + t_rubrique_facture.rubrique_facturation_section_code, + t_rubrique_facture.rubrique_facturation_section_texte, + p_factures_lignes_c.rubrique_comptabilisation_id, + t_rubrique_facture.rubrique_comptabilisation_code, + t_rubrique_facture.rubrique_comptabilisation_section_id, + t_rubrique_facture.rubrique_comptabilisation_section_code, + t_rubrique_facture.rubrique_comptabilisation_section_texte, + t_rubrique_facture.rubrique_comptabilisation_texte, + p_factures_lignes_c.prestation_id, + t_rubrique_facture.prestation_code, + t_rubrique_facture.prestation_texte, + t_rubrique_facture.prestation_section_id, + t_rubrique_facture.prestation_section_code, + t_rubrique_facture.prestation_section_texte, + p_factures_lignes_c.compte_produit_id, + t_rubrique_facture.compte_produit_code, + t_rubrique_facture.compte_produit_texte, + t_rubrique_facture.compte_produit_section_id, + t_rubrique_facture.compte_produit_section_code, + t_rubrique_facture.compte_produit_section_texte, + p_factures_lignes_c.nb_rubrique, + p_factures_lignes_c.nb_prestation, + p_factures_lignes_c.montant_facture, + p_factures_lignes_c.montant_facture_0, + p_factures_lignes_c.montant_facture_1, + p_factures_lignes_c.montant_facture_2, + p_factures_lignes_c.montant_facture_22, + p_factures_lignes_c.origine_facturation_id, + CASE p_factures_lignes_c.origine_facturation_id + WHEN 1 THEN '1'::text + WHEN 2 THEN '2'::text + WHEN 3 THEN '3'::text + WHEN 9 THEN '9'::text + ELSE p_factures_lignes_c.origine_facturation_id::text + END AS origine_facturation_code, + CASE p_factures_lignes_c.origine_facturation_id + WHEN 1 THEN 'Séjour'::text + WHEN 2 THEN 'Actes'::text + WHEN 3 THEN 'Actes inclus dans séjour'::text + WHEN 9 THEN 'Lignes fictives pour facture uniquement en honoraires'::text + ELSE p_factures_lignes_c.origine_facturation_id::text + END AS origine_facturation_texte, + p_factures_lignes_c.montant_facture_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_0_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_1_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_2_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_22_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_comptabilise, + p_factures_lignes_c.montant_comptabilise_0, + p_factures_lignes_c.montant_comptabilise_1, + p_factures_lignes_c.montant_comptabilise_2, + p_factures_lignes_c.montant_comptabilise_22, + p_factures_lignes_c.montant_comptabilise_budget_global_1 AS montant_comptabilise_budget_global, + 0 AS montant_comptabilise_budget_global_0, + p_factures_lignes_c.montant_comptabilise_budget_global_1, + 0 AS montant_comptabilise_budget_global_2, + 0 AS montant_comptabilise_budget_global_22, + COALESCE(p_factures_lignes_c.montant_encours, 0::numeric) AS montant_encours, + COALESCE(p_factures_lignes_c.montant_encours_0, 0::numeric) AS montant_encours_0, + COALESCE(p_factures_lignes_c.montant_encours_1, 0::numeric) AS montant_encours_1, + COALESCE(p_factures_lignes_c.montant_encours_2, 0::numeric) AS montant_encours_2, + COALESCE(p_factures_lignes_c.montant_encours_22, 0::numeric) AS montant_encours_22, + 0 AS no_oid, + 0 AS no_nb_lits, + CASE + WHEN p_factures.code_facture >= '1'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_facturee, + CASE + WHEN p_factures.code_facture >= '1'::bpchar AND p_factures.code_vente = '1'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_comptabilisee, + CASE + WHEN p_factures.code_facture = '0'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_encours + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_lieux_c ON p_factures_lignes_c.lieu_id = t_lieux_c.oid + JOIN activite.t_rubrique_facture_c t_rubrique_facture ON p_factures_lignes_c.rubrique_facture_id = t_rubrique_facture.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_5.yaml b/db/schema2/views/v_factures_lignes_c_5.yaml new file mode 100644 index 0000000..dfc5b70 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_5.yaml @@ -0,0 +1,117 @@ +src: | + SELECT p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.code_facture, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + to_char(p_factures.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + p_factures.no_sejour, + p_factures_lignes_c.no_facture, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_factures_lignes_c.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_c.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_c.date_debut, + p_factures_lignes_c.date_fin, + p_factures_lignes_c.coefficient, + p_factures_lignes_c.coefficient_mco, + p_factures_lignes_c.prix_unitaire, + p_factures_lignes_c.taux_0, + p_factures_lignes_c.taux_1, + p_factures_lignes_c.taux_2, + p_factures_lignes_c.taux_22, + p_factures_lignes_c.lieu_id, + p_factures_lignes_c.rubrique_facture_id, + p_factures_lignes_c.rubrique_facturation_id, + p_factures_lignes_c.rubrique_comptabilisation_id, + p_factures_lignes_c.prestation_id, + p_factures_lignes_c.compte_produit_id, + p_factures_lignes_c.compte_produit_analytique_id, + p_factures_lignes_c.nb_rubrique, + p_factures_lignes_c.nb_prestation, + p_factures_lignes_c.montant_facture, + p_factures_lignes_c.montant_facture_0, + p_factures_lignes_c.montant_facture_1, + p_factures_lignes_c.montant_facture_2, + p_factures_lignes_c.montant_facture_22, + p_factures_lignes_c.origine_facturation_id, + CASE p_factures_lignes_c.origine_facturation_id + WHEN 1 THEN '1'::text + WHEN 2 THEN '2'::text + WHEN 3 THEN '3'::text + WHEN 9 THEN '9'::text + ELSE p_factures_lignes_c.origine_facturation_id::text + END AS origine_facturation_code, + CASE p_factures_lignes_c.origine_facturation_id + WHEN 1 THEN 'Séjour'::text + WHEN 2 THEN 'Actes'::text + WHEN 3 THEN 'Actes inclus dans séjour'::text + WHEN 9 THEN 'Lignes fictives pour facture uniquement en honoraires'::text + ELSE p_factures_lignes_c.origine_facturation_id::text + END AS origine_facturation_texte, + p_factures_lignes_c.montant_facture_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_0_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_1_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_2_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_facture_22_actes_inclus_dans_sejour, + p_factures_lignes_c.montant_comptabilise, + p_factures_lignes_c.montant_comptabilise_0, + p_factures_lignes_c.montant_comptabilise_1, + p_factures_lignes_c.montant_comptabilise_2, + p_factures_lignes_c.montant_comptabilise_22, + p_factures_lignes_c.montant_comptabilise_budget_global_1 AS montant_comptabilise_budget_global, + 0 AS montant_comptabilise_budget_global_0, + p_factures_lignes_c.montant_comptabilise_budget_global_1, + 0 AS montant_comptabilise_budget_global_2, + 0 AS montant_comptabilise_budget_global_22, + COALESCE(p_factures_lignes_c.montant_encours, 0::numeric) AS montant_encours, + COALESCE(p_factures_lignes_c.montant_encours_0, 0::numeric) AS montant_encours_0, + COALESCE(p_factures_lignes_c.montant_encours_1, 0::numeric) AS montant_encours_1, + COALESCE(p_factures_lignes_c.montant_encours_2, 0::numeric) AS montant_encours_2, + COALESCE(p_factures_lignes_c.montant_encours_22, 0::numeric) AS montant_encours_22, + 0 AS no_oid, + 0 AS no_nb_lits, + CASE + WHEN p_factures.code_facture >= '1'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_facturee, + CASE + WHEN p_factures.code_facture >= '1'::bpchar THEN p_factures_lignes_c.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN p_factures.code_facture >= '1'::bpchar THEN p_factures_lignes_c.nb_prestation + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN p_factures.code_facture >= '1'::bpchar AND p_factures.code_vente = '1'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_comptabilisee, + CASE + WHEN p_factures.code_facture >= '1'::bpchar AND p_factures.code_vente = '1'::bpchar THEN p_factures_lignes_c.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_comptabilise, + CASE + WHEN p_factures.code_facture >= '1'::bpchar AND p_factures.code_vente = '1'::bpchar THEN p_factures_lignes_c.nb_prestation + ELSE 0::numeric + END AS nb_prestation_comptabilise, + CASE + WHEN p_factures.code_facture = '0'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_encours, + CASE + WHEN p_factures.code_facture = '0'::bpchar THEN p_factures_lignes_c.nb_prestation + ELSE 0::numeric + END AS nb_rubrique_encours, + CASE + WHEN p_factures.code_facture = '0'::bpchar THEN p_factures_lignes_c.nb_prestation + ELSE 0::numeric + END AS nb_prestation_encours, + p_factures_lignes_c.pole_id, + p_factures_lignes_c.budget_cle_id, + p_factures_lignes_c.lpp_id, + p_factures_lignes_c.ucd_id + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_r_1.yaml b/db/schema2/views/v_factures_lignes_c_r_1.yaml new file mode 100644 index 0000000..057b60c --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_r_1.yaml @@ -0,0 +1,187 @@ +dep: + - v_factures_lignes_c_4 + - v_sejours_1 +src: | + SELECT v_factures_lignes_c_4.date_fin AS date_reference, + v_factures_lignes_c_4.date_debut, + v_factures_lignes_c_4.date_fin, + v_factures_lignes_c_4.lieu_service_id AS lieu_reference_service_id, + v_factures_lignes_c_4.lieu_service_code AS lieu_reference_service_code, + v_factures_lignes_c_4.lieu_service_texte AS lieu_reference_service_texte, + v_factures_lignes_c_4.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_lignes_c_4.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_lignes_c_4.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_lignes_c_4.lieu_activite_id AS lieu_reference_activite_id, + v_factures_lignes_c_4.lieu_activite_code AS lieu_reference_activite_code, + v_factures_lignes_c_4.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_lignes_c_4.lieu_etage_id AS lieu_reference_etage_id, + v_factures_lignes_c_4.lieu_etage_code AS lieu_reference_etage_code, + v_factures_lignes_c_4.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_lignes_c_4.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_lignes_c_4.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_lignes_c_4.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_lignes_c_4.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_lignes_c_4.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_lignes_c_4.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.code_cp_demandee, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.duree AS duree_sejour, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_lignes_c_4.no_facture, + v_factures_lignes_c_4.facture_id, + v_factures_lignes_c_4.date_facture, + v_factures_lignes_c_4.date_vente, + v_factures_lignes_c_4.rubrique_facturation_id, + v_factures_lignes_c_4.rubrique_facturation_code, + v_factures_lignes_c_4.rubrique_facturation_texte, + v_factures_lignes_c_4.rubrique_facturation_section_id, + v_factures_lignes_c_4.rubrique_facturation_section_code, + v_factures_lignes_c_4.rubrique_facturation_section_texte, + v_factures_lignes_c_4.rubrique_comptabilisation_id, + v_factures_lignes_c_4.rubrique_comptabilisation_code, + v_factures_lignes_c_4.rubrique_comptabilisation_texte, + v_factures_lignes_c_4.rubrique_comptabilisation_section_id, + v_factures_lignes_c_4.rubrique_comptabilisation_section_code, + v_factures_lignes_c_4.rubrique_comptabilisation_section_texte, + v_factures_lignes_c_4.compte_produit_id, + v_factures_lignes_c_4.compte_produit_code, + v_factures_lignes_c_4.compte_produit_texte, + v_factures_lignes_c_4.compte_produit_section_id, + v_factures_lignes_c_4.compte_produit_section_code, + v_factures_lignes_c_4.compte_produit_section_texte, + v_factures_lignes_c_4.prestation_id, + v_factures_lignes_c_4.prestation_code, + v_factures_lignes_c_4.prestation_texte, + v_factures_lignes_c_4.prestation_section_id, + v_factures_lignes_c_4.prestation_section_code, + v_factures_lignes_c_4.prestation_section_texte, + v_factures_lignes_c_4.code_facture, + v_factures_lignes_c_4.nb_rubrique, + CASE + WHEN v_factures_lignes_c_4.montant_facture <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN v_factures_lignes_c_4.montant_encours <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + v_factures_lignes_c_4.nb_prestation, + CASE + WHEN v_factures_lignes_c_4.montant_facture <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN v_factures_lignes_c_4.montant_encours <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_encours, + v_factures_lignes_c_4.coefficient, + v_factures_lignes_c_4.montant_facture, + v_factures_lignes_c_4.montant_facture_1, + v_factures_lignes_c_4.montant_facture_2 + v_factures_lignes_c_4.montant_facture_22 AS montant_facture_2, + v_factures_lignes_c_4.montant_facture_0, + v_factures_lignes_c_4.montant_comptabilise, + v_factures_lignes_c_4.montant_comptabilise_1, + v_factures_lignes_c_4.montant_comptabilise_2 + v_factures_lignes_c_4.montant_comptabilise_22 AS montant_comptabilise_2, + v_factures_lignes_c_4.montant_comptabilise_0, + v_factures_lignes_c_4.montant_encours, + v_factures_lignes_c_4.est_ligne_facturee + FROM activite.v_factures_lignes_c_4, + activite.v_sejours_1 + WHERE v_factures_lignes_c_4.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_r_2.yaml b/db/schema2/views/v_factures_lignes_c_r_2.yaml new file mode 100644 index 0000000..34b230f --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_r_2.yaml @@ -0,0 +1,187 @@ +dep: + - v_factures_lignes_c_4 + - v_sejours_1 +src: | + SELECT v_factures_lignes_c_4.date_fin_facture AS date_reference, + v_factures_lignes_c_4.date_debut, + v_factures_lignes_c_4.date_fin, + v_factures_lignes_c_4.lieu_service_id AS lieu_reference_service_id, + v_factures_lignes_c_4.lieu_service_code AS lieu_reference_service_code, + v_factures_lignes_c_4.lieu_service_texte AS lieu_reference_service_texte, + v_factures_lignes_c_4.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_lignes_c_4.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_lignes_c_4.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_lignes_c_4.lieu_activite_id AS lieu_reference_activite_id, + v_factures_lignes_c_4.lieu_activite_code AS lieu_reference_activite_code, + v_factures_lignes_c_4.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_lignes_c_4.lieu_etage_id AS lieu_reference_etage_id, + v_factures_lignes_c_4.lieu_etage_code AS lieu_reference_etage_code, + v_factures_lignes_c_4.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_lignes_c_4.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_lignes_c_4.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_lignes_c_4.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_lignes_c_4.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_lignes_c_4.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_lignes_c_4.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.code_cp_demandee, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.duree AS duree_sejour, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_lignes_c_4.no_facture, + v_factures_lignes_c_4.facture_id, + v_factures_lignes_c_4.date_facture, + v_factures_lignes_c_4.date_vente, + v_factures_lignes_c_4.rubrique_facturation_id, + v_factures_lignes_c_4.rubrique_facturation_code, + v_factures_lignes_c_4.rubrique_facturation_texte, + v_factures_lignes_c_4.rubrique_facturation_section_id, + v_factures_lignes_c_4.rubrique_facturation_section_code, + v_factures_lignes_c_4.rubrique_facturation_section_texte, + v_factures_lignes_c_4.rubrique_comptabilisation_id, + v_factures_lignes_c_4.rubrique_comptabilisation_code, + v_factures_lignes_c_4.rubrique_comptabilisation_texte, + v_factures_lignes_c_4.rubrique_comptabilisation_section_id, + v_factures_lignes_c_4.rubrique_comptabilisation_section_code, + v_factures_lignes_c_4.rubrique_comptabilisation_section_texte, + v_factures_lignes_c_4.compte_produit_id, + v_factures_lignes_c_4.compte_produit_code, + v_factures_lignes_c_4.compte_produit_texte, + v_factures_lignes_c_4.compte_produit_section_id, + v_factures_lignes_c_4.compte_produit_section_code, + v_factures_lignes_c_4.compte_produit_section_texte, + v_factures_lignes_c_4.prestation_id, + v_factures_lignes_c_4.prestation_code, + v_factures_lignes_c_4.prestation_texte, + v_factures_lignes_c_4.prestation_section_id, + v_factures_lignes_c_4.prestation_section_code, + v_factures_lignes_c_4.prestation_section_texte, + v_factures_lignes_c_4.code_facture, + v_factures_lignes_c_4.nb_rubrique, + CASE + WHEN v_factures_lignes_c_4.montant_facture <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN v_factures_lignes_c_4.montant_encours <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + v_factures_lignes_c_4.nb_prestation, + CASE + WHEN v_factures_lignes_c_4.montant_facture <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN v_factures_lignes_c_4.montant_encours <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_encours, + v_factures_lignes_c_4.coefficient, + v_factures_lignes_c_4.montant_facture, + v_factures_lignes_c_4.montant_facture_1, + v_factures_lignes_c_4.montant_facture_2 + v_factures_lignes_c_4.montant_facture_22 AS montant_facture_2, + v_factures_lignes_c_4.montant_facture_0, + v_factures_lignes_c_4.montant_comptabilise, + v_factures_lignes_c_4.montant_comptabilise_1, + v_factures_lignes_c_4.montant_comptabilise_2 + v_factures_lignes_c_4.montant_comptabilise_22 AS montant_comptabilise_2, + v_factures_lignes_c_4.montant_comptabilise_0, + v_factures_lignes_c_4.montant_encours, + v_factures_lignes_c_4.est_ligne_facturee + FROM activite.v_factures_lignes_c_4, + activite.v_sejours_1 + WHERE v_factures_lignes_c_4.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_r_3.yaml b/db/schema2/views/v_factures_lignes_c_r_3.yaml new file mode 100644 index 0000000..bdf0ed5 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_r_3.yaml @@ -0,0 +1,186 @@ +dep: + - v_factures_lignes_c_4 + - v_sejours_1 +src: | + SELECT v_factures_lignes_c_4.date_facture AS date_reference, + v_factures_lignes_c_4.date_debut, + v_factures_lignes_c_4.date_fin, + v_factures_lignes_c_4.lieu_service_id AS lieu_reference_service_id, + v_factures_lignes_c_4.lieu_service_code AS lieu_reference_service_code, + v_factures_lignes_c_4.lieu_service_texte AS lieu_reference_service_texte, + v_factures_lignes_c_4.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_lignes_c_4.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_lignes_c_4.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_lignes_c_4.lieu_activite_id AS lieu_reference_activite_id, + v_factures_lignes_c_4.lieu_activite_code AS lieu_reference_activite_code, + v_factures_lignes_c_4.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_lignes_c_4.lieu_etage_id AS lieu_reference_etage_id, + v_factures_lignes_c_4.lieu_etage_code AS lieu_reference_etage_code, + v_factures_lignes_c_4.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_lignes_c_4.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_lignes_c_4.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_lignes_c_4.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_lignes_c_4.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_lignes_c_4.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_lignes_c_4.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.code_cp_demandee, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.duree AS duree_sejour, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_lignes_c_4.no_facture, + v_factures_lignes_c_4.facture_id, + v_factures_lignes_c_4.date_facture, + v_factures_lignes_c_4.date_vente, + v_factures_lignes_c_4.rubrique_facturation_id, + v_factures_lignes_c_4.rubrique_facturation_code, + v_factures_lignes_c_4.rubrique_facturation_texte, + v_factures_lignes_c_4.rubrique_facturation_section_id, + v_factures_lignes_c_4.rubrique_facturation_section_code, + v_factures_lignes_c_4.rubrique_facturation_section_texte, + v_factures_lignes_c_4.rubrique_comptabilisation_id, + v_factures_lignes_c_4.rubrique_comptabilisation_code, + v_factures_lignes_c_4.rubrique_comptabilisation_texte, + v_factures_lignes_c_4.rubrique_comptabilisation_section_id, + v_factures_lignes_c_4.rubrique_comptabilisation_section_code, + v_factures_lignes_c_4.rubrique_comptabilisation_section_texte, + v_factures_lignes_c_4.compte_produit_id, + v_factures_lignes_c_4.compte_produit_code, + v_factures_lignes_c_4.compte_produit_texte, + v_factures_lignes_c_4.compte_produit_section_id, + v_factures_lignes_c_4.compte_produit_section_code, + v_factures_lignes_c_4.compte_produit_section_texte, + v_factures_lignes_c_4.prestation_id, + v_factures_lignes_c_4.prestation_code, + v_factures_lignes_c_4.prestation_texte, + v_factures_lignes_c_4.prestation_section_id, + v_factures_lignes_c_4.prestation_section_code, + v_factures_lignes_c_4.prestation_section_texte, + v_factures_lignes_c_4.code_facture, + v_factures_lignes_c_4.nb_rubrique, + CASE + WHEN v_factures_lignes_c_4.montant_facture <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN v_factures_lignes_c_4.montant_encours <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + v_factures_lignes_c_4.nb_prestation, + CASE + WHEN v_factures_lignes_c_4.montant_facture <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN v_factures_lignes_c_4.montant_encours <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_encours, + v_factures_lignes_c_4.coefficient, + v_factures_lignes_c_4.montant_facture, + v_factures_lignes_c_4.montant_facture_1, + v_factures_lignes_c_4.montant_facture_2 + v_factures_lignes_c_4.montant_facture_22 AS montant_facture_2, + v_factures_lignes_c_4.montant_facture_0, + v_factures_lignes_c_4.montant_comptabilise, + v_factures_lignes_c_4.montant_comptabilise_1, + v_factures_lignes_c_4.montant_comptabilise_2 + v_factures_lignes_c_4.montant_comptabilise_22 AS montant_comptabilise_2, + v_factures_lignes_c_4.montant_comptabilise_0, + v_factures_lignes_c_4.montant_encours, + v_factures_lignes_c_4.est_ligne_facturee + FROM activite.v_factures_lignes_c_4, + activite.v_sejours_1 + WHERE v_factures_lignes_c_4.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_c_r_4.yaml b/db/schema2/views/v_factures_lignes_c_r_4.yaml new file mode 100644 index 0000000..c8fdf3b --- /dev/null +++ b/db/schema2/views/v_factures_lignes_c_r_4.yaml @@ -0,0 +1,187 @@ +dep: + - v_factures_lignes_c_4 + - v_sejours_1 +src: | + SELECT v_factures_lignes_c_4.date_vente AS date_reference, + v_factures_lignes_c_4.date_debut, + v_factures_lignes_c_4.date_fin, + v_factures_lignes_c_4.lieu_service_id AS lieu_reference_service_id, + v_factures_lignes_c_4.lieu_service_code AS lieu_reference_service_code, + v_factures_lignes_c_4.lieu_service_texte AS lieu_reference_service_texte, + v_factures_lignes_c_4.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_lignes_c_4.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_lignes_c_4.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_lignes_c_4.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_lignes_c_4.lieu_activite_id AS lieu_reference_activite_id, + v_factures_lignes_c_4.lieu_activite_code AS lieu_reference_activite_code, + v_factures_lignes_c_4.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_lignes_c_4.lieu_etage_id AS lieu_reference_etage_id, + v_factures_lignes_c_4.lieu_etage_code AS lieu_reference_etage_code, + v_factures_lignes_c_4.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_lignes_c_4.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_lignes_c_4.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_lignes_c_4.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_lignes_c_4.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_lignes_c_4.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_lignes_c_4.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.code_cp_demandee, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.duree AS duree_sejour, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_lignes_c_4.no_facture, + v_factures_lignes_c_4.facture_id, + v_factures_lignes_c_4.date_facture, + v_factures_lignes_c_4.date_vente, + v_factures_lignes_c_4.rubrique_facturation_id, + v_factures_lignes_c_4.rubrique_facturation_code, + v_factures_lignes_c_4.rubrique_facturation_texte, + v_factures_lignes_c_4.rubrique_facturation_section_id, + v_factures_lignes_c_4.rubrique_facturation_section_code, + v_factures_lignes_c_4.rubrique_facturation_section_texte, + v_factures_lignes_c_4.rubrique_comptabilisation_id, + v_factures_lignes_c_4.rubrique_comptabilisation_code, + v_factures_lignes_c_4.rubrique_comptabilisation_texte, + v_factures_lignes_c_4.rubrique_comptabilisation_section_id, + v_factures_lignes_c_4.rubrique_comptabilisation_section_code, + v_factures_lignes_c_4.rubrique_comptabilisation_section_texte, + v_factures_lignes_c_4.compte_produit_id, + v_factures_lignes_c_4.compte_produit_code, + v_factures_lignes_c_4.compte_produit_texte, + v_factures_lignes_c_4.compte_produit_section_id, + v_factures_lignes_c_4.compte_produit_section_code, + v_factures_lignes_c_4.compte_produit_section_texte, + v_factures_lignes_c_4.prestation_id, + v_factures_lignes_c_4.prestation_code, + v_factures_lignes_c_4.prestation_texte, + v_factures_lignes_c_4.prestation_section_id, + v_factures_lignes_c_4.prestation_section_code, + v_factures_lignes_c_4.prestation_section_texte, + v_factures_lignes_c_4.code_facture, + v_factures_lignes_c_4.nb_rubrique, + CASE + WHEN v_factures_lignes_c_4.montant_facture <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN v_factures_lignes_c_4.montant_encours <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + v_factures_lignes_c_4.nb_prestation, + CASE + WHEN v_factures_lignes_c_4.montant_facture <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN v_factures_lignes_c_4.montant_encours <> 0::numeric THEN v_factures_lignes_c_4.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_encours, + v_factures_lignes_c_4.coefficient, + v_factures_lignes_c_4.montant_facture, + v_factures_lignes_c_4.montant_facture_1, + v_factures_lignes_c_4.montant_facture_2 + v_factures_lignes_c_4.montant_facture_22 AS montant_facture_2, + v_factures_lignes_c_4.montant_facture_0, + v_factures_lignes_c_4.montant_comptabilise, + v_factures_lignes_c_4.montant_comptabilise_1, + v_factures_lignes_c_4.montant_comptabilise_2 + v_factures_lignes_c_4.montant_comptabilise_22 AS montant_comptabilise_2, + v_factures_lignes_c_4.montant_comptabilise_0, + v_factures_lignes_c_4.montant_encours, + v_factures_lignes_c_4.est_ligne_facturee + FROM activite.v_factures_lignes_c_4, + activite.v_sejours_1 + WHERE v_factures_lignes_c_4.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_compte_produit_1.yaml b/db/schema2/views/v_factures_lignes_compte_produit_1.yaml new file mode 100644 index 0000000..e4e2937 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_compte_produit_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_compte.oid, + t_compte.code AS compte_produit_code, + t_compte.texte AS compte_produit_texte, + t_compte.section_id AS compte_produit_section_id, + t_compte.section_code AS compte_produit_section_code, + t_compte.section_texte AS compte_produit_section_texte + FROM activite.t_compte; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_executant_cpt_1.yaml b/db/schema2/views/v_factures_lignes_executant_cpt_1.yaml new file mode 100644 index 0000000..3dd2826 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_executant_cpt_1.yaml @@ -0,0 +1,18 @@ +src: | + SELECT t_medecins_administratifs_c.oid, + t_medecins_administratifs_c.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_comptabilise_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_comptabilise_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_comptabilise_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_c.medecin_code AS medecin_comptabilise_code, + t_medecins_administratifs_c.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_c.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_comptabilise_specialite_texte + FROM activite.t_medecins_administratifs_c; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_executant_fac_1.yaml b/db/schema2/views/v_factures_lignes_executant_fac_1.yaml new file mode 100644 index 0000000..058f968 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_executant_fac_1.yaml @@ -0,0 +1,18 @@ +src: | + SELECT t_medecins_administratifs_c.oid, + t_medecins_administratifs_c.adm_code AS medecin_adm_facture_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_facture_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_facture_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_facture_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_facture_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_facture_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_facture_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_facture_id, + t_medecins_administratifs_c.medecin_code AS medecin_facture_code, + t_medecins_administratifs_c.nom AS medecin_facture_nom, + t_medecins_administratifs_c.prenom AS medecin_facture_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_facture_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_facture_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_facture_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_facture_specialite_texte + FROM activite.t_medecins_administratifs_c; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_h_1.yaml b/db/schema2/views/v_factures_lignes_h_1.yaml new file mode 100644 index 0000000..80a1bd5 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_h_1.yaml @@ -0,0 +1,190 @@ +src: | + SELECT p_factures_lignes_h.finess, + p_sejours.no_sejour, + p_sejours.etat AS sejour_etat, + p_factures.sejour_id, + p_factures.no_facture_reference, + p_factures.facture_reference_id, + p_factures.oid AS facture_id, + p_sejours.no_patient, + p_sejours.date_entree, + p_factures_lignes_h.no_facture, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text) AS mois_sortie, + p_sejours.date_sortie, + to_char(p_factures_lignes_h.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_h.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_h.date_debut, + p_factures_lignes_h.date_fin, + p_factures_lignes_h.coefficient, + p_factures_lignes_h.coefficient_mco, + p_factures_lignes_h.prix_unitaire, + p_factures_lignes_h.taux_0, + p_factures_lignes_h.taux_1, + p_factures_lignes_h.taux_2, + p_factures_lignes_h.taux_22, + p_sejours.ghs_id, + t_ghs_c.ghs_code_text AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + p_sejours.type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + p_factures_lignes_h.lieu_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id, + t_lieux_c.lit_section_code, + t_lieux_c.lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_id, + p_factures_lignes_h.medecin_facture_id AS medecin_adm_facture_id, + t_medecins_administratifs_fac.adm_code AS medecin_adm_facture_code, + t_medecins_administratifs_fac.adm_nom AS medecin_adm_facture_nom, + t_medecins_administratifs_fac.adm_prenom AS medecin_adm_facture_prenom, + t_medecins_administratifs_fac.adm_nom_prenom AS medecin_adm_facture_nom_prenom, + t_medecins_administratifs_fac.section_id AS medecin_adm_facture_section_id, + t_medecins_administratifs_fac.section_code AS medecin_adm_facture_section_code, + t_medecins_administratifs_fac.section_texte AS medecin_adm_facture_section_texte, + t_medecins_administratifs_fac.medecin_id AS medecin_facture_id, + t_medecins_administratifs_fac.medecin_code AS medecin_facture_code, + t_medecins_administratifs_fac.nom AS medecin_facture_nom, + t_medecins_administratifs_fac.prenom AS medecin_facture_prenom, + t_medecins_administratifs_fac.nom_prenom AS medecin_facture_nom_prenom, + t_medecins_administratifs_fac.specialite_id AS medecin_facture_specialite_id, + t_medecins_administratifs_fac.specialite_code AS medecin_facture_specialite_code, + t_medecins_administratifs_fac.specialite_texte AS medecin_facture_specialite_texte, + p_factures_lignes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + t_medecins_administratifs_cpt.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_cpt.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_cpt.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_cpt.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_cpt.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_cpt.medecin_code AS medecin_comptabilise_code, + t_medecins_administratifs_cpt.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_cpt.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_cpt.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_cpt.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_cpt.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_cpt.specialite_texte AS medecin_comptabilise_specialite_texte, + p_factures_lignes_h.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + p_factures_lignes_h.acte_id, + t_actes_c.code AS acte_code, + t_actes_c.nomenclature AS acte_nomenclature, + t_actes_c.texte_court AS acte_texte, + p_factures_lignes_h.nb_rubrique, + p_factures_lignes_h.nb_prestation, + p_factures_lignes_h.montant_facture, + p_factures_lignes_h.montant_facture_0, + p_factures_lignes_h.montant_facture_1, + p_factures_lignes_h.montant_facture_2, + p_factures_lignes_h.montant_facture_22, + p_factures_lignes_h.montant_comptabilise, + p_factures_lignes_h.montant_comptabilise_0, + p_factures_lignes_h.montant_comptabilise_1, + p_factures_lignes_h.montant_comptabilise_2, + p_factures_lignes_h.montant_comptabilise_22, + p_factures_lignes_h.montant_depassement, + p_factures_lignes_h.montant_facture_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_0_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_1_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_2_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_22_actes_inclus_dans_sejour, + CASE + WHEN p_factures_lignes_h.montant_facture = 0::numeric AND COALESCE(p_factures_lignes_h.montant_facture_actes_inclus_dans_sejour, 0::numeric) = 0::numeric THEN round(p_factures_lignes_h.prix_unitaire * p_factures_lignes_h.nb_prestation * p_factures_lignes_h.coefficient * p_factures_lignes_h.coefficient_mco, 2) + ELSE 0::numeric + END AS montant_non_facture, + CASE + WHEN p_factures_lignes_h.montant_encours IS NOT NULL THEN p_factures_lignes_h.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN p_factures_lignes_h.montant_encours_0 IS NOT NULL THEN p_factures_lignes_h.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_0, + CASE + WHEN p_factures_lignes_h.montant_encours_1 IS NOT NULL THEN p_factures_lignes_h.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_1, + CASE + WHEN p_factures_lignes_h.montant_encours_2 IS NOT NULL THEN p_factures_lignes_h.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_2, + CASE + WHEN p_factures_lignes_h.montant_encours_22 IS NOT NULL THEN p_factures_lignes_h.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_22, + 0 AS no_oid, + 0 AS no_nb_lits + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_factures_lignes_h.lieu_id = t_lieux_c.oid + JOIN activite.t_medecins_administratifs_c t_medecins_administratifs_fac ON p_factures_lignes_h.medecin_facture_id = t_medecins_administratifs_fac.oid + JOIN activite.t_medecins_administratifs_c t_medecins_administratifs_cpt ON p_factures_lignes_h.medecin_comptabilise_id = t_medecins_administratifs_cpt.oid + JOIN activite.t_prestations ON p_factures_lignes_h.prestation_id = t_prestations.oid + JOIN activite.t_actes_c ON p_factures_lignes_h.acte_id = t_actes_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_h_2.yaml b/db/schema2/views/v_factures_lignes_h_2.yaml new file mode 100644 index 0000000..54cbfdb --- /dev/null +++ b/db/schema2/views/v_factures_lignes_h_2.yaml @@ -0,0 +1,165 @@ +src: | + SELECT p_factures_lignes_h.finess, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_sejours.no_sejour, + p_sejours.no_patient, + p_sejours.date_entree, + p_factures_lignes_h.no_facture, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text) AS mois_sortie, + p_sejours.date_sortie, + to_char(p_factures_lignes_h.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_h.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_h.date_debut, + p_factures_lignes_h.date_fin, + p_factures_lignes_h.coefficient, + p_factures_lignes_h.coefficient_mco, + p_factures_lignes_h.prix_unitaire, + p_factures_lignes_h.taux_0, + p_factures_lignes_h.taux_1, + p_factures_lignes_h.taux_2, + p_factures_lignes_h.taux_22, + p_sejours.ghs_id, + p_sejours.type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + p_factures_lignes_h.lieu_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_id, + p_factures_lignes_h.medecin_facture_id AS medecin_adm_facture_id, + t_medecins_administratifs_fac.adm_code AS medecin_adm_facture_code, + t_medecins_administratifs_fac.adm_nom AS medecin_adm_facture_nom, + t_medecins_administratifs_fac.adm_prenom AS medecin_adm_facture_prenom, + t_medecins_administratifs_fac.adm_nom_prenom AS medecin_adm_facture_nom_prenom, + t_medecins_administratifs_fac.medecin_id AS medecin_facture_id, + t_medecins_administratifs_fac.nom AS medecin_facture_nom, + t_medecins_administratifs_fac.prenom AS medecin_facture_prenom, + t_medecins_administratifs_fac.nom_prenom AS medecin_facture_nom_prenom, + t_medecins_administratifs_fac.specialite_id AS medecin_facture_specialite_id, + t_medecins_administratifs_fac.specialite_code AS medecin_facture_specialite_code, + t_medecins_administratifs_fac.specialite_texte AS medecin_facture_specialite_texte, + p_factures_lignes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + t_medecins_administratifs_cpt.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_cpt.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_cpt.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_cpt.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_cpt.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_cpt.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_cpt.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_cpt.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_cpt.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_cpt.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_cpt.specialite_texte AS medecin_comptabilise_specialite_texte, + p_factures_lignes_h.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + p_factures_lignes_h.acte_id, + t_actes_c.code AS acte_code, + t_actes_c.nomenclature AS acte_nomenclature, + t_actes_c.texte_court AS acte_texte, + p_factures_lignes_h.nb_rubrique, + p_factures_lignes_h.nb_prestation, + p_factures_lignes_h.montant_facture, + p_factures_lignes_h.montant_facture_0, + p_factures_lignes_h.montant_facture_1, + p_factures_lignes_h.montant_facture_2, + p_factures_lignes_h.montant_facture_22, + p_factures_lignes_h.montant_comptabilise, + p_factures_lignes_h.montant_comptabilise_0, + p_factures_lignes_h.montant_comptabilise_1, + p_factures_lignes_h.montant_comptabilise_2, + p_factures_lignes_h.montant_comptabilise_22, + p_factures_lignes_h.montant_depassement, + CASE + WHEN p_factures_lignes_h.montant_facture = 0::numeric THEN round(p_factures_lignes_h.prix_unitaire * p_factures_lignes_h.nb_prestation * p_factures_lignes_h.coefficient * p_factures_lignes_h.coefficient_mco, 2) + ELSE 0::numeric + END AS montant_non_facture, + CASE + WHEN p_factures_lignes_h.montant_encours IS NOT NULL THEN p_factures_lignes_h.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN p_factures_lignes_h.montant_encours_0 IS NOT NULL THEN p_factures_lignes_h.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_0, + CASE + WHEN p_factures_lignes_h.montant_encours_1 IS NOT NULL THEN p_factures_lignes_h.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_1, + CASE + WHEN p_factures_lignes_h.montant_encours_2 IS NOT NULL THEN p_factures_lignes_h.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_2, + CASE + WHEN p_factures_lignes_h.montant_encours_22 IS NOT NULL THEN p_factures_lignes_h.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_22, + 0 AS no_oid, + 0 AS no_nb_lits, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN 'S'::text + ELSE t_ghs_c.mco_code + END AS mcos_code, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN t_ghs_c.cmd_texte + ELSE + CASE + WHEN t_ghs_c.mco_code = '*'::text THEN 'Hors GHM ou N/A'::text + ELSE t_ghs_c.mco_texte + END + END AS mcos_texte, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN 4 + ELSE + CASE t_ghs_c.mco_code + WHEN '*'::text THEN 0 + WHEN 'M'::text THEN 1 + WHEN 'C'::text THEN 2 + WHEN 'O'::text THEN 3 + ELSE NULL::integer + END + END AS mcos_id + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_factures_lignes_h.lieu_id = t_lieux_c.oid + JOIN activite.t_medecins_administratifs_c t_medecins_administratifs_fac ON p_factures_lignes_h.medecin_facture_id = t_medecins_administratifs_fac.oid + JOIN activite.t_medecins_administratifs_c t_medecins_administratifs_cpt ON p_factures_lignes_h.medecin_comptabilise_id = t_medecins_administratifs_cpt.oid + JOIN activite.t_prestations ON p_factures_lignes_h.prestation_id = t_prestations.oid + JOIN activite.t_actes_c ON p_factures_lignes_h.acte_id = t_actes_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_h_3.yaml b/db/schema2/views/v_factures_lignes_h_3.yaml new file mode 100644 index 0000000..6fe050c --- /dev/null +++ b/db/schema2/views/v_factures_lignes_h_3.yaml @@ -0,0 +1,188 @@ +src: | + SELECT p_factures_lignes_h.finess, + p_factures.no_sejour, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_sejours.date_sortie, + p_factures_lignes_h.no_facture, + p_factures_lignes_h.pole_id, + p_factures.no_facture_reference, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + p_factures.code_facture, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + to_char(p_factures.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_factures_lignes_h.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_h.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_h.date_debut, + p_factures_lignes_h.heure_debut, + p_factures_lignes_h.date_fin, + p_factures_lignes_h.coefficient, + p_factures_lignes_h.coefficient_mco, + p_factures_lignes_h.prix_unitaire, + p_factures_lignes_h.taux_0, + p_factures_lignes_h.taux_1, + p_factures_lignes_h.taux_2, + p_factures_lignes_h.taux_22, + p_factures_lignes_h.lieu_id, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + p_factures_lignes_h.medecin_facture_id AS medecin_adm_facture_id, + t_medecins_administratifs_fac.adm_code AS medecin_adm_facture_code, + t_medecins_administratifs_fac.adm_nom AS medecin_adm_facture_nom, + t_medecins_administratifs_fac.adm_prenom AS medecin_adm_facture_prenom, + t_medecins_administratifs_fac.adm_nom_prenom AS medecin_adm_facture_nom_prenom, + t_medecins_administratifs_fac.section_id AS medecin_adm_facture_section_id, + t_medecins_administratifs_fac.section_code AS medecin_adm_facture_section_code, + t_medecins_administratifs_fac.section_texte AS medecin_adm_facture_section_texte, + t_medecins_administratifs_fac.medecin_id AS medecin_facture_id, + t_medecins_administratifs_fac.medecin_code AS medecin_facture_code, + t_medecins_administratifs_fac.nom AS medecin_facture_nom, + t_medecins_administratifs_fac.prenom AS medecin_facture_prenom, + t_medecins_administratifs_fac.nom_prenom AS medecin_facture_nom_prenom, + t_medecins_administratifs_fac.specialite_id AS medecin_facture_specialite_id, + t_medecins_administratifs_fac.specialite_code AS medecin_facture_specialite_code, + t_medecins_administratifs_fac.specialite_texte AS medecin_facture_specialite_texte, + p_factures_lignes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + t_medecins_administratifs_cpt.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_cpt.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_cpt.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_cpt.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_cpt.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_cpt.medecin_code AS medecin_comptabilise_code, + t_medecins_administratifs_cpt.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_cpt.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_cpt.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_cpt.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_cpt.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_cpt.specialite_texte AS medecin_comptabilise_specialite_texte, + p_factures_lignes_h.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_factures_lignes_h.acte_id, + t_actes_c.code AS acte_code, + t_actes_c.texte_court AS acte_texte, + t_actes_c.section_id AS acte_section_id, + t_actes_c.section_code AS acte_section_code, + t_actes_c.section_texte AS acte_section_texte, + t_actes_c.nomenclature AS acte_nomenclature, + CASE + WHEN t_prestations.code = ANY (ARRAY['ADA'::text, 'ACO'::text, 'ADC'::text, 'ADE'::text, 'ADI'::text, 'ATM'::text, 'DEN'::text]) THEN 1 + ELSE 2 + END AS acte_nomenclature_id, + CASE + WHEN t_prestations.code = ANY (ARRAY['ADA'::text, 'ACO'::text, 'ADC'::text, 'ADE'::text, 'ADI'::text, 'ATM'::text, 'DEN'::text]) THEN 'CCAM'::text + ELSE 'NGAP'::text + END AS acte_nomenclature_code, + CASE + WHEN t_prestations.code = ANY (ARRAY['ADA'::text, 'ACO'::text, 'ADC'::text, 'ADE'::text, 'ADI'::text, 'ATM'::text, 'DEN'::text]) THEN 'Nomenclature CCAM'::text + ELSE 'Nomenclature NGAP'::text + END AS acte_nomenclature_texte, + CASE + WHEN p_factures_lignes_h.activite_ccam <> '4'::bpchar AND t_prestations.code <> 'ADA'::text THEN t_actes_c.ccam_regroupement_id_1 + ELSE t_actes_c.ccam_regroupement_id_1 + END AS ccam_regroupement_id, + CASE + WHEN p_factures_lignes_h.activite_ccam <> '4'::bpchar AND t_prestations.code <> 'ADA'::text THEN t_actes_c.ccam_regroupement_code_1 + ELSE t_actes_c.ccam_regroupement_code_1 + END AS ccam_regroupement_code, + CASE + WHEN p_factures_lignes_h.activite_ccam <> '4'::bpchar AND t_prestations.code <> 'ADA'::text THEN t_actes_c.ccam_regroupement_texte_1 + ELSE t_actes_c.ccam_regroupement_texte_1 + END AS ccam_regroupement_texte, + p_factures_lignes_h.protocole_id, + t_protocoles.code AS protocole_code, + t_protocoles.texte_court AS protocole_texte, + t_protocoles.section_id AS protocole_section_id, + t_protocoles.section_code AS protocole_section_code, + t_protocoles.section_texte AS protocole_section_texte, + p_factures_lignes_h.nb_rubrique, + p_factures_lignes_h.nb_prestation, + p_factures_lignes_h.montant_facture, + p_factures_lignes_h.montant_facture_0, + p_factures_lignes_h.montant_facture_1, + p_factures_lignes_h.montant_facture_2, + p_factures_lignes_h.montant_facture_22, + p_factures_lignes_h.montant_comptabilise, + p_factures_lignes_h.montant_comptabilise_0, + p_factures_lignes_h.montant_comptabilise_1, + p_factures_lignes_h.montant_comptabilise_2, + p_factures_lignes_h.montant_comptabilise_22, + p_factures_lignes_h.montant_depassement, + p_factures_lignes_h.montant_facture_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_0_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_1_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_2_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_22_actes_inclus_dans_sejour, + CASE + WHEN p_factures_lignes_h.montant_facture = 0::numeric AND (p_sejours.est_budget_global IS DISTINCT FROM 1::numeric OR p_factures.code_facture <> '0'::bpchar) AND COALESCE(p_factures_lignes_h.montant_facture_actes_inclus_dans_sejour, 0::numeric) = 0::numeric THEN round(p_factures_lignes_h.prix_unitaire * p_factures_lignes_h.nb_prestation * p_factures_lignes_h.coefficient * p_factures_lignes_h.coefficient_mco, 2) + ELSE 0::numeric + END AS montant_non_facture, + CASE + WHEN p_factures_lignes_h.montant_encours IS NOT NULL THEN p_factures_lignes_h.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN p_factures_lignes_h.montant_encours_0 IS NOT NULL THEN p_factures_lignes_h.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_0, + CASE + WHEN p_factures_lignes_h.montant_encours_1 IS NOT NULL THEN p_factures_lignes_h.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_1, + CASE + WHEN p_factures_lignes_h.montant_encours_2 IS NOT NULL THEN p_factures_lignes_h.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_2, + CASE + WHEN p_factures_lignes_h.montant_encours_22 IS NOT NULL THEN p_factures_lignes_h.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_22, + 0 AS no_oid, + 0 AS no_nb_lits + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_lieux_c ON p_factures_lignes_h.lieu_id = t_lieux_c.oid + JOIN activite.t_medecins_administratifs_c t_medecins_administratifs_fac ON p_factures_lignes_h.medecin_facture_id = t_medecins_administratifs_fac.oid + JOIN activite.t_medecins_administratifs_c t_medecins_administratifs_cpt ON p_factures_lignes_h.medecin_comptabilise_id = t_medecins_administratifs_cpt.oid + JOIN activite.t_prestations ON p_factures_lignes_h.prestation_id = t_prestations.oid + JOIN activite.t_actes_c ON p_factures_lignes_h.acte_id = t_actes_c.oid + JOIN activite.t_protocoles ON p_factures_lignes_h.protocole_id = t_protocoles.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_h_4.yaml b/db/schema2/views/v_factures_lignes_h_4.yaml new file mode 100644 index 0000000..c1cd17c --- /dev/null +++ b/db/schema2/views/v_factures_lignes_h_4.yaml @@ -0,0 +1,150 @@ +src: | + SELECT p_factures_lignes_h.finess, + p_factures.no_sejour, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures_lignes_h.no_facture, + p_factures.no_facture_reference, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text) AS mois_facture, + p_factures.date_facture, + p_factures.code_facture, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + to_char(p_factures.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text) AS mois_vente, + p_factures.date_vente, + to_char(p_factures_lignes_h.date_debut::timestamp with time zone, 'YYYYMM'::text) AS mois_debut, + to_char(p_factures_lignes_h.date_fin::timestamp with time zone, 'YYYYMM'::text) AS mois_fin, + p_factures_lignes_h.date_debut, + p_factures_lignes_h.heure_debut, + p_factures_lignes_h.date_fin, + p_factures_lignes_h.coefficient, + p_factures_lignes_h.coefficient_mco, + p_factures_lignes_h.prix_unitaire, + p_factures_lignes_h.taux_0, + p_factures_lignes_h.taux_1, + p_factures_lignes_h.taux_2, + p_factures_lignes_h.taux_22, + p_factures_lignes_h.lieu_id, + p_factures_lignes_h.medecin_facture_id AS medecin_adm_facture_id, + p_factures_lignes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + p_factures_lignes_h.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_factures_lignes_h.acte_id, + t_actes_c.code AS acte_code, + t_actes_c.texte_court AS acte_texte, + t_actes_c.section_id AS acte_section_id, + t_actes_c.section_code AS acte_section_code, + t_actes_c.section_texte AS acte_section_texte, + t_actes_c.nomenclature AS acte_nomenclature, + CASE + WHEN t_prestations.code = ANY (ARRAY['ADA'::text, 'ACO'::text, 'ADC'::text, 'ADE'::text, 'ADI'::text, 'ATM'::text, 'DEN'::text]) THEN 1 + ELSE 2 + END AS acte_nomenclature_id, + CASE + WHEN t_prestations.code = ANY (ARRAY['ADA'::text, 'ACO'::text, 'ADC'::text, 'ADE'::text, 'ADI'::text, 'ATM'::text, 'DEN'::text]) THEN 'CCAM'::text + ELSE 'NGAP'::text + END AS acte_nomenclature_code, + CASE + WHEN t_prestations.code = ANY (ARRAY['ADA'::text, 'ACO'::text, 'ADC'::text, 'ADE'::text, 'ADI'::text, 'ATM'::text, 'DEN'::text]) THEN 'Nomenclature CCAM'::text + ELSE 'Nomenclature NGAP'::text + END AS acte_nomenclature_texte, + CASE + WHEN p_factures_lignes_h.activite_ccam <> '4'::bpchar AND t_prestations.code <> 'ADA'::text THEN t_actes_c.ccam_regroupement_id_1 + ELSE t_actes_c.ccam_regroupement_id_1 + END AS ccam_regroupement_id, + CASE + WHEN p_factures_lignes_h.activite_ccam <> '4'::bpchar AND t_prestations.code <> 'ADA'::text THEN t_actes_c.ccam_regroupement_code_1 + ELSE t_actes_c.ccam_regroupement_code_1 + END AS ccam_regroupement_code, + CASE + WHEN p_factures_lignes_h.activite_ccam <> '4'::bpchar AND t_prestations.code <> 'ADA'::text THEN t_actes_c.ccam_regroupement_texte_1 + ELSE t_actes_c.ccam_regroupement_texte_1 + END AS ccam_regroupement_texte, + p_factures_lignes_h.protocole_id, + p_factures_lignes_h.nb_rubrique, + p_factures_lignes_h.nb_prestation, + p_factures_lignes_h.montant_facture, + p_factures_lignes_h.montant_facture_0, + p_factures_lignes_h.montant_facture_1, + p_factures_lignes_h.montant_facture_2, + p_factures_lignes_h.montant_facture_22, + p_factures_lignes_h.montant_comptabilise, + p_factures_lignes_h.montant_comptabilise_0, + p_factures_lignes_h.montant_comptabilise_1, + p_factures_lignes_h.montant_comptabilise_2, + p_factures_lignes_h.montant_comptabilise_22, + p_factures_lignes_h.montant_depassement, + p_factures_lignes_h.montant_facture_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_0_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_1_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_2_actes_inclus_dans_sejour, + p_factures_lignes_h.montant_facture_22_actes_inclus_dans_sejour, + COALESCE(p_factures_lignes_h.montant_non_facture,0)::numeric(13,2) as montant_non_facture, + CASE + WHEN p_factures_lignes_h.montant_encours IS NOT NULL THEN p_factures_lignes_h.montant_encours + ELSE 0::numeric + END AS montant_encours, + CASE + WHEN p_factures_lignes_h.montant_encours_0 IS NOT NULL THEN p_factures_lignes_h.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_0, + CASE + WHEN p_factures_lignes_h.montant_encours_1 IS NOT NULL THEN p_factures_lignes_h.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_1, + CASE + WHEN p_factures_lignes_h.montant_encours_2 IS NOT NULL THEN p_factures_lignes_h.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_2, + CASE + WHEN p_factures_lignes_h.montant_encours_22 IS NOT NULL THEN p_factures_lignes_h.montant_encours_22 + ELSE 0::numeric + END AS montant_encours_22, + CASE + WHEN p_factures.code_facture >= '1'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_facturee, + CASE + WHEN p_factures.code_facture >= '1'::bpchar THEN p_factures_lignes_h.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN p_factures.code_facture >= '1'::bpchar THEN p_factures_lignes_h.nb_prestation + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN p_factures.code_facture >= '1'::bpchar AND p_factures.code_vente = '1'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_comptabilisee, + CASE + WHEN p_factures.code_facture >= '1'::bpchar AND p_factures.code_vente = '1'::bpchar THEN p_factures_lignes_h.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_comptabilise, + CASE + WHEN p_factures.code_facture >= '1'::bpchar AND p_factures.code_vente = '1'::bpchar THEN p_factures_lignes_h.nb_prestation + ELSE 0::numeric + END AS nb_prestation_comptabilise, + CASE + WHEN p_factures.code_facture = '0'::bpchar THEN '1'::text + ELSE '0'::text + END AS est_ligne_encours, + CASE + WHEN p_factures.code_facture = '0'::bpchar THEN p_factures_lignes_h.nb_prestation + ELSE 0::numeric + END AS nb_rubrique_encours, + CASE + WHEN p_factures.code_facture = '0'::bpchar THEN p_factures_lignes_h.nb_prestation + ELSE 0::numeric + END AS nb_prestation_encours, + 0 AS no_oid, + 0 AS no_nb_lits, + p_factures_lignes_h.pole_id + FROM activite.p_factures_lignes_h + JOIN activite.p_factures ON p_factures_lignes_h.no_facture = p_factures.no_facture + JOIN activite.t_prestations ON p_factures_lignes_h.prestation_id = t_prestations.oid + JOIN activite.t_actes_c ON p_factures_lignes_h.acte_id = t_actes_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_h_r_1.yaml b/db/schema2/views/v_factures_lignes_h_r_1.yaml new file mode 100644 index 0000000..d901d76 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_h_r_1.yaml @@ -0,0 +1,211 @@ +dep: + - v_factures_lignes_h_3 + - v_sejours_1 +src: | + SELECT v_factures_lignes_h_3.date_fin AS date_reference, + v_factures_lignes_h_3.lieu_service_id AS lieu_reference_service_id, + v_factures_lignes_h_3.lieu_service_code AS lieu_reference_service_code, + v_factures_lignes_h_3.lieu_service_texte AS lieu_reference_service_texte, + v_factures_lignes_h_3.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_lignes_h_3.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_lignes_h_3.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_lignes_h_3.lieu_activite_id AS lieu_reference_activite_id, + v_factures_lignes_h_3.lieu_activite_code AS lieu_reference_activite_code, + v_factures_lignes_h_3.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_lignes_h_3.lieu_etage_id AS lieu_reference_etage_id, + v_factures_lignes_h_3.lieu_etage_code AS lieu_reference_etage_code, + v_factures_lignes_h_3.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_lignes_h_3.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_lignes_h_3.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_lignes_h_3.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_lignes_h_3.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_lignes_h_3.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_lignes_h_3.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_lignes_h_3.no_facture, + v_factures_lignes_h_3.facture_id, + v_factures_lignes_h_3.date_facture, + v_factures_lignes_h_3.date_vente, + v_factures_lignes_h_3.prestation_id, + v_factures_lignes_h_3.prestation_code, + v_factures_lignes_h_3.prestation_texte, + v_factures_lignes_h_3.prestation_section_id, + v_factures_lignes_h_3.prestation_section_code, + v_factures_lignes_h_3.prestation_section_texte, + v_factures_lignes_h_3.acte_id, + v_factures_lignes_h_3.acte_code, + v_factures_lignes_h_3.acte_texte, + v_factures_lignes_h_3.acte_section_id, + v_factures_lignes_h_3.acte_section_code, + v_factures_lignes_h_3.acte_section_texte, + v_factures_lignes_h_3.acte_nomenclature_id, + v_factures_lignes_h_3.acte_nomenclature_code, + v_factures_lignes_h_3.acte_nomenclature_texte, + v_factures_lignes_h_3.ccam_regroupement_id, + v_factures_lignes_h_3.ccam_regroupement_code, + v_factures_lignes_h_3.ccam_regroupement_texte, + v_factures_lignes_h_3.protocole_id, + v_factures_lignes_h_3.protocole_code, + v_factures_lignes_h_3.protocole_texte, + v_factures_lignes_h_3.protocole_section_id, + v_factures_lignes_h_3.protocole_section_code, + v_factures_lignes_h_3.protocole_section_texte, + v_factures_lignes_h_3.medecin_adm_facture_id, + v_factures_lignes_h_3.medecin_adm_facture_code, + v_factures_lignes_h_3.medecin_adm_facture_nom, + v_factures_lignes_h_3.medecin_adm_facture_prenom, + v_factures_lignes_h_3.medecin_adm_facture_nom_prenom, + v_factures_lignes_h_3.medecin_adm_facture_section_id, + v_factures_lignes_h_3.medecin_adm_facture_section_code, + v_factures_lignes_h_3.medecin_adm_facture_section_texte, + v_factures_lignes_h_3.medecin_facture_id, + v_factures_lignes_h_3.medecin_facture_code, + v_factures_lignes_h_3.medecin_facture_nom, + v_factures_lignes_h_3.medecin_facture_prenom, + v_factures_lignes_h_3.medecin_facture_nom_prenom, + v_factures_lignes_h_3.medecin_facture_specialite_id, + v_factures_lignes_h_3.medecin_facture_specialite_code, + v_factures_lignes_h_3.medecin_facture_specialite_texte, + v_factures_lignes_h_3.medecin_adm_comptabilise_id, + v_factures_lignes_h_3.medecin_adm_comptabilise_code, + v_factures_lignes_h_3.medecin_adm_comptabilise_nom, + v_factures_lignes_h_3.medecin_adm_comptabilise_prenom, + v_factures_lignes_h_3.medecin_adm_comptabilise_nom_prenom, + v_factures_lignes_h_3.medecin_comptabilise_id, + v_factures_lignes_h_3.medecin_comptabilise_code, + v_factures_lignes_h_3.medecin_comptabilise_nom, + v_factures_lignes_h_3.medecin_comptabilise_prenom, + v_factures_lignes_h_3.medecin_comptabilise_nom_prenom, + v_factures_lignes_h_3.medecin_comptabilise_specialite_id, + v_factures_lignes_h_3.medecin_comptabilise_specialite_code, + v_factures_lignes_h_3.medecin_comptabilise_specialite_texte, + v_factures_lignes_h_3.code_facture, + v_factures_lignes_h_3.nb_rubrique, + CASE + WHEN v_factures_lignes_h_3.montant_facture <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN v_factures_lignes_h_3.montant_encours <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + v_factures_lignes_h_3.nb_prestation, + CASE + WHEN v_factures_lignes_h_3.montant_facture <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN v_factures_lignes_h_3.montant_encours <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_encours, + v_factures_lignes_h_3.montant_facture, + v_factures_lignes_h_3.montant_facture_1, + v_factures_lignes_h_3.montant_facture_2 + v_factures_lignes_h_3.montant_facture_22 AS montant_facture_2, + v_factures_lignes_h_3.montant_facture_0, + v_factures_lignes_h_3.montant_comptabilise, + v_factures_lignes_h_3.montant_comptabilise_1, + v_factures_lignes_h_3.montant_comptabilise_2 + v_factures_lignes_h_3.montant_comptabilise_22 AS montant_comptabilise_2, + v_factures_lignes_h_3.montant_comptabilise_0, + v_factures_lignes_h_3.montant_depassement, + v_factures_lignes_h_3.montant_encours + FROM activite.v_factures_lignes_h_3, + activite.v_sejours_1 + WHERE v_factures_lignes_h_3.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_h_r_2.yaml b/db/schema2/views/v_factures_lignes_h_r_2.yaml new file mode 100644 index 0000000..3cb809e --- /dev/null +++ b/db/schema2/views/v_factures_lignes_h_r_2.yaml @@ -0,0 +1,211 @@ +dep: + - v_factures_lignes_h_3 + - v_sejours_1 +src: | + SELECT v_factures_lignes_h_3.date_fin_facture AS date_reference, + v_factures_lignes_h_3.lieu_service_id AS lieu_reference_service_id, + v_factures_lignes_h_3.lieu_service_code AS lieu_reference_service_code, + v_factures_lignes_h_3.lieu_service_texte AS lieu_reference_service_texte, + v_factures_lignes_h_3.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_lignes_h_3.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_lignes_h_3.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_lignes_h_3.lieu_activite_id AS lieu_reference_activite_id, + v_factures_lignes_h_3.lieu_activite_code AS lieu_reference_activite_code, + v_factures_lignes_h_3.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_lignes_h_3.lieu_etage_id AS lieu_reference_etage_id, + v_factures_lignes_h_3.lieu_etage_code AS lieu_reference_etage_code, + v_factures_lignes_h_3.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_lignes_h_3.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_lignes_h_3.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_lignes_h_3.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_lignes_h_3.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_lignes_h_3.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_lignes_h_3.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_lignes_h_3.no_facture, + v_factures_lignes_h_3.facture_id, + v_factures_lignes_h_3.date_facture, + v_factures_lignes_h_3.date_vente, + v_factures_lignes_h_3.prestation_id, + v_factures_lignes_h_3.prestation_code, + v_factures_lignes_h_3.prestation_texte, + v_factures_lignes_h_3.prestation_section_id, + v_factures_lignes_h_3.prestation_section_code, + v_factures_lignes_h_3.prestation_section_texte, + v_factures_lignes_h_3.acte_id, + v_factures_lignes_h_3.acte_code, + v_factures_lignes_h_3.acte_texte, + v_factures_lignes_h_3.acte_section_id, + v_factures_lignes_h_3.acte_section_code, + v_factures_lignes_h_3.acte_section_texte, + v_factures_lignes_h_3.acte_nomenclature_id, + v_factures_lignes_h_3.acte_nomenclature_code, + v_factures_lignes_h_3.acte_nomenclature_texte, + v_factures_lignes_h_3.ccam_regroupement_id, + v_factures_lignes_h_3.ccam_regroupement_code, + v_factures_lignes_h_3.ccam_regroupement_texte, + v_factures_lignes_h_3.protocole_id, + v_factures_lignes_h_3.protocole_code, + v_factures_lignes_h_3.protocole_texte, + v_factures_lignes_h_3.protocole_section_id, + v_factures_lignes_h_3.protocole_section_code, + v_factures_lignes_h_3.protocole_section_texte, + v_factures_lignes_h_3.medecin_adm_facture_id, + v_factures_lignes_h_3.medecin_adm_facture_code, + v_factures_lignes_h_3.medecin_adm_facture_nom, + v_factures_lignes_h_3.medecin_adm_facture_prenom, + v_factures_lignes_h_3.medecin_adm_facture_nom_prenom, + v_factures_lignes_h_3.medecin_adm_facture_section_id, + v_factures_lignes_h_3.medecin_adm_facture_section_code, + v_factures_lignes_h_3.medecin_adm_facture_section_texte, + v_factures_lignes_h_3.medecin_facture_id, + v_factures_lignes_h_3.medecin_facture_code, + v_factures_lignes_h_3.medecin_facture_nom, + v_factures_lignes_h_3.medecin_facture_prenom, + v_factures_lignes_h_3.medecin_facture_nom_prenom, + v_factures_lignes_h_3.medecin_facture_specialite_id, + v_factures_lignes_h_3.medecin_facture_specialite_code, + v_factures_lignes_h_3.medecin_facture_specialite_texte, + v_factures_lignes_h_3.medecin_adm_comptabilise_id, + v_factures_lignes_h_3.medecin_adm_comptabilise_code, + v_factures_lignes_h_3.medecin_adm_comptabilise_nom, + v_factures_lignes_h_3.medecin_adm_comptabilise_prenom, + v_factures_lignes_h_3.medecin_adm_comptabilise_nom_prenom, + v_factures_lignes_h_3.medecin_comptabilise_id, + v_factures_lignes_h_3.medecin_comptabilise_code, + v_factures_lignes_h_3.medecin_comptabilise_nom, + v_factures_lignes_h_3.medecin_comptabilise_prenom, + v_factures_lignes_h_3.medecin_comptabilise_nom_prenom, + v_factures_lignes_h_3.medecin_comptabilise_specialite_id, + v_factures_lignes_h_3.medecin_comptabilise_specialite_code, + v_factures_lignes_h_3.medecin_comptabilise_specialite_texte, + v_factures_lignes_h_3.code_facture, + v_factures_lignes_h_3.nb_rubrique, + CASE + WHEN v_factures_lignes_h_3.montant_facture <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN v_factures_lignes_h_3.montant_encours <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + v_factures_lignes_h_3.nb_prestation, + CASE + WHEN v_factures_lignes_h_3.montant_facture <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN v_factures_lignes_h_3.montant_encours <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_encours, + v_factures_lignes_h_3.montant_facture, + v_factures_lignes_h_3.montant_facture_1, + v_factures_lignes_h_3.montant_facture_2 + v_factures_lignes_h_3.montant_facture_22 AS montant_facture_2, + v_factures_lignes_h_3.montant_facture_0, + v_factures_lignes_h_3.montant_comptabilise, + v_factures_lignes_h_3.montant_comptabilise_1, + v_factures_lignes_h_3.montant_comptabilise_2 + v_factures_lignes_h_3.montant_comptabilise_22 AS montant_comptabilise_2, + v_factures_lignes_h_3.montant_comptabilise_0, + v_factures_lignes_h_3.montant_depassement, + v_factures_lignes_h_3.montant_encours + FROM activite.v_factures_lignes_h_3, + activite.v_sejours_1 + WHERE v_factures_lignes_h_3.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_h_r_3.yaml b/db/schema2/views/v_factures_lignes_h_r_3.yaml new file mode 100644 index 0000000..d998966 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_h_r_3.yaml @@ -0,0 +1,211 @@ +dep: + - v_factures_lignes_h_3 + - v_sejours_1 +src: | + SELECT v_factures_lignes_h_3.date_facture AS date_reference, + v_factures_lignes_h_3.lieu_service_id AS lieu_reference_service_id, + v_factures_lignes_h_3.lieu_service_code AS lieu_reference_service_code, + v_factures_lignes_h_3.lieu_service_texte AS lieu_reference_service_texte, + v_factures_lignes_h_3.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_lignes_h_3.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_lignes_h_3.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_lignes_h_3.lieu_activite_id AS lieu_reference_activite_id, + v_factures_lignes_h_3.lieu_activite_code AS lieu_reference_activite_code, + v_factures_lignes_h_3.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_lignes_h_3.lieu_etage_id AS lieu_reference_etage_id, + v_factures_lignes_h_3.lieu_etage_code AS lieu_reference_etage_code, + v_factures_lignes_h_3.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_lignes_h_3.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_lignes_h_3.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_lignes_h_3.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_lignes_h_3.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_lignes_h_3.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_lignes_h_3.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_lignes_h_3.no_facture, + v_factures_lignes_h_3.facture_id, + v_factures_lignes_h_3.date_facture, + v_factures_lignes_h_3.date_vente, + v_factures_lignes_h_3.prestation_id, + v_factures_lignes_h_3.prestation_code, + v_factures_lignes_h_3.prestation_texte, + v_factures_lignes_h_3.prestation_section_id, + v_factures_lignes_h_3.prestation_section_code, + v_factures_lignes_h_3.prestation_section_texte, + v_factures_lignes_h_3.acte_id, + v_factures_lignes_h_3.acte_code, + v_factures_lignes_h_3.acte_texte, + v_factures_lignes_h_3.acte_section_id, + v_factures_lignes_h_3.acte_section_code, + v_factures_lignes_h_3.acte_section_texte, + v_factures_lignes_h_3.acte_nomenclature_id, + v_factures_lignes_h_3.acte_nomenclature_code, + v_factures_lignes_h_3.acte_nomenclature_texte, + v_factures_lignes_h_3.ccam_regroupement_id, + v_factures_lignes_h_3.ccam_regroupement_code, + v_factures_lignes_h_3.ccam_regroupement_texte, + v_factures_lignes_h_3.protocole_id, + v_factures_lignes_h_3.protocole_code, + v_factures_lignes_h_3.protocole_texte, + v_factures_lignes_h_3.protocole_section_id, + v_factures_lignes_h_3.protocole_section_code, + v_factures_lignes_h_3.protocole_section_texte, + v_factures_lignes_h_3.medecin_adm_facture_id, + v_factures_lignes_h_3.medecin_adm_facture_code, + v_factures_lignes_h_3.medecin_adm_facture_nom, + v_factures_lignes_h_3.medecin_adm_facture_prenom, + v_factures_lignes_h_3.medecin_adm_facture_nom_prenom, + v_factures_lignes_h_3.medecin_adm_facture_section_id, + v_factures_lignes_h_3.medecin_adm_facture_section_code, + v_factures_lignes_h_3.medecin_adm_facture_section_texte, + v_factures_lignes_h_3.medecin_facture_id, + v_factures_lignes_h_3.medecin_facture_code, + v_factures_lignes_h_3.medecin_facture_nom, + v_factures_lignes_h_3.medecin_facture_prenom, + v_factures_lignes_h_3.medecin_facture_nom_prenom, + v_factures_lignes_h_3.medecin_facture_specialite_id, + v_factures_lignes_h_3.medecin_facture_specialite_code, + v_factures_lignes_h_3.medecin_facture_specialite_texte, + v_factures_lignes_h_3.medecin_adm_comptabilise_id, + v_factures_lignes_h_3.medecin_adm_comptabilise_code, + v_factures_lignes_h_3.medecin_adm_comptabilise_nom, + v_factures_lignes_h_3.medecin_adm_comptabilise_prenom, + v_factures_lignes_h_3.medecin_adm_comptabilise_nom_prenom, + v_factures_lignes_h_3.medecin_comptabilise_id, + v_factures_lignes_h_3.medecin_comptabilise_code, + v_factures_lignes_h_3.medecin_comptabilise_nom, + v_factures_lignes_h_3.medecin_comptabilise_prenom, + v_factures_lignes_h_3.medecin_comptabilise_nom_prenom, + v_factures_lignes_h_3.medecin_comptabilise_specialite_id, + v_factures_lignes_h_3.medecin_comptabilise_specialite_code, + v_factures_lignes_h_3.medecin_comptabilise_specialite_texte, + v_factures_lignes_h_3.code_facture, + v_factures_lignes_h_3.nb_rubrique, + CASE + WHEN v_factures_lignes_h_3.montant_facture <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN v_factures_lignes_h_3.montant_encours <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + v_factures_lignes_h_3.nb_prestation, + CASE + WHEN v_factures_lignes_h_3.montant_facture <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN v_factures_lignes_h_3.montant_encours <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_encours, + v_factures_lignes_h_3.montant_facture, + v_factures_lignes_h_3.montant_facture_1, + v_factures_lignes_h_3.montant_facture_2 + v_factures_lignes_h_3.montant_facture_22 AS montant_facture_2, + v_factures_lignes_h_3.montant_facture_0, + v_factures_lignes_h_3.montant_comptabilise, + v_factures_lignes_h_3.montant_comptabilise_1, + v_factures_lignes_h_3.montant_comptabilise_2 + v_factures_lignes_h_3.montant_comptabilise_22 AS montant_comptabilise_2, + v_factures_lignes_h_3.montant_comptabilise_0, + v_factures_lignes_h_3.montant_depassement, + v_factures_lignes_h_3.montant_encours + FROM activite.v_factures_lignes_h_3, + activite.v_sejours_1 + WHERE v_factures_lignes_h_3.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_h_r_4.yaml b/db/schema2/views/v_factures_lignes_h_r_4.yaml new file mode 100644 index 0000000..492eefb --- /dev/null +++ b/db/schema2/views/v_factures_lignes_h_r_4.yaml @@ -0,0 +1,211 @@ +dep: + - v_factures_lignes_h_3 + - v_sejours_1 +src: | + SELECT v_factures_lignes_h_3.date_vente AS date_reference, + v_factures_lignes_h_3.lieu_service_id AS lieu_reference_service_id, + v_factures_lignes_h_3.lieu_service_code AS lieu_reference_service_code, + v_factures_lignes_h_3.lieu_service_texte AS lieu_reference_service_texte, + v_factures_lignes_h_3.lieu_service_section_id AS lieu_reference_service_section_id, + v_factures_lignes_h_3.lieu_service_section_code AS lieu_reference_service_section_code, + v_factures_lignes_h_3.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_factures_lignes_h_3.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_factures_lignes_h_3.lieu_activite_id AS lieu_reference_activite_id, + v_factures_lignes_h_3.lieu_activite_code AS lieu_reference_activite_code, + v_factures_lignes_h_3.lieu_activite_texte AS lieu_reference_activite_texte, + v_factures_lignes_h_3.lieu_etage_id AS lieu_reference_etage_id, + v_factures_lignes_h_3.lieu_etage_code AS lieu_reference_etage_code, + v_factures_lignes_h_3.lieu_etage_texte AS lieu_reference_etage_texte, + v_factures_lignes_h_3.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_factures_lignes_h_3.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_factures_lignes_h_3.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_factures_lignes_h_3.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_factures_lignes_h_3.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_factures_lignes_h_3.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_lignes_h_3.no_facture, + v_factures_lignes_h_3.facture_id, + v_factures_lignes_h_3.date_facture, + v_factures_lignes_h_3.date_vente, + v_factures_lignes_h_3.prestation_id, + v_factures_lignes_h_3.prestation_code, + v_factures_lignes_h_3.prestation_texte, + v_factures_lignes_h_3.prestation_section_id, + v_factures_lignes_h_3.prestation_section_code, + v_factures_lignes_h_3.prestation_section_texte, + v_factures_lignes_h_3.acte_id, + v_factures_lignes_h_3.acte_code, + v_factures_lignes_h_3.acte_texte, + v_factures_lignes_h_3.acte_section_id, + v_factures_lignes_h_3.acte_section_code, + v_factures_lignes_h_3.acte_section_texte, + v_factures_lignes_h_3.acte_nomenclature_id, + v_factures_lignes_h_3.acte_nomenclature_code, + v_factures_lignes_h_3.acte_nomenclature_texte, + v_factures_lignes_h_3.ccam_regroupement_id, + v_factures_lignes_h_3.ccam_regroupement_code, + v_factures_lignes_h_3.ccam_regroupement_texte, + v_factures_lignes_h_3.protocole_id, + v_factures_lignes_h_3.protocole_code, + v_factures_lignes_h_3.protocole_texte, + v_factures_lignes_h_3.protocole_section_id, + v_factures_lignes_h_3.protocole_section_code, + v_factures_lignes_h_3.protocole_section_texte, + v_factures_lignes_h_3.medecin_adm_facture_id, + v_factures_lignes_h_3.medecin_adm_facture_code, + v_factures_lignes_h_3.medecin_adm_facture_nom, + v_factures_lignes_h_3.medecin_adm_facture_prenom, + v_factures_lignes_h_3.medecin_adm_facture_nom_prenom, + v_factures_lignes_h_3.medecin_adm_facture_section_id, + v_factures_lignes_h_3.medecin_adm_facture_section_code, + v_factures_lignes_h_3.medecin_adm_facture_section_texte, + v_factures_lignes_h_3.medecin_facture_id, + v_factures_lignes_h_3.medecin_facture_code, + v_factures_lignes_h_3.medecin_facture_nom, + v_factures_lignes_h_3.medecin_facture_prenom, + v_factures_lignes_h_3.medecin_facture_nom_prenom, + v_factures_lignes_h_3.medecin_facture_specialite_id, + v_factures_lignes_h_3.medecin_facture_specialite_code, + v_factures_lignes_h_3.medecin_facture_specialite_texte, + v_factures_lignes_h_3.medecin_adm_comptabilise_id, + v_factures_lignes_h_3.medecin_adm_comptabilise_code, + v_factures_lignes_h_3.medecin_adm_comptabilise_nom, + v_factures_lignes_h_3.medecin_adm_comptabilise_prenom, + v_factures_lignes_h_3.medecin_adm_comptabilise_nom_prenom, + v_factures_lignes_h_3.medecin_comptabilise_id, + v_factures_lignes_h_3.medecin_comptabilise_code, + v_factures_lignes_h_3.medecin_comptabilise_nom, + v_factures_lignes_h_3.medecin_comptabilise_prenom, + v_factures_lignes_h_3.medecin_comptabilise_nom_prenom, + v_factures_lignes_h_3.medecin_comptabilise_specialite_id, + v_factures_lignes_h_3.medecin_comptabilise_specialite_code, + v_factures_lignes_h_3.medecin_comptabilise_specialite_texte, + v_factures_lignes_h_3.code_facture, + v_factures_lignes_h_3.nb_rubrique, + CASE + WHEN v_factures_lignes_h_3.montant_facture <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_facture, + CASE + WHEN v_factures_lignes_h_3.montant_encours <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_rubrique_encours, + v_factures_lignes_h_3.nb_prestation, + CASE + WHEN v_factures_lignes_h_3.montant_facture <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_facture, + CASE + WHEN v_factures_lignes_h_3.montant_encours <> 0::numeric THEN v_factures_lignes_h_3.nb_rubrique + ELSE 0::numeric + END AS nb_prestation_encours, + v_factures_lignes_h_3.montant_facture, + v_factures_lignes_h_3.montant_facture_1, + v_factures_lignes_h_3.montant_facture_2 + v_factures_lignes_h_3.montant_facture_22 AS montant_facture_2, + v_factures_lignes_h_3.montant_facture_0, + v_factures_lignes_h_3.montant_comptabilise, + v_factures_lignes_h_3.montant_comptabilise_1, + v_factures_lignes_h_3.montant_comptabilise_2 + v_factures_lignes_h_3.montant_comptabilise_22 AS montant_comptabilise_2, + v_factures_lignes_h_3.montant_comptabilise_0, + v_factures_lignes_h_3.montant_depassement, + v_factures_lignes_h_3.montant_encours + FROM activite.v_factures_lignes_h_3, + activite.v_sejours_1 + WHERE v_factures_lignes_h_3.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_lieu_1.yaml b/db/schema2/views/v_factures_lignes_lieu_1.yaml new file mode 100644 index 0000000..3bdf482 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_lieu_1.yaml @@ -0,0 +1,36 @@ +src: | + SELECT t_lieux_c.oid, + t_lieux_c.service_facturation_id AS lieu_ligne_service_id, + t_lieux_c.service_facturation_code AS lieu_ligne_service_code, + t_lieux_c.service_facturation_texte AS lieu_ligne_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_ligne_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_ligne_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_ligne_service_section_texte, + t_lieux_c.activite_id AS lieu_ligne_activite_id, + t_lieux_c.activite_code AS lieu_ligne_activite_code, + t_lieux_c.activite_texte AS lieu_ligne_activite_texte, + t_lieux_c.etage_id AS lieu_ligne_etage_id, + t_lieux_c.etage_code AS lieu_ligne_etage_code, + t_lieux_c.etage_texte AS lieu_ligne_etage_texte, + t_lieux_c.etage_section_id AS lieu_ligne_etage_section_id, + t_lieux_c.etage_section_code AS lieu_ligne_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_ligne_etage_section_texte, + t_lieux_c.lit_id AS lieu_ligne_lit_id, + t_lieux_c.lit_code AS lieu_ligne_lit_code, + t_lieux_c.lit_texte AS lieu_ligne_lit_texte, + t_lieux_c.lit_section_id AS lieu_ligne_lit_section_id, + t_lieux_c.lit_section_code AS lieu_ligne_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_ligne_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_ligne_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_ligne_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_ligne_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_ligne_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_ligne_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_ligne_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_ligne_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_ligne_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_ligne_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_ligne_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_ligne_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_ligne_unite_fonctionnelle_section_texte + FROM activite.t_lieux_c; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_lpp_1.yaml b/db/schema2/views/v_factures_lignes_lpp_1.yaml new file mode 100644 index 0000000..80c14b4 --- /dev/null +++ b/db/schema2/views/v_factures_lignes_lpp_1.yaml @@ -0,0 +1,26 @@ +src: | + SELECT t_lpp_c.code AS lpp_code, + t_lpp_c.oid AS join_lpp_id, + t_lpp_c.section_code AS lpp_section_code, + t_lpp_c.section_id AS lpp_section_id, + t_lpp_c.section_texte AS lpp_section_texte, + t_lpp_c.texte AS lpp_texte, + t_lpp_c.classification_atc_1_code AS lpp_classification_atc_1_code, + t_lpp_c.classification_atc_1_id AS lpp_classification_atc_1_id, + t_lpp_c.classification_atc_1_texte AS lpp_classification_atc_1_texte, + t_lpp_c.classification_atc_2_code AS lpp_classification_atc_2_code, + t_lpp_c.classification_atc_2_id AS lpp_classification_atc_2_id, + t_lpp_c.classification_atc_2_texte AS lpp_classification_atc_2_texte, + t_lpp_c.classification_atc_3_code AS lpp_classification_atc_3_code, + t_lpp_c.classification_atc_3_id AS lpp_classification_atc_3_id, + t_lpp_c.classification_atc_3_texte AS lpp_classification_atc_3_texte, + t_lpp_c.classification_atc_4_code AS lpp_classification_atc_4_code, + t_lpp_c.classification_atc_4_id AS lpp_classification_atc_4_id, + t_lpp_c.classification_atc_4_texte AS lpp_classification_atc_4_texte, + t_lpp_c.classification_atc_code AS lpp_classification_atc_code, + t_lpp_c.classification_atc_id AS lpp_classification_atc_id, + t_lpp_c.classification_atc_section_code AS lpp_classification_atc_section_code, + t_lpp_c.classification_atc_section_id AS lpp_classification_atc_section_id, + t_lpp_c.classification_atc_section_texte AS lpp_classification_atc_section_texte, + t_lpp_c.classification_atc_texte AS lpp_classification_atc_texte + FROM activite.t_lpp_c; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_prestation_1.yaml b/db/schema2/views/v_factures_lignes_prestation_1.yaml new file mode 100644 index 0000000..647732e --- /dev/null +++ b/db/schema2/views/v_factures_lignes_prestation_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_prestations.oid, + t_prestations.code AS prestation_code, + t_prestations.texte AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte + FROM activite.t_prestations; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_protocole_1.yaml b/db/schema2/views/v_factures_lignes_protocole_1.yaml new file mode 100644 index 0000000..37a9efb --- /dev/null +++ b/db/schema2/views/v_factures_lignes_protocole_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_protocoles.oid, + t_protocoles.code AS protocole_code, + t_protocoles.texte_court AS protocole_texte, + t_protocoles.section_id AS protocole_section_id, + t_protocoles.section_code AS protocole_section_code, + t_protocoles.section_texte AS protocole_section_texte + FROM activite.t_protocoles; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_rubrique_comptabilisation_1.yaml b/db/schema2/views/v_factures_lignes_rubrique_comptabilisation_1.yaml new file mode 100644 index 0000000..3d024bd --- /dev/null +++ b/db/schema2/views/v_factures_lignes_rubrique_comptabilisation_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_rubriques_facturation.oid, + t_rubriques_facturation.code AS rubrique_comptabilisation_code, + t_rubriques_facturation.texte AS rubrique_comptabilisation_texte, + t_rubriques_facturation.section_id AS rubrique_comptabilisation_section_id, + t_rubriques_facturation.section_code AS rubrique_comptabilisation_section_code, + t_rubriques_facturation.section_texte AS rubrique_comptabilisation_section_texte + FROM activite.t_rubriques_facturation; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_rubrique_facturation_1.yaml b/db/schema2/views/v_factures_lignes_rubrique_facturation_1.yaml new file mode 100644 index 0000000..1ea77af --- /dev/null +++ b/db/schema2/views/v_factures_lignes_rubrique_facturation_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_rubriques_facturation.oid, + t_rubriques_facturation.code AS rubrique_facturation_code, + t_rubriques_facturation.texte AS rubrique_facturation_texte, + t_rubriques_facturation.section_id AS rubrique_facturation_section_id, + t_rubriques_facturation.section_code AS rubrique_facturation_section_code, + t_rubriques_facturation.section_texte AS rubrique_facturation_section_texte + FROM activite.t_rubriques_facturation; \ No newline at end of file diff --git a/db/schema2/views/v_factures_lignes_ucd_1.yaml b/db/schema2/views/v_factures_lignes_ucd_1.yaml new file mode 100644 index 0000000..9fc39fd --- /dev/null +++ b/db/schema2/views/v_factures_lignes_ucd_1.yaml @@ -0,0 +1,26 @@ +src: | + SELECT t_ucd_c.code AS ucd_code, + t_ucd_c.oid AS join_ucd_id, + t_ucd_c.section_code AS ucd_section_code, + t_ucd_c.section_id AS ucd_section_id, + t_ucd_c.section_texte AS ucd_section_texte, + t_ucd_c.texte AS ucd_texte, + t_ucd_c.classification_atc_1_code AS ucd_classification_atc_1_code, + t_ucd_c.classification_atc_1_id AS ucd_classification_atc_1_id, + t_ucd_c.classification_atc_1_texte AS ucd_classification_atc_1_texte, + t_ucd_c.classification_atc_2_code AS ucd_classification_atc_2_code, + t_ucd_c.classification_atc_2_id AS ucd_classification_atc_2_id, + t_ucd_c.classification_atc_2_texte AS ucd_classification_atc_2_texte, + t_ucd_c.classification_atc_3_code AS ucd_classification_atc_3_code, + t_ucd_c.classification_atc_3_id AS ucd_classification_atc_3_id, + t_ucd_c.classification_atc_3_texte AS ucd_classification_atc_3_texte, + t_ucd_c.classification_atc_4_code AS ucd_classification_atc_4_code, + t_ucd_c.classification_atc_4_id AS ucd_classification_atc_4_id, + t_ucd_c.classification_atc_4_texte AS ucd_classification_atc_4_texte, + t_ucd_c.classification_atc_code AS ucd_classification_atc_code, + t_ucd_c.classification_atc_id AS ucd_classification_atc_id, + t_ucd_c.classification_atc_section_code AS ucd_classification_atc_section_code, + t_ucd_c.classification_atc_section_id AS ucd_classification_atc_section_id, + t_ucd_c.classification_atc_section_texte AS ucd_classification_atc_section_texte, + t_ucd_c.classification_atc_texte AS ucd_classification_atc_texte + FROM activite.t_ucd_c; \ No newline at end of file diff --git a/db/schema2/views/v_factures_r_1.yaml b/db/schema2/views/v_factures_r_1.yaml new file mode 100644 index 0000000..6fe32c3 --- /dev/null +++ b/db/schema2/views/v_factures_r_1.yaml @@ -0,0 +1,129 @@ +dep: + - v_factures_1 + - v_sejours_1 +src: | + SELECT v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_1.no_facture, + v_factures_1.facture_id, + v_factures_1.date_debut, + v_factures_1.date_fin, + v_factures_1.type_facture, + v_factures_1.code_facture, + v_factures_1.date_facture, + v_factures_1.code_vente, + v_factures_1.date_vente, + v_factures_1.mois_vente, + v_factures_1.date_solde, + v_factures_1.montant_facture_c, + v_factures_1.montant_facture_h, + v_factures_1.montant_regle_c, + v_factures_1.montant_regle_h, + v_factures_1.delai_facture, + v_factures_1.delai_solde, + v_factures_1.date_expedition, + v_factures_1.delai_expedition, + v_factures_1.tiers_payant_1_id, + v_factures_1.tiers_payant_2_id, + v_factures_1.tiers_payant_22_id, + v_factures_1.tiers_payant_0_id, + v_factures_1.date_solde_0_c, + v_factures_1.date_solde_0_h, + v_factures_1.date_solde_1_c, + v_factures_1.date_solde_1_h, + v_factures_1.date_solde_2_c, + v_factures_1.date_solde_2_h, + v_factures_1.date_solde_22_c, + v_factures_1.date_solde_22_h, + v_factures_1.date_expedition_0, + v_factures_1.date_expedition_1, + v_factures_1.date_expedition_2, + v_factures_1.date_expedition_22, + v_factures_1.code_expedie_0, + v_factures_1.code_expedie_1, + v_factures_1.code_expedie_2, + v_factures_1.code_expedie_22, + v_factures_1.no_bordereau_0, + v_factures_1.no_bordereau_1, + v_factures_1.no_bordereau_2, + v_factures_1.no_bordereau_22, + v_factures_1.montant_facture_0_c, + v_factures_1.montant_facture_0_h, + v_factures_1.montant_facture_1_c, + v_factures_1.montant_facture_1_h, + v_factures_1.montant_facture_2_c, + v_factures_1.montant_facture_2_h, + v_factures_1.montant_facture_22_c, + v_factures_1.montant_facture_22_h, + v_factures_1.montant_regle_0_c, + v_factures_1.montant_regle_0_h, + v_factures_1.montant_regle_1_c, + v_factures_1.montant_regle_1_h, + v_factures_1.montant_regle_2_c, + v_factures_1.montant_regle_2_h, + v_factures_1.montant_regle_22_c, + v_factures_1.montant_regle_22_h, + v_factures_1.delai_expedition_0, + v_factures_1.delai_expedition_1, + v_factures_1.delai_expedition_2, + v_factures_1.delai_expedition_22, + v_factures_1.delai_solde_0_c, + v_factures_1.delai_solde_0_h, + v_factures_1.delai_solde_1_c, + v_factures_1.delai_solde_1_h, + v_factures_1.delai_solde_2_c, + v_factures_1.delai_solde_2_h, + v_factures_1.delai_solde_22_c, + v_factures_1.delai_solde_22_h, + v_factures_1.particularite_t2a, + v_factures_1.code_cloture, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte + FROM activite.v_factures_1, + activite.v_sejours_1 + WHERE v_factures_1.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_reference_1.yaml b/db/schema2/views/v_factures_reference_1.yaml new file mode 100644 index 0000000..7af4278 --- /dev/null +++ b/db/schema2/views/v_factures_reference_1.yaml @@ -0,0 +1,569 @@ +src: | + SELECT p_factures_reference.sejour_id, + p_factures_reference.no_sejour, + p_factures_reference.date_entree, + p_factures_reference.date_sortie, + p_factures_reference.code_sorti, + p_factures_reference.facture_reference_id, + p_factures_reference.no_facture_reference, + p_factures_reference.type_t2a, + p_factures_reference.date_debut_facture, + p_factures_reference.date_fin_facture, + p_factures_reference.date_groupage, + p_factures_reference.retard_groupage, + p_factures_reference.delai_groupage, + p_factures_reference.nb_groupe, + p_factures_reference.nb_non_groupe, + p_factures_reference.nb_calculable, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id = 0 AND p_factures_reference.code_facture <> '1'::text THEN 1 + ELSE 0 + END AS nb_non_groupes, + p_factures_reference.ghs_id, + p_factures_reference.ghs_bebe1_id, + p_factures_reference.ghs_bebe2_id, + p_factures_reference.ghs_bebe3_id, + p_factures_reference.tiers_payant_0_id, + p_factures_reference.tiers_payant_1_id, + p_factures_reference.tiers_payant_2_id, + p_factures_reference.tiers_payant_22_id, + p_factures_reference.tiers_payant_1_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_reference.code_facture, + p_factures_reference.date_facture, + p_factures_reference.delai_facture, + p_factures_reference.retard_facture, + p_factures_reference.code_vente, + p_factures_reference.date_vente, + p_factures_reference.nb_factures, + CASE + WHEN p_factures_reference.nb_non_calcules = 0 THEN 1 + ELSE 0 + END AS nb_calcules, + p_factures_reference.nb_non_calcules, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN p_factures_reference.nb_non_calcules + ELSE 0 + END AS nb_non_calcules_groupes, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0 + ELSE p_factures_reference.nb_non_calcules + END AS nb_non_calcules_non_groupes, + p_factures_reference.nb_factures_regularisation, + p_factures_reference.nb_rejets, + p_factures_reference.code_expedie_0, + p_factures_reference.code_expedie_1, + p_factures_reference.code_expedie_2, + p_factures_reference.date_expedition, + p_factures_reference.date_expedition_0, + p_factures_reference.date_expedition_1, + p_factures_reference.date_expedition_2, + p_factures_reference.no_bordereau_0, + p_factures_reference.no_bordereau_1, + p_factures_reference.no_bordereau_2, + p_factures_reference.delai_expedition, + p_factures_reference.delai_expedition_0, + p_factures_reference.delai_expedition_1, + p_factures_reference.delai_expedition_2, + p_factures_reference.nb_non_expedie, + p_factures_reference.nb_non_expedie_c, + p_factures_reference.nb_non_expedie_h, + p_factures_reference.nb_non_expedie_0, + p_factures_reference.nb_non_expedie_0_c, + p_factures_reference.nb_non_expedie_0_h, + p_factures_reference.nb_non_expedie_1, + p_factures_reference.nb_non_expedie_1_c, + p_factures_reference.nb_non_expedie_1_h, + p_factures_reference.nb_non_expedie_2, + p_factures_reference.nb_non_expedie_2_c, + p_factures_reference.nb_non_expedie_2_h, + CASE + WHEN p_factures_reference.nb_non_expedie_0 = 1::numeric THEN p_factures_reference.montant_comptabilise_0_c - p_factures_reference.montant_regle_0_c + p_factures_reference.montant_comptabilise_0_h - p_factures_reference.montant_regle_0_h + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference.nb_non_expedie_1 = 1::numeric THEN p_factures_reference.montant_comptabilise_1_c - p_factures_reference.montant_regle_1_c + p_factures_reference.montant_comptabilise_1_h - p_factures_reference.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference.nb_non_expedie_2 = 1::numeric THEN p_factures_reference.montant_comptabilise_2_c - p_factures_reference.montant_regle_2_c + p_factures_reference.montant_comptabilise_2_h - p_factures_reference.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_factures_reference.nb_non_expedie_0 = 1::numeric THEN p_factures_reference.montant_comptabilise_0_c - p_factures_reference.montant_regle_0_c + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference.nb_non_expedie_1 = 1::numeric THEN p_factures_reference.montant_comptabilise_1_c - p_factures_reference.montant_regle_1_c + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference.nb_non_expedie_2 = 1::numeric THEN p_factures_reference.montant_comptabilise_2_c - p_factures_reference.montant_regle_2_c + ELSE 0::numeric + END AS montant_non_expedie_c, + CASE + WHEN p_factures_reference.nb_non_expedie_0 = 1::numeric THEN p_factures_reference.montant_comptabilise_0_h - p_factures_reference.montant_regle_0_h + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference.nb_non_expedie_1 = 1::numeric THEN p_factures_reference.montant_comptabilise_1_h - p_factures_reference.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference.nb_non_expedie_2 = 1::numeric THEN p_factures_reference.montant_comptabilise_2_h - p_factures_reference.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie_h, + CASE + WHEN p_factures_reference.nb_non_expedie_0 = 1::numeric THEN p_factures_reference.montant_comptabilise_0 - p_factures_reference.montant_regle_0 + ELSE 0::numeric + END AS montant_non_expedie_0, + CASE + WHEN p_factures_reference.nb_non_expedie_0 = 1::numeric THEN p_factures_reference.montant_comptabilise_0_c - p_factures_reference.montant_regle_0_c + ELSE 0::numeric + END AS montant_non_expedie_0_c, + CASE + WHEN p_factures_reference.nb_non_expedie_0 = 1::numeric THEN p_factures_reference.montant_comptabilise_0_h - p_factures_reference.montant_regle_0_h + ELSE 0::numeric + END AS montant_non_expedie_0_h, + CASE + WHEN p_factures_reference.nb_non_expedie_1 = 1::numeric THEN p_factures_reference.montant_comptabilise_1 - p_factures_reference.montant_regle_1 + ELSE 0::numeric + END AS montant_non_expedie_1, + CASE + WHEN p_factures_reference.nb_non_expedie_1 = 1::numeric THEN p_factures_reference.montant_comptabilise_1_c - p_factures_reference.montant_regle_1_c + ELSE 0::numeric + END AS montant_non_expedie_1_c, + CASE + WHEN p_factures_reference.nb_non_expedie_1 = 1::numeric THEN p_factures_reference.montant_comptabilise_1_h - p_factures_reference.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1_h, + CASE + WHEN p_factures_reference.nb_non_expedie_2 = 1::numeric THEN p_factures_reference.montant_comptabilise_2 - p_factures_reference.montant_regle_2 + ELSE 0::numeric + END AS montant_non_expedie_2, + CASE + WHEN p_factures_reference.nb_non_expedie_2 = 1::numeric THEN p_factures_reference.montant_comptabilise_2_c - p_factures_reference.montant_regle_2_c + ELSE 0::numeric + END AS montant_non_expedie_2_c, + CASE + WHEN p_factures_reference.nb_non_expedie_2 = 1::numeric THEN p_factures_reference.montant_comptabilise_2_h - p_factures_reference.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie_2_h, + p_factures_reference.montant_facture, + p_factures_reference.montant_facture_c, + p_factures_reference.montant_facture_h, + p_factures_reference.montant_facture_0, + p_factures_reference.montant_facture_0_c, + p_factures_reference.montant_facture_0_h, + p_factures_reference.montant_facture_1, + p_factures_reference.montant_facture_1_c, + p_factures_reference.montant_facture_1_h, + p_factures_reference.montant_facture_2, + p_factures_reference.montant_facture_2_c, + p_factures_reference.montant_facture_2_h, + p_factures_reference.montant_facture_c_actes_inclus_dans_sejour, + p_factures_reference.montant_facture_h_actes_inclus_dans_sejour, + p_factures_reference.montant_encours, + p_factures_reference.montant_encours_c, + p_factures_reference.montant_encours_h, + p_factures_reference.montant_encours_0, + p_factures_reference.montant_encours_0_c, + p_factures_reference.montant_encours_0_h, + p_factures_reference.montant_encours_1, + p_factures_reference.montant_encours_1_c, + p_factures_reference.montant_encours_1_h, + p_factures_reference.montant_encours_2, + p_factures_reference.montant_encours_2_c, + p_factures_reference.montant_encours_2_h, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours + ELSE 0::numeric + END AS montant_encours_groupes, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_c + ELSE 0::numeric + END AS montant_encours_groupes_c, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_h + ELSE 0::numeric + END AS montant_encours_groupes_h, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_groupes_0, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_0_c + ELSE 0::numeric + END AS montant_encours_groupes_0_c, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_0_h + ELSE 0::numeric + END AS montant_encours_groupes_0_h, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_groupes_1, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_1_c + ELSE 0::numeric + END AS montant_encours_groupes_1_c, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_1_h + ELSE 0::numeric + END AS montant_encours_groupes_1_h, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_groupes_2, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_2_c + ELSE 0::numeric + END AS montant_encours_groupes_2_c, + CASE + WHEN p_factures_reference.nb_non_groupe = 0::numeric THEN p_factures_reference.montant_encours_2_h + ELSE 0::numeric + END AS montant_encours_groupes_2_h, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupes, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_c + ELSE 0::numeric + END AS montant_encours_non_groupes_c, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_h + ELSE 0::numeric + END AS montant_encours_non_groupes_h, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_non_groupes_0, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_0_c + ELSE 0::numeric + END AS montant_encours_non_groupes_0_c, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_0_h + ELSE 0::numeric + END AS montant_encours_non_groupes_0_h, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_non_groupes_1, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_1_c + ELSE 0::numeric + END AS montant_encours_non_groupes_1_c, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_1_h + ELSE 0::numeric + END AS montant_encours_non_groupes_1_h, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_non_groupes_2, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_2_c + ELSE 0::numeric + END AS montant_encours_non_groupes_2_c, + CASE + WHEN p_factures_reference.nb_non_groupe = 1::numeric THEN p_factures_reference.montant_encours_2_h + ELSE 0::numeric + END AS montant_encours_non_groupes_2_h, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture + p_factures_reference.montant_encours + ELSE 0::numeric + END AS montant_non_calcules, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_c + p_factures_reference.montant_encours_c + ELSE 0::numeric + END AS montant_non_calcules_c, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_h + p_factures_reference.montant_encours_h + ELSE 0::numeric + END AS montant_non_calcules_h, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_0 + p_factures_reference.montant_encours_0 + ELSE 0::numeric + END AS montant_non_calcules_0, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_0_c + p_factures_reference.montant_encours_0_c + ELSE 0::numeric + END AS montant_non_calcules_0_c, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_0_h + p_factures_reference.montant_encours_0_h + ELSE 0::numeric + END AS montant_non_calcules_0_h, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_1 + p_factures_reference.montant_encours_1 + ELSE 0::numeric + END AS montant_non_calcules_1, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_1_c + p_factures_reference.montant_encours_1_c + ELSE 0::numeric + END AS montant_non_calcules_1_c, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_1_h + p_factures_reference.montant_encours_1_h + ELSE 0::numeric + END AS montant_non_calcules_1_h, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_2 + p_factures_reference.montant_encours_2 + ELSE 0::numeric + END AS montant_non_calcules_2, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_2_c + p_factures_reference.montant_encours_2_c + ELSE 0::numeric + END AS montant_non_calcules_2_c, + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_2_h + p_factures_reference.montant_encours_2_h + ELSE 0::numeric + END AS montant_non_calcules_2_h, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture + p_factures_reference.montant_encours + ELSE 0::numeric + END AS montant_non_calcules_groupes, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_c + p_factures_reference.montant_encours_c + ELSE 0::numeric + END AS montant_non_calcules_groupes_c, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_h + p_factures_reference.montant_encours_h + ELSE 0::numeric + END AS montant_non_calcules_groupes_h, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture + p_factures_reference.montant_encours_0 + ELSE 0::numeric + END AS montant_non_calcules_groupes_0, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_c + p_factures_reference.montant_encours_0_c + ELSE 0::numeric + END AS montant_non_calcules_groupes_0_c, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_h + p_factures_reference.montant_encours_0_h + ELSE 0::numeric + END AS montant_non_calcules_groupes_0_h, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture + p_factures_reference.montant_encours_1 + ELSE 0::numeric + END AS montant_non_calcules_groupes_1, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_c + p_factures_reference.montant_encours_1_c + ELSE 0::numeric + END AS montant_non_calcules_groupes_1_c, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_h + p_factures_reference.montant_encours_1_h + ELSE 0::numeric + END AS montant_non_calcules_groupes_1_h, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture + p_factures_reference.montant_encours_2 + ELSE 0::numeric + END AS montant_non_calcules_groupes_2, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_c + p_factures_reference.montant_encours_2_c + ELSE 0::numeric + END AS montant_non_calcules_groupes_2_c, + CASE + WHEN (p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar) AND p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_h + p_factures_reference.montant_encours_2_h + ELSE 0::numeric + END AS montant_non_calcules_groupes_2_h, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture + p_factures_reference.montant_encours + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_c + p_factures_reference.montant_encours_c + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_c, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_h + p_factures_reference.montant_encours_h + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_h, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_0 + p_factures_reference.montant_encours_0 + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_0, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_0_c + p_factures_reference.montant_encours_0_c + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_0_c, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_0_h + p_factures_reference.montant_encours_0_h + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_0_h, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_1 + p_factures_reference.montant_encours_1 + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_1, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_1_c + p_factures_reference.montant_encours_1_c + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_1_c, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_1_h + p_factures_reference.montant_encours_1_h + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_1_h, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_2 + p_factures_reference.montant_encours_2 + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_2, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_2_c + p_factures_reference.montant_encours_2_c + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_2_c, + CASE + WHEN p_factures_reference.type_t2a = '1'::bpchar AND p_factures_reference.ghs_id <> 0 OR p_factures_reference.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference.nb_non_calcules > 0 THEN p_factures_reference.montant_facture_2_h + p_factures_reference.montant_encours_2_h + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_2_h, + p_factures_reference.montant_comptabilise, + p_factures_reference.montant_comptabilise_c, + p_factures_reference.montant_comptabilise_h, + p_factures_reference.montant_comptabilise_0, + p_factures_reference.montant_comptabilise_0_c, + p_factures_reference.montant_comptabilise_0_h, + p_factures_reference.montant_comptabilise_1, + p_factures_reference.montant_comptabilise_1_c, + p_factures_reference.montant_comptabilise_1_h, + p_factures_reference.montant_comptabilise_2, + p_factures_reference.montant_comptabilise_2_c, + p_factures_reference.montant_comptabilise_2_h, + p_factures_reference.montant_comptabilise_budget_global_c, + p_factures_reference.montant_regle, + p_factures_reference.montant_regle_c, + p_factures_reference.montant_regle_h, + p_factures_reference.montant_regle_0, + p_factures_reference.montant_regle_0_c, + p_factures_reference.montant_regle_0_h, + p_factures_reference.montant_regle_1, + p_factures_reference.montant_regle_1_c, + p_factures_reference.montant_regle_1_h, + p_factures_reference.montant_regle_2, + p_factures_reference.montant_regle_2_c, + p_factures_reference.montant_regle_2_h, + p_factures_reference.date_solde, + p_factures_reference.date_solde_c, + p_factures_reference.date_solde_h, + p_factures_reference.date_solde_0, + p_factures_reference.date_solde_0_c, + p_factures_reference.date_solde_0_h, + p_factures_reference.date_solde_1, + p_factures_reference.date_solde_1_c, + p_factures_reference.date_solde_1_h, + p_factures_reference.date_solde_2, + p_factures_reference.date_solde_2_c, + p_factures_reference.date_solde_2_h, + p_factures_reference.delai_solde, + p_factures_reference.delai_solde_c, + p_factures_reference.delai_solde_h, + p_factures_reference.delai_solde_0, + p_factures_reference.delai_solde_0_c, + p_factures_reference.delai_solde_0_h, + p_factures_reference.delai_solde_1, + p_factures_reference.delai_solde_1_c, + p_factures_reference.delai_solde_1_h, + p_factures_reference.delai_solde_2, + p_factures_reference.delai_solde_2_c, + p_factures_reference.delai_solde_2_h, + p_factures_reference.nb_non_solde, + p_factures_reference.nb_non_solde_c, + p_factures_reference.nb_non_solde_h, + p_factures_reference.nb_non_solde_0, + p_factures_reference.nb_non_solde_0_c, + p_factures_reference.nb_non_solde_0_h, + p_factures_reference.nb_non_solde_1, + p_factures_reference.nb_non_solde_1_c, + p_factures_reference.nb_non_solde_1_h, + p_factures_reference.nb_non_solde_2, + p_factures_reference.nb_non_solde_2_c, + p_factures_reference.nb_non_solde_2_h, + p_factures_reference.montant_comptabilise - p_factures_reference.montant_regle AS montant_solde, + p_factures_reference.montant_comptabilise_c - p_factures_reference.montant_regle_c AS montant_solde_c, + p_factures_reference.montant_comptabilise_h - p_factures_reference.montant_regle_h AS montant_solde_h, + p_factures_reference.montant_comptabilise_0 - p_factures_reference.montant_regle_0 AS montant_solde_0, + p_factures_reference.montant_comptabilise_0_c - p_factures_reference.montant_regle_0_c AS montant_solde_0_c, + p_factures_reference.montant_comptabilise_0_h - p_factures_reference.montant_regle_0_h AS montant_solde_0_h, + p_factures_reference.montant_comptabilise_1 - p_factures_reference.montant_regle_1 AS montant_solde_1, + p_factures_reference.montant_comptabilise_1_c - p_factures_reference.montant_regle_1_c AS montant_solde_1_c, + p_factures_reference.montant_comptabilise_1_h - p_factures_reference.montant_regle_1_h AS montant_solde_1_h, + p_factures_reference.montant_comptabilise_2 - p_factures_reference.montant_regle_2 AS montant_solde_2, + p_factures_reference.montant_comptabilise_2_c - p_factures_reference.montant_regle_2_c AS montant_solde_2_c, + p_factures_reference.montant_comptabilise_2_h - p_factures_reference.montant_regle_2_h AS montant_solde_2_h, + p_factures_reference.nb_non_cloture, + p_factures_reference.nb_non_cloture_c, + p_factures_reference.nb_non_cloture_h, + p_factures_reference.nb_non_cloture_0, + p_factures_reference.nb_non_cloture_0_c, + p_factures_reference.nb_non_cloture_0_h, + p_factures_reference.nb_non_cloture_1, + p_factures_reference.nb_non_cloture_1_c, + p_factures_reference.nb_non_cloture_1_h, + p_factures_reference.nb_non_cloture_2, + p_factures_reference.nb_non_cloture_2_c, + p_factures_reference.nb_non_cloture_2_h, + p_factures_reference.nb_rubriques_c, + p_factures_reference.nb_rubriques_h, + p_factures_reference.motif_non_facturation_id, + p_factures_reference.motif_non_facturation_comment, + p_factures_reference.nb_non_calcules_bg, + p_factures_reference.nb_non_calcules_horsbg, + p_factures_reference.pole_sortie_id AS pole_id + FROM activite.p_factures_reference + JOIN activite.t_tiers_payant ON p_factures_reference.tiers_payant_1_id = t_tiers_payant.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_reference_r_2.yaml b/db/schema2/views/v_factures_reference_r_2.yaml new file mode 100644 index 0000000..2310e85 --- /dev/null +++ b/db/schema2/views/v_factures_reference_r_2.yaml @@ -0,0 +1,416 @@ +dep: + - v_factures_reference_1 + - v_sejours_1 +src: | + SELECT v_factures_reference_1.date_fin_facture AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess_section_id, + v_sejours_1.finess_section_code, + v_sejours_1.finess_section_texte, + v_sejours_1.finess, + v_sejours_1.provider_id, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.est_budget_global, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.heure_entree, + v_sejours_1.mode_entree, + v_sejours_1.provenance, + v_sejours_1.mois_sortie, + v_factures_reference_1.code_sorti, + v_sejours_1.date_sortie, + v_sejours_1.heure_sortie, + v_sejours_1.mode_sortie, + v_sejours_1.destination, + v_sejours_1.est_sans_facturation, + v_sejours_1.duree, + v_sejours_1.code_cp_demandee, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id, + v_sejours_1.medecin_adm_sejour_section_code, + v_sejours_1.medecin_adm_sejour_section_texte, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_code, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.medecin_sejour_specialite_id, + v_sejours_1.medecin_sejour_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_service_section_nb_lits, + v_sejours_1.lieu_sortie_service_section_nb_cp, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_lit_section_id, + v_sejours_1.lieu_sortie_lit_section_code, + v_sejours_1.lieu_sortie_lit_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_sejours_1.lieu_sortie_unite_medicale_section_id, + v_sejours_1.lieu_sortie_unite_medicale_section_code, + v_sejours_1.lieu_sortie_unite_medicale_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte, + v_factures_reference_1.facture_reference_id, + v_factures_reference_1.no_facture_reference, + v_factures_reference_1.type_t2a, + v_factures_reference_1.date_debut_facture, + v_factures_reference_1.date_fin_facture, + v_factures_reference_1.date_groupage, + v_factures_reference_1.retard_groupage, + v_factures_reference_1.delai_groupage, + v_factures_reference_1.nb_groupe, + v_factures_reference_1.nb_non_groupe, + v_factures_reference_1.nb_calculable, + v_factures_reference_1.nb_non_groupes, + v_factures_reference_1.tiers_payant_0_id, + v_factures_reference_1.tiers_payant_1_id, + v_factures_reference_1.tiers_payant_2_id, + v_factures_reference_1.tiers_payant_22_id, + v_factures_reference_1.tiers_payant_id, + v_factures_reference_1.tiers_payant_code, + v_factures_reference_1.tiers_payant_texte, + v_factures_reference_1.type_tiers_payant_id, + v_factures_reference_1.type_tiers_payant_code, + v_factures_reference_1.type_tiers_payant_texte, + v_factures_reference_1.tiers_payant_grand_regime_id, + v_factures_reference_1.tiers_payant_grand_regime_code, + v_factures_reference_1.tiers_payant_grand_regime_texte, + v_factures_reference_1.tiers_payant_section_id, + v_factures_reference_1.tiers_payant_section_code, + v_factures_reference_1.tiers_payant_section_texte, + v_factures_reference_1.code_facture, + v_factures_reference_1.date_facture, + v_factures_reference_1.retard_facture, + v_factures_reference_1.delai_facture, + v_factures_reference_1.code_vente, + v_factures_reference_1.date_vente, + v_factures_reference_1.nb_factures, + v_factures_reference_1.nb_calcules, + v_factures_reference_1.nb_non_calcules, + v_factures_reference_1.nb_non_calcules_groupes, + v_factures_reference_1.nb_non_calcules_non_groupes, + v_factures_reference_1.nb_factures_regularisation, + v_factures_reference_1.nb_rejets, + v_factures_reference_1.code_expedie_0, + v_factures_reference_1.code_expedie_1, + v_factures_reference_1.code_expedie_2, + v_factures_reference_1.date_expedition, + v_factures_reference_1.date_expedition_0, + v_factures_reference_1.date_expedition_1, + v_factures_reference_1.date_expedition_2, + v_factures_reference_1.no_bordereau_0, + v_factures_reference_1.no_bordereau_1, + v_factures_reference_1.no_bordereau_2, + v_factures_reference_1.delai_expedition, + v_factures_reference_1.delai_expedition_0, + v_factures_reference_1.delai_expedition_1, + v_factures_reference_1.delai_expedition_2, + v_factures_reference_1.nb_non_expedie, + v_factures_reference_1.nb_non_expedie_c, + v_factures_reference_1.nb_non_expedie_h, + v_factures_reference_1.nb_non_expedie_0, + v_factures_reference_1.nb_non_expedie_0_c, + v_factures_reference_1.nb_non_expedie_0_h, + v_factures_reference_1.nb_non_expedie_1, + v_factures_reference_1.nb_non_expedie_1_c, + v_factures_reference_1.nb_non_expedie_1_h, + v_factures_reference_1.nb_non_expedie_2, + v_factures_reference_1.nb_non_expedie_2_c, + v_factures_reference_1.nb_non_expedie_2_h, + v_factures_reference_1.montant_non_expedie, + v_factures_reference_1.montant_non_expedie_c, + v_factures_reference_1.montant_non_expedie_h, + v_factures_reference_1.montant_non_expedie_0, + v_factures_reference_1.montant_non_expedie_0_c, + v_factures_reference_1.montant_non_expedie_0_h, + v_factures_reference_1.montant_non_expedie_1, + v_factures_reference_1.montant_non_expedie_1_c, + v_factures_reference_1.montant_non_expedie_1_h, + v_factures_reference_1.montant_non_expedie_2, + v_factures_reference_1.montant_non_expedie_2_c, + v_factures_reference_1.montant_non_expedie_2_h, + v_factures_reference_1.montant_facture, + v_factures_reference_1.montant_facture_c, + v_factures_reference_1.montant_facture_h, + v_factures_reference_1.montant_facture_0, + v_factures_reference_1.montant_facture_0_c, + v_factures_reference_1.montant_facture_0_h, + v_factures_reference_1.montant_facture_1, + v_factures_reference_1.montant_facture_1_c, + v_factures_reference_1.montant_facture_1_h, + v_factures_reference_1.montant_facture_2, + v_factures_reference_1.montant_facture_2_c, + v_factures_reference_1.montant_facture_2_h, + v_factures_reference_1.montant_facture_c_actes_inclus_dans_sejour, + v_factures_reference_1.montant_facture_h_actes_inclus_dans_sejour, + v_factures_reference_1.montant_encours, + v_factures_reference_1.montant_encours_c, + v_factures_reference_1.montant_encours_h, + v_factures_reference_1.montant_encours_0, + v_factures_reference_1.montant_encours_0_c, + v_factures_reference_1.montant_encours_0_h, + v_factures_reference_1.montant_encours_1, + v_factures_reference_1.montant_encours_1_c, + v_factures_reference_1.montant_encours_1_h, + v_factures_reference_1.montant_encours_2, + v_factures_reference_1.montant_encours_2_c, + v_factures_reference_1.montant_encours_2_h, + v_factures_reference_1.montant_encours_groupes, + v_factures_reference_1.montant_encours_groupes_c, + v_factures_reference_1.montant_encours_groupes_h, + v_factures_reference_1.montant_encours_groupes_0, + v_factures_reference_1.montant_encours_groupes_0_c, + v_factures_reference_1.montant_encours_groupes_0_h, + v_factures_reference_1.montant_encours_groupes_1, + v_factures_reference_1.montant_encours_groupes_1_c, + v_factures_reference_1.montant_encours_groupes_1_h, + v_factures_reference_1.montant_encours_groupes_2, + v_factures_reference_1.montant_encours_groupes_2_c, + v_factures_reference_1.montant_encours_groupes_2_h, + v_factures_reference_1.montant_encours_non_groupes, + v_factures_reference_1.montant_encours_non_groupes_c, + v_factures_reference_1.montant_encours_non_groupes_h, + v_factures_reference_1.montant_encours_non_groupes_0, + v_factures_reference_1.montant_encours_non_groupes_0_c, + v_factures_reference_1.montant_encours_non_groupes_0_h, + v_factures_reference_1.montant_encours_non_groupes_1, + v_factures_reference_1.montant_encours_non_groupes_1_c, + v_factures_reference_1.montant_encours_non_groupes_1_h, + v_factures_reference_1.montant_encours_non_groupes_2, + v_factures_reference_1.montant_encours_non_groupes_2_c, + v_factures_reference_1.montant_encours_non_groupes_2_h, + v_factures_reference_1.montant_non_calcules, + v_factures_reference_1.montant_non_calcules_c, + v_factures_reference_1.montant_non_calcules_h, + v_factures_reference_1.montant_non_calcules_0, + v_factures_reference_1.montant_non_calcules_0_c, + v_factures_reference_1.montant_non_calcules_0_h, + v_factures_reference_1.montant_non_calcules_1, + v_factures_reference_1.montant_non_calcules_1_c, + v_factures_reference_1.montant_non_calcules_1_h, + v_factures_reference_1.montant_non_calcules_2, + v_factures_reference_1.montant_non_calcules_2_c, + v_factures_reference_1.montant_non_calcules_2_h, + v_factures_reference_1.montant_non_calcules_groupes, + v_factures_reference_1.montant_non_calcules_groupes_c, + v_factures_reference_1.montant_non_calcules_groupes_h, + v_factures_reference_1.montant_non_calcules_groupes_0, + v_factures_reference_1.montant_non_calcules_groupes_0_c, + v_factures_reference_1.montant_non_calcules_groupes_0_h, + v_factures_reference_1.montant_non_calcules_groupes_1, + v_factures_reference_1.montant_non_calcules_groupes_1_c, + v_factures_reference_1.montant_non_calcules_groupes_1_h, + v_factures_reference_1.montant_non_calcules_groupes_2, + v_factures_reference_1.montant_non_calcules_groupes_2_c, + v_factures_reference_1.montant_non_calcules_groupes_2_h, + v_factures_reference_1.montant_non_calcules_non_groupes, + v_factures_reference_1.montant_non_calcules_non_groupes_c, + v_factures_reference_1.montant_non_calcules_non_groupes_h, + v_factures_reference_1.montant_non_calcules_non_groupes_0, + v_factures_reference_1.montant_non_calcules_non_groupes_0_c, + v_factures_reference_1.montant_non_calcules_non_groupes_0_h, + v_factures_reference_1.montant_non_calcules_non_groupes_1, + v_factures_reference_1.montant_non_calcules_non_groupes_1_c, + v_factures_reference_1.montant_non_calcules_non_groupes_1_h, + v_factures_reference_1.montant_non_calcules_non_groupes_2, + v_factures_reference_1.montant_non_calcules_non_groupes_2_c, + v_factures_reference_1.montant_non_calcules_non_groupes_2_h, + v_factures_reference_1.montant_comptabilise, + v_factures_reference_1.montant_comptabilise_c, + v_factures_reference_1.montant_comptabilise_h, + v_factures_reference_1.montant_comptabilise_0, + v_factures_reference_1.montant_comptabilise_0_c, + v_factures_reference_1.montant_comptabilise_0_h, + v_factures_reference_1.montant_comptabilise_1, + v_factures_reference_1.montant_comptabilise_1_c, + v_factures_reference_1.montant_comptabilise_1_h, + v_factures_reference_1.montant_comptabilise_2, + v_factures_reference_1.montant_comptabilise_2_c, + v_factures_reference_1.montant_comptabilise_2_h, + v_factures_reference_1.montant_comptabilise_budget_global_c, + v_factures_reference_1.montant_regle, + v_factures_reference_1.montant_regle_c, + v_factures_reference_1.montant_regle_h, + v_factures_reference_1.montant_regle_0, + v_factures_reference_1.montant_regle_0_c, + v_factures_reference_1.montant_regle_0_h, + v_factures_reference_1.montant_regle_1, + v_factures_reference_1.montant_regle_1_c, + v_factures_reference_1.montant_regle_1_h, + v_factures_reference_1.montant_regle_2, + v_factures_reference_1.montant_regle_2_c, + v_factures_reference_1.montant_regle_2_h, + v_factures_reference_1.date_solde, + v_factures_reference_1.date_solde_c, + v_factures_reference_1.date_solde_h, + v_factures_reference_1.date_solde_0, + v_factures_reference_1.date_solde_0_c, + v_factures_reference_1.date_solde_0_h, + v_factures_reference_1.date_solde_1, + v_factures_reference_1.date_solde_1_c, + v_factures_reference_1.date_solde_1_h, + v_factures_reference_1.date_solde_2, + v_factures_reference_1.date_solde_2_c, + v_factures_reference_1.date_solde_2_h, + v_factures_reference_1.delai_solde, + v_factures_reference_1.delai_solde_c, + v_factures_reference_1.delai_solde_h, + v_factures_reference_1.delai_solde_0, + v_factures_reference_1.delai_solde_0_c, + v_factures_reference_1.delai_solde_0_h, + v_factures_reference_1.delai_solde_1, + v_factures_reference_1.delai_solde_1_c, + v_factures_reference_1.delai_solde_1_h, + v_factures_reference_1.delai_solde_2, + v_factures_reference_1.delai_solde_2_c, + v_factures_reference_1.delai_solde_2_h, + v_factures_reference_1.nb_non_solde, + v_factures_reference_1.nb_non_solde_c, + v_factures_reference_1.nb_non_solde_h, + v_factures_reference_1.nb_non_solde_0, + v_factures_reference_1.nb_non_solde_0_c, + v_factures_reference_1.nb_non_solde_0_h, + v_factures_reference_1.nb_non_solde_1, + v_factures_reference_1.nb_non_solde_1_c, + v_factures_reference_1.nb_non_solde_1_h, + v_factures_reference_1.nb_non_solde_2, + v_factures_reference_1.nb_non_solde_2_c, + v_factures_reference_1.nb_non_solde_2_h, + v_factures_reference_1.montant_solde, + v_factures_reference_1.montant_solde_c, + v_factures_reference_1.montant_solde_h, + v_factures_reference_1.montant_solde_0, + v_factures_reference_1.montant_solde_0_c, + v_factures_reference_1.montant_solde_0_h, + v_factures_reference_1.montant_solde_1, + v_factures_reference_1.montant_solde_1_c, + v_factures_reference_1.montant_solde_1_h, + v_factures_reference_1.montant_solde_2, + v_factures_reference_1.montant_solde_2_c, + v_factures_reference_1.montant_solde_2_h, + v_factures_reference_1.nb_non_cloture, + v_factures_reference_1.nb_non_cloture_c, + v_factures_reference_1.nb_non_cloture_h, + v_factures_reference_1.nb_non_cloture_0, + v_factures_reference_1.nb_non_cloture_0_c, + v_factures_reference_1.nb_non_cloture_0_h, + v_factures_reference_1.nb_non_cloture_1, + v_factures_reference_1.nb_non_cloture_1_c, + v_factures_reference_1.nb_non_cloture_1_h, + v_factures_reference_1.nb_non_cloture_2, + v_factures_reference_1.nb_non_cloture_2_c, + v_factures_reference_1.nb_non_cloture_2_h, + v_factures_reference_1.nb_rubriques_c, + v_factures_reference_1.nb_rubriques_h, + v_factures_reference_1.pole_id + FROM activite.v_factures_reference_1 + JOIN activite.v_sejours_1 ON v_factures_reference_1.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_reference_r_4.yaml b/db/schema2/views/v_factures_reference_r_4.yaml new file mode 100644 index 0000000..1a2eb3f --- /dev/null +++ b/db/schema2/views/v_factures_reference_r_4.yaml @@ -0,0 +1,416 @@ +dep: + - v_factures_reference_1 + - v_sejours_1 +src: | + SELECT v_factures_reference_1.date_vente AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess_section_id, + v_sejours_1.finess_section_code, + v_sejours_1.finess_section_texte, + v_sejours_1.finess, + v_sejours_1.provider_id, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.est_budget_global, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.heure_entree, + v_sejours_1.mode_entree, + v_sejours_1.provenance, + v_sejours_1.mois_sortie, + v_factures_reference_1.code_sorti, + v_sejours_1.date_sortie, + v_sejours_1.heure_sortie, + v_sejours_1.mode_sortie, + v_sejours_1.destination, + v_sejours_1.est_sans_facturation, + v_sejours_1.duree, + v_sejours_1.code_cp_demandee, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id, + v_sejours_1.medecin_adm_sejour_section_code, + v_sejours_1.medecin_adm_sejour_section_texte, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_code, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.medecin_sejour_specialite_id, + v_sejours_1.medecin_sejour_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_service_section_nb_lits, + v_sejours_1.lieu_sortie_service_section_nb_cp, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_lit_section_id, + v_sejours_1.lieu_sortie_lit_section_code, + v_sejours_1.lieu_sortie_lit_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_sejours_1.lieu_sortie_unite_medicale_section_id, + v_sejours_1.lieu_sortie_unite_medicale_section_code, + v_sejours_1.lieu_sortie_unite_medicale_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte, + v_factures_reference_1.facture_reference_id, + v_factures_reference_1.no_facture_reference, + v_factures_reference_1.type_t2a, + v_factures_reference_1.date_debut_facture, + v_factures_reference_1.date_fin_facture, + v_factures_reference_1.date_groupage, + v_factures_reference_1.retard_groupage, + v_factures_reference_1.delai_groupage, + v_factures_reference_1.nb_groupe, + v_factures_reference_1.nb_non_groupe, + v_factures_reference_1.nb_calculable, + v_factures_reference_1.nb_non_groupes, + v_factures_reference_1.tiers_payant_0_id, + v_factures_reference_1.tiers_payant_1_id, + v_factures_reference_1.tiers_payant_2_id, + v_factures_reference_1.tiers_payant_22_id, + v_factures_reference_1.tiers_payant_id, + v_factures_reference_1.tiers_payant_code, + v_factures_reference_1.tiers_payant_texte, + v_factures_reference_1.type_tiers_payant_id, + v_factures_reference_1.type_tiers_payant_code, + v_factures_reference_1.type_tiers_payant_texte, + v_factures_reference_1.tiers_payant_grand_regime_id, + v_factures_reference_1.tiers_payant_grand_regime_code, + v_factures_reference_1.tiers_payant_grand_regime_texte, + v_factures_reference_1.tiers_payant_section_id, + v_factures_reference_1.tiers_payant_section_code, + v_factures_reference_1.tiers_payant_section_texte, + v_factures_reference_1.code_facture, + v_factures_reference_1.date_facture, + v_factures_reference_1.retard_facture, + v_factures_reference_1.delai_facture, + v_factures_reference_1.code_vente, + v_factures_reference_1.date_vente, + v_factures_reference_1.nb_factures, + v_factures_reference_1.nb_calcules, + v_factures_reference_1.nb_non_calcules, + v_factures_reference_1.nb_non_calcules_groupes, + v_factures_reference_1.nb_non_calcules_non_groupes, + v_factures_reference_1.nb_factures_regularisation, + v_factures_reference_1.nb_rejets, + v_factures_reference_1.code_expedie_0, + v_factures_reference_1.code_expedie_1, + v_factures_reference_1.code_expedie_2, + v_factures_reference_1.date_expedition, + v_factures_reference_1.date_expedition_0, + v_factures_reference_1.date_expedition_1, + v_factures_reference_1.date_expedition_2, + v_factures_reference_1.no_bordereau_0, + v_factures_reference_1.no_bordereau_1, + v_factures_reference_1.no_bordereau_2, + v_factures_reference_1.delai_expedition, + v_factures_reference_1.delai_expedition_0, + v_factures_reference_1.delai_expedition_1, + v_factures_reference_1.delai_expedition_2, + v_factures_reference_1.nb_non_expedie, + v_factures_reference_1.nb_non_expedie_c, + v_factures_reference_1.nb_non_expedie_h, + v_factures_reference_1.nb_non_expedie_0, + v_factures_reference_1.nb_non_expedie_0_c, + v_factures_reference_1.nb_non_expedie_0_h, + v_factures_reference_1.nb_non_expedie_1, + v_factures_reference_1.nb_non_expedie_1_c, + v_factures_reference_1.nb_non_expedie_1_h, + v_factures_reference_1.nb_non_expedie_2, + v_factures_reference_1.nb_non_expedie_2_c, + v_factures_reference_1.nb_non_expedie_2_h, + v_factures_reference_1.montant_non_expedie, + v_factures_reference_1.montant_non_expedie_c, + v_factures_reference_1.montant_non_expedie_h, + v_factures_reference_1.montant_non_expedie_0, + v_factures_reference_1.montant_non_expedie_0_c, + v_factures_reference_1.montant_non_expedie_0_h, + v_factures_reference_1.montant_non_expedie_1, + v_factures_reference_1.montant_non_expedie_1_c, + v_factures_reference_1.montant_non_expedie_1_h, + v_factures_reference_1.montant_non_expedie_2, + v_factures_reference_1.montant_non_expedie_2_c, + v_factures_reference_1.montant_non_expedie_2_h, + v_factures_reference_1.montant_facture, + v_factures_reference_1.montant_facture_c, + v_factures_reference_1.montant_facture_h, + v_factures_reference_1.montant_facture_0, + v_factures_reference_1.montant_facture_0_c, + v_factures_reference_1.montant_facture_0_h, + v_factures_reference_1.montant_facture_1, + v_factures_reference_1.montant_facture_1_c, + v_factures_reference_1.montant_facture_1_h, + v_factures_reference_1.montant_facture_2, + v_factures_reference_1.montant_facture_2_c, + v_factures_reference_1.montant_facture_2_h, + v_factures_reference_1.montant_facture_c_actes_inclus_dans_sejour, + v_factures_reference_1.montant_facture_h_actes_inclus_dans_sejour, + v_factures_reference_1.montant_encours, + v_factures_reference_1.montant_encours_c, + v_factures_reference_1.montant_encours_h, + v_factures_reference_1.montant_encours_0, + v_factures_reference_1.montant_encours_0_c, + v_factures_reference_1.montant_encours_0_h, + v_factures_reference_1.montant_encours_1, + v_factures_reference_1.montant_encours_1_c, + v_factures_reference_1.montant_encours_1_h, + v_factures_reference_1.montant_encours_2, + v_factures_reference_1.montant_encours_2_c, + v_factures_reference_1.montant_encours_2_h, + v_factures_reference_1.montant_encours_groupes, + v_factures_reference_1.montant_encours_groupes_c, + v_factures_reference_1.montant_encours_groupes_h, + v_factures_reference_1.montant_encours_groupes_0, + v_factures_reference_1.montant_encours_groupes_0_c, + v_factures_reference_1.montant_encours_groupes_0_h, + v_factures_reference_1.montant_encours_groupes_1, + v_factures_reference_1.montant_encours_groupes_1_c, + v_factures_reference_1.montant_encours_groupes_1_h, + v_factures_reference_1.montant_encours_groupes_2, + v_factures_reference_1.montant_encours_groupes_2_c, + v_factures_reference_1.montant_encours_groupes_2_h, + v_factures_reference_1.montant_encours_non_groupes, + v_factures_reference_1.montant_encours_non_groupes_c, + v_factures_reference_1.montant_encours_non_groupes_h, + v_factures_reference_1.montant_encours_non_groupes_0, + v_factures_reference_1.montant_encours_non_groupes_0_c, + v_factures_reference_1.montant_encours_non_groupes_0_h, + v_factures_reference_1.montant_encours_non_groupes_1, + v_factures_reference_1.montant_encours_non_groupes_1_c, + v_factures_reference_1.montant_encours_non_groupes_1_h, + v_factures_reference_1.montant_encours_non_groupes_2, + v_factures_reference_1.montant_encours_non_groupes_2_c, + v_factures_reference_1.montant_encours_non_groupes_2_h, + v_factures_reference_1.montant_non_calcules, + v_factures_reference_1.montant_non_calcules_c, + v_factures_reference_1.montant_non_calcules_h, + v_factures_reference_1.montant_non_calcules_0, + v_factures_reference_1.montant_non_calcules_0_c, + v_factures_reference_1.montant_non_calcules_0_h, + v_factures_reference_1.montant_non_calcules_1, + v_factures_reference_1.montant_non_calcules_1_c, + v_factures_reference_1.montant_non_calcules_1_h, + v_factures_reference_1.montant_non_calcules_2, + v_factures_reference_1.montant_non_calcules_2_c, + v_factures_reference_1.montant_non_calcules_2_h, + v_factures_reference_1.montant_non_calcules_groupes, + v_factures_reference_1.montant_non_calcules_groupes_c, + v_factures_reference_1.montant_non_calcules_groupes_h, + v_factures_reference_1.montant_non_calcules_groupes_0, + v_factures_reference_1.montant_non_calcules_groupes_0_c, + v_factures_reference_1.montant_non_calcules_groupes_0_h, + v_factures_reference_1.montant_non_calcules_groupes_1, + v_factures_reference_1.montant_non_calcules_groupes_1_c, + v_factures_reference_1.montant_non_calcules_groupes_1_h, + v_factures_reference_1.montant_non_calcules_groupes_2, + v_factures_reference_1.montant_non_calcules_groupes_2_c, + v_factures_reference_1.montant_non_calcules_groupes_2_h, + v_factures_reference_1.montant_non_calcules_non_groupes, + v_factures_reference_1.montant_non_calcules_non_groupes_c, + v_factures_reference_1.montant_non_calcules_non_groupes_h, + v_factures_reference_1.montant_non_calcules_non_groupes_0, + v_factures_reference_1.montant_non_calcules_non_groupes_0_c, + v_factures_reference_1.montant_non_calcules_non_groupes_0_h, + v_factures_reference_1.montant_non_calcules_non_groupes_1, + v_factures_reference_1.montant_non_calcules_non_groupes_1_c, + v_factures_reference_1.montant_non_calcules_non_groupes_1_h, + v_factures_reference_1.montant_non_calcules_non_groupes_2, + v_factures_reference_1.montant_non_calcules_non_groupes_2_c, + v_factures_reference_1.montant_non_calcules_non_groupes_2_h, + v_factures_reference_1.montant_comptabilise, + v_factures_reference_1.montant_comptabilise_c, + v_factures_reference_1.montant_comptabilise_h, + v_factures_reference_1.montant_comptabilise_0, + v_factures_reference_1.montant_comptabilise_0_c, + v_factures_reference_1.montant_comptabilise_0_h, + v_factures_reference_1.montant_comptabilise_1, + v_factures_reference_1.montant_comptabilise_1_c, + v_factures_reference_1.montant_comptabilise_1_h, + v_factures_reference_1.montant_comptabilise_2, + v_factures_reference_1.montant_comptabilise_2_c, + v_factures_reference_1.montant_comptabilise_2_h, + v_factures_reference_1.montant_comptabilise_budget_global_c, + v_factures_reference_1.montant_regle, + v_factures_reference_1.montant_regle_c, + v_factures_reference_1.montant_regle_h, + v_factures_reference_1.montant_regle_0, + v_factures_reference_1.montant_regle_0_c, + v_factures_reference_1.montant_regle_0_h, + v_factures_reference_1.montant_regle_1, + v_factures_reference_1.montant_regle_1_c, + v_factures_reference_1.montant_regle_1_h, + v_factures_reference_1.montant_regle_2, + v_factures_reference_1.montant_regle_2_c, + v_factures_reference_1.montant_regle_2_h, + v_factures_reference_1.date_solde, + v_factures_reference_1.date_solde_c, + v_factures_reference_1.date_solde_h, + v_factures_reference_1.date_solde_0, + v_factures_reference_1.date_solde_0_c, + v_factures_reference_1.date_solde_0_h, + v_factures_reference_1.date_solde_1, + v_factures_reference_1.date_solde_1_c, + v_factures_reference_1.date_solde_1_h, + v_factures_reference_1.date_solde_2, + v_factures_reference_1.date_solde_2_c, + v_factures_reference_1.date_solde_2_h, + v_factures_reference_1.delai_solde, + v_factures_reference_1.delai_solde_c, + v_factures_reference_1.delai_solde_h, + v_factures_reference_1.delai_solde_0, + v_factures_reference_1.delai_solde_0_c, + v_factures_reference_1.delai_solde_0_h, + v_factures_reference_1.delai_solde_1, + v_factures_reference_1.delai_solde_1_c, + v_factures_reference_1.delai_solde_1_h, + v_factures_reference_1.delai_solde_2, + v_factures_reference_1.delai_solde_2_c, + v_factures_reference_1.delai_solde_2_h, + v_factures_reference_1.nb_non_solde, + v_factures_reference_1.nb_non_solde_c, + v_factures_reference_1.nb_non_solde_h, + v_factures_reference_1.nb_non_solde_0, + v_factures_reference_1.nb_non_solde_0_c, + v_factures_reference_1.nb_non_solde_0_h, + v_factures_reference_1.nb_non_solde_1, + v_factures_reference_1.nb_non_solde_1_c, + v_factures_reference_1.nb_non_solde_1_h, + v_factures_reference_1.nb_non_solde_2, + v_factures_reference_1.nb_non_solde_2_c, + v_factures_reference_1.nb_non_solde_2_h, + v_factures_reference_1.montant_solde, + v_factures_reference_1.montant_solde_c, + v_factures_reference_1.montant_solde_h, + v_factures_reference_1.montant_solde_0, + v_factures_reference_1.montant_solde_0_c, + v_factures_reference_1.montant_solde_0_h, + v_factures_reference_1.montant_solde_1, + v_factures_reference_1.montant_solde_1_c, + v_factures_reference_1.montant_solde_1_h, + v_factures_reference_1.montant_solde_2, + v_factures_reference_1.montant_solde_2_c, + v_factures_reference_1.montant_solde_2_h, + v_factures_reference_1.nb_non_cloture, + v_factures_reference_1.nb_non_cloture_c, + v_factures_reference_1.nb_non_cloture_h, + v_factures_reference_1.nb_non_cloture_0, + v_factures_reference_1.nb_non_cloture_0_c, + v_factures_reference_1.nb_non_cloture_0_h, + v_factures_reference_1.nb_non_cloture_1, + v_factures_reference_1.nb_non_cloture_1_c, + v_factures_reference_1.nb_non_cloture_1_h, + v_factures_reference_1.nb_non_cloture_2, + v_factures_reference_1.nb_non_cloture_2_c, + v_factures_reference_1.nb_non_cloture_2_h, + v_factures_reference_1.nb_rubriques_c, + v_factures_reference_1.nb_rubriques_h, + v_factures_reference_1.pole_id + FROM activite.v_factures_reference_1 + JOIN activite.v_sejours_1 ON v_factures_reference_1.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_reference_r_5.yaml b/db/schema2/views/v_factures_reference_r_5.yaml new file mode 100644 index 0000000..f9daba4 --- /dev/null +++ b/db/schema2/views/v_factures_reference_r_5.yaml @@ -0,0 +1,416 @@ +dep: + - v_factures_reference_1 + - v_sejours_1 +src: | + SELECT v_factures_reference_1.date_groupage AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess_section_id, + v_sejours_1.finess_section_code, + v_sejours_1.finess_section_texte, + v_sejours_1.finess, + v_sejours_1.provider_id, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.est_budget_global, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.heure_entree, + v_sejours_1.mode_entree, + v_sejours_1.provenance, + v_sejours_1.mois_sortie, + v_factures_reference_1.code_sorti, + v_sejours_1.date_sortie, + v_sejours_1.heure_sortie, + v_sejours_1.mode_sortie, + v_sejours_1.destination, + v_sejours_1.est_sans_facturation, + v_sejours_1.duree, + v_sejours_1.code_cp_demandee, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id, + v_sejours_1.medecin_adm_sejour_section_code, + v_sejours_1.medecin_adm_sejour_section_texte, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_code, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.medecin_sejour_specialite_id, + v_sejours_1.medecin_sejour_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_service_section_nb_lits, + v_sejours_1.lieu_sortie_service_section_nb_cp, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_lit_section_id, + v_sejours_1.lieu_sortie_lit_section_code, + v_sejours_1.lieu_sortie_lit_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_sejours_1.lieu_sortie_unite_medicale_section_id, + v_sejours_1.lieu_sortie_unite_medicale_section_code, + v_sejours_1.lieu_sortie_unite_medicale_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte, + v_factures_reference_1.facture_reference_id, + v_factures_reference_1.no_facture_reference, + v_factures_reference_1.type_t2a, + v_factures_reference_1.date_debut_facture, + v_factures_reference_1.date_fin_facture, + v_factures_reference_1.date_groupage, + v_factures_reference_1.retard_groupage, + v_factures_reference_1.delai_groupage, + v_factures_reference_1.nb_groupe, + v_factures_reference_1.nb_non_groupe, + v_factures_reference_1.nb_calculable, + v_factures_reference_1.nb_non_groupes, + v_factures_reference_1.tiers_payant_0_id, + v_factures_reference_1.tiers_payant_1_id, + v_factures_reference_1.tiers_payant_2_id, + v_factures_reference_1.tiers_payant_22_id, + v_factures_reference_1.tiers_payant_id, + v_factures_reference_1.tiers_payant_code, + v_factures_reference_1.tiers_payant_texte, + v_factures_reference_1.type_tiers_payant_id, + v_factures_reference_1.type_tiers_payant_code, + v_factures_reference_1.type_tiers_payant_texte, + v_factures_reference_1.tiers_payant_grand_regime_id, + v_factures_reference_1.tiers_payant_grand_regime_code, + v_factures_reference_1.tiers_payant_grand_regime_texte, + v_factures_reference_1.tiers_payant_section_id, + v_factures_reference_1.tiers_payant_section_code, + v_factures_reference_1.tiers_payant_section_texte, + v_factures_reference_1.code_facture, + v_factures_reference_1.date_facture, + v_factures_reference_1.retard_facture, + v_factures_reference_1.delai_facture, + v_factures_reference_1.code_vente, + v_factures_reference_1.date_vente, + v_factures_reference_1.nb_factures, + v_factures_reference_1.nb_calcules, + v_factures_reference_1.nb_non_calcules, + v_factures_reference_1.nb_non_calcules_groupes, + v_factures_reference_1.nb_non_calcules_non_groupes, + v_factures_reference_1.nb_factures_regularisation, + v_factures_reference_1.nb_rejets, + v_factures_reference_1.code_expedie_0, + v_factures_reference_1.code_expedie_1, + v_factures_reference_1.code_expedie_2, + v_factures_reference_1.date_expedition, + v_factures_reference_1.date_expedition_0, + v_factures_reference_1.date_expedition_1, + v_factures_reference_1.date_expedition_2, + v_factures_reference_1.no_bordereau_0, + v_factures_reference_1.no_bordereau_1, + v_factures_reference_1.no_bordereau_2, + v_factures_reference_1.delai_expedition, + v_factures_reference_1.delai_expedition_0, + v_factures_reference_1.delai_expedition_1, + v_factures_reference_1.delai_expedition_2, + v_factures_reference_1.nb_non_expedie, + v_factures_reference_1.nb_non_expedie_c, + v_factures_reference_1.nb_non_expedie_h, + v_factures_reference_1.nb_non_expedie_0, + v_factures_reference_1.nb_non_expedie_0_c, + v_factures_reference_1.nb_non_expedie_0_h, + v_factures_reference_1.nb_non_expedie_1, + v_factures_reference_1.nb_non_expedie_1_c, + v_factures_reference_1.nb_non_expedie_1_h, + v_factures_reference_1.nb_non_expedie_2, + v_factures_reference_1.nb_non_expedie_2_c, + v_factures_reference_1.nb_non_expedie_2_h, + v_factures_reference_1.montant_non_expedie, + v_factures_reference_1.montant_non_expedie_c, + v_factures_reference_1.montant_non_expedie_h, + v_factures_reference_1.montant_non_expedie_0, + v_factures_reference_1.montant_non_expedie_0_c, + v_factures_reference_1.montant_non_expedie_0_h, + v_factures_reference_1.montant_non_expedie_1, + v_factures_reference_1.montant_non_expedie_1_c, + v_factures_reference_1.montant_non_expedie_1_h, + v_factures_reference_1.montant_non_expedie_2, + v_factures_reference_1.montant_non_expedie_2_c, + v_factures_reference_1.montant_non_expedie_2_h, + v_factures_reference_1.montant_facture, + v_factures_reference_1.montant_facture_c, + v_factures_reference_1.montant_facture_h, + v_factures_reference_1.montant_facture_0, + v_factures_reference_1.montant_facture_0_c, + v_factures_reference_1.montant_facture_0_h, + v_factures_reference_1.montant_facture_1, + v_factures_reference_1.montant_facture_1_c, + v_factures_reference_1.montant_facture_1_h, + v_factures_reference_1.montant_facture_2, + v_factures_reference_1.montant_facture_2_c, + v_factures_reference_1.montant_facture_2_h, + v_factures_reference_1.montant_facture_c_actes_inclus_dans_sejour, + v_factures_reference_1.montant_facture_h_actes_inclus_dans_sejour, + v_factures_reference_1.montant_encours, + v_factures_reference_1.montant_encours_c, + v_factures_reference_1.montant_encours_h, + v_factures_reference_1.montant_encours_0, + v_factures_reference_1.montant_encours_0_c, + v_factures_reference_1.montant_encours_0_h, + v_factures_reference_1.montant_encours_1, + v_factures_reference_1.montant_encours_1_c, + v_factures_reference_1.montant_encours_1_h, + v_factures_reference_1.montant_encours_2, + v_factures_reference_1.montant_encours_2_c, + v_factures_reference_1.montant_encours_2_h, + v_factures_reference_1.montant_encours_groupes, + v_factures_reference_1.montant_encours_groupes_c, + v_factures_reference_1.montant_encours_groupes_h, + v_factures_reference_1.montant_encours_groupes_0, + v_factures_reference_1.montant_encours_groupes_0_c, + v_factures_reference_1.montant_encours_groupes_0_h, + v_factures_reference_1.montant_encours_groupes_1, + v_factures_reference_1.montant_encours_groupes_1_c, + v_factures_reference_1.montant_encours_groupes_1_h, + v_factures_reference_1.montant_encours_groupes_2, + v_factures_reference_1.montant_encours_groupes_2_c, + v_factures_reference_1.montant_encours_groupes_2_h, + v_factures_reference_1.montant_encours_non_groupes, + v_factures_reference_1.montant_encours_non_groupes_c, + v_factures_reference_1.montant_encours_non_groupes_h, + v_factures_reference_1.montant_encours_non_groupes_0, + v_factures_reference_1.montant_encours_non_groupes_0_c, + v_factures_reference_1.montant_encours_non_groupes_0_h, + v_factures_reference_1.montant_encours_non_groupes_1, + v_factures_reference_1.montant_encours_non_groupes_1_c, + v_factures_reference_1.montant_encours_non_groupes_1_h, + v_factures_reference_1.montant_encours_non_groupes_2, + v_factures_reference_1.montant_encours_non_groupes_2_c, + v_factures_reference_1.montant_encours_non_groupes_2_h, + v_factures_reference_1.montant_non_calcules, + v_factures_reference_1.montant_non_calcules_c, + v_factures_reference_1.montant_non_calcules_h, + v_factures_reference_1.montant_non_calcules_0, + v_factures_reference_1.montant_non_calcules_0_c, + v_factures_reference_1.montant_non_calcules_0_h, + v_factures_reference_1.montant_non_calcules_1, + v_factures_reference_1.montant_non_calcules_1_c, + v_factures_reference_1.montant_non_calcules_1_h, + v_factures_reference_1.montant_non_calcules_2, + v_factures_reference_1.montant_non_calcules_2_c, + v_factures_reference_1.montant_non_calcules_2_h, + v_factures_reference_1.montant_non_calcules_groupes, + v_factures_reference_1.montant_non_calcules_groupes_c, + v_factures_reference_1.montant_non_calcules_groupes_h, + v_factures_reference_1.montant_non_calcules_groupes_0, + v_factures_reference_1.montant_non_calcules_groupes_0_c, + v_factures_reference_1.montant_non_calcules_groupes_0_h, + v_factures_reference_1.montant_non_calcules_groupes_1, + v_factures_reference_1.montant_non_calcules_groupes_1_c, + v_factures_reference_1.montant_non_calcules_groupes_1_h, + v_factures_reference_1.montant_non_calcules_groupes_2, + v_factures_reference_1.montant_non_calcules_groupes_2_c, + v_factures_reference_1.montant_non_calcules_groupes_2_h, + v_factures_reference_1.montant_non_calcules_non_groupes, + v_factures_reference_1.montant_non_calcules_non_groupes_c, + v_factures_reference_1.montant_non_calcules_non_groupes_h, + v_factures_reference_1.montant_non_calcules_non_groupes_0, + v_factures_reference_1.montant_non_calcules_non_groupes_0_c, + v_factures_reference_1.montant_non_calcules_non_groupes_0_h, + v_factures_reference_1.montant_non_calcules_non_groupes_1, + v_factures_reference_1.montant_non_calcules_non_groupes_1_c, + v_factures_reference_1.montant_non_calcules_non_groupes_1_h, + v_factures_reference_1.montant_non_calcules_non_groupes_2, + v_factures_reference_1.montant_non_calcules_non_groupes_2_c, + v_factures_reference_1.montant_non_calcules_non_groupes_2_h, + v_factures_reference_1.montant_comptabilise, + v_factures_reference_1.montant_comptabilise_c, + v_factures_reference_1.montant_comptabilise_h, + v_factures_reference_1.montant_comptabilise_0, + v_factures_reference_1.montant_comptabilise_0_c, + v_factures_reference_1.montant_comptabilise_0_h, + v_factures_reference_1.montant_comptabilise_1, + v_factures_reference_1.montant_comptabilise_1_c, + v_factures_reference_1.montant_comptabilise_1_h, + v_factures_reference_1.montant_comptabilise_2, + v_factures_reference_1.montant_comptabilise_2_c, + v_factures_reference_1.montant_comptabilise_2_h, + v_factures_reference_1.montant_comptabilise_budget_global_c, + v_factures_reference_1.montant_regle, + v_factures_reference_1.montant_regle_c, + v_factures_reference_1.montant_regle_h, + v_factures_reference_1.montant_regle_0, + v_factures_reference_1.montant_regle_0_c, + v_factures_reference_1.montant_regle_0_h, + v_factures_reference_1.montant_regle_1, + v_factures_reference_1.montant_regle_1_c, + v_factures_reference_1.montant_regle_1_h, + v_factures_reference_1.montant_regle_2, + v_factures_reference_1.montant_regle_2_c, + v_factures_reference_1.montant_regle_2_h, + v_factures_reference_1.date_solde, + v_factures_reference_1.date_solde_c, + v_factures_reference_1.date_solde_h, + v_factures_reference_1.date_solde_0, + v_factures_reference_1.date_solde_0_c, + v_factures_reference_1.date_solde_0_h, + v_factures_reference_1.date_solde_1, + v_factures_reference_1.date_solde_1_c, + v_factures_reference_1.date_solde_1_h, + v_factures_reference_1.date_solde_2, + v_factures_reference_1.date_solde_2_c, + v_factures_reference_1.date_solde_2_h, + v_factures_reference_1.delai_solde, + v_factures_reference_1.delai_solde_c, + v_factures_reference_1.delai_solde_h, + v_factures_reference_1.delai_solde_0, + v_factures_reference_1.delai_solde_0_c, + v_factures_reference_1.delai_solde_0_h, + v_factures_reference_1.delai_solde_1, + v_factures_reference_1.delai_solde_1_c, + v_factures_reference_1.delai_solde_1_h, + v_factures_reference_1.delai_solde_2, + v_factures_reference_1.delai_solde_2_c, + v_factures_reference_1.delai_solde_2_h, + v_factures_reference_1.nb_non_solde, + v_factures_reference_1.nb_non_solde_c, + v_factures_reference_1.nb_non_solde_h, + v_factures_reference_1.nb_non_solde_0, + v_factures_reference_1.nb_non_solde_0_c, + v_factures_reference_1.nb_non_solde_0_h, + v_factures_reference_1.nb_non_solde_1, + v_factures_reference_1.nb_non_solde_1_c, + v_factures_reference_1.nb_non_solde_1_h, + v_factures_reference_1.nb_non_solde_2, + v_factures_reference_1.nb_non_solde_2_c, + v_factures_reference_1.nb_non_solde_2_h, + v_factures_reference_1.montant_solde, + v_factures_reference_1.montant_solde_c, + v_factures_reference_1.montant_solde_h, + v_factures_reference_1.montant_solde_0, + v_factures_reference_1.montant_solde_0_c, + v_factures_reference_1.montant_solde_0_h, + v_factures_reference_1.montant_solde_1, + v_factures_reference_1.montant_solde_1_c, + v_factures_reference_1.montant_solde_1_h, + v_factures_reference_1.montant_solde_2, + v_factures_reference_1.montant_solde_2_c, + v_factures_reference_1.montant_solde_2_h, + v_factures_reference_1.nb_non_cloture, + v_factures_reference_1.nb_non_cloture_c, + v_factures_reference_1.nb_non_cloture_h, + v_factures_reference_1.nb_non_cloture_0, + v_factures_reference_1.nb_non_cloture_0_c, + v_factures_reference_1.nb_non_cloture_0_h, + v_factures_reference_1.nb_non_cloture_1, + v_factures_reference_1.nb_non_cloture_1_c, + v_factures_reference_1.nb_non_cloture_1_h, + v_factures_reference_1.nb_non_cloture_2, + v_factures_reference_1.nb_non_cloture_2_c, + v_factures_reference_1.nb_non_cloture_2_h, + v_factures_reference_1.nb_rubriques_c, + v_factures_reference_1.nb_rubriques_h, + v_factures_reference_1.pole_id + FROM activite.v_factures_reference_1 + JOIN activite.v_sejours_1 ON v_factures_reference_1.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_reference_tiers_1.yaml b/db/schema2/views/v_factures_reference_tiers_1.yaml new file mode 100644 index 0000000..adf0523 --- /dev/null +++ b/db/schema2/views/v_factures_reference_tiers_1.yaml @@ -0,0 +1,563 @@ +src: | + SELECT p_factures_reference_tiers.sejour_id, + p_factures_reference_tiers.no_sejour, + p_factures_reference_tiers.date_entree, + p_factures_reference_tiers.date_sortie, + p_factures_reference_tiers.code_sorti, + p_factures_reference_tiers.facture_reference_id, + p_factures_reference_tiers.no_facture_reference, + p_factures_reference_tiers.type_t2a, + p_factures_reference_tiers.date_debut_facture, + p_factures_reference_tiers.date_fin_facture, + p_factures_reference_tiers.date_groupage, + p_factures_reference_tiers.retard_groupage, + p_factures_reference_tiers.delai_groupage, + p_factures_reference_tiers.nb_groupe, + p_factures_reference_tiers.nb_non_groupe, + p_factures_reference_tiers.nb_calculable, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id = 0 AND p_factures_reference_tiers.code_facture <> '1'::text THEN 1 + ELSE 0 + END AS nb_non_groupes, + p_factures_reference_tiers.ghs_id, + p_factures_reference_tiers.ghs_bebe1_id, + p_factures_reference_tiers.ghs_bebe2_id, + p_factures_reference_tiers.ghs_bebe3_id, + p_factures_reference_tiers.tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_reference_tiers.code_facture, + p_factures_reference_tiers.date_facture, + p_factures_reference_tiers.delai_facture, + p_factures_reference_tiers.retard_facture, + p_factures_reference_tiers.code_vente, + p_factures_reference_tiers.date_vente, + p_factures_reference_tiers.nb_factures, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules = 0 THEN 1 + ELSE 0 + END AS nb_calcules, + p_factures_reference_tiers.nb_non_calcules, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN p_factures_reference_tiers.nb_non_calcules + ELSE 0 + END AS nb_non_calcules_groupes, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0 + ELSE p_factures_reference_tiers.nb_non_calcules + END AS nb_non_calcules_non_groupes, + p_factures_reference_tiers.nb_factures_regularisation, + p_factures_reference_tiers.nb_rejets, + p_factures_reference_tiers.code_expedie_0, + p_factures_reference_tiers.code_expedie_1, + p_factures_reference_tiers.code_expedie_2, + p_factures_reference_tiers.date_expedition, + p_factures_reference_tiers.date_expedition_0, + p_factures_reference_tiers.date_expedition_1, + p_factures_reference_tiers.date_expedition_2, + p_factures_reference_tiers.no_bordereau_0, + p_factures_reference_tiers.no_bordereau_1, + p_factures_reference_tiers.no_bordereau_2, + p_factures_reference_tiers.delai_expedition, + p_factures_reference_tiers.delai_expedition_0, + p_factures_reference_tiers.delai_expedition_1, + p_factures_reference_tiers.delai_expedition_2, + p_factures_reference_tiers.nb_non_expedie, + p_factures_reference_tiers.nb_non_expedie_c, + p_factures_reference_tiers.nb_non_expedie_h, + p_factures_reference_tiers.nb_non_expedie_0, + p_factures_reference_tiers.nb_non_expedie_0_c, + p_factures_reference_tiers.nb_non_expedie_0_h, + p_factures_reference_tiers.nb_non_expedie_1, + p_factures_reference_tiers.nb_non_expedie_1_c, + p_factures_reference_tiers.nb_non_expedie_1_h, + p_factures_reference_tiers.nb_non_expedie_2, + p_factures_reference_tiers.nb_non_expedie_2_c, + p_factures_reference_tiers.nb_non_expedie_2_h, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_0 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_0_c - p_factures_reference_tiers.montant_regle_0_c + p_factures_reference_tiers.montant_comptabilise_0_h - p_factures_reference_tiers.montant_regle_0_h + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_1 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_1_c - p_factures_reference_tiers.montant_regle_1_c + p_factures_reference_tiers.montant_comptabilise_1_h - p_factures_reference_tiers.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_2 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_2_c - p_factures_reference_tiers.montant_regle_2_c + p_factures_reference_tiers.montant_comptabilise_2_h - p_factures_reference_tiers.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_0 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_0_c - p_factures_reference_tiers.montant_regle_0_c + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_1 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_1_c - p_factures_reference_tiers.montant_regle_1_c + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_2 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_2_c - p_factures_reference_tiers.montant_regle_2_c + ELSE 0::numeric + END AS montant_non_expedie_c, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_0 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_0_h - p_factures_reference_tiers.montant_regle_0_h + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_1 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_1_h - p_factures_reference_tiers.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_2 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_2_h - p_factures_reference_tiers.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie_h, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_0 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_0 - p_factures_reference_tiers.montant_regle_0 + ELSE 0::numeric + END AS montant_non_expedie_0, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_0 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_0_c - p_factures_reference_tiers.montant_regle_0_c + ELSE 0::numeric + END AS montant_non_expedie_0_c, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_0 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_0_h - p_factures_reference_tiers.montant_regle_0_h + ELSE 0::numeric + END AS montant_non_expedie_0_h, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_1 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_1 - p_factures_reference_tiers.montant_regle_1 + ELSE 0::numeric + END AS montant_non_expedie_1, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_1 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_1_c - p_factures_reference_tiers.montant_regle_1_c + ELSE 0::numeric + END AS montant_non_expedie_1_c, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_1 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_1_h - p_factures_reference_tiers.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1_h, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_2 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_2 - p_factures_reference_tiers.montant_regle_2 + ELSE 0::numeric + END AS montant_non_expedie_2, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_2 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_2_c - p_factures_reference_tiers.montant_regle_2_c + ELSE 0::numeric + END AS montant_non_expedie_2_c, + CASE + WHEN p_factures_reference_tiers.nb_non_expedie_2 = 1::numeric THEN p_factures_reference_tiers.montant_comptabilise_2_h - p_factures_reference_tiers.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie_2_h, + p_factures_reference_tiers.montant_facture, + p_factures_reference_tiers.montant_facture_c, + p_factures_reference_tiers.montant_facture_h, + p_factures_reference_tiers.montant_facture_0, + p_factures_reference_tiers.montant_facture_0_c, + p_factures_reference_tiers.montant_facture_0_h, + p_factures_reference_tiers.montant_facture_1, + p_factures_reference_tiers.montant_facture_1_c, + p_factures_reference_tiers.montant_facture_1_h, + p_factures_reference_tiers.montant_facture_2, + p_factures_reference_tiers.montant_facture_2_c, + p_factures_reference_tiers.montant_facture_2_h, + p_factures_reference_tiers.montant_facture_c_actes_inclus_dans_sejour, + p_factures_reference_tiers.montant_facture_h_actes_inclus_dans_sejour, + p_factures_reference_tiers.montant_encours, + p_factures_reference_tiers.montant_encours_c, + p_factures_reference_tiers.montant_encours_h, + p_factures_reference_tiers.montant_encours_0, + p_factures_reference_tiers.montant_encours_0_c, + p_factures_reference_tiers.montant_encours_0_h, + p_factures_reference_tiers.montant_encours_1, + p_factures_reference_tiers.montant_encours_1_c, + p_factures_reference_tiers.montant_encours_1_h, + p_factures_reference_tiers.montant_encours_2, + p_factures_reference_tiers.montant_encours_2_c, + p_factures_reference_tiers.montant_encours_2_h, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours + ELSE 0::numeric + END AS montant_encours_groupes, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_c + ELSE 0::numeric + END AS montant_encours_groupes_c, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_h + ELSE 0::numeric + END AS montant_encours_groupes_h, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_groupes_0, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_0_c + ELSE 0::numeric + END AS montant_encours_groupes_0_c, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_0_h + ELSE 0::numeric + END AS montant_encours_groupes_0_h, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_groupes_1, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_1_c + ELSE 0::numeric + END AS montant_encours_groupes_1_c, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_1_h + ELSE 0::numeric + END AS montant_encours_groupes_1_h, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_groupes_2, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_2_c + ELSE 0::numeric + END AS montant_encours_groupes_2_c, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 0::numeric THEN p_factures_reference_tiers.montant_encours_2_h + ELSE 0::numeric + END AS montant_encours_groupes_2_h, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours + ELSE 0::numeric + END AS montant_encours_non_groupes, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_c + ELSE 0::numeric + END AS montant_encours_non_groupes_c, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_h + ELSE 0::numeric + END AS montant_encours_non_groupes_h, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_0 + ELSE 0::numeric + END AS montant_encours_non_groupes_0, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_0_c + ELSE 0::numeric + END AS montant_encours_non_groupes_0_c, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_0_h + ELSE 0::numeric + END AS montant_encours_non_groupes_0_h, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_1 + ELSE 0::numeric + END AS montant_encours_non_groupes_1, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_1_c + ELSE 0::numeric + END AS montant_encours_non_groupes_1_c, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_1_h + ELSE 0::numeric + END AS montant_encours_non_groupes_1_h, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_2 + ELSE 0::numeric + END AS montant_encours_non_groupes_2, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_2_c + ELSE 0::numeric + END AS montant_encours_non_groupes_2_c, + CASE + WHEN p_factures_reference_tiers.nb_non_groupe = 1::numeric THEN p_factures_reference_tiers.montant_encours_2_h + ELSE 0::numeric + END AS montant_encours_non_groupes_2_h, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture + p_factures_reference_tiers.montant_encours + ELSE 0::numeric + END AS montant_non_calcules, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_c + p_factures_reference_tiers.montant_encours_c + ELSE 0::numeric + END AS montant_non_calcules_c, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_h + p_factures_reference_tiers.montant_encours_h + ELSE 0::numeric + END AS montant_non_calcules_h, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_0 + p_factures_reference_tiers.montant_encours_0 + ELSE 0::numeric + END AS montant_non_calcules_0, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_0_c + p_factures_reference_tiers.montant_encours_0_c + ELSE 0::numeric + END AS montant_non_calcules_0_c, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_0_h + p_factures_reference_tiers.montant_encours_0_h + ELSE 0::numeric + END AS montant_non_calcules_0_h, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_1 + p_factures_reference_tiers.montant_encours_1 + ELSE 0::numeric + END AS montant_non_calcules_1, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_1_c + p_factures_reference_tiers.montant_encours_1_c + ELSE 0::numeric + END AS montant_non_calcules_1_c, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_1_h + p_factures_reference_tiers.montant_encours_1_h + ELSE 0::numeric + END AS montant_non_calcules_1_h, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_2 + p_factures_reference_tiers.montant_encours_2 + ELSE 0::numeric + END AS montant_non_calcules_2, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_2_c + p_factures_reference_tiers.montant_encours_2_c + ELSE 0::numeric + END AS montant_non_calcules_2_c, + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_2_h + p_factures_reference_tiers.montant_encours_2_h + ELSE 0::numeric + END AS montant_non_calcules_2_h, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture + p_factures_reference_tiers.montant_encours + ELSE 0::numeric + END AS montant_non_calcules_groupes, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_c + p_factures_reference_tiers.montant_encours_c + ELSE 0::numeric + END AS montant_non_calcules_groupes_c, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_h + p_factures_reference_tiers.montant_encours_h + ELSE 0::numeric + END AS montant_non_calcules_groupes_h, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture + p_factures_reference_tiers.montant_encours_0 + ELSE 0::numeric + END AS montant_non_calcules_groupes_0, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_c + p_factures_reference_tiers.montant_encours_0_c + ELSE 0::numeric + END AS montant_non_calcules_groupes_0_c, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_h + p_factures_reference_tiers.montant_encours_0_h + ELSE 0::numeric + END AS montant_non_calcules_groupes_0_h, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture + p_factures_reference_tiers.montant_encours_1 + ELSE 0::numeric + END AS montant_non_calcules_groupes_1, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_c + p_factures_reference_tiers.montant_encours_1_c + ELSE 0::numeric + END AS montant_non_calcules_groupes_1_c, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_h + p_factures_reference_tiers.montant_encours_1_h + ELSE 0::numeric + END AS montant_non_calcules_groupes_1_h, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture + p_factures_reference_tiers.montant_encours_2 + ELSE 0::numeric + END AS montant_non_calcules_groupes_2, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_c + p_factures_reference_tiers.montant_encours_2_c + ELSE 0::numeric + END AS montant_non_calcules_groupes_2_c, + CASE + WHEN (p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar) AND p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_h + p_factures_reference_tiers.montant_encours_2_h + ELSE 0::numeric + END AS montant_non_calcules_groupes_2_h, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture + p_factures_reference_tiers.montant_encours + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_c + p_factures_reference_tiers.montant_encours_c + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_c, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_h + p_factures_reference_tiers.montant_encours_h + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_h, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_0 + p_factures_reference_tiers.montant_encours_0 + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_0, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_0_c + p_factures_reference_tiers.montant_encours_0_c + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_0_c, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_0_h + p_factures_reference_tiers.montant_encours_0_h + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_0_h, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_1 + p_factures_reference_tiers.montant_encours_1 + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_1, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_1_c + p_factures_reference_tiers.montant_encours_1_c + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_1_c, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_1_h + p_factures_reference_tiers.montant_encours_1_h + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_1_h, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_2 + p_factures_reference_tiers.montant_encours_2 + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_2, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_2_c + p_factures_reference_tiers.montant_encours_2_c + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_2_c, + CASE + WHEN p_factures_reference_tiers.type_t2a = '1'::bpchar AND p_factures_reference_tiers.ghs_id <> 0 OR p_factures_reference_tiers.type_t2a <> '1'::bpchar THEN 0::numeric + ELSE + CASE + WHEN p_factures_reference_tiers.nb_non_calcules > 0 THEN p_factures_reference_tiers.montant_facture_2_h + p_factures_reference_tiers.montant_encours_2_h + ELSE 0::numeric + END + END AS montant_non_calcules_non_groupes_2_h, + p_factures_reference_tiers.montant_comptabilise, + p_factures_reference_tiers.montant_comptabilise_c, + p_factures_reference_tiers.montant_comptabilise_h, + p_factures_reference_tiers.montant_comptabilise_0, + p_factures_reference_tiers.montant_comptabilise_0_c, + p_factures_reference_tiers.montant_comptabilise_0_h, + p_factures_reference_tiers.montant_comptabilise_1, + p_factures_reference_tiers.montant_comptabilise_1_c, + p_factures_reference_tiers.montant_comptabilise_1_h, + p_factures_reference_tiers.montant_comptabilise_2, + p_factures_reference_tiers.montant_comptabilise_2_c, + p_factures_reference_tiers.montant_comptabilise_2_h, + p_factures_reference_tiers.montant_comptabilise_budget_global_c, + p_factures_reference_tiers.montant_regle, + p_factures_reference_tiers.montant_regle_c, + p_factures_reference_tiers.montant_regle_h, + p_factures_reference_tiers.montant_regle_0, + p_factures_reference_tiers.montant_regle_0_c, + p_factures_reference_tiers.montant_regle_0_h, + p_factures_reference_tiers.montant_regle_1, + p_factures_reference_tiers.montant_regle_1_c, + p_factures_reference_tiers.montant_regle_1_h, + p_factures_reference_tiers.montant_regle_2, + p_factures_reference_tiers.montant_regle_2_c, + p_factures_reference_tiers.montant_regle_2_h, + p_factures_reference_tiers.date_solde, + p_factures_reference_tiers.date_solde_c, + p_factures_reference_tiers.date_solde_h, + p_factures_reference_tiers.date_solde_0, + p_factures_reference_tiers.date_solde_0_c, + p_factures_reference_tiers.date_solde_0_h, + p_factures_reference_tiers.date_solde_1, + p_factures_reference_tiers.date_solde_1_c, + p_factures_reference_tiers.date_solde_1_h, + p_factures_reference_tiers.date_solde_2, + p_factures_reference_tiers.date_solde_2_c, + p_factures_reference_tiers.date_solde_2_h, + p_factures_reference_tiers.delai_solde, + p_factures_reference_tiers.delai_solde_c, + p_factures_reference_tiers.delai_solde_h, + p_factures_reference_tiers.delai_solde_0, + p_factures_reference_tiers.delai_solde_0_c, + p_factures_reference_tiers.delai_solde_0_h, + p_factures_reference_tiers.delai_solde_1, + p_factures_reference_tiers.delai_solde_1_c, + p_factures_reference_tiers.delai_solde_1_h, + p_factures_reference_tiers.delai_solde_2, + p_factures_reference_tiers.delai_solde_2_c, + p_factures_reference_tiers.delai_solde_2_h, + p_factures_reference_tiers.nb_non_solde, + p_factures_reference_tiers.nb_non_solde_c, + p_factures_reference_tiers.nb_non_solde_h, + p_factures_reference_tiers.nb_non_solde_0, + p_factures_reference_tiers.nb_non_solde_0_c, + p_factures_reference_tiers.nb_non_solde_0_h, + p_factures_reference_tiers.nb_non_solde_1, + p_factures_reference_tiers.nb_non_solde_1_c, + p_factures_reference_tiers.nb_non_solde_1_h, + p_factures_reference_tiers.nb_non_solde_2, + p_factures_reference_tiers.nb_non_solde_2_c, + p_factures_reference_tiers.nb_non_solde_2_h, + p_factures_reference_tiers.montant_comptabilise - p_factures_reference_tiers.montant_regle AS montant_solde, + p_factures_reference_tiers.montant_comptabilise_c - p_factures_reference_tiers.montant_regle_c AS montant_solde_c, + p_factures_reference_tiers.montant_comptabilise_h - p_factures_reference_tiers.montant_regle_h AS montant_solde_h, + p_factures_reference_tiers.montant_comptabilise_0 - p_factures_reference_tiers.montant_regle_0 AS montant_solde_0, + p_factures_reference_tiers.montant_comptabilise_0_c - p_factures_reference_tiers.montant_regle_0_c AS montant_solde_0_c, + p_factures_reference_tiers.montant_comptabilise_0_h - p_factures_reference_tiers.montant_regle_0_h AS montant_solde_0_h, + p_factures_reference_tiers.montant_comptabilise_1 - p_factures_reference_tiers.montant_regle_1 AS montant_solde_1, + p_factures_reference_tiers.montant_comptabilise_1_c - p_factures_reference_tiers.montant_regle_1_c AS montant_solde_1_c, + p_factures_reference_tiers.montant_comptabilise_1_h - p_factures_reference_tiers.montant_regle_1_h AS montant_solde_1_h, + p_factures_reference_tiers.montant_comptabilise_2 - p_factures_reference_tiers.montant_regle_2 AS montant_solde_2, + p_factures_reference_tiers.montant_comptabilise_2_c - p_factures_reference_tiers.montant_regle_2_c AS montant_solde_2_c, + p_factures_reference_tiers.montant_comptabilise_2_h - p_factures_reference_tiers.montant_regle_2_h AS montant_solde_2_h, + p_factures_reference_tiers.nb_non_cloture, + p_factures_reference_tiers.nb_non_cloture_c, + p_factures_reference_tiers.nb_non_cloture_h, + p_factures_reference_tiers.nb_non_cloture_0, + p_factures_reference_tiers.nb_non_cloture_0_c, + p_factures_reference_tiers.nb_non_cloture_0_h, + p_factures_reference_tiers.nb_non_cloture_1, + p_factures_reference_tiers.nb_non_cloture_1_c, + p_factures_reference_tiers.nb_non_cloture_1_h, + p_factures_reference_tiers.nb_non_cloture_2, + p_factures_reference_tiers.nb_non_cloture_2_c, + p_factures_reference_tiers.nb_non_cloture_2_h, + p_factures_reference_tiers.motif_non_facturation_id, + p_factures_reference_tiers.motif_non_facturation_comment, + p_factures_reference_tiers.nb_non_calcules_bg, + p_factures_reference_tiers.nb_non_calcules_horsbg, + p_factures_reference_tiers.pole_sortie_id AS pole_id + FROM activite.p_factures_reference_tiers + JOIN activite.t_tiers_payant ON p_factures_reference_tiers.tiers_payant_id = t_tiers_payant.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_rejets_1.yaml b/db/schema2/views/v_factures_rejets_1.yaml new file mode 100644 index 0000000..58812b5 --- /dev/null +++ b/db/schema2/views/v_factures_rejets_1.yaml @@ -0,0 +1,13 @@ +src: | + SELECT p_factures_rejets.no_facture, + p_factures_rejets.facture_id, + p_factures_rejets.date_rejet, + p_factures_rejets.rejet_id, + p_factures_rejets.rejet_code, + t_rejets_noemie.texte AS rejet_texte, + t_rejets_noemie.section_id AS rejet_section_id, + t_rejets_noemie.section_code AS rejet_section_code, + t_rejets_noemie.section_texte AS rejet_section_texte + FROM activite.p_factures_rejets, + activite.t_rejets_noemie + WHERE p_factures_rejets.rejet_id = t_rejets_noemie.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_soldes_c_1.yaml b/db/schema2/views/v_factures_soldes_c_1.yaml new file mode 100644 index 0000000..62759d5 --- /dev/null +++ b/db/schema2/views/v_factures_soldes_c_1.yaml @@ -0,0 +1,128 @@ +src: | + SELECT p_sejours.finess, + p_sejours.no_patient, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_sejours.no_sejour, + p_factures.no_facture, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::text + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::text + ELSE p_sejours.type_sejour + END AS sexe_texte_court, + p_sejours.age, + p_sejours.type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.code_sorti, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.date_sortie, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_vente, + p_factures.date_vente, + to_char(p_factures_soldes_c.date_comptable::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_comptable, + p_factures_soldes_c.date_comptable, + p_sejours.ghs_id, + t_ghs_c.ghs_code_text AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + p_factures.tiers_payant_0_id, + p_factures.tiers_payant_1_id, + p_factures.tiers_payant_2_id, + p_factures.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id, + t_lieux_c.lit_section_code, + t_lieux_c.lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_id, + p_factures_soldes_c.rubrique_comptabilisee_id, + t_rubriques_facturation.code AS rubrique_comptabilisee_code, + t_rubriques_facturation.texte_court AS rubrique_comptabilisee_texte, + p_factures_soldes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + p_factures_soldes_c.montant_comptabilise, + p_factures_soldes_c.montant_comptabilise_0, + p_factures_soldes_c.montant_comptabilise_1, + p_factures_soldes_c.montant_comptabilise_2, + p_factures_soldes_c.montant_comptabilise_22, + p_factures_soldes_c.montant_regle, + p_factures_soldes_c.montant_regle_0, + p_factures_soldes_c.montant_regle_1, + p_factures_soldes_c.montant_regle_2, + p_factures_soldes_c.montant_regle_22 + FROM activite.p_factures_soldes_c + JOIN activite.p_factures ON p_factures_soldes_c.no_facture = p_factures.no_facture + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + JOIN activite.t_rubriques_facturation ON p_factures_soldes_c.rubrique_comptabilisee_id = t_rubriques_facturation.oid + JOIN activite.t_prestations ON p_factures_soldes_c.prestation_id = t_prestations.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_soldes_c_2.yaml b/db/schema2/views/v_factures_soldes_c_2.yaml new file mode 100644 index 0000000..d03ca87 --- /dev/null +++ b/db/schema2/views/v_factures_soldes_c_2.yaml @@ -0,0 +1,145 @@ +src: | + SELECT p_sejours.finess, + p_sejours.no_patient, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_sejours.no_sejour, + p_factures.no_facture, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe::text = '1'::text THEN 'M'::text + WHEN p_sejours.code_sexe::text = '2'::text THEN 'F'::text + ELSE p_sejours.type_sejour + END AS sexe_texte_court, + p_sejours.age, + p_sejours.type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.code_sorti, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.date_sortie, + to_char(p_factures.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_factures.date_facture, + to_char(p_factures.date_vente::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_vente, + p_factures.date_vente, + to_char(p_factures_soldes_c.date_comptable::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_comptable, + p_factures_soldes_c.date_comptable, + p_sejours.ghs_id, + t_types_tiers_payant.code AS type_tiers_payant_id, + t_types_tiers_payant.code AS type_tiers_payant_code, + t_types_tiers_payant.texte_court AS type_tiers_payant_texte, + CASE + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid THEN p_factures.tiers_payant_0_id + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid THEN p_factures.tiers_payant_1_id + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid THEN p_factures.tiers_payant_2_id + WHEN p_factures.tiers_payant_22_id = t_tiers_payant.oid THEN p_factures.tiers_payant_22_id + ELSE NULL::bigint + END AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id, + t_lieux_c.lit_section_code, + t_lieux_c.lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_id, + p_factures_soldes_c.rubrique_comptabilisee_id, + t_rubriques_facturation.code AS rubrique_comptabilisee_code, + t_rubriques_facturation.texte_court AS rubrique_comptabilisee_texte, + p_factures_soldes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + CASE + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid THEN p_factures_soldes_c.montant_comptabilise_0 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid THEN p_factures_soldes_c.montant_comptabilise_1 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid THEN p_factures_soldes_c.montant_comptabilise_2 + WHEN p_factures.tiers_payant_22_id = t_tiers_payant.oid THEN p_factures_soldes_c.montant_comptabilise_22 + ELSE 0::numeric + END AS montant_comptabilise, + CASE + WHEN p_factures.tiers_payant_0_id = t_tiers_payant.oid THEN p_factures_soldes_c.montant_regle_0 + WHEN p_factures.tiers_payant_1_id = t_tiers_payant.oid THEN p_factures_soldes_c.montant_regle_1 + WHEN p_factures.tiers_payant_2_id = t_tiers_payant.oid THEN p_factures_soldes_c.montant_regle_2 + WHEN p_factures.tiers_payant_22_id = t_tiers_payant.oid THEN p_factures_soldes_c.montant_regle_22 + ELSE 0::numeric + END AS montant_regle, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN 'S'::text + ELSE t_ghs_c.mco_code + END AS mcos_code, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN t_ghs_c.cmd_texte + ELSE + CASE + WHEN t_ghs_c.mco_code = '*'::text THEN 'Hors GHM ou N/A'::text + ELSE t_ghs_c.mco_texte + END + END AS mcos_texte, + CASE + WHEN t_ghs_c.cmd_code = '28'::text THEN 4 + ELSE + CASE t_ghs_c.mco_code + WHEN '*'::text THEN 0 + WHEN 'M'::text THEN 1 + WHEN 'C'::text THEN 2 + WHEN 'O'::text THEN 3 + ELSE NULL::integer + END + END AS mcos_id + FROM activite.p_factures_soldes_c + JOIN activite.p_factures ON p_factures_soldes_c.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.tiers_payant_0_id > 0 OR p_factures.tiers_payant_1_id = t_tiers_payant.oid AND p_factures.tiers_payant_1_id > 0 OR p_factures.tiers_payant_2_id = t_tiers_payant.oid AND p_factures.tiers_payant_2_id > 0 OR p_factures.tiers_payant_22_id = t_tiers_payant.oid AND p_factures.tiers_payant_22_id > 0 + JOIN activite.t_types_tiers_payant ON t_tiers_payant.type_tiers_payant = t_types_tiers_payant.code + JOIN activite.p_sejours ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + JOIN activite.t_rubriques_facturation ON p_factures_soldes_c.rubrique_comptabilisee_id = t_rubriques_facturation.oid + JOIN activite.t_prestations ON p_factures_soldes_c.prestation_id = t_prestations.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_soldes_c_3.yaml b/db/schema2/views/v_factures_soldes_c_3.yaml new file mode 100644 index 0000000..bb086de --- /dev/null +++ b/db/schema2/views/v_factures_soldes_c_3.yaml @@ -0,0 +1,172 @@ +src: | + SELECT p_factures_soldes_c.finess, + p_factures_soldes_c.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + p_factures_soldes_c.date_comptable, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + p_factures.tiers_payant_0_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_soldes_c.rubrique_comptabilisee_id, + t_rubriques_facturation.code AS rubrique_comptabilisee_code, + t_rubriques_facturation.texte_court AS rubrique_comptabilisee_texte, + t_rubriques_facturation.section_id AS rubrique_comptabilisee_section_id, + t_rubriques_facturation.section_code AS rubrique_comptabilisee_section_code, + t_rubriques_facturation.section_texte AS rubrique_comptabilisee_section_texte, + p_factures_soldes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_factures_soldes_c.montant_comptabilise_0 AS montant_comptabilise, + p_factures_soldes_c.montant_regle_0 AS montant_regle + FROM activite.p_factures_soldes_c + JOIN activite.p_factures ON p_factures_soldes_c.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.tiers_payant_0_id > 0 AND (p_factures_soldes_c.montant_comptabilise_0 <> 0::numeric OR p_factures_soldes_c.montant_regle_0 <> 0::numeric) + JOIN activite.t_rubriques_facturation ON p_factures_soldes_c.rubrique_comptabilisee_id = t_rubriques_facturation.oid + JOIN activite.t_prestations ON p_factures_soldes_c.prestation_id = t_prestations.oid + UNION ALL + SELECT p_factures_soldes_c.finess, + p_factures_soldes_c.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + p_factures_soldes_c.date_comptable, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + p_factures.tiers_payant_1_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_soldes_c.rubrique_comptabilisee_id, + t_rubriques_facturation.code AS rubrique_comptabilisee_code, + t_rubriques_facturation.texte_court AS rubrique_comptabilisee_texte, + t_rubriques_facturation.section_id AS rubrique_comptabilisee_section_id, + t_rubriques_facturation.section_code AS rubrique_comptabilisee_section_code, + t_rubriques_facturation.section_texte AS rubrique_comptabilisee_section_texte, + p_factures_soldes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_factures_soldes_c.montant_comptabilise_1 AS montant_comptabilise, + p_factures_soldes_c.montant_regle_1 AS montant_regle + FROM activite.p_factures_soldes_c + JOIN activite.p_factures ON p_factures_soldes_c.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_1_id = t_tiers_payant.oid AND (p_factures.tiers_payant_1_id > 0 OR p_factures.montant_facture_1_c <> 0::numeric OR p_factures.montant_facture_1_h <> 0::numeric) AND (p_factures_soldes_c.montant_comptabilise_1 <> 0::numeric OR p_factures_soldes_c.montant_regle_1 <> 0::numeric) + JOIN activite.t_rubriques_facturation ON p_factures_soldes_c.rubrique_comptabilisee_id = t_rubriques_facturation.oid + JOIN activite.t_prestations ON p_factures_soldes_c.prestation_id = t_prestations.oid + UNION ALL + SELECT p_factures_soldes_c.finess, + p_factures_soldes_c.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + p_factures_soldes_c.date_comptable, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + p_factures.tiers_payant_2_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_soldes_c.rubrique_comptabilisee_id, + t_rubriques_facturation.code AS rubrique_comptabilisee_code, + t_rubriques_facturation.texte_court AS rubrique_comptabilisee_texte, + t_rubriques_facturation.section_id AS rubrique_comptabilisee_section_id, + t_rubriques_facturation.section_code AS rubrique_comptabilisee_section_code, + t_rubriques_facturation.section_texte AS rubrique_comptabilisee_section_texte, + p_factures_soldes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_factures_soldes_c.montant_comptabilise_2 AS montant_comptabilise, + p_factures_soldes_c.montant_regle_2 AS montant_regle + FROM activite.p_factures_soldes_c + JOIN activite.p_factures ON p_factures_soldes_c.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.tiers_payant_2_id > 0 OR p_factures.montant_facture_2_c <> 0::numeric OR p_factures.montant_facture_2_h <> 0::numeric) AND (p_factures_soldes_c.montant_comptabilise_2 <> 0::numeric OR p_factures_soldes_c.montant_regle_2 <> 0::numeric) + JOIN activite.t_rubriques_facturation ON p_factures_soldes_c.rubrique_comptabilisee_id = t_rubriques_facturation.oid + JOIN activite.t_prestations ON p_factures_soldes_c.prestation_id = t_prestations.oid + UNION ALL + SELECT p_factures_soldes_c.finess, + p_factures_soldes_c.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures.date_debut AS date_debut_facture, + p_factures.date_fin AS date_fin_facture, + p_factures_soldes_c.date_comptable, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + p_factures.tiers_payant_22_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_soldes_c.rubrique_comptabilisee_id, + t_rubriques_facturation.code AS rubrique_comptabilisee_code, + t_rubriques_facturation.texte_court AS rubrique_comptabilisee_texte, + t_rubriques_facturation.section_id AS rubrique_comptabilisee_section_id, + t_rubriques_facturation.section_code AS rubrique_comptabilisee_section_code, + t_rubriques_facturation.section_texte AS rubrique_comptabilisee_section_texte, + p_factures_soldes_c.prestation_id, + t_prestations.code AS prestation_code, + t_prestations.texte_court AS prestation_texte, + t_prestations.section_id AS prestation_section_id, + t_prestations.section_code AS prestation_section_code, + t_prestations.section_texte AS prestation_section_texte, + p_factures_soldes_c.montant_comptabilise_22 AS montant_comptabilise, + p_factures_soldes_c.montant_regle_22 AS montant_regle + FROM activite.p_factures_soldes_c + JOIN activite.p_factures ON p_factures_soldes_c.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_22_id = t_tiers_payant.oid AND (p_factures.tiers_payant_22_id > 0 OR p_factures.montant_facture_22_c <> 0::numeric OR p_factures.montant_facture_22_h <> 0::numeric) AND (p_factures_soldes_c.montant_comptabilise_22 <> 0::numeric OR p_factures_soldes_c.montant_regle_22 <> 0::numeric) + JOIN activite.t_rubriques_facturation ON p_factures_soldes_c.rubrique_comptabilisee_id = t_rubriques_facturation.oid + JOIN activite.t_prestations ON p_factures_soldes_c.prestation_id = t_prestations.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_soldes_c_r_1.yaml b/db/schema2/views/v_factures_soldes_c_r_1.yaml new file mode 100644 index 0000000..8abfb8f --- /dev/null +++ b/db/schema2/views/v_factures_soldes_c_r_1.yaml @@ -0,0 +1,142 @@ +dep: + - v_factures_soldes_c_3 + - v_sejours_1 +src: | + SELECT v_factures_soldes_c_3.date_comptable AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_soldes_c_3.no_facture, + v_factures_soldes_c_3.facture_id, + v_factures_soldes_c_3.date_facture, + v_factures_soldes_c_3.date_vente, + v_factures_soldes_c_3.date_comptable, + v_factures_soldes_c_3.type_tiers_payant_id, + v_factures_soldes_c_3.type_tiers_payant_code, + v_factures_soldes_c_3.type_tiers_payant_texte, + v_factures_soldes_c_3.tiers_payant_id, + v_factures_soldes_c_3.tiers_payant_code, + v_factures_soldes_c_3.tiers_payant_texte, + v_factures_soldes_c_3.rubrique_comptabilisee_id, + v_factures_soldes_c_3.rubrique_comptabilisee_code, + v_factures_soldes_c_3.rubrique_comptabilisee_texte, + v_factures_soldes_c_3.rubrique_comptabilisee_section_id, + v_factures_soldes_c_3.rubrique_comptabilisee_section_code, + v_factures_soldes_c_3.rubrique_comptabilisee_section_texte, + v_factures_soldes_c_3.prestation_id, + v_factures_soldes_c_3.prestation_code, + v_factures_soldes_c_3.prestation_texte, + v_factures_soldes_c_3.montant_comptabilise, + v_factures_soldes_c_3.montant_regle + FROM activite.v_factures_soldes_c_3, + activite.v_sejours_1 + WHERE v_factures_soldes_c_3.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_soldes_c_r_4.yaml b/db/schema2/views/v_factures_soldes_c_r_4.yaml new file mode 100644 index 0000000..d2e25fa --- /dev/null +++ b/db/schema2/views/v_factures_soldes_c_r_4.yaml @@ -0,0 +1,143 @@ +dep: + - v_factures_soldes_c_3 + - v_sejours_1 +src: | + SELECT v_factures_soldes_c_3.date_comptable AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_soldes_c_3.no_facture, + v_factures_soldes_c_3.facture_id, + v_factures_soldes_c_3.date_facture, + v_factures_soldes_c_3.date_vente, + v_factures_soldes_c_3.date_comptable, + v_factures_soldes_c_3.type_tiers_payant_id, + v_factures_soldes_c_3.type_tiers_payant_code, + v_factures_soldes_c_3.type_tiers_payant_texte, + v_factures_soldes_c_3.tiers_payant_id, + v_factures_soldes_c_3.tiers_payant_code, + v_factures_soldes_c_3.tiers_payant_texte, + v_factures_soldes_c_3.rubrique_comptabilisee_id, + v_factures_soldes_c_3.rubrique_comptabilisee_code, + v_factures_soldes_c_3.rubrique_comptabilisee_texte, + v_factures_soldes_c_3.rubrique_comptabilisee_section_id, + v_factures_soldes_c_3.rubrique_comptabilisee_section_code, + v_factures_soldes_c_3.rubrique_comptabilisee_section_texte, + v_factures_soldes_c_3.prestation_id, + v_factures_soldes_c_3.prestation_code, + v_factures_soldes_c_3.prestation_texte, + v_factures_soldes_c_3.montant_comptabilise, + v_factures_soldes_c_3.montant_regle, + v_factures_soldes_c_3.montant_comptabilise - v_factures_soldes_c_3.montant_regle AS montant_solde + FROM activite.v_factures_soldes_c_3, + activite.v_sejours_1 + WHERE v_factures_soldes_c_3.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_factures_soldes_h_1.yaml b/db/schema2/views/v_factures_soldes_h_1.yaml new file mode 100644 index 0000000..2fdd26d --- /dev/null +++ b/db/schema2/views/v_factures_soldes_h_1.yaml @@ -0,0 +1,32 @@ +src: | + SELECT p_factures_soldes_h.finess, + p_factures_soldes_h.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures_soldes_h.date_comptable, + p_factures_soldes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_comptabilise_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_comptabilise_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_comptabilise_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_c.medecin_code AS medecin_comptabilise_code, + t_medecins_administratifs_c.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_c.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_comptabilise_specialite_texte, + p_factures_soldes_h.montant_comptabilise, + p_factures_soldes_h.montant_regle + FROM activite.p_factures_soldes_h, + activite.p_factures, + activite.t_medecins_administratifs_c + WHERE p_factures_soldes_h.no_facture = p_factures.no_facture AND p_factures_soldes_h.medecin_comptabilise_id = t_medecins_administratifs_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_soldes_h_3.yaml b/db/schema2/views/v_factures_soldes_h_3.yaml new file mode 100644 index 0000000..b54f731 --- /dev/null +++ b/db/schema2/views/v_factures_soldes_h_3.yaml @@ -0,0 +1,180 @@ +src: | + SELECT p_factures_soldes_h.finess, + p_factures_soldes_h.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_fin AS date_fin_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures_soldes_h.date_comptable, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + p_factures.tiers_payant_0_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_soldes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_comptabilise_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_comptabilise_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_comptabilise_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_c.medecin_code AS medecin_comptabilise_code, + t_medecins_administratifs_c.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_c.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_comptabilise_specialite_texte, + p_factures_soldes_h.montant_comptabilise_0 AS montant_comptabilise, + p_factures_soldes_h.montant_regle_0 AS montant_regle + FROM activite.p_factures_soldes_h + JOIN activite.p_factures ON p_factures_soldes_h.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_0_id = t_tiers_payant.oid AND p_factures.tiers_payant_0_id > 0 AND (p_factures_soldes_h.montant_comptabilise_0 <> 0::numeric OR p_factures_soldes_h.montant_regle_0 <> 0::numeric) + JOIN activite.t_medecins_administratifs_c ON p_factures_soldes_h.medecin_comptabilise_id = t_medecins_administratifs_c.oid + UNION ALL + SELECT p_factures_soldes_h.finess, + p_factures_soldes_h.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_fin AS date_fin_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures_soldes_h.date_comptable, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + p_factures.tiers_payant_1_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_soldes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_comptabilise_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_comptabilise_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_comptabilise_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_c.medecin_code AS medecin_comptabilise_code, + t_medecins_administratifs_c.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_c.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_comptabilise_specialite_texte, + p_factures_soldes_h.montant_comptabilise_1 AS montant_comptabilise, + p_factures_soldes_h.montant_regle_1 AS montant_regle + FROM activite.p_factures_soldes_h + JOIN activite.p_factures ON p_factures_soldes_h.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_1_id = t_tiers_payant.oid AND (p_factures.tiers_payant_1_id > 0 OR p_factures.montant_facture_1_c <> 0::numeric OR p_factures.montant_facture_1_h <> 0::numeric) AND (p_factures_soldes_h.montant_comptabilise_1 <> 0::numeric OR p_factures_soldes_h.montant_regle_1 <> 0::numeric) + JOIN activite.t_medecins_administratifs_c ON p_factures_soldes_h.medecin_comptabilise_id = t_medecins_administratifs_c.oid + UNION ALL + SELECT p_factures_soldes_h.finess, + p_factures_soldes_h.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_fin AS date_fin_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures_soldes_h.date_comptable, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + p_factures.tiers_payant_2_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_soldes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_comptabilise_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_comptabilise_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_comptabilise_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_c.medecin_code AS medecin_comptabilise_code, + t_medecins_administratifs_c.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_c.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_comptabilise_specialite_texte, + p_factures_soldes_h.montant_comptabilise_2 AS montant_comptabilise, + p_factures_soldes_h.montant_regle_2 AS montant_regle + FROM activite.p_factures_soldes_h + JOIN activite.p_factures ON p_factures_soldes_h.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_2_id = t_tiers_payant.oid AND (p_factures.tiers_payant_2_id > 0 OR p_factures.montant_facture_2_c <> 0::numeric OR p_factures.montant_facture_2_h <> 0::numeric) AND (p_factures_soldes_h.montant_comptabilise_2 <> 0::numeric OR p_factures_soldes_h.montant_regle_2 <> 0::numeric) + JOIN activite.t_medecins_administratifs_c ON p_factures_soldes_h.medecin_comptabilise_id = t_medecins_administratifs_c.oid + UNION ALL + SELECT p_factures_soldes_h.finess, + p_factures_soldes_h.no_facture, + p_factures.sejour_id, + p_factures.oid AS facture_id, + p_factures.no_sejour, + p_factures.date_facture, + p_factures.date_fin AS date_fin_facture, + p_factures.date_vente, + p_factures.mois_vente, + p_factures_soldes_h.date_comptable, + t_tiers_payant.type_tiers_payant_id, + t_tiers_payant.type_tiers_payant AS type_tiers_payant_code, + t_tiers_payant.type_tiers_payant_texte, + p_factures.tiers_payant_22_id AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + t_tiers_payant.grand_regime_id AS tiers_payant_grand_regime_id, + t_tiers_payant.grand_regime_code AS tiers_payant_grand_regime_code, + t_tiers_payant.grand_regime_texte AS tiers_payant_grand_regime_texte, + t_tiers_payant.section_id AS tiers_payant_section_id, + t_tiers_payant.section_code AS tiers_payant_section_code, + t_tiers_payant.section_texte AS tiers_payant_section_texte, + p_factures_soldes_h.medecin_comptabilise_id AS medecin_adm_comptabilise_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_comptabilise_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_comptabilise_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_comptabilise_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_comptabilise_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_comptabilise_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_comptabilise_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_comptabilise_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_comptabilise_id, + t_medecins_administratifs_c.medecin_code AS medecin_comptabilise_code, + t_medecins_administratifs_c.nom AS medecin_comptabilise_nom, + t_medecins_administratifs_c.prenom AS medecin_comptabilise_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_comptabilise_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_comptabilise_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_comptabilise_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_comptabilise_specialite_texte, + p_factures_soldes_h.montant_comptabilise_22 AS montant_comptabilise, + p_factures_soldes_h.montant_regle_22 AS montant_regle + FROM activite.p_factures_soldes_h + JOIN activite.p_factures ON p_factures_soldes_h.no_facture = p_factures.no_facture + JOIN activite.t_tiers_payant ON p_factures.tiers_payant_22_id = t_tiers_payant.oid AND (p_factures.tiers_payant_22_id > 0 OR p_factures.montant_facture_22_c <> 0::numeric OR p_factures.montant_facture_22_h <> 0::numeric) AND (p_factures_soldes_h.montant_comptabilise_22 <> 0::numeric OR p_factures_soldes_h.montant_regle_22 <> 0::numeric) + JOIN activite.t_medecins_administratifs_c ON p_factures_soldes_h.medecin_comptabilise_id = t_medecins_administratifs_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_factures_soldes_h_r_4.yaml b/db/schema2/views/v_factures_soldes_h_r_4.yaml new file mode 100644 index 0000000..76d4d17 --- /dev/null +++ b/db/schema2/views/v_factures_soldes_h_r_4.yaml @@ -0,0 +1,134 @@ +dep: + - v_factures_soldes_h_3 + - v_sejours_1 +src: | + SELECT v_factures_soldes_h_3.date_comptable AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_factures_soldes_h_3.no_facture, + v_factures_soldes_h_3.facture_id, + v_factures_soldes_h_3.date_facture, + v_factures_soldes_h_3.date_vente, + v_factures_soldes_h_3.date_comptable, + v_factures_soldes_h_3.type_tiers_payant_id, + v_factures_soldes_h_3.type_tiers_payant_code, + v_factures_soldes_h_3.type_tiers_payant_texte, + v_factures_soldes_h_3.tiers_payant_id, + v_factures_soldes_h_3.tiers_payant_code, + v_factures_soldes_h_3.tiers_payant_texte, + v_factures_soldes_h_3.montant_comptabilise, + v_factures_soldes_h_3.montant_regle, + v_factures_soldes_h_3.montant_comptabilise - v_factures_soldes_h_3.montant_regle AS montant_solde + FROM activite.v_factures_soldes_h_3, + activite.v_sejours_1 + WHERE v_factures_soldes_h_3.no_sejour = v_sejours_1.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_filiere_soin_2.yaml b/db/schema2/views/v_filiere_soin_2.yaml new file mode 100644 index 0000000..c593005 --- /dev/null +++ b/db/schema2/views/v_filiere_soin_2.yaml @@ -0,0 +1,68 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.liste_alias_combo AS alias, + v_listes_1.texte, + ('0'::text || v_listes_1.sort) || chr(1) AS code, + v_listes_1.lvl AS level, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'FILIERESOIN'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || to_char(t_classes.sequence, 'FM00'::text)) || t_classes.oid::text AS oid, + ''::text AS alias, + t_classes.texte, + '2'::text || btrim(rpad(to_char(t_classes.sequence, 'FM00'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'FILIERESOIN'::text + UNION ALL + SELECT ('LS'::text || to_char(t_classes.sequence, 'FM00'::text)) || t_classes_sections.oid::text AS oid, + (('#LS'::text || t_classes.code) || to_char(t_classes.sequence, 'FM00'::text)) || t_classes_sections.code AS alias, + t_classes_sections.texte, + '2'::text || btrim(rpad(to_char(t_classes.sequence, 'FM00'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'FILIERESOIN'::text + ) + UNION ALL + SELECT ('LS'::text || to_char(t_classes.sequence, 'FM00'::text)) || '0'::text AS oid, + ('#LS'::text || t_classes.code) || '_'::text AS alias, + 'Section non attribuée'::character varying AS texte, + '2'::text || btrim(rpad(to_char(t_classes.sequence, 'FM00'::text), 10, ' '::text) || chr(255)) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'FILIERESOIN'::text + ) UNION + SELECT 'DT'::text || t_filiere_soin.oid::text AS oid, + '#DT'::text || t_filiere_soin.code AS alias, + (t_filiere_soin.code || ' '::text) || t_filiere_soin.texte AS texte, + '9'::text || t_filiere_soin.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_filiere_soin + WHERE (t_filiere_soin.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'filiere_soin'::text)) + ORDER BY 4, 1, 3; \ No newline at end of file diff --git a/db/schema2/views/v_filiere_soin_principale_1.yaml b/db/schema2/views/v_filiere_soin_principale_1.yaml new file mode 100644 index 0000000..e37ea8b --- /dev/null +++ b/db/schema2/views/v_filiere_soin_principale_1.yaml @@ -0,0 +1,9 @@ +src: | + SELECT t_filiere_soin.oid AS to_filiere_soin_id, + t_filiere_soin.code AS filiere_soin_principale_code, + t_filiere_soin.texte AS filiere_soin_principale_texte, + t_filiere_soin.section_id AS filiere_soin_principale_section_id, + t_filiere_soin.section_code AS filiere_soin_principale_section_code, + t_filiere_soin.section_texte AS filiere_soin_principale_section_texte + FROM activite.t_filiere_soin t_filiere_soin + ORDER BY t_filiere_soin.oid; \ No newline at end of file diff --git a/db/schema2/views/v_finess_1.yaml b/db/schema2/views/v_finess_1.yaml new file mode 100644 index 0000000..5a56bd4 --- /dev/null +++ b/db/schema2/views/v_finess_1.yaml @@ -0,0 +1,72 @@ +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.v_listes_1 + WHERE v_listes_1.table_code = 'FINESS'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'FINESS'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_classes_sections, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'FINESS'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'FINESS'::text + ) UNION + SELECT 'DT'::text || t_finess.oid::text AS oid, + ((t_finess.texte || ' ('::text) || t_finess.code) || ')'::text AS texte, + t_finess.code, + '1'::text AS level, + '8'::text || t_finess.texte AS tri, + '0'::character(1) AS is_cti + FROM base.t_finess + WHERE t_finess.oid = 0 + UNION + SELECT 'DT'::text || t_finess.oid::text AS oid, + ((t_finess.texte || ' ('::text) || t_finess.code) || ')'::text AS texte, + t_finess.code, + '1'::text AS level, + '9'::text || t_finess.texte AS tri, + '0'::character(1) AS is_cti + FROM base.t_finess + WHERE t_finess.oid > 0 + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_forme_activite_1.yaml b/db/schema2/views/v_forme_activite_1.yaml new file mode 100644 index 0000000..453eb2f --- /dev/null +++ b/db/schema2/views/v_forme_activite_1.yaml @@ -0,0 +1,9 @@ +src: | + SELECT t_forme_activite.oid AS to_forme_activite_id, + t_forme_activite.code AS forme_activite_code, + t_forme_activite.texte AS forme_activite_texte, + t_forme_activite.section_id AS forme_activite_section_id, + t_forme_activite.section_code AS forme_activite_section_code, + t_forme_activite.section_texte AS forme_activite_section_texte + FROM activite.t_forme_activite + ORDER BY t_forme_activite.oid; \ No newline at end of file diff --git a/db/schema2/views/v_forme_activite_2.yaml b/db/schema2/views/v_forme_activite_2.yaml new file mode 100644 index 0000000..3e8e313 --- /dev/null +++ b/db/schema2/views/v_forme_activite_2.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.liste_alias_combo AS alias, + v_listes_1.texte, + ('0'::text || v_listes_1.sort) || chr(1) AS code, + v_listes_1.lvl AS level, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'FORMEACTIVITE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || to_char(t_classes.sequence, 'FM00'::text)) || t_classes.oid::text AS oid, + ''::text AS alias, + t_classes.texte, + '2'::text || btrim(rpad(to_char(t_classes.sequence, 'FM00'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'FORMEACTIVITE'::text + UNION ALL + SELECT ('LS'::text || to_char(t_classes.sequence, 'FM00'::text)) || t_classes_sections.oid::text AS oid, + (('#LS'::text || t_classes.code) || to_char(t_classes.sequence, 'FM00'::text)) || t_classes_sections.code AS alias, + t_classes_sections.texte, + '2'::text || btrim(rpad(to_char(t_classes.sequence, 'FM00'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'FORMEACTIVITE'::text + ) + UNION ALL + SELECT ('LS'::text || to_char(t_classes.sequence, 'FM00'::text)) || '0'::text AS oid, + ('#LS'::text || t_classes.code) || '_'::text AS alias, + 'Section non attribuée'::character varying AS texte, + '2'::text || btrim(rpad(to_char(t_classes.sequence, 'FM00'::text), 10, ' '::text) || chr(255)) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'FORMEACTIVITE'::text + ) UNION + SELECT 'DT'::text || t_forme_activite.oid::text AS oid, + '#DT'::text || t_forme_activite.code AS alias, + (t_forme_activite.code || ' '::text) || t_forme_activite.texte_court AS texte, + '9'::text || t_forme_activite.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_forme_activite + WHERE t_forme_activite.oid > 0 + ORDER BY 4, 1, 3; \ No newline at end of file diff --git a/db/schema2/views/v_ghm_c_1.yaml b/db/schema2/views/v_ghm_c_1.yaml new file mode 100644 index 0000000..d3f6135 --- /dev/null +++ b/db/schema2/views/v_ghm_c_1.yaml @@ -0,0 +1,103 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'GHM'::text AND v_listes_1.lvl <> '0'::text + UNION + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'GHM'::text + UNION + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + (t_classes_sections.code || ' '::text) || t_classes_sections.texte AS texte, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'GHM'::text + UNION + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'GHM'::text + UNION + SELECT 'CM'::text || t_ghm_c.cmd_id::text AS oid, + (t_ghm_c.cmd_code || ' '::text) || t_ghm_c.cmd_texte AS texte, + '1'::text AS level, + '6'::text || t_ghm_c.cmd_code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghm_c + WHERE (t_ghm_c.ghm_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghm'::text)) + UNION + SELECT 'G5'::text || t_ghm_c.ghm5_id::text AS oid, + (t_ghm_c.ghm5_code || ' '::text) || t_ghm_c.ghm5_texte AS texte, + '2'::text AS level, + ('6'::text || t_ghm_c.cmd_code) || t_ghm_c.ghm5_code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghm_c + WHERE (t_ghm_c.ghm_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghm'::text)) + UNION + SELECT 'GM'::text || t_ghm_c.ghm_id::text AS oid, + (t_ghm_c.ghm_code || ' '::text) || t_ghm_c.ghm_texte AS texte, + '3'::text AS level, + (('6'::text || t_ghm_c.cmd_code) || t_ghm_c.ghm5_code) || t_ghm_c.ghm_code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghm_c + WHERE (t_ghm_c.ghm_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghm'::text)) + UNION + SELECT '-8'::text AS oid, + 'Sévérités'::text AS texte, + '1'::text AS level, + '7'::text AS tri, + '0'::character(1) AS is_cti + UNION + SELECT 'SV'::text || t_ghm_c.severite_ghm_id::text AS oid, + (t_ghm_c.severite_ghm_code::text || ' '::text) || t_ghm_c.severite_ghm_texte AS texte, + '2'::text AS level, + '7'::text || t_ghm_c.severite_ghm_code::text AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghm_c + WHERE (t_ghm_c.ghm_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghm'::text)) + UNION + SELECT '-8'::text AS oid, + 'Poles OAP'::text AS texte, + '1'::text AS level, + '8'::text AS tri, + '0'::character(1) AS is_cti + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_ghmgme_1.yaml b/db/schema2/views/v_ghmgme_1.yaml new file mode 100644 index 0000000..7e6504d --- /dev/null +++ b/db/schema2/views/v_ghmgme_1.yaml @@ -0,0 +1,195 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + ''::text AS code, + v_listes_1.texte, + v_listes_1.liste_alias_combo AS alias, + v_listes_1.lvl AS level, + ('00'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'GHMGME'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + ''::text AS code, + t_classes.texte, + ''::text AS alias, + '1'::text AS level, + '05'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'GHMGME'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + ''::text AS code, + t_classes_sections.texte, + ('#LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.code AS alias, + '2'::text AS level, + '05'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'GHMGME'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + ''::text AS code, + 'Section non attribuée'::character varying AS texte, + ''::text AS alias, + '2'::text AS level, + '05'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'GHMGME'::text + UNION ALL + SELECT '-8'::text AS oid, + ''::text AS code, + 'MCO-GHM'::text AS texte, + ''::text AS alias, + '1'::text AS level, + '60'::text AS tri, + ''::character(1) AS is_cti + FROM activite.t_ghmgme_c + WHERE t_ghmgme_c.ghmgme_id <> 0 AND (t_ghmgme_c.ghmgme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghmgme'::text)) + GROUP BY '-8'::text, ''::text, 'MCO-GHM'::text, '1'::text, '60'::text + UNION ALL + SELECT 'CM'::text || t_ghmgme_c.cmd_id::text AS oid, + t_ghmgme_c.cmd_code AS code, + (t_ghmgme_c.cmd_code || ' '::text) || t_ghmgme_c.cmd_texte AS texte, + ''::text AS alias, + '2'::text AS level, + '61'::text || t_ghmgme_c.cmd_code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghmgme_c + WHERE (t_ghmgme_c.ghm_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghmgme'::text)) + GROUP BY 'CM'::text || t_ghmgme_c.cmd_id::text, t_ghmgme_c.cmd_code, t_ghmgme_c.cmd_texte, ''::text, '2'::text, '61'::text, '0'::character(1) + UNION ALL + SELECT 'G5'::text || t_ghmgme_c.ghm5_id::text AS oid, + t_ghmgme_c.ghm5_code AS code, + (t_ghmgme_c.ghm5_code || ' '::text) || t_ghmgme_c.ghm5_texte AS texte, + ''::text AS alias, + '3'::text AS level, + ('61'::text || t_ghmgme_c.cmd_code) || t_ghmgme_c.ghm5_code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghmgme_c + WHERE (t_ghmgme_c.ghm_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghmgme'::text)) + GROUP BY 'G5'::text || t_ghmgme_c.ghm5_id::text, t_ghmgme_c.ghm5_code, t_ghmgme_c.ghm5_texte, ''::text, '3'::text, ('61'::text || t_ghmgme_c.cmd_code) || t_ghmgme_c.ghm5_code, '0'::character(1) + UNION ALL + SELECT 'GM'::text || t_ghmgme_c.ghmgme_id::text AS oid, + t_ghmgme_c.ghmgme_code AS code, + (t_ghmgme_c.ghmgme_code || ' '::text) || t_ghmgme_c.ghmgme_texte AS texte, + ''::text AS alias, + '4'::text AS level, + ((('61'::text || t_ghmgme_c.cmd_code) || t_ghmgme_c.ghm5_code) || t_ghmgme_c.ghmgme_code) || + CASE + WHEN t_ghmgme_c.ghmgme_id = 0 THEN '00000'::text + ELSE t_ghmgme_c.ghmgme_code + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghmgme_c + WHERE t_ghmgme_c.ghmgme_id <> 0 AND (t_ghmgme_c.type_pmsi = ANY (ARRAY['1'::text, '12'::text, '*'::text])) AND (t_ghmgme_c.ghmgme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghmgme'::text)) + GROUP BY 'GM'::text || t_ghmgme_c.ghmgme_id::text, t_ghmgme_c.ghmgme_code, (t_ghmgme_c.ghmgme_code || ' '::text) || t_ghmgme_c.ghmgme_texte, ''::text, '4'::text, ((('61'::text || t_ghmgme_c.cmd_code) || t_ghmgme_c.ghm5_code) || t_ghmgme_c.ghmgme_code) || + CASE + WHEN t_ghmgme_c.ghmgme_id = 0 THEN '00000'::text + ELSE t_ghmgme_c.ghmgme_code + END, '0'::character(1) + UNION ALL + SELECT '-8'::text AS oid, + ''::text AS code, + 'SSR-GME'::text AS texte, + ''::text AS alias, + '1'::text AS level, + '70'::text AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghmgme_c + WHERE t_ghmgme_c.ghmgme_id <> 0 AND (t_ghmgme_c.ghmgme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghmgme'::text)) + GROUP BY '-8'::text, ''::text, 'MCO-GME'::text, '1'::text, '8'::text + UNION ALL + SELECT 'CM'::text || t_ghmgme_c.cm_id::text AS oid, + t_ghmgme_c.cm_code AS code, + (t_ghmgme_c.cm_code || ' '::text) || t_ghmgme_c.cm_texte AS texte, + ''::text AS alias, + '2'::text AS level, + '71'::text || + CASE + WHEN t_ghmgme_c.cm_id = 0 THEN '00'::text + ELSE t_ghmgme_c.cm_code + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghmgme_c + WHERE t_ghmgme_c.gme_id <> 0 AND (t_ghmgme_c.gme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghmgme'::text)) + GROUP BY 'CM'::text || t_ghmgme_c.cm_id::text, t_ghmgme_c.cm_code, (t_ghmgme_c.cm_code || ' '::text) || t_ghmgme_c.cm_texte, ''::text, '1'::text, '71'::text || + CASE + WHEN t_ghmgme_c.cm_id = 0 THEN '00'::text + ELSE t_ghmgme_c.cm_code + END + UNION ALL + SELECT 'G5'::text || t_ghmgme_c.rgme_id::text AS oid, + t_ghmgme_c.rgme_code AS code, + (t_ghmgme_c.rgme_code || ' '::text) || t_ghmgme_c.rgme_texte AS texte, + ''::text AS alias, + '3'::text AS level, + '71'::text || + CASE + WHEN t_ghmgme_c.rgme_id = 0 THEN '0000'::text + ELSE (t_ghmgme_c.cm_code || chr(1)) || t_ghmgme_c.rgme_code + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghmgme_c + WHERE t_ghmgme_c.gme_id <> 0 AND (t_ghmgme_c.gme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'gme'::text)) + GROUP BY 'G5'::text || t_ghmgme_c.rgme_id::text, t_ghmgme_c.rgme_code, (t_ghmgme_c.rgme_code || ' '::text) || t_ghmgme_c.rgme_texte, ''::text, '3'::text, '71'::text || + CASE + WHEN t_ghmgme_c.rgme_id = 0 THEN '0000'::text + ELSE (t_ghmgme_c.cm_code || chr(1)) || t_ghmgme_c.rgme_code + END, '0'::character(1) + UNION ALL + SELECT 'GM'::text || t_ghmgme_c.ghmgme_id::text AS oid, + t_ghmgme_c.ghmgme_code AS code, + (t_ghmgme_c.ghmgme_code || ' '::text) || t_ghmgme_c.ghmgme_texte AS texte, + ''::text AS alias, + '4'::text AS level, + '71'::text || + CASE + WHEN t_ghmgme_c.ghmgme_id = 0 THEN '0000'::text + ELSE (((t_ghmgme_c.cm_code || chr(1)) || t_ghmgme_c.rgme_code) || chr(1)) || t_ghmgme_c.ghmgme_code + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ghmgme_c + WHERE t_ghmgme_c.ghmgme_id <> 0 AND (t_ghmgme_c.type_pmsi = ANY (ARRAY['2'::text, '12'::text, '*'::text])) AND (t_ghmgme_c.ghmgme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghmgme'::text)) + GROUP BY 'GM'::text || t_ghmgme_c.ghmgme_id::text, t_ghmgme_c.ghmgme_code, (t_ghmgme_c.ghmgme_code || ' '::text) || t_ghmgme_c.ghmgme_texte, ''::text, '4'::text, '71'::text || + CASE + WHEN t_ghmgme_c.ghmgme_id = 0 THEN '0000'::text + ELSE (((t_ghmgme_c.cm_code || chr(1)) || t_ghmgme_c.rgme_code) || chr(1)) || t_ghmgme_c.ghmgme_code + END, '0'::character(1) + ORDER BY 6; \ No newline at end of file diff --git a/db/schema2/views/v_ghs_1.yaml b/db/schema2/views/v_ghs_1.yaml new file mode 100644 index 0000000..75fa289 --- /dev/null +++ b/db/schema2/views/v_ghs_1.yaml @@ -0,0 +1,19 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'GHS'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT 'GH'::text || t_ghs_c.ghs_id::text AS oid, + (COALESCE(t_ghs_c.ghs_code_text,'') || ' '::text) || t_ghs_c.ghs_texte AS texte, + '1'::text AS level, + '9'::text || to_char(t_ghs_c.ghs_code, 'FM0000'::text) AS sort + FROM activite.t_ghs_c + WHERE t_ghs_c.ghs_id <> 0 AND (t_ghs_c.ghs_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ghs'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_gir_2.yaml b/db/schema2/views/v_gir_2.yaml new file mode 100644 index 0000000..632d5a7 --- /dev/null +++ b/db/schema2/views/v_gir_2.yaml @@ -0,0 +1,62 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'GIR'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '3'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'GIR'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '3'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'GIR'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '3'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'GIR'::text + UNION ALL + SELECT 'DT'::text || t_gir.oid::text AS oid, + (t_gir.code || ' '::text) || + CASE + WHEN t_gir.texte_court <> t_gir.code THEN t_gir.texte_court::character varying + ELSE ''::character varying + END::text AS texte, + '1'::text AS level, + ('9'::text || (t_gir.code || ' '::text)) || t_gir.texte_court AS sort, + '0'::character(1) AS is_cti + FROM base.t_gir + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_gme_1.yaml b/db/schema2/views/v_gme_1.yaml new file mode 100644 index 0000000..3df97da --- /dev/null +++ b/db/schema2/views/v_gme_1.yaml @@ -0,0 +1,143 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + ''::text AS code, + v_listes_1.texte, + v_listes_1.liste_alias_combo AS alias, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'GME'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + ''::text AS code, + t_classes.texte, + ''::text AS alias, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'GME'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + ''::text AS code, + t_classes_sections.texte, + ('#LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.code AS alias, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'GME'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + ''::text AS code, + 'Section non attribuée'::character varying AS texte, + ''::text AS alias, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'GME'::text + UNION ALL + SELECT 'CM'::text || t_gme_c.cm_id::text AS oid, + t_gme_c.cm_code AS code, + (t_gme_c.cm_code || ' '::text) || t_gme_c.cm_texte AS texte, + ''::text AS alias, + '1'::text AS level, + '6'::text || + CASE + WHEN t_gme_c.cm_id = 0 THEN '00'::text + ELSE t_gme_c.cm_code + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_gme_c + WHERE t_gme_c.gme_id <> 0 AND (t_gme_c.gme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'gme'::text)) + GROUP BY ('CM'::text || t_gme_c.cm_id::text), t_gme_c.cm_code, ((t_gme_c.cm_code || ' '::text) || t_gme_c.cm_texte), ''::text, '1'::text, ('6'::text || + CASE + WHEN t_gme_c.cm_id = 0 THEN '00'::text + ELSE t_gme_c.cm_code + END) + UNION ALL + SELECT 'GN'::text || t_gme_c.gn_id::text AS oid, + t_gme_c.gn_code AS code, + (t_gme_c.gn_code || ' '::text) || t_gme_c.gn_texte AS texte, + ''::text AS alias, + '2'::text AS level, + '6'::text || + CASE + WHEN t_gme_c.gn_id = 0 THEN '000'::text + ELSE (t_gme_c.cm_code || chr(1)) || t_gme_c.gn_code + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_gme_c + WHERE t_gme_c.gme_id <> 0 AND (t_gme_c.gme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'gme'::text)) + GROUP BY ('GN'::text || t_gme_c.gn_id::text), t_gme_c.gn_code, ((t_gme_c.gn_code || ' '::text) || t_gme_c.gn_texte), ''::text, '2'::text, ('6'::text || + CASE + WHEN t_gme_c.gn_id = 0 THEN '000'::text + ELSE (t_gme_c.cm_code || chr(1)) || t_gme_c.gn_code + END) + UNION ALL + SELECT 'RGME'::text || t_gme_c.rgme_id::text AS oid, + t_gme_c.rgme_code AS code, + (t_gme_c.rgme_code || ' '::text) || t_gme_c.rgme_texte AS texte, + ''::text AS alias, + '3'::text AS level, + '6'::text || + CASE + WHEN t_gme_c.rgme_id = 0 THEN '0000'::text + ELSE (((t_gme_c.cm_code || chr(1)) || t_gme_c.gn_code) || chr(1)) || t_gme_c.rgme_code + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_gme_c + WHERE t_gme_c.gme_id <> 0 AND (t_gme_c.gme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'gme'::text)) + GROUP BY ('RGME'::text || t_gme_c.rgme_id::text), t_gme_c.rgme_code, ((t_gme_c.rgme_code || ' '::text) || t_gme_c.rgme_texte), ''::text, '3'::text, ('6'::text || + CASE + WHEN t_gme_c.rgme_id = 0 THEN '0000'::text + ELSE (((t_gme_c.cm_code || chr(1)) || t_gme_c.gn_code) || chr(1)) || t_gme_c.rgme_code + END) + UNION ALL + SELECT 'GME'::text || t_gme_c.gme_id::text AS oid, + t_gme_c.gme_code AS code, + (t_gme_c.gme_code || ' '::text) || t_gme_c.gme_texte AS texte, + ''::text AS alias, + '4'::text AS level, + '6'::text || + CASE + WHEN t_gme_c.gme_id = 0 THEN '00000'::text + ELSE (((((t_gme_c.cm_code || chr(1)) || t_gme_c.gn_code) || chr(1)) || t_gme_c.rgme_code) || chr(1)) || t_gme_c.gme_code + END AS tri, + '0'::character(1) AS is_cti + FROM activite.t_gme_c + WHERE t_gme_c.gme_id <> 0 AND (t_gme_c.gme_id IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'gme'::text)) + GROUP BY ('GME'::text || t_gme_c.gme_id::text), t_gme_c.gme_code, ((t_gme_c.gme_code || ' '::text) || t_gme_c.gme_texte), ''::text, '4'::text, ('6'::text || + CASE + WHEN t_gme_c.gme_id = 0 THEN '00000'::text + ELSE (((((t_gme_c.cm_code || chr(1)) || t_gme_c.gn_code) || chr(1)) || t_gme_c.rgme_code) || chr(1)) || t_gme_c.gme_code + END), ('0'::character(1)) + ORDER BY 6; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_1.yaml b/db/schema2/views/v_indicateurs_cumules_1.yaml new file mode 100644 index 0000000..18f64de --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_1.yaml @@ -0,0 +1,6 @@ +src: | + SELECT p_indicateurs_cumules.date_reference AS jour_now, + date(date_trunc('month'::text, p_indicateurs_cumules.date_reference::timestamp with time zone) + '1 mon'::interval - '1 day'::interval) AS mois_now, + date(date_trunc('year'::text, p_indicateurs_cumules.date_reference::timestamp with time zone) + '1 year'::interval - '1 day'::interval) AS annee_now + FROM activite.p_indicateurs_cumules + WHERE p_indicateurs_cumules.periode_type = 'NOW'::text; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_2.yaml b/db/schema2/views/v_indicateurs_cumules_2.yaml new file mode 100644 index 0000000..3414cd8 --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_2.yaml @@ -0,0 +1,26 @@ +src: | + SELECT p_indicateurs_cumules.indicateur_id, + 'activite.'::text || t_indicateurs.code AS indicateur_code, + date_part('month'::text, p_indicateurs_cumules.date_reference) AS mois, + p_indicateurs_cumules.date_reference, + CASE date_part('month'::text, p_indicateurs_cumules.date_reference) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_indicateurs_cumules.date_reference)::text + END AS mois_texte, + p_indicateurs_cumules.value, + p_indicateurs_cumules.value_cum, + p_indicateurs_cumules.value_cum12 + FROM activite.p_indicateurs_cumules + JOIN activite.t_indicateurs ON p_indicateurs_cumules.indicateur_id = t_indicateurs.oid + WHERE p_indicateurs_cumules.periode_type = 'M'::text; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_2b.yaml b/db/schema2/views/v_indicateurs_cumules_2b.yaml new file mode 100644 index 0000000..8f49f58 --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_2b.yaml @@ -0,0 +1,26 @@ +src: | + SELECT p_indicateurs_cumules.indicateur_id, + 'activite.'::text || t_indicateurs.code AS indicateur_code, + date_part('month'::text, p_indicateurs_cumules.date_reference) AS mois, + p_indicateurs_cumules.date_reference, + CASE date_part('month'::text, p_indicateurs_cumules.date_reference) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_indicateurs_cumules.date_reference)::text + END AS mois_texte, + p_indicateurs_cumules.value, + p_indicateurs_cumules.value_cum, + p_indicateurs_cumules.value_cum12 + FROM activite.p_indicateurs_cumules + JOIN activite.t_indicateurs ON p_indicateurs_cumules.indicateur_id = t_indicateurs.oid + WHERE p_indicateurs_cumules.periode_type = 'M_B'::text; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_2c.yaml b/db/schema2/views/v_indicateurs_cumules_2c.yaml new file mode 100644 index 0000000..3925a25 --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_2c.yaml @@ -0,0 +1,24 @@ +src: | + SELECT 0 AS indicateur_id, + ''::text AS indicateur_code, + date_part('month'::text, p_calendrier_mois.date_debut) AS mois, + p_calendrier_mois.date_debut AS date_reference, + CASE date_part('month'::text, p_calendrier_mois.date_debut) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_calendrier_mois.date_debut)::text + END AS mois_texte, + 0 AS value, + 0 AS value_cum, + 0 AS value_cum12 + FROM base.p_calendrier_mois; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_3.yaml b/db/schema2/views/v_indicateurs_cumules_3.yaml new file mode 100644 index 0000000..696f495 --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_3.yaml @@ -0,0 +1,30 @@ +src: | + SELECT p_indicateurs_cumules.indicateur_id, + 'activite.'::text || t_indicateurs.code AS indicateur_code, + to_char(p_indicateurs_cumules.date_reference::timestamp with time zone, 'YYYYMMDD'::text) AS jour, + p_indicateurs_cumules.date_reference, + (date_part('day'::text, p_indicateurs_cumules.date_reference)::text || ' '::text) || + CASE date_part('month'::text, p_indicateurs_cumules.date_reference) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_indicateurs_cumules.date_reference)::text + END AS jour_texte, + p_calendrier.semaine, + to_char(date_part('week'::text, p_calendrier.date), 'FM00'::text) AS semaine_texte, + p_indicateurs_cumules.value, + p_indicateurs_cumules.value_cum, + p_indicateurs_cumules.value_cum12 + FROM activite.p_indicateurs_cumules + JOIN activite.t_indicateurs ON p_indicateurs_cumules.indicateur_id = t_indicateurs.oid + JOIN base.p_calendrier ON p_indicateurs_cumules.date_reference = p_calendrier.date + WHERE p_indicateurs_cumules.periode_type = 'D'::text; \ No newline at end of file diff --git a/db/schema2/views/v_indicateurs_cumules_3c.yaml b/db/schema2/views/v_indicateurs_cumules_3c.yaml new file mode 100644 index 0000000..c5d3e6f --- /dev/null +++ b/db/schema2/views/v_indicateurs_cumules_3c.yaml @@ -0,0 +1,27 @@ +src: | + SELECT 0 AS indicateur_id, + ''::text AS indicateur_code, + to_char(p_calendrier.date::timestamp with time zone, 'YYYYMMDD'::text) AS jour, + p_calendrier.date AS date_reference, + (date_part('day'::text, p_calendrier.date)::text || ' '::text) || + CASE date_part('month'::text, p_calendrier.date) + WHEN 1 THEN 'Jan'::text + WHEN 2 THEN 'Fev'::text + WHEN 3 THEN 'Mars'::text + WHEN 4 THEN 'Avr'::text + WHEN 5 THEN 'Mai'::text + WHEN 6 THEN 'Juin'::text + WHEN 7 THEN 'Juil'::text + WHEN 8 THEN 'Aout'::text + WHEN 9 THEN 'Sep'::text + WHEN 10 THEN 'Oct'::text + WHEN 11 THEN 'Nov'::text + WHEN 12 THEN 'Dec'::text + ELSE date_part('month'::text, p_calendrier.date)::text + END AS jour_texte, + p_calendrier.semaine, + to_char(date_part('week'::text, p_calendrier.date), 'FM00'::text) AS semaine_texte, + 0 AS value, + 0 AS value_cum, + 0 AS value_cum12 + FROM base.p_calendrier; \ No newline at end of file diff --git a/db/schema2/views/v_intervention_1.yaml b/db/schema2/views/v_intervention_1.yaml new file mode 100644 index 0000000..b157a7c --- /dev/null +++ b/db/schema2/views/v_intervention_1.yaml @@ -0,0 +1,52 @@ +src: | + SELECT p_sejours.no_sejour, + p_intervention.sejour_id, + p_intervention.date_debut, + p_intervention.heure_debut, + p_intervention.medecin_chirurgien_id AS medecin_adm_chirurgien_id, + t_medecins_administratifs_chirurgien.adm_code AS medecin_adm_chirurgien_code, + t_medecins_administratifs_chirurgien.adm_nom AS medecin_adm_chirurgien_nom, + t_medecins_administratifs_chirurgien.adm_prenom AS medecin_adm_chirurgien_prenom, + t_medecins_administratifs_chirurgien.adm_nom_prenom AS medecin_adm_chirurgien_nom_prenom, + t_medecins_administratifs_chirurgien.section_id AS medecin_adm_chirurgien_section_id, + t_medecins_administratifs_chirurgien.section_code AS medecin_adm_chirurgien_section_code, + t_medecins_administratifs_chirurgien.section_texte AS medecin_adm_chirurgien_section_texte, + t_medecins_administratifs_chirurgien.medecin_id AS medecin_chirurgien_id, + t_medecins_administratifs_chirurgien.medecin_code AS medecin_chirurgien_code, + t_medecins_administratifs_chirurgien.nom AS medecin_chirurgien_nom, + t_medecins_administratifs_chirurgien.prenom AS medecin_chirurgien_prenom, + t_medecins_administratifs_chirurgien.nom_prenom AS medecin_chirurgien_nom_prenom, + t_medecins_administratifs_chirurgien.specialite_id AS medecin_chirurgien_specialite_id, + t_medecins_administratifs_chirurgien.specialite_code AS medecin_chirurgien_specialite_code, + t_medecins_administratifs_chirurgien.specialite_texte AS medecin_chirurgien_specialite_texte, + p_intervention.medecin_anesthesiste_id AS medecin_adm_anesthesiste_id, + t_medecins_administratifs_anesthesiste.adm_code AS medecin_adm_anesthesiste_code, + t_medecins_administratifs_anesthesiste.adm_nom AS medecin_adm_anesthesiste_nom, + t_medecins_administratifs_anesthesiste.adm_prenom AS medecin_adm_anesthesiste_prenom, + t_medecins_administratifs_anesthesiste.adm_nom_prenom AS medecin_adm_anesthesiste_nom_prenom, + t_medecins_administratifs_anesthesiste.medecin_id AS medecin_anesthesiste_id, + t_medecins_administratifs_anesthesiste.medecin_code AS medecin_anesthesiste_code, + t_medecins_administratifs_anesthesiste.nom AS medecin_anesthesiste_nom, + t_medecins_administratifs_anesthesiste.prenom AS medecin_anesthesiste_prenom, + t_medecins_administratifs_anesthesiste.nom_prenom AS medecin_anesthesiste_nom_prenom, + t_medecins_administratifs_anesthesiste.specialite_id AS medecin_anesthesiste_specialite_id, + t_medecins_administratifs_anesthesiste.specialite_code AS medecin_anesthesiste_specialite_code, + t_medecins_administratifs_anesthesiste.specialite_texte AS medecin_anesthesiste_specialite_texte, + p_intervention.acte_id, + t_actes_c.code AS acte_code, + t_actes_c.texte_court AS acte_texte, + t_actes_c.section_id AS acte_section_id, + t_actes_c.section_code AS acte_section_code, + t_actes_c.section_texte AS acte_section_texte, + t_actes_c.nomenclature AS acte_nomenclature, + 1::bigint AS acte_nomenclature_id, + 'CCAM'::text AS acte_nomenclature_code, + 'Nomenclature CCAM'::text AS acte_nomenclature_texte, + t_actes_c.ccam_regroupement_id_1 AS ccam_regroupement_id, + t_actes_c.ccam_regroupement_code_1 AS ccam_regroupement_code, + t_actes_c.ccam_regroupement_texte_1 AS ccam_regroupement_texte + FROM activite.p_intervention + JOIN activite.p_sejours ON p_intervention.sejour_id = p_sejours.oid + JOIN activite.t_medecins_administratifs_c t_medecins_administratifs_chirurgien ON p_intervention.medecin_chirurgien_id = t_medecins_administratifs_chirurgien.oid + JOIN activite.t_medecins_administratifs_c t_medecins_administratifs_anesthesiste ON p_intervention.medecin_anesthesiste_id = t_medecins_administratifs_anesthesiste.oid + JOIN activite.t_actes_c ON p_intervention.acte_id = t_actes_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_lieux_1.yaml b/db/schema2/views/v_lieux_1.yaml new file mode 100644 index 0000000..781631e --- /dev/null +++ b/db/schema2/views/v_lieux_1.yaml @@ -0,0 +1,34 @@ +src: | + SELECT t_lieux.oid, + t_lieux.unite_medicale_id, + t_unites_medicales.code AS unite_medicale_code, + t_unites_medicales.texte_court AS unite_medicale_texte, + t_lieux.unite_fonctionnelle_id, + t_unites_fonctionnelles.code AS unite_fonctionnelle_code, + t_unites_fonctionnelles.texte_court AS unite_fonctionnelle_texte, + t_lieux.mode_traitement_id, + t_modes_traitement.code AS mode_traitement_code, + t_modes_traitement.texte_court AS mode_traitement_texte, + t_lieux.service_facturation_id, + t_services_facturation.code AS service_facturation_code, + t_services_facturation.texte_court AS service_facturation_texte, + t_services_facturation.nb_lits AS service_facturation_nb_lits, + t_lieux.activite_id, + t_activites.code AS activite_code, + t_activites.texte_court AS activite_texte, + t_lits.etage_id, + t_etages.code AS etage_code, + t_etages.texte_court AS etage_texte, + t_etages.nb_lits AS etage_nb_lits, + t_lieux.lit_id, + t_lits.code AS lit_code, + t_lits.texte_court AS lit_texte + FROM activite.t_lieux, + activite.t_services_facturation, + activite.t_activites, + activite.t_lits, + activite.t_etages, + activite.t_unites_fonctionnelles, + activite.t_unites_medicales, + base.t_modes_traitement + WHERE t_lieux.service_facturation_id = t_services_facturation.oid AND t_lieux.activite_id = t_activites.oid AND t_lieux.lit_id = t_lits.oid AND t_lits.etage_id = t_etages.oid AND t_lieux.unite_fonctionnelle_id = t_unites_fonctionnelles.oid AND t_lieux.unite_medicale_id = t_unites_medicales.oid AND t_lieux.mode_traitement_id = t_modes_traitement.oid; \ No newline at end of file diff --git a/db/schema2/views/v_listes_1.yaml b/db/schema2/views/v_listes_1.yaml new file mode 100644 index 0000000..954bcba --- /dev/null +++ b/db/schema2/views/v_listes_1.yaml @@ -0,0 +1,134 @@ +dep: + - v_listes_4 +src: | + SELECT v_listes_4.table_texte || chr(1) AS sort, + v_listes_4.table_id, + v_listes_4.table_code, + (v_listes_4.table_texte || + CASE + WHEN count(DISTINCT + CASE + WHEN v_listes_4.liste_id <> 0 THEN v_listes_4.liste_id + ELSE NULL::bigint + END) > 0 THEN (' ('::text || count(DISTINCT + CASE + WHEN v_listes_4.liste_id <> 0 THEN v_listes_4.liste_id + ELSE NULL::bigint + END)::text) || ')'::text + ELSE ''::text + END)::character varying AS texte, + 0 AS liste_id, + '0'::text AS lvl, + ''::text AS code, + '0'::text AS is_cti, + '0'::text AS is_groupe, + v_listes_4.table_schema AS schema, + ''::text AS utilisateur_createur, + ''::text AS est_partagee_modification, + '0'::text AS liste_show_omit, + '0'::text AS liste_is_omit, + ''::text AS chapitre, + ''::text AS sous_chapitre, + '-8'::text AS liste_id_combo, + ''::text AS liste_alias_combo + FROM activite.v_listes_4 + GROUP BY v_listes_4.table_id, v_listes_4.table_code, v_listes_4.table_texte, v_listes_4.table_schema + UNION ALL + SELECT (((v_listes_4.table_texte || chr(1)) || v_listes_4.liste_chapitre_sortkey) || v_listes_4.liste_chapitre) || chr(1) AS sort, + v_listes_4.table_id, + v_listes_4.table_code, + (v_listes_4.liste_chapitre || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS texte, + 0 AS liste_id, + '1'::text AS lvl, + ''::text AS code, + '0'::text AS is_cti, + '0'::text AS is_groupe, + v_listes_4.table_schema AS schema, + ''::text AS utilisateur_createur, + ''::text AS est_partagee_modification, + '0'::text AS liste_show_omit, + '0'::text AS liste_is_omit, + (v_listes_4.liste_chapitre || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS chapitre, + ''::text AS sous_chapitre, + '-8'::text AS liste_id_combo, + ''::text AS liste_alias_combo + FROM activite.v_listes_4 + WHERE v_listes_4.liste_id <> 0 AND v_listes_4.liste_chapitre <> ''::text + GROUP BY v_listes_4.table_id, v_listes_4.table_code, v_listes_4.table_texte, v_listes_4.liste_chapitre, v_listes_4.liste_chapitre_sortkey, v_listes_4.table_schema + UNION ALL + SELECT (((((v_listes_4.table_texte || chr(1)) || v_listes_4.liste_chapitre_sortkey) || v_listes_4.liste_chapitre) || chr(1)) || v_listes_4.liste_sous_chapitre) || chr(1) AS sort, + v_listes_4.table_id, + v_listes_4.table_code, + (v_listes_4.liste_sous_chapitre || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS texte, + 0 AS liste_id, + '2'::text AS lvl, + ''::text AS code, + '0'::text AS is_cti, + '0'::text AS is_groupe, + v_listes_4.table_schema AS schema, + ''::text AS utilisateur_createur, + ''::text AS est_partagee_modification, + '0'::text AS liste_show_omit, + '0'::text AS liste_is_omit, + (v_listes_4.liste_chapitre || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS chapitre, + (v_listes_4.liste_sous_chapitre || + CASE + WHEN count(DISTINCT v_listes_4.liste_id) > 0 THEN (' ('::text || count(DISTINCT v_listes_4.liste_id)::text) || ')'::text + ELSE ''::text + END)::character varying AS sous_chapitre, + '-8'::text AS liste_id_combo, + ''::text AS liste_alias_combo + FROM activite.v_listes_4 + WHERE v_listes_4.liste_id <> 0 AND v_listes_4.liste_sous_chapitre <> ''::text + GROUP BY v_listes_4.table_id, v_listes_4.table_code, v_listes_4.table_texte, v_listes_4.liste_chapitre, v_listes_4.liste_chapitre_sortkey, v_listes_4.liste_sous_chapitre, v_listes_4.table_schema + UNION ALL + SELECT (((((((v_listes_4.table_texte || chr(1)) || v_listes_4.liste_chapitre_sortkey) || v_listes_4.liste_chapitre) || chr(1)) || v_listes_4.liste_sous_chapitre) || chr(1)) || v_listes_4.liste_is_omit) || v_listes_4.liste_texte AS sort, + v_listes_4.table_id, + v_listes_4.table_code, + v_listes_4.liste_texte AS texte, + v_listes_4.liste_id, + CASE + WHEN v_listes_4.liste_chapitre = ''::text THEN '1'::text + WHEN v_listes_4.liste_sous_chapitre = ''::text THEN '2'::text + ELSE '3'::text + END AS lvl, + v_listes_4.liste_code AS code, + v_listes_4.liste_is_cti AS is_cti, + v_listes_4.liste_is_groupe AS is_groupe, + v_listes_4.table_schema AS schema, + v_listes_4.liste_utilisateur_createur AS utilisateur_createur, + v_listes_4.liste_est_partagee_modification AS est_partagee_modification, + v_listes_4.liste_show_omit, + v_listes_4.liste_is_omit, + v_listes_4.liste_chapitre AS chapitre, + v_listes_4.liste_sous_chapitre AS sous_chapitre, + CASE + WHEN v_listes_4.liste_id = 0 THEN '-8'::text + WHEN v_listes_4.liste_is_omit = '1'::text THEN 'SL'::text || v_listes_4.liste_id::text + ELSE 'LI'::text || v_listes_4.liste_id::text + END AS liste_id_combo, + CASE + WHEN v_listes_4.liste_id = 0 THEN ''::text + WHEN v_listes_4.liste_code = ''::text THEN ''::text + WHEN v_listes_4.liste_is_omit = '1'::text THEN '#SL'::text || v_listes_4.liste_code + ELSE '#LI'::text || v_listes_4.liste_code + END AS liste_alias_combo + FROM activite.v_listes_4 + WHERE v_listes_4.liste_id <> 0 + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_listes_2.yaml b/db/schema2/views/v_listes_2.yaml new file mode 100644 index 0000000..3e79a54 --- /dev/null +++ b/db/schema2/views/v_listes_2.yaml @@ -0,0 +1,11 @@ +src: | + SELECT t_listes_tables.name AS table_name, + t_listes_tables.texte AS table_texte, + t_listes.oid AS liste_id, + t_listes.code AS liste_code, + t_listes.texte AS liste_texte, + t_listes_contenu.to_id + FROM activite.t_listes, + activite.t_listes_tables, + activite.t_listes_contenu + WHERE t_listes.table_id = t_listes_tables.oid AND t_listes.oid = t_listes_contenu.liste_id; \ No newline at end of file diff --git a/db/schema2/views/v_listes_3.yaml b/db/schema2/views/v_listes_3.yaml new file mode 100644 index 0000000..e9304db --- /dev/null +++ b/db/schema2/views/v_listes_3.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_listes.oid AS liste_id, + t_listes.code AS liste_code, + t_listes.texte AS liste_texte, + t_listes_contenu.to_id + FROM activite.t_listes, + activite.t_listes_contenu + WHERE t_listes.oid = t_listes_contenu.liste_id; \ No newline at end of file diff --git a/db/schema2/views/v_listes_4.yaml b/db/schema2/views/v_listes_4.yaml new file mode 100644 index 0000000..5278b63 --- /dev/null +++ b/db/schema2/views/v_listes_4.yaml @@ -0,0 +1,178 @@ +src: | + ( + ( + SELECT 'activite'::text AS table_schema, + t_listes_tables.oid AS table_id, + t_listes_tables.name AS table_name, + t_listes_tables.code AS table_code, + t_listes_tables.texte AS table_texte, + COALESCE(t_listes.oid, 0::bigint) AS liste_id, + COALESCE(t_listes.code, ''::character varying::text) AS liste_code, + COALESCE(t_listes.texte, ''::character varying::text) AS liste_texte, + COALESCE(t_listes.is_cti, '0'::bpchar) AS liste_is_cti, + CASE + WHEN substr(t_listes.code, 1, 4) = ANY (ARRAY['VIT_'::text, 'VED_'::text, 'HPM_'::text, t_settings.value || '_'::text]) THEN '1'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN '1'::text + ELSE '0'::text + END AS liste_is_groupe, + COALESCE(t_listes.utilisateur_createur, ''::character varying::text) AS liste_utilisateur_createur, + COALESCE(t_listes.show_omit, '0'::bpchar) AS liste_show_omit, + '0'::text AS liste_is_omit, + COALESCE(t_listes.est_partagee_modification, ''::bpchar) AS liste_est_partagee_modification, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN 'Listes CTI'::text + WHEN substr(t_listes.code, 1, 4) = 'CTI_'::text THEN 'Listes CTI'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code, 1, 4) = (t_settings.value || '_'::text) THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'VIT_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'VED_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'HPM_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN 'Listes Groupe'::text + ELSE 'Listes Etablissement'::text + END AS liste_chapitre, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN '3'::text + WHEN substr(t_listes.code, 1, 4) = 'CTI_'::text THEN '3'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code, 1, 4) = (t_settings.value || '_'::text) THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'VIT_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'VED_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'HPM_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN '2'::text + ELSE '1'::text + END AS liste_chapitre_sortkey, + COALESCE(t_listes.chapitre, ''::character varying::text) AS liste_sous_chapitre + FROM activite.t_listes_tables + LEFT JOIN activite.t_listes ON t_listes.table_id = t_listes_tables.oid + LEFT JOIN base.t_settings ON t_settings.code = 'REFSETTINGS/PREFIX'::text + WHERE t_listes_tables.code <> ANY (ARRAY['FINESS'::text, 'POLE'::text]) + UNION ALL + SELECT 'activite'::text AS table_schema, + t_listes_tables.oid AS table_id, + t_listes_tables.name AS table_name, + t_listes_tables.code AS table_code, + t_listes_tables.texte AS table_texte, + COALESCE(t_listes.oid, 0::bigint) AS liste_id, + COALESCE(t_listes.code, ''::character varying::text) AS liste_code, + COALESCE('Sauf '::text || t_listes.texte, ''::character varying::text) AS liste_texte, + COALESCE(t_listes.is_cti, '0'::bpchar) AS liste_is_cti, + CASE + WHEN substr(t_listes.code, 1, 4) = ANY (ARRAY['VIT_'::text, 'VED_'::text, 'HPM_'::text, t_settings.value || '_'::text]) THEN '1'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN '1'::text + ELSE '0'::text + END AS liste_is_groupe, + COALESCE(t_listes.utilisateur_createur, ''::character varying::text) AS liste_utilisateur_createur, + COALESCE(t_listes.show_omit, '0'::bpchar) AS liste_show_omit, + '1'::text AS liste_is_omit, + COALESCE(t_listes.est_partagee_modification, ''::bpchar) AS liste_est_partagee_modification, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN 'Listes CTI'::text + WHEN substr(t_listes.code, 1, 4) = 'CTI_'::text THEN 'Listes CTI'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code, 1, 4) = (t_settings.value || '_'::text) THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'VIT_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'VED_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'HPM_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN 'Listes Groupe'::text + ELSE 'Listes Etablissement'::text + END AS liste_chapitre, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN '3'::text + WHEN substr(t_listes.code, 1, 4) = 'CTI_'::text THEN '3'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code, 1, 4) = (t_settings.value || '_'::text) THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'VIT_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'VED_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'HPM_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN '2'::text + ELSE '1'::text + END AS liste_chapitre_sortkey, + COALESCE(t_listes.chapitre, ''::character varying::text) AS liste_sous_chapitre + FROM activite.t_listes_tables + LEFT JOIN activite.t_listes ON t_listes.table_id = t_listes_tables.oid + LEFT JOIN base.t_settings ON t_settings.code = 'REFSETTINGS/PREFIX'::text + WHERE t_listes.show_omit = '1'::bpchar AND (t_listes_tables.code <> ANY (ARRAY['FINESS'::text, 'POLE'::text])) + ) UNION + SELECT 'base'::text AS table_schema, + t_listes_tables.oid AS table_id, + t_listes_tables.name AS table_name, + t_listes_tables.code AS table_code, + t_listes_tables.texte AS table_texte, + COALESCE(t_listes.oid, 0::bigint) AS liste_id, + COALESCE(t_listes.code, ''::character varying::text) AS liste_code, + COALESCE(t_listes.texte, ''::character varying::text) AS liste_texte, + COALESCE(t_listes.is_cti, '0'::bpchar) AS liste_is_cti, + CASE + WHEN substr(t_listes.code, 1, 4) = ANY (ARRAY['VIT_'::text, 'VED_'::text, 'HPM_'::text, t_settings.value || '_'::text]) THEN '1'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN '1'::text + ELSE '0'::text + END AS liste_is_groupe, + COALESCE(t_listes.utilisateur_createur, ''::character varying::text) AS liste_utilisateur_createur, + COALESCE(t_listes.show_omit, '0'::bpchar) AS liste_show_omit, + '0'::text AS liste_is_omit, + COALESCE(t_listes.est_partagee_modification, ''::bpchar) AS liste_est_partagee_modification, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN 'Listes CTI'::text + WHEN substr(t_listes.code, 1, 4) = 'CTI_'::text THEN 'Listes CTI'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code, 1, 4) = (t_settings.value || '_'::text) THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'VIT_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'VED_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'HPM_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN 'Listes Groupe'::text + ELSE 'Listes Etablissement'::text + END AS liste_chapitre, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN '3'::text + WHEN substr(t_listes.code, 1, 4) = 'CTI_'::text THEN '3'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code, 1, 4) = (t_settings.value || '_'::text) THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'VIT_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'VED_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'HPM_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN '2'::text + ELSE '1'::text + END AS liste_chapitre_sortkey, + COALESCE(t_listes.chapitre, ''::character varying::text) AS liste_sous_chapitre + FROM base.t_listes_tables + LEFT JOIN base.t_listes ON t_listes.table_id = t_listes_tables.oid + LEFT JOIN base.t_settings ON t_settings.code = 'REFSETTINGS/PREFIX'::text + WHERE t_listes_tables.code = ANY (ARRAY['FINESS'::text, 'POLE'::text]) + ) UNION ALL + SELECT 'base'::text AS table_schema, + t_listes_tables.oid AS table_id, + t_listes_tables.name AS table_name, + t_listes_tables.code AS table_code, + t_listes_tables.texte AS table_texte, + COALESCE(t_listes.oid, 0::bigint) AS liste_id, + COALESCE(t_listes.code, ''::character varying::text) AS liste_code, + COALESCE('Sauf '::text || t_listes.texte, ''::character varying::text) AS liste_texte, + COALESCE(t_listes.is_cti, '0'::bpchar) AS liste_is_cti, + CASE + WHEN substr(t_listes.code, 1, 4) = ANY (ARRAY['VIT_'::text, 'VED_'::text, 'HPM_'::text, t_settings.value || '_'::text]) THEN '1'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN '1'::text + ELSE '0'::text + END AS liste_is_groupe, + COALESCE(t_listes.utilisateur_createur, ''::character varying::text) AS liste_utilisateur_createur, + COALESCE(t_listes.show_omit, '0'::bpchar) AS liste_show_omit, + '1'::text AS liste_is_omit, + COALESCE(t_listes.est_partagee_modification, ''::bpchar) AS liste_est_partagee_modification, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN 'Listes CTI'::text + WHEN substr(t_listes.code, 1, 4) = 'CTI_'::text THEN 'Listes CTI'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code, 1, 4) = (t_settings.value || '_'::text) THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'VIT_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'VED_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 4) = 'HPM_'::text THEN 'Listes Groupe'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN 'Listes Groupe'::text + ELSE 'Listes Etablissement'::text + END AS liste_chapitre, + CASE + WHEN t_listes.is_cti = '1'::bpchar THEN '3'::text + WHEN substr(t_listes.code, 1, 4) = 'CTI_'::text THEN '3'::text + WHEN t_settings.value <> ''::text AND substr(t_listes.code, 1, 4) = (t_settings.value || '_'::text) THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'VIT_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'VED_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 4) = 'HPM_'::text THEN '2'::text + WHEN substr(t_listes.code, 1, 3) = 'VED'::text THEN '2'::text + ELSE '1'::text + END AS liste_chapitre_sortkey, + COALESCE(t_listes.chapitre, ''::character varying::text) AS liste_sous_chapitre + FROM base.t_listes_tables + LEFT JOIN base.t_listes ON t_listes.table_id = t_listes_tables.oid + LEFT JOIN base.t_settings ON t_settings.code = 'REFSETTINGS/PREFIX'::text + WHERE t_listes.show_omit = '1'::bpchar AND (t_listes_tables.code = ANY (ARRAY['FINESS'::text, 'POLE'::text])); \ No newline at end of file diff --git a/db/schema2/views/v_lits_2.yaml b/db/schema2/views/v_lits_2.yaml new file mode 100644 index 0000000..10c8b75 --- /dev/null +++ b/db/schema2/views/v_lits_2.yaml @@ -0,0 +1,66 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'LIT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '3'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'LIT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '3'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'LIT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '3'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'LIT'::text + UNION ALL + SELECT 'LT'::text || t_lits.oid::text AS oid, + (((t_etages.code || '-'::text) || t_lits.code) || ' '::text) || + CASE + WHEN t_lits.texte_court <> t_lits.code THEN t_lits.texte_court::character varying + ELSE ''::character varying + END::text AS texte, + '1'::text AS level, + ('9'::text || ((t_etages.code || ' '::text) || (t_lits.code || ' '::text))) || t_lits.texte_court AS sort, + '0'::character(1) AS is_cti + FROM activite.t_lits + JOIN activite.t_etages ON t_lits.etage_id = t_etages.oid + WHERE (t_lits.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'lit'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_lpp_1.yaml b/db/schema2/views/v_lpp_1.yaml new file mode 100644 index 0000000..485f618 --- /dev/null +++ b/db/schema2/views/v_lpp_1.yaml @@ -0,0 +1,124 @@ +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.v_listes_1 + WHERE v_listes_1.table_code = 'LPP'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'LPP'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_classes_sections, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'LPP'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'LPP'::text + UNION ALL + SELECT 'D1'::text || t_lpp_c.classification_atc_1_id::text AS oid, + max((t_lpp_c.classification_atc_1_code::text || ' '::text) || t_lpp_c.classification_atc_1_texte::text) AS texte, + ''::text AS code, + '1'::text AS level, + max('6'::text || rpad(t_lpp_c.classification_atc_1_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_lpp_c + WHERE t_lpp_c.classification_atc_id <> 0 AND (t_lpp_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'lpp'::text)) + GROUP BY ('D1'::text || t_lpp_c.classification_atc_1_id::text) + UNION ALL + SELECT 'D2'::text || t_lpp_c.classification_atc_2_id::text AS oid, + max((t_lpp_c.classification_atc_2_code::text || ' '::text) || t_lpp_c.classification_atc_2_texte::text) AS texte, + ''::text AS code, + '2'::text AS level, + max(('6'::text || rpad(t_lpp_c.classification_atc_1_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_2_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_lpp_c + WHERE t_lpp_c.classification_atc_id <> 0 AND (t_lpp_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'lpp'::text)) + GROUP BY ('D2'::text || t_lpp_c.classification_atc_2_id::text) + UNION ALL + SELECT 'D3'::text || t_lpp_c.classification_atc_3_id::text AS oid, + max((t_lpp_c.classification_atc_3_code::text || ' '::text) || t_lpp_c.classification_atc_3_texte::text) AS texte, + ''::text AS code, + '3'::text AS level, + max((('6'::text || rpad(t_lpp_c.classification_atc_1_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_2_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_3_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_lpp_c + WHERE t_lpp_c.classification_atc_id <> 0 AND (t_lpp_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'lpp'::text)) + GROUP BY ('D3'::text || t_lpp_c.classification_atc_3_id::text) + UNION ALL + SELECT 'D4'::text || t_lpp_c.classification_atc_4_id::text AS oid, + max((t_lpp_c.classification_atc_4_code::text || ' '::text) || t_lpp_c.classification_atc_4_texte::text) AS texte, + ''::text AS code, + '4'::text AS level, + max(((('6'::text || rpad(t_lpp_c.classification_atc_1_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_2_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_3_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_4_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_lpp_c + WHERE t_lpp_c.classification_atc_id <> 0 AND (t_lpp_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'lpp'::text)) + GROUP BY ('D4'::text || t_lpp_c.classification_atc_4_id::text) + UNION ALL + SELECT 'D5'::text || t_lpp_c.classification_atc_id::text AS oid, + max((t_lpp_c.classification_atc_code::text || ' '::text) || t_lpp_c.classification_atc_texte::text) AS texte, + ''::text AS code, + '5'::text AS level, + max((((('6'::text || rpad(t_lpp_c.classification_atc_1_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_2_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_3_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_4_code::text, 10, ' '::text)) || rpad(t_lpp_c.classification_atc_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_lpp_c + WHERE t_lpp_c.classification_atc_id <> 0 AND (t_lpp_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'lpp'::text)) + GROUP BY ('D5'::text || t_lpp_c.classification_atc_id::text) + UNION ALL + SELECT 'DT'::text || t_lpp_c.oid::text AS oid, + (t_lpp_c.code || ' '::text) || t_lpp_c.texte_court AS texte, + t_lpp_c.code, + '1'::text AS level, + '9'::text || t_lpp_c.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_lpp_c + WHERE (t_lpp_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'lpp'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_medecins_3.yaml b/db/schema2/views/v_medecins_3.yaml new file mode 100644 index 0000000..f8c19ec --- /dev/null +++ b/db/schema2/views/v_medecins_3.yaml @@ -0,0 +1,38 @@ +src: | + ( SELECT DISTINCT t_medecins.nom, + t_medecins.prenom, + ''::text AS nom_adm, + ''::text AS prenom_adm, + '1'::text AS level, + 'M'::text || t_medecins.oid::text AS oid, + CASE + WHEN t_medecins.oid <> 0 THEN (t_medecins.nom || ' '::text) || t_medecins.prenom + ELSE 'Non saisi'::text + END AS texte + FROM activite.t_medecins_administratifs, + base.t_medecins + WHERE (t_medecins_administratifs.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'medecin_s'::text)) AND t_medecins_administratifs.medecin_id = t_medecins.oid + ORDER BY t_medecins.nom, t_medecins.prenom, ''::text, '1'::text, 'M'::text || t_medecins.oid::text, + CASE + WHEN t_medecins.oid <> 0 THEN (t_medecins.nom || ' '::text) || t_medecins.prenom + ELSE 'Non saisi'::text + END) + UNION + SELECT t_medecins.nom, + t_medecins.prenom, + t_medecins_administratifs.nom AS nom_adm, + t_medecins_administratifs.prenom AS prenom_adm, + '2'::text AS level, + 'A'::text || t_medecins_administratifs.oid::text AS oid, + CASE + WHEN t_medecins_administratifs.oid <> 0 THEN ((((t_medecins_administratifs.nom || ' '::text) || t_medecins_administratifs.prenom) || ' ('::text) || t_medecins_administratifs.code) || ')'::text + ELSE 'Non saisi'::text + END AS texte + FROM activite.t_medecins_administratifs, + base.t_medecins + WHERE (t_medecins_administratifs.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'medecin_s'::text)) AND t_medecins_administratifs.medecin_id = t_medecins.oid + ORDER BY 1, 2, 3, 4; \ No newline at end of file diff --git a/db/schema2/views/v_medecins_4.yaml b/db/schema2/views/v_medecins_4.yaml new file mode 100644 index 0000000..672ee8d --- /dev/null +++ b/db/schema2/views/v_medecins_4.yaml @@ -0,0 +1,38 @@ +src: | + ( SELECT DISTINCT t_medecins.nom, + t_medecins.prenom, + ''::text AS nom_adm, + ''::text AS prenom_adm, + '1'::text AS level, + 'M'::text || t_medecins.oid::text AS oid, + CASE + WHEN t_medecins.oid <> 0 THEN (t_medecins.nom || ' '::text) || t_medecins.prenom + ELSE 'Non saisi'::text + END AS texte + FROM activite.t_medecins_administratifs, + base.t_medecins + WHERE (t_medecins_administratifs.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'medecin_x'::text)) AND t_medecins_administratifs.medecin_id = t_medecins.oid + ORDER BY t_medecins.nom, t_medecins.prenom, ''::text, '1'::text, 'M'::text || t_medecins.oid::text, + CASE + WHEN t_medecins.oid <> 0 THEN (t_medecins.nom || ' '::text) || t_medecins.prenom + ELSE 'Non saisi'::text + END) + UNION + SELECT t_medecins.nom, + t_medecins.prenom, + t_medecins_administratifs.nom AS nom_adm, + t_medecins_administratifs.prenom AS prenom_adm, + '2'::text AS level, + 'A'::text || t_medecins_administratifs.oid::text AS oid, + CASE + WHEN t_medecins_administratifs.oid <> 0 THEN ((((t_medecins_administratifs.nom || ' '::text) || t_medecins_administratifs.prenom) || ' ('::text) || t_medecins_administratifs.code) || ')'::text + ELSE 'Non saisi'::text + END AS texte + FROM activite.t_medecins_administratifs, + base.t_medecins + WHERE (t_medecins_administratifs.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'medecin_x'::text)) AND t_medecins_administratifs.medecin_id = t_medecins.oid + ORDER BY 1, 2, 3, 4; \ No newline at end of file diff --git a/db/schema2/views/v_medecins_5.yaml b/db/schema2/views/v_medecins_5.yaml new file mode 100644 index 0000000..ce1a0e3 --- /dev/null +++ b/db/schema2/views/v_medecins_5.yaml @@ -0,0 +1,97 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'MEDECIN'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MEDECIN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'MEDECIN'::text + ) + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MEDECIN'::text + ) UNION + SELECT '-8'::text AS oid, + 'Spécialités'::character varying AS texte, + '1'::text AS level, + '5'::text AS sort, + '0'::character(1) AS is_cti + UNION + SELECT 'SP'::text || t_specialites_medecin.oid::text AS oid, + (t_specialites_medecin.code || ' '::text) || t_specialites_medecin.texte AS texte, + '2'::text AS level, + '6'::text || t_specialites_medecin.code AS sort, + '0'::character(1) AS is_cti + FROM base.t_specialites_medecin + WHERE (t_specialites_medecin.oid IN ( SELECT DISTINCT t_medecins.specialite_id + FROM base.t_medecins + ORDER BY t_medecins.specialite_id)) + UNION + SELECT 'MD'::text || t_medecins.oid::text AS oid, + CASE + WHEN t_medecins.oid <> 0 THEN (t_medecins.nom || ' '::text) || t_medecins.prenom + ELSE 'Non saisi'::text + END AS texte, + '1'::text AS level, + (('7'::text || t_medecins.nom) || t_medecins.prenom) || t_medecins.oid::text AS sort, + '0'::character(1) AS is_cti + FROM activite.t_medecins_administratifs, + base.t_medecins + WHERE (t_medecins_administratifs.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'medecin_s'::text)) AND t_medecins_administratifs.medecin_id = t_medecins.oid + UNION + SELECT 'MA'::text || t_medecins_administratifs.oid::text AS oid, + CASE + WHEN t_medecins_administratifs.oid <> 0 THEN ((((t_medecins_administratifs.nom || ' '::text) || t_medecins_administratifs.prenom) || ' ('::text) || t_medecins_administratifs.code) || ')'::text + ELSE 'Non saisi'::text + END AS texte, + '2'::text AS level, + (((('7'::text || t_medecins.nom) || t_medecins.prenom) || t_medecins.oid::text) || '1'::text) || t_medecins_administratifs.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_medecins_administratifs, + base.t_medecins + WHERE (t_medecins_administratifs.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'medecin_s'::text)) AND t_medecins_administratifs.medecin_id = t_medecins.oid + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_medecins_6.yaml b/db/schema2/views/v_medecins_6.yaml new file mode 100644 index 0000000..52f1c75 --- /dev/null +++ b/db/schema2/views/v_medecins_6.yaml @@ -0,0 +1,98 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'MEDECIN'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MEDECIN'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'MEDECIN'::text + ) UNION + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::text AS texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MEDECIN'::text + ) + ) UNION + SELECT '-8'::text AS oid, + 'Spécialités'::character varying AS texte, + '1'::text AS level, + '5'::text AS sort, + '0'::character(1) AS is_cti + UNION + SELECT 'SP'::text || t_specialites_medecin.oid::text AS oid, + (t_specialites_medecin.code || ' '::text) || t_specialites_medecin.texte AS texte, + '2'::text AS level, + '5'::text || t_specialites_medecin.code AS sort, + '0'::character(1) AS is_cti + FROM base.t_specialites_medecin + WHERE (t_specialites_medecin.oid IN ( SELECT DISTINCT t_medecins.specialite_id + FROM base.t_medecins + ORDER BY t_medecins.specialite_id)) + UNION + SELECT 'MD'::text || t_medecins.oid::text AS oid, + CASE + WHEN t_medecins.oid <> 0 THEN (t_medecins.nom || ' '::text) || t_medecins.prenom + ELSE 'Non saisi'::text + END AS texte, + '1'::text AS level, + (('7'::text || t_medecins.nom) || t_medecins.prenom) || t_medecins.oid::text AS sort, + '0'::character(1) AS is_cti + FROM activite.t_medecins_administratifs, + base.t_medecins + WHERE (t_medecins_administratifs.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'medecin_x'::text)) AND t_medecins_administratifs.medecin_id = t_medecins.oid + UNION + SELECT 'MA'::text || t_medecins_administratifs.oid::text AS oid, + CASE + WHEN t_medecins_administratifs.oid <> 0 THEN ((((t_medecins_administratifs.nom || ' '::text) || t_medecins_administratifs.prenom) || ' ('::text) || t_medecins_administratifs.code) || ')'::text + ELSE 'Non saisi'::text + END AS texte, + '2'::text AS level, + (((('7'::text || t_medecins.nom) || t_medecins.prenom) || t_medecins.oid::text) || '1'::text) || t_medecins_administratifs.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_medecins_administratifs, + base.t_medecins + WHERE (t_medecins_administratifs.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'medecin_x'::text)) AND t_medecins_administratifs.medecin_id = t_medecins.oid + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_medecins_7.yaml b/db/schema2/views/v_medecins_7.yaml new file mode 100644 index 0000000..1564cf2 --- /dev/null +++ b/db/schema2/views/v_medecins_7.yaml @@ -0,0 +1,63 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'MEDECIN_TRAITANT'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MEDECIN_TRAITANT'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'MEDECIN_TRAITANT'::text + ) + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'MEDECIN_TRAITANT'::text + ) UNION + SELECT 'MT'::text || t_medecins_traitants_administratifs.oid::text AS oid, + CASE + WHEN t_medecins_traitants_administratifs.oid <> 0 THEN (t_medecins_traitants_administratifs.nom || ' '::text) || t_medecins_traitants_administratifs.prenom + ELSE 'Non saisi'::text + END AS texte, + '1'::text AS level, + (('7'::text || t_medecins_traitants_administratifs.nom) || t_medecins_traitants_administratifs.prenom) || t_medecins_traitants_administratifs.oid::text AS sort, + '0'::character(1) AS is_cti + FROM activite.t_medecins_traitants_administratifs + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_modes_entree_1.yaml b/db/schema2/views/v_modes_entree_1.yaml new file mode 100644 index 0000000..3018c70 --- /dev/null +++ b/db/schema2/views/v_modes_entree_1.yaml @@ -0,0 +1,9 @@ +src: | + SELECT ascii(t_modes_entree.code::text) AS mode_entree_id, + t_modes_entree.code AS mode_entree_code, + CASE + WHEN t_modes_entree.code <> ''::bpchar THEN t_modes_entree.texte + ELSE 'Non saisi'::text + END AS mode_entree_texte + FROM base.t_modes_entree + ORDER BY t_modes_entree.code; \ No newline at end of file diff --git a/db/schema2/views/v_modes_entree_2.yaml b/db/schema2/views/v_modes_entree_2.yaml new file mode 100644 index 0000000..338641c --- /dev/null +++ b/db/schema2/views/v_modes_entree_2.yaml @@ -0,0 +1,23 @@ +src: | + SELECT 'ME'::text || t_modes_entree.code::text AS code, + CASE + WHEN t_modes_entree.code <> ''::bpchar THEN (t_modes_entree.code::text || ' - '::text) || t_modes_entree.texte + ELSE 'Non saisi'::text + END AS texte, + CASE + WHEN t_modes_entree.code <> ''::bpchar THEN (t_modes_entree.code::text || ' - '::text) || t_modes_entree.texte_court + ELSE 'Non saisi'::text + END AS texte_court + FROM base.t_modes_entree + UNION ALL + SELECT 'MX'::text || t_modes_entree.code::text AS code, + CASE + WHEN t_modes_entree.code <> ''::bpchar THEN ('SAUF '::text || (t_modes_entree.code::text || ' - '::text)) || t_modes_entree.texte + ELSE 'SAUF Non saisi'::text + END AS texte, + CASE + WHEN t_modes_entree.code <> ''::bpchar THEN ('SAUF '::text || (t_modes_entree.code::text || ' - '::text)) || t_modes_entree.texte_court + ELSE 'SAUF Non saisi'::text + END AS texte_court + FROM base.t_modes_entree + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_modes_sortie_1.yaml b/db/schema2/views/v_modes_sortie_1.yaml new file mode 100644 index 0000000..ecd778d --- /dev/null +++ b/db/schema2/views/v_modes_sortie_1.yaml @@ -0,0 +1,9 @@ +src: | + SELECT ascii(t_modes_sortie.code::text) AS mode_sortie_id, + t_modes_sortie.code AS mode_sortie_code, + CASE + WHEN t_modes_sortie.code <> ''::bpchar THEN t_modes_sortie.texte + ELSE 'Non saisi'::text + END AS mode_sortie_texte + FROM base.t_modes_sortie + ORDER BY t_modes_sortie.code; \ No newline at end of file diff --git a/db/schema2/views/v_modes_sortie_2.yaml b/db/schema2/views/v_modes_sortie_2.yaml new file mode 100644 index 0000000..f60f856 --- /dev/null +++ b/db/schema2/views/v_modes_sortie_2.yaml @@ -0,0 +1,23 @@ +src: | + SELECT 'MS'::text || t_modes_sortie.code::text AS code, + CASE + WHEN t_modes_sortie.code <> ''::bpchar THEN (t_modes_sortie.code::text || ' - '::text) || t_modes_sortie.texte + ELSE 'Non saisi'::text + END AS texte, + CASE + WHEN t_modes_sortie.code <> ''::bpchar THEN (t_modes_sortie.code::text || ' - '::text) || t_modes_sortie.texte_court + ELSE 'Non saisi'::text + END AS texte_court + FROM base.t_modes_sortie + UNION ALL + SELECT 'MX'::text || t_modes_sortie.code::text AS code, + CASE + WHEN t_modes_sortie.code <> ''::bpchar THEN ('SAUF '::text || (t_modes_sortie.code::text || ' - '::text)) || t_modes_sortie.texte + ELSE 'SAUF Non saisi'::text + END AS texte, + CASE + WHEN t_modes_sortie.code <> ''::bpchar THEN ('SAUF '::text || (t_modes_sortie.code::text || ' - '::text)) || t_modes_sortie.texte_court + ELSE 'SAUF Non saisi'::text + END AS texte_court + FROM base.t_modes_sortie + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_modes_traitement_2.yaml b/db/schema2/views/v_modes_traitement_2.yaml new file mode 100644 index 0000000..f040067 --- /dev/null +++ b/db/schema2/views/v_modes_traitement_2.yaml @@ -0,0 +1,9 @@ +src: | + SELECT 'MT'::text || t_modes_traitement.oid::text AS oid, + (t_modes_traitement.code || ' '::text) || t_modes_traitement.texte_court AS texte, + t_modes_traitement.code + FROM base.t_modes_traitement + WHERE (t_modes_traitement.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'mode_traitement'::text)) + ORDER BY t_modes_traitement.code; \ No newline at end of file diff --git a/db/schema2/views/v_mouvements_sejour_2.yaml b/db/schema2/views/v_mouvements_sejour_2.yaml new file mode 100644 index 0000000..55c07a5 --- /dev/null +++ b/db/schema2/views/v_mouvements_sejour_2.yaml @@ -0,0 +1,127 @@ +src: | + SELECT p_mouvements_sejour.finess, + p_mouvements_sejour.no_sejour, + p_mouvements_sejour.sejour_id, + to_char(p_mouvements_sejour.date::timestamp with time zone, 'YYYYMM'::text) AS mois, + p_mouvements_sejour.date, + p_mouvements_sejour.jour_semaine, + p_mouvements_sejour.is_weekend, + p_mouvements_sejour.est_mouvement_previsionnel, + p_mouvements_sejour.heure_debut, + p_mouvements_sejour.heure_fin, + p_mouvements_sejour.lieu_id, + p_mouvements_sejour.medecin_sejour_id AS medecin_adm_mouvement_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_mouvement_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_mouvement_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_mouvement_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_mouvement_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_mouvement_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_mouvement_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_mouvement_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_mouvement_id, + t_medecins_administratifs_c.medecin_code AS medecin_mouvement_code, + t_medecins_administratifs_c.nom AS medecin_mouvement_nom, + t_medecins_administratifs_c.prenom AS medecin_mouvement_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_mouvement_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_mouvement_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_mouvement_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_mouvement_specialite_texte, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + t_lieux_c.gir_id AS lieu_gir_id, + t_lieux_c.gir_code AS lieu_gir_code, + t_lieux_c.gir_texte AS lieu_gir_texte, + t_lieux_c.gir_section_id AS lieu_gir_section_id, + t_lieux_c.gir_section_code AS lieu_gir_section_code, + t_lieux_c.gir_section_texte AS lieu_gir_section_texte, + p_mouvements_sejour.est_facture, + p_mouvements_sejour.est_jour_hospitalisation, + p_mouvements_sejour.nb_jours_d, + p_mouvements_sejour.nb_jours_f, + p_mouvements_sejour.nb_jours_12, + p_mouvements_sejour.nb_jours_prorata, + p_mouvements_sejour.nb_jours_cp_d, + p_mouvements_sejour.nb_jours_cp_f, + p_mouvements_sejour.nb_jours_cp_12, + p_mouvements_sejour.equivalent_malade_complet AS nb_emc, + p_mouvements_sejour.est_chambre_particuliere, + p_mouvements_sejour.est_chambre_particuliere_facturee, + p_mouvements_sejour.nb_chambres_particulieres, + t_lieux_c.service_facturation_est_absence, + CASE + WHEN t_lieux_c.service_facturation_est_absence = '1'::bpchar THEN p_mouvements_sejour.nb_jours_js_non_inclus + ELSE 0::numeric(5,0) + END AS nb_jours_absence_js_non_inclus, + CASE + WHEN t_lieux_c.service_facturation_est_absence = '1'::bpchar THEN p_mouvements_sejour.nb_jours_js_inclus + ELSE 0::numeric(5,0) + END AS nb_jours_absence_js_inclus, + p_mouvements_sejour.nb_entrees_directes, + p_mouvements_sejour.nb_entrees_mutation_service, + p_mouvements_sejour.nb_entrees_mutation_activite, + p_mouvements_sejour.nb_entrees_mutation_etage, + p_mouvements_sejour.nb_entrees_mutation_unite_medicale, + p_mouvements_sejour.nb_sorties_directes, + p_mouvements_sejour.nb_sorties_mutation_service, + p_mouvements_sejour.nb_sorties_mutation_activite, + p_mouvements_sejour.nb_sorties_mutation_etage, + p_mouvements_sejour.nb_sorties_mutation_unite_medicale, + p_mouvements_sejour.nb_urgences, + p_mouvements_sejour.nb_externes, + p_mouvements_sejour.nb_passage_externe, + p_mouvements_sejour.nb_ambulatoires, + p_mouvements_sejour.nb_seances, + COALESCE(p_mouvements_sejour.nb_seances_dans_taux, 0::numeric)::numeric(5,0) AS nb_seances_dans_taux, + p_mouvements_sejour.nb_jours_js_non_inclus + p_mouvements_sejour.nb_externes + p_mouvements_sejour.nb_ambulatoires AS nb_journees_classement, + p_mouvements_sejour.nb_bebes, + 0 AS no_oid, + ''::text AS no_code, + 0 AS no_nb_lits, + p_mouvements_sejour.equivalent_malade_complet, + p_mouvements_sejour.pole_id, + p_mouvements_sejour.nb_jour_sejour_sorti, + p_mouvements_sejour.nb_deces, + p_mouvements_sejour.nb_seances_dialyse, + p_mouvements_sejour.nb_seances_chimio, + p_mouvements_sejour.nb_seances_autre, + p_mouvements_sejour.sequences, + p_mouvements_sejour.nb_preadmission_validee, + p_mouvements_sejour.nb_preadmission_validee_j1, + p_mouvements_sejour.nb_preadmission_validee_j2 + FROM activite.p_mouvements_sejour + JOIN activite.t_medecins_administratifs_c ON p_mouvements_sejour.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid + WHERE t_lieux_c.service_facturation_est_sans_mouvement <> '1'::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_mouvements_sejour_4.yaml b/db/schema2/views/v_mouvements_sejour_4.yaml new file mode 100644 index 0000000..310d86e --- /dev/null +++ b/db/schema2/views/v_mouvements_sejour_4.yaml @@ -0,0 +1,103 @@ +src: | + SELECT p_mouvements_sejour.finess, + p_mouvements_sejour.no_sejour, + p_mouvements_sejour.sejour_id, + to_char(p_mouvements_sejour.date::timestamp with time zone, 'YYYYMM'::text) AS mois, + p_mouvements_sejour.date, + p_mouvements_sejour.jour_semaine, + p_mouvements_sejour.is_weekend, + p_mouvements_sejour.est_mouvement_previsionnel, + p_mouvements_sejour.heure_debut, + p_mouvements_sejour.heure_fin, + p_mouvements_sejour.lieu_id, + p_mouvements_sejour.medecin_sejour_id AS medecin_adm_mouvement_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_mouvement_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_mouvement_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_mouvement_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_mouvement_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_mouvement_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_mouvement_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_mouvement_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_mouvement_id, + t_medecins_administratifs_c.medecin_code AS medecin_mouvement_code, + t_medecins_administratifs_c.nom AS medecin_mouvement_nom, + t_medecins_administratifs_c.prenom AS medecin_mouvement_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_mouvement_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_mouvement_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_mouvement_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_mouvement_specialite_texte, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + t_lieux_c.gir_id AS lieu_gir_id, + t_lieux_c.gir_code AS lieu_gir_code, + t_lieux_c.gir_texte AS lieu_gir_texte, + t_lieux_c.gir_section_id AS lieu_gir_section_id, + t_lieux_c.gir_section_code AS lieu_gir_section_code, + t_lieux_c.gir_section_texte AS lieu_gir_section_texte, + p_mouvements_sejour.est_jour_hospitalisation, + p_mouvements_sejour.est_chambre_particuliere, + p_mouvements_sejour.est_chambre_particuliere_facturee, + p_mouvements_sejour.nb_chambres_particulieres, + p_mouvements_sejour.nb_entrees_directes, + p_mouvements_sejour.nb_entrees_mutation_service, + p_mouvements_sejour.nb_entrees_mutation_activite, + p_mouvements_sejour.nb_entrees_mutation_etage, + p_mouvements_sejour.nb_entrees_mutation_unite_medicale, + p_mouvements_sejour.nb_sorties_directes, + p_mouvements_sejour.nb_sorties_mutation_service, + p_mouvements_sejour.nb_sorties_mutation_activite, + p_mouvements_sejour.nb_sorties_mutation_etage, + p_mouvements_sejour.nb_sorties_mutation_unite_medicale, + p_mouvements_sejour.nb_urgences, + p_mouvements_sejour.nb_externes, + p_mouvements_sejour.nb_ambulatoires, + p_mouvements_sejour.nb_seances, + p_mouvements_sejour.nb_jours_js_non_inclus + p_mouvements_sejour.nb_externes + p_mouvements_sejour.nb_ambulatoires AS nb_journees_classement, + p_mouvements_sejour.nb_bebes, + p_mouvements_sejour.nb_jours_d, + p_mouvements_sejour.nb_jours_f, + p_mouvements_sejour.nb_jours_12, + p_mouvements_sejour.nb_jours_prorata, + p_mouvements_sejour.nb_jours_cp_d, + p_mouvements_sejour.nb_jours_cp_f, + p_mouvements_sejour.nb_jours_cp_12, + 0 AS no_oid, + ''::text AS no_code, + 0 AS no_nb_lits, + p_mouvements_sejour.sequences + FROM activite.p_mouvements_sejour + JOIN activite.t_medecins_administratifs_c ON p_mouvements_sejour.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid; \ No newline at end of file diff --git a/db/schema2/views/v_mouvements_sejour_5.yaml b/db/schema2/views/v_mouvements_sejour_5.yaml new file mode 100644 index 0000000..98ee665 --- /dev/null +++ b/db/schema2/views/v_mouvements_sejour_5.yaml @@ -0,0 +1,123 @@ +src: | + SELECT p_mouvements_sejour.finess, + p_mouvements_sejour.no_sejour, + p_mouvements_sejour.sejour_id, + to_char(p_mouvements_sejour.date::timestamp with time zone, 'YYYYMM'::text) AS mois, + p_mouvements_sejour.date, + p_mouvements_sejour.jour_semaine, + p_mouvements_sejour.is_weekend, + p_mouvements_sejour.est_mouvement_previsionnel, + p_mouvements_sejour.heure_debut, + p_mouvements_sejour.heure_fin, + p_mouvements_sejour.lieu_id, + p_mouvements_sejour.medecin_sejour_id AS medecin_adm_mouvement_id, + t_lieux_c.service_facturation_id AS lieu_service_id, + t_lieux_c.service_facturation_code AS lieu_service_code, + t_lieux_c.service_facturation_texte AS lieu_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_activite_id, + t_lieux_c.activite_code AS lieu_activite_code, + t_lieux_c.activite_texte AS lieu_activite_texte, + t_lieux_c.etage_id AS lieu_etage_id, + t_lieux_c.etage_code AS lieu_etage_code, + t_lieux_c.etage_texte AS lieu_etage_texte, + t_lieux_c.etage_section_id AS lieu_etage_section_id, + t_lieux_c.etage_section_code AS lieu_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_etage_section_texte, + t_lieux_c.lit_id AS lieu_lit_id, + t_lieux_c.lit_code AS lieu_lit_code, + t_lieux_c.lit_texte AS lieu_lit_texte, + t_lieux_c.lit_section_id AS lieu_lit_section_id, + t_lieux_c.lit_section_code AS lieu_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_unite_fonctionnelle_section_texte, + t_lieux_c.gir_id AS lieu_gir_id, + t_lieux_c.gir_code AS lieu_gir_code, + t_lieux_c.gir_texte AS lieu_gir_texte, + t_lieux_c.gir_section_id AS lieu_gir_section_id, + t_lieux_c.gir_section_code AS lieu_gir_section_code, + t_lieux_c.gir_section_texte AS lieu_gir_section_texte, + p_mouvements_sejour.est_facture, + p_mouvements_sejour.est_jour_hospitalisation, + p_mouvements_sejour.equivalent_malade_complet AS nb_emc, + p_mouvements_sejour.est_chambre_particuliere, + p_mouvements_sejour.est_chambre_particuliere_facturee, + p_mouvements_sejour.nb_chambres_particulieres, + p_mouvements_sejour.nb_jours_d, + p_mouvements_sejour.nb_jours_f, + p_mouvements_sejour.nb_jours_12, + p_mouvements_sejour.nb_jours_prorata, + p_mouvements_sejour.nb_jours_cp_d, + p_mouvements_sejour.nb_jours_cp_f, + p_mouvements_sejour.nb_jours_cp_12, + t_lieux_c.service_facturation_est_absence, + CASE + WHEN t_lieux_c.service_facturation_est_absence = '1'::bpchar THEN p_mouvements_sejour.nb_jours_js_non_inclus + ELSE 0::numeric(5,0) + END AS nb_jours_absence_js_non_inclus, + CASE + WHEN t_lieux_c.service_facturation_est_absence = '1'::bpchar THEN p_mouvements_sejour.nb_jours_js_inclus + ELSE 0::numeric(5,0) + END AS nb_jours_absence_js_inclus, + p_mouvements_sejour.nb_entrees_directes, + p_mouvements_sejour.nb_entrees_mutation_service, + p_mouvements_sejour.nb_entrees_mutation_activite, + p_mouvements_sejour.nb_entrees_mutation_etage, + p_mouvements_sejour.nb_entrees_mutation_unite_medicale, + p_mouvements_sejour.nb_sorties_directes, + p_mouvements_sejour.nb_sorties_mutation_service, + p_mouvements_sejour.nb_sorties_mutation_activite, + p_mouvements_sejour.nb_sorties_mutation_etage, + p_mouvements_sejour.nb_sorties_mutation_unite_medicale, + p_mouvements_sejour.nb_urgences, + p_mouvements_sejour.nb_externes, + p_mouvements_sejour.nb_passage_externe, + p_mouvements_sejour.nb_ambulatoires, + p_mouvements_sejour.nb_seances, + COALESCE(p_mouvements_sejour.nb_seances_dans_taux, 0::numeric)::numeric(5,0) AS nb_seances_dans_taux, + p_mouvements_sejour.nb_jours_js_non_inclus + p_mouvements_sejour.nb_externes + p_mouvements_sejour.nb_ambulatoires AS nb_journees_classement, + p_mouvements_sejour.nb_bebes, + CASE + WHEN t_lieux_c.gir_id > 0 THEN p_mouvements_sejour.nb_jours_prorata + ELSE NULL::numeric + END AS gir_gmp_base, + CASE + WHEN t_lieux_c.gir_id > 0 THEN t_lieux_c.gir_coefficient + ELSE NULL::numeric + END AS gir_gmp_coefficient, + 0 AS no_oid, + ''::text AS no_code, + 0 AS no_nb_lits, + p_mouvements_sejour.equivalent_malade_complet, + p_mouvements_sejour.pole_id, + p_mouvements_sejour.nb_jour_sejour_sorti, + p_mouvements_sejour.budget_cle_id, + p_mouvements_sejour.nb_deces, + p_mouvements_sejour.nb_seances_dialyse, + p_mouvements_sejour.nb_seances_chimio, + p_mouvements_sejour.nb_seances_autre, + p_mouvements_sejour.sequences, + t_lieux_c.activite_section_id AS lieu_activite_section_id, + t_lieux_c.activite_section_code AS lieu_activite_section_code, + t_lieux_c.activite_section_texte AS lieu_activite_section_texte, + p_mouvements_sejour.nb_preadmission_validee, + p_mouvements_sejour.nb_preadmission_validee_j1, + p_mouvements_sejour.nb_preadmission_validee_j2 + FROM activite.p_mouvements_sejour + JOIN activite.t_lieux_c ON p_mouvements_sejour.lieu_id = t_lieux_c.oid + WHERE t_lieux_c.service_facturation_est_sans_mouvement <> '1'::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_mouvements_sejour_lieu_1.yaml b/db/schema2/views/v_mouvements_sejour_lieu_1.yaml new file mode 100644 index 0000000..d0df75a --- /dev/null +++ b/db/schema2/views/v_mouvements_sejour_lieu_1.yaml @@ -0,0 +1,12 @@ +src: | + SELECT p_sejour_lieu.sejour_id AS sejour_lieu_sejour_id, + p_sejour_lieu.no_sejour AS sejour_lieu_no_sejour, + p_sejour_lieu.lieu_id AS sejour_lieu_lieu_id, + p_sejour_lieu.pole_id, + t_pole.code AS pole_code, + t_pole.texte AS pole_texte, + t_pole.section_id AS t_pole_section_id, + t_pole.section_code AS t_pole_section_code, + t_pole.section_texte AS t_pole_section_texte + FROM activite.p_sejour_lieu + JOIN activite.t_pole ON t_pole.oid = p_sejour_lieu.pole_id; \ No newline at end of file diff --git a/db/schema2/views/v_mouvements_sejour_medecin_1.yaml b/db/schema2/views/v_mouvements_sejour_medecin_1.yaml new file mode 100644 index 0000000..e692983 --- /dev/null +++ b/db/schema2/views/v_mouvements_sejour_medecin_1.yaml @@ -0,0 +1,18 @@ +src: | + SELECT t_medecins_administratifs_c.oid, + t_medecins_administratifs_c.adm_code AS medecin_adm_mouvement_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_mouvement_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_mouvement_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_mouvement_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_mouvement_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_mouvement_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_mouvement_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_mouvement_id, + t_medecins_administratifs_c.medecin_code AS medecin_mouvement_code, + t_medecins_administratifs_c.nom AS medecin_mouvement_nom, + t_medecins_administratifs_c.prenom AS medecin_mouvement_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_mouvement_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_mouvement_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_mouvement_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_mouvement_specialite_texte + FROM activite.t_medecins_administratifs_c; \ No newline at end of file diff --git a/db/schema2/views/v_mouvements_sejour_r_1.yaml b/db/schema2/views/v_mouvements_sejour_r_1.yaml new file mode 100644 index 0000000..6f04966 --- /dev/null +++ b/db/schema2/views/v_mouvements_sejour_r_1.yaml @@ -0,0 +1,382 @@ +dep: + - v_mouvements_sejour_2 + - v_sejours_1 +src: | + SELECT v_mouvements_sejour_2.date AS date_reference, + v_mouvements_sejour_2.heure_debut, + v_mouvements_sejour_2.heure_fin, + v_mouvements_sejour_2.est_mouvement_previsionnel, + v_mouvements_sejour_2.lieu_service_id AS lieu_reference_service_id, + v_mouvements_sejour_2.lieu_service_code AS lieu_reference_service_code, + v_mouvements_sejour_2.lieu_service_texte AS lieu_reference_service_texte, + v_mouvements_sejour_2.lieu_service_section_id AS lieu_reference_service_section_id, + v_mouvements_sejour_2.lieu_service_section_code AS lieu_reference_service_section_code, + v_mouvements_sejour_2.lieu_service_section_texte AS lieu_reference_service_section_texte, + v_mouvements_sejour_2.lieu_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_mouvements_sejour_2.lieu_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_mouvements_sejour_2.lieu_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_mouvements_sejour_2.lieu_unite_medicale_section_id AS lieu_reference_unite_medicale_section_id, + v_mouvements_sejour_2.lieu_unite_medicale_section_code AS lieu_reference_unite_medicale_section_code, + v_mouvements_sejour_2.lieu_unite_medicale_section_texte AS lieu_reference_unite_medicale_section_texte, + v_mouvements_sejour_2.lieu_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_mouvements_sejour_2.lieu_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_mouvements_sejour_2.lieu_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_mouvements_sejour_2.lieu_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_mouvements_sejour_2.lieu_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_mouvements_sejour_2.lieu_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_mouvements_sejour_2.lieu_activite_id AS lieu_reference_activite_id, + v_mouvements_sejour_2.lieu_activite_code AS lieu_reference_activite_code, + v_mouvements_sejour_2.lieu_activite_texte AS lieu_reference_activite_texte, + v_mouvements_sejour_2.lieu_etage_id AS lieu_reference_etage_id, + v_mouvements_sejour_2.lieu_etage_code AS lieu_reference_etage_code, + v_mouvements_sejour_2.lieu_etage_texte AS lieu_reference_etage_texte, + v_mouvements_sejour_2.lieu_etage_section_id AS lieu_reference_etage_section_id, + v_mouvements_sejour_2.lieu_etage_section_code AS lieu_reference_etage_section_code, + v_mouvements_sejour_2.lieu_etage_section_texte AS lieu_reference_etage_section_texte, + v_mouvements_sejour_2.medecin_adm_mouvement_id AS medecin_adm_reference_id, + v_mouvements_sejour_2.medecin_adm_mouvement_code AS medecin_adm_reference_code, + v_mouvements_sejour_2.medecin_adm_mouvement_nom AS medecin_adm_reference_nom, + v_mouvements_sejour_2.medecin_adm_mouvement_prenom AS medecin_adm_reference_prenom, + v_mouvements_sejour_2.medecin_adm_mouvement_nom_prenom AS medecin_adm_reference_nom_prenom, + v_mouvements_sejour_2.medecin_adm_mouvement_section_id AS medecin_adm_reference_section_id, + v_mouvements_sejour_2.medecin_adm_mouvement_section_code AS medecin_adm_reference_section_code, + v_mouvements_sejour_2.medecin_adm_mouvement_section_texte AS medecin_adm_reference_section_texte, + v_mouvements_sejour_2.medecin_mouvement_specialite_id AS medecin_reference_specialite_id, + v_mouvements_sejour_2.medecin_mouvement_specialite_code AS medecin_reference_specialite_code, + v_mouvements_sejour_2.medecin_mouvement_specialite_texte AS medecin_reference_specialite_texte, + v_mouvements_sejour_2.medecin_mouvement_id AS medecin_reference_id, + v_mouvements_sejour_2.medecin_mouvement_code AS medecin_reference_code, + v_mouvements_sejour_2.medecin_mouvement_nom AS medecin_reference_nom, + v_mouvements_sejour_2.medecin_mouvement_prenom AS medecin_reference_prenom, + v_mouvements_sejour_2.medecin_mouvement_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.heure_entree, + v_sejours_1.mode_entree, + v_sejours_1.provenance, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.heure_sortie, + v_sejours_1.mode_sortie, + v_sejours_1.destination, + v_sejours_1.code_cp_demandee, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.ghm5_id, + v_sejours_1.ghm5_code, + v_sejours_1.ghm5_texte, + v_sejours_1.severite_ghm_id, + v_sejours_1.severite_ghm_code, + v_sejours_1.severite_ghm_texte, + v_sejours_1.cas_id, + v_sejours_1.cas_code, + v_sejours_1.cas_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_id, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.ghm_section_id, + v_sejours_1.ghm_section_code, + v_sejours_1.ghm_section_texte, + v_sejours_1.tiers_payant_0_id, + v_sejours_1.tiers_payant_1_id, + v_sejours_1.tiers_payant_2_id, + v_sejours_1.tiers_payant_22_id, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_sejours_1.mois_facture, + v_sejours_1.date_facture, + v_sejours_1.nb_delai_facture, + v_sejours_1.delai_facture, + v_sejours_1.nb_non_facture, + v_sejours_1.mois_expedition, + v_sejours_1.date_expedition, + v_sejours_1.nb_delai_expedition, + v_sejours_1.nb_non_expedie, + v_sejours_1.montant_non_expedie, + v_sejours_1.delai_expedition, + v_sejours_1.mois_solde, + v_sejours_1.date_solde, + v_sejours_1.nb_delai_solde, + v_sejours_1.nb_non_solde, + v_sejours_1.montant_non_solde, + v_sejours_1.delai_solde, + v_sejours_1.montant_facture_c, + v_sejours_1.montant_facture_h, + v_sejours_1.montant_regle_c, + v_sejours_1.montant_regle_h, + v_sejours_1.nb_factures, + v_sejours_1.nb_factures_regularisation, + v_mouvements_sejour_2.mois, + v_mouvements_sejour_2.date, + v_mouvements_sejour_2.jour_semaine, + v_mouvements_sejour_2.is_weekend, + v_mouvements_sejour_2.lieu_id, + v_mouvements_sejour_2.medecin_adm_mouvement_id, + v_mouvements_sejour_2.medecin_adm_mouvement_code, + v_mouvements_sejour_2.medecin_adm_mouvement_nom, + v_mouvements_sejour_2.medecin_adm_mouvement_prenom, + v_mouvements_sejour_2.medecin_adm_mouvement_nom_prenom, + v_mouvements_sejour_2.medecin_mouvement_id, + v_mouvements_sejour_2.medecin_mouvement_nom, + v_mouvements_sejour_2.medecin_mouvement_prenom, + v_mouvements_sejour_2.medecin_mouvement_nom_prenom, + v_mouvements_sejour_2.lieu_service_id, + v_mouvements_sejour_2.lieu_service_code, + v_mouvements_sejour_2.lieu_service_texte, + v_mouvements_sejour_2.lieu_activite_id, + v_mouvements_sejour_2.lieu_activite_code, + v_mouvements_sejour_2.lieu_activite_texte, + v_mouvements_sejour_2.lieu_etage_id, + v_mouvements_sejour_2.lieu_etage_code, + v_mouvements_sejour_2.lieu_etage_texte, + v_mouvements_sejour_2.lieu_lit_id, + v_mouvements_sejour_2.lieu_lit_code, + v_mouvements_sejour_2.lieu_lit_texte, + v_mouvements_sejour_2.lieu_unite_medicale_id, + v_mouvements_sejour_2.lieu_unite_medicale_code, + v_mouvements_sejour_2.lieu_unite_medicale_texte, + v_mouvements_sejour_2.lieu_gir_id, + v_mouvements_sejour_2.lieu_gir_code, + v_mouvements_sejour_2.lieu_gir_texte, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_d::numeric + ELSE 0::numeric + END AS nb_jours_d, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_f::numeric + ELSE 0::numeric + END AS nb_jours_f, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_f::numeric + ELSE 0::numeric + END AS nb_jours_js_non_inclus_sauf_1_jour_f, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_12::numeric + ELSE 0::numeric + END AS nb_jours_12, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_prorata + ELSE 0::numeric + END AS nb_jours_prorata, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_emc + ELSE 0::numeric + END AS nb_emc, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_chambres_particulieres + ELSE 0::numeric + END AS nb_chambres_particulieres, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_cp_d::numeric + ELSE 0::numeric + END AS nb_jours_cp_d, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_cp_f::numeric + ELSE 0::numeric + END AS nb_jours_cp_f, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_cp_f::numeric + ELSE 0::numeric + END AS nb_chambres_particulieres_js_non_inclus_f, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_cp_12::numeric + ELSE 0::numeric + END AS nb_jours_cp_12, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_entrees_directes + ELSE 0::numeric + END AS nb_entrees_directes, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_entrees_mutation_service + ELSE 0::numeric + END AS nb_entrees_mutation_service, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_entrees_mutation_activite + ELSE 0::numeric + END AS nb_entrees_mutation_activite, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_entrees_mutation_etage + ELSE 0::numeric + END AS nb_entrees_mutation_etage, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_sorties_directes + ELSE 0::numeric + END AS nb_sorties_directes, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_sorties_mutation_service + ELSE 0::numeric + END AS nb_sorties_mutation_service, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_sorties_mutation_activite + ELSE 0::numeric + END AS nb_sorties_mutation_activite, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_sorties_mutation_etage + ELSE 0::numeric + END AS nb_sorties_mutation_etage, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_urgences + ELSE 0::numeric + END AS nb_urgences, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_externes + ELSE 0::numeric + END AS nb_externes, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_passage_externe::numeric + ELSE 0::numeric + END AS nb_passage_externe, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_ambulatoires + ELSE 0::numeric + END AS nb_ambulatoires, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_seances + ELSE 0::numeric + END AS nb_seances, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel IS DISTINCT FROM '1'::bpchar THEN v_mouvements_sejour_2.nb_bebes + ELSE 0::numeric + END AS nb_bebes, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_d::numeric + ELSE 0::numeric + END AS previsions_nb_jours_d, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_f::numeric + ELSE 0::numeric + END AS previsions_nb_jours_f, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_12::numeric + ELSE 0::numeric + END AS previsions_nb_jours_12, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_jours_prorata + ELSE 0::numeric + END AS previsions_nb_jours_prorata, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_emc + ELSE 0::numeric + END AS previsions_nb_emc, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_chambres_particulieres + ELSE 0::numeric + END AS previsions_nb_chambres_particulieres, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_entrees_directes + ELSE 0::numeric + END AS previsions_nb_entrees_directes, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_entrees_mutation_service + ELSE 0::numeric + END AS previsions_nb_entrees_mutation_service, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_entrees_mutation_activite + ELSE 0::numeric + END AS previsions_nb_entrees_mutation_activite, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_entrees_mutation_etage + ELSE 0::numeric + END AS previsions_nb_entrees_mutation_etage, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_sorties_directes + ELSE 0::numeric + END AS previsions_nb_sorties_directes, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_sorties_mutation_service + ELSE 0::numeric + END AS previsions_nb_sorties_mutation_service, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_sorties_mutation_activite + ELSE 0::numeric + END AS previsions_nb_sorties_mutation_activite, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_sorties_mutation_etage + ELSE 0::numeric + END AS previsions_nb_sorties_mutation_etage, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_urgences + ELSE 0::numeric + END AS previsions_nb_urgences, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_externes + ELSE 0::numeric + END AS previsions_nb_externes, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_ambulatoires + ELSE 0::numeric + END AS previsions_nb_ambulatoires, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_seances + ELSE 0::numeric + END AS previsions_nb_seances, + CASE + WHEN v_mouvements_sejour_2.est_mouvement_previsionnel = '1'::bpchar THEN v_mouvements_sejour_2.nb_bebes + ELSE 0::numeric + END AS previsions_nb_bebes, + v_mouvements_sejour_2.no_oid, + v_mouvements_sejour_2.no_code, + v_mouvements_sejour_2.no_nb_lits, + v_mouvements_sejour_2.est_facture, + v_mouvements_sejour_2.equivalent_malade_complet, + v_sejours_1.finess_section_id, + v_sejours_1.finess_section_code, + v_sejours_1.finess_section_texte, + v_mouvements_sejour_2.nb_preadmission_validee, + v_mouvements_sejour_2.nb_preadmission_validee_j1, + v_mouvements_sejour_2.nb_preadmission_validee_j2 + FROM activite.v_sejours_1, + activite.v_mouvements_sejour_2 + WHERE v_sejours_1.no_sejour = v_mouvements_sejour_2.no_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_parametre_personnalise_sejour_1_2.yaml b/db/schema2/views/v_parametre_personnalise_sejour_1_2.yaml new file mode 100644 index 0000000..f836459 --- /dev/null +++ b/db/schema2/views/v_parametre_personnalise_sejour_1_2.yaml @@ -0,0 +1,61 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ('0'::text || v_listes_1.sort) || chr(1) AS code, + v_listes_1.lvl AS level, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'PERSO_SEJ1'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PERSO_SEJ1'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'PERSO_SEJ1'::text + ) + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PERSO_SEJ1'::text + ) UNION + SELECT 'DT'::text || t_parametre_personnalise_sejour_1.oid::text AS oid, + (t_parametre_personnalise_sejour_1.code || ' '::text) || t_parametre_personnalise_sejour_1.texte_court AS texte, + '9'::text || t_parametre_personnalise_sejour_1.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_parametre_personnalise_sejour_1 + WHERE t_parametre_personnalise_sejour_1.oid > 0 + ORDER BY 3, 1, 2; \ No newline at end of file diff --git a/db/schema2/views/v_parametre_personnalise_sejour_2_2.yaml b/db/schema2/views/v_parametre_personnalise_sejour_2_2.yaml new file mode 100644 index 0000000..af24053 --- /dev/null +++ b/db/schema2/views/v_parametre_personnalise_sejour_2_2.yaml @@ -0,0 +1,61 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ('0'::text || v_listes_1.sort) || chr(1) AS code, + v_listes_1.lvl AS level, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'PERSO_SEJ1'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PERSO_SEJ2'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'PERSO_SEJ2'::text + ) + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PERSO_SEJ2'::text + ) UNION + SELECT 'DT'::text || t_parametre_personnalise_sejour_2.oid::text AS oid, + (t_parametre_personnalise_sejour_2.code || ' '::text) || t_parametre_personnalise_sejour_2.texte_court AS texte, + '9'::text || t_parametre_personnalise_sejour_2.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_parametre_personnalise_sejour_2 + WHERE t_parametre_personnalise_sejour_2.oid > 0 + ORDER BY 3, 1, 2; \ No newline at end of file diff --git a/db/schema2/views/v_places_1.yaml b/db/schema2/views/v_places_1.yaml new file mode 100644 index 0000000..60118a7 --- /dev/null +++ b/db/schema2/views/v_places_1.yaml @@ -0,0 +1,143 @@ +src: | + SELECT t_places.type_sejour_id, + t_type_sejour.code AS type_sejour_code, + t_type_sejour.texte AS type_sejour_texte, + t_type_sejour.section_id AS type_sejour_section_id, + t_type_sejour.section_code AS type_sejour_section_code, + t_type_sejour.section_texte AS type_sejour_section_texte, + t_places.parent_id, + t_places_parents.parent_code, + t_places_parents.parent_texte, + t_places_parents.parent_section_id, + t_places_parents.parent_section_code, + t_places_parents.parent_section_texte, + t_places.date, + t_places.jour_semaine, + t_places.is_weekend, + t_places.nb_lits_theoriques, + t_places.nb_lits_cp_theoriques, + t_places.nb_lits_ouverts, + t_places.nb_lits_cp_ouverts, + t_places.est_ouvert, + t_places.heberge_hospitalises, + t_places.heberge_ambulatoires, + t_places.heberge_externes, + t_places.heberge_bebes, + t_places.heberge_urgences, + t_places.heberge_seances, + t_places_parents.parent_type, + CASE + WHEN t_places_parents.parent_type = 'ETA'::text THEN t_places.parent_id + ELSE - 111::bigint + END AS etage_id, + CASE + WHEN t_places_parents.parent_type = 'ETA'::text THEN t_places_parents.parent_code + ELSE ''::text + END AS etage_code, + CASE + WHEN t_places_parents.parent_type = 'ETA'::text THEN t_places_parents.parent_texte + ELSE ''::text + END AS etage_texte, + CASE + WHEN t_places_parents.parent_type = 'ETA'::text THEN t_places_parents.parent_section_id + ELSE ARRAY[- 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint] + END AS etage_section_id, + CASE + WHEN t_places_parents.parent_type = 'ETA'::text THEN t_places_parents.parent_section_code + ELSE ARRAY[''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text] + END AS etage_section_code, + CASE + WHEN t_places_parents.parent_type = 'ETA'::text THEN t_places_parents.parent_section_texte + ELSE ARRAY[''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text] + END AS etage_section_texte, + CASE + WHEN t_places_parents.parent_type = 'SER'::text THEN t_places.parent_id + ELSE - 111::bigint + END AS service_id, + CASE + WHEN t_places_parents.parent_type = 'SER'::text THEN t_places_parents.parent_code + ELSE ''::text + END AS service_code, + CASE + WHEN t_places_parents.parent_type = 'SER'::text THEN t_places_parents.parent_texte + ELSE ''::text + END AS service_texte, + CASE + WHEN t_places_parents.parent_type = 'SER'::text THEN t_places_parents.parent_section_id + ELSE ARRAY[- 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint] + END AS service_section_id, + CASE + WHEN t_places_parents.parent_type = 'SER'::text THEN t_places_parents.parent_section_code + ELSE ARRAY[''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text] + END AS service_section_code, + CASE + WHEN t_places_parents.parent_type = 'SER'::text THEN t_places_parents.parent_section_texte + ELSE ARRAY[''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text] + END AS service_section_texte, + CASE + WHEN t_places_parents.parent_type = 'UF'::text THEN t_places.parent_id + ELSE - 111::bigint + END AS uf_id, + CASE + WHEN t_places_parents.parent_type = 'UF'::text THEN t_places_parents.parent_code + ELSE ''::text + END AS uf_code, + CASE + WHEN t_places_parents.parent_type = 'UF'::text THEN t_places_parents.parent_texte + ELSE ''::text + END AS uf_texte, + CASE + WHEN t_places_parents.parent_type = 'UF'::text THEN t_places_parents.parent_section_id + ELSE ARRAY[- 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint] + END AS uf_section_id, + CASE + WHEN t_places_parents.parent_type = 'UF'::text THEN t_places_parents.parent_section_code + ELSE ARRAY[''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text] + END AS uf_section_code, + CASE + WHEN t_places_parents.parent_type = 'UF'::text THEN t_places_parents.parent_section_texte + ELSE ARRAY[''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text] + END AS uf_section_texte, + CASE + WHEN t_places_parents.parent_type = 'UM'::text THEN t_places.parent_id + ELSE - 111::bigint + END AS um_id, + CASE + WHEN t_places_parents.parent_type = 'UM'::text THEN t_places_parents.parent_code + ELSE ''::text + END AS um_code, + CASE + WHEN t_places_parents.parent_type = 'UM'::text THEN t_places_parents.parent_texte + ELSE ''::text + END AS um_texte, + CASE + WHEN t_places_parents.parent_type = 'UM'::text THEN t_places_parents.parent_section_id + ELSE ARRAY[- 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint, - 111::bigint] + END AS um_section_id, + CASE + WHEN t_places_parents.parent_type = 'UM'::text THEN t_places_parents.parent_section_code + ELSE ARRAY[''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text] + END AS um_section_code, + CASE + WHEN t_places_parents.parent_type = 'UM'::text THEN t_places_parents.parent_section_texte + ELSE ARRAY[''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text, ''::text] + END AS um_section_texte, + t_places_parents.mode_traitement_id, + t_places_parents.mode_traitement_code, + t_places_parents.mode_traitement_texte, + t_places_parents.finess_id, + t_places_parents.finess_code, + t_places_parents.finess_texte, + t_places_parents.finess_section_id, + t_places_parents.finess_section_code, + t_places_parents.finess_section_texte, + t_places.pole_id, + t_pole.code AS pole_code, + t_pole.texte AS pole_texte, + t_pole.section_id AS pole_section_id, + t_pole.section_code AS pole_section_code, + t_pole.section_texte AS pole_section_texte + FROM activite.t_places + JOIN activite.t_type_sejour ON t_type_sejour.oid = t_places.type_sejour_id + JOIN activite.t_places_parents ON t_places.parent_id = t_places_parents.oid + LEFT JOIN base.t_pole ON t_places.pole_id = t_pole.oid; \ No newline at end of file diff --git a/db/schema2/views/v_places_r_1.yaml b/db/schema2/views/v_places_r_1.yaml new file mode 100644 index 0000000..8a85333 --- /dev/null +++ b/db/schema2/views/v_places_r_1.yaml @@ -0,0 +1,61 @@ +dep: + - v_places_1 +src: | + SELECT v_places_1.date AS date_reference, + v_places_1.type_sejour_id, + v_places_1.type_sejour_code, + v_places_1.type_sejour_texte, + v_places_1.parent_id, + v_places_1.parent_code, + v_places_1.parent_texte, + v_places_1.parent_section_id, + v_places_1.parent_section_code, + v_places_1.parent_section_texte, + v_places_1.date, + v_places_1.jour_semaine, + v_places_1.is_weekend, + v_places_1.nb_lits_theoriques, + v_places_1.nb_lits_cp_theoriques, + v_places_1.nb_lits_ouverts, + v_places_1.nb_lits_cp_ouverts, + v_places_1.est_ouvert, + v_places_1.heberge_hospitalises, + v_places_1.heberge_ambulatoires, + v_places_1.heberge_externes, + v_places_1.heberge_bebes, + v_places_1.heberge_urgences, + v_places_1.parent_type, + v_places_1.etage_id, + v_places_1.etage_code, + v_places_1.etage_texte, + v_places_1.etage_section_id, + v_places_1.etage_section_code, + v_places_1.etage_section_texte, + v_places_1.service_id, + v_places_1.service_code, + v_places_1.service_texte, + v_places_1.service_section_id, + v_places_1.service_section_code, + v_places_1.service_section_texte, + v_places_1.uf_id, + v_places_1.uf_code, + v_places_1.uf_texte, + v_places_1.uf_section_id, + v_places_1.uf_section_code, + v_places_1.uf_section_texte, + v_places_1.finess_id, + v_places_1.finess_code, + v_places_1.finess_texte, + v_places_1.finess_section_id, + v_places_1.finess_section_code, + v_places_1.finess_section_texte, + v_places_1.pole_id, + v_places_1.pole_code, + v_places_1.pole_texte, + v_places_1.pole_section_id, + v_places_1.pole_section_code, + v_places_1.pole_section_texte, + v_places_1.mode_traitement_id, + v_places_1.mode_traitement_code, + v_places_1.mode_traitement_texte + FROM activite.v_places_1; \ No newline at end of file diff --git a/db/schema2/views/v_pole_1.yaml b/db/schema2/views/v_pole_1.yaml new file mode 100644 index 0000000..3c8b117 --- /dev/null +++ b/db/schema2/views/v_pole_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_pole.oid AS join_pole_id, + t_pole.code AS pole_code, + t_pole.texte AS pole_texte, + t_pole.section_id AS pole_section_id, + t_pole.section_code AS pole_section_code, + t_pole.section_texte AS pole_section_texte + FROM activite.t_pole; \ No newline at end of file diff --git a/db/schema2/views/v_pole_2.yaml b/db/schema2/views/v_pole_2.yaml new file mode 100644 index 0000000..c4658e6 --- /dev/null +++ b/db/schema2/views/v_pole_2.yaml @@ -0,0 +1,68 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.liste_alias_combo AS alias, + v_listes_1.texte, + ('0'::text || v_listes_1.sort) || chr(1) AS code, + v_listes_1.lvl AS level, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'POLE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + ''::text AS alias, + t_classes.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'POLE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + ('#LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.code AS alias, + t_classes_sections.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'POLE'::text + ) + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + ''::text AS alias, + 'Section non attribuée'::character varying AS texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'POLE'::text + ) UNION + SELECT 'DT'::text || t_pole.oid::text AS oid, + '#DT'::text || t_pole.code AS alias, + (t_pole.code || ' '::text) || t_pole.texte_court AS texte, + '9'::text || t_pole.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_pole + WHERE (t_pole.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'pole'::text)) + ORDER BY 4, 1, 3; \ No newline at end of file diff --git a/db/schema2/views/v_prestations_1.yaml b/db/schema2/views/v_prestations_1.yaml new file mode 100644 index 0000000..5ccfbd8 --- /dev/null +++ b/db/schema2/views/v_prestations_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_prestations.oid, + (t_prestations.code || ' '::text) || t_prestations.texte_court AS texte + FROM activite.t_prestations + WHERE (t_prestations.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'prestation_c'::text)) + ORDER BY t_prestations.code; \ No newline at end of file diff --git a/db/schema2/views/v_prestations_2.yaml b/db/schema2/views/v_prestations_2.yaml new file mode 100644 index 0000000..6da24e3 --- /dev/null +++ b/db/schema2/views/v_prestations_2.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_prestations.oid, + (t_prestations.code || ' '::text) || t_prestations.texte_court AS texte + FROM activite.t_prestations + WHERE (t_prestations.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'prestation_h'::text)) + ORDER BY t_prestations.code; \ No newline at end of file diff --git a/db/schema2/views/v_prestations_3.yaml b/db/schema2/views/v_prestations_3.yaml new file mode 100644 index 0000000..2dedd8c --- /dev/null +++ b/db/schema2/views/v_prestations_3.yaml @@ -0,0 +1,65 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'PRESTA_C'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PRESTA_C'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'PRESTA_C'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PRESTA_C'::text + UNION ALL + SELECT 'PR'::text || t_prestations.oid::text AS oid, + (t_prestations.code || ' '::text) || + CASE + WHEN t_prestations.texte_court <> t_prestations.code THEN t_prestations.texte_court + ELSE ''::text + END AS texte, + '1'::text AS level, + '9'::text || t_prestations.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_prestations + WHERE (t_prestations.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'prestation_c'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_prestations_4.yaml b/db/schema2/views/v_prestations_4.yaml new file mode 100644 index 0000000..536c351 --- /dev/null +++ b/db/schema2/views/v_prestations_4.yaml @@ -0,0 +1,23 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'PRESTA_H'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT 'PR'::text || t_prestations.oid::text AS oid, + (t_prestations.code || ' '::text) || + CASE + WHEN t_prestations.texte_court <> t_prestations.code THEN t_prestations.texte_court + ELSE ''::text + END AS texte, + '1'::text AS level, + '4'::text || t_prestations.code AS sort + FROM activite.t_prestations + WHERE (t_prestations.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'prestation_h'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_protocoles_2.yaml b/db/schema2/views/v_protocoles_2.yaml new file mode 100644 index 0000000..91bd685 --- /dev/null +++ b/db/schema2/views/v_protocoles_2.yaml @@ -0,0 +1,62 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'PROTOCOLE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PROTOCOLE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'PROTOCOLE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'PROTOCOLE'::text + ) UNION + SELECT 'DT'::text || t_protocoles.oid::text AS oid, + (t_protocoles.code || ' '::text) || t_protocoles.texte_court AS texte, + '1'::text AS level, + '9'::text || t_protocoles.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_protocoles + WHERE (t_protocoles.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'protocole_h'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_provenances_entree_1.yaml b/db/schema2/views/v_provenances_entree_1.yaml new file mode 100644 index 0000000..e68d8e9 --- /dev/null +++ b/db/schema2/views/v_provenances_entree_1.yaml @@ -0,0 +1,9 @@ +src: | + SELECT ascii(t_provenances_entree.code::text) AS provenance_id, + t_provenances_entree.code AS provenance_code, + CASE + WHEN t_provenances_entree.code <> ''::bpchar THEN t_provenances_entree.texte + ELSE 'Non saisi'::text + END AS provenance_texte + FROM base.t_provenances_entree + ORDER BY 'PR'::text || t_provenances_entree.code::text; \ No newline at end of file diff --git a/db/schema2/views/v_provenances_entree_2.yaml b/db/schema2/views/v_provenances_entree_2.yaml new file mode 100644 index 0000000..eac3528 --- /dev/null +++ b/db/schema2/views/v_provenances_entree_2.yaml @@ -0,0 +1,23 @@ +src: | + SELECT 'PR'::text || t_provenances_entree.code::text AS code, + CASE + WHEN t_provenances_entree.code <> ''::bpchar THEN (t_provenances_entree.code::text || ' - '::text) || t_provenances_entree.texte + ELSE 'Non saisi'::text + END AS texte, + CASE + WHEN t_provenances_entree.code <> ''::bpchar THEN (t_provenances_entree.code::text || ' - '::text) || t_provenances_entree.texte_court + ELSE 'Non saisi'::text + END AS texte_court + FROM base.t_provenances_entree + UNION ALL + SELECT 'PX'::text || t_provenances_entree.code::text AS code, + CASE + WHEN t_provenances_entree.code <> ''::bpchar THEN ((('SAUF '::text || t_provenances_entree.texte) || ' ('::text) || t_provenances_entree.code::text) || ')'::text + ELSE 'SAUF Non saisi'::text + END AS texte, + CASE + WHEN t_provenances_entree.code <> ''::bpchar THEN ((('SAUF '::text || t_provenances_entree.texte_court) || ' ('::text) || t_provenances_entree.code::text) || ')'::text + ELSE 'SAUF Non saisi'::text + END AS texte_court + FROM base.t_provenances_entree + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_rapports_tables_indicateurs_1.yaml b/db/schema2/views/v_rapports_tables_indicateurs_1.yaml new file mode 100644 index 0000000..0cae359 --- /dev/null +++ b/db/schema2/views/v_rapports_tables_indicateurs_1.yaml @@ -0,0 +1,73 @@ +src: | + SELECT 1::bigint AS oid, + 'SEJOURS'::text AS code, + 'Superviseur d''activité'::text AS texte, + '245'::text AS dimensions_date, + ARRAY[''::text, 'sortie'::text, ''::text, 'ventes'::text, 'groupage'::text] AS dimensions_date_texte + UNION + SELECT 2::bigint AS oid, + 'OCCUPATION'::text AS code, + 'Occupation'::text AS texte, + '1'::text AS dimensions_date, + ARRAY['mouvement'::text, ''::text, ''::text, ''::text, ''::text] AS dimensions_date_texte + UNION + SELECT 3::bigint AS oid, + 'PLACES'::text AS code, + 'Places'::text AS texte, + '1'::text AS dimensions_date, + ARRAY['mouvement'::text, ''::text, ''::text, ''::text, ''::text] AS dimensions_date_texte + UNION + SELECT 4::bigint AS oid, + 'FACTURATION_CLINIQUE'::text AS code, + 'Facturation Clinique'::text AS texte, + '1234'::text AS dimensions_date, + ARRAY['acte'::text, 'sortie'::text, 'facture'::text, 'ventes'::text, ''::text] AS dimensions_date_texte + UNION + SELECT 5::bigint AS oid, + 'CLIENTS_CLINIQUE'::text AS code, + 'Clients Clinique'::text AS texte, + '4'::text AS dimensions_date, + ARRAY[''::text, ''::text, ''::text, 'comptable'::text, ''::text] AS dimensions_date_texte + UNION + SELECT 6::bigint AS oid, + 'FACTURATION_HONORAIRE'::text AS code, + 'Facturation Honoraires'::text AS texte, + '1234'::text AS dimensions_date, + ARRAY['acte'::text, 'sortie'::text, 'facture'::text, 'ventes'::text, ''::text] AS dimensions_date_texte + UNION + SELECT 7::bigint AS oid, + 'CLIENTS_HONORAIRE'::text AS code, + 'Clients Honoraire'::text AS texte, + '4'::text AS dimensions_date, + ARRAY[''::text, ''::text, ''::text, 'comptable'::text, ''::text] AS dimensions_date_texte + UNION + SELECT 8::bigint AS oid, + 'EN_COURS'::text AS code, + 'En-cours'::text AS texte, + '4'::text AS dimensions_date, + ARRAY[''::text, ''::text, ''::text, 'comptable'::text, ''::text] AS dimensions_date_texte + UNION + SELECT 9::bigint AS oid, + 'ANNULATIONS'::text AS code, + 'Annulations'::text AS texte, + '1'::text AS dimensions_date, + ARRAY['entree'::text, ''::text, ''::text, ''::text, ''::text] AS dimensions_date_texte + UNION + SELECT 11::bigint AS oid, + 'OCCUPATION_BLOC'::text AS code, + 'Occupation bloc'::text AS texte, + '1'::text AS dimensions_date, + ARRAY['intervention'::text, ''::text, ''::text, ''::text, ''::text] AS dimensions_date_texte + UNION + SELECT 97::bigint AS oid, + 'CALENDRIER'::text AS code, + 'Calendrier'::text AS texte, + '1'::text AS dimensions_date, + ARRAY['jour'::text, ''::text, ''::text, ''::text, ''::text] AS dimensions_date_texte + UNION + SELECT 98::bigint AS oid, + '*CALC'::text AS code, + 'Calcul entre indicateurs'::text AS texte, + ''::text AS dimensions_date, + ARRAY[''::text, ''::text, ''::text, ''::text, ''::text] AS dimensions_date_texte + ORDER BY 1; \ No newline at end of file diff --git a/db/schema2/views/v_rejets_noemie_1.yaml b/db/schema2/views/v_rejets_noemie_1.yaml new file mode 100644 index 0000000..9a18b5d --- /dev/null +++ b/db/schema2/views/v_rejets_noemie_1.yaml @@ -0,0 +1,63 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'REJETNOEMI'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'REJETNOEMI'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'REJETNOEMI'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribue'::character varying AS texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'REJETNOEMI'::text + ) UNION + SELECT 'RJ'::text || t_rejets_noemie.oid::text AS oid, + (t_rejets_noemie.code || ' '::text) || + CASE + WHEN t_rejets_noemie.texte <> t_rejets_noemie.code THEN t_rejets_noemie.texte + ELSE ''::text + END AS texte, + '1'::text AS level, + '9'::text || t_rejets_noemie.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_rejets_noemie + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_risque_1.yaml b/db/schema2/views/v_risque_1.yaml new file mode 100644 index 0000000..a545d15 --- /dev/null +++ b/db/schema2/views/v_risque_1.yaml @@ -0,0 +1,5 @@ +src: | + SELECT t_risque.oid AS risque_id, + t_risque.code AS risque_code, + t_risque.texte AS risque_texte + FROM activite.t_risque; \ No newline at end of file diff --git a/db/schema2/views/v_risque_2.yaml b/db/schema2/views/v_risque_2.yaml new file mode 100644 index 0000000..c4100f9 --- /dev/null +++ b/db/schema2/views/v_risque_2.yaml @@ -0,0 +1,19 @@ +src: | + SELECT 'DT'::text || t_risque.oid::text AS oid, + (t_risque.code || ' - '::text) || t_risque.texte AS texte, + t_risque.code, + '1'::text AS level, + '8'::text || t_risque.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_risque + WHERE t_risque.oid = 0 + UNION + SELECT 'DT'::text || t_risque.oid::text AS oid, + (t_risque.code || ' - '::text) || t_risque.texte AS texte, + t_risque.code, + '1'::text AS level, + '9'::text || t_risque.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_risque + WHERE t_risque.oid <> 0 + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_rubriques_facturation_1.yaml b/db/schema2/views/v_rubriques_facturation_1.yaml new file mode 100644 index 0000000..3d138f2 --- /dev/null +++ b/db/schema2/views/v_rubriques_facturation_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_rubriques_facturation.oid, + (t_rubriques_facturation.code || ' '::text) || t_rubriques_facturation.texte_court AS texte + FROM activite.t_rubriques_facturation + WHERE (t_rubriques_facturation.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'rubrique_c'::text)) + ORDER BY t_rubriques_facturation.code; \ No newline at end of file diff --git a/db/schema2/views/v_rubriques_facturation_2.yaml b/db/schema2/views/v_rubriques_facturation_2.yaml new file mode 100644 index 0000000..33a8c6e --- /dev/null +++ b/db/schema2/views/v_rubriques_facturation_2.yaml @@ -0,0 +1,67 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.liste_alias_combo AS alias, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'RUBRIQUE'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + ''::text AS alias, + t_classes.texte, + '1'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'RUBRIQUE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + (('#LS'::text || t_classes.code) || ':'::text) || t_classes_sections.code AS alias, + t_classes_sections.texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'RUBRIQUE'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + ''::text AS alias, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '4'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'RUBRIQUE'::text + ) UNION + SELECT 'RU'::text || t_rubriques_facturation.oid::text AS oid, + '#RU'::text || t_rubriques_facturation.code AS alias, + (t_rubriques_facturation.code || ' '::text) || t_rubriques_facturation.texte_court AS texte, + '1'::text AS level, + '9'::text || t_rubriques_facturation.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_rubriques_facturation + WHERE (t_rubriques_facturation.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'rubrique_c'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_sejour_effet_tarif_1.yaml b/db/schema2/views/v_sejour_effet_tarif_1.yaml new file mode 100644 index 0000000..e8d0da7 --- /dev/null +++ b/db/schema2/views/v_sejour_effet_tarif_1.yaml @@ -0,0 +1,44 @@ +src: | + SELECT p_sejour_effet_tarif.sejour_id, + p_sejour_effet_tarif.no_sejour, + p_sejour_effet_tarif.ok_ghs_f, + p_sejour_effet_tarif.coefficient_c, + p_sejour_effet_tarif.ok_ghs_c, + p_sejour_effet_tarif.tarif_ghs_c, + p_sejour_effet_tarif.tarif_exh_c, + p_sejour_effet_tarif.tarif_exb_c, + p_sejour_effet_tarif.forfait_exb_c, + p_sejour_effet_tarif.borne_basse_c, + p_sejour_effet_tarif.borne_haute_c, + p_sejour_effet_tarif.tarif_ghs_bb1_c, + p_sejour_effet_tarif.tarif_ghs_bb2_c, + p_sejour_effet_tarif.tarif_ghs_bb3_c, + p_sejour_effet_tarif.coefficient_p, + p_sejour_effet_tarif.ok_ghs_p, + p_sejour_effet_tarif.tarif_ghs_p, + p_sejour_effet_tarif.tarif_exh_p, + p_sejour_effet_tarif.tarif_exb_p, + p_sejour_effet_tarif.forfait_exb_p, + p_sejour_effet_tarif.borne_basse_p, + p_sejour_effet_tarif.borne_haute_p, + p_sejour_effet_tarif.tarif_ghs_bb1_p, + p_sejour_effet_tarif.tarif_ghs_bb2_p, + p_sejour_effet_tarif.tarif_ghs_bb3_p, + p_sejour_effet_tarif.montant_ghs_f, + p_sejour_effet_tarif.montant_exh_f, + p_sejour_effet_tarif.montant_tot_f, + p_sejour_effet_tarif.montant_ghs_c, + p_sejour_effet_tarif.montant_exh_c, + p_sejour_effet_tarif.montant_exb_c, + p_sejour_effet_tarif.montant_ghs_bb1_c, + p_sejour_effet_tarif.montant_ghs_bb2_c, + p_sejour_effet_tarif.montant_ghs_bb3_c, + p_sejour_effet_tarif.montant_tot_c, + p_sejour_effet_tarif.montant_ghs_p, + p_sejour_effet_tarif.montant_exh_p, + p_sejour_effet_tarif.montant_exb_p, + p_sejour_effet_tarif.montant_tot_p, + p_sejour_effet_tarif.montant_ghs_bb1_p, + p_sejour_effet_tarif.montant_ghs_bb2_p, + p_sejour_effet_tarif.montant_ghs_bb3_p + FROM activite.p_sejour_effet_tarif; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_0.yaml b/db/schema2/views/v_sejours_0.yaml new file mode 100644 index 0000000..72c5a61 --- /dev/null +++ b/db/schema2/views/v_sejours_0.yaml @@ -0,0 +1,25 @@ +dep: + - v_ages_1 + - v_codes_postaux_2 + - v_destinations_sortie_1 + - v_modes_entree_1 + - v_modes_sortie_1 + - v_provenances_entree_1 +src: | + SELECT p_sejours.oid + FROM activite.p_sejours + JOIN activite.v_ages_1 ON v_ages_1.age_id::numeric = p_sejours.age + JOIN activite.v_codes_postaux_2 ON v_codes_postaux_2.code_postal_id = p_sejours.code_postal_id + JOIN activite.t_type_sejour ON t_type_sejour.code = p_sejours.type_sejour + JOIN activite.v_modes_entree_1 ON v_modes_entree_1.mode_entree_code = p_sejours.mode_entree + JOIN activite.v_provenances_entree_1 ON v_provenances_entree_1.provenance_code = p_sejours.provenance + JOIN activite.v_modes_sortie_1 ON v_modes_sortie_1.mode_sortie_code = p_sejours.mode_sortie + JOIN activite.v_destinations_sortie_1 ON v_destinations_sortie_1.destination_code = p_sejours.destination + JOIN activite.t_ghs_c ON t_ghs_c.ghs_id = p_sejours.ghs_id + JOIN activite.t_ghm_c ON t_ghm_c.ghm_id = p_sejours.ghm_id + JOIN activite.t_tiers_payant ON t_tiers_payant.oid = p_sejours.tiers_payant_0_id + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON t_lieux_c.oid = p_sejours.lieu_sortie_id + JOIN base.t_modes_traitement ON t_modes_traitement.oid = p_sejours.mode_traitement_id + JOIN activite.t_risque ON t_risque.oid = p_sejours.risque_id + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_1.yaml b/db/schema2/views/v_sejours_1.yaml new file mode 100644 index 0000000..ec14eb4 --- /dev/null +++ b/db/schema2/views/v_sejours_1.yaml @@ -0,0 +1,316 @@ +src: | + SELECT t_finess_c.oid AS finess_id, + p_sejours.finess AS finess_code, + t_finess_c.texte_court AS finess_texte, + t_finess_c.section_id AS finess_section_id, + t_finess_c.section_code AS finess_section_code, + t_finess_c.section_texte AS finess_section_texte, + p_sejours.finess, + p_sejours.provider_id, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_postal_id, + p_sejours.code_prevu, + p_sejours.type_sejour, + p_sejours.est_budget_global, + t_type_sejour.oid AS type_sejour_id, + p_sejours.type_sejour AS type_sejour_code, + t_type_sejour.texte AS type_sejour_texte, + t_type_sejour.section_id AS type_sejour_section_id, + t_type_sejour.section_code AS type_sejour_section_code, + t_type_sejour.section_texte AS type_sejour_section_texte, + t_lieux_c.mode_traitement_id, + t_lieux_c.mode_traitement_code, + t_lieux_c.mode_traitement_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.mode_entree, + p_sejours.provenance, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.code_sorti, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.mode_sortie, + p_sejours.destination, + p_sejours.code_cp_demandee, + p_sejours.ghs_id, + t_ghs_c.ghs_code_text AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + p_sejours.tiers_payant_0_id, + p_sejours.tiers_payant_1_id, + p_sejours.tiers_payant_2_id, + p_sejours.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.medecin_code AS medecin_sejour_code, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_sortie_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_sortie_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id AS lieu_sortie_lit_section_id, + t_lieux_c.lit_section_code AS lieu_sortie_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_sortie_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_sortie_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_sortie_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_sortie_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_sortie_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_sortie_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_sortie_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_sortie_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_sortie_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_sortie_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_sortie_unite_fonctionnelle_section_texte, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 OR p_sejours.gmt_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 OR p_sejours.gmt_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text, '6'::bpchar::text])) AND (p_sejours.ghs_id > 0 OR p_sejours.gmt_id > 0) AND p_sejours.date_groupage < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text, '6'::bpchar::text])) AND ((p_sejours.ghs_id > 0 OR p_sejours.gmt_id > 0) AND p_sejours.date_groupage < '2099-12-31'::date OR p_sejours.date_facture < '2099-12-31'::date) THEN 1 + ELSE 0 + END AS nb_groupe, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text, '6'::bpchar::text])) AND (p_sejours.ghs_id > 0 OR p_sejours.gmt_id > 0) AND p_sejours.date_groupage < '2099-12-31'::date THEN p_sejours.delai_groupage + ELSE 0::numeric + END AS delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text, '6'::bpchar::text]) THEN 0 + WHEN p_sejours.code_sorti <> 1::numeric OR t_lieux_c.type_t2a <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND (p_sejours.ghs_id > 0 OR p_sejours.gmt_id > 0) OR p_sejours.date_facture < '2099-12-31'::date THEN 0 + ELSE 1 + END AS nb_non_groupe, + p_sejours.est_sans_facturation, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0 + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0::numeric + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0 + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + to_char(p_sejours.date_expedition::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_expedition, + p_sejours.date_expedition, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition < '2099-12-31'::date THEN p_sejours.delai_expedition + ELSE 0::numeric + END AS delai_expedition, + to_char(p_sejours.date_solde::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_solde, + p_sejours.date_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_c <> p_sejours.montant_comptabilise_c OR p_sejours.montant_regle_h <> p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 0::numeric + ELSE p_sejours.montant_comptabilise_c + p_sejours.montant_comptabilise_h - p_sejours.montant_regle_c - p_sejours.montant_regle_h + END AS montant_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN p_sejours.delai_solde + ELSE 0::numeric + END AS delai_solde, + p_sejours.montant_facture_c, + p_sejours.montant_facture_0_c, + p_sejours.montant_facture_1_c, + p_sejours.montant_facture_2_c, + p_sejours.montant_facture_22_c, + p_sejours.montant_facture_h, + p_sejours.montant_facture_0_h, + p_sejours.montant_facture_1_h, + p_sejours.montant_facture_2_h, + p_sejours.montant_facture_22_h, + p_sejours.montant_facture_c_actes_inclus_dans_sejour, + p_sejours.montant_facture_h_actes_inclus_dans_sejour, + p_sejours.montant_comptabilise_c, + p_sejours.montant_comptabilise_h, + p_sejours.montant_comptabilise_budget_global_c, + p_sejours.montant_regle_c, + p_sejours.montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text, '9'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND p_sejours.date_entree > '1970-01-01'::date AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.gme_id, + t_gme_c.gme_code, + t_gme_c.gme_texte, + t_gme_c.rgme_id, + t_gme_c.rgme_code, + t_gme_c.rgme_texte, + t_gme_c.gn_id, + t_gme_c.gn_code, + t_gme_c.gn_texte, + t_gme_c.cm_id, + t_gme_c.cm_code, + t_gme_c.cm_texte, + p_sejours.risque_id, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_code, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN 'Séances'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN 'Sévérité J'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN 'Sévérité T'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN 'Sévérité Z'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN 'Sévérité 1'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN 'Sévérité ABCDE'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN 'DS > 2 nuits'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN 'Non PMSI'::text + ELSE NULL::text + END AS severite_cti_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_id, + p_sejours.gmt_id, + t_gmt_c.gmt_code + FROM activite.p_sejours + JOIN activite.t_type_sejour ON p_sejours.type_sejour = t_type_sejour.code + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + JOIN activite.t_gme_c ON p_sejours.gme_id = t_gme_c.gme_id + LEFT JOIN activite.t_finess_c ON p_sejours.finess = t_finess_c.code + LEFT JOIN activite.t_gmt_c ON p_sejours.gmt_id = t_gmt_c.gmt_id + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_2.yaml b/db/schema2/views/v_sejours_2.yaml new file mode 100644 index 0000000..edf9f7f --- /dev/null +++ b/db/schema2/views/v_sejours_2.yaml @@ -0,0 +1,346 @@ +src: | + SELECT p_sejours.finess, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE 'M'::bpchar + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_postal_id, + p_sejours.code_prevu, + p_sejours.type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + WHEN p_sejours.type_sejour = '6'::text THEN 'Bébés sans séjour'::text + WHEN p_sejours.type_sejour = '9'::text THEN 'Fictifs'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + t_lieux_c.mode_traitement_id, + t_lieux_c.mode_traitement_code, + t_lieux_c.mode_traitement_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.code_sorti, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.ghs_id, + to_char(t_ghs_c.ghs_code, 'FM0000'::text) AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.tiers_payant_0_id + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.tiers_payant_1_id + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.tiers_payant_2_id + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.tiers_payant_22_id + ELSE NULL::bigint + END AS tiers_payant_id, + t_tiers_payant.code AS tiers_payant_code, + t_tiers_payant.texte_court AS tiers_payant_texte, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_sortie_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_sortie_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id AS lieu_sortie_lit_section_id, + t_lieux_c.lit_section_code AS lieu_sortie_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_sortie_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_sortie_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_sortie_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_sortie_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_sortie_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_sortie_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_sortie_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_sortie_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_sortie_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_sortie_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_sortie_unite_fonctionnelle_section_texte, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN p_sejours.delai_groupage + ELSE 0::numeric + END AS delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN t_lieux_c.type_t2a <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND p_sejours.ghs_id > 0 THEN 0 + ELSE 1 + END AS nb_non_groupe, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN to_char(p_sejours.date_expedition_0::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN to_char(p_sejours.date_expedition_1::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN to_char(p_sejours.date_expedition_2::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN to_char(p_sejours.date_expedition_22::timestamp with time zone, 'YYYYMM'::text)::numeric + ELSE NULL::numeric + END AS mois_expedition, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.date_expedition_0 + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.date_expedition_1 + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.date_expedition_2 + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.date_expedition_22 + ELSE NULL::date + END AS date_expedition, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid AND p_sejours.date_expedition_0 < '2099-12-31'::date THEN 1 + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND p_sejours.date_expedition_1 < '2099-12-31'::date THEN 1 + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND p_sejours.date_expedition_2 < '2099-12-31'::date THEN 1 + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND p_sejours.date_expedition_22 < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid AND p_sejours.date_expedition_0 < '2099-12-31'::date THEN p_sejours.delai_expedition_0 + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND p_sejours.date_expedition_1 < '2099-12-31'::date THEN p_sejours.delai_expedition_1 + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND p_sejours.date_expedition_2 < '2099-12-31'::date THEN p_sejours.delai_expedition_2 + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND p_sejours.date_expedition_22 < '2099-12-31'::date THEN p_sejours.delai_expedition_22 + ELSE 0::numeric + END AS delai_expedition, + CASE + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND (p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) OR p_sejours.date_facture = '2099-12-31'::date) THEN 1 + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND (p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) OR p_sejours.date_facture = '2099-12-31'::date) THEN 1 + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND (p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) OR p_sejours.date_facture = '2099-12-31'::date) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN to_char(p_sejours.date_solde_0::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN to_char(p_sejours.date_solde_1::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN to_char(p_sejours.date_solde_2::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN to_char(p_sejours.date_solde_22::timestamp with time zone, 'YYYYMM'::text)::numeric + ELSE NULL::numeric + END AS mois_solde, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.date_solde_0 + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.date_solde_1 + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.date_solde_2 + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.date_solde_22 + ELSE NULL::date + END AS date_solde, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_0 < '2099-12-31'::date AND p_sejours.montant_regle_0_c = p_sejours.montant_comptabilise_0_c AND p_sejours.montant_regle_0_h = p_sejours.montant_comptabilise_0_h THEN 1 + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_1 < '2099-12-31'::date AND p_sejours.montant_regle_1_c = p_sejours.montant_comptabilise_1_c AND p_sejours.montant_regle_1_h = p_sejours.montant_comptabilise_1_h THEN 1 + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_2 < '2099-12-31'::date AND p_sejours.montant_regle_2_c = p_sejours.montant_comptabilise_2_c AND p_sejours.montant_regle_2_h = p_sejours.montant_comptabilise_2_h THEN 1 + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_22 < '2099-12-31'::date AND p_sejours.montant_regle_22_c = p_sejours.montant_comptabilise_22_c AND p_sejours.montant_regle_22_h = p_sejours.montant_comptabilise_22_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_0 < '2099-12-31'::date AND p_sejours.montant_regle_0_c = p_sejours.montant_comptabilise_0_c AND p_sejours.montant_regle_0_h = p_sejours.montant_comptabilise_0_h THEN p_sejours.delai_solde_0 + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_1 < '2099-12-31'::date AND p_sejours.montant_regle_1_c = p_sejours.montant_comptabilise_1_c AND p_sejours.montant_regle_1_h = p_sejours.montant_comptabilise_1_h THEN p_sejours.delai_solde_1 + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_2 < '2099-12-31'::date AND p_sejours.montant_regle_2_c = p_sejours.montant_comptabilise_2_c AND p_sejours.montant_regle_2_h = p_sejours.montant_comptabilise_2_h THEN p_sejours.delai_solde_2 + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_22 < '2099-12-31'::date AND p_sejours.montant_regle_22_c = p_sejours.montant_comptabilise_22_c AND p_sejours.montant_regle_22_h = p_sejours.montant_comptabilise_22_h THEN p_sejours.delai_solde_22 + ELSE 0::numeric + END AS delai_solde, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_0_c <> p_sejours.montant_comptabilise_0_c OR p_sejours.montant_regle_0_h <> p_sejours.montant_comptabilise_0_h) THEN 1 + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_1_c <> p_sejours.montant_comptabilise_1_c OR p_sejours.montant_regle_1_h <> p_sejours.montant_comptabilise_1_h) THEN 1 + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_2_c <> p_sejours.montant_comptabilise_2_c OR p_sejours.montant_regle_2_h <> p_sejours.montant_comptabilise_2_h) THEN 1 + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_22_c <> p_sejours.montant_comptabilise_22_c OR p_sejours.montant_regle_22_h <> p_sejours.montant_comptabilise_22_h) THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_0_c <> p_sejours.montant_comptabilise_0_c OR p_sejours.montant_regle_0_h <> p_sejours.montant_comptabilise_0_h) THEN p_sejours.montant_comptabilise_0_c + p_sejours.montant_comptabilise_0_h - p_sejours.montant_regle_0_c - p_sejours.montant_regle_0_h + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_1_c <> p_sejours.montant_comptabilise_1_c OR p_sejours.montant_regle_1_h <> p_sejours.montant_comptabilise_1_h) THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_2_c <> p_sejours.montant_comptabilise_2_c OR p_sejours.montant_regle_2_h <> p_sejours.montant_comptabilise_2_h) THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_22_c <> p_sejours.montant_comptabilise_22_c OR p_sejours.montant_regle_22_h <> p_sejours.montant_comptabilise_22_h) THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_solde, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.montant_facture_0_c + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.montant_facture_1_c + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.montant_facture_2_c + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.montant_facture_22_c + ELSE 0::numeric + END AS montant_facture_c, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.montant_facture_0_h + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.montant_facture_1_h + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.montant_facture_2_h + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.montant_facture_22_h + ELSE 0::numeric + END AS montant_facture_h, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.montant_comptabilise_0_c + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.montant_comptabilise_1_c + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.montant_comptabilise_2_c + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.montant_comptabilise_22_c + ELSE 0::numeric + END AS montant_comptabilise_c, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.montant_comptabilise_0_h + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.montant_comptabilise_1_h + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.montant_comptabilise_2_h + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.montant_comptabilise_22_h + ELSE 0::numeric + END AS montant_comptabilise_h, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.montant_regle_0_c + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.montant_regle_1_c + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.montant_regle_2_c + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.montant_regle_22_c + ELSE 0::numeric + END AS montant_regle_c, + CASE + WHEN p_sejours.tiers_payant_0_id = t_tiers_payant.oid THEN p_sejours.montant_regle_0_h + WHEN p_sejours.tiers_payant_1_id = t_tiers_payant.oid THEN p_sejours.montant_regle_1_h + WHEN p_sejours.tiers_payant_2_id = t_tiers_payant.oid THEN p_sejours.montant_regle_2_h + WHEN p_sejours.tiers_payant_22_id = t_tiers_payant.oid THEN p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie IS NOT NULL THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.risque_id, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_code, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN 'Séances'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN 'Sévérité J'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN 'Sévérité T'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN 'Sévérité Z'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN 'Sévérité 1'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN 'Sévérité ABCDE'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN 'DS > 2 nuits'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN 'Non PMSI'::text + ELSE NULL::text + END AS severite_cti_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_id + FROM activite.p_sejours + JOIN activite.t_tiers_payant ON p_sejours.tiers_payant_0_id = t_tiers_payant.oid AND p_sejours.tiers_payant_0_id > 0 OR p_sejours.tiers_payant_1_id = t_tiers_payant.oid AND p_sejours.tiers_payant_1_id > 0 OR p_sejours.tiers_payant_2_id = t_tiers_payant.oid AND p_sejours.tiers_payant_2_id > 0 OR p_sejours.tiers_payant_22_id = t_tiers_payant.oid AND p_sejours.tiers_payant_22_id > 0 + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_3.yaml b/db/schema2/views/v_sejours_3.yaml new file mode 100644 index 0000000..ddc8685 --- /dev/null +++ b/db/schema2/views/v_sejours_3.yaml @@ -0,0 +1,326 @@ +src: | + SELECT p_sejours.finess, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE 'M'::bpchar + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_prevu, + p_sejours.type_sejour, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + WHEN p_sejours.type_sejour = '6'::text THEN 'Bébés sans séjour'::text + WHEN p_sejours.type_sejour = '9'::text THEN 'Fictifs'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + t_lieux_c.mode_traitement_id, + t_lieux_c.mode_traitement_code, + t_lieux_c.mode_traitement_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.code_sorti, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.ghs_id, + t_ghs_c.ghs_code_text AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN 0 + WHEN t_types_tiers_payant.code = '1'::bpchar THEN 1 + WHEN t_types_tiers_payant.code = '2'::bpchar THEN 2 + ELSE 0 + END AS type_tiers_payant_id, + t_types_tiers_payant.code AS type_tiers_payant_code, + t_types_tiers_payant.texte_court AS type_tiers_payant_texte, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_sortie_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_sortie_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id AS lieu_sortie_lit_section_id, + t_lieux_c.lit_section_code AS lieu_sortie_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_sortie_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_sortie_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_sortie_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_sortie_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_sortie_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_sortie_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_sortie_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_sortie_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_sortie_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_sortie_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_sortie_unite_fonctionnelle_section_texte, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN p_sejours.delai_groupage + ELSE 0::numeric + END AS delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN t_lieux_c.type_t2a <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND p_sejours.ghs_id > 0 THEN 0 + ELSE 1 + END AS nb_non_groupe, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN to_char(p_sejours.date_expedition_0::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN t_types_tiers_payant.code = '1'::bpchar THEN to_char(p_sejours.date_expedition_1::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN t_types_tiers_payant.code = '2'::bpchar THEN to_char(p_sejours.date_expedition_2::timestamp with time zone, 'YYYYMM'::text)::numeric + ELSE NULL::numeric + END AS mois_expedition, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.date_expedition_0 + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.date_expedition_1 + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.date_expedition_2 + ELSE NULL::date + END AS date_expedition, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar AND p_sejours.date_expedition_0 < '2099-12-31'::date THEN 1 + WHEN t_types_tiers_payant.code = '1'::bpchar AND p_sejours.date_expedition_1 < '2099-12-31'::date THEN 1 + WHEN t_types_tiers_payant.code = '2'::bpchar AND p_sejours.date_expedition_2 < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar AND p_sejours.date_expedition_0 < '2099-12-31'::date THEN p_sejours.delai_expedition_0 + WHEN t_types_tiers_payant.code = '1'::bpchar AND p_sejours.date_expedition_1 < '2099-12-31'::date THEN p_sejours.delai_expedition_1 + WHEN t_types_tiers_payant.code = '2'::bpchar AND p_sejours.date_expedition_2 < '2099-12-31'::date THEN p_sejours.delai_expedition_2 + ELSE 0::numeric + END AS delai_expedition, + CASE + WHEN t_types_tiers_payant.code = '1'::bpchar AND (p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) OR p_sejours.date_facture = '2099-12-31'::date) THEN 1 + WHEN t_types_tiers_payant.code = '2'::bpchar AND (p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) OR p_sejours.date_facture = '2099-12-31'::date) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN t_types_tiers_payant.code = '1'::bpchar AND p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + WHEN t_types_tiers_payant.code = '2'::bpchar AND p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN to_char(p_sejours.date_solde_0::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN t_types_tiers_payant.code = '1'::bpchar THEN to_char(p_sejours.date_solde_1::timestamp with time zone, 'YYYYMM'::text)::numeric + WHEN t_types_tiers_payant.code = '2'::bpchar THEN to_char(p_sejours.date_solde_2::timestamp with time zone, 'YYYYMM'::text)::numeric + ELSE NULL::numeric + END AS mois_solde, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.date_solde_0 + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.date_solde_1 + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.date_solde_2 + ELSE NULL::date + END AS date_solde, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_0 < '2099-12-31'::date AND p_sejours.montant_regle_0_c = p_sejours.montant_comptabilise_0_c AND p_sejours.montant_regle_0_h = p_sejours.montant_comptabilise_0_h THEN 1 + WHEN t_types_tiers_payant.code = '1'::bpchar AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_1 < '2099-12-31'::date AND p_sejours.montant_regle_1_c = p_sejours.montant_comptabilise_1_c AND p_sejours.montant_regle_1_h = p_sejours.montant_comptabilise_1_h THEN 1 + WHEN t_types_tiers_payant.code = '2'::bpchar AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_2 < '2099-12-31'::date AND p_sejours.montant_regle_2_c = p_sejours.montant_comptabilise_2_c AND p_sejours.montant_regle_2_h = p_sejours.montant_comptabilise_2_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_0 < '2099-12-31'::date AND p_sejours.montant_regle_0_c = p_sejours.montant_comptabilise_0_c AND p_sejours.montant_regle_0_h = p_sejours.montant_comptabilise_0_h THEN p_sejours.delai_solde_0 + WHEN t_types_tiers_payant.code = '1'::bpchar AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_1 < '2099-12-31'::date AND p_sejours.montant_regle_1_c = p_sejours.montant_comptabilise_1_c AND p_sejours.montant_regle_1_h = p_sejours.montant_comptabilise_1_h THEN p_sejours.delai_solde_1 + WHEN t_types_tiers_payant.code = '2'::bpchar AND p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde_2 < '2099-12-31'::date AND p_sejours.montant_regle_2_c = p_sejours.montant_comptabilise_2_c AND p_sejours.montant_regle_2_h = p_sejours.montant_comptabilise_2_h THEN p_sejours.delai_solde_2 + ELSE 0::numeric + END AS delai_solde, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_0_c <> p_sejours.montant_comptabilise_0_c OR p_sejours.montant_regle_0_h <> p_sejours.montant_comptabilise_0_h) THEN 1 + WHEN t_types_tiers_payant.code = '1'::bpchar AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_1_c <> p_sejours.montant_comptabilise_1_c OR p_sejours.montant_regle_1_h <> p_sejours.montant_comptabilise_1_h) THEN 1 + WHEN t_types_tiers_payant.code = '2'::bpchar AND (p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_2_c <> p_sejours.montant_comptabilise_2_c OR p_sejours.montant_regle_2_h <> p_sejours.montant_comptabilise_2_h) THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.montant_comptabilise_0_c + p_sejours.montant_comptabilise_0_h - p_sejours.montant_regle_0_c - p_sejours.montant_regle_0_h + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_solde, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.montant_facture_0_c + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.montant_facture_1_c + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.montant_facture_2_c + p_sejours.montant_facture_22_c + ELSE 0::numeric + END AS montant_facture_c, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.montant_facture_0_h + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.montant_facture_1_h + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.montant_facture_2_h + p_sejours.montant_facture_22_h + ELSE 0::numeric + END AS montant_facture_h, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.montant_comptabilise_0_c + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.montant_comptabilise_1_c + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_22_c + ELSE 0::numeric + END AS montant_comptabilise_c, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.montant_comptabilise_0_h + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.montant_comptabilise_1_h + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.montant_comptabilise_2_h + p_sejours.montant_comptabilise_22_h + ELSE 0::numeric + END AS montant_comptabilise_h, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.montant_regle_0_c + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.montant_regle_1_c + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.montant_regle_2_c + p_sejours.montant_regle_22_c + ELSE 0::numeric + END AS montant_regle_c, + CASE + WHEN t_types_tiers_payant.code = '0'::bpchar THEN p_sejours.montant_regle_0_h + WHEN t_types_tiers_payant.code = '1'::bpchar THEN p_sejours.montant_regle_1_h + WHEN t_types_tiers_payant.code = '2'::bpchar THEN p_sejours.montant_regle_2_h + p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie IS NOT NULL THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.risque_id, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_code, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN 'Séances'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN 'Sévérité J'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN 'Sévérité T'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN 'Sévérité Z'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN 'Sévérité 1'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN 'Sévérité ABCDE'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN 'DS > 2 nuits'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN 'Non PMSI'::text + ELSE NULL::text + END AS severite_cti_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_id + FROM activite.p_sejours + JOIN activite.t_types_tiers_payant ON t_types_tiers_payant.code = '0'::bpchar AND p_sejours.tiers_payant_0_id > 0 OR t_types_tiers_payant.code = '1'::bpchar AND p_sejours.tiers_payant_1_id > 0 OR t_types_tiers_payant.code = '2'::bpchar AND (p_sejours.tiers_payant_2_id > 0 OR p_sejours.tiers_payant_22_id > 0) + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_4.yaml b/db/schema2/views/v_sejours_4.yaml new file mode 100644 index 0000000..2cc1b7d --- /dev/null +++ b/db/schema2/views/v_sejours_4.yaml @@ -0,0 +1,451 @@ +src: | + SELECT p_sejours.finess, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_prevu, + p_sejours.type_sejour, + p_sejours.type_sejour AS type_sejour_code, + p_sejours.type_sejour::bigint AS type_sejour_id, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisés'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + WHEN p_sejours.type_sejour = '6'::text THEN 'Bébés sans séjour'::text + WHEN p_sejours.type_sejour = '9'::text THEN 'Fictifs'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + t_lieux_c.mode_traitement_id, + t_lieux_c.mode_traitement_code, + t_lieux_c.mode_traitement_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.code_sorti, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.code_cp_demandee, + p_sejours.ghs_id, + t_ghs_c.ghs_code_text AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + p_sejours.tiers_payant_0_id, + t_tiers_payant_0.code AS tiers_payant_0_code, + t_tiers_payant_0.texte_court AS tiers_payant_0_texte, + t_types_tiers_payant_0.code AS type_tiers_payant_0_code, + t_types_tiers_payant_0.texte AS type_tiers_payant_0_texte, + p_sejours.tiers_payant_1_id, + t_tiers_payant_1.code AS tiers_payant_1_code, + t_tiers_payant_1.texte_court AS tiers_payant_1_texte, + t_types_tiers_payant_1.code AS type_tiers_payant_1_code, + t_types_tiers_payant_1.texte AS type_tiers_payant_1_texte, + p_sejours.tiers_payant_2_id, + t_tiers_payant_2.code AS tiers_payant_2_code, + t_tiers_payant_2.texte_court AS tiers_payant_2_texte, + t_types_tiers_payant_2.code AS type_tiers_payant_2_code, + t_types_tiers_payant_2.texte AS type_tiers_payant_2_texte, + p_sejours.tiers_payant_22_id, + t_tiers_payant_22.code AS tiers_payant_22_code, + t_tiers_payant_22.texte_court AS tiers_payant_22_texte, + t_types_tiers_payant_22.code AS type_tiers_payant_22_code, + t_types_tiers_payant_22.texte AS type_tiers_payant_22_texte, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.medecin_code AS medecin_sejour_code, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_sortie_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_sortie_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id AS lieu_sortie_lit_section_id, + t_lieux_c.lit_section_code AS lieu_sortie_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_sortie_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_sortie_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_sortie_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_sortie_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_sortie_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_sortie_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_sortie_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_sortie_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_sortie_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_sortie_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_sortie_unite_fonctionnelle_section_texte, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN p_sejours.delai_groupage + ELSE 0::numeric + END AS delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN t_lieux_c.type_t2a <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND p_sejours.ghs_id > 0 THEN 0 + ELSE 1 + END AS nb_non_groupe, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + to_char(p_sejours.date_expedition::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_expedition, + p_sejours.date_expedition, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c THEN 1 + ELSE 0 + END AS nb_non_expedie_c, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h THEN 1 + ELSE 0 + END AS nb_non_expedie_h, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c - p_sejours.montant_regle_1_c + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c - p_sejours.montant_regle_2_c + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c - p_sejours.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_c, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_h, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition < '2099-12-31'::date THEN p_sejours.delai_expedition + ELSE 0::numeric + END AS delai_expedition, + p_sejours.date_expedition_0, + 0 AS nb_delai_expedition_0, + 0 AS nb_non_expedie_0, + 0 AS nb_non_expedie_0_c, + 0 AS nb_non_expedie_0_h, + 0 AS montant_non_expedie_0, + 0 AS montant_non_expedie_0_c, + 0 AS montant_non_expedie_0_h, + 0 AS delai_expedition_0, + p_sejours.date_expedition_1, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition_1 < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition_1, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN 1 + ELSE 0 + END AS nb_non_expedie_1, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c THEN 1 + ELSE 0 + END AS nb_non_expedie_1_c, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h THEN 1 + ELSE 0 + END AS nb_non_expedie_1_h, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c - p_sejours.montant_regle_1_c + ELSE 0::numeric + END AS montant_non_expedie_1_c, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_h + ELSE 0::numeric + END AS montant_non_expedie_1_h, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition_1 < '2099-12-31'::date THEN p_sejours.delai_expedition_1 + ELSE 0::numeric + END AS delai_expedition_1, + p_sejours.date_expedition_2, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition_2 < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition_2, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN 1 + ELSE 0 + END AS nb_non_expedie_2, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c THEN 1 + ELSE 0 + END AS nb_non_expedie_2_c, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h THEN 1 + ELSE 0 + END AS nb_non_expedie_2_h, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie_2, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c - p_sejours.montant_regle_2_c + ELSE 0::numeric + END AS montant_non_expedie_2_c, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_h + ELSE 0::numeric + END AS montant_non_expedie_2_h, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition_2 < '2099-12-31'::date THEN p_sejours.delai_expedition_2 + ELSE 0::numeric + END AS delai_expedition_2, + p_sejours.date_expedition_22, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition_22 < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition_22, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie_22, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c THEN 1 + ELSE 0 + END AS nb_non_expedie_22_c, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h THEN 1 + ELSE 0 + END AS nb_non_expedie_22_h, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_22, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c - p_sejours.montant_regle_22_c + ELSE 0::numeric + END AS montant_non_expedie_22_c, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie_22_h, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition_22 < '2099-12-31'::date THEN p_sejours.delai_expedition_22 + ELSE 0::numeric + END AS delai_expedition_22, + to_char(p_sejours.date_solde::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_solde, + p_sejours.date_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_c <> p_sejours.montant_comptabilise_c OR p_sejours.montant_regle_h <> p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 0::numeric + ELSE p_sejours.montant_comptabilise_c + p_sejours.montant_comptabilise_h - p_sejours.montant_regle_c - p_sejours.montant_regle_h + END AS montant_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN p_sejours.delai_solde + ELSE 0::numeric + END AS delai_solde, + p_sejours.montant_facture_c, + p_sejours.montant_facture_h, + p_sejours.montant_comptabilise_c, + p_sejours.montant_comptabilise_h, + p_sejours.montant_regle_c, + p_sejours.montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie IS NOT NULL THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.risque_id, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_code, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN 'Séances'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN 'Sévérité J'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN 'Sévérité T'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN 'Sévérité Z'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN 'Sévérité 1'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN 'Sévérité ABCDE'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN 'DS > 2 nuits'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN 'Non PMSI'::text + ELSE NULL::text + END AS severite_cti_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_id + FROM activite.p_sejours + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + JOIN activite.t_tiers_payant t_tiers_payant_0 ON p_sejours.tiers_payant_0_id = t_tiers_payant_0.oid + JOIN activite.t_tiers_payant t_tiers_payant_1 ON p_sejours.tiers_payant_1_id = t_tiers_payant_1.oid + JOIN activite.t_tiers_payant t_tiers_payant_2 ON p_sejours.tiers_payant_2_id = t_tiers_payant_2.oid + JOIN activite.t_tiers_payant t_tiers_payant_22 ON p_sejours.tiers_payant_22_id = t_tiers_payant_22.oid + JOIN activite.t_types_tiers_payant t_types_tiers_payant_0 ON t_tiers_payant_0.type_tiers_payant = t_types_tiers_payant_0.code + JOIN activite.t_types_tiers_payant t_types_tiers_payant_1 ON t_tiers_payant_1.type_tiers_payant = t_types_tiers_payant_1.code + JOIN activite.t_types_tiers_payant t_types_tiers_payant_2 ON t_tiers_payant_2.type_tiers_payant = t_types_tiers_payant_2.code + JOIN activite.t_types_tiers_payant t_types_tiers_payant_22 ON t_tiers_payant_22.type_tiers_payant = t_types_tiers_payant_22.code + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_5.yaml b/db/schema2/views/v_sejours_5.yaml new file mode 100644 index 0000000..1640a51 --- /dev/null +++ b/db/schema2/views/v_sejours_5.yaml @@ -0,0 +1,212 @@ +src: | + SELECT p_sejours.finess, + p_sejours.provider_id, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_prevu, + p_sejours.type_sejour, + p_sejours.type_sejour AS type_sejour_code, + p_sejours.est_budget_global, + p_sejours.type_sejour::bigint AS type_sejour_id, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisé'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + WHEN p_sejours.type_sejour = '6'::text THEN 'Bébés sans séjour'::text + WHEN p_sejours.type_sejour = '9'::text THEN 'Fictifs'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + t_lieux_c.mode_traitement_id, + t_lieux_c.mode_traitement_code, + t_lieux_c.mode_traitement_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.code_sorti, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.code_cp_demandee, + p_sejours.ghs_id, + p_sejours.tiers_payant_0_id, + p_sejours.tiers_payant_1_id, + p_sejours.tiers_payant_2_id, + p_sejours.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.medecin_code AS medecin_sejour_code, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_sortie_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_sortie_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id AS lieu_sortie_lit_section_id, + t_lieux_c.lit_section_code AS lieu_sortie_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_sortie_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_sortie_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_sortie_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_sortie_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_sortie_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_sortie_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_sortie_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_sortie_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_sortie_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_sortie_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_sortie_unite_fonctionnelle_section_texte, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN p_sejours.delai_groupage + ELSE 0::numeric + END AS delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.code_sorti <> 1::numeric OR t_lieux_c.type_t2a <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND p_sejours.ghs_id > 0 THEN 0 + ELSE 1 + END AS nb_non_groupe, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + to_char(p_sejours.date_expedition::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_expedition, + p_sejours.date_expedition, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition < '2099-12-31'::date THEN p_sejours.delai_expedition + ELSE 0::numeric + END AS delai_expedition, + to_char(p_sejours.date_solde::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_solde, + p_sejours.date_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_c <> p_sejours.montant_comptabilise_c OR p_sejours.montant_regle_h <> p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 0::numeric + ELSE p_sejours.montant_comptabilise_c + p_sejours.montant_comptabilise_h - p_sejours.montant_regle_c - p_sejours.montant_regle_h + END AS montant_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN p_sejours.delai_solde + ELSE 0::numeric + END AS delai_solde, + p_sejours.montant_facture_c, + p_sejours.montant_facture_0_c, + p_sejours.montant_facture_1_c, + p_sejours.montant_facture_2_c, + p_sejours.montant_facture_22_c, + p_sejours.montant_facture_h, + p_sejours.montant_facture_0_h, + p_sejours.montant_facture_1_h, + p_sejours.montant_facture_2_h, + p_sejours.montant_facture_22_h, + p_sejours.montant_facture_c_actes_inclus_dans_sejour, + p_sejours.montant_facture_h_actes_inclus_dans_sejour, + p_sejours.montant_comptabilise_c, + p_sejours.montant_comptabilise_h, + p_sejours.montant_comptabilise_budget_global_c, + p_sejours.montant_regle_c, + p_sejours.montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie IS NOT NULL THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.risque_id + FROM activite.p_sejours + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_6.yaml b/db/schema2/views/v_sejours_6.yaml new file mode 100644 index 0000000..627752a --- /dev/null +++ b/db/schema2/views/v_sejours_6.yaml @@ -0,0 +1,285 @@ +src: | + SELECT p_sejours.finess, + p_sejours.provider_id, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_prevu, + p_sejours.type_sejour, + p_sejours.type_sejour AS type_sejour_code, + p_sejours.est_budget_global, + p_sejours.type_sejour::bigint AS type_sejour_id, + CASE + WHEN p_sejours.type_sejour = '1'::text THEN 'Hospitalisé'::text + WHEN p_sejours.type_sejour = '2'::text THEN 'Ambulatoires'::text + WHEN p_sejours.type_sejour = '3'::text THEN 'Externes'::text + WHEN p_sejours.type_sejour = '4'::text THEN 'Long séjours'::text + WHEN p_sejours.type_sejour = '5'::text THEN 'Séances'::text + WHEN p_sejours.type_sejour = '6'::text THEN 'Bébés sans séjour'::text + WHEN p_sejours.type_sejour = '9'::text THEN 'Fictifs'::text + ELSE p_sejours.type_sejour + END AS type_sejour_texte, + t_lieux_c.mode_traitement_id, + t_lieux_c.mode_traitement_code, + t_lieux_c.mode_traitement_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.code_sorti, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.code_cp_demandee, + p_sejours.ghs_id, + t_ghs_c.ghs_code_text AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + p_sejours.tiers_payant_0_id, + p_sejours.tiers_payant_1_id, + p_sejours.tiers_payant_2_id, + p_sejours.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.medecin_code AS medecin_sejour_code, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_sortie_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_sortie_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id AS lieu_sortie_lit_section_id, + t_lieux_c.lit_section_code AS lieu_sortie_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_sortie_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_sortie_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_sortie_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_sortie_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_sortie_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_sortie_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_sortie_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_sortie_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_sortie_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_sortie_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_sortie_unite_fonctionnelle_section_texte, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN p_sejours.delai_groupage + ELSE 0::numeric + END AS delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.code_sorti <> 1::numeric OR t_lieux_c.type_t2a <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND p_sejours.ghs_id > 0 THEN 0 + ELSE 1 + END AS nb_non_groupe, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + to_char(p_sejours.date_expedition::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_expedition, + p_sejours.date_expedition, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition < '2099-12-31'::date THEN p_sejours.delai_expedition + ELSE 0::numeric + END AS delai_expedition, + to_char(p_sejours.date_solde::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_solde, + p_sejours.date_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_c <> p_sejours.montant_comptabilise_c OR p_sejours.montant_regle_h <> p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 0::numeric + ELSE p_sejours.montant_comptabilise_c + p_sejours.montant_comptabilise_h - p_sejours.montant_regle_c - p_sejours.montant_regle_h + END AS montant_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN p_sejours.delai_solde + ELSE 0::numeric + END AS delai_solde, + p_sejours.montant_facture_c, + p_sejours.montant_facture_0_c, + p_sejours.montant_facture_1_c, + p_sejours.montant_facture_2_c, + p_sejours.montant_facture_22_c, + p_sejours.montant_facture_h, + p_sejours.montant_facture_0_h, + p_sejours.montant_facture_1_h, + p_sejours.montant_facture_2_h, + p_sejours.montant_facture_22_h, + p_sejours.montant_facture_c_actes_inclus_dans_sejour, + p_sejours.montant_facture_h_actes_inclus_dans_sejour, + p_sejours.montant_comptabilise_c, + p_sejours.montant_comptabilise_h, + p_sejours.montant_comptabilise_budget_global_c, + p_sejours.montant_regle_c, + p_sejours.montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie IS NOT NULL THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.risque_id, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_code, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN 'Séances'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN 'Sévérité J'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN 'Sévérité T'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN 'Sévérité Z'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN 'Sévérité 1'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN 'Sévérité ABCDE'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN 'DS > 2 nuits'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN 'Non PMSI'::text + ELSE NULL::text + END AS severite_cti_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_id + FROM activite.p_sejours + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_7.yaml b/db/schema2/views/v_sejours_7.yaml new file mode 100644 index 0000000..ada2e21 --- /dev/null +++ b/db/schema2/views/v_sejours_7.yaml @@ -0,0 +1,299 @@ +src: | + SELECT t_finess_c.oid AS finess_id, + p_sejours.finess AS finess_code, + t_finess_c.texte_court AS finess_texte, + t_finess_c.section_id AS finess_section_id, + t_finess_c.section_code AS finess_section_code, + t_finess_c.section_texte AS finess_section_texte, + p_sejours.finess, + p_sejours.provider_id, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_postal_id, + p_sejours.code_prevu, + p_sejours.type_sejour, + p_sejours.est_budget_global, + t_type_sejour.oid AS type_sejour_id, + p_sejours.type_sejour AS type_sejour_code, + t_type_sejour.texte AS type_sejour_texte, + t_type_sejour.section_id AS type_sejour_section_id, + t_type_sejour.section_code AS type_sejour_section_code, + t_type_sejour.section_texte AS type_sejour_section_texte, + t_lieux_c.mode_traitement_id, + t_lieux_c.mode_traitement_code, + t_lieux_c.mode_traitement_texte, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.mode_entree, + p_sejours.provenance, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.code_sorti, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.mode_sortie, + p_sejours.destination, + p_sejours.code_cp_demandee, + p_sejours.ghs_id, + t_ghs_c.ghs_code_text AS ghs_code, + t_ghs_c.ghs_texte, + p_sejours.ghm_id, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte, + p_sejours.tiers_payant_0_id, + p_sejours.tiers_payant_1_id, + p_sejours.tiers_payant_2_id, + p_sejours.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_code AS medecin_sejour_code, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte, + p_sejours.lieu_sortie_id, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_sortie_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_sortie_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id AS lieu_sortie_lit_section_id, + t_lieux_c.lit_section_code AS lieu_sortie_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_sortie_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_sortie_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_sortie_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_sortie_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_sortie_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_sortie_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_sortie_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_sortie_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_sortie_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_sortie_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_sortie_unite_fonctionnelle_section_texte, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_groupage, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND (p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date OR p_sejours.date_facture < '2099-12-31'::date) THEN 1 + ELSE 0 + END AS nb_groupe, + CASE + WHEN t_lieux_c.type_t2a = '1'::bpchar AND (p_sejours.type_sejour = ANY (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text])) AND p_sejours.ghs_id > 0 AND p_sejours.date_groupage < '2099-12-31'::date THEN p_sejours.delai_groupage + ELSE 0::numeric + END AS delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.code_sorti <> 1::numeric OR t_lieux_c.type_t2a <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND p_sejours.ghs_id > 0 OR p_sejours.date_facture < '2099-12-31'::date THEN 0 + ELSE 1 + END AS nb_non_groupe, + p_sejours.est_sans_facturation, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0 + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0::numeric + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0 + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + to_char(p_sejours.date_expedition::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_expedition, + p_sejours.date_expedition, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition < '2099-12-31'::date THEN p_sejours.delai_expedition + ELSE 0::numeric + END AS delai_expedition, + to_char(p_sejours.date_solde::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_solde, + p_sejours.date_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_c <> p_sejours.montant_comptabilise_c OR p_sejours.montant_regle_h <> p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 0::numeric + ELSE p_sejours.montant_comptabilise_c + p_sejours.montant_comptabilise_h - p_sejours.montant_regle_c - p_sejours.montant_regle_h + END AS montant_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN p_sejours.delai_solde + ELSE 0::numeric + END AS delai_solde, + p_sejours.montant_facture_c, + p_sejours.montant_facture_0_c, + p_sejours.montant_facture_1_c, + p_sejours.montant_facture_2_c, + p_sejours.montant_facture_22_c, + p_sejours.montant_facture_h, + p_sejours.montant_facture_0_h, + p_sejours.montant_facture_1_h, + p_sejours.montant_facture_2_h, + p_sejours.montant_facture_22_h, + p_sejours.montant_facture_c_actes_inclus_dans_sejour, + p_sejours.montant_facture_h_actes_inclus_dans_sejour, + p_sejours.montant_comptabilise_c, + p_sejours.montant_comptabilise_h, + p_sejours.montant_comptabilise_budget_global_c, + p_sejours.montant_regle_c, + p_sejours.montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie IS NOT NULL THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.risque_id, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_code, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN 'Séances'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN 'Sévérité J'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN 'Sévérité T'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN 'Sévérité Z'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN 'Sévérité 1'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN 'Sévérité ABCDE'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN 'DS > 2 nuits'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN 'Non PMSI'::text + ELSE NULL::text + END AS severite_cti_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_id + FROM activite.p_sejours + JOIN activite.t_type_sejour ON p_sejours.type_sejour = t_type_sejour.code + JOIN activite.t_medecins_administratifs_c ON p_sejours.medecin_sejour_id = t_medecins_administratifs_c.oid + JOIN activite.t_lieux_c ON p_sejours.lieu_sortie_id = t_lieux_c.oid + JOIN activite.t_ghs_c ON p_sejours.ghs_id = t_ghs_c.ghs_id + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + LEFT JOIN activite.t_finess_c ON p_sejours.finess = t_finess_c.code + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_8.yaml b/db/schema2/views/v_sejours_8.yaml new file mode 100644 index 0000000..119d224 --- /dev/null +++ b/db/schema2/views/v_sejours_8.yaml @@ -0,0 +1,208 @@ +src: | + SELECT p_sejours.finess, + p_sejours.provider_id, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_postal_id, + p_sejours.code_prevu, + p_sejours.type_sejour, + p_sejours.forme_activite_id, + p_sejours.filiere_soin_principale_id, + p_sejours.est_budget_global, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.mode_entree, + p_sejours.provenance, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.code_sorti, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.mode_sortie, + p_sejours.destination, + p_sejours.code_cp_demandee, + p_sejours.ghs_id, + p_sejours.ghm_id, + p_sejours.tiers_payant_0_id, + p_sejours.tiers_payant_1_id, + p_sejours.tiers_payant_2_id, + p_sejours.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + p_sejours.lieu_sortie_id, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 OR p_sejours.gme_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 OR p_sejours.gme_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + p_sejours.delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text, '6'::bpchar::text]) THEN 0 + WHEN p_sejours.code_sorti <> 1::numeric OR p_sejours.type_pmsi <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND p_sejours.ghs_id > 0 OR p_sejours.date_facture < '2099-12-31'::date THEN 0 + ELSE 1 + END AS nb_non_groupe, + p_sejours.est_sans_facturation, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0 + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0::numeric + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0 + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + to_char(p_sejours.date_expedition::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_expedition, + p_sejours.date_expedition, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition < '2099-12-31'::date THEN p_sejours.delai_expedition + ELSE 0::numeric + END AS delai_expedition, + to_char(p_sejours.date_solde::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_solde, + p_sejours.date_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_c <> p_sejours.montant_comptabilise_c OR p_sejours.montant_regle_h <> p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 0::numeric + ELSE p_sejours.montant_comptabilise_c + p_sejours.montant_comptabilise_h - p_sejours.montant_regle_c - p_sejours.montant_regle_h + END AS montant_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN p_sejours.delai_solde + ELSE 0::numeric + END AS delai_solde, + p_sejours.montant_facture_c, + p_sejours.montant_facture_0_c, + p_sejours.montant_facture_1_c, + p_sejours.montant_facture_2_c, + p_sejours.montant_facture_22_c, + p_sejours.montant_facture_h, + p_sejours.montant_facture_0_h, + p_sejours.montant_facture_1_h, + p_sejours.montant_facture_2_h, + p_sejours.montant_facture_22_h, + p_sejours.montant_facture_c_actes_inclus_dans_sejour, + p_sejours.montant_facture_h_actes_inclus_dans_sejour, + p_sejours.montant_comptabilise_c, + p_sejours.montant_comptabilise_h, + p_sejours.montant_comptabilise_budget_global_c, + p_sejours.montant_regle_c, + p_sejours.montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND p_sejours.date_entree > '1970-01-01'::date AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.gme_id, + p_sejours.risque_id, + t_etat_sejour.oid AS etat_sejour_id, + t_etat_sejour.code AS etat_sejour_code, + t_etat_sejour.texte AS etat_sejour_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_code, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN 'Séances'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN 'Sévérité J'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN 'Sévérité T'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN 'Sévérité Z'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN 'Sévérité 1'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN 'Sévérité ABCDE'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN 'DS > 2 nuits'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN 'Non PMSI'::text + ELSE NULL::text + END AS severite_cti_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_id, + p_sejours.medecin_traitant_id, + p_sejours.traitement_epmsi_id, + p_sejours.ghmgme_id, + p_sejours.type_hospi_pmsi_id, + p_sejours.gmt_id, + t_gmt_c.gmt_code + FROM activite.p_sejours + LEFT JOIN activite.t_etat_sejour ON p_sejours.etat_sejour = t_etat_sejour.code + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + LEFT JOIN activite.t_gmt_c ON p_sejours.gmt_id = t_gmt_c.gmt_id + WHERE p_sejours.etat = ''::bpchar; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_annules.yaml b/db/schema2/views/v_sejours_annules.yaml new file mode 100644 index 0000000..9a5b148 --- /dev/null +++ b/db/schema2/views/v_sejours_annules.yaml @@ -0,0 +1,210 @@ +src: | + SELECT p_sejours.finess, + p_sejours.provider_id, + p_sejours.no_sejour, + p_sejours.oid AS sejour_id, + p_sejours.no_patient, + p_sejours.code_sexe, + CASE + WHEN p_sejours.code_sexe = '1'::bpchar THEN 'M'::bpchar + WHEN p_sejours.code_sexe = '2'::bpchar THEN 'F'::bpchar + ELSE p_sejours.code_sexe + END AS sexe_texte_court, + p_sejours.age, + p_sejours.code_postal_id, + p_sejours.code_prevu, + p_sejours.type_sejour, + p_sejours.forme_activite_id, + p_sejours.filiere_soin_principale_id, + p_sejours.est_budget_global, + to_char(p_sejours.date_entree::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_entree, + p_sejours.date_entree, + p_sejours.heure_entree, + p_sejours.mode_entree, + p_sejours.provenance, + to_char(p_sejours.date_sortie::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_sortie, + p_sejours.code_sorti, + p_sejours.date_sortie, + p_sejours.heure_sortie, + p_sejours.mode_sortie, + p_sejours.destination, + p_sejours.code_cp_demandee, + p_sejours.ghs_id, + p_sejours.ghm_id, + p_sejours.tiers_payant_0_id, + p_sejours.tiers_payant_1_id, + p_sejours.tiers_payant_2_id, + p_sejours.tiers_payant_22_id, + p_sejours.medecin_sejour_id AS medecin_adm_sejour_id, + p_sejours.lieu_sortie_id, + to_char( + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_groupage, + CASE + WHEN p_sejours.ghs_id > 0 THEN p_sejours.date_groupage + ELSE '2099-12-31'::date + END AS date_groupage, + p_sejours.delai_groupage, + CASE + WHEN p_sejours.type_sejour <> ALL (ARRAY['1'::bpchar::text, '2'::bpchar::text, '5'::bpchar::text, '6'::bpchar::text]) THEN 0 + WHEN p_sejours.code_sorti <> 1::numeric OR p_sejours.type_pmsi <> '1'::bpchar OR p_sejours.date_groupage < '2099-12-31'::date AND p_sejours.ghs_id > 0 OR p_sejours.date_facture < '2099-12-31'::date THEN 0 + ELSE 1 + END AS nb_non_groupe, + p_sejours.est_sans_facturation, + to_char(p_sejours.date_facture::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_facture, + p_sejours.date_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0 + WHEN p_sejours.date_facture < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0::numeric + WHEN p_sejours.date_facture < '2099-12-31'::date THEN p_sejours.delai_facture + ELSE 0::numeric + END AS delai_facture, + CASE + WHEN p_sejours.est_sans_facturation = '1'::bpchar THEN 0 + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_non_facture, + to_char(p_sejours.date_expedition::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_expedition, + p_sejours.date_expedition, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_expedition < '2099-12-31'::date THEN 1 + ELSE 0 + END AS nb_delai_expedition, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date THEN 1 + WHEN p_sejours.date_expedition_1 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_1_c <> p_sejours.montant_regle_1_c OR p_sejours.montant_comptabilise_1_h <> p_sejours.montant_regle_1_h) THEN 1 + WHEN p_sejours.date_expedition_2 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_2_c <> p_sejours.montant_regle_2_c OR p_sejours.montant_comptabilise_2_h <> p_sejours.montant_regle_2_h) THEN 1 + WHEN p_sejours.date_expedition_22 = '2099-12-31'::date AND (p_sejours.montant_comptabilise_22_c <> p_sejours.montant_regle_22_c OR p_sejours.montant_comptabilise_22_h <> p_sejours.montant_regle_22_h) THEN 1 + ELSE 0 + END AS nb_non_expedie, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_1 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_1_c + p_sejours.montant_comptabilise_1_h - p_sejours.montant_regle_1_c - p_sejours.montant_regle_1_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_2 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_2_c + p_sejours.montant_comptabilise_2_h - p_sejours.montant_regle_2_c - p_sejours.montant_regle_2_h + ELSE 0::numeric + END + + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.date_expedition_22 = '2099-12-31'::date THEN p_sejours.montant_comptabilise_22_c + p_sejours.montant_comptabilise_22_h - p_sejours.montant_regle_22_c - p_sejours.montant_regle_22_h + ELSE 0::numeric + END AS montant_non_expedie, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date OR p_sejours.date_expedition < '2099-12-31'::date THEN p_sejours.delai_expedition + ELSE 0::numeric + END AS delai_expedition, + to_char(p_sejours.date_solde::timestamp with time zone, 'YYYYMM'::text)::numeric AS mois_solde, + p_sejours.date_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_delai_solde, + CASE + WHEN p_sejours.date_facture = '2099-12-31'::date OR p_sejours.montant_regle_c <> p_sejours.montant_comptabilise_c OR p_sejours.montant_regle_h <> p_sejours.montant_comptabilise_h THEN 1 + ELSE 0 + END AS nb_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN 0::numeric + ELSE p_sejours.montant_comptabilise_c + p_sejours.montant_comptabilise_h - p_sejours.montant_regle_c - p_sejours.montant_regle_h + END AS montant_non_solde, + CASE + WHEN p_sejours.date_facture < '2099-12-31'::date AND p_sejours.date_solde < '2099-12-31'::date AND p_sejours.montant_regle_c = p_sejours.montant_comptabilise_c AND p_sejours.montant_regle_h = p_sejours.montant_comptabilise_h THEN p_sejours.delai_solde + ELSE 0::numeric + END AS delai_solde, + p_sejours.montant_facture_c, + p_sejours.montant_facture_0_c, + p_sejours.montant_facture_1_c, + p_sejours.montant_facture_2_c, + p_sejours.montant_facture_22_c, + p_sejours.montant_facture_h, + p_sejours.montant_facture_0_h, + p_sejours.montant_facture_1_h, + p_sejours.montant_facture_2_h, + p_sejours.montant_facture_22_h, + p_sejours.montant_facture_c_actes_inclus_dans_sejour, + p_sejours.montant_facture_h_actes_inclus_dans_sejour, + p_sejours.montant_comptabilise_c, + p_sejours.montant_comptabilise_h, + p_sejours.montant_comptabilise_budget_global_c, + p_sejours.montant_regle_c, + p_sejours.montant_regle_h, + 1 AS nb_sejours, + p_sejours.nb_factures, + p_sejours.nb_factures_regularisation, + p_sejours.nb_factures_rejet, + 0 AS no_oid, + CASE + WHEN p_sejours.type_sejour = ANY (ARRAY['3'::bpchar::text, '5'::bpchar::text]) THEN 0 + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + WHEN p_sejours.type_sejour = '1'::text AND p_sejours.date_entree > '1970-01-01'::date AND date(now()) > p_sejours.date_entree THEN date(now()) - p_sejours.date_entree + ELSE 0 + END AS duree, + p_sejours.gme_id, + p_sejours.risque_id, + t_etat_sejour.oid AS etat_sejour_id, + t_etat_sejour.code AS etat_sejour_code, + t_etat_sejour.texte AS etat_sejour_texte, + p_sejours.date_etat, + CASE + WHEN p_sejours.date_entree = date(p_sejours.date_etat) THEN 1 + ELSE 0 + END AS is_annulation_j0, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_code, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN 'Séances'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN 'Sévérité J'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN 'Sévérité T'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN 'Sévérité Z'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN 'Sévérité 1'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN 'Sévérité ABCDE'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN 'DS > 2 nuits'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN 'Non PMSI'::text + ELSE NULL::text + END AS severite_cti_texte, + CASE + WHEN t_ghm_c.ghm_code ~~* '28%'::text THEN '1'::text + WHEN t_ghm_c.severite_ghm_code = 'J'::bpchar THEN '2'::text + WHEN t_ghm_c.severite_ghm_code = 'T'::bpchar THEN '3'::text + WHEN t_ghm_c.severite_ghm_code = 'Z'::bpchar THEN '4'::text + WHEN t_ghm_c.severite_ghm_code = '1'::bpchar THEN '5'::text + WHEN t_ghm_c.severite_ghm_code = ANY (ARRAY['A'::bpchar, 'B'::bpchar, 'C'::bpchar, 'D'::bpchar, 'E'::bpchar]) THEN '6'::text + WHEN + CASE + WHEN p_sejours.date_sortie <> '2099-12-31'::date AND p_sejours.date_sortie <= date(now()) AND p_sejours.date_sortie IS NOT NULL AND p_sejours.date_sortie >= p_sejours.date_entree THEN p_sejours.date_sortie - p_sejours.date_entree + ELSE 0 + END::numeric > 2::numeric THEN '7'::text + WHEN t_ghm_c.severite_ghm_code = '*'::bpchar THEN '8'::text + ELSE NULL::text + END AS severite_cti_id, + p_sejours.medecin_traitant_id, + p_sejours.traitement_epmsi_id, + p_sejours.ghmgme_id, + p_sejours.type_hospi_pmsi_id + FROM activite.p_sejours + LEFT JOIN activite.t_etat_sejour ON p_sejours.etat::text = t_etat_sejour.code + JOIN activite.t_ghm_c ON p_sejours.ghm_id = t_ghm_c.ghm_id + WHERE p_sejours.etat = ANY (ARRAY['A'::bpchar, 'C'::bpchar, 'R'::bpchar]); \ No newline at end of file diff --git a/db/schema2/views/v_sejours_budget_cle_1.yaml b/db/schema2/views/v_sejours_budget_cle_1.yaml new file mode 100644 index 0000000..c84ca55 --- /dev/null +++ b/db/schema2/views/v_sejours_budget_cle_1.yaml @@ -0,0 +1,10 @@ +src: | + SELECT p_sejours_budget_cle.sejour_id, + p_sejours_budget_cle.budget_cle_id, + t_budget_cle.code AS budget_cle_code, + t_budget_cle.texte AS budget_cle_texte, + t_budget_cle.section_id AS budget_cle_section_id, + t_budget_cle.section_code AS budget_cle_section_code, + t_budget_cle.section_texte AS budget_cle_section_texte + FROM activite.p_sejours_budget_cle + LEFT JOIN activite.t_budget_cle ON p_sejours_budget_cle.budget_cle_id = t_budget_cle.oid; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_etablissement_destination_1.yaml b/db/schema2/views/v_sejours_etablissement_destination_1.yaml new file mode 100644 index 0000000..1f88e53 --- /dev/null +++ b/db/schema2/views/v_sejours_etablissement_destination_1.yaml @@ -0,0 +1,7 @@ +src: | + SELECT p_sejours_transferts.sejour_id, + p_sejours_transferts.destination_id AS etablissement_destination_id, + t_etablissements.code AS etablissement_destination_code, + t_etablissements.texte AS etablissement_destination_texte + FROM activite.p_sejours_transferts + LEFT JOIN base.t_etablissements ON p_sejours_transferts.destination_id = t_etablissements.oid; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_etablissement_provenance_1.yaml b/db/schema2/views/v_sejours_etablissement_provenance_1.yaml new file mode 100644 index 0000000..dc3a7f5 --- /dev/null +++ b/db/schema2/views/v_sejours_etablissement_provenance_1.yaml @@ -0,0 +1,7 @@ +src: | + SELECT p_sejours_transferts.sejour_id, + p_sejours_transferts.provenance_id AS etablissement_provenance_id, + t_etablissements.code AS etablissement_provenance_code, + t_etablissements.texte AS etablissement_provenance_texte + FROM activite.p_sejours_transferts + LEFT JOIN base.t_etablissements ON p_sejours_transferts.provenance_id = t_etablissements.oid; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_finess_1.yaml b/db/schema2/views/v_sejours_finess_1.yaml new file mode 100644 index 0000000..36a7d78 --- /dev/null +++ b/db/schema2/views/v_sejours_finess_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_finess_c.oid AS finess_id, + t_finess_c.code AS finess_code, + t_finess_c.texte_court AS finess_texte, + t_finess_c.section_id AS finess_section_id, + t_finess_c.section_code AS finess_section_code, + t_finess_c.section_texte AS finess_section_texte + FROM activite.t_finess_c; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_ghm_1.yaml b/db/schema2/views/v_sejours_ghm_1.yaml new file mode 100644 index 0000000..d2ff132 --- /dev/null +++ b/db/schema2/views/v_sejours_ghm_1.yaml @@ -0,0 +1,26 @@ +src: | + SELECT t_ghm_c.ghm_id AS oid, + t_ghm_c.ghm_code, + t_ghm_c.ghm_texte, + t_ghm_c.ghm5_id, + t_ghm_c.ghm5_code, + t_ghm_c.ghm5_texte, + t_ghm_c.severite_ghm_id, + t_ghm_c.severite_ghm_code, + t_ghm_c.severite_ghm_texte, + t_ghm_c.cas_id, + t_ghm_c.cas_code, + t_ghm_c.cas_texte, + t_ghm_c.mco_id, + t_ghm_c.mco_code, + t_ghm_c.mco_texte, + t_ghm_c.cmd_id, + t_ghm_c.cmd_code, + t_ghm_c.cmd_texte, + t_ghm_c.mco_id AS mcos_id, + t_ghm_c.mco_code AS mcos_code, + t_ghm_c.mco_texte AS mcos_texte, + t_ghm_c.ghm_section_id, + t_ghm_c.ghm_section_code, + t_ghm_c.ghm_section_texte + FROM activite.t_ghm_c; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_ghmgme_1.yaml b/db/schema2/views/v_sejours_ghmgme_1.yaml new file mode 100644 index 0000000..f30e7f3 --- /dev/null +++ b/db/schema2/views/v_sejours_ghmgme_1.yaml @@ -0,0 +1,45 @@ +src: | + SELECT t_ghmgme_c.ghmgme_id, + t_ghmgme_c.ghmgme_code, + t_ghmgme_c.ghmgme_texte, + CASE + WHEN t_ghmgme_c.cmd_id IS NULL AND t_ghmgme_c.cm_id IS NOT NULL THEN t_ghmgme_c.cm_id + WHEN t_ghmgme_c.cmd_id IS NOT NULL AND t_ghmgme_c.cm_id IS NULL THEN t_ghmgme_c.cmd_id + WHEN t_ghmgme_c.ghmgme_id < 0 THEN (-9990)::bigint + ELSE 0::bigint + END AS cmdcm_id, + CASE + WHEN t_ghmgme_c.cmd_id IS NULL AND t_ghmgme_c.cm_id IS NOT NULL THEN t_ghmgme_c.cm_code + WHEN t_ghmgme_c.cmd_id IS NOT NULL AND t_ghmgme_c.cm_id IS NULL THEN t_ghmgme_c.cmd_code + WHEN t_ghmgme_c.ghmgme_id < 0 THEN '99'::text + ELSE t_ghmgme_c.ghmgme_code + END AS cmdcm_code, + CASE + WHEN t_ghmgme_c.cmd_id IS NULL AND t_ghmgme_c.cm_id IS NOT NULL THEN t_ghmgme_c.cm_texte + WHEN t_ghmgme_c.cmd_id IS NOT NULL AND t_ghmgme_c.cm_id IS NULL THEN t_ghmgme_c.cmd_texte + WHEN t_ghmgme_c.ghmgme_id < 0 THEN 'Hors GHM-GME'::text + ELSE t_ghmgme_c.ghmgme_texte + END AS cmdcm_texte, + CASE + WHEN t_ghmgme_c.ghm5_id IS NULL AND t_ghmgme_c.rgme_id IS NOT NULL THEN t_ghmgme_c.rgme_id + WHEN t_ghmgme_c.ghm5_id IS NOT NULL AND t_ghmgme_c.rgme_id IS NULL THEN t_ghmgme_c.ghm5_id + WHEN t_ghmgme_c.ghmgme_id < 0 THEN (-9990)::bigint + ELSE 0::bigint + END AS ghm5rgme_id, + CASE + WHEN t_ghmgme_c.ghm5_id IS NULL AND t_ghmgme_c.rgme_id IS NOT NULL THEN t_ghmgme_c.rgme_code + WHEN t_ghmgme_c.ghm5_id IS NOT NULL AND t_ghmgme_c.rgme_id IS NULL THEN t_ghmgme_c.ghm5_code + WHEN t_ghmgme_c.ghmgme_id < 0 THEN t_ghmgme_c.ghmgme_code + ELSE t_ghmgme_c.ghmgme_code + END AS ghm5rgme_code, + CASE + WHEN t_ghmgme_c.ghm5_id IS NULL AND t_ghmgme_c.rgme_id IS NOT NULL THEN t_ghmgme_c.rgme_texte + WHEN t_ghmgme_c.ghm5_id IS NOT NULL AND t_ghmgme_c.rgme_id IS NULL THEN t_ghmgme_c.ghm5_texte + WHEN t_ghmgme_c.ghmgme_id < 0 THEN t_ghmgme_c.ghmgme_texte + ELSE t_ghmgme_c.ghmgme_texte + END AS ghm5rgme_texte, + t_ghmgme_c.ghmgme_section_id, + t_ghmgme_c.ghmgme_section_code, + t_ghmgme_c.ghmgme_section_texte + FROM activite.t_ghmgme_c + ORDER BY t_ghmgme_c.ghmgme_id; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_ghs_1.yaml b/db/schema2/views/v_sejours_ghs_1.yaml new file mode 100644 index 0000000..012db36 --- /dev/null +++ b/db/schema2/views/v_sejours_ghs_1.yaml @@ -0,0 +1,7 @@ +src: | + SELECT t_ghs_c.ghs_id AS oid, + t_ghs_c.ghs_id, + to_char(t_ghs_c.ghs_code, 'FM0000'::text) AS ghs_code, + t_ghs_c.ghs_code_text, + t_ghs_c.ghs_texte + FROM activite.t_ghs_c; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_gme_1.yaml b/db/schema2/views/v_sejours_gme_1.yaml new file mode 100644 index 0000000..1f9e07d --- /dev/null +++ b/db/schema2/views/v_sejours_gme_1.yaml @@ -0,0 +1,17 @@ +src: | + SELECT t_gme_c.gme_id, + t_gme_c.gme_code || ' '::text AS gme_code, + t_gme_c.gme_texte, + t_gme_c.cm_id, + t_gme_c.cm_code, + t_gme_c.cm_texte, + t_gme_c.gn_id, + t_gme_c.gn_code, + t_gme_c.gn_texte, + t_gme_c.rgme_id, + t_gme_c.rgme_code, + t_gme_c.rgme_texte, + t_gme_c.gme_section_id, + t_gme_c.gme_section_code, + t_gme_c.gme_section_texte + FROM activite.t_gme_c; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_lieu_1.yaml b/db/schema2/views/v_sejours_lieu_1.yaml new file mode 100644 index 0000000..d97d95b --- /dev/null +++ b/db/schema2/views/v_sejours_lieu_1.yaml @@ -0,0 +1,47 @@ +src: | + SELECT t_lieux_c.oid, + t_lieux_c.mode_traitement_id, + t_lieux_c.mode_traitement_code, + t_lieux_c.mode_traitement_texte, + t_lieux_c.service_facturation_id AS lieu_sortie_service_id, + t_lieux_c.service_facturation_code AS lieu_sortie_service_code, + t_lieux_c.service_facturation_texte AS lieu_sortie_service_texte, + t_lieux_c.service_facturation_section_id AS lieu_sortie_service_section_id, + t_lieux_c.service_facturation_section_code AS lieu_sortie_service_section_code, + t_lieux_c.service_facturation_section_texte AS lieu_sortie_service_section_texte, + t_lieux_c.service_facturation_section_nb_lits AS lieu_sortie_service_section_nb_lits, + t_lieux_c.service_facturation_section_nb_cp AS lieu_sortie_service_section_nb_cp, + t_lieux_c.activite_id AS lieu_sortie_activite_id, + t_lieux_c.activite_code AS lieu_sortie_activite_code, + t_lieux_c.activite_texte AS lieu_sortie_activite_texte, + t_lieux_c.etage_id AS lieu_sortie_etage_id, + t_lieux_c.etage_code AS lieu_sortie_etage_code, + t_lieux_c.etage_texte AS lieu_sortie_etage_texte, + t_lieux_c.etage_section_id AS lieu_sortie_etage_section_id, + t_lieux_c.etage_section_code AS lieu_sortie_etage_section_code, + t_lieux_c.etage_section_texte AS lieu_sortie_etage_section_texte, + t_lieux_c.lit_id AS lieu_sortie_lit_id, + t_lieux_c.lit_code AS lieu_sortie_lit_code, + t_lieux_c.lit_texte AS lieu_sortie_lit_texte, + t_lieux_c.lit_section_id AS lieu_sortie_lit_section_id, + t_lieux_c.lit_section_code AS lieu_sortie_lit_section_code, + t_lieux_c.lit_section_texte AS lieu_sortie_lit_section_texte, + t_lieux_c.unite_medicale_id AS lieu_sortie_unite_medicale_id, + t_lieux_c.unite_medicale_code AS lieu_sortie_unite_medicale_code, + t_lieux_c.unite_medicale_texte AS lieu_sortie_unite_medicale_texte, + t_lieux_c.unite_medicale_section_id AS lieu_sortie_unite_medicale_section_id, + t_lieux_c.unite_medicale_section_code AS lieu_sortie_unite_medicale_section_code, + t_lieux_c.unite_medicale_section_texte AS lieu_sortie_unite_medicale_section_texte, + t_lieux_c.unite_fonctionnelle_id AS lieu_sortie_unite_fonctionnelle_id, + t_lieux_c.unite_fonctionnelle_code AS lieu_sortie_unite_fonctionnelle_code, + t_lieux_c.unite_fonctionnelle_texte AS lieu_sortie_unite_fonctionnelle_texte, + t_lieux_c.unite_fonctionnelle_section_id AS lieu_sortie_unite_fonctionnelle_section_id, + t_lieux_c.unite_fonctionnelle_section_code AS lieu_sortie_unite_fonctionnelle_section_code, + t_lieux_c.unite_fonctionnelle_section_texte AS lieu_sortie_unite_fonctionnelle_section_texte, + t_lieux_c.gir_id AS lieu_sortie_gir_id, + t_lieux_c.gir_code AS lieu_sortie_gir_code, + t_lieux_c.gir_texte AS lieu_sortie_gir_texte, + t_lieux_c.gir_section_id AS lieu_sortie_gir_section_id, + t_lieux_c.gir_section_code AS lieu_sortie_gir_section_code, + t_lieux_c.gir_section_texte AS lieu_sortie_gir_section_texte + FROM activite.t_lieux_c; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_medecin_1.yaml b/db/schema2/views/v_sejours_medecin_1.yaml new file mode 100644 index 0000000..4211046 --- /dev/null +++ b/db/schema2/views/v_sejours_medecin_1.yaml @@ -0,0 +1,18 @@ +src: | + SELECT t_medecins_administratifs_c.oid, + t_medecins_administratifs_c.adm_code AS medecin_adm_sejour_code, + t_medecins_administratifs_c.adm_nom AS medecin_adm_sejour_nom, + t_medecins_administratifs_c.adm_prenom AS medecin_adm_sejour_prenom, + t_medecins_administratifs_c.adm_nom_prenom AS medecin_adm_sejour_nom_prenom, + t_medecins_administratifs_c.section_id AS medecin_adm_sejour_section_id, + t_medecins_administratifs_c.section_code AS medecin_adm_sejour_section_code, + t_medecins_administratifs_c.section_texte AS medecin_adm_sejour_section_texte, + t_medecins_administratifs_c.medecin_id AS medecin_sejour_id, + t_medecins_administratifs_c.medecin_code AS medecin_sejour_code, + t_medecins_administratifs_c.nom AS medecin_sejour_nom, + t_medecins_administratifs_c.prenom AS medecin_sejour_prenom, + t_medecins_administratifs_c.nom_prenom AS medecin_sejour_nom_prenom, + t_medecins_administratifs_c.specialite_id AS medecin_sejour_specialite_id, + t_medecins_administratifs_c.specialite_code AS medecin_sejour_specialite_code, + t_medecins_administratifs_c.specialite_texte AS medecin_sejour_specialite_texte + FROM activite.t_medecins_administratifs_c; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_medecin_traitant_1.yaml b/db/schema2/views/v_sejours_medecin_traitant_1.yaml new file mode 100644 index 0000000..ecf2a66 --- /dev/null +++ b/db/schema2/views/v_sejours_medecin_traitant_1.yaml @@ -0,0 +1,19 @@ +src: | + SELECT t_medecins_traitants_administratifs.oid, + t_medecins_traitants_administratifs.code AS medecin_traitant_code, + t_medecins_traitants_administratifs.code_original AS medecin_traitant_code_original, + t_medecins_traitants_administratifs.nom AS medecin_traitant_nom, + t_medecins_traitants_administratifs.prenom AS medecin_traitant_prenom, + (t_medecins_traitants_administratifs.nom || ' '::text) || t_medecins_traitants_administratifs.prenom AS medecin_traitant_nom_prenom, + t_medecins_traitants_administratifs.statut AS medecin_traitant_statut, + t_medecins_traitants_administratifs.specialite_id AS medecin_traitant_specialite_id, + t_medecins_traitants_administratifs.is_medecin_sejour AS medecin_traitant_is_medecin_sejour, + t_medecins_traitants_administratifs.medecin_id AS medecin_traitant_medecin_id, + t_medecins_traitants_administratifs.is_medecin_executant AS medecin_traitant_is_medecin_executant, + t_medecins_traitants_administratifs.est_medecin_salarie AS medecin_traitant_est_medecin_salarie, + t_medecins_traitants_administratifs.no_adeli AS medecin_traitant_no_adeli, + t_medecins_traitants_administratifs.no_rpps AS medecin_traitant_no_rpps, + t_medecins_traitants_administratifs.code_postal_id AS medecin_traitant_code_postal_id, + t_medecins_traitants_administratifs.ville AS medecin_traitant_ville, + t_medecins_traitants_administratifs.adresse AS medecin_traitant_adresse + FROM activite.t_medecins_traitants_administratifs; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_parametres_personnalises_1.yaml b/db/schema2/views/v_sejours_parametres_personnalises_1.yaml new file mode 100644 index 0000000..fe828c2 --- /dev/null +++ b/db/schema2/views/v_sejours_parametres_personnalises_1.yaml @@ -0,0 +1,17 @@ +src: | + SELECT p_sejours_parametres_personnalises.sejour_id, + p_sejours_parametres_personnalises.parametre_personnalise_1_id, + t_parametre_personnalise_sejour_1.code AS parametre_personnalise_1_code, + t_parametre_personnalise_sejour_1.texte AS parametre_personnalise_1_texte, + t_parametre_personnalise_sejour_1.section_id AS parametre_personnalise_1_section_id, + t_parametre_personnalise_sejour_1.section_code AS parametre_personnalise_1_section_code, + t_parametre_personnalise_sejour_1.section_texte AS parametre_personnalise_1_section_texte, + p_sejours_parametres_personnalises.parametre_personnalise_2_id, + t_parametre_personnalise_sejour_2.code AS parametre_personnalise_2_code, + t_parametre_personnalise_sejour_2.texte AS parametre_personnalise_2_texte, + t_parametre_personnalise_sejour_2.section_id AS parametre_personnalise_2_section_id, + t_parametre_personnalise_sejour_2.section_code AS parametre_personnalise_2_section_code, + t_parametre_personnalise_sejour_2.section_texte AS parametre_personnalise_2_section_texte + FROM activite.p_sejours_parametres_personnalises + LEFT JOIN activite.t_parametre_personnalise_sejour_1 ON p_sejours_parametres_personnalises.parametre_personnalise_1_id = t_parametre_personnalise_sejour_1.oid + LEFT JOIN activite.t_parametre_personnalise_sejour_2 ON p_sejours_parametres_personnalises.parametre_personnalise_2_id = t_parametre_personnalise_sejour_2.oid; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_r_2.yaml b/db/schema2/views/v_sejours_r_2.yaml new file mode 100644 index 0000000..da8686e --- /dev/null +++ b/db/schema2/views/v_sejours_r_2.yaml @@ -0,0 +1,194 @@ +dep: + - v_sejours_1 +src: | + SELECT v_sejours_1.date_sortie AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess_section_id, + v_sejours_1.finess_section_code, + v_sejours_1.finess_section_texte, + v_sejours_1.finess, + v_sejours_1.provider_id, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour_code, + v_sejours_1.est_budget_global, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.heure_entree, + v_sejours_1.mode_entree, + v_sejours_1.provenance, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.heure_sortie, + v_sejours_1.mode_sortie, + v_sejours_1.destination, + v_sejours_1.code_cp_demandee, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.tiers_payant_0_id, + v_sejours_1.tiers_payant_1_id, + v_sejours_1.tiers_payant_2_id, + v_sejours_1.tiers_payant_22_id, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id, + v_sejours_1.medecin_adm_sejour_section_code, + v_sejours_1.medecin_adm_sejour_section_texte, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_code, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.medecin_sejour_specialite_id, + v_sejours_1.medecin_sejour_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_service_section_nb_lits, + v_sejours_1.lieu_sortie_service_section_nb_cp, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_sejours_1.lieu_sortie_unite_medicale_section_id, + v_sejours_1.lieu_sortie_unite_medicale_section_code, + v_sejours_1.lieu_sortie_unite_medicale_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte, + v_sejours_1.mois_groupage, + v_sejours_1.date_groupage, + v_sejours_1.nb_delai_groupage, + v_sejours_1.nb_groupe, + v_sejours_1.delai_groupage, + v_sejours_1.nb_non_groupe, + v_sejours_1.mois_facture, + v_sejours_1.date_facture, + v_sejours_1.nb_delai_facture, + v_sejours_1.delai_facture, + v_sejours_1.nb_non_facture, + v_sejours_1.mois_expedition, + v_sejours_1.date_expedition, + v_sejours_1.nb_delai_expedition, + v_sejours_1.nb_non_expedie, + v_sejours_1.montant_non_expedie, + v_sejours_1.delai_expedition, + v_sejours_1.mois_solde, + v_sejours_1.date_solde, + v_sejours_1.nb_delai_solde, + v_sejours_1.nb_non_solde, + v_sejours_1.montant_non_solde, + v_sejours_1.delai_solde, + v_sejours_1.montant_facture_c, + v_sejours_1.montant_facture_0_c, + v_sejours_1.montant_facture_1_c, + v_sejours_1.montant_facture_2_c, + v_sejours_1.montant_facture_22_c, + v_sejours_1.montant_facture_h, + v_sejours_1.montant_facture_0_h, + v_sejours_1.montant_facture_1_h, + v_sejours_1.montant_facture_2_h, + v_sejours_1.montant_facture_22_h, + v_sejours_1.montant_facture_c_actes_inclus_dans_sejour, + v_sejours_1.montant_facture_h_actes_inclus_dans_sejour, + v_sejours_1.montant_comptabilise_c, + v_sejours_1.montant_comptabilise_h, + v_sejours_1.montant_comptabilise_budget_global_c, + v_sejours_1.montant_regle_c, + v_sejours_1.montant_regle_h, + v_sejours_1.nb_sejours, + v_sejours_1.nb_factures, + v_sejours_1.nb_factures_regularisation, + v_sejours_1.nb_factures_rejet, + v_sejours_1.no_oid, + v_sejours_1.duree AS duree_sejour, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.mcos_id + FROM activite.v_sejours_1; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_r_5.yaml b/db/schema2/views/v_sejours_r_5.yaml new file mode 100644 index 0000000..0fcf836 --- /dev/null +++ b/db/schema2/views/v_sejours_r_5.yaml @@ -0,0 +1,194 @@ +dep: + - v_sejours_1 +src: | + SELECT v_sejours_1.date_groupage AS date_reference, + v_sejours_1.lieu_sortie_service_id AS lieu_reference_service_id, + v_sejours_1.lieu_sortie_service_code AS lieu_reference_service_code, + v_sejours_1.lieu_sortie_service_texte AS lieu_reference_service_texte, + v_sejours_1.lieu_sortie_service_section_id AS lieu_reference_service_section_id, + v_sejours_1.lieu_sortie_service_section_code AS lieu_reference_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte AS lieu_reference_service_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id AS lieu_reference_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code AS lieu_reference_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte AS lieu_reference_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id AS lieu_reference_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code AS lieu_reference_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte AS lieu_reference_unite_fonctionnelle_section_texte, + v_sejours_1.lieu_sortie_activite_id AS lieu_reference_activite_id, + v_sejours_1.lieu_sortie_activite_code AS lieu_reference_activite_code, + v_sejours_1.lieu_sortie_activite_texte AS lieu_reference_activite_texte, + v_sejours_1.lieu_sortie_etage_id AS lieu_reference_etage_id, + v_sejours_1.lieu_sortie_etage_code AS lieu_reference_etage_code, + v_sejours_1.lieu_sortie_etage_texte AS lieu_reference_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id AS lieu_reference_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code AS lieu_reference_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte AS lieu_reference_etage_section_texte, + v_sejours_1.lieu_sortie_unite_medicale_id AS lieu_reference_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code AS lieu_reference_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte AS lieu_reference_unite_medicale_texte, + v_sejours_1.medecin_adm_sejour_id AS medecin_adm_reference_id, + v_sejours_1.medecin_adm_sejour_code AS medecin_adm_reference_code, + v_sejours_1.medecin_adm_sejour_nom AS medecin_adm_reference_nom, + v_sejours_1.medecin_adm_sejour_prenom AS medecin_adm_reference_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom AS medecin_adm_reference_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id AS medecin_adm_reference_section_id, + v_sejours_1.medecin_adm_sejour_section_code AS medecin_adm_reference_section_code, + v_sejours_1.medecin_adm_sejour_section_texte AS medecin_adm_reference_section_texte, + v_sejours_1.medecin_sejour_specialite_id AS medecin_reference_specialite_id, + v_sejours_1.medecin_sejour_specialite_code AS medecin_reference_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte AS medecin_reference_specialite_texte, + v_sejours_1.medecin_sejour_id AS medecin_reference_id, + v_sejours_1.medecin_sejour_code AS medecin_reference_code, + v_sejours_1.medecin_sejour_nom AS medecin_reference_nom, + v_sejours_1.medecin_sejour_prenom AS medecin_reference_prenom, + v_sejours_1.medecin_sejour_nom_prenom AS medecin_reference_nom_prenom, + v_sejours_1.finess_id, + v_sejours_1.finess_code, + v_sejours_1.finess_texte, + v_sejours_1.finess_section_id, + v_sejours_1.finess_section_code, + v_sejours_1.finess_section_texte, + v_sejours_1.finess, + v_sejours_1.provider_id, + v_sejours_1.no_sejour, + v_sejours_1.sejour_id, + v_sejours_1.no_patient, + v_sejours_1.code_sexe, + v_sejours_1.sexe_texte_court, + v_sejours_1.age, + v_sejours_1.code_prevu, + v_sejours_1.type_sejour, + v_sejours_1.type_sejour AS type_sejour_code, + v_sejours_1.est_budget_global, + v_sejours_1.type_sejour_id, + v_sejours_1.type_sejour_texte, + v_sejours_1.mode_traitement_id, + v_sejours_1.mode_traitement_code, + v_sejours_1.mode_traitement_texte, + v_sejours_1.mois_entree, + v_sejours_1.date_entree, + v_sejours_1.heure_entree, + v_sejours_1.mode_entree, + v_sejours_1.provenance, + v_sejours_1.code_sorti, + v_sejours_1.mois_sortie, + v_sejours_1.date_sortie, + v_sejours_1.heure_sortie, + v_sejours_1.mode_sortie, + v_sejours_1.destination, + v_sejours_1.code_cp_demandee, + v_sejours_1.ghs_id, + v_sejours_1.ghs_code, + v_sejours_1.ghs_texte, + v_sejours_1.tiers_payant_0_id, + v_sejours_1.tiers_payant_1_id, + v_sejours_1.tiers_payant_2_id, + v_sejours_1.tiers_payant_22_id, + v_sejours_1.medecin_adm_sejour_id, + v_sejours_1.medecin_adm_sejour_code, + v_sejours_1.medecin_adm_sejour_nom, + v_sejours_1.medecin_adm_sejour_prenom, + v_sejours_1.medecin_adm_sejour_nom_prenom, + v_sejours_1.medecin_adm_sejour_section_id, + v_sejours_1.medecin_adm_sejour_section_code, + v_sejours_1.medecin_adm_sejour_section_texte, + v_sejours_1.medecin_sejour_id, + v_sejours_1.medecin_sejour_code, + v_sejours_1.medecin_sejour_nom, + v_sejours_1.medecin_sejour_prenom, + v_sejours_1.medecin_sejour_nom_prenom, + v_sejours_1.medecin_sejour_specialite_id, + v_sejours_1.medecin_sejour_specialite_code, + v_sejours_1.medecin_sejour_specialite_texte, + v_sejours_1.lieu_sortie_id, + v_sejours_1.lieu_sortie_service_id, + v_sejours_1.lieu_sortie_service_code, + v_sejours_1.lieu_sortie_service_texte, + v_sejours_1.lieu_sortie_service_section_id, + v_sejours_1.lieu_sortie_service_section_code, + v_sejours_1.lieu_sortie_service_section_texte, + v_sejours_1.lieu_sortie_service_section_nb_lits, + v_sejours_1.lieu_sortie_service_section_nb_cp, + v_sejours_1.lieu_sortie_activite_id, + v_sejours_1.lieu_sortie_activite_code, + v_sejours_1.lieu_sortie_activite_texte, + v_sejours_1.lieu_sortie_etage_id, + v_sejours_1.lieu_sortie_etage_code, + v_sejours_1.lieu_sortie_etage_texte, + v_sejours_1.lieu_sortie_etage_section_id, + v_sejours_1.lieu_sortie_etage_section_code, + v_sejours_1.lieu_sortie_etage_section_texte, + v_sejours_1.lieu_sortie_lit_id, + v_sejours_1.lieu_sortie_lit_code, + v_sejours_1.lieu_sortie_lit_texte, + v_sejours_1.lieu_sortie_unite_medicale_id, + v_sejours_1.lieu_sortie_unite_medicale_code, + v_sejours_1.lieu_sortie_unite_medicale_texte, + v_sejours_1.lieu_sortie_unite_medicale_section_id, + v_sejours_1.lieu_sortie_unite_medicale_section_code, + v_sejours_1.lieu_sortie_unite_medicale_section_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_texte, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_id, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_code, + v_sejours_1.lieu_sortie_unite_fonctionnelle_section_texte, + v_sejours_1.mois_groupage, + v_sejours_1.date_groupage, + v_sejours_1.nb_delai_groupage, + v_sejours_1.nb_groupe, + v_sejours_1.delai_groupage, + v_sejours_1.nb_non_groupe, + v_sejours_1.mois_facture, + v_sejours_1.date_facture, + v_sejours_1.nb_delai_facture, + v_sejours_1.delai_facture, + v_sejours_1.nb_non_facture, + v_sejours_1.mois_expedition, + v_sejours_1.date_expedition, + v_sejours_1.nb_delai_expedition, + v_sejours_1.nb_non_expedie, + v_sejours_1.montant_non_expedie, + v_sejours_1.delai_expedition, + v_sejours_1.mois_solde, + v_sejours_1.date_solde, + v_sejours_1.nb_delai_solde, + v_sejours_1.nb_non_solde, + v_sejours_1.montant_non_solde, + v_sejours_1.delai_solde, + v_sejours_1.montant_facture_c, + v_sejours_1.montant_facture_0_c, + v_sejours_1.montant_facture_1_c, + v_sejours_1.montant_facture_2_c, + v_sejours_1.montant_facture_22_c, + v_sejours_1.montant_facture_h, + v_sejours_1.montant_facture_0_h, + v_sejours_1.montant_facture_1_h, + v_sejours_1.montant_facture_2_h, + v_sejours_1.montant_facture_22_h, + v_sejours_1.montant_facture_c_actes_inclus_dans_sejour, + v_sejours_1.montant_facture_h_actes_inclus_dans_sejour, + v_sejours_1.montant_comptabilise_c, + v_sejours_1.montant_comptabilise_h, + v_sejours_1.montant_comptabilise_budget_global_c, + v_sejours_1.montant_regle_c, + v_sejours_1.montant_regle_h, + v_sejours_1.nb_sejours, + v_sejours_1.nb_factures, + v_sejours_1.nb_factures_regularisation, + v_sejours_1.nb_factures_rejet, + v_sejours_1.no_oid, + v_sejours_1.duree AS duree_sejour, + v_sejours_1.ghm_id, + v_sejours_1.ghm_code, + v_sejours_1.ghm_texte, + v_sejours_1.mco_id, + v_sejours_1.mco_code, + v_sejours_1.mco_texte, + v_sejours_1.cmd_id, + v_sejours_1.cmd_code, + v_sejours_1.cmd_texte, + v_sejours_1.mcos_code, + v_sejours_1.mcos_texte, + v_sejours_1.mcos_id + FROM activite.v_sejours_1; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_test_join.yaml b/db/schema2/views/v_sejours_test_join.yaml new file mode 100644 index 0000000..fa91a88 --- /dev/null +++ b/db/schema2/views/v_sejours_test_join.yaml @@ -0,0 +1,29 @@ +dep: + - v_ages_1 + - v_codes_postaux_2 + - v_destinations_sortie_1 + - v_durees_sejour_1 + - v_modes_entree_1 + - v_modes_sortie_1 + - v_provenances_entree_1 + - v_sejours_1 + - v_sejours_ghm_1 + - v_sejours_ghs_1 + - v_sejours_lieu_1 + - v_sejours_medecin_1 + - v_sejours_type_sejour_1 +src: | + SELECT v_sejours_1.sejour_id + FROM activite.v_sejours_1 + JOIN activite.v_durees_sejour_1 ON v_sejours_1.duree = v_durees_sejour_1.duree_sejour_id + JOIN activite.v_ages_1 ON v_sejours_1.age = v_ages_1.age_id::numeric + JOIN activite.v_codes_postaux_2 ON v_sejours_1.code_postal_id = v_codes_postaux_2.code_postal_id + JOIN activite.v_modes_entree_1 ON v_modes_entree_1.mode_entree_code = v_sejours_1.mode_entree + JOIN activite.v_modes_sortie_1 ON v_modes_sortie_1.mode_sortie_code = v_sejours_1.mode_sortie + JOIN activite.v_provenances_entree_1 ON v_provenances_entree_1.provenance_code = v_sejours_1.provenance + JOIN activite.v_destinations_sortie_1 ON v_destinations_sortie_1.destination_code = v_sejours_1.destination + JOIN activite.v_sejours_ghm_1 ON v_sejours_ghm_1.oid = v_sejours_1.ghm_id + JOIN activite.v_sejours_ghs_1 ON v_sejours_ghs_1.oid = v_sejours_1.ghs_id + JOIN activite.v_sejours_medecin_1 ON v_sejours_medecin_1.oid = v_sejours_1.medecin_adm_sejour_id + JOIN activite.v_sejours_type_sejour_1 ON v_sejours_type_sejour_1.type_sejour_code = v_sejours_1.type_sejour + JOIN activite.v_sejours_lieu_1 ON v_sejours_lieu_1.oid = v_sejours_1.lieu_sortie_id; \ No newline at end of file diff --git a/db/schema2/views/v_sejours_type_sejour_1.yaml b/db/schema2/views/v_sejours_type_sejour_1.yaml new file mode 100644 index 0000000..815fcf1 --- /dev/null +++ b/db/schema2/views/v_sejours_type_sejour_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_type_sejour.oid AS type_sejour_id, + t_type_sejour.code AS type_sejour_code, + t_type_sejour.texte AS type_sejour_texte, + t_type_sejour.section_id AS type_sejour_section_id, + t_type_sejour.section_code AS type_sejour_section_code, + t_type_sejour.section_texte AS type_sejour_section_texte + FROM activite.t_type_sejour; \ No newline at end of file diff --git a/db/schema2/views/v_services_facturation_1.yaml b/db/schema2/views/v_services_facturation_1.yaml new file mode 100644 index 0000000..289a7b9 --- /dev/null +++ b/db/schema2/views/v_services_facturation_1.yaml @@ -0,0 +1,8 @@ +src: | + SELECT t_services_facturation.oid, + (t_services_facturation.code || ' '::text) || t_services_facturation.texte_court AS texte + FROM activite.t_services_facturation + WHERE (t_services_facturation.oid IN ( SELECT DISTINCT t_lieux_c.service_facturation_id + FROM activite.t_lieux_c + ORDER BY t_lieux_c.service_facturation_id)) + ORDER BY t_services_facturation.texte_court; \ No newline at end of file diff --git a/db/schema2/views/v_services_facturation_2.yaml b/db/schema2/views/v_services_facturation_2.yaml new file mode 100644 index 0000000..30df022 --- /dev/null +++ b/db/schema2/views/v_services_facturation_2.yaml @@ -0,0 +1,68 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.liste_alias_combo AS alias, + v_listes_1.texte, + ('0'::text || v_listes_1.sort) || chr(1) AS code, + v_listes_1.lvl AS level, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'SERVICE_F'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + ''::text AS alias, + t_classes.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'SERVICE_F'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + ('#LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.code AS alias, + t_classes_sections.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'SERVICE_F'::text + ) + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + ''::text AS alias, + 'Section non attribuée'::character varying AS texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'SERVICE_F'::text + ) UNION + SELECT 'SF'::text || t_services_facturation.oid::text AS oid, + '#SF'::text || t_services_facturation.code AS alias, + (t_services_facturation.code || ' '::text) || t_services_facturation.texte_court AS texte, + '9'::text || t_services_facturation.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_services_facturation + WHERE t_services_facturation.oid > 0 AND (t_services_facturation.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'service'::text)) + ORDER BY 4, 1, 3; \ No newline at end of file diff --git a/db/schema2/views/v_tiers_payant_1.yaml b/db/schema2/views/v_tiers_payant_1.yaml new file mode 100644 index 0000000..2e31fb3 --- /dev/null +++ b/db/schema2/views/v_tiers_payant_1.yaml @@ -0,0 +1,18 @@ +src: | + SELECT 'G'::text || t_types_tiers_payant.code::text AS oid, + (t_types_tiers_payant.code::text || ' - '::text) || t_types_tiers_payant.texte AS texte, + t_types_tiers_payant.code AS type_tiers_payant, + ''::text AS code_tiers_payant, + '1'::text AS level + FROM activite.t_types_tiers_payant + UNION + SELECT 'T'::text || t_tiers_payant.oid::text AS oid, + (t_tiers_payant.code || ' - '::text) || t_tiers_payant.texte AS texte, + t_tiers_payant.type_tiers_payant, + t_tiers_payant.code AS code_tiers_payant, + '2'::text AS level + FROM activite.t_tiers_payant + WHERE t_tiers_payant.oid <> 0 AND (t_tiers_payant.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'tiers_payant'::text)) + ORDER BY 3, 4; \ No newline at end of file diff --git a/db/schema2/views/v_tiers_payant_2.yaml b/db/schema2/views/v_tiers_payant_2.yaml new file mode 100644 index 0000000..329d1d4 --- /dev/null +++ b/db/schema2/views/v_tiers_payant_2.yaml @@ -0,0 +1,81 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS sort, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'TIERSP'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '1'::text AS level, + '7'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'TIERSP'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text AS level, + '7'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'TIERSP'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text AS level, + '7'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS sort, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'TIERSP'::text + UNION ALL + SELECT '-8'::text AS oid, + 'Grands régimes'::character varying AS texte, + '1'::text AS level, + '80'::text AS sort, + '0'::character(1) AS is_cti + UNION ALL + SELECT 'RG'::text || t_grands_regimes.oid::text AS oid, + (t_grands_regimes.code || ' '::text) || t_grands_regimes.texte_court AS texte, + '2'::text AS level, + '81'::text || t_grands_regimes.code AS sort, + '0'::character(1) AS is_cti + FROM base.t_grands_regimes + UNION ALL + SELECT 'TT'::text || t_types_tiers_payant.code::text AS oid, + (t_types_tiers_payant.code::text || ' '::text) || t_types_tiers_payant.texte_court AS texte, + '1'::text AS level, + '9'::text || t_types_tiers_payant.code::text AS sort, + '0'::character(1) AS is_cti + FROM activite.t_types_tiers_payant + UNION ALL + SELECT 'TP'::text || t_tiers_payant.oid::text AS oid, + (t_tiers_payant.code || ' '::text) || t_tiers_payant.texte_court AS texte, + '2'::text AS level, + ('9'::text || t_tiers_payant.type_tiers_payant::text) || t_tiers_payant.code AS sort, + '0'::character(1) AS is_cti + FROM activite.t_tiers_payant + WHERE t_tiers_payant.oid <> 0 AND (t_tiers_payant.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'tiers_payant'::text)) + ORDER BY 4; \ No newline at end of file diff --git a/db/schema2/views/v_traitement_epmsi_1.yaml b/db/schema2/views/v_traitement_epmsi_1.yaml new file mode 100644 index 0000000..70614eb --- /dev/null +++ b/db/schema2/views/v_traitement_epmsi_1.yaml @@ -0,0 +1,5 @@ +src: | + SELECT t_traitement_epmsi.oid AS to_traitement_epmsi_id, + t_traitement_epmsi.code AS traitement_epmsi_code, + t_traitement_epmsi.texte AS traitement_epmsi_texte + FROM activite.t_traitement_epmsi; \ No newline at end of file diff --git a/db/schema2/views/v_type_sejour_1.yaml b/db/schema2/views/v_type_sejour_1.yaml new file mode 100644 index 0000000..a8b757f --- /dev/null +++ b/db/schema2/views/v_type_sejour_1.yaml @@ -0,0 +1,70 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE 1 = 1 AND v_listes_1.table_code = 'TYPESEJOUR'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE 1 = 1 AND t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'TYPESEJOUR'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE 1 = 1 AND t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'TYPESEJOUR'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE 1 = 1 AND t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'TYPESEJOUR'::text + UNION ALL + SELECT 'DT'::text || t_type_sejour.oid::text AS oid, + t_type_sejour.texte, + t_type_sejour.code, + '1'::text AS level, + '9'::text || t_type_sejour.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_type_sejour + UNION ALL + SELECT 'DT12'::text AS oid, + 'Hospitalisés et Ambulatoires'::character varying AS texte, + '12'::text AS code, + '1'::text AS level, + '9'::text || '12'::text AS tri, + '0'::character(1) AS is_cti + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_ucd_1.yaml b/db/schema2/views/v_ucd_1.yaml new file mode 100644 index 0000000..2d53eca --- /dev/null +++ b/db/schema2/views/v_ucd_1.yaml @@ -0,0 +1,124 @@ +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ''::text AS code, + v_listes_1.lvl AS level, + ('0'::text || v_listes_1.sort) || chr(1) AS tri, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.v_listes_1 + WHERE v_listes_1.table_code = 'UCD'::text AND v_listes_1.lvl <> '0'::text + UNION ALL + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + ''::text AS code, + '1'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'UCD'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_classes_sections, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'UCD'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + ''::text AS code, + '2'::text AS level, + '5'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS tri, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM base.t_classes, + base.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'UCD'::text + UNION ALL + SELECT 'D1'::text || t_ucd_c.classification_atc_1_id::text AS oid, + max((t_ucd_c.classification_atc_1_code::text || ' '::text) || t_ucd_c.classification_atc_1_texte::text) AS texte, + ''::text AS code, + '1'::text AS level, + max('6'::text || rpad(t_ucd_c.classification_atc_1_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_ucd_c + WHERE t_ucd_c.classification_atc_id <> 0 AND (t_ucd_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ucd'::text)) + GROUP BY ('D1'::text || t_ucd_c.classification_atc_1_id::text) + UNION ALL + SELECT 'D2'::text || t_ucd_c.classification_atc_2_id::text AS oid, + max((t_ucd_c.classification_atc_2_code::text || ' '::text) || t_ucd_c.classification_atc_2_texte::text) AS texte, + ''::text AS code, + '2'::text AS level, + max(('6'::text || rpad(t_ucd_c.classification_atc_1_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_2_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_ucd_c + WHERE t_ucd_c.classification_atc_id <> 0 AND (t_ucd_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ucd'::text)) + GROUP BY ('D2'::text || t_ucd_c.classification_atc_2_id::text) + UNION ALL + SELECT 'D3'::text || t_ucd_c.classification_atc_3_id::text AS oid, + max((t_ucd_c.classification_atc_3_code::text || ' '::text) || t_ucd_c.classification_atc_3_texte::text) AS texte, + ''::text AS code, + '3'::text AS level, + max((('6'::text || rpad(t_ucd_c.classification_atc_1_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_2_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_3_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_ucd_c + WHERE t_ucd_c.classification_atc_id <> 0 AND (t_ucd_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ucd'::text)) + GROUP BY ('D3'::text || t_ucd_c.classification_atc_3_id::text) + UNION ALL + SELECT 'D4'::text || t_ucd_c.classification_atc_4_id::text AS oid, + max((t_ucd_c.classification_atc_4_code::text || ' '::text) || t_ucd_c.classification_atc_4_texte::text) AS texte, + ''::text AS code, + '4'::text AS level, + max(((('6'::text || rpad(t_ucd_c.classification_atc_1_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_2_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_3_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_4_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_ucd_c + WHERE t_ucd_c.classification_atc_id <> 0 AND (t_ucd_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ucd'::text)) + GROUP BY ('D4'::text || t_ucd_c.classification_atc_4_id::text) + UNION ALL + SELECT 'D5'::text || t_ucd_c.classification_atc_id::text AS oid, + max((t_ucd_c.classification_atc_code::text || ' '::text) || t_ucd_c.classification_atc_texte::text) AS texte, + ''::text AS code, + '5'::text AS level, + max((((('6'::text || rpad(t_ucd_c.classification_atc_1_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_2_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_3_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_4_code::text, 10, ' '::text)) || rpad(t_ucd_c.classification_atc_code::text, 10, ' '::text)) AS tri, + '0'::bpchar AS is_cti + FROM activite.t_ucd_c + WHERE t_ucd_c.classification_atc_id <> 0 AND (t_ucd_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ucd'::text)) + GROUP BY ('D5'::text || t_ucd_c.classification_atc_id::text) + UNION ALL + SELECT 'DT'::text || t_ucd_c.oid::text AS oid, + (t_ucd_c.code || ' '::text) || t_ucd_c.texte_court AS texte, + t_ucd_c.code, + '1'::text AS level, + '9'::text || t_ucd_c.code AS tri, + '0'::character(1) AS is_cti + FROM activite.t_ucd_c + WHERE (t_ucd_c.oid IN ( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'ucd'::text)) + ORDER BY 5; \ No newline at end of file diff --git a/db/schema2/views/v_unites_fonctionnelles_2.yaml b/db/schema2/views/v_unites_fonctionnelles_2.yaml new file mode 100644 index 0000000..0a588f2 --- /dev/null +++ b/db/schema2/views/v_unites_fonctionnelles_2.yaml @@ -0,0 +1,63 @@ +dep: + - v_listes_1 +src: | + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ('0'::text || v_listes_1.sort) || chr(1) AS code, + v_listes_1.lvl AS level, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'UF'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'UF'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'UF'::text + ) + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'UF'::text + UNION ALL + SELECT 'UF'::text || t_unites_fonctionnelles.oid::text AS oid, + (t_unites_fonctionnelles.code || ' '::text) || t_unites_fonctionnelles.texte_court AS texte, + '9'::text || t_unites_fonctionnelles.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_unites_fonctionnelles + WHERE t_unites_fonctionnelles.oid > 0 AND (t_unites_fonctionnelles.oid = ANY ((ARRAY( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'uf'::text + GROUP BY p_oids.oid)))) + ORDER BY 3, 1, 2; \ No newline at end of file diff --git a/db/schema2/views/v_unites_medicales_2.yaml b/db/schema2/views/v_unites_medicales_2.yaml new file mode 100644 index 0000000..4a4df85 --- /dev/null +++ b/db/schema2/views/v_unites_medicales_2.yaml @@ -0,0 +1,64 @@ +dep: + - v_listes_1 +src: | + ( + SELECT v_listes_1.liste_id_combo AS oid, + v_listes_1.texte, + ('0'::text || v_listes_1.sort) || chr(1) AS code, + v_listes_1.lvl AS level, + CASE + WHEN v_listes_1.is_cti = '1'::text OR v_listes_1.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.v_listes_1 + WHERE v_listes_1.table_code = 'UM'::text AND v_listes_1.lvl <> '0'::text + UNION ALL ( + SELECT ('LC'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes.oid::text AS oid, + t_classes.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text)) AS code, + '1'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'UM'::text + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || t_classes_sections.oid::text AS oid, + t_classes_sections.texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || t_classes_sections.code) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_classes_sections, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_classes_sections.classe_id = t_classes.oid AND t_listes_tables.code = 'UM'::text + ) + UNION ALL + SELECT ('LS'::text || lpad(t_classes.sequence::text, 2, '0'::text)) || '0'::text AS oid, + 'Section non attribuée'::character varying AS texte, + '2'::text || btrim(rpad(lpad(t_classes.sequence::text, 2, '0'::text), 10, ' '::text) || chr(255)) AS code, + '2'::text AS level, + CASE + WHEN t_classes.is_cti = '1'::bpchar OR t_classes.code ~~ 'CTI_%'::text THEN '1'::character(1) + ELSE '0'::character(1) + END AS is_cti + FROM activite.t_classes, + activite.t_listes_tables + WHERE t_classes.table_id = t_listes_tables.oid AND t_listes_tables.code = 'UM'::text + ) UNION + SELECT 'UM'::text || t_unites_medicales.oid::text AS oid, + (t_unites_medicales.code || ' '::text) || t_unites_medicales.texte_court AS texte, + '9'::text || t_unites_medicales.code AS code, + '1'::text AS level, + '0'::character(1) AS is_cti + FROM activite.t_unites_medicales + WHERE t_unites_medicales.oid > 0 AND (t_unites_medicales.oid = ANY ((ARRAY( SELECT p_oids.oid + FROM activite.p_oids + WHERE p_oids.code_table = 'um'::text + GROUP BY p_oids.oid)))) + ORDER BY 3, 1, 2; \ No newline at end of file diff --git a/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_clinique/acti000061.txt b/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_clinique/acti000061.txt new file mode 100755 index 0000000..21aebb1 --- /dev/null +++ b/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_clinique/acti000061.txt @@ -0,0 +1,23 @@ +====== Doc. Activité facturée et valorisée clinique ====== + +//[[_wiki_utilisateur_perso:activite_facturee_et_valorisee_aa99aa_activite_clinique_aa99aa_acti000061|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_facturee_et_valorisee_aa99aa_activite_clinique_aa99aa_acti000061}} + + +Les vues du thème Activité Facturée et Valorisée€ permettent d'analyser la décomposition du Chiffre d'affaires Clinique des dossiers sur une période . + +Ce CA contrairement à celui issu du module PMSI tient compte de l'intégralité des montants facturés dans la partie haute du S3404 (suppléments compris) partie mutuelle et patient également. + +Le chiffre peut être calculé sur l'Activité réelle de la période ( du 1er au 31) avec un prorata de la facture sur cette période . + +On peut calculer aussi le chiffre d'affaires par rapport a la date de sortie du dossiers comme dans le Pmsi par exemple. la totalité du chiffre d'affaires du dossier est alors prise en compte dans le mois ou le dossier est sorti. + +On peut également analyser le chiffre d'affaires sur la date de facture ou sur la date des ventes ce qui correspond aux montants comptabilisés ( journal des ventes) + +On peut analyser les dossiers facturés ou bien les sortis non facturés et les présents. + +Dans le cas ou le dossier n'est pas facturé Cti le valorise suivant un prix moyen en fonction du type de dossier, du médecin responsable et de la durée (voir doc … PONG\ctisante\NonEBP\Opérationnel\Documentation\Valorisation sorties non facturées) + + + + diff --git a/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_clinique/start.txt b/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_clinique/start.txt new file mode 100644 index 0000000..41a5cf3 --- /dev/null +++ b/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_clinique/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>10}} +====== Activité - Clinique ====== + diff --git a/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_honoraire/acti000078.txt b/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_honoraire/acti000078.txt new file mode 100755 index 0000000..4e8e678 --- /dev/null +++ b/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_honoraire/acti000078.txt @@ -0,0 +1,19 @@ +====== Doc. Activité facturée et valorisée honoraires ====== + + +//[[_wiki_utilisateur_perso:activite_facturee_et_valorisee_aa99aa_activite_honoraire_aa99aa_acti000078|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_facturee_et_valorisee_aa99aa_activite_honoraire_aa99aa_acti000078}} + + +Les vues du thème "Activité Facturée " permettent d'analyser la décomposition du Chiffre d'affaires Honoraire des dossiers sur une période . + +Ce CA contrairement à celui issu du module PMSI tient compte de **l'intégralité des montants facturés dans la partie basse du S3404** (dépassements compris) partie mutuelle et patient également. + +Le chiffre peut être calculé sur l'**Activité** réelle de la période ( du 1er au 31) avec un prorata de la facture sur cette période . + +On peut calculer aussi le chiffre d'affaires par rapport a **la date de sortie** du dossiers comme dans le Pmsi par exemple. la totalité du chiffre d'affaires du dossier est alors prise en compte dans le mois ou le dossier est sorti. + +On peut également analyser le chiffre d'affaires sur **la date de facture** ou sur **la date des ventes** ce qui correspond aux montants comptabilisés ( journal des ventes) + +Dans la partie honoraire il n'y a pas de valorisation des dossiers non facturés ou présent . + diff --git a/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_honoraire/start.txt b/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_honoraire/start.txt new file mode 100644 index 0000000..6fd838d --- /dev/null +++ b/dokuwiki/pages/activite/activite_facturee_et_valorisee/activite_honoraire/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>20}} +====== Activité - Honoraires ====== + diff --git a/dokuwiki/pages/activite/activite_facturee_et_valorisee/start.txt b/dokuwiki/pages/activite/activite_facturee_et_valorisee/start.txt new file mode 100644 index 0000000..79affb0 --- /dev/null +++ b/dokuwiki/pages/activite/activite_facturee_et_valorisee/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>40}} +====== Activité facturée et valorisée ====== + diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/controle_des_encours/acti000017.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/controle_des_encours/acti000017.txt new file mode 100755 index 0000000..56ccc52 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/controle_des_encours/acti000017.txt @@ -0,0 +1,6 @@ + +//[[_wiki_utilisateur_perso:activite_aa99aa_comptabilisation_et_en_cours_aa99aa_controle_des_encours_aa99aa_acti000017|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_comptabilisation_et_en_cours_aa99aa_controle_des_encours_aa99aa_acti000017}} +===== Gestion centralisée ===== + +Le contrôle des encours permet de justifier par dossiers des montants calculé dans les encours pour les dossiers sortis ou présent a une date. \ No newline at end of file diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/controle_des_encours/start.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/controle_des_encours/start.txt new file mode 100644 index 0000000..382fa90 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/controle_des_encours/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>40}} +====== Contrôle ====== + diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/encours/acti000104.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/encours/acti000104.txt new file mode 100755 index 0000000..a371685 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/encours/acti000104.txt @@ -0,0 +1,6 @@ + +//[[_wiki_utilisateur_perso:activite_aa99aa_comptabilisation_et_en_cours_aa99aa_encours_aa99aa_acti000104|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_comptabilisation_et_en_cours_aa99aa_encours_aa99aa_acti000104}} +===== En-cours ===== + +Le contrôle des encours permet de justifier par dossiers des montants calculé dans les encours pour les dossiers sortis ou présent a une date. \ No newline at end of file diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/encours/start.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/encours/start.txt new file mode 100644 index 0000000..429d3e6 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/encours/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>1}} +====== En-cours ====== + diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/evaluation_des_en_cours/acti000105.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/evaluation_des_en_cours/acti000105.txt new file mode 100755 index 0000000..b6fff74 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/evaluation_des_en_cours/acti000105.txt @@ -0,0 +1,6 @@ + +//[[_wiki_utilisateur_perso:activite_aa99aa_comptabilisation_et_en_cours_aa99aa_evaluation_des_en_cours_aa99aa_acti000105|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_comptabilisation_et_en_cours_aa99aa_evaluation_des_en_cours_aa99aa_acti000105}} +===== Evaluation des En-cours ===== + +Le contrôle des encours permet de justifier par dossiers des montants calculé dans les encours pour les dossiers sortis ou présent a une date. \ No newline at end of file diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/evaluation_des_en_cours/start.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/evaluation_des_en_cours/start.txt new file mode 100644 index 0000000..72c00b2 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/evaluation_des_en_cours/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>20}} +====== Evaluation des en-cours ====== + diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/export/acti000007.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/export/acti000007.txt new file mode 100755 index 0000000..593d716 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/export/acti000007.txt @@ -0,0 +1,6 @@ + +//[[_wiki_utilisateur_perso:activite_aa99aa_comptabilisation_et_en_cours_aa99aa_export_aa99aa_acti000007|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_comptabilisation_et_en_cours_aa99aa_export_aa99aa_acti000007}} +===== Export ===== + +Le contrôle des encours permet de justifier par dossiers des montants calculé dans les encours pour les dossiers sortis ou présent a une date. \ No newline at end of file diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/export/start.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/export/start.txt new file mode 100644 index 0000000..8f0a3c2 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/export/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>30}} +====== Export ====== + diff --git a/dokuwiki/pages/activite/comptabilisation_et_en_cours/start.txt b/dokuwiki/pages/activite/comptabilisation_et_en_cours/start.txt new file mode 100644 index 0000000..54170c2 --- /dev/null +++ b/dokuwiki/pages/activite/comptabilisation_et_en_cours/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>60}} +====== Comptabilisation et En-cours ====== + diff --git a/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/acti000022.txt b/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/acti000022.txt new file mode 100755 index 0000000..5df21da --- /dev/null +++ b/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/acti000022.txt @@ -0,0 +1,8 @@ +===== Etat des comptes clients ===== + +//[[_wiki_utilisateur_perso:activite_aa99aa_compte_client_aa99aa_comptes_clients_clinique_aa99aa_acti000022|(Cr?ez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_compte_client_aa99aa_comptes_clients_clinique_aa99aa_acti000022}} + +Les vues du th?me Comptes Clients Clinique permettent d'analyser les mouvements g?n?r?s sur les comptes clients dans la partie clinique,aussi bien **les ventes que les r?glements ainsi que les soldes. + +En utilisant le regroupement par tiers Payant par exemple on peut voir les montants restant d? par caisse. \ No newline at end of file diff --git a/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/acti000085.txt b/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/acti000085.txt new file mode 100755 index 0000000..eb6792b --- /dev/null +++ b/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/acti000085.txt @@ -0,0 +1,9 @@ +===== Balance agée ===== + +//[[_wiki_utilisateur_perso:activite_aa99aa_compte_client_aa99aa_comptes_clients_clinique_aa99aa_acti000085|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_compte_client_aa99aa_comptes_clients_clinique_aa99aa_acti000085}} + +La vue du th?me Balance Ag?e permet d'analyser les montants restant d?s par rapport a la date de sortie du dossier . + +Cela permet de visualiser l'anciennet? de la cr?ance . +En fonction de la p?riode on pourra analyser annuellement ou mensuellement les restants d?s. \ No newline at end of file diff --git a/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/start.txt b/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/start.txt new file mode 100644 index 0000000..598b67c --- /dev/null +++ b/dokuwiki/pages/activite/compte_client/comptes_clients_clinique/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>10}} +====== Comptes clients - Clinique ====== + diff --git a/dokuwiki/pages/activite/compte_client/comptes_clients_honoraire/acti000089.txt b/dokuwiki/pages/activite/compte_client/comptes_clients_honoraire/acti000089.txt new file mode 100755 index 0000000..533f49a --- /dev/null +++ b/dokuwiki/pages/activite/compte_client/comptes_clients_honoraire/acti000089.txt @@ -0,0 +1,10 @@ +===== Etat des comptes clients ===== + +//[[_wiki_utilisateur_perso:activite_aa99aa_compte_client_aa99aa_comptes_clients_honoraire_aa99aa_acti000089|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_compte_client_aa99aa_comptes_clients_honoraire_aa99aa_acti000089}} + + +Les vues du th?me Comptes Clients Honoraires permettent d'analyser les mouvements g?n?r?s sur les comptes clients dans la partie honoraires,aussi bien **les ventes que les r?glements ainsi que les soldes. +** + +En utilisant le regroupement par tiers Payant par exemple on peut voir les montants restant d? par caisse aux m?decins. \ No newline at end of file diff --git a/dokuwiki/pages/activite/compte_client/comptes_clients_honoraire/start.txt b/dokuwiki/pages/activite/compte_client/comptes_clients_honoraire/start.txt new file mode 100644 index 0000000..0c681d0 --- /dev/null +++ b/dokuwiki/pages/activite/compte_client/comptes_clients_honoraire/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>20}} +====== Comptes clients - Honoraires ====== + diff --git a/dokuwiki/pages/activite/compte_client/start.txt b/dokuwiki/pages/activite/compte_client/start.txt new file mode 100644 index 0000000..6cb4069 --- /dev/null +++ b/dokuwiki/pages/activite/compte_client/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>50}} +====== Compte client ====== + diff --git a/dokuwiki/pages/activite/essentiels/acti000125.txt b/dokuwiki/pages/activite/essentiels/acti000125.txt new file mode 100755 index 0000000..2132636 --- /dev/null +++ b/dokuwiki/pages/activite/essentiels/acti000125.txt @@ -0,0 +1,5 @@ +{{indexmenu_n>1}}====== Essentiels CTI ActivitéŽ====== + +//[[_wiki_utilisateur_perso:activite_aa99aa_essentiels_aa99aa_acti000125|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_essentiels_aa99aa_acti000125}} +Essentiels \ No newline at end of file diff --git a/dokuwiki/pages/activite/essentiels/start.txt b/dokuwiki/pages/activite/essentiels/start.txt new file mode 100644 index 0000000..2ff6eca --- /dev/null +++ b/dokuwiki/pages/activite/essentiels/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>1}} +====== Essentiels Activité ====== + diff --git a/dokuwiki/pages/activite/etat_des_dossiers_superviseur_activite/acti000057.txt b/dokuwiki/pages/activite/etat_des_dossiers_superviseur_activite/acti000057.txt new file mode 100755 index 0000000..db5fc01 --- /dev/null +++ b/dokuwiki/pages/activite/etat_des_dossiers_superviseur_activite/acti000057.txt @@ -0,0 +1,10 @@ +===== Doc. superviseur ===== + +//[[_wiki_utilisateur_perso:activite_aa99aa_etat_des_dossiers_superviseur_activite_aa99aa_acti000057|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_etat_des_dossiers_superviseur_activite_aa99aa_acti000057}} + +Les vues du th?me "Etat des dossiers" permettent d'analyser la d?composition du d'un s?jour suivant son ?tat. + +A partir des **dossiers sortis sur une p?riode** ces analyses d?crivent l'?tat des lieux des services PMSI, Facturation, Exp?dition et Comptabilit?. + +Pour chaque service on retrouve le retard de traitement des dossiers, le d?lai de traitement des dossiers par le service . Le d?lai est calcul? en jours par rapport ? la date de sortie. \ No newline at end of file diff --git a/dokuwiki/pages/activite/etat_des_dossiers_superviseur_activite/start.txt b/dokuwiki/pages/activite/etat_des_dossiers_superviseur_activite/start.txt new file mode 100644 index 0000000..c238141 --- /dev/null +++ b/dokuwiki/pages/activite/etat_des_dossiers_superviseur_activite/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>30}} +====== Etat des dossiers - Superviseur d'activité ====== + diff --git a/dokuwiki/pages/activite/occupation_sejours/acti000123.txt b/dokuwiki/pages/activite/occupation_sejours/acti000123.txt new file mode 100755 index 0000000..c09ef80 --- /dev/null +++ b/dokuwiki/pages/activite/occupation_sejours/acti000123.txt @@ -0,0 +1,13 @@ +{{indexmenu_n>1}} + +===== Doc. Occupation - Séjours ===== + +//[[_wiki_utilisateur_perso:activite_aa99aa_occupation_sejours_aa99aa_acti000123|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_occupation_sejours_aa99aa_acti000123}} + +Ce point vous permet d 'analyser l'occupation de votre établissement sur une période. + +Par rapport à des secteurs géographiques et à la capacité d'accueil en termes de places ainsi que l'ouverture ou la fermeture de chambres ou de services on pourra suivre un taux d'occupation. + +On pourra aussi analyser la décomposition des séjours en nombre de journées, en ambulatoires et en séances. +Obtenir le nombre d'entrées et de sorties directes ou par mutations et le nombre de journées d'occupation des chambres particulières . \ No newline at end of file diff --git a/dokuwiki/pages/activite/occupation_sejours/localisation/acti000124.txt b/dokuwiki/pages/activite/occupation_sejours/localisation/acti000124.txt new file mode 100755 index 0000000..b906024 --- /dev/null +++ b/dokuwiki/pages/activite/occupation_sejours/localisation/acti000124.txt @@ -0,0 +1,6 @@ +===== Doc. Localisation ===== + +//[[_wiki_utilisateur_perso:activite_aa99aa_occupation_sejours_aa99aa_localisation_aa99aa_acti000124|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_occupation_sejours_aa99aa_localisation_aa99aa_acti000124}} + +Permet de justifier par ?tage le calcul du taux d'occupation jour par jour en tenant compte des fermetures de lits sur la p?riode et du nombre de jours de la p?riode. \ No newline at end of file diff --git a/dokuwiki/pages/activite/occupation_sejours/localisation/start.txt b/dokuwiki/pages/activite/occupation_sejours/localisation/start.txt new file mode 100644 index 0000000..dfa7744 --- /dev/null +++ b/dokuwiki/pages/activite/occupation_sejours/localisation/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>50}} +====== Localisation ====== + diff --git a/dokuwiki/pages/activite/occupation_sejours/presents/acti000066.txt b/dokuwiki/pages/activite/occupation_sejours/presents/acti000066.txt new file mode 100755 index 0000000..0e83d97 --- /dev/null +++ b/dokuwiki/pages/activite/occupation_sejours/presents/acti000066.txt @@ -0,0 +1,17 @@ +====== Doc. Présents ====== + +//[[_wiki_utilisateur_perso:activite_aa99aa_occupation_sejours_aa99aa_presents_aa99aa_acti000066|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_occupation_sejours_aa99aa_presents_aa99aa_acti000066}} + +===== Axe d'analyse ===== +Permet de justifier du nombre de patients pr?sents dans l'?tablissement ? une heure donn?e. + +---- + +===== Liste des indicateurs disponibles dans cette thématique ===== + \\ [[utilisation:glossaire:glossaire_indicateurs_activite#% 0 nuit /CA Cli ou % 0 nuit /CA Ets|% 0 nuit /CA Cli ou % 0 nuit /CA Ets]] + + +---- +===== Critères d'analyse ===== +{{page>doc_transverse:spe_activite:pied_de_page_doc_activite}} \ No newline at end of file diff --git a/dokuwiki/pages/activite/occupation_sejours/presents/start.txt b/dokuwiki/pages/activite/occupation_sejours/presents/start.txt new file mode 100644 index 0000000..8c7fd12 --- /dev/null +++ b/dokuwiki/pages/activite/occupation_sejours/presents/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>10}} +====== Présents ====== + diff --git a/dokuwiki/pages/activite/occupation_sejours/start.txt b/dokuwiki/pages/activite/occupation_sejours/start.txt new file mode 100644 index 0000000..3d07f3f --- /dev/null +++ b/dokuwiki/pages/activite/occupation_sejours/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>20}} +====== Occupation - Séjours ====== + diff --git a/dokuwiki/pages/activite/population/acti000132.txt b/dokuwiki/pages/activite/population/acti000132.txt new file mode 100755 index 0000000..bbcde85 --- /dev/null +++ b/dokuwiki/pages/activite/population/acti000132.txt @@ -0,0 +1,9 @@ +{{indexmenu_n>2}} +===== Analyse par âge et par sexe ===== + +//[[_wiki_utilisateur_perso:activite_aa99aa_population_aa99aa_acti000132|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_population_aa99aa_acti000132}} + +Ce point vous permet d 'analyser la patient?le de l'?tablissement selon son age et son sexe. + +On peut visualiser la pyramide des ages. \ No newline at end of file diff --git a/dokuwiki/pages/activite/population/acti000133.txt b/dokuwiki/pages/activite/population/acti000133.txt new file mode 100755 index 0000000..7c8b36f --- /dev/null +++ b/dokuwiki/pages/activite/population/acti000133.txt @@ -0,0 +1,8 @@ +{{indexmenu_n>1}} +===== Analyse par origine géographique ===== + +//[[_wiki_utilisateur_perso:activite_aa99aa_population_aa99aa_acti000133|(Créez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_population_aa99aa_acti000133}} + +Ce point permet ? partir du code postal de r?sidence du patient de juger de l'attractivit? de l'?tablissement par rapport ? un secteur g?ographique. + diff --git a/dokuwiki/pages/activite/population/start.txt b/dokuwiki/pages/activite/population/start.txt new file mode 100644 index 0000000..2736d6f --- /dev/null +++ b/dokuwiki/pages/activite/population/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>70}} +====== Population ====== + diff --git a/dokuwiki/pages/activite/qualite/benchmark/acti000096.txt b/dokuwiki/pages/activite/qualite/benchmark/acti000096.txt new file mode 100644 index 0000000..bde16a2 --- /dev/null +++ b/dokuwiki/pages/activite/qualite/benchmark/acti000096.txt @@ -0,0 +1,2 @@ + +BENCHMARK \ No newline at end of file diff --git a/dokuwiki/pages/activite/qualite/benchmark/start.txt b/dokuwiki/pages/activite/qualite/benchmark/start.txt new file mode 100644 index 0000000..7109bfe --- /dev/null +++ b/dokuwiki/pages/activite/qualite/benchmark/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>50}} +====== Benchmark ====== + diff --git a/dokuwiki/pages/activite/qualite/etudes/chambres_particulieres/acti000099.txt b/dokuwiki/pages/activite/qualite/etudes/chambres_particulieres/acti000099.txt new file mode 100755 index 0000000..283ea8a --- /dev/null +++ b/dokuwiki/pages/activite/qualite/etudes/chambres_particulieres/acti000099.txt @@ -0,0 +1,3 @@ +===== Axe d'analyse ===== + +Ce point permet d analyser l'occupation des chambres particulères et la facturation de ces chambres particulière en fonction de la demande du patient. diff --git a/dokuwiki/pages/activite/qualite/etudes/chambres_particulieres/start.txt b/dokuwiki/pages/activite/qualite/etudes/chambres_particulieres/start.txt new file mode 100644 index 0000000..02dd8b3 --- /dev/null +++ b/dokuwiki/pages/activite/qualite/etudes/chambres_particulieres/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>50}} +====== Chambres particulières ====== + diff --git a/dokuwiki/pages/activite/qualite/etudes/forfaits/acti000102.txt b/dokuwiki/pages/activite/qualite/etudes/forfaits/acti000102.txt new file mode 100644 index 0000000..70a3adc --- /dev/null +++ b/dokuwiki/pages/activite/qualite/etudes/forfaits/acti000102.txt @@ -0,0 +1,2 @@ + +FORFAITS \ No newline at end of file diff --git a/dokuwiki/pages/activite/qualite/etudes/forfaits/start.txt b/dokuwiki/pages/activite/qualite/etudes/forfaits/start.txt new file mode 100644 index 0000000..9189b64 --- /dev/null +++ b/dokuwiki/pages/activite/qualite/etudes/forfaits/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>50}} +====== Forfaits ====== + diff --git a/dokuwiki/pages/activite/qualite/etudes/interventions/acti00091.txt b/dokuwiki/pages/activite/qualite/etudes/interventions/acti00091.txt new file mode 100755 index 0000000..83f3ff3 --- /dev/null +++ b/dokuwiki/pages/activite/qualite/etudes/interventions/acti00091.txt @@ -0,0 +1,4 @@ +===== Axe d'analyse ===== + +Ce point permet à partir d' une liste d'actes considérés comme étant fait bloc de déterminer un nombre d'intervention + diff --git a/dokuwiki/pages/activite/qualite/etudes/interventions/start.txt b/dokuwiki/pages/activite/qualite/etudes/interventions/start.txt new file mode 100644 index 0000000..1e50ca1 --- /dev/null +++ b/dokuwiki/pages/activite/qualite/etudes/interventions/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>50}} +====== Interventions ====== + diff --git a/dokuwiki/pages/activite/qualite/etudes/start.txt b/dokuwiki/pages/activite/qualite/etudes/start.txt new file mode 100644 index 0000000..0a39297 --- /dev/null +++ b/dokuwiki/pages/activite/qualite/etudes/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>50}} +====== Etudes ====== + diff --git a/dokuwiki/pages/activite/qualite/expert/acti000128.txt b/dokuwiki/pages/activite/qualite/expert/acti000128.txt new file mode 100755 index 0000000..182fe94 --- /dev/null +++ b/dokuwiki/pages/activite/qualite/expert/acti000128.txt @@ -0,0 +1,9 @@ +===== Axe d'analyse ===== + +Ce point permet de faire des contrôles de qualités sur les données récupérées dans l'activité. + +on va vérifier la cohérence des données et signaler les anomalies suivant leurs gravités. + +Les séjours signalés en anomalie devront être corrigés ou bien ignorés en fonction du problème. + + diff --git a/dokuwiki/pages/activite/qualite/expert/start.txt b/dokuwiki/pages/activite/qualite/expert/start.txt new file mode 100644 index 0000000..46c8f9d --- /dev/null +++ b/dokuwiki/pages/activite/qualite/expert/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>50}} +====== Expert ====== + diff --git a/dokuwiki/pages/activite/qualite/start.txt b/dokuwiki/pages/activite/qualite/start.txt new file mode 100644 index 0000000..da3dd91 --- /dev/null +++ b/dokuwiki/pages/activite/qualite/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>80}} +====== Qualité ====== + diff --git a/dokuwiki/pages/activite/recherche_par_criteres/acti000033.txt b/dokuwiki/pages/activite/recherche_par_criteres/acti000033.txt new file mode 100755 index 0000000..68d7138 --- /dev/null +++ b/dokuwiki/pages/activite/recherche_par_criteres/acti000033.txt @@ -0,0 +1,4 @@ + +//[[_wiki_utilisateur_perso:activite_aa99aa_recherche_par_criteres_aa99aa_acti000033|(Cr?ez votre propre commentaire)]]// +{{page>_wiki_utilisateur_perso:activite_aa99aa_recherche_par_criteres_aa99aa_acti000033}} +recherche par crit?res \ No newline at end of file diff --git a/dokuwiki/pages/activite/recherche_par_criteres/start.txt b/dokuwiki/pages/activite/recherche_par_criteres/start.txt new file mode 100644 index 0000000..a419e06 --- /dev/null +++ b/dokuwiki/pages/activite/recherche_par_criteres/start.txt @@ -0,0 +1,3 @@ +{{indexmenu_n>90}} +====== Recherches par critères ====== + diff --git a/dokuwiki/pages/activite/sidebar.txt b/dokuwiki/pages/activite/sidebar.txt new file mode 100644 index 0000000..399c571 --- /dev/null +++ b/dokuwiki/pages/activite/sidebar.txt @@ -0,0 +1,5 @@ + + +[[..start|Retour à l'accueil]] + +{{indexmenu>:activite#1|js#bw.png navbar msort nsort noscroll maxjs#1 skipfile=/:sidebar$|pmsi000033|pmsi000214|pmsi000034|pmsi000035|pmsi000230|pmsi000224|pmsi000269|pmsi000030|pmsi000031|pmsi000032|pmsi000219|pmsi000021|pmsi000022|pmsi000023|pmsi000218|pmsi000017|pmsi000018|pmsi000019|pmsi000215|pmsi000026|pmsi000027|pmsi000028|pmsi000221|pmsi000081|pmsi000082|pmsi000083|pmsi000216|pmsi000173|pmsi000174|pmsi000175|pmsi000173|pmsi000223|pmsi000147|pmsi000148|pmsi000149|pmsi000217|pmsi000115|pmsi000116|pmsi000117|pmsi000227|pmsi000228|pmsi000010|pmsi000036|pmsi000037|pmsi000038|pmsi000213/}} \ No newline at end of file diff --git a/dokuwiki/pages/activite/start.txt b/dokuwiki/pages/activite/start.txt new file mode 100644 index 0000000..05af0dd --- /dev/null +++ b/dokuwiki/pages/activite/start.txt @@ -0,0 +1,13 @@ +{{indexmenu_n>2}} +====== Module Activité ====== + +---- + + +===== Bienvenue dans la documentation du module Activite. ===== + + + + * Vous retrouvez la documentation avec une arborescence identique à celle du menu de votre infocentre i-CTI. + + * Pour une documentation générale sur les principes de fonctionnement de i-CTI merci de vous référer à la section: "Fonctionnement de i-CTI" \ No newline at end of file diff --git a/dokuwiki/pages/spe/def_donnes_significative.txt b/dokuwiki/pages/spe/def_donnes_significative.txt new file mode 100644 index 0000000..6d55249 --- /dev/null +++ b/dokuwiki/pages/spe/def_donnes_significative.txt @@ -0,0 +1,3 @@ +====== Données significatives ====== + +Ce pavé permet de cibler une partie de votre activité selon des critères que vous déterminez. diff --git a/dokuwiki/pages/spe/def_filtres_passages.txt b/dokuwiki/pages/spe/def_filtres_passages.txt new file mode 100644 index 0000000..cbcc7cd --- /dev/null +++ b/dokuwiki/pages/spe/def_filtres_passages.txt @@ -0,0 +1,3 @@ +====== Filtres Passages ====== + +Permet de sélectionner … \ No newline at end of file diff --git a/dokuwiki/pages/spe/def_filtres_prestations.txt b/dokuwiki/pages/spe/def_filtres_prestations.txt new file mode 100644 index 0000000..daa7eca --- /dev/null +++ b/dokuwiki/pages/spe/def_filtres_prestations.txt @@ -0,0 +1,3 @@ +====== Filtres Prestations====== + +Permet … \ No newline at end of file diff --git a/dokuwiki/pages/spe/def_filtres_sejours.txt b/dokuwiki/pages/spe/def_filtres_sejours.txt new file mode 100644 index 0000000..5081856 --- /dev/null +++ b/dokuwiki/pages/spe/def_filtres_sejours.txt @@ -0,0 +1,3 @@ +====== Filtres Séjours ====== + +Permet \ No newline at end of file diff --git a/dokuwiki/pages/spe/def_regroupements.txt b/dokuwiki/pages/spe/def_regroupements.txt new file mode 100644 index 0000000..3667dc3 --- /dev/null +++ b/dokuwiki/pages/spe/def_regroupements.txt @@ -0,0 +1,158 @@ +===== Regroupements possibles dans le PMSI MCO: ===== + +Vous avez la possibilité de regrouper selon: + *un spectre large pour cela il suffit de cliquer sur la racine, par exemple GHM ou alors GHS, Age, etc. + *un spectre plus focalisé, pour cela,il faut dérouler l'arborescence et choisir le niveau de regroupement souhaité. + +Voici les différents regroupements proposés dans le PMSI MCO, vous pouvez consulter le [[utilisation:glossaire:glossaire_pmsi|glossaire]] pour vous aider dans le choix du regroupement. + +++++ GHM | + * Domaines d'activité ATIH (CLASSE) + * Groupes d'activité ATIH (CLASSE) + * Groupes de planification ATIH (CLASSE) + * Sévérités CPOM (CLASSE) + * Sévérités MAHOS (CLASSE) + * C.A.S. (C/K/X/N/O/S) + * ASo (M/C/O) + * I.P.A. + * Racine I.P.A. + * CMD + * Pôle OAP + * Ligne OAP + * Racine de GHM + * Sévérité GHM + * Classifications V10 + * Groupe activités +++++ + +GHS + +PARAMETRE_PERSONNALISE_RSS_CLASSES + +++++ Type facturation | + * Type facturation (CLASSE) +++++ +++++ Médecin RSS | + * Spécialité médecin RSS +Il s'agit de choisir soit un médecin nommément soit une spécialité de médecin attribuée par rapport à son numéro d'inscription à l'ordre mais qui peut être modifié dans les paramètres pour créer des spécialités internes. Le médecin concerné est celui à qui le rss à été attribué dont il est responsable. + + +Saisie de code permet de sélectionner plusieurs médecins à partir de leurs codes dans référentiel médecins + +++++ +++++ Diagnostic principal | + * Racine Diagnostic principal +++++ +++++ Diagnostic relié | + * Racine Diagnostic relié + * DIAGR_CLASSES +++++ +++++ Cancéro. soumise à seuil (principal) | + * Racine Seuil Cancéro. (principal) +++++ +++++ Acte principal | + * Gestes marqueurs MSAP 2009 (CLASSE) + * Gestes marqueurs MSAP 2010 (CLASSE) + * Gestes marqueurs MSAP 2012 (CLASSE) + * Gestes marqueurs nationaux 2012 (CLASSE) + * Geste Marqueur principal +++++ +++++ Unité principale | + * UP_CLASSES +++++ +++++ Durée de séjour | +Permet de sélectionner des Rss à partir du nombre de nuit. + - 0 nuit = ambulatoire ; + - 1 nuit et + = hospitalisés. +On peut également choisir une durée ou bien créer des tranches ; « intervalle » vous permet de créer les bornes que vous souhaitez. +Séance permet de ne prendre que les rss défini avec séance ou de les exclure (sauf séances). + + +++++ + +++++ Mode d'entrée | +Correspond au mode d'entrée dans l'unité; Au sein de la notion générale de transfert au sens des codes de la sécurité sociale et de la santé publique, le PMSI distingue la mutation et le transfert. + - Code 6 Mutation ; + - Code 7 Transfert définitif ; + - Code 8 Domicile ; + - Code 0 Transfert provisoire. + + +---- + + + * Provenance (Si le mode d'entrée le nécessite) +En cas d’entrée par mutation ou transfert(définitif ou provisoire). + - Code 1 En provenance d'une unité de MCO sauf unité de réanimation ; + - Code R En provenance d'une unité de réanimation ; + - Code 2 En provenance d'une unité de de soins de suite et de réadaptation ; + - Code 3 En provenance d'une unité de de soins de longue durée ; + - Code 4 En provenance d'une unité de psychiatrie ; + - Code 6 En provenance d'hospitalisation à domicile. +En cas d’entrée à partir du domicile. + - Code 5 Avec passage dans la structure d'accueil des urgences de l'établissement ; + - Code 7 En provenance d'une structure d'hébergement médicosociale ; + +++++ + + +++++ Mode de sortie | +Au sein de la notion générale de transfert au sens des codes de la sécurité sociale et de la santé publique, le PMSI distingue la mutation et le transfert. + - Code 6 Mutation ; + - Code 7 Transfert définitif ; + - Code 8 Domicile ; + - Code 9 décès ; + - Code 0 Transfert provisoire. + + +---- + + + * Destination (Si le mode de sortie le nécessite) +En cas de sortie par mutation ou transfert(définitif ou provisoire). + - Code 1 Vers une unité de MCO ; + - Code 2 Vers une unité de de soins de suite et de réadaptation ; + - Code 3 Vers une unité de de soins de longue durée ; + - Code 4 Vers une unité de psychiatrie ; + - Code 6 Vers l'hospitalisation à domicile. +En cas d’entrée à partir du domicile. + - Code 7 Vers une structure d'hébergement médicosociale ; + +++++ +++++ Code postal | + * Département + * Code géographique PMSI + * Territoire de santé +++++ +++++ Facturation AMO | + * Grand régime + * Nature assurance + * Type Contrat OC + * Forfait journalier + * Exo. ticket modérateur + * Facturation 18 euros + * Taux remboursement +++++ +++++ Age | + * Tranches d'âge +++++ +++++ Année-Mois sortie | + * Année-Trimestre sortie + * Année sortie + * Mois sortie + * Trimestre sortie +++++ + +++++ Traitement e-PMSI | +Pour les établissements disposant du module i-CTI Fil de l'Eau, il est désormais possible d'importer automatiquement chaque nuit les dossiers groupés non expédiés à ePMSI. + +Cette option permet alors de filtrer les dossiers en fonction de leur état : +- Transmis à ePmsi uniquement (critère par défaut si module PMSI sans le Fil de l'Eau) ; +- Encours groupés uniquement. Ne tient compte que des dossiers groupés non encore expédiés à la plate forme ePmsi ; +-Dossiers expédiés et encours groupés ou validés (si notion traitée par le prestataire dans le logiciel Pmsi) tient compte de la totalité de votre base pmsi. +++++ + +++++ FINESS | +Permet de choisir dans une base consolidée (pour un groupe par exemple) le finess de l'établissement dont on souhaite analyser les informations. + +++++ diff --git a/dokuwiki/pages/spe/pied_de_page_doc_activite.txt b/dokuwiki/pages/spe/pied_de_page_doc_activite.txt new file mode 100644 index 0000000..97dfb84 --- /dev/null +++ b/dokuwiki/pages/spe/pied_de_page_doc_activite.txt @@ -0,0 +1,14 @@ +{{page>doc_transverse:def_vues}} + +++++ Paramètres et sélections| +{{page>doc_transverse:spe_activite:structure_parametres_et_selections&inline}} +++++ +++++ Regroupements possibles dans le module ACTIVITE| +{{page>doc_transverse:spe_activte:def_regroupements&inline}} +++++ +++++ Activité significative| +{{page>doc_transverse:spe_activite:def_act_significative&inline}} +++++ +++++ Filtres séjours| +{{page>doc_transverse:spe_activite:def_filtres&inline}} +++++ \ No newline at end of file diff --git a/dokuwiki/pages/spe/structure_parametres_et_selections.txt b/dokuwiki/pages/spe/structure_parametres_et_selections.txt new file mode 100644 index 0000000..5dae9a4 --- /dev/null +++ b/dokuwiki/pages/spe/structure_parametres_et_selections.txt @@ -0,0 +1,12 @@ +====== Paramètres et sélections ====== + +La fenêtre **Paramètres et sélections** est l'outil qui va vous permettre d'élaborer vos requêtes. + +On va trouver différents chapitres en fonction de la thématique d’analyse: + + * Paramètres de l'analyse ; + * Ce point est détaillé dans la documentation générale i-CTI. + * Données significative ; + * Divers filtres ; + + diff --git a/dummy b/dummy new file mode 100644 index 0000000..5d63131 --- /dev/null +++ b/dummy @@ -0,0 +1 @@ +activite/v25.9 \ No newline at end of file diff --git a/import_activite/iCTI_calcul_encours.XML b/import_activite/iCTI_calcul_encours.XML new file mode 100644 index 0000000..1bd1f04 --- /dev/null +++ b/import_activite/iCTI_calcul_encours.XML @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + 0 AND + p_factures_lignes_c.compte_produit_id IS DISTINCT FROM + CASE + WHEN est_compte_force = '1' THEN t_service_rubrique.compte_id + WHEN p_factures_lignes_c.compte_produit_id = 0 THEN t_service_rubrique.compte_id + ELSE p_factures_lignes_c.compte_produit_id END + ; + + -- Déduction depuis historique service rubrique + DROP TABLE IF EXISTS w_factures_lignes_c_compte_serrub; + CREATE TEMP TABLE w_factures_lignes_c_compte_serrub AS + SELECT rubrique_facturation_id, service_facturation_id, (MAX(Array[date_vente::text || to_char(nb,'FM000000000000'), compte_produit_id::text]))[2]::bigint AS compte_produit_id + FROM + ( + SELECT rubrique_facturation_id, service_facturation_id, date(date_trunc('month',date_vente)) AS date_vente, compte_produit_id, count(*) AS nb + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_lieux ON p_factures_lignes_c.lieu_id = t_lieux.oid + WHERE compte_produit_id <> 0 AND date_vente < '20991231' + GROUP BY 1,2,3,4 + ) subview + GROUP BY 1,2; + + CREATE INDEX w_factures_lignes_c_compte_serrub_i1 + ON w_factures_lignes_c_compte_serrub + USING btree + (rubrique_facturation_id); + + + UPDATE activite.p_factures_lignes_c + SET compte_produit_id = w_factures_lignes_c_compte_serrub.compte_produit_id + FROM w_factures_lignes_c_compte_serrub, + activite.t_lieux + WHERE p_factures_lignes_c.compte_produit_id = 0 AND + p_factures_lignes_c.lieu_id = t_lieux.oid AND + p_factures_lignes_c.rubrique_facturation_id = w_factures_lignes_c_compte_serrub.rubrique_facturation_id AND + t_lieux.service_facturation_id = w_factures_lignes_c_compte_serrub.service_facturation_id; + + -- Déduction depuis historique service prestation + DROP TABLE IF EXISTS w_factures_lignes_c_compte_serpre; + CREATE TEMP TABLE w_factures_lignes_c_compte_serpre AS + SELECT prestation_id, service_facturation_id, (MAX(Array[date_vente::text || to_char(nb,'FM000000000000'), compte_produit_id::text]))[2]::bigint AS compte_produit_id + FROM + ( + SELECT prestation_id, service_facturation_id, date(date_trunc('month',date_vente)) AS date_vente, compte_produit_id, count(*) AS nb + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + JOIN activite.t_lieux ON p_factures_lignes_c.lieu_id = t_lieux.oid + WHERE compte_produit_id <> 0 AND date_vente < '20991231' + GROUP BY 1,2,3,4 + ) subview + GROUP BY 1,2; + + CREATE INDEX w_factures_lignes_c_compte_serpre_i1 + ON w_factures_lignes_c_compte_serpre + USING btree + (prestation_id); + + UPDATE activite.p_factures_lignes_c + SET compte_produit_id = w_factures_lignes_c_compte_serpre.compte_produit_id + FROM w_factures_lignes_c_compte_serpre, + activite.t_lieux + WHERE p_factures_lignes_c.compte_produit_id = 0 AND + p_factures_lignes_c.lieu_id = t_lieux.oid AND + p_factures_lignes_c.prestation_id = w_factures_lignes_c_compte_serpre.prestation_id AND + t_lieux.service_facturation_id = w_factures_lignes_c_compte_serpre.service_facturation_id; + + -- Déduction depuis historique rubrique uniquement + DROP TABLE IF EXISTS w_factures_lignes_c_compte_rub; + CREATE TEMP TABLE w_factures_lignes_c_compte_rub AS + SELECT rubrique_facturation_id, (MAX(Array[date_vente::text || to_char(nb,'FM000000000000'), compte_produit_id::text]))[2]::bigint AS compte_produit_id + FROM + ( + SELECT rubrique_facturation_id, date(date_trunc('month',date_vente)) AS date_vente, compte_produit_id, count(*) AS nb + FROM activite.p_factures_lignes_c + JOIN activite.p_factures ON p_factures_lignes_c.no_facture = p_factures.no_facture + WHERE compte_produit_id <> 0 AND date_vente < '20991231' + GROUP BY 1,2,3 + ) subview + GROUP BY 1; + + CREATE INDEX w_factures_lignes_c_compte_rub_i1 + ON w_factures_lignes_c_compte_rub + USING btree + (rubrique_facturation_id); + + + UPDATE activite.p_factures_lignes_c + SET compte_produit_id = w_factures_lignes_c_compte_rub.compte_produit_id + FROM w_factures_lignes_c_compte_rub + WHERE p_factures_lignes_c.compte_produit_id = 0 AND + p_factures_lignes_c.rubrique_facturation_id = w_factures_lignes_c_compte_rub.rubrique_facturation_id; + + + + -- Forcage depuis parametrage + UPDATE activite.p_factures_encours_lignes_c + SET compte_produit_id = + CASE + WHEN est_compte_force = '1' THEN t_service_rubrique.compte_id + WHEN p_factures_encours_lignes_c.compte_produit_id = 0 THEN t_service_rubrique.compte_id + ELSE p_factures_encours_lignes_c.compte_produit_id END + FROM activite.t_lieux, + activite.t_service_rubrique + WHERE lieu_id = t_lieux.oid AND + t_service_rubrique.service_facturation_id = t_lieux.service_facturation_id AND + t_service_rubrique.rubrique_facturation_id = p_factures_encours_lignes_c.rubrique_facturation_id AND + t_service_rubrique.compte_id <> 0 AND + p_factures_encours_lignes_c.compte_produit_id IS DISTINCT FROM + CASE + WHEN est_compte_force = '1' THEN t_service_rubrique.compte_id + WHEN p_factures_encours_lignes_c.compte_produit_id = 0 THEN t_service_rubrique.compte_id + ELSE p_factures_encours_lignes_c.compte_produit_id END + ; + + -- Déduction depuis historiques service rubrique + UPDATE activite.p_factures_encours_lignes_c + SET compte_produit_id = w_factures_lignes_c_compte_serrub.compte_produit_id + FROM w_factures_lignes_c_compte_serrub, + activite.t_lieux + WHERE (p_factures_encours_lignes_c.compte_produit_id = 0 OR p_factures_encours_lignes_c.compte_produit_id IS NULL) AND + p_factures_encours_lignes_c.lieu_id = t_lieux.oid AND + p_factures_encours_lignes_c.rubrique_facturation_id = w_factures_lignes_c_compte_serrub.rubrique_facturation_id AND + t_lieux.service_facturation_id = w_factures_lignes_c_compte_serrub.service_facturation_id; + + -- Déduction depuis historiques service prestation + UPDATE activite.p_factures_encours_lignes_c + SET compte_produit_id = w_factures_lignes_c_compte_serpre.compte_produit_id + FROM w_factures_lignes_c_compte_serpre, + activite.t_lieux + WHERE p_factures_encours_lignes_c.compte_produit_id = 0 AND + p_factures_encours_lignes_c.lieu_id = t_lieux.oid AND + p_factures_encours_lignes_c.prestation_id = w_factures_lignes_c_compte_serpre.prestation_id AND + t_lieux.service_facturation_id = w_factures_lignes_c_compte_serpre.service_facturation_id; + + -- Déduction depuis historiques rubrique uniquement + UPDATE activite.p_factures_encours_lignes_c + SET compte_produit_id = w_factures_lignes_c_compte_rub.compte_produit_id + FROM w_factures_lignes_c_compte_rub + WHERE (p_factures_encours_lignes_c.compte_produit_id = 0 OR p_factures_encours_lignes_c.compte_produit_id IS NULL) AND + p_factures_encours_lignes_c.rubrique_facturation_id = w_factures_lignes_c_compte_rub.rubrique_facturation_id; + + + -- Maintenance rubrique_facturation CTI + SELECT activite.cti_reorganize_rubrique_facture_c('activite.p_factures_lignes_c'); + SELECT activite.cti_reorganize_rubrique_facture_c('activite.p_factures_encours_lignes_c'); + + + -- Regroupement des lignes de CP (cas de rubriques facturées deux fois sur même date pour pb tarif patient/mutuelle + DROP TABLE IF EXISTS w_cp_double; + CREATE TEMP TABLE w_cp_double AS + SELECT + no_facture, date_debut, date_fin, prestation_id, rubrique_facturation_id, nb_rubrique, nb_prestation, coefficient, + SUM(prix_unitaire) AS prix_unitaire, + round(base.cti_division(SUM(montant_facture_1),SUM(montant_facture))*100.00,0) AS taux_1, + round(base.cti_division(SUM(montant_facture_2),SUM(montant_facture))*100.00,0) AS taux_2, + round(base.cti_division(SUM(montant_facture_22),SUM(montant_facture))*100.00,0) AS taux_22, + round(base.cti_division(SUM(montant_facture_0),SUM(montant_facture))*100.00,0) AS taux_0, + SUM(montant_facture) AS montant_facture, + SUM(montant_facture_0) AS montant_facture_0, + SUM(montant_facture_1) AS montant_facture_1, + SUM(montant_facture_2) AS montant_facture_2, + SUM(montant_facture_22) AS montant_facture_22, + SUM(montant_comptabilise) AS montant_comptabilise, + SUM(montant_comptabilise_0) AS montant_comptabilise_0, + SUM(montant_comptabilise_1) AS montant_comptabilise_1, + SUM(montant_comptabilise_2) AS montant_comptabilise_2, + SUM(montant_comptabilise_22) AS montant_comptabilise_22, + SUM(montant_encours) AS montant_encours, + SUM(montant_encours_0) AS montant_encours_0, + SUM(montant_encours_1) AS montant_encours_1, + SUM(montant_encours_2) AS montant_encours_2, + SUM(montant_encours_22) AS montant_encours_22, + + MIN(p_factures_lignes_c.CTID) AS keepCTID + FROM activite.p_factures_lignes_c + WHERE rubrique_facturation_id IN (SELECT to_id FROM activite.v_listes_3 WHERE liste_code = 'CTI_SHO_R') AND + montant_facture <> 0 + GROUP BY 1,2,3,4,5,6,7,8 + HAVING count(*) > 1; + + + INSERT INTO w_cp_double + SELECT + no_facture, date_debut, date_fin, MAX(prestation_id) AS prestation_id, rubrique_facturation_id, 1 AS nb_rubrique, 1 AS nb_prestation, 1 AS coefficient, + SUM(montant_encours) AS prix_unitaire, + round(base.cti_division(SUM(montant_facture_1),SUM(montant_facture))*100.00,0) AS taux_1, + round(base.cti_division(SUM(montant_facture_2),SUM(montant_facture))*100.00,0) AS taux_2, + round(base.cti_division(SUM(montant_facture_22),SUM(montant_facture))*100.00,0) AS taux_22, + round(base.cti_division(SUM(montant_facture_0),SUM(montant_facture))*100.00,0) AS taux_0, + SUM(montant_facture) AS montant_facture, + SUM(montant_facture_0) AS montant_facture_0, + SUM(montant_facture_1) AS montant_facture_1, + SUM(montant_facture_2) AS montant_facture_2, + SUM(montant_facture_22) AS montant_facture_22, + SUM(montant_comptabilise) AS montant_comptabilise, + SUM(montant_comptabilise_0) AS montant_comptabilise_0, + SUM(montant_comptabilise_1) AS montant_comptabilise_1, + SUM(montant_comptabilise_2) AS montant_comptabilise_2, + SUM(montant_comptabilise_22) AS montant_comptabilise_22, + SUM(montant_encours) AS montant_encours, + SUM(montant_encours_0) AS montant_encours_0, + SUM(montant_encours_1) AS montant_encours_1, + SUM(montant_encours_2) AS montant_encours_2, + SUM(montant_encours_22) AS montant_encours_22, + + MIN(p_factures_lignes_c.CTID) AS keepCTID + FROM activite.p_factures_lignes_c + WHERE rubrique_facturation_id IN (SELECT to_id FROM activite.v_listes_3 WHERE liste_code = 'CTI_SHO_R') AND + montant_encours <> 0 + GROUP BY 1,2,3,5,6,7 + HAVING count(*) > 1; + + + UPDATE w_cp_double + SET prestation_id = subview.prestation_id + FROM + ( + SELECT rubrique_facturation_id, (MAX(ARRAY[nb,prestation_id]))[2] AS prestation_id + FROM + ( + SELECT rubrique_facturation_id, prestation_id, count(*) AS nb + FROM w_cp_double + GROUP BY 1,2) subview + GROUP BY 1 + ) subview + WHERE w_cp_double.rubrique_facturation_id = subview.rubrique_facturation_id AND + w_cp_double.prestation_id <> subview.prestation_id; + + CREATE INDEX w_cp_double_i1 + ON w_cp_double + USING btree + (no_facture); + + DELETE FROM activite.p_factures_lignes_c + USING w_cp_double + WHERE p_factures_lignes_c.no_facture = w_cp_double.no_facture AND + p_factures_lignes_c.date_debut = w_cp_double.date_debut AND + p_factures_lignes_c.date_fin = w_cp_double.date_fin AND + (p_factures_lignes_c.prestation_id = w_cp_double.prestation_id OR w_cp_double.montant_encours <> 0) AND + p_factures_lignes_c.rubrique_facturation_id = w_cp_double.rubrique_facturation_id AND + (p_factures_lignes_c.nb_rubrique = w_cp_double.nb_rubrique OR w_cp_double.montant_encours <> 0) AND + (p_factures_lignes_c.nb_prestation = w_cp_double.nb_prestation OR w_cp_double.montant_encours <> 0) AND + (p_factures_lignes_c.coefficient = w_cp_double.coefficient OR w_cp_double.montant_encours <> 0) AND + p_factures_lignes_c.CTID <> keepCTID; + + + UPDATE activite.p_factures_lignes_c SET + prestation_id = w_cp_double.prestation_id, + nb_rubrique = w_cp_double.nb_rubrique, + nb_prestation = w_cp_double.nb_prestation, + coefficient = w_cp_double.coefficient, + prix_unitaire = w_cp_double.prix_unitaire, + taux_0 = w_cp_double.taux_0, + taux_1 = w_cp_double.taux_1, + taux_2 = w_cp_double.taux_2, + taux_22 = w_cp_double.taux_22, + montant_facture = w_cp_double.montant_facture, + montant_facture_0 = w_cp_double.montant_facture_0, + montant_facture_1 = w_cp_double.montant_facture_1, + montant_facture_2 = w_cp_double.montant_facture_2, + montant_facture_22 = w_cp_double.montant_facture_22, + montant_comptabilise = w_cp_double.montant_comptabilise, + montant_comptabilise_0 = w_cp_double.montant_comptabilise_0, + montant_comptabilise_1 = w_cp_double.montant_comptabilise_1, + montant_comptabilise_2 = w_cp_double.montant_comptabilise_2, + montant_comptabilise_22 = w_cp_double.montant_comptabilise_22, + montant_encours = w_cp_double.montant_encours, + montant_encours_0 = w_cp_double.montant_encours_0, + montant_encours_1 = w_cp_double.montant_encours_1, + montant_encours_2 = w_cp_double.montant_encours_2, + montant_encours_22 = w_cp_double.montant_encours_22 + FROM w_cp_double + WHERE p_factures_lignes_c.no_facture = w_cp_double.no_facture AND + p_factures_lignes_c.date_debut = w_cp_double.date_debut AND + p_factures_lignes_c.date_fin = w_cp_double.date_fin AND + (p_factures_lignes_c.prestation_id = w_cp_double.prestation_id OR w_cp_double.montant_encours <> 0) AND + p_factures_lignes_c.rubrique_facturation_id = w_cp_double.rubrique_facturation_id AND + (p_factures_lignes_c.nb_rubrique = w_cp_double.nb_rubrique OR w_cp_double.montant_encours <> 0) AND + (p_factures_lignes_c.nb_prestation = w_cp_double.nb_prestation OR w_cp_double.montant_encours <> 0) AND + (p_factures_lignes_c.coefficient = w_cp_double.coefficient OR w_cp_double.montant_encours <> 0); + + + + + -- Reconstitution factures références + DROP TABLE IF EXISTS w_factures_reference; + CREATE TEMP TABLE w_factures_reference AS + SELECT + no_facture_reference, + + SUM(p_factures.montant_encours_c + p_factures.montant_encours_h) AS montant_encours, + SUM(p_factures.montant_encours_c) AS montant_encours_c, + SUM(p_factures.montant_encours_h) AS montant_encours_h, + SUM(p_factures.montant_encours_0_c + p_factures.montant_encours_0_h) AS montant_encours_0, + SUM(p_factures.montant_encours_0_c) AS montant_encours_0_c, + SUM(p_factures.montant_encours_0_h) AS montant_encours_0_h, + SUM(p_factures.montant_encours_1_c + p_factures.montant_encours_1_h) AS montant_encours_1, + SUM(p_factures.montant_encours_1_c) AS montant_encours_1_c, + SUM(p_factures.montant_encours_1_h) AS montant_encours_1_h, + SUM(p_factures.montant_encours_2_c + p_factures.montant_encours_2_h + p_factures.montant_encours_22_c + p_factures.montant_encours_22_h) AS montant_encours_2, + SUM(p_factures.montant_encours_2_c + p_factures.montant_encours_22_c) AS montant_encours_2_c, + SUM(p_factures.montant_encours_2_h + p_factures.montant_encours_22_h) AS montant_encours_2_h + + FROM activite.p_sejours + JOIN activite.p_factures ON p_factures.no_sejour = p_sejours.no_sejour + JOIN activite.t_lieux ON p_sejours.lieu_sortie_id = t_lieux.oid + JOIN activite.t_services_facturation ON service_facturation_id = t_services_facturation.oid + WHERE t_services_facturation.est_sans_facturation IS DISTINCT FROM '1' AND + code_prevu <> 1 + GROUP BY 1 + ; + + UPDATE activite.p_factures_reference SET + montant_encours = w_factures_reference.montant_encours, + montant_encours_c = w_factures_reference.montant_encours_c, + montant_encours_h = w_factures_reference.montant_encours_h, + montant_encours_0 = w_factures_reference.montant_encours_0, + montant_encours_0_c = w_factures_reference.montant_encours_0_c, + montant_encours_0_h = w_factures_reference.montant_encours_0_h, + montant_encours_1 = w_factures_reference.montant_encours_1, + montant_encours_1_c = w_factures_reference.montant_encours_1_c, + montant_encours_1_h = w_factures_reference.montant_encours_1_h, + montant_encours_2 = w_factures_reference.montant_encours_2, + montant_encours_2_c = w_factures_reference.montant_encours_2_c, + montant_encours_2_h = w_factures_reference.montant_encours_2_h + FROM w_factures_reference + WHERE p_factures_reference.no_facture_reference = w_factures_reference.no_facture_reference AND + p_factures_reference.montant_encours <> w_factures_reference.montant_encours + ; + + + ]]> + + + + + + + + + + + + + + diff --git a/import_activite/iCTI_calcul_encours.exe b/import_activite/iCTI_calcul_encours.exe new file mode 100644 index 0000000000000000000000000000000000000000..a3421398b7b0dad3c9f666254fd6f76b8415609c GIT binary patch literal 5391872 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ඟ%_>rh$F8OFKK*hI+Nz3?U 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

    *+O0 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 ox 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

    gH9} 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

    ;*`>ZaSyJZa@<23LS&dq3@L@Qn>`*-E<{^RPLfY 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

    !g!tzJ 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 z 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

    okf@{oHw#3sCRlWa2XR$Ni8wi!4H3@`MlMpDg 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�|dFb1RsmqA}+z%0|f;WV#XBb&8p?e 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

      dNG`1@nJd&y0>g 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 ^jI%t5Q6S+~c7^q9=z@r)#CE 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≪A@JO;jno{hpc(H^$#rr*mzfR)jq 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�qcbu@UMK2c}0_VevZ^6W(g_g%l`VlafeYJ}99 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 PP&Qm%Dcg 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�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

      xFq|OA{9_FG<`tMsF-l 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
      +<`1aNwpDg7$n4lD*BHg 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 z

      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�I2K-<3tt|=8j!86tp5-s8PS)`g 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[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 z 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

      *UUJ;BKn&QjMfrQI1h!?oLR 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�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 z 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.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