pour déploiement auto v2 via gitlab
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

181 lines
13 KiB

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;