инфа_курсовая_пульмонология
.docxМинистерство образования и науки РФ
Федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. Ульянова (Ленина)
(СПбГЭТУ «ЛЭТИ»)
Кафедра
по дисциплине
Тема: «Программа для расчёта некоторых показателей, используемых в пульмонологии»
Студентка гр. |
9502 |
|
|
Позняк В. Ю.
|
Преподаватель: |
|
|
|
Бельтюков М.В. |
Санкт-Петербург
Введение
Цель
Создание программы для расчёта некоторых показателей, используемых в пульмонологии.
Проблема
Некоторые расчёты в пульмонологии часто приходится производить работникам кабинетов функциональной диагностики.
Решение
Созданная мною программа поможет упростить эти расчёты, повысить их точность и даст возможность интенсифицировать работу соответствующих кабинетов.
Алгоритм
Пользователь вводит все необходимые данные в соответствующие поля: ЛО(ATPS), ЧД, ДО, МПО2, ЖЕЛ, ОФВ1, МВЛ, ДОО в «Данные анализа»; комнатную t, атмосферное p, упругость водяного пара в «Данные окружающей среды»; вес, рост, возраст и пол в «Личные данные». При возникновении трудностей с идентификацией показателя, пользователь может обратиться к информационному окну с дополнительной информацией о данном показателе, наведя курсор на него. По окончанию ввода пользователь нажимает кнопку «Рассчитать».
Программа заносит в переменные все введённые данные и рассчитывает показатели по точным медицинским формулам.
Рассчитанные показатели программа выводит в соответствующее поле «Расчётные показатели»: ЛО(BTPS), ЛО(STPD), ДМПО2, ДМОД, МОД, МОД%, ДЖЕЛ, ЖЕЛ%, ДМВЛ, МВЛ%, ПСДВ, Кр, ВЭ, КИО2, ПТ, МПО2%, АВ, ЭВ, ДООЛ, ДФОЕ, ДОЕЛ. При возникновении трудностей с идентификацией показателя, пользователь может обратиться к информационному окну с дополнительной информацией о данном показателе, наведя курсор на него.
По завершении работы с программой пользователь осуществляет выход из неё нажатием на соответствующую кнопку.
Данные
анализа: ЛО(ATPS),
ЧД, ДО, МПО2, ЖЕЛ, ОФВ1, МВЛ, ДОО; данные
окружающей среды: комнатная t,
атмосферное p,
упругость водяного пара; личные данные:
вес, рост, возраст, пол.
Начало
Ввод
данных
Женский
Мужской
Ваш
пол?
Расчёт
показателей мужчин
Расчёт
показателей женщин
Расчёт
остальных показателей
Расчётные
данные: ЛО(BTPS),
ЛО(STPD),
ДМПО2, ДМОД, МОД, МОД%, ДЖЕЛ, ЖЕЛ%, ДМВЛ,
МВЛ%, ПСДВ, Кр, ВЭ, КИО2, ПТ, МПО2%, АВ, ЭВ,
ДООЛ, ДФОЕ, ДОЕЛ.
к стр.3
Вывод
результатов
расчётов
Конец
Визуальный вид программы
Код программы
unit kurs;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, GIFImg, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons,
Vcl.Imaging.pngimage, Vcl.ExtCtrls, Vcl.Samples.Spin;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
SpinEdit6: TSpinEdit;
SpinEdit9: TSpinEdit;
SpinEdit10: TSpinEdit;
SpinEdit11: TSpinEdit;
SpinEdit2: TSpinEdit;
SpinEdit1: TSpinEdit;
SpinEdit3: TSpinEdit;
SpinEdit4: TSpinEdit;
SpinEdit5: TSpinEdit;
SpinEdit7: TSpinEdit;
SpinEdit8: TSpinEdit;
SpinEdit12: TSpinEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
RadioGroup1: TRadioGroup;
Label15: TLabel;
SpinEdit13: TSpinEdit;
SpinEdit14: TSpinEdit;
Label16: TLabel;
Label17: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Edit11: TEdit;
Edit12: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Edit15: TEdit;
Edit16: TEdit;
Edit17: TEdit;
Edit18: TEdit;
Edit19: TEdit;
Edit20: TEdit;
Edit21: TEdit;
Label18: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
BOK: TButton;
BQuit: TButton;
procedure FormCreate(Sender: TObject);
procedure BOKClick(Sender: TObject);
procedure BQuitClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
GIF: TGIFImage;
implementation
{$R *.dfm}
procedure TForm1.BOKClick(Sender: TObject); //Расчёт показателей дыхательной системы
var LO_atps,ChD,D_O,MPO2,JEL,OFV1,MVL,DOO,T,P,e,W,H,Y:real; //начальные данные
LO_btps,LO_stpd,DMPO2,DMOD,M_OD,M_OD_p,DJEL,JEL_p,DMVL,MVL_p,PSDV,Kr,VE,KIO2,PT,MPO2p,AV,EV,DOOL,DFOE,DOEL:real; //конечные данные
begin
//Ввод данных
LO_atps:=SpinEdit1.Value;
ChD:=SpinEdit2.Value;
D_O:=SpinEdit3.Value;
MPO2:=SpinEdit4.Value;
JEL:=SpinEdit5.Value;
OFV1:=SpinEdit6.Value;
MVL:=SpinEdit7.Value;
DOO:=SpinEdit8.Value;
T:=SpinEdit9.Value;
P:=SpinEdit10.Value;
e:=SpinEdit11.Value;
W:=SpinEdit12.Value;
H:=SpinEdit13.Value;
H:=H/100;
Y:=SpinEdit14.Value;
//
//Расчёт показателей, связанных с полом
case RadioGroup1.ItemIndex of
0: //Мужской пол
begin
DJEL:=0.0026*DOO;
if Y>=50 then DMVL:=(25/2)*DJEL else DMVL:=25*DJEL;
AV:=(D_O-0.15)*ChD;
DOOL:=(1.98*H)+(0.022*Y)-(0.015*W);
DFOE:=(5.3*H)+(0.015*W)-3.42;
DOEL:=(6.92*H)+(0.017*W)-4.3;
end;
1: //Женский пол
begin
DJEL:=0.0023*DOO;
if Y>=50 then DMVL:=(26/2)*DJEL else DMVL:=26*DJEL;
AV:=(D_O-0.14)*ChD;
DOOL:=(2.68*H)+(0.007*Y)-3.42;
DFOE:=(5.13*H)+(0.028*W)-3.5;
DOEL:=(6.71*H)+(0.015*W)-5.77;
end;
end;
//
//Прочие расчёты
LO_btps:=LO_atps*((273+37)/(273+T))*((P-e)/(P-47));
LO_stpd:=LO_atps*((P-e)/(760*(1+(T/273))));
DMPO2:=DOO/7.07;
DMOD:=DMPO2/40;
M_OD:=D_O*ChD;
M_OD_p:=(M_OD/DMOD)*100;
JEL_p:=(JEL/DJEL)*100;
MVL_p:=(MVL/DMVL)*100;
PSDV:= MVL/JEL;
Kr:=MVL/M_OD;
VE:=MPO2/0.1;
KIO2:=(MPO2/M_OD)*100;
PT:=(OFV1/JEL)*100;
MPO2p:=(MPO2/DMPO2)*100;
EV:=(AV/M_OD)*100;
//
//Преобразование конечных данных из чисел в строки и их вывод на экран
Edit1.Text:=FloatToStr(LO_btps);
Edit2.Text:=FloatToStr(LO_stpd);
Edit3.Text:=FloatToStr(DMPO2);
Edit4.Text:=FloatToStr(DMOD);
Edit5.Text:=FloatToStr(M_OD);
Edit6.Text:=FloatToStr(M_OD_p);
Edit7.Text:=FloatToStr(DJEL);
Edit8.Text:=FloatToStr(JEL_p);
Edit9.Text:=FloatToStr(DMVL);
Edit10.Text:=FloatToStr(MVL_p);
Edit11.Text:=FloatToStr(PSDV);
Edit12.Text:=FloatToStr(Kr);
Edit13.Text:=FloatToStr(VE);
Edit14.Text:=FloatToStr(KIO2);
Edit15.Text:=FloatToStr(PT);
Edit16.Text:=FloatToStr(MPO2p);
Edit17.Text:=FloatToStr(AV);
Edit18.Text:=FloatToStr(EV);
Edit19.Text:=FloatToStr(DOOL);
Edit20.Text:=FloatToStr(DFOE);
Edit21.Text:=FloatToStr(DOEL);
//
end;
procedure TForm1.BQuitClick(Sender: TObject); //Закрытие программы
begin
close;
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
//Вставка изображения формата gif
GIF:=TGIFImage.Create;
GIF.LoadFromFile('orig.gif');
GIF.Animate := True;
Image2.Picture.Assign(GIF);
//
end;
end.
Тестовое решение через программу
Ввод:
Пол: Женский
Рост: 2
Возраст: 50
Вес: 70
Вывод:
ДООЛ=2,29
ДФОЕ=8,72
ДОЕЛ=8,7
Программа выдала правильный результат
Вывод
Созданная мною программа работает по описанному алгоритму и выдаёт точные и правильные результаты вычислений некоторых показателей, используемых в пульмонологии. Программа легка в использовании, не требует особого сложного обучения и имеет минимальную информативную базу для новичков, следовательно, она легко интегрируема в рабочую среду медицинских работников.