#set text(size: 1.3em)

#show raw.where(block: false): box.with(
  fill: luma(240),
  inset: (x: 3pt, y: 0pt),
  outset: (y: 3pt),
  radius: 2pt,
)

#show raw.where(block: true): block.with(
  fill: luma(240),
  inset: 10pt,
  radius: 4pt,
)
    
// title
    
#align(center)[Санкт-Петербургский национальный исследовательский университет информационных технологий, механики и оптики]
\
\
\
#align(center)[Факультет инфокоммуникационных технологий]
#align(center)[Направление подготовки 11.03.02]
\
\
#align(center)[Лабораторная работа №3]
#align(center)[Создание требований к разрабатываемой информационной системе]
\
\
\ //#align(center)[Вариант 19]
\
\
\
\
\
\
\
#align(right)[Выполнил:]
#align(right)[Дощенников Никита Андреевич]
#align(right)[Группа: К3221]
#align(right)[Проверил:]
#align(right)[Иванов Сергей Евгеньевич]
\
\
#align(center)[Санкт-Петербург]
#align(center)[2025]

#pagebreak()
    
=== Цель работы.

Изучение и формализация функциональных и нефункциональных требований к ИС, использование методов выявления требований и оформление их в виде глоссария, концепции и дополнительных спецификаций в соответствии с положениями ГОСТ 19.201-78 и ГОСТ 34.602-89.

=== Краткая концепция системы

Назначение системы: автоматизация процессов регистрации пациентов и учета их статуса в больнице, учёта платных услуг и ведения архива выписанных пациентов; формирование управленческих отчётов.

Цели создания: cнизить время регистрации пациента и нагрузку на регистратуру; исключить бумажный учёт, обеспечить быстрый поиск и хранение истории пациентов; обеспечить возможность формирования отчётов и печати необходимых документов; повысить точность учёта платных услуг и операций.

Пользователи: регистратура, лечащий врач, заведующий отделением, бухгалтер, администратор системы, медицинский архивариус.

=== Глоссарий

- Пациент — физическое лицо, зарегистрированное в системе для получения медицинских услуг.
- Регистратура — сотрудник, выполняющий первичную регистрацию и распределение пациентов.
- Отделение — структурное подразделение больницы (кардиология, хирургия и т. п.).
- Палата — место размещения пациента в отделении; имеет пол, количество коек.
- Выписной эпикриз — документ, формируемый при выписке пациента, содержащий краткое описание лечения и результатов.
- Диагноз — код/наименование диагноза, назначаемое врачом.
- Статус больного — текущее состояние.
- Платная услуга — услуга за отдельную плату.
- Операция — хирургическое вмешательство; имеет дату/время, статус и осложнения.
- Отчёт — данные по заданным метрикам.
- Архив — данные о выписанных пациентах, сохраняемые для поиска и анализа.

=== Методы выявления требований

Для построения требований рекомендуется использовать сочетание методов:

- Интервью с сотрудниками регистратуры, врачами, заведующими.
- Анкетирование персонала для сбора пожеланий по отчётности и интерфейсу.
- Моделирование и анализ текущих бизнес-процессов (регистрация, перевод, выписка).
- Сессии по выявлению требований (мозговой штурм с ключевыми стейкхолдерами).
- Прототипирование (демонстрация работающих прототипов экранных форм и отчётов пользователям) — быстрая валидация интерфейса.

=== Функциональные требования

==== Общие функции системы

- Учет и хранение данных пациентов.
- Поиск пациента по различным критериям.
- Журнал действий пользователей.
- Печать стандартных форм.
- Экспорт/импорт данных в стандартизованных форматах для обмена с другими системами.

==== Функции для регистратуры

- Зарегистрировать нового пациента.
- Определить пациента в отделение.
- Перевести пациента в другое отделение.
- Закрепить пациента в палате / койке.
- Выставить счет за платные услуги.
- Просмотр наличия свободных мест в палатах с возможностью фильтрации по отделению и дате.
- Распечатать документы регистрации и направления.

==== Функции для лечащего врача

- Назначить диагноз пациенту.
- Изменить/установить статус больного.
- Назначить лечение.
- Назначить процедуры.
- Назначить дату и время процедур.
- Назначить операцию.
- Назначить дату и время операции.
- Проставить статус операции.
- Назначить платные услуги.
- Выписать лекарственные средства.
- Выписать пациента.
- Создать выписной эпикриз.

==== Функции для заведующего отделением / администратора

- Сформировать отчёт о пропускной способности больницы.
- Сформировать отчёт по среднему времени пребывания больных в стационаре.
- Сформировать отчёт по операциям с осложнениями.
- Просмотр загрузки палат/коек и прогноз заполнения.
- Управление списком отделений, палат, типов процедур и платных услуг.
- Права доступа: назначение ролей и прав пользователей.

==== Функции для бухгалтера / платёжной подсистемы

- Вести учёт платных услуг, генерация счетов и историй оплат.
- Экспорт данных по начислениям для бухгалтерии.
- Маркировать оплату как оплачено/частично оплачено/отменено.

==== Архив и отчётность

- Перенос выписанных пациентов в архив с возможностью поиска и восстановления.
- Формирование стандартных и настраиваемых отчётов.
- Сохранение истории изменений медицинской карты и назначений.

=== Нефункциональные требования

==== Требования к применению

- Интерфейс должен быть доступен с минимальным обучением: обучение одного сотрудника — не более 4 часов базового курса.
- Все основные операции — не более 5 кликов/шагов.
- Формы ввода должны иметь валидацию и подсказки.

==== Требования к производительности

- Время отклика на основные операции — не более 1.5 секунды при нагрузке до 50 одновременных пользователей.
- Поддержка одновременной работы до 200 пользователей в масштабируемой конфигурации при условии горизонтального масштабирования сервера.
- Формирование отчёта по пропускной способности за период до года — не более 10 секунд.

==== Требования к надёжности и доступности

- Доступность системы 99.5%.
- Время восстановления после отказа — не более 2 часов при наличии резервного оборудования/контейнеров.
- Потеря данных — не более 15 минут.
- Логирование всех критических событий и операций.

==== Требования к безопасности и конфиденциальности

- Аутентификация пользователей по логину/паролю; поддержка двухфакторной аутентификации для администраторов.
- Ролевой доступ: разграничение прав.
- Шифрование данных в покое и при передаче.
- Соответствие требованиям защиты персональных данных: журналы доступа, удаление персональных данных по запросу, хранение истории изменений.
- Регулярное применение обновлений безопасности и патчей.

==== Требования к интерфейсу и совместимости

- Веб-интерфейс, совместимый с современными браузерами — последние 2 версии.
- API для интеграции с лабораторией, учетной системой и электронным архивом.
- Экспорт/импорт данных в CSV/XML/JSON.

==== Требования к эксплуатации и поддержке

- Документация: пользовательская инструкция, инструкция администратора, инструкция по резервному копированию/восстановлению.
- Система должна поддерживаться командой с 1 системным администратором и 1-2 разработчиками для сопровождения.


=== Cтадии разработки

1. Подготовительный этап / ТЗ — сбор требований, разработка ТЗ, согласование.
2. Проектирование — архитектура системы, модель данных, UX/UI прототипы.
3. Разработка — разработка модулей регистрации, врачебных функций, отчётов, платёжной подсистемы.
4. Тестирование — модульное, интеграционное, приёмочное тестирование с участием пользователей.
5. Внедрение и обучение — развертывание в продуктиве, обучение персонала.
6. Сопровождение — поддержка, исправление ошибок, доработка по результатам эксплуатации.

=== Выводы:

Проведён анализ предметной области и описание назначение ИC. Сформирован глоссарий терминов, определены роли пользователей. Составлены детальные функциональные требования по ролям. Описаны нефункциональные требования с конкретными метриками. Подготовлены дополнительные технические спецификации. Разработан план стадий разработки и критерии приёмки в соответствии с ГОСТ 19.201-78 и ГОСТ 34.602-89.

