Автоматизированная информационная система учета пациентов отделений в психо-неврологическом диспансере

Автор работы: Пользователь скрыл имя, 01 Декабря 2011 в 01:50, дипломная работа

Описание

В данной работе делается попытка спроектировать автоматизированную информационную систему учета пациентов отделений в ПНД. Разработанная система повысит оперативность получения информации о пациентах, результатах его лечения. Хранение этой информации в памяти ЭВМ придаст ей принципиально новое качество динамичности. Система должна находится в состоянии непрерывного обновления, отражая все изменения результатов лечения пациентов. Устройства автоматической печати должны позволить в случае необходимости быстро представить любую выборку из этой информации в форме представления на бумаге.

Содержание

Введение………………………………………………………………………….... 5
1 Системный анализ предметной области…………………………………….….7
2 Проектирование БД……………………………………………………………...12
2.1 Проектирование с использованием ER - метода……………………….…14
2.1.1 Определение сущностей и связей между ними………………….….14
2.1.2 Определение исходных и ролевых сущностей……………………...15
2.1.3 Построение ER - диаграмм…………………………………………...15
2.1.4 Построение набора предварительных отношений……………….…30
2.1.5 Распределение оставшихся атрибутов по полученным
отношениям………………………………………………………………………...32
2.1.6 Проверка нахождения полученных отношений в НФБК…………..35
2.2 Проверка отношений на завершающей фазе проектирования…………...37
3 Выбор СУБД……………………………………………………………………..38
4 Разработка алгоритмического и программного обеспечения АИС…………..40
4.1 Алгоритм функционирования информационной системы……………….40
4.2 Инструкция пользователя…………………………………………………..46
4.2.1 Запуск программы…………………………………………………….46
4.2.2 Работа со справочниками……………………………………………46
4.2.3 Работа с пациентами…………………………………………………48
4.2.4 Создание и редактирование медицинской карты…………………..51
4.2.5 Создание остальной документации………………………………….54
4.2.6 Работа с документацией……………………………………………..58
4.2.7 Вывод отчетов………………………………………………………..64
4.2.8 О справке……………………………………………………………...70
4.2.9 Завершение работы……………………………………………………71
5 Безопасность жизнедеятельности………………………………………………72
5.1 Анализ условий труда………………………………………………………72
5.2 Требования безопасности, эргономики и технической
эстетики к рабочему месту программиста……………………………………….74
5.3 Разработка защитных мероприятий на рабочем
месте программиста…………………………………………………………….83
5.4. Расчет естественного освещения………………………………………….88
5.5 Расчет искусственного освещения…………………………………………89
5.6 Безопасность жизнедеятельности в чрезвычайных ситуациях…………..91
5.6.1 Рекомендуемые нормы пожарной безопасности……………………92
5.6.2 Меры по индивидуальной защите оператора……………………….92
5.7 Вывод………………………………………………………………………...93
6 Экономический раздел…………………………………………………………..94
6.1 Расчет необходимых капитальных вложений……………………94
6.1.1 Расчет затрат на разработку АИС…………………………..94
6.1.2 Капитальные вложения по базовому варианту …………..95
6.2 Расчет текущих эксплуатационных затрат………………………95
6.2.1 Расчет затрат по базовому варианту………………………...96
6.2.2 Расчет затрат по проектному варианту……………………..96
6.3 Расчет показателей экономической эффективности……………………..97
6.4 Вывод……………………………………………………………………….100
Заключение………………………………………………………………………..101
Список использованных источников……

Работа состоит из  1 файл

диплом-Альбина.doc

— 930.50 Кб (Скачать документ)

                   iii = rsDoc!КодДок

               End If

               rsDoc.MoveNext

           Loop

           rsDoc.AddNew

           rsDoc!КодДок = iii + 1

           rsDoc!Документ = "Дополнительное обследование"

           rsDoc!Дата = DATE

           rsDoc!Врач = CurrentUser()

           rsDoc!Датазаполн = DATE

           rsDoc!КодМедкарты = rsBuf!НомердокумМК2

           rsDoc.Update

           rsBuf.Edit

           rsBuf!КодДок = iii + 1

           rsBuf.Update

           rs.AddNew

           rs!КодДопОбсл = iii + 1

           rs.Update

           DoCmd.OpenForm ("Для_ДопОбследование")

       End Function

        _______________________________________________________________________

       Public Function Для_Рецепты()

           Set db = CurrentDb

           Set rsDoc = db.OpenRecordset("Документы")

           Set rsBuf = db.OpenRecordset("Буфер")

           Set rs = db.OpenRecordset("Рецепт")

           iii = 0

           iDocno = 0

           rsDoc.MoveFirst

           Do Until rsDoc.EOF = True             ' поиск максимального Коддок

               If rsDoc!КодДок > iii Then         ' чтобы сделать Коддок+1

                   iii = rsDoc!КодДок

               End If

               rsDoc.MoveNext

           Loop

           rsDoc.AddNew

           rsDoc!КодДок = iii + 1

           rsDoc!Документ = "Рецепт"

           rsDoc!Дата = DATE

           rsDoc!Врач = CurrentUser()

           rsDoc!Датазаполн = DATE

           rsDoc!КодМедкарты = rsBuf!НомердокумМК2

           rsDoc.Update

           rsBuf.Edit

           rsBuf!КодДок = iii + 1

           rsBuf.Update

           rs.AddNew

           rs!КодРецепт = iii + 1

           rs.Update

           DoCmd.OpenForm ("Для_Рецепты")

       End Function

       _______________________________________________________________________

       Public Function Для_Дневники()

           Set db = CurrentDb

           Set rsDoc = db.OpenRecordset("Документы")

           Set rsBuf = db.OpenRecordset("Буфер")

           Set rs = db.OpenRecordset("Дневники")

           iii = 0

           iDocno = 0

           rsDoc.MoveFirst

           Do Until rsDoc.EOF = True             ' поиск максимального КодДок

               If rsDoc!КодДок > iii Then         ' чтобы сделать КодДок + 1

                   iii = rsDoc!КодДок

               End If

               rsDoc.MoveNext

           Loop

           rsDoc.AddNew

           rsDoc!КодДок = iii + 1

           rsDoc!Документ = "Дневники"

           rsDoc!Дата = DATE

           rsDoc!Врач = CurrentUser()

           rsDoc!Датазаполн = DATE

           rsDoc!КодМедкарты = rsBuf!НомердокумМК2

           rsDoc.Update

           rsBuf.Edit

           rsBuf!КодДок = iii + 1

           rsBuf.Update

           rs.AddNew

           rs!КодДневник = iii + 1

           rs.Update

           DoCmd.OpenForm ("Для_Дневники")

       End Function

       _______________________________________________________________________

       Public Function Мед_карта()

           Dim rsMed As Recordset

           Set db = CurrentDb

           Set rsDoc = db.OpenRecordset("Медкарты")

           Set rsBuf = db.OpenRecordset("Буфер")

           Set rsMed = db.OpenRecordset("МК")

           iii = 0:    iDocno = 0

           rsDoc.MoveFirst

           Do Until rsDoc.EOF = True

               If rsDoc!КодМедкарты > iii Then

                   iii = rsDoc!КодМедкарты

               End If

               rsDoc.MoveNext

           Loop

           rsDoc.MoveFirst

           rsDoc.AddNew

           rsDoc!КодМедкарты = iii + 1

           rsDoc!Документ = "Медицинская карта"

           rsDoc!Дата = DATE

           rsDoc!Врач = CurrentUser()

           rsDoc!Датазаполн = DATE

           rsDoc!КодПац = rsBuf!IdFio

           rsDoc.Update

           rsBuf.Edit

           rsBuf!КодДок = iii + 1

           rsBuf.Update

           rsMed.AddNew

           rsMed!КодМК = iii + 1

           rsMed.Update

           DoCmd.OpenForm ("Мед_карта")

           _______________________________________________________________________

           Dim res As Integer

           If Forms!Мед_карта!Кодотд = "6" Or Forms!Мед_карта!Кодотд = "7" Or Forms!Мед_карта!Кодотд = "8" Then

               res = MsgBox("Пациент будет переведен  из архива в отделение?", vbOKCancel)

               If res = 1 Then

                   If Forms!Мед_карта!Кодотд = "6" Then

                       Forms!Мед_карта!Кодотд = "2"

                   End If

                   If Forms!Мед_карта!Кодотд = "7" Then

                       Forms!Мед_карта!Кодотд = "3"

                   End If

                   If Forms!Мед_карта!Кодотд = "8" Then

                       Forms!Мед_карта!Кодотд = "4"

                   End If

               End If

           End If

       End Function 

           Модуль "Для_отчетов":

       Option Explicit

       Dim db As Database, rsEpik As Recordset, rsDoc As Recordset, rsMK As Recordset

       Dim rsDia As Recordset, rsBuf As Recordset, i As Integer

       _______________________________________________________________________

       Public Sub Эпикр()

           Set db = CurrentDb

           Set rsEpik = db.OpenRecordset("Эпикр")

           Set rsDoc = db.OpenRecordset("Документы")

           rsDoc.MoveFirst

           rsEpik.Edit

           rsEpik!НомерНазн = 0

           rsEpik!НомерАК = 0

           rsEpik!НомерДоп1 = 0

           rsEpik!НомерДоп2 = 0

           rsEpik!НомерДоп3 = 0

           rsEpik!НомерРЭГ = 0

           rsEpik!НомерРент = 0

           rsEpik!НомерЭЭГ = 0

           rsEpik!НомерЭхоЭС = 0

           rsEpik!НомерЭКГ = 0

           rsEpik!НомерПат = 0

           rsEpik!НомерКТгол = 0

           rsEpik.Update

           Do Until rsDoc.EOF = True

               If rsDoc!КодМедкарты = rsEpik!КодМедкарты  Then

                   rsEpik.Edit

                   Select Case rsDoc!Документ

                       Case "Назначения":                  rsEpik!НомерНазн = rsDoc!КодДок

                       Case "Анализ крови":                rsEpik!НомерАК = rsDoc!КодДок

                       Case "Электроэнцефалоскопия (ЭЭГ)": rsEpik!НомерЭЭГ = rsDoc!КодДок

                       Case "Эхоэнцефалоскопия (Эхо-ЭС)":  rsEpik!НомерЭхоЭС = rsDoc!КодДок

                       Case "Электрокардиография (ЭКГ)":   rsEpik!НомерЭКГ = rsDoc!КодДок

                       Case "Реоэнцелография (РЭГ)":       rsEpik!НомерРЭГ = rsDoc!КодДок

                       Case "Рентгенография":              rsEpik!НомерРент = rsDoc!КодДок

                       Case "Патопсихологическое исследование":    rsEpik!НомерПат = rsDoc!КодДок

                       Case "КТ головного мозга":          rsEpik!НомерКТгол = rsDoc!КодДок

                       Case "Дополнительное обследование"

                           If rsEpik!НомерДоп1 = 0 Then

                               rsEpik!НомерДоп1 = rsDoc!КодДок

                           ElseIf rsEpik!НомерДоп2 = 0 Then

                               rsEpik!НомерДоп2 = rsDoc!КодДок

                           ElseIf rsEpik!НомерДоп3 = 0 Then

                               rsEpik!НомерДоп3 = rsDoc!КодДок

                           End If

                   End Select

                   rsEpik.Update

               End If

               rsDoc.MoveNext

           Loop

       End Sub

       _______________________________________________________________________

       Public Function Диагр1()

           DoCmd.OpenReport "Диаграмма", acViewPreview

       End Function

       _______________________________________________________________________

       Public Sub Диагр2()

Информация о работе Автоматизированная информационная система учета пациентов отделений в психо-неврологическом диспансере