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