|
|
src: |
|
|
|
SELECT p_rsf_detail.rss_id,
|
|
|
p_rsf_detail.finess,
|
|
|
p_rsf_detail.no_rss,
|
|
|
p_rsf_detail.nature,
|
|
|
p_rsf_detail.mt,
|
|
|
p_rsf_detail.dmt,
|
|
|
p_rsf_detail.date_debut,
|
|
|
p_rsf_detail.date_fin,
|
|
|
p_rsf_detail.nombre,
|
|
|
p_rsf_detail.coefficient,
|
|
|
p_rsf_detail.nombre * p_rsf_detail.coefficient AS nombre_coefficient,
|
|
|
p_rsf_detail.prix_unitaire,
|
|
|
p_rsf_detail.taux_remboursement,
|
|
|
p_rsf_detail.base_remboursement,
|
|
|
round((p_rsf_detail.prix_unitaire * p_rsf_detail.nombre * p_rsf_detail.coefficient + COALESCE(p_rsf_detail.montant_supplement_nf, 0::numeric)) * p_rsf_detail.coefficient_geo * p_rsf_detail.coefficient_pacte_resp, 2) AS base_remboursement_sauf_transition,
|
|
|
p_rsf_detail.sejour_remboursable,
|
|
|
(p_rsf_detail.prix_unitaire * p_rsf_detail.nombre * p_rsf_detail.coefficient + COALESCE(p_rsf_detail.montant_supplement_nf, 0::numeric)) * p_rsf_detail.coefficient_mco AS base_remboursement_sans_arrondi,
|
|
|
(p_rsf_detail.prix_unitaire * p_rsf_detail.nombre * p_rsf_detail.coefficient + COALESCE(p_rsf_detail.montant_supplement_nf, 0::numeric)) * p_rsf_detail.coefficient_geo * p_rsf_detail.coefficient_pacte_resp AS base_remboursement_sauf_transition_sans_arrondi,
|
|
|
(p_rsf_detail.prix_unitaire * p_rsf_detail.nombre * p_rsf_detail.coefficient + COALESCE(p_rsf_detail.montant_supplement_nf, 0::numeric)) * p_rsf_detail.coefficient_mco * p_rsf_detail.taux_remboursement / 100::numeric AS sejour_remboursable_sans_arrondi,
|
|
|
p_rsf_detail.sejour_facture,
|
|
|
CASE
|
|
|
WHEN t_prestations.compteur_rsf::text = '1'::text OR p_rsf_detail.ligne_t2a = '1'::bpchar THEN p_rsf_detail.sejour_facture
|
|
|
ELSE 0::numeric
|
|
|
END AS t2a_facture,
|
|
|
CASE
|
|
|
WHEN t_prestations.compteur_rsf::text = '3'::text THEN p_rsf_detail.sejour_facture
|
|
|
ELSE 0::numeric
|
|
|
END AS dmi_facture,
|
|
|
CASE
|
|
|
WHEN t_prestations.compteur_rsf::text = '7'::text THEN p_rsf_detail.sejour_facture
|
|
|
ELSE 0::numeric
|
|
|
END AS phc_facture,
|
|
|
p_rsf_detail.compteur,
|
|
|
p_rsf_detail.ligne_t2a,
|
|
|
p_rsf_detail.pec_fj,
|
|
|
p_rsf_detail.pec_fj_id,
|
|
|
t_pec_fj.code AS pec_fj_code,
|
|
|
t_pec_fj.texte AS pec_fj_texte,
|
|
|
p_rsf_detail.coefficient_mco,
|
|
|
p_rsf_detail.coefficient_geo,
|
|
|
p_rsf_detail.sejour_remboursable_2,
|
|
|
p_rsf_detail.ghs_id,
|
|
|
t_ghs.code_text AS ghs_code,
|
|
|
t_ghs.texte AS ghs_texte,
|
|
|
p_rsf_detail.sejour_rembourse_noemie,
|
|
|
p_rsf_detail.nature_noemie,
|
|
|
p_rsf_detail.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,
|
|
|
CASE
|
|
|
WHEN t_prestations.code::text = 'GHS'::text AND p_rsf_detail.coefficient < 1::numeric THEN 'EXB'::text
|
|
|
WHEN t_prestations.code::text = 'EXH'::text THEN 'EXH'::text
|
|
|
ELSE ''::text
|
|
|
END AS prestation_exb_exh,
|
|
|
CASE
|
|
|
WHEN p_rsf_detail.base_remboursement_sauf_transition_sauf_ame <> 0::numeric THEN p_rsf_detail.base_remboursement_sauf_transition_sauf_ame
|
|
|
ELSE round(p_rsf_detail.prix_unitaire * p_rsf_detail.nombre * p_rsf_detail.coefficient, 2)
|
|
|
END AS base_remboursement_sauf_transition_sauf_ame
|
|
|
FROM pmsi.p_rsf_detail
|
|
|
JOIN pmsi.t_prestations ON t_prestations.oid = p_rsf_detail.prestation_id
|
|
|
JOIN pmsi.t_ghs ON t_ghs.oid = p_rsf_detail.ghs_id
|
|
|
JOIN base.t_pec_fj ON t_pec_fj.oid = p_rsf_detail.pec_fj_id
|
|
|
WHERE p_rsf_detail.type = 'C'::bpchar AND p_rsf_detail.est_ligne_rss = '1'::bpchar;
|