#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)[Лабораторная работа №2]
#align(center)[Создание контекстной диаграммы потоков данных в нотации DFD]
\
\
\ //#align(center)[Вариант 19]
\
\
\
\
\
\
\
#align(right)[Выполнил:]
#align(right)[Дощенников Никита Андреевич]
#align(right)[Группа: К3221]
#align(right)[Проверил:]
#align(right)[Иванов Сергей Евгеньевич]
\
\
#align(center)[Санкт-Петербург]
#align(center)[2025]

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

Изучить методику создания контекстной диаграммы потоков данных в нотации DFD.

=== Результаты. 

==== 1. Внешние сущности контекстной диаграммы.

Для системы регистрации пациента в больнице выделены следующие внешние сущности:

- Пациент — источник личных данных, обращается для регистрации, получает документы (счета, выписку, назначения).

- Регистратор — взаимодействует с системой для ввода данных пациента, закрепления в отделении, выставления счетов.

- Врач — вносит медицинские назначения, операции, процедуры, выписки.

- Заведующий отделением — получает отчёты о работе отделения.

- Бухгалтерия (или «Финансовая система») — получает счета и данные об оплате услуг.

==== 2. Главный процесс в БНФ-нотации

Главный процесс: "Регистрация и сопровождение пациента в больнице".

В БНФ-форме: 

```
<Процесс> ::= <ВводДанныхПациента> | <РегистрацияПациента> | <МедицинскоеСопровождение> | <ФормированиеОтчетов>

<ВводДанныхПациента> ::= Пациент -> Система
<РегистрацияПациента> ::= Регистратор -> Система -> Пациент
<МедицинскоеСопровождение> ::= Врач -> Система -> Пациент
<ФормированиеОтчетов> ::= Заведующий -> Система -> Отчет
```

==== 3. Контекстная диаграмма (Уровень A-0)

Главный процесс: "Система регистрации пациента в больнице".

Входы: 

- Данные пациента (от Пациента).
- Данные о диагнозах и лечении (от Врача).
- Запросы на отчёты (от Заведующего).
- Данные о счетах (от Регистратора).

Выходы:

- Подтверждение регистрации (Пациент).
- Медицинские назначения, выписки (Пациент).
- Отчёты (Заведующий).
- Счета на оплату (Бухгалтерия).

#align(center)[#image("assets/1.svg")]

==== 4. Декомпозиция процесса (уровень A-1)

Главный процесс раскладывается на подсистемы:

- Регистрация пациента — ввод данных, закрепление в отделении/палате.
- Медицинское сопровождение — назначение диагнозов, процедур, операций, выписка.
- Финансовый учет — выставление счетов, учет платных услуг.
- Формирование отчетов — пропускная способность, среднее время пребывания, осложнения.

#align(center)[#image("assets/2.svg")]

==== 5. Диаграммы потоков данных (DFD) уровней 

- А-0 — контекстная диаграмма (один процесс «Система регистрации пациента в больнице»).
- А-1 — разложение на 4 подпроцесса (Регистрация, Медицинское сопровождение, Финансы, Отчёты).
- А-2 — можно детализировать, например, процесс «Медицинское сопровождение»:
  - Назначение диагноза.
  - Назначение лечения.
  - Назначение процедуры/операции.
  - Выписка пациента.

#align(center)[#image("assets/3.svg")]

=== Выводы.

В ходе проделанной работы я изучил методику создания контекстной диаграммы потоков данных в нотации DFD.


