'1' OR MEDN_ID IN ( SELECT ENVR_ID_MEDN FROM prod_csis.SCA_ENVELOPPERUM_ENVR JOIN prod_csis.SID_DOSSIERADMINISTRATIF_DADM ON ENVR_ID_DADM = DADM_ID JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID WHERE ETAB_FINESS = '[FINESS]') OR MEDN_ID IN ( SELECT RECG_ID1_MEDN FROM prod_csis.MPM_RECUEIL_RECG JOIN prod_csis.SID_DOSSIERADMINISTRATIF_DADM ON RECG_ID_DADM = DADM_ID JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID WHERE ETAB_FINESS = '[FINESS]' ) ) AND MEDN_CODE <> '' AND MEDN_CODE NOT IN (SELECT code FROM pmsi.t_medecins) GROUP BY 1 ORDER BY 1 ; ]]> PATI_NOMMARITAL THEN PATI_NOMFAMILLE ELSE '' END FROM prod_csis.SID_DOSSIERADMINISTRATIF_DADM JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID AND ETAB_FINESS = '[FINESS]' JOIN prod_csis.SID_PATIENT_PATI ON DADM_ID_PATI = PATI_ID JOIN [SCHEMA].p_rss ON no_sejour_administratif = DADM_NDA WHERE p_identites.rss_id = p_rss.oid AND p_rss.en_cours LIKE '0' AND (p_rss.date_sortie = date(dadm_datefin) OR p_rss.date_entree = date(dadm_datedebut)) AND (nom IS DISTINCT FROM PATI_NOMUSAGE OR prenom IS DISTINCT FROM PATI_PRENOMS OR nom_naissance IS DISTINCT FROM CASE WHEN PATI_NOMFAMILLE <> PATI_NOMMARITAL THEN PATI_NOMFAMILLE ELSE '' END); UPDATE [SCHEMA].p_identites SET nom = PATI_NOMUSAGE, prenom = PATI_PRENOMS, nom_naissance = CASE WHEN PATI_NOMFAMILLE <> PATI_NOMMARITAL THEN PATI_NOMFAMILLE ELSE '' END FROM prod_csis.SID_DOSSIERADMINISTRATIF_DADM JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID AND ETAB_FINESS = '[FINESS]' JOIN prod_csis.SID_PATIENT_PATI ON DADM_ID_PATI = PATI_ID JOIN [SCHEMA].p_rss ON no_sejour_administratif = DADM_NDA WHERE p_identites.rss_id = p_rss.oid AND p_rss.en_cours LIKE '0' AND (p_rss.date_sortie = date(dadm_datefin) OR p_rss.date_entree = date(dadm_datedebut)) AND (nom IS DISTINCT FROM PATI_NOMUSAGE OR prenom IS DISTINCT FROM PATI_PRENOMS OR nom_naissance IS DISTINCT FROM CASE WHEN PATI_NOMFAMILLE <> PATI_NOMMARITAL THEN PATI_NOMFAMILLE ELSE '' END); UPDATE [SCHEMA].p_rss SET no_patient = to_number(PATI_IPP, '000000000000000')::bigint FROM prod_csis.SID_DOSSIERADMINISTRATIF_DADM JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID AND ETAB_FINESS = '[FINESS]' JOIN prod_csis.SID_PATIENT_PATI ON DADM_ID_PATI = PATI_ID WHERE no_sejour_administratif = DADM_NDA AND p_rss.en_cours LIKE '0' AND no_patient IS DISTINCT FROM to_number(PATI_IPP, '000000000000000')::bigint; ]]> 0; DROP TABLE IF EXISTS w_SID_DOSSIERADMINISTRATIF_DADM; CREATE TEMP TABLE w_SID_DOSSIERADMINISTRATIF_DADM AS SELECT DADM_NDA, DADM_DATEDEBUT, DADM_DATEFIN, COALESCE((MAX(CASE WHEN TMVT_CODE = 'R' AND SMVT_CODE NOT IN ('A') AND MVMT_CHPNUM1 <> 0 THEN array[MVMT_DATEHEURE::text,MVMT_CHPNUM1::text] ELSE NULL END))[2],'0') AS DADM_ID_MEDN FROM prod_csis.SID_DOSSIERADMINISTRATIF_DADM JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID AND ETAB_FINESS = '[FINESS]' JOIN prod_csis.SMV_MOUVEMENT_MVMT ON MVMT_ID_DADM = dadm_id JOIN prod_csis.SMV_TYPEMOUVEMENT_TMVT ON mvmt_id_tmvt = tmvt_id JOIN prod_csis.SMV_STATUTMOUVEMENT_SMVT ON mvmt_id_Smvt = smvt_id GROUP BY 1,2,3; UPDATE [SCHEMA].p_rss SET medecin_rss_id = t_medecins.oid FROM w_SID_DOSSIERADMINISTRATIF_DADM JOIN prod_csis.SST_MEDECIN_MEDN ON DADM_ID_MEDN = MEDN_ID JOIN pmsi.t_medecins ON MEDN_CODE = t_medecins.code WHERE no_sejour_administratif = DADM_NDA AND (p_rss.date_sortie = date(dadm_datefin) OR p_rss.date_entree = date(dadm_datedebut)) AND medecin_rss_id is distinct from t_medecins.oid AND p_rss.en_cours LIKE '0' AND (ghm_id = 0 OR medecin_rss_id = 0); ]]> w_dadm_actes.medecin_id; ]]> '1' OR MEDN_ID IN ( SELECT ENVR_ID_MEDN FROM prod_csis.SCA_ENVELOPPERUM_ENVR JOIN prod_csis.SID_DOSSIERADMINISTRATIF_DADM ON ENVR_ID_DADM = DADM_ID JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID WHERE ETAB_FINESS = '[FINESS]') OR MEDN_ID IN ( SELECT RECG_ID1_MEDN FROM prod_csis.MPM_RECUEIL_RECG JOIN prod_csis.SID_DOSSIERADMINISTRATIF_DADM ON RECG_ID_DADM = DADM_ID JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID WHERE ETAB_FINESS = '[FINESS]' ) ) AND MEDN_CODE <> '' AND MEDN_CODE NOT IN (SELECT code FROM pmsi.t_medecins) GROUP BY 1 ORDER BY 1 ; ]]> '0' THEN ENVR_PROVENANCE ELSE '' END AS ENVR_PROVENANCE, ENVR_MODESOR, CASE WHEN ENVR_DESTINATION <> '0' THEN ENVR_DESTINATION ELSE '' END AS ENVR_DESTINATION, ENVR_IGS2, ENVR_SA, MAX(CASE WHEN TDIA_CODE = 'DP' THEN DSDG_CODE ELSE '' END) AS DSDG_CODE_DP, MAX(CASE WHEN TDIA_CODE = 'DR' THEN DSDG_CODE ELSE '' END) AS DSDG_CODE_DR FROM prod_csis.SCA_ENVELOPPERUM_ENVR LEFT JOIN prod_csis.SCA_DIAGNOSTICDANSRUM_DGRM ON DGRM_ID_ENVR = ENVR_ID LEFT JOIN prod_csis.SNO_TYPEDIAGNOSTICS_TDIA ON DGRM_ID_TDIA = TDIA_ID LEFT JOIN prod_csis.SNO_DESCRDIAGNOSTIC_DSDG ON DGRM_ID_DSDG = DSDG_ID WHERE ENVR_DATEFINRUM >= '[ANNEE]0101' GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13; ALTER TABLE w_SCA_ENVELOPPERUM_ENVR ADD CONSTRAINT w_SCA_ENVELOPPERUM_ENVR_PK PRIMARY KEY(ENVR_ID); CREATE INDEX w_SCA_ENVELOPPERUM_ENVR_i1 ON w_SCA_ENVELOPPERUM_ENVR USING btree (ENVR_ID_DADM); SELECT base.cti_execute( 'UPDATE w_SCA_ENVELOPPERUM_ENVR SET no_rum = subview.last_norum + 1 FROM ( SELECT ENVR_ID_DADM, MAX(no_rum) AS last_norum, (MIN(CASE WHEN no_rum = 0 THEN array[ENVR_DATEDEBUTRUM::text,ENVR_ID::text] ELSE NULL END))[2]::numeric AS ENVR_ID FROM w_SCA_ENVELOPPERUM_ENVR GROUP BY 1) subview WHERE w_SCA_ENVELOPPERUM_ENVR.ENVR_ID_DADM = subview.ENVR_ID_DADM AND w_SCA_ENVELOPPERUM_ENVR.ENVR_ID = subview.ENVR_ID',50); DROP TABLE IF EXISTS w_SCA_ENVELOPPERUM_ENVR_RSS; CREATE TEMP TABLE w_SCA_ENVELOPPERUM_ENVR_RSS AS SELECT ENVR_ID_DADM AS RSS_ENVR_ID_DADM, count(*) AS nb_rum, (min(array[ENVR_DATEDEBUTRUM::text,ENVR_MODEENT::text]))[2] AS RSS_ENVR_MODEENT, (min(array[ENVR_DATEDEBUTRUM::text,ENVR_PROVENANCE::text]))[2] AS RSS_ENVR_PROVENANCE, (max(array[ENVR_DATEFINRUM::text,ENVR_MODESOR::text]))[2] AS RSS_ENVR_MODESOR, (max(array[ENVR_DATEFINRUM::text,ENVR_DESTINATION::text]))[2] AS RSS_ENVR_DESTINATION FROM w_SCA_ENVELOPPERUM_ENVR GROUP BY 1; ALTER TABLE w_SCA_ENVELOPPERUM_ENVR_RSS ADD CONSTRAINT w_SCA_ENVELOPPERUM_ENVR_RSS_PK PRIMARY KEY(RSS_ENVR_ID_DADM); DROP TABLE IF EXISTS w_SCA_RESUMESS_RESS; CREATE TEMP TABLE w_SCA_RESUMESS_RESS AS SELECT w_finess.finess, nextval('pmsi.s_rss'::regclass) AS rss_id, RESS_IDENTIFIANTRSS::numeric AS no_rss, SCA_RESUMESS_RESS.*, SID_DOSSIERADMINISTRATIF_DADM.*, w_SCA_ENVELOPPERUM_ENVR_RSS.*, w_SCA_ENVELOPPERUM_ENVR.*, COALESCE(MEDN_CODE,'') AS MEDN_CODE, substr(NTMD_CODE,1,4) AS NTMD_CODE, SID_PATIENT_PATI.* FROM w_finess, prod_csis.SCA_RESUMESS_RESS JOIN prod_csis.SID_DOSSIERADMINISTRATIF_DADM ON DADM_ID = RESS_ID_DADM AND DADM_DATEDEBUT >= '[ANNEE]0101' JOIN prod_csis.SST_ETABLISSEMENT_ETAB ON DADM_ID_ETAB = ETAB_ID JOIN w_SCA_ENVELOPPERUM_ENVR ON RESS_ID_ENVR = ENVR_ID JOIN prod_csis.SMV_MOUVEMENT_MVMT ON MVMT_ID = ENVR_ID1_MVMT JOIN prod_csis.SST_UNITEMED_NTMD ON MVMT_CHPNUM1 = NTMD_ID JOIN prod_csis.SID_PATIENT_PATI ON DADM_ID_PATI = PATI_ID LEFT JOIN w_SCA_ENVELOPPERUM_ENVR_RSS ON RESS_ID_DADM = RSS_ENVR_ID_DADM LEFT JOIN prod_csis.SST_MEDECIN_MEDN ON ENVR_ID_MEDN = MEDN_ID LEFT JOIN pmsi.p_rss ON DADM_NDA = p_rss.no_sejour_administratif AND p_rss.etat = '' AND date_trunc('month',date_sortie) = date_trunc('month', DADM_DATEFIN) WHERE ETAB_FINESS = '[FINESS]' AND p_rss.oid IS NULL AND RESS_IDENTIFIANTRSS <> '' ORDER BY DADM_DATEFIN; 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, age_gestationnel, date_dernieres_regles, from_oid ) SELECT finess, rss_id AS oid, no_rss, to_number(PATI_IPP, '000000000000000')::bigint AS no_patient, '' AS version_groupage, date(PATI_DATENAISSANCE) AS date_naissance, PATI_CODESEXE::text AS sexe, date(DADM_DATEDEBUT) AS date_entree, date(DADM_DATEFIN) AS date_sortie, COALESCE(RSS_ENVR_MODEENT,'8') AS mode_entree, COALESCE(RSS_ENVR_PROVENANCE,'') AS provenance, COALESCE(RSS_ENVR_MODESOR,'8') AS mode_sortie, COALESCE(RSS_ENVR_DESTINATION,'') AS destination, '' AS code_postal, 0 AS poids_bebe, 0 AS igs2, '' AS cma, substr(RESS_CODEGHM , 3 , 1) AS groupe_ghm, CASE WHEN DADM_DATEFIN > DADM_DATEDEBUT THEN date(DADM_DATEFIN) - date(DADM_DATEDEBUT) ELSE 0 END AS duree_sejour, CASE WHEN substr(RESS_CODEGHM,1,2) = '28' THEN 1 ELSE 1 END AS nb_rsa, CASE WHEN DADM_DATEDEBUT > PATI_DATENAISSANCE THEN trunc((date(DADM_DATEDEBUT) - date(PATI_DATENAISSANCE)) / 365.25,0) ELSE 0 END AS age, '' AS supprime, now() AS date_import, nb_rum, '' AS secteur, DADM_NDA AS no_sejour_administratif, CASE WHEN substr(RESS_CODEGHM,1,2) = '28' THEN 1 ELSE 0 END AS nb_seances, '' AS ghm_fg9, COALESCE(t_ghm.oid, 0) AS ghm_id, COALESCE(t_medecins.oid, 0) AS medecin_rss_id, COALESCE(t_ghs.oid, 0) AS ghs_id, date_part('year', DADM_DATEFIN) * 100 + date_part('month', DADM_DATEFIN) AS mois_sortie, COALESCE(t_diagnostics_dp.oid, 0) AS diagnostic_principal_id, COALESCE(t_diagnostics_dr.oid, 0) AS diagnostic_relie_id, COALESCE(t_ghm.oid, 0) AS ghm_production_id, no_rum AS no_rum_principal, COALESCE(t_unites_medicales.oid, 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, CASE WHEN length(RESS_CODEGHM) = 6 AND substr(RESS_CODEGHM,1,2) <> '90' AND RESS_ETATGRP = 'V' THEN 'V' WHEN length(RESS_CODEGHM) = 6 AND substr(RESS_CODEGHM,1,2) <> '90' THEN 'G' ELSE 'S' END 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, CASE WHEN ENVR_SA > 99 THEN 99 ELSE ENVR_SA END as age_gestationnel, DADM_DATEDERNREGLE as date_dernieres_regles, 0 AS from_oid FROM w_SCA_RESUMESS_RESS LEFT JOIN pmsi.t_ghm ON (RESS_CODEGHM = t_ghm.code) LEFT JOIN pmsi.t_ghs ON (RESS_NUMERO_GGHS = t_ghs.code) LEFT JOIN pmsi.t_medecins ON MEDN_CODE = t_medecins.code LEFT JOIN pmsi.t_unites_medicales ON NTMD_CODE = t_unites_medicales.code LEFT JOIN pmsi.t_diagnostics t_diagnostics_dp ON DSDG_CODE_DP = t_diagnostics_dp.code LEFT JOIN pmsi.t_diagnostics t_diagnostics_dr ON DSDG_CODE_DR = t_diagnostics_dr.code; INSERT INTO base.t_etablissements(code, texte, texte_court) SELECT ETBS_FINESS, ETBS_RAISONSOCIALE, ETBS_RAISONSOCIALE FROM prod_csis.SNO_ETABLISSEMENT_ETBS WHERE ETBS_FINESS NOT IN (SELECT code FROM base.t_etablissements) GROUP BY 1,2,3 ; /********************************************************************************** * ETABLISSEMENT PROVENANCE ET DESTINATION (TRANSFERT) * **********************************************************************************/ -- Insertion des établissement de provenance et destination dans p_rss_transfert -- Traitement en commun réalisé dans import_rss_rsf_encours.php (generation_rum_post_traitements()) -- Grâce à la table w_TRANSFERTS DROP TABLE IF EXISTS temp.w_TRANSFERTS; CREATE TABLE temp.w_TRANSFERTS AS SELECT p_rss.oid AS rss_id, import_id, MAX(COALESCE(provenance.oid,0)) AS prov_id, MAX(COALESCE(destination.oid,0)) AS dest_id FROM pmsi.p_rss JOIN prod_csis.SID_DOSSIERADMINISTRATIF_DADM ON DADM_NDA = no_sejour_administratif JOIN prod_csis.SMV_DOSSIERMVT_DMVT ON DMVT_ID_DADM = DADM_ID LEFT JOIN prod_csis.SNO_SERVICEETABLISSEMENT_SVET SER_PROV ON DMVT_ID_SVET_PROV = SER_PROV.SVET_ID LEFT JOIN prod_csis.SNO_SERVICEETABLISSEMENT_SVET SER_DEST ON DMVT_ID_SVET_DEST = SER_DEST.SVET_ID LEFT JOIN prod_csis.SNO_ETABLISSEMENT_ETBS PROV ON PROV.ETBS_ID = SER_PROV.SVET_ID_ETBS LEFT JOIN prod_csis.SNO_ETABLISSEMENT_ETBS DEST ON DEST.ETBS_ID = SER_DEST.SVET_ID_ETBS LEFT JOIN base.t_etablissements provenance ON PROV.ETBS_FINESS = provenance.code LEFT JOIN base.t_etablissements destination ON DEST.ETBS_FINESS = destination.code WHERE 1=1 AND (DMVT_ID_SVET_PROV != 0 OR DMVT_ID_SVET_DEST != 0) GROUP BY 1,2 ; ]]> PATI_NOMMARITAL THEN PATI_NOMFAMILLE ELSE '' END AS nom_naissance FROM w_SCA_RESUMESS_RESS; ]]> w_SCA_ENVELOPPERUM_ENVR.ENVR_DATEDEBUTRUM THEN date(w_SCA_ENVELOPPERUM_ENVR.ENVR_DATEFINRUM) - date(w_SCA_ENVELOPPERUM_ENVR.ENVR_DATEDEBUTRUM) ELSE 0 END AS duree_sejour, CASE WHEN substr(RESS_CODEGHM,1,2) = '28' THEN 1 ELSE 0 END AS nb_seances, substr(NTMD_CODE,1,4) AS unite_medicale, COALESCE(t_diagnostics_dp.oid, 0) AS diagnostic_principal_id, COALESCE(t_diagnostics_dr.oid, 0) AS diagnostic_relie_id, COALESCE(t_unites_medicales.oid,0) AS unite_medicale_id, '' AS type_autorisation, w_SCA_ENVELOPPERUM_ENVR.ENVR_IGS2 AS igs2, '' AS type_autorisation_lit_dedie, '' AS supplement_code FROM w_SCA_ENVELOPPERUM_ENVR JOIN w_SCA_RESUMESS_RESS ON w_SCA_ENVELOPPERUM_ENVR.ENVR_ID_DADM = RESS_ID_DADM LEFT JOIN pmsi.t_unites_medicales ON (NTMD_CODE = t_unites_medicales.code) LEFT JOIN pmsi.t_diagnostics t_diagnostics_dp ON w_SCA_ENVELOPPERUM_ENVR.DSDG_CODE_DP = t_diagnostics_dp.code LEFT JOIN pmsi.t_diagnostics t_diagnostics_dr ON w_SCA_ENVELOPPERUM_ENVR.DSDG_CODE_DR = t_diagnostics_dr.code; ]]> 'DAS' THEN TDIA_CODE ELSE 'DA' END AS type_diagnostic, CASE WHEN TDIA_CODE <> 'DAS' THEN TDIA_CODE ELSE 'DA' END AS type_diagnostic_rss, '' AS imprecis, unite_medicale, unite_medicale_id FROM prod_csis.SCA_DIAGNOSTICDANSRUM_DGRM JOIN w_SCA_ENVELOPPERUM_ENVR ON DGRM_ID_ENVR = ENVR_ID JOIN w_SCA_RESUMESS_RESS ON w_SCA_ENVELOPPERUM_ENVR.ENVR_ID_DADM = RESS_ID_DADM JOIN prod_csis.SNO_TYPEDIAGNOSTICS_TDIA ON DGRM_ID_TDIA = TDIA_ID JOIN prod_csis.SNO_DESCRDIAGNOSTIC_DSDG ON DGRM_ID_DSDG = DSDG_ID JOIN pmsi.t_diagnostics ON (DSDG_CODE = t_diagnostics.code) JOIN pmsi.p_rss_rum ON (w_SCA_RESUMESS_RESS.rss_id = p_rss_rum.rss_id AND w_SCA_ENVELOPPERUM_ENVR.no_rum = p_rss_rum.no_rum) WHERE TDIA_CODE IN ('DP', 'DR', 'DAS'); ]]> 0 THEN RECG_COEFFICIENT ELSE 1 END * RECG_PUFACTURE * CASE WHEN RECG_COEFFICIENTMCO > 0 THEN RECG_COEFFICIENTMCO ELSE 1 END,2)) AS base_remboursement, SUM(RECT_MONTANT) AS sejour_facture, SUM(RECT_MONTANT) AS sejour_remboursable, 0 AS honoraires_factures, 0 AS honoraires_remboursable, 0 AS t2a_facture, 0 AS dmi_facture, 0 AS phc_facture, 0 AS participation_assure_avant_oc, 0 AS sejour_remboursable_2, 0 AS honoraires_remboursable_2, 0 AS montant_dmi_ghs2006, 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, 0 AS nb_exh, 0 AS ca_exh, 0 AS nb_exb, 0 AS ca_exb, 0 AS nb_ghs, 0 AS ca_ghs, 0 AS ca_ghs_theorique, 0 AS taux_remboursement FROM prod_csis.MPM_RECUEILTIERS_RECT JOIN w_SCA_RESUMESS_RESS ON RECT_ID_DADM = RESS_ID_DADM JOIN prod_csis.MPM_FACTURE_RECF ON RECT_ID_RECF = RECF_ID JOIN prod_csis.MPM_RECUEIL_RECG ON RECT_ID_RECG = RECG_ID JOIN prod_csis.SNO_ETATRECUEIL_ETRC SNO_ETATRECUEIL_ETRC_RECT ON RECT_ID_ETRC = SNO_ETATRECUEIL_ETRC_RECT.ETRC_ID JOIN prod_csis.SNO_ETATRECUEIL_ETRC SNO_ETATRECUEIL_ETRC_RECG ON RECG_ID_ETRC = SNO_ETATRECUEIL_ETRC_RECG.ETRC_ID JOIN prod_csis.MPE_ASSURANCE_ASSU ON RECT_ID_ASSU = ASSU_ID JOIN pmsi.t_prestations ON RECG_PRESTATION = t_prestations.code LEFT JOIN pmsi.t_ghs ON RECG_GHS = t_ghs.code WHERE ASSU_TYPE = 'O' AND RECG_TYPELIGNE = 3 AND RECT_MONTANT <> 0 AND SNO_ETATRECUEIL_ETRC_RECT.ETRC_CODE <> 'A' AND RECF_NATUREOPERATION <> '5' GROUP BY w_SCA_RESUMESS_RESS.finess, w_SCA_RESUMESS_RESS.rss_id, w_SCA_RESUMESS_RESS.no_rss; 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; ]]> 0 THEN RECG_COEFFICIENT ELSE 1 END AS coefficient, RECG_PUFACTURE AS prix_unitaire, round(RECG_QUANTITE * CASE WHEN RECG_COEFFICIENT > 0 THEN RECG_COEFFICIENT ELSE 1 END * RECG_PUFACTURE * CASE WHEN RECG_COEFFICIENTMCO > 0 THEN RECG_COEFFICIENTMCO ELSE 1 END,2) AS base_remboursement, COALESCE(RECT_TAUXREEL,RECT_TAUXPEC) AS taux_remboursement, RECT_MONTANT AS sejour_facture, RECT_MONTANT AS sejour_remboursable, 0 AS compteur, '' AS ligne_t2a, '' AS pec_fj, CASE WHEN RECG_COEFFICIENTMCO > 0 THEN RECG_COEFFICIENTMCO ELSE 1 END AS coefficient_mco, 0 AS sejour_remboursable_2, COALESCE(t_ghs.oid, 0) AS ghs_id, 0 AS sejour_rembourse_noemie, '' AS nature_noemie, COALESCE(t_prestations.oid, 0) AS prestation_id, 'B' AS type, 0 AS coefficient_geo, '1' AS est_ligne_rss, '0' AS est_ligne_rum, 0 AS no_rum, 0 AS unite_medicale_id, 0 AS base_remboursement_rum FROM prod_csis.MPM_RECUEILTIERS_RECT JOIN w_SCA_RESUMESS_RESS ON RECT_ID_DADM = RESS_ID_DADM JOIN prod_csis.MPM_FACTURE_RECF ON RECT_ID_RECF = RECF_ID JOIN prod_csis.MPM_RECUEIL_RECG ON RECT_ID_RECG = RECG_ID JOIN prod_csis.SNO_ETATRECUEIL_ETRC SNO_ETATRECUEIL_ETRC_RECT ON RECT_ID_ETRC = SNO_ETATRECUEIL_ETRC_RECT.ETRC_ID JOIN prod_csis.SNO_ETATRECUEIL_ETRC SNO_ETATRECUEIL_ETRC_RECG ON RECG_ID_ETRC = SNO_ETATRECUEIL_ETRC_RECG.ETRC_ID JOIN prod_csis.MPE_ASSURANCE_ASSU ON RECT_ID_ASSU = ASSU_ID JOIN pmsi.t_prestations ON RECG_PRESTATION = t_prestations.code LEFT JOIN pmsi.t_ghs ON RECG_GHS = t_ghs.code WHERE ASSU_TYPE = 'O' AND RECG_TYPELIGNE = 3 AND RECT_MONTANT <> 0 AND SNO_ETATRECUEIL_ETRC_RECT.ETRC_CODE <> 'A' AND RECF_NATUREOPERATION <> '5'; ]]> '' AND RECD_NATUREDETAIL = 'lpp'; ]]> '' AND RECD_NATUREDETAIL = 'ph. UCD'; ]]> 'F'; ]]>