diff --git a/labs/lab1/assets/1.svg b/labs/lab1/assets/1.svg new file mode 100644 index 0000000..4274967 --- /dev/null +++ b/labs/lab1/assets/1.svg @@ -0,0 +1 @@ +Пациентid: UUIDФИО: stringДатаРождения: dateПол: enumСтатус: enumДокумент: stringПользовательid: UUIDФИО: stringРоль: enumОтделениеid: UUIDНазвание: stringСпециализация: stringПалатаid: UUIDНомер: intПол: enumВместимость: intРазмещениеid: UUIDДатаНачала: datetimeДатаОкончания: datetimeРегистрацияid: UUIDДатаВремя: datetimeСпособ: stringДиагнозid: UUIDКод: stringНазвание: stringДатаНазначения: dateПроцедураid: UUIDТип: stringДатаВремя: datetimeСтатус: enumОперацияid: UUIDТип: stringДатаВремя: datetimeСтатус: enumОсложнения: booleanОписаниеОсложнений: stringЛечениеid: UUIDТип: stringСхема: stringДатаНачала: dateДатаОкончания: dateРецептЛСid: UUIDНаименование: stringДозировка: stringКратность: stringДлительностьДней: intУслугаid: UUIDНазвание: stringПлатная: booleanСтоимость: decimalСчетid: UUIDДата: dateСумма: decimalСтатус: enumПозицияСчетаid: UUIDКоличество: intЦена: decimalСумма: decimalЭпикризid: UUIDДата: dateТекст: textОтчетid: UUIDТип: enumПериодНачало: dateПериодКонец: dateДатаФормирования: datetimeПолМужскойЖенскийСтатусПоступилВОжиданииВОтделенииПереведенВыписанАрхивСтатусПроцедурыНазначенаЗапланированаВыполненаОтмененаСтатусОперацииНазначенаЗапланированаВыполненаОсложненияОтмененаРольРегистраторВрачЗаведующийСтатусСчетаВыставленОплаченЧастичноОплаченАннулированТипОтчетаПропускнаяСпособностьСреднееВремяПребыванияОперацииСОсложнениями10..**110..**110..**110..**1оформляет10..*назначает10..*назначает/проводит10..*назначает/проводит10..*назначает10..*выписывает10..*формирует10..*10..**110..**110..**110..**110..**110..*10..1*111..**1*0..1 \ No newline at end of file diff --git a/labs/lab1/report.pdf b/labs/lab1/report.pdf new file mode 100644 index 0000000..d1eda7f Binary files /dev/null and b/labs/lab1/report.pdf differ diff --git a/labs/lab1/report.typ b/labs/lab1/report.typ new file mode 100644 index 0000000..7c9f0d5 --- /dev/null +++ b/labs/lab1/report.typ @@ -0,0 +1,133 @@ +#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)[Лабораторная работа №1] +#align(center)[Системный анализ предметной области] +\ +\ +\ //#align(center)[Вариант 19] +\ +\ +\ +\ +\ +\ +\ +#align(right)[Выполнил:] +#align(right)[Дощенников Никита Андреевич] +#align(right)[Группа: К3221] +#align(right)[Проверил:] +#align(right)[Иванов Сергей Евгеньевич] +\ +\ +#align(center)[Санкт-Петербург] +#align(center)[2025] + +#pagebreak() + +=== Цель работы. + +Изучить методику анализа предметной области, получить навыки формулирования проблемы, ее актуальности и потребностей заинтересованных лиц. Анализ предметной области, позволяет выделить ее сущности, определить первоначальные требования к функциональности и определить границы проекта. + +=== Результаты. + +=== 1. Первоначальные требования и границы проекта + +Разрабатываемая информационная система предназначена для автоматизации процессов регистрации и сопровождения пациентов в больнице. +Основные функции: + +- Регистрация и учет пациентов. +- Закрепление пациентов в отделениях и палатах. +- Ведение медицинских данных (диагнозы, процедуры, операции, лечение). +- Финансовый учет (выставление счетов, платные услуги). +- Формирование отчетов по работе больницы. + +Границы проекта: +Система предназначена для использования внутри одного медицинского учреждения. Она не включает: + +- взаимодействие с внешними страховыми организациями, +- интеграцию с государственными реестрами, +- обработку медицинских изображений и лабораторных данных. + +==== 2. Потребности пользователей + +Сотрудники регистратуры: + +- быстро регистрировать пациента, +- закреплять пациента за палатой, +- переводить между отделениями, +- видеть наличие свободных мест. + +Лечащий врач: + +- назначать диагноз, лечение, процедуры и операции, +- фиксировать статус пациента, +- вести историю болезни, +- выписывать пациента и формировать эпикриз. + +Заведующий отделением: + +- формировать отчеты о пропускной способности, +- анализировать среднее время пребывания пациентов, +- контролировать качество проведенных операций. + +==== 3. Словесное описание объектов и связей + +Основные объекты предметной области: + +- Пациент — лицо, обратившееся в больницу; связан с историей болезни, диагнозами, лечением. +- Отделение — структурная единица больницы, в которой размещаются пациенты. +- Палата — помещение внутри отделения, в котором находятся пациенты (разделяется по полу и наличию свободных мест). +- Регистратор — сотрудник, оформляющий пациента. +- Врач — специалист, назначающий диагноз, лечение, процедуры и операции. +- Заведующий — руководитель отделения, формирующий отчеты. +- Услуга — медицинская процедура или операция, может быть платной или бесплатной. +- Отчет — документ, генерируемый системой для анализа работы больницы. + +Связи между объектами: + +- Пациент связан с отделением и палатой. +- Врач связан с пациентом (назначения, процедуры, лечение). +- Заведующий связан с отделением (отчеты). +- Услуги и счета связаны с пациентом. + +==== 4. Подробное описание объектов автоматизации + +- Пациент — ФИО, дата рождения, пол, паспортные данные, диагноз, статус, история болезни, список процедур, операции, счета. +- Отделение — название, специализация, количество палат, количество мест. +- Палата — номер, вместимость, количество свободных мест, разделение по полу. +- Регистратор — регистрация, перевод пациентов, учет мест. +- Врач — назначение диагнозов, процедур, лекарств, выписка. +- Заведующий — отчеты о работе отделения. +- Услуги — платные и бесплатные медицинские услуги, операции, процедуры. +- Отчет — пропускная способность, среднее время пребывания, осложнения. + +==== 5. Концептуальная схема информационной системы + +#align(center)[#image("assets/1.svg")] + +=== Выводы + +В ходе проделанной работы я изучил методику анализа предметной области, получил навыки формулирования проблемы, ее актуальности и потребностей заинтересованных лиц. diff --git a/labs/lab1/task.pdf b/labs/lab1/task.pdf new file mode 100644 index 0000000..5a75300 Binary files /dev/null and b/labs/lab1/task.pdf differ diff --git a/labs/lab2/assets/1.svg b/labs/lab2/assets/1.svg new file mode 100644 index 0000000..13c1c2a --- /dev/null +++ b/labs/lab2/assets/1.svg @@ -0,0 +1 @@ +ПациентРегистраторВрачЗаведующийБухгалтерияИС регистрации пациента в больницеДанные пациентаМедкартаФинансыОтчетыДанные регистрацииПодтверждение, эпикриз, назначенияОформление, распределениеДиагнозы, назначенияЗапрос отчетовОтчетыСчет на оплатуЗапись/обновлениеЗапись/обновлениеЗапись/обновлениеФормирование отчетов \ No newline at end of file diff --git a/labs/lab2/assets/2.svg b/labs/lab2/assets/2.svg new file mode 100644 index 0000000..be30e88 --- /dev/null +++ b/labs/lab2/assets/2.svg @@ -0,0 +1 @@ +ПациентРегистраторВрачЗаведующийБухгалтерияА-1 Регистрация пациентаА-2 Медицинское сопровождениеА-3 Финансовый учетА-4 Формирование отчетовДанные пациентаМедкартаФинансыОтчетыЛичные данныеПодтверждение, размещениеОформлениеСоздание/обновлениеСоздание карточкиНазначения, статусыИстория, диагнозы, процедуры, операцииНазначения, эпикризУслуги к оплатеПлатные услугиСчета, оплатыСчетЗапрос отчетовОтчетыФормированиеСтатус госпитализацииПоказатели леченияФинпоказатели \ No newline at end of file diff --git a/labs/lab2/assets/3.svg b/labs/lab2/assets/3.svg new file mode 100644 index 0000000..ef5e52e --- /dev/null +++ b/labs/lab2/assets/3.svg @@ -0,0 +1 @@ +ВрачПациентА-2.1 Назначение диагнозаА-2.2 Назначение леченияА-2.3 Процедуры и операцииА-2.4 Выписка пациентаМедкартаДанные пациентаФинансыОтчетыКлинические данныеДиагноз, статусПлан леченияСхемы терапии, рецептыНазначения ЛСРецепт, планНазначение процедуры/операцииЗапись процедуры/операцииФакты выполненияПлатные услугиПодтверждение записиРешение о выпискеЭпикриз, итоговый статусЭпикриз, рекомендацииПоказатели пребывания \ No newline at end of file diff --git a/labs/lab2/report.pdf b/labs/lab2/report.pdf new file mode 100644 index 0000000..e4c5717 Binary files /dev/null and b/labs/lab2/report.pdf differ diff --git a/labs/lab2/report.typ b/labs/lab2/report.typ new file mode 100644 index 0000000..088bf6a --- /dev/null +++ b/labs/lab2/report.typ @@ -0,0 +1,132 @@ +#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. + + diff --git a/labs/lab2/task.pdf b/labs/lab2/task.pdf new file mode 100644 index 0000000..87b91d0 Binary files /dev/null and b/labs/lab2/task.pdf differ diff --git a/labs/lab3/task.pdf b/labs/lab3/task.pdf new file mode 100644 index 0000000..bbba98d Binary files /dev/null and b/labs/lab3/task.pdf differ diff --git a/labs/lab4/task.pdf b/labs/lab4/task.pdf new file mode 100644 index 0000000..4ff36f2 Binary files /dev/null and b/labs/lab4/task.pdf differ diff --git a/labs/proj.pdf b/labs/proj.pdf new file mode 100644 index 0000000..8336b43 Binary files /dev/null and b/labs/proj.pdf differ diff --git a/labs/proj.typ b/labs/proj.typ new file mode 100644 index 0000000..55a4995 --- /dev/null +++ b/labs/proj.typ @@ -0,0 +1,32 @@ +=== 7. Разработка проекта по созданию системы для регистрации пациента в больнице. + +Необходимо разработать проект для системы регистрации пациента в больнице. Систему используют сотрудники учреждения для регистрации и оформления пациента, для учета статуса его болезни, для учета платных услуг и для ведения архива выписанных пациентов. Также у сотрудников есть возможность составлять и просматривать отчеты по пропускной способности больницы, по среднему времени пребывания больных в стационаре, по наличию свободных мест в стационаре, по количеству прооперированных. + +С помощью системы появится возможность ускорения процесса регистрации пациента в больнице, путем снижения нагрузки на персонал и замены бумажного учета на электронный. Функции системы помогут упростить процесс хранения и поиска нужной информации, с возможностью выведения на печать интересующих данных. + +Система позволяет для работника регистратуры: ++ Зарегистрировать нового пациента ++ Определить пациента в отделение ++ Перевести пациента в другое отделение ++ Закрепить пациента в палате ++ Выставить счет за услуги ++ Просмотр наличия свободных мест в палатах отдельно для мужчин и для женщин + +Система позволяет для лечащего врача ++ Назначить диагноз ++ Проставить статус больного ++ Назначить лечение ++ Назначить процедуры ++ Назначить дату и время процедур ++ Назначить операцию ++ Назначить дату и время операции ++ Проставить статус операции ++ Назнасить платные услуги ++ Выписать лекарственные средства ++ Выписать пациента ++ Создать выписной эпикриз + +Система позволяет для заведующего отделением ++ Сформировать отчет о пропускной способности больницы ++ Сформировать отчет по среднему времени пребывания больных в стационаре ++ Сформировать отчет по операциям с осложнениями diff --git a/proj_ex.pdf b/proj_ex.pdf new file mode 100644 index 0000000..743cbe8 Binary files /dev/null and b/proj_ex.pdf differ