return: text lang: plpgsql parameters: p0: type: text name: i_clause p1: type: text name: i_option src: | DECLARE _i int; _new_clause text; BEGIN _new_clause = i_clause; -- Mots clés dans clause Where IF i_option = 'where' THEN _new_clause = replace(_new_clause,'[DURSEJ]','w_rss.duree_sejour'); _new_clause = regexp_replace(_new_clause, ' ET ', ' AND ', 'gi'); _new_clause = regexp_replace(_new_clause, ' OU ', ' OR ', 'gi'); _new_clause = regexp_replace(_new_clause, ' NON ', ' NOT ', 'gi'); _new_clause = replace(_new_clause,'[PREC:','w_rss_precedent.['); _new_clause = replace(_new_clause,'[ETS:','w_rss.ets_'); _new_clause = replace(_new_clause,'[AGE]','w_rss.age'); _new_clause = replace(_new_clause,'[SEXE]','w_rss.sexe'); _new_clause = replace(_new_clause,'[CMD]','w_rss.cmd_code'); _new_clause = replace(_new_clause,'[GHM3]','w_rss.ghm3'); _new_clause = replace(_new_clause,'[GHM]','w_rss.ghm_code'); _new_clause = replace(_new_clause,'[GHMRSA]','w_rss.ghmrsa_code'); _new_clause = replace(_new_clause,'[GHMRSAIN]','w_rss.ghmrsa_in_code'); _new_clause = replace(_new_clause,'[GHMSEV]','w_rss.severite_ghm_code'); _new_clause = replace(_new_clause,'[GHMCMA]','w_rss.ghm_cma'); _new_clause = replace(_new_clause,'[GHMCONF]','w_rss.confirmation_codage'); _new_clause = replace(_new_clause,'[GHM:datim_tghm]','w_rss.ghm_datim_tghm'); _new_clause = replace(_new_clause,'[GHM:datim_cti_1orj]','w_rss.ghm_datim_cti_1orj'); _new_clause = replace(_new_clause,'[GHM5:datim_conf]','w_rss.ghm5_datim_conf'); _new_clause = replace(_new_clause,'[GHS]','w_rss.ghs_code'); _new_clause = replace(_new_clause,'[REHOSPMEMEGHM]','w_rss.rehosp_meme_ghm'); _new_clause = replace(_new_clause,'[TYPSEJ]','w_rss.type_sejour'); _new_clause = replace(_new_clause,'[AGEGEST]','w_rss.age_gestationnel'); _new_clause = replace(_new_clause,'[DATEREGLES]','w_rss.date_dernieres_regles'); _new_clause = replace(_new_clause,'[DATEENTREE]','w_rss.date_entree'); _new_clause = replace(_new_clause,'[DATESORTIE]','w_rss.date_sortie'); _new_clause = replace(_new_clause,'[TAUX]','w_rss.taux_remboursement'); _new_clause = replace(_new_clause,'[EPMSI]','w_rss.traitement_epmsi'); _new_clause = replace(_new_clause,'[EXOTM]','w_rss.exoneration_tm_code'); _new_clause = replace(_new_clause,'[CCAM]','acte_code'); _new_clause = replace(_new_clause,'[CCAMP]','w_rss.acte_principal_code'); _new_clause = replace(_new_clause,'[CCAM:','acte_'); _new_clause = replace(_new_clause,'[MERE:CCAM]','acte_code'); _new_clause = replace(_new_clause,'[DIAGP]','w_rss.diagnostic_principal_code'); _new_clause = replace(_new_clause,'[DIAGP:','w_rss.diagnostic_principal_'); _new_clause = replace(_new_clause,'[DIAGR]','w_rss.diagnostic_relie_code'); _new_clause = replace(_new_clause,'[DIAGR:','w_rss.diagnostic_relie_'); _new_clause = replace(_new_clause,'[DIAGDOUBLE]','w_rss.diagnostic_double_code'); _new_clause = replace(_new_clause,'[DIAGAARRAY]','w_rss.da_array'); _new_clause = replace(_new_clause,'[MATER:acc_hors_img]','w_rss.mat_accouchement_hors_img'); _new_clause = replace(_new_clause,'[MATER:age_gest_manquant]','w_rss.mat_age_gestationnel_manquant'); _new_clause = replace(_new_clause,'[MATER:age_gest_inf_22sa]','w_rss.mat_age_gestationnel_inf_22sa'); _new_clause = replace(_new_clause,'[MATER:avec_acte_acc]','w_rss.mat_avec_acte_accouchement'); _new_clause = replace(_new_clause,'[MATER:conf_codage]','w_rss.mat_confirmation_codage'); _new_clause = replace(_new_clause,'[MATER:ecart_age_gest]','w_rss.mat_ecart_age_gestationnel'); _new_clause = replace(_new_clause,'[MATER:hors_cmd14]','w_rss.mat_hors_cmd_14'); _new_clause = replace(_new_clause,'[MATER:hors_etab]','w_rss.mat_hors_etablissement'); _new_clause = replace(_new_clause,'[DIAGA]','diagnostic_associe_code'); _new_clause = replace(_new_clause,'[DIAGA:','diagnostic_associe_'); _new_clause = replace(_new_clause,'[DIAGD]','diagnostic_documentaire_code'); _new_clause = replace(_new_clause,'[DIAGD:','diagnostic_documentaire_'); _new_clause = replace(_new_clause,'[DIAGNONCODE01]','pathologies_chroniques_non_codees{1}'); _new_clause = replace(_new_clause,'[DIAGNONCODE02]','pathologies_chroniques_non_codees{2}'); _new_clause = replace(_new_clause,'[DIAGNONCODE03]','pathologies_chroniques_non_codees{3}'); _new_clause = replace(_new_clause,'[DIAGNONCODE04]','pathologies_chroniques_non_codees{4}'); _new_clause = replace(_new_clause,'[DIAGNONCODE05]','pathologies_chroniques_non_codees{5}'); _new_clause = replace(_new_clause,'[DIAGNONCODE06]','pathologies_chroniques_non_codees{6}'); _new_clause = replace(_new_clause,'[DIAGNONCODE07]','pathologies_chroniques_non_codees{7}'); _new_clause = replace(_new_clause,'[DIAGNONCODE08]','pathologies_chroniques_non_codees{8}'); _new_clause = replace(_new_clause,'[DIAGNONCODE09]','pathologies_chroniques_non_codees{9}'); _new_clause = replace(_new_clause,'[DIAGNONCODE99]','pathologies_chroniques_non_codees{10}'); _new_clause = replace(_new_clause,'[PRESTAP]','w_rss.prestation_principale_code'); _new_clause = replace(_new_clause,'[PRESTA]','presta_code'); _new_clause = replace(_new_clause,'[PRESTA:','presta_'); _new_clause = replace(_new_clause,'[VIDHOSPTM]','w_rss.vidhosp_montant_tm'); _new_clause = replace(_new_clause,'[VIDHOSHOSBB]','w_rss.vidhosp_hospit_nouveau_ne'); _new_clause = replace(_new_clause,'[FIDES]','w_rss.valorise_fides_code'); _new_clause = replace(_new_clause,'[SPEMEDRSS]','w_rss.specialite_interne_medecin_reference_rss_id'); _new_clause = replace(_new_clause,'[MODENT]','w_rss.mode_entree'); _new_clause = replace(_new_clause,'[PROV]','w_rss.provenance'); _new_clause = replace(_new_clause,'[MODSOR]','w_rss.mode_sortie'); _new_clause = replace(_new_clause,'[DEST]','w_rss.destination'); _new_clause = replace(_new_clause,'[DS-DE]','(w_rss.date_sortie-w_rss.date_entree)'); _new_clause = replace(_new_clause,'[SEANCES]','w_rss.nb_seances'); _new_clause = replace(_new_clause,'[ETAT]','w_rss.en_cours_etat'); _new_clause = replace(_new_clause,'[RETGRP]','w_rss.code_retour_groupage'); _new_clause = replace(_new_clause,'[CAGHS]','w_rss.ca_ghs'); _new_clause = replace(_new_clause,'[CAGHSEXH]','(w_rss.ca_ghs + w_rss.ca_ghs)'); _new_clause = replace(_new_clause,'[CAEXH]','w_rss.ca_exh'); _new_clause = replace(_new_clause,'[NBEXH]','w_rss.nb_exh'); _new_clause = replace(_new_clause,'[NBEXHRSA]','w_rss.nb_exh_rsa'); _new_clause = replace(_new_clause,'[CAJGHSEXH]','base.cti_division(w_rss.ca_ghs + w_rss.ca_exh,duree_sejour)'); _new_clause = replace(_new_clause,'w_rss_precedent.w_rss.','w_rss_precedent.'); _new_clause = replace(_new_clause,'[RAAC]','w_rss.raac_id'); _new_clause = replace(_new_clause,'[',''); _new_clause = replace(_new_clause,']',''); _new_clause = replace(_new_clause,'{','['); _new_clause = replace(_new_clause,'}',']'); END IF; -- Mots clés dans justificatif IF i_option = 'justificatif' THEN _new_clause = replace(_new_clause,'][',']||'', ''||['); _new_clause = replace(_new_clause,'] [',']||'', ''||['); _new_clause = replace(_new_clause,'][','], ['); _new_clause = replace(_new_clause,'[PREC:','w_rss_precedent.['); _new_clause = replace(_new_clause,'[AGE]','''AGE:'' || w_rss.age'); _new_clause = replace(_new_clause,'[SEXE]','''SEXE:'' || w_rss.sexe'); _new_clause = replace(_new_clause,'[CPOST]','''CPOST:'' || w_rss.code_postal'); _new_clause = replace(_new_clause,'[CMD]','''CMD:'' || w_rss.cmd_code'); _new_clause = replace(_new_clause,'[GHM]','''GHM:'' || w_rss.ghm_code'); _new_clause = replace(_new_clause,'[GHM5]','''GHM5:'' || w_rss.ghm5_code'); _new_clause = replace(_new_clause,'[GHS]','''GHS:'' || w_rss.ghs_code'); _new_clause = replace(_new_clause,'[GHSRSA]','''GHSRSA:'' || w_rss.ghsrsa_code'); _new_clause = replace(_new_clause,'[GHMRSA]','''GHMRSA:'' || w_rss.ghmrsa_code'); _new_clause = replace(_new_clause,'[GHMRSAIN]','''GHMRSA IN:'' || w_rss.ghmrsa_in_code'); _new_clause = replace(_new_clause,'[GHMSEV]','''SEV:'' || w_rss.severite_ghm_code'); _new_clause = replace(_new_clause,'[GHMCMA]','''CMA:'' || w_rss.ghm_cma::text'); _new_clause = replace(_new_clause,'[GHS]','''GHS:'' || w_rss.ghs_code'); _new_clause = replace(_new_clause,'[DATEENTREE]','w_rss.date_entree::text'); _new_clause = replace(_new_clause,'[DATESORTIE]','w_rss.date_sortie::text'); _new_clause = replace(_new_clause,'[TAUX]','''TAUX:'' || w_rss.taux_remboursement::text'); _new_clause = replace(_new_clause,'[EPMSI]','''EPMSI:'' || (w_rss.traitement_epmsi || '' '' || w_rss.traitement_epmsi_texte)::text'); _new_clause = replace(_new_clause,'[EXOTM]','''ExoTM:'' || (w_rss.exoneration_tm_code || '' '' || w_rss.exoneration_tm_texte)::text'); _new_clause = replace(_new_clause,'[CCAMP]','''CCAM:'' || w_rss.acte_principal_code'); _new_clause = replace(_new_clause,'[DIAGP]','''DP:'' || w_rss.diagnostic_principal_code'); _new_clause = replace(_new_clause,'[DIAGR]','''DR:'' || w_rss.diagnostic_relie_code'); _new_clause = replace(_new_clause,'[DIAGS]','''DIAGS:'' || w_rss.liste_diagnostics'); _new_clause = replace(_new_clause,'[DIAGDOUBLE]','''DIAG:'' || w_rss.diagnostic_double_code'); _new_clause = replace(_new_clause,'[PRESTAP]','''PRESTA:'' || w_rss.prestation_principale_code'); _new_clause = replace(_new_clause,'[MODENT]','''MODENT:'' || w_rss.mode_entree'); _new_clause = replace(_new_clause,'[PROV]','''PROV:'' || w_rss.provenance'); _new_clause = replace(_new_clause,'[MODSOR]','''MODSOR:'' || w_rss.mode_sortie'); _new_clause = replace(_new_clause,'[DEST]','''DEST:'' || w_rss.destination'); _new_clause = replace(_new_clause,'[DURSEJ]','''DUR:'' || w_rss.duree_sejour || ''j'''); _new_clause = replace(_new_clause,'[SEANCES]','''SEANCES:'' || w_rss.nb_seances'); _new_clause = replace(_new_clause,'[ETAT]','''ETAT:'' || w_rss.en_cours_etat'); _new_clause = replace(_new_clause,'[RETGRP]','''RETGRP:'' || w_rss.code_retour_groupage'); _new_clause = replace(_new_clause,'[CAGHS]','''CAGHS:'' || w_rss.ca_ghs::text'); _new_clause = replace(_new_clause,'[CAGHSEXH]','''CAGHSEXH:'' || (w_rss.ca_ghs + w_rss.ca_exh)::text'); _new_clause = replace(_new_clause,'[CAEXH]','''CAEXH:'' || w_rss.ca_exh::text'); _new_clause = replace(_new_clause,'[NBEXH]','''NBEXH:'' || w_rss.nb_exh::text'); _new_clause = replace(_new_clause,'[NBEXHRSA]','''EXH_RSA:'' || w_rss.nb_exh_rsa::text'); _new_clause = replace(_new_clause,'[CAJGHSEXH]','''CAGHS/J:'' || round(base.cti_division(w_rss.ca_ghs + w_rss.ca_exh,duree_sejour),0)'); _new_clause = replace(_new_clause,'w_rss_precedent.w_rss.','w_rss_precedent.'); _new_clause = replace(_new_clause,'[AGEGEST]','''AGEST:'' || w_rss.age_gestationnel::text'); _new_clause = replace(_new_clause,'[DATEREGLES]','''DREGL:'' || w_rss.date_dernieres_regles::text'); _new_clause = replace(_new_clause,'[MATER_ECART_AGE_GEST]','''EAGEST:'' || w_rss.mat_ecart_age_gestationnel::text'); _new_clause = replace(_new_clause,'[RAAC]','''RAAC:'' || w_rss.raac_id::text'); IF trim(_new_clause) = '' THEN _new_clause = ''''''; END IF; END IF; RETURN _new_clause; END;