Exam¶
The Exam module provides adaptive / generated multiple-choice tests with a final score.
Practice mode
Exam results reflect training, not an official clinic certification.
Access¶
| Setting | Value |
|---|---|
| URL | http://localhost:8001/exam |
| Flag | MEDICAL_ASSISTANT_ENABLED=true |
| Roles | student, resident, and other LEARNING_ROLES |
Test list¶
- Open
/exam. - Choose a language (
en/ru) — seed tests are filtered by language. - Optionally filter by category and difficulty.
- Open a test and answer every question.
Seed tests EN + RU¶
Like cases, built-in tests are created idempotently in both languages. Custom tests always appear; seed tests from the other language are hidden.
Taking an exam¶
- For each question select the option index (0-based).
- Submit the full answer list in one request / finish action.
- Review the score (0–100), correct count, and per-question explanations.
Correct indexes and explanations are not returned by GET until you submit.
Generate a test¶
| Field | Description |
|---|---|
category |
Subject / category (required) |
difficulty |
Difficulty level |
num_questions |
1–20 (default 5) |
language |
en or ru |
persist |
Save to the database |
Generated tests appear in the catalog and count toward progress after submission (module: exam).
Progress link¶
After submit, a progress row stores:
score— percent correct;time_spent— optional seconds;extra_data—test_idandcorrectcount.
See the summary at /progress.
Tips¶
- Pick the language before you start — switching languages changes the seed set.
- Do not leave questions blank: missing answers count as wrong.
- After review, return to the tutor with questions on weak topics.
Typical walkthrough¶
- Open http://localhost:8001/exam.
- Choose a language and open a seed test.
- Select answers (0-based indexes) and submit.
- Review
detailswith explanations. - Revisit weak topics in the tutor and cases.
Errors¶
| Symptom | Cause |
|---|---|
404 |
Invalid test_id |
503 |
Assistant disabled |
| Low score despite “right” picks | Option indexes are 0-based |
| No RU seed tests | Language filter, or first GET /api/exam not run yet |