База данных для хранения и обработки информации, которая требуется типичной психиатрической больнице

Страницы работы

Содержание работы

Санкт-Петербургский Государственный институт Информационных Технологий, Механики и Оптики

Кафедра Информатики и Прикладной Математики

Факультет Компьютерных Технологий и Управления

Психиатрическая больница.

Отчет по приложению к БД Oracle.

Выполнили:   

Шарипо Анна, гр. 3120

Гришуль Евгений, гр. 3120

Санкт-Петербург

2006 г.


Оглавление.

Инфологическая модель. 3

Описание предметной области. 4

Что должно уметь делать приложение?. 4

Особенности реализации. 5

 Руководство. 6

Примеры UI. 13

Класс привязки к БД. 23

Часть SQL скрипта. 37


Инфологическая модель.


Описание предметной области.

С самого начала существования человечества на Земле его насущной задачей было сохранение жизни. Человека всегда и всюду подстерегали болезни, иногда ужасные и таинственные, за которыми скрывался неумолимый враг - смерть. Не потому ли испокон веков люди интересовались болезнями, искали способы избавления от них.

Когда удалось прочесть египетские папирусы, перед нами возникла картина уровня знаний за две тысячи лет до нашей эры. Египтяне знали уже около 250 болезней, которые распознавали по цвету кожи, выражению лица, по виду человеческих отходов и путем ощупывания тела больного.

Наиболее опасными являются психические заболевания, т.к. они с большим трудом поддаются лечению, если вообще лечатся. Наша база данных будет использоваться для хранения и обработки информации, которая требуется для типичной психиатрической больницы. В ней должны содержаться сведения о работающих или работавших сотрудниках, о текущих и вылеченных пациентах, об проходящем или пройденном ими лечении, о болезнях и лекарствах. Также в базе должна содержаться информация, позволяющая связать болезни с соответствующими лекарстсвами. Данные о болезнях\расстройствах были взяты из МКБ-10 (Международная Классификация Болезней).

Что должно уметь делать приложение?

  • Приложение должно уметь предоставлять информацию, находящуюся в таблицах, а также позволять модифицировать ее (в удобном для пользователя виде).
  • Должно быть как минимум 2 режима работы – административный и пользовательский.
  • Должна быть предусмотрена аутентификация пользователей.
  • Должна быть предусмотрена возможность развертывания с минимальным количеством действий

Особенности реализации.

 Написано под .NET 2.0 с использование Microsoft Visual Studio 2005 Team Suite. Написан тест на компонент работы с БД (DbHelper), с покрытием на 67%. Запуск на *nix платформах (mac, unix, linux, solaris и пр.) возможен через mono (www.mono-project.com). Реализована развертка базы (создание таблиц\данных путем нажатия одной клавиши) на сервере Oracle 10g (только 10g т.к. приложение использует .NET драйвера к 10й версии oracle, причем beta драйвера, т.к. нормальных родных пока в природе не сеществует). Реализован режим аутентификации при помощи 3х учетных записей для подключения к БД Oracle. Первая MENTAL_HOSPITAL_PUBLIC хранится у каждого пользователя в зашифрованном виде, служит для первоначального подключения. Из под этой учетной записи доступно только выполнение процедуры TryToLogin, куда передается логин и пароль, которые хранятся в таблице СОТРУДНИК, которая в случае удачного обращения выдает логин\пароль (в зашифрованном виде) пользователей MENTAL_HOSPITAL_ADMIN или MENTAL_HOSPITAL_USER в зависимосте от того может ли сотрудник администрировать (поле AdministerOptions). MENTAL_HOSPITAL_ADMIN может делать с данными все что угодно, в то время как MENTAL_HOSPITAL_USER имеет доступ на чтение лишь к некоторым таблицам, представлениям, и на выполнение к нескольким процедурам. Пароли сотрудников хранятся в виде хэшей MD5, что не позволяет их узнать, но администратор может установить новый логин и пароль не зная старого. В базе хранятся фотографии сотрудников.


 Руководство.

Окно настроек соединения – позволяет указать IP/domain сервера (Oracle) , порт и instance. Появляется при отсутствии информации о сервере (когда отсутствует файл server.cfg)

2 вида – первое без требование public пароля, второе с требованием. Первое используется при развертке и отсутствии server.cfg, второе во всех остальных случаях. Второй вид позволяет заодно проверить соединение по нажатии Ok (Connect: MENTAL_HOSPITAL_PUBLIC / public_password). Первоначальный connect идет через MENTAL_HOSPITAL_PUBLIC логин\пароль (пароль впоследствии в зашифрованном виде лежит в server.cfg). Имеется доступ только с ф-ии TryToLogin которая возвращает логин и пароль для

MENTAL_HOSPITAL_ADMIN или MENTAL_HOSPITAL_USER в зависимости от того, кто сотрудник (поле AdministerOptions в таблице СОТРУДНИК) или возвращает рандомный пароль для коннекта к базе – если пользователя с указанным логином и паролем нету.

Развертывание БД. Нужен админский аккаунт для создания 3х USER’ов (MENTAL_HOSPITAL_ADMIN, MENTAL_HOSPITAL_USER, MENTAL_HOSPITAL_PUBLIC) и начальной настройки. Админский аккаунт нигде не сохраняется. Происходит создание структуры базы + наполнение тестовыми данными для наглядности.

Настройка сотрудников. Доступно только администратору. Позволяет вручную настроить все данные о работающем сотруднике, кроме даты устройства\увольнения – они автоматически прописываются приложением (если надо поменять – sqldeveloper в помощь). Отсюда же можем уволить\восстановить сотрудника, или сменить ему учетные данные – логин и пароль.

  

Добавление нового сотрудника.

Настройка данных самим сотрудником. Отсюда доступно только изменение телефона и изображения (перетаскивание файла на соответствующий контрол)

Смена пароля сотрудником. (процедура на сервере требует в качестве параметра старый пароль чтоб сотрудник-злоумышленник (Морф) не смог изменять чужие пароли).

 

Настройка списка всех должностей. При удалении запись физически не удаляется а выставляется 1 в колонке WAS_REMOVED и запись не показывается в этом списке. Сделано затем, чтоб пьяный админ случайно не закрошил базу путем удаления связ  анных записей. Такая же вещь 

Настройка соответствия лекарств и заболеваний.

 

Создание новых лекарств\болезней.

Собственно, о прграмме + некоторые свойства окружения.

Вход в систему.

Неудачный вход в систему.

Основное окно. Список больных, с которыми можно производить разные действия. Можно просматривать как текущих, так и бывших на лечении.


Можно добавить нового сотрудника.

…а можно наказать!!!

Можно лечить. Лекарство выбирается из списка лекарств, лечащих текущее заболевание.

Можно посмотреть информацию о пациенте.


Примеры UI.

namespace MentalHospital

{

       public partial class CustomizedImage : Panel

       {

               public CustomizedImage()

               {

                      InitializeComponent();

               }

               private void CustomizedImage_DragDrop(object sender, DragEventArgs e)

               {

Похожие материалы

Информация о работе