VistA-cprs/CPRS-Chart/uSurgery.pas

115 lines
3.6 KiB
Plaintext

unit uSurgery;
interface
uses
SysUtils, Windows, Messages, Controls, Classes, StdCtrls, ORfn, dialogs;
type
TSurgeryTitles = class
ClassName: string;
DfltTitle: Integer;
DfltTitleName: string;
ShortList: TStringList;
constructor Create;
destructor Destroy; override;
end;
function MakeSurgeryCaseDisplayText(InputString: string): string;
function MakeSurgeryReportDisplayText(RawText: string): string;
//procedure DisplayOpTop(ANoteIEN: integer);
const
(* SG_ALL = 1; // Case context - all cases
SG_BY_SURGEON = 2; // Case context - all cases by surgeon
SG_BY_DATE = 3; // Case context - all cases by date range*)
SG_TV_TEXT = 'Surgery Cases';
OP_TOP_NEVER_SHOW = 0;
OP_TOP_ALWAYS_SHOW = 1;
OP_TOP_ASK_TO_SHOW = 2;
implementation
uses
uConst, rSurgery, fRptBox;
constructor TSurgeryTitles.Create;
{ creates an object to store Surgery titles so only obtained from server once }
begin
inherited Create;
ShortList := TStringList.Create;
end;
destructor TSurgeryTitles.Destroy;
{ frees the lists that were used to store the Surgery titles }
begin
ShortList.Free;
inherited Destroy;
end;
function MakeSurgeryCaseDisplayText(InputString: string): string;
(*
CASE #^Operative Procedure^Date/Time of Operation^Surgeon^^^^^^^^^+^Context
*)
var
x: string;
begin
x := InputString;
x := FormatFMDateTime('mmm dd yyyy', MakeFMDateTime(Piece(x, U, 3))) + ' ' + Piece(x, U, 2) +
', ' + Piece(Piece(x, U, 4), ';', 2) + ', ' + 'Case #: ' + Piece(x, u, 1);
Result := x;
end;
function MakeSurgeryReportDisplayText(RawText: string): string;
var
x: string;
begin
x := RawText;
x := FormatFMDateTime('mmm dd,yy', MakeFMDateTime(Piece(x, U, 3))) + ' ' + Piece(x, U, 2) +
' (#' + Piece(x, U, 1) + '), ' + Piece(x, U, 6) + ', ' + Piece(Piece(x, U, 5), ';', 2);
Result := x;
end;
(*procedure DisplayOpTop(ANoteIEN: integer);
const
{ TODO -oRich V. -cSurgery/TIU : What should be the text of the prompt for display OpTop on signature? }
TX_OP_TOP_PROMPT = 'Would you like to first review the OpTop for this surgery report?';
var
AList: TStringList;
ACaseIEN: integer;
IsNonORProc: boolean;
ShouldShowOpTop: integer;
x: string;
ShowReport: boolean;
begin
AList := TStringList.Create;
try
ShowReport := False;
x := GetSurgCaseRefForNote(ANoteIEN);
ACaseIEN := StrToIntDef(Piece(x, ';', 1), 0);
ShouldShowOpTop := ShowOpTopOnSignature(ACaseIEN);
case ShouldShowOpTop of
OP_TOP_NEVER_SHOW : ; // do nothing
OP_TOP_ALWAYS_SHOW : begin
x := GetSingleCaseListItemWithoutDocs(ANoteIEN);
IsNonORProc := IsNonORProcedure(ACaseIEN);
LoadOpTop(AList, ACaseIEN, IsNonORProc, ShowReport);
ReportBox(AList, MakeSurgeryCaseDisplayText(x), True);
end;
OP_TOP_ASK_TO_SHOW : if InfoBox(TX_OP_TOP_PROMPT, 'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then
begin
x := GetSingleCaseListItemWithoutDocs(ANoteIEN);
IsNonORProc := IsNonORProcedure(ACaseIEN);
LoadOpTop(AList, ACaseIEN, IsNonORProc, ShowReport);
ReportBox(AList, MakeSurgeryCaseDisplayText(x), True);
end;
end;
finally
AList.Free;
end;
end;*)
end.