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.
 
 

304 lines
7.9 KiB

<?xml version="1.0" encoding="ISO-8859-1"?>
<ROOT>
<NODE name="PMSICOMPLEMENTS" label="RECUPERATION DES DONNEES COMPLEMENTAIRES PMSI">
<NODE label="Paramètres">
<sqlcmd><![CDATA[
/**********************************************************************************
* SPECIALITES MEDECINS *
**********************************************************************************/
/**********************************************************************************
* MEDECINS *
**********************************************************************************/
INSERT INTO pmsi.t_medecins (code, nom, prenom, specialite_id, no_adeli, specialite_interne_id)
SELECT
NUM_MED::text as code
,MEDECINS.NOM as nom
,MEDECINS.PRENOM as prenom
,COALESCE(t_specialites_medecin.oid, 0) as specialite_id
,COALESCE(MEDECINS.RPPS,'') AS RPPS
,COALESCE(t_specialites_internes_medecin.oid, 0) as specialite_interne_id
FROM
prod_hemat2a.MEDECINS
LEFT JOIN pmsi.t_specialites_medecin ON t_specialites_medecin.code = to_char(MEDECINS.SPECIALITE,'FM00')
LEFT JOIN pmsi.t_specialites_internes_medecin ON (t_specialites_internes_medecin.code = to_char(MEDECINS.SPECIALITE,'FM00') || '..')
LEFT JOIN pmsi.t_medecins ON NUM_MED::text = t_medecins.code
WHERE t_medecins.code IS NULL;
SELECT pmsi.cti_reorganize_medecins_c();
/**********************************************************************************
* UNITES MEDICALES *
**********************************************************************************/
/**********************************************************************************
* UNITES FONCTIONNELLES *
**********************************************************************************/
INSERT INTO pmsi.t_unites_fonctionnelles(oid, code, texte)
SELECT 0, '', 'Non renseignée' WHERE 0 NOT IN (SELECt oid FROM pmsi.t_unites_fonctionnelles);
]]></sqlcmd>
</NODE>
<NODE label="Identités">
<sqlcmd><![CDATA[
-- N° de rss = n° de facture
UPDATE [SCHEMA].p_rss SET
no_sejour_administratif = NUM_PAT::text,
no_patient = NUM_PAT
FROM prod_hemat2a.ARCH_FACT
WHERE no_rss = NUM_FACT AND
(
no_sejour_administratif IS DISTINCT FROM num_pat::text OR
no_patient IS DISTINCT FROM NUM_PAT
)
;
UPDATE [SCHEMA].p_rss SET
no_sejour_administratif = NUM_PAT::text,
no_patient = NUM_PAT
FROM prod_hemat2a.FACTURES
WHERE no_rss = NUM_FACT AND
(
no_sejour_administratif IS DISTINCT FROM num_pat::text OR
no_patient IS DISTINCT FROM NUM_PAT
)
;
UPDATE [SCHEMA].p_identites SET
nom = ASSURES.NOM
,prenom = ASSURES.PRENOM
,nom_naissance = ASSURES.NOM_JF
FROM [SCHEMA].p_rss
JOIN prod_hemat2a.ASSURES ON no_sejour_administratif = NUM_PAT::text
WHERE
p_identites.rss_id = p_rss.oid AND
p_rss.import_id > 0
;
UPDATE [SCHEMA].p_rss SET code_postal = SUBSTR(ASSURES.CP, 1 , 5)
FROM prod_hemat2a.ASSURES
WHERE no_sejour_administratif = NUM_PAT::text
;
]]></sqlcmd>
</NODE>
<NODE label="Médecins RSS">
<sqlcmd><![CDATA[
-- Identification des lignes honoraires
DROP TABLE IF EXISTS w_LIGNES_FACTURES;
CREATE TEMP TABLE w_LIGNES_FACTURES AS
SELECT
NUM_FACT::text,
PRESTATION,
NUM_ACTE,
SEJOUR_DU,
SEJOUR_AU,
QUANTITE,
COEF,
PRIX_UNIT,
MAJORATION,
MT_FACT,
BASE_REMB,
DEPASS,
PART_CAISSE,
PART_MUT,
PART_ASS,
EXECUTANT,
DENOMBREMENT,
RMO,
NUM_PAT,
NUM_EXE,
CPT_COMPTA,
DMT,
CODE_TVA,
NUM_LIG,
HONO_SEJ,
CT_EPO,
XMT_EPO,
CODIF_AFF,
NUM_SOC,
TIERPERS,
FELEC,
TYPE_PRODUIT,
DATE_PRESCRIPTION_PRODUIT,
PRIX_UNIT_NATIONAL,
COEF_NATIONAL,
COEF_REGIONAL,
ACTE_PMSI,
CODE_PRODUIT,
TYPE_ETI,
CODE_ASSOCIATION,
NUM_PRODUIT,
ID_CLEFPRIMAIRE,
FINESS_ETAB_DESTINATAIRE,
''::text AS medecin_executant_code_original
FROM prod_hemat2a.LIGNES_FACTURES
WHERE HONO_SEJ = 'true'
;
INSERT INTO w_LIGNES_FACTURES
SELECT
NUM_FACT::text,
PRESTATION,
NUM_ACTE,
SEJOUR_DU,
SEJOUR_AU,
QUANTITE,
COEF,
PRIX_UNIT,
MAJORATION,
MT_FACT,
BASE_REMB,
DEPASS,
PART_CAISS,
PART_MUT,
PART_ASS,
EXECUTANT,
DENOMBREMENT,
RMO,
NUM_PAT,
NUM_EXE,
CPT_COMPTA,
DMT,
CODE_TVA,
NUM_LIGG,
HONO_SEJ,
CPTEPO,
XMT_EPO,
CODIF_AFF,
NUM_SOC,
TIERPERS,
FELEC,
TYPE_PRODUIT,
DATE_PRESCRIPTION_PRODUIT,
PRIX_UNIT_NATIONAL,
COEF_NATIONAL,
COEF_REGIONAL,
ACTE_PMSI,
CODE_PRODUIT,
TYPE_ETI,
CODE_ASSOCIATION,
NUM_PRODUIT,
ID_CLEFPRIMAIRE,
FINESS_ETAB_DESTINATAIRE,
''::text AS medecin_executant_code_original
FROM prod_hemat2a.ARCH_LIG_FACT
WHERE HONO_SEJ = 'true'
;
ANALYSE w_LIGNES_FACTURES
;
UPDATE w_LIGNES_FACTURES
SET medecin_executant_code_original = MEDECINS.NUM_MED::text
FROM prod_hemat2a.MEDECINS
WHERE HONO_SEJ = 'true' AND
NUM_EXE = MEDECINS.FINESS AND
EXECUTANT = MEDECINS.NOM
;
UPDATE w_LIGNES_FACTURES
SET medecin_executant_code_original = MEDECINS.NUM_MED::text
FROM prod_hemat2a.MEDECINS
WHERE HONO_SEJ = 'true' AND
EXECUTANT = MEDECINS.NOM AND
medecin_executant_code_original = ''
;
ANALYSE w_LIGNES_FACTURES
;
UPDATE [SCHEMA].p_rss
SET medecin_rss_id = subview.medecin_rss_id
FROM
(
SELECT p_rss.oid, (MAX(ARRAY[SEJOUR_AU::text, t_medecins.oid::text]))[2]::bigint AS medecin_rss_id
FROM w_LIGNES_FACTURES
JOIN [SCHEMA].p_rss ON p_rss.no_rss = NUM_FACT
JOIN prod_hemat2a.MEDECINS ON medecin_executant_code_original = NUM_MED::text
JOIN pmsi.t_medecins ON medecin_executant_code_original = t_medecins.code
WHERE HONO_SEJ = 'true' AND
specialite <> 30
GROUP BY 1
) subview
WHERE p_rss.oid = subview.oid
;
]]></sqlcmd>
</NODE>
<NODE label="Médecins actes">
<sqlcmd><![CDATA[
DROP TABLE IF EXISTS w_rss_actes_medecin;
CREATE TEMP TABLE w_rss_actes_medecin AS
SELECT p_rss_actes.rss_id, p_rss_actes.CTID AS acte_CTID, MAX(t_medecins.oid) AS medecin_id
FROM [SCHEMA].p_rss_actes
JOIN pmsi.t_actes ON acte_id = t_actes.oid
JOIN w_LIGNES_FACTURES ON
p_rss_actes.no_rss = w_LIGNES_FACTURES.NUM_FACT AND
t_actes.code = PRESTATION AND
date_acte BETWEEN date(SEJOUR_DU) AND date(SEJOUR_AU)
JOIN pmsi.t_medecins ON w_LIGNES_FACTURES.medecin_executant_code_original = t_medecins.code
GROUP BY 1,2
;
UPDATE [SCHEMA].p_rss_actes
SET medecin_id = w_rss_actes_medecin.medecin_id
FROM w_rss_actes_medecin
WHERE p_rss_actes.rss_id = w_rss_actes_medecin.rss_id AND
p_rss_actes.CTID = w_rss_actes_medecin.acte_CTID
;
]]></sqlcmd>
</NODE>
<NODE label="Etat des dossiers">
<sqlcmd><![CDATA[
SELECT pmsi.cti_initialize_rss_etat();
]]></sqlcmd>
</NODE>
</NODE>
<NODE name="PMSIETAT" label="RECUPERATION ETAT DES DOSSIERS">
<NODE label="Initialisation">
<sqlcmd><![CDATA[
]]></sqlcmd>
</NODE>
<NODE label="Etat des dossiers">
<sqlcmd><![CDATA[
]]></sqlcmd>
</NODE>
</NODE>
</ROOT>