Overview
The Training module provides a complete learning management system (LMS) for pharmacovigilance staff, including course creation, session management, attendance tracking, AI-powered content generation, and automated certificate issuance.Architecture
Course Structure
Programs (Programas)
Top-level training programs with metadata:Program Model
Sessions (Sesiones)
Scheduled training sessions within a program:Session Model (backend/app/routers/capacitacion.py:275)
Materials (Materiales)
Training content with AI generation capabilities:Material Model (backend/app/models/capacitacion.py)
AI-Powered Content Generation
Full Auto Mode
Generate complete training materials with a single prompt:Full Auto Material Creation (POST /api/v1/capacitacion/materiales)
Material Content
3+ pages of structured text with:
- Introduction and objectives
- Main content with sections and subsections
- Practical examples with moderate emoji use (💊, ⚠️, ✅)
- Bibliography section (APA format)
PDF Document
Professional PDF with:
- Cover page with title and metadata
- Multiple pages with 11pt Helvetica font
- Automatic page breaks
- Margins: 40px (left/right), 50px (top/bottom)
Quiz/Evaluation
10 questions (configurable) with:
- Mixed question types
- Point distribution (total: 20)
- Correct answers marked
- Explanations for open-ended questions
AI-Assisted Quiz Generation
Generate evaluations from existing materials:Generate Quiz from Text (POST /api/v1/capacitacion/quiz/generate)
| Type | Description | Answer Format |
|---|---|---|
single_choice | One correct option | options[].correct: bool |
multiple_choice | Multiple correct options | options[].correct: bool (≥2) |
true_false | Boolean question | answer: bool |
short_text | Brief open response | explanation: str (guidance) |
long_text | Paragraph response | explanation: str (rubric) |
image_select | Visual identification | options[].correct: bool |
ordering | Sequence arrangement | correct_order: ["id1", "id2", ...] |
matching | Pair matching | pairs: [{left, right}, ...] |
The system automatically distributes 20 total points across questions. For 10 questions: each gets 2 points. For 8 questions: 6 get 2 points, 2 get 3 points.
Attendance Management
Track participant attendance for sessions:Register Attendance (POST /api/v1/capacitacion/asistencia)
Attendance Report
Get Session Attendance (GET /api/v1/capacitacion/sesiones/{id}/asistencia)
Certificate Generation
Automatic certificate generation upon course completion:Certificate Criteria
Criteria for Certificate Issuance:
- ✅ Completed all required materials
- ✅ Passed all evaluations (score ≥
min_score) - ✅ Attendance ≥ 80% for sessions marked as
obligatorio - ✅ Submitted within deadline (if
quiz_lock_atset)
Certificate Template
Certificate Data Structure
Material Visibility & Access Control
Audience Modes
- Todos
- Áreas
- Personalizado
Visible to all employees across all areas.
Progress Tracking
Employee Progress
Get Training Progress (GET /api/v1/capacitacion/progress/{empleado_id})
Course Analytics
Program Statistics (GET /api/v1/capacitacion/programas/{id}/stats)
API Configuration
OpenAI Settings
AI Generation Configuration
Best Practices
Content Design
- Use full_auto mode for consistent formatting
- Provide detailed
objetivosfor focused content - Specify
publicoto tailor complexity level - Request 60-90 minute sessions (optimal engagement)
- Include real-world examples in
extrasfield
Quiz Design
- Mix question types for variety
- Use 8-12 questions per evaluation
- Set
min_scoreto 14/20 (70% pass rate) - Allow 3 attempts for learning reinforcement
- Provide explanations for open-ended questions
Session Planning
- Schedule sessions 2+ weeks in advance
- Use
mes_programadofor annual planning - Link materials to sessions with
sesion_id - Set
max_participantesfor venue capacity - Send reminders 48h before session
Access Control
- Use
audience_mode="areas"for role-based access - Restrict sensitive materials with
personalizado - Mark compliance training as
obligatorio=true - Set
quiz_lock_atfor deadline enforcement - Review access logs in audit trail
Troubleshooting
AI Generation Timeout
AI Generation Timeout
Symptoms: API returns 504 Gateway TimeoutCauses:
- Model overload (OpenAI service issues)
- Content too long (>20,000 chars)
- Slow network connection
- Increase
OPENAI_TIMEOUT_SECto 90 - Reduce
auto_full_params.extraslength - Use smaller model (gpt-4o-mini)
- Retry after 2-3 minutes
Certificate Not Generated
Certificate Not Generated
Checklist:
- All required materials marked as completed?
- All quiz scores ≥
min_score? - Attendance ≥ 80% if program is
obligatorio? - Submission before
quiz_lock_atdeadline? - Program status is
vigente(notborrador)?
Quiz Points Don't Sum to 20
Quiz Points Don't Sum to 20
Cause: Manual quiz JSON editingFix: Call redistribution endpoint
Related Documentation
Employee Management
Managing staff records and organizational areas
Audit Trail
Tracking training completion and certificate issuance