erp-clinicas-database-v2/seeds/fase8/01-clinica-skills.sql
rckrdmrd cf07a84e26 Migración desde erp-clinicas/database - Estándar multi-repo v2
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-16 08:12:00 -06:00

104 lines
3.1 KiB
SQL

-- ============================================================================
-- SEED DATA: Habilidades/Especialidades Médicas
-- FASE-8 ERP-Core - ERP Clínicas
-- ============================================================================
-- NOTA: Ejecutar después de SET app.current_tenant_id = 'UUID-DEL-TENANT';
-- ============================================================================
-- Tipos de habilidad médica
INSERT INTO hr.skill_types (tenant_id, name)
SELECT current_setting('app.current_tenant_id', true)::UUID, name
FROM (VALUES
('Especialidad Médica'),
('Subespecialidad'),
('Certificación'),
('Curso/Diplomado'),
('Idioma')
) AS t(name)
WHERE current_setting('app.current_tenant_id', true) IS NOT NULL
AND current_setting('app.current_tenant_id', true) != ''
ON CONFLICT DO NOTHING;
-- Niveles de habilidad (para cada tipo)
INSERT INTO hr.skill_levels (tenant_id, skill_type_id, name, level)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
st.id,
l.name,
l.level
FROM hr.skill_types st
CROSS JOIN (VALUES
('Residente', 1),
('Especialista', 2),
('Subespecialista', 3),
('Fellow', 4)
) AS l(name, level)
WHERE st.tenant_id = current_setting('app.current_tenant_id', true)::UUID
AND st.name IN ('Especialidad Médica', 'Subespecialidad')
ON CONFLICT DO NOTHING;
-- Niveles para certificaciones
INSERT INTO hr.skill_levels (tenant_id, skill_type_id, name, level)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
st.id,
l.name,
l.level
FROM hr.skill_types st
CROSS JOIN (VALUES
('En trámite', 1),
('Vigente', 2),
('Recertificado', 3)
) AS l(name, level)
WHERE st.tenant_id = current_setting('app.current_tenant_id', true)::UUID
AND st.name = 'Certificación'
ON CONFLICT DO NOTHING;
-- Especialidades médicas comunes
INSERT INTO hr.skills (tenant_id, skill_type_id, name, codigo_ssa, requiere_cedula)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
id,
unnest(ARRAY[
'Medicina General',
'Medicina Familiar',
'Pediatría',
'Ginecología y Obstetricia',
'Medicina Interna',
'Cardiología',
'Dermatología',
'Oftalmología',
'Otorrinolaringología',
'Traumatología y Ortopedia',
'Neurología',
'Psiquiatría',
'Urología',
'Gastroenterología',
'Neumología'
]),
NULL,
true
FROM hr.skill_types
WHERE name = 'Especialidad Médica'
AND tenant_id = current_setting('app.current_tenant_id', true)::UUID
ON CONFLICT DO NOTHING;
-- Certificaciones comunes
INSERT INTO hr.skills (tenant_id, skill_type_id, name, requiere_cedula)
SELECT
current_setting('app.current_tenant_id', true)::UUID,
id,
unnest(ARRAY[
'Consejo de Especialidad',
'COFEPRIS',
'BLS (Basic Life Support)',
'ACLS (Advanced Cardiac Life Support)',
'PALS (Pediatric Advanced Life Support)',
'NOM-024-SSA3 Expediente Clínico'
]),
false
FROM hr.skill_types
WHERE name = 'Certificación'
AND tenant_id = current_setting('app.current_tenant_id', true)::UUID
ON CONFLICT DO NOTHING;