| [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 |  | 
|---|