📄 diagnosiseditor.pas
字号:
{ *************************************************************************** }
{ }
{ PatientRunner }
{ }
{ Copyright (c) 2002-2005 IgD Software, LLC }
{ }
{ This file may be distributed and/or modified under the terms of the GNU }
{ General Public License (GPL) version 2 as published by the Free Software }
{ Foundation and appearing at http://www.gnu.org/licenses/gpl.html. }
{ }
{ *************************************************************************** }
unit DiagnosisEditor;
interface
uses
SysUtils, Classes, Controls, Forms,
Dialogs, StdCtrls, ComCtrls, DB, FMTBcd, SqlExpr;
type
TDiagnosisEditorForm = class(TForm)
OKButton: TButton;
CancelButton: TButton;
Label1: TLabel;
Label3: TLabel;
DiagnosisEdit: TEdit;
EndDatePicker: TDateTimePicker;
StartDatePicker: TDateTimePicker;
Label2: TLabel;
ResolvedCheckBox: TCheckBox;
SQLQuery: TSQLQuery;
procedure CancelButtonClick(Sender: TObject);
procedure OKButtonClick(Sender: TObject);
private
FNewRecord: boolean;
procedure SetNewRecord(const Value: boolean);
{ Private declarations }
public
//If NewRecord is true then perform INSERT SQL query
//if not then perform REPLACE SQL query
property NewRecord: boolean read FNewRecord write SetNewRecord;
end;
var
DiagnosisEditorForm: TDiagnosisEditorForm;
implementation
uses Main, PatientExplorer;
{$R *.dfm}
procedure TDiagnosisEditorForm.CancelButtonClick(Sender: TObject);
begin
if MessageDlg('Exit without saving changes?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
Close;
end;
procedure TDiagnosisEditorForm.OKButtonClick(Sender: TObject);
begin
DiagnosisEdit.Text:=TrimRight(DiagnosisEdit.Text);
if DiagnosisEdit.Text='' then
begin
MessageDlg('You must enter a valid diagnosis to save this record!', mtError, [mbOk], 0);
Exit;
end;
DateSeparator := '/';
ShortDateFormat := 'yyyy/mm/dd';
LongTimeFormat:='hh:nn:ss';
with SQLQuery do
begin
SQL.Clear;
Params.Clear;
if FNewRecord then
begin
SQL.Text:='insert into diagnoses (diagnosis, startdate, enddate, resolved, patientid, author) values (:diagnosis, :startdate, :enddate, :resolved, :patientid, :author)';
Params[0].AsString:=DiagnosisEdit.Text;
Params[1].AsString:=DatetoStr(StartDatePicker.Date);
Params[2].AsString:=DatetoStr(EndDatePicker.Date);
Params[3].AsString:=IntToStr(Integer(ResolvedCheckBox.Checked));
Params[4].AsString:=InttoStr(PPatientRecord(MainForm.PatientListView.Selected.Data)^.PatientID);
Params[5].AsString:=MainForm.SQLConnection.Params.Values['User_Name'];
ExecSQL;
PatientExplorerForm.RefreshDiagnosesDBClick(Sender);
PatientExplorerForm.DiagnosesListView.Selected:=PatientExplorerForm.DiagnosesListView.TopItem;
PatientExplorerForm.DiagnosesListView.ItemFocused:=PatientExplorerForm.DiagnosesListView.TopItem;
end
else
begin
with PDiagnosisRecord(PatientExplorerForm.DiagnosesListView.ItemFocused.Data)^ do
begin
Diagnosis:=DiagnosisEdit.Text;
StartDate:=StartDatePicker.Date;
EndDate:=EndDatePicker.Date;
Resolved:=ResolvedCheckBox.Checked;
end;
SQL.Text:='update diagnoses set diagnosis=:diagnosis, startdate=:startdate, enddate=:enddate, resolved=:resolved where diagnosisid=:diagnosisid';
Params[0].AsString:=DiagnosisEdit.Text;
Params[1].AsString:=DatetoStr(StartDatePicker.Date);
Params[2].AsString:=DatetoStr(EndDatePicker.Date);
Params[3].AsString:=IntToStr(Integer(ResolvedCheckBox.Checked));
Params[4].AsString:=InttoStr(PDiagnosisRecord(PatientExplorerForm.DiagnosesListView.ItemFocused.Data)^.DiagnosisID);
ExecSql;
PatientExplorerForm.RefreshDiagnosesDBClick(Sender);
end;
end;
Close; //Form
end;
procedure TDiagnosisEditorForm.SetNewRecord(const Value: boolean);
begin
FNewRecord := Value;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -