Главная
страница 1


ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

ВОРОНЕЖСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ”

Факультет компьютерных наук

Кафедра программирования и информационных технологий



Разработка приложения для автоматизации работы организационно-методического отдела Воронежского областного клинического онкологического диспансера

Курсовая работа



230201 Информационные системы и технологии

Информационные системы и технологии на предприятиях

Зав. кафедрой _____________ Н. А. Тюкачев, к.ф.–м.н., доцент __.__.200__

Студент __________________ Г.О.Пономарева, 3 курс, д/о

Руководитель _____________ А. С. Беляев, ст.преп.

Воронеж 2009

Содержание


Содержание 3

Введение 4

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

2. Анализ задачи 6

3. Средства реализации 9

4. Реализация 12

4.1 Структура базы данных 12

4.2. Проектирование 14

4.2.1. Диаграмма использования 14

4.2.2. Диаграмма состояний 15

4.2.3. Диаграмма пакетов 16

4.2.4. Диаграммы последовательности 20

4.3 Интерфейс пользователя 22

4.3.1. Движение 22

4.3.2. Пациенты 23

4.3.3. Отчеты 25

Заключение 27

Список литературы 28


Введение


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

Одной из проблем автоматизации учета в медицинских учреждениях является сложность формализации всей информации о пациенте. Ведь каждое направление медицины – это практически отдельная наука.

Однако возможно написание узкоспециализированных программ, охватывающих отдельные направления медицины. Целью данного проекта является разработка системы централизованного учета движения больных в крупных медицинских заведениях (на примере Воронежского Областного Клинического Онкологического Диспансера), состоящих из нескольких отделений с возможностью предоставления всевозможных отчетов.

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


Необходимо разработать программу, имеющую следующие возможности:

  • учет по движению больных;

  • учет по картам выбывших;

  • генерация отчетов.

2. Анализ задачи


Разрабатываемая программа должна вести учет по двум основным критериям:

  • по движению больных

(т.е. по ежедневно предоставляемым каждым отделением отчетам, согласно форме 007/у-02, утвержденной приказом Минздрава России);

  • по статистическим картам выбывших из стационара – форма 066/у-02 (т.е. учет всех больных, закончивших лечение).

Форма 007/у-02 включает в себя следующие данные:

  • количество коек в отделении, включая койки развернутые на ремонт;

  • количество коек, свернутых на ремонт;

  • количество больных на начало истекших суток;

  • количество поступивших больных, т.е. их общее количество, а также среди них:

  • количество сельских жителей;

  • количество детей и подростков (граждан в возрасте до 18 лет);

  • количество пенсионеров (граждан в возрасте от 60 лет);

  • количество переведенных больных внутри больницы, в том числе:

  • больных переведенных из других отделений;

  • больных переведенных из РАО;

  • больных переведенных в другие отделения;

  • больных переведенных в РАО;

  • количество выписанных больных;

  • общее количество;

  • больных, переведенных в другие стационары;

  • количество умерших больных;

  • количество больных на начало текущих суток (в том числе количество сельских жителей).

Форма 066/у-02 включает в себя множество пунктов.

По желанию заказчика при разработке программы должны учитываться следующие:


  • дата поступления;

  • дата выбытия;

  • отделение, в котором пациент проходил лечение;

  • фамилия, имя, отчество больного;

  • диагноз, в зашифрованном виде;

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

  • количество койко-дней, проведенных больным в стационаре;

  • информация о том, является ли данный этап лечения частью комплекса;

  • вид лечения;

Виды лечения, как и диагнозы должны храниться в зашифрованном виде, а также распределяться по группам. Коды были предоставлены заказчиком.

  • количество койко-дней проведенных пациентом в стационаре до начала лечения;

  • информация о том, из какого отделения был переведен пациент (если такой перевод имел место);

  • информация о том, в какое отделение был переведен пациент (если такой перевод имел место);

  • если пациент умер, информация об этом также должна быть сохранена;

Необходимо предусмотреть возможность создания разнообразных отчетов.


3. Средства реализации


При работе с проектом были выбраны следующие средства:

  • Toad Data Modeler - многофункциональный инструмент разработки баз данных и приложений, который объединяет в одной интегрированной среде объектно-ориентированные и концептуальные возможности моделирования физических данных. Интуитивно понятный интерфейс пользователя и поддержка популярных СУБД делают Toad Data Modeler уникальным решением для ускорения разработки и анализа сложных распределенных приложений.

  • MySQL – свободная система управления базами данных (СУБД). MySQL является решением для малых и средних приложений. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы. Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. [1]

  • Java 2 – объектно-ориентированный язык программирования, разрабатываемый компанией Sun Microsystems и официально выпущенный 23 мая 1995 года. По-русски произносят название как «Ява», по аналогии с названием острова Ява.

Java — так называют не только сам язык, но и платформу для создания приложений уровня предприятий на основе данного языка.

Программы на Java транслируются в байт-код, выполняемый виртуальной java-машиной (JVM) — программой, обрабатывающей байтовый код и передающей инструкции оборудованию как интерпретатор, но с тем отличием, что байтовый код, в отличие от текста, обрабатывается значительно быстрее.

Достоинство подобного способа выполнения программ — в полной независимости байт-кода от операционной системы и оборудования, что позволяет выполнять Java-приложения на любом устройстве, которое поддерживает виртуальную машину.

Другой важной особенностью технологии Java является гибкая система безопасности благодаря тому, что исполнение программы полностью контролируется виртуальной машиной. Любые операции, которые превышают установленные полномочия программы (например, попытка несанкционированного доступа к данным или соединения с другим компьютером) вызывают немедленное прерывание. Это позволяет пользователям загружать программы, написанные на Java, на их компьютеры (или другие устройства, например, мобильные телефоны) из неизвестных источников, при этом не опасаясь заражения вирусами, пропажи ценной информации, и т. п. [1,2,3,4]



  • Java Development Kit 6 – бесплатно распространяемый фирмой Sun комплект разработчика приложений на языке Java, включающий в себя компилятор Java (javac), стандартные библиотеки классов Java, примеры, документацию, различные утилиты и исполнительную систему Java (JRE). В состав JDK не входит интегрированная среда разработки на Java (IDE), поэтому разработчик, использующий только JDK, вынужден использовать внешний текстовый редактор и компилировать свои программы, используя утилиты командной строки. [1,2,3,4]

  • NetBeans 6.5 — свободная интегрированная среда разработки приложений на языках программирования Java, JavaFX, Ruby, Python, PHP, JavaScript, C++ и ряде других. NetBeans IDE поддерживает дополнительные модули, позволяя разработчикам расширять возможности среды. Так, существует модуль для работы с UML-диаграммами, который так же использовался в проекте. [1,2]

  • Hibernate — библиотека для языка программирования Java, предназначенная для решения задач объектно-реляционного проецирования (object-relational mapping — ORM). Она представляет собой свободное программное обеспечение с открытым исходным кодом (open source), распространяемое на условиях GNU Lesser General Public License. Данная библиотека предоставляет лёгкий в использовании каркас для отображения объектно-ориентированной модели данных в традиционные реляционные базы данных. [1]

  • JasperReports – Java-библиотека для создания отчётов. На основе XML-шаблонов отчётов генерируются готовые для печати документы, консолидирующие данные из различных источников, в т.ч. Hibernate. Отчёты могут выводиться на экран, принтер либо в форматы PDF, RTF, HTML, XLS, CSV и XML. Основной частью шаблона является SQL-запрос, который и указывает выбрать необходимые для отчёта данные. В XML-шаблоне допустимо применение стилей, выражений (для проверки или вычисления результата). Также возможна группировка данных по требуемому полю.[1,5,6]

4. Реализация

4.1 Структура базы данных


Рис.1. Схема базы данных

База данных состоит из семи таблиц. Рассмотрим, что представляет из себя каждая из них.




Табл. 1. Описание таблиц базы данных

Название таблицы в базе данных

Описание

pacients

таблица, в которой содержатся записи о пациентах, закончивших лечение в стационаре

daily_move

таблица, в которой содержится информация о ежедневном движении больных – поступило, выписано, переведено и т.д.

wards

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

diagnosis

справочник возможных диагнозов в закодированном виде

group_of_diagnosis

справочник групп диагнозов, также в закодированном виде

treatment

справочник возможных видов лечения, каждая запись хранит код лечения, а также его описание

group_of_treatment

справочник групп для видов лечения, также хранится код группы и ее название

4.2. Проектирование

4.2.1. Диаграмма использования


В первую очередь рассмотрим возможные варианты использования приложения.

Рис.2. Диаграмма использования

Из постановки задачи хорошо видно, что работа с программой должна делиться на три составляющих части – движение, карты выбывших, отчеты. Это хорошо видно на рис.2. Так же на диаграмме показаны возможности работы с каждым из этих блоков.[7]

4.2.2. Диаграмма состояний


Далее рассмотрим более подробно, в каких состояниях может находиться программа. Для этого обратим свое внимание на диаграмму состояний, изображенную на рис.3.

Рис.3. Диаграмма состояний


4.2.3. Диаграмма пакетов


Рис.4. Диаграмма пакетов

Обратим свое внимание на диаграмму пакетов, представленную на рис.4.[7,8]

Рассмотрим каждый пакет поподробнее.


4.2.3.1. Controller


Так называемый, главный пакет приложения, управляющий пакет.

Содержит в себе два класса:



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

  • GetterMaps – вспомогательный класс, содержит всего одну статическую функцию, используется для быстрого доступа к донным таблиц-справочников.

4.2.3.2. View


Пакет, отвечающий за пользовательский интерфейс. Содержит в себе класс, описывающий поведение главного окна приложения, а также классы – описания вспомогательных панелей.[5]

4.2.3.3. Model


Пакет, содержащий классы, соответствующие таблицам базы данных. Для написания этик классов использована библиотека Hibernate, а также технология Java Persistence API. Каждое поле такого класса имеет специальную аннотацию – описание столбца таблицы, которому соответствует это поле.

4.2.3.4. Hibernate


Пакет, в котором находятся классы, универсальные для любого проекта использующего одноименную библиотеку. Такие, как:

  • HibernateSessionFactory – класс, отвечающий за сессии работы с базой данных. Для правильной конфигурации использует файл hibernate.cfg.xml, в котором находятся настройки для подключения к базе данных.

  • GenericHibernateDAO – абстрактный класс, реализует интерфес IGenericDAO, представленный в этом же пакете.

Листинг 1

public interface IGenericDAO {

T findById(ID id, boolean lock);

List findAll();

List findByExample(T exampleInstance, String[] excludeProperty);

T save(T entity);

void delete(T entity);

}

4.2.3.5. DAO


Пакет содержит конкретные необходимые для работы реализации абстрактного класса GenericHibernateDAO, соответствующие классам из пакета Model.

4.2.3.6. Reports


Пакет для работы с отчетами.

Как уже говорилось ранее, для работы с отчетами используется библиотека JasperReports. В простейшем случае, чтобы сгенерировать отчет, необходимо написать 2 файла: первый - xml c разметкой отчета, а второй - класс Java, который с помощью библиотек Jasper сгенерирует отчет по указанному xml. [3,4]

Так как разрабатываемое приложение должно создавать достаточно большое количество отчетов, а работа с ними должна быть однообразна, то был разработан абстрактный класс – AbstractReport. Этот класс используется, как предок для реализации класса для каждого конкретного отчета.

Рис.5. Диаграмма классов – внутренняя структура пакета reports

Для заполнения отчета конкретными данными, ему необходимо передать объект класса, реализующего интерфейс JRDataSource. В моем случае это класс HibernateQueryResultDataSource. [3,4]

Класс ReportFactory используется для создания экземпляров классов в соответствии с названием нужного отчета.

Для того чтобы добавить в приложение возможность создания нужного отчета нужно совершить всего несколько действий:


  • создать xml-файл;

  • создать класс, родителем которого является AbstractReport;

  • добавить в карту отчетов (Map) в классе ReportFactory запись об этом новом классе. При этом ключом является название отчета.

4.2.4. Диаграммы последовательности


Статическая функция main() создает экземпляр класса Controller, который, в свою очередь уже управляет приложением. Посмотрим, что же происходит в момент создания этого объекта. На рис.6 изображена диаграмма последовательности для конструктора класса Controller.[7]

Рис.6. Диаграмма последовательности. Конструктор класса Controller.

И еще одна диаграмма последовательности. Она демонстрирует работу пакета Reports.

Рис.7. Диаграмма последовательности. Класс Controller, метод getReport()


4.3 Интерфейс пользователя


Итак, как уже отмечалось в анализе задачи, у приложения должно быть три основных задачи:

  • учет движения больных;

  • учет всех пациентов;

  • генерация отчетов.

Именно поэтому при проектировании интерфейса был использован компонент JTabbedPane, который используется для организации неких закладок, позволяющих размещать на одном и том же пространстве несколько элементов. [9, 10]

Итак, после запуска приложения, мы видим три вкладки:



  • «Движение»;

  • «Пациенты»;

  • «Отчеты».

А также в верхней части окна присутствует панель инструментов, которая меняет свою функциональность в зависимости от выбранной вкладки.
Рассмотрим каждую из них поподробнее.

4.3.1. Движение


Вкладка представляет собой таблицу, в которой столбцы соответствуют необходимым полям по форме 007/у-02 (см. анализ задачи).

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

В режиме добавления в таблице появляется еще одна строка, которая сохраняется по нажатию клавиши Enter.

В режиме редактирования все ячейки таблицы могут быть изменены. Для этого необходимо просто поставить курсор в нужную ячейку и ввести необходимое значение. Также по таблице можно перемещаться, используя клавишу Tab, что добавляет удобности в использовании.[9, 10]

Изменения сохраняются сразу по окончании редактирования ячейки.

И, наконец, записи из этой таблицы могут быть удалены. Для этого нужно просто выбрать строку, которую пользователь желает удалить, и нажать кнопку удаления на панели управления.



Рис. 8. Вкладка «Движение»


4.3.2. Пациенты


Следующая вкладка – «Пациенты» - позволяет вести учет по картам выбывших.

В данном случае таблица используется только для просмотра данных.

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

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

И еще один удобный момент – автоматический подсчет койко-дней, проведенных пациентом в стационаре. Рядом с полем для ввода этого значения, отображается значение, подсчитанное автоматически, исходя из дат поступления и выписки. Это поле могло бы быть вычисляемым, но по желанию заказчика, в отчетах должно присутствовать два значения – введенное с клавиатуры, и подсчитанное компьютером.

Рис.9. Вкладка «Пациенты» с формой редактирования


4.3.3. Отчеты


Название вкладки говорит само за себя. Здесь находится вся функциональность по генерации отчетов.

При работе с этой вкладкой панель управления не активна. Все необходимые настройки находятся непосредственно в рабочем пространстве вкладки.


Рис.10. Вкладка «Отчеты»



Для того чтобы получить какой-либо отчет, пользователю необходимо совершить несколько простых действий.

  • выбрать тип отчета из выпадающего меню;

  • выбрать даты, соответствующие периоду, за который будет сгенерирован отчет;

  • ввести заголовок отчета (необязательное действие, если заголовок не введен, будет использовано значение по умолчанию);

  • нажать кнопку «Сгенерировать»;

После этого в правой части окна появится компонент для предпросмотра отчета. Если в отчете все устраивает, его можно распечатать или сохранить в один из следующих форматов:

  • *.pdf;

  • *.rtf;

  • *.odt;

  • *.html;

  • *.xls;

  • *.csv;

  • *.xml.

Заключение


В ходе проделанной работы разработан программный продукт, позволяющий значительно упростить работу организационно-методического отдела крупных медицинских учреждений. Данная программа позволяет:

  • вести учет по движению больных в стационаре;

  • вести учет больных по картам выбывших;

  • создавать большое количество отчетов.

Список литературы


  1. Википедия: свободная электронная энциклопедия: на русском языке [Электронный ресурс] – электрон. текст. дан. – Режим доступа: http://ru.wikipedia.org, свободный

  2. Монахов В.В. Язык программирования Java и среда NetBeans. – СПб.: БХВ-Петербург, 2008. – 640с.

  3. Ноутон П., Шилдт Г. Java 2 – СПб.: БХВ-Петербург, 2008. – 1067с.

  4. Эккель Брюс Философия Java. Библиотека программиста. 4-е изд. – СПб.: «Питер», 2009. – 640с.

  5. Записки искателей [Электронный ресурс]/ Цикл статей о JasperReports. – электрон. текст. дан. – Режим доступа: http://voituk.kiev.ua/intro-jasper-reports/, свободный

  6. JasperForge: JasperReports Project Home [Электронный ресурс] – электрон. Текст. Дан. – Режим доступа: http://jasperforge.org/projects/jasperreports, свободный

  7. Крэг Ларман Применение UML 2.0 и шаблонов проектирования — М.: «Вильямс», 2006.

  8. Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес Приемы объектно-ориентированного проектирования. Паттерны проектирования. — СПб: «Питер», 2007. —366с.

  9. Портянкин И.А. Swing: Эффектные пользовательские интерфейсы. Библиотека программиста. - СПб.: БХВ-Петербург, 2005. – 528с.

  10. Х.М.Дейтел, П.Дж.Дейтел, С.И.Сантри Технологии программирования на Java 2: Книга 1. Графика, JavaBeans, интерфейс пользователя. Пер. с англ. – М.: ООО «Бином-пресс», 2003. – 560с.



Смотрите также:
Курсовая работа 230201 Информационные системы и технологии на предприятиях
146.74kb.
1 стр.
Информационные системы и технологии
3769.69kb.
17 стр.
Дипломная работа по специальности 230201. 65 «Информационные системы и технологии»
1509.33kb.
24 стр.
Рабочая программа для студентов специальности 230201 Информационные системы и технологии очной формы обучения «подготовлено к изданию»
409.59kb.
1 стр.
Курсовая работа Дисциплина Информационные системы и технологии
236.07kb.
1 стр.
Методические указания по выполнению лабораторной работы №18 для студентов всех форм обучения специальностей 230104 «системы автоматизированного проектирования»
788.98kb.
4 стр.
1 Нормативные документы для разработки ооп бакалавриата по направлению подготовки 230400 информационные системы и технологии
765.86kb.
3 стр.
Курсовая работа по дисциплине «Цифровые методы обработки изображений» Направление: 010300. 68 «Фундаментальная информатика и информационные технологии»
153.45kb.
1 стр.
Направление подготовки: 230400. 68 Информационные системы и технологии
27.67kb.
1 стр.
Программа «Высокотехнологичные информационные системы»
25.52kb.
1 стр.
Зудилин Александр Эдуардович, ст
76.47kb.
1 стр.
Программа дисциплины "теория информационных процессов и систем" Рекомендуется Министерством образования РФ для направления подготовки
116.29kb.
1 стр.