⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 diagnosiseditor.pas

📁 PatientRunner 20 Source
💻 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 + -