- •Аннотация
- •Работа изложена на 72 страницах, содержит 14 таблиц, 18 рисунков, 31 источник, 9 приложений.
- •Содержание
- •1Анализ организационно-штатной структуры Государственного Бюджетного Учреждения Здравоохранения «Городская Клиническая Больница №5 »
- •1.1Описание подразделений
- •2 Анализ существующих программно-аппаратных комплексов для диагностики заболеваний
- •2.1 Аппаратно-программный комплекс димол
- •3 Создание аппаратно-программного комплекса
- •3.1 Обоснование выбора субд и программного обеспечения
- •3.2 Структура программы
- •3.3 Интерфейс программы
- •4 Экономическая часть
- •4.1 Технико-экономическое обоснование разработки
- •4.2 Расчёт себестоимости программного продукта
- •4.3 Расчёт экономического эффекта
- •Заключение
- •Список использованных источников
- •Приложение а (обязательное) Листинг программы «Главное окно программы»
- •Приложение б (обязательное) Листинг программы «Окно добавления маркера»
- •Приложение в (обязательное) Листинг программы «Окно добавление болезни»
- •Приложение г (обязательное) Листинг программы «Окно добавления пациента»
- •Приложение д (обязательное) Листинг программы «Окно добавление болезни»
- •Приложение е (обязательное) Листинг программы «Окно о программе»
- •Приложение ж (обязательное) Листинг программы «Окно сформировать отчет»
Приложение б (обязательное) Листинг программы «Окно добавления маркера»
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.
