Інтерактивний веб-квест для сімейних лікарів. Чат з AI-пацієнтом → замовлення обстежень → діагноз → оцінка (100 балів) + продукт Schönen.
URL для лікарів: http://31.131.26.203/med-detective/ Дата запуску: 2026-04-18 Статус: PROD (Investigation Panel + медичний QA з 2026-04-19)
| Роль | systemd | Port | Redis DB | Поточний URL |
|---|---|---|---|---|
| Інстанс A | med-detective.service |
8765 | 3 | /med-detective-test/ (rollback) |
| Інстанс B | med-detective-test.service |
8766 | 4 | /med-detective/ (prod) |
Перевірка поточного mapping: grep reverse_proxy /etc/caddy/conf.d/med-detective*.caddy
backend/cases/backend/lab_catalog.py — 39 тестів у 6 категоріях/srv/projects/med-detective-test/backend/cases/case_XX.json за шаблоном існуючих.venv/bin/python scripts/validate_case.py backend/cases/case_XX.jsonsystemctl restart med-detective-testkey_tests_to_order[].id у LAB_CATALOG або extra_teststest_results[tid]Варіант A — swap Caddy routes (нуль-даунтайм, instant rollback):
sed -i 's|8765|8766|' /etc/caddy/conf.d/med-detective.caddy
sed -i 's|8766|8765|' /etc/caddy/conf.d/med-detective-test.caddy
systemctl reload caddy
Варіант B — rsync (якщо робились паралельні правки на prod):
rsync -a --delete /srv/projects/med-detective-test/ /srv/projects/med-detective/
# ⚠️ обережно з REDIS_URL (він у systemd unit — не перетирати)
systemctl restart med-detective
/srv/projects/med-detective/backend/main.py/srv/projects/med-detective/backend/lab_catalog.py/srv/projects/med-detective/backend/prompts/ (patient, intent, judge)/srv/projects/med-detective/backend/cases/case_*.json/srv/projects/med-detective/scripts/validate_case.py/srv/projects/med-detective/frontend/index.html/etc/systemd/system/med-detective.service/etc/systemd/system/med-detective-test.service/etc/caddy/conf.d/med-detective.caddy/etc/caddy/conf.d/med-detective-test.caddy/var/log/med-detective.log/var/log/med-detective-test.logДетально: /srv/research/2026-04-19/med-detective-audit.md + /srv/research/2026-04-19/medical-advisor-cases-qa.md