Розробка фізичної моделі бази даних Уч т витрат на медичні послуги

[ виправити ] текст може містити помилки, будь ласка перевіряйте перш ніж використовувати.

скачати

МІНІСТЕРСТВО ОСВІТИ
Ухтинський державний технічний університет
Кафедра ІСТ
Курсовий проект
Дисципліна: «Системи управління базами даних»
Тема:
«Розробка фізичної моделі бази даних« Облік витрат на медичні послуги »
Виконав студент групи ІСТ-2-04
Петров М.В.
Перевірила доцент кафедри ІСТ, к. т. н.
Миколаєва Н.А.
Ухта 200 7

Зміст
Введення
Частина 1. Постановка завдання
1.1. Аналіз існуючих аналогів
1.2. Обгрунтування вибору бізнес-процесу
Частина 2. Технологічна частина
2.1. Вибір засобів розробки
2.2. Основні методи і способи розробки
2.3. Модель життєвого циклу
Частина 3. Основна частина
3.1. Підтримка цілісності БД
3.2. Підтримка бізнес-логіки
3.3. Опис інтерфейсу користувача
3.4. Формування вихідний документації і вхідних форм
3.5. Користувачі і права доступу
Висновок
Список використаної літератури
Програми

Введення

В даний час бази даних знаходять широке застосування в різних організаціях (підприємствах, банках, навчальних закладах тощо). Це пов'язано з тим, що вони дозволяють зберігати інформацію в такому вигляді, щоб її було зручно використовувати, наприклад, здійснювати пошук по будь-яким заданим параметрам, робити обчислення, використовуючи дані з бази даних або збирати різну статистику.
Княжпогостскій філія ФОМС є однією з організацій, що здійснюють фінансування бюджетних медичних установ. При цьому фахівець з прав застрахованих, який виконує процес обліку, обробки та зберігання надійшла документації і формування необхідних звітів, стикається з багатьма проблемами, такими як:
· Великі витрати часу і ручної праці на ведення всієї необхідної документації. Спостерігається однотипність виконуваних операцій. Щодня до філії надходить близько 100-150 статистичних талонів, кілька десятків карт вибулих хворих; а також щомісяця надходять накази і повідомлення про оплату від кожного ЛПЗ.
· Трудомісткий процес формування звітів. Щомісяця фахівцю доводиться вести підрахунок суми, яка в подальшому увійде в заявку на фінансування. Внаслідок великого обсягу документації, накопиченої за місяць, велика ймовірність помилки у нарахованій сумі.
З наведених вище проблем слід, що необхідно створити систему, яка буде зберігати, обробляти і надавати користувачеві всю необхідну інформацію. Тому мета даного курсового проекту буде полягати в розробці фізичної моделі бази даних для процесу обліку витрат на надані медичні послуги.
На попередніх етапах роботи було проведено вивчення та аналіз предметної області, побудовані контекстна діаграма і DFD 1-го рівня. Були складені словник даних і написані специфікації процесів. Потім були побудовані концептуальна і логічна моделі бази даних, які і послужили основою для створення фізичної моделі, а також написані запити до бази даних на мові реляційної алгебри, які були перетворені в запити мовою T-SQL. Бізнес-правила знайшли своє вираження у вигляді тригерів і обмежень.
Курсовий проект складається з трьох частин. У першій частині, проводиться постановка задачі, обгрунтування розробки, обгрунтування вибору автоматизується бізнес-процесу.
У другій частині описуються основні методи і способи розробки, засоби розробки, модель життєвого циклу системи.
У третій частині, основний, описуються основні принципи підтримки цілісності бази даних, реалізація бізнес-правил, опис інтерфейсу користувача і принципи формування вихідний документації і вхідних форм.
У висновку наводяться висновки і підсумки виконаної роботи.

Частина 1. Постановка завдання

1.1. Аналіз існуючих аналогів

У ході вивчення предметної області були вивчені аналоги створюваної системи. В даний час в Княжпогостском філії ФОМС існує система, що має приблизно ту ж функціональність, що і наша. Недоліком існуючої системи є вкрай незручний інтерфейс (виконаний на основі бібліотеки Turbo Vision або подібної), негарний зовнішній вигляд, а також надмірність наданої інформації. Все це дозволяють сподіватися, що створювана система здатна замінити існуючу при відповідному доопрацюванні.

1.2. Обгрунтування вибору бізнес-процесу

При розробці курсового проекту стояла альтернатива, який саме процес підлягає автоматизації. Треба відзначити, що це дуже важливе питання, тому що від вибору залежить виразність і повнота курсового проекту, а також наочність клієнтського додатку. У ході аналізу предметної області було виділено основний процес, що підлягає автоматизації - «Врахувати витрати на надані медичні послуги», надалі він був декомпозирована на 5 підпроцесів:
Ø Фіксувати отриману документацію;
Ø Отримати документацію;
Ø Сформувати заявку;
Ø Оформити платіжне доручення;
Ø Отримати повідомлення про оплату.
У ході розробки даного курсового проекту були автоматизовані всі підпроцеси, що протікають в Княжпогостском філії ФОМС при обліку витрат на медичні послуги. Це було зроблено, тому що при відмові від автоматизації будь-якого підпроцесу стане неможливим формування основного вихідного документа - заявки на фінансування. Автоматизація всіх процесів зробило систему, що розробляється закінченою і повною. Крім того, правильний вибір засобів розробки дозволив в стислі терміни створити повноцінну систему.

Частина 2. Технологічна частина

2.1. Вибір засобів розробки

В якості цільової СУБД була обрана Microsoft SQL Server 2005. SQL Server 2005 - це новітня версія однієї з систем управління базами даних, досягла того неперевершеного рівня розвитку, до якого вона поступово наближалася протягом двох десятиліть. Дана версія стала результатом докорінної переробки, якій піддається цей програмний продукт, починаючи з версії 7.0. Але в програмному забезпеченні SQL Server 2005 вдалося значно поліпшити сумісність компонентів і розширити набір засобів, що забезпечують взаємодію з мовою XML, інфраструктурою. NET, обумовленими користувачем типами даних, а також багатьма іншими додатковими службами.
Взагалі кажучи, SQL Server 2005 дозволяє не тільки зберігати дані, але і керувати ними, регламентувати типи даних, а також спрощувати процес отримання цих даних. Якщо завдання полягає в тому, щоб просто зберегти дані в надійному місці, то достатньо скористатися практично будь-якою системою зберігання даних. Однак SQL Server 2005 як реляційна СУБД дозволяє не тільки зберігати дані, але і безпосередньо задавати структуру даних, іншими словами, встановлювати бізнес-правила, яким повинні підкорятися дані.
Функціонування обраної СУБД організовано так, що запис модифікованих файлів не здійснюється безпосередньо в файл бази даних. Замість цього вся інформація про всі зміни записується в журнал транзакцій. У якийсь час після цього часу стосовно до бази даних виконується контрольна крапка, і в цей момент часу всі зміни і доповнення, зафіксовані в журналі, переносяться у фізичний файл (файли) бази даних.
У версії SQL Server 2005 передбачено багато інструментальних засобів проектування, які істотно змінилися в порівнянні з попередніми версіями. На жаль, методологія створення діаграм, передбачена в цих програмних засобах, не відповідає жодному із загальноприйнятих стандартів формування ER-діаграм. Тим не менше ці інструментальні засоби формування діаграм забезпечують виконання всіх «обов'язкових» операцій, принаймні, з їх допомогою можна приступити до освоєння відповідних методів.
Таким чином, обрана цільова СУБД задовольняє всім вимогам програміста, що бажає виготовити якісний програмний продукт.
Клієнтський додаток було розроблено в середовищі Microsoft Visual Studio 2005. Це середовище використовує технологію програмування. NET, яка разом зі пов'язаної з нею середовищем. NET Framework, є однією з найбільш важливих технологій для розробників ПЗ за багато років. . NET спроектована як нове середовище, в рамках якої можна розробити практично будь-який додаток для Windows. Дана версія середовища Visual Studio використовує. NET Framework 2.0 - третя версія цього середовища. Далі ми коротко перерахуємо переваги технології. NET перед іншими технологіями розробки:
Ø Об'єктно-орієнтоване програмування - і середовище. NET Framework спочатку повністю базувалася на об'єктно-орієнтованих засадах.
Ø Хороший дизайн - бібліотека базових класів, яка спроектована «з нуля», виключно інтуїтивно зрозумілим чином.
Ø Незалежність від мови - с. NET код всіх мов компілюється в спільну мову проміжного рівня - Intermediate Language. Це означає, що раніше всі ці мови мають можливостями взаємодії, як ніколи раніше.
Ø Ефективний доступ до даних - набір компонентів. NET, відомий під загальною назвою ADO.NET надає ефективний доступ до реляційних баз даних і широкої різноманітності інших джерел даних. Також доступні компоненти, що надають доступ до файлової системи і каталогів.
Ø Підвищена безпека - кожна збірка також може містити вбудовану інформацію безпеки, яка в точності описує, кому і яким користувачем або процесів які методи яких класів дозволено викликати.
Ø C # - новий об'єктно-орієнтована мова, призначена для застосування с. NET.
Зауважимо, що Visual Studio 2005 використовує. NET Framework 2.0. Це середовище також має деякі переваги в порівнянні з попередніми версіями. NET Framework, а саме:
Ø Інтеграція з SQL Server. Для нас важливо, насамперед, те, що Visual Studio 2005,. NET Framework 2.0 і SQL Server 2005 тісно пов'язані між собою в тому сенсі, що реалізовані у поєднанні.
Ø Підтримка 64-розрядних обчислень. Сьогодні більше і більше підприємств переходять на сучасні 64-розрядний процесори. А середу Visual Studio 2005 може компілювати код так, щоб він працював на будь-яких процесорах.
На закінчення можна сказати, що вибір засобів розробки є важливим завданням при створенні програмного продукту, а обрані нами кошти дозволили створити сучасне додаток при мінімумі зусиль, що підтверджує правильність вибору.

2.2. Основні методи і способи розробки

Після вибору засобів розробки з'явилася необхідність вибору основних методів і способів розробки бази даних. Треба сказати, що СУБД Microsoft SQL Server 2005 дає нам два основних способи розробки - написання сценаріїв мовою T-SQL і візуальні засоби розробки. У нашій роботі використовувалося обидва методи, і це дозволило в досить стислі терміни створити коректний і цілісну базу даних.
Перевагою написання сценаріїв є менша ймовірність помилки при розробці, так як створення таблиць, атрибутів, обмежень прописується явно, обмірковується кожен рядок сценарію. Крім того, при написанні сценаріїв існує можливість налагодження створених об'єктів бази даних, наприклад, збережених процедур. Недоліком же сценаріїв є великі витрати часу і сил, що йдуть на написання коду.
У середу SQL Server 2005 включені також і візуальні засоби розробки бази даних. Вони, як зрозуміло з назви, припускаю створення бази даних без написання сценаріїв, а за допомогою потрібних панелей інструментів. Теоретично всю роботу зі створення бази даних можна виконати, взагалі не торкаючись до клавіатури! Але такий спосіб розробки загрожує великою кількістю помилок, тому що легко вибрати не той пункт списку, що випадає або зробити подібні помилку. Крім того, створювати складні запити, подання, тригери за допомогою візуальних засобів дуже важко і також загрожує великою кількістю помилок.
Тому при розробці бази даних застосовувався інший шлях - основна робота була пророблена за допомогою сценаріїв, а потім створена фізична модель бази даних була доопрацьована і відредагована візуальними засобами. Необхідно зазначити, що такий спосіб є оптимальним для починаючих розроблювачів, так як він дозволяє уникнути помилок, але в той же час заощадити час і вивчити візуальні засоби розробки.

2.3. Модель життєвого циклу

Згідно RUP (Rational Unified Process) життєвий цикл інформаційної системи поділяється на такі стадії:
Ø Постановка завдання;
Ø Аналіз;
Ø Проектування;
Ø Реалізація (кодування);
Ø Налагодження;
Ø Тестування;
Ø Впровадження;
Ø Експлуатація.
Природно, в ході розробки нашої системи було складно повністю провести всі етапи життєвого циклу, але більшість стадій все-таки було проведено. Далі розглянемо всі пройдені в процесі розробки етапи.
На етапі постановки завдання, як зрозуміло з назви, відбувається постановка завдання, визначаються функціональні та нефункціональні вимоги, пишеться технічне завдання на розробку системи. Ця стадія була докладно розглянута в курсовому проекті з дисципліни «Інформаційні технології».
На стадії аналізу відбувається вивчення і аналіз предметної області, побудова контекстної діаграми і DFD нижніх рівнів. Розробляються прецеденти, діаграми прецедентів, послідовностей, взаємодії та інші. Стадія аналізу описана в курсових проектах з дисциплін «Інформаційні технології» і «Теорія інформації».
На стадії проектування відбувається розробка проекту системи, будуються моделі бази даних (концептуальна і логічна), а також розробляється загальна архітектура системи. Стадія проектування докладно описана в курсових проектах з дисциплін «Управління даними» і «Теорія інформації».
Стадія реалізації або кодування характеризується безпосереднім створенням компонентів системи. У нашому випадку стадія реалізації полягала у створенні бази даних, збережених процедур і тригерів, а також у створенні клієнтської програми для управління даними. Ця стадія була найбільш трудомісткою і довгою, так як необхідно було вивчити різні технології для реалізації (мова запитів SQL, технологію доступу до даних ADO.NET, мова C #).
На стадії налагодження відбувається первинний пошук помилок і їх виправлення. Ця стадія тісно пов'язана зі стадією тестування. У нашому випадку тестування не проводилося, тому стадія налагодження набула особливої ​​важливості, вона виявила деякі помилки, допущені на етапі реалізації, і дозволила їх виправити.
Необхідно відзначити, що модель розробки даної системи нагадує итерационную модель. Вона характеризується тим, що в ній присутні яскраво виражені зв'язку між етапами. Тобто на будь-який з стадій можливе уточнення і доповнення попередньої стадії. Це дозволяє істотно знизити трудомісткість налагодження та реалізації. У нашому випадку це виразилося в уточненні опису предметної області на стадії реалізації системи, доповнення стадії аналізу прецедентами та діаграмами при проектуванні та кодуванні, а також виправлення помилок реалізації на етапі налагодження. Створення коректно працюючої системи, що задовольняє всім вимогам, дозволяє сказати, що обрана модель розробки в нашому випадку є оптимальною.

Частина 3. Основна частина

3.1. Підтримка цілісності БД

Підтримка цілісності бази даних є дуже важливим завданням, оскільки це є однією з умов нормального функціонування системи, що розробляється. База даних знаходиться в стані цілісності (узгодженому стані), якщо виконані всі обмеження цілісності, визначені для БД.
Усі заходи для підтримки цілісності бази даних можна розділити на 2 великі групи:
1. Декларативна цілісність (обмеження);
2. Процедурна цілісність (тригери, правила і т.д.).
Обмеження (CONSTRAINTS) представляють собою деякі умови, які накладаються на стовпці, таблиці та гарантують, що ваша інформація буде підкорятися певним правилам цілісності даних. Треба відзначити, що є 2 типи реакції на спробу порушення цілісності - відмова та виконання «компенсуючих» дій. Для даного проекту були використані обмеження відмови, тобто заборони виконання некоректних дій. Існує кілька класифікацій для обмежень цілісності, але для нас найбільш зручно класифікувати їх по області дії.
Згідно вищевказаної класифікації всі обмеження цілісності бази даних можна розділити на 4 групи:
1. Обмеження атрибута;
2. Обмеження домену;
3. Обмеження кортежу;
4. Обмеження відносини.
Далі розглянемо всі типи обмежень цілісності, що застосовуються в даному курсовому проекті (обмеження атрибута і відносини).
Обмеження атрибуту мають велике значення при організації бізнес-логіки системи. Одним з видів обмеження атрибутів є обмеження унікальності (UNIQUE constraints). Ще одна назва цього виду обмеження - альтернативний ключ (alternate key). У даному проекті цей вид обмежень широко використовувався для підтримки цілісності БД. Наприклад, при аналізі предметної області було виявлено, що назва ЛПУ повинна бути унікальною. Тому при створенні таблиці LPU був написаний наступний сценарій.
CREATE TABLE LPU
(IDLPU INT IDENTITY PRIMARY KEY,
NameLPU varchar (50) UNIQUE,
MestoLPU varchar (30))
Створивши дане відношення, ми встановили, що назва ЛПУ повинна бути унікальною. Таким чином, при спробі порушити це обмеження користувач отримає повідомлення про помилку.
Обмеження UNIQUE було встановлено у відносинах LPU, Vrach, Pacient, Type, Diagnos і інших для позначення потенційних ключів відносин.
Ще одним видом обмеження атрибутів є неприпустимість NULL-значень. Це означає, що даний атрибут не може мати значення NULL (невизначеність). Це обмеження автоматично встановлюється для первинних ключів (Primary key) відносини, тому що при значенні первинного ключа NULL він перестає однозначно ідентифікувати кортеж відносини. Можна також встановити обмеження неприпустимість NULL-значень на будь-який з інших атрибутів. У даному курсовому проекті цей вид обмеження використовувався дуже широко, наприклад:
CREATE TABLE Type
(IDType INT IDENTITY PRIMARY KEY,
NameType varchar (40) UNIQUE NOT NULL,
TarifType MONEY)
При створенні таблиці Type (спеціальність лікаря) ми встановили, що назва спеціальності не може бути NULL, тому що в противному випадку втрачається весь сенс цього відносини (назва спеціальності є атрибутом, який несе в собі найбільшу інформативність для користувача).
Установка обмеження NOT NULL була проведена у всіх первинних і потенційних ключах всіх відносин, у всіх зовнішніх ключах, а також полях, які несуть найбільшу інформативність у відношенні.
Також при розробці бази даних було використано обмеження перевірки атрибуту (CHECK). Треба зауважити, що цей тип обмеження відноситься до обмежень рівня відношення. Позитивна особливість даного виду обмежень полягає в тому, що їх застосування не обмежується окремими стовпцями. У принципі можна перевірити на відповідність певним критерієм будь-яку комбінацію полів цього запису. У даному курсовому проекті обмеження значення використовувалося в основному для атрибутів типу DateTime, щоб виключити можливість введення майбутніх дат. Для цього треба було написати такий сценарій.
ALTER TABLE Isveshenie
WITH CHECK
ADD CONSTRAINT ChekDateBegin
CHECK (Isveshenie.BeginPer <GETDATE ())
Обмеження CHECK було встановлено для перевірки правильності введення дат у відносинах Prikas, Isveshenie, Karta.
Ще одним видом обмежень, можливо, самим важливим, є обмеження первинного ключа (PRIMARY KEY). Ми можемо говорити про важливість цього типу обмежень, так як реляційні бази даних створювалися для реалізації можливостей завдання зв'язків між даними. Тому важливо мати унікальні ідентифікатори для кожного кортежу. Первинний ключ повинен містити унікальні значення (і тому не може містити NULL-значень). Наведемо приклад використання в створеній базі даних обмеження первинного ключа.
CREATE TABLE Diagnos
(IDDiagnos INT IDENTITY PRIMARY KEY,
NameDiagnos varchar (50),
ShifrDiagnos varchar (20),
Norma INT)
Тут можна додати, що первинним ключем відносини Diagnos є атрибут IDDiagnos, таким чином він ідентифікує будь-який кортеж відносини.
Природно, даний вид обмежень використовувався у всіх відносинах бази даних для позначення первинного ключа.
Наступним типом обмеження є обмеження зовнішнього ключа (FOREIGN KEY). Вони використовуються як для забезпечення цілісності даних, так і для завдання відносин між таблицями. При цьому після створення зовнішнього ключа будь-який запис, що додається у посилальне ставлення, повинна мати відповідний запис у таблиці, на яку існує посилання, або значення для стовпців зовнішнього ключа повинні бути встановлені в NULL. Останній випадок у даному курсовому проекті не використовується, тому що це може призвести до порушення узгодженого стану бази даних. Тому наведемо приклад для розглянутого типу обмежень.
CREATE TABLE Otdel
(IDOtdel INT IDENTITY PRIMARY KEY,
Name varchar (30),
IDLPU INT,
TarifOtdel MONEY,
CONSTRAINT OtdelLPUforeign FOREIGN KEY (IDLPU) REFERENCES LPU)
Після виконання цього скрипта ми встановили обмеження зовнішнього ключа для відносини Otdel. Тепер при спробі видалення ЛПУ, первинний ключ якого міститься в розглянутій таблиці в якості зовнішнього (IDLPU), буде видано повідомлення про помилку.
Обмеження зовнішнього ключа ми встановили у відносинах, які є посилаються (див. Додаток 1).
Підтримка цілісності бази даних також здійснюється за допомогою тригерів. Тригер (Trigger) представляє собою певний різновид збереженої процедури, яка виконується при настанні певних подій. Тригери дуже допомагають при реалізації бізнес-правил. Наприклад, у статистичному талоні може бути кілька діагнозів, але при цьому лише один з них може мати тип «основний», а решта - супутній. Для підтримки в базі даних цього правила можна написати наступний тригер.
CREATE TRIGGER OsnovDiagnTalon
ON DiagnTalon
FOR INSERT, UPDATE
AS
IF ((SELECT COUNT (D. Type) FROM DiagnTalon D
INNER JOIN INSERTED I
ON I. IDTalon = D. IDTalon
WHERE D. Type = 'основний' AND D. IDTalon = I. IDTalon
GROUP BY D. IDTalon) <> 1)
BEGIN
RAISERROR ('Не можна мати більше одного основного діагнозу в талоні!', 16,1)
ROLLBACK TRAN
END
Тепер ми при додаванні або редагуванні відносини DiagnTalon (Діагноз у талоні) SQL Server буде стежити за тим, щоб основний діагноз для певного талона був тільки один. Точно так само реалізовано правило, згідно з яким в карті вибулого хворого повинен бути тільки один основний діагноз.
При створенні бази даних ми зіткнулися також з наступною проблемою. Ставлення Talon (Статистичний талон) має атрибути IDLPU, IDVrach, IDPacient, IDType, які представляють собою зовнішні ключі на відносини LPU, Vrach, Type. Ми можемо внести в базу даних інформацію, згідно з якою, наприклад, лікар А лікував в ЛПЗ B в якості спеціаліста C, але при цьому лікар А може не бути лікарем ЛПУ B, і не бути мати спеціальністю C. Щоб виправити цей недолік, були написані відповідні тригери, наведемо приклад одного з них.
ALTER TRIGGER TalonVrachLPU
ON Talon
FOR INSERT, UPDATE
AS
IF (EXISTS (SELECT 'true' FROM INSERTED
WHERE INSERTED.IDVrach NOT IN (SELECT IDVrach FROM
Vrach
WHERE IDLPU = INSERTED.IDLPU)
))
BEGIN
RAISERROR ('Такого лікаря немає у вибраному ЛПУ!', 16,1)
ROLLBACK TRAN
END
Аналогічним чином написані тригери, що забороняють додавання або редагування відносин Talon і Karta таким чином, щоб інформація в базі даних стала суперечливою (лікар не належить даному ЛПЗ або не володіє даною спеціальністю).
У ході аналізу предметної області з'ясувалося, що не можна вводити документацію по пацієнту, який вже помер. Адже померлі не можуть відвідувати лікарів чи лежати в лікарні. Для запобігання введенню такої інформації був написаний тригер, що забороняє введення даних по померлому пацієнтові в ставлення Talon (Статистичний талон), його сценарій наведено нижче:
CREATE TRIGGER StopSmert
ON Talon
FOR INSERT
AS
IF (EXISTS (SELECT 'true' FROM INSERTED
WHERE INSERTED.IDPacient IN (SELECT DISTINCT IDPacient FROM
Talon T
INNER JOIN DiagnTalon DT
ON T. IDTalon = DT.IDTalon
WHERE DT.Ishod = 'Смерть'
UNION
SELECT DISTINCT IDPacient FROM
Karta K
INNER JOIN DiagnKarta DK
ON K. IDKarta = DK.IDKarta
WHERE DK.Ishod = 'Смерть')
))
BEGIN
RAISERROR ('Пацієнт помер!', 16,1)
ROLLBACK TRAN
END
Аналогічно написаний тригер, що забороняє введення інформації за померлим у відношення Karta (Карта вибулого хворого).
Як вже було сказано, фінансування ЛПУ здійснюється на підставі наказу про оплату. Але у фахівця не повинно бути можливості видалити вхідну документацію (талони і карти). Для цього був написаний тригер, заперщающій видалення талонів і карток, за якими було проведено фінансування:
CREATE TRIGGER StopDelTalon
ON Talon
FOR DELETE
AS
IF (EXISTS (SELECT 'true' FROM DELETED
WHERE DELETED.Date BETWEEN (SELECT MAX (BeginPer) FROM Prikas WHERE BeginPer <DELETED.Date AND IDLPU = DELETED.IDLPU)
AND (SELECT MAX (BeginPer) FROM Prikas
WHERE EndPer> DELETED.Date AND IDLPU = DELETED.IDLPU)))
BEGIN
RAISERROR ('Не можна видалити талон, оскільки оплата по ньому вже проводилася!', 16,1)
ROLLBACK TRAN
END
Аналогічно був написаний тригер, що забороняє видалення карт вибулих хворих, за якими вже проводилося фінансування.
Таким чином, за допомогою обмежень і тригерів ми отримали базу даних, що володіє властивістю цілісності.

3.2. Підтримка бізнес-логіки

Підтримка бізнес-логіки є ще одним завданням при розробці бази даних. Бізнес-логіка - логіка виконання бізнес-процесу за певними правилами, званим ще бізнес-правилами. Так, при аналізі предметної області з головного процесу «Врахувати витрати на надані медичні послуги» було виділено 5 підпроцесів:
Ø Фіксувати отриману документацію;
Ø Отримати документацію;
Ø Сформувати заявку;
Ø Оформити платіжне доручення;
Ø Отримати повідомлення про оплату.
База даних будувалася таким чином, щоб зберігати всю вхідну і формувати вихідну документацію, отриману в результаті виконання основного бізнес-процесу. У цьому розділі ми розглянемо, які об'єкти бази даних було створено для забезпечення цієї вимоги.
При розгляді першого підпроцесу (Фіксувати отриману документацію) з'явилася необхідність створення відносин, відповідних вхідним потокам даних. Так з'явилися відносини Talon і Karta з атрибутами, які входять до словника даних (Курсовий проект з дисципліни ІТ). Створення відносини Talon здійснювалося наступним чином:
CREATE TABLE Talon
(Number INT PRIMARY KEY NOT NULL,
Date DATETIME,
Type varchar (30),
IDLPU INT,
IDVrach INT,
IDPacient INT,
IDType INT,
CONSTRAINT TalonLPUforeign FOREIGN KEY (IDLPU) REFERENCES LPU,
CONSTRAINT TalonVrachforeign FOREIGN KEY (IDVrach) REFERENCES Vrach,
CONSTRAINT TalonTypeforeign FOREIGN KEY (IDType) REFERENCES Type,
CONSTRAINT TalonPacientforeign FOREIGN KEY (IDPacient) REFERENCES Pacient)
Зесь слід зазначити, що кожен статистичний талон може містити кілька діагнозів, таким чином з'явилося ставлення DiagnTalon (Діагноз у талоні):
CREATE TABLE DiagnTalon
(IDTalon INT,
IDDiagnos INT,
Ishod varchar (30),
Type varchar (30),
CONSTRAINT PK_Foreign PRIMARY KEY (IDTalon, IDDiagnos),
CONSTRAINT TalonDiagnforeign FOREIGN KEY (IDTalon) REFERENCES Talon ON DELETE CASCADE,
CONSTRAINT DiagnTalonforeign FOREIGN KEY (IDDiagnos) REFERENCES Diagnos)
Особливістю цього відношення є опція ON DELETE CASCADE при обмеженні зовнішнього ключа. Це дозволяє автоматично видалити всі діагнози при видаленні будь-якого статистичного талона. Таке видалення подібне реальному видаленню документа, при цьому всі дані, пов'язані з ним, також видаляються. Звичайно ж, використання цієї опції необхідно не особливо часто, краще застосування вона знаходить саме в слабких сутності, як і в цьому випадку.
Аналогічним чином були створені відносини Karta, Prikas і Isveshenie, які призначені для зберігання інформації з вхідної наступній документації - карта вибулого хворого, наказ і повідомлення про оплату. Вхідний потік інформації Норми на лікування матеріалізувався у вигляді відношення Diagnos, де стала зберігатися інформація про діагнози та строки їх лікування. Створення відносини Diagnos:
CREATE TABLE Diagnos
(IDDiagnos INT IDENTITY PRIMARY KEY,
NameDiagnos varchar (50),
ShifrDiagnos varchar (20),
Norma INT)
Документ Прейскурант цін на медичні послуги знайшов своє вираження у відносинах Type (Спеціальність лікаря) та Otdel (Відділення), в які в якості атрибутів увійшли тарифи з певної спеціальності та відділенню.
CREATE TABLE Otdel
(IDOtdel INT IDENTITY PRIMARY KEY,
Name varchar (30),
IDLPU INT,
TarifOtdel MONEY,
CONSTRAINT OtdelLPUforeign FOREIGN KEY (IDLPU) REFERENCES OtdelLPU)
Вихідний документ Платіжне доручення формується за допомогою збереженої процедури на підставі певного наказу про оплату. Вхідними параметрами для процедури є NameLPU (Найменування ЛПУ) і Date (Дата наказу про оплату).
CREATE PROC Poruchenie
@ NameLPU varchar (50),
@ Date DateTime
AS
SELECT NameLPU, MestoLPU, Date, BeginPer, EndPer, Summa
FROM Prikas
INNER JOIN LPU
ON Prikas.IDLPU = LPU.IDLPU
WHERE LPU.NameLPU = @ NameLPU AND Prikas.Date = @ Date
Ще одним вихідним документів автоматизується процесу є З аявка на фінансування, до якої входять суми для фінансування окремих ЛПУ за період. Вхідними параметрами для процедури є дати початку та кінця періоду. Сама ж процедура реалізована таким чином: вважаються суми окремо для стаціонару (в підзапитах) і для поліклініки, потім дві отримані суми складаються і дають таким чином остаточний результат. Для формування заявки був написаний наступний сценарій, який створює збережену процедуру:
CREATE PROC GetZayavka
@ Begin DateTime,
@ End DateTime
AS
SELECT LPU.NameLPU, LPU.MestoLPU, SUM (TarifType) + Stacionar.Summa [Summa]
FROM Talon
INNER JOIN Type
ON Talon.IDType = Type.IDType
INNER JOIN LPU
ON Talon.IDLPU = LPU.IDLPU
INNER JOIN (SELECT LPU.IDLPU, SUM (TarifOtdel * (Norma * 1.15)) [Summa]
FROM Karta
INNER JOIN LPU
ON Karta.IDLPU = LPU.IDLPU
INNER JOIN OtdelLPU
ON OtdelLPU.IDLPU = LPU.IDLPU
INNER JOIN Otdel
ON Otdel.IDOtdel = OtdelLPU.IDOtdel
INNER JOIN DiagnKarta
ON Karta.IDKarta = DiagnKarta.IDKarta
INNER JOIN Diagnos
ON Diagnos.IDDiagnos = DiagnKarta.IDDiagnos
WHERE Karta.DateEnd BETWEEN @ Begin AND @ End AND DiagnKarta.Type = 'основний'
GROUP BY LPU.IDLPU) Stacionar
ON LPU.IDLPU = Stacionar.IDLPU
WHERE Talon.Date BETWEEN @ Begin AND @ End
GROUP BY LPU.NameLPU, LPU.MestoLPU, Stacionar.Summa
У ході написання курсового проекту з дисципліни «Управління даними» були написані запити до бази даних. Частина з них знайшла своє відображення при створенні бази даних у вигляді збережених процедур. Всі запити перераховувати не має сенсу, тому пояснимо одну з них. Наведена нижче процедура повертає прізвища, імена та по батькові всіх пацієнтів конкретного ЛПУ за період. Таким чином, вхідними параметрами є найменування ЛПУ і дати початку та кінця періоду. У процедурі відбувається об'єднання 3 вибірок - вибірки за датою початку з карти вибулого хворого, за датою кінця з карти і за датою статистичного талона. Зрозуміло, що крім цього в речення WHERE включено умова відсіву пацієнтів тільки по конкретному ЛПУ.
CREATE PROC PacientLPU
@ NameLPU varchar (50),
@ Begin DateTime,
@ End DateTime
AS
SELECT Fam, Im, Otch
FROM Pacient
INNER JOIN Karta
ON Pacient.IDPacient = Karta.IDPacient
INNER JOIN LPU
ON Karta.IDLPU = LPU.IDLPU
WHERE LPU.NameLPU = @ NameLPU AND Karta.DateEnd BETWEEN @ Begin AND @ End
UNION
SELECT Fam, Im, Otch
FROM Pacient
INNER JOIN Karta
ON Pacient.IDPacient = Karta.IDPacient
INNER JOIN LPU
ON Karta.IDLPU = LPU.IDLPU
WHERE LPU.NameLPU = @ NameLPU AND Karta.DateBegin BETWEEN @ Begin AND @ End
UNION
SELECT Fam, Im, Otch
FROM Pacient
INNER JOIN Talon
ON Pacient.IDPacient = Talon.IDPacient
INNER JOIN LPU
ON Talon.IDLPU = LPU.IDLPU
WHERE LPU.NameLPU = @ NameLPU AND Talon.Date BETWEEN @ Begin AND @ End
Після написання цієї процедури з'явилася потреба написати подібні процедури, а саме висновок пацієнтів за період без вказівки ЛПУ, із зазначенням відділення і ЛПУ, із зазначенням тільки відділення. Створення цих процедур дозволило зробити первинний запит набагато більш гнучким і зручним для кінцевого користувача.
Таким чином, за допомогою створених відносин, збережених процедур і тригерів забезпечується бізнес-логіка, подібна логіці виконання реального бізнес-процесу.

3.3. Опис інтерфейсу користувача

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

Як видно, робоча область головного вікна складається з чотирьох вкладок. Ці вкладки відповідають документам, які найбільш часто фіксуються в системі. Внизу робочої області вікна ми бачимо інструмент для управління даними таблиці. Наприклад, при натисненні на кнопку «Додати талон» в таблиці з'явиться один порожній рядок, в яку буде необхідно внести необхідні дані. Програма передбачає обробку виключень і видачу відповідних повідомлень користувачеві. Наприклад, при видаленні статистичного талона, на який є посилання в інших таблицях, користувач отримає повідомлення, в якому вказується не тільки сам факт помилки, але і її причина, яку користувач може зрозуміти сам, або покликати адміністратора бази даних або програміста.

При необхідності додавання статистичного талона або карти з'являється наступне діалогове вікно:

При необхідності додати в який-небудь талон діагноз цього талона, необхідно натиснути кнопку «Додати діагноз» або зробити подвійне клацання мишею по потрібному рядку, при цьому з'явиться наступне вікно:

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

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

Слід зазначити, що всі довідники можна умовно поділити на прості (перші п'ять у списку) і складні (останні три). Робота з простими довідниками здійснюється наступним чином: при виборі пункту меню відбувається поява діалогового вікна, також складається з таблиці і навігатора. Користувач за допомогою простих і інтуїтивно зрозумілих дій може довільним чином керувати даними таблиці.

При спробі зберегти зміни в базі даних ми побачимо таке повідомлення. Зміни фіксуються тільки в разі натискання на кнопку «Так».

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

Робота з даними ведеться аналогічно до інших довідників, але відображаються тільки ті дані, які відповідають обраному в списку елементу. Необхідно відзначити, що всі елементи навігаторів всіх довідників забезпечені спливаючими підказками, суттєво полегшують роботу користувача.

Перейдемо до елемента головного меню «Звіти». Як ми бачимо, можливий вибір 2 звітів - заявки на фінансування та платіжного доручення. При виборі одного з цих пунктів відбувається виклик вікна, в якому потрібно вказати необхідні дані, наприклад:

У цьому випадку слід вибрати найменування ЛПУ і вказати дату потрібного наказу про оплату, а потім натиснути кнопку «Сформувати доручення». Натискання кнопки «Скасувати» закриває вікно.

Після формування доручення користувачеві доступні функції експорту звіту у файли з розширенням *. doc, *. xls, *. pdf та інші. Експорт звіту відбувається за допомогою стандартного вікна збереження файлу, в якому можна вказати шлях збереження, ім'я і тип файлу.

У звіті користувачеві доступні також кнопки «Друк», «Оновити», «Пошук тексту» і «Масштаб». Використання їх подібно до цих же функцій в будь-якому стандартному Windows-додатку і інтуїтивно зрозуміло користувачеві, що має хоч би мінімальний досвід роботи з Windows, тому докладний опис їх не має сенсу.
Третій елемент головного меню - статистика. У нього входять запити, які немає необхідності виводити на друк (у вигляді звітів), але які можуть знадобитися користувачеві. Описувати всі пункти не має сенсу, так як їх інтерфейс в більшості своїй передбачає вибір або введення якихось значень і натискання на кнопку для виведення результатів запиту. Розглянемо запит, видає пацієнтів за період. При виборі цього пункту меню відбувається виклик вікна, що складається з 2 логічних частин - блоку введення інформації і блоку виводу. Блок введення складається з двох компонентів вибору дат - початку та кінця періоду, і двох випадаючих списків - для вибору ЛПУ і відділення. Треба відзначити, що система передбачає можливість залишати списки порожніми, при цьому відсів інформації по відповідному умові проводитися не буде.

Наведемо ще один приклад - висновок списку пацієнтів з певним результатом за вибраний період. Тут також необхідно ввести значення - дати початку та кінця періоду, а також вибрати необхідний результат. Після цього натиснення кнопки «Вивести список пацієнтів» виведе нам необхідну інформацію, а натискання кнопки скасування закриє дане вікно.

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

3.4. Формування вихідний документації і вхідних форм

Формування вихідний документації і вхідних форм є завданням, яке забезпечує дотримання функціональних вимог до системи. Вихідна документація являє собою звіти, які користувач може як виводити на друк, так і експортувати у файл з розширенням *. doc, *. xls, *. pdf та інші. У нашій системі звіти були створені в системі звітів Crystal Reports. Ця система дозволяє досить легко створювати гарні та наочні звіти, в які можна вставити діаграми, графіки, таблиці, формули, і інші елементи.
У нашій системі вихідна документація являє собою два документи - платіжне доручення та заявка на фінансування. Інформація, що включається до звіту, вибирається з бази даних за допомогою збережених процедур, їх листинги наведені в розділі «Підтримка бізнес-логіки», відзначимо лише, що генеруються системою звіти повністю ідентичні справжнім документами Княжпогостского філії ФОМС.
Вхідні форми системи являють собою двовимірні таблиці. Ці таблиці пов'язані з відповідними відносинами бази даних, що дозволяє без проблем здійснювати обмін даними між візуальними компонентами (таблицями) та базою даних. З одного боку, це надає зручний і зрозумілий для користувача введення інформації, а з іншого, надає інформацію для перегляду в наочному вигляді. Як було зазначено у розділі «Опис інтерфейсу користувача», великою зручністю є наявність у деяких стовпцях таблиці випадаючих списків замість звичайних полів для введення тексту. Це дозволяє користувачеві швидко вибрати потрібний елемент списку, а також виключає можливість помилки при ручному введенні.
На закінчення відзначимо, що створені вхідні форми і генеруються системою звіти зручні для користувача і подібні формам і документів реального бізнес-процесу, що протікає при обліку витрат на медичні послуги в Княжпогостском філії ФОМС.

3.5. Користувачі і права доступу

У СУБД Microsoft SQL Server 2005 користувачі в значній мірі еквівалентні облікових записів. Іншими словами, об'єкт користувача являє собою ідентифікатор для деякого особи, яка бажає увійти в систему для роботи. Будь-який, хто побажає зареєструватися для роботи з SQL Server 2005, повинен бути представлений за допомогою об'єкта користувача. Користувачі, в свою чергу, можуть належати до однієї або декількох ролей. Права на виконання певних дій в СУБД SQL Server 2005 можуть бути надані безпосередньо користувачеві або ролі, до якої можуть ставитися кілька користувачів.
У нашій базі даних не передбачено будь-яких секретних даних, тому цілком достатньо для обмеження доступу до даних по мережі використовувати аутентифікацію Windows, і створити відповідного користувача в якості власника бази даних. Треба сказати, що Microsoft SQL Server 2005 дозволяє легко керувати користувачами і їхніми правами, так що в разі необхідності адміністратор баз даних може легко внести зміни в існуючу схему доступу до даних.
У клієнтському додатку також немає необхідності організовувати будь-яку політику безпеки, так як система, по суті, є однокористувальницької, причому користувач повинен мати право здійснювати з даними будь-які дії в рамках програми. А для захисту від несанкціонованого доступу до даних через клієнтську програму цілком достатньо коштів Windows.

Висновок

Даний курсовий проект є продовженням курсового проекту з дисциплін «Інформаційні технології» та «Управління даними», оскільки головна мета даних робіт стосується автоматизації процесу з обліку витрат на надані медичні послуги.
У ході виконання даного курсового проекту була розроблена фізична модель бази даних, причому в якості цільової СУБД була обрана Microsoft SQL Server 2005. За допомогою накладених на відносини обмежень і тригерів здійснена підтримка декларативної цілісності бази даних, а за допомогою створення збережених процедур були реалізовані бізнес-правила. Реалізація запитів до бази даних і створення збережених процедур мовою T-SQL дозволили автоматизувати процес формування вихідний документації. Аналіз вхідної документації дозволив правильно створити вхідні форми для управління даними системи.
У результаті проведеної роботи ми отримали практично закінчену автоматизовану систему, яка дозволяє вирішити ряд проблем розглянутої предметної області. Відповідність системи описаним в технічному завданні вимогам дозволяє зробити висновок, що створена АІС при відповідному доопрацюванні може бути застосована у відповідній предметній області, а саме в Княжпогостском філії ФОМС.

Список використаної літератури

1.
2. Роберт Вьєйра. SQL Server 2000. Програмування в 2 ч.: Пер. з англ.; Під ред. С.М. Молявко. - М.: БІНОМ. Лабораторія знань, 2004. - 735 с.: Іл.
3. Роберт Вьєйра. Програмування баз даних Microsoft SQL Server 2005. Базовий курс. : Пер. з англ. - М.: ТОВ «І.Д. Вільямс », 2007. - 832 стор: іл.
4. Конноллі Томас, Бегг Каролін. Бази даних: проектування, реалізація і супровід. Теорія і практика, 3-е вид.: Пер. з англ. - М.: Видавничий дім «Вільямс», 2003. - 1440 с.: Іл. - Хрон. тит. англ.;
5. Гектор Гарсіа-Моліна, Джеффері Ульман, Дженніфер Уідом. Системи баз даних. Повний курс: Пер. з англ. - М.: Видавничий будинок "Вільямс", 2004
6. Нейгел Крістіан, Івьен Білл, Глин Джей і ін C # 2005 для професіоналів. : Пер з англ. - М.: ТОВ «І.Д. Вільямс », 2006. - 1376 с.
7. Миколаєва Н.А. Мова структурованих запитів. Лабораторні роботи: навчальний посібник / Н.А. Миколаєва, Т.Ю. Калініна. - Ухта: УГТУ, 2006. - 124 с. мул.

Програми

Додаток 1



Додаток 2



Додаток 3


Додати в блог або на сайт

Цей текст може містити помилки.

Програмування, комп'ютери, інформатика і кібернетика | Курсова
83кб. | скачати


Схожі роботи:
Розробка фізичної моделі бази даних Уч т характеристик сигналів телемеханіки
Нормалізація таблиць в реляційної моделі бази даних
Розробка бази даних для готелю
Розробка бази даних для програми Радіодеталі
Розробка бази даних для розкладу занять
Розробка бази даних з обліку книг в бібліотеці
Розробка і створення презентації бази даних Деканат ВНЗ
Розробка проекту бази даних для АІС Облік Проектів 2
Розробка програми генерації тестів з бази даних на мові РНР
© Усі права захищені
написати до нас