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.
 
 

246 lines
11 KiB

return: text
lang: plpgsql
src: |
DECLARE
result TEXT;
BEGIN
-- Géographie
INSERT INTO base.t_regions(oid, code, texte, texte_court)
SELECT 0, chr(127) || '**', 'Non renseigné', 'Non renseigné'
WHERE 0 NOT IN (SELECT oid FROM base.t_regions);
INSERT INTO base.t_departements(oid, code, texte, texte_court)
SELECT 0, chr(127) || '**', 'Non renseigné', 'Non renseigné'
WHERE 0 NOT IN (SELECT oid FROM base.t_departements);
INSERT INTO base.t_territoires_sante(oid, code, texte, texte_court)
SELECT 0, chr(127) || '*******', 'Non renseigné', 'Non renseigné'
WHERE 0 NOT IN (SELECT oid FROM base.t_territoires_sante);
INSERT INTO base.t_codes_geographiques_pmsi(oid, code, texte, texte_court, population, departement_id, territoire_sante_id)
SELECT 0, chr(127) || '*****', 'Non renseigné', 'Non renseigné', 0, 0, 0
WHERE 0 NOT IN (SELECT oid FROM base.t_codes_geographiques_pmsi WHERE oid = 0);
INSERT INTO base.t_codes_postaux(oid, code, texte, texte_court, secteur_geographique_id, population,
code_geographique_pmsi, longitude, latitude, departement_id, territoire_sante_id)
SELECT 0, chr(127) || '*****', 'Non renseigné', 'Non renseigné', 0, 0, '', 0, 0, 0, 0
WHERE 0 NOT IN (SELECT oid FROM base.t_codes_postaux);
-- Médecins
INSERT INTO base.t_specialites_medecin (oid, code, texte)
SELECT 0, chr(127) || '**', 'Non saisie'
WHERE 0 NOT IN (SELECT oid FROM base.t_specialites_medecin);
INSERT INTO base.t_medecins (oid, code, nom, specialite_id)
SELECT 0, chr(127) || '******', 'Non saisi', 0
WHERE 0 NOT IN (SELECT oid FROM base.t_medecins);
-- GHM
INSERT INTO base.t_cmd(oid, code, texte, texte_court)
SELECT 0, chr(127) || '*', 'Hors PMSI', 'Hors PMSI'
WHERE 0 NOT IN (SELECT oid FROM base.t_cmd);
INSERT INTO base.t_poles_oap(oid, code, texte, texte_court)
SELECT 0, chr(127) || '**', 'Hors PMSI', 'Hors PMSI'
WHERE 0 NOT IN (SELECT oid FROM base.t_poles_oap);
INSERT INTO base.t_lignes_oap(oid, code, texte, pole_oap_id, mco)
SELECT 0, chr(127) || '****', 'Hors PMSI', 0, '*'
WHERE 0 NOT IN (SELECT oid FROM base.t_lignes_oap);
INSERT INTO base.t_cas(oid, code, texte, texte_court)
SELECT 0, chr(127), 'Non renseigné', 'Non renseigné'
WHERE 0 NOT IN (SELECT oid FROM base.t_cas);
INSERT INTO base.t_ipa(oid, code, texte, texte_court, categorie_oid, categorie_code, categorie_texte, categorie_texte_court)
SELECT 0, chr(127) || '**', 'Non renseigné', 'Non renseigné', 0, chr(127), 'Non renseigné', 'Non renseigné'
WHERE 0 NOT IN (SELECT oid FROM base.t_ipa);
INSERT INTO base.t_ghm5 (oid, code, texte)
SELECT 0, chr(127) || '****', 'Hors PMSI'
WHERE 0 NOT IN (SELECT oid FROM base.t_ghm5);
INSERT INTO base.t_ghm (oid, code, texte, ghm3, mco, aso, severite, statut, cmd_id, groupe_activite_id, ghm5_id, ligne_oap_id, cas_id)
SELECT 0, chr(127) || '*****', 'Hors PMSI', '*', '*', '*', '*', 'I', 0, 0, 0, 0, (SELECT oid FROM base.t_cas WHERE code = '*')
WHERE 0 NOT IN (SELECT oid FROM base.t_ghm);
INSERT INTO base.t_ghs (oid, code, texte, ghm_id, borne_basse, borne_haute, dms_nationale)
SELECT 0, 0, 'Sans GHS', 0, 0, 0, 0
WHERE 0 NOT IN (SELECT oid FROM base.t_ghs);
-- GME
INSERT INTO base.t_gn (oid, code, texte)
SELECT 0, chr(127) || '****'::text, 'Non renseigné'::text
WHERE 0 NOT IN (SELECT oid FROM base.t_gn);
INSERT INTO base.t_cm (oid, code, texte)
SELECT 0, chr(127) || '**'::text, 'Non renseigné'::text
WHERE 0 NOT IN (SELECT oid FROM base.t_cm);
INSERT INTO base.t_rgme (oid, code, texte)
SELECT 0, chr(127) || '*****'::text, 'Non renseigné'::text
WHERE 0 NOT IN (SELECT oid FROM base.t_rgme);
INSERT INTO base.t_gme (oid, code, texte, cm_id, gn_id, rgme_id)
SELECT 0, chr(127) || '******'::text, 'Non renseigné'::text, 0, 0, 0
WHERE 0 NOT IN (SELECT oid FROM base.t_gme);
-- Actes
INSERT INTO base.t_actes (oid, code, texte, texte_court)
SELECT 0, '*******', 'Non renseigné', 'Non renseigné'
WHERE 0 NOT IN (SELECT oid FROM base.t_actes);
-- Regroupements CCAM
INSERT INTO base.t_ccam_regroupements (oid)
SELECT 0
WHERE 0 NOT IN (SELECT oid FROM base.t_ccam_regroupements);
-- Modes de traitement
INSERT INTO base.t_modes_traitement (oid, code, code_original, texte, texte_court)
SELECT 0, '**', '', 'Non renseigné', 'Non renseigné'
WHERE 0 NOT IN (SELECT oid FROM base.t_modes_traitement);
-- Activités
INSERT INTO activite.t_activites(oid, code_original, texte, texte_court, code, etage_par_defaut_id, etage_force_id)
SELECT 0, '0', 'Non renseigné', 'Non renseigné', '', 0, 0
WHERE 0 NOT IN (SELECT oid FROM activite.t_activites);
-- Etages
INSERT INTO activite.t_etages(oid, code_original, texte, texte_court, nb_lits, code,
section_id, section_code, section_texte)
SELECT 0, '0', 'Non renseigné', 'Non renseigné', 0, '',
array[0::bigint, 0::bigint, 0::bigint],
array[chr(127) || '***'::text, chr(127) || '***'::text, chr(127) || '***'::text],
array['Autres'::text, 'Autres'::text, 'Autres'::text]
WHERE 0 NOT IN (SELECT oid FROM activite.t_etages);
-- Lieux
INSERT INTO activite.t_lieux(oid)
SELECT 0
WHERE 0 NOT IN (SELECT oid FROM activite.t_lieux);
-- Lits
INSERT INTO activite.t_lits (oid, texte, texte_court, etage_id, code, chambre_particuliere)
SELECT 0, 'Non renseigné', 'Non renseigné', 0, '*', 'N'
WHERE 0 NOT IN (SELECT oid FROM activite.t_lits);
-- Médecins administratifs
INSERT INTO activite.t_medecins_administratifs (oid, code, code_original, nom, prenom, specialite_id, medecin_id, est_medecin_salarie)
SELECT 0, '****', '0', 'Non renseigné', '', 0, 0, 0
WHERE 0 NOT IN (SELECT oid FROM activite.t_medecins_administratifs);
-- Places
INSERT INTO activite.t_places_parents (oid, parent_code, parent_texte, parent_type)
SELECT 0, '', 'Non renseigné', 'ETA'
WHERE 0 NOT IN (SELECT oid FROM activite.t_places_parents);
-- Prestations
INSERT INTO activite.t_prestations (oid, code_original, texte, texte_court, code)
SELECT 0, '0', 'Non renseigné', 'Non renseigné', '***'
WHERE 0 NOT IN (SELECT oid FROM activite.t_prestations);
UPDATE activite.t_prestations
SET code = '***'
WHERE oid = 0 AND
'***' NOT IN (SELECT code FROM activite.t_prestations WHERE code = '***');
-- Protocoles
INSERT INTO activite.t_protocoles (oid, code_original, texte, texte_court, code)
SELECT 0, '0', 'Non renseigné', 'Non renseigné', '***'
WHERE 0 NOT IN (SELECT oid FROM activite.t_protocoles);
-- Rubriques facturation
INSERT INTO activite.t_rubriques_facturation (oid, code_original, texte, texte_court, code, actes_inclus_public)
SELECT 0, '0', 'Non renseigné', 'Non renseigné', '', '0'
WHERE 0 NOT IN (SELECT oid FROM activite.t_rubriques_facturation);
-- Services de facturation
INSERT INTO activite.t_services_facturation (oid, code_original, texte, texte_court, code, nb_lits)
SELECT 0, '0', 'Non renseigné', 'Non renseigné', '', 0
WHERE 0 NOT IN (SELECT oid FROM activite.t_services_facturation);
-- Spécialités médecin
INSERT INTO activite.t_specialites_medecin (oid, code_original, texte, texte_court, code)
SELECT 0, '0', 'Non saisie', 'Non saisie', ''
WHERE 0 NOT IN (SELECT oid FROM activite.t_specialites_medecin);
-- Tiers payant
INSERT INTO activite.t_tiers_payant (oid, code, code_original, texte, texte_court, type_tiers_payant)
SELECT 0, '', '', 'Non saisi', 'Non saisi', '0'
WHERE 0 NOT IN (SELECT oid FROM activite.t_tiers_payant);
-- Unités fonctionnelles
INSERT INTO activite.t_unites_fonctionnelles (oid, code, code_original, texte, texte_court)
SELECT 0, '', '0', 'Non renseignée', 'Non renseignée'
WHERE 0 NOT IN (SELECT oid FROM activite.t_unites_fonctionnelles);
-- Unités médicales
INSERT INTO activite.t_unites_medicales (oid, code, code_original, texte, texte_court)
SELECT 0, '', '0', 'Non renseignée', 'Non renseignée'
WHERE 0 NOT IN (SELECT oid FROM activite.t_unites_medicales);
-- Formes d'activité
INSERT INTO activite.t_forme_activite (oid, code, texte, texte_court)
SELECT 0, '**', 'Non renseignée', 'Non renseignée'
WHERE 0 NOT IN (SELECT oid FROM activite.t_forme_activite);
-- Codes risque
INSERT INTO activite.t_risque (oid, code, texte)
SELECT 0, '**', 'Non renseigné'
WHERE 0 NOT IN (SELECT oid FROM activite.t_risque);
-- Motifs de non facturation
INSERT INTO activite.t_motif_non_facturation(oid, code_original, code, texte, texte_court)
SELECT 0, 0, '', 'Non renseigné', 'Non renseigné' WHERE 0 NOT IN (SELECt oid FROM activite.t_motif_non_facturation)
;
INSERT INTO activite.t_motif_non_facturation(code_original, code, texte, texte_court)
SELECT '*CTIZZZ', '*AUTRES', 'Autres', 'Autres' WHERE '*CTIZZZ' NOT IN (SELECT code_original FROM activite.t_motif_non_facturation)
;
INSERT INTO activite.t_motif_non_facturation(code_original, code, texte, texte_court)
SELECT '*CTING', '*NG', 'Non groupé', 'Non groupé' WHERE '*CTING' NOT IN (SELECT code_original FROM activite.t_motif_non_facturation)
;
-- Liste des tables pour installation après version
INSERT INTO activite.t_listes_tables (code, name, texte, select_cmd)
SELECT
'FORMEACTIVITE',
't_forme_activite',
'Formes d''activité',
'SELECT oid, code, texte, ''''::text as complement,
CASE WHEN oid in (SELECT oid FROM activite.p_oids WHERE code_table IN (''forme_activite'')) THEN ''O'' ELSE ''N'' END as utilise
FROM activite.t_forme_activite
ORDER BY 2'
WHERE 'FORMEACTIVITE' NOT IN (SELECT code FROM activite.t_listes_tables WHERE code IS NOT NULL)
;
WITH subview AS
(SELECT
'FORMEACTIVITE'::text AS code,
't_forme_activite'::text AS name,
'Formes d''activité'::text AS texte,
'SELECT oid, code, texte, ''''::text as complement,
CASE WHEN oid in (SELECT oid FROM activite.p_oids WHERE code_table IN (''forme_activite'')) THEN ''O'' ELSE ''N'' END as utilise
FROM activite.t_forme_activite
ORDER BY 2'::text AS select_cmd
)
UPDATE activite.t_listes_tables SET
name = subview.name,
texte = subview.texte,
select_cmd = subview.select_cmd
FROM subview
WHERE t_listes_tables.code = subview.code AND
(
t_listes_tables.name IS DISTINCT FROM subview.name OR
t_listes_tables.texte IS DISTINCT FROM subview.texte OR
t_listes_tables.select_cmd IS DISTINCT FROM subview.select_cmd
)
;
RETURN 'OK';
END;