Разработка программного модуля для автоматизации процесса проверки цветоощущения человека (тест Рабкина) в среде 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