577 lines
21 KiB
Plaintext
577 lines
21 KiB
Plaintext
unit fDCSummProps;
|
|
|
|
interface
|
|
|
|
uses
|
|
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
|
|
StdCtrls, ORDtTm, ORCtrls, ExtCtrls, uConst, rTIU, rDCSumm, uDocTree, uDCSumm,
|
|
uTIU, fBase508Form, VA508AccessibilityManager;
|
|
|
|
type
|
|
TfrmDCSummProperties = class(TfrmBase508Form)
|
|
bvlConsult: TBevel;
|
|
pnlFields: TORAutoPanel;
|
|
lblNewTitle: TLabel;
|
|
lblDateTime: TLabel;
|
|
lblAuthor: TLabel;
|
|
lblCosigner: TLabel;
|
|
cboNewTitle: TORComboBox;
|
|
calSumm: TORDateBox;
|
|
cboAuthor: TORComboBox;
|
|
cboAttending: TORComboBox;
|
|
pnlTranscription: TORAutoPanel;
|
|
lblTranscriptionist: TLabel;
|
|
lblUrgency: TLabel;
|
|
cboTranscriptionist: TORComboBox;
|
|
cboUrgency: TORComboBox;
|
|
pnlAdmissions: TORAutoPanel;
|
|
cmdOK: TButton;
|
|
cmdCancel: TButton;
|
|
pnlLabels: TORAutoPanel;
|
|
lblDCSumm1: TStaticText;
|
|
lblDCSumm2: TStaticText;
|
|
lblLocation: TLabel;
|
|
lblDate: TLabel;
|
|
lblType: TLabel;
|
|
lblSummStatus: TLabel;
|
|
lstAdmissions: TORListBox;
|
|
procedure FormShow(Sender: TObject);
|
|
procedure cboNewTitleNeedData(Sender: TObject; const StartFrom: String;
|
|
Direction, InsertAt: Integer);
|
|
procedure cboAuthorNeedData(Sender: TObject; const StartFrom: String;
|
|
Direction, InsertAt: Integer);
|
|
procedure cboAttendingNeedData(Sender: TObject; const StartFrom: String;
|
|
Direction, InsertAt: Integer);
|
|
procedure cmdOKClick(Sender: TObject);
|
|
procedure cmdCancelClick(Sender: TObject);
|
|
procedure cboNewTitleExit(Sender: TObject);
|
|
procedure cboNewTitleMouseClick(Sender: TObject);
|
|
procedure cboNewTitleEnter(Sender: TObject);
|
|
procedure cboAttendingExit(Sender: TObject);
|
|
procedure cboAuthorExit(Sender: TObject);
|
|
procedure cboAuthorMouseClick(Sender: TObject);
|
|
procedure cboAuthorEnter(Sender: TObject);
|
|
procedure cboNewTitleDropDownClose(Sender: TObject);
|
|
procedure lstAdmissionsChange(Sender: TObject);
|
|
procedure cboNewTitleDblClick(Sender: TObject);
|
|
procedure FormClose(Sender: TObject; var Action: TCloseAction);
|
|
procedure cboNewTitleChange(Sender: TObject);
|
|
private
|
|
FCosignIEN: Int64; // store cosigner that was passed in
|
|
FCosignName: string; // store cosigner that was passed in
|
|
FDocType: Integer; // store document type that was passed in
|
|
FAddend: Integer; // store IEN of note being addended (if make addendum)
|
|
FLastAuthor: Int64; // set by mouseclick to avoid redundant call on exit
|
|
FLastTitle: Integer; // set by mouseclick to avoid redundant call on exit
|
|
FAdmitDateTime: string ;
|
|
FLocation: integer;
|
|
FLocationName: string;
|
|
FVisitStr: string;
|
|
FEditIEN: integer;
|
|
//FFixCursor: Boolean; // to fix the problem where the list box is an I-bar
|
|
FLastCosigner: Int64; // holds cosigner from previous note (for defaulting)
|
|
FLastCosignerName: string; // holds cosigner from previous note (for defaulting)
|
|
FShowAdmissions: Boolean;
|
|
FIDNoteTitlesOnly: boolean;
|
|
procedure SetCosignerRequired;
|
|
procedure ShowAdmissionList;
|
|
procedure UMDelayEvent(var Message: TMessage); message UM_DELAYEVENT;
|
|
public
|
|
{ Public declarations }
|
|
end;
|
|
|
|
function ExecuteDCSummProperties(var ASumm: TEditDCSummRec; var ListBoxItem: string; ShowAdmissions, IDNoteTitlesOnly: boolean): Boolean;
|
|
|
|
var
|
|
EditLines: TStringList;
|
|
|
|
implementation
|
|
|
|
{$R *.DFM}
|
|
|
|
uses ORFn, uCore, rCore, uPCE, rPCE, rMisc;
|
|
{ Initial values in ASumm
|
|
|
|
Title Type Author DateTime Cosigner Location Consult NeedCPT
|
|
New DCSumm dflt 244 DUZ NOW dflt Encnt 0 ?
|
|
Edit DCSumm ien 244 ien DtTm ien ien ien fld
|
|
Addend DCSumm ien 81 DUZ NOW 0 N/A N/A? no
|
|
|
|
New Summ - setup as much as possible, then call ExecuteDCSummProperties if necessary.
|
|
|
|
}
|
|
|
|
const
|
|
TC_REQ_FIELDS = 'Required Information';
|
|
TX_REQ_TITLE = CRLF + 'A title must be selected.';
|
|
TX_REQ_AUTHOR = CRLF + 'The author of the note must be identified.';
|
|
TX_REQ_REFDATE = CRLF + 'A valid date/time for the note must be entered.';
|
|
TX_REQ_COSIGNER = CRLF + 'An attending must be identified.';
|
|
TX_NO_FUTURE = CRLF + 'A reference date/time in the future is not allowed.';
|
|
TX_COS_SELF = CRLF + 'You cannot make yourself a cosigner.';
|
|
TX_COS_AUTH = CRLF + ' is not authorized to cosign this document.';
|
|
TX_BAD_ADMISSION = CRLF + 'Admission information is missing or invalid.';
|
|
TX_NO_ADMISSION = CRLF + 'An admission must be selected';
|
|
TX_NO_MORE_SUMMS = CRLF + 'Only one discharge summary may be written for each admission.';
|
|
TC_NO_EDIT = 'Unable to Edit';
|
|
TC_EDIT_EXISTING = 'Unsigned document in progress';
|
|
TX_EDIT_EXISTING = 'Would you like to continue editing the existing unsigned summary for this admission?';
|
|
|
|
function ExecuteDCSummProperties(var ASumm: TEditDCSummRec; var ListBoxItem: string; ShowAdmissions, IDNoteTitlesOnly: boolean): Boolean;
|
|
var
|
|
frmDCSummProperties: TfrmDCSummProperties;
|
|
x: string;
|
|
begin
|
|
frmDCSummProperties := TfrmDCSummProperties.Create(Application);
|
|
EditLines := TStringList.Create;
|
|
try
|
|
ResizeAnchoredFormToFont(frmDCSummProperties);
|
|
with frmDCSummProperties do
|
|
begin
|
|
// setup common fields (title, reference date, author)
|
|
FShowAdmissions := ShowAdmissions;
|
|
FIDNoteTitlesOnly := IDNoteTitlesOnly;
|
|
pnlTranscription.Visible := False; {was never used on old form}
|
|
if not pnlTranscription.Visible then
|
|
begin
|
|
Height := Height - pnlTranscription.Height;
|
|
Top := Top - pnlTranscription.Height;
|
|
end;
|
|
// Height := Height - pnlAdmissions.Height - pnlLabels.Height;
|
|
if ASumm.DocType <> TYP_ADDENDUM then
|
|
begin
|
|
cboNewTitle.InitLongList('');
|
|
ListDCSummTitlesShort(cboNewTitle.Items);
|
|
end
|
|
else //if addendum
|
|
cboNewTitle.Items.Insert(0, IntToStr(ASumm.Title) + U + ASumm.TitleName);
|
|
if ASumm.Title > 0 then cboNewTitle.SelectByIEN(ASumm.Title);
|
|
if (ASumm.Title > 0) and (cboNewTitle.ItemIndex < 0)
|
|
then cboNewTitle.SetExactByIEN(ASumm.Title, ASumm.TitleName);
|
|
cboAuthor.InitLongList(ASumm.DictatorName);
|
|
if ASumm.Dictator > 0 then cboAuthor.SelectByIEN(ASumm.Dictator);
|
|
FastAssign(LoadDCUrgencies, cboUrgency.Items);
|
|
cboUrgency.SelectByID('R');
|
|
if Asumm.Attending = 0 then
|
|
begin
|
|
ASumm.Attending := FLastCosigner;
|
|
ASumm.AttendingName := FLastCosignerName;
|
|
end;
|
|
calSumm.FMDateTime := ASumm.DictDateTime;
|
|
if FShowAdmissions then ShowAdmissionList;
|
|
FAddend := ASumm.Addend;
|
|
FDocType := ASumm.DocType;
|
|
FLastCosigner := ASumm.LastCosigner;
|
|
FLastCosignerName := ASumm.LastCosignerName;
|
|
FEditIEN := 0;
|
|
cboAttending.InitLongList(ASumm.AttendingName);
|
|
if ASumm.Attending > 0 then cboAttending.SelectByIEN(ASumm.Attending);
|
|
// restrict edit of title if addendum
|
|
if FDocType = TYP_ADDENDUM then
|
|
begin
|
|
lblNewTitle.Caption := 'Addendum to:';
|
|
cboNewTitle.Caption := 'Addendum to:';
|
|
cboNewTitle.Enabled := False;
|
|
cboNewTitle.Color := clBtnFace;
|
|
end;
|
|
Result := ShowModal = idOK; // display the form
|
|
if Result then with ASumm do
|
|
begin
|
|
if FDocType <> TYP_ADDENDUM then
|
|
begin
|
|
Title := cboNewTitle.ItemIEN;
|
|
TitleName := PrintNameForTitle(Title);
|
|
end;
|
|
Urgency := cboUrgency.ItemID;
|
|
DictDateTime := calSumm.FMDateTime;
|
|
Dictator := cboAuthor.ItemIEN;
|
|
DictatorName := Piece(cboAuthor.Items[cboAuthor.ItemIndex], U, 2);
|
|
Attending := cboAttending.ItemIEN;
|
|
AttendingName := Piece(cboAttending.Items[cboAttending.ItemIndex], U, 2);
|
|
if Attending = Dictator then Cosigner := 0 else
|
|
begin
|
|
Cosigner := cboAttending.ItemIEN;
|
|
CosignerName := Piece(cboAttending.Items[cboAttending.ItemIndex], U, 2);
|
|
// The LastCosigner fields are used to default the cosigner in subsequent notes.
|
|
// These fields are not reset with new notes & not passed into TIU.
|
|
LastCosigner := Cosigner;
|
|
LastCosignerName := CosignerName;
|
|
end;
|
|
Transcriptionist := cboTranscriptionist.ItemIEN;
|
|
if FShowAdmissions then
|
|
begin
|
|
AdmitDateTime := StrToFMDateTime(FAdmitDateTime);
|
|
DischargeDateTime := StrToFMDateTime(GetDischargeDate(Patient.DFN, FAdmitDateTime));
|
|
if DischargeDateTime <= 0 then DischargeDateTime := FMNow;
|
|
Location := FLocation;
|
|
LocationName := FLocationName;
|
|
VisitStr := IntToStr(Location) + ';' + FloatToStr(AdmitDateTime) + ';H' ;
|
|
end;
|
|
EditIEN := FEditIEN;
|
|
if FEditIEN > 0 then
|
|
begin
|
|
x := GetTIUListItem(FEditIEN);
|
|
ListBoxItem := x;
|
|
if Lines = nil then Lines := TStringList.Create;
|
|
FastAssign(EditLines, Lines);
|
|
end
|
|
else
|
|
begin
|
|
ListBoxItem := '';
|
|
end;
|
|
end;
|
|
// The following fields in TEditDCSummRec are not set:
|
|
// DocType, NeedCPT, Lines (unless editing an existing summary)
|
|
end;
|
|
finally
|
|
EditLines.Free;
|
|
frmDCSummProperties.Release;
|
|
end;
|
|
end;
|
|
|
|
{ Form events }
|
|
|
|
procedure TfrmDCSummProperties.FormShow(Sender: TObject);
|
|
begin
|
|
SetFormPosition(Self);
|
|
//if cboNewTitle.Text = '' then PostMessage(Handle, UM_DELAYEVENT, 0, 0);
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.UMDelayEvent(var Message: TMessage);
|
|
{ let the window finish displaying before dropping list box, otherwise listbox drop
|
|
in the design position rather then new windows position (ORCtrls bug?) }
|
|
begin
|
|
(* Screen.Cursor := crArrow;
|
|
FFixCursor := TRUE;
|
|
cboNewTitle.DroppedDown := True;
|
|
lblDateTime.Visible := False;
|
|
lblAuthor.Visible := False;
|
|
lblCosigner.Visible := False;*)
|
|
end;
|
|
|
|
{ General calls }
|
|
|
|
procedure TfrmDCSummProperties.SetCosignerRequired;
|
|
{ called initially & whenever title or author changes }
|
|
begin
|
|
(* if FDocType = TYP_ADDENDUM then
|
|
begin
|
|
lblCosigner.Visible := AskCosignerForDocument(FAddend, cboAuthor.ItemIEN)
|
|
end else
|
|
begin
|
|
if cboNewTitle.ItemIEN = 0
|
|
then lblCosigner.Visible := AskCosignerForTitle(FDocType, cboAuthor.ItemIEN)
|
|
else lblCosigner.Visible := AskCosignerForTitle(cboNewTitle.ItemIEN, cboAuthor.ItemIEN);
|
|
end;*)
|
|
lblCosigner.Visible := True;
|
|
cboAttending.Visible := lblCosigner.Visible;
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.ShowAdmissionList;
|
|
var
|
|
i, Status: integer;
|
|
x: string;
|
|
begin
|
|
with lstAdmissions do
|
|
begin
|
|
ListAdmitAll(Items, Patient.DFN);
|
|
if Items.Count > 0 then
|
|
begin
|
|
for i := 0 to Items.Count-1 do
|
|
begin
|
|
x := Items[i];
|
|
SetPiece(x, '^', 8, FormatFMDateTimeStr('mmm dd,yyyy hh:nn', Piece(Items[i],U,1)));
|
|
Status := StrToIntDef(Piece(Items[i],U,7),0);
|
|
case Status of
|
|
0: x := x + '^None on file';
|
|
1: x := x + '^Completed';
|
|
2: x := x + '^Unsigned';
|
|
end;
|
|
Items[i] := x;
|
|
end;
|
|
end
|
|
else
|
|
FAdmitDateTime := '-1^No admissions were found for this patient.';
|
|
end;
|
|
end;
|
|
|
|
{ cboNewTitle events }
|
|
|
|
procedure TfrmDCSummProperties.cboNewTitleNeedData(Sender: TObject; const StartFrom: string;
|
|
Direction, InsertAt: Integer);
|
|
begin
|
|
cboNewTitle.ForDataUse(SubSetOfDCSummTitles(StartFrom, Direction, FIDNoteTitlesOnly));
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboNewTitleEnter(Sender: TObject);
|
|
begin
|
|
FLastTitle := 0;
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboNewTitleMouseClick(Sender: TObject);
|
|
begin
|
|
with cboNewTitle do
|
|
if (ItemIEN > 0) and (ItemIEN = FLastTitle) then Exit
|
|
else if ItemIEN = 0 then
|
|
begin
|
|
if FLastTitle > 0 then SelectByIEN(FLastTitle)
|
|
else ItemIndex := -1;
|
|
Exit;
|
|
end;
|
|
SetCosignerRequired;
|
|
if FShowAdmissions and (not pnlAdmissions.Visible) then
|
|
begin
|
|
// Height := Height + pnlAdmissions.Height + pnlLabels.Height;
|
|
pnlAdmissions.Visible := True;
|
|
pnlLabels.Visible := True;
|
|
end;
|
|
FLastTitle := cboNewTitle.ItemIEN;
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboNewTitleExit(Sender: TObject);
|
|
begin
|
|
if cboNewTitle.ItemIEN <> FLastTitle then cboNewTitleMouseClick(Self);
|
|
end;
|
|
|
|
{ cboAuthor & cboAttending events }
|
|
|
|
procedure TfrmDCSummProperties.cboAuthorNeedData(Sender: TObject; const StartFrom: String;
|
|
Direction, InsertAt: Integer);
|
|
begin
|
|
(Sender as TORComboBox).ForDataUse(SubSetOfPersons(StartFrom, Direction));
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboAttendingNeedData(Sender: TObject; const StartFrom: String;
|
|
Direction, InsertAt: Integer);
|
|
var TitleIEN: Int64;
|
|
begin
|
|
// (Sender as TORComboBox).ForDataUse(SubSetOfPersons(StartFrom, Direction));
|
|
|
|
// CQ#11666
|
|
// (Sender as TORComboBox).ForDataUse(SubSetOfCosigners(StartFrom, Direction,
|
|
// FMToday, cboNewTitle.ItemIEN, FDocType));
|
|
|
|
// CQ #17218 - Updated to properly filter co-signers - JCS
|
|
TitleIEN := cboNewTitle.ItemIEN;
|
|
if TitleIEN = 0 then TitleIEN := FDocType;
|
|
|
|
(Sender as TORComboBox).ForDataUse(SubSetOfCosigners(StartFrom, Direction,
|
|
FMToday, TitleIEN, 0));
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboAuthorEnter(Sender: TObject);
|
|
begin
|
|
FLastAuthor := 0;
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboAuthorMouseClick(Sender: TObject);
|
|
begin
|
|
SetCosignerRequired;
|
|
FLastAuthor := cboAuthor.ItemIEN;
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboAuthorExit(Sender: TObject);
|
|
begin
|
|
if cboAuthor.ItemIEN <> FLastAuthor then cboAuthorMouseClick(Self);
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboAttendingExit(Sender: TObject);
|
|
{ make sure FCosign fields stay up to date in case SetCosigner gets called again }
|
|
begin
|
|
with cboAttending do if Text = '' then ItemIndex := -1;
|
|
if cboAttending.ItemIndex < 0 then
|
|
begin
|
|
FCosignIEN := 0;
|
|
FCosignName := '';
|
|
end
|
|
else
|
|
begin
|
|
FCosignIEN := cboAttending.ItemIEN;
|
|
FCosignName := Piece(cboAttending.Items[cboAttending.ItemIndex], U, 2);
|
|
end;
|
|
end;
|
|
|
|
{ Command Button events }
|
|
|
|
procedure TfrmDCSummProperties.cmdOKClick(Sender: TObject);
|
|
var
|
|
ErrMsg, x, WhyNot: string;
|
|
begin
|
|
cmdOK.SetFocus; // make sure cbo exit events fire
|
|
Application.ProcessMessages;
|
|
SetCosignerRequired;
|
|
ErrMsg := '';
|
|
if cboNewTitle.ItemIEN = 0 then
|
|
ErrMsg := ErrMsg + TX_REQ_TITLE
|
|
else if FIDNoteTitlesOnly and (not CanTitleBeIDChild(cboNewTitle.ItemIEN, WhyNot)) then
|
|
ErrMsg := ErrMsg + CRLF + WhyNot;
|
|
if cboAuthor.ItemIEN = 0 then ErrMsg := ErrMsg + TX_REQ_AUTHOR;
|
|
if not calSumm.IsValid then ErrMsg := ErrMsg + TX_REQ_REFDATE;
|
|
if calSumm.IsValid and (calSumm.FMDateTime > FMNow) then ErrMsg := ErrMsg + TX_NO_FUTURE;
|
|
if cboAttending.Visible and (cboAttending.ItemIEN = 0) then ErrMsg := ErrMsg + TX_REQ_COSIGNER;
|
|
//if cboAttending.ItemIEN = User.DUZ then ErrMsg := TX_COS_SELF;
|
|
|
|
// --------------------------------- REPLACED THIS BLOCK IN V27.37-----------------------------------------------
|
|
/// if (cboAttending.ItemIEN > 0) and not IsUserAProvider(cboAttending.ItemIEN, FMNow) then
|
|
// //if (cboAttending.ItemIEN > 0) and not CanCosign(cboNewTitle.ItemIEN, FDocType, cboAttending.ItemIEN) then
|
|
// ErrMsg := cboAttending.Text + TX_COS_AUTH;
|
|
// ------------------------------------ NEW CODE FOLLOWS --------------------------------------------------------
|
|
if (cboAttending.ItemIEN > 0) then
|
|
if ((not IsUserAUSRProvider(cboAttending.ItemIEN, FMNow)) or
|
|
(not CanCosign(cboNewTitle.ItemIEN, FDocType, cboAttending.ItemIEN, calSumm.FMDateTime))) then
|
|
ErrMsg := cboAttending.Text + TX_COS_AUTH;
|
|
// -----------------------------------END OF NEW REPLACEMENT CODE -----------------------------------------------
|
|
|
|
if pnlAdmissions.Visible then
|
|
with lstAdmissions do
|
|
begin
|
|
if ItemIndex < 0 then
|
|
ErrMsg := TX_NO_ADMISSION
|
|
else if (Piece(x, U, 7) = '1') then
|
|
begin
|
|
x := Items[ItemIndex];
|
|
FVisitStr := Piece(x, U, 2) + ';' + Piece(x, U, 1) + ';H';
|
|
if (OneNotePerVisit(cboNewTitle.ItemIEN, Patient.DFN, FVisitStr)) then
|
|
begin
|
|
FEditIEN := 0;
|
|
InfoBox(TX_NO_MORE_SUMMS, TC_NO_EDIT, MB_OK);
|
|
lstAdmissions.ItemIndex := -1;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
x := Items[ItemIndex];
|
|
FAdmitDateTime := Piece(x,U,1);
|
|
FLocation := StrToIntDef(Piece(x, U, 2), 0);
|
|
if (MakeFMDateTime(FAdmitDateTime)= -1) or (FLocation = 0) then
|
|
ErrMsg := TX_BAD_ADMISSION
|
|
else
|
|
FLocationName := ExternalName(FLocation, 44);
|
|
end;
|
|
end;
|
|
|
|
if ShowMsgOn(Length(ErrMsg) > 0, ErrMsg, TC_REQ_FIELDS)
|
|
then Exit
|
|
else ModalResult := mrOK;
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cmdCancelClick(Sender: TObject);
|
|
begin
|
|
ModalResult := mrCancel;
|
|
Close;
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboNewTitleDropDownClose(Sender: TObject);
|
|
begin
|
|
(* if FFixCursor then
|
|
begin
|
|
Screen.Cursor := crDefault;
|
|
FFixCursor := FALSE;
|
|
end;
|
|
lblDateTime.Visible := True;
|
|
lblAuthor.Visible := True;
|
|
lblCosigner.Visible := True;*)
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.lstAdmissionsChange(Sender: TObject);
|
|
var
|
|
x: string;
|
|
AnEditSumm: TEditDCSummRec;
|
|
ActionSts: TActionRec;
|
|
begin
|
|
if lstAdmissions.ItemIndex < 0 then Exit;
|
|
x := lstAdmissions.Items[lstAdmissions.ItemIndex];
|
|
if (StrToIntDef(Piece(x, U, 7), 0) = 2) then
|
|
begin
|
|
{ Prompt for edit first - proceed as below if yes, else proceed as if '1'}
|
|
if InfoBox(TX_EDIT_EXISTING, TC_EDIT_EXISTING, MB_YESNO) = MRYES then
|
|
begin
|
|
FillChar(AnEditSumm, SizeOf(AnEditSumm), 0);
|
|
FEditIEN := StrToInt(Piece(x,U,6));
|
|
ActOnDCDocument(ActionSts, FEditIEN, 'EDIT RECORD');
|
|
if not ActionSts.Success then
|
|
begin
|
|
InfoBox(ActionSts.Reason, TX_IN_AUTH, MB_OK);
|
|
lstAdmissions.ItemIndex := -1;
|
|
Exit;
|
|
end;
|
|
GetDCSummForEdit(AnEditSumm, FEditIEN);
|
|
EditLines.Assign(AnEditSumm.Lines);
|
|
cboNewTitle.InitLongList(AnEditSumm.TitleName);
|
|
ListDCSummTitlesShort(cboNewTitle.Items);
|
|
if AnEditSumm.Title > 0 then cboNewTitle.SelectByIEN(AnEditSumm.Title);
|
|
cboAuthor.InitLongList(AnEditSumm.DictatorName);
|
|
if AnEditSumm.Dictator > 0 then cboAuthor.SelectByIEN(AnEditSumm.Dictator);
|
|
FastAssign(LoadDCUrgencies, cboUrgency.Items);
|
|
cboUrgency.SelectByID('R');
|
|
cboAttending.InitLongList(AnEditSumm.AttendingName);
|
|
if AnEditSumm.Attending > 0 then cboAttending.SelectByIEN(AnEditSumm.Attending);
|
|
calSumm.FMDateTime := AnEditSumm.DictDateTime;
|
|
end
|
|
else // if user answers NO to edit existing document, can new one be created?
|
|
begin
|
|
FVisitStr := Piece(x, U, 2) + ';' + Piece(x, U, 1) + ';H';
|
|
if (OneNotePerVisit(cboNewTitle.ItemIEN, Patient.DFN, FVisitStr)) then
|
|
begin
|
|
FEditIEN := 0;
|
|
InfoBox(TX_NO_MORE_SUMMS, TC_NO_EDIT, MB_OK);
|
|
lstAdmissions.ItemIndex := -1;
|
|
end;
|
|
end;
|
|
end
|
|
else if Piece(x, U, 7) = '1' then
|
|
begin
|
|
FVisitStr := Piece(x, U, 2) + ';' + Piece(x, U, 1) + ';H';
|
|
if (OneNotePerVisit(cboNewTitle.ItemIEN, Patient.DFN, FVisitStr)) then
|
|
begin
|
|
FEditIEN := 0;
|
|
InfoBox(TX_NO_MORE_SUMMS, TC_NO_EDIT, MB_OK);
|
|
lstAdmissions.ItemIndex := -1;
|
|
end;
|
|
end
|
|
else
|
|
begin
|
|
FEditIEN := 0;
|
|
(* cboNewTitle.ItemIndex := -1;
|
|
cboAttending.ItemIndex := -1;
|
|
calSumm.FMDateTime := FMNow;*)
|
|
end;
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboNewTitleChange(Sender: TObject);
|
|
var
|
|
IEN: Int64;
|
|
name: string;
|
|
Index: Integer;
|
|
|
|
begin
|
|
inherited;
|
|
index := cboAttending.ItemIndex;
|
|
if index >= 0 then
|
|
begin
|
|
IEN := cboAttending.ItemIEN;
|
|
name := cboAttending.DisplayText[index];
|
|
end
|
|
else
|
|
begin
|
|
name := '';
|
|
IEN := 0;
|
|
end;
|
|
cboAttending.InitLongList(name);
|
|
if index >= 0 then
|
|
cboAttending.SelectByIEN(IEN);
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.cboNewTitleDblClick(Sender: TObject);
|
|
begin
|
|
cmdOKClick(Self);
|
|
end;
|
|
|
|
procedure TfrmDCSummProperties.FormClose(Sender: TObject;
|
|
var Action: TCloseAction);
|
|
begin
|
|
SaveUserBounds(Self);
|
|
end;
|
|
|
|
end.
|