273 lines
7.6 KiB
Plaintext
273 lines
7.6 KiB
Plaintext
|
unit fOptionsOther;
|
||
|
|
||
|
interface
|
||
|
|
||
|
uses
|
||
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
||
|
StdCtrls, ExtCtrls, ComCtrls, ORCtrls, ORFn, rOrders, uCore, ORDtTm;
|
||
|
|
||
|
type
|
||
|
TfrmOptionsOther = class(TForm)
|
||
|
pnlBottom: TPanel;
|
||
|
btnOK: TButton;
|
||
|
btnCancel: TButton;
|
||
|
bvlBottom: TBevel;
|
||
|
stStart: TStaticText;
|
||
|
stStop: TStaticText;
|
||
|
dtStart: TORDateBox;
|
||
|
dtStop: TORDateBox;
|
||
|
lblMedsTab: TLabel;
|
||
|
lblTabDefault: TStaticText;
|
||
|
lblTab: TLabel;
|
||
|
cboTab: TORComboBox;
|
||
|
chkLastTab: TCheckBox;
|
||
|
Bevel1: TBevel;
|
||
|
lblEncAppts: TLabel;
|
||
|
stStartEncAppts: TStaticText;
|
||
|
txtTodayMinus: TStaticText;
|
||
|
txtEncStart: TCaptionEdit;
|
||
|
txtDaysMinus: TStaticText;
|
||
|
spnEncStart: TUpDown;
|
||
|
txtDaysPlus: TStaticText;
|
||
|
spnEncStop: TUpDown;
|
||
|
txtEncStop: TCaptionEdit;
|
||
|
txtTodayPlus: TStaticText;
|
||
|
stStopEncAppts: TStaticText;
|
||
|
Bevel2: TBevel;
|
||
|
btnEncDefaults: TButton;
|
||
|
procedure FormShow(Sender: TObject);
|
||
|
procedure btnOKClick(Sender: TObject);
|
||
|
procedure FormCreate(Sender: TObject);
|
||
|
procedure dtStartExit(Sender: TObject);
|
||
|
procedure dtStopExit(Sender: TObject);
|
||
|
procedure dtStartChange(Sender: TObject);
|
||
|
procedure txtEncStartChange(Sender: TObject);
|
||
|
procedure txtEncStopChange(Sender: TObject);
|
||
|
procedure txtEncStartExit(Sender: TObject);
|
||
|
procedure txtEncStopExit(Sender: TObject);
|
||
|
procedure btnEncDefaultsClick(Sender: TObject);
|
||
|
private
|
||
|
{ Private declarations }
|
||
|
FstartDt: TFMDateTime;
|
||
|
FstopDt: TFMDateTime;
|
||
|
FEncStartDays, FEncStopDays, FEncDefStartDays, FEncDefStopDays: integer;
|
||
|
//FDefaultEvent: string;
|
||
|
public
|
||
|
{ Public declarations }
|
||
|
end;
|
||
|
|
||
|
var
|
||
|
frmOptionsOther: TfrmOptionsOther;
|
||
|
|
||
|
const
|
||
|
ENC_MAX_LIMIT = 999;
|
||
|
|
||
|
procedure DialogOptionsOther(topvalue, leftvalue, fontsize: integer; var actiontype: Integer);
|
||
|
|
||
|
implementation
|
||
|
|
||
|
{$R *.DFM}
|
||
|
|
||
|
uses
|
||
|
rOptions, uOptions, rCore, rSurgery, uConst, fMeds;
|
||
|
|
||
|
procedure DialogOptionsOther(topvalue, leftvalue, fontsize: integer; var actiontype: Integer);
|
||
|
// create the form and make it modal, return an action
|
||
|
var
|
||
|
frmOptionsOther: TfrmOptionsOther;
|
||
|
begin
|
||
|
frmOptionsOther := TfrmOptionsOther.Create(Application);
|
||
|
actiontype := 0;
|
||
|
try
|
||
|
with frmOptionsOther do
|
||
|
begin
|
||
|
if (topvalue < 0) or (leftvalue < 0) then
|
||
|
Position := poScreenCenter
|
||
|
else
|
||
|
begin
|
||
|
Position := poDesigned;
|
||
|
Top := topvalue;
|
||
|
Left := leftvalue;
|
||
|
end;
|
||
|
ResizeAnchoredFormToFont(frmOptionsOther);
|
||
|
ShowModal;
|
||
|
actiontype := btnOK.Tag;
|
||
|
end;
|
||
|
finally
|
||
|
frmOptionsOther.Release;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.FormShow(Sender: TObject);
|
||
|
// displays defaults
|
||
|
// opening tab^use last tab^autosave seconds^verify note title
|
||
|
var
|
||
|
last: integer;
|
||
|
values, tab: string;
|
||
|
begin
|
||
|
cboTab.Items.Assign(rpcGetOtherTabs);
|
||
|
if (cboTab.Items.IndexOf('Surgery') > -1) and (not ShowSurgeryTab) then
|
||
|
cboTab.Items.Delete(cboTab.Items.IndexOf('Surgery'));
|
||
|
values := rpcGetOther;
|
||
|
tab := Piece(values, '^', 1);
|
||
|
last := strtointdef(Piece(values, '^', 2), 0);
|
||
|
cboTab.SelectByID(tab);
|
||
|
cboTab.Tag := strtointdef(tab, -1);
|
||
|
chkLastTab.Checked := last = 1;
|
||
|
chkLastTab.Tag := last;
|
||
|
cboTab.SetFocus;
|
||
|
rpcGetRangeForMeds(FstartDt, FstopDt);
|
||
|
if FstartDt > 1 then
|
||
|
dtStart.Text := FormatFMDateTime('mmm d, yyyy',FstartDt);
|
||
|
if FstopDt > 1 then
|
||
|
dtStop.Text := FormatFMDateTime('mmm d, yyyy', FstopDt);
|
||
|
rpcGetRangeForEncs(FEncDefStartDays, FEncDefStopDays, True); // True gets params settings above User/Service level.
|
||
|
if FEncDefStartDays < 1 then
|
||
|
FEncDefStartDays := 0;
|
||
|
if FEncDefStopDays < 1 then
|
||
|
FEncDefStopDays := 0;
|
||
|
rpcGetRangeForEncs(FEncStartDays, FEncStopDays, False); // False gets User/Service params.
|
||
|
if ((FEncStartDays < 0) and (FEncStartDays <> 0)) then
|
||
|
FEncStartDays := FEncDefStartDays;
|
||
|
txtEncStart.Text := IntToStr(FEncStartDays);
|
||
|
if ((FEncStopDays < 0) and (FEncStopDays <> 0)) then
|
||
|
FEncStopDays := FEncDefStopDays;
|
||
|
txtEncStop.Text := IntToStr(FEncStopDays);
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.btnOKClick(Sender: TObject);
|
||
|
// opening tab^use last tab^autosave seconds^verify note title
|
||
|
var
|
||
|
values, theVal: string;
|
||
|
begin
|
||
|
values := '';
|
||
|
if cboTab.ItemIEN <> cboTab.Tag then
|
||
|
values := values + cboTab.ItemID;
|
||
|
values := values + '^';
|
||
|
if chkLastTab.Checked then
|
||
|
if chkLastTab.Tag <> 1 then
|
||
|
values := values + '1';
|
||
|
if not chkLastTab.Checked then
|
||
|
if chkLastTab.Tag <> 0 then
|
||
|
values := values + '0';
|
||
|
values := values + '^^';
|
||
|
rpcSetOther(values);
|
||
|
if (dtStop.FMDateTime > 0) and (dtStart.FMDateTime > 0) then
|
||
|
begin
|
||
|
if dtStop.FMDateTime < dtStart.FMDateTime then
|
||
|
begin
|
||
|
ShowMessage('The stop time can not prior to the start time.');
|
||
|
dtStop.FMDateTime := FMToday;
|
||
|
dtStop.SetFocus;
|
||
|
Exit;
|
||
|
end;
|
||
|
theVal := dtStart.RelativeTime + ';' + dtStop.RelativeTime;
|
||
|
rpcPutRangeForMeds(theVal);
|
||
|
end;
|
||
|
if (dtStart.Text = '') and (dtStop.Text = '') then
|
||
|
rpcPutRangeForMeds('');
|
||
|
rpcPutRangeForEncs(txtEncStart.Text, txtEncStop.Text);
|
||
|
if frmMeds <> nil then
|
||
|
frmMeds.RefreshMedLists;
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.FormCreate(Sender: TObject);
|
||
|
begin
|
||
|
FStartDT := 0;
|
||
|
FStopDT := 0;
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.dtStartExit(Sender: TObject);
|
||
|
begin
|
||
|
if dtStart.FMDateTime > FMToday then
|
||
|
begin
|
||
|
ShowMessage('Start time can not greater than today.');
|
||
|
dtStart.FMDateTime := FMToday;
|
||
|
dtStart.SetFocus;
|
||
|
Exit;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.dtStopExit(Sender: TObject);
|
||
|
begin
|
||
|
if (dtStop.FMDateTime > 0) and (dtStart.FMDateTime > 0) then
|
||
|
if (dtStop.FMDateTime < dtStart.FMDateTime) then
|
||
|
begin
|
||
|
ShowMessage('Stop time can not prior to start time');
|
||
|
dtStop.FMDateTime := FMToday;
|
||
|
dtStop.SetFocus;
|
||
|
Exit;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.dtStartChange(Sender: TObject);
|
||
|
begin
|
||
|
if (dtStart.FMDateTime > FMToday) then
|
||
|
begin
|
||
|
ShowMessage('Start time can not greater than today.');
|
||
|
dtStart.FMDateTime := FMToday;
|
||
|
dtStart.SetFocus;
|
||
|
Exit;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.txtEncStartChange(Sender: TObject);
|
||
|
begin
|
||
|
with txtEncStart do
|
||
|
begin
|
||
|
if Text = '' then
|
||
|
Exit;
|
||
|
if Text = ' ' then
|
||
|
Text := '0';
|
||
|
if StrToInt(Text) < 0 then
|
||
|
Text := '0';
|
||
|
if StrToIntDef(Text, ENC_MAX_LIMIT) > ENC_MAX_LIMIT then
|
||
|
begin
|
||
|
Text := IntToStr(ENC_MAX_LIMIT);
|
||
|
Beep;
|
||
|
InfoBox('Number must be < ' + IntToStr(ENC_MAX_LIMIT), 'Warning', MB_OK or MB_ICONWARNING);
|
||
|
end;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.txtEncStopChange(Sender: TObject);
|
||
|
begin
|
||
|
with txtEncStop do
|
||
|
begin
|
||
|
if Text = '' then
|
||
|
Exit;
|
||
|
if Text = ' ' then
|
||
|
Text := '0';
|
||
|
if StrToInt(Text) < 0 then
|
||
|
Text := '0';
|
||
|
if StrToIntDef(Text, ENC_MAX_LIMIT) > ENC_MAX_LIMIT then
|
||
|
begin
|
||
|
Text := IntToStr(ENC_MAX_LIMIT);
|
||
|
Beep;
|
||
|
InfoBox('Number must be < ' + IntToStr(ENC_MAX_LIMIT), 'Warning', MB_OK or MB_ICONWARNING);
|
||
|
end;
|
||
|
end;
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.txtEncStartExit(Sender: TObject);
|
||
|
begin
|
||
|
with txtEncStart do
|
||
|
if Text = '' then
|
||
|
Text := '0';
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.txtEncStopExit(Sender: TObject);
|
||
|
begin
|
||
|
with txtEncStart do
|
||
|
if Text = '' then
|
||
|
Text := '0';
|
||
|
end;
|
||
|
|
||
|
procedure TfrmOptionsOther.btnEncDefaultsClick(Sender: TObject);
|
||
|
begin
|
||
|
txtEncStart.Text := IntToStr(FEncDefStartDays);
|
||
|
txtEncStop.Text := IntToStr(FEncDefStopDays);
|
||
|
end;
|
||
|
|
||
|
end.
|