| [459] | 1 | unit fCover;
 | 
|---|
 | 2 | 
 | 
|---|
 | 3 | interface
 | 
|---|
 | 4 | 
 | 
|---|
 | 5 | uses
 | 
|---|
 | 6 |   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
 | 
|---|
 | 7 |   fPage, StdCtrls, ORCtrls, ExtCtrls, rOrders, ORClasses, Menus, rCover, fAllgyBox; {REV}
 | 
|---|
 | 8 | 
 | 
|---|
 | 9 | type
 | 
|---|
 | 10 |   TfrmCover = class(TfrmPage)
 | 
|---|
 | 11 |     pnlBase: TPanel;
 | 
|---|
 | 12 |     pnlTop: TPanel;
 | 
|---|
 | 13 |     pnlNotTheBottom: TPanel;
 | 
|---|
 | 14 |     pnlMiddle: TPanel;
 | 
|---|
 | 15 |     pnlBottom: TPanel;
 | 
|---|
 | 16 |     sptTop: TSplitter;
 | 
|---|
 | 17 |     sptBottom: TSplitter;
 | 
|---|
 | 18 |     pnl_Not3: TPanel;
 | 
|---|
 | 19 |     pnl_Not8: TPanel;
 | 
|---|
 | 20 |     pnl_4: TPanel;
 | 
|---|
 | 21 |     pnl_5: TPanel;
 | 
|---|
 | 22 |     pnl_6: TPanel;
 | 
|---|
 | 23 |     pnl_7: TPanel;
 | 
|---|
 | 24 |     pnl_8: TPanel;
 | 
|---|
 | 25 |     spt_3: TSplitter;
 | 
|---|
 | 26 |     spt_4: TSplitter;
 | 
|---|
 | 27 |     spt_5: TSplitter;
 | 
|---|
 | 28 |     pnl_1: TPanel;
 | 
|---|
 | 29 |     pnl_2: TPanel;
 | 
|---|
 | 30 |     pnl_3: TPanel;
 | 
|---|
 | 31 |     spt_1: TSplitter;
 | 
|---|
 | 32 |     spt_2: TSplitter;
 | 
|---|
 | 33 |     lbl_1: TOROffsetLabel;
 | 
|---|
 | 34 |     lbl_2: TOROffsetLabel;
 | 
|---|
 | 35 |     lbl_4: TOROffsetLabel;
 | 
|---|
 | 36 |     lbl_5: TOROffsetLabel;
 | 
|---|
 | 37 |     lbl_6: TOROffsetLabel;
 | 
|---|
 | 38 |     lbl_7: TOROffsetLabel;
 | 
|---|
 | 39 |     lbl_8: TOROffsetLabel;
 | 
|---|
 | 40 |     lst_1: TORListBox;
 | 
|---|
 | 41 |     lst_2: TORListBox;
 | 
|---|
 | 42 |     lst_4: TORListBox;
 | 
|---|
 | 43 |     lst_5: TORListBox;
 | 
|---|
 | 44 |     lst_6: TORListBox;
 | 
|---|
 | 45 |     lst_7: TORListBox;
 | 
|---|
 | 46 |     lst_8: TORListBox;
 | 
|---|
 | 47 |     timPoll: TTimer;
 | 
|---|
 | 48 |     popMenuAllergies: TPopupMenu;
 | 
|---|
 | 49 |     popNewAllergy: TMenuItem;
 | 
|---|
 | 50 |     popNKA: TMenuItem;
 | 
|---|
 | 51 |     popEditAllergy: TMenuItem;
 | 
|---|
 | 52 |     popEnteredInError: TMenuItem;
 | 
|---|
 | 53 |     pnlFlag: TPanel;
 | 
|---|
 | 54 |     lstFlag: TORListBox;
 | 
|---|
 | 55 |     lblFlag: TOROffsetLabel;
 | 
|---|
 | 56 |     lbl_3: TOROffsetLabel;
 | 
|---|
 | 57 |     lst_3: TORListBox;
 | 
|---|
 | 58 |     sptFlag: TSplitter;
 | 
|---|
 | 59 |     procedure CoverItemClick(Sender: TObject);
 | 
|---|
 | 60 |     procedure timPollTimer(Sender: TObject);
 | 
|---|
 | 61 |     procedure FormClose(Sender: TObject; var Action: TCloseAction);
 | 
|---|
 | 62 |     procedure RemContextPopup(Sender: TObject; MousePos: TPoint;
 | 
|---|
 | 63 |       var Handled: Boolean);
 | 
|---|
 | 64 |     procedure FormCreate(Sender: TObject);
 | 
|---|
 | 65 |     procedure FormDestroy(Sender: TObject);
 | 
|---|
 | 66 |     procedure sptBottomCanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 67 |       var Accept: Boolean);
 | 
|---|
 | 68 |     procedure sptTopCanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 69 |       var Accept: Boolean);
 | 
|---|
 | 70 |     procedure spt_1CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 71 |       var Accept: Boolean);
 | 
|---|
 | 72 |     procedure spt_2CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 73 |       var Accept: Boolean);
 | 
|---|
 | 74 |     procedure spt_3CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 75 |       var Accept: Boolean);
 | 
|---|
 | 76 |     procedure spt_4CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 77 |       var Accept: Boolean);
 | 
|---|
 | 78 |     procedure spt_5CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 79 |       var Accept: Boolean);
 | 
|---|
 | 80 |     procedure popMenuAllergiesPopup(Sender: TObject);
 | 
|---|
 | 81 |     procedure popNewAllergyClick(Sender: TObject);
 | 
|---|
 | 82 |     procedure popNKAClick(Sender: TObject);
 | 
|---|
 | 83 |     procedure popEditAllergyClick(Sender: TObject);
 | 
|---|
 | 84 |     procedure popEnteredInErrorClick(Sender: TObject);
 | 
|---|
 | 85 |     procedure CoverItemExit(Sender: TObject);
 | 
|---|
 | 86 |     procedure lstFlagClick(Sender: TObject);
 | 
|---|
 | 87 |     procedure lstFlagKeyDown(Sender: TObject; var Key: Word;
 | 
|---|
 | 88 |       Shift: TShiftState);
 | 
|---|
 | 89 |   private
 | 
|---|
 | 90 |     FCoverList: TCoverSheetList;
 | 
|---|
 | 91 |     popReminders: TORPopupMenu;
 | 
|---|
 | 92 |     FLoadingForDFN: string;  //*DFN*
 | 
|---|
 | 93 |     procedure RemindersChange(Sender: TObject);
 | 
|---|
 | 94 |     procedure GetPatientFlag;
 | 
|---|
 | 95 |     procedure LoadList(const StsTxt: string; ListCtrl: TObject;
 | 
|---|
 | 96 |       ARpc: String; ACase, AInvert: Boolean; ADatePiece: integer; ADateFormat, AParam1, AID, ADetail: String; Reminders: boolean = FALSE);
 | 
|---|
 | 97 |   public
 | 
|---|
 | 98 |     procedure ClearPtData; override;
 | 
|---|
 | 99 |     procedure DisplayPage; override;
 | 
|---|
 | 100 |     procedure SetFontSize(NewFontSize: Integer); override;
 | 
|---|
 | 101 |     procedure NotifyOrder(OrderAction: Integer; AnOrder: TOrder); override;       {REV}
 | 
|---|
 | 102 |     procedure UpdateAllergiesList;
 | 
|---|
| [460] | 103 |     procedure UpdateVAAButton;
 | 
|---|
| [459] | 104 |   end;
 | 
|---|
 | 105 | 
 | 
|---|
 | 106 | var
 | 
|---|
 | 107 |   frmCover: TfrmCover;
 | 
|---|
| [460] | 108 |   VAAFlag: TStringList;
 | 
|---|
 | 109 |   MHVFlag: TStringList;
 | 
|---|
 | 110 |   VAA_DFN: string;
 | 
|---|
 | 111 |   PtIsVAA: boolean;
 | 
|---|
 | 112 |   PtIsMHV: boolean;  
 | 
|---|
| [459] | 113 | 
 | 
|---|
 | 114 | const
 | 
|---|
 | 115 |   CoverSplitters1 = 'frmCoverSplitters1';
 | 
|---|
 | 116 |   CoverSplitters2 = 'frmCoverSplitters2';
 | 
|---|
 | 117 | 
 | 
|---|
 | 118 | implementation
 | 
|---|
 | 119 | 
 | 
|---|
 | 120 | {$R *.DFM}
 | 
|---|
 | 121 | 
 | 
|---|
| [460] | 122 | uses ORNet, ORFn, fRptBox, fVitals, fvit, fFrame, uCore, TRPCB, uConst, uInit,
 | 
|---|
 | 123 |   uReminders, rReminders, fARTAllgy, uOrPtf, fPatientFlagMulti, rODAllergy, rMisc;
 | 
|---|
| [459] | 124 | 
 | 
|---|
 | 125 | const
 | 
|---|
 | 126 |   TAG_PROB = 10;
 | 
|---|
 | 127 |   TAG_ALLG = 20;
 | 
|---|
 | 128 |   TAG_POST = 30;
 | 
|---|
 | 129 |   TAG_MEDS = 40;
 | 
|---|
 | 130 |   TAG_RMND = 50;
 | 
|---|
 | 131 |   TAG_LABS = 60;
 | 
|---|
 | 132 |   TAG_VITL = 70;
 | 
|---|
 | 133 |   TAG_VSIT = 80;
 | 
|---|
 | 134 |   RemID    = '50';
 | 
|---|
 | 135 | 
 | 
|---|
 | 136 |   TX_INACTIVE_CODE = 'This problem references an ICD code that is not currently active.' + #13#10 +
 | 
|---|
 | 137 |                      'Please correct this code using the ''Problems'' tab.';
 | 
|---|
 | 138 |   TC_INACTIVE_CODE = 'Inactive ICD code';
 | 
|---|
 | 139 | 
 | 
|---|
 | 140 | var
 | 
|---|
 | 141 |   uIPAddress: string;
 | 
|---|
 | 142 |   uARTCoverSheetParams: string;
 | 
|---|
 | 143 | 
 | 
|---|
 | 144 | procedure TfrmCover.ClearPtData;
 | 
|---|
 | 145 | { clears all lists displayed on the cover sheet }
 | 
|---|
 | 146 | begin
 | 
|---|
 | 147 |   timPoll.Enabled := False;
 | 
|---|
 | 148 |   if Length(FLoadingForDFN) > 0 then StopCoverSheet(FLoadingForDFN, uIPAddress, frmFrame.Handle);  //*DFN*
 | 
|---|
 | 149 |   FLoadingForDFN := '';  //*DFN*
 | 
|---|
 | 150 |   inherited ClearPtData;
 | 
|---|
 | 151 |   lst_1.Clear;
 | 
|---|
 | 152 |   lst_2.Clear;
 | 
|---|
 | 153 |   lst_3.Clear;
 | 
|---|
 | 154 |   lst_4.Clear;
 | 
|---|
 | 155 |   lst_5.Clear;
 | 
|---|
 | 156 |   lst_6.Clear;
 | 
|---|
 | 157 |   lst_7.Clear;
 | 
|---|
 | 158 |   lst_8.Clear;
 | 
|---|
 | 159 |   pnl_1.Visible := false;
 | 
|---|
 | 160 |   pnl_2.Visible := false;
 | 
|---|
 | 161 |   pnl_3.Visible := false;
 | 
|---|
 | 162 |   pnl_4.Visible := false;
 | 
|---|
 | 163 |   pnl_5.Visible := false;
 | 
|---|
 | 164 |   pnl_6.Visible := false;
 | 
|---|
 | 165 |   pnl_7.Visible := false;
 | 
|---|
 | 166 |   pnl_8.Visible := false;
 | 
|---|
 | 167 | end;
 | 
|---|
 | 168 | 
 | 
|---|
 | 169 | procedure TfrmCover.LoadList(const StsTxt: string; ListCtrl: TObject;
 | 
|---|
 | 170 |   ARpc: String; ACase, AInvert: Boolean; ADatePiece: integer; ADateFormat, AParam1, AID, ADetail: String; Reminders: boolean = FALSE);
 | 
|---|
 | 171 | begin
 | 
|---|
 | 172 |   StatusText(StsTxt);
 | 
|---|
 | 173 |   if(ListCtrl is TORListBox) then
 | 
|---|
 | 174 |   begin
 | 
|---|
 | 175 |     ListGeneric((ListCtrl as TORListBox).Items, ARpc, ACase, AInvert, ADatePiece, ADateFormat, AParam1, ADetail, AID);
 | 
|---|
 | 176 |     if((ListCtrl as TORListBox).Items.Count = 0) then
 | 
|---|
 | 177 |       (ListCtrl as TORListBox).Items.Add(NoDataText(Reminders));
 | 
|---|
 | 178 |   end
 | 
|---|
 | 179 |   else
 | 
|---|
 | 180 |   begin
 | 
|---|
 | 181 |     ListGeneric(ListCtrl as TStrings, ARpc, ACase, AInvert, ADatePiece, ADateFormat, AParam1, ADetail, AID);
 | 
|---|
 | 182 |     if((ListCtrl as TStrings).Count = 0) then
 | 
|---|
 | 183 |       (ListCtrl as TStrings).Add(NoDataText(Reminders));
 | 
|---|
 | 184 |   end;
 | 
|---|
 | 185 |   StatusText('');
 | 
|---|
 | 186 | end;
 | 
|---|
 | 187 | 
 | 
|---|
 | 188 | procedure TfrmCover.DisplayPage;
 | 
|---|
 | 189 | { loads the cover sheet lists if the patient has just been selected }
 | 
|---|
 | 190 | var
 | 
|---|
 | 191 |   DontDo, ForeGround: string;
 | 
|---|
 | 192 |   WaitCount: Integer;
 | 
|---|
 | 193 |   RemSL: TStringList;
 | 
|---|
 | 194 |   uCoverSheetList: TStringList;
 | 
|---|
 | 195 |   i, iRem: Integer;
 | 
|---|
 | 196 |   aIFN, aRPC, aCase, aInvert, aDatePiece, aDateFormat, aTextColor, aStatus, aParam1, aID, aQualifier, aTabPos, aName, aPiece, aDetail, x: string;
 | 
|---|
 | 197 |   bCase, bInvert: Boolean;
 | 
|---|
 | 198 |   iDatePiece: Integer;
 | 
|---|
 | 199 | 
 | 
|---|
 | 200 | (*  procedure LoadList(const StsTxt: string; ListCtrl: TObject;
 | 
|---|
 | 201 |     ARpc: String; ACase, AInvert: Boolean; ADatePiece: integer; ADateFormat, AParam1, AID, ADetail: String; Reminders: boolean = FALSE);
 | 
|---|
 | 202 |   begin
 | 
|---|
 | 203 |     StatusText(StsTxt);
 | 
|---|
 | 204 |     if(ListCtrl is TORListBox) then
 | 
|---|
 | 205 |     begin
 | 
|---|
 | 206 |       ListGeneric((ListCtrl as TORListBox).Items, ARpc, ACase, AInvert, ADatePiece, ADateFormat, AParam1, ADetail, AID);
 | 
|---|
 | 207 |       if((ListCtrl as TORListBox).Items.Count = 0) then
 | 
|---|
 | 208 |         (ListCtrl as TORListBox).Items.Add(NoDataText(Reminders));
 | 
|---|
 | 209 |     end
 | 
|---|
 | 210 |     else
 | 
|---|
 | 211 |     begin
 | 
|---|
 | 212 |       ListGeneric(ListCtrl as TStrings, ARpc, ACase, AInvert, ADatePiece, ADateFormat, AParam1, ADetail, AID);
 | 
|---|
 | 213 |       if((ListCtrl as TStrings).Count = 0) then
 | 
|---|
 | 214 |         (ListCtrl as TStrings).Add(NoDataText(Reminders));
 | 
|---|
 | 215 |     end;
 | 
|---|
 | 216 |     StatusText('');
 | 
|---|
 | 217 |   end;*)
 | 
|---|
 | 218 | 
 | 
|---|
 | 219 |   procedure WaitList(ListCtrl: TORListBox);
 | 
|---|
 | 220 |   begin
 | 
|---|
 | 221 |     ListCtrl.Clear;
 | 
|---|
 | 222 |     Inc(WaitCount);
 | 
|---|
 | 223 |     ListCtrl.Items.Add('0^Retrieving in background...');
 | 
|---|
 | 224 |     ListCtrl.Repaint;
 | 
|---|
 | 225 |   end;
 | 
|---|
 | 226 | 
 | 
|---|
 | 227 | begin
 | 
|---|
 | 228 |   inherited DisplayPage;
 | 
|---|
 | 229 |   iRem := -1;
 | 
|---|
 | 230 |   frmFrame.mnuFilePrintSetup.Enabled := True;
 | 
|---|
 | 231 |   if InitPage then
 | 
|---|
 | 232 |     uIPAddress := DottedIPStr;
 | 
|---|
 | 233 |   if InitPatient then
 | 
|---|
 | 234 |     begin
 | 
|---|
 | 235 |       WaitCount := 0;
 | 
|---|
 | 236 |       if InteractiveRemindersActive then
 | 
|---|
 | 237 |       begin
 | 
|---|
 | 238 |         if(InitialRemindersLoaded) then
 | 
|---|
 | 239 |         begin
 | 
|---|
 | 240 |           DontDo := RemID+';';
 | 
|---|
 | 241 |           NotifyWhenRemindersChange(RemindersChange);
 | 
|---|
 | 242 |         end
 | 
|---|
 | 243 |         else
 | 
|---|
 | 244 |         begin
 | 
|---|
 | 245 |           DontDo := '';
 | 
|---|
 | 246 |           RemoveNotifyRemindersChange(RemindersChange);
 | 
|---|
 | 247 |         end;
 | 
|---|
 | 248 |       end;
 | 
|---|
 | 249 |       ForeGround := StartCoverSheet(uIPAddress, frmFrame.Handle,
 | 
|---|
 | 250 |                     DontDo, InteractiveRemindersActive);
 | 
|---|
 | 251 |       uCoverSheetList := TStringList.Create;
 | 
|---|
 | 252 |       LoadCoverSheetList(uCoverSheetList);
 | 
|---|
 | 253 |       for i := 0 to uCoverSheetList.Count - 1 do
 | 
|---|
 | 254 |         begin
 | 
|---|
 | 255 |           x := uCoverSheetList[i];
 | 
|---|
 | 256 |           aName := Piece(x,'^',2);
 | 
|---|
 | 257 |           aRPC := Piece(x,'^',6);
 | 
|---|
 | 258 |           aCase := Piece(x,'^',7);
 | 
|---|
 | 259 |           aInvert := Piece(x,'^',8);
 | 
|---|
 | 260 |           aDatePiece := Piece(x,'^',11);
 | 
|---|
 | 261 |           aDateFormat := Piece(x,'^',10);
 | 
|---|
 | 262 |           aTextColor := Piece(x,'^',9);
 | 
|---|
 | 263 |           aStatus := 'Searching for ' + Piece(x,'^',2) + '...';
 | 
|---|
 | 264 |           aParam1 := Piece(x,'^',12);
 | 
|---|
 | 265 |           aID := Piece(x,'^',1);         //TAG_PROB, TAG_RMND, ETC.
 | 
|---|
 | 266 |           aQualifier := Piece(x,'^',13);
 | 
|---|
 | 267 |           aTabPos := Piece(x,'^',14);
 | 
|---|
 | 268 |           aPiece := Piece(x,'^',15);
 | 
|---|
 | 269 |           aDetail := Piece(x,'^',16);
 | 
|---|
 | 270 |           aIFN := Piece(x,'^',17);
 | 
|---|
 | 271 |           bCase := FALSE;
 | 
|---|
 | 272 |           bInvert := FALSE;
 | 
|---|
 | 273 |           iDatePiece := 0;
 | 
|---|
 | 274 |           if aCase = '1' then bCase := TRUE;
 | 
|---|
 | 275 |           if aInvert = '1' then bInvert := TRUE;
 | 
|---|
 | 276 |           if Length(aDatePiece) > 0 then iDatePiece := StrToInt(aDatePiece);
 | 
|---|
 | 277 |           if Length(aTextColor) > 0 then aTextColor := 'cl' + aTextColor;
 | 
|---|
 | 278 |           // Assign properties to components
 | 
|---|
 | 279 |           FCoverList.CVlbl(i).Caption := aName;
 | 
|---|
 | 280 |           FCoverList.CVlst(i).Caption := aName;
 | 
|---|
 | 281 |           if Length(aTabPos) > 0 then FCoverList.CVlst(i).TabPositions := aTabPos;
 | 
|---|
 | 282 |           if Length(aTextColor) > 0 then FCoverList.CVlst(i).Font.Color := StringToColor(aTextColor);
 | 
|---|
 | 283 |           if Length(aPiece) > 0 then FCoverList.CVlst(i).Pieces := aPiece;
 | 
|---|
 | 284 |           FCoverList.CVlst(i).Tag := StrToInt(aID);
 | 
|---|
 | 285 |           if(aID <> RemID) then
 | 
|---|
 | 286 |           begin
 | 
|---|
 | 287 |             if((aID = '20') or (Pos(aID + ';', ForeGround) > 0)) then
 | 
|---|
 | 288 |               LoadList(aStatus, FCoverList.CVlst(i), aRpc, bCase, bInvert, iDatePiece, aDateFormat, aParam1, aID, aDetail)
 | 
|---|
 | 289 |             else
 | 
|---|
 | 290 |               Waitlist(FCoverList.CVlst(i));
 | 
|---|
 | 291 |             if (aID = '20') and ARTPatchInstalled then with FCoverList.CVlst(i) do
 | 
|---|
 | 292 |               begin
 | 
|---|
 | 293 |                 uARTCoverSheetParams := x;
 | 
|---|
 | 294 |                 PopupMenu := popMenuAllergies;
 | 
|---|
 | 295 |                 RightClickSelect := True;
 | 
|---|
 | 296 |                 popMenuAllergies.PopupComponent := FCoverList.CVlst(i);
 | 
|---|
 | 297 |               end;
 | 
|---|
 | 298 |           end;
 | 
|---|
 | 299 |           FCoverList.CVpln(i).Visible := true;
 | 
|---|
 | 300 |           if aID = RemID then
 | 
|---|
 | 301 |             begin
 | 
|---|
 | 302 |               FCoverList.CVLst(i).OnContextPopup := RemContextPopup;
 | 
|---|
 | 303 |               FCoverList.CVlst(i).RightClickSelect := True;
 | 
|---|
 | 304 |               iRem := FCoverList.CVlst(i).ComponentIndex;
 | 
|---|
 | 305 |               if InteractiveRemindersActive then
 | 
|---|
 | 306 |                 begin
 | 
|---|
 | 307 |                   if(InitialRemindersLoaded) then
 | 
|---|
 | 308 |                     CoverSheetRemindersInBackground := FALSE
 | 
|---|
 | 309 |                   else
 | 
|---|
 | 310 |                     begin
 | 
|---|
 | 311 |                       InitialRemindersLoaded := TRUE;
 | 
|---|
 | 312 |                       CoverSheetRemindersInBackground := (Pos(aID + ';', ForeGround) = 0);
 | 
|---|
 | 313 |                       if(not CoverSheetRemindersInBackground) then
 | 
|---|
 | 314 |                         begin
 | 
|---|
 | 315 |                           //InitialRemindersLoaded := TRUE;
 | 
|---|
 | 316 |                           RemSL := TStringList.Create;
 | 
|---|
 | 317 |                           try
 | 
|---|
 | 318 |                             LoadList(aStatus, RemSL, aRpc, bCase, bInvert, iDatePiece, aDateFormat, aParam1, aID, aDetail);
 | 
|---|
 | 319 |                             RemindersEvaluated(RemSL);
 | 
|---|
 | 320 |                           finally;
 | 
|---|
 | 321 |                             RemSL.Free;
 | 
|---|
 | 322 |                           end;
 | 
|---|
 | 323 |                           NotifyWhenRemindersChange(RemindersChange);
 | 
|---|
 | 324 |                         end
 | 
|---|
 | 325 |                       else
 | 
|---|
 | 326 |                           Waitlist(FCoverList.CVlst(i));
 | 
|---|
 | 327 |                     end;
 | 
|---|
 | 328 |                 end
 | 
|---|
 | 329 |               else
 | 
|---|
 | 330 |                 if Pos(aID + ';', ForeGround) > 0 then
 | 
|---|
 | 331 |                     LoadList(aStatus, FCoverList.CVlst(i), aRpc, bCase, bInvert, iDatePiece, aDateFormat, aParam1, aID, aDetail, TRUE)
 | 
|---|
 | 332 |                 else
 | 
|---|
 | 333 |                     Waitlist(FCoverList.CVlst(i));
 | 
|---|
 | 334 |               if WaitCount > 0 then
 | 
|---|
 | 335 |                 begin
 | 
|---|
 | 336 |                   FLoadingForDFN := Patient.DFN;
 | 
|---|
 | 337 |                   timPoll.Enabled := True;
 | 
|---|
 | 338 |                 end
 | 
|---|
 | 339 |               else FLoadingForDFN := '';  //*DFN*
 | 
|---|
 | 340 |               if InteractiveRemindersActive then
 | 
|---|
 | 341 |                 begin
 | 
|---|
 | 342 |                   RemindersStarted := TRUE;
 | 
|---|
 | 343 |                   LoadReminderData(CoverSheetRemindersInBackground);
 | 
|---|
 | 344 |                 end;
 | 
|---|
 | 345 |             end;
 | 
|---|
 | 346 |           if WaitCount > 0 then
 | 
|---|
 | 347 |             begin
 | 
|---|
 | 348 |               FLoadingForDFN := Patient.DFN;
 | 
|---|
 | 349 |               timPoll.Enabled := True;
 | 
|---|
 | 350 |             end
 | 
|---|
 | 351 |           else FLoadingForDFN := '';  //*DFN*
 | 
|---|
 | 352 |         end;
 | 
|---|
 | 353 |       FocusFirstControl;
 | 
|---|
 | 354 |       spt_2.Left := pnl_Not3.Left + pnl_Not3.Width;
 | 
|---|
 | 355 |       spt_5.Left := pnl_Not8.Left + pnl_Not8.Width;
 | 
|---|
 | 356 |       GetPatientFlag;
 | 
|---|
 | 357 |     end;
 | 
|---|
 | 358 |   if InitPage then
 | 
|---|
 | 359 |     begin
 | 
|---|
 | 360 |       popReminders := TORPopupMenu.Create(Self);
 | 
|---|
 | 361 |       if InteractiveRemindersActive then
 | 
|---|
 | 362 |         begin
 | 
|---|
 | 363 |           SetReminderPopupCoverRoutine(popReminders);
 | 
|---|
 | 364 |           if iRem > -1 then
 | 
|---|
 | 365 |             (frmCover.Components[iRem] as TORListBox).PopupMenu := popReminders;
 | 
|---|
 | 366 |         end
 | 
|---|
 | 367 |       else
 | 
|---|
 | 368 |         begin
 | 
|---|
 | 369 |           if iRem > -1 then
 | 
|---|
 | 370 |             begin
 | 
|---|
 | 371 |               (frmCover.Components[iRem] as TORListBox).RightClickSelect := FALSE;
 | 
|---|
 | 372 |               (frmCover.Components[iRem] as TORListBox).OnMouseUp := nil;
 | 
|---|
 | 373 |             end;
 | 
|---|
 | 374 |         end;
 | 
|---|
 | 375 |     end;
 | 
|---|
 | 376 | end;
 | 
|---|
 | 377 | 
 | 
|---|
 | 378 | procedure TfrmCover.SetFontSize(NewFontSize: Integer);
 | 
|---|
 | 379 | var
 | 
|---|
 | 380 |   i: integer;
 | 
|---|
 | 381 | begin
 | 
|---|
 | 382 |   inherited;
 | 
|---|
 | 383 |   with frmCover do
 | 
|---|
 | 384 |           for i := ComponentCount - 1 downto 0 do
 | 
|---|
 | 385 |             begin
 | 
|---|
 | 386 |               if Components[i] is TORListBox then
 | 
|---|
 | 387 |                 begin
 | 
|---|
 | 388 |                   case Components[i].Tag of
 | 
|---|
 | 389 |                     30: (Components[i] as TORListBox).Font.Size := NewFontSize;
 | 
|---|
 | 390 |                   end;
 | 
|---|
 | 391 |                 end;
 | 
|---|
 | 392 |             end;
 | 
|---|
 | 393 | end;
 | 
|---|
 | 394 | 
 | 
|---|
 | 395 | procedure TfrmCover.CoverItemClick(Sender: TObject);
 | 
|---|
 | 396 | { displays details for an item that has been clicked on the cover sheet }
 | 
|---|
 | 397 | var
 | 
|---|
 | 398 |   i: integer;
 | 
|---|
 | 399 |   aDetail: string;
 | 
|---|
 | 400 | begin
 | 
|---|
 | 401 |   inherited;
 | 
|---|
 | 402 |   with TORListBox(Sender) do
 | 
|---|
 | 403 |   begin
 | 
|---|
 | 404 |     aDetail := Uppercase(Piece(TORListBox(Sender).Items[TORListBox(Sender).ItemIndex],'^',12));
 | 
|---|
 | 405 |     case Tag of
 | 
|---|
 | 406 |      TAG_PROB:
 | 
|---|
 | 407 |              if ItemIEN > 0  then
 | 
|---|
 | 408 |                begin
 | 
|---|
 | 409 |                  i := ItemIndex;
 | 
|---|
 | 410 |                  if Piece(Items[ItemIndex], U, 13) = '#' then
 | 
|---|
 | 411 |                    InfoBox(TX_INACTIVE_CODE, TC_INACTIVE_CODE, MB_ICONWARNING or MB_OK);
 | 
|---|
 | 412 |                  ItemIndex := i;
 | 
|---|
 | 413 |                  ReportBox(DetailGeneric(ItemIEN, ItemID, aDetail), DisplayText[ItemIndex], True);
 | 
|---|
 | 414 |                end;
 | 
|---|
 | 415 |      TAG_ALLG:
 | 
|---|
 | 416 | { TODO -oRich V. -cART/Allergy : What to do about NKA only via right-click menu?  Add here? }
 | 
|---|
 | 417 |              if ItemIEN > 0 then
 | 
|---|
 | 418 |                begin
 | 
|---|
 | 419 |                  if ARTPatchInstalled then
 | 
|---|
 | 420 |                    AllergyBox(DetailGeneric(ItemIEN, ItemID, aDetail), DisplayText[ItemIndex], True, ItemIEN)
 | 
|---|
 | 421 |                  else
 | 
|---|
 | 422 |                    ReportBox(DetailGeneric(ItemIEN, ItemID, aDetail), DisplayText[ItemIndex], True);
 | 
|---|
 | 423 |                end;
 | 
|---|
 | 424 |      TAG_POST:
 | 
|---|
 | 425 |              if DisplayText[ItemIndex] = 'Allergies' then
 | 
|---|
 | 426 |                ReportBox(DetailPosting('A'), DisplayText[ItemIndex], True)
 | 
|---|
 | 427 |              else if ItemID <> '' then
 | 
|---|
 | 428 |                begin
 | 
|---|
 | 429 |                  NotifyOtherApps(NAE_REPORT, 'TIU^' + ItemID);
 | 
|---|
 | 430 |                  ReportBox(DetailPosting(ItemID), DisplayText[ItemIndex], True);
 | 
|---|
 | 431 |                end;
 | 
|---|
 | 432 |      TAG_MEDS:
 | 
|---|
 | 433 |              if (ItemID <> '') and (ItemID <> '0') then
 | 
|---|
 | 434 |                ReportBox(DetailMed(ItemID), DisplayText[ItemIndex], True);
 | 
|---|
 | 435 |      TAG_RMND:
 | 
|---|
 | 436 |              if ItemIEN > 0  then
 | 
|---|
 | 437 |                ReportBox(DetailReminder(ItemIEN), ClinMaintText + ': ' + DisplayText[ItemIndex], True);
 | 
|---|
 | 438 |      TAG_LABS:
 | 
|---|
 | 439 |              if (ItemID <> '') and (Piece(ItemID,';',1) <> '0') and (not ContainsAlpha(Piece(ItemID,';',1))) then
 | 
|---|
 | 440 |                ReportBox(DetailGeneric(ItemIEN, ItemID, aDetail), DisplayText[ItemIndex], True);
 | 
|---|
 | 441 |      TAG_VITL:
 | 
|---|
 | 442 |              if ItemID <> '' then
 | 
|---|
 | 443 |                begin
 | 
|---|
| [460] | 444 |                  frmFrame.VitalsDLLActive := True;
 | 
|---|
 | 445 |                  SelectVitals(Piece(DisplayText[ItemIndex],Char(9),1)); //Char(9) = Tab Character
 | 
|---|
 | 446 |                  frmFrame.VitalsDLLActive := False;
 | 
|---|
 | 447 |                  ClearPtData;
 | 
|---|
 | 448 |                  DisplayPage;
 | 
|---|
| [459] | 449 |                end;
 | 
|---|
 | 450 | 
 | 
|---|
 | 451 |      TAG_VSIT:
 | 
|---|
 | 452 |              if (ItemID <> '') and (ItemID <> '0') then
 | 
|---|
 | 453 |                ReportBox(DetailGeneric(ItemIEN, ItemID, aDetail), DisplayText[ItemIndex], True);
 | 
|---|
 | 454 |     else
 | 
|---|
 | 455 |       //don't try to display a detail report
 | 
|---|
 | 456 |     end;
 | 
|---|
| [460] | 457 |     if uInit.TimedOut then                       // Fix for CQ: 8011
 | 
|---|
 | 458 |       Abort
 | 
|---|
 | 459 |     else
 | 
|---|
 | 460 |       ItemIndex := -1;
 | 
|---|
| [459] | 461 |   end;
 | 
|---|
 | 462 | end;
 | 
|---|
 | 463 | 
 | 
|---|
 | 464 | procedure TfrmCover.FormClose(Sender: TObject; var Action: TCloseAction);
 | 
|---|
 | 465 | begin
 | 
|---|
 | 466 |   inherited;
 | 
|---|
 | 467 |   timPoll.Enabled := False;
 | 
|---|
 | 468 |   if Length(FLoadingForDFN) > 0 then StopCoverSheet(FLoadingForDFN, uIPAddress, frmFrame.Handle);  //*DFN*
 | 
|---|
 | 469 |   FLoadingForDFN := '';  //*DFN*
 | 
|---|
 | 470 | end;
 | 
|---|
 | 471 | 
 | 
|---|
 | 472 | procedure TfrmCover.timPollTimer(Sender: TObject);
 | 
|---|
 | 473 | const
 | 
|---|
 | 474 |   RemUnchanged = '[{^Reminders @ @ @ Unchanged^]}';
 | 
|---|
 | 475 | 
 | 
|---|
 | 476 | var
 | 
|---|
 | 477 |   Done: Boolean;
 | 
|---|
 | 478 |   ReminderSL: TStringList;
 | 
|---|
 | 479 |   ProbSL, PostSL, MedsSL, RemSL, LabsSL, VitSL, VisitSL: TStringList;
 | 
|---|
 | 480 |   i, iProb, iPost, iMeds, iRem, iLabs, iVit, iVisit: integer;
 | 
|---|
 | 481 | begin
 | 
|---|
 | 482 |   inherited;
 | 
|---|
 | 483 |   iProb := -1;
 | 
|---|
 | 484 |   iPost := -1;
 | 
|---|
 | 485 |   iMeds := -1;
 | 
|---|
 | 486 |   iRem := -1;
 | 
|---|
 | 487 |   iLabs := -1;
 | 
|---|
 | 488 |   iVit := -1;
 | 
|---|
 | 489 |   iVisit := -1;
 | 
|---|
 | 490 |   with frmCover do
 | 
|---|
 | 491 |     for i := ComponentCount - 1 downto 0 do
 | 
|---|
 | 492 |       begin
 | 
|---|
 | 493 |         if Components[i] is TORListBox then
 | 
|---|
 | 494 |           begin
 | 
|---|
 | 495 |             case Components[i].Tag of
 | 
|---|
 | 496 |               TAG_PROB: iProb := i;
 | 
|---|
 | 497 |               TAG_POST: iPost := i;
 | 
|---|
 | 498 |               TAG_MEDS: iMeds := i;
 | 
|---|
 | 499 |               TAG_RMND: iRem := i;
 | 
|---|
 | 500 |               TAG_LABS: iLabs := i;
 | 
|---|
 | 501 |               TAG_VITL: iVit := i;
 | 
|---|
 | 502 |               TAG_VSIT: iVisit := i;
 | 
|---|
 | 503 |             end;
 | 
|---|
 | 504 |           end;
 | 
|---|
 | 505 |       end;
 | 
|---|
 | 506 |   ProbSL := TStringList.Create;
 | 
|---|
 | 507 |   PostSL := TStringList.Create;
 | 
|---|
 | 508 |   MedsSL := TStringList.Create;
 | 
|---|
 | 509 |   RemSL := TStringList.Create;
 | 
|---|
 | 510 |   LabsSL := TStringList.Create;
 | 
|---|
 | 511 |   VitSL := TStringList.Create;
 | 
|---|
 | 512 |   VisitSL := TStringList.Create;
 | 
|---|
 | 513 |   if InteractiveRemindersActive then
 | 
|---|
 | 514 |   begin
 | 
|---|
 | 515 |     ReminderSL := TStringList.Create;
 | 
|---|
 | 516 |     try
 | 
|---|
 | 517 |       ReminderSL.Add(RemUnchanged);
 | 
|---|
 | 518 |       ListAllBackGround(Done, ProbSL, PostSL, MedsSL, ReminderSL, LabsSL, VitSL, VisitSL, uIPAddress, frmFrame.Handle);
 | 
|---|
 | 519 |       if (iProb > -1) and (ProbSL.Count > 0) then (Components[iProb] as TORListBox).Items.Assign(ProbSL);
 | 
|---|
 | 520 |       if (iPost > -1) and (PostSL.Count > 0) then (Components[iPost] as TORListBox).Items.Assign(PostSL);
 | 
|---|
 | 521 |       if (iMeds > -1) and (MedsSL.Count > 0) then (Components[iMeds] as TORListBox).Items.Assign(MedsSL);
 | 
|---|
 | 522 |       if (iLabs > -1) and (LabsSL.Count > 0) then (Components[iLabs] as TORListBox).Items.Assign(LabsSL);
 | 
|---|
 | 523 |       if (iVit > -1) and (VitSL.Count > 0) then (Components[iVit] as TORListBox).Items.Assign(VitSL);
 | 
|---|
 | 524 |       if (iVisit > -1) and (VisitSL.Count > 0) then (Components[iVisit] as TORListBox).Items.Assign(VisitSL);
 | 
|---|
 | 525 |       // since this RPC is connected to a timer, clear the results each time to make sure that
 | 
|---|
 | 526 |       // the results aren't passed to another RPC in the case that there is an error
 | 
|---|
 | 527 |       RPCBrokerV.ClearResults := True;
 | 
|---|
 | 528 |       if Done then
 | 
|---|
 | 529 |       begin
 | 
|---|
 | 530 |         timPoll.Enabled := False;
 | 
|---|
 | 531 |         FLoadingForDFN := '';  //*DFN*
 | 
|---|
 | 532 |       end;
 | 
|---|
 | 533 |       if(not InitialRemindersLoaded) and
 | 
|---|
 | 534 |         (ReminderSL.Count <> 1) or (ReminderSL[0] <> RemUnchanged) then
 | 
|---|
 | 535 |       begin
 | 
|---|
 | 536 |         CoverSheetRemindersInBackground := FALSE;
 | 
|---|
 | 537 | //        InitialRemindersLoaded := TRUE;
 | 
|---|
 | 538 |         RemindersEvaluated(ReminderSL);
 | 
|---|
 | 539 |         NotifyWhenRemindersChange(RemindersChange);
 | 
|---|
 | 540 |       end;
 | 
|---|
 | 541 |     finally
 | 
|---|
 | 542 |       ReminderSL.Free;
 | 
|---|
 | 543 |     end;
 | 
|---|
 | 544 |   end
 | 
|---|
 | 545 |   else
 | 
|---|
 | 546 |   begin
 | 
|---|
 | 547 |     ListAllBackGround(Done, ProbSL, PostSL, MedsSL, RemSL, LabsSL, VitSL, VisitSL, uIPAddress, frmFrame.Handle);
 | 
|---|
 | 548 |     if (iProb > -1) and (ProbSL.Count > 0) then (Components[iProb] as TORListBox).Items.Assign(ProbSL);
 | 
|---|
 | 549 |     if (iPost > -1) and (PostSL.Count > 0) then (Components[iPost] as TORListBox).Items.Assign(PostSL);
 | 
|---|
 | 550 |     if (iMeds > -1) and (MedsSL.Count > 0) then (Components[iMeds] as TORListBox).Items.Assign(MedsSL);
 | 
|---|
 | 551 |     if (iRem > -1) and (RemSL.Count > 0) then (Components[iRem] as TORListBox).Items.Assign(RemSL);
 | 
|---|
 | 552 |     if (iLabs > -1) and (LabsSL.Count > 0) then (Components[iLabs] as TORListBox).Items.Assign(LabsSL);
 | 
|---|
 | 553 |     if (iVit > -1) and (VitSL.Count > 0) then (Components[iVit] as TORListBox).Items.Assign(VitSL);
 | 
|---|
 | 554 |     if (iVisit > -1) and (VisitSL.Count > 0) then (Components[iVisit] as TORListBox).Items.Assign(VisitSL);
 | 
|---|
 | 555 |     // since this RPC is connected to a timer, clear the results each time to make sure that
 | 
|---|
 | 556 |     // the results aren't passed to another RPC in the case that there is an error
 | 
|---|
 | 557 |     RPCBrokerV.ClearResults := True;
 | 
|---|
 | 558 |     if Done then
 | 
|---|
 | 559 |     begin
 | 
|---|
 | 560 |       timPoll.Enabled := False;
 | 
|---|
 | 561 |       FLoadingForDFN := '';  //*DFN*
 | 
|---|
 | 562 |     end;
 | 
|---|
 | 563 |   end;
 | 
|---|
 | 564 |   ProbSL.Free;
 | 
|---|
 | 565 |   PostSL.Free;
 | 
|---|
 | 566 |   MedsSL.Free;
 | 
|---|
 | 567 |   RemSL.Free;
 | 
|---|
 | 568 |   LabsSL.Free;
 | 
|---|
 | 569 |   VitSL.Free;
 | 
|---|
 | 570 |   VisitSL.Free;
 | 
|---|
 | 571 | end;
 | 
|---|
 | 572 | 
 | 
|---|
 | 573 | procedure TfrmCover.NotifyOrder(OrderAction: Integer; AnOrder: TOrder);    {REV}
 | 
|---|
 | 574 | var
 | 
|---|
 | 575 |   i: integer;
 | 
|---|
 | 576 | begin
 | 
|---|
 | 577 |   case OrderAction of
 | 
|---|
 | 578 |   ORDER_SIGN:
 | 
|---|
 | 579 |     begin
 | 
|---|
 | 580 |       with frmCover do
 | 
|---|
 | 581 |           for i := ComponentCount - 1 downto 0 do
 | 
|---|
 | 582 |             begin
 | 
|---|
 | 583 |               if Components[i] is TORListBox then
 | 
|---|
 | 584 |                 begin
 | 
|---|
 | 585 |                   case Components[i].Tag of
 | 
|---|
 | 586 |                     20: UpdateAllergiesList;
 | 
|---|
 | 587 |                     30: ListPostings((Components[i] as TORListBox).Items);
 | 
|---|
 | 588 |                   end;
 | 
|---|
 | 589 |                 end;
 | 
|---|
 | 590 |             end;
 | 
|---|
 | 591 |     end;
 | 
|---|
 | 592 |   end;
 | 
|---|
 | 593 | end;
 | 
|---|
 | 594 | 
 | 
|---|
 | 595 | procedure TfrmCover.RemindersChange(Sender: TObject);
 | 
|---|
 | 596 | var
 | 
|---|
 | 597 |   i: integer;
 | 
|---|
 | 598 |   tmp: string;
 | 
|---|
 | 599 |   lb: TORListBox;
 | 
|---|
 | 600 | 
 | 
|---|
 | 601 | begin
 | 
|---|
 | 602 |   lb := nil;
 | 
|---|
 | 603 |   with frmCover do
 | 
|---|
 | 604 |     for i := ComponentCount - 1 downto 0 do
 | 
|---|
 | 605 |     begin
 | 
|---|
 | 606 |       if (Components[i] is TORListBox) and (Components[i].Tag = TAG_RMND) then
 | 
|---|
 | 607 |       begin
 | 
|---|
 | 608 |         lb := (Components[i] as TORListBox);
 | 
|---|
 | 609 |         break;
 | 
|---|
 | 610 |       end;
 | 
|---|
 | 611 |     end;
 | 
|---|
 | 612 |   if assigned(lb) then
 | 
|---|
 | 613 |   begin
 | 
|---|
 | 614 |     lb.Clear;
 | 
|---|
| [460] | 615 |    //i := -1;
 | 
|---|
 | 616 |     //AGP Change 26.8 this changes allowed Reminders to display on the coversheet
 | 
|---|
 | 617 |     //even if they had an error on evaluation
 | 
|---|
 | 618 |     for i := 0 to ActiveReminders.Count-1 do
 | 
|---|
| [459] | 619 |       begin
 | 
|---|
| [460] | 620 |         if Piece(ActiveReminders.Strings[i],U,6)='1' then
 | 
|---|
 | 621 |            begin
 | 
|---|
 | 622 |              tmp := ActiveReminders[i];
 | 
|---|
 | 623 |              SetPiece(tmp, U, 3, FormatFMDateTimeStr('mmm dd,yy', Piece(tmp, U, 3)));
 | 
|---|
 | 624 |              lb.Items.Add(tmp);
 | 
|---|
 | 625 |            end;
 | 
|---|
 | 626 |         if Piece(ActiveReminders.Strings[i],U,6)='3' then
 | 
|---|
 | 627 |            begin
 | 
|---|
 | 628 |              tmp := ActiveReminders[i];
 | 
|---|
 | 629 |              SetPiece(tmp, U, 3, 'Error');
 | 
|---|
 | 630 |              lb.Items.Add(tmp);
 | 
|---|
 | 631 |            end;
 | 
|---|
 | 632 |         if Piece(ActiveReminders.Strings[i],U,6)='4' then
 | 
|---|
 | 633 |            begin
 | 
|---|
 | 634 |              tmp := ActiveReminders[i];
 | 
|---|
 | 635 |              SetPiece(tmp, U, 3, 'CNBD');
 | 
|---|
 | 636 |              lb.Items.Add(tmp);
 | 
|---|
 | 637 |            end;
 | 
|---|
| [459] | 638 |       end;
 | 
|---|
| [460] | 639 |       //AGP End Change for 26.8
 | 
|---|
| [459] | 640 |     if(RemindersEvaluatingInBackground) then
 | 
|---|
 | 641 |       lb.Items.Insert(0,'0^Evaluating Reminders...')
 | 
|---|
 | 642 |     else
 | 
|---|
 | 643 |     if(lb.Items.Count = 0) and (RemindersStarted) then
 | 
|---|
 | 644 |       lb.Items.Add(NoDataText(TRUE));
 | 
|---|
 | 645 |   end;
 | 
|---|
 | 646 | end;
 | 
|---|
 | 647 | 
 | 
|---|
 | 648 | Procedure TfrmCover.RemContextPopup(Sender: TObject;
 | 
|---|
 | 649 |   MousePos: TPoint; var Handled: Boolean);
 | 
|---|
 | 650 | var
 | 
|---|
 | 651 |   idx: integer;
 | 
|---|
 | 652 |   i, iRem: integer;
 | 
|---|
 | 653 | begin
 | 
|---|
 | 654 |   inherited;
 | 
|---|
 | 655 |   Handled := TRUE;
 | 
|---|
 | 656 |   iRem := -1;
 | 
|---|
 | 657 |   with frmCover do
 | 
|---|
 | 658 |     for i := ComponentCount - 1 downto 0 do
 | 
|---|
 | 659 |       begin
 | 
|---|
 | 660 |         if Components[i] is TORListBox then
 | 
|---|
 | 661 |           begin
 | 
|---|
 | 662 |             case Components[i].Tag of
 | 
|---|
 | 663 |               TAG_RMND: iRem := i;
 | 
|---|
 | 664 |             end;
 | 
|---|
 | 665 |           end;
 | 
|---|
 | 666 |       end;
 | 
|---|
 | 667 |   if iRem > -1 then
 | 
|---|
 | 668 |     if ((frmCover.Components[iRem] as TORListBox).ItemIndex >= 0) then
 | 
|---|
 | 669 |       begin
 | 
|---|
 | 670 |         idx := StrToIntDef(Piece((frmCover.Components[iRem] as TORListBox).Items[(frmCover.Components[iRem] as TORListBox).ItemIndex],U,1),0);
 | 
|---|
 | 671 |         if(idx <> 0) then
 | 
|---|
 | 672 |         begin
 | 
|---|
 | 673 |           popReminders.Data := RemCode + (frmCover.Components[iRem] as TORListBox).Items[(frmCover.Components[iRem] as TORListBox).ItemIndex];
 | 
|---|
 | 674 |           Handled := FALSE;
 | 
|---|
 | 675 |         end;
 | 
|---|
 | 676 |       end;
 | 
|---|
 | 677 | end;
 | 
|---|
 | 678 | 
 | 
|---|
 | 679 | procedure TfrmCover.FormCreate(Sender: TObject);
 | 
|---|
 | 680 | begin
 | 
|---|
 | 681 |   inherited;
 | 
|---|
 | 682 |   PageID := CT_COVER;
 | 
|---|
 | 683 |   FCoverList := TCoverSheetList.Create;
 | 
|---|
 | 684 |   FCoverList.Add(pnl_1, lbl_1, lst_1);
 | 
|---|
 | 685 |   FCoverList.Add(pnl_2, lbl_2, lst_2);
 | 
|---|
 | 686 |   FCoverList.Add(pnl_3, lbl_3, lst_3);
 | 
|---|
 | 687 |   FCoverList.Add(pnl_4, lbl_4, lst_4);
 | 
|---|
 | 688 |   FCoverList.Add(pnl_5, lbl_5, lst_5);
 | 
|---|
 | 689 |   FCoverList.Add(pnl_6, lbl_6, lst_6);
 | 
|---|
 | 690 |   FCoverList.Add(pnl_7, lbl_7, lst_7);
 | 
|---|
 | 691 |   FCoverList.Add(pnl_8, lbl_8, lst_8);
 | 
|---|
 | 692 |   if ColorToRGB(clWindowText) <> ColorToRGB(clBlack) then
 | 
|---|
 | 693 |     lst_3.Font.Color := clWindowText;
 | 
|---|
 | 694 | end;
 | 
|---|
 | 695 | 
 | 
|---|
 | 696 | procedure TfrmCover.FormDestroy(Sender: TObject);
 | 
|---|
 | 697 | begin
 | 
|---|
 | 698 |   inherited;
 | 
|---|
 | 699 |   FCoverList.Free;
 | 
|---|
 | 700 | end;
 | 
|---|
 | 701 | 
 | 
|---|
 | 702 | procedure TfrmCover.sptBottomCanResize(Sender: TObject;
 | 
|---|
 | 703 |   var NewSize: Integer; var Accept: Boolean);
 | 
|---|
 | 704 | begin
 | 
|---|
 | 705 |   inherited;
 | 
|---|
 | 706 |     if NewSize < 50 then
 | 
|---|
 | 707 |       Newsize := 50;
 | 
|---|
 | 708 | end;
 | 
|---|
 | 709 | 
 | 
|---|
 | 710 | procedure TfrmCover.sptTopCanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 711 |   var Accept: Boolean);
 | 
|---|
 | 712 | begin
 | 
|---|
 | 713 |   inherited;
 | 
|---|
 | 714 |     if NewSize < 50 then
 | 
|---|
 | 715 |       Newsize := 50;
 | 
|---|
 | 716 | end;
 | 
|---|
 | 717 | 
 | 
|---|
 | 718 | procedure TfrmCover.spt_1CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 719 |   var Accept: Boolean);
 | 
|---|
 | 720 | begin
 | 
|---|
 | 721 |   inherited;
 | 
|---|
 | 722 |   if NewSize < 50 then
 | 
|---|
 | 723 |       Newsize := 50;
 | 
|---|
 | 724 | end;
 | 
|---|
 | 725 | 
 | 
|---|
 | 726 | procedure TfrmCover.spt_2CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 727 |   var Accept: Boolean);
 | 
|---|
 | 728 | begin
 | 
|---|
 | 729 |   inherited;
 | 
|---|
 | 730 |   if NewSize < 50 then
 | 
|---|
 | 731 |       Newsize := 50;
 | 
|---|
 | 732 | end;
 | 
|---|
 | 733 | 
 | 
|---|
 | 734 | procedure TfrmCover.spt_3CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 735 |   var Accept: Boolean);
 | 
|---|
 | 736 | begin
 | 
|---|
 | 737 |   inherited;
 | 
|---|
 | 738 |   if NewSize < 50 then
 | 
|---|
 | 739 |       Newsize := 50;
 | 
|---|
 | 740 | end;
 | 
|---|
 | 741 | 
 | 
|---|
 | 742 | procedure TfrmCover.spt_4CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 743 |   var Accept: Boolean);
 | 
|---|
 | 744 | begin
 | 
|---|
 | 745 |   inherited;
 | 
|---|
 | 746 |   if NewSize < 50 then
 | 
|---|
 | 747 |       Newsize := 50;
 | 
|---|
 | 748 | end;
 | 
|---|
 | 749 | 
 | 
|---|
 | 750 | procedure TfrmCover.spt_5CanResize(Sender: TObject; var NewSize: Integer;
 | 
|---|
 | 751 |   var Accept: Boolean);
 | 
|---|
 | 752 | begin
 | 
|---|
 | 753 |   inherited;
 | 
|---|
 | 754 |   if NewSize < 50 then
 | 
|---|
 | 755 |       Newsize := 50;
 | 
|---|
 | 756 | end;
 | 
|---|
 | 757 | 
 | 
|---|
 | 758 | procedure TfrmCover.popMenuAllergiesPopup(Sender: TObject);
 | 
|---|
 | 759 | const
 | 
|---|
 | 760 |   NO_ASSESSMENT = 'No Allergy Assessment';
 | 
|---|
 | 761 | var
 | 
|---|
 | 762 |   AListBox: TORListBox;
 | 
|---|
| [460] | 763 |   x: string;
 | 
|---|
| [459] | 764 | begin
 | 
|---|
 | 765 |   inherited;
 | 
|---|
 | 766 |   AListBox := (popMenuAllergies.PopupComponent as TORListBox);
 | 
|---|
| [460] | 767 |   popEditAllergy.Enabled := (AListBox.ItemIEN > 0) and IsARTClinicalUser(x);
 | 
|---|
 | 768 |   popEnteredInError.Enabled := (AListBox.ItemIEN > 0) and IsARTClinicalUser(x);
 | 
|---|
| [459] | 769 |   popNKA.Enabled := (AListBox.Items.Count = 1) and
 | 
|---|
 | 770 |                     (Piece(AListBox.Items[0], U, 2) = NO_ASSESSMENT);
 | 
|---|
| [460] | 771 |                     //and  IsARTClinicalUser(x);           v26.12
 | 
|---|
 | 772 |   popNewAllergy.Enabled := True;  //IsARTClinicalUser(x);  v26.12
 | 
|---|
| [459] | 773 | end;
 | 
|---|
 | 774 | 
 | 
|---|
 | 775 | procedure TfrmCover.popNewAllergyClick(Sender: TObject);
 | 
|---|
 | 776 | const
 | 
|---|
 | 777 |   NEW_ALLERGY = True;
 | 
|---|
 | 778 |   ENTERED_IN_ERROR = True;
 | 
|---|
 | 779 | var
 | 
|---|
 | 780 |   Changed: boolean;
 | 
|---|
 | 781 | begin
 | 
|---|
 | 782 |   inherited;
 | 
|---|
 | 783 |   Changed := EnterEditAllergy(0, NEW_ALLERGY, not ENTERED_IN_ERROR);
 | 
|---|
 | 784 |   if Changed then UpdateAllergiesList;
 | 
|---|
 | 785 | end;
 | 
|---|
 | 786 | 
 | 
|---|
 | 787 | procedure TfrmCover.popNKAClick(Sender: TObject);
 | 
|---|
 | 788 | var
 | 
|---|
 | 789 |   Changed: boolean;
 | 
|---|
 | 790 | begin
 | 
|---|
 | 791 |   inherited;
 | 
|---|
 | 792 |   Changed := EnterNKAForPatient;
 | 
|---|
 | 793 |   if Changed then UpdateAllergiesList;
 | 
|---|
 | 794 | end;
 | 
|---|
 | 795 | 
 | 
|---|
 | 796 | procedure TfrmCover.popEditAllergyClick(Sender: TObject);
 | 
|---|
 | 797 | const
 | 
|---|
 | 798 |   NEW_ALLERGY = True;
 | 
|---|
 | 799 |   ENTERED_IN_ERROR = True;
 | 
|---|
 | 800 | begin
 | 
|---|
 | 801 |   inherited;
 | 
|---|
 | 802 |   EnterEditAllergy((popMenuAllergies.PopupComponent as TORListBox).ItemIEN, not NEW_ALLERGY, not ENTERED_IN_ERROR);
 | 
|---|
 | 803 | end;
 | 
|---|
 | 804 | 
 | 
|---|
 | 805 | procedure TfrmCover.popEnteredInErrorClick(Sender: TObject);
 | 
|---|
 | 806 | var
 | 
|---|
 | 807 |   Changed: boolean;
 | 
|---|
 | 808 | begin
 | 
|---|
 | 809 |   inherited;
 | 
|---|
 | 810 |   Changed := MarkEnteredInError((popMenuAllergies.PopupComponent as TORListBox).ItemIEN);
 | 
|---|
 | 811 |   if Changed then UpdateAllergiesList;
 | 
|---|
 | 812 | end;
 | 
|---|
 | 813 | 
 | 
|---|
 | 814 | procedure TfrmCover.UpdateAllergiesList;
 | 
|---|
 | 815 | var
 | 
|---|
 | 816 |   bCase, bInvert: boolean;
 | 
|---|
 | 817 |   iDatePiece: integer ;
 | 
|---|
 | 818 |   x, aRPC, aDateFormat, aParam1, aID, aDetail, aStatus, aName, aCase, aInvert, aDatePiece, aTextColor, aQualifier, aTabPos, aPiece, aIFN: string;
 | 
|---|
 | 819 | begin
 | 
|---|
 | 820 |   x := uARTCoverSheetParams;
 | 
|---|
 | 821 |   if x = '' then exit;
 | 
|---|
 | 822 |   aName := Piece(x,'^',2);
 | 
|---|
 | 823 |   aRPC := Piece(x,'^',6);
 | 
|---|
 | 824 |   aCase := Piece(x,'^',7);
 | 
|---|
 | 825 |   aInvert := Piece(x,'^',8);
 | 
|---|
 | 826 |   aDatePiece := Piece(x,'^',11);
 | 
|---|
 | 827 |   aDateFormat := Piece(x,'^',10);
 | 
|---|
 | 828 |   aTextColor := Piece(x,'^',9);
 | 
|---|
 | 829 |   aStatus := 'Searching for ' + Piece(x,'^',2) + '...';
 | 
|---|
 | 830 |   aParam1 := Piece(x,'^',12);
 | 
|---|
 | 831 |   aID := Piece(x,'^',1);         //TAG_PROB, TAG_RMND, ETC.
 | 
|---|
 | 832 |   aQualifier := Piece(x,'^',13);
 | 
|---|
 | 833 |   aTabPos := Piece(x,'^',14);
 | 
|---|
 | 834 |   aPiece := Piece(x,'^',15);
 | 
|---|
 | 835 |   aDetail := Piece(x,'^',16);
 | 
|---|
 | 836 |   aIFN := Piece(x,'^',17);
 | 
|---|
 | 837 |   bCase := FALSE;
 | 
|---|
 | 838 |   bInvert := FALSE;
 | 
|---|
 | 839 |   iDatePiece := 0;
 | 
|---|
 | 840 |   if aCase = '1' then bCase := TRUE;
 | 
|---|
 | 841 |   if aInvert = '1' then bInvert := TRUE;
 | 
|---|
 | 842 |   if Length(aDatePiece) > 0 then iDatePiece := StrToInt(aDatePiece);
 | 
|---|
 | 843 |   if Length(aTextColor) > 0 then aTextColor := 'cl' + aTextColor;
 | 
|---|
 | 844 |   // Assign properties to components
 | 
|---|
 | 845 |   if Length(aTabPos) > 0 then (popMenuAllergies.PopupComponent as TORListBox).TabPositions := aTabPos;
 | 
|---|
 | 846 |   if Length(aTextColor) > 0 then (popMenuAllergies.PopupComponent as TORListBox).Font.Color := StringToColor(aTextColor);
 | 
|---|
 | 847 |   if Length(aPiece) > 0 then (popMenuAllergies.PopupComponent as TORListBox).Pieces := aPiece;
 | 
|---|
 | 848 |   (popMenuAllergies.PopupComponent as TORListBox).Tag := StrToInt(aID);
 | 
|---|
 | 849 |   LoadList(aStatus, (popMenuAllergies.PopupComponent as TORListBox), aRpc, bCase, bInvert, iDatePiece, aDateFormat, aParam1, aID, aDetail);
 | 
|---|
 | 850 |   with frmFrame do
 | 
|---|
 | 851 |     begin
 | 
|---|
 | 852 |       lblPtCWAD.Caption := GetCWADInfo(Patient.DFN);
 | 
|---|
 | 853 |       if Length(lblPtCWAD.Caption) > 0
 | 
|---|
 | 854 |         then lblPtPostings.Caption := 'Postings'
 | 
|---|
 | 855 |         else lblPtPostings.Caption := 'No Postings';
 | 
|---|
 | 856 |       pnlPostings.Caption := lblPtPostings.Caption + ' ' + lblPtCWAD.Caption;
 | 
|---|
 | 857 |     end;
 | 
|---|
 | 858 | end;
 | 
|---|
 | 859 | 
 | 
|---|
 | 860 | procedure TfrmCover.CoverItemExit(Sender: TObject);
 | 
|---|
 | 861 | begin
 | 
|---|
 | 862 |   with Sender as TORListBox do
 | 
|---|
 | 863 |     Selected[ItemIndex] := False;
 | 
|---|
 | 864 |   inherited;
 | 
|---|
 | 865 | end;
 | 
|---|
 | 866 | 
 | 
|---|
 | 867 | procedure TfrmCover.GetPatientFlag;
 | 
|---|
 | 868 | begin
 | 
|---|
 | 869 |   pnlFlag.Visible := HasFlag;
 | 
|---|
 | 870 |   sptFlag.Visible := HasFlag;
 | 
|---|
 | 871 |   lstFlag.Items.Assign(FlagList);
 | 
|---|
 | 872 | end;
 | 
|---|
 | 873 | 
 | 
|---|
 | 874 | procedure TfrmCover.lstFlagClick(Sender: TObject);
 | 
|---|
 | 875 | begin
 | 
|---|
 | 876 |   if lstFlag.ItemIndex >= 0 then
 | 
|---|
 | 877 |     ShowFlags(lstFlag.ItemID);
 | 
|---|
 | 878 | end;
 | 
|---|
 | 879 | 
 | 
|---|
 | 880 | procedure TfrmCover.lstFlagKeyDown(Sender: TObject; var Key: Word;
 | 
|---|
 | 881 |   Shift: TShiftState);
 | 
|---|
 | 882 | begin
 | 
|---|
 | 883 |   inherited;
 | 
|---|
 | 884 |   if Key = VK_RETURN then
 | 
|---|
 | 885 |     lstFlagClick(Self);
 | 
|---|
 | 886 | end;
 | 
|---|
 | 887 | 
 | 
|---|
| [460] | 888 | procedure TfrmCover.UpdateVAAButton;
 | 
|---|
 | 889 | const
 | 
|---|
 | 890 |   MHVLabelOrigTop = 3;
 | 
|---|
 | 891 |   PtInsLabelOrigTop = 27;
 | 
|---|
 | 892 | //var
 | 
|---|
 | 893 | //  PtIsVAA: boolean;
 | 
|---|
 | 894 | //  PtIsMHV: boolean;
 | 
|---|
 | 895 | 
 | 
|---|
 | 896 | begin
 | 
|---|
 | 897 | //VAA & MHV
 | 
|---|
 | 898 |   PtIsVAA := false;
 | 
|---|
 | 899 |   PtIsMHV := false;
 | 
|---|
 | 900 | 
 | 
|---|
 | 901 |   VAAFlag := TStringList.Create;
 | 
|---|
 | 902 |   MHVFlag := TStringList.Create;
 | 
|---|
 | 903 |   VAA_DFN := Patient.DFN;
 | 
|---|
 | 904 |   tCallV(VAAFlag, 'ORVAA VAA', [VAA_DFN]);
 | 
|---|
 | 905 |   tCallV(MHVFlag, 'ORWMHV MHV', [VAA_DFN]);
 | 
|---|
 | 906 | 
 | 
|---|
 | 907 |   if VAAFlag[0] <> '0' then
 | 
|---|
 | 908 |      begin
 | 
|---|
 | 909 |      PtIsVAA := true;
 | 
|---|
 | 910 | 
 | 
|---|
 | 911 |      with frmFrame do
 | 
|---|
 | 912 |         begin
 | 
|---|
 | 913 |         laVAA2.Caption := Piece(VAAFlag[0], '^', 0);
 | 
|---|
 | 914 |         laVAA2.Hint := Piece(VAAFlag[0], '^', 2); //CQ7626 was piece '6'
 | 
|---|
 | 915 |         end;
 | 
|---|
 | 916 |      end
 | 
|---|
 | 917 |   else
 | 
|---|
 | 918 |      begin
 | 
|---|
 | 919 |      with frmFrame do
 | 
|---|
 | 920 |         begin
 | 
|---|
 | 921 |         laVAA2.Caption := #0;
 | 
|---|
 | 922 |         laVAA2.Hint := 'No active insurance'; //CQ7626 added this line
 | 
|---|
 | 923 |         end;
 | 
|---|
 | 924 |      end;
 | 
|---|
 | 925 | 
 | 
|---|
 | 926 |   //MHV flag
 | 
|---|
 | 927 |   if MHVFlag[0] <> '0' then
 | 
|---|
 | 928 |      begin
 | 
|---|
 | 929 |      PtIsMHV := true;
 | 
|---|
 | 930 | 
 | 
|---|
 | 931 |       with frmFrame do
 | 
|---|
 | 932 |         begin
 | 
|---|
 | 933 |          laMHV.Caption := Piece(MHVFlag[0], '^', 1);
 | 
|---|
 | 934 |          laMHV.Hint := Piece(MHVFlag[0], '^', 2);
 | 
|---|
 | 935 | 
 | 
|---|
 | 936 |          if VAAFlag[0] = '0' then
 | 
|---|
 | 937 |            laMHV.Caption := 'MHV';
 | 
|---|
 | 938 |         end;
 | 
|---|
 | 939 |      end
 | 
|---|
 | 940 |   else
 | 
|---|
 | 941 |      begin
 | 
|---|
 | 942 |      with frmFrame do
 | 
|---|
 | 943 |         begin
 | 
|---|
 | 944 |         laMHV.Caption := #0;
 | 
|---|
 | 945 |         laMHV.Hint := 'No MyHealthyVet data'; //CQ7626 added this line
 | 
|---|
 | 946 |         end;
 | 
|---|
 | 947 |      end;
 | 
|---|
 | 948 | 
 | 
|---|
 | 949 |   with frmFrame do
 | 
|---|
 | 950 |      begin
 | 
|---|
 | 951 |      //Modified this 'with' section for CQ7783
 | 
|---|
 | 952 |      paVAA.Hide; //Start by hiding it.  Show it only if one of the conditions below is true, else it stays invisible.
 | 
|---|
 | 953 |      paVAA.Height := pnlPrimaryCare.Height;
 | 
|---|
 | 954 | 
 | 
|---|
 | 955 |      if ((PtIsVAA and PtIsMHV)) then  //CQ7411 - this line
 | 
|---|
 | 956 |         begin
 | 
|---|
 | 957 |         laMHV.Top := paVAA.Top;
 | 
|---|
 | 958 |         laMHV.Width := paVAA.Width - 1;
 | 
|---|
 | 959 |         laMHV.Height := (paVAA.ClientHeight div 2) - 1;
 | 
|---|
 | 960 |         laMHV.Visible := true;
 | 
|---|
 | 961 | 
 | 
|---|
 | 962 |         laVAA2.Top := laMHV.Top + laMHV.Height + 1;
 | 
|---|
 | 963 |         laVAA2.Width := paVAA.Width - 1;
 | 
|---|
 | 964 |         laVAA2.Height := (paVAA.ClientHeight div 2);
 | 
|---|
 | 965 |         laVAA2.Visible := true;
 | 
|---|
 | 966 | 
 | 
|---|
 | 967 |         paVAA.Show;
 | 
|---|
 | 968 |         end
 | 
|---|
 | 969 |      else
 | 
|---|
 | 970 |         if ((PtIsMHV and (not PtIsVAA))) then
 | 
|---|
 | 971 |            begin
 | 
|---|
 | 972 |            laMHV.Top := paVAA.Top;
 | 
|---|
 | 973 |            paVAA.Height := pnlPrimaryCare.Height;
 | 
|---|
 | 974 |            laMHV.Height := paVAA.ClientHeight - 1;
 | 
|---|
 | 975 |            laMHV.Visible := true;
 | 
|---|
 | 976 |            laVAA2.Visible  := false;
 | 
|---|
 | 977 |            paVAA.Show;
 | 
|---|
 | 978 |            end
 | 
|---|
 | 979 |      else
 | 
|---|
 | 980 |         if ((PtIsVAA and (not PtIsMHV))) then
 | 
|---|
 | 981 |            begin
 | 
|---|
 | 982 |            laVAA2.Top := paVAA.Top;
 | 
|---|
 | 983 |            paVAA.Height := pnlPrimaryCare.Height-2;
 | 
|---|
 | 984 |            laVAA2.Height := paVAA.ClientHeight - 1;
 | 
|---|
 | 985 |            laVAA2.Visible := true;
 | 
|---|
 | 986 |            laMHV.Visible := false;
 | 
|---|
 | 987 | 
 | 
|---|
 | 988 |            paVAA.Show;
 | 
|---|
 | 989 |            end;
 | 
|---|
 | 990 |   end; //with
 | 
|---|
 | 991 | //end VAA & MHV
 | 
|---|
 | 992 | end;
 | 
|---|
 | 993 | 
 | 
|---|
 | 994 | initialization
 | 
|---|
 | 995 | 
 | 
|---|
 | 996 | finalization
 | 
|---|
 | 997 |   if Assigned(fCover.VAAFlag) then fCover.VAAFlag.Free; //VAA
 | 
|---|
 | 998 | 
 | 
|---|
| [459] | 999 | end.
 | 
|---|
 | 1000 | 
 | 
|---|