# Этап 3. Статьи по анатомии и диагностике

Дата: 11.10.2026
Статус: на согласовании
Связано: спека этапа 3 `2026-10-11-stage-3-diseases.md`, визуал в статьях `2026-10-11-article-visuals.md`, «часы сердца» (этап 2), 3D-модель (этап 1)

## Цель

Читатель, который открыл статью о болезни, может разобраться, как сердце устроено и как его обследуют. На сайте около десяти статей на русском и английском: шесть по анатомии и физиологии и четыре о методах диагностики. Каждая статья сначала показывает, потом объясняет: в ней есть схема с анимацией, живая ЭКГ или 3D-сердце, если они помогают понять текст.

## Что входит

### Статьи

| Тип | slug | Тема | Визуал |
|---|---|---|---|
| anatomy | heart-structure | Строение сердца: положение, стенка, перикард, четыре камеры, два круга кровообращения | Схема пути крови по камерам с анимацией |
| anatomy | heart-chambers | Предсердия и желудочки | Схема «систола / диастола»: какие камеры сокращаются |
| anatomy | heart-valves | Четыре клапана и как они открываются и закрываются | Схема «систола / диастола»: какие клапаны открыты |
| anatomy | conduction-system | Проводящая система: синусовый узел, АВ-узел, пучок Гиса, ножки, волокна Пуркинье | Анимация распространения импульса |
| anatomy | coronary-circulation | Коронарные артерии и вены | Схема коронарных артерий |
| anatomy | cardiac-cycle | Сердечный цикл, систола и диастола, тоны сердца | «Часы сердца»: ЭКГ и диаграмма Виггерса |
| diagnostic | ecg | ЭКГ в покое: что означают зубцы, когда назначают | Монитор «часов сердца» с нормальной ЭКГ |
| diagnostic | echocardiography | Эхокардиография | Схема «систола / диастола» камер с подписью, что это схема, а не снимок УЗИ |
| diagnostic | holter-monitoring | Холтеровское мониторирование ЭКГ | Схема: регистратор на теле записывает ЭКГ сутками, эпизод симптомов отмечен на записи; без монитора покоя, чтобы не путать с обычной ЭКГ |
| diagnostic | natriuretic-peptides | Анализ на BNP и NT-proBNP | Без интерактива, если нечего показать честно |

Список могут сократить или поменять находки при сборе источников: тема без проверяемых источников не пишется.

### Визуал

1. Схемы анатомии в том же компоненте `<Diagram>`, что и схемы болезней (PR 2 спеки визуала, #66; эта часть ждёт его мерджа). Изменение контракта заменяет «две радиокнопки и слоты `normal` / `disease`» из спеки визуала, поэтому PR со схемами правит и её. Анатомии нужны другие состояния, чем «норма / болезнь»: «систола / диастола», шаги распространения импульса или одно состояние без переключателя. Изменение согласовано с тредом «Схема контента», которому принадлежит компонент:
   - у схемы в реестре `diagrams/index.ts` есть необязательный список id состояний, по умолчанию `['normal', 'disease']`; подписи кнопок берутся из `messages` (`diagram.state.<id>`);
   - слот подписи называется так же, как состояние (`slot="<id>"`);
   - элементы SVG помечаются `data-only="<id>"`; классы `normal-only` и `disease-only` остаются как синонимы, чтобы схемы болезней не менять;
   - переключение остаётся на CSS `:has` без JavaScript. Scoped-стили Astro не строятся из props, поэтому правила общие: у радиокнопки `value="<id>"`, элементы с `data-only="<id>"` видны только в своём состоянии. Правило вида `.diagram:has([value=x]:checked) [data-only]:not([data-only=x])` генерируется из списка всех id в `diagrams/index.ts` и выводится на страницу один раз, вместе с первой схемой. Подпись для состояния, которого у схемы нет, ломает сборку.
   - со схемой из одного состояния переключатель не рисуется, пауза и подпись остаются;
   - e2e проверяет переключение схемы с состояниями `diastole`/`systole`; юнит-тесты проверяют каждую схему во всех локалях.
2. Монитор ЭКГ «часов сердца» внутри статьи: MDX-компонент `<EcgMonitor preset="…" />`. Он заменяет поле `preset` во frontmatter из пункта 3 спеки визуала: автор ставит монитор там, где текст о нём говорит; PR с монитором правит и ту спеку. Это обёртка на `.astro` (компонент из `components` в MDX сам не гидратируется), внутри `<HeartClockDemo client:visible />`, так что остров грузится только на странице, где он есть. Место в тексте выбирает автор. Обёртка помечена `data-pagefind-ignore`. Тред «Часы сердца» такой компонент не планирует и согласен. Под монитором подпись из `heartClock.schematic`: это синтетическая учебная модель, а не запись, и сравнивать с ней свою ЭКГ или запись часов нельзя. В статьях о диагностике только пресет `normal` без переключателя, чтобы монитор не выглядел как демонстрация диагноза.
3. 3D-вьюер в статьях анатомии: обёртка `<HeartModel highlight={[…]} />` на `.astro`, которая берёт `models`, `poster`, `structures` и `messages` из `lib/heart-model.ts` и рендерит `HeartViewer` с `loadOn="click"`, чтобы three.js не грузился ради иллюстрации, `headingLevel={3}` и начальной подсветкой через проп `highlight`. Id структур из `assets/models/heart/structures.yaml`.
4. Все новые MDX-компоненты регистрируются в `components/article-components.ts`, который используют и страница статьи, и страница встраивания.

### Маршруты

- Статьи анатомии живут по адресу `/<locale>/anatomy/<slug>/`, диагностики `/<locale>/diagnostic/<slug>/`.
- Страница `/<locale>/anatomy/` с 3D-вьюером (#56) совпадает с адресом списка статей типа `anatomy`, поэтому список статей анатомии показываем на этой странице под вьюером, а `[type]/index.astro` для `anatomy` страницу не строит. Тред «3D-модель сердца» согласен: список идёт отдельным разделом с `h2` после вьюера. Список повторяет правила `[type]/index.astro`: fallback на другой язык с `lang` и `dir` у непереведённых пунктов, сортировка `localeCompare`. Ссылку «Анатомия» на главной не дублируем: там уже есть ссылка на эту страницу. Это делается в PR 2 вместе с первыми статьями анатомии, чтобы адреса не столкнулись.
- Встраивание: маршрут `embed/disease/[slug]` обобщается до `embed/[type]/[slug]`, чтобы статьи анатомии и диагностики тоже работали внутри `/<locale>/embed/`. `ReviewNotice`, `SourceList`, `canonical` и `fullPage` остаются как есть. Конструктор кода `embed/index.astro` показывает по группе (`optgroup`) на каждый тип из `articleTypes`, в котором есть статьи. Сервис-воркер уже пропускает `/<locale>/embed/…`.

## Что не входит

Статьи о лечении, глоссарий и «Проверь себя». Изменения схемы контента (поля frontmatter): если понадобятся, их делает тред «Схема контента». Потребительские ЭКГ-устройства (часы, браслеты) в этих статьях не разбираем, кроме фактов из рекомендаций (например, что ESC 2024 по ФП говорит о документировании ФП).

## Источники

- Анатомия (`type: anatomy`): схема требует хотя бы один источник, но мы держим ту же планку, что у болезней: не меньше двух, справочник StatPearls и учебник с ISBN или обзор с DOI. Рекомендации не обязательны, потому что анатомия не клиническое утверждение.
- Диагностика (`type: diagnostic`): не меньше двух источников, хотя бы одна клиническая рекомендация из `content/trusted-sources.yaml`, где этот метод обсуждается. Каждый порог берётся из рекомендации и в тексте приписан ей («по рекомендациям NICE…»). Если две рекомендации дают разные пороги, статья либо называет оба с указанием, чьи они, либо приводит один.
- Документы обществ, которых нет в `trusted-sources.yaml` (научное заявление AHA/ACCF/HRS 2007, рекомендации ASE, позиционный документ HFA), записываются как `tier: review` с DOI и без `org` и никогда не считаются обязательной рекомендацией.
- StatPearls: `tier: reference`, `org: statpearls`, `url` на NCBI Bookshelf. OpenStax: `tier: textbook` без `org`, с `isbn` и `url` главы.
- Рекомендаций Минздрава отдельно по методам (ЭКГ, ЭхоКГ, Холтер, BNP) нет, поэтому в статьях о диагностике их нет; по ХСН они есть и могут цитироваться в статье о BNP, если автор прочитал текст.
- OpenStax (CC BY-NC-SA) и StatPearls (CC BY-NC-ND) несовместимы с CC BY-SA контента: факты пересказываются, текст и рисунки не копируются.
- Проверенный список источников по каждой статье — в разделе «Таблица источников» ниже. Устаревшие документы из спеки источников этапа 3 не цитируются.

## Как пишутся статьи

Процесс тот же, что для статей о болезнях:

Брифы лежат в общих файлах проекта (`process/`), evidence и отчёты проверки там же (`evidence/<slug>*.md`), в репозиторий не коммитятся: в них длинные цитаты из рекомендаций.

1. Черновик на русском по брифу `article-BRIEF.md`: у каждого факта `<Cite>`, рядом `evidence/<slug>.md` с дословными цитатами из источников.
2. Независимая проверка по `article-VERIFY.md`: каждое утверждение заново сверяется с источником. Все замечания уровня MUST исправляются до PR.
3. Перевод на английский (`article-TRANSLATE.md`) и его проверка (`article-VERIFY-EN.md`).
4. Подписи к схемам — медицинский текст: пишутся в MDX, несут `<Cite>` и проходят ту же проверку. Отдельный проход сверяет рисунок схемы с подписью.

Структура статьи анатомии: что это, как устроено, как работает, связь с болезнями (ссылки на статьи о болезнях). Структура статьи о диагностике: что показывает метод, когда его назначают, как подготовиться и как проходит, что значат результаты (на уровне «врач оценивает вместе с другими данными»), ограничения. Уровни «пациент» и «студент» как в статьях о болезнях. Раздел «Связь с болезнями» в анатомии только ссылается на статьи о болезнях и не делает своих клинических утверждений: у анатомии нет обязательной рекомендации, поэтому клинические факты живут в статьях о болезнях.

В статьях о диагностике:

- «Как подготовиться»: только «следуйте указаниям врача или клиники»; никаких советов отменить или поменять лекарства, голодать и т. п., если это не прямая цитата рекомендации общего характера.
- Нормальный результат не исключает болезнь: это сказано явно для ЭКГ, Холтера и BNP.
- Пороги NT-proBNP из NICE NG106 — пороги срочности направления у взрослых с симптомами и подозрением на сердечную недостаточность, а не «нормы» и не скрининг; статья говорит это и то, что референсные значения зависят от лаборатории.
- В статьях об ЭКГ и Холтере обязательно: боль в груди, обморок или сильное сердцебиение — повод вызвать скорую, а не ждать обследования.

В остальных статьях раздел «Когда срочно вызывать скорую» только где он по делу.

Нет доз, схем лечения и советов «что принять». Результаты анализов не толкуются за врача: статья объясняет, что показатель значит в общем, а не что делать читателю с его цифрой.

## Разбиение на PR

| PR | Содержание | Готово, когда |
|---|---|---|
| 1 | Эта спека | Спека в `main` |
| 2 | Шесть статей анатомии на русском и английском, список статей на странице анатомии, маршрут встраивания для всех типов | Сборка зелёная, проверка по источникам пройдена |
| 3 | Четыре статьи о диагностике на русском и английском | То же |
| 4 | Монитор ЭКГ в статьях; состояния схем и схемы анатомии (после #66), правка спеки визуала | Схемы работают без JS, axe и e2e зелёные |
| 5 | 3D-вьюер в статьях анатомии | Вьюер грузится по клику, axe зелёный |

## Проверки

- Сборка проверяет схему frontmatter и номера `<Cite>`.
- e2e: страницы `/ru/anatomy/<slug>/` и `/ru/diagnostic/<slug>/` открываются, axe без нарушений; встраивание статей анатомии и диагностики работает; в конструкторе встраивания есть группа на каждый тип со статьями; список статей на странице анатомии.
- Независимое ревью ветки субагентом перед мерджем.

## Таблица источников

Проверено 11.10.2026: DOI через Crossref, страницы NICE, главы StatPearls на statpearls.com (NCBI отдаёт reCAPTCHA, номер NBK сверен по индексу NCBI), контрольная цифра ISBN. Автор статьи всё равно сам открывает каждый источник перед `sources_checked`.

| Статья | Источники (org, tier) |
|---|---|
| heart-structure | StatPearls «Anatomy, Thorax, Heart and Pericardial Cavity» (NBK482452, 2023); StatPearls «Anatomy, Thorax, Heart» (NBK470256, 2023); OpenStax «Anatomy and Physiology 2e», гл. 19 (textbook, ISBN 9781711494067, 2022) |
| heart-chambers | Те же три |
| heart-valves | StatPearls «Anatomy, Thorax, Mitral Valve» (NBK549884), «Anatomy, Thorax, Aortic Valve» (NBK559384), «Anatomy, Thorax, Heart Pulmonic Valve» (NBK547706), все 2023; OpenStax гл. 19.1 и 19.3 |
| conduction-system | StatPearls «Physiology, Cardiac» (NBK526089, 2023); «Atrioventricular Node» (NBK557664, 2026); OpenStax гл. 19.2 |
| coronary-circulation | StatPearls «Anatomy, Thorax, Heart Arteries» (NBK470522, 2023); «Anatomy, Thorax, Heart Veins» (NBK549786, 2023); OpenStax гл. 19.1 |
| cardiac-cycle | StatPearls «Physiology, Cardiac Cycle» (NBK459327, 2022); OpenStax гл. 19.3 |
| ecg | esc guideline: 2024 ESC CCS (10.1093/eurheartj/ehae177); esc guideline: 2024 ESC AF (10.1093/eurheartj/ehae176); nice guideline: CG109 (обновлено 21.11.2023); StatPearls «Electrocardiogram» (NBK549803, 2023); review: Kligfield et al. 2007, стандартизация ЭКГ (10.1161/CIRCULATIONAHA.106.180200) |
| echocardiography | nice guideline: NG106 (обновлено 03.09.2025); nice guideline: NG208; esc guideline: 2024 ESC CCS; StatPearls «Ultrasound Adult Echocardiography Assessment, Protocols, and Interpretation» (NBK570556, 2023); review: ASE 2019 (10.1016/j.echo.2018.06.004) |
| holter-monitoring | nice guideline: CG109; esc guideline: 2018 ESC syncope (10.1093/eurheartj/ehy037, новая версия ESC ожидается в 2027); esc guideline: 2024 ESC AF; StatPearls «Ambulatory ECG Monitoring» (NBK597374, 2026) |
| natriuretic-peptides | nice guideline: NG106; esc guideline: 2026 ESC HF (10.1093/eurheartj/ehag100); review: HFA 2019 practical guidance (10.1002/ejhf.1494); StatPearls «Natriuretic Peptide B Type Test» (NBK556136, 2025) |

Замечания:

- OpenStax «Anatomy and Physiology 2e» распространяется по CC BY-NC-SA 4.0. Ссылаться на неё можно, копировать текст и рисунки в `content/` и `assets/` (CC BY-SA 4.0) нельзя.
- Пороги NT-proBNP берём только из NICE NG106, где они сверены дословно. Возрастные пороги из StatPearls не приводим.
- Не цитируем: ESC HF 2021 и обновление 2023 (заменены ESC HF 2026), StatPearls «Heart Coronary Arteries» NBK534790 (в архиве).
