Список использованных источников. 1 Назаренко Г.И., Гулиев Я.И., Ермаков Д.Е

1 Назаренко Г.И., Гулиев Я.И., Ермаков Д.Е. Медицинские информационные системы: теория и практика. / Под. ред. Г.И. Назаренко, Г.С. Осипова. – Москва: Физматлит, 2005, – 320 с.

2 Рэнд Моримото, Кентон Гардиньер, Майкл Ноэл, Джо Кока. Microsoft Exchange Server 2003. Полное руководство = Microsoft Exchange Server 2003 Unleashed. - М.:«Вильямс», 2006. -С. 1024. - ISBN 0-672-32581-0.

3 Сайт http://www.mgkb5oren.ru/ Сайт Государственного бюджетного учреждения здравоохранения «Городская клиническая больница № 5» города Оренбурга.

4 Эльянов М. М. Медицинские информационные технологии. Каталог. Вып. 5. – Москва: Третья медицина, 2005, – 320 с.

5 Зорин А.В., Шакула А.В., Бадретдинов Р.Р. Система оценки эффективности восстановительных мероприятий и автоматизации работы лечебно-профилактического учреждения. / Вестник восстановительной медицины №4 (14). – Москва, 2005.

6 Сайт http://www.minzdrav.orb.ru/ Сайт Министерства здравоохранения Оренбургской области

7 Боэм Б.У. Инженерное проектирование программного обеспечения. – Москва: Радио и связь, 1985. – 512.

8 Фундаментальные исследования : ежемес. журн. / учредитель Академия Естествознания, 2003, Москва, ISSN 1812-7339. 2015, №1(810).

9 Фундаментальные исследования : ежемес. журн. / учредитель Академия Естествознания, 2003, Москва, ISSN 1812-7339. 2013, №7(589).

10 Кардио-ИТ: ежемес. журн. / учредитель ООО «Наука и Инновации», 2000, Саратов, ISSN 2313-0318. 2014, №2.

11 Виейра, Р. Программирование баз данных MySQL Server 2005. Базовый курс. : Пер. с англ. – Москва: ООО «И.Д. Вильямс», 2007. – 832с. : – Парал. тит. англ. ISBN 978-5-8459-1202-2 (рус.)

12 Режеуцкая С.Ю. Базы данных. Язык SQL: учеб. Пособие / С.Ю. Режеуцкая. – Вологда: ВоГТУ, 2010. – 159 с.

13 Сорокин А.В. Delphi. Разработка баз данных. – Санкт-Петербург : Питер, 2005. – 477 с.

14 Врач и информационные технологии: ежемес. журн. / учредитель «Менеджер здравоохранения», 2000, Москва, 2009, №6 (4).

15 Кузнецов П. П. Основные направления развития информатизации Российского здравоохранения: [Электронный ресурс] / П. П.Кузнецов. Режим доступа: http://www.worldbank.org.ru. – 15.09.2014.

16 Эльянов М. М. Медицинские информационные технологии. Каталог. Вып. 3. / М. М. Эльянов. Москва : Третья медицина, 2002. – 320 с.

17 Эльянов М. М. Медицинские информационные технологии: цивилизованный рынок или «зоопарк» / М. М. Эльянов // Информационные технологии в медицине-2002: Сборник тезисов. Москва : ВК ВВЦ «Наука и образование», 2002. С. 54 – 58.

18 Рот Г. З. Проблемы организации и перспективы внедрения компьютерных технологий в многопрофильной больнице / Г. З. Рот, В. Н. Денисов, Е. И. Шульман. // Бюллетень СО РАМН. 1998. №1. С.134 – 140.

19 Назаренко Г.И., Гулиев Я.И., Ермаков Д.Е. Медицинские информационные системы: теория и практика. Под редакцией Г. И. Назаренко, Г. С. Осипова. Москва: ФИЗМАТЛИТ, 2005. – 320 с.

20 Кобринский Б.А., Зарубина Т.В. Медицинская информатика: Учебник. Москва : изд. "Академия", 2009. – 192 с.

21 Карась С.И. Информационные основы принятия решений в медицине: Учебное пособие. – Томск: Печатная мануфактура, 2003. – 145с.

22 Медицинская информатика: учебное пособие / Чернов В.И. [и др]. – Воронеж, 2004. – 282с.:

23 Гельман В.Я. Медицинская информатика: практикум. – Санкт-Петербург: Питер, 2001. – 480с.

24 Рот Г.3. Медицинские информационные системы : учеб. пособие / Г.3. Рот, М.И. Фихман, Е.И. Шульман. – Новосибирск: Изд-во НГТУ, 2005. – 70 с.

25 Крис Фиайли. SQL: Руководство по изучению языка. - М.: Peachpit Press, 2003. – 456 с.

26 Дюк В., Эммануэль В. Информационные технологии в медико-биологических исследованиях. Санкт-Петербург: Питер, 2003. – 528 с.

27 Голицына О.Л., Максимов Н.В., Попов И.И. Базы данных: учеб. Пособие. – Москва: «Форум»: ИНФРА-М, 2007. – 400 с.

28 Информационные системы 3-е издание / Ю. Избачков [и др.]. – Санкт-Петербург : Питер, 2010. – 544 с.

29 Гнеденко В.Г., Иоселиани Д.Г., Файнберг Е.М. и др. “Аппаратно-программный комплекс для диагностики, мониторирования и лечения сердечно-сосудистых заболеваний ДИМОЛ”, технический проект, РНЦ “Курчатовский институт”, 1994.

30 Гнеденко В.Г., Иоселиани Д.Г., Файнберг Е.М. и др. “Разработка автоматизированных рабочих мест врача-ангиографиста для НПЦ “Интервенционной кардиоангиологии”, технический проект, РНЦ “Курчатовский институт”, 1999.

31 В.А. Востриков (1995) “Отчет по оценке медико-технических характеристик дефибриллятора - монитора ДКИ-Н-04М”, НИИ общей реаниматологии РАМН.

Приложение А

(обязательное)

Листинг программы «Главное окно программы»

unit Main;

interface

uses

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

Dialogs, DBGridEhGrouping, Menus, GridsEh, DBGridEh, RzButton, ImgList,

ExtCtrls, RzPanel, RzTabs, DB, ADODB, SysUtilites, shellapi;

type

TfmMain = class(TForm)

ADOConnection1: TADOConnection;

ImageList1: TImageList;

RzPanel1: TRzPanel;

RzPageControl1: TRzPageControl;

TabSheet1: TRzTabSheet;

DBGridEh1: TDBGridEh;

RzToolbar2: TRzToolbar;

BtnInsertRecord: TRzToolButton;

BtnEdit: TRzToolButton;

BtnDelete: TRzToolButton;

TabSheet2: TRzTabSheet;

TabSheet3: TRzTabSheet;

mm1: TMainMenu;

N1: TMenuItem;

N3: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N2: TMenuItem;

N5: TMenuItem;

N4: TMenuItem;

RzToolbar1: TRzToolbar;

RzToolButton1: TRzToolButton;

RzToolButton2: TRzToolButton;

RzToolButton3: TRzToolButton;

DBGridEh2: TDBGridEh;

RzToolbar3: TRzToolbar;

RzToolButton4: TRzToolButton;

RzToolButton5: TRzToolButton;

RzToolButton6: TRzToolButton;

DBGridEh3: TDBGridEh;

DataSource1: TDataSource;

qPatients: TADOQuery;

qMarkers: TADOQuery;

DataSource2: TDataSource;

DataSource3: TDataSource;

qDisease: TADOQuery;

qDiseaseID: TAutoIncField;

qDiseaseNAME: TStringField;

qDiseaseDESCRIPTION: TStringField;

qDiseaseSYMPTOM: TStringField;

qDiseaseTYPE: TSmallintField;

qMarkersID: TAutoIncField;

qMarkersNAME: TStringField;

qMarkersDESCRIPTION: TStringField;

qMarkersNORMAL_VALUE: TBCDField;

qPatientsNAME: TStringField;

qPatientsNORMAL_VALUE: TBCDField;

qPatientsID: TAutoIncField;

qPatientsFIO: TStringField;

qPatientsPOL: TStringField;

qPatientsDATE_OF_BIRTH: TDateTimeField;

qPatientsDATE_OF_SURVEY: TDateTimeField;

qPatientsSMOKES: TStringField;

qPatientsEXPECTANT: TStringField;

qPatientsRESULT: TBCDField;

qPatientsRESULT_S: TStringField;

qPatientsMRT: TStringField;

qPatientsUZI: TStringField;

qPatientsRADIOGRAPHY: TStringField;

qPatientsDISEASE_NAME: TStringField;

procedure N3Click(Sender: TObject);

procedure RzToolButton1Click(Sender: TObject);

procedure RzToolButton2Click(Sender: TObject);

procedure RzToolButton4Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure RzToolButton5Click(Sender: TObject);

procedure RzToolButton3Click(Sender: TObject);

procedure qMarkersAfterOpen(DataSet: TDataSet);

procedure RzToolButton6Click(Sender: TObject);

procedure BtnInsertRecordClick(Sender: TObject);

procedure BtnDeleteClick(Sender: TObject);

procedure BtnEditClick(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure N5Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

procedure RefreshData;

end;

var

fmMain: TfmMain;

implementation

uses AddMarker, AddDisease, AddPatients, About;

{$R *.dfm}

procedure TfmMain.RefreshData;

begin

if qPatients.Active then

qPatients.Close;

qPatients.Open;

if qMarkers.Active then

qMarkers.Close;

qMarkers.Open;

if qDisease.Active then

qDisease.Close;

qDisease.Open;

end;

procedure TfmMain.N3Click(Sender: TObject);

begin

Close;

end;

procedure TfmMain.RzToolButton1Click(Sender: TObject);

begin

if fmAddMarker=nil then

Application.CreateForm(TfmAddMarker,fmAddMarker);

fmAddMarker.MODE:=wmAdd;

fmAddMarker.ShowModal;

end;

procedure TfmMain.RzToolButton2Click(Sender: TObject);

begin

if fmAddMarker=nil then

Application.CreateForm(TfmAddMarker,fmAddMarker);

fmAddMarker.MODE:=wmEdit;

fmAddMarker.MARKER_ID:=qMarkers.FieldByName('ID').AsInteger;

fmAddMarker.ShowModal;

end;

procedure TfmMain.RzToolButton4Click(Sender: TObject);

begin

if fmAddDisease=nil then

Application.CreateForm(TfmAddDisease,fmAddDisease);

fmAddDisease.MODE:=wmAdd;

fmAddDisease.ShowModal;

end;

procedure TfmMain.FormShow(Sender: TObject);

begin

RefreshData;

end;

procedure TfmMain.RzToolButton5Click(Sender: TObject);

begin

if fmAddDisease=nil then

Application.CreateForm(TfmAddDisease,fmAddDisease);

fmAddDisease.MODE:=wmEdit;

fmAddDisease.DISEASE_ID:=qDisease.FieldByName('ID').AsInteger;

fmAddDisease.ShowModal;

end;

procedure TfmMain.RzToolButton3Click(Sender: TObject);

var

Tb:TADOQuery;

begin

if MessageDlg('Вы действительно хотите удалить маркер?',mtConfirmation,[mbYes,mbNo], 0) = mrNo then

exit;

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :ID1;'+

'delete from markers where id = :ID2;';

Tb.Parameters[0].Value:=qMarkers.FieldByName('ID').AsInteger;

Tb.Parameters[1].Value:=qMarkers.FieldByName('ID').AsInteger;

Tb.ExecSQL;

finally

Tb.Free;

end;

RefreshData;

end;

procedure TfmMain.qMarkersAfterOpen(DataSet: TDataSet);

begin

RzToolButton2.Enabled:=not qMarkers.IsEmpty;

RzToolButton3.Enabled:=not qMarkers.IsEmpty;

end;

procedure TfmMain.RzToolButton6Click(Sender: TObject);

var

Tb:TADOQuery;

begin

if MessageDlg('Вы действительно хотите удалить болезнь?',mtConfirmation,[mbYes,mbNo], 0) = mrNo then

exit;

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='delete from oncological_diseases where disease_id = :ID1;'+

'delete from disease where id = :ID2;';

Tb.Parameters[0].Value:=qDisease.FieldByName('ID').AsInteger;

Tb.Parameters[1].Value:=qDisease.FieldByName('ID').AsInteger;

Tb.ExecSQL;

finally

Tb.Free;

end;

RefreshData;

end;

procedure TfmMain.BtnInsertRecordClick(Sender: TObject);

begin

if fmAddPatients = nil then

Application.CreateForm(TfmAddPatients,fmAddPatients);

fmAddPatients.MODE:=wmAdd;

fmAddPatients.ShowModal;

end;

procedure TfmMain.BtnDeleteClick(Sender: TObject);

var

Tb:TADOQuery;

begin

if MessageDlg('Вы действительно хотите удалить пациента?',mtConfirmation,[mbYes,mbNo], 0) = mrNo then

exit;

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='delete from patients where id = :ID';

Tb.Parameters[0].Value:=qPatients.FieldByName('ID').AsInteger;

Tb.ExecSQL;

finally

Tb.Free;

end;

RefreshData;

end;

procedure TfmMain.BtnEditClick(Sender: TObject);

begin

if fmAddPatients = nil then

Application.CreateForm(TfmAddPatients,fmAddPatients);

fmAddPatients.MODE:=wmEdit;

fmAddPatients.PATIENT_ID:=qPatients.FieldByName('ID').AsInteger;

fmAddPatients.ShowModal;

end;

procedure TfmMain.N4Click(Sender: TObject);

begin

if fmAbout = nil then

Application.CreateForm(TfmAbout, fmAbout);

fmAbout.ShowModal;

end;

procedure TfmMain.N5Click(Sender: TObject);

begin

ShellExecute(Handle, 'open', 'C:\Medical.chm',nil, nil, SW_SHOW);

end;

end.

Приложение Б

(обязательное)

Листинг программы «Окно добавления маркера»

unit AddMarker;

interface

uses

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

Dialogs, SysUtilites, StdCtrls, DBGridEhGrouping, RzButton, GridsEh,

DBGridEh, ImgList, ExtCtrls, RzPanel, DB, ADODB, Mask, DBCtrlsEh,

DBLookupEh;

type

TfmAddMarker = class(TForm)

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

Memo1: TMemo;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

Label3: TLabel;

Edit2: TEdit;

GroupBox3: TGroupBox;

Button1: TButton;

Button2: TButton;

RzToolbar1: TRzToolbar;

ImageList1: TImageList;

RzToolbar2: TRzToolbar;

DBGridEh2: TDBGridEh;

BtnInsertRecord: TRzToolButton;

BtnDeleteRecord: TRzToolButton;

BtnInsertRecord1: TRzToolButton;

BtnDeleteRecord1: TRzToolButton;

DBLookupComboboxEh1: TDBLookupComboboxEh;

DBLookupComboboxEh2: TDBLookupComboboxEh;

ADOQuery1: TADOQuery;

ADOQuery2: TADOQuery;

DataSource1: TDataSource;

DataSource2: TDataSource;

DataSource3: TDataSource;

ADOQuery3: TADOQuery;

ADOQuery4: TADOQuery;

DataSource4: TDataSource;

DBGridEh1: TDBGridEh;

ADOQuery1ID: TAutoIncField;

ADOQuery1NAME: TStringField;

ADOQuery1DESCRIPTION: TStringField;

ADOQuery1SYMPTOM: TStringField;

ADOQuery1TYPE: TSmallintField;

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormDestroy(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Edit2KeyPress(Sender: TObject; var Key: Char);

procedure RefreshDisease;

procedure BtnInsertRecordClick(Sender: TObject);

procedure BtnInsertRecord1Click(Sender: TObject);

procedure BtnDeleteRecordClick(Sender: TObject);

procedure BtnDeleteRecord1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

MODE:TWorkMode;

MARKER_ID:integer;

end;

var

fmAddMarker: TfmAddMarker;

implementation

uses Main;

{$R *.dfm}

procedure TfmAddMarker.Button2Click(Sender: TObject);

begin

Close;

end;

procedure TfmAddMarker.FormClose(Sender: TObject;

var Action: TCloseAction);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='delete from oncological_diseases where marder_id = 0';

Tb.ExecSQL;

finally

Tb.Free;

end;

Action:=caFree;

end;

procedure TfmAddMarker.FormDestroy(Sender: TObject);

begin

fmAddMarker:=nil;

end;

procedure TfmAddMarker.FormShow(Sender: TObject);

var

Tb:TADOQuery;

begin

ADOQuery1.Open;

ADOQuery2.Open;

RefreshDisease;

if MODE=wmAdd then

begin

fmAddMarker.Caption:='Добавление маркера';

end else

begin

fmAddMarker.Caption:='Изменение маркера';

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='select * from markers where id = :id';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Open;

if not Tb.IsEmpty then begin

Edit1.Text:=Tb.FieldByName('NAME').AsString;

Memo1.Lines.Text:=Tb.FieldByName('DESCRIPTION').AsString;

Edit2.Text:=Tb.FieldByName('NORMAL_VALUE').AsString;

end;

Tb.Close;

finally

Tb.Free;

end;

end;

end;

procedure TfmAddMarker.RefreshDisease;

begin

if ADOQuery3.Active then

ADOQuery3.Close;

if ADOQuery4.Active then

ADOQuery4.Close;

if MODE=wmAdd then

begin

ADOQuery3.SQL.Text:='SELECT '+

'disease.ID, '+

'disease.NAME '+

'FROM dbo.oncological_diseases '+

'INNER JOIN dbo.disease '+

'ON oncological_diseases.disease_id = disease.ID where oncological_diseases.marder_id = 0 and disease.type = 0';

ADOQuery3.Open;

ADOQuery4.SQL.Text:='SELECT '+

'disease.ID, '+

'disease.NAME '+

'FROM dbo.oncological_diseases '+

'INNER JOIN dbo.disease '+

'ON oncological_diseases.disease_id = disease.ID where oncological_diseases.marder_id = 0 and disease.type = 1';

ADOQuery4.Open;

end else

begin

ADOQuery3.SQL.Text:='SELECT '+

'disease.ID, '+

'disease.NAME '+

'FROM dbo.oncological_diseases '+

'INNER JOIN dbo.disease '+

'ON oncological_diseases.disease_id = disease.ID where oncological_diseases.marder_id = :ID and disease.type = 0';

ADOQuery3.Parameters[0].Value:=MARKER_ID;

ADOQuery3.Open;

ADOQuery4.SQL.Text:='SELECT '+

'disease.ID, '+

'disease.NAME '+

'FROM dbo.oncological_diseases '+

'INNER JOIN dbo.disease '+

'ON oncological_diseases.disease_id = disease.ID where oncological_diseases.marder_id = :ID and disease.type = 1';

ADOQuery4.Parameters[0].Value:=MARKER_ID;

ADOQuery4.Open;

end;

end;

procedure TfmAddMarker.Button1Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='insert into markers(NAME,DESCRIPTION,NORMAL_VALUE) values(:NAME,:DESCRIPTION,:NORMAL_VALUE);'+

'select Max(ID) from markers;';

Tb.Parameters[0].Value:=Trim(Edit1.Text);

Tb.Parameters[1].Value:=Trim(Memo1.Lines.Text);

try

Tb.Parameters[2].Value:=StrToFloat(Edit2.Text);

except

Tb.Parameters[2].Value:=0;

end;

Tb.Open;

if not Tb.IsEmpty then

MARKER_ID:=Tb.Fields[0].AsInteger;

Tb.Close;

Tb.SQL.Text:='update oncological_diseases set marder_id = :marder_id where marder_id = 0';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.ExecSQL;

end else

begin

///Edit

end;

finally

Tb.Free;

end;

fmMain.RefreshData;

Close;

end;

procedure TfmAddMarker.Edit2KeyPress(Sender: TObject; var Key: Char);

begin

if not (Key in ['0'..'9', #8, DecimalSeparator])then Key:=#0;

end;

procedure TfmAddMarker.BtnInsertRecordClick(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='insert into oncological_diseases(marder_id,disease_id) values(:marder_id,:disease_id)';

Tb.Parameters[0].Value:=0;

Tb.Parameters[1].Value:=DBLookupComboboxEh1.KeyValue;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='insert into oncological_diseases(marder_id,disease_id) values(:marder_id,:disease_id)';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Parameters[1].Value:=DBLookupComboboxEh1.KeyValue;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

RefreshDisease;

end;

procedure TfmAddMarker.BtnInsertRecord1Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='insert into oncological_diseases(marder_id,disease_id) values(:marder_id,:disease_id)';

Tb.Parameters[0].Value:=0;

Tb.Parameters[1].Value:=DBLookupComboboxEh2.KeyValue;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='insert into oncological_diseases(marder_id,disease_id) values(:marder_id,:disease_id)';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Parameters[1].Value:=DBLookupComboboxEh2.KeyValue;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

RefreshDisease;

end;

procedure TfmAddMarker.BtnDeleteRecordClick(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :marder_id and disease_id = :disease_id';

Tb.Parameters[0].Value:=0;

Tb.Parameters[1].Value:=ADOQuery3.FieldByName('ID').AsInteger;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :marder_id and disease_id = :disease_id';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Parameters[1].Value:=ADOQuery3.FieldByName('ID').AsInteger;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

RefreshDisease;

end;

procedure TfmAddMarker.BtnDeleteRecord1Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :marder_id and disease_id = :disease_id';

Tb.Parameters[0].Value:=0;

Tb.Parameters[1].Value:=ADOQuery4.FieldByName('ID').AsInteger;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='delete from oncological_diseases where marder_id = :marder_id and disease_id = :disease_id';

Tb.Parameters[0].Value:=MARKER_ID;

Tb.Parameters[1].Value:=ADOQuery4.FieldByName('ID').AsInteger;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

RefreshDisease;

end;

end.

Приложение В

(обязательное)

Листинг программы «Окно добавление болезни»

unit AddDisease;

interface

uses

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

Dialogs, StdCtrls, DB, ADODB, SysUtilites;

type

TfmAddDisease = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Memo1: TMemo;

Label3: TLabel;

Memo2: TMemo;

Label4: TLabel;

ComboBox1: TComboBox;

Button1: TButton;

Button2: TButton;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormDestroy(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

MODE:TWorkMode;

DISEASE_ID:integer;

end;

var

fmAddDisease: TfmAddDisease;

implementation

uses Main;

{$R *.dfm}

procedure TfmAddDisease.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TfmAddDisease.FormDestroy(Sender: TObject);

begin

fmAddDisease:=nil;

end;

procedure TfmAddDisease.Button1Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE = wmAdd then

begin

Tb.SQL.Text:='insert into disease(NAME,DESCRIPTION,SYMPTOM,TYPE) values(:NAME,:DESCRIPTION,:SYMPTOM,:TYPE)';

Tb.Parameters[0].Value:=Trim(Edit1.Text);

Tb.Parameters[1].Value:=Trim(Memo1.Lines.Text);

Tb.Parameters[2].Value:=Trim(Memo2.Lines.Text);

Tb.Parameters[3].Value:=ComboBox1.ItemIndex;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='update disease set NAME=:NAME, DESCRIPTION=:DESCRIPTION, SYMPTOM=:SYMPTOM, TYPE=:TYPE where id = :id;';

Tb.Parameters[0].Value:=Trim(Edit1.Text);

Tb.Parameters[1].Value:=Trim(Memo1.Lines.Text);

Tb.Parameters[2].Value:=Trim(Memo2.Lines.Text);

Tb.Parameters[3].Value:=ComboBox1.ItemIndex;

Tb.Parameters[4].Value:=DISEASE_ID;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

fmMain.RefreshData;

Close;

end;

procedure TfmAddDisease.FormShow(Sender: TObject);

var

Tb:TADOQuery;

begin

if MODE = wmAdd then

begin

fmAddDisease.Caption:='Добавить болезнь';

end else

begin

fmAddDisease.Caption:='Изменить болезнь';

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='select * from disease where id = :id';

Tb.Parameters[0].Value:=DISEASE_ID;

Tb.Open;

if not Tb.IsEmpty then

begin

Edit1.Text:=Tb.FieldByName('NAME').AsString;

Memo1.Lines.Text:=Tb.FieldByName('DESCRIPTION').AsString;

Memo2.Lines.Text:=Tb.FieldByName('SYMPTOM').AsString;

Combobox1.ItemIndex:=Tb.FieldByName('TYPE').AsInteger;

end;

Tb.Close;

finally

Tb.Free;

end;

end;

end;

procedure TfmAddDisease.Button2Click(Sender: TObject);

begin

Close;

end;

end.

Приложение Г

(обязательное)

Листинг программы «Окно добавления пациента»

unit AddPatients;

interface

uses

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

Dialogs, SysUtilites, DBGridEh, StdCtrls, ExtCtrls, ComCtrls, Mask,

DBCtrlsEh, DBLookupEh, DB, ADODB;

type

TfmAddPatients = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

GroupBox1: TGroupBox;

CheckBox1: TCheckBox;

CheckBox2: TCheckBox;

CheckBox3: TCheckBox;

DBLookupComboboxEh1: TDBLookupComboboxEh;

Label7: TLabel;

Edit1: TEdit;

ComboBox1: TComboBox;

DateTimePicker1: TDateTimePicker;

ComboBox2: TComboBox;

DateTimePicker2: TDateTimePicker;

ComboBox3: TComboBox;

Label8: TLabel;

DBLookupComboboxEh2: TDBLookupComboboxEh;

Label9: TLabel;

Edit2: TEdit;

Bevel1: TBevel;

Button1: TButton;

Button2: TButton;

ADOQuery1: TADOQuery;

ADOQuery2: TADOQuery;

DataSource1: TDataSource;

DataSource2: TDataSource;

ADOQuery2ID: TAutoIncField;

ADOQuery2NAME: TStringField;

ADOQuery2DESCRIPTION: TStringField;

ADOQuery2NORMAL_VALUE: TBCDField;

ADOQuery1ID: TAutoIncField;

ADOQuery1NAME: TStringField;

ADOQuery1DESCRIPTION: TStringField;

ADOQuery1SYMPTOM: TStringField;

ADOQuery1TYPE: TSmallintField;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormDestroy(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure FormShow(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

MODE:TWorkMode;

PATIENT_ID:integer;

end;

var

fmAddPatients: TfmAddPatients;

implementation

uses Main;

{$R *.dfm}

procedure TfmAddPatients.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TfmAddPatients.FormDestroy(Sender: TObject);

begin

fmAddPatients:=nil;

end;

procedure TfmAddPatients.Button1Click(Sender: TObject);

begin

Close;

end;

procedure TfmAddPatients.Button2Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE=wmAdd then

begin

Tb.SQL.Text:='insert into patients(FIO,POL,DATE_OF_BIRTH,DATE_OF_SURVEY,PRELIMINARY_DIAGNOSIS,SMOKES,EXPECTANT,MARKER,RESULT,MRT,UZI,RADIOGRAPHY) '+

'values(:FIO,:POL,:DATE_OF_BIRTH,:DATE_OF_SURVEY,:PRELIMINARY_DIAGNOSIS,:SMOKES,:EXPECTANT,:MARKER,:RESULT,:MRT,:UZI,:RADIOGRAPHY)';

Tb.Parameters[0].Value:=Edit1.Text;

Tb.Parameters[1].Value:=ComboBox1.ItemIndex;

Tb.Parameters[2].Value:=DateTimePicker1.Date;

Tb.Parameters[3].Value:=DateTimePicker2.Date;

Tb.Parameters[4].Value:=DBLookupComboboxEh1.KeyValue;

Tb.Parameters[5].Value:=ComboBox2.ItemIndex;

Tb.Parameters[6].Value:=ComboBox3.ItemIndex;

Tb.Parameters[7].Value:=DBLookupComboboxEh2.KeyValue;

Tb.Parameters[8].Value:=Edit2.Text;

if not CheckBox1.Checked then

Tb.Parameters[9].Value:=0

else

Tb.Parameters[9].Value:=1;

if not CheckBox2.Checked then

Tb.Parameters[10].Value:=0

else

Tb.Parameters[10].Value:=1;

if not CheckBox3.Checked then

Tb.Parameters[11].Value:=0

else

Tb.Parameters[11].Value:=1;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='update patients set FIO=:FIO,POL=:POL,DATE_OF_BIRTH=:DATE_OF_BIRTH,DATE_OF_SURVEY=:DATE_OF_SURVEY,PRELIMINARY_DIAGNOSIS=:PRELIMINARY_DIAGNOSIS,'+

'SMOKES=:SMOKES,EXPECTANT=:EXPECTANT,MARKER=:MARKER,RESULT=:RESULT,MRT=:MRT,UZI=:UZI,RADIOGRAPHY=:RADIOGRAPHY where ID = :ID';

Tb.Parameters[0].Value:=Edit1.Text;

Tb.Parameters[1].Value:=ComboBox1.ItemIndex;

Tb.Parameters[2].Value:=DateTimePicker1.Date;

Tb.Parameters[3].Value:=DateTimePicker2.Date;

Tb.Parameters[4].Value:=DBLookupComboboxEh1.KeyValue;

Tb.Parameters[5].Value:=ComboBox2.ItemIndex;

Tb.Parameters[6].Value:=ComboBox3.ItemIndex;

Tb.Parameters[7].Value:=DBLookupComboboxEh2.KeyValue;

Tb.Parameters[8].Value:=Edit2.Text;

if not CheckBox1.Checked then

Tb.Parameters[9].Value:=0

else

Tb.Parameters[9].Value:=1;

if not CheckBox2.Checked then

Tb.Parameters[10].Value:=0

else

Tb.Parameters[10].Value:=1;

if not CheckBox3.Checked then

Tb.Parameters[11].Value:=0

else

Tb.Parameters[11].Value:=1;

Tb.Parameters[12].Value:=PATIENT_ID;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

fmMain.RefreshData;

Close;

end;

procedure TfmAddPatients.FormShow(Sender: TObject);

var

Tb:TADOQuery;

begin

ADOQuery1.Open;

ADOQuery2.Open;

if MODE=wmAdd then

begin

fmAddPatients.Caption:= 'Добавление данных о пациенте';

end else

begin

fmAddPatients.Caption:='Изменение данных о пациенте';

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='select * from patients where id = :id';

Tb.Parameters[0].Value:=PATIENT_ID;

Tb.Open;

if not Tb.IsEmpty then begin

Edit1.Text:=Tb.FieldByName('FIO').AsString;

ComboBox1.ItemIndex:=Tb.FieldByName('POL').AsInteger;

DateTimePicker1.Date:=Tb.FieldByName('DATE_OF_BIRTH').AsDateTime;

DateTimePicker2.Date:=Tb.FieldByName('DATE_OF_SURVEY').AsDateTime;

DBLookupComboboxEh1.KeyValue:=Tb.FieldByName('PRELIMINARY_DIAGNOSIS').AsInteger;

ComboBox2.ItemIndex:=Tb.FieldByName('SMOKES').AsInteger;

ComboBox3.ItemIndex:=Tb.FieldByName('EXPECTANT').AsInteger;

DBLookupComboboxEh2.KeyValue:=Tb.FieldByName('MARKER').AsInteger;

Edit2.Text:=Tb.FieldByName('RESULT').AsString;

if Tb.FieldByName('MRT').AsInteger=1 then

CheckBox1.Checked:=true

else

CheckBox1.Checked :=false;

if Tb.FieldByName('UZI').AsInteger=1 then

CheckBox2.Checked:=true

else

CheckBox2.Checked :=false;

if Tb.FieldByName('RADIOGRAPHY').AsInteger=1 then

CheckBox3.Checked:=true

else

CheckBox3.Checked :=false;

end;

Tb.Close;

finally

Tb.Free;

end;

end;

end;

end.

Приложение Д

(обязательное)

Листинг программы «Окно добавление болезни»

unit AddDisease;

interface

uses

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

Dialogs, StdCtrls, DB, ADODB, SysUtilites;

type

TfmAddDisease = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Memo1: TMemo;

Label3: TLabel;

Memo2: TMemo;

Label4: TLabel;

ComboBox1: TComboBox;

Button1: TButton;

Button2: TButton;

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormDestroy(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

MODE:TWorkMode;

DISEASE_ID:integer;

end;

var

fmAddDisease: TfmAddDisease;

implementation

uses Main;

{$R *.dfm}

procedure TfmAddDisease.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TfmAddDisease.FormDestroy(Sender: TObject);

begin

fmAddDisease:=nil;

end;

procedure TfmAddDisease.Button1Click(Sender: TObject);

var

Tb:TADOQuery;

begin

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

if MODE = wmAdd then

begin

Tb.SQL.Text:='insert into disease(NAME,DESCRIPTION,SYMPTOM,TYPE) values(:NAME,:DESCRIPTION,:SYMPTOM,:TYPE)';

Tb.Parameters[0].Value:=Trim(Edit1.Text);

Tb.Parameters[1].Value:=Trim(Memo1.Lines.Text);

Tb.Parameters[2].Value:=Trim(Memo2.Lines.Text);

Tb.Parameters[3].Value:=ComboBox1.ItemIndex;

Tb.ExecSQL;

end else

begin

Tb.SQL.Text:='update disease set NAME=:NAME, DESCRIPTION=:DESCRIPTION, SYMPTOM=:SYMPTOM, TYPE=:TYPE where id = :id;';

Tb.Parameters[0].Value:=Trim(Edit1.Text);

Tb.Parameters[1].Value:=Trim(Memo1.Lines.Text);

Tb.Parameters[2].Value:=Trim(Memo2.Lines.Text);

Tb.Parameters[3].Value:=ComboBox1.ItemIndex;

Tb.Parameters[4].Value:=DISEASE_ID;

Tb.ExecSQL;

end;

finally

Tb.Free;

end;

fmMain.RefreshData;

Close;

end;

procedure TfmAddDisease.FormShow(Sender: TObject);

var

Tb:TADOQuery;

begin

if MODE = wmAdd then

begin

fmAddDisease.Caption:='Добавить болезнь';

end else

begin

fmAddDisease.Caption:='Изменить болезнь';

Tb:=TADOQuery.Create(nil);

Tb.Connection:=fmMain.ADOConnection1;

try

Tb.SQL.Text:='select * from disease where id = :id';

Tb.Parameters[0].Value:=DISEASE_ID;

Tb.Open;

if not Tb.IsEmpty then

begin

Edit1.Text:=Tb.FieldByName('NAME').AsString;

Memo1.Lines.Text:=Tb.FieldByName('DESCRIPTION').AsString;

Memo2.Lines.Text:=Tb.FieldByName('SYMPTOM').AsString;

Combobox1.ItemIndex:=Tb.FieldByName('TYPE').AsInteger;

end;

Tb.Close;

finally

Tb.Free;

end;

end;

end;

procedure TfmAddDisease.Button2Click(Sender: TObject);

begin

Close;

end;

end.

Приложение Е

(обязательное)

Листинг программы «Окно о программе»

unit About;

interface

uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,

Buttons, ExtCtrls;

type

TfmAbout = class(TForm)

Panel1: TPanel;

ProgramIcon: TImage;

ProductName: TLabel;

Version: TLabel;

Copyright: TLabel;

Comments: TLabel;

OKButton: TButton;

procedure OKButtonClick(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormDestroy(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmAbout: TfmAbout;

implementation

{$R *.dfm}

procedure TfmAbout.OKButtonClick(Sender: TObject);

begin

Close;

end;

procedure TfmAbout.FormClose(Sender: TObject; var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TfmAbout.FormDestroy(Sender: TObject);

begin

fmAbout:=nil;

end;

end.

Приложение Ж

(обязательное)

Листинг программы «Окно сформировать отчет»

unit GenReport;

interface

uses

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

Dialogs, ComCtrls, StdCtrls, DB, ADODB, DateUtils, COMObj, frxClass,

frxADOComponents;

type

TfmGenReport = class(TForm)

Button1: TButton;

Button2: TButton;

Label1: TLabel;

DateTimePicker1: TDateTimePicker;

Label2: TLabel;

DateTimePicker2: TDateTimePicker;

frxReport1: TfrxReport;

frxADOComponents1: TfrxADOComponents;

procedure Button2Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormDestroy(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

fmGenReport: TfmGenReport;

implementation

uses Main;

{$R *.dfm}

procedure TfmGenReport.Button2Click(Sender: TObject);

begin

Close;

end;

procedure TfmGenReport.FormClose(Sender: TObject;

var Action: TCloseAction);

begin

Action:=caFree;

end;

procedure TfmGenReport.FormDestroy(Sender: TObject);

begin

fmGenReport:=nil;

end;

procedure TfmGenReport.Button1Click(Sender: TObject);

begin

frxReport1.LoadFromFile('report.fr3');

(frxReport1.FindObject('Memo14') as TfrxMemoView).Text:='Ñïèñîê ïàöèåíòîâ ïðîõîäèâøèõ îáñëåäîâàíèå çà ïåðèîä ñ '+DateToStr(DateTimePicker1.Date)+' ïî '+DateToStr(DateTimePicker2.Date);

(frxReport1.FindObject('ADOQuery1') as TfrxADOQuery).ParamByName('DATN').Value:=RecodeTime(DateTimePicker1.Date, 00, 00, 00, 00);

(frxReport1.FindObject('ADOQuery1') as TfrxADOQuery).ParamByName('DATK').Value:=RecodeTime(DateTimePicker2.Date, 23, 59, 59, 00);

frxReport1.ShowReport();

end;

end.

Приложение И

(обязательное)

Архитектура программы

Список использованных источников. 1 Назаренко Г.И., Гулиев Я.И., Ермаков Д.Е - student2.ru

Рисунок И.1 – Архитектура программы

Приложение К

(обязательное)

Наши рекомендации