База даних інформаційної системи "Лікарня"

Тип работы:
Курсовая
Предмет:
Программирование


Узнать стоимость

Детальная информация о работе

Выдержка из работы

РЕФЕРАТ

Обсяг пояснювальної записки — 7

Кількість частин записки — 3

Кількість ілюстрацій — 20

Кількість таблиць — 2

Кількість додатків — 3

Кількість джерел за переліком посилань — 4

Перелік ключових слів: бази даних, СУБД, ADO. NET, MicrosoftVisualStudio, MicrosoftSQLServer, C#, реляційна теорія баз даних, нормалізація бази даних, WindowsForms, таблиці, зв’язки, відношення, представлення, вбудовані процедури, тригери, об'єктно-орієнтоване програмування.

Зміст

ВСТУП

1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ

1.1 Проблеми та способи їх вирішення

1.2 Що таке медична карта?

1.3 Користувачі системи

1.4 Глосарій

1.5 Постановка задачі

2. ПРОЕКТУВАННЯ БАЗИ ДАНИХ

2.1 Виявлення основних сутностей предметної області

2.2 Побудова схеми реляційної бази даних

2.3 Представлення

2.4 Вбудовані процедури і тригери

3. ОПИС ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

3.1 Загальний опис програмного продукту

3.2 Опис архітектури програмної системи

3.3 Опис концептуальної моделі бази даних

3.4 Опис програмної реалізації

3.5 Опис задач автоматизації та інтерфейсу користувача

ВИСНОВКИ

ПЕРЕЛІК ПОСИЛАНЬ

ВСТУП

Міська комунальна лікарня № 3 — один з кращих лікувальних закладів Тернополя. Вже більше двох десятиліть там на високому рівні надають медичну допомогу. І з року в рік авторитет лікарів та медперсоналу зростає завдяки сумлінній праці і вагомим успіхам на ниві збереження і відновлення здоров’я не лише тернополян, а й мешканців інших областей України.

Міська комунальна лікарня № 3 добре відома не лише в Україні, але й за її межами: в Німеччині, Польщі, Італії, Іспанії, Франції, Нідерландах, Канаді, США…

Сучасні технології дозволяють зменшити відстань, що стоїть на заваді спілкуванню і обміну інформацією. Але, на жаль, ТМКЛ № 3 наразі не володіє потужною автоматизованою інформаційною системою управління лікарнею, а зокрема історіями хвороб пацієнтів. При потребі, дуже важко знайти історію хвороби деякого пацієнта в кімнаті-архіві. Також на заваді отримання інформації може стати почерк лікарів та медсестер, які заповнюють історії хвороб (медичні карти). Для хворого, який уже лікувався в лікарні, при черговому поступленні наново заповнюється «інформація про пацієнта» у кожній новій історії хвороби. І ще багато інших проблем, описаних у подальших розділах.

Було б краще зберігати усі діагнози, проведені операції, аналізи і обстеження і відповідні їм результати і т.д. в одній базі даних. Також там була б інформація про пацієнтів, історії хвороб (медичні карти) і т.п.

Бази даних — це звід певної інформації, розбитою за тематичними групами для зручності та економії часу при пошуку.

Перевага володіння під рукою каталогом з потрібною базою даної очевидно — це час та інформованість. Час в бізнесі грає величезну роль. Ви з точністю та швидкістю зможете знайти потрібну фірму і зв’язатися для вирішення питань по своїм інтересам. Важливим фактором є постійне оновлення списків, особливо в кризовий час, коли свою діяльність згорнула безліч підприємств і ситуація продовжує змінюватися.

Тому метою даного курсового проекту є розробка інформаційної системи керування базою даних лікарні. СУБД має значно полегшувати процес створення і застосувань, що працюють з базами даних. Працівники лікарні повинні мати змогу багаторазово і багатоаспективно використовувати дані. Працівники мають легко дізнаватися, які дані є в їхньому розпорядженні й отримувати простий доступ до даних (усі складнощі бере на себе СУБД). Будь які зміни в БД, додавання до неї інформації чи її розширення повинні виконуватися незалежно від застосувань, що вже існують і використовують базу даних. До того ж ці операції мають виконуватися максимально просто і ефективно. СУБД має забезпечувати можливість просто і ефективного збільшення обсягів даних без порушення наявних способів їхнього використання, а також легкого виконання реорганізації та реструктуризації даних. СУБД повинна забезпечувати нижчу вартість зберігання і використання даних, ніж поточна система архівів.

Для розробки програмного забезпечення і бази даних інформаційної системи лікарня обрано СУБД MicrosoftSQLServer, середовище MicrosoftVisualStudioта мову програмування C#/. NET. Усе вище перераховане є продуктом компанії Microsoftі дає можливість на 100% реалізувати вимоги до створення інформаційної системи.

1 АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ

1.1 Проблеми та способи їх вирішення

На даний час, теоретична діяльність в ТМКЛ № 3 здійснюється з використанням паперових таблиць, документацій, звітів (рисунок 1. 1, рисунок 1. 2).

Рис. 1.1 — Перша сторінка медичної карти пацієнта

Рис. 1.2 — Контроль виконання лікарських призначень історії хвороби

У порівнянні з наявним, нове рішення дозволить забезпечити зручніший режим доступу зацікавлених осіб до інформації, підвищити швидкодію, забезпечити надійне зберігання даних і повніше охопити функції, що підлягають автоматизації, а також планування, комунікації тощо.

У таблиці 1.1 наведено основні проблеми та способи їх вирішення.

Таблиця 1.1 — Проблеми і їх вирішення

Проблема

Вирішеня

Нерозбірливий лікарський почерк

Простота і легкість читання та запису

Багаторазове копіювання одних і тих же даних про пацієнта в кожній із його історій хвороб

Багаторазове і багатоаспективне використання раніше збережених даних

Майже неможливий доступ до даних.

Потреба отримання будь-якоїінформації призводить до годинних пошуків в кімнаті-архіві

Простий та швидкий пошук даних

Збільшення обсягу даних і зберігання даних

Обсяг даних — необмежений

Реструктуризації та реорганізації даних, звітів, медичних карт тощо

Можна легко змінити структуру медичної карти (історії хвороби) змінивши лише структуру бази даних

Висока вартість зберігання та використання даних: папір, зарплата для працівників в кімнатах-архівах тощо

Низька вартість — лише електроенергія для роботи комп’ютерів

Несанкціонований доступ, викривлення та знищення даних

ІС захищена від перебоїв, впливу форс-мажорних ситуацій, а також від некомпетентного чи зловмисного звернення

Отже, ІС дає змогу полегшити роботу персоналу лікарні як в теперішньому, так і в майбутньому.

1.2 Що таке медична карта?

Медична карта стаціонарно хворого — це його історія хвороби, тобто усі записи, пов’язані з цією хворобою та її лікуванням для даного хворого з моменту поступлення його в лікарню і аж до моменту виписки. У будь-якої людини може бути багато або жодної медичної карти.

Медична карта містить інформацію про:

Номер медичної карти

Загальну про пацієнта: прізвище, імя, по-батькові, стать, дата народження адреса, телефон, місце роботи, вага, ріст тощо

Дату госпіталізації

Дату виписки

Назву відділення і номер палати, в якій перебував хворий

Поставлені діагнози

Результати пройдених аналізів і обстежень

Хірургічні операції (якщо є)

Прийняті ліки, процедури і інші лікарські призначення

Результат лікування

Лікаря, який лікував хворого

Отже, основним об'єктом ІС є медична карта.

1.3 Користувачі системи

У системи існує чотири основних типи користувачів: приймальне відділення, лікар, медсестра, адміністрація. Відповідальності та права користувачів показані у таблиці 1.2.

Таблиця 1.2 Можливості та права користувачів у системі

Приймальне

відділення

Лікар

Медсестра

Адміністрація

Інформацію про працівників

Переглядати

Створювати

Редагувати

Видаляти

Інформацію про пацієнтів

Переглядати

Створювати

Переглядати

Переглядати

Створювати

Редагувати

Видаляти

Медичні карти (історіїхвороб)

Переглядати

Створювати

Вести

Видаляти

Переглядати

Обстеження і аналізи

Переглядати

Створювати

Редагувати

Видаляти

Призначати

Переглядати

Діагнози

Переглядати

Створювати

Редагувати

Видаляти

Ставити

Переглядати

Операції

Переглядати

Створювати

Редагувати

Видаляти

Призначати

Переглядати

Прийом ліків і процедури

Переглядати

Створювати

Редагувати

Видаляти

Призначати

Переглядати

Виконувати лікарські призначення

1.4 Глосарій

Медична карта стаціонарно хворого — це його історія хвороби, тобто усі записи, пов’язані з цією хворобою та її лікуванням для даного хворого з моменту поступлення його в лікарню і аж до моменту виписки.

Діагнозом при госпіталізації називається діагноз, поставлений пацієнтові при першому ж обстеженні лікарем у день поступлення до лікарні. Як правило, є неточним.

Клінічним діагнозом називається діагноз, поставлений хворому після пройдених обстежень і аналізів, що можуть підтвердити даний діагноз.

1. 5Постановка задачі

Отже, ІС «Лікарня» повинна бути графічною програмою, яка реалізовуватиме усі можливості для перерахованих вище користувачів і зможе стати аналогом для сьогоднішньої паперової системи обліку медичних карт, замінивши сховище даних на комп’ютерну базу даних.

2. ПРОЕКТУВАННЯ БАЗИ ДАНИХ

2.1 Виявлення основних сутностей предметної області

На основі аналізу предметної області можуть бути отримані наступні сутності: пацієнт, медична карти, операція, обстеження або аналіз, діагноз, ліки або процедури, лікар, медсестра, приймальне відділення, адміністрація.

Усі сутності та взаємозв'язки між ними показано на рисунку 2.1.

Мал. 2.1 — ER-діаграма сутностей та зв’язків

Основні зв’язки:

Один пацієнт може мати багато медичних карт

Один лікар може лікувати багато пацієнтів

В одній медичній карті може бути інформація про багато діагнозів, обстежень і аналізів, операції, прийоми ліків і процедури.

Проміжні таблиці, бо один діагноз, операція і т.п. може бути записана в багатьох медичних картах.

2.2 Побудова схеми реляційної бази даних

1НФ: слід видалити атрибути або групи атрибутів що повторюються.

2НФ: слід видалити атрибути, залежні тільки від частини унікального ідентифікатора

3НФ: слід видалити атрибути, залежні від атрибутів, що не є частиною унікального ідентифікатора

Перетворення сутностей на таблиці

Перетворення атрибутів на стовпці

На мал. 2.2 показана схема реляційної бази даних.

Мал. 2.2 — Схема реляційної бази даних

2.3 Представлення

Крім таблиць, к базі даних є також представлення, які відображають зв’язки багатьох-до-багатьох.

Наприклад, на рисунку 2.3 показано схему представлення Медичні карти -Операції.

Мал.2.3 Схема представлення Медичні карти — Операції

SQLзапит:

SELECTdbo. Surgeries. name AS [Назва операції],

dbo. Patients. surName AS Пацієнт,

dbo. MedicalCards. id AS [№ Мед. карти],

dbo. MedicalCardsSurgeries. complication AS Ускладнення,

dbo. Doctors. surName AS Лікар,

dbo. MedicalCardsSurgeries. date AS Дата,

dbo. Surgeries. id AS surgery_id,

dbo. MedicalCardsSurgeries. id

FROM dbo. Surgeries

INNER JOIN dbo. Doctors

ON dbo. Surgeries. doctor_id = dbo. Doctors. id

INNER JOIN dbo. MedicalCardsSurgeries

ON dbo. Surgeries. id=dbo. MedicalCardsSurgeries. surgery_id

INNER JOIN dbo. MedicalCards

ON dbo. Doctors. id = dbo. MedicalCards. doctor_id

AND dbo. MedicalCardsSurgeries. medicalCard_id= dbo. MedicalCards. id

INNER JOIN dbo. Patients

ON dbo. MedicalCards. patient_id = dbo. Patients. id

На мал. 2.4 показано результат виконання представлення

Мал. 2.4 — Представлення Медичні карти -Операції

2.4 Вбудовані процедури і тригери

Крім представлень і таблиць у базі даних також є 1 вбудована процедура і 9 тригерів.

Вбудована процедура буде перевіряти, чи пароль адміністратора введений правильно. Код процедури:

ALTER PROCEDURE [dbo]. ConfirmPassword]

@password nvarchar (50) = NULL,

@result int = 0 OUT

AS

BEGIN

SET NOCOUNT ON;

if @password = 'password12345'

SET @result = 1

END

Тригери, у свою чергу, будуть записувати коли і які зміні відбулися у таблицях пацієнти, лікарі, медсестри. Приклад тригера, який виконуватиметься після додавання нового лікаря у таблицю лікарів:

ALTER TRIGGER [dbo]. DoctorsInsert]

ON [dbo]. Doctors]

AFTER INSERT

AS

BEGIN

SET NOCOUNT ON;

INSERT INTO [Hospital]. dbo]. Logs]

([tableName]

,[action]

,[date])

VALUES ('Doctors'

,'INSERT'

, GETDATE ())

END

3. ОПИС ПРОГРАМНОГО ЗАБЕЗПЕЧЕННЯ

3.1 Загальний опис програмного продукту

Програмний продукт створювався в середовищі MicrosoftViusalStudio 2010 Ultimate. Мова програмування — C#. Система управління базою даних — MicrosoftSQLServer 2008 Express. Дані інструменти були вибрані, оскільки не було обмеження на середовище розробки та СУБД, а ці мені до вподоби і з ними легко, зручно та швидко працювати.

Для нормально функціонування системи основним критерієм повинен бути монітор з діагоналлю 15,6 і розширенням екрану 1366×768. Також необхідно, щоб в операційній системі був встановлений. NETFramework 4.0. Операційна система: WindowsXP / Windows 7.

3.2 Опис архітектури програмної системи

Програмна система складається з трьох основних програм — для роботи лікарів і медсестер, для роботи приймального відділення, для роботи адміністрації.

Мал. 3. 1- Загальна архітектура програми

Приймальне відділення

Найменш функціональна програма. Призначена для роботи працівників приймального відділення.

Мал. 3.2 — UMLПриймальне відділення

Адміністрування

Програма, призначена для адміністрування системи.

Мал. 3.3 — UMLАдміністрування

Лікарня

Основна та найбільше вагома частина програмної системи.

Складається з наступних класів.

Мал. 3.4 — UMLЛікарня

Логіка роботи програми «Лікарня» досить проста. Увесь графічний інтерфейс написаний в класіMainForm, а дії, пов’язані з СУБД у класі Database.

3.3 Опис концептуальної моделі бази даних

Таблиця MedicalCards

Колонки: ід, дата госпіталізації, дата виписки, ід_пацієнта, відділення, палата, результат лікування, ід_лікаря.

ТаблицяPatients

Колонки: ід, прізвище, імя, по-батькові, стать, день народження, адреса, телефон мобільний, телефон домашній, місце роботи чи навчання, спеціальність чи посада, ріст, вага.

Таблиці Doctors, Nurses

Колонки: ід, прізвище, імя, по-батькові, логін, пароль

Інші таблиці

3.4 Опис програмної реалізації

Клас Database. cs

Мал. 3.4 Поля класу

Мал 3.5 Методи класу і конструктори

OpenConnection ()

publicvoidOpenConnection ()

{

connectionString = newSqlConnectionStringBuilder ();

try

{

connectionString. DataSource = «(local)»;

connectionString. DataSource += @"SQLEXPRESS";

connectionString. IntegratedSecurity = true;

connectionString. InitialCatalog = «Hospital»;

connectionString. ConnectTimeout = 1;

connection = newSqlConnection (connectionString. ConnectionString);

connection. Open ();

}

catch (Exceptionex)

{

MessageBox. Show (ex. Message);

}

}

CorrectPass ()

publicstringCorrectPass (stringpass)

{

try

{

stringsqlText = «ConfirmPassword»;

SqlCommandlocationCommand = newSqlCommand (sqlText, connection);

locationCommand. CommandType = CommandType. StoredProcedure;

SqlParameterworkParameter = locationCommand. Parameters. AddWithValue (

«@password», pass);

workParameter. Size = 50;

workParameter = locationCommand. Parameters. Add («@result», SqlDbType. Int);

workParameter. Direction = ParameterDirection. Output;

locationCommand. ExecuteNonQuery ();

returnlocationCommand. Parameters["@result"]. Value. ToString ();

}

catch (Exceptionex)

{

MessageBox. Show (ex. Message);

}

return «0»;

}

GetAllMedicalCards ()

publicDataTableGetAllMedicalCards ()

{

targetTable = newDataTable ();

query = @"SELECT dbo. Doctors. surName AS Лікар, dbo. Patients. surName AS Пацієнт, dbo. MedicalCards. id AS [№ Мед. Карти],

dbo. MedicalCards. hospitalizationDate AS [Дата госпіталізації], dbo. MedicalCards. dischargeDate AS [Дата виписки], dbo. MedicalCards. department AS Відділення,

dbo. MedicalCards. chamber AS Палата, dbo. MedicalCards. treatmentOutcome AS [Результат лікування]

FROM dbo. MedicalCards INNER JOIN

dbo. Doctors ON dbo. MedicalCards. doctor_id = dbo. Doctors. id INNER JOIN

dbo. Patients ON dbo. MedicalCards. patient_id = dbo. Patients. id; «;

workAdapter = newSqlDataAdapter (query, connection);

workAdapter. Fill (targetTable);

returntargetTable;

}

UpdateMedicalCardsDiagnosis ()

publicvoidUpdateMedicalCardsDiagnosis (DataTabletable)

{

workAdapter = newSqlDataAdapter ();

SqlCommandBuilderbuilder = newSqlCommandBuilder (workAdapter);

SqlCommandcommand = newSqlCommand (@"SELECT medicalCard_id AS [№ Мед. карти],

diagnosis_id,

type AS [Тип діагнозу],

date AS [Дата встановлення],

id

FROM dbo. DiagnosisMedicalCards", connection);

workAdapter. SelectCommand = command;

workAdapter. UpdateCommand = builder. GetUpdateCommand ();

workAdapter. Update (table);

3.5 Опис задач автоматизації та інтерфейсу користувача

Реєстрація пацієнта

Усі пацієнти

Логін лікаря

Нова медична карта

Усі медичні карти

Медичні карти — обстеження і аналізи

Медичні карти — діагнози

Медичні карти — операції

Діагнози

Обстеження і аналізи

Хірургічні операції

Адміністрування — лікарі

Адміністрування — медсестри

Адміністрування -логи

ВИСНОВКИ

Отже, в курсовій роботі я розробив інформаційну систему «Лікарня», яка може стати достойним аналогом теперішній і в майбутньому буде використовуватися в ТМКЛ № 3. Система відповідає усім функціональним та не функціональним користувацьким вимогам, полегшує роботу персоналу та вирішує безліч проблем, які наразі ще є в лікарні.

Система була протестована і схвалена 2 лікарями першої категорії ТМКЛ № 3 та Тернопільської обласної психічної лікарні.

Дана версія системи не є остаточною та завершеною і підлягає подальшій розробці та супроводу.

ПЕРЕЛІК ПОСИЛАНЬ

Інформаційна пошукова система Google

Пасічник В. В., Резніченко В.А. — Організація баз даних та знань. — К.: Видавнича група BHV, 2006. — 384 с.: іл.

Tim Patrick — ADO. Net 4 — Step by step

Державний стандарту України. ДСТУ 2008−95 Документація. Звіти в сфері науки і техніки. Структура і правила оформлення.

1. www.

ПоказатьСвернуть
Заполнить форму текущей работой