Разработка программного модуля для автоматизации процесса проверки цветоощущения человека (тест Рабкина) в среде Delphi 7

Причина нарушений цветового зрения. Программная реализация алгоритма диагностики нарушения цветоощущения. Процесс проверки цветоощущения человека. Классификация цветового зрения. Дифференциальная диагностика форм и степеней расстройства цветового зрения.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 02.03.2014
Размер файла 1,7 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

МИНОБРНАУКИ РОССИИ

Государственное образовательное учреждение высшего профессионального образования

“Санкт-Петербургский государственный электротехнический университет “ЛЭТИ” им. В. И. Ульянова (Ленина)”

(СПбГЭТУ)

Кафедра БТС

Индивидуальное домашнее задание по дисциплине:

Программные средства создания медицинских информационных систем на тему: «Разработка программного модуля для автоматизации процесса проверки цветоощущения человека (тест Рабкина) в среде Delphi 7»

Выполнили: Опаснова М.И.

Талипова А. И.

гр. 9503

Проверил: Болсунов К.Н.

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

2013 г

Цель работы: разработка в среде Delphy 7 программного модуля для автоматизации процесса проверки цветоощущения человека.

Исходные данные: набор таблиц Рабкина, таблица для диагностики нарушений цветоощущения, правила прохождения теста, среда программирования Delphi7.

Задачи:

· Разработка базы данных

· Программная реализация алгоритма диагностики нарушения цветоощущения

· Разработка интерфейса приложения

· Тестирование разработанной программы

Введение

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

Причина нарушений цветового зрения

У человека в центральной части сетчатки расположены цветочувствительные рецепторы -- нервные клетки, которые называются колбочками. Каждый из трёх видов колбочек имеет свой тип цветочувствительного пигмента белкового происхождения. Один тип пигмента чувствителен к красному цвету с максимумом 552--557 нм, другой -- к зелёному (максимум около 530 нм), третий -- к синему (426 нм). Люди с нормальным цветным зрением имеют в колбочках все три пигмента (красный, зелёный и синий) в необходимом количестве. Их называют трихроматами.

Диагностика

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

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

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

Общие сведения о тесте на цветоощущение (тесте Рабкина)

Назначение

Таблицы предназначены для исследования цветового зрения и диагностики различных форм и степеней цветовой патологии. Набор таблицы содержит две группы - основную (таблицы 1, 2, 5, 6, 9, 10), предназначенную для определения адекватного состояния исследуемого, и контрольную (таблицы 3, 4, 7, 8) - для дифференциальной диагностики форм и степеней расстройства цветового зрения.

Применение

цветоощущение человек диагностика зрение

Исследуемого усаживают спиной к окну или источнику света и предлагают ему держать голову прямо, не двигая и не поворачивая ее в разные стороны. Таблицы располагают в строго вертикальной плоскости на уровне глаз исследуемого на расстоянии 0,5 - 1 м от него. Время демонстрации одной таблицы не должно превышать 8 сек. Не рекомендуется класть таблицы на стол или держать их в наклонной плоскости: это может отразиться на точности методики и выводах исследования.

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

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

Классификация цветового зрения

Таблица 1 Классификация цветового зрения

Вид

Форма

Нормальная трихромазия

-

Дихромазия

Протанопия

Дейтеранопия

Тританопия

Таблица 2 - Таблица для диагностики нарушений цветоощущения

таблицы

Читаемость таблиц

Н

Дихромазия

Пр

Де

1

96

96

96

2

?^

?^

?^

3

136

68, 69

66, 69

4

?^

?

^

5

5

5

5

6

36

36

36

7

30

106

16

8

96

9

6

9

14

14

14

10

9

9

9

Н - нормальные трихроматы, Пр - протанопы, Де - дейтеранопы

Программная разработка

Общие сведения

Для разработки программного модуля проверки цветоощущения человека использовалась среда программирования Delphi 7. Операционная система, необходимая для обеспечения функционирования программы - Windows 7 (64 разрядная операционная система с установленной памятью 4 ГБ).

Функциональное назначение

Программа проверки цветоощущения человека помогает определить нарушения цветового зрения, вид цветовой патологии и форму. Разработанная программа позволяет быстро и объективно оценить цветовую патологию испытуемого.

Описание логической структуры

Структура и принцип работы программы

Программа представляет собой приложение с графическим интерфейсом пользователя, которая ссылается на 6 других программ, отвечающих за соответствующие формы. Первая форма - «Тест Рабкина» отображает правила прохождения теста и предлагает пройти регистрацию. Вторая форма - «Регистрация» запрашивает фамилию, имя, отчество пользователя, сохраняет их в базе данных и позволяет перейти к тесту. Третья форма - «Прохождение теста» отображает поочередно таблицы Рабкина, сопровождаемые вариантами ответов. Четвертая форма оповещает об окончании теста и предлагает посмотреть результат. Пятая форма - «Заключение» представляет заключение теста в виде тестового сообщения и круговой диаграммы. Шестая форма позволяет окончить тест на любом этапе его прохождения.

На рисунке 1 представлен алгоритм проверки цветоощущения.

Размещено на http://www.allbest.ru/

Рис.1 Алгоритм проверки цветоощущения

При запуске программы на экране появляется окно приложения, на котором отображены правила прохождения теста и имеется кнопка «Регистрация» (рисунок 2), активация которой вызывает следующее окно «Регистрация».

Рис.2 Окно приложения «Тест Рабкина»

В ячейки вызванного окна необходимо вбить данные испытуемого (рисунок 3).

Рис. 3 Окно приложения «Регистрация»

При нажатии на кнопку «ОК» будет вызвано окно «Прохождение теста», которое отвечает за процесс тестирования (рисунок 4).

Рис. 4 Окно приложения «Прохождение теста»

В окне «Прохождение теста» имеется кнопка «Завершить тест», которая вызывает диалоговое окно, позволяющее прервать процедуру теста на любом этапе его прохождения (рисунок 5).

Рис. 5 Окно приложения «Прохождение теста» при активации кнопки «Завершить тест»

После полноценной процедуры прохождения теста на экране появляется окно с кнопкой «Посмотреть результат», после нажатия которой вызывается окно «Заключение», в котором отображены диаграмма результатов теста, сообщения об адекватности полученных результатов и диагноз (рисунок 6).

Рис. 6 Окно приложения «Заключение»

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

Рис. 7 База данных

Итак, на выходе программы имеется, заключение о нарушении цветоощущения испытуемого.

Коды программ каждой формы представлены в разделе ПРИЛОЖЕНИЯ.

Принципы работы программ

Программную реализацию теста обеспечивают 6 программ: «test_rabkina.dfm», «Unit5.dfm», «Unit1.dfm», «Unit3.dfm», «Unit4.dfm», «Unit2.dfm».

На рисунке 8 представлен алгоритм программы «test_rabkina.dfm»

Размещено на http://www.allbest.ru/

Рис. 8 Алгоритм программы «test_rabkina.dfm»

Окно программы «test_rabkina.dfm» имеет кнопку «Регистрация», которая отвечает за вызов следующей программы «Unit5.dfm» и базы данных.

На рисунке 9 представлен алгоритм программы «Unit5.dfm».

Размещено на http://www.allbest.ru/

Рис. 9 Алгоритм программы «Unit5.dfm»

Программа «Unit5.dfm» осуществляет ввод данных в базу данных и вызывает следующую программу «Unit1.dfm».

Алгоритм программы «Unit1.dfm» представлен на рисунке 10.

Рис. 10 Алгоритм программы «Unit1.dfm»

Программа «Unit1.dfm» отвечает за запуск таймера и смену таблиц. Каждая таблица сопровождается вопросом и вариантами ответов, из которых необходимо выбрать один. Время демонстрации каждой таблицы составляет 8 сек, по истечении которых программа автоматически перелистывает на следующую таблицу. Всего таблиц 10. И после показа последней таймер прекращает работу. После остановки таймера программа вызывает форму «Тест пройден». Если во время теста пользователь нажмет на кнопку «Завершить тест» процедура теста прервется.

Размещено на http://www.allbest.ru/

Рис. 11 алгоритм программы «Unit3.dfm»

Алгоритм программы «Unit3.dfm» представлен на рисунке 11.

Когда вызывается программа «Unit3.dfm» на экране появляется окно с кнопкой «Посмотреть результаты», нажав на которую, вызовется программа «Unit4.dfm» и форма «Заключение».

На рисунке 12 представлен алгоритм программы «Unit4.dfm».

Рис. 12 Алгоритм программы «Unit4.dfm»

Программа «Unit4.dfm» отвечает за вывод заключения о прохождении теста. Если количество правильных ответов на таблицы из 1й группы составляет меньше 75%, то тест признают недействительным. Если количество правильных ответов на таблицы из 2й группы составляет 50% и в ответах были в равной степени признаки протанопии и дейтеранопии, то тест также признают недействительным. Если количество правильных ответов на таблицы из 1й группы составляет больше 75% и количество правильных ответов на таблицы из 2й группы составляет 50%, то пациент является нормальным трихроматом. Если количество ответов, отвечающих за признаки протанопии перевешивают количество ответов, отвечающих за признаки дейтеранопии, то пациент является протонопом, если наоборот - дейтеранопом. На форме «Заключение» имеется кнопка, при нажатии которой программа полностью закрывается.

Вывод

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

ПРИЛОЖЕНИЕ А

Код программы «test_rabkina.dfm», отвечающей за форму «Тест Рабкина»

unit test_rabkina;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TTest = class(TForm)

Button1zapusktesta: TButton;

BitBtn1: TBitBtn;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

procedure Button1zapusktestaClick(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Test: TTest;a, b, c, d: integer;

implementation

uses Unit1, Unit5;

{$R *.dfm}

procedure TTest.Button1zapusktestaClick(Sender: TObject);

begin

samtest.Show;

samtest.timer1.Enabled:=true;

end;

procedure TTest.BitBtn1Click(Sender: TObject);

begin

Form5.Show;

Form5.ADOQuery1.Insert;

BitBtn1.Visible:=False;

end;

end.

ПРИЛОЖЕНИЕ Б

Код программы «Unit5.dfm», отвечающей за форму «Регистрация»

unit Unit5;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, StdCtrls, Buttons, Mask, DBCtrls, ADODB;

type

TForm5 = class(TForm)

ADOConnection1: TADOConnection;

ADOQuery1: TADOQuery;

DBEdit1: TDBEdit;

DBEdit2: TDBEdit;

DBEdit3: TDBEdit;

BitBtn1: TBitBtn;

DataSource1: TDataSource;

StaticText1: TStaticText;

StaticText2: TStaticText;

StaticText3: TStaticText;

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5; outfile: TextFile;

implementation

uses test_rabkina, Unit4;

{$R *.dfm}

procedure TForm5.BitBtn1Click(Sender: TObject);

begin

ADOQuery1.Post;

Test.Button1zapusktesta.Visible:=True;

AssignFile(outfile, 'F:\kursovaja\outfile.txt');

Rewrite(outfile);

writeln(outfile, DBEdit1.Text);

writeln(outfile, DBEdit2.Text);

writeln(outfile, DBEdit3.Text);

close;

end;

end.

ПРИЛОЖЕНИЕ В

Код программы «Unit1.dfm», отвечающей за форму «Прохождение теста»

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, ExtCtrls, XPMan, IniFiles;

type

Tsamtest = class(TForm)

XPManifest1: TXPManifest;

Label1: TLabel;

Timer1: TTimer;

Label2: TLabel;

Label3: TLabel;

Image1: TImage;

Label4: TLabel;

Button1: TButton;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

procedure FormCreate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

a, b, c, d: integer;

end;

var

samtest: Tsamtest; sec, n, a, b, c, d: integer; secs, s, m: string; T:TIniFile;

implementation

uses Unit2, test_rabkina, Unit3, Unit4;

{$R *.dfm}

procedure Tsamtest.FormCreate(Sender: TObject);

begin

n:=0;

sec:=8;

end;

procedure Tsamtest.Timer1Timer(Sender: TObject);

begin

sec:=sec-1;

secs:='0'+inttostr(sec);

m:=ExtractFilePath(Application.ExeName);

T:=TIniFile.Create(m+'\'+'t.ini');

if sec<1 then begin n:=n+1; sec:=8; end;

if (sec=8) then begin RadioButton1.Checked:=false; RadioButton2.Checked:=false;RadioButton3.Checked:=false;end;

if (sec=1) then if (RadioButton1.Caption=T.ReadString('v'+IntToStr(n), 'm', 'все')) then if RadioButton1.Checked then a:=a+1;

if (sec=1) then if (RadioButton1.Caption=T.ReadString('v'+IntToStr(n), 'n', 'все')) then if RadioButton1.Checked then b:=b+1;

if (sec=1) then if (RadioButton2.Caption=T.ReadString('v'+IntToStr(n), 'p', 'все')) then if RadioButton2.Checked then c:=c+1;

if (sec=1) then if (RadioButton3.Caption=T.ReadString('v'+IntToStr(n), 'd', 'все')) then if RadioButton3.Checked then d:=d+1;

if n>9 then timer1.Enabled:=false;

if n>9 then samtest.Close;

Label1.Caption:=secs;

s:=ExtractFileDir(IntToStr(n)+'.bmp');

Image1.Picture.LoadFromFile(s+'pictures\'+IntToStr(n)+'.bmp');

RadioButton1.Caption:=T.ReadString('v'+IntToStr(n), 'var1', 'все');

RadioButton2.Caption:=T.ReadString('v'+IntToStr(n), 'var2', 'все');

RadioButton3.Caption:=T.ReadString('v'+IntToStr(n), 'var3', 'все');

T.Free;

if (n=10) then Form3.Show;

end;

procedure Tsamtest.Button1Click(Sender: TObject);

begin

timer1.Enabled:=false;

Form2.ShowModal;

if Form2.ModalResult=mrYes then Test.Close; samtest.Close;

if Form2.ModalResult=mrNo then n:=n; timer1.Enabled:=true; samtest.Show;

end;

end.

ПРИЛОЖЕНИЕ Г

Код программы «Unit2.dfm», отвечающей за форму прекращения теста

unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm2 = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

implementation

{$R *.dfm}

end.

ПРИЛОЖЕНИЕ Д

Код программы «Unit3.dfm», отвечающей за диалоговое окно «Тест пройден»

unit Unit3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm3 = class(TForm)

Label1: TLabel;

Button1: TButton;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit4;

{$R *.dfm}

procedure TForm3.Button1Click(Sender: TObject);

begin

Form4.Show;

Form3.Close;

end;

end.

ПРИЛОЖЕНИЕ Е

Код программы «Unit4.dfm», отвечающей за форму «Заключение»

unit Unit4;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, TeEngine, Series, ExtCtrls, TeeProcs, Chart, DBCtrls, ADODB, ShellApi,

Buttons;

type

TForm4 = class(TForm)

Chart1: TChart;

Series1: TPieSeries;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

BitBtn1: TBitBtn;

procedure FormShow(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4; e, f, g, h: extended;

implementation

uses Unit1, Unit5;

{$R *.dfm}

procedure TForm4.FormShow(Sender: TObject);

begin

e:=round((samtest.a*100)/6);

f:=round((samtest.b*100)/4);

g:=round((samtest.c*100)/4);

h:=round((samtest.d*100)/4);

Label2.Caption:=Floattostr(e);

With Series1 do

begin

Clear;

Add(f, 'нормальный трихромат',clYellow);

Add(g,'протаноп',clBlue);

Add(h,'дейтераноп',clRed);

end;

if (e<75)

then

begin Label4.Caption:= 'Результат теста не соответствует действительности.';

end;

if (e>=75) then

if ((f=50) and (f=g) or (h=f)) then

Label4.Caption:= 'Результат теста не соответствует действительности.'

else if (g=50) and (h=g) then Label4.Caption:= 'Результат теста не соответствует действительности.';

if (e>=75) then

begin

if (f>g) AND (f>h) then

begin

Label4.Caption:=Пациент является нормальным трихроматом';

end;

end;

if (e>=75) then

begin

if (g>h) AND (g>f) then

begin

Label4.Caption:= 'У пациента обнаружено нарушение цветового зрения - протанопия ';

end;

end;

if (e>=75) then

begin

if (h>g) AND (h>f) then

begin

Label4.Caption:= 'У пациента обнаружено нарушение цветового зрения - тританопия ';

end;

end;

Form5.ADOQuery1.Edit;

Form5.ADOQuery1.FieldByName('Заключение').AsString:=Label4.Caption;

Form5.ADOQuery1.Post;

writeln(outfile, Label4.Caption);

CloseFile(outfile);

end;

procedure TForm4.BitBtn1Click(Sender: TObject);

begin

close;

end; end.

Размещено на Allbest.ru


Подобные документы

  • Строение глазного яблока и механизм работы глаза. Схема строения зрительного анализатора. Разработка комплекса тестов с помощью среды LabView для проверки остроты зрения, наличия астигматизма, близорукости, дальнозоркости, косоглазия, дальтонизма.

    курсовая работа [1,7 M], добавлен 29.05.2014

  • Проектирование программного модуля в среде программирования Borland Delphi 7.0. Схемы алгоритмов решения задач по темам "Символьные переменные и строки", "Массивы", "Работа с файлами", "Создание анимации". Реализация программного модуля, код программы.

    отчет по практике [961,6 K], добавлен 21.04.2012

  • Разработка программы автоматизации процесса проверки знаний учащихся. Использование языка программирования Borland Delphi 7.0, его свойства, компоненты для работы со строками. Создание обучающих тестов на знание лексики и грамматики английского языка.

    курсовая работа [521,0 K], добавлен 06.03.2016

  • Разработка программы учета занятости компьютеров в лаборатории. Анализ требований, метод решения. Разработка алгоритма в виде структурных схем. Программная реализация в среде Borland Delphi. Минимальные системные требования для ее корректной работы.

    дипломная работа [6,3 M], добавлен 10.06.2013

  • Язык разметки гипертекста HTML, основы работы с Delphi. Разработка формата файла базы данных цвета. Методика подбора цвета для WEB-страниц. Изучение и систематизация информации о правилах создания эргономичных интерфейсов (в том числе WEB-интерфейсов).

    курсовая работа [475,8 K], добавлен 17.07.2009

  • Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.

    курсовая работа [365,0 K], добавлен 18.05.2013

  • Разработка алгоритма фильтрации данных, полученных с систем спутниковой навигации с помощью GNSS-модуля. Анализ работы фильтра Калмана, его программная реализация под конкретную задачу. Выбор навигационных модулей для получения данных позиционирования.

    дипломная работа [3,6 M], добавлен 12.01.2016

  • Анализ исходных данных. Определение структуры модуля для работы файлом. Разработка объектно-ориентированного приложения, использующего массив объектов, в среде Delphi. Модульная структура программного комплекса. Процедура сортировки методом вставки.

    курсовая работа [2,2 M], добавлен 20.09.2014

  • Структурная диаграмма программного модуля. Разработка схемы программного модуля и пользовательского интерфейса. Реализация программного модуля: код программы; описание использованных операторов и функций. Вид пользовательской формы с заполненной матрицей.

    курсовая работа [215,3 K], добавлен 01.09.2010

  • Анализ состояния проблемы, обзор аналогов, выбор прототипов и постановка задачи. Достоинства и недостатки рассмотренных систем технического зрения. Определение формы и положения объекта в пространстве. Обоснование и разработка математического аппарата.

    дипломная работа [2,5 M], добавлен 12.06.2013

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.