Добавил:
Если вдруг захотите отблагодарить: 5536 9140 5139 8893 :) Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

инфа_курсовая_пульмонология

.docx
Скачиваний:
8
Добавлен:
02.02.2022
Размер:
1.35 Mб
Скачать

Министерство образования и науки РФ

Федеральное государственное автономное образовательное учреждение высшего образования «Санкт-Петербургский государственный электротехнический университет «ЛЭТИ» им. Ульянова (Ленина)

(СПбГЭТУ «ЛЭТИ»)

Кафедра

по дисциплине

Тема: «Программа для расчёта некоторых показателей, используемых в пульмонологии»

Студентка гр.

9502

Позняк В. Ю.

Преподаватель:

Бельтюков М.В.

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

2022 г.

Введение

Цель

Создание программы для расчёта некоторых показателей, используемых в пульмонологии.

Проблема

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

Решение

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

Алгоритм

  1. Пользователь вводит все необходимые данные в соответствующие поля: ЛО(ATPS), ЧД, ДО, МПО2, ЖЕЛ, ОФВ1, МВЛ, ДОО в «Данные анализа»; комнатную t, атмосферное p, упругость водяного пара в «Данные окружающей среды»; вес, рост, возраст и пол в «Личные данные». При возникновении трудностей с идентификацией показателя, пользователь может обратиться к информационному окну с дополнительной информацией о данном показателе, наведя курсор на него. По окончанию ввода пользователь нажимает кнопку «Рассчитать».

  2. Программа заносит в переменные все введённые данные и рассчитывает показатели по точным медицинским формулам.

  3. Рассчитанные показатели программа выводит в соответствующее поле «Расчётные показатели»: ЛО(BTPS), ЛО(STPD), ДМПО2, ДМОД, МОД, МОД%, ДЖЕЛ, ЖЕЛ%, ДМВЛ, МВЛ%, ПСДВ, Кр, ВЭ, КИО2, ПТ, МПО2%, АВ, ЭВ, ДООЛ, ДФОЕ, ДОЕЛ. При возникновении трудностей с идентификацией показателя, пользователь может обратиться к информационному окну с дополнительной информацией о данном показателе, наведя курсор на него.

  4. По завершении работы с программой пользователь осуществляет выход из неё нажатием на соответствующую кнопку.

Данные анализа: ЛО(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

Программа выдала правильный результат

Вывод

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

Соседние файлы в предмете Информатика