// engine/spec-templates/templates-industry-health.ts — Healthtech industry templates.
// AC-04: Templates by industry — healthtech vertical (split from health-ecom).
/** Healthtech patient records template. */
export const HEALTHTECH_PATIENT_RECORDS_TEMPLATE = {
    id: 'healthtech-patient-records',
    name: 'Gestion de registros de pacientes',
    category: 'industry',
    subcategory: 'healthtech',
    description: 'Registros medicos con acceso por consentimiento, historial clinico y portabilidad.',
    tags: ['healthtech', 'patient', 'records', 'hipaa', 'consent'],
    complexityScore: 'XL',
    estimationBase: {
        hoursMin: 80,
        hoursMax: 160,
        notes: 'Requiere cifrado de datos de salud y gestion de consentimientos',
    },
    criteria: [
        { id: 'AC-1', title: 'Acceso con consentimiento', required: true },
        { id: 'AC-2', title: 'Historial clinico', required: true },
        { id: 'AC-3', title: 'Portabilidad de datos', required: true },
        { id: 'AC-4', title: 'Cifrado y privacidad', required: true },
        { id: 'AC-5', title: 'Auditoria de acceso', required: true },
        { id: 'AC-6', title: 'Interoperabilidad', required: false },
    ],
    variables: [
        {
            key: 'SystemName',
            label: 'Nombre del sistema',
            description: 'Nombre del sistema de salud',
            example: 'HealthApp',
            required: true,
        },
    ],
    huTemplate: `# HU: Registros de Pacientes — {{SystemName}}

## Historia de Usuario
Como profesional de salud, quiero gestionar registros de pacientes de forma segura y con consentimiento para cumplir con regulaciones de proteccion de datos de salud.

## Criterios de Aceptacion

### AC-1: Acceso con consentimiento
- [ ] El paciente otorga consentimiento explicito antes de compartir sus datos
- [ ] El consentimiento es revocable en cualquier momento
- [ ] El acceso sin consentimiento vigente es bloqueado automaticamente
- [ ] Se registra quien solicito acceso y el resultado (concedido/denegado)

### AC-2: Historial clinico
- [ ] Se mantiene historial cronologico de consultas, diagnosticos y tratamientos
- [ ] El historial es inmutable (append-only) — las correcciones generan enmiendas
- [ ] Los profesionales pueden agregar notas clinicas con su firma digital
- [ ] Se soportan adjuntos (imagenes, documentos) vinculados al historial

### AC-3: Portabilidad de datos
- [ ] El paciente puede exportar sus datos en formato estandar (HL7 FHIR o equivalente)
- [ ] La exportacion incluye historial completo o por periodo seleccionado
- [ ] Los datos exportados mantienen integridad verificable

### AC-4: Cifrado y privacidad
- [ ] Los datos de salud se almacenan cifrados en reposo y en transito
- [ ] Las claves de cifrado se gestionan con rotacion periodica
- [ ] Los datos personales y clinicos se almacenan separados (pseudonimizacion)

### AC-5: Auditoria de acceso
- [ ] Todo acceso a registros de pacientes se registra con timestamp y actor
- [ ] Los registros de auditoria son inmutables y accesibles para auditorias externas
- [ ] Se generan alertas ante patrones de acceso anomalos

### AC-6: Interoperabilidad
- [ ] El sistema expone APIs compatibles con estandares de salud (HL7 FHIR o equivalente)
- [ ] Se soporta intercambio de datos con otros sistemas de salud autorizados
`,
    fichaTecnicaTemplate: `# FICHA TÉCNICA: Registros de Pacientes — {{SystemName}}

## Archivos Afectados
- patients/records
- patients/consent-manager
- patients/audit-log
- patients/export
- security/encryption

## Tipos / Entidades
- \`PatientRecord\`: id, patientId, entries[], consents[]
- \`ClinicalEntry\`: type, date, professional, notes, attachments
- \`Consent\`: patientId, grantedTo, scope, grantedAt, revokedAt

## Riesgos
- Fuga de datos de salud → cifrado obligatorio + acceso auditado
- Consentimiento desactualizado → verificacion en tiempo real
- Incompatibilidad con estandares → tests de conformidad requeridos

## Estimacion
- Dev: 80–160 horas
- Review: 16–32 horas
- Dificultad: 5/5
`,
    progressTemplate: `# PROGRESS: Registros de Pacientes — {{SystemName}}

## Estado: borrador

## Criterios
- [ ] AC-1: Acceso con consentimiento
- [ ] AC-2: Historial clinico
- [ ] AC-3: Portabilidad de datos
- [ ] AC-4: Cifrado y privacidad
- [ ] AC-5: Auditoria de acceso
- [ ] AC-6: Interoperabilidad
`,
};
/** Healthtech appointments template. */
export const HEALTHTECH_APPOINTMENTS_TEMPLATE = {
    id: 'healthtech-appointments',
    name: 'Agenda y citas medicas',
    category: 'industry',
    subcategory: 'healthtech',
    description: 'Gestion de citas medicas con disponibilidad, recordatorios y telemedicina.',
    tags: ['healthtech', 'appointments', 'scheduling', 'telemedicine', 'reminders'],
    complexityScore: 'M',
    estimationBase: {
        hoursMin: 24,
        hoursMax: 48,
        notes: 'Incluye gestion de disponibilidad y recordatorios automaticos',
    },
    criteria: [
        { id: 'AC-1', title: 'Disponibilidad', required: true },
        { id: 'AC-2', title: 'Reserva de citas', required: true },
        { id: 'AC-3', title: 'Recordatorios', required: true },
        { id: 'AC-4', title: 'Cancelacion y reprogramacion', required: true },
        { id: 'AC-5', title: 'Telemedicina', required: false },
    ],
    variables: [
        {
            key: 'SystemName',
            label: 'Nombre del sistema',
            description: 'Nombre del sistema de salud',
            example: 'HealthApp',
            required: true,
        },
    ],
    huTemplate: `# HU: Citas Medicas — {{SystemName}}

## Historia de Usuario
Como paciente, quiero agendar citas medicas de forma sencilla y recibir recordatorios para no perder mis consultas.

## Criterios de Aceptacion

### AC-1: Disponibilidad
- [ ] El sistema muestra horarios disponibles por profesional y especialidad
- [ ] La disponibilidad se actualiza en tiempo real al reservar/cancelar
- [ ] Se manejan zonas horarias correctamente para telemedicina
- [ ] Los bloqueos de agenda (vacaciones, emergencias) se reflejan inmediatamente

### AC-2: Reserva de citas
- [ ] El paciente puede reservar una cita seleccionando fecha, hora y profesional
- [ ] Se confirma la cita por el canal preferido del paciente (email, SMS, push)
- [ ] Se previenen reservas dobles en el mismo horario

### AC-3: Recordatorios
- [ ] Se envia recordatorio 24 horas y 1 hora antes de la cita
- [ ] Los canales de recordatorio son configurables por paciente
- [ ] El recordatorio incluye opcion de confirmar, cancelar o reprogramar

### AC-4: Cancelacion y reprogramacion
- [ ] El paciente puede cancelar hasta N horas antes de la cita
- [ ] La reprogramacion ofrece los proximos horarios disponibles
- [ ] Las cancelaciones tardias se registran (politica configurable)

### AC-5: Telemedicina
- [ ] Las citas virtuales generan un enlace de videollamada automaticamente
- [ ] El enlace es accesible solo durante la ventana de la cita
- [ ] Se registra la asistencia a la sesion virtual
`,
    fichaTecnicaTemplate: `# FICHA TÉCNICA: Citas Medicas — {{SystemName}}

## Archivos Afectados
- appointments/availability
- appointments/booking
- appointments/reminders
- appointments/cancellation
- appointments/telemedicine

## Tipos / Entidades
- \`Appointment\`: id, patientId, professionalId, dateTime, type, status
- \`Availability\`: professionalId, slots[], blockedPeriods[]
- \`Reminder\`: appointmentId, channel, scheduledAt, sentAt

## Riesgos
- Reservas dobles → bloqueo optimista con verificacion
- Recordatorios no enviados → cola de reintentos con monitoring
- Problemas de conectividad en telemedicina → plan de contingencia

## Estimacion
- Dev: 24–48 horas
- Review: 4–8 horas
- Dificultad: 3/5
`,
    progressTemplate: `# PROGRESS: Citas Medicas — {{SystemName}}

## Estado: borrador

## Criterios
- [ ] AC-1: Disponibilidad
- [ ] AC-2: Reserva de citas
- [ ] AC-3: Recordatorios
- [ ] AC-4: Cancelacion y reprogramacion
- [ ] AC-5: Telemedicina
`,
};
//# sourceMappingURL=templates-industry-health.js.map