Changeset 460 for cprs/branches/foia-cprs/CPRS-Chart
- Timestamp:
- Jul 6, 2008, 8:20:14 PM (16 years ago)
- Location:
- cprs/branches/foia-cprs/CPRS-Chart
- Files:
-
- 28 added
- 192 edited
Legend:
- Unmodified
- Added
- Removed
-
cprs/branches/foia-cprs/CPRS-Chart/Accessibility_TLB.pas
r459 r460 19 19 // LIBID: {1EA4DBF0-3C3B-11CF-810C-00AA00389B71} 20 20 // LCID: 0 21 // Helpfile: 21 // Helpfile: 22 22 // DepndLst: 23 23 // (1) v2.0 stdole, (C:\WINNT\System32\Stdole2.tlb) … … 148 148 149 149 end. 150 151 152 153 154 155 -
cprs/branches/foia-cprs/CPRS-Chart/BA/UBACore.pas
r459 r460 11 11 function rpcGetPersonalDxList(UserDUZ:int64):TStringList; 12 12 function rpcDeleteFromPersonalDxList(UserDUZ:int64; Dest:TStringList):integer; 13 procedure rpcSaveBillingD ata(pBillingData:TStringList);13 procedure rpcSaveBillingDxEntered; // save dx enteries regardless of being mandatory.... 14 14 function rpcNonBillableOrders(pOrderList: TStringList): TStringList; 15 15 function rpcOrderRequiresDx(pList: TStringList):boolean; 16 procedure rpcSetBillingAwareSwitch(encProvider: int64; encLocation: integer);16 procedure rpcSetBillingAwareSwitch(encProvider: int64; pPatientDFN: string); 17 17 procedure rpcGetProviderPatientDaysDx(ProviderIEN: string;PatientIEN: string); 18 18 procedure rpcGetSC4Orders; // returns Eligible Treatment Factors for a given patient 19 procedure rpcSaveBillingDxEntered; // save dx enteries regardless of being mandatory.... 19 20 20 function rpcTreatmentFactorsActive(pOrderID: string):boolean; 21 21 procedure rpcBuildSCIEList(pOrderList: TList); 22 22 function rpcGetUnsignedOrdersBillingData(pOrderList: TStringList):TStringList; 23 function rpcRetrieveBillingData(thisOrderID: string; var thisBAData: string) : boolean;24 23 function rpcRetrieveSelectedOrderInfo(pOrderIDList: TStringList):TStringList; 25 24 function rpcGetTFHintData:TStringList; 26 25 procedure rpcSaveNurseConsultOrder(pOrderRec:TStringList); 27 26 function rpcGetBAMasterSwStatus:boolean; 28 27 procedure rpcSaveCIDCData(pCIDCList: TStringList); 28 function rpcIsPatientInsured(pPatientDFN: string):boolean; 29 30 procedure SaveBillingData(pBillingData:TStringList); 29 31 function OrdersHaveDx(pOrderList:TStringList):boolean; 30 32 procedure SetTreatmentFactors(TFactors: string); … … 32 34 procedure AttachPLTFactorsToDx(var Dest:String;ProblemRec:string); 33 35 procedure BALoadStsFlagsAsIs(StsFlagsIN: string); 34 function BADxEntered:boolean; // This will only be executed if bypass switch is set...36 function BADxEntered:boolean; // main logic to determine if dx has been entered for order that requires dx 35 37 function StripTFactors(FactorsIN: string): string; 36 38 function AddProviderPatientDaysDx(Dest: TStringList; ProviderIEN: string;PatientIEN: string) : TStringList; … … 52 54 function GetConsultFlags(pOrderID:String; pFlagList:TStringList;FlagsAsIs:string):string; 53 55 function SetConsultFlags(pPLFactors: string;pFlagsAsIs: string):string; // return updated flags. 54 procedure GetBAStatus(pProvider:int64; p Location:integer);56 procedure GetBAStatus(pProvider:int64; pPatientDFN: string); 55 57 function IsICD9CodeActive(ACode: string; LexApp: string; ADate:TFMDateTime = 0): boolean; 56 58 function BuildConsultDxRec(ConsultRec: TBAConsultOrderRec): string; 57 59 function ConvertPIMTreatmentFactors(pTFactors:string):string; 58 60 procedure DeleteDCOrdersFromCopiedList(pOrderID:string); 59 //function SetOrderIDConsultDxRequired(pOrderID:String):String; // replace orderid with "R" if consult dx required.60 61 procedure UpdateBAConsultOrderList(pDcOrders: TStringList); 61 62 63 62 function VerifyOrderIdExists(pOrderList: TStringList): TStringList; // removes records without order id 63 function IsCIDCProvider(encProvider:int64):boolean; 64 function ProcessProblemTFactors(pText:String):String; 64 65 65 66 var … … 75 76 76 77 77 function rpcRetrieveBillingData(thisOrderID: string; var thisBAData: string) : boolean; 78 var 79 rpcResult: TStringList; 80 BAOrderExists : boolean; 81 begin 82 Result := false; 83 BAOrderExists := false; 84 rpcResult := TStringList.Create; 85 86 tCallV(rpcResult, 'ORWDBA1 RCVORCI', [thisOrderID]); 87 BAOrderExists := StrToBool(rpcResult[0]); 88 89 if (not BAOrderExists) then 90 //GRAB RETURNED BA DATA HERE 91 Result := true; 92 end; 93 94 procedure rpcSaveBillingData(pBillingData:TStringList); 78 // ----------------- MAIN CIDC DX HAS BEEN ENTERED LOGIC --------------------------- 79 function BADxEntered:boolean; 80 var 81 i: integer; 82 //orderStatus: integer; 83 x: string; 84 passList: TStringList; 85 holdOrderList: TStringList; 86 thisOrderID: string; 87 thisRec: string; 88 begin 89 // Result := TRUE; // caused hint..... 90 holdOrderList := TStringList.Create; 91 holdOrderList.Clear; 92 updatedBAOrderList := TStringList.Create; 93 updatedBAOrderList.Clear; 94 passList := TStringList.Create; 95 passList.Clear; 96 // determine which orders require a dx (lrmp- only) 97 // if NO then continue 98 // if YES, check BADxList for orders with DX enteries. 99 // if ok then create data string pass to M via RPC 100 101 for i := 0 to BAOrderList.Count-1 do 102 begin 103 thisRec := BAOrderList.Strings[i]; 104 thisOrderID := piece(thisRec,';',1) + ';1'; //rebuild orderID pass to M. 105 x := BAOrderList.Strings[i]; 106 //orderStatus := StrToInt(CharAt(Piece(x, ';', 2), 1)); // Order Status 1=OK, 2=DISCONTINUE 107 if IsOrderBillable(thisOrderID) then 108 begin 109 passList.Add(piece(x,';',1)); 110 holdOrderList.Add(x);// place holder for orders that can be signed! 111 end; 112 end; 113 114 BAOrderList.Assign(holdOrderList); //assign signable orders to BAOrderList for further processing 115 holdOrderList.Clear; // CQ5025 116 117 //call with passList determine if LRMP 118 if rpcOrderRequiresDx(passList) then 119 BAOrderList.Assign(updatedBAOrderList); 120 121 // check of all orders dx columns are flagged with N/A..... 122 if UBACore.IsAllOrdersNA(BAOrderList) then 123 begin 124 Result := TRUE; // force true, no record needs DX entry 125 Exit; //to do. clean this up... when time permitts 126 end 127 else 128 begin 129 if OrdersHaveDx(UBAGlobals.BAOrderList) then 130 begin 131 Result := True; // CIDC orders have dx 132 SaveBillingData(UBAGlobals.BAOrderList) ; 133 end 134 else 135 begin 136 Result := FALSE; 137 Exit; 138 end; 139 end; 140 end; 141 142 143 function rpcOrderRequiresDx(pList: TStringList):boolean; 144 var x: string; 145 i,j: integer; 146 returnList, updatedList: TStringList; 147 begin 148 Result := FALSE; // initial set dx NOT required 149 returnList := TStringList.Create; 150 updatedList := TStringList.Create; 151 returnList.Clear; 152 updatedList.Clear; 153 // remove deleted orderid's 154 if UBAGlobals.BADeltedOrders.Count > 0 then 155 begin 156 for i := 0 to UBAGlobals.BADeltedOrders.Count-1 do 157 x := UBAGlobals.BADeltedOrders.Strings[i]; 158 for j := 0 to pList.Count-1 do 159 begin 160 if x = pList.Strings[j] then 161 continue // orderid is removed.. or skipped 162 else 163 updatedList.Add(x); 164 end; 165 end 166 else 167 updatedList.Assign(pList); 168 169 // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0 170 tCallV(returnList,'ORWDBA1 ORPKGTYP',[updatedList]); 171 172 //Remove NON LRMP orders from the mix(when checking for dx entry); 173 // BAOrderList and pList are in sync - order id.... 174 for i := 0 to BAOrderList.Count-1 do 175 begin 176 x:= piece(returnList.Strings[i],'^',1); 177 if x = BILLABLE_ORDER then 178 begin 179 updatedBAOrderList.Add(BAOrderList[i]); 180 Result := TRUE; 181 end; 182 end; 183 end; 184 185 186 // UBAGlobals.NonBillableOrderList must be populated prior to calling this function. 187 // call rpcNonBillableOrders to populate List. 188 function IsOrderBillable(pOrderID: string):boolean ; 189 var 190 i: integer; 191 currOrderID: string; 192 matchOrderID : string; 193 194 begin 195 Result := TRUE; // = Billable 196 currOrderID := PrepOrderID(pOrderID); 197 if Piece(pOrderID,';',2) = DISCONTINUED_ORDER THEN 198 begin 199 Result := FALSE; 200 Exit; 201 end; 202 try 203 for i := 0 to UBAGlobals.NonBillableOrderList.Count -1 do 204 begin 205 matchOrderID := PrepOrderID( (Piece(UBAGlobals.NonBillableOrderList.Strings[i],U,1)) ); 206 if currOrderID = matchOrderID then 207 begin 208 Result := FALSE; //= Non Billable 209 Exit; 210 end; 211 end; 212 except 213 on EListError do 214 begin 215 {$ifdef debug}ShowMessage('EListError in UBACore.IsOrderBillable()');{$endif} 216 raise; 217 end; 218 end; 219 end; 220 221 222 procedure SaveBillingData(pBillingData:TStringList); 95 223 var 96 224 RecsToSave: TStringList; 97 i: integer;98 x: string;99 225 begin 100 226 RecsToSave := TStringList.Create; 101 227 RecsToSave.Clear; 228 102 229 RecsToSave := AttachDxToOrderList(pBillingData); //call with new Biling data, return-code returned 103 // for i := 0 to RecstoSave.Count-1 do 104 // begin 105 // ShowMessage('Data Sent to ORW ' + RecsToSave.Strings[i]); 106 // end; 107 CallV('ORWDBA1 RCVORCI',[RecsToSave]); 108 // if Assigned(UBAGlobals.BAConsultOrdersRequireDx) then UBAGlobals.BAConsultOrdersRequireDx.Clear; 230 rpcSaveCIDCData(RecsToSave); // verify and save billing data 231 109 232 if Assigned(UBAGlobals.BAOrderList) then UBAGlobals.BAOrderList.Clear; // hds00005025 110 233 end; … … 123 246 pList.Add(pOrderID); 124 247 Result := FALSE; 125 248 // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0 126 249 tCallV(rList,'ORWDBA1 ORPKGTYP',[pList]); 127 250 //returns boolean value by OrderID - True = billable … … 158 281 currentOrderString := pOrderList.Strings[i]; 159 282 currentOrderID := piece(pOrderList.Strings[i],';',1)+ ';1'; 283 160 284 GetBADxListForOrder(baseDxRec, currentOrderID); 161 285 FlagsStatsIn := BAFlagsIN; … … 174 298 end; 175 299 176 177 178 300 function rpcAddToPersonalDxList(UserDUZ:int64; DxCodes:TStringList):boolean; 179 //input example ien^code = 12345^306.70180 begin 181 Result := (sCallV('ORWDBA2 ADDPDL', [UserDUZ,DxCodes])= '1');301 //input example ien^code(s) = 12345^306.70^431.22 302 begin 303 Result := (sCallV('ORWDBA2 ADDPDL', [UserDUZ,DxCodes])= '1'); 182 304 end; 183 305 … … 198 320 end; 199 321 200 function rpcOrderRequiresDx(pList: TStringList):boolean;201 var x: string;202 i,j: integer;203 returnList, updatedList: TStringList;204 begin205 // for i := 0 to plist.count-1 do206 // x := plist.strings[i];207 Result := FALSE;208 returnList := TStringList.Create;209 updatedList := TStringList.Create;210 returnList.Clear;211 updatedList.Clear;212 // remove deleted orderid's213 if UBAGlobals.BADeltedOrders.Count > 0 then214 begin215 for i := 0 to UBAGlobals.BADeltedOrders.Count-1 do216 x := UBAGlobals.BADeltedOrders.Strings[i];217 for j := 0 to pList.Count-1 do218 begin219 if x = pList.Strings[j] then220 continue // orderid is removed.. or skipped221 else222 updatedList.Add(x);223 end;224 end225 else226 updatedList.Assign(pList);227 // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0228 tCallV(returnList,'ORWDBA1 ORPKGTYP',[updatedList]);229 //Remove NON LRMP orders from the mix(for checking for dx entry);230 // BAOrderList and pList are in sync - order id....231 for i := 0 to BAOrderList.Count-1 do232 begin233 x:= piece(returnList.Strings[i],'^',1);234 if x = BILLABLE_ORDER then // change to test BA235 begin236 updatedBAOrderList.Add(BAOrderList[i]);237 Result := TRUE;238 end;239 end;240 end;241 322 // returns value used to bypass Billing Aware if needed. 242 323 // turns off visual and functionality 243 procedure rpcSetBillingAwareSwitch(encProvider:int64; encLocation: integer); 244 begin 245 BILLING_AWARE := TRUE; 246 if (encProvider = 0) and not PersonHasKey(encProvider, 'PROVIDER') then 247 BILLING_AWARE := FALSE 248 else 249 begin 250 if (sCallV('ORWDBA1 BASTATUS', [nil]) = '1') then // Master switch is set "ON" 251 BILLING_AWARE := (sCallV('ORWDBA4 GETBAUSR', [encProvider]) = '1') 252 else 253 BILLING_AWARE := FALSE; 254 end; 255 end ; 324 procedure rpcSetBillingAwareSwitch(encProvider:int64; pPatientDFN: string); 325 begin 326 // Is Provider -> Is Master Sw -> Is CIDC SW -> Is Patient Insured 327 BILLING_AWARE := FALSE; 328 // verify user is a provider 329 if (encProvider <> 0) and PersonHasKey(encProvider, 'PROVIDER') then 330 // Master switch is set "ON" 331 if (sCallV('ORWDBA1 BASTATUS', [nil]) = '1') then 332 // User is CIDC Enabled 333 if (sCallV('ORWDBA4 GETBAUSR', [encProvider]) = '1') then 334 begin 335 // Verify Patient is Insured 336 if rpcIsPatientInsured(pPatientDFN) then 337 BILLING_AWARE := TRUE; 338 end; 339 {$ifdef debug}BILLING_AWARE := TRUE;{$endif} 340 end; 341 342 // verify CIDC Master Switch and Provider is CIDC Enabled. 343 // Patient insurance check is bypassed. (hds7564) 344 function IsCIDCProvider(encProvider:int64):boolean; 345 begin 346 Result := False; 347 if rpcGetBAMasterSwStatus then 348 if (encProvider <> 0) and PersonHasKey(encProvider, 'PROVIDER') then 349 Result := True; 350 end; 351 256 352 257 353 function rpcGetBAMasterSwStatus:boolean; 258 354 begin 259 Result := False;260 355 Result := (sCallV('ORWDBA1 BASTATUS', [nil]) = '1'); // Master switch is set "ON" 261 262 263 end; 356 end; 357 264 358 265 359 procedure rpcSaveNurseConsultOrder(pOrderRec:TStringList); 266 360 begin 267 CallV('ORWDBA1 RCVORCI',[pOrderRec]); 268 end; 361 rpcSaveCIDCData(pOrderRec); 362 end; 363 269 364 270 365 procedure rpcSaveBillingDxEntered; // if not mandatory and user enters dx. … … 295 390 baseDxRec := nil; 296 391 baseDxRec := TBADxRecord.Create; 297 InitializeNewDxRec(baseDxRec);298 299 try392 InitializeNewDxRec(baseDxRec); 393 394 try 300 395 for i := 0 to BAOrderList.Count-1 do 301 396 begin … … 305 400 if baseDxRec.FBADxCode <> '' then 306 401 begin 307 402 NewBillingList.Add(currentOrderString +'^'+ baseDxRec.FBADxCode +'^'+ baseDxRec.FBASecDx1+ 308 403 '^'+ baseDxRec.FBASecDx2+'^'+ baseDxRec.FBASecDx3); 309 404 end; 310 405 end; 311 except312 on EListError do313 begin314 {$ifdef debug}ShowMessage('EListError in UBACore.rpcSaveBillingDxEntered()');{$endif}315 raise;406 except 407 on EListError do 408 begin 409 {$ifdef debug}ShowMessage('EListError in UBACore.rpcSaveBillingDxEntered()');{$endif} 410 raise; 316 411 end; 317 412 end; 318 413 319 if NewBillingList.Count > 0 then 320 CallV('ORWDBA1 RCVORCI',[NewBillingList]); //1.3.10 321 414 rpcSaveCIDCData(NewBillingList); 322 415 if Assigned(NewBillingList) then FreeAndNil(NewBillingList); 323 // if Assigned(UBAGlobals.BAConsultOrdersRequireDx) then UBAGlobals.BAConsultOrdersRequireDx.Clear;324 325 416 end; 326 417 end; … … 335 426 336 427 procedure rpcGetProviderPatientDaysDx(ProviderIEN: string;PatientIEN: string); 337 var i:integer; 338 x: string; 428 var 339 429 tmplst: TStringList; 340 430 begin … … 351 441 function rpcGetTFHintData:TStringList; 352 442 begin 353 Result := nil;354 443 tCallv(BATFHints,'ORWDBA3 HINTS', [nil]); 355 444 Result := BATFHints; … … 366 455 rList.Clear; 367 456 NonBillableOrderList.Clear; 368 Result := NonBillableOrderList;369 457 // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0 370 458 tCallV(rList,'ORWDBA1 ORPKGTYP',[pOrderList]); … … 396 484 end; 397 485 // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0 398 tCallV(rList,'ORWDBA1 ORPKGTYP',[OrderIDList]);486 tCallV(rList,'ORWDBA1 ORPKGTYP',[OrderIDList]); 399 487 400 488 for i := 0 to rList.Count-1 do … … 403 491 OrderListSCEI.Add(OrderIDList.Strings[i]); 404 492 end; 493 end; 494 495 procedure rpcSaveCIDCData(pCIDCList: TStringList); 496 var 497 CIDCList :TStringList; 498 begin 499 CIDCList := TStringList.create; 500 CIDCList.Clear; 501 // insure record contain valid orderid 502 if pCIDCList.Count > 0 then 503 begin 504 CIDCList := VerifyOrderIdExists(pCIDCList); 505 if CIDCList.Count > 0 then 506 CallV('ORWDBA1 RCVORCI',[CIDCList]); 507 end; 508 if Assigned(CIDCList) then FreeAndNil(CIDCList); 509 end; 510 511 function rpcIsPatientInsured(pPatientDFN: string):boolean; 512 begin 513 Result := (sCallV('ORWDBA7 ISWITCH',[pPatientDFN]) = '1'); 514 405 515 end; 406 516 … … 433 543 if tempDxRec.FBADxCode = '' then 434 544 begin 435 Result := FALSE;436 Break;545 Result := FALSE; 546 Break; 437 547 end; 438 548 end; … … 452 562 453 563 454 function BADxEntered:boolean;455 var456 i, orderStatus: integer;457 x: string;458 passList: TStringList;459 holdOrderList: TStringList;460 thisOrderID: string;461 thisRec: string;462 begin463 Result := FALSE;464 holdOrderList := TStringList.Create;465 holdOrderList.Clear;466 updatedBAOrderList := TStringList.Create;467 updatedBAOrderList.Clear;468 passList := TStringList.Create;469 passList.Clear;470 // determine which orders require a dx (lrmp- only)471 // if NO then continue472 // if YES, check BADxList for orders with DX enteries.473 // if ok then create data string pass to M via RPC474 475 orderStatus := 0;476 Result := true;477 478 try479 for i := 0 to BAOrderList.Count-1 do480 begin481 thisRec := BAOrderList.Strings[i];482 thisOrderID := piece(thisRec,';',1) + ';1'; //rebuild orderID pass to M.483 484 x := BAOrderList.Strings[i];485 orderStatus := StrToInt(CharAt(Piece(x, ';', 2), 1)); // Order Status 1=OK, 2=DISCONTINUE486 if orderStatus = integer(BAOK2SIGN) then487 begin488 passList.Add(piece(x,';',1));489 holdOrderList.Add(x);// place holder for orders that can be signed!490 end;491 end;492 except493 on EListError do494 begin495 {$ifdef debug}ShowMessage('EListError in UBACore.BADxEntered()');{$endif}496 raise;497 end;498 end;499 500 BAOrderList.Assign(holdOrderList); //assign signable orders to BAOrderList for further processing501 holdOrderList.Clear; // CQ5025502 //call with passList determine if LRMP503 504 if rpcOrderRequiresDx(passList) then505 BAOrderList.Assign(updatedBAOrderList);506 507 if updatedBAOrderList.Count <= 0 then // order list reflecting orders flagged as -508 begin // dx required.509 Result := TRUE; // force true, no record need DX entry510 rpcSaveBillingDxEntered; // save billing data for orders that may have dx enteries511 Exit; //to do. clean this up... when time permitts512 end513 else514 begin515 if OrdersHaveDx(UBAGlobals.BAOrderList) then516 rpcSaveBillingData(UBAGlobals.BAOrderList)517 else518 begin519 Result := FALSE;520 Exit;521 end;522 end;523 end;524 564 525 565 … … 557 597 thisRec.FBASC := Piece(ProblemRec,U,5); 558 598 thisRec.FBASC_YN := Piece(ProblemRec,U,6); 559 thisRec.FBATreatFactors := Piece(ProblemRec,')',1); 560 thisRec.FBATreatFactors := Piece(thisRec.FBATreatFactors,'(',2); 561 599 //HDS8409 600 if StrPos(PChar(ProblemRec),'(') <> nil then 601 thisRec.FBATreatFactors := ProcessProblemTFactors(ProblemRec) 602 else 603 begin 604 thisRec.FBATreatFactors := Piece(ProblemRec,')',1); 605 thisRec.FBATreatFactors := Piece(thisRec.FBATreatFactors,'(',2); 606 end; 607 //HDS8409 562 608 with thisRec do 563 609 begin … … 571 617 TFResults := ( FBADxCode + U + FBADxText ); 572 618 end; 573 619 574 620 Dest := TFResults; 575 621 end; … … 657 703 var strDxCode,strDxName:string; 658 704 begin 659 660 661 662 705 Result := ''; 706 strDxCode := Piece(FactorsIN,U,2); 707 strDxName := Piece(FactorsIN,'(',1); 708 Result := (strDxName + U + strDxCode); 663 709 end; 664 710 … … 684 730 685 731 Result := tmplst; 686 end;687 688 // UBAGlobals.NonBillableOrderList must be populated prior to calling this function.689 // call rpcNonBillableOrders to populate List.690 function IsOrderBillable(pOrderID: string):boolean ;691 var692 i: integer;693 currOrderID: string;694 matchOrderID : string;695 696 begin697 Result := TRUE; // = Billable698 currOrderID := PrepOrderID(pOrderID);699 if Piece(pOrderID,';',2) = DISCONTINUED_ORDER THEN700 begin701 Result := FALSE;702 Exit;703 end;704 try705 for i := 0 to UBAGlobals.NonBillableOrderList.Count -1 do706 begin707 matchOrderID := PrepOrderID( (Piece(UBAGlobals.NonBillableOrderList.Strings[i],U,1)) );708 if currOrderID = matchOrderID then709 Result := FALSE //= Non Billable710 end;711 except712 on EListError do713 begin714 {$ifdef debug}ShowMessage('EListError in UBACore.IsOrderBillable()');{$endif}715 raise;716 end;717 end;718 732 end; 719 733 … … 748 762 // this change may have an impact on response time?????? 749 763 // change from save orders with dx to save all. 06/24/04 750 // / if not clear treatment factors for order is non cidc764 // / if not clear treatment factors for order is non cidc 751 765 uBAGlobals.UnsignedOrders.Add(pOrderRec); 752 766 … … 764 778 if Assigned(rList) then rList.Clear; 765 779 if Assigned(newList) then newList.Clear; 766 767 768 769 770 771 780 781 for i := 0 to pOrderIDList.Count-1 do 782 begin 783 newList.Add(Piece(pOrderIDList.Strings[i],';',1)); 784 x := newlist.strings[i]; 785 end; 772 786 if newList.Count > 0 then 773 787 tCallV(rList,'ORWDBA4 GETTFCI',[newList]); … … 781 795 thisList: TStringList; 782 796 rList: TStringList; 783 i:integer;784 x: string;785 797 begin 786 798 … … 789 801 if Assigned(rList) then rList.Clear; 790 802 if Assigned(thisList)then thisList.Clear; 791 for i := 0 to pOrderList.Count -1 do 792 x := pOrderList.Strings[i]; 793 rpcSaveBillingData(pOrderList); // save unsigned info to be displayed when recalled at later time 803 SaveBillingData(pOrderList); // save unsigned info to be displayed when recalled at later time 794 804 end; 795 805 … … 980 990 function IsAllOrdersNA(pOrderList:TStringList):boolean; 981 991 var 982 i ,j:integer;992 i:integer; 983 993 rList: TStringList; 984 994 begin … … 986 996 if Assigned(rList) then rList.Clear; 987 997 Result := True;// disables dx button 988 for j := 0 to pOrderList.Count-1 do 989 begin 990 // code added to allow consult orders that are not cidc but require dx, dx can be edited. 991 if tempDxNodeExists(pOrderList.Strings[j]) then 992 begin 993 Result := False; 994 Exit; 995 end 996 else 997 if Piece(pOrderList.Strings[j],';',2) = DISCONTINUED_ORDER then 998 begin 999 Result := True; 1000 Exit; 1001 end; 1002 1003 end; 998 1004 999 // call returns boolean, orders is billable=1 or nonbillable=0 or discontinued = 0 1005 1000 tCallV(rList,'ORWDBA1 ORPKGTYP',[pOrderList]); … … 1097 1092 if pos( '(', thisString) > 0 then 1098 1093 begin 1099 dx2 := Piece(thisString,U,2);1100 dx2 := Piece(dx2,'(',1)+ U + Piece(thisString,':',2);1094 dx2 := Piece(thisString,U,2); 1095 dx2 := Piece(dx2,'(',1)+ U + Piece(thisString,':',2); 1101 1096 end 1102 1097 else 1103 1098 begin 1104 dx2 := Piece(thisString,U,2);1105 dx2 := Piece(dx2,':',1)+ U + Piece(thisString,':',2);1099 dx2 := Piece(thisString,U,2); 1100 dx2 := Piece(dx2,':',1)+ U + Piece(thisString,':',2); 1106 1101 end 1107 1102 end … … 1111 1106 if pos( '(', thisString) > 0 then 1112 1107 begin 1113 dx3 := Piece(thisString,U,2);1114 dx3 := Piece(dx3,'(',1)+ U + Piece(thisString,':',2);1108 dx3 := Piece(thisString,U,2); 1109 dx3 := Piece(dx3,'(',1)+ U + Piece(thisString,':',2); 1115 1110 end 1116 1111 else 1117 1112 begin 1118 dx3 := Piece(thisString,U,2);1119 dx3 := Piece(dx3,':',1)+ U + Piece(thisString,':',2);1113 dx3 := Piece(thisString,U,2); 1114 dx3 := Piece(dx3,':',1)+ U + Piece(thisString,':',2); 1120 1115 end 1121 1116 end … … 1125 1120 if pos( '(', thisString) > 0 then 1126 1121 begin 1127 dx4 := Piece(thisString,U,2);1128 dx4 := Piece(dx4,'(',1)+ U + Piece(thisString,':',2);1122 dx4 := Piece(thisString,U,2); 1123 dx4 := Piece(dx4,'(',1)+ U + Piece(thisString,':',2); 1129 1124 end 1130 1125 else 1131 1126 begin 1132 dx4 := Piece(thisString,U,2);1133 dx4 := Piece(dx4,':',1)+ U + Piece(thisString,':',2);1127 dx4 := Piece(thisString,U,2); 1128 dx4 := Piece(dx4,':',1)+ U + Piece(thisString,':',2); 1134 1129 end; 1135 1130 end; … … 1206 1201 dxRec := BuildConsultDxRec(ConsultOrderRec); 1207 1202 orderList.Add(RecOut.FExistingRecordID); 1208 TfFlags := Piece(GetPatientTFactors(orderList),U,2); 1203 // TfFlags := Piece(GetPatientTFactors(orderList),U,2); 1204 TfFlags := GetPatientTFactors(orderList); 1205 TfFlags := ConvertPIMTreatmentFactors(TfFlags); 1209 1206 orderList.Clear; 1210 if strLen(PChar(dxRec)) > 0 then1211 orderList.Add(RecOut.FExistingRecordID +TfFlags + '^'+ BuildConsultDxRec(ConsultOrderRec) )1212 else1207 // if strLen(PChar(dxRec)) > 0 then 1208 // orderList.Add(RecOut.FExistingRecordID +TfFlags + '^'+ BuildConsultDxRec(ConsultOrderRec) ) 1209 // else 1213 1210 orderList.Add(RecOut.FExistingRecordID +TfFlags); 1214 rpcSaveBillingData(OrderList); // save unsigned info to be displayed when re1211 SaveBillingData(OrderList); // save unsigned info to be displayed when re 1215 1212 end; 1216 1213 end; … … 1241 1238 1242 1239 begin 1243 strFlagsAsIs := pFlagsAsIs; // flags from pims1244 strTFactors := pPLFactors; // value selected from problem list1245 strFlagsOut := ''; // flags updated with selected values from problem list1246 x := strFlagsAsIs;1247 Result := '';1240 strFlagsAsIs := pFlagsAsIs; // flags from pims 1241 strTFactors := pPLFactors; // value selected from problem list 1242 strFlagsOut := ''; // flags updated with selected values from problem list 1243 x := strFlagsAsIs; 1244 Result := ''; 1248 1245 1249 1246 UBAGlobals.SC := Copy(x,1,1); … … 1279 1276 UBAGlobals.MST := 'C'; 1280 1277 1278 if UBAGlobals.HNC <> 'N' then 1279 if StrPos(PChar(strTFactors),PChar(HEAD_NECK_CANCER)) <> nil then 1280 UBAGlobals.HNC := 'C'; 1281 1281 1282 if UBAGlobals.CV <>'N' then 1282 1283 if StrPos(PChar(strTFactors),PChar(COMBAT_VETERAN)) <> nil then … … 1289 1290 end; 1290 1291 1291 procedure GetBAStatus(pProvider:int64; p Location:integer);1292 procedure GetBAStatus(pProvider:int64; pPatientDFN: string); 1292 1293 begin 1293 1294 // sets global switch, based in value returned from server. 1294 1295 // True -> Billing Aware Switch ON. else OFF 1295 1296 1296 UBACore.rpcSetBillingAwareSwitch(pProvider,p Location);1297 UBACore.rpcSetBillingAwareSwitch(pProvider,pPatientDFN); 1297 1298 1298 1299 if Assigned(UBAGlobals.BAPCEDiagList) then UBAGlobals.BAPCEDiagList.Clear; … … 1374 1375 Result := (strSC + strAO + strIR + strEC + strMST + strHNC + strCV); 1375 1376 end; 1377 1378 1376 1379 // Delete dc'd orders from BACopiedOrderList to keep things in sync. 1377 1380 procedure DeleteDCOrdersFromCopiedList(pOrderID:string); … … 1396 1399 procedure UpdateBAConsultOrderList(pDcOrders: TStringList); 1397 1400 var 1398 AnOrder,x: string;1401 x: string; 1399 1402 var i,j: integer; 1400 1403 holdList : TStringList; … … 1425 1428 end; 1426 1429 1427 {function SetOrderIDConsultDxRequired(pOrderID:string):string; 1428 var 1429 i: integer; 1430 orderIdIN, OrderIdOut,x: string; 1431 begin 1432 result := ''; 1433 for i := 0 to UBAGlobals.BAConsultOrdersRequireDx.Count-1 do 1434 begin 1435 orderIdIN := pOrderID; 1436 x := UBAGlobals.BAConsultOrdersRequireDx.Strings[i]; 1437 if orderIdIN = UBAGlobals.BAConsultOrdersRequireDx.Strings[i] then 1438 orderIdOUT := 'CONSULT_DX' // consult requires dx entry. enable display of cidc and non-cidc 1439 else 1440 orderIdOUT := orderIdIN; 1441 end; 1442 result := OrderIdOut; 1443 end; 1444 } 1430 // loop thru CIDC records remove records with invalid orderid 1431 function VerifyOrderIdExists(pOrderList: TStringList): TStringList; 1432 var 1433 goodList: TStringList; 1434 tOrderID: integer; 1435 i: integer; 1436 begin 1437 goodList := TStringList.Create; 1438 goodList.clear; 1439 1440 if pOrderList.Count > 0 then 1441 begin 1442 for i := 0 to pOrderList.Count-1 do 1443 begin 1444 tOrderID := StrToIntDef(Piece(pOrderList.Strings[i],';',1), 0); 1445 if tOrderID > 0 then 1446 goodList.add(pOrderList.Strings[i]); 1447 end; 1448 end; 1449 result := goodList; 1450 end; 1451 1452 // parse string return Treatment Factors when text inlcudes multiple "(())" 1453 //HDS8409 1454 function ProcessProblemTFactors(pText:String):String; 1455 var AText1,x: string; 1456 i,j: integer; 1457 begin 1458 if StrPos(PChar(pText),'(') = nil then exit; 1459 AText1 := Piece(pText,U,2); 1460 i := 1; 1461 j := 0; 1462 while j = 0 do 1463 begin 1464 x := Piece(AText1,'(',i); 1465 if Length(x) > 0 then 1466 inc(i) 1467 else 1468 begin 1469 x := Piece(AText1,'(',i-1); 1470 x := Piece(x,')',1); 1471 j := 1; 1472 Result := x; 1473 end; 1474 end; 1475 end; 1445 1476 1446 1477 end. -
cprs/branches/foia-cprs/CPRS-Chart/BA/UBAGlobals.pas
r459 r460 316 316 sourceOrderID: TStringList; 317 317 targetOrderIDLst: TStringList; 318 i:integer;319 tempOrderStr:string;320 318 begin 321 319 //Retrieve TF's/CI's from SOURCE Order … … 371 369 if UBAGlobals.tempDxNodeExists(thisOrderID) then 372 370 begin 373 thisRec := TBADxRecord.Create;374 371 if Assigned(tempDxList) then 375 372 … … 523 520 begin 524 521 Result := 0; 525 thisRec := TBADxRecord.Create;526 522 527 523 if Assigned(tempDxList) then … … 580 576 selectedOrders: smallint; 581 577 begin 582 Result := 0;583 578 selectedOrders := 0; 584 579 … … 762 757 if UBAGlobals.tempDxNodeExists(thisOrderID) then 763 758 begin 764 thisRec := TBADxRecord.Create;765 759 766 760 if Assigned(tempDxList) then … … 878 872 Result := false; 879 873 880 thisRec := TBADxRecord.Create;881 874 try 882 875 for i := 0 to tempDxList.Count - 1 do … … 909 902 i: integer; 910 903 begin 911 thisRec := TBADxRecord.Create;912 904 913 905 try … … 1013 1005 // StringList used to store DX Codes selected from Encounter Form 1014 1006 var 1015 BAVisitStr,BADxIEN: string; 1016 BAFileCat : char; 1017 BAFileDateTimeStr: string; 1007 BADxIEN: string; 1018 1008 BAProviderStr, BAProviderName : string; 1019 PList: TStringList;1020 1009 AList: TStringList; 1021 1010 begin … … 1106 1095 begin 1107 1096 Result := false; 1108 thisRec := TBADxRecord.Create;1109 1097 if Assigned(tempDxList) then 1110 1098 try -
cprs/branches/foia-cprs/CPRS-Chart/BA/fBALocalDiagnoses.dfm
r459 r460 21 21 PixelsPerInch = 96 22 22 TextHeight = 13 23 object lblPatientName: TStaticText24 Left = 5025 Top = 326 Width = 6527 Height = 1728 Caption = 'PatientName'29 TabOrder = 330 TabStop = True31 end32 23 object pnlTop: TPanel 33 24 Left = 0 34 25 Top = 0 35 26 Width = 612 36 Height = 11227 Height = 96 37 28 Align = alTop 38 29 Caption = 'pnlTop' … … 40 31 DesignSize = ( 41 32 612 42 112)33 96) 43 34 object lbOrders: TListBox 44 Left = 845 Top = 2 435 Left = 7 36 Top = 25 46 37 Width = 599 47 38 Height = 69 … … 49 40 IntegralHeight = True 50 41 ItemHeight = 13 51 TabOrder = 142 TabOrder = 2 52 43 OnMouseMove = lbOrdersMouseMove 53 44 end 54 45 object ORStaticText1: TORStaticText 55 Left = 846 Left = 216 56 47 Top = 8 57 48 Width = 169 … … 59 50 AutoSize = False 60 51 Caption = 'Selected Orders' 52 TabOrder = 1 53 TabStop = True 54 OnEnter = ORStaticText1Enter 55 OnExit = ORStaticText1Exit 56 end 57 object lblPatientName: TStaticText 58 Left = 11 59 Top = 9 60 Width = 76 61 Height = 17 62 Caption = 'PatientName' 63 Font.Charset = DEFAULT_CHARSET 64 Font.Color = clWindowText 65 Font.Height = -11 66 Font.Name = 'MS Sans Serif' 67 Font.Style = [fsBold] 68 ParentFont = False 61 69 TabOrder = 0 62 70 TabStop = True 63 OnEnter = ORStaticText1Enter64 OnExit = ORStaticText1Exit65 71 end 66 72 end 67 73 object pnlMain: TPanel 68 74 Left = 0 69 Top = 11275 Top = 96 70 76 Width = 612 71 Height = 2 4377 Height = 259 72 78 Align = alClient 73 79 TabOrder = 1 -
cprs/branches/foia-cprs/CPRS-Chart/BA/fBALocalDiagnoses.pas
r459 r460 18 18 end; 19 19 TfrmBALocalDiagnoses = class(TfrmAutoSz) 20 lblPatientName: TStaticText;21 20 pnlTop: TPanel; 22 21 lbOrders: TListBox; … … 38 37 ORStaticText3: TORStaticText; 39 38 ORStaticText4: TORStaticText; 39 lblPatientName: TStaticText; 40 40 procedure buOKClick(Sender: TObject); 41 41 procedure buCancelClick(Sender: TObject); … … 798 798 procedure TfrmBALocalDiagnoses.AddToProblemList; 799 799 var 800 i ,j: integer;801 tempCode, passCode ,x: string;800 i: integer; 801 tempCode, passCode: string; 802 802 NewList: TStringList; 803 803 PatientInfo:string; -
cprs/branches/foia-cprs/CPRS-Chart/BA/fBAOptionsDiagnoses.dfm
r459 r460 30 30 TabOrder = 0 31 31 object Splitter1: TSplitter 32 Left = 4 6832 Left = 458 33 33 Top = 26 34 34 Width = -3 … … 37 37 end 38 38 object Splitter2: TSplitter 39 Left = 1 9339 Left = 169 40 40 Top = 26 41 41 Width = 7 … … 44 44 end 45 45 object Splitter3: TSplitter 46 Left = 4 6746 Left = 457 47 47 Top = 26 48 48 Width = 1 … … 50 50 Cursor = crHSplit 51 51 end 52 object Splitter4: TSplitter53 Left = 38554 Top = 2655 Width = 256 Height = 46357 Cursor = crHSplit58 end59 52 object Splitter5: TSplitter 60 Left = 4 6553 Left = 455 61 54 Top = 26 62 55 Width = 2 … … 112 105 Left = 1 113 106 Top = 26 114 Width = 1 92107 Width = 168 115 108 Height = 463 116 109 Align = alLeft … … 126 119 Left = 0 127 120 Top = 17 128 Width = 1 92121 Width = 161 129 122 Height = 446 130 Align = alClient131 123 Font.Charset = DEFAULT_CHARSET 132 124 Font.Color = clWindowText … … 148 140 Left = 0 149 141 Top = 0 150 Width = 1 92142 Width = 168 151 143 Height = 17 152 144 DragReorder = False … … 161 153 end 162 154 object Panel4: TPanel 163 Left = 200164 Top = 26 165 Width = 185155 Left = 176 156 Top = 26 157 Width = 201 166 158 Height = 463 167 159 Align = alLeft … … 177 169 Left = 0 178 170 Top = 17 179 Width = 185171 Width = 201 180 172 Height = 446 181 Align = alLeft 182 Anchors = [akTop, akRight, akBottom] 173 Align = alClient 183 174 ItemHeight = 13 184 175 MultiSelect = True 185 176 ParentShowHint = False 186 177 ShowHint = True 178 Sorted = True 187 179 TabOrder = 0 188 180 OnClick = lbDiagnosisChange … … 196 188 Left = 0 197 189 Top = 0 198 Width = 185190 Width = 201 199 191 Height = 17 200 192 DragReorder = False … … 209 201 end 210 202 object Panel5: TPanel 211 Left = 4 65212 Top = 26 213 Width = 2 47203 Left = 455 204 Top = 26 205 Width = 257 214 206 Height = 463 215 207 Align = alClient … … 220 212 Left = 0 221 213 Top = 17 222 Width = 2 47214 Width = 257 223 215 Height = 446 224 216 Align = alClient … … 229 221 ParentShowHint = False 230 222 ShowHint = True 223 Sorted = True 231 224 TabOrder = 0 232 225 OnClick = lbPersonalDxClick … … 238 231 Left = 0 239 232 Top = 0 240 Width = 2 47233 Width = 257 241 234 Height = 17 242 235 DragReorder = False … … 277 270 end 278 271 object Panel7: TPanel 279 Left = 3 87272 Left = 377 280 273 Top = 26 281 274 Width = 78 -
cprs/branches/foia-cprs/CPRS-Chart/BA/fBAOptionsDiagnoses.pas
r459 r460 29 29 btnAdd: TBitBtn; 30 30 btnDelete: TBitBtn; 31 Splitter4: TSplitter;32 31 Splitter5: TSplitter; 33 32 Button1: TButton; … … 65 64 procedure ListDiagnosesCodes(Section: String); 66 65 procedure InactiveICDNotification; 66 procedure SyncDxDeleteList; 67 procedure SyncDxNewList; 67 68 68 69 public … … 123 124 LoadEncounterDx; 124 125 ListDiagnosesSections(lbSections.Items); 125 lbPersonalDx.Items := rpcGetPersonalDxList(User.DUZ); 126 // lbPersonalDx.Items := rpcGetPersonalDxList(User.DUZ); 127 LoadPersonalDxList; 126 128 btnOK.Enabled := False; 127 129 hdrCntlDx.Sections[0].Width := lbPersonalDX.Width; 128 130 hdrCntlDxSections.Sections[0].Width := lbSections.Width; 129 131 hdrCntlDxAdd.Sections[0].Width := lbDiagnosis.Width; 130 lbPersonalDx.Sorted := false;131 132 // lbPersonalDx.Sorted := false; 133 // lbPersonalDx.Sorted := True; 132 134 lbPersonalDX.Repaint; 133 135 end; … … 374 376 procedure TfrmBAOptionsDiagnoses.btnDeleteClick(Sender: TObject); 375 377 var 376 delDxCode: string; 377 i, c: integer; 378 begin 379 inherited; 380 // save dx seleted for deletion, update file when ok is pressed 381 for i := 0 to lbPersonalDX.Count-1 do 382 begin 383 if(lbPersonalDX.Selected[i]) then 384 begin 385 delDxCode := Piece(lbPersonalDX.Items[i],U,1); 386 delDxLst.Add(delDxCode); 387 end; 388 end; 389 378 i, c: integer; 379 begin 380 inherited; 381 SyncDxDeleteList; 382 SyncDxNewList; 390 383 // delete selected dx from listbox. 391 384 with lbPersonalDX do … … 599 592 end; 600 593 594 procedure TfrmBAOptionsDiagnoses.SyncDxDeleteList; 595 var 596 i: integer; 597 delDxCode: string; 598 begin 599 // save dx selected for deletion, update file when ok is pressed 600 for i := 0 to lbPersonalDX.Count-1 do 601 begin 602 if(lbPersonalDX.Selected[i]) then 603 begin 604 delDxCode := Piece(lbPersonalDX.Items[i],U,1); 605 delDxLst.Add(delDxCode); 606 end; 607 end; 608 end; 609 610 procedure TfrmBAOptionsDiagnoses.SyncDxNewList; 611 var 612 i,j :integer; 613 begin 614 // remove diagnoses selected for deletion from newdxList; 615 for i := 0 to lbPersonalDX.Count-1 do 616 begin 617 if lbPersonalDX.Selected[i] then 618 begin 619 for j := 0 to newDxLst.Count-1 do 620 begin 621 if (Piece(lbPersonalDX.Items[i],U,1)) = (newDxLst.Strings[j]) then 622 begin 623 newDxLst.Delete(j); 624 Break; 625 end; 626 end; 627 end; 628 end; 629 end; 630 631 601 632 initialization 602 633 uAddToPDL := 0; -
cprs/branches/foia-cprs/CPRS-Chart/CPRSChart.cfg
r459 r460 25 25 -$YD 26 26 -$Z1 27 -GD 27 28 -cg 28 29 -AWinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; … … 32 33 -$M32768,1048576 33 34 -K$00400000 34 -E" ..\CPRS-Chart"35 -N" ..\CPRS-Chart\DCU"36 -LE" ..\Packages"37 -LN" ..\Packages"38 -U"c:\program files\borland\delphi6\Lib\Debug; ..\CPRS-Lib"39 -O"c:\program files\borland\delphi6\Lib\Debug; ..\CPRS-Lib"40 -I"c:\program files\borland\delphi6\Lib\Debug; ..\CPRS-Lib"41 -R"c:\program files\borland\delphi6\Lib\Debug; ..\CPRS-Lib"35 -E"C:\Vista\cprs\OR_3_215V26\CPRS-Chart" 36 -N"C:\Vista\cprs\OR_3_215V26\CPRS-Chart\DCU" 37 -LE"C:\Vista\cprs\OR_3_215V26\Packages" 38 -LN"C:\Vista\cprs\OR_3_215V26\Packages" 39 -U"c:\program files\borland\delphi6\Lib\Debug;C:\Vista\cprs\OR_3_215V26\CPRS-Lib" 40 -O"c:\program files\borland\delphi6\Lib\Debug;C:\Vista\cprs\OR_3_215V26\CPRS-Lib" 41 -I"c:\program files\borland\delphi6\Lib\Debug;C:\Vista\cprs\OR_3_215V26\CPRS-Lib" 42 -R"c:\program files\borland\delphi6\Lib\Debug;C:\Vista\cprs\OR_3_215V26\CPRS-Lib" -
cprs/branches/foia-cprs/CPRS-Chart/CPRSChart.dof
r459 r460 32 32 UnitAliases=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 33 33 [Linker] 34 MapFile= 034 MapFile=3 35 35 OutputObjs=0 36 36 ConsoleApp=1 … … 42 42 ExeDescription= 43 43 [Directories] 44 OutputDir= ..\CPRS-Chart45 UnitOutputDir= ..\CPRS-Chart\DCU46 PackageDLLOutputDir= ..\Packages47 PackageDCPOutputDir= ..\Packages48 SearchPath=$(DELPHI)\Lib\Debug; ..\CPRS-Lib44 OutputDir=C:\Vista\cprs\OR_3_215V26\CPRS-Chart 45 UnitOutputDir=C:\Vista\cprs\OR_3_215V26\CPRS-Chart\DCU 46 PackageDLLOutputDir=C:\Vista\cprs\OR_3_215V26\Packages 47 PackageDCPOutputDir=C:\Vista\cprs\OR_3_215V26\Packages 48 SearchPath=$(DELPHI)\Lib\Debug;C:\Vista\cprs\OR_3_215V26\CPRS-Lib 49 49 Packages=vcl;rtl;vclx;VclSmp;vclshlctrls;dbrtl;adortl;vcldb;qrpt;bdertl;vcldbx;dsnap;cds;bdecds;teeui;teedb;tee;teeqr;ibxpress;visualclx;visualdbclx;vclie;xmlrtl;inet;inetdbbde;inetdbxpress;inetdb;nmfast;dbexpress;dbxcds;indy;dclOffice2k;soaprtl;XWB_R60 50 50 Conditionals= … … 66 66 MajorVer=1 67 67 MinorVer=0 68 Release=2 569 Build= 4268 Release=26 69 Build=68 70 70 Debug=0 71 71 PreRelease=0 … … 77 77 [Version Info Keys] 78 78 CompanyName=Department of Veterans Affairs 79 FileDescription= 5/31/200580 FileVersion=1.0.2 5.4281 InternalName=1.0.2 5.42server required79 FileDescription=6/5/2006 80 FileVersion=1.0.26.68 81 InternalName=1.0.26.68 server required 82 82 LegalCopyright=Unauthorized access or misuse of this system and/or its data is a federal crime. Use of all data shall be in accordance with VA policy on security and privacy. 83 83 LegalTrademarks= 84 OriginalFilename=Patch 19584 OriginalFilename=Patch 215 85 85 ProductName=Computerized Patient Record System 86 86 ProductVersion=1.0.0.0 87 Comments=Version 1.0.2 5.4287 Comments=Version 1.0.26.68 88 88 [HistoryLists\hlUnitAliases] 89 89 Count=1 90 90 Item0=WinTypes=Windows;WinProcs=Windows;DbiTypes=BDE;DbiProcs=BDE;DbiErrs=BDE; 91 91 [HistoryLists\hlSearchPath] 92 Count=2 93 Item0=$(DELPHI)\Lib\Debug;..\CPRS-Lib 94 Item1=..\CPRS-Lib 92 Count=1 93 Item0=$(DELPHI)\Lib\Debug;C:\Vista\cprs\OR_3_215V26\CPRS-Lib 95 94 [HistoryLists\hlUnitOutputDirectory] 96 95 Count=1 97 Item0= ..\CPRS-Chart\DCU96 Item0=C:\Vista\cprs\OR_3_215V26\CPRS-Chart\DCU 98 97 [HistoryLists\hlOutputDirectorry] 99 98 Count=1 100 Item0= ..\CPRS-Chart99 Item0=C:\Vista\cprs\OR_3_215V26\CPRS-Chart 101 100 [HistoryLists\hlBPLOutput] 102 101 Count=1 103 Item0= ..\Packages102 Item0=C:\Vista\cprs\OR_3_215V26\Packages 104 103 [HistoryLists\hlDCPOutput] 105 104 Count=1 106 Item0= ..\Packages105 Item0=C:\Vista\cprs\OR_3_215V26\Packages -
cprs/branches/foia-cprs/CPRS-Chart/CPRSChart.dpr
r459 r460 2 2 3 3 uses 4 SQASrvr, 5 ShareMem, 4 6 Forms, 5 7 ORSystem, … … 169 171 uOrders in 'Orders\uOrders.pas', 170 172 fOCSession in 'Orders\fOCSession.pas' {frmOCSession}, 171 fODAllgy in 'Orders\fODAllgy.pas',172 173 fODAuto in 'Orders\fODAuto.pas', 173 174 fODBase in 'Orders\fODBase.pas' {frmODBase}, … … 288 289 UBACore in 'BA\UBACore.pas', 289 290 fBAOptionsDiagnoses in 'BA\fBAOptionsDiagnoses.pas' {frmBAOptionsDiagnoses}, 290 fOtherSchedule in 'Orders\fOtherSchedule.pas' {frmOtherSchedule}; 291 fOtherSchedule in 'Orders\fOtherSchedule.pas' {frmOtherSchedule}, 292 fODBBank in 'Orders\fODBBank.pas' {frmODBBank}, 293 fNoteST in 'fNoteST.pas' {frmNotesSearchText}, 294 fNoteSTStop in 'fNoteSTStop.pas' {frmSearchStop}, 295 rGraphs in 'rGraphs.pas', 296 fGraphs in 'fGraphs.pas' {frmGraphs}, 297 fGraphSettings in 'fGraphSettings.pas' {frmGraphSettings}, 298 fGraphProfiles in 'fGraphProfiles.pas' {frmGraphProfiles}, 299 uGraphs in 'uGraphs.pas', 300 fClinicWardMeds in 'fClinicWardMeds.pas' {frmClinicWardMeds}, 301 fActivateDeactivate in 'fActivateDeactivate.pas' {frmActivateDeactive}, 302 uFormMonitor in 'uFormMonitor.pas'; 291 303 292 304 {$R *.TLB} … … 310 322 Application.CreateForm(TdmodShared, dmodShared); 311 323 Application.CreateForm(TfrmFrame, frmFrame); 324 Application.CreateForm(TfrmSearchStop, frmSearchStop); 312 325 frmSplash.Free; // close & free splash screen 313 326 Application.Run; -
cprs/branches/foia-cprs/CPRS-Chart/CPRSChart.drc
r459 r460 9 9 */ 10 10 11 #define VDBConsts_SRefreshRecord 65152 12 #define VDBConsts_SRemoteLogin 65153 13 #define OleConst_SInvalidLicense 65168 14 #define OleConst_SNotLicensed 65169 15 #define OleConst_sNoRunningObject 65170 16 #define DBConsts_SBcdOverflow 65171 17 #define DBConsts_SInvalidBcdValue 65172 18 #define DBConsts_SCouldNotParseTimeStamp 65173 19 #define DBConsts_SInvalidSqlTimeStamp 65174 20 #define VDBConsts_SFirstRecord 65175 21 #define VDBConsts_SPriorRecord 65176 22 #define VDBConsts_SNextRecord 65177 23 #define VDBConsts_SLastRecord 65178 24 #define VDBConsts_SInsertRecord 65179 25 #define VDBConsts_SDeleteRecord 65180 26 #define VDBConsts_SEditRecord 65181 27 #define VDBConsts_SPostEdit 65182 28 #define VDBConsts_SCancelEdit 65183 29 #define TeeConst_TeeMsg_FunctionMultiply 65184 30 #define TeeConst_TeeMsg_FunctionDivide 65185 31 #define TeeConst_TeeMsg_FunctionHigh 65186 32 #define TeeConst_TeeMsg_FunctionLow 65187 33 #define TeeConst_TeeMsg_FunctionAverage 65188 34 #define TeeConst_TeeMsg_DefaultFontName 65189 35 #define TeeConst_TeeMsg_CheckPointerSize 65190 36 #define TeeConst_TeeMsg_FunctionPeriod 65191 37 #define TeeConst_TeeMsg_PieOther 65192 38 #define TeeConst_TeeMsg_ValuesX 65193 39 #define TeeConst_TeeMsg_ValuesY 65194 40 #define TeeConst_TeeMsg_ValuesPie 65195 41 #define TeeConst_TeeMsg_ValuesBar 65196 42 #define TeeConst_TeeMsg_ValuesAngle 65197 43 #define OleConst_SCannotActivate 65198 44 #define OleConst_SNoWindowHandle 65199 45 #define TeeConst_TeeMsg_GalleryPie 65200 46 #define TeeConst_TeeMsg_GalleryFastLine 65201 47 #define TeeConst_TeeMsg_Rotation 65202 48 #define TeeConst_TeeMsg_PieSample1 65203 49 #define TeeConst_TeeMsg_PieSample2 65204 50 #define TeeConst_TeeMsg_PieSample3 65205 51 #define TeeConst_TeeMsg_PieSample4 65206 52 #define TeeConst_TeeMsg_PieSample5 65207 53 #define TeeConst_TeeMsg_PieSample6 65208 54 #define TeeConst_TeeMsg_PieSample7 65209 55 #define TeeConst_TeeMsg_PieSample8 65210 56 #define TeeConst_TeeMsg_GalleryStandard 65211 57 #define TeeConst_TeeMsg_GalleryFunctions 65212 58 #define TeeConst_TeeMsg_DefaultFontSize 65213 59 #define TeeConst_TeeMsg_FunctionAdd 65214 60 #define TeeConst_TeeMsg_FunctionSubtract 65215 61 #define TeeConst_TeeMsg_AxisLogBase 65216 62 #define TeeConst_TeeMsg_MaxPointsPerPage 65217 63 #define TeeConst_TeeMsg_3dPercent 65218 64 #define TeeConst_TeeMsg_CircularSeries 65219 65 #define TeeConst_TeeMsg_BarWidthPercent 65220 66 #define TeeConst_TeeMsg_BarOffsetPercent 65221 67 #define TeeConst_TeeMsg_DefaultPercentOf 65222 68 #define TeeConst_TeeMsg_DefPercentFormat 65223 69 #define TeeConst_TeeMsg_DefValueFormat 65224 70 #define TeeConst_TeeMsg_AxisTitle 65225 71 #define TeeConst_TeeMsg_AxisLabels 65226 72 #define TeeConst_TeeMsg_GalleryLine 65227 73 #define TeeConst_TeeMsg_GalleryPoint 65228 74 #define TeeConst_TeeMsg_GalleryArea 65229 75 #define TeeConst_TeeMsg_GalleryBar 65230 76 #define TeeConst_TeeMsg_GalleryHorizBar 65231 77 #define ComConst_SAutomationWarning 65232 78 #define ComConst_SNoCloseActiveServer1 65233 79 #define ComConst_SNoCloseActiveServer2 65234 80 #define TeeConst_TeeMsg_LegendTopPos 65235 81 #define TeeConst_TeeMsg_LegendFirstValue 65236 82 #define TeeConst_TeeMsg_LegendColorWidth 65237 83 #define TeeConst_TeeMsg_SeriesSetDataSource 65238 84 #define TeeConst_TeeMsg_SeriesInvDataSource 65239 85 #define TeeConst_TeeMsg_FillSample 65240 86 #define TeeConst_TeeMsg_Angle 65241 87 #define TeeConst_TeeMsg_AxisLogDateTime 65242 88 #define TeeConst_TeeMsg_AxisLogNotPositive 65243 89 #define TeeConst_TeeMsg_AxisLabelSep 65244 90 #define TeeConst_TeeMsg_AxisIncrementNeg 65245 91 #define TeeConst_TeeMsg_AxisMinMax 65246 92 #define TeeConst_TeeMsg_AxisMaxMin 65247 93 #define ComStrs_sDateTimeMin 65248 94 #define ComStrs_sFailSetCalDateTime 65249 95 #define ComStrs_sFailSetCalMaxSelRange 65250 96 #define ComStrs_sFailSetCalMinMaxRange 65251 97 #define ComStrs_sFailsetCalSelRange 65252 98 #define ComConst_SCreateRegKeyError 65253 99 #define ComConst_SOleError 65254 100 #define ComConst_SObjectFactoryMissing 65255 101 #define ComConst_STypeInfoMissing 65256 102 #define ComConst_SBadTypeInfo 65257 103 #define ComConst_SDispIntfMissing 65258 104 #define ComConst_SNoMethod 65259 105 #define ComConst_SVarNotObject 65260 106 #define ComConst_STooManyParams 65261 107 #define ComConst_SDCOMNotInstalled 65262 108 #define ComConst_SDAXError 65263 109 #define ComStrs_sTabFailDelete 65264 110 #define ComStrs_sTabFailRetrieve 65265 111 #define ComStrs_sTabFailGetObject 65266 112 #define ComStrs_sTabFailSet 65267 113 #define ComStrs_sTabFailSetObject 65268 114 #define ComStrs_sTabMustBeMultiLine 65269 115 #define ComStrs_sInvalidIndex 65270 116 #define ComStrs_sInsertError 65271 117 #define ComStrs_sInvalidOwner 65272 118 #define ComStrs_sRichEditInsertError 65273 119 #define ComStrs_sRichEditLoadFail 65274 120 #define ComStrs_sRichEditSaveFail 65275 121 #define ComStrs_sUDAssociated 65276 122 #define ComStrs_sPageIndexError 65277 123 #define ComStrs_sInvalidComCtl32 65278 124 #define ComStrs_sDateTimeMax 65279 125 #define Consts_SNoDefaultPrinter 65280 126 #define Consts_SDuplicateMenus 65281 127 #define Consts_SCannotOpenAVI 65282 128 #define Consts_SDockedCtlNeedsName 65283 129 #define Consts_SDockTreeRemoveError 65284 130 #define Consts_SDockZoneNotFound 65285 131 #define Consts_SDockZoneHasNoCtl 65286 132 #define Consts_SMultiSelectRequired 65287 133 #define Consts_SSeparator 65288 134 #define Consts_SErrorSettingCount 65289 135 #define Consts_SListBoxMustBeVirtual 65290 136 #define HelpIntfs_hNoTableOfContents 65291 137 #define HelpIntfs_hNothingFound 65292 138 #define HelpIntfs_hNoContext 65293 139 #define HelpIntfs_hNoTopics 65294 140 #define ComStrs_sTabFailClear 65295 141 #define Consts_SmkcLeft 65296 142 #define Consts_SmkcUp 65297 143 #define Consts_SmkcRight 65298 144 #define Consts_SmkcDown 65299 145 #define Consts_SmkcIns 65300 146 #define Consts_SmkcDel 65301 147 #define Consts_SmkcShift 65302 148 #define Consts_SmkcCtrl 65303 149 #define Consts_SmkcAlt 65304 150 #define Consts_SOutOfRange 65305 151 #define Consts_SInsertLineError 65306 152 #define Consts_SInvalidClipFmt 65307 153 #define Consts_SIconToClipboard 65308 154 #define Consts_SCannotOpenClipboard 65309 155 #define Consts_SInvalidMemoSize 65310 156 #define Consts_SInvalidPrinterOp 65311 157 #define Consts_SMsgDlgHelp 65312 158 #define Consts_SMsgDlgAbort 65313 159 #define Consts_SMsgDlgRetry 65314 160 #define Consts_SMsgDlgIgnore 65315 161 #define Consts_SMsgDlgAll 65316 162 #define Consts_SMsgDlgNoToAll 65317 163 #define Consts_SMsgDlgYesToAll 65318 164 #define Consts_SmkcBkSp 65319 165 #define Consts_SmkcTab 65320 166 #define Consts_SmkcEsc 65321 167 #define Consts_SmkcEnter 65322 168 #define Consts_SmkcSpace 65323 169 #define Consts_SmkcPgUp 65324 170 #define Consts_SmkcPgDn 65325 171 #define Consts_SmkcEnd 65326 172 #define Consts_SmkcHome 65327 173 #define Consts_SAllButton 65328 174 #define Consts_SCannotDragForm 65329 175 #define Consts_SVMetafiles 65330 176 #define Consts_SVEnhMetafiles 65331 177 #define Consts_SVIcons 65332 178 #define Consts_SVBitmaps 65333 179 #define Consts_SMaskErr 65334 180 #define Consts_SMaskEditErr 65335 181 #define Consts_SMsgDlgWarning 65336 182 #define Consts_SMsgDlgError 65337 183 #define Consts_SMsgDlgInformation 65338 184 #define Consts_SMsgDlgConfirm 65339 185 #define Consts_SMsgDlgYes 65340 186 #define Consts_SMsgDlgNo 65341 187 #define Consts_SMsgDlgOK 65342 188 #define Consts_SMsgDlgCancel 65343 189 #define Consts_SNotPrinting 65344 190 #define Consts_SPrinting 65345 191 #define Consts_SInvalidPrinter 65346 192 #define Consts_SDeviceOnPort 65347 193 #define Consts_SGroupIndexTooLow 65348 194 #define Consts_SNoMDIForm 65349 195 #define Consts_SControlParentSetToSelf 65350 196 #define Consts_SOKButton 65351 197 #define Consts_SCancelButton 65352 198 #define Consts_SYesButton 65353 199 #define Consts_SNoButton 65354 200 #define Consts_SHelpButton 65355 201 #define Consts_SCloseButton 65356 202 #define Consts_SIgnoreButton 65357 203 #define Consts_SRetryButton 65358 204 #define Consts_SAbortButton 65359 205 #define Consts_SImageReadFail 65360 206 #define Consts_SImageWriteFail 65361 207 #define Consts_SWindowDCError 65362 208 #define Consts_SWindowClass 65363 209 #define Consts_SCannotFocus 65364 210 #define Consts_SParentRequired 65365 211 #define Consts_SParentGivenNotAParent 65366 212 #define Consts_SMDIChildNotVisible 65367 213 #define Consts_SVisibleChanged 65368 214 #define Consts_SCannotShowModal 65369 215 #define Consts_SScrollBarRange 65370 216 #define Consts_SPropertyOutOfRange 65371 217 #define Consts_SMenuIndexError 65372 218 #define Consts_SMenuReinserted 65373 219 #define Consts_SMenuNotFound 65374 220 #define Consts_SNoTimers 65375 221 #define RTLConsts_SThreadCreateError 65376 222 #define RTLConsts_SThreadError 65377 223 #define Consts_SInvalidTabPosition 65378 224 #define Consts_SInvalidTabStyle 65379 225 #define Consts_SInvalidBitmap 65380 226 #define Consts_SInvalidIcon 65381 227 #define Consts_SInvalidMetafile 65382 228 #define Consts_SChangeIconSize 65383 229 #define Consts_SOleGraphic 65384 230 #define Consts_SUnknownClipboardFormat 65385 231 #define Consts_SOutOfResources 65386 232 #define Consts_SNoCanvasHandle 65387 233 #define Consts_SInvalidImageSize 65388 234 #define Consts_SInvalidImageList 65389 235 #define Consts_SReplaceImage 65390 236 #define Consts_SImageIndexError 65391 237 #define RTLConsts_SListCapacityError 65392 238 #define RTLConsts_SListCountError 65393 239 #define RTLConsts_SListIndexError 65394 240 #define RTLConsts_SMemoryStreamError 65395 241 #define RTLConsts_SPropertyException 65396 242 #define RTLConsts_SReadError 65397 243 #define RTLConsts_SReadOnlyProperty 65398 244 #define RTLConsts_SRegGetDataFailed 65399 245 #define RTLConsts_SRegSetDataFailed 65400 246 #define RTLConsts_SResNotFound 65401 247 #define RTLConsts_SSeekNotImplemented 65402 248 #define RTLConsts_SSortedListError 65403 249 #define RTLConsts_STooManyDeleted 65404 250 #define RTLConsts_SUnknownGroup 65405 251 #define RTLConsts_SUnknownProperty 65406 252 #define RTLConsts_SWriteError 65407 253 #define RTLConsts_SDuplicateString 65408 254 #define RTLConsts_SFCreateError 65409 255 #define RTLConsts_SFixedColTooBig 65410 256 #define RTLConsts_SFixedRowTooBig 65411 257 #define RTLConsts_SFOpenError 65412 258 #define RTLConsts_SGridTooLarge 65413 259 #define RTLConsts_SIndexOutOfRange 65414 260 #define RTLConsts_SInvalidImage 65415 261 #define RTLConsts_SInvalidName 65416 262 #define RTLConsts_SInvalidProperty 65417 263 #define RTLConsts_SInvalidPropertyElement 65418 264 #define RTLConsts_SInvalidPropertyPath 65419 265 #define RTLConsts_SInvalidPropertyType 65420 266 #define RTLConsts_SInvalidPropertyValue 65421 267 #define RTLConsts_SInvalidRegType 65422 268 #define RTLConsts_SInvalidStringGridOp 65423 269 #define SysConst_SLongDayNameSun 65424 270 #define SysConst_SLongDayNameMon 65425 271 #define SysConst_SLongDayNameTue 65426 272 #define SysConst_SLongDayNameWed 65427 273 #define SysConst_SLongDayNameThu 65428 274 #define SysConst_SLongDayNameFri 65429 275 #define SysConst_SLongDayNameSat 65430 276 #define RTLConsts_SAncestorNotFound 65431 277 #define RTLConsts_SAssignError 65432 278 #define RTLConsts_SBitsIndexError 65433 279 #define RTLConsts_SCantWriteResourceStreamError 65434 280 #define RTLConsts_SCheckSynchronizeError 65435 281 #define RTLConsts_SClassNotFound 65436 282 #define RTLConsts_SDuplicateClass 65437 283 #define RTLConsts_SDuplicateItem 65438 284 #define RTLConsts_SDuplicateName 65439 285 #define SysConst_SLongMonthNameApr 65440 286 #define SysConst_SLongMonthNameMay 65441 287 #define SysConst_SLongMonthNameJun 65442 288 #define SysConst_SLongMonthNameJul 65443 289 #define SysConst_SLongMonthNameAug 65444 290 #define SysConst_SLongMonthNameSep 65445 291 #define SysConst_SLongMonthNameOct 65446 292 #define SysConst_SLongMonthNameNov 65447 293 #define SysConst_SLongMonthNameDec 65448 294 #define SysConst_SShortDayNameSun 65449 295 #define SysConst_SShortDayNameMon 65450 296 #define SysConst_SShortDayNameTue 65451 297 #define SysConst_SShortDayNameWed 65452 298 #define SysConst_SShortDayNameThu 65453 299 #define SysConst_SShortDayNameFri 65454 300 #define SysConst_SShortDayNameSat 65455 301 #define SysConst_SUnkOSError 65456 302 #define SysConst_SShortMonthNameJan 65457 303 #define SysConst_SShortMonthNameFeb 65458 304 #define SysConst_SShortMonthNameMar 65459 305 #define SysConst_SShortMonthNameApr 65460 306 #define SysConst_SShortMonthNameMay 65461 307 #define SysConst_SShortMonthNameJun 65462 308 #define SysConst_SShortMonthNameJul 65463 309 #define SysConst_SShortMonthNameAug 65464 310 #define SysConst_SShortMonthNameSep 65465 311 #define SysConst_SShortMonthNameOct 65466 312 #define SysConst_SShortMonthNameNov 65467 313 #define SysConst_SShortMonthNameDec 65468 314 #define SysConst_SLongMonthNameJan 65469 315 #define SysConst_SLongMonthNameFeb 65470 316 #define SysConst_SLongMonthNameMar 65471 317 #define SysConst_SInvalidVarNullOp 65472 318 #define SysConst_SVarTypeCouldNotConvert 65473 319 #define SysConst_SVarTypeConvertOverflow 65474 320 #define SysConst_SVarOverflow 65475 321 #define SysConst_SVarInvalid 65476 322 #define SysConst_SVarBadType 65477 323 #define SysConst_SVarNotImplemented 65478 324 #define SysConst_SVarUnexpected 65479 325 #define SysConst_SExternalException 65480 326 #define SysConst_SAssertionFailed 65481 327 #define SysConst_SIntfCastError 65482 328 #define SysConst_SSafecallException 65483 329 #define SysConst_SAssertError 65484 330 #define SysConst_SAbstractError 65485 331 #define SysConst_SModuleAccessViolation 65486 332 #define SysConst_SOSError 65487 333 #define SysConst_SArgumentMissing 65488 334 #define SysConst_SDispatchError 65489 335 #define SysConst_SReadAccess 65490 336 #define SysConst_SWriteAccess 65491 337 #define SysConst_SFormatTooLong 65492 338 #define SysConst_SVarArrayCreate 65493 339 #define SysConst_SVarArrayBounds 65494 340 #define SysConst_SVarArrayLocked 65495 341 #define SysConst_SInvalidVarCast 65496 342 #define SysConst_SInvalidVarOp 65497 343 #define SysConst_SInvalidVarOpWithHResult 65498 344 #define SysConst_SVarNotArray 65499 345 #define SysConst_SVarTypeOutOfRange 65500 346 #define SysConst_SVarTypeAlreadyUsed 65501 347 #define SysConst_SVarTypeNotUsable 65502 348 #define SysConst_SVarTypeTooManyCustom 65503 349 #define SysConst_SRangeError 65504 350 #define SysConst_SIntOverflow 65505 351 #define SysConst_SInvalidOp 65506 352 #define SysConst_SZeroDivide 65507 353 #define SysConst_SOverflow 65508 354 #define SysConst_SUnderflow 65509 355 #define SysConst_SInvalidPointer 65510 356 #define SysConst_SInvalidCast 65511 357 #define SysConst_SAccessViolation 65512 358 #define SysConst_SStackOverflow 65513 359 #define SysConst_SControlC 65514 360 #define SysConst_SPrivilege 65515 361 #define SysConst_SOperationAborted 65516 362 #define SysConst_SException 65517 363 #define SysConst_SExceptTitle 65518 364 #define SysConst_SInvalidFormat 65519 11 #define TeeConst_TeeMsg_ValuesGanttStart 65056 12 #define TeeConst_TeeMsg_ValuesGanttEnd 65057 13 #define TeeConst_TeeMsg_ValuesGanttNextTask 65058 14 #define TeeConst_TeeMsg_ValuesArrowEndX 65059 15 #define TeeConst_TeeMsg_ValuesArrowEndY 65060 16 #define VDBConsts_SFirstRecord 65061 17 #define VDBConsts_SPriorRecord 65062 18 #define VDBConsts_SNextRecord 65063 19 #define VDBConsts_SLastRecord 65064 20 #define VDBConsts_SInsertRecord 65065 21 #define VDBConsts_SDeleteRecord 65066 22 #define VDBConsts_SEditRecord 65067 23 #define VDBConsts_SPostEdit 65068 24 #define VDBConsts_SCancelEdit 65069 25 #define VDBConsts_SRefreshRecord 65070 26 #define VDBConsts_SRemoteLogin 65071 27 #define TeeConst_TeeMsg_FunctionAdd 65072 28 #define TeeConst_TeeMsg_FunctionSubtract 65073 29 #define TeeConst_TeeMsg_FunctionMultiply 65074 30 #define TeeConst_TeeMsg_FunctionDivide 65075 31 #define TeeConst_TeeMsg_FunctionHigh 65076 32 #define TeeConst_TeeMsg_FunctionLow 65077 33 #define TeeConst_TeeMsg_FunctionAverage 65078 34 #define TeeConst_TeeMsg_DefaultFontName 65079 35 #define TeeConst_TeeMsg_CheckPointerSize 65080 36 #define TeeConst_TeeMsg_FunctionPeriod 65081 37 #define TeeConst_TeeMsg_PieOther 65082 38 #define TeeConst_TeeMsg_ValuesX 65083 39 #define TeeConst_TeeMsg_ValuesY 65084 40 #define TeeConst_TeeMsg_ValuesPie 65085 41 #define TeeConst_TeeMsg_ValuesBar 65086 42 #define TeeConst_TeeMsg_ValuesAngle 65087 43 #define TeeConst_TeeMsg_PieSample8 65088 44 #define TeeConst_TeeMsg_GalleryStandard 65089 45 #define TeeConst_TeeMsg_GalleryFunctions 65090 46 #define TeeConst_TeeMsg_GalleryArrow 65091 47 #define TeeConst_TeeMsg_GalleryGantt 65092 48 #define TeeConst_TeeMsg_GanttSample1 65093 49 #define TeeConst_TeeMsg_GanttSample2 65094 50 #define TeeConst_TeeMsg_GanttSample3 65095 51 #define TeeConst_TeeMsg_GanttSample4 65096 52 #define TeeConst_TeeMsg_GanttSample5 65097 53 #define TeeConst_TeeMsg_GanttSample6 65098 54 #define TeeConst_TeeMsg_GanttSample7 65099 55 #define TeeConst_TeeMsg_GanttSample8 65100 56 #define TeeConst_TeeMsg_GanttSample9 65101 57 #define TeeConst_TeeMsg_GanttSample10 65102 58 #define TeeConst_TeeMsg_DefaultFontSize 65103 59 #define TeeConst_TeeMsg_AxisLabels 65104 60 #define TeeConst_TeeMsg_GalleryLine 65105 61 #define TeeConst_TeeMsg_GalleryPoint 65106 62 #define TeeConst_TeeMsg_GalleryArea 65107 63 #define TeeConst_TeeMsg_GalleryBar 65108 64 #define TeeConst_TeeMsg_GalleryHorizBar 65109 65 #define TeeConst_TeeMsg_GalleryPie 65110 66 #define TeeConst_TeeMsg_GalleryFastLine 65111 67 #define TeeConst_TeeMsg_Rotation 65112 68 #define TeeConst_TeeMsg_PieSample1 65113 69 #define TeeConst_TeeMsg_PieSample2 65114 70 #define TeeConst_TeeMsg_PieSample3 65115 71 #define TeeConst_TeeMsg_PieSample4 65116 72 #define TeeConst_TeeMsg_PieSample5 65117 73 #define TeeConst_TeeMsg_PieSample6 65118 74 #define TeeConst_TeeMsg_PieSample7 65119 75 #define TeeConst_TeeMsg_AxisLogDateTime 65120 76 #define TeeConst_TeeMsg_AxisLogNotPositive 65121 77 #define TeeConst_TeeMsg_AxisLabelSep 65122 78 #define TeeConst_TeeMsg_AxisIncrementNeg 65123 79 #define TeeConst_TeeMsg_AxisMinMax 65124 80 #define TeeConst_TeeMsg_AxisMaxMin 65125 81 #define TeeConst_TeeMsg_AxisLogBase 65126 82 #define TeeConst_TeeMsg_MaxPointsPerPage 65127 83 #define TeeConst_TeeMsg_3dPercent 65128 84 #define TeeConst_TeeMsg_CircularSeries 65129 85 #define TeeConst_TeeMsg_BarWidthPercent 65130 86 #define TeeConst_TeeMsg_BarOffsetPercent 65131 87 #define TeeConst_TeeMsg_DefaultPercentOf 65132 88 #define TeeConst_TeeMsg_DefPercentFormat 65133 89 #define TeeConst_TeeMsg_DefValueFormat 65134 90 #define TeeConst_TeeMsg_AxisTitle 65135 91 #define bdeconst_SInitError 65136 92 #define bdeconst_SIDAPILangID 65137 93 #define bdeconst_SBDEError 65138 94 #define bdeconst_SNoDataSetField 65139 95 #define bdeconst_SNoCachedUpdates 65140 96 #define bdeconst_SNoFieldAccess 65141 97 #define bdeconst_SUntitled 65142 98 #define bdeconst_SUpdateFailed 65143 99 #define bdeconst_SLocalTransDirty 65144 100 #define TeeConst_TeeMsg_LegendTopPos 65145 101 #define TeeConst_TeeMsg_LegendFirstValue 65146 102 #define TeeConst_TeeMsg_LegendColorWidth 65147 103 #define TeeConst_TeeMsg_SeriesSetDataSource 65148 104 #define TeeConst_TeeMsg_SeriesInvDataSource 65149 105 #define TeeConst_TeeMsg_FillSample 65150 106 #define TeeConst_TeeMsg_Angle 65151 107 #define bdeconst_SAutoSessionExists 65152 108 #define bdeconst_SAutoSessionActive 65153 109 #define bdeconst_SDuplicateDatabaseName 65154 110 #define bdeconst_SDuplicateSessionName 65155 111 #define bdeconst_SInvalidSessionName 65156 112 #define bdeconst_SDatabaseNameMissing 65157 113 #define bdeconst_SSessionNameMissing 65158 114 #define bdeconst_SDatabaseOpen 65159 115 #define bdeconst_SDatabaseClosed 65160 116 #define bdeconst_SDatabaseHandleSet 65161 117 #define bdeconst_SSessionActive 65162 118 #define bdeconst_SHandleError 65163 119 #define bdeconst_SNoReferenceTableName 65164 120 #define bdeconst_SEmptySQLStatement 65165 121 #define bdeconst_SNoParameterValue 65166 122 #define bdeconst_SLoginError 65167 123 #define DBConsts_STextTrue 65168 124 #define DBConsts_SParameterNotFound 65169 125 #define DBConsts_SInvalidVersion 65170 126 #define DBConsts_SBadFieldType 65171 127 #define DBConsts_SProviderSQLNotSupported 65172 128 #define DBConsts_SProviderExecuteNotSupported 65173 129 #define DBConsts_SExprNoAggOnCalcs 65174 130 #define DBConsts_SDataSetUnidirectional 65175 131 #define DBConsts_SUnassignedVar 65176 132 #define DBConsts_SRecordNotFound 65177 133 #define DBConsts_SBcdOverflow 65178 134 #define DBConsts_SInvalidBcdValue 65179 135 #define DBConsts_SInvalidFormatType 65180 136 #define DBConsts_SCouldNotParseTimeStamp 65181 137 #define DBConsts_SInvalidSqlTimeStamp 65182 138 #define bdeconst_SAutoSessionExclusive 65183 139 #define DBConsts_SExprNoRParenOrComma 65184 140 #define DBConsts_SExprExpected 65185 141 #define DBConsts_SExprBadField 65186 142 #define DBConsts_SExprBadNullTest 65187 143 #define DBConsts_SExprRangeError 65188 144 #define DBConsts_SExprIncorrect 65189 145 #define DBConsts_SExprNothing 65190 146 #define DBConsts_SExprTypeMis 65191 147 #define DBConsts_SExprBadScope 65192 148 #define DBConsts_SExprNoArith 65193 149 #define DBConsts_SExprNotAgg 65194 150 #define DBConsts_SExprBadConst 65195 151 #define DBConsts_SExprNoAggFilter 65196 152 #define DBConsts_SExprEmptyInList 65197 153 #define DBConsts_SInvalidKeywordUse 65198 154 #define DBConsts_STextFalse 65199 155 #define DBConsts_SInvalidCalcType 65200 156 #define DBConsts_SFieldReadOnly 65201 157 #define DBConsts_SNotIndexField 65202 158 #define DBConsts_SCircularDataLink 65203 159 #define DBConsts_SLookupInfoError 65204 160 #define DBConsts_SDataSourceChange 65205 161 #define DBConsts_SDataSetOpen 65206 162 #define DBConsts_SNotEditing 65207 163 #define DBConsts_SDataSetClosed 65208 164 #define DBConsts_SNestedDataSetClass 65209 165 #define DBConsts_SExprTermination 65210 166 #define DBConsts_SExprNameError 65211 167 #define DBConsts_SExprStringError 65212 168 #define DBConsts_SExprInvalidChar 65213 169 #define DBConsts_SExprNoLParen 65214 170 #define DBConsts_SExprNoRParen 65215 171 #define DBConsts_SFieldNameMissing 65216 172 #define DBConsts_SDuplicateFieldName 65217 173 #define DBConsts_SFieldNotFound 65218 174 #define DBConsts_SFieldAccessError 65219 175 #define DBConsts_SFieldValueError 65220 176 #define DBConsts_SFieldRangeError 65221 177 #define DBConsts_SBcdFieldRangeError 65222 178 #define DBConsts_SInvalidIntegerValue 65223 179 #define DBConsts_SInvalidBoolValue 65224 180 #define DBConsts_SInvalidFloatValue 65225 181 #define DBConsts_SFieldTypeMismatch 65226 182 #define DBConsts_SFieldSizeMismatch 65227 183 #define DBConsts_SInvalidVarByteArray 65228 184 #define DBConsts_SFieldOutOfRange 65229 185 #define DBConsts_SFieldRequired 65230 186 #define DBConsts_SDataSetMissing 65231 187 #define ComConst_STooManyParams 65232 188 #define ComConst_SDCOMNotInstalled 65233 189 #define ComConst_SDAXError 65234 190 #define ComConst_SAutomationWarning 65235 191 #define ComConst_SNoCloseActiveServer1 65236 192 #define ComConst_SNoCloseActiveServer2 65237 193 #define OleConst_SCannotActivate 65238 194 #define OleConst_SNoWindowHandle 65239 195 #define OleConst_SOleError 65240 196 #define OleConst_SVarNotObject 65241 197 #define OleConst_SInvalidLicense 65242 198 #define OleConst_SNotLicensed 65243 199 #define OleConst_sNoRunningObject 65244 200 #define DBConsts_SInvalidFieldSize 65245 201 #define DBConsts_SInvalidFieldKind 65246 202 #define DBConsts_SUnknownFieldType 65247 203 #define ComStrs_sPageIndexError 65248 204 #define ComStrs_sInvalidComCtl32 65249 205 #define ComStrs_sDateTimeMax 65250 206 #define ComStrs_sDateTimeMin 65251 207 #define ComStrs_sFailSetCalDateTime 65252 208 #define ComStrs_sFailSetCalMaxSelRange 65253 209 #define ComStrs_sFailSetCalMinMaxRange 65254 210 #define ComStrs_sFailsetCalSelRange 65255 211 #define ComConst_SCreateRegKeyError 65256 212 #define ComConst_SOleError 65257 213 #define ComConst_SObjectFactoryMissing 65258 214 #define ComConst_STypeInfoMissing 65259 215 #define ComConst_SBadTypeInfo 65260 216 #define ComConst_SDispIntfMissing 65261 217 #define ComConst_SNoMethod 65262 218 #define ComConst_SVarNotObject 65263 219 #define HelpIntfs_hNoContext 65264 220 #define HelpIntfs_hNoTopics 65265 221 #define ComStrs_sTabFailClear 65266 222 #define ComStrs_sTabFailDelete 65267 223 #define ComStrs_sTabFailRetrieve 65268 224 #define ComStrs_sTabFailGetObject 65269 225 #define ComStrs_sTabFailSet 65270 226 #define ComStrs_sTabFailSetObject 65271 227 #define ComStrs_sTabMustBeMultiLine 65272 228 #define ComStrs_sInvalidIndex 65273 229 #define ComStrs_sInsertError 65274 230 #define ComStrs_sInvalidOwner 65275 231 #define ComStrs_sRichEditInsertError 65276 232 #define ComStrs_sRichEditLoadFail 65277 233 #define ComStrs_sRichEditSaveFail 65278 234 #define ComStrs_sUDAssociated 65279 235 #define Consts_SCannotOpenClipboard 65280 236 #define Consts_SInvalidMemoSize 65281 237 #define Consts_SInvalidPrinterOp 65282 238 #define Consts_SNoDefaultPrinter 65283 239 #define Consts_SDuplicateMenus 65284 240 #define Consts_SCannotOpenAVI 65285 241 #define Consts_SDockedCtlNeedsName 65286 242 #define Consts_SDockTreeRemoveError 65287 243 #define Consts_SDockZoneNotFound 65288 244 #define Consts_SDockZoneHasNoCtl 65289 245 #define Consts_SMultiSelectRequired 65290 246 #define Consts_SSeparator 65291 247 #define Consts_SErrorSettingCount 65292 248 #define Consts_SListBoxMustBeVirtual 65293 249 #define HelpIntfs_hNoTableOfContents 65294 250 #define HelpIntfs_hNothingFound 65295 251 #define Consts_SmkcPgDn 65296 252 #define Consts_SmkcEnd 65297 253 #define Consts_SmkcHome 65298 254 #define Consts_SmkcLeft 65299 255 #define Consts_SmkcUp 65300 256 #define Consts_SmkcRight 65301 257 #define Consts_SmkcDown 65302 258 #define Consts_SmkcIns 65303 259 #define Consts_SmkcDel 65304 260 #define Consts_SmkcShift 65305 261 #define Consts_SmkcCtrl 65306 262 #define Consts_SmkcAlt 65307 263 #define Consts_SOutOfRange 65308 264 #define Consts_SInsertLineError 65309 265 #define Consts_SInvalidClipFmt 65310 266 #define Consts_SIconToClipboard 65311 267 #define Consts_SMsgDlgNo 65312 268 #define Consts_SMsgDlgOK 65313 269 #define Consts_SMsgDlgCancel 65314 270 #define Consts_SMsgDlgHelp 65315 271 #define Consts_SMsgDlgAbort 65316 272 #define Consts_SMsgDlgRetry 65317 273 #define Consts_SMsgDlgIgnore 65318 274 #define Consts_SMsgDlgAll 65319 275 #define Consts_SMsgDlgNoToAll 65320 276 #define Consts_SMsgDlgYesToAll 65321 277 #define Consts_SmkcBkSp 65322 278 #define Consts_SmkcTab 65323 279 #define Consts_SmkcEsc 65324 280 #define Consts_SmkcEnter 65325 281 #define Consts_SmkcSpace 65326 282 #define Consts_SmkcPgUp 65327 283 #define Consts_SIgnoreButton 65328 284 #define Consts_SRetryButton 65329 285 #define Consts_SAbortButton 65330 286 #define Consts_SAllButton 65331 287 #define Consts_SCannotDragForm 65332 288 #define Consts_SVMetafiles 65333 289 #define Consts_SVEnhMetafiles 65334 290 #define Consts_SVIcons 65335 291 #define Consts_SVBitmaps 65336 292 #define Consts_SMaskErr 65337 293 #define Consts_SMaskEditErr 65338 294 #define Consts_SMsgDlgWarning 65339 295 #define Consts_SMsgDlgError 65340 296 #define Consts_SMsgDlgInformation 65341 297 #define Consts_SMsgDlgConfirm 65342 298 #define Consts_SMsgDlgYes 65343 299 #define Consts_SMenuReinserted 65344 300 #define Consts_SMenuNotFound 65345 301 #define Consts_SNoTimers 65346 302 #define Consts_SNotPrinting 65347 303 #define Consts_SPrinting 65348 304 #define Consts_SInvalidPrinter 65349 305 #define Consts_SDeviceOnPort 65350 306 #define Consts_SGroupIndexTooLow 65351 307 #define Consts_SNoMDIForm 65352 308 #define Consts_SControlParentSetToSelf 65353 309 #define Consts_SOKButton 65354 310 #define Consts_SCancelButton 65355 311 #define Consts_SYesButton 65356 312 #define Consts_SNoButton 65357 313 #define Consts_SHelpButton 65358 314 #define Consts_SCloseButton 65359 315 #define Consts_SInvalidImageList 65360 316 #define Consts_SReplaceImage 65361 317 #define Consts_SImageIndexError 65362 318 #define Consts_SImageReadFail 65363 319 #define Consts_SImageWriteFail 65364 320 #define Consts_SWindowDCError 65365 321 #define Consts_SWindowClass 65366 322 #define Consts_SCannotFocus 65367 323 #define Consts_SParentRequired 65368 324 #define Consts_SParentGivenNotAParent 65369 325 #define Consts_SMDIChildNotVisible 65370 326 #define Consts_SVisibleChanged 65371 327 #define Consts_SCannotShowModal 65372 328 #define Consts_SScrollBarRange 65373 329 #define Consts_SPropertyOutOfRange 65374 330 #define Consts_SMenuIndexError 65375 331 #define RTLConsts_SUnknownGroup 65376 332 #define RTLConsts_SUnknownProperty 65377 333 #define RTLConsts_SWriteError 65378 334 #define RTLConsts_SThreadCreateError 65379 335 #define RTLConsts_SThreadError 65380 336 #define Consts_SInvalidTabPosition 65381 337 #define Consts_SInvalidTabStyle 65382 338 #define Consts_SInvalidBitmap 65383 339 #define Consts_SInvalidIcon 65384 340 #define Consts_SInvalidMetafile 65385 341 #define Consts_SChangeIconSize 65386 342 #define Consts_SOleGraphic 65387 343 #define Consts_SUnknownClipboardFormat 65388 344 #define Consts_SOutOfResources 65389 345 #define Consts_SNoCanvasHandle 65390 346 #define Consts_SInvalidImageSize 65391 347 #define RTLConsts_SInvalidPropertyValue 65392 348 #define RTLConsts_SInvalidRegType 65393 349 #define RTLConsts_SInvalidStringGridOp 65394 350 #define RTLConsts_SListCapacityError 65395 351 #define RTLConsts_SListCountError 65396 352 #define RTLConsts_SListIndexError 65397 353 #define RTLConsts_SMemoryStreamError 65398 354 #define RTLConsts_SPropertyException 65399 355 #define RTLConsts_SReadError 65400 356 #define RTLConsts_SReadOnlyProperty 65401 357 #define RTLConsts_SRegGetDataFailed 65402 358 #define RTLConsts_SRegSetDataFailed 65403 359 #define RTLConsts_SResNotFound 65404 360 #define RTLConsts_SSeekNotImplemented 65405 361 #define RTLConsts_SSortedListError 65406 362 #define RTLConsts_STooManyDeleted 65407 363 #define RTLConsts_SDuplicateClass 65408 364 #define RTLConsts_SDuplicateItem 65409 365 #define RTLConsts_SDuplicateName 65410 366 #define RTLConsts_SDuplicateString 65411 367 #define RTLConsts_SFCreateError 65412 368 #define RTLConsts_SFixedColTooBig 65413 369 #define RTLConsts_SFixedRowTooBig 65414 370 #define RTLConsts_SFOpenError 65415 371 #define RTLConsts_SGridTooLarge 65416 372 #define RTLConsts_SIndexOutOfRange 65417 373 #define RTLConsts_SInvalidImage 65418 374 #define RTLConsts_SInvalidName 65419 375 #define RTLConsts_SInvalidProperty 65420 376 #define RTLConsts_SInvalidPropertyElement 65421 377 #define RTLConsts_SInvalidPropertyPath 65422 378 #define RTLConsts_SInvalidPropertyType 65423 379 #define SysConst_SShortDayNameThu 65424 380 #define SysConst_SShortDayNameFri 65425 381 #define SysConst_SShortDayNameSat 65426 382 #define SysConst_SLongDayNameSun 65427 383 #define SysConst_SLongDayNameMon 65428 384 #define SysConst_SLongDayNameTue 65429 385 #define SysConst_SLongDayNameWed 65430 386 #define SysConst_SLongDayNameThu 65431 387 #define SysConst_SLongDayNameFri 65432 388 #define SysConst_SLongDayNameSat 65433 389 #define RTLConsts_SAncestorNotFound 65434 390 #define RTLConsts_SAssignError 65435 391 #define RTLConsts_SBitsIndexError 65436 392 #define RTLConsts_SCantWriteResourceStreamError 65437 393 #define RTLConsts_SCheckSynchronizeError 65438 394 #define RTLConsts_SClassNotFound 65439 395 #define SysConst_SLongMonthNameJan 65440 396 #define SysConst_SLongMonthNameFeb 65441 397 #define SysConst_SLongMonthNameMar 65442 398 #define SysConst_SLongMonthNameApr 65443 399 #define SysConst_SLongMonthNameMay 65444 400 #define SysConst_SLongMonthNameJun 65445 401 #define SysConst_SLongMonthNameJul 65446 402 #define SysConst_SLongMonthNameAug 65447 403 #define SysConst_SLongMonthNameSep 65448 404 #define SysConst_SLongMonthNameOct 65449 405 #define SysConst_SLongMonthNameNov 65450 406 #define SysConst_SLongMonthNameDec 65451 407 #define SysConst_SShortDayNameSun 65452 408 #define SysConst_SShortDayNameMon 65453 409 #define SysConst_SShortDayNameTue 65454 410 #define SysConst_SShortDayNameWed 65455 411 #define SysConst_SModuleAccessViolation 65456 412 #define SysConst_SOSError 65457 413 #define SysConst_SUnkOSError 65458 414 #define SysConst_SNL 65459 415 #define SysConst_SShortMonthNameJan 65460 416 #define SysConst_SShortMonthNameFeb 65461 417 #define SysConst_SShortMonthNameMar 65462 418 #define SysConst_SShortMonthNameApr 65463 419 #define SysConst_SShortMonthNameMay 65464 420 #define SysConst_SShortMonthNameJun 65465 421 #define SysConst_SShortMonthNameJul 65466 422 #define SysConst_SShortMonthNameAug 65467 423 #define SysConst_SShortMonthNameSep 65468 424 #define SysConst_SShortMonthNameOct 65469 425 #define SysConst_SShortMonthNameNov 65470 426 #define SysConst_SShortMonthNameDec 65471 427 #define SysConst_SVarTypeNotUsable 65472 428 #define SysConst_SVarTypeTooManyCustom 65473 429 #define SysConst_SInvalidVarNullOp 65474 430 #define SysConst_SVarTypeCouldNotConvert 65475 431 #define SysConst_SVarTypeConvertOverflow 65476 432 #define SysConst_SVarOverflow 65477 433 #define SysConst_SVarInvalid 65478 434 #define SysConst_SVarBadType 65479 435 #define SysConst_SVarNotImplemented 65480 436 #define SysConst_SVarUnexpected 65481 437 #define SysConst_SExternalException 65482 438 #define SysConst_SAssertionFailed 65483 439 #define SysConst_SIntfCastError 65484 440 #define SysConst_SSafecallException 65485 441 #define SysConst_SAssertError 65486 442 #define SysConst_SAbstractError 65487 443 #define SysConst_SExceptTitle 65488 444 #define SysConst_SInvalidFormat 65489 445 #define SysConst_SArgumentMissing 65490 446 #define SysConst_SDispatchError 65491 447 #define SysConst_SReadAccess 65492 448 #define SysConst_SWriteAccess 65493 449 #define SysConst_SFormatTooLong 65494 450 #define SysConst_SVarArrayCreate 65495 451 #define SysConst_SVarArrayBounds 65496 452 #define SysConst_SVarArrayLocked 65497 453 #define SysConst_SInvalidVarCast 65498 454 #define SysConst_SInvalidVarOp 65499 455 #define SysConst_SInvalidVarOpWithHResult 65500 456 #define SysConst_SVarNotArray 65501 457 #define SysConst_SVarTypeOutOfRange 65502 458 #define SysConst_SVarTypeAlreadyUsed 65503 459 #define SysConst_SInvalidInput 65504 460 #define SysConst_SDivByZero 65505 461 #define SysConst_SRangeError 65506 462 #define SysConst_SIntOverflow 65507 463 #define SysConst_SInvalidOp 65508 464 #define SysConst_SZeroDivide 65509 465 #define SysConst_SOverflow 65510 466 #define SysConst_SUnderflow 65511 467 #define SysConst_SInvalidPointer 65512 468 #define SysConst_SInvalidCast 65513 469 #define SysConst_SAccessViolation 65514 470 #define SysConst_SStackOverflow 65515 471 #define SysConst_SControlC 65516 472 #define SysConst_SPrivilege 65517 473 #define SysConst_SOperationAborted 65518 474 #define SysConst_SException 65519 365 475 #define SysConst_SInvalidInteger 65520 366 476 #define SysConst_SInvalidFloat 65521 367 #define SysConst_SInvalid Time 65522368 #define SysConst_SInvalid DateTime 65523369 #define SysConst_S TimeEncodeError65524370 #define SysConst_S DateEncodeError65525371 #define SysConst_S OutOfMemory65526372 #define SysConst_S InOutError 65527373 #define SysConst_S FileNotFound65528374 #define SysConst_SIn validFilename65529375 #define SysConst_S TooManyOpenFiles65530376 #define SysConst_S AccessDenied65531377 #define SysConst_S EndOfFile65532378 #define SysConst_S DiskFull65533379 #define SysConst_S InvalidInput65534380 #define SysConst_SDi vByZero65535477 #define SysConst_SInvalidDate 65522 478 #define SysConst_SInvalidTime 65523 479 #define SysConst_SInvalidDateTime 65524 480 #define SysConst_SInvalidTimeStamp 65525 481 #define SysConst_STimeEncodeError 65526 482 #define SysConst_SDateEncodeError 65527 483 #define SysConst_SOutOfMemory 65528 484 #define SysConst_SInOutError 65529 485 #define SysConst_SFileNotFound 65530 486 #define SysConst_SInvalidFilename 65531 487 #define SysConst_STooManyOpenFiles 65532 488 #define SysConst_SAccessDenied 65533 489 #define SysConst_SEndOfFile 65534 490 #define SysConst_SDiskFull 65535 381 491 STRINGTABLE 382 492 BEGIN 383 VDBConsts_SRefreshRecord, "Refresh data" 384 VDBConsts_SRemoteLogin, "Remote Login" 385 OleConst_SInvalidLicense, "License information for %s is invalid" 386 OleConst_SNotLicensed, "License information for %s not found. You cannot use this control in design mode" 387 OleConst_sNoRunningObject, "Unable to retrieve a pointer to a running object registered with OLE for %s/%s" 388 DBConsts_SBcdOverflow, "BCD overflow" 389 DBConsts_SInvalidBcdValue, "%s is not a valid BCD value" 390 DBConsts_SCouldNotParseTimeStamp, "Could not parse SQL TimeStamp string" 391 DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values" 493 TeeConst_TeeMsg_ValuesGanttStart, "Start" 494 TeeConst_TeeMsg_ValuesGanttEnd, "End" 495 TeeConst_TeeMsg_ValuesGanttNextTask, "NextTask" 496 TeeConst_TeeMsg_ValuesArrowEndX, "EndX" 497 TeeConst_TeeMsg_ValuesArrowEndY, "EndY" 392 498 VDBConsts_SFirstRecord, "First record" 393 499 VDBConsts_SPriorRecord, "Prior record" … … 399 505 VDBConsts_SPostEdit, "Post edit" 400 506 VDBConsts_SCancelEdit, "Cancel edit" 507 VDBConsts_SRefreshRecord, "Refresh data" 508 VDBConsts_SRemoteLogin, "Remote Login" 509 TeeConst_TeeMsg_FunctionAdd, "Add" 510 TeeConst_TeeMsg_FunctionSubtract, "Subtract" 401 511 TeeConst_TeeMsg_FunctionMultiply, "Multiply" 402 512 TeeConst_TeeMsg_FunctionDivide, "Divide" … … 413 523 TeeConst_TeeMsg_ValuesBar, "Bar" 414 524 TeeConst_TeeMsg_ValuesAngle, "Angle" 415 OleConst_SCannotActivate, "OLE control activation failed" 416 OleConst_SNoWindowHandle, "Could not obtain OLE control window handle" 525 TeeConst_TeeMsg_PieSample8, "Chairs" 526 TeeConst_TeeMsg_GalleryStandard, "Standard" 527 TeeConst_TeeMsg_GalleryFunctions, "Functions" 528 TeeConst_TeeMsg_GalleryArrow, "Arrow" 529 TeeConst_TeeMsg_GalleryGantt, "Gantt" 530 TeeConst_TeeMsg_GanttSample1, "Design" 531 TeeConst_TeeMsg_GanttSample2, "Prototyping" 532 TeeConst_TeeMsg_GanttSample3, "Development" 533 TeeConst_TeeMsg_GanttSample4, "Sales" 534 TeeConst_TeeMsg_GanttSample5, "Marketing" 535 TeeConst_TeeMsg_GanttSample6, "Testing" 536 TeeConst_TeeMsg_GanttSample7, "Manufac." 537 TeeConst_TeeMsg_GanttSample8, "Debugging" 538 TeeConst_TeeMsg_GanttSample9, "New Version" 539 TeeConst_TeeMsg_GanttSample10, "Banking" 540 TeeConst_TeeMsg_DefaultFontSize, "8" 541 TeeConst_TeeMsg_AxisLabels, "Axis Labels" 542 TeeConst_TeeMsg_GalleryLine, "Line" 543 TeeConst_TeeMsg_GalleryPoint, "Point" 544 TeeConst_TeeMsg_GalleryArea, "Area" 545 TeeConst_TeeMsg_GalleryBar, "Bar" 546 TeeConst_TeeMsg_GalleryHorizBar, "Horiz. Bar" 417 547 TeeConst_TeeMsg_GalleryPie, "Pie" 418 548 TeeConst_TeeMsg_GalleryFastLine, "Fast Line" … … 425 555 TeeConst_TeeMsg_PieSample6, "Keyboards" 426 556 TeeConst_TeeMsg_PieSample7, "Bikes" 427 TeeConst_TeeMsg_ PieSample8, "Chairs"428 TeeConst_TeeMsg_ GalleryStandard, "Standard"429 TeeConst_TeeMsg_ GalleryFunctions, "Functions"430 TeeConst_TeeMsg_ DefaultFontSize, "8"431 TeeConst_TeeMsg_ FunctionAdd, "Add"432 TeeConst_TeeMsg_ FunctionSubtract, "Subtract"557 TeeConst_TeeMsg_AxisLogDateTime, "DateTime Axis cannot be Logarithmic" 558 TeeConst_TeeMsg_AxisLogNotPositive, "Logarithmic Axis Min and Max values should be >= 0" 559 TeeConst_TeeMsg_AxisLabelSep, "Labels Separation % must be greater than 0" 560 TeeConst_TeeMsg_AxisIncrementNeg, "Axis increment must be >= 0" 561 TeeConst_TeeMsg_AxisMinMax, "Axis Minimum Value must be <= Maximum" 562 TeeConst_TeeMsg_AxisMaxMin, "Axis Maximum Value must be >= Minimum" 433 563 TeeConst_TeeMsg_AxisLogBase, "Axis Logarithmic Base should be >= 2" 434 564 TeeConst_TeeMsg_MaxPointsPerPage, "MaxPointsPerPage must be >= 0" … … 441 571 TeeConst_TeeMsg_DefValueFormat, "#,##0.###" 442 572 TeeConst_TeeMsg_AxisTitle, "Axis Title" 443 TeeConst_TeeMsg_AxisLabels, "Axis Labels"444 TeeConst_TeeMsg_GalleryLine, "Line"445 TeeConst_TeeMsg_GalleryPoint, "Point"446 TeeConst_TeeMsg_GalleryArea, "Area"447 TeeConst_TeeMsg_GalleryBar, "Bar"448 TeeConst_TeeMsg_GalleryHorizBar, "Horiz. Bar"449 ComConst_SAutomationWarning, "COM Server Warning"450 ComConst_SNoCloseActiveServer1, "There are still active COM objects in this application. One or more clients may have references to these objects, so manually closing"451 ComConst_SNoCloseActiveServer2, "this application may cause those client application(s) to fail.\r\n\r\nAre you sure you want to close this application?"573 bdeconst_SInitError, "An error occurred while attempting to initialize the Borland Database Engine (error $%.4x)" 574 bdeconst_SIDAPILangID, "0009" 575 bdeconst_SBDEError, "BDE error $%.4x" 576 bdeconst_SNoDataSetField, "Missing DataSetField property" 577 bdeconst_SNoCachedUpdates, "Not in cached update mode" 578 bdeconst_SNoFieldAccess, "Cannot access field '%s' in a filter" 579 bdeconst_SUntitled, "Untitled Application" 580 bdeconst_SUpdateFailed, "Update failed" 581 bdeconst_SLocalTransDirty, "The transaction isolation level must be dirty read for local databases" 452 582 TeeConst_TeeMsg_LegendTopPos, "Top Legend Position must be between 0 and 100 %" 453 583 TeeConst_TeeMsg_LegendFirstValue, "First Legend Value must be > 0" … … 457 587 TeeConst_TeeMsg_FillSample, "FillSampleValues NumValues must be > 0" 458 588 TeeConst_TeeMsg_Angle, "%s Angle must be between 0 and 359 degrees" 459 TeeConst_TeeMsg_AxisLogDateTime, "DateTime Axis cannot be Logarithmic" 460 TeeConst_TeeMsg_AxisLogNotPositive, "Logarithmic Axis Min and Max values should be >= 0" 461 TeeConst_TeeMsg_AxisLabelSep, "Labels Separation % must be greater than 0" 462 TeeConst_TeeMsg_AxisIncrementNeg, "Axis increment must be >= 0" 463 TeeConst_TeeMsg_AxisMinMax, "Axis Minimum Value must be <= Maximum" 464 TeeConst_TeeMsg_AxisMaxMin, "Axis Maximum Value must be >= Minimum" 589 bdeconst_SAutoSessionExists, "Cannot add a session to the form or data-module while session '%s' has AutoSessionName enabled" 590 bdeconst_SAutoSessionActive, "Cannot modify SessionName while AutoSessionName is enabled" 591 bdeconst_SDuplicateDatabaseName, "Duplicate database name '%s'" 592 bdeconst_SDuplicateSessionName, "Duplicate session name '%s'" 593 bdeconst_SInvalidSessionName, "Invalid session name %s" 594 bdeconst_SDatabaseNameMissing, "Database name missing" 595 bdeconst_SSessionNameMissing, "Session name missing" 596 bdeconst_SDatabaseOpen, "Cannot perform this operation on an open database" 597 bdeconst_SDatabaseClosed, "Cannot perform this operation on a closed database" 598 bdeconst_SDatabaseHandleSet, "Database handle owned by a different session" 599 bdeconst_SSessionActive, "Cannot perform this operation on an active session" 600 bdeconst_SHandleError, "Error creating cursor handle" 601 bdeconst_SNoReferenceTableName, "ReferenceTableName not specified for field '%s'" 602 bdeconst_SEmptySQLStatement, "No SQL statement available" 603 bdeconst_SNoParameterValue, "No value for parameter '%s'" 604 bdeconst_SLoginError, "Cannot connect to database '%s'" 605 DBConsts_STextTrue, "True" 606 DBConsts_SParameterNotFound, "Parameter '%s' not found" 607 DBConsts_SInvalidVersion, "Unable to load bind parameters" 608 DBConsts_SBadFieldType, "Field '%s' is of an unsupported type" 609 DBConsts_SProviderSQLNotSupported, "SQL not supported: %s" 610 DBConsts_SProviderExecuteNotSupported, "Execute not supported: %s" 611 DBConsts_SExprNoAggOnCalcs, "Field '%s' is not the correct type of calculated field to be used in an aggregate, use an internalcalc" 612 DBConsts_SDataSetUnidirectional, "Operation not allowed on a unidirectional dataset" 613 DBConsts_SUnassignedVar, "Unassigned variant value" 614 DBConsts_SRecordNotFound, "Record not found" 615 DBConsts_SBcdOverflow, "BCD overflow" 616 DBConsts_SInvalidBcdValue, "%s is not a valid BCD value" 617 DBConsts_SInvalidFormatType, "Invalid format type for BCD" 618 DBConsts_SCouldNotParseTimeStamp, "Could not parse SQL TimeStamp string" 619 DBConsts_SInvalidSqlTimeStamp, "Invalid SQL date/time values" 620 bdeconst_SAutoSessionExclusive, "Cannot enable AutoSessionName property with more than one session on a form or data-module" 621 DBConsts_SExprNoRParenOrComma, "')' or ',' expected but %s found" 622 DBConsts_SExprExpected, "Expression expected but %s found" 623 DBConsts_SExprBadField, "Field '%s' cannot be used in a filter expression" 624 DBConsts_SExprBadNullTest, "NULL only allowed with '=' and '<>'" 625 DBConsts_SExprRangeError, "Constant out of range" 626 DBConsts_SExprIncorrect, "Incorrectly formed filter expression" 627 DBConsts_SExprNothing, "nothing" 628 DBConsts_SExprTypeMis, "Type mismatch in expression" 629 DBConsts_SExprBadScope, "Operation cannot mix aggregate value with record-varying value" 630 DBConsts_SExprNoArith, "Arithmetic in filter expressions not supported" 631 DBConsts_SExprNotAgg, "Expression is not an aggregate expression" 632 DBConsts_SExprBadConst, "Constant is not correct type %s" 633 DBConsts_SExprNoAggFilter, "Aggregate expressions not allowed in filters" 634 DBConsts_SExprEmptyInList, "IN predicate list may not be empty" 635 DBConsts_SInvalidKeywordUse, "Invalid use of keyword" 636 DBConsts_STextFalse, "False" 637 DBConsts_SInvalidCalcType, "Field '%s' cannot be a calculated or lookup field" 638 DBConsts_SFieldReadOnly, "Field '%s' cannot be modified" 639 DBConsts_SNotIndexField, "Field '%s' is not indexed and cannot be modified" 640 DBConsts_SCircularDataLink, "Circular datalinks are not allowed" 641 DBConsts_SLookupInfoError, "Lookup information for field '%s' is incomplete" 642 DBConsts_SDataSourceChange, "DataSource cannot be changed" 643 DBConsts_SDataSetOpen, "Cannot perform this operation on an open dataset" 644 DBConsts_SNotEditing, "Dataset not in edit or insert mode" 645 DBConsts_SDataSetClosed, "Cannot perform this operation on a closed dataset" 646 DBConsts_SNestedDataSetClass, "Nested dataset must inherit from %s" 647 DBConsts_SExprTermination, "Filter expression incorrectly terminated" 648 DBConsts_SExprNameError, "Unterminated field name" 649 DBConsts_SExprStringError, "Unterminated string constant" 650 DBConsts_SExprInvalidChar, "Invalid filter expression character: '%s'" 651 DBConsts_SExprNoLParen, "'(' expected but %s found" 652 DBConsts_SExprNoRParen, "')' expected but %s found" 653 DBConsts_SFieldNameMissing, "Field name missing" 654 DBConsts_SDuplicateFieldName, "Duplicate field name '%s'" 655 DBConsts_SFieldNotFound, "Field '%s' not found" 656 DBConsts_SFieldAccessError, "Cannot access field '%s' as type %s" 657 DBConsts_SFieldValueError, "Invalid value for field '%s'" 658 DBConsts_SFieldRangeError, "%g is not a valid value for field '%s'. The allowed range is %g to %g" 659 DBConsts_SBcdFieldRangeError, "%s is not a valid value for field '%s'. The allowed range is %s to %s" 660 DBConsts_SInvalidIntegerValue, "'%s' is not a valid integer value for field '%s'" 661 DBConsts_SInvalidBoolValue, "'%s' is not a valid boolean value for field '%s'" 662 DBConsts_SInvalidFloatValue, "'%s' is not a valid floating point value for field '%s'" 663 DBConsts_SFieldTypeMismatch, "Type mismatch for field '%s', expecting: %s actual: %s" 664 DBConsts_SFieldSizeMismatch, "Size mismatch for field '%s', expecting: %d actual: %d" 665 DBConsts_SInvalidVarByteArray, "Invalid variant type or size for field '%s'" 666 DBConsts_SFieldOutOfRange, "Value of field '%s' is out of range" 667 DBConsts_SFieldRequired, "Field '%s' must have a value" 668 DBConsts_SDataSetMissing, "Field '%s' has no dataset" 669 ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters" 670 ComConst_SDCOMNotInstalled, "DCOM not installed" 671 ComConst_SDAXError, "DAX Error" 672 ComConst_SAutomationWarning, "COM Server Warning" 673 ComConst_SNoCloseActiveServer1, "There are still active COM objects in this application. One or more clients may have references to these objects, so manually closing " 674 ComConst_SNoCloseActiveServer2, "this application may cause those client application(s) to fail.\r\n\r\nAre you sure you want to close this application?" 675 OleConst_SCannotActivate, "OLE control activation failed" 676 OleConst_SNoWindowHandle, "Could not obtain OLE control window handle" 677 OleConst_SOleError, "OLE error %.8x" 678 OleConst_SVarNotObject, "Variant does not reference an OLE object" 679 OleConst_SInvalidLicense, "License information for %s is invalid" 680 OleConst_SNotLicensed, "License information for %s not found. You cannot use this control in design mode" 681 OleConst_sNoRunningObject, "Unable to retrieve a pointer to a running object registered with OLE for %s/%s" 682 DBConsts_SInvalidFieldSize, "Invalid field size" 683 DBConsts_SInvalidFieldKind, "Invalid FieldKind" 684 DBConsts_SUnknownFieldType, "Field '%s' is of an unknown type" 685 ComStrs_sPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d" 686 ComStrs_sInvalidComCtl32, "This control requires version 4.70 or greater of COMCTL32.DLL" 687 ComStrs_sDateTimeMax, "Date exceeds maximum of %s" 465 688 ComStrs_sDateTimeMin, "Date is less than minimum of %s" 466 689 ComStrs_sFailSetCalDateTime, "Failed to set calendar date or time" … … 476 699 ComConst_SNoMethod, "Method '%s' not supported by automation object" 477 700 ComConst_SVarNotObject, "Variant does not reference an automation object" 478 ComConst_STooManyParams, "Dispatch methods do not support more than 64 parameters"479 ComConst_SDCOMNotInstalled, "DCOM notinstalled"480 Com Const_SDAXError, "DAX Error"701 HelpIntfs_hNoContext, "No context-sensitive help installed" 702 HelpIntfs_hNoTopics, "No topic-based help system installed" 703 ComStrs_sTabFailClear, "Failed to clear tab control" 481 704 ComStrs_sTabFailDelete, "Failed to delete tab at index %d" 482 705 ComStrs_sTabFailRetrieve, "Failed to retrieve tab at index %d" … … 492 715 ComStrs_sRichEditSaveFail, "Failed to Save Stream" 493 716 ComStrs_sUDAssociated, "%s is already associated with %s" 494 Co mStrs_sPageIndexError, "%d is an invalid PageIndex value. PageIndex must be between 0 and %d"495 Co mStrs_sInvalidComCtl32, "This control requires version 4.70 or greater of COMCTL32.DLL"496 Co mStrs_sDateTimeMax, "Date exceeds maximum of %s"717 Consts_SCannotOpenClipboard, "Cannot open clipboard" 718 Consts_SInvalidMemoSize, "Text exceeds memo capacity" 719 Consts_SInvalidPrinterOp, "Operation not supported on selected printer" 497 720 Consts_SNoDefaultPrinter, "There is no default printer currently selected" 498 721 Consts_SDuplicateMenus, "Menu '%s' is already being used by another form" … … 508 731 HelpIntfs_hNoTableOfContents, "Unable to find a Table of Contents" 509 732 HelpIntfs_hNothingFound, "No help found for %s" 510 HelpIntfs_hNoContext, "No context-sensitive help installed"511 HelpIntfs_hNoTopics, "No topic-based help system installed"512 Co mStrs_sTabFailClear, "Failed to clear tab control"733 Consts_SmkcPgDn, "PgDn" 734 Consts_SmkcEnd, "End" 735 Consts_SmkcHome, "Home" 513 736 Consts_SmkcLeft, "Left" 514 737 Consts_SmkcUp, "Up" … … 524 747 Consts_SInvalidClipFmt, "Invalid clipboard format" 525 748 Consts_SIconToClipboard, "Clipboard does not support Icons" 526 Consts_S CannotOpenClipboard, "Cannot open clipboard"527 Consts_S InvalidMemoSize, "Text exceeds memo capacity"528 Consts_S InvalidPrinterOp, "Operation not supported on selected printer"749 Consts_SMsgDlgNo, "&No" 750 Consts_SMsgDlgOK, "OK" 751 Consts_SMsgDlgCancel, "Cancel" 529 752 Consts_SMsgDlgHelp, "&Help" 530 753 Consts_SMsgDlgAbort, "&Abort" … … 540 763 Consts_SmkcSpace, "Space" 541 764 Consts_SmkcPgUp, "PgUp" 542 Consts_S mkcPgDn, "PgDn"543 Consts_S mkcEnd, "End"544 Consts_S mkcHome, "Home"765 Consts_SIgnoreButton, "&Ignore" 766 Consts_SRetryButton, "&Retry" 767 Consts_SAbortButton, "Abort" 545 768 Consts_SAllButton, "&All" 546 769 Consts_SCannotDragForm, "Cannot drag a form" … … 556 779 Consts_SMsgDlgConfirm, "Confirm" 557 780 Consts_SMsgDlgYes, "&Yes" 558 Consts_SM sgDlgNo, "&No"559 Consts_SM sgDlgOK, "OK"560 Consts_S MsgDlgCancel, "Cancel"781 Consts_SMenuReinserted, "Menu inserted twice" 782 Consts_SMenuNotFound, "Sub-menu is not in menu" 783 Consts_SNoTimers, "Not enough timers available" 561 784 Consts_SNotPrinting, "Printer is not currently printing" 562 785 Consts_SPrinting, "Printing in progress" … … 572 795 Consts_SHelpButton, "&Help" 573 796 Consts_SCloseButton, "&Close" 574 Consts_SI gnoreButton, "&Ignore"575 Consts_SRe tryButton, "&Retry"576 Consts_S AbortButton, "Abort"797 Consts_SInvalidImageList, "Invalid ImageList" 798 Consts_SReplaceImage, "Unable to Replace Image" 799 Consts_SImageIndexError, "Invalid ImageList Index" 577 800 Consts_SImageReadFail, "Failed to read ImageList data from stream" 578 801 Consts_SImageWriteFail, "Failed to write ImageList data to stream" … … 588 811 Consts_SPropertyOutOfRange, "%s property out of range" 589 812 Consts_SMenuIndexError, "Menu index out of range" 590 Consts_SMenuReinserted, "Menu inserted twice"591 Consts_SMenuNotFound, "Sub-menu is not in menu"592 Consts_SNoTimers, "Not enough timers available"813 RTLConsts_SUnknownGroup, "%s not in a class registration group" 814 RTLConsts_SUnknownProperty, "Property %s does not exist" 815 RTLConsts_SWriteError, "Stream write error" 593 816 RTLConsts_SThreadCreateError, "Thread creation error: %s" 594 817 RTLConsts_SThreadError, "Thread Error: %s (%d)" … … 604 827 Consts_SNoCanvasHandle, "Canvas does not allow drawing" 605 828 Consts_SInvalidImageSize, "Invalid image size" 606 Consts_SInvalidImageList, "Invalid ImageList"607 Consts_SReplaceImage, "Unable to Replace Image"608 Consts_SImageIndexError, "Invalid ImageList Index"829 RTLConsts_SInvalidPropertyValue, "Invalid property value" 830 RTLConsts_SInvalidRegType, "Invalid data type for '%s'" 831 RTLConsts_SInvalidStringGridOp, "Cannot insert or delete rows from grid" 609 832 RTLConsts_SListCapacityError, "List capacity out of bounds (%d)" 610 833 RTLConsts_SListCountError, "List count out of bounds (%d)" … … 620 843 RTLConsts_SSortedListError, "Operation not allowed on sorted list" 621 844 RTLConsts_STooManyDeleted, "Too many rows or columns deleted" 622 RTLConsts_S UnknownGroup, "%s not in a class registration group"623 RTLConsts_S UnknownProperty, "Property %s does not exist"624 RTLConsts_S WriteError, "Stream write error"845 RTLConsts_SDuplicateClass, "A class named %s already exists" 846 RTLConsts_SDuplicateItem, "List does not allow duplicates ($0%x)" 847 RTLConsts_SDuplicateName, "A component named %s already exists" 625 848 RTLConsts_SDuplicateString, "String list does not allow duplicates" 626 849 RTLConsts_SFCreateError, "Cannot create file %s" … … 636 859 RTLConsts_SInvalidPropertyPath, "Invalid property path" 637 860 RTLConsts_SInvalidPropertyType, "Invalid property type: %s" 638 RTLConsts_SInvalidPropertyValue, "Invalid property value"639 RTLConsts_SInvalidRegType, "Invalid data type for '%s'"640 RTLConsts_SInvalidStringGridOp, "Cannot insert or delete rows from grid"861 SysConst_SShortDayNameThu, "Thu" 862 SysConst_SShortDayNameFri, "Fri" 863 SysConst_SShortDayNameSat, "Sat" 641 864 SysConst_SLongDayNameSun, "Sunday" 642 865 SysConst_SLongDayNameMon, "Monday" … … 652 875 RTLConsts_SCheckSynchronizeError, "CheckSynchronize called from thread $%x, which is NOT the main thread" 653 876 RTLConsts_SClassNotFound, "Class %s not found" 654 RTLConsts_SDuplicateClass, "A class named %s already exists"655 RTLConsts_SDuplicateItem, "List does not allow duplicates ($0%x)"656 RTLConsts_SDuplicateName, "A component named %s already exists"877 SysConst_SLongMonthNameJan, "January" 878 SysConst_SLongMonthNameFeb, "February" 879 SysConst_SLongMonthNameMar, "March" 657 880 SysConst_SLongMonthNameApr, "April" 658 881 SysConst_SLongMonthNameMay, "May" … … 668 891 SysConst_SShortDayNameTue, "Tue" 669 892 SysConst_SShortDayNameWed, "Wed" 670 SysConst_SShortDayNameThu, "Thu" 671 SysConst_SShortDayNameFri, "Fri" 672 SysConst_SShortDayNameSat, "Sat" 893 SysConst_SModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p" 894 SysConst_SOSError, "System Error. Code: %d.\r\n%s" 673 895 SysConst_SUnkOSError, "A call to an OS function failed" 896 SysConst_SNL, "Application is not licensed to use this feature" 674 897 SysConst_SShortMonthNameJan, "Jan" 675 898 SysConst_SShortMonthNameFeb, "Feb" … … 684 907 SysConst_SShortMonthNameNov, "Nov" 685 908 SysConst_SShortMonthNameDec, "Dec" 686 SysConst_SLongMonthNameJan, "January" 687 SysConst_SLongMonthNameFeb, "February" 688 SysConst_SLongMonthNameMar, "March" 909 SysConst_SVarTypeNotUsable, "Custom variant type (%.4x) is not usable" 910 SysConst_SVarTypeTooManyCustom, "Too many custom variant types have been registered" 689 911 SysConst_SInvalidVarNullOp, "Invalid NULL variant operation" 690 912 SysConst_SVarTypeCouldNotConvert, "Could not convert variant of type (%s) into type (%s)" … … 701 923 SysConst_SAssertError, "%s (%s, line %d)" 702 924 SysConst_SAbstractError, "Abstract Error" 703 SysConst_S ModuleAccessViolation, "Access violation at address %p in module '%s'. %s of address %p"704 SysConst_S OSError, "System Error. Code: %d.\r\n%s"925 SysConst_SExceptTitle, "Application Error" 926 SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument" 705 927 SysConst_SArgumentMissing, "No argument for format '%s'" 706 928 SysConst_SDispatchError, "Variant method calls not supported" … … 717 939 SysConst_SVarTypeOutOfRange, "Custom variant type (%.4x) is out of range" 718 940 SysConst_SVarTypeAlreadyUsed, "Custom variant type (%.4x) already used by %s" 719 SysConst_S VarTypeNotUsable, "Custom variant type (%.4x) is not usable"720 SysConst_S VarTypeTooManyCustom, "Too many custom variant types have been registered"941 SysConst_SInvalidInput, "Invalid numeric input" 942 SysConst_SDivByZero, "Division by zero" 721 943 SysConst_SRangeError, "Range check error" 722 944 SysConst_SIntOverflow, "Integer overflow" … … 733 955 SysConst_SOperationAborted, "Operation aborted" 734 956 SysConst_SException, "Exception %s in module %s at %p.\r\n%s%s\r\n" 735 SysConst_SExceptTitle, "Application Error"736 SysConst_SInvalidFormat, "Format '%s' invalid or incompatible with argument"737 957 SysConst_SInvalidInteger, "'%s' is not a valid integer value" 738 958 SysConst_SInvalidFloat, "'%s' is not a valid floating point value" 959 SysConst_SInvalidDate, "'%s' is not a valid date" 739 960 SysConst_SInvalidTime, "'%s' is not a valid time" 740 961 SysConst_SInvalidDateTime, "'%s' is not a valid date and time" 962 SysConst_SInvalidTimeStamp, "'%d.%d' is not a valid timestamp" 741 963 SysConst_STimeEncodeError, "Invalid argument to time encode" 742 964 SysConst_SDateEncodeError, "Invalid argument to date encode" … … 749 971 SysConst_SEndOfFile, "Read beyond end of file" 750 972 SysConst_SDiskFull, "Disk full" 751 SysConst_SInvalidInput, "Invalid numeric input"752 SysConst_SDivByZero, "Division by zero"753 973 END 754 974 -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fConsultAct.dfm
r459 r460 107 107 TabOrder = 3 108 108 OnNeedData = NewPersonNeedData 109 CharsNeedMatch = 1 109 110 end 110 111 object cboUrgency: TORComboBox … … 129 130 SynonymChars = '<>' 130 131 TabOrder = 2 132 CharsNeedMatch = 1 131 133 end 132 134 object treService: TORTreeView … … 167 169 OnKeyPause = cboServiceSelect 168 170 OnMouseClick = cboServiceSelect 171 CharsNeedMatch = 1 169 172 end 170 173 end … … 352 355 TabStop = True 353 356 OnNeedData = NewPersonNeedData 357 CharsNeedMatch = 1 354 358 end 355 359 end -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fConsultAct.pas
r459 r460 465 465 FUrgency := cboUrgency.ItemIEN ; 466 466 if (FActionType = CN_ACT_SIGFIND) or (FActionType = CN_ACT_ADMIN_COMPLETE) then 467 FSigFind := Copy(grpSigFindings.Items[grpSigFindings.ItemIndex], 1,1);467 FSigFind := Copy(grpSigFindings.Items[grpSigFindings.ItemIndex],2,1); 468 468 LimitEditWidth(memComments, 74); 469 469 FComments := memComments.Lines ; -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fConsults.dfm
r459 r460 1 1 inherited frmConsults: TfrmConsults 2 Left = 3273 Top = 1 694 Width = 6602 Left = 247 3 Top = 174 4 Width = 723 5 5 Height = 467 6 6 HelpContext = 6000 … … 15 15 inherited shpPageBottom: TShape 16 16 Top = 416 17 Width = 65217 Width = 715 18 18 end 19 19 inherited sptHorz: TSplitter … … 25 25 inherited pnlRight: TPanel [2] 26 26 Left = 85 27 Width = 56727 Width = 630 28 28 Height = 416 29 29 OnResize = pnlRightResize … … 31 31 Left = 0 32 32 Top = 350 33 Width = 56733 Width = 630 34 34 Height = 4 35 35 Cursor = crVSplit … … 39 39 Left = 0 40 40 Top = 0 41 Width = 56741 Width = 630 42 42 Height = 350 43 43 Align = alClient … … 48 48 Left = 0 49 49 Top = 0 50 Width = 56750 Width = 630 51 51 Height = 19 52 52 Align = alTop … … 68 68 Left = 0 69 69 Top = 19 70 Width = 56770 Width = 630 71 71 Height = 331 72 72 Align = alClient … … 97 97 Left = 0 98 98 Top = 354 99 Width = 56799 Width = 630 100 100 Height = 62 101 101 Align = alBottom … … 107 107 Left = 0 108 108 Top = 0 109 Width = 567109 Width = 630 110 110 Height = 350 111 111 Align = alClient … … 117 117 Left = 0 118 118 Top = 67 119 Width = 567119 Width = 630 120 120 Height = 283 121 121 Align = alClient … … 137 137 Left = 0 138 138 Top = 0 139 Width = 567139 Width = 630 140 140 Height = 67 141 141 Align = alTop … … 144 144 OnResize = pnlFieldsResize 145 145 DesignSize = ( 146 567146 630 147 147 67) 148 148 object bvlNewTitle: TBevel … … 166 166 end 167 167 object lblAuthor: TStaticText 168 Left = 339168 Left = 402 169 169 Top = 6 170 170 Width = 152 … … 189 189 end 190 190 object lblCosigner: TStaticText 191 Left = 244191 Left = 307 192 192 Top = 21 193 193 Width = 243 … … 232 232 end 233 233 object cmdChange: TButton 234 Left = 493234 Left = 556 235 235 Top = 6 236 236 Width = 58 … … 245 245 Left = 48 246 246 Top = 40 247 Width = 5 03247 Width = 566 248 248 Height = 21 249 249 Hint = 'Subject is limited to a maximum of 80 characters.' … … 435 435 Height = 142 436 436 Align = alClient 437 Color = clWhite438 437 HideSelection = False 439 438 Indent = 15 … … 675 674 end 676 675 end 676 object mnuViewInformation: TMenuItem 677 Caption = 'Information' 678 OnClick = mnuViewInformationClick 679 object mnuViewDemo: TMenuItem 680 Tag = 1 681 Caption = 'De&mographics...' 682 OnClick = ViewInfo 683 end 684 object mnuViewVisits: TMenuItem 685 Tag = 2 686 Caption = 'Visits/Pr&ovider...' 687 OnClick = ViewInfo 688 end 689 object mnuViewPrimaryCare: TMenuItem 690 Tag = 3 691 Caption = 'Primary &Care...' 692 OnClick = ViewInfo 693 end 694 object mnuViewMyHealtheVet: TMenuItem 695 Tag = 4 696 Caption = 'MyHealthe&Vet...' 697 OnClick = ViewInfo 698 end 699 object mnuInsurance: TMenuItem 700 Tag = 5 701 Caption = '&Insurance...' 702 OnClick = ViewInfo 703 end 704 object mnuViewFlags: TMenuItem 705 Tag = 6 706 Caption = '&Flags...' 707 OnClick = ViewInfo 708 end 709 object mnuViewRemoteData: TMenuItem 710 Tag = 7 711 Caption = 'Remote &Data...' 712 OnClick = ViewInfo 713 end 714 object mnuViewReminders: TMenuItem 715 Tag = 8 716 Caption = '&Reminders...' 717 Enabled = False 718 OnClick = ViewInfo 719 end 720 object mnuViewPostings: TMenuItem 721 Tag = 9 722 Caption = '&Postings...' 723 OnClick = ViewInfo 724 end 725 end 677 726 object Z3: TMenuItem 678 727 Caption = '-' -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fConsults.pas
r459 r460 162 162 popNoteMemoInsTemplate: TMenuItem; 163 163 popNoteMemoEncounter: TMenuItem; 164 mnuViewInformation: TMenuItem; 165 mnuViewDemo: TMenuItem; 166 mnuViewVisits: TMenuItem; 167 mnuViewPrimaryCare: TMenuItem; 168 mnuViewMyHealtheVet: TMenuItem; 169 mnuInsurance: TMenuItem; 170 mnuViewFlags: TMenuItem; 171 mnuViewReminders: TMenuItem; 172 mnuViewRemoteData: TMenuItem; 173 mnuViewPostings: TMenuItem; 164 174 procedure mnuChartTabClick(Sender: TObject); 165 175 procedure lstConsultsClick(Sender: TObject); … … 267 277 procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, 268 278 Y: Integer); 279 procedure ViewInfo(Sender: TObject); 280 procedure mnuViewInformationClick(Sender: TObject); 269 281 private 270 282 FEditingIndex: Integer; // TIU index of document being currently edited … … 296 308 procedure frmDrawerPnlEncounterButtonExit(Sender: TObject); 297 309 procedure frmDrawerEdtSearchExit(Sender: TObject); 298 procedure DoAutoSave ;310 procedure DoAutoSave(Suppress: integer = 1); 299 311 function GetTitleText(AnIndex: Integer): string; 300 312 //function MakeTitleText(IsAddendum: Boolean = False): string; … … 870 882 lstNotesClick(Self); // will make pnlWrite visible 871 883 if timAutoSave.Interval <> 0 then EnableAutosave := TRUE; 872 873 if txtSubject.Visible then 874 txtSubject.SetFocus 875 else 876 memResults.SetFocus; 884 if txtSubject.Visible then txtSubject.SetFocus else memResults.SetFocus; 877 885 end 878 886 else // CreatedNote.ErrorText <> '' … … 947 955 else HaveRequired := True; 948 956 // lock the consult request if there is a consult 949 if FEditNote.PkgIEN > 0 then HaveRequired := LockConsultRequest(FEditNote.PkgIEN); 957 if HaveRequired and (FEditNote.PkgIEN > 0) then 958 HaveRequired := LockConsultRequest(FEditNote.PkgIEN); 950 959 if HaveRequired then 951 960 begin … … 1529 1538 CompleteConsult(IS_ID_CHILD, 0, UseClinProcTitles); 1530 1539 end 1531 else if NoteIEN = -1 then Exit ;1540 else if NoteIEN = -1 then Exit 1532 1541 end; 1533 1542 … … 2003 2012 procedure TfrmConsults.SaveSignItem(const ItemID, ESCode: string); 2004 2013 { saves and optionally signs a progress note or addendum } 2014 const 2015 SIG_COSIGN = 'COSIGNATURE'; 2016 SIG_SIGN = 'SIGNATURE'; 2005 2017 var 2006 2018 AnIndex, IEN, i: Integer; 2007 2019 Saved, ContinueSign: Boolean; {*RAB* 8/26/99} 2008 SignSts: TActionRec;2020 ActionSts, SignSts: TActionRec; 2009 2021 APCEObject: TPCEData; 2010 2022 OK: boolean; … … 2012 2024 tmpNode: TORTreeNode; 2013 2025 ErrMsg: string; 2026 ActionType, SignTitle: string; 2014 2027 begin 2015 2028 AnIndex := -1; … … 2039 2052 if Length(ESCode) > 0 then 2040 2053 begin 2041 (* if LacksClinProcFieldsForSignature(IEN, ErrMsg) then 2042 begin 2043 InfoBox(ErrMsg, TC_CLIN_PROC, MB_OK); 2044 ContinueSign := False; 2045 end 2046 else ContinueSign := True; 2047 if not LastSaveClean(IEN) and 2048 (InfoBox(TX_ABSAVE, TC_ABSAVE, MB_YESNO or MB_DEFBUTTON2) <> IDYES) 2049 then ContinueSign := False; 2050 //else ContinueSign := True;*) 2051 if LacksClinProcFieldsForSignature(IEN, ErrMsg) then 2054 if CosignDocument(IEN) then 2055 begin 2056 SignTitle := TX_COSIGN; 2057 ActionType := SIG_COSIGN; 2058 end else 2059 begin 2060 SignTitle := TX_SIGN; 2061 ActionType := SIG_SIGN; 2062 end; 2063 ActOnDocument(ActionSts, IEN, ActionType); 2064 if not ActionSts.Success then 2065 begin 2066 InfoBox(ActionSts.Reason, TX_IN_AUTH, MB_OK); 2067 ContinueSign := False; 2068 end 2069 else if LacksClinProcFieldsForSignature(IEN, ErrMsg) then 2052 2070 begin 2053 2071 InfoBox(ErrMsg, TC_CLIN_PROC, MB_OK); … … 2063 2081 then ContinueSign := False 2064 2082 else ContinueSign := True; 2065 2066 2083 if ContinueSign then 2067 2084 begin … … 2753 2770 begin 2754 2771 inherited; 2755 DoAutoSave ;2772 DoAutoSave(0); 2756 2773 timAutoSave.Enabled := False; 2757 2774 try 2758 2775 SpellCheckForControl(memResults); 2759 2776 finally 2777 FChanged := True; 2778 DoAutoSave(0); 2760 2779 timAutoSave.Enabled := True; 2761 2780 end; … … 2765 2784 begin 2766 2785 inherited; 2767 DoAutoSave ;2786 DoAutoSave(0); 2768 2787 timAutoSave.Enabled := False; 2769 2788 try 2770 2789 GrammarCheckForControl(memResults); 2771 2790 finally 2791 FChanged := True; 2792 DoAutoSave(0); 2772 2793 timAutoSave.Enabled := True; 2773 2794 end; … … 2985 3006 SigAction: integer; 2986 3007 SavedDocID, SavedCsltID: string; 3008 ARefDate: TFMDateTime; 2987 3009 begin 2988 3010 inherited; … … 3017 3039 end; 3018 3040 3019 if not LockConsultRequestAndNote(lstNotes.ItemIEN) then Exit; 3020 Exclusions := GetCurrentSigners(lstNotes.ItemIEN); 3021 SelectAdditionalSigners(Font.Size, lstNotes.ItemIEN, SigAction, Exclusions, SignerList, CT_CONSULTS); 3041 with lstNotes do 3042 begin 3043 if not LockConsultRequestAndNote(ItemIEN) then Exit; 3044 Exclusions := GetCurrentSigners(ItemIEN); 3045 ARefDate := StrToFloat(Piece(Items[ItemIndex], U, 3)); 3046 SelectAdditionalSigners(Font.Size, ItemIEN, SigAction, Exclusions, SignerList, CT_CONSULTS, ARefDate); 3047 end; 3022 3048 with SignerList do 3023 3049 begin … … 3556 3582 begin 3557 3583 if Title > 0 then CurTitle := Title else CurTitle := DocType; 3558 if AskCosignerForTitle(CurTitle, Author ) and (Cosigner <= 0) then Result := True;3584 if AskCosignerForTitle(CurTitle, Author, DateTime) and (Cosigner <= 0) then Result := True; 3559 3585 end; 3560 3586 end; … … 3572 3598 ErrMsg := TX_NO_AUTHOR; 3573 3599 end; 3574 if AskCosignerForTitle(Title, Author ) and (Cosigner = 0) then3600 if AskCosignerForTitle(Title, Author, DateTime) and (Cosigner = 0) then 3575 3601 begin 3576 3602 Result := True; … … 3665 3691 end; 3666 3692 3667 procedure TfrmConsults.DoAutoSave ;3693 procedure TfrmConsults.DoAutoSave(Suppress: integer = 1); 3668 3694 var 3669 3695 ErrMsg: string; … … 3672 3698 begin 3673 3699 StatusText('Autosaving note...'); 3674 //PutTextOnly(ErrMsg, mem NewNote.Lines, lstNotes.GetIEN(EditingIndex));3700 //PutTextOnly(ErrMsg, memResults.Lines, lstNotes.GetIEN(EditingIndex)); 3675 3701 timAutoSave.Enabled := False; 3676 3702 try 3677 SetText(ErrMsg, memResults.Lines, lstNotes.GetIEN(EditingIndex), 1);3703 SetText(ErrMsg, memResults.Lines, lstNotes.GetIEN(EditingIndex), Suppress); 3678 3704 finally 3679 3705 timAutoSave.Enabled := True; … … 4682 4708 (Screen.ActiveControl = txtSubject) or 4683 4709 (Screen.ActiveControl = memResults) then 4684 //frmFrame.pnlPatient.SetFocus //COMMENTED OUT FOR CQ6498 4685 memResults.SetFocus //ADDED THIS LINE FOR CQ6498 4710 begin 4711 //frmFrame.pnlPatient.SetFocus //COMMENTED OUT FOR CQ6498 4712 if memResults.CanFocus then 4713 memResults.SetFocus //ADDED THIS LINE FOR CQ6498 4714 else 4715 memConsult.SetFocus; 4716 end 4686 4717 else 4687 4718 if (Screen.ActiveControl = tvConsults) then … … 4729 4760 {Below is a fix for ClearQuest Defect HDS0000948, Kind of Kloogy I looked 4730 4761 and looked for side effects and a better solution and this was the best!} 4731 frmDrawers.Hide; 4762 if (EditingIndex = -1) or (lstNotes.ItemIndex <> EditingIndex) then 4763 frmDrawers.Hide; 4732 4764 {This TStaticText I am looking for doesn't have a Name! So 4733 4765 I have to loop through the panel's controls and disable the TStaticText.} … … 4768 4800 end; 4769 4801 4802 procedure TfrmConsults.ViewInfo(Sender: TObject); 4803 begin 4804 inherited; 4805 frmFrame.ViewInfo(Sender); 4806 end; 4807 4808 procedure TfrmConsults.mnuViewInformationClick(Sender: TObject); 4809 begin 4810 inherited; 4811 mnuViewDemo.Enabled := frmFrame.pnlPatient.Enabled; 4812 mnuViewVisits.Enabled := frmFrame.pnlVisit.Enabled; 4813 mnuViewPrimaryCare.Enabled := frmFrame.pnlPrimaryCare.Enabled; 4814 mnuViewMyHealtheVet.Enabled := not (Copy(frmFrame.laMHV.Hint, 1, 2) = 'No'); 4815 mnuInsurance.Enabled := not (Copy(frmFrame.laVAA2.Hint, 1, 2) = 'No'); 4816 mnuViewFlags.Enabled := frmFrame.lblFlag.Enabled; 4817 mnuViewRemoteData.Enabled := frmFrame.lblCirn.Enabled; 4818 mnuViewReminders.Enabled := frmFrame.pnlReminders.Enabled; 4819 mnuViewPostings.Enabled := frmFrame.pnlPostings.Enabled; 4820 end; 4821 4770 4822 initialization 4771 4823 uPCEEdit := TPCEData.Create; -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fEditConsult.dfm
r459 r460 1 1 object frmEditCslt: TfrmEditCslt 2 2 Tag = 110 3 Left = 1194 Top = 943 Left = 409 4 Top = 225 5 5 Width = 569 6 6 Height = 367 … … 174 174 SynonymChars = '<>' 175 175 TabOrder = 0 176 CharsNeedMatch = 1 176 177 end 177 178 object cboUrgency: TORComboBox … … 197 198 TabOrder = 1 198 199 OnChange = ControlChange 200 CharsNeedMatch = 1 199 201 end 200 202 object radInpatient: TRadioButton … … 239 241 TabOrder = 7 240 242 OnChange = ControlChange 243 CharsNeedMatch = 1 241 244 end 242 245 object txtProvDiag: TCaptionEdit … … 246 249 Height = 21 247 250 Anchors = [akLeft, akTop, akRight] 251 MaxLength = 180 248 252 ParentShowHint = False 249 253 PopupMenu = mnuPopProvDx … … 277 281 OnChange = ControlChange 278 282 OnNeedData = txtAttnNeedData 283 CharsNeedMatch = 1 279 284 end 280 285 object cboCategory: TORComboBox … … 298 303 TabOrder = 14 299 304 Visible = False 305 CharsNeedMatch = 1 300 306 end 301 307 object cmdAccept: TButton -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fEditProc.dfm
r459 r460 18 18 Position = poScreenCenter 19 19 DesignSize = ( 20 5 4521 289)20 561 21 308) 22 22 PixelsPerInch = 96 23 23 TextHeight = 13 … … 166 166 TabOrder = 2 167 167 OnChange = ControlChange 168 CharsNeedMatch = 1 168 169 end 169 170 object radInpatient: TRadioButton … … 208 209 TabOrder = 6 209 210 OnChange = ControlChange 211 CharsNeedMatch = 1 210 212 end 211 213 object txtProvDiag: TCaptionEdit … … 215 217 Height = 21 216 218 Anchors = [akLeft, akTop, akRight] 219 MaxLength = 180 217 220 ParentShowHint = False 218 221 PopupMenu = mnuPopProvDx … … 246 249 OnChange = ControlChange 247 250 OnNeedData = txtAttnNeedData 251 CharsNeedMatch = 1 248 252 end 249 253 object cboProc: TORComboBox … … 277 281 OnChange = cboProcSelect 278 282 OnNeedData = cboProcNeedData 283 CharsNeedMatch = 1 279 284 end 280 285 object cboCategory: TORComboBox … … 299 304 Visible = False 300 305 OnChange = ControlChange 306 CharsNeedMatch = 1 301 307 end 302 308 object cboService: TORComboBox … … 329 335 TabOrder = 1 330 336 OnChange = ControlChange 337 CharsNeedMatch = 1 331 338 end 332 339 object memComment: TRichEdit -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fODConsult.dfm
r459 r460 1 1 inherited frmODCslt: TfrmODCslt 2 2 Tag = 110 3 Left = 377 4 Top = 11 5 Width = 536 6 Height = 321 7 HorzScrollBar.Range = 528 8 HorzScrollBar.Visible = True 9 VertScrollBar.Range = 294 10 VertScrollBar.Visible = True 11 AutoScroll = False 3 Left = 430 4 Top = 203 5 Width = 606 6 Height = 376 7 HorzScrollBar.Range = 590 8 VertScrollBar.Range = 340 12 9 Caption = 'Order a Consult' 10 Constraints.MinHeight = 376 11 Constraints.MinWidth = 606 13 12 Font.Charset = ANSI_CHARSET 14 13 PixelsPerInch = 96 … … 23 22 object pnlReason: TPanel [1] 24 23 Left = 3 25 Top = 1 1726 Width = 5 1627 Height = 13 228 Anchors = [akLeft, akTop, akRight , akBottom]24 Top = 154 25 Width = 585 26 Height = 135 27 Anchors = [akLeft, akTop, akRight] 29 28 BevelOuter = bvNone 30 29 TabOrder = 11 … … 32 31 Left = 0 33 32 Top = 0 34 Width = 5 1633 Width = 585 35 34 Height = 13 36 35 Align = alTop … … 40 39 Left = 0 41 40 Top = 13 42 Width = 5 1643 Height = 1 1941 Width = 585 42 Height = 122 44 43 Align = alClient 45 44 Font.Charset = ANSI_CHARSET … … 48 47 Font.Name = 'Courier New' 49 48 Font.Style = [] 49 Constraints.MinHeight = 40 50 50 ParentFont = False 51 51 PopupMenu = popReason … … 61 61 end 62 62 object lblUrgency: TStaticText [2] 63 Left = 23963 Left = 309 64 64 Top = 2 65 65 Width = 44 … … 70 70 end 71 71 object lblPlace: TStaticText [3] 72 Left = 38472 Left = 454 73 73 Top = 43 74 74 Width = 104 … … 79 79 end 80 80 object lblAttn: TStaticText [4] 81 Left = 38481 Left = 454 82 82 Top = 2 83 83 Width = 46 … … 88 88 end 89 89 object lblProvDiag: TStaticText [5] 90 Left = 23990 Left = 309 91 91 Top = 81 92 92 Width = 104 … … 98 98 inherited memOrder: TCaptionMemo 99 99 Left = 3 100 Top = 255 101 Width = 347 102 Height = 36 103 Anchors = [akLeft, akRight, akBottom] 100 Top = 305 101 Width = 417 102 Height = 41 104 103 Lines.Strings = ( 105 104 'The order text...' … … 110 109 end 111 110 inherited cmdAccept: TButton 112 Left = 357 113 Top = 265 114 Anchors = [akRight, akBottom] 111 Left = 427 112 Top = 315 115 113 TabOrder = 12 116 114 end 117 115 inherited cmdQuit: TButton 118 Left = 453119 Top = 265116 Left = 531 117 Top = 315 120 118 Width = 61 121 Anchors = [akRight, akBottom]122 119 TabOrder = 13 123 120 end 124 121 inherited pnlMessage: TPanel 125 Left = 61126 Top = 2 45127 Width = 277122 Left = 13 123 Top = 295 124 Width = 377 128 125 Anchors = [akLeft, akRight, akBottom] 129 126 TabOrder = 14 130 127 inherited memMessage: TRichEdit 131 Width = 2 27128 Width = 292 132 129 end 133 130 end … … 135 132 Left = 0 136 133 Top = 16 137 Width = 2 04138 Height = 73134 Width = 274 135 Height = 113 139 136 Anchors = [akLeft, akTop, akRight] 140 137 Style = orcsSimple … … 156 153 OnChange = ControlChange 157 154 OnClick = cboServiceSelect 155 OnExit = cboServiceExit 158 156 OnKeyDown = cboServiceKeyDown 159 157 OnKeyUp = cboServiceKeyUp … … 161 159 end 162 160 object cboUrgency: TORComboBox 163 Left = 239161 Left = 309 164 162 Top = 16 165 163 Width = 133 … … 187 185 end 188 186 object cboPlace: TORComboBox 189 Left = 384187 Left = 454 190 188 Top = 56 191 189 Width = 136 … … 212 210 end 213 211 object txtProvDiag: TCaptionEdit 214 Left = 239212 Left = 309 215 213 Top = 94 216 214 Width = 231 217 215 Height = 21 218 216 Anchors = [akTop, akRight] 217 MaxLength = 180 219 218 ParentShowHint = False 220 219 PopupMenu = mnuPopProvDx … … 225 224 end 226 225 object txtAttn: TORComboBox 227 Left = 384226 Left = 454 228 227 Top = 16 229 228 Width = 136 … … 252 251 object treService: TORTreeView 253 252 Left = 0 254 Top = 3 7255 Width = 2 28256 Height = 2 01253 Top = 38 254 Width = 298 255 Height = 220 257 256 Anchors = [akLeft, akTop, akRight, akBottom] 258 257 Font.Charset = DEFAULT_CHARSET … … 299 298 end 300 299 object pnlServiceTreeButton: TKeyClickPanel 301 Left = 2 04300 Left = 274 302 301 Top = 14 303 Width = 2 5304 Height = 2 4302 Width = 26 303 Height = 26 305 304 Hint = 'View services/specialties hierarchically' 306 305 Anchors = [akTop, akRight] 307 306 BevelOuter = bvNone 307 BevelWidth = 2 308 308 Caption = 'View services/specialties hierarchically' 309 Font.Charset = ANSI_CHARSET 310 Font.Color = clBtnFace 311 Font.Height = -11 312 Font.Name = 'MS Sans Serif' 313 Font.Style = [] 314 ParentFont = False 309 315 TabOrder = 2 310 316 TabStop = True … … 313 319 OnExit = pnlServiceTreeButtonExit 314 320 object btnServiceTree: TSpeedButton 315 Left = 1316 Top = 1317 Width = 2 3321 Left = 2 322 Top = 2 323 Width = 22 318 324 Height = 22 319 325 Glyph.Data = { … … 360 366 FFFFFFFFFFFFFFFFFFFF00FB00FF0404040404FFFFFFFFFFFFFF070007FFFFFF 361 367 FFFFFFFFFFFFFFFFFFFF} 368 Margin = 0 362 369 OnClick = btnServiceTreeClick 363 370 end 364 371 end 365 372 object cmdLexSearch: TButton 366 Left = 473367 Top = 9 6373 Left = 543 374 Top = 94 368 375 Width = 49 369 Height = 17376 Height = 21 370 377 Anchors = [akTop, akRight] 371 378 Caption = 'Lexicon' … … 374 381 end 375 382 object gbInptOpt: TGroupBox 376 Left = 239383 Left = 309 377 384 Top = 35 378 385 Width = 140 … … 401 408 end 402 409 object btnDiagnosis: TButton 403 Left = 473410 Left = 543 404 411 Top = 95 405 Width = 52412 Width = 49 406 413 Height = 20 407 414 Anchors = [akTop, akRight] … … 421 428 OnPopup = popReasonPopup 422 429 Left = 411 423 Top = 1 69430 Top = 188 424 431 object popReasonCut: TMenuItem 425 432 Caption = 'Cu&t' -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fODConsult.pas
r459 r460 85 85 procedure btnDiagnosisClick(Sender: TObject); 86 86 procedure cmdQuitClick(Sender: TObject); 87 procedure FormClose(Sender: TObject; var Action: TCloseAction); 87 88 88 89 private … … 97 98 procedure SetupReasonForRequest(OrderAction: integer); 98 99 procedure GetProvDxandValidateCode(AResponses: TResponses); 99 function 100 function ShowPrerequisites: boolean; 100 101 procedure DoSetFontSize(FontSize: integer); 101 102 procedure SetUpQuickOrderDX; … … 106 107 procedure Validate(var AnErrMsg: string); override; 107 108 function DefaultReasonForRequest(Service: string; Resolve: Boolean): TStrings; 109 108 110 public 109 111 procedure SetupDialog(OrderAction: Integer; const ID: string); override; … … 123 125 uses 124 126 rODBase, rConsults, uCore, uConsults, rCore, fConsults, fPCELex, rPCE, fPreReq, 125 ORClasses, clipbrd, uTemplates ;127 ORClasses, clipbrd, uTemplates, fFrame, uODBase; 126 128 127 129 var … … 131 133 BADxUpdated: boolean; 132 134 quickCode: string; 133 135 134 136 135 137 … … 153 155 procedure TfrmODCslt.FormCreate(Sender: TObject); 154 156 begin 157 frmFrame.pnlVisit.Enabled := false; 155 158 AutoSizeDisabled := True; 156 159 inherited; … … 223 226 cboService.Enabled := True; 224 227 cboService.Font.Color := clWindowText; 228 cboService.Height := 25 + (7 * cboService.ItemHeight); 225 229 btnServiceTree.Enabled := True; 230 pnlServiceTreeButton.Enabled := True; 226 231 ActiveControl := cboService; 227 232 SetProvDiagPromptingMode; … … 271 276 cboService.Font.Color := clGrayText; 272 277 btnServiceTree.Enabled := False; 278 pnlServiceTreeButton.Enabled := False; 273 279 if (OrderAction in [ORDER_COPY, ORDER_QUICK]) and (not ShowPrerequisites) then 274 280 begin … … 286 292 begin 287 293 if QuickList.Count > 0 then BuildQuickTree(QuickList, '0', nil) ; 288 //SvcList.Assign(LoadServiceList(CN_SVC_LIST_ORD)) ;289 294 SvcList.Assign(LoadServiceListWithSynonyms(CN_SVC_LIST_ORD)); {RV} 290 295 AList.Assign(SvcList); … … 512 517 cboService.Font.Color := clGrayText; 513 518 btnServiceTree.Enabled := False; 519 pnlServiceTreeButton.Enabled := False; 514 520 Changing := False; 515 521 end; … … 645 651 begin 646 652 inherited; 647 648 //if NOT BILLING_AWARE then 649 if treService.Selected <> nil then 650 LastNode := treService.Selected.AbsoluteIndex; 653 if treService.Selected <> nil then 654 LastNode := treService.Selected.AbsoluteIndex; 651 655 652 656 if BILLING_AWARE and CIDCOkToSave then … … 657 661 begin 658 662 uBACore.CompleteConsultOrderRec(uBAGlobals.BAOrderID,UBAGlobals.BAConsultDxList); 659 // if ProvDx.Reqd = 'R' then UBAGlobals.BAConsultOrdersRequireDx.Add(uBAGlobals.BAOrderID); //allow special handling of non cidc consults that require dx .660 663 uBAGlobals.BAConsultDxList.Clear; 661 664 end; … … 743 746 Font.Color := clGrayText; 744 747 btnServiceTree.Enabled := False; 748 pnlServiceTreeButton.Enabled := False; 745 749 Changing := False; 746 750 with Responses do if QuickOrder > 0 then … … 945 949 with ProvDx do if (Reqd = '') or (PromptMode = '') then Exit; 946 950 if ProvDx.Reqd = 'R' then 947 lblProvDiag.Caption := TX_PROVDX_REQD 951 begin 952 lblProvDiag.Caption := TX_PROVDX_REQD; 953 if (BILLING_AWARE) and (ProvDx.PromptMode[1] = '') then btnDiagnosis.Enabled := True; 954 end 948 955 else 949 956 lblProvDiag.Caption := TX_PROVDX_OPT; … … 1066 1073 Result := False; 1067 1074 AbortOrder := True; 1068 //cmdQuitClick(Self); 1069 end 1075 end 1070 1076 else Result := True; 1071 1077 end; … … 1076 1082 end; 1077 1083 1078 ////////// NOTE THIS FUNCTION IS NO LONGER ASSIGNED TO OnExit EVENT1079 ///////// Calling this with enter making a selection had serious errors1080 ///////// No ill effect can be seen for not calling it.1081 1084 procedure TfrmODCslt.cboServiceExit(Sender: TObject); 1082 1085 begin … … 1086 1089 if cboService.ItemID = FLastServiceID then Exit; 1087 1090 cboServiceSelect(cboService); 1088 cboService.SetFocus; 1091 // CQ #7490, following line commented out v26.24 (RV) 1092 // CQ #9610 and 10074 - uncommented and "if" added v26.54 (RV) 1093 if cboService.Enabled then cboService.SetFocus; 1089 1094 PostMessage(Handle, WM_NEXTDLGCTL, 0, 0); 1090 1095 end; … … 1141 1146 TmpSL: TStringList; 1142 1147 DocInfo: string; 1143 1144 begin 1148 x: string; 1149 HasObjects: boolean; 1150 begin 1151 Resolve := FALSE ; // override value passed in - resolve on client - PSI-05-093 1145 1152 DocInfo := ''; 1146 1153 TmpSL := TStringList.Create; … … 1148 1155 Result := GetDefaultReasonForRequest(Service + CSLT_PTR, Resolve); 1149 1156 TmpSL.Assign(Result); 1157 x := TmpSL.Text; 1158 ExpandOrderObjects(x, HasObjects); 1159 TmpSL.Text := x; 1160 Responses.OrderContainsObjects := HasObjects; 1150 1161 ExecuteTemplateOrBoilerPlate(TmpSL, cboService.ItemIEN , ltConsult, nil, 'Reason for Request: ' + cboService.DisplayText[cboService.ItemIndex], DocInfo); 1162 if TmpSL.Text <> x then Responses.OrderContainsObjects := False; 1151 1163 Result.Assign(TmpSL); 1152 1164 finally … … 1284 1296 //Except when Enter or Space is pressed. VK_LBUTTON activates OnClick in TORComboBoxes 1285 1297 FcboServiceKeyDownStopClick := false; 1286 if (Key <> VK_RETURN) and (Key <> VK_SPACE) and (Key <> VK_LBUTTON) then1298 if (Key <> VK_RETURN) {and (Key <> VK_SPACE)} and (Key <> VK_LBUTTON) then //comment on this line is fix for CQ6789 1287 1299 FcboServiceKeyDownStopClick := True 1288 1300 else … … 1333 1345 end; 1334 1346 end; 1347 1335 1348 ProvDx.CodeInactive := False; 1336 1349 end; … … 1387 1400 end; 1388 1401 1402 procedure TfrmODCslt.FormClose(Sender: TObject; var Action: TCloseAction); 1403 begin 1404 inherited; 1405 frmFrame.pnlVisit.Enabled := true; 1406 end; 1407 1389 1408 end. 1390 1409 -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fODProc.dfm
r459 r460 1 1 inherited frmODProc: TfrmODProc 2 2 Tag = 112 3 Left = 2 624 Top = 1 915 Width = 5 316 Height = 3 223 Left = 208 4 Top = 188 5 Width = 543 6 Height = 393 7 7 HorzScrollBar.Range = 523 8 HorzScrollBar.Visible = True9 8 VertScrollBar.Range = 295 10 VertScrollBar.Visible = True11 AutoScroll = False12 9 Caption = 'Order a Procedure' 10 Constraints.MinHeight = 393 11 Constraints.MinWidth = 543 13 12 PixelsPerInch = 96 14 13 TextHeight = 13 … … 31 30 WordWrap = False 32 31 end 33 object lblUrgency: TStaticText [2] 34 Left = 237 32 object lblReason: TLabel [2] 33 Left = 4 34 Top = 103 35 Width = 95 36 Height = 13 37 Caption = 'Reason for Request' 38 end 39 object lblUrgency: TStaticText [3] 40 Left = 249 35 41 Top = 4 36 42 Width = 44 … … 40 46 TabOrder = 15 41 47 end 42 object lblPlace: TStaticText [ 3]43 Left = 3 8448 object lblPlace: TStaticText [4] 49 Left = 396 44 50 Top = 43 45 51 Width = 104 … … 49 55 TabOrder = 16 50 56 end 51 object lblAttn: TStaticText [ 4]52 Left = 3 8457 object lblAttn: TStaticText [5] 58 Left = 396 53 59 Top = 4 54 60 Width = 46 … … 58 64 TabOrder = 17 59 65 end 60 object lblProvDiag: TStaticText [ 5]61 Left = 2 3766 object lblProvDiag: TStaticText [6] 67 Left = 249 62 68 Top = 81 63 69 Width = 104 … … 67 73 TabOrder = 18 68 74 end 69 object pnlReason: TPanel [ 6]75 object pnlReason: TPanel [7] 70 76 Left = 0 71 Top = 9972 Width = 52 173 Height = 1 5477 Top = 120 78 Width = 528 79 Height = 192 74 80 Anchors = [akLeft, akTop, akRight, akBottom] 75 81 BevelOuter = bvNone 76 82 TabOrder = 9 77 DesignSize = (78 52179 154)80 object lblReason: TLabel81 Left = 482 Top = 983 Width = 9584 Height = 1385 Caption = 'Reason for Request'86 end87 83 object memReason: TCaptionRichEdit 88 84 Left = 0 89 Top = 2490 Width = 52 191 Height = 1 3092 A nchors = [akLeft, akTop, akRight, akBottom]85 Top = 0 86 Width = 528 87 Height = 192 88 Align = alClient 93 89 Font.Charset = DEFAULT_CHARSET 94 90 Font.Color = clWindowText … … 96 92 Font.Name = 'Courier New' 97 93 Font.Style = [] 94 Constraints.MinHeight = 40 98 95 ParentFont = False 99 96 PopupMenu = popReason … … 110 107 end 111 108 inherited memOrder: TCaptionMemo 112 Left = 4113 Top = 258114 Width = 3 61115 Height = 36116 Anchors = [akLeft, akRight , akBottom]109 Left = 0 110 Top = 321 111 Width = 380 112 Height = 41 113 Anchors = [akLeft, akRight] 117 114 Lines.Strings = ( 118 115 'The order text...' … … 123 120 TabOrder = 1 124 121 end 125 object cboUrgency: TORComboBox [ 8]126 Left = 2 37122 object cboUrgency: TORComboBox [9] 123 Left = 249 127 124 Top = 17 128 125 Width = 133 … … 148 145 CharsNeedMatch = 1 149 146 end 150 object cboPlace: TORComboBox [ 9]151 Left = 3 84147 object cboPlace: TORComboBox [10] 148 Left = 396 152 149 Top = 56 153 150 Width = 133 … … 173 170 CharsNeedMatch = 1 174 171 end 175 object txtProvDiag: TCaptionEdit [10] 176 Left = 237 172 object txtAttn: TORComboBox [11] 173 Left = 396 174 Top = 17 175 Width = 133 176 Height = 21 177 Anchors = [akTop, akRight] 178 Style = orcsDropDown 179 AutoSelect = True 180 Caption = 'Attention' 181 Color = clWindow 182 DropDownCount = 8 183 ItemHeight = 13 184 ItemTipColor = clWindow 185 ItemTipEnable = True 186 ListItemsOnly = True 187 LongList = True 188 LookupPiece = 2 189 MaxLength = 0 190 Pieces = '2,3' 191 Sorted = False 192 SynonymChars = '<>' 193 TabOrder = 3 194 OnChange = ControlChange 195 OnNeedData = txtAttnNeedData 196 CharsNeedMatch = 1 197 end 198 object cboProc: TORComboBox [12] 199 Left = 4 200 Top = 17 201 Width = 227 202 Height = 21 203 Anchors = [akLeft, akTop, akRight] 204 Style = orcsDropDown 205 AutoSelect = True 206 Caption = 'Procedure' 207 Color = clWindow 208 DropDownCount = 8 209 ItemHeight = 13 210 ItemTipColor = clWindow 211 ItemTipEnable = True 212 ListItemsOnly = True 213 LongList = True 214 LookupPiece = 0 215 MaxLength = 0 216 Pieces = '2' 217 Sorted = False 218 SynonymChars = '<>' 219 TabOrder = 0 220 OnChange = cboProcSelect 221 OnNeedData = cboProcNeedData 222 CharsNeedMatch = 1 223 end 224 object cboCategory: TORComboBox [13] 225 Left = 516 226 Top = 10 227 Width = 3 228 Height = 21 229 Style = orcsDropDown 230 AutoSelect = True 231 Color = clWindow 232 DropDownCount = 8 233 ItemHeight = 13 234 ItemTipColor = clWindow 235 ItemTipEnable = True 236 ListItemsOnly = False 237 LongList = False 238 LookupPiece = 0 239 MaxLength = 0 240 Sorted = False 241 SynonymChars = '<>' 242 TabOrder = 13 243 Visible = False 244 OnChange = ControlChange 245 CharsNeedMatch = 1 246 end 247 object cboService: TORComboBox [14] 248 Left = 4 249 Top = 58 250 Width = 227 251 Height = 21 252 Anchors = [akLeft, akTop, akRight] 253 Style = orcsDropDown 254 AutoSelect = True 255 Caption = 'Service to perform this procedure' 256 Color = clWindow 257 DropDownCount = 8 258 Enabled = False 259 ItemHeight = 13 260 ItemTipColor = clWindow 261 ItemTipEnable = True 262 ListItemsOnly = False 263 LongList = False 264 LookupPiece = 0 265 MaxLength = 0 266 Pieces = '2' 267 Sorted = False 268 SynonymChars = '<>' 269 TabOrder = 4 270 OnChange = cboServiceChange 271 CharsNeedMatch = 1 272 end 273 inherited cmdAccept: TButton 274 Left = 387 275 Top = 339 276 Anchors = [akRight, akBottom] 277 TabOrder = 10 278 end 279 inherited cmdQuit: TButton 280 Left = 469 281 Top = 339 282 Width = 64 283 Anchors = [akRight, akBottom] 284 TabOrder = 11 285 end 286 inherited pnlMessage: TPanel 287 Left = 50 288 Top = 320 289 Width = 316 290 Anchors = [akLeft, akRight, akBottom] 291 TabOrder = 12 292 inherited memMessage: TRichEdit 293 Width = 254 294 end 295 end 296 object cmdLexSearch: TButton 297 Left = 486 298 Top = 93 299 Width = 49 300 Height = 21 301 Anchors = [akTop, akRight] 302 Caption = 'Lexicon' 303 TabOrder = 8 304 OnClick = cmdLexSearchClick 305 end 306 object gbInptOpt: TGroupBox 307 Left = 249 308 Top = 36 309 Width = 140 310 Height = 45 311 Anchors = [akTop, akRight] 312 Caption = 'Patient will be seen as an:' 313 TabOrder = 5 314 object radInpatient: TRadioButton 315 Left = 3 316 Top = 20 317 Width = 61 318 Height = 17 319 Caption = '&Inpatient' 320 TabOrder = 0 321 OnClick = radInpatientClick 322 end 323 object radOutpatient: TRadioButton 324 Left = 67 325 Top = 20 326 Width = 71 327 Height = 17 328 Caption = '&Outpatient' 329 TabOrder = 1 330 OnClick = radOutpatientClick 331 end 332 end 333 object txtProvDiag: TCaptionEdit 334 Left = 249 177 335 Top = 93 178 336 Width = 234 179 337 Height = 21 180 338 Anchors = [akTop, akRight] 339 MaxLength = 180 181 340 ParentShowHint = False 182 341 PopupMenu = mnuPopProvDx … … 185 344 OnChange = txtProvDiagChange 186 345 Caption = 'Provisional Diagnosis' 187 end188 object txtAttn: TORComboBox [11]189 Left = 384190 Top = 17191 Width = 133192 Height = 21193 Anchors = [akTop, akRight]194 Style = orcsDropDown195 AutoSelect = True196 Caption = 'Attention'197 Color = clWindow198 DropDownCount = 8199 ItemHeight = 13200 ItemTipColor = clWindow201 ItemTipEnable = True202 ListItemsOnly = True203 LongList = True204 LookupPiece = 2205 MaxLength = 0206 Pieces = '2,3'207 Sorted = False208 SynonymChars = '<>'209 TabOrder = 3210 OnChange = ControlChange211 OnNeedData = txtAttnNeedData212 CharsNeedMatch = 1213 end214 object cboProc: TORComboBox [12]215 Left = 4216 Top = 17217 Width = 215218 Height = 21219 Anchors = [akLeft, akTop, akRight]220 Style = orcsDropDown221 AutoSelect = True222 Caption = 'Procedure'223 Color = clWindow224 DropDownCount = 8225 ItemHeight = 13226 ItemTipColor = clWindow227 ItemTipEnable = True228 ListItemsOnly = True229 LongList = True230 LookupPiece = 0231 MaxLength = 0232 Pieces = '2'233 Sorted = False234 SynonymChars = '<>'235 TabOrder = 0236 OnChange = cboProcSelect237 OnNeedData = cboProcNeedData238 CharsNeedMatch = 1239 end240 object cboCategory: TORComboBox [13]241 Left = 516242 Top = 10243 Width = 3244 Height = 21245 Style = orcsDropDown246 AutoSelect = True247 Color = clWindow248 DropDownCount = 8249 ItemHeight = 13250 ItemTipColor = clWindow251 ItemTipEnable = True252 ListItemsOnly = False253 LongList = False254 LookupPiece = 0255 MaxLength = 0256 Sorted = False257 SynonymChars = '<>'258 TabOrder = 13259 Visible = False260 OnChange = ControlChange261 CharsNeedMatch = 1262 end263 object cboService: TORComboBox [14]264 Left = 4265 Top = 58266 Width = 215267 Height = 21268 Anchors = [akLeft, akTop, akRight]269 Style = orcsDropDown270 AutoSelect = True271 Caption = 'Service to perform this procedure'272 Color = clWindow273 DropDownCount = 8274 Enabled = False275 ItemHeight = 13276 ItemTipColor = clWindow277 ItemTipEnable = True278 ListItemsOnly = False279 LongList = False280 LookupPiece = 0281 MaxLength = 0282 Pieces = '2'283 Sorted = False284 SynonymChars = '<>'285 TabOrder = 4286 OnChange = cboServiceChange287 CharsNeedMatch = 1288 end289 inherited cmdAccept: TButton290 Left = 369291 Top = 268292 Anchors = [akRight, akBottom]293 TabOrder = 10294 end295 inherited cmdQuit: TButton296 Left = 457297 Top = 268298 Width = 64299 Anchors = [akRight, akBottom]300 TabOrder = 11301 end302 inherited pnlMessage: TPanel303 Left = 50304 Top = 249305 Width = 304306 Anchors = [akLeft, akRight, akBottom]307 TabOrder = 12308 inherited memMessage: TRichEdit309 Width = 254310 end311 end312 object cmdLexSearch: TButton313 Left = 474314 Top = 93315 Width = 49316 Height = 21317 Anchors = [akTop, akRight]318 Caption = 'Lexicon'319 TabOrder = 8320 OnClick = cmdLexSearchClick321 end322 object gbInptOpt: TGroupBox323 Left = 237324 Top = 36325 Width = 140326 Height = 45327 Anchors = [akTop, akRight]328 Caption = 'Patient will be seen as an:'329 TabOrder = 5330 DesignSize = (331 140332 45)333 object radInpatient: TRadioButton334 Left = 3335 Top = 20336 Width = 61337 Height = 17338 Anchors = [akTop, akRight]339 Caption = '&Inpatient'340 TabOrder = 0341 OnClick = radInpatientClick342 end343 object radOutpatient: TRadioButton344 Left = 67345 Top = 20346 Width = 71347 Height = 17348 Anchors = [akTop, akRight]349 Caption = '&Outpatient'350 TabOrder = 1351 OnClick = radOutpatientClick352 end353 346 end 354 347 object mnuPopProvDx: TPopupMenu -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fODProc.pas
r459 r460 12 12 cboUrgency: TORComboBox; 13 13 cboPlace: TORComboBox; 14 txtProvDiag: TCaptionEdit;15 14 txtAttn: TORComboBox; 16 15 lblProc: TLabel; … … 34 33 pnlReason: TPanel; 35 34 memReason: TCaptionRichEdit; 36 lblReason: TLabel;37 35 gbInptOpt: TGroupBox; 38 36 radInpatient: TRadioButton; 39 37 radOutpatient: TRadioButton; 38 txtProvDiag: TCaptionEdit; 39 lblReason: TLabel; 40 40 procedure FormCreate(Sender: TObject); 41 41 procedure txtAttnNeedData(Sender: TObject; const StartFrom: String; … … 63 63 Shift: TShiftState); 64 64 procedure memReasonKeyPress(Sender: TObject; var Key: Char); 65 procedure FormResize(Sender: TObject); 66 procedure FormClose(Sender: TObject; var Action: TCloseAction); 65 67 private 66 68 FLastProcID: string; … … 88 90 uses 89 91 rODBase, rConsults, uCore, uConsults, rCore, fConsults, fPCELex, rPCE, ORClasses, 90 clipbrd, fPreReq, uTemplates, uAccessibleRichEdit ;92 clipbrd, fPreReq, uTemplates, uAccessibleRichEdit, fFrame, uODBase; 91 93 92 94 var … … 109 111 procedure TfrmODProc.FormCreate(Sender: TObject); 110 112 begin 113 frmFrame.pnlVisit.Enabled := false; 111 114 AutoSizeDisabled := True; 112 115 inherited; … … 709 712 TmpSL: TStringList; 710 713 DocInfo: string; 711 begin 714 x: string; 715 HasObjects: boolean; 716 begin 717 Resolve := FALSE ; // override value passed in - resolve on client - PSI-05-093 712 718 DocInfo := ''; 713 719 TmpSL := TStringList.Create; … … 715 721 Result := GetDefaultReasonForRequest(Piece(cboProc.Items[cboProc.ItemIndex], U, 4), Resolve); 716 722 TmpSL.Assign(Result); 723 x := TmpSL.Text; 724 ExpandOrderObjects(x, HasObjects); 725 TmpSL.Text := x; 726 Responses.OrderContainsObjects := HasObjects; 717 727 ExecuteTemplateOrBoilerPlate(TmpSL, StrToIntDef(piece(piece(cboProc.Items[cboProc.ItemIndex],U,4),';',1),0), 718 728 ltProcedure, nil, 'Reason for Request: ' + cboProc.DisplayText[cboProc.ItemIndex], DocInfo); 729 if TmpSL.Text <> x then Responses.OrderContainsObjects := False; 719 730 Result.Assign(TmpSL); 720 731 finally … … 805 816 end; 806 817 818 procedure TfrmODProc.FormResize(Sender: TObject); 819 begin 820 inherited; 821 memOrder.Top := PnlReason.Top + PnlReason.Height + 5; 822 823 end; 824 825 procedure TfrmODProc.FormClose(Sender: TObject; var Action: TCloseAction); 826 begin 827 inherited; 828 frmFrame.pnlVisit.Enabled := true; 829 end; 830 807 831 end. 808 832 -
cprs/branches/foia-cprs/CPRS-Chart/Consults/fPreReq.dfm
r459 r460 12 12 Font.Name = 'MS Sans Serif' 13 13 Font.Style = [] 14 FormStyle = fsStayOnTop15 14 OldCreateOrder = True 16 15 Position = poScreenCenter -
cprs/branches/foia-cprs/CPRS-Chart/Consults/rConsults.pas
r459 r460 4 4 5 5 uses SysUtils, Classes, ORNet, ORFn, rCore, uCore, TRPCB, dialogs, uConsults, rTIU, uTIU; 6 7 type 8 9 TUnresolvedConsults = record 10 UnresolvedConsultsExist: boolean; 11 ShowNagScreen: boolean; 12 end; 6 13 7 14 {Consult Titles } … … 32 39 function GetFormattedSF513(AConsult: Integer; ChartCopy: string): TStrings; 33 40 function UnresolvedConsultsExist: boolean; 41 procedure GetUnresolvedConsultsInfo; 34 42 35 43 {list box fillers} … … 97 105 uClinProcClass: integer; 98 106 uClinProcTitles: TClinProcTitles; 107 uUnresolvedConsults: TUnresolvedConsults; 99 108 100 109 implementation … … 602 611 end; 603 612 613 procedure GetUnresolvedConsultsInfo; 614 var 615 x: string; 616 begin 617 x := sCallV('ORQQCN UNRESOLVED', [Patient.DFN]); 618 with uUnresolvedConsults do 619 begin 620 UnresolvedConsultsExist := (Piece(x, U, 1) = '1'); 621 ShowNagScreen := (Piece(x, U, 2) = '1'); 622 end; 623 end; 624 604 625 function ConsultMessage(AnIEN: Integer): string; 605 626 begin -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fDiagnoses.dfm
r459 r460 1 1 inherited frmDiagnoses: TfrmDiagnoses 2 Left = 30 63 Top = 1 832 Left = 304 3 Top = 169 4 4 Caption = 'Encounter Diagnoses' 5 5 PixelsPerInch = 96 … … 76 76 inherited lbSection: TORListBox 77 77 Tag = 20 78 Style = lbOwnerDrawFixed79 78 TabOrder = 0 80 OnDrawItem = lbSectionDrawItem81 79 end 82 80 inherited btnOther: TButton -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fDiagnoses.pas
r459 r460 218 218 var 219 219 i: integer; 220 dxString: string;221 220 dxCode, dxName: string; 222 221 ADiagnosis: TPCEItem; 223 222 begin 224 223 inherited; 225 ADiagnosis := TPCEItem.Create;226 224 UBAGlobals.BAPCEDiagList.Clear; 227 225 with lbGrid do for i := 0 to Items.Count - 1 do -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fEncVitals.dfm
r459 r460 1 1 inherited frmEncVitals: TfrmEncVitals 2 Left = 4003 Top = 2 272 Left = 353 3 Top = 210 4 4 Caption = 'Vitals' 5 5 KeyPreview = True … … 8 8 OnKeyDown = FormKeyDown 9 9 OnResize = FormResize 10 OnShow = FormShow11 10 PixelsPerInch = 96 12 11 TextHeight = 13 12 object lvVitals: TCaptionListView [0] 13 Left = 0 14 Top = 0 15 Width = 624 16 Height = 368 17 Hint = 'To sort, click on column headers|' 18 Align = alClient 19 Columns = <> 20 Constraints.MinHeight = 50 21 HideSelection = False 22 MultiSelect = True 23 ReadOnly = True 24 RowSelect = True 25 ParentShowHint = False 26 ShowHint = True 27 TabOrder = 1 28 ViewStyle = vsReport 29 end 30 object pnlBottom: TPanel [1] 31 Left = 0 32 Top = 368 33 Width = 624 34 Height = 32 35 Align = alBottom 36 BevelOuter = bvNone 37 TabOrder = 5 38 end 13 39 inherited btnOK: TBitBtn 14 40 Left = 444 15 41 Top = 377 16 TabOrder = 142 TabOrder = 3 17 43 end 18 44 inherited btnCancel: TBitBtn 19 45 Left = 524 20 46 Top = 377 21 TabOrder = 247 TabOrder = 4 22 48 end 23 49 object pnlmain: TPanel … … 27 53 Height = 217 28 54 TabOrder = 0 55 Visible = False 29 56 object lblVitPointer: TOROffsetLabel 30 57 Left = 506 … … 383 410 ListItemsOnly = True 384 411 LongList = False 412 LookupPiece = 0 385 413 MaxLength = 0 386 414 Pieces = '1,2' … … 390 418 TabStop = True 391 419 OnEnter = SetVitPointer 420 CharsNeedMatch = 1 392 421 end 393 422 object txtMeasPulse: TCaptionEdit … … 414 443 end 415 444 end 445 object btnEnterVitals: TButton 446 Left = 8 447 Top = 377 448 Width = 75 449 Height = 21 450 Caption = 'Enter Vitals' 451 TabOrder = 2 452 OnClick = btnEnterVitalsClick 453 end 416 454 end -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fEncVitals.pas
r459 r460 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 7 fPCEBase, ORDtTm, StdCtrls, ORCtrls, ExtCtrls, Buttons, fAutoSz, ORFn, 8 rvitals, ComCtrls; 8 rvitals, ComCtrls, ORNet, uVitals 9 , TRPCB // Vitals Lite 2004-05-21 =========================================== 10 ; 11 {== Vitals Lite 2004-05-21 ===================================================} 12 type 13 TGMV_GetInputPanel = function( 14 var anApp: TApplication; 15 aB: TRPCBroker; 16 aP, // Patient DFN 17 aL, // Hospitals IEN 18 aSig, // Application signature 19 aTemplate // Vitals Input template 20 : String; 21 aNow // Input Date/Time 22 :TDateTime):TCustomForm; 23 {== Vitals Lite 2004-05-21 ===================================================} 9 24 10 25 type … … 47 62 txtMeasPulse: TCaptionEdit; 48 63 txtMeasHt: TCaptionEdit; 64 pnlBottom: TPanel; 65 btnEnterVitals: TButton; 66 lvVitals: TCaptionListView; 49 67 procedure SetVitPointer(Sender: TObject); 50 68 procedure txtMeasBPExit(Sender: TObject); … … 71 89 procedure FormKeyDown(Sender: TObject; var Key: Word; 72 90 Shift: TShiftState); 91 procedure btnEnterVitalsClick(Sender: TObject); //vitals lite 73 92 private 74 93 FDataLoaded: boolean; … … 82 101 procedure ChangeFocus(Control: TWinControl); 83 102 procedure ClearData; 103 procedure LoadVitalView(VitalsList : TStringList); //Vitals Lite 104 procedure LoadVitalsList; 84 105 public 85 106 function OK2SaveVitals: boolean; … … 97 118 98 119 uses UCore, rCore, rPCE, fPCELex, fPCEOther, fVitals,fVisit, fFrame, fEncnt, 99 uVitals, fEncounterFrame; 120 fEncounterFrame, uInit 121 // , fGMV_InputTemp // Vitals Lite 2004-05-21 122 ; 100 123 101 124 const … … 373 396 end; 374 397 398 375 399 procedure TfrmEncVitals.FormCreate(Sender: TObject); 376 377 begin 400 begin 401 378 402 inherited; 379 403 FTabName := CT_VitNm; … … 389 413 390 414 begin 391 inherited;392 415 //uVisitType.Free; 393 416 uVitalOld.Free; 394 417 uVitalNew.free; 418 419 {== Vitals Lite 2004-05-21 ===================================================} 420 FreeLibrary(VitalsDLLHandle); 421 {== Vitals Lite 2004-05-21 ===================================================} 422 inherited; 395 423 end; 396 424 … … 412 440 413 441 procedure TfrmEncVitals.FormShow(Sender: TObject); 414 begin 415 inherited; 442 var 443 GMV_LibName: String; 444 begin 445 inherited; 446 //Begin Vitals Lite 447 {Visit is Assumed to Be selected when Opening Encounter Dialog} 448 GMV_LibName :='GMV_VitalsViewEnter.dll'; 449 GMV_LibName := GetProgramFilesPath + SHARE_DIR + GMV_LibName; 450 VitalsDLLHandle := LoadLibrary(PChar(GMV_LibName)); 451 if VitalsDLLHandle = 0 then // No Handle found 452 MessageDLG('Can''t find library "'+GMV_LibName+'".',mtError,[mbok],0) 453 else 454 LoadVitalsList; 455 //End Vitals Lite 416 456 // frmEncVitals.caption := 'Vital entry for - '+ patient.name; {RAB 6/15/98} 417 457 FormActivate(Sender); … … 540 580 end; 541 581 582 //Begin Vitals Lite 583 procedure TfrmEncVitals.LoadVitalView(VitalsList: TStringList); 584 var 585 i : integer; 586 curCol : TListColumn; 587 curItem : TListItem; 588 HeadingList,tmpList : TStringList; 589 begin 590 HeadingList := TStringList.Create; 591 tmpList := TStringList.Create; 592 lvVitals.ShowColumnHeaders := false; //CQ: 10069 - the column display becomes squished. 593 lvVitals.Items.Clear; 594 lvVitals.Columns.Clear; 595 PiecesToList(VitalsList[0],U,HeadingList); 596 for i := 0 to HeadingList.Count-1 do 597 begin 598 curCol := lvVitals.Columns.Add; 599 curCol.Caption := HeadingList[i]; 600 curCol.AutoSize := true; 601 end; 602 for i := 1 to VitalsList.Count-1 do 603 begin 604 curItem := lvVitals.Items.Add; 605 PiecesToList(VitalsList[i],U,tmpList); 606 curItem.Caption := tmpList[0]; 607 tmpList.Delete(0); 608 curItem.SubItems.Assign(tmpList); 609 end; 610 lvVitals.ShowColumnHeaders := true; //CQ: 10069 - the column display becomes squished. 611 HeadingList.Free; 612 tmpList.Free; 613 end; 614 615 procedure TfrmEncVitals.btnEnterVitalsClick(Sender: TObject); 616 var 617 VLPtVitals : TGMV_VitalsEnterDLG; 618 GMV_FName : String; 619 begin 620 inherited; 621 if VitalsDLLHandle = 0 then Exit;//The DLL was initialized on Create, but just in case.... 622 GMV_FName := 'GMV_VitalsEnterDLG'; 623 @VLPtVitals := GetProcAddress(VitalsDLLHandle,PChar(GMV_FName)); 624 if assigned(VLPtVitals) then 625 begin 626 VLPtVitals( 627 RPCBrokerV, 628 Patient.DFN, 629 FloatToStr(uEncPCEData.Location), 630 GMV_DEFAULT_TEMPLATE, 631 GMV_APP_SIGNATURE, 632 FMDateTimeToDateTime(uEncPCEData.DateTime), 633 Patient.Name, 634 frmFrame.lblPtSSN.Caption + ' ' + frmFrame.lblPtAge.Caption 635 ); 636 end 637 else 638 MessageDLG('Can not find function "'+GMV_FName+'".',mtError,[mbok],0); 639 @VLPtVitals := nil; 640 LoadVitalsList; 641 end; 642 643 procedure TfrmEncVitals.LoadVitalsList; 644 var 645 VitalsList : TStringList; 646 VLPtVitals : TGMV_LatestVitalsList; 647 GMV_FName : String; 648 begin 649 if VitalsDLLHandle = 0 then Exit;//The DLL was initialized on Create, but just in case.... 650 GMV_FName := 'GMV_LatestVitalsList'; 651 @VLPtVitals := GetProcAddress(VitalsDLLHandle,PChar(GMV_FName)); 652 if assigned(VLPtVitals) then 653 begin 654 frmFrame.VitalsDLLActive := True; // need this flag for CCOW (RV) 655 VitalsList := VLPtVitals(RPCBrokerV,Patient.DFN,U,false); 656 if assigned(VitalsList) then 657 LoadVitalView(VitalsList); 658 end 659 else 660 MessageDLG('Can''t find function "'+GMV_FName+'".',mtError,[mbok],0); 661 @VLPtVitals := nil; 662 frmFrame.VitalsDLLActive := False; // need this flag for CCOW (RV) 663 end; 664 //End Vitals Lite 665 542 666 end. -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fEncounterFrame.dfm
r459 r460 1 1 object frmEncounterFrame: TfrmEncounterFrame 2 Left = 3663 Top = 1 814 Width = 6 122 Left = 290 3 Top = 108 4 Width = 640 5 5 Height = 451 6 6 Caption = 'Encounter Frame' … … 16 16 Position = poScreenCenter 17 17 OnCanResize = FormCanResize 18 OnClose = FormClose 18 19 OnCloseQuery = FormCloseQuery 19 20 OnCreate = FormCreate … … 26 27 Left = 0 27 28 Top = 0 28 Width = 6 0429 Width = 632 29 30 Height = 2 30 31 Align = alTop … … 32 33 object StatusBar1: TStatusBar 33 34 Left = 0 34 Top = 4 2435 Width = 6 0435 Top = 417 36 Width = 632 36 37 Height = 0 37 38 Panels = <> … … 41 42 Left = 0 42 43 Top = 24 43 Width = 6 0444 Height = 40044 Width = 632 45 Height = 393 45 46 Align = alClient 46 47 BevelOuter = bvNone … … 52 53 ParentFont = False 53 54 TabOrder = 1 54 TabStop = True55 55 end 56 56 object TabControl: TTabControl 57 57 Left = 0 58 58 Top = 2 59 Width = 6 0459 Width = 632 60 60 Height = 22 61 61 Align = alTop -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fEncounterFrame.pas
r459 r460 75 75 procedure FormKeyDown(Sender: TObject; var Key: Word; 76 76 Shift: TShiftState); 77 procedure FormClose(Sender: TObject; var Action: TCloseAction); 77 78 procedure FormCanResize(Sender: TObject; var NewWidth, 78 79 NewHeight: Integer; var Resize: Boolean); … … 123 124 uCore, 124 125 fGAF, uConst, 125 rCore, fPCEProvider ;126 rCore, fPCEProvider, rMisc; 126 127 127 128 {$R *.DFM} … … 397 398 frmEncounterFrame.CreateChildForms(frmEncounterFrame, PCEData.Location); 398 399 ResizeAnchoredFormToFont(frmEncounterFrame); 400 SetFormPosition(frmEncounterFrame); 399 401 400 402 with frmEncounterFrame do … … 714 716 if FormListContains(CT_ImmNm) then 715 717 SetImmunizations(frmImmunizations.lbGrid.Items); 716 if FormListContains(CT_ ImmNm) then718 if FormListContains(CT_SkinNm) then 717 719 SetSkinTests(frmSkinTests.lbGrid.Items); 718 720 if FormListContains(CT_PedNm) then 719 721 SetPatientEds(frmPatientEd.lbGrid.Items); 720 if FormListContains(CT_ ImmNm) then722 if FormListContains(CT_HlthNm) then 721 723 SetHealthFactors(frmHealthFactors.lbGrid.Items); 722 if FormListContains(CT_ ImmNm) then724 if FormListContains(CT_XamNm) then 723 725 SetExams(frmExams.lbGrid.Items); 724 726 end; … … 817 819 end; 818 820 819 procedure TfrmEncounterFrame.FormCanResize(Sender: TObject; var NewWidth, NewHeight: Integer; var Resize: Boolean); 821 procedure TfrmEncounterFrame.FormClose(Sender: TObject; 822 var Action: TCloseAction); 823 begin 824 SaveUserBounds(Self); 825 end; 826 827 procedure TfrmEncounterFrame.FormCanResize(Sender: TObject; var NewWidth, 828 NewHeight: Integer; var Resize: Boolean); 820 829 begin 821 830 //CQ4740 -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fHealthFactor.dfm
r459 r460 1 1 inherited frmHealthFactors: TfrmHealthFactors 2 Left = 4343 Top = 3542 Left = 374 3 Top = 205 4 4 Caption = 'Health Factor page' 5 5 PixelsPerInch = 96 … … 46 46 end 47 47 inherited edtComment: TCaptionEdit 48 MaxLength = 245 48 49 TabOrder = 3 49 50 end … … 90 91 ListItemsOnly = False 91 92 LongList = False 93 LookupPiece = 0 92 94 MaxLength = 0 93 95 Pieces = '2' … … 96 98 TabOrder = 4 97 99 OnChange = cboHealthLevelChange 100 CharsNeedMatch = 1 98 101 end 99 102 end -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fPCELex.dfm
r459 r460 1 1 inherited frmPCELex: TfrmPCELex 2 Left = 3863 Top = 2042 Left = 639 3 Top = 480 4 4 BorderIcons = [] 5 5 BorderStyle = bsDialog -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/fPCEProvider.dfm
r459 r460 71 71 OnChange = cboPrimaryChange 72 72 OnNeedData = cboPrimaryNeedData 73 CharsNeedMatch = 1 73 74 end 74 75 object btnYes: TButton -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/rPCE.pas
r459 r460 150 150 function IsUserAProvider(AUser: Int64; ADate: TFMDateTime): boolean; 151 151 function IsCancelOrNoShow(ANote: integer): boolean; 152 function IsNonCountClinic(ALocation: integer): boolean; 152 153 153 154 // HNC Flag … … 173 174 uVTypeForLoc: TStringList; 174 175 uProblems: TStringList; 175 176 176 uModifiers: TORStringList = nil; 177 177 uGAFOK: boolean; … … 1438 1438 end; 1439 1439 1440 function IsNonCountClinic(ALocation: integer): boolean; 1441 begin 1442 Result := (sCallV('ORWPCE1 NONCOUNT', [ALocation]) = '1'); 1443 end; 1444 1440 1445 function DefaultProvider(ALocation: integer; AUser: Int64; ADate: TFMDateTime; 1441 1446 ANoteIEN: integer): string; -
cprs/branches/foia-cprs/CPRS-Chart/Encounter/uPCE.pas
r459 r460 1375 1375 Result := inherited DelimitedStr; 1376 1376 if Provider > 0 then tmpProv := IntToStr(Provider) else tmpProv := ''; 1377 //Result := 'CPT' + Result + U + IntToStr(Quantity) + U + IntToStr(Provider) +1378 1377 Result := 'CPT' + Result + U + IntToStr(Quantity) + U + tmpProv 1379 //Result := 'CPT' + Result + U + IntToStr(Quantity) + U +1380 + U + U + U + IntToStr(cnt) + Mods + U + IntToStr(UNxtCommSeqNum) + U;1378 + U + U + U + IntToStr(cnt) + Mods + U + IntToStr(UNxtCommSeqNum) + U; 1379 if Length(Result) > 250 then SetPiece(Result, U, 4, ''); 1381 1380 end; 1382 1381 … … 1554 1553 BOOLCHAR[AddProb] + U + U + U; 1555 1554 if(SaveComment) then Result := Result + IntToStr(UNxtCommSeqNum); 1555 if Length(Result) > 250 then SetPiece(Result, U, 4, ''); 1556 1556 end; 1557 1557 … … 2988 2988 begin 2989 2989 if not CanEditPCE(Self) then 2990 begin 2991 Result := TRUE; 2992 exit; 2993 end; 2994 if IsNonCountClinic(FEncLocation) then 2990 2995 begin 2991 2996 Result := TRUE; -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptions.dfm
r459 r460 1 1 object frmOptions: TfrmOptions 2 Left = 307 3 Top = 170 2 Left = 315 3 Top = 110 4 Width = 435 5 Height = 397 4 6 HelpContext = 9999 7 VertScrollBar.Range = 360 5 8 BorderIcons = [biSystemMenu, biHelp] 6 9 BorderStyle = bsDialog 7 10 Caption = 'Options' 8 ClientHeight = 3639 ClientWidth = 42710 11 Color = clBtnFace 11 12 ParentFont = True … … 19 20 object pnlBottom: TPanel 20 21 Left = 0 21 Top = 3 3322 Top = 340 22 23 Width = 427 23 24 Height = 30 … … 66 67 Top = 0 67 68 Width = 427 68 Height = 3 3369 Height = 340 69 70 Align = alClient 70 71 BevelOuter = bvNone … … 76 77 Top = 5 77 78 Width = 417 78 Height = 3 2379 Height = 330 79 80 HelpContext = 9999 80 81 ActivePage = tsListsTeams … … 87 88 DesignSize = ( 88 89 409 89 295)90 302) 90 91 object bvlCoverDays: TBevel 91 92 Left = 125 … … 923 924 DesignSize = ( 924 925 409 925 295)926 302) 926 927 object bvlNotesNotes: TBevel 927 928 Left = 88 … … 977 978 00000000000000000000000000000000000000000000000000000000} 978 979 end 979 object Image1: TImage980 object imgNotes: TImage 980 981 Left = 16 981 982 Top = 163 … … 1111 1112 Caption = 'Reports' 1112 1113 ImageIndex = 5 1113 object Bevel1: TBevel1114 object bvlReports: TBevel 1114 1115 Left = 80 1115 Top = 241116 Top = 16 1116 1117 Width = 321 1117 1118 Height = 2 1118 1119 end 1119 object Image2: TImage1120 Left = 161121 Top = 481120 object imgReports: TImage 1121 Left = 20 1122 Top = 31 1122 1123 Width = 41 1123 1124 Height = 41 … … 1150 1151 FFFFFFFF} 1151 1152 end 1152 object Image3: TImage 1153 object bvlReport1: TBevel 1154 Left = 104 1155 Top = 108 1156 Width = 297 1157 Height = 2 1158 end 1159 object bvlReport2: TBevel 1160 Left = 104 1161 Top = 204 1162 Width = 297 1163 Height = 2 1164 end 1165 object imgReport1: TImage 1153 1166 Left = 16 1154 Top = 1 761167 Top = 123 1155 1168 Width = 41 1156 1169 Height = 41 … … 1192 1205 00010000000000000200000083000000C7000000FF810000FFC30000} 1193 1206 end 1194 object Bevel2: TBevel 1195 Left = 104 1196 Top = 160 1197 Width = 297 1198 Height = 2 1199 end 1200 object Label3: TMemo 1207 object imgReport2: TImage 1208 Left = 16 1209 Top = 219 1210 Width = 41 1211 Height = 41 1212 Center = True 1213 Picture.Data = { 1214 055449636F6E0000010001002020000000000000A80800001600000028000000 1215 2000000040000000010008000000000080040000000000000000000000010000 1216 0000000000000000000080000080000000808000800000008000800080800000 1217 C0C0C000C0DCC000F0CAA600CCFFFF0099FFFF0066FFFF0033FFFF00FFCCFF00 1218 CCCCFF0099CCFF0066CCFF0033CCFF0000CCFF00FF99FF00CC99FF009999FF00 1219 6699FF003399FF000099FF00FF66FF00CC66FF009966FF006666FF003366FF00 1220 0066FF00FF33FF00CC33FF009933FF006633FF003333FF000033FF00CC00FF00 1221 9900FF006600FF003300FF00FFFFCC00CCFFCC0099FFCC0066FFCC0066FFCC00 1222 33FFCC0000FFCC00FFCCCC00CCCCCC0099CCCC0066CCCC0033CCCC0000CCCC00 1223 FF99CC00CC99CC009999CC006699CC003399CC000099CC00FF66CC00CC66CC00 1224 9966CC006666CC003366CC000066CC00FF33CC00CC33CC009933CC006633CC00 1225 3333CC000033CC00FF00CC00CC00CC009900CC006600CC003300CC000000CC00 1226 FFFF9900CCFF990099FF990066FF990033FF990000FF9900FFCC9900CCCC9900 1227 99CC990066CC990033CC990000CC9900FF999900CC9999009999990066999900 1228 3399990000999900FF669900CC66990099669900666699003366990000669900 1229 FF339900CC33990099339900663399003333990000339900FF009900CC009900 1230 99009900660099003300990000009900FFFF6600CCFF660099FF660066FF6600 1231 33FF660000FF6600FFCC6600CCCC660099CC660066CC660033CC660000CC6600 1232 FF996600CC99660099996600669966003399660000996600FF666600CC666600 1233 99666600666666003366660000666600FF336600CC3366009933660066336600 1234 3333660000336600FF006600CC00660099006600660066003300660000006600 1235 FFFF3300CCFF330099FF330066FF330033FF330000FF3300FFCC3300CCCC3300 1236 99CC330066CC330033CC330000CC3300FF993300CC9933009999330066993300 1237 3399330000993300FF663300CC66330099663300666633003366330000663300 1238 FF333300CC33330099333300663333003333330000333300FF003300CC003300 1239 99003300660033003300330000003300CCFF000099FF000066FF000033FF0000 1240 FFCC0000CCCC000099CC000066CC000033CC000000CC0000FF990000CC990000 1241 99990000669900003399000000990000FF660000CC6600009966000066660000 1242 0066000033660000FF330000CC33000099330000663300003333000000330000 1243 CC0000009900000066000000330000000000DD000000BB000000AA0000008800 1244 0000770000005500000044000000220000DD000000BB000000AA000000880000 1245 00770000005500000044000000220000DDDDDD00555555007777770077777700 1246 44444400222222001111110077000000550000004400000022000000F0FBFF00 1247 A4A0A000808080000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000 1248 FFFFFF000000000000EF000000EFEFEFEFEFEFEF000000000000000000000000 1249 0000000000000000EFEF0000EFEFEFEFEFEFEFEFEF00000000000000000000ED 1250 ED00000000000000EFEFEF0000000000EFEFEFEFEFEF00000000000000EDEDEB 1251 ED00000000000000EFEFEF00ACACAC4FACEF00EFEFEFEF00000000EDEDEBEBEB 1252 ED0000000000FB0000000000EFEFEFECEC4FAC00EFEFEF0000EDEDEBEBFFEBEB 1253 ED00000000FBFB0AEB0707F7F75D5DEDED4F4F00EF0000EFEDEBEBEBEBF7FFEB 1254 ED00000000F1FB00F0EFEFEFECECECECEC4F4FAC00EFEFEFEBEBEBEBEDF7FFEB 1255 ED0000000000F0F04FFF4FFFA6A6A6A6FF4FACACACEFEFEFEBEBEBEBEDF7FFEB 1256 ED000000000000F04F4FFFA6A64FFF4F4F4FA6ACAC00EFEFEBEBEBEBEDF7FFEB 1257 ED000000000000004FA6E4A6A6FF4FFF4F4FA6ACAC00EFEFEFEBEBEBEDF7FFF7 1258 ED000000000000004FACE4A6A6A64F4FFF4FA64F4F00EFEFEFEFEBEBEDEDF700 1259 ED000000000000EF4FACE4A6ACA6ACACA6A6ACACAC0000EFEFEFEFEB5D000000 1260 ED0000000000000000ACE4A6ECECEFEFEFEF00000000FB00EFEFEB00F05DEB00 1261 ED00000000000000EF002AE4EDED5D5DF7F70707EB0AFBFB00EBEBFFEBEBEB00 1262 ED0000000000000000004FACECECECECECEFEFEFF000FB00EBEBEBFFEBFFFFEB 1263 ED00000000000000000000004FACACAC4F00EFEBEB0000EBEBEBEBFFFFF7FFEB 1264 ED000000000000000000000000000000EF5DEBEBEB00EBEBEBEBEBEBEDF7FFEB 1265 ED000000000000000000000000FFEBEBEBEBEBEBEBEBEBEBEBEBEBEBEDF7FFEB 1266 ED000000000000000000000000FFEBEBEBEBEBEBEBEBEBEBEBEBEBEBEDF7FFEB 1267 ED000000000000000000000000FFEBEBEBEBEBEBEBEBEBEBEBEBEBEBEDF7FFEB 1268 ED000000000000000000000000FFEBEBEBEBEBEBEBEBEBEBEBEBEBEBEDECEBEB 1269 ED000000000000000000000000FFEBEBEBEBEBEBEBEBEBEBEBEBEBEBECF7FFFF 1270 ED000000000000000000000000FFEBEBEBEBEBEBEBEBEBEBEBEBEBFFFFFF0700 1271 00000000000000000000000000FFEBEBEBEBEBEBEBEBEBEBEBFFFFFF07000000 1272 00000000000000000000000000FFEBEBEBEBEBEBEBEBEBFFFFFF070000000000 1273 00000000000000000000000000FFEBEBEBEBEBEBEBFFFFFF0700000000000000 1274 00000000000000000000000000FFEBEBEBEBEBFFFFFF07000000000000000000 1275 00000000000000000000000000FFEBEBEBFFFFFF070000000000000000000000 1276 00000000000000000000000000FFEBFFFFFF0700000000000000000000000000 1277 00000000000000000000000000FFFFFF07000000000000000000000000000000 1278 00000000000000000000000000EB070000000000000000000000000000000000 1279 0000000000000000000000000000000000000000000000000000000000000000 1280 00000000FB80FFE7F3007F83E1003E03C0001803800000030000000380000003 1281 C0000003E0000003E0000003E0000003E0000003F0000003F0000003F8000003 1282 FC000003FF000003FF000003FF000003FF000003FF000003FF000003FF000007 1283 FF00001FFF00007FFF0001FFFF0007FFFF001FFFFF007FFFFF01FFFFFF07FFFF 1284 FF9FFFFF} 1285 end 1286 object memReports: TMemo 1201 1287 Left = 128 1202 Top = 481288 Top = 27 1203 1289 Width = 273 1204 1290 Height = 41 … … 1213 1299 TabOrder = 4 1214 1300 end 1215 object Label4: TMemo1301 object memReport1: TMemo 1216 1302 Left = 128 1217 Top = 1 841303 Top = 121 1218 1304 Width = 273 1219 1305 Height = 49 … … 1228 1314 TabOrder = 5 1229 1315 end 1230 object Label1: TStaticText1316 object lblReports: TStaticText 1231 1317 Left = 13 1232 Top = 161318 Top = 9 1233 1319 Width = 55 1234 1320 Height = 17 … … 1236 1322 TabOrder = 2 1237 1323 end 1238 object Label2: TStaticText1239 Left = 131240 Top = 1 521324 object lblReport1: TStaticText 1325 Left = 9 1326 Top = 101 1241 1327 Width = 89 1242 1328 Height = 17 … … 1244 1330 TabOrder = 3 1245 1331 end 1246 object Button1: TButton1332 object btnReports: TButton 1247 1333 Left = 200 1248 Top = 1041334 Top = 76 1249 1335 Width = 193 1250 1336 Height = 22 1251 1337 Caption = 'Set All Reports...' 1252 1338 TabOrder = 0 1253 OnClick = Button1Click1254 end 1255 object Button2: TButton1339 OnClick = btnReportsClick 1340 end 1341 object btnReport1: TButton 1256 1342 Left = 200 1257 Top = 2401343 Top = 167 1258 1344 Width = 193 1259 1345 Height = 22 1260 1346 Caption = 'Set Individual Report...' 1261 1347 TabOrder = 1 1262 OnClick = Button2Click 1348 OnClick = btnReport1Click 1349 end 1350 object lblReport2: TStaticText 1351 Left = 5 1352 Top = 197 1353 Width = 91 1354 Height = 17 1355 Caption = 'Remote Data Tool' 1356 TabOrder = 6 1357 end 1358 object memReport2: TMemo 1359 Left = 128 1360 Top = 213 1361 Width = 273 1362 Height = 28 1363 TabStop = False 1364 BorderStyle = bsNone 1365 Color = clBtnFace 1366 Lines.Strings = ( 1367 'Change the default tool for viewing Remote Patient Data') 1368 ReadOnly = True 1369 TabOrder = 7 1370 end 1371 object rdoRDV: TRadioGroup 1372 Left = 120 1373 Top = 244 1374 Width = 277 1375 Height = 37 1376 Hint = 'Select RDV for Remote Data Views (classic) or WebVista' 1377 Caption = 'How do you want to view remote data' 1378 Columns = 2 1379 ItemIndex = 0 1380 Items.Strings = ( 1381 'RDV (Classic)' 1382 'VistaWeb') 1383 TabOrder = 8 1384 OnClick = rdoRDVClick 1385 end 1386 end 1387 object tsGraphs: TTabSheet 1388 Caption = 'Graphs' 1389 ImageIndex = 6 1390 DesignSize = ( 1391 409 1392 302) 1393 object bvlGraphSettings: TBevel 1394 Left = 104 1395 Top = 16 1396 Width = 297 1397 Height = 2 1398 end 1399 object imgGraphSettings: TImage 1400 Left = 16 1401 Top = 163 1402 Width = 41 1403 Height = 41 1404 Center = True 1405 Picture.Data = { 1406 055449636F6E0000010001002020100000000000E80200001600000028000000 1407 2000000040000000010004000000000080020000000000000000000000000000 1408 0000000000000000000080000080000000808000800000008000800080800000 1409 80808000C0C0C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000 1410 FFFFFF0000000000000000000000000000000000007070707070707070707070 1411 7070700007FFFFFFFFFFFFFFFFFFFFFFFFFF000007F000000000000000000000 1412 0000700007F7888788878887888788878888000007FFFFFF9FFFFF9FFFF9FFFF 1413 FFFF700007FFFFFFFFFFFFFFFFFFFFFFFFFF000007FFFF999999F99970707070 1414 7070707007FFFFFFFFFFFFFF788888888887878007FFFBBBBBBBBBBB78878787 1415 88FFFF7707FFFFCCCCCCFCCC78F000088887878007FFFFFFFFFFFFFF77FFFFF7 1416 88FFFF7707FFFFFFFFFFFFFF78F000088888888007FFFFFFFFFFFFFF77FFFFF7 1417 8887878707FFFFFFFFFFFFFF78F0000888FFFF7007FFFFFFFFFFFFFF77FFFFF7 1418 8888888707F000000000000078F000088887878007F788878887888777FFFFF7 1419 88F0FF7707F7FFFFFFFFFFFF788888888888888007F7FF9FFFFFFFFF77878787 1420 8787878707F7FF9FFFFFFFFF777777777777777007F7FFF9FFFFFFFFF9F9FFFF 1421 FFF9700007F7FFF9FFFFFFFF9FF99FFFFF9F000007F7FFFF9FFFFFFF9FFFF9FF 1422 F99F700007F7FFFF9FFFFFF9FFFFF99F9FFF000007F7FFFFF9FFFF9FFFFFFFF9 1423 9FFF700007F7FFFFF9FF99FFFFFFFFF9FFFF000007F7FFFFFF999FFFFFFFFFFF 1424 FFFF700007F7FFFFFFF9FFFFFFFFFFFFFFFF000007FFFFFFFFFFFFFFFFFFFFFF 1425 FFFF700007777777777777777777777777770000000000000000000000000000 1426 00000000FFFFFFFF800000078000000780000007800000078000000780000007 1427 8000000080000000800000008000000080000000800000008000000080000000 1428 8000000080000000800000008000000080000000800000008000000780000007 1429 8000000780000007800000078000000780000007800000078000000780000007 1430 FFFFFFFF} 1431 end 1432 object bvlGraphViews: TBevel 1433 Left = 104 1434 Top = 155 1435 Width = 297 1436 Height = 2 1437 end 1438 object imgGraphViews: TImage 1439 Left = 16 1440 Top = 27 1441 Width = 41 1442 Height = 41 1443 Center = True 1444 Picture.Data = { 1445 055449636F6E0000010001002020100000000000E80200001600000028000000 1446 2000000040000000010004000000000080020000000000000000000000000000 1447 0000000000000000000080000080000000808000800000008000800080800000 1448 80808000C0C0C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000 1449 FFFFFF0000000000000070707707070707070700000000000000788888888888 1450 888888700707070707077878788787887878880007FFFFFFFFFF788787887878 1451 8787887007F0000000007888888888888888880007F08888888878FFFF8FFFF8 1452 FFFF887007F08FFFFFFF7878787878787878780007F08F999999788888888888 1453 8888887007F08FFFFFFF787F0F8FFFF8FFFF880007F08BBBBBBB78FFFF8FFFF8 1454 FFFF887007F08F222222787F7F8FFFF8FFFF880007F08FFFFFFF78FFFF8FFFF8 1455 FFFF887007F08FFFFFFF787F0F8FFFF8FFFF880007FFFFFFFFFF78FFFF8FFFF8 1456 FFFF887007FFFFFFFFFF787F7F8FFFF8FFFF880007FFFFFFFFFF78FFFF8FFFF8 1457 FFFF887007F000000000787F0F8FFFF87F0F880007F08888888878FFFF8FFFF8 1458 FFFF887007F08FFFFFFF787F7F87F0F87F0F880007F08F9FFFFF78FFFF8FFFF8 1459 FFFF887007F08F9FFFFF7888888888888888880007F08FF9FFFF787878878788 1460 7878887007F08FF9FFFF7777777777777777770007F08FFF9FFFFFFFF9FFFF9F 1461 FFF0000007F08FFF9FFFFFFF9FFFFFF9FFF0000007F08FFFF9FFFF99FFFFFFFF 1462 9FF7000007F08FFFF9FF99FFFFFFFFFFF9F0000007F08FFFFF99FFFFFFFFFFFF 1463 FFF7000007F08FFFFFFFFFFFFFFFFFFFFFF0000007FFFFFFFFFFFFFFFFFFFFFF 1464 FFF7000007777777777777777777777777700000000000000000000000000000 1465 00000000FFF00001FFF000018000000180000001800000018000000180000001 1466 8000000180000001800000018000000180000001800000018000000180000001 1467 8000000180000001800000018000000180000001800000018000000180000001 1468 8000000F8000000F8000000F8000000F8000000F8000000F8000000F8000000F 1469 FFFFFFFF} 1470 end 1471 object lblGraphSettings: TStaticText 1472 Left = 13 1473 Top = 145 1474 Width = 79 1475 Height = 17 1476 Caption = 'Default Settings' 1477 TabOrder = 0 1478 end 1479 object btnGraphSettings: TButton 1480 Left = 200 1481 Top = 235 1482 Width = 193 1483 Height = 22 1484 Caption = 'Default Graph Settings...' 1485 TabOrder = 1 1486 OnClick = btnGraphSettingsClick 1487 end 1488 object lblGraphViews: TStaticText 1489 Left = 13 1490 Top = 9 1491 Width = 79 1492 Height = 17 1493 Caption = 'View Definitions' 1494 TabOrder = 2 1495 end 1496 object btnGraphViews: TButton 1497 Left = 200 1498 Top = 100 1499 Width = 193 1500 Height = 22 1501 Caption = 'View Definitions...' 1502 TabOrder = 3 1503 OnClick = btnGraphViewsClick 1504 end 1505 object memGraphSettings: TMemo 1506 Left = 125 1507 Top = 167 1508 Width = 275 1509 Height = 66 1510 TabStop = False 1511 BorderStyle = bsNone 1512 Color = clBtnFace 1513 Lines.Strings = ( 1514 'Configure default settings for graphs. Changes can be ' 1515 'made to the types of data displayed and the styles of ' 1516 'presentation. These settings are saved as your default.') 1517 ReadOnly = True 1518 TabOrder = 4 1519 end 1520 object memGraphViews: TMemo 1521 Left = 125 1522 Top = 27 1523 Width = 275 1524 Height = 68 1525 TabStop = False 1526 Anchors = [akLeft, akTop, akRight] 1527 BorderStyle = bsNone 1528 Color = clBtnFace 1529 Lines.Strings = ( 1530 'Define collections of data as views. Views are used for ' 1531 'common selections of multiple items.') 1532 ReadOnly = True 1533 TabOrder = 5 1263 1534 end 1264 1535 end -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptions.pas
r459 r460 72 72 btnNotesTitles: TButton; 73 73 imgNotesNotes: TImage; 74 Image1: TImage;74 imgNotes: TImage; 75 75 imgTeams: TImage; 76 76 tsCprsReports: TTabSheet; 77 Label1: TStaticText; 78 Bevel1: TBevel; 79 Label3: TMemo; 80 Image2: TImage; 81 Button1: TButton; 82 Label2: TStaticText; 83 Image3: TImage; 84 Label4: TMemo; 85 Button2: TButton; 86 Bevel2: TBevel; 77 lblReports: TStaticText; 78 bvlReports: TBevel; 79 memReports: TMemo; 80 imgReports: TImage; 81 btnReports: TButton; 82 lblReport1: TStaticText; 83 memReport1: TMemo; 84 btnReport1: TButton; 85 bvlReport1: TBevel; 87 86 btnDiagnoses: TButton; 87 tsGraphs: TTabSheet; 88 lblGraphSettings: TStaticText; 89 bvlGraphSettings: TBevel; 90 imgGraphSettings: TImage; 91 btnGraphSettings: TButton; 92 bvlGraphViews: TBevel; 93 lblGraphViews: TStaticText; 94 imgGraphViews: TImage; 95 btnGraphViews: TButton; 96 memGraphSettings: TMemo; 97 memGraphViews: TMemo; 98 bvlReport2: TBevel; 99 lblReport2: TStaticText; 100 memReport2: TMemo; 101 imgReport1: TImage; 102 imgReport2: TImage; 103 rdoRDV: TRadioGroup; 88 104 procedure FormCreate(Sender: TObject); 89 105 procedure FormDestroy(Sender: TObject); … … 108 124 procedure btnNotesNotesClick(Sender: TObject); 109 125 procedure btnNotesTitlesClick(Sender: TObject); 110 procedure Button1Click(Sender: TObject);111 procedure Button2Click(Sender: TObject);126 procedure btnReportsClick(Sender: TObject); 127 procedure btnReport1Click(Sender: TObject); 112 128 procedure lvwNotificationsEnter(Sender: TObject); 113 129 procedure lvwNotificationsMouseDown(Sender: TObject; 114 130 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 115 131 procedure btnDiagnosesClick(Sender: TObject); 132 procedure btnGraphSettingsClick(Sender: TObject); 133 procedure btnGraphViewsClick(Sender: TObject); 134 procedure rdoRDVClick(Sender: TObject); 116 135 private 117 136 { Private declarations } … … 145 164 uses fOptionsDays, fOptionsReminders, fOptionsSurrogate, 146 165 fOptionsPatientSelection, fOptionsLists, fOptionsTeams, fOptionsCombinations, 147 fOptionsOther, fOptionsNotes, fOptionsTitles, fOptionsReportsCustom, fOptionsReportsDefault, rOptions, rCore, uCore, uOptions; 166 fOptionsOther, fOptionsNotes, fOptionsTitles, fOptionsReportsCustom, fOptionsReportsDefault, 167 fGraphs, fGraphSettings, fGraphProfiles, rGraphs, uGraphs, 168 rOptions, rCore, uCore, uOptions, UBACore, fFrame; 148 169 //fTestDialog; 149 170 … … 195 216 tsListsTeams.TabVisible := true; 196 217 ActivePage := tsCoverSheet; 197 Label3.Text := 'Change the default date range and occurrence limits for all reports on ' +218 memReports.Text := 'Change the default date range and occurrence limits for all reports on ' + 198 219 'the CPRS Reports tab (excluding health summary reports) .'; 199 Label4.Text := 'Change the individual date range and occurrence limits for each report on ' +220 memReport1.Text := 'Change the individual date range and occurrence limits for each report on ' + 200 221 'the CPRS Reports tab (excluding health summary reports) .'; 201 Button1.caption := 'Set All Reports...';202 Button2.caption := 'Set Individual Reports...';222 btnReports.caption := 'Set All Reports...'; 223 btnReport1.caption := 'Set Individual Reports...'; 203 224 if User.IsReportsOnly then // For "Reports Only" users. 204 225 begin … … 217 238 if (not User.ToolsRptEdit) then // For users with Reports settings edit parameter not set. 218 239 begin 219 Label3.Text := 'View the default date range and occurrence limits for all reports on ' +240 memReports.Text := 'View the default date range and occurrence limits for all reports on ' + 220 241 'the CPRS Reports tab (excluding health summary reports) .'; 221 Label4.Text := 'View the individual date range and occurrence limits for each report on ' +242 memReport1.Text := 'View the individual date range and occurrence limits for each report on ' + 222 243 'the CPRS Reports tab (excluding health summary reports) .'; 223 Button1.caption := 'View All Report Settings...';224 Button2.caption := 'View Individual Report Settings...';244 btnReports.caption := 'View All Report Settings...'; 245 btnReport1.caption := 'View Individual Report Settings...'; 225 246 end; 226 247 end; … … 249 270 FdirtyOtherStuff := false; 250 271 CheckApply; 251 if not BILLING_AWARE then btnDiagnoses.Enabled := False; 252 if (Encounter.Provider = 0) and not PersonHasKey(Encounter.Provider, 'PROVIDER') then272 273 if (Encounter.Provider = 0) and not IsCIDCProvider(User.DUZ) then 253 274 btnDiagnoses.Enabled := False; 275 if UseVistaWeb then rdoRDV.ItemIndex := 1; 254 276 255 277 end; … … 641 663 end; 642 664 643 procedure TfrmOptions. Button1Click(Sender: TObject);665 procedure TfrmOptions.btnReportsClick(Sender: TObject); 644 666 var 645 667 topsize, leftsize, value: integer; … … 650 672 end; 651 673 652 procedure TfrmOptions. Button2Click(Sender: TObject);674 procedure TfrmOptions.btnReport1Click(Sender: TObject); 653 675 var 654 676 topsize, leftsize, value: integer; … … 678 700 topsize, leftsize, value: integer; 679 701 begin 680 if BILLING_AWARE then {BAV25 Code}702 if IsCIDCProvider(User.DUZ) then //(hds7564) 681 703 begin 682 704 value := 0; … … 686 708 end; 687 709 710 procedure TfrmOptions.btnGraphSettingsClick(Sender: TObject); 711 // display GraphSettings 712 var 713 actiontype: boolean; 714 topsize, leftsize: integer; 715 begin 716 actiontype := false; 717 Offset(topsize, -60, leftsize, -60); 718 DialogOptionsGraphSettings(topsize, leftsize, Font.Size, actiontype); 719 end; 720 721 procedure TfrmOptions.btnGraphViewsClick(Sender: TObject); 722 // display Graph Views 723 var 724 actiontype: boolean; 725 topsize, leftsize: integer; 726 begin 727 actiontype := false; 728 Offset(topsize, -60, leftsize, -60); 729 DialogOptionsGraphProfiles(topsize, leftsize, Font.Size, actiontype); 730 end; 731 732 procedure TfrmOptions.rdoRDVClick(Sender: TObject); 733 var 734 iIndex: integer; 735 begin 736 iIndex := rdoRDV.ItemIndex; 737 with frmFrame do 738 if iIndex = 0 then 739 begin 740 ChangeVistaWebParam('0'); 741 lblCIRN.Caption := ' Remote'; 742 lblCIRNData.Caption := 'Data'; 743 lblCIRNAvail.Caption := ''; 744 lblCIRN.Width := 43; 745 lblCIRNData.Width := 43; 746 lblCIRNData.Alignment := taCenter; 747 lblCIRN.Alignment := taCenter; 748 lstCIRNLocations.Clear; 749 SetUpCIRN; 750 end 751 else 752 begin 753 ChangeVistaWebParam('1'); 754 lblCIRN.Caption := 'Remote'; 755 lblCIRNData.Caption := 'Data*'; //VistaWeb On 756 lblCIRN.Width := 43; 757 lblCIRNData.Width := 43; 758 lblCIRNData.Alignment := taCenter; 759 lblCIRN.Alignment := taCenter; 760 lblCIRN.Enabled := True; 761 lblCIRNData.Enabled := True; 762 pnlCIRN.TabStop := True; 763 if ColorToRGB(clWindowText) = ColorToRGB(clBlack) then 764 begin 765 lblCIRN.Font.Color := clBlue; 766 lblCIRNData.Font.Color := clBlue; 767 lblCIRNAvail.Font.Color := clBlue; 768 lstCIRNLocations.Font.Color := clBlue; 769 end 770 else 771 begin 772 lblCIRN.Font.Color := clWindowText; 773 lblCIRNData.Font.Color := clWindowText; 774 lblCIRNAvail.Font.Color := clWindowText; 775 lstCIRNLocations.Font.Color := clWindowText; 776 end; 777 end; 778 779 end; 780 688 781 end. 689 782 -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsOther.dfm
r459 r460 196 196 end 197 197 object txtTodayMinus: TStaticText 198 Left = 3 2198 Left = 38 199 199 Top = 321 200 Width = 79 201 Height = 17 202 Caption = 'TODAY MINUS' 200 Width = 64 201 Height = 17 202 Alignment = taRightJustify 203 Caption = 'Today minus' 203 204 Color = clBtnFace 204 205 ParentColor = False … … 219 220 end 220 221 object txtDaysMinus: TStaticText 221 Left = 17 6222 Left = 178 222 223 Top = 322 223 Width = 36224 Height = 17 225 Caption = ' DAYS'224 Width = 26 225 Height = 17 226 Caption = 'days' 226 227 Color = clBtnFace 227 228 ParentColor = False … … 244 245 end 245 246 object txtDaysPlus: TStaticText 246 Left = 1 78247 Left = 180 247 248 Top = 374 248 Width = 36249 Height = 17 250 Caption = ' DAYS'249 Width = 26 250 Height = 17 251 Caption = 'days' 251 252 Color = clBtnFace 252 253 ParentColor = False … … 282 283 end 283 284 object txtTodayPlus: TStaticText 284 Left = 4 2285 Left = 46 285 286 Top = 372 286 Width = 72 287 Height = 17 288 Caption = 'TODAY PLUS' 287 Width = 56 288 Height = 17 289 Alignment = taRightJustify 290 Caption = 'Today plus' 289 291 Color = clBtnFace 290 292 ParentColor = False -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsOther.pas
r459 r460 52 52 FstopDt: TFMDateTime; 53 53 FEncStartDays, FEncStopDays, FEncDefStartDays, FEncDefStopDays: integer; 54 FDefaultEvent: string;54 //FDefaultEvent: string; 55 55 public 56 56 { Public declarations } -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsReportsCustom.dfm
r459 r460 1 1 object frmOptionsReportsCustom: TfrmOptionsReportsCustom 2 Left = 4 683 Top = 42 Left = 414 3 Top = 329 4 4 BorderIcons = [biSystemMenu, biHelp] 5 5 BorderStyle = bsDialog -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsReportsCustom.pas
r459 r460 205 205 odbStop.Visible := False; 206 206 edtMax.Visible := False; 207 ShowEditor(grdReport.Col, grdReport.Row, #0); 207 208 end; 208 209 if Key in [#32..#127] then ShowEditor(grdReport.Col, grdReport.Row, Key); 209 210 signal := 0; 210 211 end; 211 212 … … 291 292 begin 292 293 Val(newValue, I, code); 294 if I = 0 then begin end; //added to keep compiler from generating a hint 293 295 if code <> 0 then 294 296 begin -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsReportsDefault.dfm
r459 r460 1 1 object frmOptionsReportsDefault: TfrmOptionsReportsDefault 2 Left = 6043 Top = 1722 Left = 773 3 Top = 334 4 4 BorderIcons = [biSystemMenu, biHelp] 5 5 BorderStyle = bsDialog -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsReportsDefault.pas
r459 r460 200 200 begin 201 201 Val(newValue, I, code); 202 if I = 0 then begin end; //added to keep compiler from generating a hint 202 203 if code <> 0 then 203 204 begin -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsTeams.dfm
r459 r460 208 208 OnClick = cboSubscribeClick 209 209 OnKeyDown = cboSubscribeKeyDown 210 OnMouseClick = cboSubscribeMouseClick 211 CharsNeedMatch = 1 210 212 end 211 213 object mnuPopPatient: TPopupMenu -
cprs/branches/foia-cprs/CPRS-Chart/Options/fOptionsTeams.pas
r459 r460 37 37 procedure cboSubscribeKeyDown(Sender: TObject; var Key: Word; 38 38 Shift: TShiftState); 39 procedure cboSubscribeMouseClick(Sender: TObject); 39 40 private 40 41 FKeyBoarding: boolean; … … 224 225 procedure TfrmOptionsTeams.cboSubscribeClick(Sender: TObject); 225 226 begin 227 FKeyBoarding := False 228 end; 229 230 procedure TfrmOptionsTeams.btnRemoveClick(Sender: TObject); 231 begin 232 with lstTeams do 233 if InfoBox('Do you want to remove yourself from ' 234 + Piece(Items[ItemIndex], '^', 2) + '?', 235 'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then 236 begin 237 rpcRemoveList(ItemIEN); 238 Items.Delete(ItemIndex); 239 lstTeamsClick(self); 240 FillATeams; 241 end; 242 end; 243 244 procedure TfrmOptionsTeams.mnuPatientIDClick(Sender: TObject); 245 begin 246 DisplayPtInfo(lstPatients.ItemID); 247 end; 248 249 procedure TfrmOptionsTeams.lstPatientsMouseDown(Sender: TObject; 250 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 251 begin 252 mnuPopPatient.AutoPopup := (lstPatients.Items.Count > 0) 253 and (lstPatients.ItemIndex > -1) 254 and (Button = mbRight); 255 end; 256 257 procedure TfrmOptionsTeams.cboSubscribeKeyDown(Sender: TObject; 258 var Key: Word; Shift: TShiftState); 259 begin 260 case Key of VK_RETURN: 261 if (cboSubscribe.ItemIndex > -1) then 262 begin 263 FKeyBoarding := False; 264 cboSubscribeMouseClick(self); // Provide onmouseclick behavior. 265 end; 266 else 267 FKeyBoarding := True; // Suppress onmouseclick behavior. 268 end; 269 end; 270 271 procedure TfrmOptionsTeams.cboSubscribeMouseClick(Sender: TObject); 272 begin 226 273 if FKeyBoarding then 227 274 FKeyBoarding := False … … 229 276 begin 230 277 with cboSubscribe do 231 if InfoBox('Do you want to join ' 278 if ItemIndex < 0 then 279 exit 280 else if InfoBox('Do you want to join ' 232 281 + Piece(Items[ItemIndex], '^', 2) + '?', 233 282 'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then … … 249 298 end; 250 299 251 procedure TfrmOptionsTeams.btnRemoveClick(Sender: TObject);252 begin253 with lstTeams do254 if InfoBox('Do you want to remove yourself from '255 + Piece(Items[ItemIndex], '^', 2) + '?',256 'Confirmation', MB_YESNO or MB_ICONQUESTION) = IDYES then257 begin258 rpcRemoveList(ItemIEN);259 Items.Delete(ItemIndex);260 lstTeamsClick(self);261 FillATeams;262 end;263 end;264 265 procedure TfrmOptionsTeams.mnuPatientIDClick(Sender: TObject);266 begin267 DisplayPtInfo(lstPatients.ItemID);268 end;269 270 procedure TfrmOptionsTeams.lstPatientsMouseDown(Sender: TObject;271 Button: TMouseButton; Shift: TShiftState; X, Y: Integer);272 begin273 mnuPopPatient.AutoPopup := (lstPatients.Items.Count > 0)274 and (lstPatients.ItemIndex > -1)275 and (Button = mbRight);276 end;277 278 procedure TfrmOptionsTeams.cboSubscribeKeyDown(Sender: TObject;279 var Key: Word; Shift: TShiftState);280 begin281 case Key of VK_RETURN:282 if (lstTeams.ItemIndex > 0) then283 cboSubscribeClick(self); // Provide onclick behavior.284 else285 FKeyBoarding := True; // Suppress onclick behavior.286 end;287 end;288 289 300 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOCAccept.dfm
r459 r460 11 11 TextHeight = 13 12 12 object memChecks: TRichEdit 13 Left = 8 14 Top = 8 15 Width = 454 16 Height = 120 13 Left = 0 14 Top = 0 15 Width = 472 16 Height = 136 17 Align = alClient 17 18 ReadOnly = True 18 19 ScrollBars = ssVertical 19 TabOrder = 220 TabOrder = 0 20 21 WantReturns = False 21 22 end 22 object cmdAccept: TButton 23 Left = 148 24 Top = 140 25 Width = 80 26 Height = 21 27 Caption = 'Accept Order' 28 Default = True 29 ModalResult = 6 30 TabOrder = 0 31 end 32 object cmdCancel: TButton 33 Left = 244 34 Top = 140 35 Width = 80 36 Height = 21 37 Cancel = True 38 Caption = 'Cancel Order' 39 ModalResult = 7 23 object pnlBottom: TPanel 24 Left = 0 25 Top = 136 26 Width = 472 27 Height = 33 28 Align = alBottom 29 BevelOuter = bvNone 40 30 TabOrder = 1 31 object cmdAccept: TButton 32 Left = 148 33 Top = 7 34 Width = 80 35 Height = 21 36 Caption = 'Accept Order' 37 Default = True 38 ModalResult = 6 39 TabOrder = 0 40 end 41 object cmdCancel: TButton 42 Left = 244 43 Top = 7 44 Width = 80 45 Height = 21 46 Cancel = True 47 Caption = 'Cancel Order' 48 ModalResult = 7 49 TabOrder = 1 50 end 41 51 end 42 52 end -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOCAccept.pas
r459 r460 5 5 uses 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 fAutoSz, StdCtrls, ComCtrls, ORFn ;7 fAutoSz, StdCtrls, ComCtrls, ORFn, ExtCtrls; 8 8 9 9 type 10 10 TfrmOCAccept = class(TfrmAutoSz) 11 11 memChecks: TRichEdit; 12 pnlBottom: TPanel; 12 13 cmdAccept: TButton; 13 14 cmdCancel: TButton; -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOCSession.dfm
r459 r460 1 1 inherited frmOCSession: TfrmOCSession 2 Left = 2203 Top = 3922 Left = 365 3 Top = 221 4 4 Width = 504 5 5 Height = 298 … … 7 7 Caption = 'Order Checks' 8 8 Position = poScreenCenter 9 ShowHint = True 10 OnClose = FormClose 11 OnShow = FormShow 9 12 PixelsPerInch = 96 10 13 TextHeight = 13 11 object lblJustify: TLabel 12 Left = 8 13 Top = 195 14 Width = 248 15 Height = 13 16 Caption = 'Enter justification for overriding critical order checks -' 17 end 18 object lstChecks: TListBox 19 Left = 8 20 Top = 8 21 Width = 480 22 Height = 149 14 object lstChecks: TCaptionListBox 15 Left = 0 16 Top = 0 17 Width = 496 18 Height = 160 19 Style = lbOwnerDrawVariable 20 Align = alClient 23 21 ItemHeight = 13 24 22 MultiSelect = True 25 Style = lbOwnerDrawVariable 26 TabOrder = 0 23 ParentShowHint = False 24 ShowHint = True 25 TabOrder = 1 27 26 OnDrawItem = lstChecksDrawItem 28 27 OnMeasureItem = lstChecksMeasureItem 28 HintOnItem = True 29 29 end 30 object txtJustify: TCaptionEdit 31 Left = 8 32 Top = 209 33 Width = 480 34 Height = 21 35 MaxLength = 80 36 TabOrder = 2 37 Caption = 'Enter justification for overriding critical order checks -' 38 end 39 object cmdCancelOrder: TButton 40 Left = 356 41 Top = 162 42 Width = 133 43 Height = 21 44 Caption = 'Cancel Selected Order(s)' 45 TabOrder = 1 46 OnClick = cmdCancelOrderClick 47 end 48 object cmdContinue: TButton 49 Left = 212 50 Top = 242 51 Width = 72 52 Height = 21 53 Caption = 'Continue' 54 TabOrder = 3 55 OnClick = cmdContinueClick 30 object pnlBottom: TPanel 31 Left = 0 32 Top = 160 33 Width = 496 34 Height = 111 35 Align = alBottom 36 BevelOuter = bvNone 37 TabOrder = 0 38 DesignSize = ( 39 496 40 111) 41 object lblJustify: TLabel 42 Left = 8 43 Top = 34 44 Width = 248 45 Height = 13 46 Anchors = [akLeft, akTop, akRight] 47 Caption = 'Enter justification for overriding critical order checks -' 48 end 49 object txtJustify: TCaptionEdit 50 Left = 8 51 Top = 50 52 Width = 480 53 Height = 21 54 Anchors = [akLeft, akTop, akRight] 55 MaxLength = 80 56 TabOrder = 0 57 OnKeyDown = txtJustifyKeyDown 58 Caption = 'Enter justification for overriding critical order checks -' 59 end 60 object cmdCancelOrder: TButton 61 Left = 356 62 Top = 5 63 Width = 133 64 Height = 21 65 Anchors = [akLeft, akTop, akRight] 66 Caption = 'Cancel Selected Order(s)' 67 TabOrder = 2 68 OnClick = cmdCancelOrderClick 69 end 70 object cmdContinue: TButton 71 Left = 212 72 Top = 82 73 Width = 72 74 Height = 21 75 Anchors = [akLeft, akTop, akRight] 76 Caption = 'Continue' 77 TabOrder = 3 78 OnClick = cmdContinueClick 79 end 56 80 end 57 81 end -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOCSession.pas
r459 r460 5 5 uses 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 fAutoSz, StdCtrls, ORFn, uConst, ORCtrls ;7 fAutoSz, StdCtrls, ORFn, uConst, ORCtrls, ExtCtrls; 8 8 9 9 type 10 10 TfrmOCSession = class(TfrmAutoSz) 11 lstChecks: TListBox; 11 lstChecks: TCaptionListBox; 12 pnlBottom: TPanel; 13 lblJustify: TLabel; 12 14 txtJustify: TCaptionEdit; 13 lblJustify: TLabel;14 15 cmdCancelOrder: TButton; 15 16 cmdContinue: TButton; … … 20 21 procedure lstChecksDrawItem(Control: TWinControl; Index: Integer; 21 22 Rect: TRect; State: TOwnerDrawState); 23 procedure FormClose(Sender: TObject; var Action: TCloseAction); 24 procedure FormShow(Sender: TObject); 25 procedure FormResize(Sender: TObject); 26 procedure txtJustifyKeyDown(Sender: TObject; var Key: Word; 27 Shift: TShiftState); 22 28 private 23 29 FCritical: Boolean; … … 36 42 {$R *.DFM} 37 43 38 uses rOrders, uCore ;44 uses rOrders, uCore, rMisc; 39 45 40 46 type … … 49 55 var 50 56 uCheckedOrders: TList; 57 FOldHintHidePause: integer; 51 58 52 59 constructor TOCRec.Create(const AnID: string); … … 54 61 OrderID := AnID; 55 62 Checks := TStringList.Create; 63 FOldHintHidePause := Application.HintHidePause; 56 64 end; 57 65 58 66 destructor TOCRec.Destroy; 59 67 begin 68 Application.HintHidePause := FOldHintHidePause; 60 69 Checks.Free; 61 70 inherited Destroy; … … 141 150 frmOCSession.SetReqJustify; 142 151 MessageBeep(MB_ICONASTERISK); 152 if frmOCSession.Visible then frmOCSession.SetFocus; 143 153 frmOCSession.ShowModal; 144 154 finally … … 166 176 lblJustify.Visible := FCritical; 167 177 txtJustify.Visible := FCritical; 168 end; 169 170 procedure TfrmOCSession.lstChecksMeasureItem(Control: TWinControl; Index: Integer; 171 178 179 end; 180 181 procedure TfrmOCSession.lstChecksMeasureItem(Control: TWinControl; Index: Integer; var Height: Integer); 172 182 var 173 183 i, AHt, TotalHt: Integer; … … 177 187 begin 178 188 inherited; 189 179 190 with lstChecks do 180 begin 181 if Index >= uCheckedOrders.Count then Exit; 182 OCRec := TOCRec(uCheckedOrders.Items[Index]); 183 ARect := ItemRect(Index); 184 ARect.Left := ARect.Left + 2; 185 AHt := DrawText(Canvas.Handle, PChar(OCRec.OrderText), Length(OCRec.OrderText), ARect, 186 DT_CALCRECT or DT_LEFT or DT_NOPREFIX or DT_WORDBREAK) + 2; 187 TotalHt := AHt; 188 for i := 0 to OCRec.Checks.Count - 1 do 189 begin 190 ARect := ItemRect(Index); 191 ARect.Left := ARect.Left + 10; 192 x := Piece(OCRec.Checks[i], U, 3); 193 AHt := DrawText(Canvas.Handle, PChar(x), Length(x), ARect, 194 DT_CALCRECT or DT_LEFT or DT_NOPREFIX or DT_WORDBREAK); 195 TotalHt := TotalHt + AHt; 196 end; 197 end; 191 begin 192 if Index >= uCheckedOrders.Count then Exit; 193 OCRec := TOCRec(uCheckedOrders.Items[Index]); 194 ARect := ItemRect(Index); 195 ARect.Left := ARect.Left + 2; 196 AHt := DrawText(Canvas.Handle, PChar(OCRec.OrderText), Length(OCRec.OrderText), ARect, DT_CALCRECT or DT_LEFT or DT_NOPREFIX or DT_WORDBREAK or DT_EXTERNALLEADING) + 2; //CQ7178: added DT_EXTERNALLEADING 197 TotalHt := AHt; 198 199 for i := 0 to OCRec.Checks.Count - 1 do 200 begin 201 ARect := ItemRect(Index); 202 ARect.Left := ARect.Left + 10; 203 x := Piece(OCRec.Checks[i], U, 3); 204 AHt := DrawText(Canvas.Handle, PChar(x), Length(x), ARect, DT_CALCRECT or DT_LEFT or DT_NOPREFIX or DT_WORDBREAK or DT_EXTERNALLEADING); //CQ7178: added DT_EXTERNALLEADING 205 TotalHt := TotalHt + AHt; 206 end; 207 end; 198 208 Height := TotalHt + 2; // add 2 for focus rectangle 199 end; 200 201 procedure TfrmOCSession.lstChecksDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; 202 209 if Height > 255 then Height := 255; //CQ7178 210 end; 211 212 procedure TfrmOCSession.lstChecksDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); 203 213 var 204 214 i, AHt: Integer; … … 208 218 begin 209 219 inherited; 220 210 221 with lstChecks do 211 begin 212 if Index >= uCheckedOrders.Count then Exit; 213 OCRec := TOCRec(uCheckedOrders.Items[Index]); 214 ARect := ItemRect(Index); 215 AHt := DrawText(Canvas.Handle, PChar(OCRec.OrderText), Length(OCRec.OrderText), ARect, 216 DT_LEFT or DT_NOPREFIX or DT_WORDBREAK) + 2; 217 ARect.Left := ARect.Left + 10; 218 ARect.Top := ARect.Top + AHt; 219 for i := 0 to OCRec.Checks.Count - 1 do 220 begin 221 x := Piece(OCRec.Checks[i], U, 3); 222 if not (odSelected in State) then 223 begin 224 if (Piece(OCRec.Checks[i], U, 2) = '1') 225 then 222 begin 223 if Index >= uCheckedOrders.Count then Exit; 224 OCRec := TOCRec(uCheckedOrders.Items[Index]); 225 ARect := ItemRect(Index); 226 AHt := DrawText(Canvas.Handle, PChar(OCRec.OrderText), Length(OCRec.OrderText), ARect, DT_LEFT or DT_NOPREFIX or DT_WORDBREAK or DT_EXTERNALLEADING) + 2; //CQ7178: added DT_EXTERNALLEADING 227 ARect.Left := ARect.Left + 10; 228 ARect.Top := ARect.Top + AHt; 229 for i := 0 to OCRec.Checks.Count - 1 do 226 230 begin 227 if ColorToRGB(clWindowText) = ColorToRGB(clBlack) then 228 Canvas.Font.Color := clBlue; 229 Canvas.Font.Style := [fsUnderline]; 230 end 231 else Canvas.Font.Color := clWindowText; 232 end; 233 AHt := DrawText(Canvas.Handle, PChar(x), Length(x), ARect, 234 DT_LEFT or DT_NOPREFIX or DT_WORDBREAK); 235 ARect.Top := ARect.Top + AHt; 236 end; 237 end; 231 x := Piece(OCRec.Checks[i], U, 3); 232 if not (odSelected in State) then 233 begin 234 if (Piece(OCRec.Checks[i], U, 2) = '1') then 235 begin 236 if ColorToRGB(clWindowText) = ColorToRGB(clBlack) then 237 Canvas.Font.Color := clBlue; 238 Canvas.Font.Style := [fsUnderline]; 239 end 240 else Canvas.Font.Color := clWindowText; 241 end; 242 AHt := DrawText(Canvas.Handle, PChar(x), Length(x), ARect, DT_LEFT or DT_NOPREFIX or DT_WORDBREAK or DT_EXTERNALLEADING); //CQ7178: added DT_EXTERNALLEADING 243 ARect.Top := ARect.Top + AHt; 244 end; 245 end; 246 238 247 end; 239 248 … … 268 277 if FCritical and ((Length(txtJustify.Text) < 2) or not ContainsVisibleChar(txtJustify.Text)) then 269 278 begin 270 InfoBox('A justification for overriding critical order checks is required.',279 InfoBox('A justification for overriding critical order checks is required.', 271 280 'Justification Required', MB_OK); 272 281 Exit; … … 278 287 end; 279 288 289 procedure TfrmOCSession.FormClose(Sender: TObject; 290 var Action: TCloseAction); 291 begin 292 inherited; 293 SaveUserBounds(Self); //Save Position & Size of Form 294 end; 295 296 procedure TfrmOCSession.FormShow(Sender: TObject); 297 begin 298 inherited; 299 SetFormPosition(Self); //Get Saved Position & Size of Form 300 end; 301 302 303 procedure TfrmOCSession.FormResize(Sender: TObject); 304 begin 305 //TfrmAutoSz has defect must call inherited Resize for the resize to function. 306 inherited; 307 end; 308 309 procedure TfrmOCSession.txtJustifyKeyDown(Sender: TObject; var Key: Word; 310 Shift: TShiftState); 311 begin 312 inherited; 313 //GE CQ9540 activate Return key, behave as "Continue" buttom clicked. 314 if Key = VK_RETURN then cmdContinueClick(self); 315 end; 316 280 317 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODAllgy.dfm
r459 r460 184 184 TabOrder = 3 185 185 OnChange = ControlChange 186 CharsNeedMatch = 1 186 187 end 187 188 object grpObsHist: TRadioGroup … … 260 261 OnChange = ControlChange 261 262 OnNeedData = cboOriginatorNeedData 263 CharsNeedMatch = 1 262 264 end 263 265 object cboSymptoms: TORComboBox … … 285 287 OnMouseClick = cboSymptomsMouseClick 286 288 OnNeedData = cboSymptomsNeedData 289 CharsNeedMatch = 1 287 290 end 288 291 object btnCurrent: TButton … … 328 331 TabOrder = 11 329 332 OnChange = ControlChange 333 CharsNeedMatch = 1 330 334 end 331 335 object btnRemove: TButton -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODAllgy.pas
r459 r460 496 496 497 497 procedure TfrmODAllergy.cboSymptomsMouseClick(Sender: TObject); 498 var 499 x: string; 498 500 begin 499 501 inherited; … … 501 503 Changing := True; 502 504 if lstSelectedSymptoms.SelectByID(cboSymptoms.ItemID) > -1 then exit; 505 with cboSymptoms do 506 if Piece(Items[ItemIndex], U, 3) <> '' then 507 x := ItemID + U + Piece(Items[ItemIndex], U, 3) 508 else 509 x := ItemID + U + Piece(Items[ItemIndex], U, 2); 503 510 with lstSelectedSymptoms do 504 511 begin 505 Items.Add( cboSymptoms.Items[cboSymptoms.ItemIndex]);512 Items.Add(x); 506 513 SelectByID(cboSymptoms.ItemID); 507 514 end; -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODAuto.pas
r459 r460 24 24 25 25 uses rODBase, rOrders, fTemplateDialog, uTemplateFields, rTemplates, uConst, uTemplates, 26 rConsults ;26 rConsults, uCore, uODBase; 27 27 28 28 procedure TfrmODAuto.InitDialog; … … 38 38 LType: TTemplateLinkType; 39 39 IEN: integer; 40 HasObjects: boolean; 40 41 41 42 begin … … 44 45 LType := DisplayGroupToLinkType(Responses.DisplayGroup); 45 46 tmp := Responses.EValueFor('COMMENT', 1); 47 ExpandOrderObjects(tmp, HasObjects); 48 Responses.OrderContainsObjects := Responses.OrderContainsObjects or HasObjects; 46 49 if (LType <> ltNone) or HasTemplateField(tmp) then 47 50 begin … … 56 59 else 57 60 CheckBoilerplate4Fields(tmp, cptn); 58 61 59 62 if tmp <> '' then 60 63 Responses.Update('COMMENT', 1, TX_WPTYPE, tmp) -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODBase.dfm
r459 r460 4 4 Width = 528 5 5 Height = 275 6 HorzScrollBar.Range = 500 7 HorzScrollBar.Tracking = True 8 HorzScrollBar.Visible = True 9 VertScrollBar.Range = 225 10 VertScrollBar.Visible = True 11 AutoScroll = False 6 12 BorderIcons = [biSystemMenu] 7 13 Caption = '' -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODBase.pas
r459 r460 62 62 FLogTime: TFMDateTime; 63 63 FViewName: string; 64 FCancel: boolean; 65 FOrderContainsObjects: boolean; 64 66 function FindResponseByIEN(APromptIEN, AnInstance: Integer): TResponse; 65 67 function GetOrderText: string; … … 83 85 function GetIENForPrompt(const APromptID: string): Integer; 84 86 function FindResponseByName(const APromptID: string; AnInstance: Integer): TResponse; 87 function PromptExists(const APromptID: string):boolean; 85 88 function InstanceCount(const APromptID: string): Integer; 86 89 function IValueFor(const APromptID: string; AnInstance: Integer): string; … … 96 99 const AnIValue, AnEValue: string); 97 100 property Dialog: string read FDialog write SetDialog; 98 property DisplayGroup: Integer read FDisplayGroup ;101 property DisplayGroup: Integer read FDisplayGroup write FDisplayGroup; 99 102 property CopyOrder: string read FCopyOrder write SetCopyOrder; 100 103 property EditOrder: string read FEditOrder; // write SetEditOrder; … … 110 113 property VarTrailing: string read FVarTrailing write FVarTrailing; 111 114 property TheList: TList read FResponseList write FResponseList; 115 property Cancel: boolean read FCancel write FCancel; 116 property OrderContainsObjects: boolean read FOrderContainsObjects write FOrderContainsObjects; 112 117 end; 113 118 … … 241 246 uses fOCAccept, uODBase, rCore, rMisc, fODMessage, 242 247 fTemplateDialog, uEventHooks, uTemplates, rConsults,fOrders,uOrders, 243 fFrame, uTemplateFields ;248 fFrame, uTemplateFields, fClinicWardMeds; 244 249 245 250 const … … 583 588 procedure TResponses.SetCopyOrder(const AnID: string); 584 589 { sets responses to the values for an order that is created by copying } 590 var 591 HasObjects: boolean; 585 592 begin 586 593 if AnID = '' then … … 590 597 end; 591 598 Clear; 592 LoadResponses(FResponseList, AnID ); // Example AnID=C123456;1-3604599 LoadResponses(FResponseList, AnID, HasObjects); // Example AnID=C123456;1-3604 593 600 FCopyOrder := Copy(Piece(AnID, '-', 1), 2, Length(AnID)); 601 FOrderContainsObjects := HasObjects; 594 602 end; 595 603 596 604 procedure TResponses.SetEditOrder(const AnID: string); 597 605 { sets responses to the values for an order that is about to be edited } 606 var 607 HasObjects: boolean; 598 608 begin 599 609 Clear; 600 LoadResponses(FResponseList, AnID ); // Example AnID=X123456;1610 LoadResponses(FResponseList, AnID, HasObjects); // Example AnID=X123456;1 601 611 FEditOrder := Copy(Piece(AnID, '-', 1), 2, Length(AnID)); 612 FOrderContainsObjects := HasObjects; 602 613 end; 603 614 604 615 procedure TResponses.SetQuickOrder(AnIEN: Integer); 605 616 { sets responses to a quick order value - this is used by the QuickOrder property} 617 var 618 HasObjects: boolean; 606 619 begin 607 620 Clear; 608 LoadResponses(FResponseList, IntToStr(AnIEN) ); // Example AnIEN=134621 LoadResponses(FResponseList, IntToStr(AnIEN), HasObjects); // Example AnIEN=134 609 622 FQuickOrder := AnIEN; 623 FOrderContainsObjects := HasObjects; 610 624 end; 611 625 612 626 procedure TResponses.SetQuickOrderByID(const AnID: string); 613 627 { sets responses to a quick order value } 628 var 629 HasObjects: boolean; 614 630 begin 615 631 Clear; 616 LoadResponses(FResponseList, AnID ); // Example AnID=134-3645632 LoadResponses(FResponseList, AnID, HasObjects); // Example AnID=134-3645 617 633 FQuickOrder := StrToIntDef(Piece(AnID, '-', 1), 0); // 2nd '-' piece is $H seconds 634 FOrderContainsObjects := HasObjects; 618 635 end; 619 636 … … 671 688 break; 672 689 end; 690 end; 691 692 function TResponses.PromptExists(const APromptID: string): boolean; 693 var 694 i: Integer; 695 begin 696 Result := False; 697 with FPrompts do for i := 0 to Count - 1 do with TPrompt(Items[i]) do 698 if (ID = APromptID) then Result := True; 673 699 end; 674 700 … … 958 984 APtEvtPtr: string; 959 985 begin 986 //IMOLoc := 0; 960 987 NewPtEvtPtr := 0; 961 988 QOUDGroup := False; … … 984 1011 if IsIMODialog then 985 1012 DGroup := ClinDisp; 1013 //AGP Change 26.35, 26.41 8518 added text order 1014 //AGP Change 26.55 remove IMO functionality for inpatient 1015 (*if (Patient.Inpatient = true) and (IsValidIMOLoc(encounter.Location,Patient.DFN)=true) and 1016 ((ConstructOrder.DialogName = 'PSJ OR PAT OE') or (ConstructOrder.DialogName = 'PSJI OR PAT FLUID OE') or 1017 (ConstructOrder.DialogName = 'OR GXTEXT WORD PROCESSING ORDE')) and 1018 ((FEditOrder = '') and (Self.FEventName = '') and (Self.FCopyOrder = '')) then 1019 begin 1020 if frmClinicWardMeds.ClinicOrWardLocation(Encounter.location) = Encounter.Location then 1021 begin 1022 ConstructOrder.IsIMODialog := True; 1023 ConstructOrder.DGroup := ClinDisp; 1024 end 1025 else IMOLoc := Patient.Location; 1026 end; *) 1027 //AGP Change 26.51, change logic to set text orders to IMO for outpatients at an outpatient location. 1028 //AGP Text orders are only treated as IMO if the order display group is a nursing display group 1029 if (Patient.Inpatient = False) and (IsValidIMOLoc(encounter.Location,Patient.DFN)=true) and 1030 (((pos('OR GXTEXT WORD PROCESSING ORDE',ConstructOrder.DialogName)>0) and (ConstructOrder.DGroup = NurDisp)) or 1031 ((ConstructOrder.DialogName = 'OR GXMISC GENERAL') and (ConstructOrder.DGroup = NurDisp)) or 1032 ((ConstructOrder.DialogName = 'OR GXTEXT TEXT ONLY ORDER') and (ConstructOrder.DGroup = NurDisp))) and //AGP Change CQ #10757 1033 ((FEditOrder = '') and (Self.FEventName = '') and (Self.FCopyOrder = '')) then 1034 begin 1035 ConstructOrder.IsIMODialog := True; 1036 ConstructOrder.DGroup := ClinDisp; 1037 end; 986 1038 IsEventDefaultOR := EventDefaultOD; 987 1039 if IsUDGroup or QOUDGroup then … … 1003 1055 APtEvtPtr := IntToStr(EventExist(Patient.DFN, FEventIFN)); 1004 1056 PTEventPtr := APtEvtPtr; 1057 //PutNewOrder(AnOrder, ConstructOrder, OrderSource, IMOLoc); 1005 1058 PutNewOrder(AnOrder, ConstructOrder, OrderSource); 1006 1059 if not SaveAsCurrent then … … 1012 1065 else 1013 1066 begin 1067 //PutNewOrder(AnOrder, ConstructOrder, OrderSource, IMOLoc); 1014 1068 PutNewOrder(AnOrder, ConstructOrder, OrderSource); 1015 1069 if not SaveAsCurrent then … … 1064 1118 AResponse: TResponse; 1065 1119 IEN: integer; 1120 HasObjects: boolean; 1066 1121 1067 1122 procedure AssignBPText(List: TStrings; const Value: string); … … 1080 1135 else IEN := 0; 1081 1136 end; 1137 ExpandOrderObjects(tmp, HasObjects); 1138 FOrderContainsObjects := FOrderContainsObjects or HasObjects; 1082 1139 if IEN <> 0 then 1083 1140 begin … … 1091 1148 else 1092 1149 CheckBoilerplate4Fields(tmp, cptn); 1093 1094 1150 List.Text := tmp; 1095 1151 end; … … 1326 1382 if (Encounter.Provider = 0) or (PersonHasKey(Encounter.Provider, 'PROVIDER') = False) 1327 1383 then AnErrMsg := TX_NO_PROVIDER; 1384 if IsPFSSActive and Responses.PromptExists('VISITSTR') then 1385 Responses.Update('VISITSTR', 1, Encounter.VisitStr, Encounter.VisitStr); 1328 1386 end; 1329 1387 … … 1432 1490 if not AcceptOrderChecks then 1433 1491 begin 1492 if AskAnotherOrder(DialogIEN) then 1493 InitDialog // ClearDialogControls is in InitDialog 1494 else 1495 begin 1496 ClearDialogControls; // to allow form to close without prompting to save order 1497 Close; 1498 end; 1434 1499 Result := False; 1435 1500 Exit; … … 1497 1562 CIDCOkToSave := False; 1498 1563 alreadyClosed := False; 1564 self.Responses.Cancel := False; 1499 1565 if frmOrders <> nil then 1500 1566 begin … … 1589 1655 begin 1590 1656 inherited; 1657 //self.Responses.Cancel := False; 1591 1658 if User.NoOrdering then Exit; 1592 1659 if FAbortOrder then exit; … … 1726 1793 end; 1727 1794 1795 1728 1796 end. 1729 1797 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODDiet.dfm
r459 r460 1 1 inherited frmODDiet: TfrmODDiet 2 Left = 404 3 Top = 199 2 Left = 541 3 Top = 398 4 Width = 532 5 Height = 291 4 6 Caption = 'Diet Order' 5 7 OnKeyDown = FormKeyDown … … 9 11 Left = 0 10 12 Top = 0 11 Width = 52 012 Height = 1 8613 Width = 524 14 Height = 194 13 15 ActivePage = pgeOutPt 14 16 Align = alTop … … 86 88 OnMouseClick = cboDietAvailMouseClick 87 89 OnNeedData = cboDietAvailNeedData 90 CharsNeedMatch = 1 88 91 end 89 92 object lstDietSelect: TORListBox … … 165 168 TabOrder = 6 166 169 OnChange = DietChange 170 CharsNeedMatch = 1 167 171 end 168 172 object chkCancelTubefeeding: TCheckBox … … 195 199 end 196 200 object lblOPDietAvail: TLabel 197 Left = 127198 Top = 0201 Left = 0 202 Top = 1 199 203 Width = 70 200 204 Height = 13 … … 203 207 object lblOPComment: TLabel 204 208 Left = 4 205 Top = 1 17209 Top = 128 206 210 Width = 92 207 211 Height = 13 … … 216 220 end 217 221 object lblOPSelect: TLabel 218 Left = 127219 Top = 3 8222 Left = 0 223 Top = 39 220 224 Width = 64 221 225 Height = 13 … … 223 227 end 224 228 object grpOPMeal: TKeyClickRadioGroup 225 Left = 5226 Top = 5229 Left = 168 230 Top = 11 227 231 Width = 110 228 232 Height = 107 … … 234 238 'Evening' 235 239 '<none selected>') 236 TabOrder = 0240 TabOrder = 3 237 241 TabStop = True 238 242 OnClick = grpOPMealClick … … 242 246 Top = 5 243 247 Width = 93 244 Height = 1 49248 Height = 155 245 249 Caption = 'Days of Week' 246 250 TabOrder = 8 … … 334 338 end 335 339 object cboOPDietAvail: TORComboBox 336 Left = 127337 Top = 1 5340 Left = 0 341 Top = 16 338 342 Width = 157 339 343 Height = 21 … … 341 345 AutoSelect = True 342 346 Caption = 'Available Diet Components' 343 Color = clWindow344 DropDownCount = 8345 ItemHeight = 13346 ItemTipColor = clWindow347 ItemTipEnable = True348 ListItemsOnly = True349 LongList = True350 LookupPiece = 0351 MaxLength = 0352 Pieces = '2'353 Sorted = False354 SynonymChars = '<>'355 TabOrder = 1356 OnExit = cboDietAvailExit357 OnMouseClick = cboOPDietAvailMouseClick358 OnNeedData = cboOPDietAvailNeedData359 end360 object txtOPDietComment: TCaptionEdit361 Left = 4362 Top = 131363 Width = 404364 Height = 21365 MaxLength = 80366 TabOrder = 11367 OnChange = OPChange368 Caption = 'Special Instructions'369 end370 object cboOPDelivery: TORComboBox371 Left = 292372 Top = 86373 Width = 120374 Height = 21375 Style = orcsDropDown376 AutoSelect = True377 Caption = 'Delivery'378 347 Color = clWindow 379 348 DropDownCount = 8 … … 388 357 Sorted = False 389 358 SynonymChars = '<>' 390 TabOrder = 9 359 TabOrder = 0 360 OnExit = cboDietAvailExit 361 OnKeyDown = cboOPDietAvailKeyDown 362 OnMouseClick = cboOPDietAvailMouseClick 363 CharsNeedMatch = 1 364 end 365 object txtOPDietComment: TCaptionEdit 366 Left = 3 367 Top = 143 368 Width = 404 369 Height = 21 370 MaxLength = 80 371 TabOrder = 11 391 372 OnChange = OPChange 373 Caption = 'Special Instructions' 374 end 375 object cboOPDelivery: TORComboBox 376 Left = 292 377 Top = 86 378 Width = 120 379 Height = 21 380 Style = orcsDropDown 381 AutoSelect = True 382 Caption = 'Delivery' 383 Color = clWindow 384 DropDownCount = 8 385 ItemHeight = 13 386 ItemTipColor = clWindow 387 ItemTipEnable = True 388 ListItemsOnly = True 389 LongList = False 390 LookupPiece = 0 391 MaxLength = 0 392 Pieces = '2' 393 Sorted = False 394 SynonymChars = '<>' 395 TabOrder = 6 396 OnChange = OPChange 397 CharsNeedMatch = 1 392 398 end 393 399 object lstOPDietSelect: TORListBox 394 Left = 127395 Top = 5 2400 Left = 0 401 Top = 53 396 402 Width = 156 397 403 Height = 56 … … 399 405 ParentShowHint = False 400 406 ShowHint = True 401 TabOrder = 2407 TabOrder = 1 402 408 Caption = 'Selected Diet Components' 403 409 ItemTipColor = clWindow 404 410 LongList = False 405 411 Pieces = '2' 412 OnChange = OPChange 406 413 end 407 414 object cmdOPRemove: TButton 408 Left = 212409 Top = 1 09415 Left = 85 416 Top = 110 410 417 Width = 72 411 418 Height = 17 412 419 Caption = 'Remove' 413 TabOrder = 3420 TabOrder = 2 414 421 OnClick = cmdOPRemoveClick 415 422 end … … 421 428 Caption = 'Cancel Tubefeeding' 422 429 State = cbGrayed 423 TabOrder = 10430 TabOrder = 7 424 431 Visible = False 425 OnClick = DietChange432 OnClick = OPChange 426 433 end 427 434 end … … 469 476 Height = 13 470 477 Caption = 'Amount' 478 end 479 object lblOPTFStart: TLabel 480 Left = 341 481 Top = 90 482 Width = 51 483 Height = 13 484 Caption = 'Start Date:' 471 485 end 472 486 object cboProduct: TORComboBox … … 493 507 OnExit = cboProductExit 494 508 OnMouseClick = cboProductMouseClick 509 CharsNeedMatch = 1 495 510 end 496 511 object txtTFComment: TCaptionEdit 497 Left = 4512 Left = 6 498 513 Top = 133 499 514 Width = 504 500 515 Height = 21 501 516 MaxLength = 240 502 TabOrder = 6517 TabOrder = 8 503 518 OnChange = TFChange 504 519 Caption = 'Special Instructions' … … 542 557 object txtQuantity: TCaptionEdit 543 558 Tag = -1 544 Left = 340545 Top = 1 08559 Left = 151 560 Top = 124 546 561 Width = 93 547 562 Height = 19 548 563 Hint = 549 'Enter quantity as 2000 K, 100 CC/HOUR, 8 OZ/TID, etc; total quan' +550 'tity may not exceed 5000 cc.'564 'Enter quantity as 2000 K, 100 ML/HOUR, 8 OZ/TID, etc; total quan' + 565 'tity may not exceed 5000ml.' 551 566 Ctl3D = False 552 567 ParentCtl3D = False … … 563 578 object cboStrength: TCaptionComboBox 564 579 Tag = -1 565 Left = 444566 Top = 1 08580 Left = 252 581 Top = 124 567 582 Width = 53 568 583 Height = 21 … … 583 598 'FULL') 584 599 Caption = 'Strength' 600 end 601 object calOPTFStart: TORDateBox 602 Left = 341 603 Top = 104 604 Width = 169 605 Height = 21 606 TabStop = False 607 TabOrder = 7 608 Visible = False 609 OnChange = TFChange 610 DateOnly = False 611 RequireTime = False 612 Caption = 'Start Date:' 613 end 614 object cboOPTFRecurringMeals: TORComboBox 615 Left = 342 616 Top = 105 617 Width = 160 618 Height = 21 619 Style = orcsDropDown 620 AutoSelect = True 621 Color = clWindow 622 DropDownCount = 8 623 ItemHeight = 13 624 ItemTipColor = clWindow 625 ItemTipEnable = True 626 ListItemsOnly = False 627 LongList = False 628 LookupPiece = 0 629 MaxLength = 0 630 Pieces = '2,3' 631 Sorted = False 632 SynonymChars = '<>' 633 TabPositions = '12' 634 TabOrder = 6 635 TabStop = True 636 OnChange = TFChange 637 CharsNeedMatch = 1 585 638 end 586 639 end … … 705 758 Width = 120 706 759 Height = 21 707 TabOrder = 3760 TabOrder = 4 708 761 OnChange = calELStopChange 709 762 DateOnly = True … … 717 770 Height = 152 718 771 Caption = 'Days of Week' 719 TabOrder = 4772 TabOrder = 5 720 773 object chkMonday: TCheckBox 721 774 Left = 8 … … 788 841 Height = 17 789 842 Caption = 'Bagged Meal' 790 TabOrder = 5843 TabOrder = 6 791 844 OnClick = ELChange 845 end 846 object cboOPELRecurringMeals: TORComboBox 847 Left = 287 848 Top = 15 849 Width = 121 850 Height = 21 851 Style = orcsDropDown 852 AutoSelect = True 853 Color = clWindow 854 DropDownCount = 8 855 ItemHeight = 13 856 ItemTipColor = clWindow 857 ItemTipEnable = True 858 ListItemsOnly = False 859 LongList = False 860 LookupPiece = 0 861 MaxLength = 0 862 Pieces = '2,3' 863 Sorted = False 864 SynonymChars = '<>' 865 TabPositions = '12' 866 TabOrder = 3 867 TabStop = True 868 OnChange = ELChange 869 CharsNeedMatch = 1 792 870 end 793 871 end … … 861 939 Caption = 'Enter Additional Diet Order' 862 940 end 941 object lblOPAOStart: TLabel 942 Left = 6 943 Top = 72 944 Width = 51 945 Height = 13 946 Caption = 'Start Date:' 947 end 863 948 object txtAOComment: TCaptionEdit 864 949 Left = 4 … … 867 952 Height = 21 868 953 MaxLength = 80 869 TabOrder = 0954 TabOrder = 1 870 955 OnChange = AOChange 871 956 Caption = 'Enter Additional Diet Order' 872 957 end 958 object calOPAOStart: TORDateBox 959 Left = 54 960 Top = 88 961 Width = 169 962 Height = 21 963 TabStop = False 964 TabOrder = 4 965 Visible = False 966 OnChange = AOChange 967 DateOnly = False 968 RequireTime = False 969 Caption = 'Start Date:' 970 end 971 object cboOPAORecurringMeals: TORComboBox 972 Left = 6 973 Top = 88 974 Width = 168 975 Height = 21 976 Style = orcsDropDown 977 AutoSelect = True 978 Color = clWindow 979 DropDownCount = 8 980 ItemHeight = 13 981 ItemTipColor = clWindow 982 ItemTipEnable = True 983 ListItemsOnly = False 984 LongList = False 985 LookupPiece = 0 986 MaxLength = 0 987 Pieces = '2,3' 988 Sorted = False 989 SynonymChars = '<>' 990 TabPositions = '12' 991 TabOrder = 2 992 TabStop = True 993 OnChange = AOChange 994 CharsNeedMatch = 1 995 end 873 996 end 874 997 end 998 inherited memOrder: TCaptionMemo 999 Top = 208 1000 end 875 1001 inherited cmdAccept: TButton 1002 Left = 445 1003 Top = 208 876 1004 TabOrder = 2 877 1005 end 878 1006 inherited cmdQuit: TButton 1007 Left = 445 1008 Top = 235 879 1009 TabOrder = 3 880 1010 end 881 1011 inherited pnlMessage: TPanel 882 Top = 1 721012 Top = 197 883 1013 Height = 57 884 1014 TabOrder = 1 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODDiet.pas
r459 r460 96 96 cmdOPRemove: TButton; 97 97 chkOPCancelTubefeeding: TCheckBox; 98 calOPTFStart: TORDateBox; 99 lblOPTFStart: TLabel; 100 lblOPAOStart: TLabel; 101 calOPAOStart: TORDateBox; 102 cboOPAORecurringMeals: TORComboBox; 103 cboOPTFRecurringMeals: TORComboBox; 104 cboOPELRecurringMeals: TORComboBox; 98 105 procedure nbkDietChanging(Sender: TObject; 99 106 var AllowChange: Boolean); … … 137 144 procedure FormKeyDown(Sender: TObject; var Key: Word; 138 145 Shift: TShiftState); 139 // Outpatient meal additions140 procedure cboOPDietAvailNeedData(Sender: TObject;141 const StartFrom: String; Direction, InsertAt: Integer);142 146 procedure cboOPDietAvailMouseClick(Sender: TObject); 143 147 procedure cboOPDietAvailExit(Sender: TObject); … … 149 153 procedure grpOPMealClick(Sender: TObject); 150 154 procedure cmdOPRemoveClick(Sender: TObject); 155 procedure cboOPDietAvailKeyDown(Sender: TObject; var Key: Word; 156 Shift: TShiftState); 151 157 private 152 158 FNextCol: Integer; … … 177 183 function TFStrengthCode(const x: string): Integer; 178 184 // Outpatient meal additions 185 function FMDOW(AnFMDate: TFMDateTime): integer; 186 function FMDays(AStart, AEnd: TFMDateTime): string; 179 187 function GetOPDaysOfWeek: string; 180 procedure SetEnableOPDOW(AllowUse: Boolean );188 procedure SetEnableOPDOW(AllowUse: Boolean; OneTimeDay: integer; DaysToCheck: string = ''); 181 189 procedure ResetControlsOP; 182 190 procedure SetValuesFromResponsesOP; … … 184 192 procedure OPDietCheckForNPO; 185 193 procedure OPDietCheckForTF; 194 function PatientHasRecurringMeals(var MealList: TStringList; MealType: string = ''): boolean; 186 195 protected 187 196 procedure InitDialog; override; … … 195 204 uDialogName: string; 196 205 uFHAUTH: boolean; 206 uRecurringMealList: TStringList; 197 207 198 208 implementation … … 200 210 {$R *.DFM} 201 211 202 uses uCore, rODBase, rODDiet, rCore, rOrders, fODDietLT, uAccessibleStringGrid ;212 uses uCore, rODBase, rODDiet, rCore, rOrders, fODDietLT, uAccessibleStringGrid, DateUtils; 203 213 204 214 const … … 209 219 TX_DIET_PRC = 'This diet conflicts with '; 210 220 TC_DIET_ERR = 'Unable to Add Diet'; 211 TX_INPT_ONLY = 'Diets may be entered for inpatients only.'; 212 //TX_INPT_ONLY = 'This type of diet may be entered for inpatients only.'; 221 TX_INPT_ONLY = 'This type of diet may be entered for inpatients only.'; 213 222 TC_INPT_ONLY = 'Ordering Restriction'; 214 223 TX_CANCEL_TF = 'Cancel the current tubefeeding order?' + CRLF + CRLF; … … 221 230 TX_TFQTY = 'A quantity must be entered for '; 222 231 TX_TFAMT = 'The quantity is invalid for '; 223 TX_TF5000 = 'The total quantity ordered may not exceed 5000 cc.';232 TX_TF5000 = 'The total quantity ordered may not exceed 5000ml.'; 224 233 TX_HLPQTY = CRLF + 'The following may be entered for quantity:' + CRLF + 225 ' Units may be K for Kcals, C for cc''s, O for oz. or U for units (e.g. cans).' + CRLF +234 ' Units may be K for Kcals, C for cc''s, M for ml, O for oz. or U for units (e.g. cans).' + CRLF + 226 235 ' Frequency may be DAY, HOUR, QD, QH, BID, TID, QID, Q2H, Q3H, Q4H, or Q6H.' + CRLF + 227 236 ' May also input 100CC/HR X 16 for 16 hours. Valid quantity for powder form' + CRLF + … … 242 251 TX_AONONE = 'Text for additional order has not been entered.'; 243 252 TX_ACCEPT = 'Accept the following order?' + CRLF + CRLF; 253 TX_CONTINUE = 'Continue editing the following order?' + CRLF + CRLF; 254 TX_DISCARD = CRLF + CRLF + 'Answering NO will discard all changes.'; 244 255 TC_ACCEPT = 'Unsaved Order'; 245 256 TX_EL_SAVE_ERR = 'An error occurred while saving this late tray order.'; … … 274 285 'coordinator enters times for E/L trays for this location.'; 275 286 TC_NO_PARAMS = 'Unable to Order Early/Late Tray'; 287 TX_NOSTART = 'A valid start date must be entered.'; 288 TC_NOSTART = 'Start date required'; 289 TX_NOT_THIS_LOC = 'This location has not been configured to' + CRLF + 290 'allow ordering of meals for outpatients.' + CRLF + CRLF + 291 'Please contact your IRM diet package coordinator.'; 292 TC_NOT_THIS_LOC = 'Unable to order from this location'; 293 TX_NO_OUTPT_ORDERS = 'Diet orders may only be entered for inpatients.'; 294 TC_NO_OUTPT_ORDERS = 'Ordering Restriction'; 295 TX_NO_MEALS_DEFINED = 'No diet types have been defined to be orderable for outpatients.' + CRLF + CRLF + 296 'Please contact your IRM diet package coordinator.'; 297 TC_NO_MEALS_DEFINED = 'Unable to order outpatient meals'; 298 299 FMDayLetters: array[1..7] of string[1] = ('M', 'T', 'W', 'R', 'F', 'S', 'X'); 276 300 277 301 type … … 290 314 begin 291 315 inherited; 316 AbortOrder := False; 317 uRecurringMealList := TStringList.Create; 292 318 if OrderForInpatient then 293 319 begin … … 302 328 else // this block will go away after FH patch installed everywhere 303 329 begin 304 InfoBox(TX_ INPT_ONLY, TC_INPT_ONLY, MB_OK);305 Close;330 InfoBox(TX_NO_OUTPT_ORDERS, TC_NO_OUTPT_ORDERS, MB_OK); 331 AbortOrder := True; 306 332 Exit; 307 333 end; … … 313 339 if StrToIntDef(ALocation, 0) < 1 then 314 340 ALocation := IntToStr(Encounter.Location); 315 LoadDietParams(uDietParams, ALocation); 316 if pgeOutPt.TabVisible then 317 with uDietParams, cboOPDelivery do 318 begin 319 if Tray then Items.Add('T^Tray'); 320 if Cafeteria then Items.Add('C^Cafeteria'); 321 if DiningRm then Items.Add('D^Dining Room'); 322 //if Bagged then Items.Add('B^Bagged'); // ???? 323 ItemIndex := 0; 324 chkBagged.Visible := uDietParams.Bagged; // ???? 341 if (not OrderForInpatient) and OutpatientPatchInstalled and (not OutpatientLocationConfigured(ALocation)) then 342 begin 343 InfoBox(TX_NOT_THIS_LOC, TC_NOT_THIS_LOC, MB_OK or MB_ICONINFORMATION); 344 AbortOrder := True; 325 345 end 326 346 else 327 with uDietParams, cboDelivery do 328 begin 329 if Tray then Items.Add('T^Tray'); 330 if Cafeteria then Items.Add('C^Cafeteria'); 331 if DiningRm then Items.Add('D^Dining Room'); 332 ItemIndex := 0; 333 chkBagged.Visible := uDietParams.Bagged; 347 begin 348 LoadDietParams(uDietParams, ALocation); 349 if pgeOutPt.TabVisible then 350 with uDietParams, cboOPDelivery do 351 begin 352 if Tray then Items.Add('T^Tray'); 353 if Cafeteria then Items.Add('C^Cafeteria'); 354 if DiningRm then Items.Add('D^Dining Room'); 355 ItemIndex := 0; 356 chkBagged.Visible := uDietParams.Bagged; 357 end 358 else 359 with uDietParams, cboDelivery do 360 begin 361 if Tray then Items.Add('T^Tray'); 362 if Cafeteria then Items.Add('C^Cafeteria'); 363 if DiningRm then Items.Add('D^Dining Room'); 364 ItemIndex := 0; 365 chkBagged.Visible := uDietParams.Bagged; 366 end; 334 367 end; 335 368 TAccessibleStringGrid.WrapControl(grdSelected); … … 340 373 TAccessibleStringGrid.UnwrapControl(grdSelected); 341 374 TFClearGrid; 375 uRecurringMealList.Free; 342 376 inherited; 343 377 end; … … 350 384 ColWidths[1] := Canvas.TextWidth('XFULLX') + GetSystemMetrics(SM_CXVSCROLL); 351 385 ColWidths[2] := Canvas.TextWidth('100 GRAMS/HOUR X 24'); 352 ColWidths[3] := Canvas.TextWidth('55000 cc');386 ColWidths[3] := Canvas.TextWidth('55000ml'); 353 387 ColWidths[0] := ClientWidth - ColWidths[1] - ColWidths[2] - ColWidths[3] - 3; 354 388 lblTFStrength.Left := Left + ColWidths[0] + 3; … … 368 402 procedure TfrmODDiet.SetupDialog(OrderAction: Integer; const ID: string); 369 403 begin 404 if AbortOrder then exit; 370 405 inherited; 371 406 uDialogName := ExternalName(DialogIEN, 101.41); … … 396 431 end; 397 432 'T': begin 433 if (not OrderForInpatient) and (not PatientHasRecurringMeals(uRecurringMealList)) then 434 begin 435 Close; 436 Exit; 437 end; 398 438 nbkDiet.ActivePage := pgeTubefeeding; 399 439 nbkDietChange(Self); … … 401 441 end; 402 442 'E': begin 443 if (not OrderForInpatient) and (not PatientHasRecurringMeals(uRecurringMealList)) then 444 begin 445 Close; 446 Exit; 447 end; 403 448 nbkDiet.ActivePage := pgeEarlyLate; 404 449 nbkDietChange(Self); … … 411 456 end; 412 457 'A': begin 458 if (not OrderForInpatient) and (not PatientHasRecurringMeals(uRecurringMealList)) then 459 begin 460 Close; 461 Exit; 462 end; 413 463 nbkDiet.ActivePage := pgeAdditional; 414 464 nbkDietChange(Self); … … 442 492 nbkDietChange(Self); 443 493 if OrderAction <> ORDER_NEW then SetValuesFromResponsesDO; 494 ActiveControl := cboOPDietAvail; 444 495 end; 445 496 end; … … 517 568 end; 518 569 if Sum > 5000 then SetError(TX_TF5000); 570 if not OrderForInpatient then 571 if not calOPTFStart.IsValid then SetError(TX_BAD_START); 519 572 end; 520 573 if nbkDiet.ActivePage = pgeEarlyLate then 521 574 begin 522 575 if grpMeal.ItemIndex = 3 then SetError(TX_ELMEAL); 523 if GetMealTime = '' then SetError(TX_ELTIME);524 576 if not calELStart.IsValid then SetError(TX_ELNOSTART); 525 if not calELStop.IsValid then SetError(TX_ELNOSTOP);526 577 if calELStart.FMDateTime < FMToday then SetError(TX_ELSTARTLT); 527 if calELStop.FMDateTime < FMToday then SetError(TX_ELSTOPLT);528 if calELStop.FMDateTime < calELStart.FMDateTime then SetError(TX_ELSTOPSTART);529 578 if calELStart.FMDateTime > FMDateTimeOffsetBy(FMToday, 30) then SetError(TX_ELSTART30); 530 if calELStop.FMDateTime > FMDateTimeOffsetBy(FMToday, 30) then SetError(TX_ELSTOP30); 579 if OrderForInpatient then 580 begin 581 if GetMealTime = '' then SetError(TX_ELTIME); 582 if not calELStop.IsValid then SetError(TX_ELNOSTOP); 583 if calELStop.FMDateTime < FMToday then SetError(TX_ELSTOPLT); 584 if calELStop.FMDateTime < calELStart.FMDateTime then SetError(TX_ELSTOPSTART); 585 if calELStop.FMDateTime > FMDateTimeOffsetBy(FMToday, 30) then SetError(TX_ELSTOP30); 586 end; 531 587 if grpDOW.Enabled and (GetDaysOfWeek = '') then SetError(TX_ELDOW); 532 588 if MealTimePassed then SetError(TX_ELPAST); … … 539 595 begin 540 596 if not ContainsVisibleChar(txtAOComment.Text) then SetError(TX_AONONE); 541 end; 542 { TODO -oRich V. -cOutpatient Meals : Add any required Outpatient Meals validation code here } 597 if not OrderForInpatient then 598 if not calOPAOStart.IsValid then SetError(TX_BAD_START); 599 end; 543 600 if nbkDiet.ActivePage = pgeOutPt then 544 601 begin … … 580 637 FTabChanging := True; 581 638 if Length(memOrder.Text) > 0 then 582 if InfoBox(TX_ACCEPT + memOrder.Text, TC_ACCEPT, MB_YESNO) = ID_YES then 583 begin 584 cmdAcceptClick(Self); 585 AllowChange := AcceptOK; 586 end else 587 begin 588 memOrder.Text := ''; 589 memOrder.Lines.Clear; 590 Responses.Clear; 639 begin 640 if nbkDiet.ActivePage = pgeOutpt then 641 begin 642 if InfoBox(TX_CONTINUE + memOrder.Text + TX_DISCARD, TC_ACCEPT, MB_YESNO) = ID_YES then 643 begin 644 AllowChange := FALSE; 645 end else 646 begin 647 memOrder.Text := ''; 648 memOrder.Lines.Clear; 649 Responses.Clear; 650 end; 651 end 652 else 653 begin 654 if InfoBox(TX_ACCEPT + memOrder.Text, TC_ACCEPT, MB_YESNO) = ID_YES then 655 begin 656 cmdAcceptClick(Self); 657 AllowChange := AcceptOK; 658 end else 659 begin 660 memOrder.Text := ''; 661 memOrder.Lines.Clear; 662 Responses.Clear; 663 end; 664 end 591 665 end; 592 666 FTabChanging := False; … … 594 668 595 669 procedure TfrmODDiet.nbkDietChange(Sender: TObject); 670 var 671 x, CxMsg: string ; 672 i: integer; 673 AStringList: TStringList; 674 const 675 // TX_CX_CUR = 'A new diet order will CANCEL and REPLACE this current diet:' + CRLF + CRLF; 676 TX_CX_CUR = 'A new diet order will CANCEL and REPLACE this current diet now unless' + CRLF + 677 'you specify a start date for when the new diet should replace the current' + CRLF + 678 'diet:' + CRLF + CRLF; 679 TX_CX_FUT = 'A new diet order with no expiration date will CANCEL and REPLACE these diets:' + CRLF + CRLF; 596 680 begin 597 681 inherited; 598 682 // much of the logic here can be eliminated if ClearDialogControls starts clearing containers 683 if AbortOrder then 684 begin 685 cmdQuitClick(Self); 686 exit; 687 end; 599 688 StatusText('Loading Dialog Definition'); 600 689 if Sender <> Self then Responses.Clear; … … 603 692 begin 604 693 AllowQuickOrder := True; 605 OrderMessage(CurrentDietText); 694 x := CurrentDietText; 695 if Piece(x, #13, 1) <> 'Current Diet: ' then 696 begin 697 AStringList := TStringList.Create; 698 try 699 AStringList.Text := x; 700 CxMsg := TX_CX_CUR + #9 + Piece(AStringList[0], ':', 1) + ':' + CRLF + CRLF 701 + #9 + Copy(AStringList[0], 16, 99) + CRLF; 702 if AStringList.Count > 1 then 703 begin 704 CxMsg := CxMsg + CRLF + CRLF + 705 TX_CX_FUT + #9 + Piece(AStringList[1], ':', 1) + ':' + CRLF + CRLF 706 + #9 + Copy(AStringList[1], 22, 99) + CRLF; 707 if AStringList.Count > 2 then 708 for i := 2 to AStringList.Count - 1 do 709 CxMsg := CxMsg + #9 + TrimLeft(AStringList[i]) + CRLF; 710 end; 711 finally 712 AStringList.Free; 713 end; 714 end; 715 if CxMsg <> '' then 716 begin 717 if InfoBox(CxMsg + CRLF + 718 'Are you sure?', 'Confirm', MB_ICONWARNING or MB_YESNO) = ID_NO then 719 begin 720 AbortOrder := True; 721 cmdQuitClick(Self); 722 exit; 723 end; 724 end; 725 OrderMessage(x); 606 726 Responses.Dialog := 'FHW1'; // Diet Order 607 727 DisplayGroup := DisplayGroupForDialog('FHW1'); … … 615 735 if nbkDiet.ActivePage = pgeTubefeeding then 616 736 begin 617 { TODO -oRich V. -cOutpatient Meals : Prompt for which recurring meal(s) to apply this order against }618 737 if not OrderForInpatient then 619 738 begin 620 // get list of existing OP recurring meals 621 // if none, then exit with message 622 // if some, display and allow selection of multiple dates/times 623 // set different dialog/display group? 624 end; 739 if not PatientHasRecurringMeals(uRecurringMealList) then 740 begin 741 Changing := False; 742 nbkDiet.ActivePage := pgeOutPt; 743 nbkDietChange(nbkDiet); 744 Exit; 745 end 746 else 747 cboOPTFRecurringMeals.Items.Assign(uRecurringMealList); 748 end; 749 cboOPTFRecurringMeals.Visible := not OrderForInpatient; 750 calOPTFStart.Visible := False; 751 lblOPTFStart.Visible := not OrderForInpatient; 625 752 AllowQuickOrder := True; 626 753 if Length(uDietParams.CurTF) > 0 … … 644 771 if nbkDiet.ActivePage = pgeEarlyLate then 645 772 begin 646 { TODO -oRich V. -cOutpatient Meals : Prompt for which recurring meal to apply this order against }647 773 if not OrderForInpatient then 648 begin 649 // get list of existing OP recurring meals 650 // if none, then exit with message 651 // if some, display and allow selection of one and only one 652 // set different dialog/display group? 653 end 774 begin 775 if not PatientHasRecurringMeals(uRecurringMealList) then 776 begin 777 Changing := False; 778 nbkDiet.ActivePage := pgeOutPt; 779 nbkDietChange(nbkDiet); 780 Exit; 781 end 782 else 783 cboOPELRecurringMeals.Items.Assign(uRecurringMealList); 784 end 654 785 else if (StrToIntDef(uDietParams.EarlyIEN, 0) = 0) or (StrToIntDef(uDietParams.LateIEN, 0) = 0) then 655 begin 656 InfoBox(TX_NO_PARAMS, TC_NO_PARAMS, MB_ICONERROR or MB_OK); 657 if pgeEarlyLate <> nil then 658 nbkDiet.SelectNextPage(False); 659 Exit; 660 end; 786 begin 787 InfoBox(TX_NO_PARAMS, TC_NO_PARAMS, MB_ICONERROR or MB_OK); 788 if pgeEarlyLate <> nil then 789 nbkDiet.SelectNextPage(False); 790 Changing := False; 791 Exit; 792 end; 793 cboOPELRecurringMeals.Visible := not OrderForInpatient; 794 cboOPELRecurringMeals.TabStop := not OrderForInpatient; 795 calELStart.Visible := OrderForInpatient; 796 calELStart.TabStop := OrderForInpatient; 797 calELStop.Visible := OrderForInpatient; 798 lblELStop.Visible := OrderForInpatient; 799 grpDOW.Visible := OrderForInpatient; 800 grpDOW.Enabled := OrderForInpatient; 661 801 AllowQuickOrder := False; 662 802 OrderMessage(''); … … 678 818 if nbkDiet.ActivePage = pgeAdditional then 679 819 begin 680 { TODO -oRich V. -cOutpatient Meals : Prompt for which recurring meal(s) to apply this order against } 681 if not OrderForInpatient then 682 begin 683 // get list of existing OP recurring meals 684 // if none, then exit with message 685 // if some, display and allow selection of multiple dates/times 686 // set different dialog/display group? 687 end; 820 if not OrderForInpatient then 821 begin 822 if not PatientHasRecurringMeals(uRecurringMealList) then 823 begin 824 Changing := False; 825 nbkDiet.ActivePage := pgeOutPt; 826 nbkDietChange(nbkDiet); 827 Exit; 828 end 829 else 830 cboOPAORecurringMeals.Items.Assign(uRecurringMealList); 831 end; 832 cboOPAORecurringMeals.Visible := not OrderForInpatient; 833 calOPAOStart.Visible := False; //not OrderForInpatient; 834 lblOPAOStart.Visible := not OrderForInpatient; 688 835 AllowQuickOrder := False; 689 836 OrderMessage(''); … … 694 841 if nbkDiet.ActivePage = pgeOutPt then 695 842 begin 696 OrderMessage(CurrentDietText); 843 x := CurrentDietText; 844 if Length(Piece(x, #$D, 1)) > Length('Current Diet: ') then 845 OrderMessage(x) 846 else 847 OrderMessage(''); 848 if (uDialogName <> 'FHW SPECIAL MEAL') and (uDialogName <> 'FHW OP MEAL') then 849 uDialogName := 'FHW OP MEAL'; 697 850 Responses.Dialog := uDialogName; 698 851 DisplayGroup := DisplayGroupForDialog(uDialogName); 699 if uDialogName = 'FHW OP MEAL' then // Recurring meal 700 begin 701 AllowQuickOrder := True; 702 ResetControlsOP; 703 LoadDietQuickList(cboOPDietAvail.Items, 'MEAL'); // use D.G. short name here 704 cboOPDietAvail.InsertSeparator; 705 cboOPDietAvail.InitLongList(''); 706 { TODO -oRich V. -cOutpatient Meals : Need to DC Tubefeeding order for OP meals? } 707 chkOPCancelTubefeeding.State := cbGrayed; 708 chkOPCancelTubefeeding.Visible := False; 709 grpOPMeal.Caption := 'Recurring Meal'; 710 SetEnableOPDOW(False); 711 end 712 else if uDialogName = 'FHW SPECIAL MEAL' then // Special meal 852 if uDialogName = 'FHW SPECIAL MEAL' then // Special meal 713 853 begin 714 854 AllowQuickOrder := False; 715 855 ResetControlsOP; 716 cboOPDietAvail.I nitLongList('');856 cboOPDietAvail.Items.AddStrings(SubsetOfOPDiets); 717 857 { TODO -oRich V. -cOutpatient Meals : Need to DC Tubefeeding order for OP meals? } 718 858 chkOPCancelTubefeeding.State := cbGrayed; … … 723 863 pgeAdditional.TabVisible := False; 724 864 pgeEarlyLate.TabVisible := False; 725 cboOPDietAvail.SelectByIEN(uDietParams. RegIEN);865 cboOPDietAvail.SelectByIEN(uDietParams.OPDefaultDiet); 726 866 cboOPDietAvailMouseClick(Self); 867 Changing := False; 868 end 869 else if uDialogName = 'FHW OP MEAL' then // Recurring meal 870 begin 871 AllowQuickOrder := True; 872 ResetControlsOP; 873 LoadDietQuickList(cboOPDietAvail.Items, 'MEAL'); // use D.G. short name here 874 cboOPDietAvail.InsertSeparator; 875 cboOPDietAvail.Items.AddStrings(SubsetOfOPDiets); 876 cboOPDietAvail.SelectByIEN(uDietParams.OPDefaultDiet); 877 { TODO -oRich V. -cOutpatient Meals : Need to DC Tubefeeding order for OP meals? } 878 chkOPCancelTubefeeding.State := cbGrayed; 879 chkOPCancelTubefeeding.Visible := False; 880 grpOPMeal.Caption := 'Recurring Meal'; 881 SetEnableOPDOW(False, -1); 882 cboOPDietAvailMouseClick(Self); 883 Changing := False; 727 884 end; 728 885 end; … … 802 959 InfoBox(Piece(ADiet,'^',2), TC_DIET_ERR, MB_OK); 803 960 cboDietAvail.ItemIndex := -1; 961 Changing := False; 804 962 Exit; 805 963 end; … … 935 1093 TFClearGrid; 936 1094 chkCancelTrays.Checked := False; 1095 calOPTFStart.Text := ''; 937 1096 txtTFComment.Text := ''; 938 1097 end; … … 973 1132 AResponse := FindResponseByName('CANCEL', 1); 974 1133 if AResponse <> nil then chkCancelTrays.Checked := AResponse.IValue = '1'; 1134 if not OrderForInpatient then 1135 begin 1136 SetControl(cboOPTFRecurringMeals, 'DATETIME', 1); 1137 SetControl(calOPTFStart, 'DATETIME', 1); 1138 end; 975 1139 SetControl(txtTFComment, 'COMMENT', 1); 976 1140 end; … … 1114 1278 begin 1115 1279 grdSelected.Cells[2, ARow] := Piece(x, U, 2); 1116 grdSelected.Cells[3, ARow] := Piece(x, U, 1) + ' cc';1280 grdSelected.Cells[3, ARow] := Piece(x, U, 1) + 'ml'; 1117 1281 end 1118 1282 else grdSelected.Cells[3, ARow] := ''; … … 1268 1432 then Responses.Update('CANCEL', 1, '1', 'Yes') 1269 1433 else Responses.Update('CANCEL', 1, '0', 'No'); 1434 if not OrderForInpatient then 1435 begin 1436 calOPTFStart.FMDateTime := StrToFloatDef(cboOPTFRecurringMeals.ItemID, 0); 1437 Responses.Update('DATETIME', 1, FloatToStr(calOPTFStart.FMDateTime), calOPTFStart.Text); 1438 end; 1270 1439 memOrder.Text := Responses.OrderText; 1271 1440 end; … … 1323 1492 if radLT3.Caption = AResponse.IValue then radLT3.Checked := True; 1324 1493 end; 1325 SetControl(calELStart, 'START', 1); 1326 SetControl(calELStop, 'STOP', 1); 1494 if not OrderForInpatient then 1495 SetControl(cboOPELRecurringMeals, 'START', 1) 1496 else 1497 begin 1498 SetControl(calELStart, 'START', 1); 1499 SetControl(calELStop, 'STOP', 1); 1500 end; 1327 1501 calELStopChange(Self); 1328 1502 AResponse := FindResponseByName('SCHEDULE', 1); … … 1403 1577 lblNoTimes.Visible := not HasTimes; 1404 1578 end; 1405 1406 begin 1407 inherited; 1579 var 1580 AMeal: string; 1581 begin 1582 inherited; 1583 Changing := True; 1408 1584 case grpMeal.ItemIndex of 1409 0: SetMealTimes(uDietParams.BTimes); 1410 1: SetMealTimes(uDietParams.NTimes); 1411 2: SetMealTimes(uDietParams.ETimes); 1412 else SetMealTimes(''); 1413 end; 1585 0: begin 1586 SetMealTimes(uDietParams.BTimes); 1587 AMeal := 'B'; 1588 end; 1589 1: begin 1590 SetMealTimes(uDietParams.NTimes); 1591 AMeal := 'N'; 1592 end; 1593 2: begin 1594 SetMealTimes(uDietParams.ETimes); 1595 AMeal := 'E'; 1596 end; 1597 else 1598 begin 1599 SetMealTimes(''); 1600 AMeal := ''; 1601 end; 1602 end; 1603 if not OrderForInpatient then 1604 begin 1605 if AMeal = '' then 1606 begin 1607 uRecurringMealList.Clear; 1608 cboOPELRecurringMeals.Clear; 1609 end 1610 else if not PatientHasRecurringMeals(uRecurringMealList, AMeal) then 1611 begin 1612 uRecurringMealList.Clear; 1613 cboOPELRecurringMeals.Clear; 1614 grpMeal.ItemIndex := 3; 1615 end 1616 else 1617 cboOPELRecurringMeals.Items.Assign(uRecurringMealList); 1618 end; 1619 Changing := False; 1620 ELChange(grpMeal); 1414 1621 end; 1415 1622 … … 1445 1652 begin 1446 1653 inherited; 1447 if (Length(calELStop.Text) > 0) and (calELStop.Text = calELStart.Text) 1654 if not OrderForInpatient then SetEnableDOW(False) 1655 else if (Length(calELStop.Text) > 0) and (calELStop.Text = calELStart.Text) 1448 1656 then SetEnableDOW(False) 1449 1657 else SetEnableDOW(True); … … 1478 1686 then Responses.Update('ORDERABLE', 1, uDietParams.EarlyIEN, 'EARLY TRAY') 1479 1687 else Responses.Update('ORDERABLE', 1, uDietParams.LateIEN, 'LATE TRAY'); 1688 end; 1689 if not OrderForInpatient then 1690 begin 1691 calELStart.FMDateTime := StrToFloatDef(cboOPELRecurringMeals.ItemID, 0); 1692 calELStop.FMDateTime := calELStart.FMDateTime; 1480 1693 end; 1481 1694 with calELStart do if Length(Text) > 0 then Responses.Update('START', 1, Text, Text); … … 1525 1738 begin 1526 1739 txtAOComment.Text := ''; 1740 calOPAOStart.Text := ''; 1527 1741 end; 1528 1742 … … 1532 1746 ResetControlsAO; 1533 1747 Responses.SetControl(txtAOComment, 'COMMENT', 1); 1748 //Responses.SetControl(calOPAOStart, 'DATETIME', 1); 1749 Responses.SetControl(cboOPAORecurringMeals, 'DATETIME', 1); 1534 1750 Changing := False; 1535 1751 AOChange(Self); … … 1542 1758 with txtAOComment do if Text <> '' 1543 1759 then Responses.Update('COMMENT', 1, Text, Text); 1760 if not OrderForInpatient then 1761 begin 1762 calOPAOStart.FMDateTime := StrToFloatDef(cboOPAORecurringMeals.ItemID, 0); 1763 Responses.Update('DATETIME', 1, FloatToStr(calOPAOStart.FMDateTime), calOPAOStart.Text); 1764 end; 1544 1765 memOrder.Text := Responses.OrderText; 1545 1766 end; 1546 1767 1768 1547 1769 { Outpatient Meals Order tab ----------------------------------------------------------------- } 1548 1549 procedure TfrmODDiet.cboOPDietAvailNeedData(Sender: TObject; const StartFrom: string;1550 Direction, InsertAt: Integer);1551 begin1552 inherited;1553 cboOPDietAvail.ForDataUse(SubsetOfOPDiets(StartFrom, Direction));1554 end;1555 1770 1556 1771 procedure TfrmODDiet.cboOPDietAvailMouseClick(Sender: TObject); … … 1566 1781 begin 1567 1782 inherited; 1783 if cboOPDietAvail.Items.Count = 0 then 1784 begin 1785 InfoBox(TX_NO_MEALS_DEFINED, TC_NO_MEALS_DEFINED, MB_OK or MB_ICONINFORMATION); 1786 AbortOrder := True; 1787 exit; 1788 end ; 1568 1789 if CharAt(cboOPDietAvail.ItemID, 1) = 'Q' then // setup quick order 1569 1790 begin … … 1592 1813 OPChange(Sender); 1593 1814 end; {if cboOPDietAvail} 1815 OPChange(Sender); 1594 1816 cboOPDietAvail.ItemIndex := -1; 1595 OPChange(Sender);1596 1817 end; 1597 1818 … … 1643 1864 procedure TfrmODDiet.SetValuesFromResponsesOP; 1644 1865 var 1645 //AnInstance: Integer;1646 1866 AResponse: TResponse; 1647 1867 ADiet: string; … … 1651 1871 with Responses do 1652 1872 begin 1653 (* AnInstance := NextInstance('ORDERABLE', 0);1654 while AnInstance > 0 do1655 begin1656 AResponse := FindResponseByName('ORDERABLE', AnInstance);1657 if AResponse <> nil then1658 begin1659 ADiet := DietAttributes(StrToIntDef(AResponse.IValue,0));1660 if Piece(ADiet,'^',1)='0' then1661 begin1662 InfoBox(Piece(ADiet,'^',2), TC_OP_DIET_ERR, MB_OK);1663 cboOPDietAvail.ItemIndex := -1;1664 Exit;1665 end;1666 lstOPDietSelect.Items.Add(ADiet);1667 end;1668 AnInstance := NextInstance('ORDERABLE', AnInstance);1669 end; {while AnInstance - ORDERABLE}*)1670 1671 1873 AResponse := FindResponseByName('ORDERABLE', 1); 1672 1874 if AResponse <> nil then … … 1677 1879 InfoBox(Piece(ADiet,'^',2), TC_OP_DIET_ERR, MB_OK); 1678 1880 cboOPDietAvail.ItemIndex := -1; 1881 Changing := False; 1679 1882 Exit; 1680 1883 end; … … 1721 1924 begin 1722 1925 inherited; 1926 if Changing then exit; 1723 1927 if FChangeStop then 1724 1928 calOPStop.Text := calOPStart.Text … … 1727 1931 end; 1728 1932 1933 function TfrmODDiet.FMDOW(AnFMDate: TFMDateTime): integer; 1934 var 1935 WinDate: TDateTime; 1936 x: integer; 1937 begin 1938 WinDate := FMDateTimeToDateTime(AnFMDate); 1939 x := DayOfTheWeek(WinDate); 1940 Result := x; 1941 end; 1942 1943 function TfrmODDiet.FMDays(AStart, AEnd: TFMDateTime): string; 1944 var 1945 AWinStart, AWinEnd: TDateTime; 1946 i: double; 1947 Days: string; 1948 begin 1949 AWinStart := FMDateTimeToDateTime(AStart); 1950 AWinEnd := FMDateTimeToDateTime(AEnd); 1951 i := AWinStart; 1952 repeat 1953 Days := Days + FMDayLetters[DayOfTheWeek(i)]; 1954 i := i + 1; 1955 until i > AWinEnd; 1956 Result := Days; 1957 end; 1958 1729 1959 procedure TfrmODDiet.calOPStartExit(Sender: TObject); 1730 begin 1731 inherited; 1732 if (Length(calOPStop.Text) > 0) and (calOPStop.Text = calOPStart.Text) 1733 then SetEnableOPDOW(False) 1734 else SetEnableOPDOW(True); 1960 var 1961 Days: string; 1962 begin 1963 inherited; 1964 if not (calOPStart.FMDateTime > 0) then 1965 begin 1966 SetEnableOPDOW(False, -1); 1967 Exit ; 1968 end; 1969 if (Length(calOPStop.Text) > 0) and (calOPStop.Text = calOPStart.Text) then 1970 SetEnableOPDOW(False, FMDOW(calOPStart.FMDateTime)) 1971 else 1972 begin 1973 Days := FMDays(calOPStart.FMDateTime, calOPStop.FMDateTime); 1974 SetEnableOPDOW(True, -1, Days); 1975 end; 1735 1976 end; 1736 1977 1737 1978 procedure TfrmODDiet.calOPStopChange(Sender: TObject); 1738 begin 1739 inherited; 1740 if (Length(calOPStop.Text) > 0) and (calOPStop.FMDateTime = calOPStart.FMDateTime) 1741 then SetEnableOPDOW(False) 1742 else SetEnableOPDOW(True); 1979 var 1980 Days: string; 1981 begin 1982 inherited; 1983 if Changing then exit; 1984 if not (calOPStop.FMDateTime > 0) then 1985 begin 1986 SetEnableOPDOW(False, -1); 1987 Exit ; 1988 end; 1989 if (Length(calOPStop.Text) > 0) and (calOPStop.FMDateTime = calOPStart.FMDateTime) then 1990 SetEnableOPDOW(False, FMDOW(calOPStart.FMDateTime)) 1991 else 1992 begin 1993 Days := FMDays(calOPStart.FMDateTime, calOPStop.FMDateTime); 1994 SetEnableOPDOW(True, -1, Days); 1995 end; 1743 1996 OPChange(Sender); 1744 1997 end; … … 1752 2005 if Changing then Exit; 1753 2006 if Sender <> Self then Responses.Clear; // Sender=Self when called from SetupDialog 1754 // Per NFS, only one selection allowed from any of 5 available OP diets2007 // Per NFS, only one selection allowed from any of 10-15 available OP diets 1755 2008 with lstOPDietSelect do if Items.Count > 0 then 1756 2009 Responses.Update('ORDERABLE', 1, Piece(Items[0], U, 1), Piece(Items[0], U, 2)); … … 1765 2018 begin 1766 2019 x := GetOPDaysOfWeek; 1767 if Length(x) > 0 then Responses.Update('SCHEDULE', 1, x, x); 2020 if Length(x) = 0 then x := 'ONCE'; 2021 Responses.Update('SCHEDULE', 1, x, x); 1768 2022 end; 1769 2023 with txtOPDietComment do {if Length(Text) > 0 then} Responses.Update('COMMENT', 1, Text, Text); … … 1784 2038 end; 1785 2039 1786 procedure TfrmODDiet.SetEnableOPDOW(AllowUse: Boolean); 1787 begin 2040 procedure TfrmODDiet.SetEnableOPDOW(AllowUse: Boolean; OneTimeDay: integer; DaysToCheck: string = ''); 2041 var 2042 i: integer; 2043 begin 2044 if (not AllowUse) and (OneTimeDay > -1) then 2045 begin 2046 for i := 0 to grpOPDOW.ControlCount - 1 do 2047 begin 2048 if grpOPDOW.Controls[i] is TCheckBox then 2049 TCheckBox(grpOPDOW.Controls[i]).Checked := False; 2050 end; 2051 //TCheckBox(grpOPDOW.Controls[OneTimeDay - 1]).Checked := True; CQ #8305 2052 end; 1788 2053 grpOPDOW.Enabled := AllowUse; 1789 chkOPMonday.Enabled := AllowUse ;1790 chkOPTuesday.Enabled := AllowUse ;1791 chkOPWednesday.Enabled := AllowUse ;1792 chkOPThursday.Enabled := AllowUse ;1793 chkOPFriday.Enabled := AllowUse ;1794 chkOPSaturday.Enabled := AllowUse ;1795 chkOPSunday.Enabled := AllowUse ;2054 chkOPMonday.Enabled := AllowUse and (Pos('M', DaysToCheck) > 0); 2055 chkOPTuesday.Enabled := AllowUse and (Pos('T', DaysToCheck) > 0); 2056 chkOPWednesday.Enabled := AllowUse and (Pos('W', DaysToCheck) > 0); 2057 chkOPThursday.Enabled := AllowUse and (Pos('R', DaysToCheck) > 0); 2058 chkOPFriday.Enabled := AllowUse and (Pos('F', DaysToCheck) > 0); 2059 chkOPSaturday.Enabled := AllowUse and (Pos('S', DaysToCheck) > 0); 2060 chkOPSunday.Enabled := AllowUse and (Pos('X', DaysToCheck) > 0); 1796 2061 end; 1797 2062 … … 1896 2161 // check if late tray should be ordered 1897 2162 AResponse := Responses.FindResponseByName('ORDERABLE', 1); 1898 if ( AResponse <> nil) and (Copy(AResponse.EValue, 1, 3) <> 'NPO') then2163 if (Self.EvtID = 0) and (AResponse <> nil) and (Copy(AResponse.EValue, 1, 3) <> 'NPO') then 1899 2164 begin 1900 2165 AResponse := Responses.FindResponseByName('START', 1); … … 1915 2180 // check if late tray should be ordered 1916 2181 AResponse := Responses.FindResponseByName('ORDERABLE', 1); 1917 if ( AResponse <> nil) and (Copy(AResponse.EValue, 1, 3) <> 'NPO') then2182 if (Self.EvtID = 0) and (AResponse <> nil) and (Copy(AResponse.EValue, 1, 3) <> 'NPO') then 1918 2183 begin 1919 2184 AResponse := Responses.FindResponseByName('START', 1); … … 1930 2195 if NewOrder.ID <> '' then 1931 2196 begin 1932 if (Encounter.Provider = User.DUZ) and User.CanSignOrders 1933 then CanSign := CH_SIGN_YES 1934 else CanSign := CH_SIGN_NA; 2197 if OrderForInpatient then 2198 begin 2199 if (Encounter.Provider = User.DUZ) and User.CanSignOrders 2200 then CanSign := CH_SIGN_YES 2201 else CanSign := CH_SIGN_NA; 2202 end 2203 else 2204 begin 2205 CanSign := CH_SIGN_NA; 2206 end; 1935 2207 Changes.Add(CH_ORD, NewOrder.ID, NewOrder.Text, '', CanSign); 1936 2208 SendMessage(Application.MainForm.Handle, UM_NEWORDER, ORDER_NEW, Integer(NewOrder)) … … 1955 2227 end; 1956 2228 2229 procedure TfrmODDiet.cboOPDietAvailKeyDown(Sender: TObject; var Key: Word; 2230 Shift: TShiftState); 2231 begin 2232 inherited; 2233 if Key = VK_RETURN then cboOPDietAvailMouseClick(Self); 2234 end; 2235 2236 function TfrmODDiet.PatientHasRecurringMeals(var MealList: TStringList; MealType: string = ''): boolean; 2237 const 2238 TX_NO_RECURRING_MEALS = 'For outpatients, this type of order requires association with an existing recurring' + CRLF + 2239 'meal order. There are currently no active recurring meal orders for this patient.' + CRLF + CRLF + 2240 'Those orders must be signed and released before they can be linked to this item.'; 2241 TC_NO_RECURRING_MEALS = 'Unable to order ' ; 2242 begin 2243 MealList.Clear; 2244 GetCurrentRecurringOPMeals(MealList, MealType); 2245 if MealList.Count = 0 then 2246 begin 2247 InfoBox(TX_NO_RECURRING_MEALS, TC_NO_RECURRING_MEALS + nbkDiet.ActivePage.Caption, MB_OK); 2248 Result := False; 2249 end 2250 else 2251 Result := True; 2252 end; 2253 1957 2254 end. 1958 2255 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODDietLT.pas
r459 r460 75 75 begin 76 76 TimePart := Frac(x); 77 if TimePart > 0.1 2then77 if TimePart > 0.1159 then 78 78 begin 79 x := x - 0.12;79 if TimePart > 0.1259 then x := x - 0.12; 80 80 Suffix := 'P' 81 81 end … … 127 127 (TimePart < (StrToIntDef(Piece(DietParams.Alarms, U, 6), 0) / 10000)) then Meal := 'E'; 128 128 if Meal = #0 then Exit; 129 // get the available late times for this meal130 case Meal of131 'B': AvailTimes := Pieces(DietParams.BTimes, U, 4, 6);132 'E': AvailTimes := Pieces(DietParams.ETimes, U, 4, 6);133 'N': AvailTimes := Pieces(DietParams.NTimes, U, 4, 6);134 end;135 SetAvailTimes(TimePart, TimeCount, AvailTimes);136 if TimeCount = 0 then Exit;137 129 end 138 130 else // for outpatients 139 131 begin 132 (* From Rich Knoepfle, NFS developer 133 If they order a breakfast and it is after the LATE BREAKFAST ALARM END, I don't allow them to do it. (For special meals I don't allow them to order something for the following day). 134 If it's before the LATE BREAKFAST ALARM BEGIN than I accept the order. 135 If it's between the LATE BREAKFAST ALARM BEGIN and ALARM END then I ask if they want to order a Late breakfast tray. 136 *) 140 137 Meal := AMeal; 141 138 case AMeal of 142 'B': if TimePart < (StrToIntDef(Piece(DietParams.Alarms, U, 1), 0) / 10000) then Meal := #0; 143 'N': if TimePart < (StrToIntDef(Piece(DietParams.Alarms, U, 3), 0) / 10000) then Meal := #0; 144 'E': if TimePart < (StrToIntDef(Piece(DietParams.Alarms, U, 5), 0) / 10000) then Meal := #0; 139 'B': if (TimePart < (StrToIntDef(Piece(DietParams.Alarms, U, 1), 0) / 10000)) or 140 (TimePart > (StrToIntDef(Piece(DietParams.Alarms, U, 2), 0) / 10000)) then Meal := #0; 141 'N': if (TimePart < (StrToIntDef(Piece(DietParams.Alarms, U, 3), 0) / 10000)) or 142 (TimePart > (StrToIntDef(Piece(DietParams.Alarms, U, 4), 0) / 10000)) then Meal := #0; 143 'E': if (TimePart < (StrToIntDef(Piece(DietParams.Alarms, U, 5), 0) / 10000)) or 144 (TimePart > (StrToIntDef(Piece(DietParams.Alarms, U, 6), 0) / 10000)) then Meal := #0; 145 145 end; 146 146 if Meal = #0 then exit; 147 147 end; 148 149 // get the available late times for this meal 150 case Meal of 151 'B': AvailTimes := Pieces(DietParams.BTimes, U, 4, 6); 152 'E': AvailTimes := Pieces(DietParams.ETimes, U, 4, 6); 153 'N': AvailTimes := Pieces(DietParams.NTimes, U, 4, 6); 154 end; 155 SetAvailTimes(TimePart, TimeCount, AvailTimes); 156 if TimeCount = 0 then Exit; 157 148 158 // setup form to get the selected late tray 149 159 frmODDietLT := TfrmODDietLT.Create(Application); … … 153 163 begin 154 164 FOutpatient := IsOutpatient; 155 if not IsOutpatient then 156 begin 157 if Length(Piece(AvailTimes, U, 1)) > 0 then radLT1.Caption := Piece(AvailTimes, U, 1); 158 if Length(Piece(AvailTimes, U, 2)) > 0 then radLT2.Caption := Piece(AvailTimes, U, 2); 159 if Length(Piece(AvailTimes, U, 3)) > 0 then radLT3.Caption := Piece(AvailTimes, U, 3); 160 radLT1.Visible := Length(radLT1.Caption) > 0; 161 radLT2.Visible := Length(radLT2.Caption) > 0; 162 radLT3.Visible := Length(radLT3.Caption) > 0; 163 radLT1.Checked := TimeCount = 1; 164 end 165 else GroupBox1.Visible := False; 165 if Length(Piece(AvailTimes, U, 1)) > 0 then radLT1.Caption := Piece(AvailTimes, U, 1); 166 if Length(Piece(AvailTimes, U, 2)) > 0 then radLT2.Caption := Piece(AvailTimes, U, 2); 167 if Length(Piece(AvailTimes, U, 3)) > 0 then radLT3.Caption := Piece(AvailTimes, U, 3); 168 radLT1.Visible := Length(radLT1.Caption) > 0; 169 radLT2.Visible := Length(radLT2.Caption) > 0; 170 radLT3.Visible := Length(radLT3.Caption) > 0; 171 radLT1.Checked := TimeCount = 1; 166 172 chkBagged.Visible := DietParams.Bagged; 167 173 with lblMealCutOff do case Meal of … … 174 180 if YesPressed then 175 181 begin 176 if not IsOutpatient then 177 begin 178 with radLT1 do if Checked then LateTrayFields.LateTime := Caption; 179 with radLT2 do if Checked then LateTrayFields.LateTime := Caption; 180 with radLT3 do if Checked then LateTrayFields.LateTime := Caption; 181 end 182 else 183 LateTrayFields.LateTime := FMTimeToAMPM(FMToday + TimePart); 182 with radLT1 do if Checked then LateTrayFields.LateTime := Caption; 183 with radLT2 do if Checked then LateTrayFields.LateTime := Caption; 184 with radLT3 do if Checked then LateTrayFields.LateTime := Caption; 184 185 LateTrayFields.LateMeal := Meal; 185 186 LateTrayFields.IsBagged := chkBagged.Checked; 186 end; {if YesPressed}187 end; 187 188 end; {with frmODDietLT} 188 189 finally -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODGen.pas
r459 r460 339 339 Editor.SetBounds(FEditorLeft, FEditorTop, NUM_CHAR * FCharWd, HT_FRAME * FCharHt); 340 340 TORDateBox(Editor).DateOnly := Pos('T', DialogItem.Domain) = 0; 341 with TORDateBox(Editor) do RequireTime := (not DateOnly) and (Pos('R', DialogItem.Domain) > 0); //v26.48 - RV PSI-05-002 341 342 TORDateBox(Editor).Text := DialogItem.EDefault; 342 343 TORDateBox(Editor).Hint := DialogItem.HelpText; … … 490 491 end; 491 492 with TORComboBox(Editor) do 493 begin 492 494 Items.AddStrings(TStrings(TopTSList)); 495 LongList := false; 496 end; 493 497 end else 494 498 TORComboBox(Editor).OnNeedData := LookupNeedData; -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODLab.dfm
r459 r460 374 374 OnExit = cboAvailTestExit 375 375 OnNeedData = cboAvailTestNeedData 376 CharsNeedMatch = 1 376 377 end 377 378 object cboFrequency: TORComboBox … … 397 398 TabOrder = 16 398 399 OnChange = cboFrequencyChange 400 CharsNeedMatch = 1 399 401 end 400 402 object cboCollSamp: TORComboBox … … 423 425 OnKeyPause = cboCollSampKeyPause 424 426 OnMouseClick = cboCollSampMouseClick 427 CharsNeedMatch = 1 425 428 end 426 429 object cboSpecimen: TORComboBox … … 451 454 OnKeyPause = cboSpecimenKeyPause 452 455 OnMouseClick = cboSpecimenMouseClick 456 CharsNeedMatch = 1 453 457 end 454 458 object cboUrgency: TORComboBox … … 474 478 TabOrder = 3 475 479 OnChange = cboUrgencyChange 480 CharsNeedMatch = 1 476 481 end 477 482 object txtAddlComment: TCaptionEdit … … 533 538 OnChange = cboCollTimeChange 534 539 OnExit = cboCollTimeExit 540 CharsNeedMatch = 1 535 541 end 536 542 object cboCollType: TORComboBox … … 556 562 TabOrder = 11 557 563 OnChange = cboCollTypeChange 564 CharsNeedMatch = 1 558 565 end 559 566 object dlgLabCollTime: TORDateTimeDlg -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODLab.pas
r459 r460 181 181 182 182 uses rODBase, rODLab, uCore, rCore, fODLabOthCollSamp, fODLabOthSpec, fODLabImmedColl, fLabCollTimes, 183 rOrders, uODBase, fRptBox ;183 rOrders, uODBase, fRptBox, fFrame; 184 184 185 185 … … 208 208 AList: TStringList; 209 209 begin 210 frmFrame.pnlVisit.Enabled := false; 210 211 AutoSizeDisabled := True; 211 212 inherited; … … 417 418 TestID := StrToInt(LabTestIEN); 418 419 TestName := Piece(ExtractDefault(LoadData, 'Test Name'),U,1); 419 LabSubscript := Piece(ExtractDefault(LoadData, ' Test Name'),U,2);420 LabSubscript := Piece(ExtractDefault(LoadData, 'Item ID'),U,2); 420 421 TestReqComment := ExtractDefault(LoadData, 'ReqCom'); 421 422 if Length(ExtractDefault(LoadData, 'Unique CollSamp')) > 0 then UniqueCollSamp := True; … … 826 827 827 828 procedure TfrmODLab.ControlChange(Sender: TObject); 829 var 830 AResponse: TResponse; 831 AVisitStr: string; 828 832 begin 829 833 inherited; 830 834 if Changing or (ALabTest = nil) then Exit; 835 AResponse := Responses.FindResponseByName('VISITSTR', 1); 836 if AResponse <> nil then 837 AVisitStr := AResponse.EValue; 831 838 Responses.Clear; 832 839 with ALabTest do … … 877 884 with txtDays do if Enabled then Responses.Update('DAYS', 1, Text, Text); 878 885 { worry about stop date later } 886 if AVisitStr <> '' then Responses.Update('VISITSTR', 1, AVisitStr, AVisitStr); 879 887 memOrder.Text := Responses.OrderText; 880 888 end; … … 1527 1535 inherited; 1528 1536 if FCmtTypes <> nil then FCmtTypes.Free; 1537 frmFrame.pnlVisit.Enabled := true; 1529 1538 end; 1530 1539 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedFA.dfm
r459 r460 5 5 Height = 205 6 6 Caption = 'Formulary Alternatives' 7 FormStyle = fsStayOnTop 7 8 OnCreate = FormCreate 8 9 PixelsPerInch = 96 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedIV.dfm
r459 r460 1 1 inherited frmODMedIV: TfrmODMedIV 2 Left = 3213 Top = 1992 Left = 587 3 Top = 331 4 4 Width = 610 5 5 Height = 341 6 Caption = 'I V FluidOrder'6 Caption = 'Infusion Order' 7 7 OnKeyDown = FormKeyDown 8 8 PixelsPerInch = 96 … … 11 11 Left = 6 12 12 Top = 196 13 Width = 6314 Height = 13 15 Caption = 'Infusion Rate '13 Width = 96 14 Height = 13 15 Caption = 'Infusion Rate (ml/hr)' 16 16 end 17 17 object lblPriority: TLabel [1] … … 30 30 end 31 31 object lblAmount: TLabel [3] 32 Left = 3 3332 Left = 328 33 33 Top = 6 34 Width = 7435 Height = 13 36 Caption = 'Volume/Stren th'34 Width = 80 35 Height = 13 36 Caption = 'Volume/Strength' 37 37 WordWrap = True 38 38 end … … 51 51 Caption = 'Duration or Total Volume' 52 52 end 53 object Label1: TStaticText [6] 54 Left = 100 55 Top = 213 56 Width = 28 57 Height = 17 58 Caption = 'ml/hr' 59 TabOrder = 15 60 end 61 object cboAdditive: TORComboBox [7] 62 Left = 6 63 Top = 20 64 Width = 200 65 Height = 125 66 Style = orcsSimple 67 AutoSelect = True 68 Caption = 'Additives' 69 Color = clWindow 70 DropDownCount = 11 71 ItemHeight = 13 72 ItemTipColor = clWindow 73 ItemTipEnable = True 74 ListItemsOnly = True 75 LongList = True 76 LookupPiece = 0 77 MaxLength = 0 78 Pieces = '2' 79 Sorted = False 80 SynonymChars = '<>' 81 TabPositions = '20' 82 TabOrder = 0 83 OnExit = cboAdditiveExit 84 OnMouseClick = cboAdditiveMouseClick 85 OnNeedData = cboAdditiveNeedData 86 CharsNeedMatch = 1 87 end 88 object tabFluid: TTabControl [8] 89 Left = 7 90 Top = 3 91 Width = 200 92 Height = 21 93 TabHeight = 15 94 TabOrder = 13 95 Tabs.Strings = ( 96 ' Solutions ' 97 ' Additives ') 98 TabIndex = 0 99 TabStop = False 100 OnChange = tabFluidChange 101 end 102 inherited memOrder: TCaptionMemo 103 Top = 255 104 Width = 475 105 TabOrder = 11 106 end 107 object txtRate: TCaptionEdit [10] 53 object txtRate: TCaptionEdit [6] 108 54 Left = 6 109 55 Top = 210 … … 111 57 Height = 21 112 58 AutoSelect = False 113 TabOrder = 659 TabOrder = 5 114 60 OnChange = ControlChange 61 OnExit = txtRateExit 115 62 Caption = 'Infusion Rate' 116 63 end 117 object cboPriority: TORComboBox [ 11]64 object cboPriority: TORComboBox [7] 118 65 Left = 134 119 66 Top = 210 … … 135 82 Sorted = False 136 83 SynonymChars = '<>' 137 TabOrder = 784 TabOrder = 6 138 85 OnChange = ControlChange 139 86 CharsNeedMatch = 1 140 87 end 141 object grdSelected: TCaptionStringGrid [ 12]88 object grdSelected: TCaptionStringGrid [8] 142 89 Left = 214 143 90 Top = 20 … … 152 99 Options = [goFixedVertLine, goFixedHorzLine, goVertLine, goHorzLine, goDrawFocusSelected] 153 100 ScrollBars = ssVertical 154 TabOrder = 3101 TabOrder = 2 155 102 OnDrawCell = grdSelectedDrawCell 156 103 OnKeyPress = grdSelectedKeyPress … … 158 105 Caption = 'Selected Solution and Additives' 159 106 end 160 object cmdRemove: TButton [ 13]107 object cmdRemove: TButton [9] 161 108 Left = 443 162 109 Top = 99 … … 164 111 Height = 18 165 112 Caption = 'Remove' 166 TabOrder = 4113 TabOrder = 3 167 114 OnClick = cmdRemoveClick 168 115 end 169 object memComments: TCaptionMemo [1 4]116 object memComments: TCaptionMemo [10] 170 117 Left = 214 171 118 Top = 120 … … 175 122 'memComments') 176 123 ScrollBars = ssVertical 177 TabOrder = 5124 TabOrder = 4 178 125 OnChange = ControlChange 179 126 Caption = 'Comments' 180 127 end 181 object txtSelected: TCaptionEdit [1 5]128 object txtSelected: TCaptionEdit [11] 182 129 Tag = -1 183 130 Left = 416 … … 187 134 Ctl3D = False 188 135 ParentCtl3D = False 189 TabOrder = 1136 TabOrder = 0 190 137 Text = 'meq.' 191 138 Visible = False … … 194 141 Caption = 'Volume' 195 142 end 196 object cboSelected: TCaptionComboBox [1 6]143 object cboSelected: TCaptionComboBox [12] 197 144 Tag = -1 198 145 Left = 460 … … 204 151 ItemHeight = 13 205 152 ParentCtl3D = False 206 TabOrder = 2153 TabOrder = 1 207 154 Visible = False 208 155 OnChange = cboSelectedChange … … 210 157 Caption = 'Volume/Strength' 211 158 end 159 inherited memOrder: TCaptionMemo 160 Top = 255 161 Width = 475 162 TabOrder = 10 163 end 212 164 inherited cmdAccept: TButton 213 165 Left = 495 214 166 Top = 255 215 TabOrder = 9167 TabOrder = 8 216 168 end 217 169 inherited cmdQuit: TButton 218 170 Left = 495 219 171 Top = 282 220 TabOrder = 10172 TabOrder = 9 221 173 end 222 174 inherited pnlMessage: TPanel 223 175 Top = 237 224 TabOrder = 12 225 end 226 object cboSolution: TORComboBox 227 Left = 6 228 Top = 19 229 Width = 200 230 Height = 164 231 Style = orcsSimple 232 AutoSelect = True 233 Caption = 'Solutions' 234 Color = clWindow 235 DropDownCount = 11 236 ItemHeight = 13 237 ItemTipColor = clWindow 238 ItemTipEnable = True 239 ListItemsOnly = True 240 LongList = True 241 LookupPiece = 0 242 MaxLength = 0 243 Pieces = '2' 244 Sorted = False 245 SynonymChars = '<>' 246 TabPositions = '20' 247 TabOrder = 14 248 OnExit = cboSolutionExit 249 OnMouseClick = cboSolutionMouseClick 250 OnNeedData = cboSolutionNeedData 251 CharsNeedMatch = 1 176 TabOrder = 11 252 177 end 253 178 object pnlXDuration: TPanel … … 257 182 Height = 21 258 183 BevelOuter = bvNone 259 TabOrder = 8184 TabOrder = 7 260 185 OnEnter = pnlXDurationEnter 261 186 DesignSize = ( 262 187 121 263 188 21) 264 object btnXDuration: T SpeedButton189 object btnXDuration: TBitBtn 265 190 Left = 69 266 191 Top = 1 … … 269 194 Anchors = [akLeft, akTop, akRight, akBottom] 270 195 Caption = 'days' 196 TabOrder = 1 197 OnClick = btnXDurationClick 271 198 Glyph.Data = { 272 199 AE000000424DAE0000000000000076000000280000000E000000070000000100 … … 279 206 NumGlyphs = 2 280 207 Spacing = 0 281 Transparent = False282 OnClick = btnXDurationClick283 208 end 284 209 object txtXDuration: TCaptionEdit … … 293 218 end 294 219 end 220 object pnlCombo: TPanel 221 Left = 8 222 Top = 1 223 Width = 200 224 Height = 185 225 BevelOuter = bvNone 226 TabOrder = 17 227 object cboAdditive: TORComboBox 228 Left = 0 229 Top = 20 230 Width = 200 231 Height = 165 232 Style = orcsSimple 233 Align = alClient 234 AutoSelect = True 235 Caption = 'Additives' 236 Color = clWindow 237 DropDownCount = 11 238 ItemHeight = 13 239 ItemTipColor = clWindow 240 ItemTipEnable = True 241 ListItemsOnly = True 242 LongList = True 243 LookupPiece = 0 244 MaxLength = 0 245 Pieces = '2' 246 Sorted = False 247 SynonymChars = '<>' 248 TabPositions = '20' 249 TabOrder = 0 250 OnExit = cboAdditiveExit 251 OnMouseClick = cboAdditiveMouseClick 252 OnNeedData = cboAdditiveNeedData 253 CharsNeedMatch = 1 254 end 255 object tabFluid: TTabControl 256 Left = 0 257 Top = 0 258 Width = 200 259 Height = 20 260 Align = alTop 261 TabHeight = 15 262 TabOrder = 1 263 Tabs.Strings = ( 264 ' Solutions ' 265 ' Additives ') 266 TabIndex = 0 267 TabStop = False 268 OnChange = tabFluidChange 269 end 270 object cboSolution: TORComboBox 271 Left = 0 272 Top = 20 273 Width = 200 274 Height = 165 275 Style = orcsSimple 276 Align = alClient 277 AutoSelect = True 278 Caption = 'Solutions' 279 Color = clWindow 280 DropDownCount = 11 281 ItemHeight = 13 282 ItemTipColor = clWindow 283 ItemTipEnable = True 284 ListItemsOnly = True 285 LongList = True 286 LookupPiece = 0 287 MaxLength = 0 288 Pieces = '2' 289 Sorted = False 290 SynonymChars = '<>' 291 TabPositions = '20' 292 TabOrder = 2 293 OnExit = cboSolutionExit 294 OnMouseClick = cboSolutionMouseClick 295 OnNeedData = cboSolutionNeedData 296 CharsNeedMatch = 1 297 end 298 end 295 299 object popDuration: TPopupMenu 296 300 AutoHotkeys = maManual -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedIV.pas
r459 r460 9 9 type 10 10 TfrmODMedIV = class(TfrmODBase) 11 tabFluid: TTabControl;12 cboSolution: TORComboBox;13 11 lblInfusionRate: TLabel; 14 12 txtRate: TCaptionEdit; 15 lblPriority: TLabel;16 cboPriority: TORComboBox;17 13 lblComponent: TLabel; 18 14 lblAmount: TLabel; … … 21 17 lblComments: TLabel; 22 18 memComments: TCaptionMemo; 23 cboAdditive: TORComboBox;24 19 txtSelected: TCaptionEdit; 25 20 cboSelected: TCaptionComboBox; 26 Label1: TStaticText;27 21 popDuration: TPopupMenu; 28 22 popML: TMenuItem; … … 33 27 txtXDuration: TCaptionEdit; 34 28 lblLimit: TLabel; 35 btnXDuration: TSpeedButton; 29 btnXDuration: TBitBtn; 30 pnlCombo: TPanel; 31 cboAdditive: TORComboBox; 32 tabFluid: TTabControl; 33 cboSolution: TORComboBox; 34 lblPriority: TLabel; 35 cboPriority: TORComboBox; 36 36 procedure FormCreate(Sender: TObject); 37 37 procedure tabFluidChange(Sender: TObject); … … 64 64 procedure pnlXDurationEnter(Sender: TObject); 65 65 procedure txtXDurationExit(Sender: TObject); 66 procedure txtRateExit(Sender: TObject); 66 67 private 67 68 FInpatient: Boolean; … … 84 85 {$R *.DFM} 85 86 86 uses ORFn, uConst, rODMeds, rODBase, uAccessibleStringGrid ;87 uses ORFn, uConst, rODMeds, rODBase, uAccessibleStringGrid, fFrame; 87 88 88 89 const … … 129 130 Restriction: string; 130 131 begin 132 frmFrame.pnlVisit.Enabled := false; 131 133 inherited; 132 134 AllowQuickOrder := True; … … 155 157 with grdSelected do for i := 0 to RowCount - 1 do TIVComponent(Objects[0, i]).Free; 156 158 inherited; 159 frmFrame.pnlVisit.Enabled := True; 157 160 end; 158 161 … … 454 457 end; 455 458 end; 459 Application.ProcessMessages; //CQ: 10157 456 460 ClickOnGridCell; 457 if cboAdditive.Visible then458 ActiveControl := cboAdditive;459 461 ControlChange(Sender); 460 462 end; … … 522 524 Col := 1; 523 525 end; 526 Application.ProcessMessages; //CQ: 10157 524 527 ClickOnGridCell; 525 528 ControlChange(Sender); … … 550 553 Show; 551 554 SetFocus; 555 if AControl is TComboBox then //CQ: 10157 556 TComboBox(AControl).DroppedDown := True; 552 557 end; 553 558 end; … … 855 860 procedure TfrmODMedIV.txtXDurationExit(Sender: TObject); 856 861 var 862 Len: Integer; 857 863 Code: double; 864 Digits, Warning: string; 858 865 begin 859 866 inherited; 860 867 if Changing then Exit; 868 //AGP Change 26.15 HIN-1203-42283 Added additional check to make sure the user can only enter the correct duration 869 Len := Length(txtXDuration.Text); 870 if (Len > 0) and (Pos('.', txtXDuration.Text)=0) then 871 begin 872 Warning := '0'; 873 Digits := '2'; 874 if ((btnXDuration.Caption = 'days') or (btnXDuration.Caption = 'hours') or (btnXDuration.Caption = 'L')) and (Len > 2) then Warning := '1'; 875 if (btnXDuration.Caption = 'ml') and (Len > 4) then Warning := '1'; 876 if Warning = '1' then 877 begin 878 if btnXduration.Caption = 'ml' then Digits := '4'; 879 ShowMessage('Invalid Value.' + #13#10 + 'Reason: Duration for ' + btnXDuration.Caption + ' cannot be greater than ' + digits + ' digits.'); 880 txtXDuration.Text := ''; 881 txtXDuration.SetFocus; 882 Exit; 883 end; 884 end; 861 885 if (Pos('.', txtXDuration.Text)>0) and 862 886 ((btnXduration.Caption = 'days') or (btnXduration.Caption = 'hours')) then … … 897 921 end; 898 922 923 procedure TfrmODMedIV.txtRateExit(Sender: TObject); 924 var 925 ErrorText, LDec,RDec: string; 926 i: Integer; 927 Result: boolean; 928 begin 929 inherited; 930 //AGP Change 26.28 for CQ # 7598 add infusion rate check for valid value 931 ErrorText := 'The Infusion Rate must be in one of the following formats:' + CRLF + CRLF + 'nnnn.nn ml/hr or text@per labels per day'; 932 Result := False; 933 if pos('@',Self.txtRate.Text)>0 then exit; 934 if pos('.',Self.txtRate.Text)>0 then 935 begin 936 LDec := Piece(Self.txtRate.Text,'.',1); 937 RDec := Piece(Self.txtRate.Text,'.',2); 938 if Length(LDec)>4 then Result := True; 939 if Length(RDec)>2 then Result := True; 940 end 941 else if Length(Self.txtRate.Text)>4 then Result := True; 942 if (Result = False) and (pos('.',Self.txtRate.Text)=0) then 943 begin 944 for i := 1 to Length(Self.txtRate.Text) do if not (Self.txtRate.Text[i] in ['0'..'9']) then Result := True 945 end; 946 if Result = True then 947 begin 948 InfoBox(ErrorText,'Warning - Invalid Infusion Rate', MB_OK); 949 Self.txtRate.Text := ''; 950 Self.txtRate.SetFocus; 951 end; 952 end; 953 899 954 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedNVA.dfm
r459 r460 1 1 inherited frmODMedNVA: TfrmODMedNVA 2 Left = 1 683 Top = 362 Left = 100 3 Top = 167 4 4 Width = 632 5 5 Height = 536 … … 57 57 Height = 133 58 58 Align = alTop 59 BevelInner = bvLowered 60 BevelOuter = bvSpace 59 61 Columns = < 60 62 item … … 63 65 ColumnClick = False 64 66 HideSelection = False 67 HotTrack = True 65 68 OwnerData = True 66 69 ParentShowHint = False … … 71 74 ViewStyle = vsReport 72 75 OnChange = lstChange 76 OnClick = ListViewClick 73 77 OnData = lstQuickData 78 OnEditing = ListViewEditing 79 OnEnter = ListViewEnter 80 OnResize = ListViewResize 74 81 Caption = 'Quick Orders' 75 82 end … … 215 222 OnExit = cboDosageExit 216 223 CharsNeedMatch = 1 217 UniqueAutoComplete = True218 224 end 219 225 object cboRoute: TORComboBox … … 245 251 OnExit = cboRouteExit 246 252 CharsNeedMatch = 1 247 UniqueAutoComplete = True248 253 end 249 254 object cboSchedule: TORComboBox … … 273 278 OnExit = cboScheduleExit 274 279 CharsNeedMatch = 1 275 UniqueAutoComplete = True276 280 end 277 281 object chkPRN: TCheckBox … … 285 289 ParentColor = False 286 290 TabOrder = 5 291 OnClick = chkPRNClick 287 292 end 288 293 end … … 308 313 object Label1: TLabel 309 314 Left = 5 310 Top = 50315 Top = 47 311 316 Width = 108 312 317 Height = 13 … … 319 324 Height = 13 320 325 Caption = 'Start Date:' 326 end 327 object Image1: TImage 328 Left = 25 329 Top = 17 330 Width = 31 331 Height = 31 321 332 end 322 333 object memComment: TCaptionMemo … … 354 365 end 355 366 object lbStatements: TORListBox 356 Left = 8357 Top = 62367 Left = 7 368 Top = 59 358 369 Width = 603 359 Height = 76370 Height = 81 360 371 Style = lbOwnerDrawFixed 361 372 Anchors = [akLeft, akTop, akRight] … … 370 381 OnClickCheck = lbStatementsClickCheck 371 382 end 383 object memDrugMsg: TMemo 384 Left = 63 385 Top = 15 386 Width = 533 387 Height = 31 388 Anchors = [akLeft, akRight, akBottom] 389 Color = clCream 390 Lines.Strings = ( 391 '') 392 ReadOnly = True 393 ScrollBars = ssVertical 394 TabOrder = 6 395 Visible = False 396 end 372 397 end 373 398 end 374 399 object btnSelect: TButton 375 400 Left = 539 376 Top = 46 1401 Top = 463 377 402 Width = 72 378 403 Height = 21 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedNVA.pas
r459 r460 1 1 unit fODMedNVA; 2 2 3 interface 3 interface 4 4 5 5 uses … … 41 41 Label2: TLabel; 42 42 btnSelect: TButton; 43 Image1: TImage; 44 memDrugMsg: TMemo; 43 45 procedure FormCreate(Sender: TObject); 44 46 procedure btnSelectClick(Sender: TObject); … … 68 70 procedure cboScheduleClick(Sender: TObject); 69 71 procedure cboRouteExit(Sender: TObject); 70 72 procedure DispOrderMessage(const AMessage: string); 71 73 72 74 … … 89 91 Change: TItemChange); 90 92 procedure FormKeyPress(Sender: TObject; var Key: Char); 93 91 94 private 92 95 {selection} … … 121 124 FPtInstruct: string; 122 125 FAltChecked: Boolean; 126 FShrinkDrugMsg: boolean; 123 127 FQOQuantity: Double; 124 128 FQODosage: string; … … 129 133 FDisabledCancelButton: TButton; 130 134 FShrinked: boolean; 135 FQOInitial: boolean; 131 136 FRemoveText : Boolean; 132 137 {selection} … … 291 296 TX_NO_FUTURE_DATES = 'Dates in the future are not allowed.'; 292 297 TX_BAD_DATE = 'Dates must be in the format mm/dd/yy or mm/yy'; 293 298 TX_CAP_FUTURE = 'Invalid date'; 294 299 295 300 { procedures inherited from fODBase --------------------------------------------------------- } … … 300 305 var 301 306 ListCount: Integer; 302 Restriction, x : string; 303 begin 307 Restriction, x: string; 308 begin 309 frmFrame.pnlVisit.Enabled := false; 304 310 AutoSizeDisabled := True; 305 311 // ActivateOrderDialog(Piece(DialogInfo, ';', 1), DelayEvent, Self, 0); 306 312 inherited; 313 AllowQuickOrder := True; 314 307 315 if User.OrderRole in[OR_CLERK] then // if user is clerk check restrictions else ok to write NonVA Order. 308 begin 309 CheckAuthForNVAMeds(Restriction); 310 if Length(Restriction) > 0 then 311 begin 312 InfoBox(Restriction, TC_RESTRICT, MB_OK); 313 Close; 314 Exit; 315 end; 316 end; 316 begin 317 CheckAuthForNVAMeds(Restriction); 318 if Length(Restriction) > 0 then 319 begin 320 CheckAuthForNVAMeds(Restriction); 321 if Length(Restriction) > 0 then 322 begin 323 InfoBox(Restriction, TC_RESTRICT, MB_OK); 324 Close; 325 Exit; 326 end; 327 end; 328 end; // clerk restrictions 317 329 318 330 if DlgFormID = OD_MEDNONVA then FNonVADlg := TRUE; … … 363 375 LoadOTCStatements(lbStatements.Items); 364 376 FRemoveText := True; 377 FShrinkDrugMsg := False; 365 378 end; 366 379 … … 376 389 // TAccessibleStringGrid.UnwrapControl(grdDoses); 377 390 inherited; 391 frmFrame.pnlVisit.Enabled := true; 378 392 end; 379 393 … … 401 415 procedure TfrmODMedNVA.SetupDialog(OrderAction: Integer; const ID: string); 402 416 var 417 //AnInstr: string; 403 418 OrderID: string; 404 419 begin … … 429 444 Changing := False; 430 445 end; 431 446 { prevent the SIG from being part of the comments on pre-CPRS prescriptions } 447 {if (OrderAction in [ORDER_COPY, ORDER_EDIT]) and (cboDosage.Text = '') then //commented out by cla 2/27/04 - CQ 2591 448 begin 449 OrderID := Copy(Piece(ID, ';', 1), 2, Length(ID)); 450 AnInstr := TextForOrder(OrderID); 451 pnlMessage.TabOrder := 0; 452 OrderMessage(AnInstr); 453 if OrderAction = ORDER_COPY 454 then AnInstr := 'Copy: ' + AnInstr 455 else AnInstr := 'Change: ' + AnInstr; 456 Caption := AnInstr; 457 memComment.Clear; // sometimes the sig is in the comment 458 lbStatements.Clear; 459 end;} 432 460 ControlChange(Self); 433 461 end; … … 527 555 end; 528 556 529 530 557 { Navigate medication selection lists ------------------------------------------------------- } 531 558 … … 607 634 var 608 635 Offset: Integer; 636 SelRect: TRect; 609 637 begin 610 638 AListView.Selected.MakeVisible(FALSE); 639 SelRect := AListView.Selected.DisplayRect(drBounds); // CQ: 6636 640 FRowHeight := SelRect.Bottom - SelRect.Top; 611 641 Offset := AListView.Selected.Index - AListView.TopItem.Index; 612 642 Application.ProcessMessages; … … 803 833 Changing := True; 804 834 ResetOnMedChange; 805 if (FActiveMedList = lstAll) and (lstAll.Selected <> nil) then // orderable item 835 if (FActiveMedList = lstQuick) and (lstQuick.Selected <> nil) then // quick order 836 begin 837 ErrMsg := ''; 838 FIsQuickOrder := True; 839 FQOInitial := True; 840 Responses.QuickOrder := Integer(lstQuick.Selected.Data); 841 txtMed.Tag := StrToIntDef(Responses.IValueFor('ORDERABLE', 1), 0); 842 IsActivateOI(ErrMsg, txtMed.Tag); 843 if Length(ErrMsg)>0 then 844 begin 845 //btnSelect.Visible := False; 846 btnSelect.Enabled := False; 847 ShowMessage(ErrMsg); 848 Exit; 849 end; 850 if txtMed.Tag = 0 then 851 begin 852 //btnSelect.Visible := False; 853 btnSelect.Enabled := False; 854 txtMed.SetFocus; 855 Exit; 856 end; 857 SetOnMedSelect; // set up for this medication 858 SetOnQuickOrder; // insert quick order responses 859 ShowMedFields; 860 end 861 else if (FActiveMedList = lstAll) and (lstAll.Selected <> nil) then // orderable item 806 862 begin 807 863 MedIEN := Integer(lstAll.Selected.Data); … … 831 887 ShowMedFields; 832 888 end 833 else 889 else // no selection 834 890 begin 835 891 MessageBeep(0); … … 842 898 else ShowMedSelect; // show the selection fields 843 899 FNoZERO := False; 844 845 900 end; 846 901 … … 848 903 begin 849 904 cboDosage.Items.Clear; 905 chkPRN.Checked := False; 906 cboSchedule.ItemIndex := -1; 907 cboSchedule.Text := ''; // leave items intact 908 memComment.Lines.Clear; 850 909 cboDosage.Text := ''; 851 910 cboRoute.Items.Clear; … … 867 926 QOPiUnChk := False; 868 927 PKIEnviron := False; 869 if GetPKISite and GetPKIUse then //PKI check for crypto object on workstation 870 begin 871 try //PKI object creation 872 crypto := CoXuDigSigS.Create; 873 crypto.GetCSP; 874 StatusText(crypto.Reason); 875 PKIEnviron := True; 876 except 877 on E: Exception do 878 begin 879 {ShowMessage('An error has been encountered while trying to create PKI environment: '+ E.Message + 880 '. This order will be processed without Digital Signature encryption.');} 881 PKIEnviron := False; 882 end; 883 end; 884 crypto := nil; 885 end; 886 if PKIEnviron = False then 887 if GetPKISite then PKIEnviron := True; 928 if GetPKISite then PKIEnviron := True; 888 929 with CtrlInits do 889 930 begin … … 950 991 // end; 951 992 pnlMessage.TabOrder := cboDosage.TabOrder + 1; 952 OrderMessage(TextOf('Message')); 993 994 // DispOrderMessage(TextOf('Message')); 953 995 end; 954 996 end; … … 971 1013 with cboDosage do 972 1014 if ItemIndex > -1 then x := Text + TAB + Items[ItemIndex] else x := Text; 1015 973 1016 SetControl(cboRoute, 'ROUTE', i); 974 1017 with cboRoute do … … 1001 1044 else 1002 1045 SetDosage(IValueFor('INSTR', 1)); 1003 SetControl(cbo Route, 'ROUTE', 1);1046 SetControl(cboDosage, 'DOSAGE', 1); // CQ: HDS00007776 1004 1047 SetSchedule(IValueFor('SCHEDULE', 1)); 1005 1048 if (cboSchedule.Text = '') and FIsQuickOrder then … … 1174 1217 NonPRNPart: string; 1175 1218 begin 1219 1176 1220 cboSchedule.ItemIndex := -1; 1177 1221 if Pos('PRN', x) > 0 then … … 1179 1223 NonPRNPart := Trim(Copy(x, 1, Pos('PRN', x) - 1)); 1180 1224 cboSchedule.SelectByID(NonPRNPart); 1181 if cboSchedule.ItemIndex > -1 then chkPRN.Checked := True else 1182 begin 1183 cboSchedule.SelectByID(x); 1184 if cboSchedule.ItemIndex < 0 then cboSchedule.Text := x; 1185 end; 1225 if cboSchedule.ItemIndex < 0 then 1226 begin 1227 if NSSchedule then 1228 begin 1229 chkPRN.Checked := False; 1230 cboSchedule.Text := ''; 1231 end else 1232 begin 1233 chkPRN.Checked := True; 1234 cboSchedule.Items.Add(NonPRNPart); 1235 cboSchedule.Text := NonPRNPart; 1236 end; 1237 end else 1238 chkPRN.Checked := True; 1186 1239 end else 1187 1240 begin 1188 1241 chkPRN.Checked := False; 1189 1242 cboSchedule.SelectByID(x); 1190 if cboSchedule.ItemIndex < 0 then cboSchedule.Text := x; 1243 if cboSchedule.ItemIndex < 0 then 1244 begin 1245 if NSSchedule then 1246 begin 1247 cboSchedule.Text := ''; 1248 end 1249 else 1250 begin 1251 cboSchedule.Items.Add(x); 1252 cboSchedule.Text := x; 1253 cboSchedule.SelectByID(x); 1254 end; 1255 end; 1191 1256 end; 1192 1257 end; … … 1246 1311 var 1247 1312 DispDrug: Integer; 1248 x: string; 1249 begin 1250 inherited; 1251 UpdateRelated(False); 1313 begin 1314 inherited; 1315 UpdateRelated(False); 1252 1316 DispDrug := StrToIntDef(ValueOf(FLD_DRUG_ID), 0); 1253 1317 if cboDosage.Text = '' then //cla 3/18/04 … … 1256 1320 cboDosage.ItemIndex := -1; 1257 1321 end; 1322 { hds8084 1258 1323 if DispDrug > 0 then 1259 1324 begin 1260 1325 if not FSuppressMsg then begin 1261 1326 pnlMessage.TabOrder := cboDosage.TabOrder + 1; 1262 OrderMessage(DispenseMessage(DispDrug));1327 DispOrderMessage(DispenseMessage(DispDrug)); 1263 1328 end; 1264 1329 x := QuantityMessage(DispDrug); 1265 1330 end 1266 1331 else x := ''; 1332 } 1267 1333 with cboDosage do 1268 1334 if (ItemIndex > -1) and (Piece(Items[ItemIndex], U, 3) = 'NF') … … 1589 1655 then Responses.Update('ROUTE', 1, ValueOf(FLD_ROUTE_ID), x) 1590 1656 else Responses.Update('ROUTE', 1, '', x); 1591 // x := ValueOf(FLD_SCHEDULE); Responses.Update('SCHEDULE', 1, x, x);1657 x := ValueOf(FLD_SCHEDULE); Responses.Update('SCHEDULE', 1, x, x); // CQ:7297, 7534 1592 1658 end; 1593 1659 end; {case TabDose.TabIndex} … … 1598 1664 if Length(calStart.Text) > 0 then 1599 1665 Responses.Update('START', 1, calStart.Text, 'Start Date: ' + calStart.Text); //cla 7-17-03 1600 1666 1601 1667 x := ValueOf(FLD_STATEMENTS); 1602 1668 Responses.Update('STATEMENTS',1, TX_WPTYPE, x); … … 1697 1763 if ItemIndex > -1 then Result := Piece(Items[ItemIndex], U, 4); 1698 1764 FLD_SCHEDULE : begin 1699 Result := cboSchedule.Text;1765 Result := UpperCase(cboSchedule.Text); 1700 1766 if chkPRN.Checked then Result := Result + ' PRN'; 1701 1767 if UpperCase(Copy(Result, Length(Result) - 6, Length(Result))) = 'PRN PRN' … … 1768 1834 if Length(CurSchedule)=0 then Exit; 1769 1835 ASchedule := Trim(CurSchedule); 1770 if (Pos('^',ASchedule)=0) then1836 {if (Pos('^',ASchedule)=0) then //GE CQ7506 1771 1837 begin 1772 1838 PrnPos := Pos('PRN',ASchedule); 1773 1839 if (PrnPos > 1) and (CharAt(ASchedule,PrnPos-1) <> ';') then 1774 1840 Delete(ASchedule, PrnPos, Length(ASchedule)); 1775 end 1776 elseif (Pos('^',ASchedule)>0) then1841 end } 1842 if (Pos('^',ASchedule)>0) then 1777 1843 begin 1778 1844 PrnPos := Pos('PRN',ASchedule); … … 1929 1995 begin 1930 1996 Val(TabletNum, ie, code); 1997 if ie = 0 then begin end; 1931 1998 if code <> 0 then 1932 1999 Exit; … … 1967 2034 1968 2035 procedure TfrmODMedNVA.chkPRNClick(Sender: TObject); 1969 begin 1970 inherited; 1971 if chkPRN.Checked then lblAdminTime.Caption := '' 2036 var 2037 tempSch: string; 2038 PRNPos: integer; 2039 begin 2040 inherited; 2041 {if chkPRN.Checked then lblAdminTime.Caption := '' 1972 2042 else 1973 2043 begin 1974 2044 lblAdminTime.Caption := FAdminTimeLbl; 2045 end; 2046 ControlChange(Self); 2047 } 2048 if chkPRN.Checked then 2049 begin 2050 lblAdminTime.Caption := ''; 2051 PrnPos := Pos('PRN',cboSchedule.Text); 2052 if (PrnPos < 1) then 2053 UpdateStartExpires(cboSchedule.Text + ' PRN'); 2054 end 2055 else 2056 begin 2057 if Length(Trim(cboSchedule.Text))>0 then 2058 begin 2059 tempSch := ';'+Trim(cboSchedule.Text); 2060 UpdateStartExpires(tempSch); 2061 end; 2062 lblAdminTime.Caption := FAdminTimeLbl; 2063 1975 2064 end; 1976 2065 ControlChange(Self); … … 2194 2283 end; 2195 2284 2285 procedure TfrmODMedNVA.DispOrderMessage(const AMessage: string); 2286 begin 2287 if ContainsVisibleChar(AMessage) then 2288 begin 2289 image1.Visible := True; 2290 memDrugMsg.Visible := True; 2291 image1.Picture.Icon.Handle := LoadIcon(0, IDI_ASTERISK); 2292 memDrugMsg.Lines.Clear; 2293 memDrugMsg.Lines.SetText(PChar(AMessage)); 2294 if fShrinkDrugMsg then 2295 begin 2296 pnlBottom.Height := pnlBottom.Height + memDrugMsg.Height + 2; 2297 fShrinkDrugMsg := False; 2298 end; 2299 end else 2300 begin 2301 image1.Visible := False; 2302 memDrugMsg.Visible := False; 2303 if not fShrinkDrugMsg then 2304 // begin 2305 // pnlBottom.Height := pnlBottom.Height - memDrugMsg.Height - 2; 2306 fShrinkDrugMsg := True; 2307 // end; 2308 end; 2309 end; 2310 2196 2311 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedOIFA.dfm
r459 r460 1 inherited frmODMedOIFA: TfrmODMedOIFA 2 Width = 316 1 object frmODMedOIFA: TfrmODMedOIFA 2 Left = 0 3 Top = 0 4 Width = 313 3 5 Height = 205 4 6 Caption = 'Formulary Alternatives' 7 Color = clBtnFace 8 Font.Charset = DEFAULT_CHARSET 9 Font.Color = clWindowText 10 Font.Height = -11 11 Font.Name = 'MS Sans Serif' 12 Font.Style = [] 13 FormStyle = fsStayOnTop 14 OldCreateOrder = True 15 Position = poMainFormCenter 16 OnClose = FormClose 5 17 OnCreate = FormCreate 18 OnShow = FormShow 6 19 PixelsPerInch = 96 7 20 TextHeight = 13 8 21 object Label1: TLabel 9 Left = 810 Top = 811 Width = 27322 Left = 0 23 Top = 0 24 Width = 305 12 25 Height = 13 26 Align = alTop 13 27 Caption = 'The selected drug is not in the formulary. Alternatives are:' 14 28 end 15 29 object Label2: TStaticText 16 Left = 817 Top = 1 2718 Width = 25030 Left = 0 31 Top = 134 32 Width = 305 19 33 Height = 17 34 Align = alBottom 20 35 Caption = 'Do you wish to use the selected alternative instead?' 21 TabOrder = 336 TabOrder = 1 22 37 end 23 38 object lstFormAlt: TORListBox 24 Left = 8 25 Top = 22 26 Width = 292 27 Height = 97 39 Left = 0 40 Top = 13 41 Width = 305 42 Height = 121 43 Align = alClient 28 44 ItemHeight = 13 29 45 ParentShowHint = False … … 36 52 Pieces = '2' 37 53 end 38 object cmdYes: TButton 39 Left = 74 40 Top = 148 41 Width = 72 42 Height = 21 43 Caption = 'Yes' 44 Default = True 45 Enabled = False 46 TabOrder = 1 47 OnClick = cmdYesClick 48 end 49 object cmdNo: TButton 50 Left = 162 51 Top = 148 52 Width = 72 53 Height = 21 54 Cancel = True 55 Caption = 'No' 56 TabOrder = 2 57 OnClick = cmdNoClick 54 object btnPanel: TPanel 55 Left = 0 56 Top = 151 57 Width = 305 58 Height = 27 59 Align = alBottom 60 BevelOuter = bvNone 61 TabOrder = 3 62 object cmdYes: TButton 63 Left = 74 64 Top = 3 65 Width = 72 66 Height = 21 67 Caption = 'Yes' 68 Default = True 69 Enabled = False 70 TabOrder = 0 71 OnClick = cmdYesClick 72 end 73 object cmdNo: TButton 74 Left = 162 75 Top = 3 76 Width = 72 77 Height = 21 78 Cancel = True 79 Caption = 'No' 80 TabOrder = 1 81 OnClick = cmdNoClick 82 end 58 83 end 59 84 end -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMedOIFA.pas
r459 r460 5 5 uses 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 fAutoSz, StdCtrls, ORCtrls;7 StdCtrls, ORCtrls, ExtCtrls, fAutoSz; 8 8 9 9 type 10 TfrmODMedOIFA = class(T frmAutoSz)10 TfrmODMedOIFA = class(TForm) 11 11 Label1: TLabel; 12 12 lstFormAlt: TORListBox; 13 13 Label2: TStaticText; 14 btnPanel: TPanel; 14 15 cmdYes: TButton; 15 16 cmdNo: TButton; … … 18 19 procedure cmdNoClick(Sender: TObject); 19 20 procedure lstFormAltClick(Sender: TObject); 21 procedure FormShow(Sender: TObject); 22 procedure FormClose(Sender: TObject; var Action: TCloseAction); 20 23 private 21 24 FSelected: string; … … 30 33 {$R *.DFM} 31 34 32 uses ORFn, rODMeds ;35 uses ORFn, rODMeds, rMisc; 33 36 34 37 procedure CheckFormularyOI(var AnIEN: Integer; var AName: string; ForInpatient: Boolean); … … 130 133 end; 131 134 135 procedure TfrmODMedOIFA.FormShow(Sender: TObject); 136 begin 137 inherited; 138 SetFormPosition(Self); 139 end; 140 141 procedure TfrmODMedOIFA.FormClose(Sender: TObject; 142 var Action: TCloseAction); 143 begin 144 inherited; 145 SaveUserBounds(Self); 146 end; 147 132 148 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMeds.dfm
r459 r460 1 1 inherited frmODMeds: TfrmODMeds 2 Left = 2023 Top = 612 Left = 519 3 Top = 204 4 4 Width = 584 5 Height = 4945 Height = 515 6 6 HorzScrollBar.Range = 558 7 HorzScrollBar.Visible = True8 7 VertScrollBar.Range = 399 9 VertScrollBar.Visible = True10 AutoScroll = False11 8 Caption = 'Medication Order' 12 9 Constraints.MinHeight = 325 … … 15 12 DesignSize = ( 16 13 576 17 4 60)14 488) 18 15 PixelsPerInch = 96 19 16 TextHeight = 13 … … 22 19 Top = 34 23 20 Width = 580 24 Height = 39221 Height = 413 25 22 Anchors = [akLeft, akTop, akRight, akBottom] 26 23 BevelOuter = bvNone … … 71 68 Top = 137 72 69 Width = 580 73 Height = 2 5570 Height = 276 74 71 Align = alClient 75 72 BevelInner = bvLowered … … 101 98 end 102 99 inherited memOrder: TCaptionMemo 103 Top = 4 27100 Top = 448 104 101 Width = 502 105 102 Anchors = [akLeft, akRight, akBottom] … … 122 119 object btnSelect: TButton [3] 123 120 Left = 515 124 Top = 4 27121 Top = 448 125 122 Width = 72 126 123 Height = 21 … … 134 131 inherited cmdAccept: TButton 135 132 Left = 514 136 Top = 4 27133 Top = 448 137 134 Anchors = [akRight, akBottom] 138 135 TabOrder = 6 … … 142 139 inherited cmdQuit: TButton 143 140 Left = 514 144 Top = 4 52141 Top = 473 145 142 Width = 51 146 143 Anchors = [akRight, akBottom] … … 159 156 Top = 34 160 157 Width = 580 161 Height = 392158 Height = 413 162 159 Anchors = [akLeft, akTop, akRight, akBottom] 163 160 BevelOuter = bvNone … … 170 167 Top = 0 171 168 Width = 580 172 Height = 1 73169 Height = 184 173 170 Align = alClient 174 171 Constraints.MinHeight = 80 … … 176 173 DesignSize = ( 177 174 580 178 1 73)175 184) 179 176 object lblRoute: TLabel 180 177 Left = 280 … … 197 194 end 198 195 object txtNSS: TLabel 199 Left = 4 52196 Left = 442 200 197 Top = 22 201 Width = 7 6198 Width = 71 202 199 Height = 13 203 200 Anchors = [akTop, akRight] 204 Caption = '( Non-standard?)'201 Caption = '(Day-Of-Week)' 205 202 Font.Charset = DEFAULT_CHARSET 206 203 Font.Color = clBlue … … 217 214 Top = 36 218 215 Width = 580 219 Height = 1 32216 Height = 143 220 217 Anchors = [akLeft, akTop, akRight, akBottom] 221 218 ColCount = 6 … … 280 277 Top = 36 281 278 Width = 279 282 Height = 1 32279 Height = 143 283 280 Anchors = [akLeft, akTop, akRight, akBottom] 284 281 Style = orcsSimple … … 302 299 OnClick = cboDosageClick 303 300 OnExit = cboDosageExit 301 OnKeyUp = cboDosageKeyUp 304 302 CharsNeedMatch = 1 305 303 UniqueAutoComplete = True … … 309 307 Top = 36 310 308 Width = 113 311 Height = 1 32309 Height = 143 312 310 Anchors = [akTop, akRight, akBottom] 313 311 Style = orcsSimple … … 339 337 Top = 36 340 338 Width = 178 341 Height = 1 32339 Height = 143 342 340 Anchors = [akTop, akRight, akBottom] 343 341 Style = orcsSimple … … 426 424 OnExit = cboXDosageExit 427 425 OnKeyDown = memMessageKeyDown 426 OnKeyUp = cboXDosageKeyUp 428 427 CharsNeedMatch = 1 429 428 UniqueAutoComplete = True … … 546 545 Width = 38 547 546 Height = 19 547 Hint = 'A duration must be defined if using "Then" as a sequence.' 548 548 Caption = 'then' 549 549 Glyph.Data = { … … 556 556 Layout = blGlyphRight 557 557 NumGlyphs = 2 558 ParentShowHint = False 559 ShowHint = True 558 560 Spacing = 1 559 561 OnClick = btnXSequenceClick 562 end 563 object SpeedButton1: TSpeedButton 564 Left = 16 565 Top = 16 566 Width = 23 567 Height = 22 560 568 end 561 569 end … … 598 606 OnChange = cboXScheduleChange 599 607 OnClick = cboXScheduleClick 608 OnEnter = cboXScheduleEnter 600 609 OnExit = cboXScheduleExit 601 610 OnKeyDown = memMessageKeyDown … … 617 626 object pnlBottom: TPanel 618 627 Left = 0 619 Top = 1 73628 Top = 184 620 629 Width = 580 621 Height = 2 19630 Height = 229 622 631 Align = alBottom 623 632 TabOrder = 6 624 633 DesignSize = ( 625 634 580 626 2 19)635 229) 627 636 object lblComment: TLabel 628 637 Left = 4 … … 666 675 end 667 676 object Image1: TImage 668 Left = 1669 Top = 1 83677 Left = 5 678 Top = 177 670 679 Width = 31 671 680 Height = 31 … … 686 695 Top = 2 687 696 Width = 513 688 Height = 4 4697 Height = 43 689 698 Anchors = [akLeft, akTop, akRight] 690 699 ScrollBars = ssVertical … … 707 716 Width = 60 708 717 Height = 21 718 AutoSize = False 709 719 TabOrder = 1 710 720 Text = '0' 711 721 OnChange = txtSupplyChange 722 OnClick = txtSupplyClick 712 723 Caption = 'Days Supply' 713 724 end … … 728 739 Width = 60 729 740 Height = 21 741 AutoSize = False 730 742 TabOrder = 3 731 743 Text = '0' 732 744 OnChange = txtQuantityChange 745 OnClick = txtQuantityClick 733 746 Caption = 'Quantity' 734 747 end … … 750 763 Width = 30 751 764 Height = 21 765 AutoSize = False 752 766 TabOrder = 5 753 767 Text = '0' 754 768 OnChange = ControlChange 769 OnClick = txtRefillsClick 755 770 Caption = 'Refills' 756 771 end … … 817 832 ItemTipColor = clWindow 818 833 ItemTipEnable = True 819 ListItemsOnly = False834 ListItemsOnly = True 820 835 LongList = False 821 836 LookupPiece = 0 … … 825 840 SynonymChars = '<>' 826 841 TabOrder = 10 827 Text = 'ROUTINE'828 842 OnChange = ControlChange 829 843 CharsNeedMatch = 1 … … 842 856 end 843 857 object lblAdminTime: TStaticText 844 Left = 26 7845 Top = 1 04858 Left = 262 859 Top = 120 846 860 Width = 4 847 861 Height = 4 848 862 TabOrder = 16 849 Visible = False850 863 end 851 864 object stcPI: TStaticText … … 885 898 object memDrugMsg: TMemo 886 899 Left = 37 887 Top = 1 83900 Top = 176 888 901 Width = 533 889 Height = 34902 Height = 51 890 903 Anchors = [akLeft, akRight, akBottom] 891 904 Color = clCream -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODMeds.pas
r459 r460 86 86 memDrugMsg: TMemo; 87 87 txtNSS: TLabel; 88 SpeedButton1: TSpeedButton; 88 89 procedure FormCreate(Sender: TObject); 89 90 procedure btnSelectClick(Sender: TObject); … … 186 187 procedure cboScheduleExit(Sender: TObject); 187 188 procedure cboXScheduleExit(Sender: TObject); 189 procedure cboDosageKeyUp(Sender: TObject; var Key: Word; 190 Shift: TShiftState); 191 procedure cboXDosageKeyUp(Sender: TObject; var Key: Word; 192 Shift: TShiftState); 193 procedure txtSupplyClick(Sender: TObject); 194 procedure txtQuantityClick(Sender: TObject); 195 procedure txtRefillsClick(Sender: TObject); 196 procedure WMClose(var Msg : TWMClose); message WM_CLOSE; 197 procedure cboXScheduleEnter(Sender: TObject); 188 198 //procedure btnNSSClick(Sender: TObject); 189 199 private … … 236 246 FOrigiMsgDisp: boolean; 237 247 FNSSOther: boolean; 238 FFromClick: boolean;248 {selection} 239 249 FShowPnlXScheduleOk : boolean; 240 250 FRemoveText : Boolean; 241 {selection}251 FSmplPRNChkd: Boolean; 242 252 procedure ChangeDelayed; 243 253 function FindQuickOrder(const x: string): Integer; … … 302 312 // function ValidateRoute(RouteCombo: TORComboBox) : Boolean; Removed based on Site feeback. See CQ: 7518 303 313 function IsSupplyAndOutPatient : boolean; 314 function GetSchedListIndex(SchedCombo: TORComboBox; pSchedule: String):integer; 304 315 protected 305 316 procedure InitDialog; override; 306 317 procedure Validate(var AnErrMsg: string); override; 307 318 public 319 ARow1: integer; 308 320 procedure SetupDialog(OrderAction: Integer; const ID: string); override; 309 321 procedure CheckDecimal(var AStr: string); … … 319 331 320 332 uses rCore, uCore, ORFn, rODMeds, rODBase, rOrders, fRptBox, fODMedOIFA, 321 uAccessibleStringGrid, uOrders, fOtherSchedule, StrUtils ;333 uAccessibleStringGrid, uOrders, fOtherSchedule, StrUtils, fFrame; 322 334 323 335 const … … 329 341 COL_DURATION = 4; 330 342 COL_SEQUENCE = 5; 343 COL_CHKXPRN = 6; 331 344 VAL_DOSAGE = 10; 332 345 VAL_ROUTE = 20; … … 334 347 VAL_DURATION = 40; 335 348 VAL_SEQUENCE = 50; 349 VAL_CHKXPRN = 60; 336 350 TAB = #9; 337 351 {field identifiers} … … 387 401 TC_NO_DEA = 'DEA# Required'; 388 402 TX_NO_MED = 'Medication must be selected.'; 403 TX_NO_SEQ = 'Missing one or more conjunction.'; 389 404 TX_NO_DOSE = 'Dosage must be entered.'; 390 405 TX_DOSE_NUM = 'Dosage may not be numeric only'; … … 422 437 x: string; 423 438 begin 439 frmFrame.pnlVisit.Enabled := false; 424 440 AutoSizeDisabled := True; 425 441 inherited; 426 442 btnXDuration.Align := alClient; 427 443 AllowQuickOrder := True; 444 FSmplPRNChkd := False; // GE CQ7585 428 445 CheckAuthForMeds(x); 429 446 if Length(x) > 0 then … … 456 473 {if not FInptDlg then } Responses.SetPromptFormat('INSTR', '@'); 457 474 StatusText('Loading Schedules'); 458 LoadSchedules(cboSchedule.Items, FInptDlg); 475 //if (Self.EvtID > 0) then LoadSchedules(cboSchedule.Items) 476 //else LoadSchedules(cboSchedule.Items, FInptDlg); 477 LoadSchedules(cboSchedule.Items, FInptDlg); 459 478 StatusText(''); 460 479 if FInptDlg then SetControlsInpatient else SetControlsOutpatient; … … 466 485 begin 467 486 txtNss.Visible := True; 487 //cboSchedule.ListItemsOnly := True; 488 //cboXSchedule.ListItemsOnly := True; 468 489 end; 469 490 with grdDoses do … … 537 558 FAllDrugs.Free; 538 559 TAccessibleStringGrid.UnwrapControl(grdDoses); 560 frmFrame.pnlVisit.Enabled := true; 539 561 inherited; 540 562 end; … … 558 580 FQOInitial := False; 559 581 FNSSOther := False; 560 FFromClick := False;561 582 end; 562 583 563 584 procedure TfrmODMeds.SetupDialog(OrderAction: Integer; const ID: string); 564 585 var 565 AnInstr, OrderID, nsSch : string;586 AnInstr, OrderID, nsSch, Text: string; 566 587 ix: integer; 567 588 begin … … 606 627 begin 607 628 SetSchedule(nsSch); 629 {cboSchedule.SelectByID(nsSch); 630 if cboSchedule.ItemIndex < 0 then 631 begin 632 cboSchedule.Items.Add(nsSch); 633 cboSchedule.ItemIndex := cboSchedule.Items.IndexOf(nsSch); 634 end;} 608 635 end; 609 636 end; … … 611 638 end; 612 639 end; //nss 613 UpdateRelated(FALSE); 640 if ((OrderAction <> Order_COPY) and (OrderAction <> Order_EDIT)) or 641 (XfInToOutNow = true) then UpdateRelated(FALSE); //AGP Change 614 642 Changing := False; 615 643 end; … … 624 652 then AnInstr := 'Copy: ' + AnInstr 625 653 else AnInstr := 'Change: ' + AnInstr; 626 Caption := AnInstr; 654 Text := AnsiReplaceText(AnInstr,CRLF,''); 655 Caption := Text; 627 656 memComment.Clear; // sometimes the sig is in the comment 628 657 end; … … 654 683 // and is not an outpaitent order, then display error text to require route 655 684 if (Length(x) = 0) and (Not IsSupplyAndOutPatient) then 685 begin 686 if cboRoute.Showing = true then cboRoute.SetFocus; //CQ: 7467 656 687 SetError(TX_NO_ROUTE); 688 end; 657 689 if (Length(x) > 0) and NeedLookup then 658 690 begin 659 691 LookupRoute(x, RouteID, RouteAbbr); 660 692 if RouteID = '0' 661 then SetError(TX_NF_ROUTE) 693 then 694 begin 695 if cboRoute.Showing = true then cboRoute.SetFocus; //CQ: 7467 696 SetError(TX_NF_ROUTE); 697 end 662 698 else Responses.Update('ROUTE', AnInstance, RouteID, RouteAbbr); 663 699 end; … … 678 714 else if (Length(tmpX) = 0) and FInptDlg and ScheduleRequired(txtMed.Tag, ARoute, ADrug) 679 715 then SetError(TX_NO_SCHED); 680 681 716 if Length(tmpX) > 0 then 682 717 begin … … 706 741 if (ValueOfResponse(FLD_DRUG_ID, i) = '') then 707 742 begin 708 if not ContainsAlpha(Responses.IValueFor('INSTR', i)) then SetError(TX_DOSE_NUM); 709 if Length(Responses.IValueFor('INSTR', i)) > 60 then SetError(TX_DOSE_LEN); 743 if not ContainsAlpha(Responses.IValueFor('INSTR', i)) then 744 begin 745 SetError(TX_DOSE_NUM); 746 if tabDose.TabIndex = TI_DOSE then 747 cboDosage.SetFocus; //CQ: 7467 748 end; 749 if Length(Responses.IValueFor('INSTR', i)) > 60 then 750 begin 751 SetError(TX_DOSE_LEN); 752 cboDosage.SetFocus; //CQ: 7467 753 end; 710 754 end; 711 755 ValidateRoute(Responses.EValueFor('ROUTE', i), Responses.IValueFor('ROUTE', i) = '', i); … … 713 757 i := Responses.NextInstance('INSTR', i); 714 758 end; 759 //AGP Change 26.45 Fix for then/and conjucntion PSI-04-069 760 if self.tabDose.TabIndex = 1 then 761 begin 762 for i := 2 to self.grdDoses.RowCount do 763 begin 764 if ((ValFor(COL_DOSAGE, i-1) <> '') and (ValFor(COL_DOSAGE, i) <> '')) and (ValFor(COL_SEQUENCE,i-1) = '') then 765 begin 766 SetError(TX_NO_SEQ); 767 Exit; 768 end; 769 end; 770 end; 715 771 if not FInptDlg then // outpatient stuff 716 772 begin … … 953 1009 UniqueText := False; 954 1010 FFromSelf := True; 1011 {AutoSelection is only based upon uniquely matching characters. 1012 Several CQs have been resolved relating to this issue: 1013 See CQ: 1014 7326 - Auto complete does not work correctly if user has quick orders in Medication list 1015 7328 - PSI-05-016: TAM-0205-31170 Med Error due to pre-populated med screen 1016 6715 PSI-04-044 Orders: NJH-0804-20315 Physician unable to enter medication order 1017 } 955 1018 if UniqueText then 956 1019 begin … … 1129 1192 QOQuantityStr := ''; 1130 1193 btnSelect.SetFocus; // let the exit events finish 1194 1131 1195 if pnlMeds.Visible then // display the medication fields 1132 1196 begin … … 1294 1358 lblQtyMsg.Caption := ''; 1295 1359 lblQuantity.Caption := 'Quantity'; 1360 FSmplPRNChkd := chkPRN.Checked; // GE CQ7585 1296 1361 chkPRN.Checked := False; 1297 1362 FLastUnits := ''; … … 1318 1383 QOPiUnChk := False; 1319 1384 PKIEnviron := False; 1320 if GetPKISite and GetPKIUse then //PKI check for crypto object on workstation 1321 begin 1322 try //PKI object creation 1323 crypto := CoXuDigSigS.Create; 1324 crypto.GetCSP; 1325 StatusText(crypto.Reason); 1326 PKIEnviron := True; 1327 except 1328 on E: Exception do 1329 begin 1330 {ShowMessage('An error has been encountered while trying to create PKI environment: '+ E.Message + 1331 '. This order will be processed without Digital Signature encryption.');} 1332 PKIEnviron := False; 1333 end; 1334 end; 1335 crypto := nil; 1336 end; 1337 if PKIEnviron = False then 1338 if GetPKISite then PKIEnviron := True; 1385 if GetPKISite then PKIEnviron := True; 1339 1386 with CtrlInits do 1340 1387 begin … … 1381 1428 end; 1382 1429 pnlTop.Height := pnlFields.Height - pnlBottom.Height; 1383 chkDoseNow.Top := memComment.Top + memComment.Height + 4;1430 chkDoseNow.Top := memComment.Top + memComment.Height + 1; 1384 1431 lblPriority.Top := memcomment.Top + memComment.Height + 1; 1385 1432 cboPriority.Top := lblPriority.Top + lblPriority.Height; 1386 1433 lblAdminTime.Left := chkDoseNow.Left; 1387 lblAdminTime.Top := chkDoseNow.Top + chkDoseNow.Height +1;1434 lblAdminTime.Top := chkDoseNow.Top + chkDoseNow.Height - 1; 1388 1435 end else 1389 1436 begin … … 1456 1503 SetDosage(IValueFor('INSTR', i)); 1457 1504 with cboDosage do 1458 if ItemIndex > -1 then x := Text + TAB + Items[ItemIndex] else x := Text; 1505 if ItemIndex > -1 then x := Text + TAB + Items[ItemIndex] 1506 else x := IValueFor('INSTR',i); //AGP Change 26.41 for CQ 9102 PSI-05-015 affect copy and edit functionality 1459 1507 grdDoses.Cells[COL_DOSAGE, i] := x; 1460 1508 SetControl(cboRoute, 'ROUTE', i); … … 1474 1522 if ItemIndex > -1 then x := x + TAB + Items[ItemIndex]; 1475 1523 grdDoses.Cells[COL_SCHEDULE, i] := x; 1524 if chkPRN.Checked = True then grdDoses.Cells[COL_CHKXPRN,i] := '1'; 1476 1525 grdDoses.Cells[COL_DURATION, i] := IValueFor('DAYS', i); 1477 1526 if IValueFor('CONJ', i) = 'A' then x := 'AND' … … 1597 1646 txtMed.SetFocus; 1598 1647 FDrugID := ''; 1599 ShowOrderMessage( False );1648 //ShowOrderMessage( False ); 1600 1649 end; 1601 1650 … … 1628 1677 1629 1678 procedure TfrmODMeds.ShowControlsSimple; 1630 var1631 dosagetxt: string;1679 //var 1680 //dosagetxt: string; 1632 1681 begin 1633 1682 //Commented out, no longer using CharsNeedMatch Property … … 1661 1710 procedure TfrmODMeds.ShowControlsComplex; 1662 1711 1663 procedure MoveCombo(SrcCombo, DestCombo: TORComboBox); 1664 begin 1665 DestCombo.Items.Clear; 1666 DestCombo.Items.Assign(SrcCombo.Items); 1667 DestCombo.ItemIndex := SrcCombo.ItemIndex; 1668 DestCombo.Text := Piece(SrcCombo.Text, TAB, 1); 1669 end; 1670 1671 var 1672 dosagetxt: string; 1712 procedure MoveCombo(SrcCombo, DestCombo: TORComboBox; CompSch: boolean = false); //AGP Changes 26.12 PSI-04-63 1713 var 1714 cnt,i,index: integer; 1715 node,text: string; 1716 begin 1717 if (CompSch = false) or not (FInptDlg)then 1718 begin 1719 DestCombo.Items.Clear; 1720 DestCombo.Items.Assign(SrcCombo.Items); 1721 DestCombo.ItemIndex := SrcCombo.ItemIndex; 1722 DestCombo.Text := Piece(SrcCombo.Text, TAB, 1); 1723 end; 1724 if (CompSch = true) and (FInptDlg) then // AGP Changes 26.12 PSI-04-63 1725 begin 1726 //AGP change 26.34 CQ 7201,6902 fix the problem with one time schedule still showing for inpatient complex orders 1727 DestCombo.ItemIndex := -1; 1728 Text := SrcCombo.Text; 1729 index := SrcCombo.ItemIndex; 1730 cnt := 0; 1731 for i := 0 to SrcCombo.Items.Count - 1 do 1732 begin 1733 node := SrcCombo.Items.Strings[i]; 1734 if piece(node,U,3) <> 'O' then 1735 begin 1736 DestCombo.Items.Add(SrcCombo.Items.Strings[i]); 1737 if Piece(node,U,1) = text then DestCombo.ItemIndex := index - cnt; 1738 end 1739 else cnt := cnt+1; 1740 end; 1741 end; 1742 end; 1743 1744 //var 1745 //dosagetxt: string; 1673 1746 begin 1674 1747 tabDose.TabIndex := TI_COMPLEX; 1675 1748 MoveCombo(cboDosage, cboXDosage); 1676 1749 MoveCombo(cboRoute, cboXRoute); 1677 MoveCombo(cboSchedule, cboXSchedule );1750 MoveCombo(cboSchedule, cboXSchedule, true); //AGP Changes 26.12 PSI-04-063 1678 1751 grdDoses.Visible := True; 1679 1752 btnXInsert.Visible := True; … … 1689 1762 ActiveControl := grdDoses; 1690 1763 //Commented out, no longer using CharsNeedMatch Property 1691 {NumCharsForMatch := 0;1764 { NumCharsForMatch := 0; 1692 1765 for i := 0 to cboXDosage.Items.Count - 1 do //find the shortest unit dose text on fifth piece 1693 1766 begin … … 1719 1792 Break; 1720 1793 end; 1721 if ((DoseIndex < 0) and (not IsTransferAction)) then Text := x 1722 else if ((DoseIndex < 0) and IsTransferAction) then Text := '' 1794 if DoseIndex <0 then Text := x 1795 (* if ((DoseIndex < 0) and (not IsTransferAction)) then Text := x 1796 else if ((DoseIndex < 0) and IsTransferAction) and (DosageTab = False) then Text := '' 1797 else if ((DoseIndex < 0) and IsTransferAction) and (DosageTab = True) then Text := x *) 1723 1798 else ItemIndex := DoseIndex; 1724 1799 end; … … 1740 1815 procedure TfrmODMeds.SetSchedule(const x: string); 1741 1816 var 1742 1817 NonPRNPart: string; 1743 1818 begin 1744 1819 cboSchedule.ItemIndex := -1; 1745 if Pos('PRN', x) > 0 then 1820 //AGP change CQ 10593, remove code to match the new expected first dose code 1821 //PSI-05-026 1822 (* if Pos('PRN', x) > 0 then 1746 1823 begin 1747 1824 NonPRNPart := Trim(Copy(x, 1, Pos('PRN', x) - 1)); … … 1762 1839 chkPRN.Checked := True; 1763 1840 end else 1764 begin 1841 begin *) 1765 1842 chkPRN.Checked := False; 1766 1843 cboSchedule.SelectByID(x); … … 1773 1850 else 1774 1851 begin 1775 cboSchedule.Items.Add(x); 1776 cboSchedule.Text := x; 1777 cboSchedule.SelectByID(x); 1852 if Pos('PRN', x) > 0 then 1853 begin 1854 NonPRNPart := Trim(Copy(x, 1, Pos('PRN', x) - 1)); 1855 chkPRN.Checked := True; 1856 cboSchedule.SelectByID(NonPRNPart); 1857 if cboSchedule.ItemIndex > -1 then EXIT; 1858 cboSchedule.Items.Add(NonPRNPart); 1859 cboSchedule.Text := NonPRNPart; 1860 cboSchedule.SelectByID(NonPRNPart); 1861 EXIT; 1862 end; 1863 cboSchedule.Items.Add(x); 1864 cboSchedule.Text := x; 1865 cboSchedule.SelectByID(x); 1778 1866 end; 1779 end;1780 1867 end; 1781 1868 end; 1782 1869 1783 1870 { Medication edit --------------------------------------------------------------------------- } 1784 1785 1871 procedure TfrmODMeds.tabDoseChange(Sender: TObject); 1786 1872 var 1787 x: string; 1788 1789 begin 1790 inherited; 1873 //text,x, tmpsch: string; 1874 text, x: string; 1875 reset: integer; 1876 begin 1877 inherited; 1878 reset := 0; 1879 //AGP change for CQ 6521 added warning message 1880 //AGP Change for CQ 7508 added tab information 1881 //GE Change warning message functionality show only cq 7590 1882 // when tab changes from complex to simple. 1883 //AGP Change for CQ 7834 and 7832 change text and added check to see if some values have been completed in row 1 1884 if (tabDose.TabIndex = 0) and ((ValFor(COL_DOSAGE, 1)<>'') or (ValFor(COL_SCHEDULE, 1)<>'') or (ValFor(COL_DURATION, 1)<>'') or 1885 (ValFor(COL_SEQUENCE, 1)<>'')) then 1886 begin 1887 text := 'By switching to the Dosage Tab, ' ; 1888 if (InfoBox(text +'you will lose all data on this screen. Click OK to continue or Cancel','Warning',MB_OKCANCEL)=IDCANCEL) then 1889 begin 1890 if tabDose.TabIndex = 1 then tabDose.TabIndex := 0 1891 else tabDose.TabIndex := 1; 1892 reset := 1; 1893 end; 1894 end; 1791 1895 case tabDose.TabIndex of 1792 1896 TI_DOSE: begin 1897 cboXSchedule.Clear; // Added to Fix CQ: 9603 1793 1898 // clean up responses? 1794 1899 FSuppressMsg := FOrigiMsgDisp; 1795 1900 ShowControlsSimple; 1796 ResetOnTabChange; 1901 if reset = 0 then ResetOnTabChange; 1902 txtNss.Left := lblSchedule.Left + lblSchedule.Width + 2; 1797 1903 if (FInptDlg) then txtNss.Visible := True 1798 1904 else txtNss.Visible := False; … … 1805 1911 TI_COMPLEX: begin 1806 1912 FSuppressMsg := FOrigiMsgDisp; 1913 if reset = 1 then exit; 1807 1914 ShowControlsComplex; 1808 1915 ResetOnTabChange; 1916 txtNss.Left := grdDoses.Left + grdDoses.ColWidths[0] + grdDoses.ColWidths[1] + grdDoses.ColWidths[2] + 3; 1809 1917 txtNss.Visible := False; 1810 if txtNss.Visible then txtNss.Visible := False;1811 1918 x := cboXDosage.Text + TAB; 1812 1919 with cboXDosage do if ItemIndex > -1 then x := x + Items[ItemIndex]; … … 1818 1925 with cboXSchedule do if ItemIndex > -1 then x := x + Items[ItemIndex]; 1819 1926 grdDoses.Cells[COL_SCHEDULE, 1] := x; 1927 UpdateStartExpires(ValFor(VAL_SCHEDULE,1)); 1820 1928 ControlChange(Self); 1821 1929 end; {TI_COMPLEX} 1822 1930 end; {case} 1823 1931 end; 1932 1824 1933 1825 1934 procedure TfrmODMeds.lblGuidelineClick(Sender: TObject); … … 1901 2010 1902 2011 procedure TfrmODMeds.cboDosageChange(Sender: TObject); 1903 var 1904 tmpIdx: integer; 1905 tmpTxt,tmpTxt1: string; 1906 begin 1907 inherited; 1908 //if length(cboDosage.Text) < 1 then 1909 // cboDosage.ItemIndex := -1; 2012 begin 2013 inherited; 1910 2014 UpdateRelated; 1911 2015 end; … … 1946 2050 begin 1947 2051 inherited; 1948 //if cboRoute.Text = '' then1949 // cboRoute.ItemIndex := -1;1950 2052 with cboRoute do 1951 2053 if ItemIndex > -1 then … … 1994 2096 begin 1995 2097 inherited; 1996 if (FInptDlg) and (cboSchedule.Text = 'OTHER') then2098 if (FInptDlg) and (cboSchedule.Text = 'OTHER') then 1997 2099 begin 1998 2100 othSch := CreateOtherScheduel; … … 2004 2106 end; 2005 2107 end; 2006 //if cboSchedule.Text = '' then2007 // cboSchedule.ItemIndex := -1;2008 2108 //Remove Deletion of Text, since we are changing the validation to be on exit of the control. 2009 2109 { if (Length(cboSchedule.Text)>0) and (cboSchedule.ItemIndex < 0) and FInptDlg then … … 2116 2216 if Length(Route) = 0 then Route := ValueOf(FLD_ROUTE_NM); 2117 2217 Schedule := ValueOf(FLD_SCHED_EX); 2118 if Length(Schedule) = 0 then Schedule := ValueOf(FLD_SCHEDULE); 2218 (* Schedule := Piece(Temp,U,1); 2219 if Piece(Temp,U,3) = '1' then Schedule := Schedule + ' AS NEEDED'; 2220 if UpperCase(Copy(Schedule, Length(Schedule) - 18, Length(Schedule))) = 'AS NEEDED AS NEEDED' 2221 then Schedule := Copy(Schedule, 1, Length(Schedule) - 10); *) 2222 if Length(Schedule) = 0 then 2223 begin 2224 Schedule := ValueOf(FLD_SCHEDULE); 2225 if RightStr(Schedule,3) = 'PRN' then 2226 begin 2227 Schedule := Copy(Schedule,1,Length(Schedule)-3); //Remove the Trailing PRN 2228 if (RightStr(Schedule,1) = ' ') or (RightStr(Schedule,1) = '-') then 2229 Schedule := Copy(Schedule,1,Length(Schedule)-1); 2230 Schedule := Schedule + ' AS NEEDED' 2231 end; 2232 end; 2119 2233 Result := FSIGVerb + ' ' + Dose + ' ' + Route + ' ' + Schedule; 2120 2234 end; … … 2140 2254 if Length(Route) = 0 then Route := ValueOf(FLD_ROUTE_NM, i); 2141 2255 Schedule := ValueOf(FLD_SCHED_EX, i); 2142 if Length(Schedule) = 0 then Schedule := ValueOf(FLD_SCHEDULE, i); 2256 //if Length(Schedule) = 0 then Schedule := ValueOf(FLD_SCHEDULE, i); 2257 if Length(Schedule) = 0 then 2258 begin 2259 Schedule := ValueOf(FLD_SCHEDULE); 2260 if RightStr(Schedule,3) = 'PRN' then 2261 begin 2262 Schedule := Copy(Schedule,1,Length(Schedule)-3); //Remove the Trailing PRN 2263 if (RightStr(Schedule,1) = ' ') or (RightStr(Schedule,1) = '-') then 2264 Schedule := Copy(Schedule,1,Length(Schedule)-1); 2265 Schedule := Schedule + ' AS NEEDED' 2266 end; 2267 end; 2143 2268 Duration := ValueOf(FLD_DURATION, i); 2144 2269 if Length(Duration) > 0 then Duration := 'FOR ' + Duration; … … 2241 2366 begin 2242 2367 Result := Piece(Piece(grdDoses.Cells[COL_DOSAGE, ARow], TAB, 2), U, 4); 2243 if (not FInptDlg) and (Length(FDrugID) > 0) then 2368 //AGP CHANGE 26.33 change for Remedy ticket 87476 fix for quick orders for complex 2369 //inpatient orders not displaying the correct unit dose in Pharmacy 2370 //if (not FInptDlg) and (Length(FDrugID) > 0) then 2371 if Length(FDrugID) > 0 then 2244 2372 begin 2245 2373 Result := ''; … … 2454 2582 TI_COMPLEX: 2455 2583 begin 2456 if txtNss.Visible then txtNss.Visible := False;2584 //if txtNss.Visible then txtNss.Visible := False; 2457 2585 with grdDoses do for i := 1 to Pred(RowCount) do 2458 2586 begin … … 2491 2619 else Responses.Update('ROUTE', i, '', x); 2492 2620 x := ValueOf(FLD_SCHEDULE, i); Responses.Update('SCHEDULE', i, x, x); 2621 if FSmplPRNChkd then // GE CQ7585 Carry PRN checked from simple to complex tab 2622 begin 2623 pnlXSchedule.Tag := 1; 2624 chkXPRN.Checked := True; 2625 //cboXScheduleClick(Self);// force onclick to fire when complex tab is entered 2626 FSmplPRNChkd := False; 2627 end; 2493 2628 x := ValueOf(FLD_DURATION, i); Responses.Update('DAYS', i, UpperCase(x), x); 2494 2629 x := ValueOf(FLD_SEQUENCE, i); … … 2508 2643 begin 2509 2644 Responses.Update('NOW', 1, ValueOf(FLD_NOW_ID), ValueOf(FLD_NOW_NM)); 2510 x := InpatientSig; Responses.Update('SIG', 1, TX_WPTYPE, x); 2645 x := InpatientSig; 2646 Responses.Update('SIG', 1, TX_WPTYPE, x); 2511 2647 end else // outpatient orders 2512 2648 begin … … 2548 2684 VAL_DURATION : Result := Piece(Cells[COL_DURATION, ARow], TAB, 1); 2549 2685 VAL_SEQUENCE : Result := Piece(Cells[COL_SEQUENCE, ARow], TAB, 1); 2686 VAL_CHKXPRN : Result := Cells[COL_CHKXPRN, ARow]; 2550 2687 end; 2551 2688 end; … … 2729 2866 procedure TfrmODMeds.ShowEditor(ACol, ARow: Integer; AChar: Char); 2730 2867 var 2731 x, NonPRNPart: string;2868 x,tmpText: string; 2732 2869 2733 2870 procedure PlaceControl(AControl: TWinControl); … … 2759 2896 begin 2760 2897 inherited; 2898 txtNSS.Visible := False; 2761 2899 //Make space just select editor. This blows up as soon as some joker makes a 2762 2900 //dosage starting with a space. … … 2784 2922 //grdDoses.Cells[COL_SCHEDULE, ARow] := grdDoses.Cells[COL_SCHEDULE, Pred(ARow)]; 2785 2923 end; 2786 if grdDoses.Cells[COL_SEQUENCE, Pred(ARow)] = '' then 2924 //AGP Change 26.45 remove auto-populate of the sequence field 2925 {* if grdDoses.Cells[COL_SEQUENCE, Pred(ARow)] = '' then 2787 2926 begin 2788 2927 if StrToIntDef(Piece(grdDoses.Cells[COL_DURATION, Pred(ARow)], ' ', 1), 0) > 0 2789 2928 then grdDoses.Cells[COL_SEQUENCE, Pred(ARow)] := 'THEN' 2790 2929 else grdDoses.Cells[COL_SEQUENCE, Pred(ARow)] := 'AND'; 2791 end; 2930 end; *} 2792 2931 end; 2793 2932 // set appropriate value for cboDosage … … 2806 2945 COL_SCHEDULE: begin 2807 2946 // set appropriate value for cboSchedule 2947 if FInptDlg then txtNSS.Visible := True; 2808 2948 x := Piece(grdDoses.Cells[COL_SCHEDULE, ARow], TAB, 1); 2809 2949 Changing := TRUE; 2810 chkXPRN.Checked := False; 2950 if ValFor(VAL_CHKXPRN,Arow)='1' then chkXPRN.Checked := true 2951 else chkXPRN.Checked := False; 2952 if Pos('PRN',x)>0 then 2953 begin 2954 cboXSchedule.SelectByID(x); 2955 if cboXSchedule.ItemIndex <0 then 2956 begin 2957 x := Trim(Copy(x, 1, Pos('PRN', x) - 1)); 2958 chkXPRN.Checked := true; 2959 end; 2960 end; 2811 2961 if Length(x) > 0 then 2812 2962 begin … … 2815 2965 end 2816 2966 else cboXSchedule.ItemIndex := -1; 2817 if Pos('PRN', x) > 0 then2967 (* if Pos('PRN', x) > 0 then 2818 2968 begin 2819 2969 NonPRNPart := Trim(Copy(x, 1, Pos('PRN', x) - 1)); … … 2825 2975 if cboXSchedule.ItemIndex < 0 then cboXSchedule.Text := x; 2826 2976 end; 2827 end; 2977 end; *) 2828 2978 Changing := FALSE; 2829 2979 pnlXSequence.Tag := ARow; … … 2844 2994 btnXDuration.Caption := 'days'; 2845 2995 end; 2996 tmpText := txtXDuration.Text; //Fix for CQ: 8107 - Kloogy but works. 2846 2997 UpdateDurationControls(False); 2847 2848 2998 Changing := FALSE; 2849 2999 pnlXDuration.Tag := ARow; 2850 3000 PlaceControl(pnlXDuration); 2851 3001 txtXDuration.SetFocus; 3002 ARow1 := ARow; 3003 txtXDuration.Text := tmpText; //Fix for CQ: 8107 - Kloogy but works. 2852 3004 if AChar <> #0 then PostMessage(Handle, UM_DELAYEVENT, Ord(AChar), COL_DURATION); 2853 3005 end; 2854 3006 COL_SEQUENCE: begin 2855 3007 x := ValFor(COL_SEQUENCE, ARow); 2856 if x = '' then x := 'then';3008 //if x = '' then x := 'and'; AGP Change 26.46 remove for CQ 9535 2857 3009 btnXSequence.Caption := x; 2858 3010 pnlXSequence.Caption := btnXSequence.Caption; 2859 3011 pnlXSequence.Tag := ARow; 3012 ARow1 := ARow; 2860 3013 PlaceControl(pnlXSequence); 2861 btnXSequence.Width := pnlXSequence.Width; 3014 btnXSequence.Width := pnlXSequence.Width; 2862 3015 end; 2863 3016 end; {case ACol} … … 2929 3082 then lblQtyMsg.Caption := TX_QTY_PRE + x + TX_QTY_POST 2930 3083 else lblQtyMsg.Caption := ''; 2931 2932 3084 end; 2933 3085 … … 2985 3137 cboXRoute.ItemIndex := -1; 2986 3138 Exit; 2987 end; 3139 end; 2988 3140 cboXRouteClick(Self); 2989 3141 cboXRoute.Tag := -1; … … 3013 3165 procedure TfrmODMeds.cboXScheduleChange(Sender: TObject); 3014 3166 var 3015 othSch, x , PRN: string;3167 othSch, x: string; 3016 3168 idx : integer; 3017 3169 begin … … 3031 3183 end; 3032 3184 end; 3033 3185 (* if chkXPRN.Checked then PRN := ' PRN' else PRN := ''; 3034 3186 with cboXSchedule do if ItemIndex > -1 3035 3187 then x := Text + PRN + TAB + Items[ItemIndex] 3036 else x := Text + PRN; 3188 else x := Text + PRN; *) 3189 with cboXSchedule do if ItemIndex > -1 3190 then x := Text + TAB + Items[ItemIndex] 3191 else x := Text; 3037 3192 grdDoses.Cells[COL_SCHEDULE, pnlXSchedule.Tag] := x; 3193 self.cboSchedule.Text := x; 3038 3194 UpdateRelated; 3039 3195 end; … … 3042 3198 procedure TfrmODMeds.cboXScheduleClick(Sender: TObject); 3043 3199 var 3044 x, PRN: string; 3045 begin 3046 inherited; 3047 if chkXPRN.Checked then PRN := ' PRN' else PRN := ''; 3200 x: string; 3201 begin 3202 inherited; 3203 //if chkXPRN.Checked then PRN := ' PRN' else PRN := ''; 3204 (* with cboXSchedule do if ItemIndex > -1 3205 then x := Text + PRN + TAB + Items[ItemIndex] 3206 else x := Text + PRN; *) 3048 3207 with cboXSchedule do if ItemIndex > -1 3049 then x := Text + PRN +TAB + Items[ItemIndex]3050 else x := Text + PRN;3051 if (Pos('PRN',X)>0) and (pnlXSchedule.Tag = 1) then3208 then x := Text + TAB + Items[ItemIndex] 3209 else x := Text; 3210 (* if (Pos('PRN',X)>0) and (pnlXSchedule.Tag = 1) then 3052 3211 if lblAdmintime.visible then 3053 lblAdmintime.Caption := ''; 3212 lblAdmintime.Caption := ''; *) 3054 3213 grdDoses.Cells[COL_SCHEDULE, pnlXSchedule.Tag] := x; 3214 UpdateStartExpires(x); 3055 3215 UpdateRelated; 3056 3216 end; 3057 3217 3058 3218 procedure TfrmODMeds.chkXPRNClick(Sender: TObject); 3059 begin 3060 inherited; 3219 var 3220 check: string; 3221 begin 3222 inherited; 3223 if self.chkXPRN.Checked = True then check := '1' 3224 else check := '0'; 3225 self.grdDoses.Cells[COL_CHKXPRN, self.grdDoses.Row] := check; 3061 3226 if not Changing then cboXScheduleClick(Self); 3062 3227 end; … … 3096 3261 var 3097 3262 I, Code: Integer; 3263 OrgValue: string; 3098 3264 begin 3099 3265 inherited; … … 3103 3269 Val(txtXDuration.Text, I, Code); 3104 3270 UpdateDurationControls(Code <> 0); 3105 if (Code <> 0) and (I=0) then 3106 begin 3107 ShowMessage('Free text input is not allowed!'); 3108 txtXDuration.Text := '0'; 3271 //Commented out the "and" to resolve CQ: 7557 3272 if (Code <> 0) {and (I=0)} then 3273 begin 3274 ShowMessage('Please use numeric characters only.'); 3275 with txtXDuration do 3276 begin 3277 Text := IntToStr(I); 3278 SelStart := Length(Text); 3279 end; 3109 3280 Exit; 3110 3281 btnXDuration.Width := 8; … … 3114 3285 PopDuration.Items.Tag := 0; 3115 3286 btnXDuration.Caption := ''; 3116 end 3287 end; 3288 {AGP change 26.19 for PSI-05-018 cq #7322 3117 3289 else if PopDuration.Items.Tag = 0 then 3118 3290 begin 3119 3291 PopDuration.Items.Tag := 3; //Days selection 3120 3292 btnXDuration.Caption := 'days'; 3121 end; 3293 end; } 3122 3294 grdDoses.Cells[COL_DURATION, pnlXDuration.Tag] := txtXDuration.Text + ' ' + Uppercase(btnXDuration.Caption); 3123 end else grdDoses.Cells[COL_DURATION, pnlXDuration.Tag] := ''; 3295 end else //AGP CHANGE ORDER 3296 begin 3297 if not(FInptDlg) then grdDoses.Cells[COL_DURATION, pnlXDuration.Tag] := ''; 3298 OrgValue := ValFor(COL_DURATION, pnlxDuration.tag); 3299 //if ((txtXDuration.Text = '0') or (txtXDuration.Text = '')) and ((ValFor(COL_SEQUENCE, ARow1) = 'THEN') and (FInptDlg)) then //AGP CHANGE ORDER 3300 //AGP change 26.33 Then/And conjunction requiring a duration to include outpatient orders also 3301 if ((txtXDuration.Text = '0') or (txtXDuration.Text = '')) and (ValFor(COL_SEQUENCE, ARow1) = 'THEN') then //AGP CHANGE ORDER 3302 begin 3303 if (InfoBox('A duration is required when using "Then" as a sequence.'+CRLF+'"Then" will be remove from the sequence field if you continue'+ 3304 CRLF+'Click "OK" to continue or click "Cancel"','Duration Warning', MB_OKCANCEL)=1) then 3305 begin 3306 grdDoses.Cells[COL_DURATION, pnlXDuration.Tag] := ''; 3307 pnlXSequence.Tag := ARow1; 3308 pnlXSequence.Caption := ''; 3309 grdDoses.Cells[COL_SEQUENCE, pnlXSequence.Tag] := ''; 3310 btnXSequence.Click; 3311 end 3312 else 3313 grdDoses.Cells[COL_DURATION, pnlXDuration.Tag] := OrgValue; 3314 end 3315 else grdDoses.Cells[COL_DURATION, pnlXDuration.Tag] := txtXDuration.Text; 3316 end; 3317 // end; 3124 3318 ControlChange(Self); 3125 3319 UpdateRelated; … … 3151 3345 begin 3152 3346 inherited; 3347 inherited; 3153 3348 with TSpeedButton(Sender) do APoint := ClientToScreen(Point(0, Height)); 3154 3349 popXSequence.Popup(APoint.X, APoint.Y); 3155 3350 pnlXSequence.Caption := btnXSequence.Caption; 3351 { 3352 with TSpeedButton(Sender) do APoint := ClientToScreen(Point(0, Height)); 3353 popXSequence.Popup(APoint.X, APoint.Y); 3354 pnlXSequence.Caption := btnXSequence.Caption; 3355 if (pnlXSequence.Caption = 'then') and 3356 ((ValFor(COL_DURATION, ARow1) = '') or 3357 (ValFor(COL_DURATION, ARow1) = '0')) then 3358 begin 3359 InfoBox('A duration is required when using "Then" as a conjunction','Duration Warning',MB_OK); 3360 pnlXSequence.Caption := ''; 3361 btnXSequence.Caption := ''; 3362 end; 3363 } 3156 3364 end; 3157 3365 … … 3162 3370 inherited; 3163 3371 with TMenuItem(Sender) do if Tag > 0 then x := Caption else x := ''; 3372 //AGP Changes 26.12 PSI-04-63 3373 //if ((x = 'then') and (FInptDlg)) and ((ValFor(COL_DURATION, ARow1) = '') or (ValFor(COL_DURATION, ARow1) = '0')) then 3374 //AGP change 26.32 Then/And conjunction requiring a duration to include outpatient orders 3375 if (x = 'then') and ((ValFor(COL_DURATION, ARow1) = '') or (ValFor(COL_DURATION, ARow1) = '0')) then 3376 begin 3377 InfoBox('A duration is required when using "Then" as a conjunction' + CRLF + CRLF+ 3378 'The patient will be instructed to take these doses consecutively, not concurrently.','Duration Warning',MB_OK); 3379 x := ''; 3380 end; 3164 3381 btnXSequence.Caption := x; 3165 3382 pnlXSequence.Caption := btnXSequence.Caption; … … 3279 3496 FLD_ROUTE_EX : with cboRoute do 3280 3497 if ItemIndex > -1 then Result := Piece(Items[ItemIndex], U, 4); 3281 FLD_SCHEDULE : begin 3498 FLD_SCHEDULE : begin //gary) 3282 3499 Result := UpperCase(Trim(cboSchedule.Text)); 3283 3500 if chkPRN.Checked then Result := Result + ' PRN'; … … 3287 3504 FLD_SCHED_EX : begin 3288 3505 with cboSchedule do 3506 begin 3289 3507 if ItemIndex > -1 then Result := Piece(Items[ItemIndex], U, 2); 3508 (* if (Length(Result)=0) and (ItemIndex > -1) then 3509 begin 3510 Result := Piece(Items[ItemIndex], U, 1); 3511 if Piece(Items[ItemIndex], U, 3) = 'P' then 3512 begin 3513 if RightStr(Result,3) = 'PRN' then 3514 begin 3515 Result := Copy(Result,1,Length(Result)-3); //Remove the Trailing PRN 3516 if (RightStr(Result,1) = ' ') or (RightStr(Result,1) = '-') then 3517 Result := Copy(Result,1,Length(Result)-1); 3518 end; 3519 Result := Result + ' AS NEEDED'; 3520 end; 3521 end; 3522 end; *) 3523 if RightStr(Result,3) = 'PRN' then 3524 begin 3525 Result := Copy(Result,1,Length(Result)-3); //Remove the Trailing PRN 3526 if (RightStr(Result,1) = ' ') or (RightStr(Result,1) = '-') then 3527 Result := Copy(Result,1,Length(Result)-1); 3528 Result := Result + ' AS NEEDED' 3529 end; 3290 3530 if (Length(Result) > 0) and chkPRN.Checked then Result := Result + ' AS NEEDED'; 3291 3531 if UpperCase(Copy(Result, Length(Result) - 18, Length(Result))) = 'AS NEEDED AS NEEDED' 3292 3532 then Result := Copy(Result, 1, Length(Result) - 10); 3533 if UpperCase(Copy(Result, Length(Result) - 12, Length(Result))) = 'PRN AS NEEDED' then 3534 begin 3535 Result := Copy(Result, 1, Length(Result) - 13); 3536 if RightStr(Result,1)=' ' then Result := Result + 'AS NEEDED' 3537 else Result := Result + ' AS NEEDED'; 3538 end; 3539 end; 3293 3540 end; 3294 3541 FLD_SCHED_TYP : with cboSchedule do … … 3330 3577 FLD_ROUTE_AB : Result := Piece(Piece(Cells[COL_ROUTE, ARow], TAB, 2), U, 3); 3331 3578 FLD_ROUTE_EX : Result := Piece(Piece(Cells[COL_ROUTE, ARow], TAB, 2), U, 4); 3332 FLD_SCHEDULE : Result := Piece(Cells[COL_SCHEDULE, ARow], TAB, 1); 3579 FLD_SCHEDULE : begin 3580 Result := Piece(Piece(Cells[COL_SCHEDULE, ARow], TAB, 2), U, 1); 3581 if Result = '' then Result := Piece(Cells[COL_SCHEDULE, ARow], TAB, 1); 3582 if valFor(VAL_CHKXPRN,ARow)='1' then Result := Result + ' PRN'; 3583 if UpperCase(Copy(Result, Length(Result) - 6, Length(Result))) = 'PRN PRN' then 3584 Result := Copy(Result, 1, Length(Result) - 4); 3585 end; 3333 3586 FLD_SCHED_EX : begin 3334 Result := Piece(Piece(Cells[COL_SCHEDULE, ARow], TAB, 2), U, 2);3587 (*Result := Piece(Piece(Cells[COL_SCHEDULE, ARow], TAB, 2), U, 2); 3335 3588 if Result = '' then //Added for CQ: 7639 3336 3589 begin … … 3343 3596 (Pos('PRN', Piece(Cells[COL_SCHEDULE, ARow], TAB, 1)) > 0) 3344 3597 then Result := Result + ' AS NEEDED'; 3598 end;*) 3599 Result := Piece(Piece(Cells[COL_SCHEDULE, ARow], TAB, 2),U,2); 3600 if Result = '' then Result := Piece(Piece(Cells[COL_SCHEDULE, ARow], TAB, 2),U,1); //Added for CQ: 7639 3601 if Result = '' then Result := Piece(Cells[COL_SCHEDULE, ARow], TAB, 1); 3602 if RightStr(Result,3) = 'PRN' then 3603 begin 3604 Result := Copy(Result,1,Length(Result)-3); //Remove the Trailing PRN 3605 if (RightStr(Result,1) = ' ') or (RightStr(Result,1) = '-') then 3606 Result := Copy(Result,1,Length(Result)-1); 3607 Result := Result + ' AS NEEDED'; 3608 end; 3609 if valFor(VAL_CHKXPRN,ARow)='1' then Result := Result + ' AS NEEDED'; 3610 if UpperCase(Copy(Result, Length(Result) - 18, Length(Result))) = 'AS NEEDED AS NEEDED' 3611 then Result := Copy(Result, 1, Length(Result) - 10); 3612 if UpperCase(Copy(Result, Length(Result) - 12, Length(Result))) = 'PRN AS NEEDED' then 3613 begin 3614 Result := Copy(Result, 1, Length(Result) - 13); 3615 if RightStr(Result,1)=' ' then Result := Result + 'AS NEEDED' 3616 else Result := Result + ' AS NEEDED'; 3617 end; 3345 3618 end; 3346 3619 FLD_SCHED_TYP : Result := Piece(Piece(Cells[COL_SCHEDULE, ARow], TAB, 2), U, 3); … … 3552 3825 procedure TfrmODMeds.UpdateStartExpires(const CurSchedule: string); 3553 3826 var 3554 ShowText, Duration, ASchedule: string;3827 CompSch, ShowText, Duration, ASchedule: string; 3555 3828 AdminTime: TFMDateTime; 3556 Interval, PrnPos: Integer;3829 i, j, Interval, PrnPos: Integer; 3557 3830 begin 3558 3831 if Length(CurSchedule)=0 then Exit; 3559 3832 ASchedule := Trim(CurSchedule); 3560 if (Pos('^',ASchedule)=0) then 3561 begin 3562 PrnPos := Pos('PRN',ASchedule); 3563 if (PrnPos > 1) and (CharAt(ASchedule,PrnPos-1) <> ';') then 3564 Delete(ASchedule, PrnPos, Length(ASchedule)); 3565 end 3566 else if (Pos('^',ASchedule)>0) then 3833 if (Pos('^',ASchedule)>0) then 3567 3834 begin 3568 3835 PrnPos := Pos('PRN',ASchedule); … … 3571 3838 end; 3572 3839 ASchedule := Trim(ASchedule); 3840 if self.tabDose.TabIndex = TI_COMPLEX then 3841 begin 3842 CompSch := valFor(VAL_SCHEDULE,1); 3843 if CompSch = '' then 3844 begin 3845 ASchedule := ''; 3846 AdminTime := -1; 3847 end; 3848 if CompSch <> '' then 3849 begin 3850 for i := 0 to self.cboXSchedule.Items.Count-1 do 3851 begin 3852 if (Piece(self.cboXSchedule.Items.Strings[i],U,1) = CompSch) and (Piece(self.cboXSchedule.Items.Strings[i],U,3)='P') then 3853 begin 3854 AdminTime := -1; 3855 Aschedule := ''; 3856 end; 3857 end; 3858 end; 3859 if valFor(VAL_CHKXPRN,1)='1' then 3860 begin 3861 AdminTime := -1; 3862 Aschedule := ''; 3863 end; 3864 if (ASchedule <> '') and (CompSch <> '') then ASchedule := ';' + CompSch; 3865 end; 3573 3866 if Length(ASchedule)>0 then 3574 LoadAdminInfo(ASchedule, txtMed.Tag, ShowText, AdminTime, Duration) 3575 else Exit; 3867 LoadAdminInfo(ASchedule, txtMed.Tag, ShowText, AdminTime, Duration); 3868 //else Exit; 3869 if (AdminTime > 0) and (self.tabDose.TabIndex = TI_DOSE) then 3870 begin 3871 if self.cboSchedule.ItemIndex = -1 then 3872 begin 3873 for j := 0 to self.cboSchedule.items.Count -1 do 3874 begin 3875 if (Piece(self.cboSchedule.Items.Strings[j],U,1) = Piece(Aschedule,';',2)) and (Piece(self.cboSchedule.Items.Strings[j],U,3)='P') then 3876 begin 3877 AdminTime := -1; 3878 break; 3879 end; 3880 end; 3881 end; 3882 if (self.cboSchedule.ItemIndex > -1) and (Piece(self.cboSchedule.Items.Strings[self.cboSchedule.ItemIndex],U,3)='P') then 3883 AdminTime := -1; 3884 if self.chkPRN.Checked = true then AdminTime := -1 3885 end; 3576 3886 if AdminTime > 0 then 3577 3887 begin … … 3630 3940 CurSupply, i, pNum, j: Integer; 3631 3941 CurQuantity: double; 3632 LackQtyInfo, SaveChanging : Boolean;3942 LackQtyInfo, SaveChanging, DispFirstDose: Boolean; 3633 3943 begin 3634 3944 inherited; … … 3637 3947 SaveChanging := Changing; 3638 3948 Changing := TRUE; 3949 DispFirstDose := FALSE; 3639 3950 // don't allow Exit procedure so Changing gets reset appropriately 3640 3951 CurUnits := ''; … … 3700 4011 or ((Length(cboSchedule.Text)>0) and (cboSchedule.ItemIndex < 0)) then 3701 4012 begin 3702 if (chkDoseNow.Checked) and (chkDoseNow.Visible) then 4013 if (chkDoseNow.Checked) and (chkDoseNow.Visible) then 4014 begin 4015 chkDoseNowClick(Self); 4016 chkDoseNow.Checked := False; 4017 end; 4018 for i := 0 to cboSchedule.Items.Count-1 do 3703 4019 begin 3704 chkDoseNowClick(Self); 3705 chkDoseNow.Checked := False; 4020 if Piece(cboSchedule.Items.Strings[i],U,1) = Uppercase(cboSchedule.Text) then 4021 begin 4022 DispFirstDose := True; 4023 break; 4024 end; 3706 4025 end; 3707 chkDoseNow.Visible := False; 3708 lblAdminTime.Visible := False; 4026 if not DispFirstDose then 4027 begin 4028 chkDoseNow.Visible := False; 4029 lblAdminTime.Visible := False; 4030 end; 3709 4031 end 3710 4032 else … … 3715 4037 if Responses.EventType in ['A','D','T','M','O'] then lblAdminTime.Visible := False; 3716 4038 end; 3717 if not FInptDlg then4039 if not FInptDlg then 3718 4040 begin 3719 4041 CurSchedule := CurScheduleOut; 3720 if CurInstruct <> FLastInstruct4042 if (CurInstruct <> FLastInstruct) and (CurUnits <> U) //AGP Change 26.48 Do not update quantity and day supply if no matching dose on the server 3721 4043 then UpdateDefaultSupply(CurUnits, CurSchedule, CurDuration, CurDispDrug, CurSupply, CurQuantity, 3722 4044 LackQtyInfo); … … 3751 4073 3752 4074 procedure TfrmODMeds.cmdAcceptClick(Sender: TObject); 3753 begin 3754 if (cboSchedule.Text = 'OTHER') and (FInptDlg)then 4075 var 4076 i: integer; 4077 begin 4078 if (FInptDlg) and (cboSchedule.Text = 'OTHER') then 3755 4079 begin 3756 4080 cboScheduleClick(Self); 3757 4081 Exit; 3758 4082 end; 4083 //AGP Change for 26.45 PSI-04-069 4084 if self.tabDose.TabIndex = 1 then 4085 begin 4086 for i := 2 to self.grdDoses.RowCount do 4087 begin 4088 if ((ValFor(COL_DOSAGE, i-1) <> '') and (ValFor(COL_DOSAGE, i) <> '')) and (ValFor(COL_SEQUENCE,i-1) = '') then 4089 begin 4090 infoBox('To be able to complete a complex order every row except for the last row must have a conjunction defined. ' + CRLF 4091 + CRLF + 'Verify that all rows have a conjunction defined.','Sequence Error',MB_OK); 4092 Exit; 4093 end; 4094 //text := Self.cboXDosage.Items.Strings[i]; 4095 end; 4096 end; 3759 4097 if FInptDlg and (not FOutptIV) 3760 4098 then DisplayGroup := DisplayGroupByName('UD RX') 3761 4099 else DisplayGroup := DisplayGroupByName('O RX'); 4100 //timCheckChangesTimer(Self); 3762 4101 DropLastSequence; 3763 4102 cmdAccept.SetFocus; 3764 4103 inherited; 4104 (*if self.Responses.Cancel = true then 4105 begin 4106 self.Destroy; 4107 exit; 4108 end; *) 3765 4109 end; 3766 4110 … … 3791 4135 if length(theSch)>0 then 3792 4136 begin 3793 if ( ValueOf(FLD_SCHED_TYP) <> 'O') and (InfoBox(T1+medNm+T+T2+theSch+T+T3+'NOW"'+T4, 'Warning', MB_OKCANCEL or MB_ICONWARNING) = IDCANCEL)then4137 if ( (ValueOf(FLD_SCHED_TYP) <> 'O') and (InfoBox(T1+medNm+T+T2+theSch+T+T3+'NOW"'+T4, 'Warning', MB_OKCANCEL or MB_ICONWARNING) = IDCANCEL) )then 3794 4138 begin 3795 4139 chkDoseNow.Checked := False; … … 3808 4152 if (tabDose.TabIndex = TI_COMPLEX) and chkDoseNow.Checked then 3809 4153 begin 3810 if ( ValueOf(FLD_SCHED_TYP) <> 'O') and (InfoBox('Give Additional Dose Now is in addition to those listed in the table.' + CRLF +4154 if ( (ValueOf(FLD_SCHED_TYP) <> 'O') and (InfoBox('Give Additional Dose Now is in addition to those listed in the table.' + CRLF + 3811 4155 'Please adjust the duration of the first row, if necessary.', 3812 'Give Additional Dose Now for Complex Order', MB_OKCANCEL or MB_ICONWARNING) = IDCANCEL) then4156 'Give Additional Dose Now for Complex Order', MB_OKCANCEL or MB_ICONWARNING) = IDCANCEL) ) then 3813 4157 begin 3814 4158 chkDoseNow.Checked := False; … … 3908 4252 var 3909 4253 tempSch: string; 3910 begin 3911 inherited; 3912 if chkPRN.Checked then lblAdminTime.Caption := '' 4254 PRNPos: integer; 4255 begin 4256 inherited; 4257 //GE CQ 7552 4258 if chkPRN.Checked then 4259 begin 4260 lblAdminTime.Caption := ''; 4261 PrnPos := Pos('PRN',cboSchedule.Text); 4262 if (PrnPos < 1) then 4263 UpdateStartExpires(cboSchedule.Text + ' PRN'); 4264 end 3913 4265 else 3914 4266 begin … … 3918 4270 UpdateStartExpires(tempSch); 3919 4271 end; 3920 lblAdminTime.Caption := FAdminTimeLbl;4272 //lblAdminTime.Caption := FAdminTimeLbl; 3921 4273 if txtQuantity.visible then 3922 4274 cboScheduleClick(Self); … … 4031 4383 end 4032 4384 else if (Key = #13) and (ActiveControl = txtMed) then 4033 Key := #0 //Don't let the base class turn it into a forward tab! 4034 else 4035 inherited; 4385 Key := #0; //Don't let the base class turn it into a forward tab! 4036 4386 end; 4037 4387 … … 4284 4634 inherited; 4285 4635 if MessageDlg('You can also select ' + '"' + 'Other' + '"' + ' from the schedule list' 4286 + ' to create a day-of-week or admin-time onlyschedule.'4636 + ' to create a day-of-week schedule.' 4287 4637 + #13#10 + 'Click OK to launch schedule builder', 4288 4638 mtInformation, [mbOK, mbCancel],0) = mrOK then … … 4292 4642 cboSchedule.SelectByID('OTHER'); 4293 4643 cboScheduleClick(Self); 4644 end; 4645 if (tabDose.TabIndex = TI_COMPLEX) then 4646 begin 4647 cboXSchedule.SelectByID('OTHER'); 4648 CBOXScheduleChange(Self); 4294 4649 end; 4295 4650 end; … … 4325 4680 4326 4681 procedure TfrmODMeds.ValidateInpatientSchedule(ScheduleCombo: TORComboBox); 4327 begin 4328 //CQ 7575 Schedule coming across lower-case, change all schedules to Upper-Case. 4682 var 4683 tmpIndex : Integer; 4684 begin 4685 4686 {CQ: 6690 - Orders - autopopulation of schedule field - overtyping only 1 character 4687 CQ: 7280 - PTM 32-34, 42 Meds: NJH-0205-20901 MED DIALOG DROPPING FIRST LETTER (schedule)} 4688 4689 //CQ 7575 Schedule coming across lower-case, change all schedules to Upper-Case. 4329 4690 if (Length(ScheduleCombo.Text) > 0) then 4330 ScheduleCombo.Text := UpperCase(ScheduleCombo.Text); 4691 ScheduleCombo.Text := TrimLeft(UpperCase(ScheduleCombo.Text)); 4692 {if user entered schedule verify it is in list} 4693 if ScheduleCombo.ItemIndex < 0 then // CQ: 7397 4694 begin //Fix for CQ: 9299 - Outpatient Med orders will not accept free text schedule 4695 tmpIndex := GetSchedListIndex(ScheduleCombo,ScheduleCombo.Text); 4696 if tmpIndex > -1 then 4697 ScheduleCombo.ItemIndex := tmpIndex; 4698 end; 4331 4699 if (Length(ScheduleCombo.Text) > 0) and (ScheduleCombo.ItemIndex < 0) and FInptDlg then 4332 4700 begin 4333 4701 FShowPnlXScheduleOk := False; //Added for CQ: 7370 4334 4702 Application.MessageBox('Please select a valid schedule from the list.'+#13+#13+ 4335 'If you would like to create a non-standardschedule please'+4703 'If you would like to create a Day-of-Week schedule please'+ 4336 4704 ' select ''OTHER'' from the list.', 4337 4705 'Incorrect Schedule.'); … … 4344 4712 4345 4713 //Removed based on Site feeback. See CQ: 7518 4346 {function TfrmODMeds.ValidateRoute(RouteCombo: TORComboBox) : Boolean; 4347 begin 4714 (*function TfrmODMeds.ValidateRoute(RouteCombo: TORComboBox) : Boolean; 4715 begin 4716 {CQ: 7331 - Medications - Route - Can not enter any route not listed in Route field in window} 4348 4717 Result := True; 4349 4718 if (Length(RouteCombo.Text) > 0) and (RouteCombo.ItemIndex < 0) and (Not IsSupplyAndOutPatient) then … … 4356 4725 Result := False; 4357 4726 end; 4358 end; }4727 end;*) 4359 4728 4360 4729 function TfrmODMeds.isUniqueQuickOrder(iText: string): Boolean; … … 4373 4742 function TfrmODMeds.IsSupplyAndOutPatient: boolean; 4374 4743 begin 4744 {CQ: 7331 - Medications - Route - Can not enter any route not listed in Route field in window} 4375 4745 Result := False; 4376 4746 if (MedIsSupply(txtMed.Tag)) and (not FInptDlg) then … … 4378 4748 end; 4379 4749 4750 // CQ: 7397 - Inpatient med orders with PRN cancel due to invalid schedule. 4751 function TfrmODMeds.GetSchedListIndex(SchedCombo: TORComboBox; pSchedule: String):integer; 4752 var i: integer; 4753 begin 4754 result := -1; 4755 for i := 0 to SchedCombo.items.Count-1 do 4756 begin 4757 if pSchedule = SchedCombo.DisplayText[i] then 4758 begin 4759 result := i; // match found 4760 break; 4761 end; 4762 end; 4763 end; 4764 4380 4765 4381 4766 procedure TfrmODMeds.cboXScheduleExit(Sender: TObject); 4382 4767 begin 4383 4768 inherited; 4769 {CQ: 7344 - Inconsistency with Schedule box: Allows free-text entry for Complex orders, 4770 doesn't for simple orders } 4384 4771 ValidateInpatientSchedule(cboXSchedule); 4385 4772 end; 4386 4773 4774 procedure TfrmODMeds.cboDosageKeyUp(Sender: TObject; var Key: Word; 4775 Shift: TShiftState); 4776 begin 4777 inherited; 4778 //Fix for CQ: 7545 4779 if cboDosage.ItemIndex > -1 then 4780 cboDosageClick(Sender); 4781 end; 4782 4783 procedure TfrmODMeds.cboXDosageKeyUp(Sender: TObject; var Key: Word; 4784 Shift: TShiftState); 4785 begin 4786 inherited; 4787 //Fix for CQ: 7545 4788 if cboXDosage.ItemIndex > -1 then 4789 cboXDosageClick(Sender); 4790 end; 4791 4792 procedure TfrmODMeds.txtSupplyClick(Sender: TObject); 4793 begin 4794 inherited; 4795 Self.txtSupply.SelectAll; 4796 end; 4797 4798 procedure TfrmODMeds.txtQuantityClick(Sender: TObject); 4799 begin 4800 inherited; 4801 self.txtQuantity.SelectAll; 4802 end; 4803 4804 procedure TfrmODMeds.txtRefillsClick(Sender: TObject); 4805 begin 4806 inherited; 4807 self.txtRefills.SelectAll; 4808 end; 4809 4810 procedure TfrmODMeds.WMClose(var Msg: TWMClose); 4811 begin 4812 if self <> nil then 4813 begin 4814 if (self.tabDose.TabIndex = TI_Dose) then 4815 begin 4816 if Trim(cboSchedule.Text) = '' then cboSchedule.ItemIndex := -1; 4817 ValidateInpatientSchedule(cboSchedule); 4818 if self.cboSchedule.Focused = true then exit; 4819 end; 4820 if (self.tabDose.TabIndex = TI_Complex) then 4821 begin 4822 ValidateInpatientSchedule(cboXSchedule); 4823 if self.cboXSchedule.Focused = true then exit; 4824 end; 4825 end; 4826 inherited 4827 end; 4828 4829 procedure TfrmODMeds.cboXScheduleEnter(Sender: TObject); 4830 begin 4831 inherited; 4832 //agp Change CQ 10719 4833 self.chkXPRN.OnClick(self.chkXPRN); 4834 end; 4835 4387 4836 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODRad.dfm
r459 r460 8 8 Constraints.MinHeight = 344 9 9 Constraints.MinWidth = 576 10 OnPaint = FormPaint11 10 PixelsPerInch = 96 12 11 TextHeight = 13 … … 88 87 SynonymChars = '<>' 89 88 TabOrder = 0 90 OnDropDownClose = cboImTypeChange 89 OnChange = cboImTypeChange 90 OnDropDownClose = cboImTypeDropDownClose 91 91 OnExit = cboImTypeExit 92 92 CharsNeedMatch = 1 … … 241 241 TabOrder = 8 242 242 OnChange = calPreOpChange 243 OnExit = calPreOpExit 243 244 DateOnly = False 244 245 RequireTime = False … … 256 257 TabOrder = 6 257 258 OnClick = ControlChange 259 OnExit = chkIsolationExit 258 260 end 259 261 object calRequestDate: TORDateBox -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODRad.pas
r459 r460 56 56 procedure FormCreate(Sender: TObject); 57 57 procedure cboImTypeChange(Sender: TObject); 58 procedure FormPaint(Sender: TObject);59 58 procedure memReasonExit(Sender: TObject); 60 59 procedure FormResize(Sender: TObject); … … 65 64 procedure cboProcedureExit(Sender: TObject); 66 65 procedure cboImTypeExit(Sender: TObject); 66 procedure FormClose(Sender: TObject; var Action: TCloseAction); 67 procedure chkIsolationExit(Sender: TObject); 68 procedure calPreOpExit(Sender: TObject); 69 procedure cboImTypeDropDownClose(Sender: TObject); 67 70 private 68 71 FLastRadID: string; … … 71 74 FEvtDelayDiv: string; 72 75 FPredefineOrder: boolean; 76 ImageTypeChanged : boolean; 77 FFormFirstOpened: boolean; 78 function NoPregnantSelection : Boolean; 79 procedure ImageTypeChange; 80 procedure FormFirstOpened(Sender: TObject); 73 81 protected 74 82 procedure InitDialog; override; 75 83 procedure Validate(var AnErrMsg: string); override; 76 procedure SetDefaultPregant; 84 procedure SetDefaultPregant; 77 85 public 78 86 procedure SetupDialog(OrderAction: Integer; const ID: string); override; … … 83 91 {$R *.DFM} 84 92 85 uses rODBase, rODRad, rOrders, uCore, rCore, fODRadApproval, fODRadConShRes, fLkUpLocation; 93 uses rODBase, rODRad, rOrders, uCore, rCore, fODRadApproval, fODRadConShRes, fLkUpLocation, fFrame, 94 uFormMonitor; 86 95 87 96 const … … 103 112 var 104 113 Radiologist, Contract, Research: string ; 105 AName : string;114 AName, IsPregnant: string; 106 115 ALocation, AType: integer; 107 116 108 117 { TfrmODBase common methods } 109 118 … … 116 125 if OrderAction in [ORDER_COPY, ORDER_EDIT, ORDER_QUICK] then with Responses do 117 126 begin 118 if (OrderAction = ORDER_QUICK) or (OrderAction = ORDER_ COPY) then127 if (OrderAction = ORDER_QUICK) or (OrderAction = ORDER_EDIT) or (OrderAction = ORDER_COPY) then 119 128 FPredefineOrder := True; 120 129 FEditCopy := True; … … 125 134 for i := 0 to Items.Count-1 do 126 135 if StrToIntDef(Piece(Items[i],U,4), 0) = DisplayGroup then ItemIndex := i; 136 if OrderAction = ORDER_EDIT then 137 begin 138 Enabled := False; 139 Color := clBtnFace; 140 end; 127 141 end; 128 142 if Self.EvtID>0 then … … 171 185 end; 172 186 end; 187 //hds00007460 188 tmpResp := FindResponseByName('PREGNANT',1); 189 if tmpResp <> nil then 190 if Length(tmpResp.EValue)>0 then 191 begin 192 IsPregnant := tmpResp.EValue; 193 if IsPregnant = 'YES' then 194 radPregnant.Checked := True 195 else 196 if IsPregnant = 'NO' then 197 radPregnantNo.Checked := True 198 else 199 if IsPregnant = 'UNKNOWN' then 200 radPregnantUnknown.Checked := True; 201 end; 202 //hds00007460 173 203 Changing := False; 174 204 FEditCopy := False; 175 205 OrderMessage(ImagingMessage(cboProcedure.ItemIEN)) ; 176 206 ControlChange(Self); 207 FPredefineOrder := False; 177 208 end; 178 209 end; … … 184 215 begin 185 216 if not FEditCopy then inherited; 217 186 218 FPreOpDate := ''; 187 219 FLastRadID := ''; … … 203 235 cboProcedure.Items.Add(FRadCommonCombo.Items[i]); 204 236 if FRadCommonCombo.Items.Count>0 then cboProcedure.InsertSeparator; 237 205 238 calRequestDate.Text := 'TODAY'; 206 239 SetControl(cboAvailMod, 'Modifiers'); … … 286 319 with cboCategory do if Length(ItemID) > 0 then Responses.Update('CLASS', 1, ItemID, Text); 287 320 with cboSubmit do if Length(ItemID) > 0 then Responses.Update('IMLOC', 1, ItemID, Text); 288 with radPregnant do if Checked then Responses.Update('PREGNANT', 1, 'Y' , 'Yes')321 with radPregnant do if Checked then Responses.Update('PREGNANT', 1, 'Y' , 'Yes') 289 322 else if not Enabled then Responses.Update('PREGNANT', 1, '' , ''); 290 323 with radPregnantNo do if Checked then Responses.Update('PREGNANT', 1, 'N' , 'No'); … … 387 420 with calRequestDate do 388 421 if FMDateTime = 0 then SetError(TX_NO_DATE); 422 389 423 end; 390 424 391 425 procedure TfrmODRad.cboProcedureNeedData(Sender: TObject; 392 426 const StartFrom: string; Direction, InsertAt: Integer); 427 393 428 begin 394 429 inherited ; 395 430 cboProcedure.ForDataUse(SubSetOfRadProcs(DisplayGroup, StartFrom, Direction)); 396 end;431 end; 397 432 398 433 procedure TfrmODRad.cboAvailModMouseClick(Sender: TObject); … … 402 437 Found: boolean; 403 438 begin 439 if (cboAvailMod.Items.Count < 1) or //GE 04-30-05 prevent list index out of bounds when empty 440 (cboAvailMod.ItemIndex < 0) then Exit; 404 441 Found := False; 405 442 with cboAvailMod do x := Items[ItemIndex]; … … 445 482 begin 446 483 if ItemID <> FLastRadID then 447 begin448 FLastRadID := ItemID;449 if FPredefineOrder then450 FPredefineOrder := False;451 end else Exit;484 begin 485 FLastRadID := ItemID; 486 if FPredefineOrder then 487 FPredefineOrder := False; 488 end else Exit; 452 489 Changing := True; 453 490 if Sender <> Self then … … 539 576 procedure TfrmODRad.FormCreate(Sender: TObject); 540 577 begin 578 FFormFirstOpened := TRUE; 579 ImageTypeChanged := false; 580 frmFrame.pnlVisit.Enabled := false; 541 581 AutoSizeDisabled := True; 542 582 inherited; … … 567 607 radPregnantUnknown.Enabled := False; 568 608 end else SetDefaultPregant; 609 FormMonitorBringToFrontEvent(Self, FormFirstOpened); 569 610 end; 570 611 … … 575 616 begin 576 617 inherited; 577 if FPredefineOrder then 578 FPredefineOrder := False; 579 if Changing or (cboImtype.ItemIndex = -1) then exit; 580 with cboImType do DisplayGroup := StrToIntDef(Piece(Items[ItemIndex], U, 4), 0) ; 581 if DisplayGroup = 0 then exit; 582 CtrlInits.LoadDefaults(ODForRad(Patient.DFN, FEvtDelayDiv, DisplayGroup)); // ODForRad returns TStrings with defaults 583 FPredefineOrder := False; 584 InitDialog; 585 end; 586 587 procedure TfrmODRad.FormPaint(Sender: TObject); 588 begin 589 inherited; 590 with cboImType do 591 if not FEditCopy and (ItemIEN = 0) and (DroppedDown = False) and (Application.Active) 592 then DroppedDown := True; 618 ImageTypeChanged := true; 593 619 end; 594 620 … … 679 705 end; 680 706 707 681 708 procedure TfrmODRad.cboImTypeExit(Sender: TObject); 682 709 begin 683 710 inherited; 684 if FPredefineOrder then Exit 685 else cboImTypeChange(Self); 711 ImageTypeChange; 712 end; 713 714 procedure TfrmODRad.FormClose(Sender: TObject; var Action: TCloseAction); 715 begin 716 inherited; 717 frmFrame.pnlVisit.Enabled := true; 718 FormMonitorBringToFrontEvent(Self, nil); 719 end; 720 721 procedure TfrmODRad.chkIsolationExit(Sender: TObject); 722 begin 723 inherited; 724 //Fix for CQ: 10025 725 if TabIsPressed() then 726 if NoPregnantSelection() then 727 if radPregnant.CanFocus then 728 radPregnant.SetFocus(); 729 end; 730 731 procedure TfrmODRad.calPreOpExit(Sender: TObject); 732 begin 733 inherited; 734 //Fix for CQ: 10025 735 if ShiftTabIsPressed() then 736 if NoPregnantSelection() then 737 if radPregnant.CanFocus then 738 radPregnant.SetFocus(); 739 end; 740 741 function TfrmODRad.NoPregnantSelection : Boolean; 742 begin 743 result := not ((radPregnant.Checked) or (radPregnantNo.Checked) or (radPregnantUnknown.Checked)); 744 end; 745 746 procedure TfrmODRad.cboImTypeDropDownClose(Sender: TObject); 747 begin 748 inherited; 749 ImageTypeChange; 750 end; 751 752 procedure TfrmODRad.ImageTypeChange; 753 begin 754 if not ImageTypeChanged then Exit; 755 ImageTypeChanged := false; 756 if FPredefineOrder then 757 FPredefineOrder := False; 758 if Changing or (cboImtype.ItemIndex = -1) then exit; 759 with cboImType do DisplayGroup := StrToIntDef(Piece(Items[ItemIndex], U, 4), 0) ; 760 if DisplayGroup = 0 then exit; 761 CtrlInits.LoadDefaults(ODForRad(Patient.DFN, FEvtDelayDiv, DisplayGroup)); // ODForRad returns TStrings with defaults 762 FPredefineOrder := False; 763 InitDialog; 764 end; 765 766 procedure TfrmODRad.FormFirstOpened(Sender: TObject); 767 begin 768 if(FFormFirstOpened) then 769 begin 770 FFormFirstOpened := FALSE; 771 with cboImType do 772 if not FEditCopy and (ItemIEN = 0) and (DroppedDown = False) and (Application.Active) then 773 begin 774 cboImType.DroppedDown := TRUE; 775 end; 776 end; 686 777 end; 687 778 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODVitals.dfm
r459 r460 1 1 inherited frmODVitals: TfrmODVitals 2 Left = 2733 Top = 2112 Left = 721 3 Top = 363 4 4 Caption = 'Vital Measurement Order' 5 5 PixelsPerInch = 96 … … 64 64 ListItemsOnly = False 65 65 LongList = False 66 LookupPiece = 0 66 67 MaxLength = 0 67 68 Pieces = '2' … … 70 71 TabOrder = 4 71 72 OnChange = ControlChange 73 CharsNeedMatch = 1 72 74 end 73 75 object cboSchedule: TORComboBox … … 86 88 ListItemsOnly = False 87 89 LongList = False 90 LookupPiece = 0 88 91 MaxLength = 0 89 92 Pieces = '2' … … 92 95 TabOrder = 5 93 96 OnChange = ControlChange 97 CharsNeedMatch = 1 94 98 end 95 99 object calStart: TORDateBox -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fODVitals.pas
r459 r460 38 38 procedure FormCreate(Sender: TObject); 39 39 procedure ControlChange(Sender: TObject); 40 procedure FormClose(Sender: TObject; var Action: TCloseAction); 40 41 private 41 42 { Private declarations } … … 54 55 {$R *.DFM} 55 56 56 uses uConst, ORFn, rODBase ;57 uses uConst, ORFn, rODBase, fFrame; 57 58 58 59 const … … 64 65 procedure TfrmODVitals.FormCreate(Sender: TObject); 65 66 begin 67 frmFrame.pnlVisit.Enabled := false; 66 68 inherited; 67 69 FillerID := 'OR'; // does 'on Display' order check **KCM** … … 138 140 end; 139 141 142 procedure TfrmODVitals.FormClose(Sender: TObject; 143 var Action: TCloseAction); 144 begin 145 inherited; 146 frmFrame.pnlVisit.Enabled := true; 147 end; 148 140 149 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOMSet.pas
r459 r460 26 26 procedure FormCreate(Sender: TObject); 27 27 private 28 DoingNextItem : Boolean; 29 CloseRequested : Boolean; 28 30 FDelayEvent: TOrderDelayEvent; 29 31 FClosing: Boolean; … … 105 107 var 106 108 SetItem: TSetItem; 109 theOwner: TComponent; 107 110 108 111 procedure SkipToNext; … … 113 116 114 117 begin 118 DoingNextItem := true; 115 119 //frmFrame.UpdatePtInfoOnRefresh; 116 120 if FClosing then Exit; … … 158 162 SkipToNext; 159 163 end; 160 'O': if not ActivateOrderSet( IntToStr(SetItem.DialogIEN), FDelayEvent, Self, ItemIndex) then 161 begin 162 if IsCreatedByMenu(SetItem) and (lstSet.ItemIndex < lstSet.Items.Count - 1) then 163 lstSet.Checked[lstSet.ItemIndex] := True 164 else SkipToNext; 164 'O': begin 165 if (Self.Owner.Name = 'frmOMNavA') then theOwner := Self.Owner else theOwner := self; 166 if not ActivateOrderSet( IntToStr(SetItem.DialogIEN), FDelayEvent, theOwner, ItemIndex) then 167 begin 168 if IsCreatedByMenu(SetItem) and (lstSet.ItemIndex < lstSet.Items.Count - 1) then 169 lstSet.Checked[lstSet.ItemIndex] := True 170 else SkipToNext; 171 end; 165 172 end; 166 173 else begin … … 170 177 end; {case} 171 178 end; {with lstSet} 179 DoingNextItem := false; 172 180 end; 173 181 … … 178 186 if Message.WParam = lstSet.ItemIndex then 179 187 if lstSet.ItemIndex < lstSet.Items.Count - 1 then DoNextItem else Close; 188 if CloseRequested then 189 Close; 180 190 end; 181 191 … … 197 207 begin 198 208 SendMessage(TWinControl(SetItem.OwnedBy).Handle, UM_DESTROY, SetItem.RefNum, 0); 199 Exit;209 //Exit; 200 210 end; 201 211 end; … … 219 229 FClosebyDeaCheck := False; 220 230 NoFresh := True; 231 CloseRequested := false; 232 DoingNextItem := false; 221 233 end; 222 234 … … 264 276 procedure TfrmOMSet.cmdInteruptClick(Sender: TObject); 265 277 begin 266 Close; 278 if DoingNextItem then 279 CloseRequested := true //Fix for CQ: 8297 280 else 281 Close; 267 282 end; 268 283 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOMVerify.pas
r459 r460 30 30 {$R *.DFM} 31 31 32 uses ORFn, uConst, fFrame, rMisc ;32 uses ORFn, uConst, fFrame, rMisc, uODBase; 33 33 34 34 procedure ShowVerifyText(var QuickLevel: Integer; var VerifyText: string; InptDispGrp: boolean); … … 37 37 tempStrs,prompts: TStringList; 38 38 flag: boolean; 39 HasObjects: boolean; 39 40 40 41 function CutoffOutptPrompts(const promptIDs: TStringList; var promptList: TStringList): boolean; … … 83 84 SetBounds(frmFrame.Left, frmFrame.Top + frmFrame.Height - Height, Width, Height); 84 85 SetFormPosition(frmOMVerify); 86 ExpandOrderObjects(VerifyText, HasObjects); 85 87 memText.Lines.SetText(PChar(VerifyText)); 86 88 ShowModal; -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrderFlag.dfm
r459 r460 87 87 OnExit = cboOnExit 88 88 OnNeedData = cboAlertRecipientNeedData 89 CharsNeedMatch = 1 89 90 end 90 91 end -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrderFlag.pas
r459 r460 57 57 finally 58 58 frmFlagOrder.Release; 59 AlertRecip := 0; 59 60 end; 60 61 end; -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrderSaveQuick.pas
r459 r460 104 104 DGroupName, QuickName, CRC: string; 105 105 NewIEN, AnIndex, i: Integer; 106 IsClinicOrder: boolean; 106 107 begin 107 108 Result := False; 108 109 CRC := ResponseSet.OrderCRC; 110 IsClinicOrder := False; 109 111 if CRC = EMPTY_CRC then 110 112 begin … … 117 119 with frmSaveQuickOrder do 118 120 begin 121 if (ResponseSet.DisplayGroup = ClinDisp) and (ResponseSet.Dialog = 'PSJI OR PAT FLUID OE') then 122 begin 123 ResponseSet.DisplayGroup := IVDisp; 124 IsClinicOrder := True; 125 end; 119 126 if ResponseSet.DisplayGroup = ClinDisp then 120 127 DGroupName := NameOfDGroup(InptDisp) … … 156 163 SaveQuickListForOD(lstQuickList.Items, ResponseSet.DisplayGroup); 157 164 end; {if OKPressed} 165 if IsClinicOrder = True then ResponseSet.DisplayGroup := ClinDisp; 158 166 end; {with frmSaveQuickOrder} 159 167 finally -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrders.dfm
r459 r460 1 1 inherited frmOrders: TfrmOrders 2 Left = 1423 Top = 634 Width = 6982 Left = 451 3 Top = 250 4 Width = 774 5 5 Height = 579 6 6 HelpContext = 4000 … … 14 14 inherited shpPageBottom: TShape 15 15 Top = 528 16 Width = 69016 Width = 766 17 17 end 18 18 inherited sptHorz: TSplitter 19 19 Left = 117 20 20 Height = 528 21 OnMoved = sptHorzMoved 21 22 end 22 23 inherited pnlLeft: TPanel … … 102 103 inherited pnlRight: TPanel 103 104 Left = 121 104 Width = 569105 Width = 645 105 106 Height = 528 106 107 ParentColor = True … … 111 112 Left = 0 112 113 Top = 0 113 Width = 569114 Width = 645 114 115 Height = 19 115 116 Align = alTop … … 144 145 Left = 0 145 146 Top = 19 146 Width = 569147 Width = 645 147 148 Height = 17 148 149 DragReorder = False … … 179 180 ImageIndex = -1 180 181 MinWidth = 16 181 Text = 'N rs'182 Text = 'Nurse' 182 183 Width = 40 183 184 end … … 185 186 ImageIndex = -1 186 187 MinWidth = 16 187 Text = 'Cl k'188 Text = 'Clerk' 188 189 Width = 35 189 190 end … … 197 198 ImageIndex = -1 198 199 MinWidth = 16 199 Text = 'St s'200 Text = 'Status' 200 201 Width = 50 201 202 end … … 206 207 Width = 40 207 208 end> 209 OnSectionClick = hdrOrdersSectionClick 208 210 OnSectionResize = hdrOrdersSectionResize 209 211 OnMouseDown = hdrOrdersMouseDown … … 213 215 Left = 0 214 216 Top = 36 215 Width = 569217 Width = 645 216 218 Height = 492 217 219 Style = lbOwnerDrawVariable … … 301 303 end 302 304 end 305 object mnuViewInformation: TMenuItem 306 Caption = 'Information' 307 OnClick = mnuViewInformationClick 308 object mnuViewDemo: TMenuItem 309 Tag = 1 310 Caption = 'De&mographics...' 311 OnClick = ViewInfo 312 end 313 object mnuViewVisits: TMenuItem 314 Tag = 2 315 Caption = 'Visits/Pr&ovider...' 316 OnClick = ViewInfo 317 end 318 object mnuViewPrimaryCare: TMenuItem 319 Tag = 3 320 Caption = 'Primary &Care...' 321 OnClick = ViewInfo 322 end 323 object mnuViewMyHealtheVet: TMenuItem 324 Tag = 4 325 Caption = 'MyHealthe&Vet...' 326 OnClick = ViewInfo 327 end 328 object mnuInsurance: TMenuItem 329 Tag = 5 330 Caption = '&Insurance...' 331 OnClick = ViewInfo 332 end 333 object mnuViewFlags: TMenuItem 334 Tag = 6 335 Caption = '&Flags...' 336 OnClick = ViewInfo 337 end 338 object mnuViewRemoteData: TMenuItem 339 Tag = 7 340 Caption = 'Remote &Data...' 341 OnClick = ViewInfo 342 end 343 object mnuViewReminders: TMenuItem 344 Tag = 8 345 Caption = '&Reminders...' 346 Enabled = False 347 OnClick = ViewInfo 348 end 349 object mnuViewPostings: TMenuItem 350 Tag = 9 351 Caption = '&Postings...' 352 OnClick = ViewInfo 353 end 354 end 303 355 object Z1: TMenuItem 304 356 Caption = '-' … … 522 574 OnClick = mnuActSignClick 523 575 end 576 object mnuOptimizeFields: TMenuItem 577 Caption = 'Adjust Column Size' 578 Visible = False 579 OnClick = mnuOptimizeFieldsClick 580 end 524 581 end 525 582 end -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrders.pas
r459 r460 89 89 sptVert: TSplitter; 90 90 mnuViewExpired: TMenuItem; 91 mnuViewInformation: TMenuItem; 92 mnuViewDemo: TMenuItem; 93 mnuViewVisits: TMenuItem; 94 mnuViewPrimaryCare: TMenuItem; 95 mnuViewMyHealtheVet: TMenuItem; 96 mnuInsurance: TMenuItem; 97 mnuViewFlags: TMenuItem; 98 mnuViewReminders: TMenuItem; 99 mnuViewRemoteData: TMenuItem; 100 mnuViewPostings: TMenuItem; 101 mnuOptimizeFields: TMenuItem; 91 102 procedure mnuChartTabClick(Sender: TObject); 92 103 procedure FormCreate(Sender: TObject); … … 146 157 procedure hdrOrdersMouseDown(Sender: TObject; Button: TMouseButton; 147 158 Shift: TShiftState; X, Y: Integer); 159 procedure ViewInfo(Sender: TObject); 160 procedure mnuViewInformationClick(Sender: TObject); 161 procedure mnuOptimizeFieldsClick(Sender: TObject); 162 procedure hdrOrdersSectionClick(HeaderControl: THeaderControl; 163 Section: THeaderSection); 164 procedure sptHorzMoved(Sender: TObject); 148 165 private 149 166 { Private declarations } … … 188 205 procedure UseDefaultSort; 189 206 procedure SynchListToOrders; 207 // procedure ActivateDeactiveRenew; 190 208 procedure ValidateSelected(const AnAction, WarningMsg, WarningTitle: string); 191 209 procedure ViewAlertedOrders(OrderIEN: string; Status: integer; DispGrp: string; … … 196 214 function MeasureColumnHeight(AnOrder: TOrder; Index: Integer; Column: integer):integer; 197 215 function GetPlainText(AnOrder: TOrder; index: integer):string; 216 function PatientStatusChanged: boolean; 198 217 procedure UMEventOccur(var Message: TMessage); message UM_EVENTOCCUR; 218 function CheckOrderStatus: boolean; 199 219 public 200 220 procedure setSectionWidths; //CQ6170 … … 229 249 property EvtColWidth: integer read FEvtColWidth write FEvtColWidth; 230 250 property DontCheck: boolean read FDontCheck write FDontCheck; 231 property ParentComplexOrderID: string read FParentComplexOrderID write FParentComplexOrderID; 251 property ParentComplexOrderID: string read FParentComplexOrderID write FParentComplexOrderID; 232 252 end; 233 253 … … 247 267 fOMNavA, rCore, fOCSession, fOrdersPrint, fOrdersTS, fEffectDate, fODActive, fODChild, 248 268 fOrdersCopy, fOMVerify, fODAuto, rODBase, uODBase, rMeds,fODValidateAction, fMeds, uInit, fBALocalDiagnoses, 249 fODConsult;269 fODConsult, fClinicWardMeds, fActivateDeactivate; 250 270 251 271 {$R *.DFM} … … 970 990 if ((TOrder(Items.Objects[i]).DGroupName = 'Inpt. Meds') or 971 991 (TOrder(Items.Objects[i]).DGroupName = 'Out. Meds') or 972 (TOrder(Items.Objects[i]).DGroupName = 'IV Fluids')) then 992 (TOrder(Items.Objects[i]).DGroupName = 'Clin. Orders') or 993 (TOrder(Items.Objects[i]).DGroupName = 'Infusion')) then 973 994 begin 974 995 tmpList.Add(''); … … 993 1014 ReportBox(tmpList, 'Order Details - ' + BigOrderID, True); 994 1015 end; 1016 StatusText(''); 1017 if (frmFrame.TimedOut) or (frmFrame.CCOWDrivedChange) then Exit; //code added to correct access violation on timeout 995 1018 Selected[i] := False; 996 StatusText(''); 997 end; 1019 end; 998 1020 finally 999 1021 tmpList.Free; … … 1324 1346 7: result := ChartRev; 1325 1347 8: result := NameOfStatus(Status); 1326 9: 1327 begin1328 result := MixedCase(Anorder.OrderLocName);1329 if (Index > 0) and (result = TOrder(lstOrders.Items.Objects[Index - 1]).OrderLocName) then result := '';1330 end;1348 9: result := MixedCase(Anorder.OrderLocName); 1349 //begin AGP change 26.52 display all location for orders. 1350 //result := MixedCase(Anorder.OrderLocName); 1351 //if (Index > 0) and (result = TOrder(lstOrders.Items.Objects[Index - 1]).OrderLocName) then result := ''; 1352 //end; 1331 1353 end; 1332 1354 end; … … 1435 1457 NextIndex: Integer; 1436 1458 begin 1437 1459 if PatientStatusChanged then exit; 1438 1460 if BILLING_AWARE then //CQ5114 1439 1461 fODConsult.displayDXCode := ''; //CQ5114 … … 1534 1556 BadList := TStringList.Create; 1535 1557 CheckedList := TStringList.Create; 1536 with lstOrders do for i := 0 to Items.Count - 1 do if Selected[i] then 1537 begin 1538 AnOrder := TOrder(Items.Objects[i]); 1539 //AGP Change 25.34 to fix problem with renewing inpatient meds from an outpatient location 1540 if (AnAction = 'RN') and (AnOrder.Status=6) and (AnOrder.DGroupName = 'Inpt. Meds') and (Patient.inpatient) and (IsClinicLoc(Encounter.Location)) then 1541 begin 1542 Selected[i] := False; 1543 MessageDlg('You can not renew inpatient medication order on a clinic location for selected inpatient.', mtWarning, [mbOK], 0); 1544 end; 1545 if (AnAction = 'RN') or (AnAction = 'EV') then // or (AnAction = 'RW') then 1546 begin 1547 if not IsValidSchedule(AnOrder.ID) then 1548 begin 1549 if (AnAction = 'RN') then 1550 ShowMessage('The order contains invalid schedule and can not be renewed.') 1551 else if (AnAction = 'EV') then 1552 ShowMessage('The order contains invalid schedule and can not be changed to event delayed order.'); 1553 //else if (AnAction = 'RW') then 1554 // ShowMessage('The order contains invalid schedule and can not be copied.); 1558 try 1559 with lstOrders do for i := 0 to Items.Count - 1 do if Selected[i] then 1560 begin 1561 AnOrder := TOrder(Items.Objects[i]); 1562 if (AnAction = 'RN') and (AnOrder.Status=6) and (AnOrder.DGroupName = 'Inpt. Meds') and (Patient.inpatient) and (IsClinicLoc(Encounter.Location)) then 1563 begin 1564 Selected[i] := False; 1565 MessageDlg('You cannot renew inpatient medication order on a clinic location for selected inpatient.', mtWarning, [mbOK], 0); 1566 end; 1567 if ((AnAction = 'RN') or (AnAction = 'EV')) and (AnOrder.EnteredInError = 0) then //AGP Changes PSI-04053 1568 begin 1569 if not IsValidSchedule(AnOrder.ID) then 1570 begin 1571 if (AnAction = 'RN') then 1572 ShowMessage('The order contains invalid schedule and can not be renewed.') 1573 else if (AnAction = 'EV') then 1574 ShowMessage('The order contains invalid schedule and can not be changed to event delayed order.'); 1575 1576 Selected[i] := False; 1577 Continue; 1578 end; 1579 end; 1580 //AGP CHANGE ORDER ENTERED IN ERROR TO ALLOW SIGNATURE AND VERIFY ACTIONS 26.23 1581 if ((AnOrder.EnteredInError = 1) and ((AnOrder.Status = 1) or (AnOrder.Status = 13))) and ((AnAction <> 'ES') and (AnAction <> 'VR')) then 1582 begin 1583 InfoBox(AnOrder.Text + WarningMsg + 'This order has been mark as Entered in error.', WarningTitle, MB_OK); 1584 Selected[i] := False; 1585 Continue; 1586 end; 1587 if ((AnAction <> OA_RELEASE) and (AnOrder.EnteredInError = 0)) or (((AnOrder.EnteredInError = 1) and ((AnOrder.Status = 1) or (AnOrder.Status = 13))) and 1588 (AnAction = 'ES')) then 1589 ValidateOrderAction(AnOrder.ID, AnAction, ErrMsg) 1590 //AGP END Changes 1591 else ErrMsg := ''; 1592 if (Length(ErrMsg)>0) and (Pos('COMPLEX-PSI',ErrMsg)<1) then 1593 begin 1594 InfoBox(AnOrder.Text + WarningMsg + ErrMsg, WarningTitle, MB_OK); 1555 1595 Selected[i] := False; 1556 1596 Continue; 1557 1597 end; 1558 end; 1559 if AnAction <> OA_RELEASE then ValidateOrderAction(AnOrder.ID, AnAction, ErrMsg) 1560 else ErrMsg := ''; 1561 if (Length(ErrMsg)>0) and (Pos('COMPLEX-PSI',ErrMsg)<1) then 1562 begin 1563 InfoBox(AnOrder.Text + WarningMsg + ErrMsg, WarningTitle, MB_OK); 1564 Selected[i] := False; 1565 Continue; 1566 end; 1567 if (Length(ErrMsg)>0) and IsFirstDoseNowOrder(AnOrder.ID) and (AnAction <> 'RL') then 1568 begin 1569 InfoBox(AnOrder.Text + WarningMsg + ErrMsg, WarningTitle, MB_OK); 1570 Selected[i] := False; 1571 Continue; 1572 end; 1573 if (Length(ErrMsg)>0) and ( (AnAction = OA_CHGEVT) or (AnAction = OA_EDREL) ) then 1574 begin 1575 InfoBox(AnOrder.Text + WarningMsg + ErrMsg, WarningTitle, MB_OK); 1576 Selected[i] := False; 1577 Continue; 1578 end; 1579 AParentID := ''; 1580 IsValidActionOnComplexOrder(AnOrder.ID, AnAction,TListBox(lstOrders),CheckedList,ErrMsg, AParentID); 1581 TOrder(Items.Objects[i]).ParentID := AParentID; 1582 if (Length(ErrMsg)=0) and (AnAction=OA_EDREL) then 1598 if (Length(ErrMsg)>0) and IsFirstDoseNowOrder(AnOrder.ID) and (AnAction <> 'RL') then 1599 begin 1600 InfoBox(AnOrder.Text + WarningMsg + ErrMsg, WarningTitle, MB_OK); 1601 Selected[i] := False; 1602 Continue; 1603 end; 1604 if (Length(ErrMsg)>0) and ( (AnAction = OA_CHGEVT) or (AnAction = OA_EDREL) ) then 1605 begin 1606 InfoBox(AnOrder.Text + WarningMsg + ErrMsg, WarningTitle, MB_OK); 1607 Selected[i] := False; 1608 Continue; 1609 end; 1610 AParentID := ''; 1611 IsValidActionOnComplexOrder(AnOrder.ID, AnAction,TListBox(lstOrders),CheckedList,ErrMsg, AParentID); 1612 TOrder(Items.Objects[i]).ParentID := AParentID; 1613 if (Length(ErrMsg)=0) and (AnAction=OA_EDREL) then 1614 begin 1615 if (AnOrder.Signature = 2) and (not VerbTelPolicyOrder(AnOrder.ID)) then 1616 begin 1617 ErrMsg := 'Need to be signed first.'; 1618 Selected[i] := False; 1619 end; 1620 end; 1621 1622 if (AnAction = OA_CHGEVT) or (AnAction = OA_EDREL) then 1623 begin 1624 if Length(ErrMsg)>0 then 1625 begin 1626 Selected[i] := False; 1627 Badlist.Add(AnOrder.Text + '^' + ErrMsg); 1628 end 1629 else 1630 GoodList.Add(AnOrder.Text); 1631 end; 1632 1633 if (Length(ErrMsg) > 0) and (AnAction <> OA_CHGEVT) and (AnAction <> OA_EDREL) then 1634 begin 1635 if Pos('COMPLEX-PSI',ErrMsg)>0 then ErrMsg := TX_COMPLEX; 1636 InfoBox(AnOrder.Text + WarningMsg + ErrMsg, WarningTitle, MB_OK); 1637 Selected[i] := False; 1638 end; 1639 1640 if Selected[i] and (not OrderIsLocked(AnOrder.ID, AnAction)) then Selected[i] := False; 1641 1642 end; //with 1643 1644 if ((AnAction = OA_CHGEVT) or (AnAction = OA_EDREL)) then 1583 1645 begin 1584 if (AnOrder.Signature = 2) and (not VerbTelPolicyOrder(AnOrder.ID)) then 1585 begin 1586 ErrMsg := 'Need to be signed first.'; 1587 Selected[i] := False; 1588 end; 1646 if (BadList.Count = 1) and (GoodList.Count < 1 ) then 1647 InfoBox(Piece(BadList[0],'^',1) + WarningMsg + Piece(BadList[0],'^',2), WarningTitle, MB_OK); 1648 if ((BadList.Count >= 1) and (GoodList.Count >= 1)) or ( BadList.Count > 1 )then 1649 DisplayOrdersForAction(BadList,GoodList,AnAction); 1589 1650 end; 1590 1591 if (AnAction = OA_CHGEVT) or (AnAction = OA_EDREL) then 1592 begin 1593 if Length(ErrMsg)>0 then 1594 begin 1595 Selected[i] := False; 1596 Badlist.Add(AnOrder.Text + '^' + ErrMsg); 1597 end 1598 else 1599 GoodList.Add(AnOrder.Text); 1600 end; 1601 1602 if (Length(ErrMsg) > 0) and (AnAction <> OA_CHGEVT) and (AnAction <> OA_EDREL) then 1603 begin 1604 if Pos('COMPLEX-PSI',ErrMsg)>0 then ErrMsg := TX_COMPLEX; 1605 InfoBox(AnOrder.Text + WarningMsg + ErrMsg, WarningTitle, MB_OK); 1606 Selected[i] := False; 1607 end; 1608 1609 if Selected[i] and (not OrderIsLocked(AnOrder.ID, AnAction)) then Selected[i] := False; 1610 1611 end; //with 1612 1613 if ((AnAction = OA_CHGEVT) or (AnAction = OA_EDREL)) then 1614 begin 1615 if (BadList.Count = 1) and (GoodList.Count < 1 ) then 1616 InfoBox(Piece(BadList[0],'^',1) + WarningMsg + Piece(BadList[0],'^',2), WarningTitle, MB_OK); 1617 if ((BadList.Count >= 1) and (GoodList.Count >= 1)) or ( BadList.Count > 1 )then 1618 DisplayOrdersForAction(BadList,GoodList,AnAction); 1619 end; 1651 finally 1652 GoodList.Free; 1653 BadList.Free; 1654 CheckedList.Free; 1655 end; 1620 1656 end; 1621 1657 … … 1682 1718 SelectedList := TList.Create; 1683 1719 try 1684 ValidateSelected(OA_DC, TX_NO_DC, TC_NO_DC); // validate DC action on each order 1720 //if CheckOrderStatus = True then Exit; 1721 ValidateSelected(OA_DC, TX_NO_DC, TC_NO_DC); // validate DC action on each order 1722 //ActivateDeactiveRenew; AGP 26.53 TURN OFF UNTIL FINAL DECISION CAN BE MADE 1685 1723 MakeSelectedList(SelectedList); // build list of orders that remain 1686 1724 // updating the Changes object happens in ExecuteDCOrders, based on individual order … … 1753 1791 begin 1754 1792 inherited; 1755 if not EncounterPresentEDO then Exit; 1793 if not EncounterPresentEDO then Exit; 1756 1794 if NoneSelected(TX_NOSEL) then Exit; 1757 1795 if not AuthorizedUser then Exit; … … 1764 1802 SelectedList := TList.Create; 1765 1803 try 1804 if CheckOrderStatus = True then Exit; 1766 1805 ValidateSelected(OA_CHGEVT, TX_NO_CV, TC_NO_CV); // validate Change Event action on each order 1767 1806 MakeSelectedList(SelectedList); // build list of orders that remain … … 1799 1838 SelectedList := TList.Create; 1800 1839 try 1840 if CheckOrderStatus = True then Exit; 1801 1841 ValidateSelected(OA_HOLD, TX_NO_HOLD, TC_NO_HOLD); // validate hold action on each order 1802 1842 MakeSelectedList(SelectedList); // build list of orders that remain … … 1824 1864 SelectedList := TList.Create; 1825 1865 try 1866 if CheckOrderStatus = True then Exit; 1826 1867 ValidateSelected(OA_UNHOLD, TX_NO_UNHOLD, TC_NO_UNHOLD); // validate release hold action 1827 1868 MakeSelectedList(SelectedList); // build list of selected orders … … 1850 1891 SelectedList := TList.Create; 1851 1892 try 1893 if CheckOrderStatus = True then Exit; 1852 1894 ValidateSelected(OA_RENEW, TX_NO_RENEW, TC_NO_RENEW); // validate renew action for each 1853 1895 MakeSelectedList(SelectedList); // build list of orders that remain … … 2026 2068 try 2027 2069 if NoneSelected(TX_NOSEL) then Exit; 2070 if CheckOrderStatus = True then Exit; 2028 2071 ValidateSelected(OA_CHANGE, TX_NO_CHANGE, TC_NO_CHANGE); 2029 2072 if (FCurrentView.EventDelay.PtEventIFN>0) and … … 2067 2110 if NoneSelected(TX_NOSEL) then Exit; 2068 2111 NewOrderCreated := False; 2112 if CheckOrderStatus = True then Exit; 2069 2113 ValidateSelected(OA_COPY, TX_NO_COPY, TC_NO_COPY); 2070 2114 if (FCurrentView.EventDelay.PtEventIFN>0) and (PtEvtCompleted(FCurrentView.EventDelay.PtEventIFN, FCurrentView.EventDelay.EventName)) then … … 2269 2313 UBACore.CompleteUnsignedBillingInfo(rpcGetUnsignedOrdersBillingData(OrderListSCEI) ); 2270 2314 end; 2271 2315 2272 2316 {billing Aware} 2273 2317 ExecuteReleaseOrderChecks(SelectedList); // call order checking … … 2279 2323 if Active and (FollowUp = NF_ORDER_REQUIRES_ELEC_SIGNATURE) then 2280 2324 UnsignedOrderAlertFollowup(Piece(RecordID, U, 2)); 2281 UpdateExpiringMedAlerts(Patient.DFN); 2282 UpdateUnverifiedMedAlerts(Patient.DFN); 2283 UpdateUnverifiedOrderAlerts(Patient.DFN); 2325 if Active then 2326 begin 2327 UpdateExpiringMedAlerts(Patient.DFN); 2328 UpdateUnverifiedMedAlerts(Patient.DFN); 2329 UpdateUnverifiedOrderAlerts(Patient.DFN); 2330 end; 2284 2331 if not uInit.TimedOut then 2285 2332 begin … … 2370 2417 NF_DNR_EXPIRING : 2371 2418 ViewAlertedOrders('', STS_EXPIRING, '', False, True, 'All Services, Expiring'); 2372 NF_MEDICATIONS_EXPIRING : 2419 NF_MEDICATIONS_EXPIRING_INPT : 2420 begin 2421 ViewAlertedOrders('', STS_EXPIRING, 'PHARMACY', False, True, 'Medications, Expiring'); 2422 end; 2423 NF_MEDICATIONS_EXPIRING_OUTPT : 2373 2424 begin 2374 2425 ViewAlertedOrders('', STS_EXPIRING, 'PHARMACY', False, True, 'Medications, Expiring'); … … 2509 2560 if (ALocation > 0) and (ALocation <> Encounter.Location) then 2510 2561 begin 2511 if InfoBox(TX_NEW_LOC1 + AName + TX_NEW_LOC2, TC_NEW_LOC, MB_YESNO) = IDYES 2512 then Encounter.Location := ALocation; 2562 //gary 2563 Encounter.Location := frmClinicWardMeds.ClinicOrWardLocation(Alocation); 2564 // if InfoBox(TX_NEW_LOC1 + AName + TX_NEW_LOC2, TC_NEW_LOC, MB_YESNO) = IDYES 2565 // then Encounter.Location := ALocation; 2513 2566 end; 2514 2567 if Encounter.Location = 0 … … 3045 3098 inherited SetFontSize( FontSize ); 3046 3099 RedrawOrderList; 3100 mnuOptimizeFieldsClick(self); 3101 lstSheets.Repaint; 3102 lstWrite.Repaint; 3103 btnDelayedOrder.Repaint; 3047 3104 end; 3048 3105 … … 3050 3107 begin 3051 3108 inherited; 3109 if PatientStatusChanged then exit; 3052 3110 //frmFrame.UpdatePtInfoOnRefresh; 3053 3111 end; … … 3056 3114 begin 3057 3115 inherited; 3116 if PatientStatusChanged then exit; 3058 3117 //frmFrame.UpdatePtInfoOnRefresh; 3059 3118 end; … … 3062 3121 begin 3063 3122 inherited; 3123 if PatientStatusChanged then exit; 3064 3124 //frmFrame.UpdatePtInfoOnRefresh; 3065 3125 end; … … 3068 3128 begin 3069 3129 inherited; 3130 if PatientStatusChanged then exit; 3070 3131 //frmFrame.UpdatePtInfoOnRefresh; 3071 3132 end; … … 3186 3247 var 3187 3248 i: integer; 3188 totalSectionsWidth : integer;3249 totalSectionsWidth, originalwidth: integer; 3189 3250 begin 3190 3251 inherited; 3191 3252 //CQ6170 3192 3253 totalSectionsWidth := getTotalSectionsWidth; 3193 3194 if totalSectionsWidth > lstOrders.Width - 5 then 3195 begin 3196 for i := 0 to hdrOrders.Sections.Count-1 do 3197 begin 3198 hdrOrders.Sections[i].Width := origWidths[i]; 3199 lstOrders.Invalidate; 3200 end; 3201 end; 3254 if totalSectionsWidth > lstOrders.Width - 5 then 3255 begin 3256 originalwidth := 0; 3257 for i := 0 to hdrOrders.Sections.Count - 1 do 3258 originalwidth := originalwidth + origWidths[i]; 3259 if originalwidth < totalSectionsWidth then 3260 begin 3261 for i := 0 to hdrOrders.Sections.Count - 1 do 3262 hdrOrders.Sections[i].Width := origWidths[i]; 3263 lstOrders.Invalidate; 3264 end; 3265 end; 3202 3266 //end CQ6170 3203 3267 end; … … 3209 3273 end; 3210 3274 3275 function TfrmOrders.PatientStatusChanged: boolean; 3276 const 3277 3278 msgTxt1 = 'Patient status was changed from '; 3279 msgTxt2 = 'CPRS needs to refresh patient information to display patient latest record.'; 3280 //GE CQ9537 - Change message text 3281 msgTxt3 = 'Patient has been admitted. '; 3282 msgTxt4 = CRLF + 'You will be prompted to sign your orders. Any new orders subsequently' + 3283 CRLF +'entered and signed will be directed to the inpatient staff.'; 3284 var 3285 PtSelect: TPtSelect; 3286 IsInpatientNow: boolean; 3287 ptSts: string; 3288 begin 3289 result := False; 3290 SelectPatient(Patient.DFN, PtSelect); 3291 IsInpatientNow := Length(PtSelect.Location) > 0; 3292 if Patient.Inpatient <> IsInpatientNow then 3293 begin 3294 if (not Patient.Inpatient) then //GE CQ9537 - Change message text 3295 MessageDlg(msgTxt3 + msgTxt4, mtWarning, [mbOK], 0) 3296 else 3297 begin 3298 if Patient.Inpatient then ptSts := 'Inpatient to Outpatient.'; 3299 MessageDlg(msgTxt1 + ptSts + #13#10#13 + msgTxt2, mtWarning, [mbOK], 0); 3300 end; 3301 frmFrame.mnuFileRefreshClick(Application); 3302 Result := True; 3303 end; 3304 end; 3305 3306 function TfrmOrders.CheckOrderStatus: boolean; 3307 var 3308 i: integer; 3309 AnOrder: TOrder; 3310 begin 3311 Result := False; 3312 with lstOrders do for i := 0 to Items.Count - 1 do if Selected[i] then 3313 begin 3314 AnOrder := TOrder(Items.Objects[i]); 3315 if AnORder.Status <> GetOrderStatus(AnOrder.ID) then 3316 begin 3317 MessageDlg('The Order status has changed.' + #13#10#13 + 'CPRS needs to refresh patient information to display the correct order status', mtWarning, [mbOK], 0); 3318 frmFrame.mnuFileRefreshClick(Application); 3319 Result := True; 3320 EXIT; 3321 end; 3322 end; 3323 end; 3324 3325 (*procedure TfrmOrders.ActivateDeactiveRenew; 3326 var 3327 i: Integer; 3328 AnOrder: TOrder; 3329 tmpArr: TStringList; 3330 begin 3331 tmpArr := TStringList.Create; 3332 with lstOrders do for i := 0 to Items.Count - 1 do if Selected[i] then 3333 begin 3334 AnOrder := TOrder(Items.Objects[i]); 3335 if AnOrder.Status = 5 then tmpArr.Add(AnOrder.ID); 3336 end; 3337 if tmpArr <> nil then frmActivateDeactive.fActivateDeactive(tmpArr); 3338 end; *) 3339 3340 procedure TfrmOrders.ViewInfo(Sender: TObject); 3341 begin 3342 inherited; 3343 frmFrame.ViewInfo(Sender); 3344 end; 3345 3346 procedure TfrmOrders.mnuViewInformationClick(Sender: TObject); 3347 begin 3348 inherited; 3349 mnuViewDemo.Enabled := frmFrame.pnlPatient.Enabled; 3350 mnuViewVisits.Enabled := frmFrame.pnlVisit.Enabled; 3351 mnuViewPrimaryCare.Enabled := frmFrame.pnlPrimaryCare.Enabled; 3352 mnuViewMyHealtheVet.Enabled := not (Copy(frmFrame.laMHV.Hint, 1, 2) = 'No'); 3353 mnuInsurance.Enabled := not (Copy(frmFrame.laVAA2.Hint, 1, 2) = 'No'); 3354 mnuViewFlags.Enabled := frmFrame.lblFlag.Enabled; 3355 mnuViewRemoteData.Enabled := frmFrame.lblCirn.Enabled; 3356 mnuViewReminders.Enabled := frmFrame.pnlReminders.Enabled; 3357 mnuViewPostings.Enabled := frmFrame.pnlPostings.Enabled; 3358 end; 3359 3360 procedure TfrmOrders.mnuOptimizeFieldsClick(Sender: TObject); 3361 var 3362 totalSectionsWidth, unitvalue: integer; 3363 begin 3364 totalSectionsWidth := pnlRight.Width - 3; 3365 if totalSectionsWidth < 16 then exit; 3366 unitvalue := round(totalSectionsWidth / 16); 3367 with hdrOrders do 3368 begin 3369 Sections[1].Width := unitvalue; 3370 Sections[2].Width := pnlRight.Width - (unitvalue * 10) - 5; 3371 Sections[3].Width := unitvalue * 2; 3372 Sections[4].Width := unitvalue * 2; 3373 Sections[5].Width := unitvalue; 3374 Sections[6].Width := unitvalue; 3375 Sections[7].Width := unitvalue; 3376 Sections[8].Width := unitvalue; 3377 Sections[9].Width := unitvalue; 3378 end; 3379 hdrOrdersSectionResize(hdrOrders, hdrOrders.Sections[0]); 3380 hdrOrders.Repaint; 3381 end; 3382 3383 procedure TfrmOrders.hdrOrdersSectionClick(HeaderControl: THeaderControl; 3384 Section: THeaderSection); 3385 begin 3386 inherited; 3387 //if Section = hdrOrders.Sections[1] then 3388 mnuOptimizeFieldsClick(self); 3389 end; 3390 3391 procedure TfrmOrders.sptHorzMoved(Sender: TObject); 3392 begin 3393 inherited; 3394 mnuOptimizeFieldsClick(self); 3395 end; 3396 3211 3397 end. 3212 3398 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersDC.dfm
r459 r460 65 65 ParentShowHint = False 66 66 ShowHint = True 67 Sorted = True 67 68 TabOrder = 0 68 69 Caption = 'Reason for Discontinue (select one)' -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersDC.pas
r459 r460 36 36 {$R *.DFM} 37 37 38 uses rOrders, uCore, uConst, fOrders, UBAGlobals; 39 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. } 40 //, fOrderChildren; 38 uses rOrders, uCore, uConst, fOrders; 41 39 42 40 function ExecuteDCOrders(SelectedList: TList; var DelEvt: boolean): Boolean; … … 52 50 OriginalID,APtEvtID,APtEvtName,AnEvtInfo,tmpPtEvt: string; 53 51 PtEvtList: TStringList; 54 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. }55 (* tmpList: TList;56 j: integer;57 AChildOrder: TOrder;*)58 52 begin 59 53 Result := False; … … 63 57 PtEvtList := TStringList.Create; 64 58 if SelectedList.Count = 0 then Exit; 65 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. }66 // tmpList := TList.Create;67 59 frmDCOrders := TfrmDCOrders.Create(Application); 68 60 try … … 72 64 begin 73 65 AnOrder := TOrder(Items[i]); 74 75 if BILLING_AWARE then //CQ458976 UBAGlobals.RemoveOrderFromDxList(AnOrder.ID);77 78 { TODO -oRich V. -cOutpatient Meals : Comment next 3 lines for processing of child orders treeview. }79 66 frmDCOrders.lstOrders.Items.Add(AnOrder.Text); 80 67 if not ((AnOrder.Status = 11) and (AnOrder.Signature = 2)) then NeedReason := True; 81 68 end; 82 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. }83 //*********** begin OP meals changes **************84 (* if Copy(AnOrder.Text, 1, 1) = '+' then85 begin86 ActOnChildOrders(tmpList, AnOrder.ID);87 { TODO -oRich V. -cOutpatient Meals : How/when to get selected items into SelectedList? }88 for j := tmpList.Count - 1 downto 0 do89 begin90 AChildOrder := TOrder(tmpList.Items[j]);91 frmDCOrders.lstOrders.Items.Add(AChildOrder.Text);92 if not ((AChildOrder.Status = 11) and (AChildOrder.Signature = 2)) then NeedReason := True;93 end;94 end else95 begin96 frmDCOrders.lstOrders.Items.Add(AnOrder.Text);97 if not ((AnOrder.Status = 11) and (AnOrder.Signature = 2)) then NeedReason := True;98 end;99 end;*)100 //************* End OP meals changes ****************101 69 if NeedReason then 102 70 begin … … 126 94 end; 127 95 DCT_DELETION: begin 128 if BILLING_AWARE then129 UBAGlobals.BADeltedOrders.Add(OriginalID);130 96 Changes.Remove(CH_ORD, OriginalID); 131 97 if (AnOrder.ID = '0') or (AnOrder.ID = '') … … 174 140 else with SelectedList do for i := 0 to Count - 1 do UnlockOrder(TOrder(Items[i]).ID); 175 141 finally 176 { TODO -oRich V. -cOutpatient Meals : Uncomment for processing of child orders treeview. }177 //tmpList.Free;178 142 frmDCOrders.Release; 179 143 end; … … 202 166 begin 203 167 inherited; 204 if not (lstReason.ItemIEN > 0) then168 if (lstReason.Visible) and (not (lstReason.ItemIEN > 0)) then 205 169 begin 206 170 InfoBox(TX_REASON_REQ, TC_REASON_REQ, MB_OK); -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersOnChart.pas
r459 r460 33 33 {$R *.DFM} 34 34 35 uses rCore, rOrders, uConst, fOrdersPrint, uOrders; 35 uses rCore, rOrders, uConst, fOrdersPrint, uOrders, fFrame, UCore, 36 fClinicWardMeds; 36 37 37 38 const … … 43 44 var 44 45 frmOnChartOrders: TfrmOnChartOrders; 45 i : Integer;46 i, PrintLoc: Integer; 46 47 SignList: TStringList; 47 48 OrderText: string; … … 62 63 begin 63 64 Result := False; 65 PrintLoc := 0; 64 66 if SelectedList.Count = 0 then Exit; 65 67 frmOnChartOrders := TfrmOnChartOrders.Create(Application); … … 78 80 StatusText('Sending Orders to Service(s)...'); 79 81 if SignList.Count > 0 then SendOrders(SignList, ''); 82 83 if (not frmFrame.TimedOut) then 84 begin 85 if IsValidIMOLoc(uCore.TempEncounterLoc,Patient.DFN) then 86 frmClinicWardMeds.ClinicOrWardLocation(SignList, uCore.TempEncounterLoc,uCore.TempEncounterLocName, PrintLoc) 87 else 88 if (IsValidIMOLoc(Encounter.Location,Patient.DFN)) and ((frmClinicWardMeds.rpcIsPatientOnWard(patient.DFN)) and (Patient.Inpatient = false)) then 89 frmClinicWardMeds.ClinicOrWardLocation(SignList, Encounter.Location,Encounter.LocationName, PrintLoc); 90 end; 91 uCore.TempEncounterLoc := 0; 92 uCore.TempEncounterLocName := ''; 93 80 94 with SignList do if Count > 0 then for i := 0 to Count - 1 do 81 95 begin … … 88 102 end; 89 103 StatusText(''); 90 PrintOrdersOnSignRelease(SignList, NO_WRITTEN );104 PrintOrdersOnSignRelease(SignList, NO_WRITTEN, PrintLoc); 91 105 // SetupOrdersPrint(SignList, DeviceInfo, NO_WRITTEN, False, PrintIt); //*KCM* 92 106 // if PrintIt then PrintOrdersOnReview(SignList, DeviceInfo); //*KCM* -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersRelease.pas
r459 r460 41 41 {$R *.DFM} 42 42 43 uses Hash, rCore, rOrders, uConst, fSignItem, fOrdersPrint, uCore, uOrders, fRptBox; 43 uses Hash, rCore, rOrders, uConst, fSignItem, fOrdersPrint, uCore, uOrders, fRptBox, 44 fFrame, fClinicWardMeds; 44 45 45 46 const … … 55 56 var 56 57 frmReleaseOrders: TfrmReleaseOrders; 57 i : Integer;58 i, PrintLoc: Integer; 58 59 SignList: TStringList; 59 60 OrderText: string; … … 87 88 begin 88 89 Result := False; 90 PrintLoc := 0; 89 91 if SelectedList.Count = 0 then Exit; 90 92 frmReleaseOrders := TfrmReleaseOrders.Create(Application); … … 109 111 StatusText('Sending Orders to Service(s)...'); 110 112 if SignList.Count > 0 then SendOrders(SignList, frmReleaseOrders.ESCode); 113 114 if (not frmFrame.TimedOut) then 115 begin 116 if IsValidIMOLoc(uCore.TempEncounterLoc,Patient.DFN) then 117 frmClinicWardMeds.ClinicOrWardLocation(SignList, uCore.TempEncounterLoc,uCore.TempEncounterLocName, PrintLoc) 118 else 119 if (IsValidIMOLoc(Encounter.Location,Patient.DFN)) and ((frmClinicWardMeds.rpcIsPatientOnWard(patient.DFN)) and (Patient.Inpatient = false)) then 120 frmClinicWardMeds.ClinicOrWardLocation(SignList, Encounter.Location,Encounter.LocationName, PrintLoc); 121 end; 122 uCore.TempEncounterLoc := 0; 123 uCore.TempEncounterLocName := ''; 124 125 //hds7591 Clinic/Ward movement. 126 127 111 128 with SignList do if Count > 0 then for i := 0 to Count - 1 do 112 129 begin … … 120 137 end; 121 138 StatusText(''); 122 PrintOrdersOnSignRelease(SignList, frmReleaseOrders.FNature );139 PrintOrdersOnSignRelease(SignList, frmReleaseOrders.FNature, PrintLoc); 123 140 // SetupOrdersPrint(SignList, DeviceInfo, frmReleaseOrders.FNature, False, PrintIt); //*KCM* 124 141 // if PrintIt then PrintOrdersOnReview(SignList, DeviceInfo); //*KCM* -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersRenew.dfm
r459 r460 1 1 inherited frmRenewOrders: TfrmRenewOrders 2 Left = 273 3 Top = 185 4 Width = 450 5 Height = 270 2 Left = 434 3 Top = 232 4 HorzScrollBar.Tracking = True 5 HorzScrollBar.Visible = True 6 VertScrollBar.Tracking = True 7 AutoScroll = False 6 8 Caption = 'Renew Orders' 9 ClientHeight = 416 10 ClientWidth = 592 7 11 Position = poScreenCenter 12 Scaled = False 8 13 OnClose = FormClose 9 14 OnCreate = FormCreate … … 11 16 PixelsPerInch = 96 12 17 TextHeight = 13 13 object lstOrders: TListBox14 Left = 015 Top = 1716 Width = 44217 Height = 18518 Style = lbOwnerDrawVariable19 Align = alClient20 Color = clCream21 ItemHeight = 1322 TabOrder = 023 OnClick = lstOrdersClick24 OnDrawItem = lstOrdersDrawItem25 OnMeasureItem = lstOrdersMeasureItem26 end27 18 object hdrOrders: THeaderControl 28 19 Left = 0 29 20 Top = 0 30 Width = 44221 Width = 592 31 22 Height = 17 32 23 DragReorder = False 24 Constraints.MinHeight = 17 33 25 Sections = < 34 26 item 27 AutoSize = True 35 28 ImageIndex = -1 36 29 Text = 'Order to be Renewed' 37 Width = 31730 Width = 296 38 31 end 39 32 item 33 AutoSize = True 40 34 ImageIndex = -1 41 35 Text = 'Start/Stop Time' 42 Width = 12536 Width = 296 43 37 end> 38 OnSectionResize = hdrOrdersSectionResize 44 39 end 45 object Panel1: TPanel40 object pnlBottom: TPanel 46 41 Left = 0 47 Top = 20248 Width = 44249 Height = 4142 Top = 393 43 Width = 592 44 Height = 23 50 45 Align = alBottom 46 Anchors = [akLeft, akTop, akRight, akBottom] 47 AutoSize = True 51 48 TabOrder = 2 52 49 DesignSize = ( 53 44254 41)50 592 51 23) 55 52 object cmdCancel: TButton 56 Left = 36257 Top = 1 253 Left = 512 54 Top = 1 58 55 Width = 72 59 56 Height = 21 … … 61 58 Cancel = True 62 59 Caption = 'Cancel' 60 Constraints.MinHeight = 21 63 61 TabOrder = 0 64 62 OnClick = cmdCancelClick 65 63 end 66 64 object cmdOK: TButton 67 Left = 27468 Top = 1 265 Left = 424 66 Top = 1 69 67 Width = 72 70 68 Height = 21 71 69 Anchors = [akTop, akRight] 72 70 Caption = 'OK' 71 Constraints.MinHeight = 21 73 72 Default = True 74 73 TabOrder = 1 … … 77 76 object cmdChange: TButton 78 77 Left = 8 79 Top = 1 278 Top = 1 80 79 Width = 145 81 80 Height = 21 82 81 Caption = 'Change...' 82 Constraints.MinHeight = 21 83 83 Enabled = False 84 84 TabOrder = 2 … … 86 86 end 87 87 end 88 object lstOrders: TCaptionListBox 89 Left = 0 90 Top = 17 91 Width = 592 92 Height = 376 93 Style = lbOwnerDrawVariable 94 Align = alClient 95 Anchors = [] 96 Color = clCream 97 Ctl3D = True 98 ExtendedSelect = False 99 Font.Charset = DEFAULT_CHARSET 100 Font.Color = clWindowText 101 Font.Height = -11 102 Font.Name = 'MS Sans Serif' 103 Font.Style = [] 104 ItemHeight = 24 105 ParentCtl3D = False 106 ParentFont = False 107 ParentShowHint = False 108 ShowHint = True 109 TabOrder = 1 110 OnClick = lstOrdersClick 111 OnDrawItem = lstOrdersDrawItem 112 OnMeasureItem = lstOrdersMeasureItem 113 HintOnItem = True 114 end 88 115 end -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersRenew.pas
r459 r460 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 7 fAutoSz, StdCtrls, ORFn, ComCtrls, uConst, rODMeds, uOrders, fOCAccept, 8 ExtCtrls, uODBase ;8 ExtCtrls, uODBase, ORCtrls; 9 9 10 10 type 11 11 TfrmRenewOrders = class(TfrmAutoSz) 12 lstOrders: TListBox;13 12 hdrOrders: THeaderControl; 14 Panel1: TPanel;13 pnlBottom: TPanel; 15 14 cmdCancel: TButton; 16 15 cmdOK: TButton; 17 16 cmdChange: TButton; 17 lstOrders: TCaptionListBox; 18 18 procedure FormCreate(Sender: TObject); 19 19 procedure cmdOKClick(Sender: TObject); … … 27 27 procedure FormClose(Sender: TObject; var Action: TCloseAction); 28 28 procedure FormShow(Sender: TObject); 29 procedure hdrOrdersSectionResize(HeaderControl: THeaderControl; 30 Section: THeaderSection); 29 31 private 30 32 OKPressed: Boolean; … … 78 80 IsInpt: boolean; 79 81 i,j: Integer; 80 m: integer; //BAPHII 1.3.282 //m: integer; //BAPHII 1.3.2 81 83 PkgInfo:string; 82 84 PlainText,RnErrMsg: string; … … 251 253 AnOrder.LinkObject := nil; 252 254 end; 253 254 255 frmRenewOrders.Release; 255 256 end; 256 257 258 259 257 end; 260 258 … … 283 281 DateHeight := MeasureColumnHeight(x, Index, DATE_COLUMN); 284 282 Height := HigherOf(TextHeight, DateHeight); 283 if Height > 255 then Height := 255; //This is maximum allowed by a windows listbox item. 285 284 end 286 285 end; … … 427 426 end; 428 427 428 procedure TfrmRenewOrders.hdrOrdersSectionResize(HeaderControl: THeaderControl; Section: THeaderSection); 429 begin 430 inherited; 431 lstOrders.Repaint; //CQ6367 432 end; 433 434 429 435 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersSign.dfm
r459 r460 1 1 object frmSignOrders: TfrmSignOrders 2 Left = 3793 Top = 1 622 Left = 400 3 Top = 159 4 4 Width = 585 5 5 Height = 511 … … 43 43 object Label2: TStaticText 44 44 Left = 8 45 Top = 14 445 Top = 147 46 46 Width = 171 47 47 Height = 17 48 48 Caption = 'The following orders will be signed -' 49 TabOrder = 449 TabOrder = 3 50 50 TabStop = True 51 51 end … … 58 58 Caption = 'OK' 59 59 Default = True 60 TabOrder = 260 TabOrder = 1 61 61 OnClick = cmdOKClick 62 62 end … … 69 69 Cancel = True 70 70 Caption = 'Cancel' 71 TabOrder = 371 TabOrder = 2 72 72 OnClick = cmdCancelClick 73 73 end … … 192 192 ShowHint = True 193 193 Style = lbOwnerDrawVariable 194 TabOrder = 1194 TabOrder = 4 195 195 OnClick = clstOrdersClick 196 196 OnDrawItem = clstOrdersDrawItem … … 243 243 object Diagnosis1: TMenuItem 244 244 Caption = '&Diagnosis...' 245 Enabled = False246 245 ShortCut = 32836 247 246 OnClick = buOrdersDiagnosisClick -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOrdersSign.pas
r459 r460 114 114 uses 115 115 Hash, rCore, rOrders, uConst, fOrdersPrint, uCore, uOrders, uSignItems, fOrders, 116 fPCELex, rPCE, fODConsult, fBALocalDiagnoses ;116 fPCELex, rPCE, fODConsult, fBALocalDiagnoses, fClinicWardMeds, fFrame; 117 117 118 118 const … … 208 208 cProvDUZ: Int64; 209 209 OrderText: string; 210 PrintLoc: Integer; 210 211 // tempOrderID: string; 211 212 … … 251 252 Result := False; 252 253 DigSigErr := True; 253 DigStoreErr := False; 254 Obj := Nil; 254 PrintLoc := 0; 255 255 if SelectedList.Count = 0 then Exit; 256 256 if BILLING_AWARE then … … 418 418 if SignList.Count > 0 then 419 419 begin 420 421 //hds7591 Clinic/Ward movement. Patient Admission IMO 422 if not frmFrame.TimedOut then 423 begin 424 if IsValidIMOLoc(uCore.TempEncounterLoc,Patient.DFN) then 425 frmClinicWardMeds.ClinicOrWardLocation(SignList, Encounter.Location,uCore.Encounter.LocationName, PrintLoc) 426 else 427 if (IsValidIMOLoc(Encounter.Location,Patient.DFN)) and ((frmClinicWardMeds.rpcIsPatientOnWard(patient.DFN)) and (Patient.Inpatient = false)) then 428 frmClinicWardMeds.ClinicOrWardLocation(SignList, Encounter.Location,Encounter.LocationName, PrintLoc); 429 end; 430 uCore.TempEncounterLoc := 0; 431 uCore.TempEncounterLocName := ''; 432 //hds7591 Clinic/Ward movement Patient Admission IMO 433 420 434 SigItems.SaveSettings; // Save CoPay FIRST! 421 435 SendOrders(SignList, frmSignOrders.ESCode); 422 end; 423 with SignList do if Count > 0 then for i := 0 to Count - 1 do 436 437 end; 438 439 with SignList do if Count > 0 then for i := 0 to Count - 1 do 424 440 begin 425 441 if Pos('E', Piece(SignList[i], U, 2)) > 0 then … … 443 459 if theSts = 10 then SignList.Delete(cnt); //signed delayed order should not be printed. 444 460 end; 445 PrintOrdersOnSignRelease(SignList, NO_PROVIDER );461 PrintOrdersOnSignRelease(SignList, NO_PROVIDER, PrintLoc); 446 462 finally 447 463 SignList.Free; … … 505 521 506 522 procedure TfrmSignOrders.cmdOKClick(Sender: TObject); 507 {Begin BillingAware}508 var509 BABillingRecs: TStringList;510 {End BillingAware}511 523 const 512 524 TX_NO_CODE = 'An electronic signature code must be entered to sign orders.'; … … 519 531 begin 520 532 inherited; 521 {Begin BillingAware} 522 if BILLING_AWARE then 523 begin 524 BABillingRecs := TStringList.Create; 525 BABillingRecs.Clear; 526 end; 527 {End BillingAware} 528 533 529 534 if txtESCode.Visible and (Length(txtESCode.Text) = 0) then 530 535 begin … … 545 550 begin 546 551 if SigItems.OK2SaveSettings then 547 if Not BADxEntered then // if Dx have been entered and OK is pressed 552 553 if Not UBACore.BADxEntered then // if Dx have been entered and OK is pressed 548 554 begin // billing data will be saved. otherwise error message! 549 555 InfoBox(TX_NO_DX, 'Sign Orders', MB_OK); … … 781 787 begin 782 788 //Billing Awareness 'flyover' hint includes Dx code(s) when Dx code(s) have been assigned to an order 783 thisRec := TBADxRecord.Create;784 789 thisOrderID := TChangeItem(fOrdersSign.frmSignOrders.clstOrders.Items.Objects[Itm]).ID; 785 790 … … 909 914 {Begin BillingAware} 910 915 911 numSelected := 0;912 916 match := false; 913 917 allBlank := false; … … 1264 1268 j: integer; //CQ5054 1265 1269 begin 1266 //if BILLING_AWARE then 1267 //begin 1270 1268 1271 if FOSTFHintWndActive then 1269 1272 begin … … 1290 1293 //end CQ5054 1291 1294 end; 1292 1293 //end //if BILLING_AWARE1294 1295 end; 1295 1296 … … 1315 1316 end; 1316 1317 end; 1317 1318 x := 0;1319 y := 0;1320 1318 1321 1319 try … … 1398 1396 begin 1399 1397 try 1400 if BILLING_AWARE then 1401 begin 1402 if FOSTFhintWndActive then 1403 begin 1404 FOSTFhintWindow.ReleaseHandle; 1405 FOSTFHintWndActive := False; 1406 Application.ProcessMessages; 1407 end; 1408 end; 1398 if FOSTFhintWndActive then 1399 begin 1400 FOSTFhintWindow.ReleaseHandle; 1401 FOSTFHintWndActive := False; 1402 Application.ProcessMessages; 1403 end; 1409 1404 except 1410 1405 on E: Exception do … … 1518 1513 procedure TfrmSignOrders.FormatListForScreenReader; 1519 1514 var 1520 ListStateOn : boolean; 1515 ListStateOn : longbool; 1516 Success: longbool; 1521 1517 begin 1522 1518 //Determine if a screen reader is currently being used. 1523 S ystemParametersInfo(SPI_GETSCREENREADER, 0, @ListStateOn,0);1524 if ListStateOn then1525 SetItemTextToState 1519 Success := SystemParametersInfo(SPI_GETSCREENREADER, 0, @ListStateOn,0); 1520 if Success and ListStateOn then 1521 SetItemTextToState; 1526 1522 end; 1527 1523 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOtherSchedule.dfm
r459 r460 1 1 object frmOtherSchedule: TfrmOtherSchedule 2 Left = 3553 Top = 1542 Left = 544 3 Top = 262 4 4 AutoScroll = False 5 5 Caption = 'Order with schedule '#39'OTHER'#39 6 6 ClientHeight = 362 7 ClientWidth = 3 417 ClientWidth = 369 8 8 Color = clBtnFace 9 9 Constraints.MinHeight = 70 … … 23 23 Left = 0 24 24 Top = 82 25 Width = 3 4125 Width = 369 26 26 Height = 8 27 27 Cursor = crVSplit … … 33 33 Left = 0 34 34 Top = 0 35 Width = 3 4135 Width = 369 36 36 Height = 82 37 37 Align = alTop … … 50 50 Left = 52 51 51 Top = 4 52 Width = 28552 Width = 313 53 53 Height = 74 54 54 Align = alClient … … 64 64 Left = 0 65 65 Top = 90 66 Width = 3 4166 Width = 369 67 67 Height = 272 68 68 Align = alClient … … 72 72 Left = 1 73 73 Top = 1 74 Width = 1 4474 Width = 176 75 75 Height = 202 76 76 Align = alLeft … … 79 79 object cbo7: TCheckBox 80 80 Tag = 1 81 Left = 4581 Left = 86 82 82 Top = 21 83 83 Width = 60 … … 89 89 object cbo1: TCheckBox 90 90 Tag = 2 91 Left = 4491 Left = 85 92 92 Top = 48 93 93 Width = 60 … … 99 99 object cbo2: TCheckBox 100 100 Tag = 3 101 Left = 44101 Left = 85 102 102 Top = 75 103 103 Width = 60 … … 109 109 object cbo3: TCheckBox 110 110 Tag = 4 111 Left = 44111 Left = 85 112 112 Top = 102 113 113 Width = 60 … … 119 119 object cbo4: TCheckBox 120 120 Tag = 5 121 Left = 44121 Left = 85 122 122 Top = 129 123 123 Width = 60 … … 129 129 object cbo5: TCheckBox 130 130 Tag = 6 131 Left = 44131 Left = 85 132 132 Top = 156 133 133 Width = 60 … … 139 139 object cbo6: TCheckBox 140 140 Tag = 7 141 Left = 44141 Left = 85 142 142 Top = 183 143 143 Width = 60 … … 147 147 OnClick = cbo6Click 148 148 end 149 object Button1: TButton 150 Left = 8 151 Top = 64 152 Width = 60 153 Height = 19 154 Caption = 'Everyday' 155 TabOrder = 7 156 OnClick = Button1Click 157 end 149 158 end 150 159 object GroupBox2: TGroupBox 151 Left = 1 52160 Left = 180 152 161 Top = 1 153 162 Width = 188 … … 214 223 end 215 224 object btnRemove: TButton 216 Left = 11 4225 Left = 118 217 226 Top = 94 218 227 Width = 60 219 228 Height = 19 229 Hint = 'Remove the selected time from the Day-of-Week schedule.' 220 230 Caption = 'Remove' 231 ParentShowHint = False 232 ShowHint = True 221 233 TabOrder = 2 222 234 OnClick = btnRemoveClick 235 end 236 object btnAdd: TButton 237 Left = 118 238 Top = 64 239 Width = 60 240 Height = 19 241 Hint = 'Add the selected time to the Day-of-Week schedule' 242 Caption = 'Add' 243 ParentShowHint = False 244 ShowHint = True 245 TabOrder = 3 246 OnClick = btnAddClick 223 247 end 224 248 end … … 226 250 Left = 1 227 251 Top = 203 228 Width = 3 39252 Width = 367 229 253 Height = 68 230 254 Align = alBottom 231 255 TabOrder = 2 232 256 DesignSize = ( 233 3 39257 367 234 258 68) 235 259 object Label1: TLabel … … 241 265 end 242 266 object btn0k1: TButton 243 Left = 176267 Left = 204 244 268 Top = 43 245 269 Width = 75 … … 251 275 end 252 276 object btnCancel: TButton 253 Left = 2 57277 Left = 285 254 278 Top = 42 255 279 Width = 75 … … 264 288 Left = 64 265 289 Top = 8 266 Width = 2 68290 Width = 296 267 291 Height = 21 268 292 Anchors = [akLeft, akTop, akRight] 293 Color = clInfoBk 294 Enabled = False 295 Font.Charset = DEFAULT_CHARSET 296 Font.Color = clWindowText 297 Font.Height = -11 298 Font.Name = 'MS Sans Serif' 299 Font.Style = [fsBold] 300 ParentFont = False 301 ReadOnly = True 269 302 TabOrder = 0 270 303 OnChange = txtScheduleChange -
cprs/branches/foia-cprs/CPRS-Chart/Orders/fOtherSchedule.pas
r459 r460 35 35 memMessage: TMemo; 36 36 Splitter1: TSplitter; 37 btnAdd: TButton; 38 Button1: TButton; 37 39 procedure FormCreate(Sender: TObject); 38 40 procedure btnCancelClick(Sender: TObject); … … 55 57 procedure lstMinuteKeyDown(Sender: TObject; var Key: Word; 56 58 Shift: TShiftState); 59 procedure Button1Click(Sender: TObject); 57 60 private 58 61 FDaySchedule: array [1..7] of string; … … 66 69 procedure UpdateOnFreeTextInput; 67 70 function CheckDay(ADayStr: string): string; 71 68 72 public 69 73 end; … … 87 91 if frmOtherSchedule.ShowModal = mrOK then 88 92 begin 89 ASchedule := frmOtherSchedule.FOtherSchedule;93 ASchedule := UpperCase(frmOtherSchedule.FOtherSchedule); 90 94 Result := True; 91 95 end; … … 121 125 procedure TfrmOtherSchedule.btn0k1Click(Sender: TObject); 122 126 begin 127 if (cbo1.Checked = false) and (cbo2.Checked = false) and (cbo3.Checked = false) and (cbo4.Checked = false) and (cbo5.Checked = false) and 128 (cbo6.Checked = false) and (cbo7.Checked = false) then 129 begin 130 ShowMessage('A day of week must be selected!'); 131 Exit; 132 end; 123 133 if not IsValidSchStr(FOtherSchedule) then 124 134 begin … … 176 186 var 177 187 i : integer; 178 TimePart, DayPart : string;188 TimePart, DayPart,APRN,ASearchTxt: string; 179 189 begin 180 190 TimePart := ''; 181 191 DayPart := ''; 192 APRN := ''; 193 ASearchTxt := UpperCase(txtSchedule.Text); 194 if StrPos(PChar(ASearchTxt),PChar('PRN')) <> nil then APRN := ' PRN'; //hds8326 retain PRN free text if data time entered 182 195 for i := 0 to FTimeSchedule.Count - 1 do 183 196 begin … … 201 214 end 202 215 else FOtherSchedule := TimePart; 216 if Length(APRN) > 0 then FOtherSchedule := FOtherSchedule + APRN; //hds8326 retain PRN free text if data time entered 203 217 txtSchedule.Text := FOtherSchedule; 204 218 end; … … 368 382 var 369 383 idx: integer; 384 x: string; 370 385 begin 371 386 for idx := aDList.Count - 1 downto 0 do 372 387 begin 388 // cq hds8326 PRN entered manually split PRN from DOW to retain last DOW 389 x := UpperCase(aDList.Strings[idx]); // added to properly process DOW when followed by a space "PRN". 390 if Piece(x,' ',2) = 'PRN' then 391 aDLIst.Strings[idx] := Piece(x,' ',1); 392 // cq hds8326 373 393 if ((CheckDay(aDList[idx]) = 'SUN') or (CheckDay(aDList[idx]) = 'SU')) then 374 394 begin … … 419 439 begin 420 440 inherited; 421 i := 0;422 441 dayStr := ''; 423 442 timeStr := ''; … … 437 456 begin 438 457 Val(Piece(txtSchedule.Text,'-',1), i, Code); 458 if i = 0 then begin end; // just to make compiler not give hint 439 459 if Code <> 0 then dayStr := Trim(txtSchedule.Text) 440 460 else timeStr := Trim(txtSchedule.Text); … … 463 483 begin 464 484 inherited; 465 lstMinute.ItemIndex := -1;485 if lstMinute.ItemIndex = -1 then lstMinute.ItemIndex :=0; 466 486 end; 467 487 … … 509 529 FFromCheckBox := True; 510 530 if lstHour.ItemIndex < 0 then Exit; 511 btnAddClick(Self);531 //btnAddClick(Self); 512 532 FFromCheckBox := False; 513 533 end; … … 521 541 FFromCheckBox := True; 522 542 if lstHour.ItemIndex < 0 then Exit; 523 btnAddClick(Self);543 //btnAddClick(Self); 524 544 FFromCheckBox := False; 525 545 end; 526 546 end; 527 547 548 procedure TfrmOtherSchedule.Button1Click(Sender: TObject); 549 begin 550 inherited; 551 cbo1.Checked := true; 552 cbo2.Checked := true; 553 cbo3.Checked := true; 554 cbo4.Checked := true; 555 cbo5.Checked := true; 556 cbo6.Checked := true; 557 cbo7.Checked := true; 558 end; 559 528 560 end. 529 561 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/rODAllergy.pas
r459 r460 49 49 end; 50 50 51 TARTClinUser = record 52 IsClinUser: boolean; 53 ReasonFailed: string; 54 AccessChecked: boolean; 55 end; 56 51 57 function SearchForAllergies(StringToMatch: string): TStrings; 52 58 function SubsetofSymptoms(const StartFrom: string; Direction: Integer): TStrings; … … 64 70 function RequireOriginatorComments: boolean; 65 71 function EnableErrorComments: boolean; 72 function IsARTClinicalUser(var AMessage: string): boolean; 66 73 67 74 implementation … … 73 80 uARTPatchInstalled: TARTPatchInstalled; 74 81 uGMRASiteParams: TGMRASiteParams; 82 uARTClinUser: TARTClinUser; 75 83 76 84 function ODForAllergies: TStrings; … … 326 334 end; 327 335 336 (*function IsARTClinicalUser(var AMessage: string): boolean; 337 const 338 TX_NO_AUTH = 'You are not authorized to perform this action.' + CRLF + 339 'Either the ORES or ORELSE key is required.'; 340 begin 341 Result := (User.UserClass > UC_CLERK); // User has ORES or ORELSE key 342 if not Result then AMessage := TX_NO_AUTH else AMessage := ''; 343 end;*) 344 345 function IsARTClinicalUser(var AMessage: string): boolean; 346 const 347 TX_NO_AUTH = 'You are not authorized to perform this action.' + CRLF; 348 var 349 x: string; 350 begin 351 with uARTClinUser do 352 begin 353 if not AccessChecked then 354 begin 355 x := sCallV('ORWDAL32 CLINUSER',[nil]); 356 IsClinUser := (Piece(x, U, 1) = '1'); 357 if not IsClinUser then ReasonFailed := TX_NO_AUTH + Piece(x, U, 2) else ReasonFailed := ''; 358 AccessChecked := True; 359 end; 360 Result := IsClinUser; 361 AMessage := ReasonFailed ; 362 end; 363 end; 364 328 365 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/rODBase.pas
r459 r460 68 68 end; 69 69 70 TPFSSActive = record 71 PFSSActive: boolean; 72 PFSSChecked: boolean; 73 end; 74 70 75 { General Calls } 71 76 function AskAnotherOrder(ADialog: Integer): Boolean; … … 75 80 procedure LoadDialogDefinition(Dest: TList; const DialogName: string); 76 81 procedure LoadOrderPrompting(Dest: TList; ADialog: Integer); 77 procedure LoadResponses(Dest: TList; const OrderID: string); 82 //procedure LoadResponses(Dest: TList; const OrderID: string); 83 procedure LoadResponses(Dest: TList; const OrderID: string; var HasObjects: boolean); 78 84 procedure PutNewOrder(var AnOrder: TOrder; ConstructOrder: TConstructOrder; OrderSource: string); 79 85 //procedure PutNewOrderAuto(var AnOrder: TOrder; ADialog: Integer); // no longer used … … 88 94 procedure SetDefaultCoPayToNewOrder(AnOrderID, CoPayInfo:string); 89 95 procedure ValidateNumericStr(const x, Dom: string; var ErrMsg: string); 90 96 function IsPFSSActive: boolean; 91 97 92 98 { Quick Order Calls } … … 126 132 implementation 127 133 128 uses TRPCB, uOrders;134 uses TRPCB, uOrders, uODBase; 129 135 130 136 var … … 133 139 uLastQuantityMsg: string; 134 140 uMedRoutes: TStringList; 141 uPFSSActive: TPFSSActive; 135 142 136 143 { Common Internal Calls } … … 175 182 begin 176 183 IVDurVal := Copy(IVDuration,1,length(IVDuration)-1); 177 TResponse(ResponseList.Items[j]).IValue := 'for ' + IVDurVal + ' 184 TResponse(ResponseList.Items[j]).IValue := 'for ' + IVDurVal + 'hours'; 178 185 end 179 186 else if (Pos('D',upperCase(IVDuration))>0) then 180 187 begin 181 188 IVDurVal := Copy(IVDuration,1,length(IVDuration)-1); 182 TResponse(ResponseList.Items[j]).IValue := 'for ' + IVDurVal + ' 189 TResponse(ResponseList.Items[j]).IValue := 'for ' + IVDurVal + 'days'; 183 190 end 184 191 else if ((Pos('ML',upperCase(IVDuration))>0) or (Pos('CC',upperCase(IVDuration))>0)) then 185 192 begin 186 193 IVDurVal := Copy(IVDuration,1,length(IVDuration)-2); 187 TResponse(ResponseList.Items[j]).IValue := 'with total volume ' + IVDurVal + ' 194 TResponse(ResponseList.Items[j]).IValue := 'with total volume ' + IVDurVal + 'ml'; 188 195 end 189 196 else if (Pos('L',upperCase(IVDuration))>0) then 190 197 begin 191 198 IVDurVal := Copy(IVDuration,0,length(IVDuration)-1); 192 TResponse(ResponseList.Items[j]).IValue := 'with total volume ' + IVDurVal + ' 199 TResponse(ResponseList.Items[j]).IValue := 'with total volume ' + IVDurVal + 'L'; 193 200 end; 194 201 end; … … 371 378 end; 372 379 373 procedure ExtractToResponses(Dest: TList );380 procedure ExtractToResponses(Dest: TList; var HasObjects: boolean); 374 381 { load a list with TResponse records, assumes source strings are in RPCBrokerV.Results } 375 382 var 376 383 i: Integer; 377 384 AResponse: TResponse; 385 WPContainsObjects, TxContainsObjects: boolean; 386 TempBroker: TStrings; 378 387 begin 379 388 i := 0; 380 with RPCBrokerV do while i < Results.Count do 381 begin 382 if CharAt(Results[i], 1) = '~' then 389 HasObjects := FALSE; 390 TempBroker := TStringlist.Create; 391 TempBroker.Assign(RPCBrokerV.Results); 392 try 393 with TempBroker do while i < Count do 394 begin 395 if CharAt(Strings[i], 1) = '~' then 383 396 begin 384 397 AResponse := TResponse.Create; 385 398 with AResponse do 386 399 begin 387 PromptIEN := StrToIntDef(Piece(Copy( Results[i], 2, 255), U, 1), 0);388 Instance := StrToIntDef(Piece( Results[i], U, 2), 0);389 PromptID := Piece( Results[i], U, 3);400 PromptIEN := StrToIntDef(Piece(Copy(Strings[i], 2, 255), U, 1), 0); 401 Instance := StrToIntDef(Piece(Strings[i], U, 2), 0); 402 PromptID := Piece(Strings[i], U, 3); 390 403 Inc(i); 391 while (i < Results.Count) and (CharAt(Results[i], 1) <> '~') do404 while (i < Count) and (CharAt(Strings[i], 1) <> '~') do 392 405 begin 393 if CharAt( Results[i], 1) = 'i' then IValue := Copy(Results[i], 2, 255);394 if CharAt( Results[i], 1) = 'e' then EValue := Copy(Results[i], 2, 255);395 if CharAt( Results[i], 1) = 't' then406 if CharAt(Strings[i], 1) = 'i' then IValue := Copy(Strings[i], 2, 255); 407 if CharAt(Strings[i], 1) = 'e' then EValue := Copy(Strings[i], 2, 255); 408 if CharAt(Strings[i], 1) = 't' then 396 409 begin 397 410 if Length(EValue) > 0 then EValue := EValue + CRLF; 398 EValue := EValue + Copy( Results[i], 2, 255);411 EValue := EValue + Copy(Strings[i], 2, 255); 399 412 IValue := TX_WPTYPE; // signals that this is a word processing field 400 413 end; 401 414 Inc(i); 402 415 end; {while i} 416 if IValue <> TX_WPTYPE then ExpandOrderObjects(IValue, TxContainsObjects); 417 ExpandOrderObjects(EValue, WPContainsObjects); 418 HasObjects := HasObjects or WPContainsObjects or TxContainsObjects; 403 419 Dest.Add(AResponse); 404 420 end; {with AResponse} 405 421 end; {if CharAt} 406 422 end; {With RPCBrokerV} 407 end; 408 409 procedure LoadResponses(Dest: TList; const OrderID: string); 423 finally 424 TempBroker.Free; 425 end; 426 end; 427 428 procedure LoadResponses(Dest: TList; const OrderID: string; var HasObjects: boolean); 410 429 begin 411 430 CallV('ORWDX LOADRSP', [OrderID]); 412 ExtractToResponses(Dest );431 ExtractToResponses(Dest, HasObjects); 413 432 end; 414 433 … … 427 446 Param[1].Value := IntToStr(Encounter.Provider); 428 447 Param[2].PType := literal; 448 (*if loc > 0 then Param[2].Value := IntToStr(Loc) 449 else Param[2].Value := IntToStr(Encounter.Location);*) 429 450 Param[2].Value := IntToStr(Encounter.Location); 430 451 Param[3].PType := literal; … … 659 680 end; 660 681 682 function IsPFSSActive: boolean; 683 begin 684 with uPFSSActive do 685 if not PFSSChecked then 686 begin 687 PFSSActive := (sCallV('ORWPFSS IS PFSS ACTIVE?', [nil]) = '1'); 688 PFSSChecked := True; 689 end; 690 Result := uPFSSActive.PFSSActive 691 end; 661 692 662 693 { Medication Calls } -
cprs/branches/foia-cprs/CPRS-Chart/Orders/rODDiet.pas
r459 r460 31 31 Alarms: string; 32 32 OPMaxDays: integer; 33 OPDefaultDiet: integer; 33 34 end; 34 35 … … 39 40 procedure AppendTFProducts(Dest: TStrings); 40 41 function SubSetOfDiets(const StartFrom: string; Direction: Integer): TStrings; 41 function SubSetOfOPDiets (const StartFrom: string; Direction: Integer): TStrings;42 function SubSetOfOPDiets: TStrings; 42 43 procedure OrderLateTray(NewOrder: TOrder; Meal: Char; const MealTime: string; Bagged: Boolean); 43 44 function IsolationID: string; … … 48 49 function OutpatientPatchInstalled: boolean; 49 50 function UserHasFHAUTHKey: boolean; 51 procedure GetCurrentRecurringOPMeals(Dest: TStrings; MealType: string = ''); 52 function OutpatientLocationConfigured(ALocation: string): boolean; 50 53 51 54 … … 96 99 else 97 100 OPMaxDays := 30; 101 if Results.Count > 4 then 102 OPDefaultDiet := StrToIntDef(Results[4], 0) 98 103 end; 99 104 end; … … 131 136 end; 132 137 133 function SubSetOfOPDiets (const StartFrom: string; Direction: Integer): TStrings;134 begin 135 CallV('ORWDFH OPDIETS', [ StartFrom, Direction]);138 function SubSetOfOPDiets: TStrings; 139 begin 140 CallV('ORWDFH OPDIETS', [nil]); 136 141 Result := RPCBrokerV.Results; 137 142 end; … … 176 181 if not PatchChecked then 177 182 begin 178 PatchInstalled := False;179 { TODO -oRich V. -cOutpatient Meals : Uncomment when patch available - need number}180 //PatchInstalled := ServerHasPatch('FH_TEST*1.0*1');183 //PatchInstalled := True; 184 { TODO -oRich V. -cOutpatient Meals : Uncomment when available } 185 PatchInstalled := (PackageVersion('FH') >= '5.5'); 181 186 PatchChecked := True; 182 187 end; … … 195 200 end; 196 201 202 procedure GetCurrentRecurringOPMeals(Dest: TStrings; MealType: string = ''); 203 begin 204 CallV('ORWDFH CURRENT MEALS', [Patient.DFN, MealType]); 205 Dest.Assign(RPCBrokerV.Results); 206 MixedCaseList(Dest); 207 end; 208 209 function OutpatientLocationConfigured(ALocation: string): boolean; 210 begin 211 Result := (sCallV('ORWDFH NFSLOC READY', [ALocation]) = '1'); 212 end; 213 197 214 end. -
cprs/branches/foia-cprs/CPRS-Chart/Orders/rODLab.pas
r459 r460 22 22 procedure GetLabTimesForDate(Dest: TStrings; LabDate: TFMDateTime; Location: integer); 23 23 function GetLastCollectionTime: string; 24 procedure GetPatientBBInfo(Dest: TStrings; PatientID: string; Loc: integer); 25 procedure GetPatientBloodResults(Dest: TStrings; PatientID: string; ATests: TStringList); 26 procedure GetPatientBloodResultsRaw(Dest: TStrings; PatientID: string; ATests: TStringList); 27 function StatAllowed(PatientID: string): boolean; 28 procedure GetBloodComponents(Dest: TStrings); 24 29 25 30 implementation … … 27 32 uses rODBase; 28 33 (* fODBase, rODBase, fODLab;*) 34 35 procedure GetBloodComponents(Dest: TStrings); 36 begin 37 tCallV(Dest, 'ORWDXVB COMPORD', []); 38 end; 39 40 function StatAllowed(PatientID: string): boolean; 41 begin 42 Result := (StrToInt(sCallV('ORWDXVB STATALOW',[PatientID])) > 0); 43 end; 44 45 procedure GetPatientBloodResultsRaw(Dest: TStrings; PatientID: string; ATests: TStringList); 46 begin 47 tCallV(Dest, 'ORWDXVB RAW', [PatientID, ATests]); 48 end; 49 50 procedure GetPatientBloodResults(Dest: TStrings; PatientID: string; ATests: TStringList); 51 begin 52 tCallV(Dest, 'ORWDXVB RESULTS', [PatientID, ATests]); 53 end; 54 55 procedure GetPatientBBInfo(Dest: TStrings; PatientID: string; Loc: integer); 56 begin 57 tCallV(Dest, 'ORWDXVB GETALL', [PatientID, Loc]); 58 end; 29 59 30 60 function ODForLab(Location, Division: integer): TStrings; -
cprs/branches/foia-cprs/CPRS-Chart/Orders/rOrders.pas
r459 r460 38 38 ParentID : string; 39 39 LinkObject: TObject; 40 EnteredInError: Integer; //AGP Changes 26.12 PSI-04-053 40 41 procedure Assign(Source: TOrder); 41 42 procedure Clear; … … 604 605 DGroupSeq := SeqOfDGroup(DGroup); 605 606 DGroupName := TopNameOfDGroup(DGroup); 607 //AGP Changes 26.15 PSI-04-063 608 if (pos('Entered in error',Text)>0) then AnOrder.EnteredInError := 1 609 else AnOrder.EnteredInError := 0; 606 610 //if DGroupName = 'Non-VA Meds' then Text := 'Non-VA ' + Text; 607 611 end; … … 680 684 with RPCBrokerV do for i := 1 to Results.Count - 1 do // if orders found (skip 0 element) 681 685 begin 682 if (Piece(RPCBrokerV.Results[i], U, 1) = '0') or (Piece(RPCBrokerV.Results[i], U, 1) = '') then Continue; 683 if (DelimCount(Results[i],U) = 2) then Continue; 686 if (Piece(RPCBrokerV.Results[i], U, 1) = '0') or (Piece(RPCBrokerV.Results[i], U, 1) = '') then Continue; 687 if (DelimCount(Results[i],U) = 2) then Continue; 684 688 AnOrder := TOrder.Create; 685 689 with AnOrder do … … 1126 1130 var 1127 1131 DelayEvent, x, TheOrder: string; 1128 Idx, PickupIdx, ForIMOResponses: integer;1132 Idx, tmpOrderGroup, PickupIdx, ForIMOResponses: integer; 1129 1133 IfUDGrp: Boolean; 1130 1134 IfUDGrpForQO: Boolean; 1135 temp: string; 1131 1136 begin 1132 1137 ForIMOResponses := 0; 1138 tmpOrderGroup := 0; 1139 temp := ''; 1133 1140 if ForIMO then ForIMOResponses := 1; 1134 1141 PickupIdx := 0; … … 1139 1146 begin 1140 1147 Delete(TheOrder,1,1); 1141 if CheckOrderGroup(TheOrder)=1 then IfUDGrp := True else IfUDGrp := False; 1148 tmpOrderGroup := CheckOrderGroup(TheOrder); 1149 if tmpOrderGroup = 1 then IfUDGrp := True else IfUDGrp := False; 1142 1150 end; 1143 1151 if (not IfUDGrp) and (AnEvent.EventType in ['A','T']) then 1144 1152 IfUDGrp := True; 1145 1153 //FLDS=DFN^LOC^ORNP^INPT^SEX^AGE^EVENT^SC%^^^Key Variables 1154 if (Patient.Inpatient = true) and (tmpOrderGroup = 2) then temp := '0'; 1155 if temp <> '0' then temp := BoolChars[Patient.Inpatient]; 1146 1156 with AnEvent do 1147 1157 begin … … 1451 1461 1452 1462 with RPCBrokerV do 1453 begin 1454 ClearParameters := True; 1455 RemoteProcedure := 'ORWDXR RENEW'; 1456 Param[0].PType := literal; 1457 Param[0].Value := AnOrder.ID; 1458 Param[1].PType := literal; 1459 Param[1].Value := Patient.DFN; 1460 Param[2].PType := literal; 1461 Param[2].Value := IntToStr(Encounter.Provider); 1462 Param[3].PType := literal; 1463 Param[3].Value := IntToStr(Encounter.Location); 1464 Param[4].PType := list; 1465 1466 for i := 0 to tmplst.Count - 1 do 1467 Param[4].Mult[IntToStr(i+1)] := tmplst[i]; 1468 1469 Param[4].Mult['"ORCHECK"'] := IntToStr(OCList.Count); 1470 1471 for i := 0 to OCList.Count - 1 do 1472 begin 1473 // put quotes around everything to prevent broker from choking 1474 y := '"ORCHECK","' + Piece(OCList[i], U, 1) + '","' + Piece(OCList[i], U, 3) + '","' + IntToStr(i+1) + '"'; 1475 Param[4].Mult[y] := Pieces(OCList[i], U, 2, 4); 1476 end; 1477 Param[5].PType := literal; 1478 Param[5].Value := IntToStr(IsComplex); 1479 Param[6].PType := literal; 1480 Param[6].Value := FloatToStr(AnIMOOrderAppt); 1481 1463 begin 1464 ClearParameters := True; 1465 RemoteProcedure := 'ORWDXR RENEW'; 1466 Param[0].PType := literal; 1467 Param[0].Value := AnOrder.ID; 1468 Param[1].PType := literal; 1469 Param[1].Value := Patient.DFN; 1470 Param[2].PType := literal; 1471 Param[2].Value := IntToStr(Encounter.Provider); 1472 Param[3].PType := literal; 1473 Param[3].Value := IntToStr(Encounter.Location); 1474 Param[4].PType := list; 1475 for i := 0 to tmplst.Count - 1 do 1476 Param[4].Mult[IntToStr(i+1)] := tmplst[i]; 1477 Param[4].Mult['"ORCHECK"'] := IntToStr(OCList.Count); 1478 for i := 0 to OCList.Count - 1 do 1479 begin 1480 // put quotes around everything to prevent broker from choking 1481 y := '"ORCHECK","' + Piece(OCList[i], U, 1) + '","' + Piece(OCList[i], U, 3) + 1482 '","' + IntToStr(i+1) + '"'; 1483 Param[4].Mult[y] := Pieces(OCList[i], U, 2, 4); 1484 end; 1485 Param[5].PType := literal; 1486 Param[5].Value := IntToStr(IsComplex); 1487 Param[6].PType := literal; 1488 Param[6].Value := FloatToStr(AnIMOOrderAppt); 1482 1489 CallBroker; 1483 1490 SetOrderFromResults(AnOrder); … … 1510 1517 CallV('ORWDXA DCREASON', [nil]); 1511 1518 ExtractItems(Dest, RPCBrokerV.Results, 'DCReason'); 1512 DefaultIEN := StrToIntDef(Piece(ExtractDefault(RPCBrokerV.Results, 'DCReason'), U, 1), 0); 1519 //AGP Change 26.15 for PSI-04-63 1520 //DefaultIEN := StrToIntDef(Piece(ExtractDefault(RPCBrokerV.Results, 'DCReason'), U, 1), 0); 1513 1521 end; 1514 1522 … … 1528 1536 SetOrderFromResults(AnOrder); 1529 1537 AnOrder.ParentID := AParentID; 1530 1531 1538 end; 1532 1539 -
cprs/branches/foia-cprs/CPRS-Chart/Orders/uODBase.pas
r459 r460 22 22 procedure PopKeyVars(NumLevels: Integer = 1); 23 23 procedure PushKeyVars(const NewVals: string); 24 procedure ExpandOrderObjects(var Txt: string; var ContainsObjects: boolean; msg: string = ''); 24 25 25 26 implementation 27 28 uses 29 dShared, Windows, rTemplates; 26 30 27 31 var … … 118 122 end; 119 123 124 procedure ExpandOrderObjects(var Txt: string; var ContainsObjects: boolean; msg: string = ''); 125 var 126 ObjList: TStringList; 127 Err: TStringList; 128 i, j, k, oLen: integer; 129 obj, ObjTxt: string; 130 const 131 CRDelim = #13; 132 TC_BOILER_ERR = 'Order Boilerplate Object Error'; 133 TX_BOILER_ERR = 'Contact IRM and inform them about this error.' + CRLF + 134 'Make sure you give them the name of the quick' + CRLF + 135 'order that you are processing.' ; 136 begin 137 ObjList := TStringList.Create; 138 try 139 Err := nil; 140 if(not dmodShared.BoilerplateOK(Txt, CRDelim, ObjList, Err)) and (assigned(Err)) then 141 begin 142 try 143 Err.Add(CRLF + TX_BOILER_ERR); 144 InfoBox(Err.Text, TC_BOILER_ERR, MB_OK + MB_ICONERROR); 145 finally 146 Err.Free; 147 end; 148 end; 149 if(ObjList.Count > 0) then 150 begin 151 ContainsObjects := True; 152 GetTemplateText(ObjList); 153 i := 0; 154 while (i < ObjList.Count) do 155 begin 156 if(pos(ObjMarker, ObjList[i]) = 1) then 157 begin 158 obj := copy(ObjList[i], ObjMarkerLen+1, MaxInt); 159 if(obj = '') then break; 160 j := i + 1; 161 while (j < ObjList.Count) and (pos(ObjMarker, ObjList[j]) = 0) do 162 inc(j); 163 if((j - i) > 2) then 164 begin 165 ObjTxt := ''; 166 for k := i+1 to j-1 do 167 ObjTxt := ObjTxt + #13 + ObjList[k]; 168 end 169 else 170 ObjTxt := ObjList[i+1]; 171 i := j; 172 obj := '|' + obj + '|'; 173 oLen := length(obj); 174 repeat 175 j := pos(obj, Txt); 176 if(j > 0) then 177 begin 178 delete(Txt, j, OLen); 179 insert(ObjTxt, Txt, j); 180 end; 181 until(j = 0); 182 end 183 else 184 inc(i); 185 end 186 end; 187 finally 188 ObjList.Free; 189 end; 190 end; 191 120 192 initialization 121 193 uOrderEventType := #0; -
cprs/branches/foia-cprs/CPRS-Chart/Orders/uOrders.pas
r459 r460 58 58 procedure QuickOrderListEdit; 59 59 function RefNumFor(AnOwner: TComponent): Integer; 60 procedure PrintOrdersOnSignRelease(OrderList: TStringList; Nature: Char );60 procedure PrintOrdersOnSignRelease(OrderList: TStringList; Nature: Char; PrintLoc : Integer =0); 61 61 procedure SetFontSize( FontSize: integer); 62 62 procedure NextMove(var NMRec: TNextMoveRec; LastIndex: Integer; NewIndex: Integer); … … 74 74 MedsDisp : Integer; 75 75 ClinDisp : Integer; //IMO 76 NurDisp : Integer; 76 77 IVDisp : Integer; 77 78 CsltDisp : Integer; 78 79 ProcDisp : Integer; 80 ImgDisp : Integer; 79 81 NonVADisp: Integer; 80 82 MedsInDlgIen : Integer; … … 94 96 95 97 uses fODDiet, fODMisc, fODGen, fODMedIn, fODMedOut, fODText, fODConsult, fODProc, fODRad, 96 fODLab, f ODMeds, fODMedIV, fODVitals, fODAuto, fODAllgy,fOMNavA, rCore, uCore, fFrame,98 fODLab, fodBBank, fODMeds, fODMedIV, fODVitals, fODAuto, (*fODAllgy,*) fOMNavA, rCore, uCore, fFrame, 97 99 fEncnt, fEffectDate, fOMVerify, fOrderSaveQuick, fOMSet, rMisc, uODBase, rODMeds, 98 100 fLkUpLocation, fOrdersPrint, fOMAction, fARTAllgy, fOMHTML, fOrders, rODBase, 99 101 fODChild, fMeds, rMeds, rPCE, frptBox, fODMedNVA, fODChangeUnreleasedRenew, rODAllergy, 100 UBAGlobals ;102 UBAGlobals, fClinicWardMeds, uTemplateFields; 101 103 102 104 var … … 142 144 TX_NO_QUICK = 'This ordering dialog does not support quick orders.'; 143 145 TC_NO_QUICK = 'Save/Edit Quick Orders'; 146 TX_CANT_SAVE_QO = 'This order contains TIU objects, which may result in patient-specific' + CRLF + 147 'information being included in the order. For this reason, it may not' + CRLF + 148 'be saved as a personal quick order for later reuse.'; 144 149 TX_NO_COPY = CRLF + CRLF + '- cannot be copied.' + CRLF + CRLF + 'Reason: '; 145 150 TC_NO_COPY = 'Unable to Copy Order'; … … 152 157 STEP_FORWARD = 1; 153 158 STEP_BACK = -1; 154 TX_NOINPT = ' You can not place inpatient medication order on a clinic location for selected inpatient.';159 TX_NOINPT = ': You cannot place inpatient medication orders from a clinic location for selected patient.'; 155 160 TX_IMO_WARNING1 = 'You are '; 156 TX_IMO_WARNING2 = ' Clinic Medication orders. The New orders will be saved as Clinic Medication orders and willNOT be available in BCMA';161 TX_IMO_WARNING2 = ' Clinic Orders. The New orders will be saved as Clinic Orders and MAY NOT be available in BCMA'; 157 162 158 163 … … 200 205 OD_DIET: DialogClass := TfrmODDiet; 201 206 OD_LAB: DialogClass := TfrmODLab; 207 OD_BB: DialogClass := TfrmODBBank; 202 208 OD_CONSULT: DialogClass := TfrmODCslt; 203 209 OD_PROCEDURE: DialogClass := TfrmODProc; 204 210 OD_TEXTONLY: DialogClass := TfrmODText; 205 211 OD_VITALS: DialogClass := TfrmODVitals; 206 OD_ALLERGY: DialogClass := TfrmODAllergy;212 //OD_ALLERGY: DialogClass := TfrmODAllergy; 207 213 OD_AUTOACK: DialogClass := TfrmODAuto; 208 214 else Exit; … … 391 397 else 392 398 begin 393 ResolvedDialog.DisplayGroup := InptDisp; 394 ResolvedDialog.DialogIEN := MedsInDlgIen; 395 ResolvedDialog.FormID := MedsInDlgFormId; 399 //AGP changes to handle IMO INV Dialog opening the unit dose dialog. 400 if (ResolvedDialog.DisplayGroup = ClinDisp) and (Resolveddialog.DialogIEN = MedsIVDlgIEN) and (ResolvedDialog.FormID = MedsIVDlgFormId) then 401 begin 402 ResolvedDialog.DisplayGroup := IVDisp; 403 ResolvedDialog.DialogIEN := MedsIVDlgIen; 404 ResolvedDialog.FormID := MedsIVDlgFormId; 405 end 406 else 407 begin 408 ResolvedDialog.DisplayGroup := InptDisp; 409 ResolvedDialog.DialogIEN := MedsInDlgIen; 410 ResolvedDialog.FormID := MedsInDlgFormId; 411 end; 396 412 if Length(ResolvedDialog.ShowText)>0 then 397 413 ResolvedDialog.QuickLevel := 2; … … 452 468 IVDisp := DisplayGroupByName('IV RX'); 453 469 ClinDisp := DisplayGroupByName('C RX'); 470 NurDisp := DisplayGroupByName('NURS'); 454 471 CsltDisp := DisplayGroupByName('CSLT'); 455 472 ProcDisp := DisplayGroupByName('PROC'); 473 ImgDisp := DisplayGroupByName('XRAY'); 456 474 NonVADisp := DisplayGroupByName('NV RX'); 457 475 MedsInDlgIen := DlgIENForName('PSJ OR PAT OE'); … … 817 835 ResolvedDialog.DisplayGroup := ClinDisp; 818 836 ResetDialogProperties(AnID, AnEvent, ResolvedDialog); 837 {* AGP CHANGE 26.20 Remove restriction to allowed for ordering of inpatient medication for an inpatient from an outpatient location 819 838 //jd imo change 820 839 if (ResolvedDialog.DisplayGroup = InptDisp) and (Patient.Inpatient) and (AnEvent.EventIFN < 1) then … … 826 845 end; 827 846 end; 828 //jd imo change end 847 //jd imo change end *} 829 848 if (ResolvedDialog.DisplayGroup = InptDisp) or 830 849 (ResolvedDialog.DisplayGroup = OutptDisp) or … … 865 884 if NSSchedule then ResolvedDialog.QuickLevel := 0; 866 885 end; 886 with ResolvedDialog do if (QuickLevel = QL_VERIFY) and (HasTemplateField(ShowText)) then QuickLevel := QL_DIALOG; 867 887 with ResolvedDialog do 868 888 begin … … 1003 1023 begin 1004 1024 ShowModal; 1005 //Application.ProcessMessages;1006 1025 Result := uOrderDialog.AcceptOK; 1007 1026 uOrderDialog.Destroy; … … 1010 1029 begin 1011 1030 Show; 1012 //Application.ProcessMessages;1013 1031 Result := True; 1014 1032 end; … … 1050 1068 OrdList: TList; 1051 1069 theOrder: TOrder; 1052 begin 1070 // i: integer; 1071 begin 1072 // if Assigned(OrdList) then 1073 // begin 1074 // for i := 0 to pred(OrdList.Count) do 1075 // TObject(OrdList[i]).Free; 1076 // UBAGlobals.tempDxList := nil; 1077 // end; 1053 1078 OrdList := TList.Create; 1054 1079 theOrder := TOrder.Create; … … 1057 1082 RetrieveOrderFields(OrdList, 0, 0); 1058 1083 Result := TOrder(OrdList.Items[0]).Text; 1084 if Assigned(OrdList) then OrdList.Free; //CQ:7554 1059 1085 end; 1060 1086 … … 1349 1375 param2 := FieldsForEditRenewOrder.StopTime; 1350 1376 end; 1351 1377 UBAGlobals.SourceOrderID := AList[i]; //hds6265 added 1352 1378 ExecuteChangeRenewedOrder(AList[i], param1, param2, txtOrder); 1353 1379 AnOrder := TOrder.Create; … … 1393 1419 var 1394 1420 i: Integer; 1395 xx ,xy: string;1421 xx: string; 1396 1422 IsIMOOD,ForIVAlso: boolean; 1397 1423 begin … … 1602 1628 Exit; 1603 1629 end; 1630 if Responses.OrderContainsObjects then 1631 begin 1632 InfoBox(TX_CANT_SAVE_QO, TC_NO_QUICK, MB_ICONERROR or MB_OK); 1633 Exit; 1634 end; 1604 1635 SaveAsQuickOrder(Responses); 1605 1636 end; … … 1639 1670 1640 1671 1641 procedure PrintOrdersOnSignRelease(OrderList: TStringList; Nature: Char );1672 procedure PrintOrdersOnSignRelease(OrderList: TStringList; Nature: Char; PrintLoc : Integer =0); 1642 1673 const 1643 1674 TX_NEW_LOC1 = 'The patient''s location has changed to '; … … 1652 1683 PrintIt: Boolean; 1653 1684 begin 1654 CurrentLocationForPatient(Patient.DFN, ALocation, AName, ASvc); 1655 if (ALocation > 0) and (ALocation <> Encounter.Location) then 1656 begin 1657 Encounter.Location := ALocation; 1658 if InfoBox(TX_NEW_LOC1 + AName + TX_NEW_LOC2, TC_NEW_LOC, MB_YESNO) = IDYES 1659 then Encounter.Location := ALocation; 1660 end; 1685 if PrintLoc = 0 then 1686 begin 1687 CurrentLocationForPatient(Patient.DFN, ALocation, AName, ASvc); 1688 if (ALocation > 0) and (ALocation <> Encounter.Location) then 1689 begin 1690 if InfoBox(TX_NEW_LOC1 + AName + TX_NEW_LOC2, TC_NEW_LOC, MB_YESNO) = IDYES 1691 then Encounter.Location := ALocation; 1692 end; 1693 end 1694 else 1695 Encounter.Location := PrintLoc; 1661 1696 if Encounter.Location = 0 1662 1697 then Encounter.Location := CommonLocationForOrders(OrderList); … … 1747 1782 if CharAt(AnID,1) = 'X' then actName := 'change'; 1748 1783 if CharAt(AnID,1) = 'C' then actName := 'copy'; 1749 x := 'You can 1784 x := 'You cannot ' + actName + ' the clinical medication order.'; 1750 1785 x := RetrieveOrderText(Copy(AnID, 2, Length(AnID))) + #13#13#10 + x; 1751 1786 UnlockOrder(Copy(AnID, 2, Length(AnID))); … … 1774 1809 if (not AllowActionOnIMO(AnEventType)) then 1775 1810 begin 1776 x := 'You can not renew thethe clinical medication order.';1811 x := 'You cannot renew the clinical medication order.'; 1777 1812 x := RetrieveOrderText(Piece(AnID,'^',2)) + #13#13#10 + x; 1778 1813 UnlockOrder(Piece(AnID,'^',2)); … … 1809 1844 OriginalMedsInHeight := 0; 1810 1845 OriginalNonVAMedsHeight := 0; 1846 1811 1847 end. -
cprs/branches/foia-cprs/CPRS-Chart/Templates/fTemplateDialog.dfm
r459 r460 25 25 Top = 0 26 26 Width = 632 27 Height = 3 8327 Height = 375 28 28 VertScrollBar.Tracking = True 29 29 Align = alClient … … 36 36 TabOrder = 0 37 37 end 38 object pnlBottom: T Panel38 object pnlBottom: TScrollBox 39 39 Left = 0 40 Top = 3 8340 Top = 375 41 41 Width = 632 42 Height = 3 042 Height = 38 43 43 Align = alBottom 44 44 TabOrder = 1 45 DesignSize = (46 63247 30)48 45 object lblFootnote: TStaticText 49 46 Left = 196 50 Top = 947 Top = 7 51 48 Width = 134 52 49 Height = 17 … … 57 54 object btnCancel: TButton 58 55 Left = 551 59 Top = 556 Top = 3 60 57 Width = 75 61 58 Height = 21 62 Anchors = [akTop, akRight]63 59 Cancel = True 64 60 Caption = 'Cancel' … … 68 64 object btnOK: TButton 69 65 Left = 472 70 Top = 566 Top = 3 71 67 Width = 75 72 68 Height = 21 73 Anchors = [akTop, akRight]74 69 Caption = 'OK' 75 70 ModalResult = 1 … … 79 74 object btnAll: TButton 80 75 Left = 6 81 Top = 576 Top = 3 82 77 Width = 75 83 78 Height = 21 … … 88 83 object btnNone: TButton 89 84 Left = 86 90 Top = 585 Top = 3 91 86 Width = 75 92 87 Height = 21 … … 97 92 object btnPreview: TButton 98 93 Left = 360 99 Top = 594 Top = 3 100 95 Width = 75 101 96 Height = 21 -
cprs/branches/foia-cprs/CPRS-Chart/Templates/fTemplateDialog.pas
r459 r460 10 10 TfrmTemplateDialog = class(TForm) 11 11 sbMain: TScrollBox; 12 pnlBottom: T Panel;12 pnlBottom: TScrollBox; 13 13 btnCancel: TButton; 14 14 btnOK: TButton; … … 42 42 FCheck4Required: boolean; 43 43 FSilent: boolean; 44 procedure SizeFormToCancelBtn(); 44 45 procedure ChkAll(Chk: boolean); 45 46 procedure BuildCB(CBidx: integer; var Y: integer; FirstTime: boolean); … … 71 72 implementation 72 73 73 uses dShared, uConst, uTemplateFields, fRptBox, uInit ;74 uses dShared, uConst, uTemplateFields, fRptBox, uInit, rMisc; 74 75 75 76 {$R *.DFM} … … 391 392 procedure TfrmTemplateDialog.BuildCB(CBidx: integer; var Y: integer; FirstTime: boolean); 392 393 var 393 bGap, Indent, i, idx, idx2,p1, p2: integer;394 EID, ID, PID, DlgProps, tmp, txt, tmpID , ObjID: string;394 bGap, Indent, i, idx, p1, p2: integer; 395 EID, ID, PID, DlgProps, tmp, txt, tmpID: string; 395 396 pctrl, ctrl: TControl; 396 397 pnl: TPanel; … … 637 638 ResizeAnchoredFormToFont(Self); 638 639 FMaxPnlWidth := FontWidthPixel(sbMain.Font.Handle) * MAX_ENTRY_WIDTH; //AGP change Template Dialog to wrap at 80 instead of 74 640 SetFormPosition(Self); 641 SizeFormToCancelBtn(); 639 642 end; 640 643 … … 738 741 begin 739 742 Application.OnShowHint := FOldHintEvent; 743 SaveUserBounds(Self); 744 end; 745 746 procedure TfrmTemplateDialog.SizeFormToCancelBtn; 747 const 748 RIGHT_MARGIN = 12; 749 var 750 minWidth : integer; 751 begin 752 minWidth := btnCancel.Left + btnCancel.Width + RIGHT_MARGIN; 753 if minWidth > Self.Width then 754 Self.Width := minWidth; 740 755 end; 741 756 -
cprs/branches/foia-cprs/CPRS-Chart/Templates/uTemplateFields.pas
r459 r460 918 918 edt.Text := s; 919 919 end; 920 edt.SelStart := edt.GetTextLen; 920 edt.SelStart := edt.GetTextLen; 921 921 end; 922 922 -
cprs/branches/foia-cprs/CPRS-Chart/VERGENCECONTEXTORLib_TLB.pas
r459 r460 12 12 // ************************************************************************ // 13 13 14 // PASTLWTR : $Revision: 1.130.1.0.1.0.1.6 $ 15 // File generated on 2/20/2003 12:37:40 PM from Type Library described below. 16 17 // ************************************************************************ // 18 // Type Lib: C:\Program Files\Sentillion\Sdk\WindowsComponents\VergenceContextor.dll (1) 19 // LIBID: {30AFBABD-5FD3-11D3-8727-0060B0B5E137} 20 // LCID: 0 14 // PASTLWTR : $Revision: 1.88.1.0.1.0 $ 15 // File generated on 2/9/2004 9:12:53 AM from Type Library described below. 16 17 // *************************************************************************// 18 // NOTE: 19 // Items guarded by $IFDEF_LIVE_SERVER_AT_DESIGN_TIME are used by properties 20 // which return objects that may need to be explicitly created via a function 21 // call prior to any access via the property. These items have been disabled 22 // in order to prevent accidental use from within the object inspector. You 23 // may enable them by defining LIVE_SERVER_AT_DESIGN_TIME or by selectively 24 // removing them from the $IFDEF blocks. However, such items must still be 25 // programmatically created via a method of the appropriate CoClass before 26 // they can be used. 27 // ************************************************************************ // 28 // Type Lib: D:\Development\BDK32_p40\Source\VergenceContextor.dll (1) 29 // IID\LCID: {30AFBABD-5FD3-11D3-8727-0060B0B5E137}\0 21 30 // Helpfile: 22 31 // DepndLst: … … 25 34 // Errors: 26 35 // Hint: Member 'Set' of 'IResponseDialogAccessor' changed to 'Set_' 36 // Error creating palette bitmap of (TContextor) : Invalid GUID format 37 // Error creating palette bitmap of (TContextItemCollection) : Invalid GUID format 38 // Error creating palette bitmap of (TContextItem) : Invalid GUID format 39 // Error creating palette bitmap of (TResponseDialog) : Invalid GUID format 40 // Error creating palette bitmap of (TContextorParticipant) : Invalid GUID format 27 41 // ************************************************************************ // 28 42 {$TYPEDADDRESS OFF} // Unit must be compiled without type-checked pointers. 29 {$WARN SYMBOL_PLATFORM OFF}30 {$WRITEABLECONST ON}31 {$VARPROPSETTER ON}32 43 interface 33 44 34 uses Windows, ActiveX, Classes, Graphics, OleCtrls, OleServer, StdVCL, Variants; 35 36 45 uses Windows, ActiveX, Classes, Graphics, OleServer, OleCtrls, StdVCL; 37 46 38 47 // *********************************************************************// … … 162 171 procedure Suspend; safecall; 163 172 procedure Resume; safecall; 164 function Get_State: ContextorState; safecall;165 function GetPrivilege(const subj: WideString): AccessPrivilege; safecall;166 function Get_CurrentContext: IContextItemCollection; safecall;173 function Get_State: ContextorState; safecall; 174 function GetPrivilege(const subj: WideString): AccessPrivilege; safecall; 175 function Get_CurrentContext: IContextItemCollection; safecall; 167 176 procedure StartContextChange; safecall; 168 function EndContextChange(commit: WordBool; const aContextItemCollection: IContextItemCollection): UserResponse; safecall; 177 function EndContextChange(commit: WordBool; 178 const aContextItemCollection: IContextItemCollection): UserResponse; safecall; 169 179 procedure SetSurveyResponse(const reason: WideString); safecall; 170 function Get_NotificationFilter: WideString; safecall;180 function Get_NotificationFilter: WideString; safecall; 171 181 procedure Set_NotificationFilter(const filter: WideString); safecall; 172 function Get_Name: WideString; safecall;182 function Get_Name: WideString; safecall; 173 183 property State: ContextorState read Get_State; 174 184 property CurrentContext: IContextItemCollection read Get_CurrentContext; … … 189 199 procedure Resume; dispid 3; 190 200 property State: ContextorState readonly dispid 4; 191 function GetPrivilege(const subj: WideString): AccessPrivilege; dispid 5;201 function GetPrivilege(const subj: WideString): AccessPrivilege; dispid 5; 192 202 property CurrentContext: IContextItemCollection readonly dispid 6; 193 203 procedure StartContextChange; dispid 7; 194 function EndContextChange(commit: WordBool; const aContextItemCollection: IContextItemCollection): UserResponse; dispid 8; 204 function EndContextChange(commit: WordBool; 205 const aContextItemCollection: IContextItemCollection): UserResponse; dispid 8; 195 206 procedure SetSurveyResponse(const reason: WideString); dispid 9; 196 207 property NotificationFilter: WideString dispid 10; … … 205 216 IContextParticipant = interface(IDispatch) 206 217 ['{3E3DD272-998E-11D0-808D-00A0240943E4}'] 207 function ContextChangesPending(contextCoupon: Integer; var reason: WideString): WideString; safecall;218 function ContextChangesPending(contextCoupon: Integer; var reason: WideString): WideString; safecall; 208 219 procedure ContextChangesAccepted(contextCoupon: Integer); safecall; 209 220 procedure ContextChangesCanceled(contextCoupon: Integer); safecall; … … 219 230 IContextParticipantDisp = dispinterface 220 231 ['{3E3DD272-998E-11D0-808D-00A0240943E4}'] 221 function ContextChangesPending(contextCoupon: Integer; var reason: WideString): WideString; dispid 1610743808;232 function ContextChangesPending(contextCoupon: Integer; var reason: WideString): WideString; dispid 1610743808; 222 233 procedure ContextChangesAccepted(contextCoupon: Integer); dispid 1610743809; 223 234 procedure ContextChangesCanceled(contextCoupon: Integer); dispid 1610743810; … … 233 244 IContextItemCollection = interface(IDispatch) 234 245 ['{AC4C0271-615A-11D3-84B5-0000861FDD4F}'] 235 function Count: Integer; safecall;246 function Count: Integer; safecall; 236 247 procedure Add(const aContextItem: IContextItem); safecall; 237 248 procedure Remove(const contextItemName: WideString); safecall; 238 249 procedure RemoveAll; safecall; 239 function Present(key: OleVariant): IContextItem; safecall;240 function Get__NewEnum: IUnknown; safecall;241 function Item(key: OleVariant): IContextItem; safecall;250 function Present(key: OleVariant): IContextItem; safecall; 251 function Get__NewEnum: IUnknown; safecall; 252 function Item(key: OleVariant): IContextItem; safecall; 242 253 property _NewEnum: IUnknown read Get__NewEnum; 243 254 end; … … 250 261 IContextItemCollectionDisp = dispinterface 251 262 ['{AC4C0271-615A-11D3-84B5-0000861FDD4F}'] 252 function Count: Integer; dispid 1;263 function Count: Integer; dispid 1; 253 264 procedure Add(const aContextItem: IContextItem); dispid 2; 254 265 procedure Remove(const contextItemName: WideString); dispid 3; 255 266 procedure RemoveAll; dispid 4; 256 function Present(key: OleVariant): IContextItem; dispid 5;267 function Present(key: OleVariant): IContextItem; dispid 5; 257 268 property _NewEnum: IUnknown readonly dispid -4; 258 function Item(key: OleVariant): IContextItem; dispid 0;269 function Item(key: OleVariant): IContextItem; dispid 0; 259 270 end; 260 271 … … 266 277 IContextItem = interface(IDispatch) 267 278 ['{AC4C0273-615A-11D3-84B5-0000861FDD4F}'] 268 function Get_Subject: WideString; safecall;279 function Get_Subject: WideString; safecall; 269 280 procedure Set_Subject(const pVal: WideString); safecall; 270 function Get_Role: WideString; safecall;281 function Get_Role: WideString; safecall; 271 282 procedure Set_Role(const pVal: WideString); safecall; 272 function Get_Prefix: WideString; safecall;283 function Get_Prefix: WideString; safecall; 273 284 procedure Set_Prefix(const pVal: WideString); safecall; 274 function Get_Suffix: WideString; safecall;285 function Get_Suffix: WideString; safecall; 275 286 procedure Set_Suffix(const pVal: WideString); safecall; 276 function Get_Name: WideString; safecall;287 function Get_Name: WideString; safecall; 277 288 procedure Set_Name(const pVal: WideString); safecall; 278 function Get_Value: WideString; safecall;289 function Get_Value: WideString; safecall; 279 290 procedure Set_Value(const pVal: WideString); safecall; 280 function Clone: IContextItem; safecall;291 function Clone: IContextItem; safecall; 281 292 property Subject: WideString read Get_Subject write Set_Subject; 282 293 property Role: WideString read Get_Role write Set_Role; … … 300 311 property Name: WideString dispid 5; 301 312 property Value: WideString dispid 6; 302 function Clone: IContextItem; dispid 7;313 function Clone: IContextItem; dispid 7; 303 314 end; 304 315 … … 311 322 ['{CBC6D968-9F6D-416A-8AA7-99172E588DF0}'] 312 323 procedure StartResponseContextChange; safecall; 313 function EndResponseContextChange(commit: WordBool;314 const aContextItemCollection: IContextItemCollection;315 var noContinue: WordBool): OleVariant; safecall;324 function EndResponseContextChange(commit: WordBool; 325 const aContextItemCollection: IContextItemCollection; 326 var noContinue: WordBool): OleVariant; safecall; 316 327 procedure CommitContextChange; safecall; 317 328 procedure CancelContextChange; safecall; … … 326 337 ['{CBC6D968-9F6D-416A-8AA7-99172E588DF0}'] 327 338 procedure StartResponseContextChange; dispid 1; 328 function EndResponseContextChange(commit: WordBool;329 const aContextItemCollection: IContextItemCollection;330 var noContinue: WordBool): OleVariant; dispid 2;339 function EndResponseContextChange(commit: WordBool; 340 const aContextItemCollection: IContextItemCollection; 341 var noContinue: WordBool): OleVariant; dispid 2; 331 342 procedure CommitContextChange; dispid 3; 332 343 procedure CancelContextChange; dispid 4; … … 386 397 IResponseDialog = interface(IDispatch) 387 398 ['{9D33ECF1-8277-11D3-8525-0000861FDD4F}'] 388 function ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse; safecall;399 function ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse; safecall; 389 400 end; 390 401 … … 396 407 IResponseDialogDisp = dispinterface 397 408 ['{9D33ECF1-8277-11D3-8525-0000861FDD4F}'] 398 function ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse; dispid 1;409 function ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse; dispid 1; 399 410 end; 400 411 … … 430 441 class function CreateRemote(const MachineName: string): IContextor; 431 442 end; 443 444 TContextorPending = procedure(Sender: TObject; var aContextItemCollection: OleVariant) of object; 445 446 447 // *********************************************************************// 448 // OLE Server Proxy class declaration 449 // Server Object : TContextor 450 // Help String : Vergence Contextor 451 // Default Interface: IContextor 452 // Def. Intf. DISP? : No 453 // Event Interface: _IContextChangesSink 454 // TypeFlags : (2) CanCreate 455 // *********************************************************************// 456 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 457 TContextorProperties= class; 458 {$ENDIF} 459 TContextor = class(TOleServer) 460 private 461 FOnPending: TContextorPending; 462 FOnCommitted: TNotifyEvent; 463 FOnCanceled: TNotifyEvent; 464 FIntf: IContextor; 465 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 466 FProps: TContextorProperties; 467 function GetServerProperties: TContextorProperties; 468 {$ENDIF} 469 function GetDefaultInterface: IContextor; 470 protected 471 procedure InitServerData; override; 472 procedure InvokeEvent(DispID: TDispID; var Params: TVariantArray); override; 473 function Get_State: ContextorState; 474 function Get_CurrentContext: IContextItemCollection; 475 function Get_NotificationFilter: WideString; 476 procedure Set_NotificationFilter(const filter: WideString); 477 function Get_Name: WideString; 478 public 479 constructor Create(AOwner: TComponent); override; 480 destructor Destroy; override; 481 procedure Connect; override; 482 procedure ConnectTo(svrIntf: IContextor); 483 procedure Disconnect; override; 484 procedure Run(const applicationLabel: WideString; const passcode: WideString; survey: WordBool; 485 const initialNotificationFilter: WideString); 486 procedure Suspend; 487 procedure Resume; 488 function GetPrivilege(const subj: WideString): AccessPrivilege; 489 procedure StartContextChange; 490 function EndContextChange(commit: WordBool; 491 const aContextItemCollection: IContextItemCollection): UserResponse; 492 procedure SetSurveyResponse(const reason: WideString); 493 property DefaultInterface: IContextor read GetDefaultInterface; 494 property State: ContextorState read Get_State; 495 property CurrentContext: IContextItemCollection read Get_CurrentContext; 496 property Name: WideString read Get_Name; 497 property NotificationFilter: WideString read Get_NotificationFilter write Set_NotificationFilter; 498 published 499 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 500 property Server: TContextorProperties read GetServerProperties; 501 {$ENDIF} 502 property OnPending: TContextorPending read FOnPending write FOnPending; 503 property OnCommitted: TNotifyEvent read FOnCommitted write FOnCommitted; 504 property OnCanceled: TNotifyEvent read FOnCanceled write FOnCanceled; 505 end; 506 507 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 508 // *********************************************************************// 509 // OLE Server Properties Proxy Class 510 // Server Object : TContextor 511 // (This object is used by the IDE's Property Inspector to allow editing 512 // of the properties of this server) 513 // *********************************************************************// 514 TContextorProperties = class(TPersistent) 515 private 516 FServer: TContextor; 517 function GetDefaultInterface: IContextor; 518 constructor Create(AServer: TContextor); 519 protected 520 function Get_State: ContextorState; 521 function Get_CurrentContext: IContextItemCollection; 522 function Get_NotificationFilter: WideString; 523 procedure Set_NotificationFilter(const filter: WideString); 524 function Get_Name: WideString; 525 public 526 property DefaultInterface: IContextor read GetDefaultInterface; 527 published 528 property NotificationFilter: WideString read Get_NotificationFilter write Set_NotificationFilter; 529 end; 530 {$ENDIF} 531 432 532 433 533 … … 453 553 procedure CreateControl; 454 554 procedure InitControlData; override; 455 function Get_CurrentContext: IContextItemCollection;555 function Get_CurrentContext: IContextItemCollection; 456 556 public 457 557 procedure Run(const applicationLabel: WideString; const passcode: WideString; survey: WordBool; … … 459 559 procedure Suspend; 460 560 procedure Resume; 461 function GetPrivilege(const subj: WideString): AccessPrivilege;561 function GetPrivilege(const subj: WideString): AccessPrivilege; 462 562 procedure StartContextChange; 463 function EndContextChange(commit: WordBool; const aContextItemCollection: IContextItemCollection): UserResponse; 563 function EndContextChange(commit: WordBool; 564 const aContextItemCollection: IContextItemCollection): UserResponse; 464 565 procedure SetSurveyResponse(const reason: WideString); 465 566 property ControlInterface: IContextor read GetControlInterface; … … 487 588 end; 488 589 590 591 // *********************************************************************// 592 // OLE Server Proxy class declaration 593 // Server Object : TContextItemCollection 594 // Help String : Vergence ContextItemCollection 595 // Default Interface: IContextItemCollection 596 // Def. Intf. DISP? : No 597 // Event Interface: 598 // TypeFlags : (2) CanCreate 599 // *********************************************************************// 600 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 601 TContextItemCollectionProperties= class; 602 {$ENDIF} 603 TContextItemCollection = class(TOleServer) 604 private 605 FIntf: IContextItemCollection; 606 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 607 FProps: TContextItemCollectionProperties; 608 function GetServerProperties: TContextItemCollectionProperties; 609 {$ENDIF} 610 function GetDefaultInterface: IContextItemCollection; 611 protected 612 procedure InitServerData; override; 613 function Get__NewEnum: IUnknown; 614 public 615 constructor Create(AOwner: TComponent); override; 616 destructor Destroy; override; 617 procedure Connect; override; 618 procedure ConnectTo(svrIntf: IContextItemCollection); 619 procedure Disconnect; override; 620 function Count: Integer; 621 procedure Add(const aContextItem: IContextItem); 622 procedure Remove(const contextItemName: WideString); 623 procedure RemoveAll; 624 function Present(key: OleVariant): IContextItem; 625 function Item(key: OleVariant): IContextItem; 626 property DefaultInterface: IContextItemCollection read GetDefaultInterface; 627 property _NewEnum: IUnknown read Get__NewEnum; 628 published 629 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 630 property Server: TContextItemCollectionProperties read GetServerProperties; 631 {$ENDIF} 632 end; 633 634 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 635 // *********************************************************************// 636 // OLE Server Properties Proxy Class 637 // Server Object : TContextItemCollection 638 // (This object is used by the IDE's Property Inspector to allow editing 639 // of the properties of this server) 640 // *********************************************************************// 641 TContextItemCollectionProperties = class(TPersistent) 642 private 643 FServer: TContextItemCollection; 644 function GetDefaultInterface: IContextItemCollection; 645 constructor Create(AServer: TContextItemCollection); 646 protected 647 function Get__NewEnum: IUnknown; 648 public 649 property DefaultInterface: IContextItemCollection read GetDefaultInterface; 650 published 651 end; 652 {$ENDIF} 653 654 489 655 // *********************************************************************// 490 656 // The Class CoContextItem provides a Create and CreateRemote method to … … 499 665 end; 500 666 667 668 // *********************************************************************// 669 // OLE Server Proxy class declaration 670 // Server Object : TContextItem 671 // Help String : Vergence ContextItem 672 // Default Interface: IContextItem 673 // Def. Intf. DISP? : No 674 // Event Interface: 675 // TypeFlags : (2) CanCreate 676 // *********************************************************************// 677 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 678 TContextItemProperties= class; 679 {$ENDIF} 680 TContextItem = class(TOleServer) 681 private 682 FIntf: IContextItem; 683 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 684 FProps: TContextItemProperties; 685 function GetServerProperties: TContextItemProperties; 686 {$ENDIF} 687 function GetDefaultInterface: IContextItem; 688 protected 689 procedure InitServerData; override; 690 function Get_Subject: WideString; 691 procedure Set_Subject(const pVal: WideString); 692 function Get_Role: WideString; 693 procedure Set_Role(const pVal: WideString); 694 function Get_Prefix: WideString; 695 procedure Set_Prefix(const pVal: WideString); 696 function Get_Suffix: WideString; 697 procedure Set_Suffix(const pVal: WideString); 698 function Get_Name: WideString; 699 procedure Set_Name(const pVal: WideString); 700 function Get_Value: WideString; 701 procedure Set_Value(const pVal: WideString); 702 public 703 constructor Create(AOwner: TComponent); override; 704 destructor Destroy; override; 705 procedure Connect; override; 706 procedure ConnectTo(svrIntf: IContextItem); 707 procedure Disconnect; override; 708 function Clone: IContextItem; 709 property DefaultInterface: IContextItem read GetDefaultInterface; 710 property Subject: WideString read Get_Subject write Set_Subject; 711 property Role: WideString read Get_Role write Set_Role; 712 property Prefix: WideString read Get_Prefix write Set_Prefix; 713 property Suffix: WideString read Get_Suffix write Set_Suffix; 714 property Name: WideString read Get_Name write Set_Name; 715 property Value: WideString read Get_Value write Set_Value; 716 published 717 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 718 property Server: TContextItemProperties read GetServerProperties; 719 {$ENDIF} 720 end; 721 722 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 723 // *********************************************************************// 724 // OLE Server Properties Proxy Class 725 // Server Object : TContextItem 726 // (This object is used by the IDE's Property Inspector to allow editing 727 // of the properties of this server) 728 // *********************************************************************// 729 TContextItemProperties = class(TPersistent) 730 private 731 FServer: TContextItem; 732 function GetDefaultInterface: IContextItem; 733 constructor Create(AServer: TContextItem); 734 protected 735 function Get_Subject: WideString; 736 procedure Set_Subject(const pVal: WideString); 737 function Get_Role: WideString; 738 procedure Set_Role(const pVal: WideString); 739 function Get_Prefix: WideString; 740 procedure Set_Prefix(const pVal: WideString); 741 function Get_Suffix: WideString; 742 procedure Set_Suffix(const pVal: WideString); 743 function Get_Name: WideString; 744 procedure Set_Name(const pVal: WideString); 745 function Get_Value: WideString; 746 procedure Set_Value(const pVal: WideString); 747 public 748 property DefaultInterface: IContextItem read GetDefaultInterface; 749 published 750 property Subject: WideString read Get_Subject write Set_Subject; 751 property Role: WideString read Get_Role write Set_Role; 752 property Prefix: WideString read Get_Prefix write Set_Prefix; 753 property Suffix: WideString read Get_Suffix write Set_Suffix; 754 property Name: WideString read Get_Name write Set_Name; 755 property Value: WideString read Get_Value write Set_Value; 756 end; 757 {$ENDIF} 758 759 501 760 // *********************************************************************// 502 761 // The Class CoResponseDialog provides a Create and CreateRemote method to … … 511 770 end; 512 771 772 773 // *********************************************************************// 774 // OLE Server Proxy class declaration 775 // Server Object : TResponseDialog 776 // Help String : Vergence ResponseDialog 777 // Default Interface: IResponseDialog 778 // Def. Intf. DISP? : No 779 // Event Interface: 780 // TypeFlags : (2) CanCreate 781 // *********************************************************************// 782 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 783 TResponseDialogProperties= class; 784 {$ENDIF} 785 TResponseDialog = class(TOleServer) 786 private 787 FIntf: IResponseDialog; 788 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 789 FProps: TResponseDialogProperties; 790 function GetServerProperties: TResponseDialogProperties; 791 {$ENDIF} 792 function GetDefaultInterface: IResponseDialog; 793 protected 794 procedure InitServerData; override; 795 public 796 constructor Create(AOwner: TComponent); override; 797 destructor Destroy; override; 798 procedure Connect; override; 799 procedure ConnectTo(svrIntf: IResponseDialog); 800 procedure Disconnect; override; 801 function ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse; 802 property DefaultInterface: IResponseDialog read GetDefaultInterface; 803 published 804 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 805 property Server: TResponseDialogProperties read GetServerProperties; 806 {$ENDIF} 807 end; 808 809 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 810 // *********************************************************************// 811 // OLE Server Properties Proxy Class 812 // Server Object : TResponseDialog 813 // (This object is used by the IDE's Property Inspector to allow editing 814 // of the properties of this server) 815 // *********************************************************************// 816 TResponseDialogProperties = class(TPersistent) 817 private 818 FServer: TResponseDialog; 819 function GetDefaultInterface: IResponseDialog; 820 constructor Create(AServer: TResponseDialog); 821 protected 822 public 823 property DefaultInterface: IResponseDialog read GetDefaultInterface; 824 published 825 end; 826 {$ENDIF} 827 828 513 829 // *********************************************************************// 514 830 // The Class CoContextorParticipant provides a Create and CreateRemote method to … … 523 839 end; 524 840 841 842 // *********************************************************************// 843 // OLE Server Proxy class declaration 844 // Server Object : TContextorParticipant 845 // Help String : ContextorParticipant Class 846 // Default Interface: IContextParticipant 847 // Def. Intf. DISP? : No 848 // Event Interface: 849 // TypeFlags : (2) CanCreate 850 // *********************************************************************// 851 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 852 TContextorParticipantProperties= class; 853 {$ENDIF} 854 TContextorParticipant = class(TOleServer) 855 private 856 FIntf: IContextParticipant; 857 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 858 FProps: TContextorParticipantProperties; 859 function GetServerProperties: TContextorParticipantProperties; 860 {$ENDIF} 861 function GetDefaultInterface: IContextParticipant; 862 protected 863 procedure InitServerData; override; 864 public 865 constructor Create(AOwner: TComponent); override; 866 destructor Destroy; override; 867 procedure Connect; override; 868 procedure ConnectTo(svrIntf: IContextParticipant); 869 procedure Disconnect; override; 870 function ContextChangesPending(contextCoupon: Integer; var reason: WideString): WideString; 871 procedure ContextChangesAccepted(contextCoupon: Integer); 872 procedure ContextChangesCanceled(contextCoupon: Integer); 873 procedure CommonContextTerminated; 874 procedure Ping; 875 property DefaultInterface: IContextParticipant read GetDefaultInterface; 876 published 877 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 878 property Server: TContextorParticipantProperties read GetServerProperties; 879 {$ENDIF} 880 end; 881 882 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 883 // *********************************************************************// 884 // OLE Server Properties Proxy Class 885 // Server Object : TContextorParticipant 886 // (This object is used by the IDE's Property Inspector to allow editing 887 // of the properties of this server) 888 // *********************************************************************// 889 TContextorParticipantProperties = class(TPersistent) 890 private 891 FServer: TContextorParticipant; 892 function GetDefaultInterface: IContextParticipant; 893 constructor Create(AServer: TContextorParticipant); 894 protected 895 public 896 property DefaultInterface: IContextParticipant read GetDefaultInterface; 897 published 898 end; 899 {$ENDIF} 900 901 { 525 902 procedure Register; 526 527 resourcestring 528 dtlServerPage = 'ActiveX'; 529 903 } 530 904 implementation 531 905 … … 541 915 Result := CreateRemoteComObject(MachineName, CLASS_Contextor) as IContextor; 542 916 end; 917 918 procedure TContextor.InitServerData; 919 const 920 CServerData: TServerData = ( 921 ClassID: '{D5C9CC98-5FDB-11D3-8727-0060B0B5E137}'; 922 IntfIID: '{8D879F5D-5FE6-11D3-8727-0060B0B5E137}'; 923 EventIID: '{6BED8971-B3DD-11D3-8736-0060B0B5E137}'; 924 LicenseKey: nil; 925 Version: 500); 926 begin 927 ServerData := @CServerData; 928 end; 929 930 procedure TContextor.Connect; 931 var 932 punk: IUnknown; 933 begin 934 if FIntf = nil then 935 begin 936 punk := GetServer; 937 ConnectEvents(punk); 938 Fintf:= punk as IContextor; 939 end; 940 end; 941 942 procedure TContextor.ConnectTo(svrIntf: IContextor); 943 begin 944 Disconnect; 945 FIntf := svrIntf; 946 ConnectEvents(FIntf); 947 end; 948 949 procedure TContextor.DisConnect; 950 begin 951 if Fintf <> nil then 952 begin 953 DisconnectEvents(FIntf); 954 FIntf := nil; 955 end; 956 end; 957 958 function TContextor.GetDefaultInterface: IContextor; 959 begin 960 if FIntf = nil then 961 Connect; 962 Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation'); 963 Result := FIntf; 964 end; 965 966 constructor TContextor.Create(AOwner: TComponent); 967 begin 968 inherited Create(AOwner); 969 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 970 FProps := TContextorProperties.Create(Self); 971 {$ENDIF} 972 end; 973 974 destructor TContextor.Destroy; 975 begin 976 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 977 FProps.Free; 978 {$ENDIF} 979 inherited Destroy; 980 end; 981 982 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 983 function TContextor.GetServerProperties: TContextorProperties; 984 begin 985 Result := FProps; 986 end; 987 {$ENDIF} 988 989 procedure TContextor.InvokeEvent(DispID: TDispID; var Params: TVariantArray); 990 begin 991 case DispID of 992 -1: Exit; // DISPID_UNKNOWN 993 1: if Assigned(FOnPending) then 994 FOnPending(Self, Params[0] {const IDispatch}); 995 2: if Assigned(FOnCommitted) then 996 FOnCommitted(Self); 997 3: if Assigned(FOnCanceled) then 998 FOnCanceled(Self); 999 end; {case DispID} 1000 end; 1001 1002 function TContextor.Get_State: ContextorState; 1003 begin 1004 Result := DefaultInterface.Get_State; 1005 end; 1006 1007 function TContextor.Get_CurrentContext: IContextItemCollection; 1008 begin 1009 Result := DefaultInterface.Get_CurrentContext; 1010 end; 1011 1012 function TContextor.Get_NotificationFilter: WideString; 1013 begin 1014 Result := DefaultInterface.Get_NotificationFilter; 1015 end; 1016 1017 procedure TContextor.Set_NotificationFilter(const filter: WideString); 1018 begin 1019 DefaultInterface.Set_NotificationFilter(filter); 1020 end; 1021 1022 function TContextor.Get_Name: WideString; 1023 begin 1024 Result := DefaultInterface.Get_Name; 1025 end; 1026 1027 procedure TContextor.Run(const applicationLabel: WideString; const passcode: WideString; 1028 survey: WordBool; const initialNotificationFilter: WideString); 1029 begin 1030 DefaultInterface.Run(applicationLabel, passcode, survey, initialNotificationFilter); 1031 end; 1032 1033 procedure TContextor.Suspend; 1034 begin 1035 DefaultInterface.Suspend; 1036 end; 1037 1038 procedure TContextor.Resume; 1039 begin 1040 DefaultInterface.Resume; 1041 end; 1042 1043 function TContextor.GetPrivilege(const subj: WideString): AccessPrivilege; 1044 begin 1045 Result := DefaultInterface.GetPrivilege(subj); 1046 end; 1047 1048 procedure TContextor.StartContextChange; 1049 begin 1050 DefaultInterface.StartContextChange; 1051 end; 1052 1053 function TContextor.EndContextChange(commit: WordBool; 1054 const aContextItemCollection: IContextItemCollection): UserResponse; 1055 begin 1056 Result := DefaultInterface.EndContextChange(commit, aContextItemCollection); 1057 end; 1058 1059 procedure TContextor.SetSurveyResponse(const reason: WideString); 1060 begin 1061 DefaultInterface.SetSurveyResponse(reason); 1062 end; 1063 1064 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1065 constructor TContextorProperties.Create(AServer: TContextor); 1066 begin 1067 inherited Create; 1068 FServer := AServer; 1069 end; 1070 1071 function TContextorProperties.GetDefaultInterface: IContextor; 1072 begin 1073 Result := FServer.DefaultInterface; 1074 end; 1075 1076 function TContextorProperties.Get_State: ContextorState; 1077 begin 1078 Result := DefaultInterface.Get_State; 1079 end; 1080 1081 function TContextorProperties.Get_CurrentContext: IContextItemCollection; 1082 begin 1083 Result := DefaultInterface.Get_CurrentContext; 1084 end; 1085 1086 function TContextorProperties.Get_NotificationFilter: WideString; 1087 begin 1088 Result := DefaultInterface.Get_NotificationFilter; 1089 end; 1090 1091 procedure TContextorProperties.Set_NotificationFilter(const filter: WideString); 1092 begin 1093 DefaultInterface.Set_NotificationFilter(filter); 1094 end; 1095 1096 function TContextorProperties.Get_Name: WideString; 1097 begin 1098 Result := DefaultInterface.Get_Name; 1099 end; 1100 1101 {$ENDIF} 543 1102 544 1103 procedure TContextorControl.InitControlData; … … 576 1135 end; 577 1136 578 function TContextorControl.Get_CurrentContext: IContextItemCollection;579 begin 580 Result := DefaultInterface.CurrentContext;1137 function TContextorControl.Get_CurrentContext: IContextItemCollection; 1138 begin 1139 Result := DefaultInterface.Get_CurrentContext; 581 1140 end; 582 1141 … … 597 1156 end; 598 1157 599 function TContextorControl.GetPrivilege(const subj: WideString): AccessPrivilege;1158 function TContextorControl.GetPrivilege(const subj: WideString): AccessPrivilege; 600 1159 begin 601 1160 Result := DefaultInterface.GetPrivilege(subj); … … 607 1166 end; 608 1167 609 function TContextorControl.EndContextChange(commit: WordBool;610 const aContextItemCollection: IContextItemCollection): UserResponse;1168 function TContextorControl.EndContextChange(commit: WordBool; 1169 const aContextItemCollection: IContextItemCollection): UserResponse; 611 1170 begin 612 1171 Result := DefaultInterface.EndContextChange(commit, aContextItemCollection); … … 628 1187 end; 629 1188 1189 procedure TContextItemCollection.InitServerData; 1190 const 1191 CServerData: TServerData = ( 1192 ClassID: '{AC4C0272-615A-11D3-84B5-0000861FDD4F}'; 1193 IntfIID: '{AC4C0271-615A-11D3-84B5-0000861FDD4F}'; 1194 EventIID: ''; 1195 LicenseKey: nil; 1196 Version: 500); 1197 begin 1198 ServerData := @CServerData; 1199 end; 1200 1201 procedure TContextItemCollection.Connect; 1202 var 1203 punk: IUnknown; 1204 begin 1205 if FIntf = nil then 1206 begin 1207 punk := GetServer; 1208 Fintf:= punk as IContextItemCollection; 1209 end; 1210 end; 1211 1212 procedure TContextItemCollection.ConnectTo(svrIntf: IContextItemCollection); 1213 begin 1214 Disconnect; 1215 FIntf := svrIntf; 1216 end; 1217 1218 procedure TContextItemCollection.DisConnect; 1219 begin 1220 if Fintf <> nil then 1221 begin 1222 FIntf := nil; 1223 end; 1224 end; 1225 1226 function TContextItemCollection.GetDefaultInterface: IContextItemCollection; 1227 begin 1228 if FIntf = nil then 1229 Connect; 1230 Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation'); 1231 Result := FIntf; 1232 end; 1233 1234 constructor TContextItemCollection.Create(AOwner: TComponent); 1235 begin 1236 inherited Create(AOwner); 1237 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1238 FProps := TContextItemCollectionProperties.Create(Self); 1239 {$ENDIF} 1240 end; 1241 1242 destructor TContextItemCollection.Destroy; 1243 begin 1244 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1245 FProps.Free; 1246 {$ENDIF} 1247 inherited Destroy; 1248 end; 1249 1250 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1251 function TContextItemCollection.GetServerProperties: TContextItemCollectionProperties; 1252 begin 1253 Result := FProps; 1254 end; 1255 {$ENDIF} 1256 1257 function TContextItemCollection.Get__NewEnum: IUnknown; 1258 begin 1259 Result := DefaultInterface.Get__NewEnum; 1260 end; 1261 1262 function TContextItemCollection.Count: Integer; 1263 begin 1264 Result := DefaultInterface.Count; 1265 end; 1266 1267 procedure TContextItemCollection.Add(const aContextItem: IContextItem); 1268 begin 1269 DefaultInterface.Add(aContextItem); 1270 end; 1271 1272 procedure TContextItemCollection.Remove(const contextItemName: WideString); 1273 begin 1274 DefaultInterface.Remove(contextItemName); 1275 end; 1276 1277 procedure TContextItemCollection.RemoveAll; 1278 begin 1279 DefaultInterface.RemoveAll; 1280 end; 1281 1282 function TContextItemCollection.Present(key: OleVariant): IContextItem; 1283 begin 1284 Result := DefaultInterface.Present(key); 1285 end; 1286 1287 function TContextItemCollection.Item(key: OleVariant): IContextItem; 1288 begin 1289 Result := DefaultInterface.Item(key); 1290 end; 1291 1292 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1293 constructor TContextItemCollectionProperties.Create(AServer: TContextItemCollection); 1294 begin 1295 inherited Create; 1296 FServer := AServer; 1297 end; 1298 1299 function TContextItemCollectionProperties.GetDefaultInterface: IContextItemCollection; 1300 begin 1301 Result := FServer.DefaultInterface; 1302 end; 1303 1304 function TContextItemCollectionProperties.Get__NewEnum: IUnknown; 1305 begin 1306 Result := DefaultInterface.Get__NewEnum; 1307 end; 1308 1309 {$ENDIF} 1310 630 1311 class function CoContextItem.Create: IContextItem; 631 1312 begin … … 638 1319 end; 639 1320 1321 procedure TContextItem.InitServerData; 1322 const 1323 CServerData: TServerData = ( 1324 ClassID: '{AC4C0274-615A-11D3-84B5-0000861FDD4F}'; 1325 IntfIID: '{AC4C0273-615A-11D3-84B5-0000861FDD4F}'; 1326 EventIID: ''; 1327 LicenseKey: nil; 1328 Version: 500); 1329 begin 1330 ServerData := @CServerData; 1331 end; 1332 1333 procedure TContextItem.Connect; 1334 var 1335 punk: IUnknown; 1336 begin 1337 if FIntf = nil then 1338 begin 1339 punk := GetServer; 1340 Fintf:= punk as IContextItem; 1341 end; 1342 end; 1343 1344 procedure TContextItem.ConnectTo(svrIntf: IContextItem); 1345 begin 1346 Disconnect; 1347 FIntf := svrIntf; 1348 end; 1349 1350 procedure TContextItem.DisConnect; 1351 begin 1352 if Fintf <> nil then 1353 begin 1354 FIntf := nil; 1355 end; 1356 end; 1357 1358 function TContextItem.GetDefaultInterface: IContextItem; 1359 begin 1360 if FIntf = nil then 1361 Connect; 1362 Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation'); 1363 Result := FIntf; 1364 end; 1365 1366 constructor TContextItem.Create(AOwner: TComponent); 1367 begin 1368 inherited Create(AOwner); 1369 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1370 FProps := TContextItemProperties.Create(Self); 1371 {$ENDIF} 1372 end; 1373 1374 destructor TContextItem.Destroy; 1375 begin 1376 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1377 FProps.Free; 1378 {$ENDIF} 1379 inherited Destroy; 1380 end; 1381 1382 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1383 function TContextItem.GetServerProperties: TContextItemProperties; 1384 begin 1385 Result := FProps; 1386 end; 1387 {$ENDIF} 1388 1389 function TContextItem.Get_Subject: WideString; 1390 begin 1391 Result := DefaultInterface.Get_Subject; 1392 end; 1393 1394 procedure TContextItem.Set_Subject(const pVal: WideString); 1395 begin 1396 DefaultInterface.Set_Subject(pVal); 1397 end; 1398 1399 function TContextItem.Get_Role: WideString; 1400 begin 1401 Result := DefaultInterface.Get_Role; 1402 end; 1403 1404 procedure TContextItem.Set_Role(const pVal: WideString); 1405 begin 1406 DefaultInterface.Set_Role(pVal); 1407 end; 1408 1409 function TContextItem.Get_Prefix: WideString; 1410 begin 1411 Result := DefaultInterface.Get_Prefix; 1412 end; 1413 1414 procedure TContextItem.Set_Prefix(const pVal: WideString); 1415 begin 1416 DefaultInterface.Set_Prefix(pVal); 1417 end; 1418 1419 function TContextItem.Get_Suffix: WideString; 1420 begin 1421 Result := DefaultInterface.Get_Suffix; 1422 end; 1423 1424 procedure TContextItem.Set_Suffix(const pVal: WideString); 1425 begin 1426 DefaultInterface.Set_Suffix(pVal); 1427 end; 1428 1429 function TContextItem.Get_Name: WideString; 1430 begin 1431 Result := DefaultInterface.Get_Name; 1432 end; 1433 1434 procedure TContextItem.Set_Name(const pVal: WideString); 1435 begin 1436 DefaultInterface.Set_Name(pVal); 1437 end; 1438 1439 function TContextItem.Get_Value: WideString; 1440 begin 1441 Result := DefaultInterface.Get_Value; 1442 end; 1443 1444 procedure TContextItem.Set_Value(const pVal: WideString); 1445 begin 1446 DefaultInterface.Set_Value(pVal); 1447 end; 1448 1449 function TContextItem.Clone: IContextItem; 1450 begin 1451 Result := DefaultInterface.Clone; 1452 end; 1453 1454 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1455 constructor TContextItemProperties.Create(AServer: TContextItem); 1456 begin 1457 inherited Create; 1458 FServer := AServer; 1459 end; 1460 1461 function TContextItemProperties.GetDefaultInterface: IContextItem; 1462 begin 1463 Result := FServer.DefaultInterface; 1464 end; 1465 1466 function TContextItemProperties.Get_Subject: WideString; 1467 begin 1468 Result := DefaultInterface.Get_Subject; 1469 end; 1470 1471 procedure TContextItemProperties.Set_Subject(const pVal: WideString); 1472 begin 1473 DefaultInterface.Set_Subject(pVal); 1474 end; 1475 1476 function TContextItemProperties.Get_Role: WideString; 1477 begin 1478 Result := DefaultInterface.Get_Role; 1479 end; 1480 1481 procedure TContextItemProperties.Set_Role(const pVal: WideString); 1482 begin 1483 DefaultInterface.Set_Role(pVal); 1484 end; 1485 1486 function TContextItemProperties.Get_Prefix: WideString; 1487 begin 1488 Result := DefaultInterface.Get_Prefix; 1489 end; 1490 1491 procedure TContextItemProperties.Set_Prefix(const pVal: WideString); 1492 begin 1493 DefaultInterface.Set_Prefix(pVal); 1494 end; 1495 1496 function TContextItemProperties.Get_Suffix: WideString; 1497 begin 1498 Result := DefaultInterface.Get_Suffix; 1499 end; 1500 1501 procedure TContextItemProperties.Set_Suffix(const pVal: WideString); 1502 begin 1503 DefaultInterface.Set_Suffix(pVal); 1504 end; 1505 1506 function TContextItemProperties.Get_Name: WideString; 1507 begin 1508 Result := DefaultInterface.Get_Name; 1509 end; 1510 1511 procedure TContextItemProperties.Set_Name(const pVal: WideString); 1512 begin 1513 DefaultInterface.Set_Name(pVal); 1514 end; 1515 1516 function TContextItemProperties.Get_Value: WideString; 1517 begin 1518 Result := DefaultInterface.Get_Value; 1519 end; 1520 1521 procedure TContextItemProperties.Set_Value(const pVal: WideString); 1522 begin 1523 DefaultInterface.Set_Value(pVal); 1524 end; 1525 1526 {$ENDIF} 1527 640 1528 class function CoResponseDialog.Create: IResponseDialog; 641 1529 begin … … 648 1536 end; 649 1537 1538 procedure TResponseDialog.InitServerData; 1539 const 1540 CServerData: TServerData = ( 1541 ClassID: '{9D33ECF2-8277-11D3-8525-0000861FDD4F}'; 1542 IntfIID: '{9D33ECF1-8277-11D3-8525-0000861FDD4F}'; 1543 EventIID: ''; 1544 LicenseKey: nil; 1545 Version: 500); 1546 begin 1547 ServerData := @CServerData; 1548 end; 1549 1550 procedure TResponseDialog.Connect; 1551 var 1552 punk: IUnknown; 1553 begin 1554 if FIntf = nil then 1555 begin 1556 punk := GetServer; 1557 Fintf:= punk as IResponseDialog; 1558 end; 1559 end; 1560 1561 procedure TResponseDialog.ConnectTo(svrIntf: IResponseDialog); 1562 begin 1563 Disconnect; 1564 FIntf := svrIntf; 1565 end; 1566 1567 procedure TResponseDialog.DisConnect; 1568 begin 1569 if Fintf <> nil then 1570 begin 1571 FIntf := nil; 1572 end; 1573 end; 1574 1575 function TResponseDialog.GetDefaultInterface: IResponseDialog; 1576 begin 1577 if FIntf = nil then 1578 Connect; 1579 Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation'); 1580 Result := FIntf; 1581 end; 1582 1583 constructor TResponseDialog.Create(AOwner: TComponent); 1584 begin 1585 inherited Create(AOwner); 1586 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1587 FProps := TResponseDialogProperties.Create(Self); 1588 {$ENDIF} 1589 end; 1590 1591 destructor TResponseDialog.Destroy; 1592 begin 1593 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1594 FProps.Free; 1595 {$ENDIF} 1596 inherited Destroy; 1597 end; 1598 1599 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1600 function TResponseDialog.GetServerProperties: TResponseDialogProperties; 1601 begin 1602 Result := FProps; 1603 end; 1604 {$ENDIF} 1605 1606 function TResponseDialog.ProcessSurveyResults(responses: OleVariant; noContinue: WordBool): UserResponse; 1607 begin 1608 Result := DefaultInterface.ProcessSurveyResults(responses, noContinue); 1609 end; 1610 1611 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1612 constructor TResponseDialogProperties.Create(AServer: TResponseDialog); 1613 begin 1614 inherited Create; 1615 FServer := AServer; 1616 end; 1617 1618 function TResponseDialogProperties.GetDefaultInterface: IResponseDialog; 1619 begin 1620 Result := FServer.DefaultInterface; 1621 end; 1622 1623 {$ENDIF} 1624 650 1625 class function CoContextorParticipant.Create: IContextParticipant; 651 1626 begin … … 658 1633 end; 659 1634 1635 procedure TContextorParticipant.InitServerData; 1636 const 1637 CServerData: TServerData = ( 1638 ClassID: '{4BA034A2-D0FA-11D3-818B-0050049598B2}'; 1639 IntfIID: '{3E3DD272-998E-11D0-808D-00A0240943E4}'; 1640 EventIID: ''; 1641 LicenseKey: nil; 1642 Version: 500); 1643 begin 1644 ServerData := @CServerData; 1645 end; 1646 1647 procedure TContextorParticipant.Connect; 1648 var 1649 punk: IUnknown; 1650 begin 1651 if FIntf = nil then 1652 begin 1653 punk := GetServer; 1654 Fintf:= punk as IContextParticipant; 1655 end; 1656 end; 1657 1658 procedure TContextorParticipant.ConnectTo(svrIntf: IContextParticipant); 1659 begin 1660 Disconnect; 1661 FIntf := svrIntf; 1662 end; 1663 1664 procedure TContextorParticipant.DisConnect; 1665 begin 1666 if Fintf <> nil then 1667 begin 1668 FIntf := nil; 1669 end; 1670 end; 1671 1672 function TContextorParticipant.GetDefaultInterface: IContextParticipant; 1673 begin 1674 if FIntf = nil then 1675 Connect; 1676 Assert(FIntf <> nil, 'DefaultInterface is NULL. Component is not connected to Server. You must call ''Connect'' or ''ConnectTo'' before this operation'); 1677 Result := FIntf; 1678 end; 1679 1680 constructor TContextorParticipant.Create(AOwner: TComponent); 1681 begin 1682 inherited Create(AOwner); 1683 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1684 FProps := TContextorParticipantProperties.Create(Self); 1685 {$ENDIF} 1686 end; 1687 1688 destructor TContextorParticipant.Destroy; 1689 begin 1690 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1691 FProps.Free; 1692 {$ENDIF} 1693 inherited Destroy; 1694 end; 1695 1696 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1697 function TContextorParticipant.GetServerProperties: TContextorParticipantProperties; 1698 begin 1699 Result := FProps; 1700 end; 1701 {$ENDIF} 1702 1703 function TContextorParticipant.ContextChangesPending(contextCoupon: Integer; var reason: WideString): WideString; 1704 begin 1705 Result := DefaultInterface.ContextChangesPending(contextCoupon, reason); 1706 end; 1707 1708 procedure TContextorParticipant.ContextChangesAccepted(contextCoupon: Integer); 1709 begin 1710 DefaultInterface.ContextChangesAccepted(contextCoupon); 1711 end; 1712 1713 procedure TContextorParticipant.ContextChangesCanceled(contextCoupon: Integer); 1714 begin 1715 DefaultInterface.ContextChangesCanceled(contextCoupon); 1716 end; 1717 1718 procedure TContextorParticipant.CommonContextTerminated; 1719 begin 1720 DefaultInterface.CommonContextTerminated; 1721 end; 1722 1723 procedure TContextorParticipant.Ping; 1724 begin 1725 DefaultInterface.Ping; 1726 end; 1727 1728 {$IFDEF LIVE_SERVER_AT_DESIGN_TIME} 1729 constructor TContextorParticipantProperties.Create(AServer: TContextorParticipant); 1730 begin 1731 inherited Create; 1732 FServer := AServer; 1733 end; 1734 1735 function TContextorParticipantProperties.GetDefaultInterface: IContextParticipant; 1736 begin 1737 Result := FServer.DefaultInterface; 1738 end; 1739 1740 {$ENDIF} 1741 { 660 1742 procedure Register; 661 1743 begin 662 RegisterComponents('ActiveX',[TContextorControl]); 663 end; 664 1744 RegisterComponents('Kernel',[TContextorControl]); 1745 RegisterComponents('Kernel',[TContextor, TContextItemCollection, TContextItem, TResponseDialog, 1746 TContextorParticipant]); 1747 end; 1748 } 665 1749 end. -
cprs/branches/foia-cprs/CPRS-Chart/Vitals/uVitals.pas
r459 r460 5 5 6 6 uses 7 SysUtils, Dialogs, Controls, Windows, Classes, ORClasses, ORCtrls, ORFn, Forms; 7 SysUtils, Dialogs, Controls, Windows, Classes, ORClasses, ORCtrls, ORFn, Forms 8 , TRPCB 9 ; 8 10 9 11 const … … 32 34 procedure SetVitalsMetric(const Value: boolean); 33 35 procedure SetVitCVPmmHg(const Value: boolean); 34 function ValidVitalsDate(var ADate: TFMDateTime; SkipFirst: boolean = FALSE ): boolean;36 function ValidVitalsDate(var ADate: TFMDateTime; SkipFirst: boolean = FALSE; Show: boolean = true): boolean; 35 37 function IsNumericWeight(const x: string): Boolean; 38 procedure CloseVitalsDLL; 36 39 37 40 const … … 77 80 VitalLocationStr = 'VST^HL^'; 78 81 82 SHARE_DIR = '\VISTA\Common Files\'; 83 GMV_CONTEXT = 'OR CPRS GUI CHART'; 84 GMV_APP_SIGNATURE = 'CPRS'; 85 GMV_DEFAULT_TEMPLATE = ''; 86 79 87 type 80 88 VitalTags = TAG_VITBP..TAG_VITPAIN; 89 90 TGMV_VitalsEnterForm = function( 91 aBroker:TRPCBroker; 92 aPatient, aLocation, aTemplate,aSignature:String; 93 aDateTime:TDateTime): TCustomForm; stdcall; 94 95 TGMV_VitalsEnterDLG = function( 96 aBroker:TRPCBroker; 97 aDFN, aLocation, aTemplate,aSignature:String; 98 aDateTime:TDateTime; 99 aName,anInfo:String): Integer; stdcall; 100 101 TGFM_VitalsViewDLG = function( 102 aBroker:TRPCBroker; 103 aDFN, aLocation, 104 DateStart, DateStop, 105 aSignature, 106 aContextIn,aContextOut, 107 aName,anInfo,aHospitalName:String): Integer; stdcall; 108 109 TGMV_VitalsViewForm = function( 110 aBroker:TRPCBroker; 111 aDFN, aLocation, 112 DateStart, DateStop, 113 aSignature, 114 aContextIn,aContextOut, 115 aName,anInfo, 116 aDynamicParameter {HospitolName^Vital Type Abbreviation} :String): TCustomForm; stdcall; 117 118 TGMV_LatestVitalsList = function ( 119 aBroker:TRPCBroker; 120 aDFN, 121 aDelim:String; 122 bSilent:Boolean 123 ): TStringList; stdcall; 124 125 TGMV_VitalsExit = Procedure; 126 127 var 128 VitalsDLLHandle : THandle; 129 DLLForceClose : Boolean = False; 130 81 131 82 132 const … … 128 178 uses 129 179 uCore, rCore, rVitals, Contnrs, mVitBase, mVitMetric, fVitalsDate; 130 180 131 181 var 132 182 uVitalFrames: TComponentList = nil; 183 184 procedure CloseVitalsDLL; 185 var 186 VitalsExit : TGMV_VitalsExit; 187 begin 188 if VitalsDLLHandle <> 0 then 189 begin 190 @VitalsExit := GetProcAddress(VitalsDLLHandle,PChar('GMV_VitalsExit')); 191 if assigned(VitalsExit) then 192 VitalsExit(); 193 DLLForceClose := True; 194 end; 195 end; 133 196 134 197 function VitalErrorText(VType: TVitalType): string; … … 545 608 end; 546 609 547 function ValidVitalsDate(var ADate: TFMDateTime; SkipFirst: boolean = FALSE): boolean; 610 611 function ValidVitalsDate(var ADate: TFMDateTime; SkipFirst: boolean = FALSE; Show: boolean = true): boolean; //AGP Change 26.1 548 612 var 549 613 frmVitalsDate: TfrmVitalsDate; … … 571 635 try 572 636 frmVitalsDate.dteVitals.FMDateTime := ADate; 637 frmVitalsDate.btnNow.Visible := Show; //AGP Change 26.1 573 638 if frmVitalsDate.ShowModal = mrOK then 574 639 ADate := frmVitalsDate.dteVitals.FMDateTime; … … 581 646 end; 582 647 end; 648 583 649 function IsNumericWeight(const x: string): Boolean; 584 650 var -
cprs/branches/foia-cprs/CPRS-Chart/dShared.dfm
r459 r460 14 14 Bitmap = { 15 15 494C01011E002200040010001000FFFFFF00FF10FFFFFFFFFFFFFFFF424D3600 16 0000000000003600000028000000400000009000000001001000000000000048 17 0000000000000000000000000000000000000000000000000000000000000000 18 0000000000000000000000000000000000000000000000000000000000000000 19 0000000000000000000000000000000000000000000000000000000000000000 20 0000000000000000000000000000000000000000000000000000000000000000 21 0000000000000000000000000000000000000000000000000000000000000000 22 0000000000000000000000000000000000000000000000000000000000000000 23 0000000000000000000000000000000000000000000000000000000000000000 24 0000000000000000000000000000000000000000000000000000000000000000 25 0000000000000000000000000000000000000000000000000000000000000000 26 0000000000000000000000000000000000000000000000000000000000000000 27 0000000000000000000000000000000000000000000000000000000000000000 28 0000000000000000000000000000000000000000000000000000000000000000 29 0000000000000000000000000000000000000000000000000000000000000000 30 0000000000000000000000000000000000000000000000000000000000000000 31 0000000000000000000000000000000000000000000000000000000000000000 32 0000000000000000000000000000000000000000000000000000000000000000 33 0000000000000000000000000000000000000000000000000000000000000000 34 0000000000000000000000000000000000000000000000000000000000000000 35 0000000000000000000000000000000000000000000000000000000000000000 36 0000000000000000000000000000000000000000000000000000000000000000 37 0000000000000000000000000000000000000000000000000000000000000000 38 0000000000000000000000000000000000000000000000000000000000000000 39 0000000000000000000000000000000000000000000000000000000000000000 40 0000000000000000000000000000000000000000000000000000000000000000 41 0000000000000000000000000000000000000000000000000000000000000000 42 0000000000000000000000000000000000000000000000000000000000000000 43 0000000000000000000000000000000000000000000000000000000000000000 44 0000000000000000000000000000000000000000000000000000000000000000 45 0000000000000000000000000000000000000000000000000000000000000000 46 0000000000000000000000000000000000000000000000000000000000000000 47 0000000000000000000000000000000000000000000000000000000000000000 48 0000000000000000000000000000000000000000000000000000000000000000 49 0000000000000000000000000000000000000000000000000000000000000000 50 0000000000000000000000000000000000000000000000000000000000000000 51 0000000000000000000000000000000000000000000000000000000000000000 52 0000000000000000000000000000000000000000000000000000000000000000 53 0000000000000000000000000000000000000000000000000000000000000000 54 0000000000000000000000000000000000000000000000000000000000000000 55 0000000000000000000000000000000000000000000000000000000000000000 56 0000000000000000000000000000000000000000000000000000000000000000 57 0000000000000000000000000000000000000000000000000000000000000000 58 0000000000000000000000000000000000000000000000000000000000000000 59 0000000000000000000000000000000000000000000000000000000000000000 60 0000000000000000000000000000000000000000000000000000000000000000 61 0000000000000000000000000000000000000000000000000000000000000000 62 0000000000000000000000000000000000000000000000000000000000000000 63 0000000000000000000000000000000000000000000000000000000000000000 64 0000000000000000000000000000000000000000000000000000000000000000 65 0000000000000000000000000000000000000000000000000000000000000000 66 0000000000000000000000000000000000000000000000000000000000000000 67 0000000000000000000000000000000000000000000000000000000000000000 68 0000000000000000000000000000000000000000000000000000000000000000 69 0000000000000000000000000000000000000000000000000000000000000000 70 0000000000000000000000000000000000000000000000000000000000000000 71 0000000000000000000000000000000000000000000000000000000000000000 72 0000000000000000000000000000000000000000000000000000000000000000 73 0000000000000000000000000000000000000000000000000000000000000000 74 0000000000000000000000000000000000000000000000000000000000000000 75 0000000000000000000000000000000000000000000000000000000000000000 76 0000000000000000000000000000000000000000000000000000000000000000 77 0000000000000000000000000000000000000000000000000000000000000000 78 0000000000000000000000000000000000000000000000000000000000000000 79 0000000000000000000000000000000000000000000000000000000000000000 80 0000000000000000000000000000000000000000000000000000000000000000 81 000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 82 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 83 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000 84 0000000000000000000000000000000000000000000000000000000000000000 85 000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 86 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 87 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000 88 0000000000000000000000000000000000000000000000000000000000000000 89 000000000000000000000000000000000000FF7F000000000000000000000000 90 00000000000000000000000000000000FF7FFF7F00000000000000000000007C 91 007C007C007C00000000000000000000FF7F0000000000000000000000000000 92 0000000000000000000000000000000000000000000000000000000000000000 93 000000000000000000000000000000000000FF7F104218631863186318631863 94 18631863186318631863186318630000FF7FFF7F104218631863007C007C007C 95 007C007C007C007C007C186318630000FF7F0000000000000000000000000000 96 0000000000000000000000000000000000000000000000000000000000000000 97 000000000000000000000000000000000000FF7F10421863FF7FFF7FFF7FFF7F 98 FF7FFF7FFF7FFF7FFF7FFF7F18630000FF7FFF7F10421863007C007CFF7FFF7F 99 FF7FFF7FFF7FFF7F007C007C18630000FF7F0000000000000000000000000000 100 0000000000000000000000000000000000000000000000000000000000000000 101 000000000000000000000000000000000000FF7F10421863FF7F18630040FF7F 102 FF7FFF7F1863FF7FFF7FFF7F18630000FF7FFF7F1042007C007C007C007CFF7F 103 FF7FFF7F1863FF7FFF7F007C007C0000FF7F0000000000000000000000000000 104 0000000000000000000000000000000000000000000000000000000000000000 105 000000000000000000000000000000000000FF7F10421863FF7F0040007C0040 106 FF7FFF7F1F001F001863FF7F18630000FF7FFF7F1042007C007CFF7F007C007C 107 FF7FFF7F1F001F001863007C007C0000FF7F0000000000000000000000000000 108 0000000000000000000000000000000000000000000000000000000000000000 109 000000000000000000000000000000000000FF7F10421863FF7F007CE07F0040 110 FF7FFF7FFF031F001F00FF7F18630000FF7FFF7F007C007CFF7F007CFF7F007C 111 007CFF7FFF031F001F00FF7F007C007CFF7F0000000000000000000000000000 112 0000000000000000000000000000000000000000000000000000000000000000 113 000000000000000000000000000000000000FF7F10421863FF7FFF7F007C0040 114 FF7FFF7F1F00FF7FFF7FFF7F18630000FF7FFF7F007C007CFF7FFF7F007CFF7F 115 007C007CFF7FFF7FFF7FFF7F007C007CFF7F0000000000000000000000000000 116 0000000000000000000000000000000000000000000000000000000000000000 117 000000000000000000000000000000000000FF7F10421863FF7FFF7FFF7FFF7F 118 FF7FFF7FFF7FFF7FFF7FFF7F18630000FF7FFF7F007C007CFF7FFF7FFF7FFF7F 119 FF7F007C007CFF7FFF7FFF7F007C007CFF7F0000000000000000000000000000 120 0000000000000000000000000000000000000000000000000000000000000000 121 000000000000000000000000000000000000FF7F104218631863186318631863 122 18631863186318631863186318630000FF7FFF7F1042007C007C186318631863 123 1863FF7F007C007C1863007C007C0000FF7F0000000000000000000000000000 124 0000000000000000000000000000000000000000000000000000000000000000 125 000000000000000000000000000000000000FF7F104218631000100010001000 126 10001000000000000000000018630000FF7FFF7F1042007C007C100010001000 127 10001000FF7F007C007C007C007C0000FF7F0000000000000000000000000000 128 0000000000000000000000000000000000000000000000000000000000000000 129 000000000000000000000000000000000000FF7F104218631000100010001000 130 10001000FF7F0000FF7F000018630000FF7FFF7F10421863007C007C10001000 131 10001000FF7FFF7F007C007C18630000FF7F0000000000000000000000000000 132 0000000000000000000000000000000000000000000000000000000000000000 133 000000000000000000000000000000000000FF7F104218631863186318631863 134 18631863186318631863186318630000FF7FFF7F104218631863007C007C007C 135 007C007C007C007C007C186318630000FF7F0000000000000000000000000000 136 0000000000000000000000000000000000000000000000000000000000000000 137 000000000000000000000000000000000000FF7F104210421042104210421042 138 10421042104210421042104210420000FF7FFF7F10421042104210421042007C 139 007C007C007C10421042104210420000FF7F0000000000000000000000000000 140 0000000000000000000000000000000000000000000000000000000000000000 141 000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 142 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 143 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000 144 0000000000000000000000000000000000000000000000000000000000000000 145 000000000000000000000000000000000000FF7F000000000000000000000000 146 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 147 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 148 FF7F0000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 149 0000000000000000000000000000000000000000E07FFF7FE07FFF7FE07FFF7F 150 E07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F00000000E07F1863E07F1863E07F 151 1863E07F1863E07F0000FF7FFF7FFF7FFF7FFF7F104210421863FF7F10421042 152 00000042E07FE07FE07FE07FE07F00420000FF7F104210421863FF7F10421042 153 0000E07FE07FE07FE07FE07FE07FE07F00000000FF7FE07FFF7FE07FFF7FE07F 154 FF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7F0000E07F0000E07F1863E07F1863 155 E07F1863E07F1863E07F0000FF7FFF7FFF7FFF7FFF7FFF7F1042104210421863 156 000018631863186318631863186318630000FF7FFF7FFF7F1042104210421863 157 0000186318631863186318631863186300000000E07FFF7FE07FFF7FE07FFF7F 158 E07FFF7FE07F0000000000000000000000000000FF7FE07F0000E07F1863E07F 159 1863E07F1863E07F1863E07F000000000000FF7FFF7F1042104218631863FF7F 160 000018631042000018631863000018630000FF7FFF7F1042104218631863FF7F 161 0000186310420000186318630000186300000000FF7FE07FFF7FE07FFF7FE07F 162 FF7FE07FFF7F0000104210421042104200000000E07FFF7F0000000000000000 163 000000000000000000000000000010420000FF7FFF7F10421863186310421863 164 000018630000000000001863186318630000FF7FFF7F10421863186310421863 165 0000186300000000000018631863186300000000E07FFF7FE07FFF7FE07FFF7F 166 E07FFF7FE07F0000104210421042104200000000FF7FE07F0000104210421042 167 104210421042104210421042104210420000FF7F1042FF7F1863FF7F18631042 168 000018631863186300001863000018630000FF7F1042FF7F1863FF7F18631042 169 0000186318631863000018630000186300000000FF7FE07FFF7FE07FFF7FE07F 170 FF7FE07FFF7F0000104200000000104200000000E07FFF7F0000104210420000 171 104210420000104200000000000010420000FF7F1042FF7F1042186318631863 172 000018631863186318631863186318630000FF7F1042FF7F1042186318631863 173 0000186318631863186318631863186300000000000000000000000000000000 174 0000000000001042104210421042104200000000FF7FE07F0000104200000000 175 000010421042104210421042104210420000FF7F10421863FF7F18631863FF7F 176 000010001F001F001F001F001F0010000000FF7F10421863FF7F18631863FF7F 177 00001F001F001F001F001F001F001F000000FF7F0000FF7F0000104210421042 178 104210421042104200000000104210420000FF7F0000FF7F0000104210421042 179 000010420000000000000000104210420000FF7FFF7F1042FF7FFF7F10421863 180 18630000000000000000000000000000FF7FFF7FFF7F1042FF7FFF7F10421863 181 000000000000000000000000000000000000FF7F104200000000104210421042 182 104210421042104210421042104210420000FF7F104200000000104210421042 183 104210421042104210421042104210420000FF7FFF7F10421042FF7FFF7F1863 184 104218631863186310421042FF7FFF7FFF7FFF7FFF7F10421042FF7FFF7F1863 185 104218631863186310421042FF7FFF7FFF7FFF7FFF7FFF7F0000104210420000 186 104210420000000010420000000010420000FF7FFF7FFF7F0000104210420000 187 10421042000000001042000000001042000010421042104210421042FF7FFF7F 188 FF7FFF7FFF7F10421042104210421042FF7F10421042104210421042FF7FFF7F 189 FF7FFF7FFF7F10421042104210421042FF7FFF7FFF7FFF7F0000104200000000 190 000010421042104210421042104210420000FF7FFF7FFF7F0000104200000000 191 0000104210421042104210421042104200001042FF7F18631863104210421042 192 10421042104210421863186318631042FF7F1042FF7F18631863104210421042 193 10421042104210421863186318631042FF7FFF7FFF7FFF7F0000104210421042 194 000010420000104200000000000010420000FF7FFF7FFF7F0000104210421042 195 00001042000010420000000000001042000010421863FF7F1863186318631042 196 104210421863FF7F1863186318631042FF7F10421863FF7F1863186318631042 197 104210421863FF7F1863186318631042FF7FFF7FFF7FFF7F0000104210421042 198 104210421042104210421042104210420000FF7FFF7FFF7F0000104210421042 199 104210421042104210421042104210420000FF7F10421863FF7FFF7F1042FF7F 200 1042FF7F10421863FF7FFF7F1042FF7FFF7FFF7F10421863FF7FFF7F1042FF7F 201 1042FF7F10421863FF7FFF7F1042FF7FFF7FFF7FFF7FFF7F0000100010001000 202 100010001000100010001000100010000000FF7FFF7FFF7F0000100010001000 203 100010001000100010001000100010000000FF7FFF7F104210421042FF7FFF7F 204 1042FF7FFF7F104210421042FF7FFF7FFF7FFF7FFF7F104210421042FF7FFF7F 205 1042FF7FFF7F104210421042FF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 206 000000000000000000000000000000000000FF7FFF7FFF7F0000000000000000 207 000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F1042 208 10421042FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F1042 209 10421042FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 210 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 211 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 212 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 213 0000000000000000FF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 214 E07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F00000000E07F1863E07F1863E07F 215 1863E07F1863E07F0000FF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 216 E07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F00000000E07F1863E07F1863E07F 217 1863E07F1863E07F0000FF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 218 FF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7F0000E07F0000E07F1863E07F1863 219 E07F1863E07F1863E07F0000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 220 FF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7F0000E07F0000E07F1863E07F1863 221 E07F1863E07F1863E07F0000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 222 E07FFF7FE07F00000000000000000000FF7F0000FF7FE07F0000E07F1863E07F 223 1863E07F1863E07F1863E07F00000000FF7F0000E07FFF7FE07FFF7FE07FFF7F 224 E07FFF7FE07F0000000000000000000000000000FF7FE07F0000E07F1863E07F 225 1863E07F1863E07F1863E07F0000000000000000FF7FE07FFF7FE07FFF7FE07F 226 FF7FE07FFF7F0000104210421042104200000000E07FFF7F0000000000000000 227 0000000000000000000000000000104200000000FF7FE07FFF7FE07FFF7FE07F 228 FF7FE07FFF7F0000186318631863186300000000E07FFF7F0000000000000000 229 0000000000000000000000000000186300000000E07FFF7FE07FFF7FE07FFF7F 230 E07FFF7FE07F0000104210421042104200000000FF7FE07F0000104210421042 231 1042104210421042104210421042104200000000E07FFF7FE07FFF7FE07FFF7F 232 E07FFF7FE07F0000186318631863186300000000FF7FE07F0000186318631863 233 1863186318631863186318631863186300000000FF7FE07FFF7FE07FFF7FE07F 234 FF7FE07FFF7F0000104200000000104200000000E07FFF7F0000104210420000 235 1042104200001042000000000000104200000000FF7FE07FFF7FE07FFF7FE07F 236 FF7FE07FFF7F0000186300000000186300000000E07FFF7F0000186310420000 237 1863186300001863000000000000186300000000000000000000000000000000 238 0000000000001042104210421042104200000000FF7FE07F0000104200000000 239 0000104210421042104210421042104200000000000000000000000000000000 240 0000000000001863186318631863186300000000FF7FE07F0000186300000000 241 000018631863186318631863186318630000FF7F0000FF7F0000104210421042 242 104210421042104200000000104210420000FF7F0000FF7F0000104210421042 243 000010420000000000000000104210420000FF7F0000FF7F0000186318631863 244 186318631863186300000000186318630000FF7F0000FF7F0000186318631863 245 000018630000000000000000186318630000FF7F104200000000104210421042 246 104210421042104210421042104210420000FF7F104200000000104210421042 247 104210421042104210421042104210420000FF7F104200000000186318631863 248 186318631863186318631863186318630000FF7F104200000000186318631863 249 186318631863186318631863186318630000FF7FFF7FFF7F0000104210420000 250 104210420000000010420000000010420000FF7FFF7FFF7F0000104210420000 251 104210420000000010420000000010420000FF7FFF7FFF7F0000186310420000 252 186318630000000018630000000018630000FF7FFF7FFF7F0000186310420000 253 186318630000000018630000000018630000FF7FFF7FFF7F0000104200000000 254 000010421042104210421042104210420000FF7FFF7FFF7F0000104200000000 255 000010421042104210421042104210420000FF7FFF7FFF7F0000186300000000 256 000018631863186318631863186318630000FF7FFF7FFF7F0000186300000000 257 000018631863186318631863186318630000FF7FFF7FFF7F0000104210421042 258 000010420000104200000000000010420000FF7FFF7FFF7F0000104210421042 259 000010420000104200000000000010420000FF7FFF7FFF7F0000186318631863 260 000018630000186300000000000018630000FF7FFF7FFF7F0000186318631863 261 000018630000186300000000000018630000FF7FFF7FFF7F0000104210421042 262 104210421042104210421042104210420000FF7FFF7FFF7F0000104210421042 263 104210421042104210421042104210420000FF7FFF7FFF7F0000186318631863 264 186318631863186318631863186318630000FF7FFF7FFF7F0000186318631863 265 186318631863186318631863186318630000FF7FFF7FFF7F0000100010001000 266 100010001000100010001000100010000000FF7FFF7FFF7F0000100010001000 267 100010001000100010001000100010000000FF7FFF7FFF7F00001F001F001F00 268 1F001F001F001F001F001F001F001F000000FF7FFF7FFF7F00001F001F001F00 269 1F001F001F001F001F001F001F001F000000FF7FFF7FFF7FFF7F000000000000 270 00000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F000000000000 271 00000000000000000000000000000000FF7FFF7FFF7FFF7F0000000000000000 272 000000000000000000000000000000000000FF7FFF7FFF7F0000000000000000 273 000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 274 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 275 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 276 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 277 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 278 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 279 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 280 E07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F00000000E07F1863E07F1863E07F 281 1863E07F1863E07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 282 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 283 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 284 FF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7F0000E07F0000E07F1863E07F1863 285 E07F1863E07F1863E07F0000FF7FFF7FFF7FFF7FFF7F00000000000000000000 286 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 287 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 288 E07FFF7FE07F00000000000000000000FF7F0000FF7FE07F0000E07F1863E07F 289 1863E07F1863E07F1863E07F00000000FF7FFF7FFF7F0000E07FFF7FE07FFF7F 290 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7F000000000000000000000000 291 00000000000000000000FF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 292 FF7FE07FFF7F0000186318631863104200000000E07FFF7F0000000000000000 293 000000000000000000000000000010420000FF7FFF7F0000FF7FE07FFF7FE07F 294 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7F00000000E07F1863E07F1863 295 E07F1863E07F1863E07F0000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 296 E07FFF7FE07F0000186318631863186300000000FF7FE07F0000186318631863 297 186318631863186318631863186318630000FF7FFF7F0000E07FFF7FE07FFF7F 298 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7F0000FF7F0000E07F1863E07F 299 1863E07F1863E07F1863E07F0000FF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 300 FF7FE07FFF7F0000186300000000186300000000E07FFF7F0000186310420000 301 186318630000186300000000000018630000FF7FFF7F0000FF7FE07FFF7FE07F 302 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7F0000E07FFF7F0000E07F1863 303 E07F1863E07F1863E07F1863E07F0000FF7F0000000000000000000000000000 304 0000000000001863186318631863186300000000FF7FE07F0000186300000000 305 000018631863186318631863186318630000FF7FFF7F0000E07FFF7FE07FFF7F 306 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7F0000FF7FE07FFF7F00000000 307 000000000000000000000000000000000000FF7F0000FF7F0000186318631863 308 186318631863186300000000186318630000FF7F0000FF7F0000186318631863 309 000018630000000000000000186318630000FF7FFF7F0000FF7FE07FFF7FE07F 310 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7FE07F 311 FF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F104200000000186318631863 312 186318631863186318631863186318630000FF7F104200000000186318631863 313 186318631863186318631863186318630000FF7FFF7F00000000000000000000 314 000000000000000000000000FF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7F 315 E07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000186310420000 316 186318630000000018630000000018630000FF7FFF7FFF7F0000186310420000 317 186318630000000018630000000018630000FF7FFF7FFF7F0000FF7FE07FFF7F 318 E07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000FF7FE07FFF7FE07F 319 00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000186300000000 320 000018631863186318631863186318630000FF7FFF7FFF7F0000186300000000 321 000018631863186318631863186318630000FF7FFF7FFF7F0000000000000000 322 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7F 323 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000186318631863 324 000018630000186300000000000018630000FF7FFF7FFF7F0000186318631863 325 000018630000186300000000000018630000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 326 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000 327 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000186318631863 328 186318631863186318631863186318630000FF7FFF7FFF7F0000186318631863 329 186318631863186318631863186318630000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 330 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 331 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000010001F001F00 332 1F001F001F001F001F001F001F0010000000FF7FFF7FFF7F000010001F001F00 333 1F001F001F001F001F001F001F0010000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 334 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 335 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000 336 00000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F000000000000 337 00000000000000000000000000000000FF7FFF7F000000000000000000000000 338 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 339 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 340 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 341 0000000000000000FF7FFF7FFF7FFF7FFF7F00000000E07F1863E07F1863E07F 342 1863E07F1863E07F00000000000000000000FF7FFF7FFF7F0000000000000000 343 000000000000000000000000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 344 E07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F00000000E07F1863E07F1863E07F 345 1863E07F1863E07F000000000000000000000000E07F0000E07F1863E07F1863 346 E07F1863E07F1863E07F0000FF7FFF7F0000FF7FFF7FFF7F0000186318631863 347 186318631863186318630000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 348 FF7FE07FFF7F0000000000000000000000000000E07F0000E07F1863E07F1863 349 E07F1863E07F1863E07F00001863186300000000FF7FE07F0000E07F1863E07F 350 1863E07F1863E07F1863E07F0000FF7F0000FF7FFF7FFF7F0000186300000000 351 000000001863186318630000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 352 E07FFF7FE07F0000186318631863186300000000FF7FE07F0000E07F1863E07F 353 1863E07F1863E07F1863E07F0000186300000000E07FFF7F0000000000000000 354 0000000000000000000000000000FF7F0000FF7FFF7FFF7F0000186318631863 355 186318631863186318630000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 356 FF7FE07FFF7F0000000000000000186300000000E07FFF7F0000000000000000 357 0000000000000000000000000000186300000000FF7FE07F0000FF7F0000FF7F 358 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300000000 359 000000000000000018630000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 360 E07FFF7FE07F0000186318631863186300000000FF7FE07F0000186300001863 361 0000186318631863186318631863186300000000E07FFF7F0000FF7F0000FF7F 362 0000FF7F00000000000000000000FF7F0000FF7FFF7FFF7F0000186318631863 363 186318631863186318630000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 364 FF7FE07FFF7F0000000000000000186300000000E07FFF7F0000186300001863 365 0000186300000000000000000000186300000000FF7FE07F0000FF7F0000FF7F 366 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300000000 367 000000000000000018630000FF7FFF7FFF7F0000000000000000000000000000 368 0000000000001863186318631863186300000000FF7FE07F0000186300001863 369 000018631863186318631863186318630000FF7F0000FF7F0000FF7F0000FF7F 370 0000FF7F00000000000000000000FF7F0000FF7FFF7FFF7F0000186318631863 371 186318631863186318630000FF7FFF7FFF7FFF7F0000FF7F0000186300001863 372 000018630000000000000000000018630000FF7F0000FF7F0000186300001863 373 000018630000000000000000000018630000FF7F104200000000FF7F0000FF7F 374 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300000000 375 000018630000000018630000FF7FFF7FFF7FFF7F104200000000186300001863 376 000018631863186318631863186318630000FF7F104200000000186300001863 377 000018631863186318631863186318630000FF7FFF7FFF7F0000FF7F0000FF7F 378 0000FF7F00000000FF7F00000000FF7F0000FF7FFF7FFF7F0000186318631863 379 186318631863186318630000FF7FFF7FFF7FFF7FFF7FFF7F0000186300001863 380 000018630000000018630000000018630000FF7FFF7FFF7F0000186300001863 381 000018630000000018630000000018630000FF7FFF7FFF7F0000FF7F0000FF7F 382 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300000000 383 186300000000000018630000FF7FFF7FFF7FFF7FFF7FFF7F0000186300001863 384 000018631863186318631863186318630000FF7FFF7FFF7F0000186300001863 385 000018631863186318631863186318630000FF7FFF7FFF7F0000FF7F0000FF7F 386 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186318631863 387 186318631863186318630000FF7FFF7FFF7FFF7FFF7FFF7F0000186300001863 388 000018631863186318631863186318630000FF7FFF7FFF7F0000186300001863 389 000018631863186318631863186318630000FF7FFF7FFF7F0000FF7F0000FF7F 390 000000000000000000000000000000000000FF7FFF7FFF7F0000000000000000 391 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000186300001863 392 000000000000000000000000000000000000FF7FFF7FFF7F0000186300001863 393 000000000000000000000000000000000000FF7FFF7FFF7F0000FF7F00000000 394 0000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 395 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000186300000000 396 0000000000000000000000000000FF7FFF7FFF7FFF7FFF7F0000186300000000 397 0000000000000000000000000000FF7FFF7FFF7FFF7FFF7F0000000000000000 398 00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 399 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 400 00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 401 00000000000000000000FF7FFF7FFF7FFF7FFF7F000000000000000000000000 402 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 403 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 404 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 405 0000000000000000FF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 406 E07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F00000000E07F1863E07F1863E07F 407 1863E07F1863E07F00000000000000000000FF7FFF7FFF7F0000000000000000 408 000000000000000000000000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 409 E07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 410 FF7FE07FFF7F0000000000000000000000000000E07F0000E07F1863E07F1863 411 E07F1863E07F1863E07F0000186318630000FF7FFF7FFF7F0000FF7FFF7FFF7F 412 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 413 FF7FE07FFF7F0000000000000000000000000000E07FFF7FE07FFF7FE07FFF7F 414 E07FFF7FE07F0000186318631863186300000000FF7FE07F0000E07F1863E07F 415 1863E07F1863E07F1863E07F000018630000FF7FFF7FFF7F0000FF7F00000000 416 00000000FF7FFF7FFF7F0000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 417 E07FFF7FE07F0000FF7FFF7FFF7FFF7F00000000FF7FE07FFF7FE07FFF7FE07F 418 FF7FE07FFF7F0000000000000000186300000000E07FFF7F0000000000000000 419 000000000000000000000000000018630000FF7FFF7FFF7F0000FF7FFF7FFF7F 420 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 421 FF7FE07FFF7F0000000000000000FF7F00000000E07FFF7FE07FFF7FE07FFF7F 422 E07FFF7FE07F0000186318631863186300000000FF7FE07F0000186300001863 423 000018631863186318631863186318630000FF7FFF7FFF7F0000FF7F00000000 424 0000000000000000FF7F0000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 425 E07FFF7FE07F0000FF7FFF7FFF7FFF7F00000000FF7FE07FFF7FE07FFF7FE07F 426 FF7FE07FFF7F0000000000000000186300000000E07FFF7F0000186300001863 427 000018630000000000000000000018630000FF7FFF7FFF7F0000FF7FFF7FFF7F 428 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 429 FF7FE07FFF7F0000000000000000FF7F00000000000000000000000000000000 430 0000000000001863186318631863186300000000FF7FE07F0000186300001863 431 000018631863186318631863186318630000FF7FFF7FFF7F0000FF7F00000000 432 0000000000000000FF7F0000FF7FFF7FFF7F0000000000000000000000000000 433 000000000000FF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F0000186300001863 434 000018630000000000000000000018630000FF7F0000FF7F0000186300001863 435 000018630000000000000000000018630000FF7FFF7FFF7F0000FF7FFF7FFF7F 436 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000FF7F0000FF7F0000FF7F 437 0000FF7F00000000000000000000FF7F0000FF7F104200000000186300001863 438 000018631863186318631863186318630000FF7F104200000000186300001863 439 000018631863186318631863186318630000FF7FFF7FFF7F0000FF7F00000000 440 0000FF7F00000000FF7F0000FF7FFF7FFF7FFF7F104200000000FF7F0000FF7F 441 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300001863 442 000018630000000018630000000000000000FF7FFF7FFF7F0000186300001863 443 000018630000000018630000000000000000FF7FFF7FFF7F0000FF7FFF7FFF7F 444 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 445 0000FF7F00000000FF7F00000000FF7F0000FF7FFF7FFF7F0000186300001863 446 00001863186318631863000018630000FF7FFF7FFF7FFF7F0000186300001863 447 00001863186318631863000018630000FF7FFF7FFF7FFF7F0000FF7F00000000 448 FF7F000000000000FF7F0000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 449 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300001863 450 0000186318631863186300000000FF7FFF7FFF7FFF7FFF7F0000186300001863 451 0000186318631863186300000000FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F 452 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 453 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300001863 454 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000186300001863 455 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 456 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 457 000000000000000000000000000000000000FF7FFF7FFF7F0000186300000000 458 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000186300000000 459 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 460 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7F00000000 461 0000000000000000000000000000FF7FFF7FFF7FFF7FFF7F0000000000000000 462 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 463 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 464 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 465 00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 466 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 467 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 468 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 469 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 470 000000000000000000000000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 471 E07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F00000000E07F1863E07F1863E07F 472 1863E07F1863E07F00000000000000000000FF7FFF7FFF7F0000000000000000 473 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F 474 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 475 FF7FE07FFF7F0000000000000000000000000000E07F0000E07F1863E07F1863 476 E07F1863E07F1863E07F0000FF7FFF7F0000FF7FFF7FFF7F0000186318631863 477 186318631863186318630000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F00000000 478 00000000FF7FFF7FFF7F0000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 479 E07FFF7FE07F0000FF7FFF7FFF7FFF7F00000000FF7FE07F0000E07F1863E07F 480 1863E07F1863E07F1863E07F0000FF7F0000FF7FFF7FFF7F0000186300000000 481 000000001863186318630000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F 482 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 483 FF7FE07FFF7F0000000000000000FF7F00000000E07FFF7F0000000000000000 484 0000000000000000000000000000FF7F0000FF7FFF7FFF7F0000186318631863 485 186318631863186318630000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F00000000 486 0000000000000000FF7F0000FF7FFF7FFF7F0000E07FFF7FE07FFF7FE07FFF7F 487 E07FFF7FE07F0000FF7FFF7FFF7FFF7F00000000FF7FE07F0000FF7F0000FF7F 488 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300000000 489 000000000000000018630000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F 490 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7FE07F 491 FF7FE07FFF7F0000000000000000FF7F00000000E07FFF7F0000FF7F0000FF7F 492 0000FF7F00000000000000000000FF7F0000FF7FFF7FFF7F0000186318631863 493 186318631863186318630000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F00000000 494 0000000000000000FF7F0000FF7FFF7FFF7F0000000000000000000000000000 495 000000000000FF7FFF7FFF7FFF7FFF7F00000000FF7FE07F0000FF7F0000FF7F 496 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300000000 497 000000000000000018630000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F 498 FF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F0000FF7F0000FF7F0000FF7F 499 0000FF7F00000000000000000000FF7F0000FF7F0000FF7F0000FF7F0000FF7F 500 0000FF7F00000000000000000000FF7F0000FF7FFF7FFF7F0000186318631863 501 186318631863186318630000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F00000000 502 0000FF7FFF7FFF7FFF7F0000FF7FFF7FFF7FFF7F104200000000FF7F0000FF7F 503 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7F104200000000FF7F0000FF7F 504 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F0000186300000000 505 000018631863186318630000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F 506 FF7FFF7F0000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 507 0000FF7F00000000FF7F0000000000000000FF7FFF7FFF7F0000FF7F0000FF7F 508 0000FF7F00000000FF7F0000000000000000FF7FFF7FFF7F0000186318631863 509 186318630000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F00000000 510 FF7FFF7F0000FF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 511 0000FF7FFF7FFF7FFF7F0000FF7F0000FF7FFF7FFF7FFF7F0000FF7F0000FF7F 512 0000FF7FFF7FFF7FFF7F0000FF7F0000FF7FFF7FFF7FFF7F0000186300000000 513 18631863000018630000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F 514 FF7FFF7F00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 515 0000FF7FFF7FFF7FFF7F00000000FF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 516 0000FF7FFF7FFF7FFF7F00000000FF7FFF7FFF7FFF7FFF7F0000186318631863 517 1863186300000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 518 000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 519 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7F0000FF7F 520 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 521 000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 522 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7F00000000 523 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7F00000000 524 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 525 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 526 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 527 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 528 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 529 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000 530 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000 531 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 532 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 533 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000 534 000000000000F75E0000FF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000 535 000000000000F75E0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 536 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 537 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FE07FE07F 538 E07FE07F00000000F75E0000FF7FFF7FFF7FFF7FFF7FFF7F0000E07FE07FE07F 539 E07FE07F00000000F75E0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 540 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 541 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07F00000000 542 0000E07F000000420000F75E0000FF7FFF7FFF7FFF7FFF7F0000E07F00000000 543 0000E07F000000420000F75E0000FF7FFF7FFF7FFF7FFF7F0000000000000000 544 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 545 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FE07FE07F 546 E07FE07F00000042004200000000FF7FFF7FFF7F000000000000000000000000 547 0000E07F00000042004200000000FF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7F 548 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7F00000000000000000000 549 00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FE07FE07F 550 E07FE07F0000004200420000FF7FFF7FFF7FFF7F0000E07FE07FE07FE07FE07F 551 000000000000004200420000FF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07F 552 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7F00000000E07FF75EE07FF75E 553 E07FF75EE07FF75EE07F0000FF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 554 000000000000004200420000FF7FFF7FFF7FFF7F0000E07F000000000000E07F 555 0000F75E0000004200420000FF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7F 556 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7F0000FF7F0000E07FF75EE07F 557 F75EE07FF75EE07FF75EE07F0000FF7FFF7FFF7FFF7FFF7F0000E07FE07FE07F 558 E07FE07F0000004200420000FF7FFF7FFF7FFF7F0000E07FE07FE07FE07FE07F 559 0000F75E0000004200420000FF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07F 560 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7F0000E07FFF7F0000E07FF75E 561 E07FF75EE07FF75EE07FF75EE07F0000FF7FFF7FFF7FFF7F0000E07F00000000 562 0000E07F0000004200420000FF7FFF7FFF7FFF7F0000E07FE07FE07FE07FE07F 563 000000000000004200420000FF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7F 564 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7F0000FF7FE07FFF7F00000000 565 00000000000000000000000000000000FF7FFF7FFF7FFF7F0000E07FE07FE07F 566 E07FE07F0000004200420000FF7FFF7FFF7FFF7F000000000000000000000000 567 0000EF3D0000004200420000FF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07F 568 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7FE07F 569 FF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FE07FE07F 570 E07FE07F0000004200420000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7FFF7FFF7F 571 EF3DEF3D0000004200420000FF7FFF7FFF7FFF7FFF7F00000000000000000000 572 00000000000000000000FF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07FFF7F 573 E07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000 574 000000000000000000420000FF7FFF7FFF7FFF7FFF7F00000000000000000000 575 000000000000000000420000FF7FFF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7F 576 E07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7FE07F 577 FF7F000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F0000EF3DEF3DEF3DEF3D 578 EF3DEF3DEF3D000000000000FF7FFF7FFF7FFF7FFF7F0000EF3DEF3DEF3DEF3D 579 EF3DEF3DEF3D000000000000FF7FFF7FFF7FFF7FFF7FFF7FEF3D000000000000 580 0000EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7F 581 0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000E07F0042 582 E07F0042E07F004200000000FF7FFF7FFF7FFF7FFF7FFF7F000000000042E07F 583 0042E07F0042E07F00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 584 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3D0000000000000000 585 EF3DFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000 586 0042E07F0042E07F004200000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000 587 E07F0042E07F0042E07F00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 588 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 589 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3D 590 0000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FEF3D 591 0000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 592 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 593 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F424D3E000000000000003E000000 16 0000000000003600000028000000400000009000000001002000000000000090 17 0000000000000000000000000000000000000000000000000000000000000000 18 0000000000000000000000000000000000000000000000000000000000000000 19 0000000000000000000000000000000000000000000000000000000000000000 20 0000000000000000000000000000000000000000000000000000000000000000 21 0000000000000000000000000000000000000000000000000000000000000000 22 0000000000000000000000000000000000000000000000000000000000000000 23 0000000000000000000000000000000000000000000000000000000000000000 24 0000000000000000000000000000000000000000000000000000000000000000 25 0000000000000000000000000000000000000000000000000000000000000000 26 0000000000000000000000000000000000000000000000000000000000000000 27 0000000000000000000000000000000000000000000000000000000000000000 28 0000000000000000000000000000000000000000000000000000000000000000 29 0000000000000000000000000000000000000000000000000000000000000000 30 0000000000000000000000000000000000000000000000000000000000000000 31 0000000000000000000000000000000000000000000000000000000000000000 32 0000000000000000000000000000000000000000000000000000000000000000 33 0000000000000000000000000000000000000000000000000000000000000000 34 0000000000000000000000000000000000000000000000000000000000000000 35 0000000000000000000000000000000000000000000000000000000000000000 36 0000000000000000000000000000000000000000000000000000000000000000 37 0000000000000000000000000000000000000000000000000000000000000000 38 0000000000000000000000000000000000000000000000000000000000000000 39 0000000000000000000000000000000000000000000000000000000000000000 40 0000000000000000000000000000000000000000000000000000000000000000 41 0000000000000000000000000000000000000000000000000000000000000000 42 0000000000000000000000000000000000000000000000000000000000000000 43 0000000000000000000000000000000000000000000000000000000000000000 44 0000000000000000000000000000000000000000000000000000000000000000 45 0000000000000000000000000000000000000000000000000000000000000000 46 0000000000000000000000000000000000000000000000000000000000000000 47 0000000000000000000000000000000000000000000000000000000000000000 48 0000000000000000000000000000000000000000000000000000000000000000 49 0000000000000000000000000000000000000000000000000000000000000000 50 0000000000000000000000000000000000000000000000000000000000000000 51 0000000000000000000000000000000000000000000000000000000000000000 52 0000000000000000000000000000000000000000000000000000000000000000 53 0000000000000000000000000000000000000000000000000000000000000000 54 0000000000000000000000000000000000000000000000000000000000000000 55 0000000000000000000000000000000000000000000000000000000000000000 56 0000000000000000000000000000000000000000000000000000000000000000 57 0000000000000000000000000000000000000000000000000000000000000000 58 0000000000000000000000000000000000000000000000000000000000000000 59 0000000000000000000000000000000000000000000000000000000000000000 60 0000000000000000000000000000000000000000000000000000000000000000 61 0000000000000000000000000000000000000000000000000000000000000000 62 0000000000000000000000000000000000000000000000000000000000000000 63 0000000000000000000000000000000000000000000000000000000000000000 64 0000000000000000000000000000000000000000000000000000000000000000 65 0000000000000000000000000000000000000000000000000000000000000000 66 0000000000000000000000000000000000000000000000000000000000000000 67 0000000000000000000000000000000000000000000000000000000000000000 68 0000000000000000000000000000000000000000000000000000000000000000 69 0000000000000000000000000000000000000000000000000000000000000000 70 0000000000000000000000000000000000000000000000000000000000000000 71 0000000000000000000000000000000000000000000000000000000000000000 72 0000000000000000000000000000000000000000000000000000000000000000 73 0000000000000000000000000000000000000000000000000000000000000000 74 0000000000000000000000000000000000000000000000000000000000000000 75 0000000000000000000000000000000000000000000000000000000000000000 76 0000000000000000000000000000000000000000000000000000000000000000 77 0000000000000000000000000000000000000000000000000000000000000000 78 0000000000000000000000000000000000000000000000000000000000000000 79 0000000000000000000000000000000000000000000000000000000000000000 80 0000000000000000000000000000000000000000000000000000000000000000 81 0000000000000000000000000000000000000000000000000000000000000000 82 0000000000000000000000000000000000000000000000000000000000000000 83 0000000000000000000000000000000000000000000000000000000000000000 84 0000000000000000000000000000000000000000000000000000000000000000 85 0000000000000000000000000000000000000000000000000000000000000000 86 0000000000000000000000000000000000000000000000000000000000000000 87 0000000000000000000000000000000000000000000000000000000000000000 88 0000000000000000000000000000000000000000000000000000000000000000 89 0000000000000000000000000000000000000000000000000000000000000000 90 0000000000000000000000000000000000000000000000000000000000000000 91 0000000000000000000000000000000000000000000000000000000000000000 92 0000000000000000000000000000000000000000000000000000000000000000 93 0000000000000000000000000000000000000000000000000000000000000000 94 0000000000000000000000000000000000000000000000000000000000000000 95 0000000000000000000000000000000000000000000000000000000000000000 96 0000000000000000000000000000000000000000000000000000000000000000 97 0000000000000000000000000000000000000000000000000000000000000000 98 0000000000000000000000000000000000000000000000000000000000000000 99 0000000000000000000000000000000000000000000000000000000000000000 100 0000000000000000000000000000000000000000000000000000000000000000 101 0000000000000000000000000000000000000000000000000000000000000000 102 0000000000000000000000000000000000000000000000000000000000000000 103 0000000000000000000000000000000000000000000000000000000000000000 104 0000000000000000000000000000000000000000000000000000000000000000 105 0000000000000000000000000000000000000000000000000000000000000000 106 0000000000000000000000000000000000000000000000000000000000000000 107 0000000000000000000000000000000000000000000000000000000000000000 108 0000000000000000000000000000000000000000000000000000000000000000 109 0000000000000000000000000000000000000000000000000000000000000000 110 0000000000000000000000000000000000000000000000000000000000000000 111 0000000000000000000000000000000000000000000000000000000000000000 112 0000000000000000000000000000000000000000000000000000000000000000 113 0000000000000000000000000000000000000000000000000000000000000000 114 0000000000000000000000000000000000000000000000000000000000000000 115 0000000000000000000000000000000000000000000000000000000000000000 116 0000000000000000000000000000000000000000000000000000000000000000 117 0000000000000000000000000000000000000000000000000000000000000000 118 0000000000000000000000000000000000000000000000000000000000000000 119 0000000000000000000000000000000000000000000000000000000000000000 120 0000000000000000000000000000000000000000000000000000000000000000 121 0000000000000000000000000000000000000000000000000000000000000000 122 0000000000000000000000000000000000000000000000000000000000000000 123 0000000000000000000000000000000000000000000000000000000000000000 124 0000000000000000000000000000000000000000000000000000000000000000 125 0000000000000000000000000000000000000000000000000000000000000000 126 0000000000000000000000000000000000000000000000000000000000000000 127 0000000000000000000000000000000000000000000000000000000000000000 128 0000000000000000000000000000000000000000000000000000000000000000 129 0000000000000000000000000000000000000000000000000000000000000000 130 0000000000000000000000000000000000000000000000000000000000000000 131 0000000000000000000000000000000000000000000000000000000000000000 132 0000000000000000000000000000000000000000000000000000000000000000 133 0000000000000000000000000000000000000000000000000000000000000000 134 0000000000000000000000000000000000000000000000000000000000000000 135 0000000000000000000000000000000000000000000000000000000000000000 136 0000000000000000000000000000000000000000000000000000000000000000 137 0000000000000000000000000000000000000000000000000000000000000000 138 0000000000000000000000000000000000000000000000000000000000000000 139 0000000000000000000000000000000000000000000000000000000000000000 140 0000000000000000000000000000000000000000000000000000000000000000 141 0000000000000000000000000000000000000000000000000000000000000000 142 0000000000000000000000000000000000000000000000000000000000000000 143 0000000000000000000000000000000000000000000000000000000000000000 144 0000000000000000000000000000000000000000000000000000000000000000 145 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 146 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 147 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 148 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 149 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 150 0000000000000000000000000000000000000000000000000000000000000000 151 0000000000000000000000000000000000000000000000000000000000000000 152 0000000000000000000000000000000000000000000000000000000000000000 153 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 154 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 155 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 156 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 157 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 158 0000000000000000000000000000000000000000000000000000000000000000 159 0000000000000000000000000000000000000000000000000000000000000000 160 0000000000000000000000000000000000000000000000000000000000000000 161 000000000000000000000000000000000000FFFFFF0000000000000000000000 162 0000000000000000000000000000000000000000000000000000000000000000 163 0000000000000000000000000000FFFFFF00FFFFFF0000000000000000000000 164 000000000000000000000000FF000000FF000000FF000000FF00000000000000 165 0000000000000000000000000000FFFFFF000000000000000000000000000000 166 0000000000000000000000000000000000000000000000000000000000000000 167 0000000000000000000000000000000000000000000000000000000000000000 168 0000000000000000000000000000000000000000000000000000000000000000 169 000000000000000000000000000000000000FFFFFF0084848400C6C6C600C6C6 170 C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 171 C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF0084848400C6C6C600C6C6 172 C6000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 173 FF00C6C6C600C6C6C60000000000FFFFFF000000000000000000000000000000 174 0000000000000000000000000000000000000000000000000000000000000000 175 0000000000000000000000000000000000000000000000000000000000000000 176 0000000000000000000000000000000000000000000000000000000000000000 177 000000000000000000000000000000000000FFFFFF0084848400C6C6C600FFFF 178 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 179 FF00FFFFFF00C6C6C60000000000FFFFFF00FFFFFF0084848400C6C6C6000000 180 FF000000FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 181 FF000000FF00C6C6C60000000000FFFFFF000000000000000000000000000000 182 0000000000000000000000000000000000000000000000000000000000000000 183 0000000000000000000000000000000000000000000000000000000000000000 184 0000000000000000000000000000000000000000000000000000000000000000 185 000000000000000000000000000000000000FFFFFF0084848400C6C6C600FFFF 186 FF00C6C6C60000008400FFFFFF00FFFFFF00FFFFFF00C6C6C600FFFFFF00FFFF 187 FF00FFFFFF00C6C6C60000000000FFFFFF00FFFFFF00848484000000FF000000 188 FF000000FF000000FF00FFFFFF00FFFFFF00FFFFFF00C6C6C600FFFFFF00FFFF 189 FF000000FF000000FF0000000000FFFFFF000000000000000000000000000000 190 0000000000000000000000000000000000000000000000000000000000000000 191 0000000000000000000000000000000000000000000000000000000000000000 192 0000000000000000000000000000000000000000000000000000000000000000 193 000000000000000000000000000000000000FFFFFF0084848400C6C6C600FFFF 194 FF00000084000000FF0000008400FFFFFF00FFFFFF00FF000000FF000000C6C6 195 C600FFFFFF00C6C6C60000000000FFFFFF00FFFFFF00848484000000FF000000 196 FF00FFFFFF000000FF000000FF00FFFFFF00FFFFFF00FF000000FF000000C6C6 197 C6000000FF000000FF0000000000FFFFFF000000000000000000000000000000 198 0000000000000000000000000000000000000000000000000000000000000000 199 0000000000000000000000000000000000000000000000000000000000000000 200 0000000000000000000000000000000000000000000000000000000000000000 201 000000000000000000000000000000000000FFFFFF0084848400C6C6C600FFFF 202 FF000000FF0000FFFF0000008400FFFFFF00FFFFFF00FFFF0000FF000000FF00 203 0000FFFFFF00C6C6C60000000000FFFFFF00FFFFFF000000FF000000FF00FFFF 204 FF000000FF00FFFFFF000000FF000000FF00FFFFFF00FFFF0000FF000000FF00 205 0000FFFFFF000000FF000000FF00FFFFFF000000000000000000000000000000 206 0000000000000000000000000000000000000000000000000000000000000000 207 0000000000000000000000000000000000000000000000000000000000000000 208 0000000000000000000000000000000000000000000000000000000000000000 209 000000000000000000000000000000000000FFFFFF0084848400C6C6C600FFFF 210 FF00FFFFFF000000FF0000008400FFFFFF00FFFFFF00FF000000FFFFFF00FFFF 211 FF00FFFFFF00C6C6C60000000000FFFFFF00FFFFFF000000FF000000FF00FFFF 212 FF00FFFFFF000000FF00FFFFFF000000FF000000FF00FFFFFF00FFFFFF00FFFF 213 FF00FFFFFF000000FF000000FF00FFFFFF000000000000000000000000000000 214 0000000000000000000000000000000000000000000000000000000000000000 215 0000000000000000000000000000000000000000000000000000000000000000 216 0000000000000000000000000000000000000000000000000000000000000000 217 000000000000000000000000000000000000FFFFFF0084848400C6C6C600FFFF 218 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 219 FF00FFFFFF00C6C6C60000000000FFFFFF00FFFFFF000000FF000000FF00FFFF 220 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FF000000FF00FFFFFF00FFFF 221 FF00FFFFFF000000FF000000FF00FFFFFF000000000000000000000000000000 222 0000000000000000000000000000000000000000000000000000000000000000 223 0000000000000000000000000000000000000000000000000000000000000000 224 0000000000000000000000000000000000000000000000000000000000000000 225 000000000000000000000000000000000000FFFFFF0084848400C6C6C600C6C6 226 C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 227 C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00848484000000FF000000 228 FF00C6C6C600C6C6C600C6C6C600C6C6C600FFFFFF000000FF000000FF00C6C6 229 C6000000FF000000FF0000000000FFFFFF000000000000000000000000000000 230 0000000000000000000000000000000000000000000000000000000000000000 231 0000000000000000000000000000000000000000000000000000000000000000 232 0000000000000000000000000000000000000000000000000000000000000000 233 000000000000000000000000000000000000FFFFFF0084848400C6C6C6008400 234 0000840000008400000084000000840000008400000000000000000000000000 235 000000000000C6C6C60000000000FFFFFF00FFFFFF00848484000000FF000000 236 FF008400000084000000840000008400000084000000FFFFFF000000FF000000 237 FF000000FF000000FF0000000000FFFFFF000000000000000000000000000000 238 0000000000000000000000000000000000000000000000000000000000000000 239 0000000000000000000000000000000000000000000000000000000000000000 240 0000000000000000000000000000000000000000000000000000000000000000 241 000000000000000000000000000000000000FFFFFF0084848400C6C6C6008400 242 00008400000084000000840000008400000084000000FFFFFF0000000000FFFF 243 FF0000000000C6C6C60000000000FFFFFF00FFFFFF0084848400C6C6C6000000 244 FF000000FF0084000000840000008400000084000000FFFFFF00FFFFFF000000 245 FF000000FF00C6C6C60000000000FFFFFF000000000000000000000000000000 246 0000000000000000000000000000000000000000000000000000000000000000 247 0000000000000000000000000000000000000000000000000000000000000000 248 0000000000000000000000000000000000000000000000000000000000000000 249 000000000000000000000000000000000000FFFFFF0084848400C6C6C600C6C6 250 C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 251 C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF0084848400C6C6C600C6C6 252 C6000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 253 FF00C6C6C600C6C6C60000000000FFFFFF000000000000000000000000000000 254 0000000000000000000000000000000000000000000000000000000000000000 255 0000000000000000000000000000000000000000000000000000000000000000 256 0000000000000000000000000000000000000000000000000000000000000000 257 000000000000000000000000000000000000FFFFFF0084848400848484008484 258 8400848484008484840084848400848484008484840084848400848484008484 259 8400848484008484840000000000FFFFFF00FFFFFF0084848400848484008484 260 840084848400848484000000FF000000FF000000FF000000FF00848484008484 261 8400848484008484840000000000FFFFFF000000000000000000000000000000 262 0000000000000000000000000000000000000000000000000000000000000000 263 0000000000000000000000000000000000000000000000000000000000000000 264 0000000000000000000000000000000000000000000000000000000000000000 265 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 266 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 267 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 268 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 269 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 270 0000000000000000000000000000000000000000000000000000000000000000 271 0000000000000000000000000000000000000000000000000000000000000000 272 0000000000000000000000000000000000000000000000000000000000000000 273 000000000000000000000000000000000000FFFFFF0000000000000000000000 274 000000000000000000000000000000000000000000000000000000000000FFFF 275 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 276 000000000000000000000000000000000000000000000000000000000000FFFF 277 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 278 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 279 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 280 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 281 0000000000000000000000000000000000000000000000FFFF00FFFFFF0000FF 282 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 283 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6 284 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 285 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008484840084848400C6C6 286 C600FFFFFF008484840084848400000000000084840000FFFF0000FFFF0000FF 287 FF0000FFFF0000FFFF000084840000000000FFFFFF008484840084848400C6C6 288 C600FFFFFF0084848400848484000000000000FFFF0000FFFF0000FFFF0000FF 289 FF0000FFFF0000FFFF0000FFFF000000000000000000FFFFFF0000FFFF00FFFF 290 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFF 291 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF000000000000FF 292 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 293 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008484 294 84008484840084848400C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 295 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF008484 296 84008484840084848400C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 297 C600C6C6C600C6C6C600C6C6C600000000000000000000FFFF00FFFFFF0000FF 298 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000000000 299 00000000000000000000000000000000000000000000FFFFFF0000FFFF000000 300 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 301 C60000FFFF00000000000000000000000000FFFFFF00FFFFFF00848484008484 302 8400C6C6C600C6C6C600FFFFFF0000000000C6C6C6008484840000000000C6C6 303 C600C6C6C60000000000C6C6C60000000000FFFFFF00FFFFFF00848484008484 304 8400C6C6C600C6C6C600FFFFFF0000000000C6C6C6008484840000000000C6C6 305 C600C6C6C60000000000C6C6C6000000000000000000FFFFFF0000FFFF00FFFF 306 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000008484 307 8400848484008484840084848400000000000000000000FFFF00FFFFFF000000 308 0000000000000000000000000000000000000000000000000000000000000000 309 000000000000000000008484840000000000FFFFFF00FFFFFF0084848400C6C6 310 C600C6C6C60084848400C6C6C60000000000C6C6C60000000000000000000000 311 0000C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF0084848400C6C6 312 C600C6C6C60084848400C6C6C60000000000C6C6C60000000000000000000000 313 0000C6C6C600C6C6C600C6C6C600000000000000000000FFFF00FFFFFF0000FF 314 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000008484 315 84008484840084848400848484000000000000000000FFFFFF0000FFFF000000 316 0000848484008484840084848400848484008484840084848400848484008484 317 840084848400848484008484840000000000FFFFFF0084848400FFFFFF00C6C6 318 C600FFFFFF00C6C6C6008484840000000000C6C6C600C6C6C600C6C6C6000000 319 0000C6C6C60000000000C6C6C60000000000FFFFFF0084848400FFFFFF00C6C6 320 C600FFFFFF00C6C6C6008484840000000000C6C6C600C6C6C600C6C6C6000000 321 0000C6C6C60000000000C6C6C6000000000000000000FFFFFF0000FFFF00FFFF 322 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000008484 323 8400000000000000000084848400000000000000000000FFFF00FFFFFF000000 324 0000848484008484840000000000848484008484840000000000848484000000 325 000000000000000000008484840000000000FFFFFF0084848400FFFFFF008484 326 8400C6C6C600C6C6C600C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 327 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF0084848400FFFFFF008484 328 8400C6C6C600C6C6C600C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 329 C600C6C6C600C6C6C600C6C6C600000000000000000000000000000000000000 330 0000000000000000000000000000000000000000000000000000848484008484 331 84008484840084848400848484000000000000000000FFFFFF0000FFFF000000 332 0000848484000000000000000000000000008484840084848400848484008484 333 840084848400848484008484840000000000FFFFFF0084848400C6C6C600FFFF 334 FF00C6C6C600C6C6C600FFFFFF000000000084000000FF000000FF000000FF00 335 0000FF000000FF0000008400000000000000FFFFFF0084848400C6C6C600FFFF 336 FF00C6C6C600C6C6C600FFFFFF0000000000FF000000FF000000FF000000FF00 337 0000FF000000FF000000FF00000000000000FFFFFF0000000000FFFFFF000000 338 0000848484008484840084848400848484008484840084848400848484000000 339 000000000000848484008484840000000000FFFFFF0000000000FFFFFF000000 340 0000848484008484840084848400000000008484840000000000000000000000 341 000000000000848484008484840000000000FFFFFF00FFFFFF0084848400FFFF 342 FF00FFFFFF0084848400C6C6C600C6C6C6000000000000000000000000000000 343 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF0084848400FFFF 344 FF00FFFFFF0084848400C6C6C600000000000000000000000000000000000000 345 000000000000000000000000000000000000FFFFFF0084848400000000000000 346 0000848484008484840084848400848484008484840084848400848484008484 347 840084848400848484008484840000000000FFFFFF0084848400000000000000 348 0000848484008484840084848400848484008484840084848400848484008484 349 840084848400848484008484840000000000FFFFFF00FFFFFF00848484008484 350 8400FFFFFF00FFFFFF00C6C6C60084848400C6C6C600C6C6C600C6C6C6008484 351 840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 352 8400FFFFFF00FFFFFF00C6C6C60084848400C6C6C600C6C6C600C6C6C6008484 353 840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 354 0000848484008484840000000000848484008484840000000000000000008484 355 840000000000000000008484840000000000FFFFFF00FFFFFF00FFFFFF000000 356 0000848484008484840000000000848484008484840000000000000000008484 357 8400000000000000000084848400000000008484840084848400848484008484 358 840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 359 8400848484008484840084848400FFFFFF008484840084848400848484008484 360 840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 361 8400848484008484840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 362 0000848484000000000000000000000000008484840084848400848484008484 363 840084848400848484008484840000000000FFFFFF00FFFFFF00FFFFFF000000 364 0000848484000000000000000000000000008484840084848400848484008484 365 84008484840084848400848484000000000084848400FFFFFF00C6C6C600C6C6 366 C60084848400848484008484840084848400848484008484840084848400C6C6 367 C600C6C6C600C6C6C60084848400FFFFFF0084848400FFFFFF00C6C6C600C6C6 368 C60084848400848484008484840084848400848484008484840084848400C6C6 369 C600C6C6C600C6C6C60084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 370 0000848484008484840084848400000000008484840000000000848484000000 371 000000000000000000008484840000000000FFFFFF00FFFFFF00FFFFFF000000 372 0000848484008484840084848400000000008484840000000000848484000000 373 00000000000000000000848484000000000084848400C6C6C600FFFFFF00C6C6 374 C600C6C6C600C6C6C600848484008484840084848400C6C6C600FFFFFF00C6C6 375 C600C6C6C600C6C6C60084848400FFFFFF0084848400C6C6C600FFFFFF00C6C6 376 C600C6C6C600C6C6C600848484008484840084848400C6C6C600FFFFFF00C6C6 377 C600C6C6C600C6C6C60084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 378 0000848484008484840084848400848484008484840084848400848484008484 379 840084848400848484008484840000000000FFFFFF00FFFFFF00FFFFFF000000 380 0000848484008484840084848400848484008484840084848400848484008484 381 840084848400848484008484840000000000FFFFFF0084848400C6C6C600FFFF 382 FF00FFFFFF0084848400FFFFFF0084848400FFFFFF0084848400C6C6C600FFFF 383 FF00FFFFFF0084848400FFFFFF00FFFFFF00FFFFFF0084848400C6C6C600FFFF 384 FF00FFFFFF0084848400FFFFFF0084848400FFFFFF0084848400C6C6C600FFFF 385 FF00FFFFFF0084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 386 0000840000008400000084000000840000008400000084000000840000008400 387 000084000000840000008400000000000000FFFFFF00FFFFFF00FFFFFF000000 388 0000840000008400000084000000840000008400000084000000840000008400 389 000084000000840000008400000000000000FFFFFF00FFFFFF00848484008484 390 840084848400FFFFFF00FFFFFF0084848400FFFFFF00FFFFFF00848484008484 391 840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00848484008484 392 840084848400FFFFFF00FFFFFF0084848400FFFFFF00FFFFFF00848484008484 393 840084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 394 0000000000000000000000000000000000000000000000000000000000000000 395 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 396 0000000000000000000000000000000000000000000000000000000000000000 397 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 398 FF00FFFFFF00FFFFFF00848484008484840084848400FFFFFF00FFFFFF00FFFF 399 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 400 FF00FFFFFF00FFFFFF00848484008484840084848400FFFFFF00FFFFFF00FFFF 401 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 402 000000000000000000000000000000000000000000000000000000000000FFFF 403 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 404 000000000000000000000000000000000000000000000000000000000000FFFF 405 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 406 000000000000000000000000000000000000000000000000000000000000FFFF 407 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 408 000000000000000000000000000000000000000000000000000000000000FFFF 409 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 410 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 411 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6 412 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 413 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 414 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 415 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6 416 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 417 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 418 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFF 419 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF000000000000FF 420 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 421 FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 422 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFF 423 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF000000000000FF 424 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 425 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 426 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000000000 427 0000000000000000000000000000FFFFFF0000000000FFFFFF0000FFFF000000 428 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 429 C60000FFFF000000000000000000FFFFFF000000000000FFFF00FFFFFF0000FF 430 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000000000 431 00000000000000000000000000000000000000000000FFFFFF0000FFFF000000 432 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 433 C60000FFFF0000000000000000000000000000000000FFFFFF0000FFFF00FFFF 434 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000008484 435 8400848484008484840084848400000000000000000000FFFF00FFFFFF000000 436 0000000000000000000000000000000000000000000000000000000000000000 437 00000000000000000000848484000000000000000000FFFFFF0000FFFF00FFFF 438 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000C6C6 439 C600C6C6C600C6C6C600C6C6C600000000000000000000FFFF00FFFFFF000000 440 0000000000000000000000000000000000000000000000000000000000000000 441 00000000000000000000C6C6C600000000000000000000FFFF00FFFFFF0000FF 442 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000008484 443 84008484840084848400848484000000000000000000FFFFFF0000FFFF000000 444 0000848484008484840084848400848484008484840084848400848484008484 445 8400848484008484840084848400000000000000000000FFFF00FFFFFF0000FF 446 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000C6C6 447 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 448 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 449 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF00FFFF 450 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000008484 451 8400000000000000000084848400000000000000000000FFFF00FFFFFF000000 452 0000848484008484840000000000848484008484840000000000848484000000 453 00000000000000000000848484000000000000000000FFFFFF0000FFFF00FFFF 454 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000C6C6 455 C6000000000000000000C6C6C600000000000000000000FFFF00FFFFFF000000 456 0000C6C6C6008484840000000000C6C6C600C6C6C60000000000C6C6C6000000 457 00000000000000000000C6C6C600000000000000000000000000000000000000 458 0000000000000000000000000000000000000000000000000000848484008484 459 84008484840084848400848484000000000000000000FFFFFF0000FFFF000000 460 0000848484000000000000000000000000008484840084848400848484008484 461 8400848484008484840084848400000000000000000000000000000000000000 462 0000000000000000000000000000000000000000000000000000C6C6C600C6C6 463 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 464 0000C6C6C600000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 465 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF0000000000FFFFFF000000 466 0000848484008484840084848400848484008484840084848400848484000000 467 000000000000848484008484840000000000FFFFFF0000000000FFFFFF000000 468 0000848484008484840084848400000000008484840000000000000000000000 469 000000000000848484008484840000000000FFFFFF0000000000FFFFFF000000 470 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C6000000 471 000000000000C6C6C600C6C6C60000000000FFFFFF0000000000FFFFFF000000 472 0000C6C6C600C6C6C600C6C6C60000000000C6C6C60000000000000000000000 473 000000000000C6C6C600C6C6C60000000000FFFFFF0084848400000000000000 474 0000848484008484840084848400848484008484840084848400848484008484 475 840084848400848484008484840000000000FFFFFF0084848400000000000000 476 0000848484008484840084848400848484008484840084848400848484008484 477 840084848400848484008484840000000000FFFFFF0084848400000000000000 478 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 479 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF0084848400000000000000 480 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 481 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 482 0000848484008484840000000000848484008484840000000000000000008484 483 840000000000000000008484840000000000FFFFFF00FFFFFF00FFFFFF000000 484 0000848484008484840000000000848484008484840000000000000000008484 485 840000000000000000008484840000000000FFFFFF00FFFFFF00FFFFFF000000 486 0000C6C6C6008484840000000000C6C6C600C6C6C6000000000000000000C6C6 487 C6000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 488 0000C6C6C6008484840000000000C6C6C600C6C6C6000000000000000000C6C6 489 C6000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 490 0000848484000000000000000000000000008484840084848400848484008484 491 840084848400848484008484840000000000FFFFFF00FFFFFF00FFFFFF000000 492 0000848484000000000000000000000000008484840084848400848484008484 493 840084848400848484008484840000000000FFFFFF00FFFFFF00FFFFFF000000 494 0000C6C6C600000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 495 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 496 0000C6C6C600000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 497 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 498 0000848484008484840084848400000000008484840000000000848484000000 499 000000000000000000008484840000000000FFFFFF00FFFFFF00FFFFFF000000 500 0000848484008484840084848400000000008484840000000000848484000000 501 000000000000000000008484840000000000FFFFFF00FFFFFF00FFFFFF000000 502 0000C6C6C600C6C6C600C6C6C60000000000C6C6C60000000000C6C6C6000000 503 00000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 504 0000C6C6C600C6C6C600C6C6C60000000000C6C6C60000000000C6C6C6000000 505 00000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 506 0000848484008484840084848400848484008484840084848400848484008484 507 840084848400848484008484840000000000FFFFFF00FFFFFF00FFFFFF000000 508 0000848484008484840084848400848484008484840084848400848484008484 509 840084848400848484008484840000000000FFFFFF00FFFFFF00FFFFFF000000 510 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 511 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 512 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 513 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 514 0000840000008400000084000000840000008400000084000000840000008400 515 000084000000840000008400000000000000FFFFFF00FFFFFF00FFFFFF000000 516 0000840000008400000084000000840000008400000084000000840000008400 517 000084000000840000008400000000000000FFFFFF00FFFFFF00FFFFFF000000 518 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 519 0000FF000000FF000000FF00000000000000FFFFFF00FFFFFF00FFFFFF000000 520 0000FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 521 0000FF000000FF000000FF00000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 522 FF00000000000000000000000000000000000000000000000000000000000000 523 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 524 FF00000000000000000000000000000000000000000000000000000000000000 525 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 526 0000000000000000000000000000000000000000000000000000000000000000 527 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 528 0000000000000000000000000000000000000000000000000000000000000000 529 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 530 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 531 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 532 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 533 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 534 000000000000000000000000000000000000000000000000000000000000FFFF 535 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 536 000000000000000000000000000000000000000000000000000000000000FFFF 537 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 538 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 539 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 540 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 541 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 542 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 543 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6 544 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 545 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 546 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 547 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 548 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 549 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 550 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFF 551 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF000000000000FF 552 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 553 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 554 0000000000000000000000000000000000000000000000000000000000000000 555 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 556 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 557 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 558 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00000000000000 559 0000000000000000000000000000FFFFFF0000000000FFFFFF0000FFFF000000 560 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 561 C60000FFFF000000000000000000FFFFFF00FFFFFF00FFFFFF000000000000FF 562 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 563 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 564 0000000000000000000000000000000000000000000000000000000000000000 565 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 566 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000C6C6 567 C600C6C6C600C6C6C60084848400000000000000000000FFFF00FFFFFF000000 568 0000000000000000000000000000000000000000000000000000000000000000 569 000000000000000000008484840000000000FFFFFF00FFFFFF0000000000FFFF 570 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 571 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FF 572 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 573 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 574 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000C6C6 575 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 576 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 577 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF000000000000FF 578 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 579 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000 580 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 581 C60000FFFF0000000000FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 582 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000C6C6 583 C6000000000000000000C6C6C600000000000000000000FFFF00FFFFFF000000 584 0000C6C6C6008484840000000000C6C6C600C6C6C60000000000C6C6C6000000 585 00000000000000000000C6C6C60000000000FFFFFF00FFFFFF0000000000FFFF 586 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 587 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFF 588 FF000000000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 589 FF00C6C6C60000FFFF0000000000FFFFFF000000000000000000000000000000 590 0000000000000000000000000000000000000000000000000000C6C6C600C6C6 591 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 592 0000C6C6C600000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 593 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF000000000000FF 594 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 595 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FF 596 FF00FFFFFF000000000000000000000000000000000000000000000000000000 597 000000000000000000000000000000000000FFFFFF0000000000FFFFFF000000 598 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C6000000 599 000000000000C6C6C600C6C6C60000000000FFFFFF0000000000FFFFFF000000 600 0000C6C6C600C6C6C600C6C6C60000000000C6C6C60000000000000000000000 601 000000000000C6C6C600C6C6C60000000000FFFFFF00FFFFFF0000000000FFFF 602 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 603 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFF 604 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 605 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0084848400000000000000 606 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 607 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF0084848400000000000000 608 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 609 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00000000000000 610 0000000000000000000000000000000000000000000000000000000000000000 611 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FF 612 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 613 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 614 0000C6C6C6008484840000000000C6C6C600C6C6C6000000000000000000C6C6 615 C6000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 616 0000C6C6C6008484840000000000C6C6C600C6C6C6000000000000000000C6C6 617 C6000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 618 0000FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFFFF00FFFFFF00FFFF 619 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFF 620 FF0000FFFF00FFFFFF0000FFFF00000000000000000000000000000000000000 621 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 622 0000C6C6C600000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 623 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 624 0000C6C6C600000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 625 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 626 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 627 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 628 FF00FFFFFF0000FFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 629 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 630 0000C6C6C600C6C6C600C6C6C60000000000C6C6C60000000000C6C6C6000000 631 00000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 632 0000C6C6C600C6C6C600C6C6C60000000000C6C6C60000000000C6C6C6000000 633 00000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF00FFFF 634 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 635 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 636 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 637 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 638 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 639 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 640 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 641 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF00FFFF 642 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 643 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 644 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 645 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 646 000084000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 647 0000FF000000FF0000008400000000000000FFFFFF00FFFFFF00FFFFFF000000 648 000084000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 649 0000FF000000FF0000008400000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 650 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 651 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 652 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 653 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 654 FF00000000000000000000000000000000000000000000000000000000000000 655 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 656 FF00000000000000000000000000000000000000000000000000000000000000 657 0000000000000000000000000000FFFFFF00FFFFFF0000000000000000000000 658 000000000000000000000000000000000000000000000000000000000000FFFF 659 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 660 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 661 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 662 000000000000000000000000000000000000000000000000000000000000FFFF 663 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 664 000000000000000000000000000000000000000000000000000000000000FFFF 665 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6 666 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 667 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 668 0000000000000000000000000000000000000000000000000000000000000000 669 000000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 670 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 671 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6 672 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 673 0000000000000000000000000000000000000000000000FFFF000000000000FF 674 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 675 FF0000000000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 676 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 677 C60000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 678 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 679 0000000000000000000000000000000000000000000000FFFF000000000000FF 680 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 681 FF0000000000C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 682 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 683 C60000FFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 684 0000C6C6C60000000000000000000000000000000000C6C6C600C6C6C600C6C6 685 C60000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 686 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000C6C6 687 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 688 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 689 C60000FFFF0000000000C6C6C600000000000000000000FFFF00FFFFFF000000 690 0000000000000000000000000000000000000000000000000000000000000000 691 00000000000000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 692 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 693 C60000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 694 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 695 00000000000000000000C6C6C600000000000000000000FFFF00FFFFFF000000 696 0000000000000000000000000000000000000000000000000000000000000000 697 00000000000000000000C6C6C6000000000000000000FFFFFF0000FFFF000000 698 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 699 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 700 0000C6C6C600000000000000000000000000000000000000000000000000C6C6 701 C60000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 702 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000C6C6 703 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 704 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 705 C600C6C6C600C6C6C600C6C6C600000000000000000000FFFF00FFFFFF000000 706 0000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000000000000000 707 00000000000000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 708 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 709 C60000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 710 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 711 00000000000000000000C6C6C600000000000000000000FFFF00FFFFFF000000 712 0000C6C6C60000000000C6C6C60000000000C6C6C60000000000000000000000 713 00000000000000000000C6C6C6000000000000000000FFFFFF0000FFFF000000 714 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 715 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 716 0000C6C6C600000000000000000000000000000000000000000000000000C6C6 717 C60000000000FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 718 0000000000000000000000000000000000000000000000000000C6C6C600C6C6 719 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 720 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 721 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF0000000000FFFFFF000000 722 0000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000000000000000 723 00000000000000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 724 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 725 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000 726 0000C6C6C60000000000C6C6C60000000000C6C6C60000000000000000000000 727 00000000000000000000C6C6C60000000000FFFFFF0000000000FFFFFF000000 728 0000C6C6C60000000000C6C6C60000000000C6C6C60000000000000000000000 729 00000000000000000000C6C6C60000000000FFFFFF0084848400000000000000 730 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 731 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 732 0000C6C6C600000000000000000000000000C6C6C6000000000000000000C6C6 733 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0084848400000000000000 734 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 735 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF0084848400000000000000 736 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 737 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 738 0000FFFFFF0000000000FFFFFF0000000000FFFFFF000000000000000000FFFF 739 FF000000000000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 740 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 741 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 742 0000C6C6C60000000000C6C6C60000000000C6C6C6000000000000000000C6C6 743 C6000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 744 0000C6C6C60000000000C6C6C60000000000C6C6C6000000000000000000C6C6 745 C6000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 746 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 747 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 748 0000C6C6C6000000000000000000C6C6C600000000000000000000000000C6C6 749 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 750 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 751 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 752 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 753 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 754 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 755 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 756 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 757 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 758 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 759 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 760 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 761 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 762 0000FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 763 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 764 0000000000000000000000000000000000000000000000000000000000000000 765 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 766 0000C6C6C60000000000C6C6C600000000000000000000000000000000000000 767 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 768 0000C6C6C60000000000C6C6C600000000000000000000000000000000000000 769 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 770 0000FFFFFF000000000000000000000000000000000000000000000000000000 771 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 772 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 773 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 774 0000C6C6C6000000000000000000000000000000000000000000000000000000 775 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 776 0000C6C6C6000000000000000000000000000000000000000000000000000000 777 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 778 0000000000000000000000000000000000000000000000000000000000000000 779 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 780 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 781 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 782 0000000000000000000000000000000000000000000000000000000000000000 783 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 784 0000000000000000000000000000000000000000000000000000000000000000 785 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 786 000000000000000000000000000000000000000000000000000000000000FFFF 787 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 788 000000000000000000000000000000000000000000000000000000000000FFFF 789 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 790 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 791 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 792 000000000000000000000000000000000000000000000000000000000000FFFF 793 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 794 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 795 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6 796 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 797 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 798 0000000000000000000000000000000000000000000000000000000000000000 799 000000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 800 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 801 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 802 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 803 0000000000000000000000000000000000000000000000FFFF000000000000FF 804 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 805 FF0000000000C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 806 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 807 FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 808 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 809 0000000000000000000000000000000000000000000000FFFF00FFFFFF0000FF 810 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000C6C6 811 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 812 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 813 C60000FFFF0000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 814 0000FFFFFF0000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 815 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 816 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 817 FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF0000FFFF00FFFF 818 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 819 00000000000000000000C6C6C600000000000000000000FFFF00FFFFFF000000 820 0000000000000000000000000000000000000000000000000000000000000000 821 00000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 822 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 823 FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 824 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 825 00000000000000000000FFFFFF00000000000000000000FFFF00FFFFFF0000FF 826 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000C6C6 827 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 828 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 829 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 830 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 831 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 832 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 833 FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF0000FFFF00FFFF 834 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 835 00000000000000000000C6C6C600000000000000000000FFFF00FFFFFF000000 836 0000C6C6C60000000000C6C6C60000000000C6C6C60000000000000000000000 837 00000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 838 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 839 FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 840 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 841 00000000000000000000FFFFFF00000000000000000000000000000000000000 842 0000000000000000000000000000000000000000000000000000C6C6C600C6C6 843 C600C6C6C600C6C6C600C6C6C6000000000000000000FFFFFF0000FFFF000000 844 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 845 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 846 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 847 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 848 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF 849 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000000000FFFFFF000000 850 0000C6C6C60000000000C6C6C60000000000C6C6C60000000000000000000000 851 00000000000000000000C6C6C60000000000FFFFFF0000000000FFFFFF000000 852 0000C6C6C60000000000C6C6C60000000000C6C6C60000000000000000000000 853 00000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 854 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 855 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000 856 0000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000000000000000 857 00000000000000000000FFFFFF0000000000FFFFFF0084848400000000000000 858 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 859 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF0084848400000000000000 860 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 861 C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFFFF000000 862 0000FFFFFF00000000000000000000000000FFFFFF000000000000000000FFFF 863 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0084848400000000000000 864 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 865 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 866 0000C6C6C60000000000C6C6C60000000000C6C6C6000000000000000000C6C6 867 C60000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 868 0000C6C6C60000000000C6C6C60000000000C6C6C6000000000000000000C6C6 869 C60000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 870 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 871 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 872 0000FFFFFF0000000000FFFFFF0000000000FFFFFF000000000000000000FFFF 873 FF000000000000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 874 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 875 C60000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 876 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 877 C60000000000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 878 0000FFFFFF000000000000000000FFFFFF00000000000000000000000000FFFF 879 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 880 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 881 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 882 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 883 C6000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 884 0000C6C6C60000000000C6C6C60000000000C6C6C600C6C6C600C6C6C600C6C6 885 C6000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 886 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 887 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 888 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 889 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 890 0000C6C6C60000000000C6C6C600000000000000000000000000000000000000 891 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 892 0000C6C6C60000000000C6C6C600000000000000000000000000000000000000 893 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 894 0000000000000000000000000000000000000000000000000000000000000000 895 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 896 0000FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 897 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 898 0000C6C6C600000000000000000000000000000000000000000000000000FFFF 899 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 900 0000C6C6C600000000000000000000000000000000000000000000000000FFFF 901 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 902 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 903 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 904 0000FFFFFF000000000000000000000000000000000000000000000000000000 905 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 906 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 907 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 908 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 909 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 910 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 911 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 912 0000000000000000000000000000000000000000000000000000000000000000 913 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 914 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 915 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 916 000000000000000000000000000000000000000000000000000000000000FFFF 917 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 918 000000000000000000000000000000000000000000000000000000000000FFFF 919 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 920 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 921 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 922 0000000000000000000000000000000000000000000000000000000000000000 923 000000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 924 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 925 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6 926 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 927 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 928 0000000000000000000000000000000000000000000000000000000000000000 929 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 930 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 931 FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 932 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 933 0000000000000000000000000000000000000000000000FFFF000000000000FF 934 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 935 FF0000000000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 936 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 937 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 938 0000FFFFFF0000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 939 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 940 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 941 FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF0000FFFF000000 942 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 943 C60000FFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 944 0000C6C6C60000000000000000000000000000000000C6C6C600C6C6C600C6C6 945 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 946 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 947 FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 948 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 949 00000000000000000000FFFFFF00000000000000000000FFFF00FFFFFF000000 950 0000000000000000000000000000000000000000000000000000000000000000 951 00000000000000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 952 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 953 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 954 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 955 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FF 956 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFF 957 FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF0000FFFF000000 958 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 959 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 960 0000C6C6C600000000000000000000000000000000000000000000000000C6C6 961 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 962 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 963 FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFF 964 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 965 00000000000000000000FFFFFF00000000000000000000FFFF00FFFFFF000000 966 0000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000000000000000 967 00000000000000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 968 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 969 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 970 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 971 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 972 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF 973 FF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFFFF0000FFFF000000 974 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 975 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 976 0000C6C6C600000000000000000000000000000000000000000000000000C6C6 977 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 978 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 979 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000 980 0000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000000000000000 981 00000000000000000000FFFFFF0000000000FFFFFF0000000000FFFFFF000000 982 0000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000000000000000 983 00000000000000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 984 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6C600C6C6 985 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 986 0000FFFFFF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 987 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0084848400000000000000 988 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 989 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0084848400000000000000 990 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 991 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 992 0000C6C6C600000000000000000000000000C6C6C600C6C6C600C6C6C600C6C6 993 C60000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 994 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 995 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 996 0000FFFFFF0000000000FFFFFF0000000000FFFFFF000000000000000000FFFF 997 FF0000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 998 0000FFFFFF0000000000FFFFFF0000000000FFFFFF000000000000000000FFFF 999 FF0000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF000000 1000 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C60000000000000000000000 1001 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1002 0000FFFFFF000000000000000000FFFFFF00FFFFFF0000000000FFFFFF000000 1003 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1004 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1005 FF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1006 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1007 FF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1008 0000C6C6C6000000000000000000C6C6C600C6C6C60000000000C6C6C6000000 1009 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1010 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000FFFF 1011 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1012 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1013 FF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1014 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1015 FF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1016 0000C6C6C600C6C6C600C6C6C600C6C6C600C6C6C6000000000000000000FFFF 1017 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1018 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF 1019 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1020 0000FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 1021 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1022 0000FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 1023 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1024 0000000000000000000000000000000000000000000000000000FFFFFF00FFFF 1025 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1026 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1027 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1028 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 1029 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1030 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 1031 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1032 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1033 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1034 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1035 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1036 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 1037 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1038 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 1039 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1040 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1041 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1042 000000000000000000000000000000000000000000000000000000000000FFFF 1043 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1044 000000000000000000000000000000000000000000000000000000000000FFFF 1045 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1046 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1047 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1048 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1049 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1050 0000000000000000000000000000000000000000000000000000BDBDBD000000 1051 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1052 0000000000000000000000000000000000000000000000000000BDBDBD000000 1053 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1054 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1055 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1056 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1057 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1058 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000BDBD 1059 BD0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1060 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000BDBD 1061 BD0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1062 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1063 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1064 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1065 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1066 000000FFFF0000000000000000000000000000FFFF0000000000008484000000 1067 0000BDBDBD0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1068 000000FFFF0000000000000000000000000000FFFF0000000000008484000000 1069 0000BDBDBD0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1070 0000000000000000000000000000000000000000000000000000000000000000 1071 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1072 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1073 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1074 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 1075 84000000000000000000FFFFFF00FFFFFF00FFFFFF0000000000000000000000 1076 00000000000000000000000000000000000000FFFF0000000000008484000084 1077 84000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 1078 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 1079 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1080 0000000000000000000000000000000000000000000000000000000000000000 1081 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1082 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 1083 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF0000FF 1084 FF0000FFFF0000FFFF0000FFFF00000000000000000000000000008484000084 1085 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF 1086 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 1087 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000000000FF 1088 FF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBDBD0000FF 1089 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1090 0000000000000000000000000000000000000000000000000000008484000084 1091 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF000000 1092 0000000000000000000000FFFF0000000000BDBDBD0000000000008484000084 1093 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 1094 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 1095 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF000000 1096 000000FFFF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBD 1097 BD0000FFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1098 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 1099 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF0000FF 1100 FF0000FFFF0000FFFF0000FFFF0000000000BDBDBD0000000000008484000084 1101 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF 1102 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 1103 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFF 1104 FF000000000000FFFF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBDBD0000FF 1105 FF00BDBDBD0000FFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1106 000000FFFF0000000000000000000000000000FFFF0000000000008484000084 1107 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF0000FF 1108 FF0000FFFF0000FFFF0000FFFF00000000000000000000000000008484000084 1109 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 1110 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 1111 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FF 1112 FF00FFFFFF000000000000000000000000000000000000000000000000000000 1113 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1114 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 1115 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 1116 0000000000000000000000000000000000007B7B7B0000000000008484000084 1117 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF 1118 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 1119 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFF 1120 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 1121 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1122 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 1123 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1124 0000FFFFFF00FFFFFF00FFFFFF007B7B7B007B7B7B0000000000008484000084 1125 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1126 0000000000000000000000000000000000000000000000000000000000000000 1127 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF0000FF 1128 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 1129 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1130 0000000000000000000000000000000000000000000000000000000000000084 1131 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1132 0000000000000000000000000000000000000000000000000000000000000084 1133 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1134 0000FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFFFF00FFFFFF00FFFF 1135 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFF 1136 FF0000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000000000000000FFFF 1137 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000007B7B 1138 7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B00000000000000 1139 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000007B7B 1140 7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B00000000000000 1141 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007B7B 1142 7B00000000000000000000000000000000007B7B7B00FFFFFF00FFFFFF00FFFF 1143 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 1144 FF00FFFFFF0000FFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1145 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1146 00000000000000FFFF000084840000FFFF000084840000FFFF00008484000000 1147 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1148 0000000000000084840000FFFF000084840000FFFF000084840000FFFF000000 1149 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1150 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1151 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF007B7B7B000000 1152 00000000000000000000000000007B7B7B00FFFFFF00FFFFFF00FFFFFF00FFFF 1153 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1154 FF00FFFFFF0000000000000000000084840000FFFF000084840000FFFF000084 1155 84000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1156 FF00FFFFFF00000000000000000000FFFF000084840000FFFF000084840000FF 1157 FF000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1158 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1159 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1160 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1161 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1162 FF00FFFFFF00FFFFFF007B7B7B00000000000000000000000000000000000000 1163 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1164 FF00FFFFFF00FFFFFF007B7B7B00000000000000000000000000000000000000 1165 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1166 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1167 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1168 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1169 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00424D3E000000000000003E000000 594 1170 2800000040000000900000000100010000000000800400000000000000000000 595 1171 000000000000000000000000FFFFFF0000000000000000000000000000000000 … … 640 1216 Bitmap = { 641 1217 494C010108000900040014001000FFFFFF00FF10FFFFFFFFFFFFFFFF424D3600 642 000000000000360000002800000050000000300000000100100000000000001E 643 0000000000000000000000000000000000000000000000000000000000000000 644 0000000000000000000000000000000000000000000000000000000000000000 645 0000000000000000000000000000000000000000000000000000000000000000 646 0000000000000000000000000000000000000000000000000000000000000000 647 0000000000000000000000000000000000000000000000000000000000000000 648 0000000000000000000000000000000000000000000000000000000000000000 649 0000000000000000000000000000000000000000000000000000000000000000 650 0000000000000000000000000000000000000000000000000000000000000000 651 0000000000000000000000000000000000000000000000000000000000000000 652 0000000000000000000000000000000000000000000000000000000000000000 653 0000000000000000000000000000000000000000000000000000000000000000 654 0000000000000000000000000000000000000000000000000000000000000000 655 0000000000000000000000000000000000000000000000000000000000000000 656 0000000000000000000000000000000000000000000000000000000000000000 657 0000000000000000000000000000000000000000000000000000000000000000 658 0000000000000000000000000000000000000000000000000000000000000000 659 0000000000000000000000000000000000000000000000000000000000000000 660 0000000000000000000000000000000000000000000000000000000000000000 661 0000000000000000000000000000000000000000000000000000000000000000 662 0000000000000000000000000000000000000000000000000000000000000000 663 0000000000000000000000000000000000000000000000000000000000000000 664 0000000000000000000000000000000000000000000000000000000000000000 665 0000000000000000000000000000000000000000000000000000000000000000 666 0000000000000000000000000000000000000000000000000000000000000000 667 0000000000000000000000000000000000000000000000000000000000000000 668 0000000000000000000000000000000000000000000000000000000000000000 669 0000000000000000000000000000000000000000000000000000000000000000 670 0000000000000000000000000000000000000000000000000000000000000000 671 0000000000000000000000000000000000000000000000000000000000000000 672 0000000000000000000000000000000000000000000000000000000000000000 673 0000000000000000000000000000000000000000000000000000000000000000 674 0000000000000000000000000000000000000000000000000000000000000000 675 0000000000000000000000000000000000000000000000000000000000000000 676 0000000000000000000000000000000000000000000000000000000000000000 677 0000000000000000000000000000000000000000000000000000000000000000 678 0000000000000000000000000000000000000000000000000000000000000000 679 0000000000000000000000000000000000000000000000000000000000000000 680 0000000000000000000000000000000000000000000000000000000000000000 681 0000000000000000000000000000000000000000000000000000000000000000 682 0000000000000000000000000000000000000000000000000000000000000000 683 0000000000000000000000000000000000000000000000000000000000000000 684 0000000000000000000000000000000000000000000000000000000000000000 685 0000000000000000000000000000000000000000000000000000000000000000 686 0000000000000000000000000000000000000000000000000000000000000000 687 0000000000000000000000000000000000000000000000000000000000000000 688 0000000000000000000000000000000000000000000000000000000000000000 689 0000000000000000000000000000000000000000000000000000000000000000 690 0000000000000000000000000000000000000000000000000000000000000000 691 0000000000000000000000000000000000000000000000000000000000000000 692 0000000000000000000000000000000000000000000000000000000000000000 693 0000000000000000000000000000000000000000000000000000000000000000 694 0000000000000000000000000000000000000000000000000000000000000000 695 0000000000000000000000000000000000000000000000000000000000000000 696 0000000000000000000000000000000000000000000000000000000000000000 697 0000000000000000000000000000000000000000000000000000000000000000 698 0000000000000000000000000000000000000000000000000000000000000000 699 0000000000000000000000000000000000000000000000000000000000000000 700 0000000000000000000000000000000000000000000000000000000000000000 701 0000000000000000000000000000000000000000000000000000000000000000 702 0000000000000000000000000000000000000000000000000000000000000000 703 0000000000000000000000000000000000000000000000000000000000000000 704 0000000000000000000000000000000000000000000000000000000000000000 705 0000000000000000000000000000000000000000000000000000000000000000 706 0000000000000000000000000000000000000000000000000000000000000000 707 0000000000000000000000000000000000000000000000000000000000000000 708 0000000000000000000000000000000000000000000000000000000000000000 709 0000000000000000000000000000000000000000000000000000000000000000 710 0000000000000000000000000000000000000000000000000000000000000000 711 0000000000000000000000000000000000000000000000000000000000000000 712 0000000000000000000000000000000000000000000000000000000000000000 713 0000000000000000000000000000000000000000000000000000000000000000 714 0000000000000000000000000000000000000000000000000000000000000000 715 0000000000000000000000000000000000000000000000000000000000000000 716 0000000000000000000000000000000000000000000000000000000000000000 717 0000000000000000000000000000000000000000000000000000000000000000 718 0000000000000000000000000000000000000000000000000000000000000000 719 0000000000000000000000000000000000000000000000000000000000000000 720 0000000000000000000000000000000000000000000000000000000000000000 721 0000000000000000000000000000000000000000000000000000000000000000 722 0000000000000000000000000000000000000000000000000000000000000000 723 000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F00000000 724 000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 725 FF7FFF7FFF7F000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 726 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 727 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000 728 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F0000000010421042 729 10421042104200000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 730 FF7FFF7F00001002100210020000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 731 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FE07FE07FE07FE07F 732 E07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07F 733 E07FFF7FFF7FE07FE07F0000FF7FFF7FFF7FFF7FFF7F0000104210421863FF7F 734 FF7FFF7F1863104210420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 735 FF7FFF7F00001002100210020000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 736 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000010421042104210421042 737 10420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00001042 738 FF7F007C0000FF7F10420000FF7FFF7FFF7FFF7F000010421042FF7FFF7FFF7F 739 1F00FF7FFF7FFF7F104210420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 740 FF7FFF7FFF7F000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 741 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000018631863186318631863 742 18630000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00001863 743 FF7F007C007C0000FF7F0000FF7FFF7FFF7FFF7F00001042FF7F1F00FF7FFF7F 744 FF7FFF7FFF7F1F00FF7F10420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 745 FF7FFF7F00001002100210020000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 746 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000018630000186300000000 747 18630000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7F 748 007C007C007C0000FF7F0000FF7FFF7FFF7F000010421863FF7FFF7FFF7FFF7F 749 FF7FFF7FFF7FFF7FFF7F186310420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 750 FF7FFF7F00001002100210020000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 751 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000018631863186318631863 752 18630000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F1042 753 007C007C007C007C0000FF7FFF7FFF7FFF7F00001042FF7FFF7FFF7FFF7FFF7F 754 FF7FFF7FFF7FFF7FFF7FFF7F10420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 755 FF7FFF7F000010021002100210020000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 756 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000010001000100010001000 757 10000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F1042007C 758 007C0000007C007C0000FF7FFF7FFF7FFF7F00001042FF7F0000000000000000 759 007CFF7FFF7FFF7F1F00FF7F10420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 760 FF7FFF7FFF7F000010021002100210020000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 761 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000000000000000 762 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F007C007C0000 763 FF7FFF7F1042007C007C0000FF7FFF7FFF7F00001042FF7FFF7FFF7FFF7FFF7F 764 FF7F0000FF7FFF7FFF7FFF7F10420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 765 FF7FFF7FFF7FFF7F000010021002100210020000FF7FFF7FFF7FFF7FFF7FFF7F 766 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 767 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 768 FF7FFF7FFF7F007C007C0000FF7FFF7FFF7F000010421863FF7FFF7FFF7FFF7F 769 FF7FFF7F0000FF7FFF7F186310420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 770 000000000000FF7FFF7F00001002100210020000FF7FFF7FFF7FFF7FFF7FFF7F 771 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 772 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 773 FF7FFF7FFF7FFF7F007C007C0000FF7FFF7FFF7F00001042FF7F1F00FF7FFF7F 774 FF7FFF7FFF7FFF7FFF7F10420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 775 1002100210020000000000001002100210020000FF7FFF7FFF7FFF7FFF7FFF7F 776 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 777 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 778 FF7FFF7FFF7FFF7F1042007C0000FF7FFF7FFF7F000010421042FF7FFF7FFF7F 779 1F00FF7FFF7FFF7F104210420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 780 1002100210021002100210021002100210020000FF7FFF7FFF7FFF7FFF7FFF7F 781 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 782 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 783 FF7FFF7FFF7FFF7FFF7F1042007C0000FF7FFF7FFF7F0000104210421863FF7F 784 1F00FF7F1863104210420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 785 1002100210021002100210021002100210020000FF7FFF7FFF7FFF7FFF7FFF7F 786 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 787 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 788 FF7FFF7FFF7FFF7FFF7FFF7F1042007C0000FF7FFF7FFF7F0000000010421042 789 10421042104200000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 790 000000001002100210021002100200000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 791 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 792 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 793 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000 794 000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 795 FF7FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 796 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 797 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 798 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 799 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 800 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 801 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 802 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 803 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 804 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 805 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 806 FF7FFF7F000000000040FF7F00000000000000000000FF7F004000000000FF7F 807 FF7FFF7FFF7FFF7FFF7FFF7F000000001002FF7F00000000000000000000FF7F 808 100200000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 809 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 810 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 811 FF7FFF7FFF7F0040000000000000007C0000007C0000000000000040FF7FFF7F 812 FF7FFF7FFF7FFF7FFF7FFF7FFF7F1002000000000000FF030000FF0300000000 813 00001002FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 814 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 815 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 816 FF7FFF7FFF7F00000000007C1863FF7F0000FF7F1863007C00000000FF7FFF7F 817 FF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000FF031863FF7F0000FF7F1863FF03 818 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000 819 000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 820 0000000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F 821 FF7FFF7F10420000007C18630000FF7FFF7FFF7F00001863007C00001042FF7F 822 FF7FFF7FFF7FFF7FFF7FFF7F10420000FF0318630000FF7FFF7FFF7F00001863 823 FF0300001042FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7F 824 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 825 0000E07F1863E07F1863E07F1863E07F1863E07F0000FF7FFF7FFF7FFF7FFF7F 826 FF7FFF7F0000007C007CFF7FFF7FFF7FFF7FFF7FFF7FFF7F007C007C0000FF7F 827 FF7FFF7FFF7FFF7FFF7FFF7F0000FF03FF03FF7FFF7F0000FF7FFF7FFF7FFF7F 828 FF03FF030000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07F 829 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 830 FF7F0000E07F1863E07F1863E07F1863E07F1863E07F0000FF7FFF7FFF7FFF7F 831 FF7FFF7F0000007C0000FF7F000000000000FF7FFF7F00000000007C0000FF7F 832 FF7FFF7FFF7FFF7FFF7FFF7F0000FF030000FF7FFF7FFF7F0000FF7FFF7F0000 833 0000FF030000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7F 834 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 835 E07FFF7F0000E07F1863E07F1863E07F1863E07F1863E07F0000FF7FFF7FFF7F 836 FF7FE07F0000007C007CFF7FFF7FFF7F0000FF7FFF7FFF7F007C007C0000E07F 837 FF7FFF7FFF7FFF7FFF7FFF7F0000FF03FF03FF7FFF7FFF7F0000FF7FFF7FFF7F 838 FF03FF030000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07F 839 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 840 FF7FE07FFF7F0000000000000000000000000000000000000000FF7FFF7FFF7F 841 FF7F000010420000007C18630000FF7F0000FF7F00001863007C000010420000 842 FF7FFF7FFF7FFF7FFF7FFF7F10420000FF0318630000FF7F0000FF7F00001863 843 FF0300001042FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000E07FFF7FE07FFF7F 844 E07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 845 E07FFF7FE07FFF7FE07FFF7FE07FFF7FE07F0000FF7FFF7FFF7FFF7FFF7FFF7F 846 FF7FE07FE07F00000000007C1863FF7F0000FF7F1863007C00000000E07FE07F 847 FF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000FF031863FF7F0000FF7F1863FF03 848 00000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7FE07F 849 FF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 850 FF7FE07FFF7FE07FFF7FE07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7F 851 FF7F00000000000000000000007C007C007C007C007C00000000000000000000 852 FF7FFF7FFF7FFF7FFF7F00000000000000000000FF03FF03FF03FF03FF030000 853 0000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000 854 00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000 855 E07FFF7FE07FFF7FE07FFF7F000000000000FF7FFF7FFF7FFF7FFF7FFF7FFF7F 856 FF7F000018631863104200000000000000000000000000001863104210420000 857 FF7FFF7FFF7FFF7FFF7F00001863186310420000000000000000000000000000 858 1863104210420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000FF7FE07FFF7F 859 E07F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 860 0000E07FFF7FE07FFF7F0000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 861 FF7F000018631863186318631042104200001042186318631863186310420000 862 FF7FFF7FFF7FFF7FFF7F00001863186318631863104210420000104218631863 863 1863186310420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F1042000000000000 864 00001042FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 865 104200000000000000001042FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 866 FF7FE07F000010421863186300000000E07F000000001863186310420000E07F 867 FF7FFF7FFF7FFF7FFF7FFF7F0000104218631863000010420000104200001863 868 186310420000FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 869 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 870 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 871 FF7F0000FF7F104200000000E07FE07FE07FE07FE07F000000001042FF7F0000 872 FF7FFF7FFF7FFF7FFF7FFF7FFF7F104200000000FF7FFF7F0000FF7FFF7F0000 873 00001042FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 874 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 875 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 876 FF7FFF7FFF7F0000E07FE07F0000E07F0000E07F0000E07FE07F0000FF7FFF7F 877 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F000000000000FF7FFF7F 878 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 879 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 880 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 881 FF7FFF7F0000E07FE07F0000FF7FE07F0000E07FFF7F0000E07FE07F0000FF7F 882 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F 883 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F424D3E000000000000003E000000 1218 000000000000360000002800000050000000300000000100200000000000003C 1219 0000000000000000000000000000000000000000000000000000000000000000 1220 0000000000000000000000000000000000000000000000000000000000000000 1221 0000000000000000000000000000000000000000000000000000000000000000 1222 0000000000000000000000000000000000000000000000000000000000000000 1223 0000000000000000000000000000000000000000000000000000000000000000 1224 0000000000000000000000000000000000000000000000000000000000000000 1225 0000000000000000000000000000000000000000000000000000000000000000 1226 0000000000000000000000000000000000000000000000000000000000000000 1227 0000000000000000000000000000000000000000000000000000000000000000 1228 0000000000000000000000000000000000000000000000000000000000000000 1229 0000000000000000000000000000000000000000000000000000000000000000 1230 0000000000000000000000000000000000000000000000000000000000000000 1231 0000000000000000000000000000000000000000000000000000000000000000 1232 0000000000000000000000000000000000000000000000000000000000000000 1233 0000000000000000000000000000000000000000000000000000000000000000 1234 0000000000000000000000000000000000000000000000000000000000000000 1235 0000000000000000000000000000000000000000000000000000000000000000 1236 0000000000000000000000000000000000000000000000000000000000000000 1237 0000000000000000000000000000000000000000000000000000000000000000 1238 0000000000000000000000000000000000000000000000000000000000000000 1239 0000000000000000000000000000000000000000000000000000000000000000 1240 0000000000000000000000000000000000000000000000000000000000000000 1241 0000000000000000000000000000000000000000000000000000000000000000 1242 0000000000000000000000000000000000000000000000000000000000000000 1243 0000000000000000000000000000000000000000000000000000000000000000 1244 0000000000000000000000000000000000000000000000000000000000000000 1245 0000000000000000000000000000000000000000000000000000000000000000 1246 0000000000000000000000000000000000000000000000000000000000000000 1247 0000000000000000000000000000000000000000000000000000000000000000 1248 0000000000000000000000000000000000000000000000000000000000000000 1249 0000000000000000000000000000000000000000000000000000000000000000 1250 0000000000000000000000000000000000000000000000000000000000000000 1251 0000000000000000000000000000000000000000000000000000000000000000 1252 0000000000000000000000000000000000000000000000000000000000000000 1253 0000000000000000000000000000000000000000000000000000000000000000 1254 0000000000000000000000000000000000000000000000000000000000000000 1255 0000000000000000000000000000000000000000000000000000000000000000 1256 0000000000000000000000000000000000000000000000000000000000000000 1257 0000000000000000000000000000000000000000000000000000000000000000 1258 0000000000000000000000000000000000000000000000000000000000000000 1259 0000000000000000000000000000000000000000000000000000000000000000 1260 0000000000000000000000000000000000000000000000000000000000000000 1261 0000000000000000000000000000000000000000000000000000000000000000 1262 0000000000000000000000000000000000000000000000000000000000000000 1263 0000000000000000000000000000000000000000000000000000000000000000 1264 0000000000000000000000000000000000000000000000000000000000000000 1265 0000000000000000000000000000000000000000000000000000000000000000 1266 0000000000000000000000000000000000000000000000000000000000000000 1267 0000000000000000000000000000000000000000000000000000000000000000 1268 0000000000000000000000000000000000000000000000000000000000000000 1269 0000000000000000000000000000000000000000000000000000000000000000 1270 0000000000000000000000000000000000000000000000000000000000000000 1271 0000000000000000000000000000000000000000000000000000000000000000 1272 0000000000000000000000000000000000000000000000000000000000000000 1273 0000000000000000000000000000000000000000000000000000000000000000 1274 0000000000000000000000000000000000000000000000000000000000000000 1275 0000000000000000000000000000000000000000000000000000000000000000 1276 0000000000000000000000000000000000000000000000000000000000000000 1277 0000000000000000000000000000000000000000000000000000000000000000 1278 0000000000000000000000000000000000000000000000000000000000000000 1279 0000000000000000000000000000000000000000000000000000000000000000 1280 0000000000000000000000000000000000000000000000000000000000000000 1281 0000000000000000000000000000000000000000000000000000000000000000 1282 0000000000000000000000000000000000000000000000000000000000000000 1283 0000000000000000000000000000000000000000000000000000000000000000 1284 0000000000000000000000000000000000000000000000000000000000000000 1285 0000000000000000000000000000000000000000000000000000000000000000 1286 0000000000000000000000000000000000000000000000000000000000000000 1287 0000000000000000000000000000000000000000000000000000000000000000 1288 0000000000000000000000000000000000000000000000000000000000000000 1289 0000000000000000000000000000000000000000000000000000000000000000 1290 0000000000000000000000000000000000000000000000000000000000000000 1291 0000000000000000000000000000000000000000000000000000000000000000 1292 0000000000000000000000000000000000000000000000000000000000000000 1293 0000000000000000000000000000000000000000000000000000000000000000 1294 0000000000000000000000000000000000000000000000000000000000000000 1295 0000000000000000000000000000000000000000000000000000000000000000 1296 0000000000000000000000000000000000000000000000000000000000000000 1297 0000000000000000000000000000000000000000000000000000000000000000 1298 0000000000000000000000000000000000000000000000000000000000000000 1299 0000000000000000000000000000000000000000000000000000000000000000 1300 0000000000000000000000000000000000000000000000000000000000000000 1301 0000000000000000000000000000000000000000000000000000000000000000 1302 0000000000000000000000000000000000000000000000000000000000000000 1303 0000000000000000000000000000000000000000000000000000000000000000 1304 0000000000000000000000000000000000000000000000000000000000000000 1305 0000000000000000000000000000000000000000000000000000000000000000 1306 0000000000000000000000000000000000000000000000000000000000000000 1307 0000000000000000000000000000000000000000000000000000000000000000 1308 0000000000000000000000000000000000000000000000000000000000000000 1309 0000000000000000000000000000000000000000000000000000000000000000 1310 0000000000000000000000000000000000000000000000000000000000000000 1311 0000000000000000000000000000000000000000000000000000000000000000 1312 0000000000000000000000000000000000000000000000000000000000000000 1313 0000000000000000000000000000000000000000000000000000000000000000 1314 0000000000000000000000000000000000000000000000000000000000000000 1315 0000000000000000000000000000000000000000000000000000000000000000 1316 0000000000000000000000000000000000000000000000000000000000000000 1317 0000000000000000000000000000000000000000000000000000000000000000 1318 0000000000000000000000000000000000000000000000000000000000000000 1319 0000000000000000000000000000000000000000000000000000000000000000 1320 0000000000000000000000000000000000000000000000000000000000000000 1321 0000000000000000000000000000000000000000000000000000000000000000 1322 0000000000000000000000000000000000000000000000000000000000000000 1323 0000000000000000000000000000000000000000000000000000000000000000 1324 0000000000000000000000000000000000000000000000000000000000000000 1325 0000000000000000000000000000000000000000000000000000000000000000 1326 0000000000000000000000000000000000000000000000000000000000000000 1327 0000000000000000000000000000000000000000000000000000000000000000 1328 0000000000000000000000000000000000000000000000000000000000000000 1329 0000000000000000000000000000000000000000000000000000000000000000 1330 0000000000000000000000000000000000000000000000000000000000000000 1331 0000000000000000000000000000000000000000000000000000000000000000 1332 0000000000000000000000000000000000000000000000000000000000000000 1333 0000000000000000000000000000000000000000000000000000000000000000 1334 0000000000000000000000000000000000000000000000000000000000000000 1335 0000000000000000000000000000000000000000000000000000000000000000 1336 0000000000000000000000000000000000000000000000000000000000000000 1337 0000000000000000000000000000000000000000000000000000000000000000 1338 0000000000000000000000000000000000000000000000000000000000000000 1339 0000000000000000000000000000000000000000000000000000000000000000 1340 0000000000000000000000000000000000000000000000000000000000000000 1341 0000000000000000000000000000000000000000000000000000000000000000 1342 0000000000000000000000000000000000000000000000000000000000000000 1343 0000000000000000000000000000000000000000000000000000000000000000 1344 0000000000000000000000000000000000000000000000000000000000000000 1345 0000000000000000000000000000000000000000000000000000000000000000 1346 0000000000000000000000000000000000000000000000000000000000000000 1347 0000000000000000000000000000000000000000000000000000000000000000 1348 0000000000000000000000000000000000000000000000000000000000000000 1349 0000000000000000000000000000000000000000000000000000000000000000 1350 0000000000000000000000000000000000000000000000000000000000000000 1351 0000000000000000000000000000000000000000000000000000000000000000 1352 0000000000000000000000000000000000000000000000000000000000000000 1353 0000000000000000000000000000000000000000000000000000000000000000 1354 0000000000000000000000000000000000000000000000000000000000000000 1355 0000000000000000000000000000000000000000000000000000000000000000 1356 0000000000000000000000000000000000000000000000000000000000000000 1357 0000000000000000000000000000000000000000000000000000000000000000 1358 0000000000000000000000000000000000000000000000000000000000000000 1359 0000000000000000000000000000000000000000000000000000000000000000 1360 0000000000000000000000000000000000000000000000000000000000000000 1361 0000000000000000000000000000000000000000000000000000000000000000 1362 0000000000000000000000000000000000000000000000000000000000000000 1363 0000000000000000000000000000000000000000000000000000000000000000 1364 0000000000000000000000000000000000000000000000000000000000000000 1365 0000000000000000000000000000000000000000000000000000000000000000 1366 0000000000000000000000000000000000000000000000000000000000000000 1367 0000000000000000000000000000000000000000000000000000000000000000 1368 0000000000000000000000000000000000000000000000000000000000000000 1369 0000000000000000000000000000000000000000000000000000000000000000 1370 0000000000000000000000000000000000000000000000000000000000000000 1371 0000000000000000000000000000000000000000000000000000000000000000 1372 0000000000000000000000000000000000000000000000000000000000000000 1373 0000000000000000000000000000000000000000000000000000000000000000 1374 0000000000000000000000000000000000000000000000000000000000000000 1375 0000000000000000000000000000000000000000000000000000000000000000 1376 0000000000000000000000000000000000000000000000000000000000000000 1377 0000000000000000000000000000000000000000000000000000000000000000 1378 0000000000000000000000000000000000000000000000000000000000000000 1379 000000000000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1380 FF00FFFFFF000000000000000000000000000000000000000000FFFFFF00FFFF 1381 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1382 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1383 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1384 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1385 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 1386 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 1387 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1388 FF00FFFFFF000000000000000000000000000000000000000000000000000000 1389 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1390 0000000000008484840084848400848484008484840084848400000000000000 1391 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1392 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000848400008484 1393 00008484000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1394 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1395 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF0000FF 1396 FF0000FFFF0000FFFF0000FFFF0000FFFF0000000000FFFFFF00FFFFFF00FFFF 1397 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1398 FF00FFFFFF000000000000FFFF0000FFFF00FFFFFF00FFFFFF0000FFFF0000FF 1399 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000008484 1400 840084848400C6C6C600FFFFFF00FFFFFF00FFFFFF00C6C6C600848484008484 1401 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1402 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000848400008484 1403 00008484000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1404 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1405 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000848484008484 1406 84008484840084848400848484008484840000000000FFFFFF00FFFFFF00FFFF 1407 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1408 FF00FFFFFF000000000084848400FFFFFF000000FF0000000000FFFFFF008484 1409 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000848484008484 1410 8400FFFFFF00FFFFFF00FFFFFF00FF000000FFFFFF00FFFFFF00FFFFFF008484 1411 84008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1412 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1413 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1414 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1415 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000C6C6C600C6C6 1416 C600C6C6C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFF 1417 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1418 FF00FFFFFF0000000000C6C6C600FFFFFF000000FF000000FF0000000000FFFF 1419 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000084848400FFFF 1420 FF00FF000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF000000FFFF 1421 FF008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1422 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000848400008484 1423 00008484000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1424 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1425 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000C6C6C6000000 1426 0000C6C6C6000000000000000000C6C6C60000000000FFFFFF00FFFFFF00FFFF 1427 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1428 FF00FFFFFF0000000000FFFFFF000000FF000000FF000000FF0000000000FFFF 1429 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000084848400C6C6C600FFFF 1430 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1431 FF00C6C6C6008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1432 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000848400008484 1433 00008484000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1434 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1435 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000C6C6C600C6C6 1436 C600C6C6C600C6C6C600C6C6C600C6C6C60000000000FFFFFF00FFFFFF00FFFF 1437 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1438 FF00FFFFFF00FFFFFF00848484000000FF000000FF000000FF000000FF000000 1439 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000084848400FFFFFF00FFFF 1440 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1441 FF00FFFFFF008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1442 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000848400008484 1443 0000848400008484000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1444 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1445 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000840000008400 1446 00008400000084000000840000008400000000000000FFFFFF00FFFFFF00FFFF 1447 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1448 FF00FFFFFF00848484000000FF000000FF00000000000000FF000000FF000000 1449 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000084848400FFFFFF000000 1450 00000000000000000000000000000000FF00FFFFFF00FFFFFF00FFFFFF00FF00 1451 0000FFFFFF008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1452 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000008484 1453 000084840000848400008484000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1454 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1455 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 1456 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 1457 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1458 FF000000FF000000FF0000000000FFFFFF00FFFFFF00848484000000FF000000 1459 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000084848400FFFFFF00FFFF 1460 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFF 1461 FF00FFFFFF008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1462 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1463 00008484000084840000848400008484000000000000FFFFFF00FFFFFF00FFFF 1464 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1465 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1466 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1467 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1468 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000FF000000 1469 FF0000000000FFFFFF00FFFFFF00FFFFFF000000000084848400C6C6C600FFFF 1470 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFF 1471 FF00C6C6C6008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1472 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000FFFFFF00FFFF 1473 FF000000000084840000848400008484000000000000FFFFFF00FFFFFF00FFFF 1474 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1475 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1476 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1477 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1478 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1479 FF000000FF0000000000FFFFFF00FFFFFF00FFFFFF000000000084848400FFFF 1480 FF00FF000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1481 FF008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1482 FF00FFFFFF00FFFFFF0000000000848400008484000084840000000000000000 1483 00000000000084840000848400008484000000000000FFFFFF00FFFFFF00FFFF 1484 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1485 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1486 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1487 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1488 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008484 1489 84000000FF0000000000FFFFFF00FFFFFF00FFFFFF0000000000848484008484 1490 8400FFFFFF00FFFFFF00FFFFFF00FF000000FFFFFF00FFFFFF00FFFFFF008484 1491 84008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1492 FF00FFFFFF00FFFFFF0000000000848400008484000084840000848400008484 1493 00008484000084840000848400008484000000000000FFFFFF00FFFFFF00FFFF 1494 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1495 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1496 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1497 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1498 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1499 FF00848484000000FF0000000000FFFFFF00FFFFFF00FFFFFF00000000008484 1500 840084848400C6C6C600FFFFFF00FF000000FFFFFF00C6C6C600848484008484 1501 840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1502 FF00FFFFFF00FFFFFF0000000000848400008484000084840000848400008484 1503 00008484000084840000848400008484000000000000FFFFFF00FFFFFF00FFFF 1504 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1505 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1506 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1507 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1508 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1509 FF00FFFFFF00848484000000FF0000000000FFFFFF00FFFFFF00FFFFFF000000 1510 0000000000008484840084848400848484008484840084848400000000000000 1511 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1512 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000084840000848400008484 1513 000084840000848400000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1514 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1515 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1516 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1517 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1518 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1519 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1520 FF00FFFFFF000000000000000000000000000000000000000000FFFFFF00FFFF 1521 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1522 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 1523 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1524 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1525 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1526 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1527 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1528 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1529 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1530 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1531 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1532 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1533 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1534 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1535 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1536 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1537 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1538 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1539 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1540 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1541 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1542 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1543 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1544 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 1545 8400FFFFFF000000000000000000000000000000000000000000FFFFFF000000 1546 84000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1547 FF00FFFFFF00000000000000000084840000FFFFFF0000000000000000000000 1548 00000000000000000000FFFFFF00848400000000000000000000FFFFFF00FFFF 1549 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1550 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1551 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1552 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1553 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1554 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000084000000 1555 000000000000000000000000FF00000000000000FF0000000000000000000000 1556 000000008400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1557 FF00FFFFFF00FFFFFF0084840000000000000000000000000000FFFF00000000 1558 0000FFFF000000000000000000000000000084840000FFFFFF00FFFFFF00FFFF 1559 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1560 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1561 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1562 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1563 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1564 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1565 00000000FF00C6C6C600FFFFFF0000000000FFFFFF00C6C6C6000000FF000000 1566 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1567 FF00FFFFFF00FFFFFF000000000000000000FFFF0000C6C6C600FFFFFF000000 1568 0000FFFFFF00C6C6C600FFFF00000000000000000000FFFFFF00FFFFFF00FFFF 1569 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1570 0000000000000000000000000000000000000000000000000000000000000000 1571 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1572 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 1573 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 1574 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0084848400000000000000 1575 FF00C6C6C60000000000FFFFFF00FFFFFF00FFFFFF0000000000C6C6C6000000 1576 FF000000000084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1577 FF00FFFFFF008484840000000000FFFF0000C6C6C60000000000FFFFFF00FFFF 1578 FF00FFFFFF0000000000C6C6C600FFFF00000000000084848400FFFFFF00FFFF 1579 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 1580 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 1581 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1582 FF00FFFFFF00FFFFFF00000000000000000000FFFF00C6C6C60000FFFF00C6C6 1583 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF0000000000FFFFFF00FFFF 1584 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000FF000000 1585 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1586 FF000000FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1587 FF00FFFFFF0000000000FFFF0000FFFF0000FFFFFF00FFFFFF0000000000FFFF 1588 FF00FFFFFF00FFFFFF00FFFFFF00FFFF0000FFFF000000000000FFFFFF00FFFF 1589 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF 1590 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 1591 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1592 FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000FFFF00C6C6C60000FF 1593 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF0000000000FFFF 1594 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000FF000000 1595 0000FFFFFF00000000000000000000000000FFFFFF00FFFFFF00000000000000 1596 00000000FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1597 FF00FFFFFF0000000000FFFF000000000000FFFFFF00FFFFFF00FFFFFF000000 1598 0000FFFFFF00FFFFFF000000000000000000FFFF000000000000FFFFFF00FFFF 1599 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 1600 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 1601 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1602 FF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF000000000000FFFF00C6C6 1603 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 1604 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FFFF00000000000000FF000000 1605 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 1606 FF000000FF000000000000FFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1607 FF00FFFFFF0000000000FFFF0000FFFF0000FFFFFF00FFFFFF00FFFFFF000000 1608 0000FFFFFF00FFFFFF00FFFFFF00FFFF0000FFFF000000000000FFFFFF00FFFF 1609 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF 1610 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 1611 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1612 FF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFFFF00000000000000 1613 0000000000000000000000000000000000000000000000000000000000000000 1614 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000084848400000000000000 1615 FF00C6C6C60000000000FFFFFF0000000000FFFFFF0000000000C6C6C6000000 1616 FF00000000008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1617 FF00FFFFFF008484840000000000FFFF0000C6C6C60000000000FFFFFF000000 1618 0000FFFFFF0000000000C6C6C600FFFF00000000000084848400FFFFFF00FFFF 1619 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 1620 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 1621 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1622 FF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 1623 FF00FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFFFF00FFFFFF00FFFF 1624 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FFFF0000FFFF00000000000000 1625 00000000FF00C6C6C600FFFFFF0000000000FFFFFF00C6C6C6000000FF000000 1626 00000000000000FFFF0000FFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1627 FF00FFFFFF00FFFFFF000000000000000000FFFF0000C6C6C600FFFFFF000000 1628 0000FFFFFF00C6C6C600FFFF00000000000000000000FFFFFF00FFFFFF00FFFF 1629 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFF 1630 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 1631 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1632 FF00FFFFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 1633 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFF 1634 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 1635 0000000000000000FF000000FF000000FF000000FF000000FF00000000000000 1636 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1637 FF000000000000000000000000000000000000000000FFFF0000FFFF0000FFFF 1638 0000FFFF0000FFFF00000000000000000000000000000000000000000000FFFF 1639 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1640 0000000000000000000000000000000000000000000000000000000000000000 1641 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1642 FF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 1643 FF00FFFFFF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 1644 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000C6C6C600C6C6C6008484 1645 840000000000000000000000000000000000000000000000000000000000C6C6 1646 C600848484008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1647 FF0000000000C6C6C600C6C6C600848484000000000000000000000000000000 1648 0000000000000000000000000000C6C6C600848484008484840000000000FFFF 1649 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 1650 0000FFFFFF0000FFFF00FFFFFF0000FFFF0000000000FFFFFF00FFFFFF00FFFF 1651 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1652 FF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF00FFFFFF0000FFFF00FFFF 1653 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1654 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000C6C6C600C6C6C600C6C6 1655 C600C6C6C60084848400848484000000000084848400C6C6C600C6C6C600C6C6 1656 C600C6C6C6008484840000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1657 FF0000000000C6C6C600C6C6C600C6C6C600C6C6C60084848400848484000000 1658 000084848400C6C6C600C6C6C600C6C6C600C6C6C6008484840000000000FFFF 1659 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF008484 1660 84000000000000000000000000000000000084848400FFFFFF00FFFFFF00FFFF 1661 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1662 FF00FFFFFF00FFFFFF00FFFFFF00848484000000000000000000000000000000 1663 000084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1664 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000FFFF000000000084848400C6C6 1665 C600C6C6C600000000000000000000FFFF000000000000000000C6C6C600C6C6 1666 C600848484000000000000FFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1667 FF00FFFFFF000000000084848400C6C6C600C6C6C60000000000848484000000 1668 00008484840000000000C6C6C600C6C6C6008484840000000000FFFFFF00FFFF 1669 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1670 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1671 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1672 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1673 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1674 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00848484000000 1675 00000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000000000 1676 000084848400FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1677 FF00FFFFFF00FFFFFF00848484000000000000000000FFFFFF00FFFFFF000000 1678 0000FFFFFF00FFFFFF00000000000000000084848400FFFFFF00FFFFFF00FFFF 1679 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1680 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1681 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1682 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1683 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1684 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FF 1685 FF0000FFFF000000000000FFFF000000000000FFFF000000000000FFFF0000FF 1686 FF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1687 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000 1688 000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1689 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1690 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1691 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1692 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1693 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1694 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000FFFF0000FF 1695 FF0000000000FFFFFF0000FFFF000000000000FFFF00FFFFFF000000000000FF 1696 FF0000FFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1697 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1698 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1699 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00424D3E000000000000003E000000 884 1700 2800000050000000300000000100010000000000400200000000000000000000 885 1701 000000000000000000000000FFFFFF0000000000000000000000000000000000 … … 909 1725 Bitmap = { 910 1726 494C01010F001300040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 911 0000000000003600000028000000400000005000000001001000000000000028 912 0000000000000000000000000000000000000000000000000000000000000000 913 0000000000000000000000000000000000000000000000000000000000000000 914 0000000000000000000000000000000000000000000000000000000000000000 915 0000000000000000000000000000000000000000000000000000000000000000 916 0000000000000000000000000000000000000000000000000000000000000000 917 0000000000000000000000000000000000000000000000000000000000000000 918 0000000000000000000000000000000000000000000000000000000000000000 919 0000000000000000000000000000000000000000000000000000000000000000 920 0000000000000000000000000000000000000000000000000000000000000000 921 0000000000000000000000000000000000000000000000000000000000000000 922 0000000000000000000000000000000000000000000000000000000000000000 923 0000000000000000000000000000000000000000000000000000000000000000 924 0000000000000000000000000000000000000000000000000000000000000000 925 0000000000000000000000000000000000000000000000000000000000000000 926 0000000000000000000000000000000000000000000000000000000000000000 927 0000000000000000000000000000000000000000000000000000000000000000 928 0000000000000000000000000000000000000000000000000000000000000000 929 0000000000000000000000000000000000000000000000000000000000000000 930 0000000000000000000000000000000000000000000000000000000000000000 931 0000000000000000000000000000000000000000000000000000000000000000 932 0000000000000000000000000000000000000000000000000000000000000000 933 0000000000000000000000000000000000000000000000000000000000000000 934 0000000000000000000000000000000000000000000000000000000000000000 935 0000000000000000000000000000000000000000000000000000000000000000 936 0000000000000000000000000000000000000000000000000000000000000000 937 0000000000000000000000000000000000000000000000000000000000000000 938 0000000000000000000000000000000000000000000000000000000000000000 939 0000000000000000000000000000000000000000000000000000000000000000 940 0000000000000000000000000000000000000000000000000000000000000000 941 0000000000000000000000000000000000000000000000000000000000000000 942 0000000000000000000000000000000000000000000000000000000000000000 943 0000000000000000000000000000000000000000000000000000000000000000 944 0000000000000000000000000000000000000000000000000000000000000000 945 0000000000000000000000000000000000000000000000000000000000000000 946 0000000000000000000000000000000000000000000000000000000000000000 947 0000000000000000000000000000000000000000000000000000000000000000 948 0000000000000000000000000000000000000000000000000000000000000000 949 0000000000000000000000000000000000000000000000000000000000000000 950 0000000000000000000000000000000000000000000000000000000000000000 951 0000000000000000000000000000000000000000000000000000000000000000 952 0000000000000000000000000000000000000000000000000000000000000000 953 0000000000000000000000000000000000000000000000000000000000000000 954 0000000000000000000000000000000000000000000000000000000000000000 955 0000000000000000000000000000000000000000000000000000000000000000 956 0000000000000000000000000000000000000000000000000000000000000000 957 0000000000000000000000000000000000000000000000000000000000000000 958 0000000000000000000000000000000000000000000000000000000000000000 959 0000000000000000000000000000000000000000000000000000000000000000 960 0000000000000000000000000000000000000000000000000000000000000000 961 0000000000000000000000000000000000000000000000000000000000000000 962 0000000000000000000000000000000000000000000000000000000000000000 963 0000000000000000000000000000000000000000000000000000000000000000 964 0000000000000000000000000000000000000000000000000000000000000000 965 0000000000000000000000000000000000000000000000000000000000000000 966 0000000000000000000000000000000000000000000000000000000000000000 967 0000000000000000000000000000000000000000000000000000000000000000 968 0000000000000000000000000000000000000000000000000000000000000000 969 0000000000000000000000000000000000000000000000000000000000000000 970 0000000000000000000000000000000000000000000000000000000000000000 971 0000000000000000000000000000000000000000000000000000000000000000 972 0000000000000000000000000000000000000000000000000000000000000000 973 0000000000000000000000000000000000000000000000000000000000000000 974 0000000000000000000000000000000000000000000000000000000000000000 975 0000000000000000000000000000000000000000000000000000000000000000 976 0000000000000000000000000000000000000000000000000000000000000000 977 0000000000000000000000000000000000000000000000000000000000000000 978 0000000000000000000000000000000000000000000000000000000000000000 979 0000000000000000000000000000000000000000000000000000000000000000 980 0000000000000000000000000000000000000000000000000000000000000000 981 0000000000000000000000000000000000000000000000000000000000000000 982 0000000000000000000000000000000000000000000000000000000000000000 983 0000000000000000000000000000000000000000000000000000000000000000 984 0000000000000000000000000000000000000000000000000000000000000000 985 0000000000000000000000000000000000000000000000000000000000000000 986 0000000000000000000000000000000000000000000000000000000000000000 987 0000000000000000000000000000000000000000000000000000000000000000 988 0000000000000000000000000000000000000000000000000000000000000000 989 0000000000000000000000000000000000000000000000000000000000000000 990 0000000000000000000000000000000000000000000000000000000000000000 991 0000000000000000000000000000000000000000000000000000000000000000 992 0000000000000000000000000000000000000000000000000000000000000000 993 0000000000000000000000000000000000000000000000000000000000000000 994 FF7FFF7F00000000000000000000000000000000000000000000000000000000 995 0000000000000000000000000000000000000000000000000000000000000000 996 00000000000000000000000000000000000000000000000000001042FF7FFF7F 997 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000001042 998 1042FF7FFF7F0000000000000000000000000000000000000000000000000000 999 0000000000000000000000000000000000000000000000000000000000000000 1000 0000000000000000000000000000000000000000000000000000104210420000 1001 000000000000FF7FFF7F00000000000000000000000000000000000000001042 1002 00000000FF7F0000000000000000000000000000000000000000000000000000 1003 0000000000000000000000000000000000000000000000000000000000000000 1004 0000000000000000000000000000000000000000000000000000000010420000 1005 000000000000FF7F000000000000000000000000000000000000000010421042 1006 00000000FF7FFF7F000000000000000000000000000000000000000000000000 1007 0000000000000000000000000000000000000000000000000000000000000000 1008 0000000000000000000000000000000000000000000000000000000010421042 1009 00000000FF7FFF7F000000000000000000000000000000000000000010420000 1010 000000000000FF7F000000000000000000000000000000000000000000000000 1011 0000000000000000000000000000000000000000000000000000000000000000 1012 0000000000000000000000000000000000000000000000000000000000001042 1013 00000000FF7F0000000000000000000000000000000000000000104210420000 1014 000000000000FF7FFF7F00000000000000000000000000000000000000000000 1015 0000000000000000000000000000000000000000000000000000000000000000 1016 0000000000000000000000000000000000000000000000000000000000001042 1017 1042FF7FFF7F0000000000000000000000000000000000000000104210421042 1018 1042104210421042FF7F00000000000000000000000000000000000000000000 1019 0000000000000000000000000000000000000000000000000000000000000000 1020 0000000000000000000000000000000000000000000000000000000000000000 1021 1042FF7F00000000000000000000000000000000000000000000000000000000 1022 0000000000000000000000000000000000000000000000000000000000000000 1023 0000000000000000000000000000000000000000000000000000000000000000 1024 0000000000000000000000000000000000000000000000000000000000000000 1025 0000000000000000000000000000000000000000000000000000000000000000 1026 0000000000000000000000000000000000000000000000000000000000000000 1027 0000000000000000000000000000000000000000000000000000000000000000 1028 0000000000000000000000000000000000000000000000000000000000000000 1029 0000000000000000000000000000000000000000000000000000000000000000 1030 0000000000000000000000000000000000000000000000000000000000000000 1031 0000000000000000000000000000000000000000000000000000000000000000 1032 0000000000000000000000000000000000000000000000000000000000000000 1033 0000000000000000000000000000000000000000000000000000000000000000 1034 0000000000000000000000000000000000000000000000000000000000000000 1035 0000000000000000000000000000000000000000000000000000000000000000 1036 0000000000000000000000000000000000000000000000000000000000000000 1037 0000000000000000000000000000000000000000000000000000000000000000 1038 0000000000000000000000000000000000000000000000000000000000000000 1039 0000000000000000000000000000000000000000000000000000000000000000 1040 0000000000000000000000000000000000000000000000000000000000000000 1041 0000000000000000000000000000000000000000000000000000000000000000 1042 0000000000000000000000000000000000000000000000000000000000000000 1043 0000000000000000000000000000000000000000000000000000000000000000 1044 0000000000000000000000000000000000000000000000000000000000000000 1045 0000000000000000000000000000000000000000000000000000000000000000 1046 0000000000000000000000000000000000000000000000000000000000000000 1047 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000 1048 0000000000000000000000000000000000000000000000000000000000000000 1049 0000000000000000000000000000000000000000000000000000FF7FFF7FFF7F 1050 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 1051 FF7F0000000000000000FF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 1052 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 1053 0000000000000000000000000000000000000000000000000000FF7F00000000 1054 00000000FF7FFF7FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1055 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 1056 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 1057 0000000000000000000000000000000000000000000000000000FF7FFF7FFF7F 1058 FF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1059 FF7F000000000000000000000000FF7F00000000000000000000FF7FFF7FFF7F 1060 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000E07F1863E07F1863 1061 E07F0000E07F1863E07F00000000000000000000000000000000FF7F00000000 1062 0000000000000000FF7F00000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1063 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 1064 FF7FFF7FFF7FFF7FFF7F000000000000000000000000FF7F0000E07F1863E07F 1065 00000000000000001863E07F0000000000000000000000000000FF7FFF7FFF7F 1066 FF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1067 FF7F000000000000000000000000FF7F00000000000000000000FF7FFF7FFF7F 1068 0000FF7FFF7FFF7FFF7F000000000000000000000000E07FFF7F0000E07F1863 1069 E07F186300001863E07F1863E07F000000000000000000000000FF7F00000000 1070 0000000000000000FF7F00000000000000000000FF7FFF7F0000FF7FFF7F0000 1071 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 1072 0000FF7FFF7FFF7FFF7F000000000000000000000000FF7FE07F000000000000 1073 0000000000000000000000000000000000000000000000000000FF7FFF7FFF7F 1074 FF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7F0000FF7FFF7F0000 1075 FF7F000000000000FF7FFF7FFF7FFF7F00000000000000000000FF7F00000000 1076 000000000000FF7FFF7F000000000000000000000000E07FFF7FE07FFF7FE07F 1077 FF7FE07FFF7FE07F000000000000000000000000000000000000FF7F00000000 1078 0000FF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 1079 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000FF7FFF7FFF7F 1080 0000FF7FFF7FFF7FFF7F000000000000000000000000FF7FE07FFF7FE07FFF7F 1081 E07FFF7FE07FFF7F000000000000000000000000000000000000FF7FFF7FFF7F 1082 FF7FFF7F00000000000000000000000000000000FF7FFF7F0000FF7FFF7F0000 1083 FF7F00000000FF7FFF7F0000FF7F000000000000000000000000FF7FFF7FFF7F 1084 0000FF7FFF7FFF7FFF7F000000000000000000000000E07FFF7FE07FFF7FE07F 1085 FF7F000000000000000000000000000000000000000000000000FF7F00000000 1086 FF7FFF7F0000FF7F000000000000000000000000FF7FFF7F0000FF7FFF7F0000 1087 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000FF7FFF7FFF7F 1088 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000E07FFF7FE07FFF7F 1089 0000000000000000000000000000000000000000000000000000FF7FFF7FFF7F 1090 FF7FFF7F00000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1091 0000000000000000000000000000000000000000000000000000FF7FFF7FFF7F 1092 FF7FFF7FFF7FFF7FFF7F00000000000000000000000010420000000000000000 1093 1042000000000000000000000000000000000000000000000000000000000000 1094 0000000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F 1095 FF7F000000000000000000000000000000000000000000000000000000000000 1096 0000000000000000000000000000000000000000000000000000000000000000 1097 0000000000000000000000000000000000000000000000000000000000000000 1098 0000000000000000000000000000000000000000000000000000000000000000 1099 0000000000000000000000000000000000000000000000000000000000000000 1100 0000000000000000000000000000000000000000000000000000000000000000 1101 0000000000000000000000000000000000000000000000000000000000000000 1102 0000000000000000000000000000000000000000000000000000000000000000 1103 0000000000000000000000000000000000000000000000000000000000000000 1104 0000000000000000000000000000000000000000000000000000000000000000 1105 0000000000000000000000000000000000000000000000000000000000000000 1106 0000000000000000000000000000000000000000000000000000000000000000 1107 0000000000000000000000000000000000000000000000000000000000000000 1108 0000000000000000000000000000000000000000000000000000000000000000 1109 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000 1110 0000000000000000000000000000000000000000000000000000000000000000 1111 0000000000000000000000000000000000000000000000000000000000000000 1112 0000000000000000000000000000000000000000000000000000000000000000 1113 FF7F0000000000000000FF7FFF7FFF7F00000000000000000000000000000000 1114 0000000000000000000000000000000000000000000000000000000000000000 1115 0000000000000000000000000000000000000000000000000000000000000000 1116 0000000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1117 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000 1118 0000000000000000000000000000000000000000000000000000000000000000 1119 0000000000000000000000000000000000000000000000000000000000000000 1120 0000000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1121 FF7F000000000000000000000000FF7F0000000000000000E07FFF7FE07FFF7F 1122 E07FFF7FE07FFF7FE07F00000000000000000000000000000000000000000000 1123 000000000000000000000000000000000000000000000000E07FFF7FE07FFF7F 1124 0000FF7FE07FFF7FE07F00000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1125 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000FF7FE07FFF7FE07F 1126 FF7FE07FFF7FE07FFF7F0000000000000000000000000000E07FF75EE07FF75E 1127 E07FF75EE07FF75EE07F0000000000000000000000000000FF7FE07FFF7FE07F 1128 0000E07FFF7FE07FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1129 FF7F000000000000000000000000FF7F0000000000000000E07FFF7FE07FFF7F 1130 E07FFF7FE07FFF7FE07F000000000000000000000000FF7F0000E07FF75EE07F 1131 F75EE07FF75EE07FF75EE07F000000000000000000000000E07FFF7F00000000 1132 000000000000FF7FE07F00000000000000000000FF7FFF7F0000FF7FFF7F0000 1133 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000FF7FE07FFF7FE07F 1134 FF7FE07FFF7FE07FFF7F000000000000000000000000E07FFF7F0000E07FF75E 1135 E07FF75EE07FF75EE07FF75EE07F00000000000000000000FF7FE07FFF7FE07F 1136 0000E07FFF7FE07FFF7F00000000000000000000FF7FFF7F0000FF7FFF7F0000 1137 FF7F000000000000FF7F00000000FF7F0000000000000000E07FFF7FE07FFF7F 1138 E07FFF7FE07FFF7FE07F000000000000000000000000FF7FE07FFF7F00000000 1139 000000000000000000000000000000000000000000000000E07FFF7FE07FFF7F 1140 0000FF7FE07FFF7FE07F00000000000000000000000000000000000000000000 1141 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F0000000000000000FF7FE07FFF7FE07F 1142 FF7FE07FFF7FE07FFF7F000000000000000000000000E07FFF7FE07FFF7FE07F 1143 FF7FE07FFF7FE07F00000000000000000000000000000000FF7FE07FFF7FE07F 1144 FF7FE07FFF7FE07FFF7F00000000000000000000FF7FFF7F0000FF7FFF7F0000 1145 FF7F00000000FF7F000000000000FF7F00000000000000000000000000000000 1146 00000000000000000000000000000000000000000000FF7FE07FFF7FE07FFF7F 1147 E07FFF7FE07FFF7F000000000000000000000000000000000000000000000000 1148 0000000000000000000000000000000000000000FF7FFF7F0000FF7FFF7F0000 1149 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FE07FFF7F 1150 E07F0000000000000000000000000000000000000000E07FFF7FE07FFF7FE07F 1151 FF7F000000000000000000000000000000000000000000000000FF7FE07FFF7F 1152 E07F000000000000000000000000000000000000FF7FFF7FFF7FFF7FFF7F0000 1153 000000000000000000000000000000000000000000000000EF3D000000000000 1154 0000EF3D0000000000000000000000000000000000000000E07FFF7FE07FFF7F 1155 0000000000000000000000000000000000000000000000001042000000000000 1156 0000104200000000000000000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F 1157 FF7F000000000000000000000000000000000000000000000000000000000000 1158 00000000000000000000000000000000000000000000EF3D0000000000000000 1159 EF3D000000000000000000000000000000000000000000000000000000000000 1160 0000000000000000000000000000000000000000000000000000000000000000 1161 0000000000000000000000000000000000000000000000000000000000000000 1162 0000000000000000000000000000000000000000000000000000000000000000 1163 0000000000000000000000000000000000000000000000000000000000000000 1164 0000000000000000000000000000000000000000000000000000000000000000 1165 0000000000000000000000000000000000000000000000000000000000000000 1166 0000000000000000000000000000000000000000000000000000000000000000 1167 0000000000000000000000000000000000000000000000000000000000000000 1168 0000000000000000000000000000000000000000000000000000000000000000 1169 0000000000000000000000000000000000000000000000000000000000000000 1170 0000000000000000000000000000000000000000000000000000000000000000 1171 0000000000000000000000000000000000000000000000000000000000000000 1172 0000000000000000000000000000000000000000000000000000000000000000 1173 0000000000000000000000000000000000000000000000000000000000000000 1174 000000000000F75E000000000000000000000000000000000000000000000000 1175 000000000000F75E000000000000000000000000000000000000000000000000 1176 0000000000000000000000000000000000000000000000000000000000000000 1177 0000000000000000000000000000000000000000000000000000E07FE07FE07F 1178 E07FE07F00000000F75E00000000000000000000000000000000E07FE07FE07F 1179 E07FE07F00000000F75E00000000000000000000000000000000FF7FFF7FFF7F 1180 FF7FFF7FFF7FFF7FFF7F000000000000000000000000000000000000E07FE07F 1181 E07F000000000000000000000000000000000000000000000000E07F00000000 1182 0000E07F000000420000F75E0000000000000000000000000000E07F00000000 1183 0000E07F000000420000F75E0000000000000000000000000000FF7F00000000 1184 00000000FF7FFF7FFF7F000000000000000000000000000000000000E07FE07F 1185 0000000000000000000000000000000000000000000000000000E07FE07FE07F 1186 E07FE07F00000042004200000000000000000000000000000000000000000000 1187 0000E07F00000042004200000000000000000000000000000000FF7FFF7FFF7F 1188 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 1189 0000000000000000000000000000000000000000000000000000E07FE07FE07F 1190 E07FE07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 1191 0000000000000042004200000000000000000000000000000000FF7F00000000 1192 0000000000000000FF7F00000000000000000000000000000000000000000000 1193 0000000000000000000000000000000000000000000000000000000000000000 1194 00000000000000420042000000000000000000000000E07F000000000000E07F 1195 0000F75E00000042004200000000000000000000000000000000FF7FFF7FFF7F 1196 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 1197 0000000000000000000000000000000000000000000000000000E07FE07FE07F 1198 E07FE07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 1199 0000F75E00000042004200000000000000000000000000000000FF7F00000000 1200 0000000000000000FF7F000000000000000000000000000000000000E07FE07F 1201 E07F000000000000000000000000000000000000000000000000E07F00000000 1202 0000E07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 1203 0000000000000042004200000000000000000000000000000000FF7FFF7FFF7F 1204 FF7FFF7FFF7FFF7FFF7F000000000000000000000000000000000000E07FE07F 1205 0000000000000000000000000000000000000000000000000000E07FE07FE07F 1206 E07FE07F00000042004200000000000000000000000000000000000000000000 1207 0000EF3D00000042004200000000000000000000000000000000FF7F00000000 1208 0000FF7F00000000FF7F00000000000000000000000000000000000000000000 1209 0000000000000000000000000000000000000000000000000000E07FE07FE07F 1210 E07FE07F00000042004200000000000000000000000000000000FF7FFF7FFF7F 1211 EF3DEF3D00000042004200000000000000000000000000000000FF7FFF7FFF7F 1212 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 1213 0000000000000000000000000000000000000000000000000000000000000000 1214 0000000000000000004200000000000000000000000000000000000000000000 1215 0000000000000000004200000000000000000000000000000000FF7F00000000 1216 FF7F000000000000FF7F00000000000000000000000000000000000000000000 1217 000000000000000000000000000000000000000000000000EF3DEF3DEF3DEF3D 1218 EF3DEF3DEF3D000000000000000000000000000000000000EF3DEF3DEF3DEF3D 1219 EF3DEF3DEF3D0000000000000000000000000000000000000000FF7FFF7FFF7F 1220 FF7FFF7FFF7FFF7FFF7F00000000000000000000E07FE07FE07F000000000000 1221 00000000000000000000000000000000000000000000000000000000E07F0042 1222 E07F0042E07F004200000000000000000000000000000000000000000042E07F 1223 0042E07F0042E07F000000000000000000000000000000000000000000000000 1224 0000000000000000000000000000000000000000E07FE07F0000000000000000 1225 0000000000000000000000000000000000000000000000000000000000000000 1226 0042E07F0042E07F004200000000000000000000000000000000000000000000 1227 E07F0042E07F0042E07F00000000000000000000000000000000000000000000 1228 0000000000000000000000000000000000000000000000000000000000000000 1229 000000000000000000000000000000000000000000000000000000000000EF3D 1230 000000000000000000000000000000000000000000000000000000000000EF3D 1727 0000000000003600000028000000400000005000000001002000000000000050 1728 0000000000000000000000000000000000000000000000000000000000000000 1729 0000000000000000000000000000000000000000000000000000000000000000 1730 0000000000000000000000000000000000000000000000000000000000000000 1731 0000000000000000000000000000000000000000000000000000000000000000 1732 0000000000000000000000000000000000000000000000000000000000000000 1733 0000000000000000000000000000000000000000000000000000000000000000 1734 0000000000000000000000000000000000000000000000000000000000000000 1735 0000000000000000000000000000000000000000000000000000000000000000 1736 0000000000000000000000000000000000000000000000000000000000000000 1737 0000000000000000000000000000000000000000000000000000000000000000 1738 0000000000000000000000000000000000000000000000000000000000000000 1739 0000000000000000000000000000000000000000000000000000000000000000 1740 0000000000000000000000000000000000000000000000000000000000000000 1741 0000000000000000000000000000000000000000000000000000000000000000 1742 0000000000000000000000000000000000000000000000000000000000000000 1743 0000000000000000000000000000000000000000000000000000000000000000 1744 0000000000000000000000000000000000000000000000000000000000000000 1745 0000000000000000000000000000000000000000000000000000000000000000 1746 0000000000000000000000000000000000000000000000000000000000000000 1747 0000000000000000000000000000000000000000000000000000000000000000 1748 0000000000000000000000000000000000000000000000000000000000000000 1749 0000000000000000000000000000000000000000000000000000000000000000 1750 0000000000000000000000000000000000000000000000000000000000000000 1751 0000000000000000000000000000000000000000000000000000000000000000 1752 0000000000000000000000000000000000000000000000000000000000000000 1753 0000000000000000000000000000000000000000000000000000000000000000 1754 0000000000000000000000000000000000000000000000000000000000000000 1755 0000000000000000000000000000000000000000000000000000000000000000 1756 0000000000000000000000000000000000000000000000000000000000000000 1757 0000000000000000000000000000000000000000000000000000000000000000 1758 0000000000000000000000000000000000000000000000000000000000000000 1759 0000000000000000000000000000000000000000000000000000000000000000 1760 0000000000000000000000000000000000000000000000000000000000000000 1761 0000000000000000000000000000000000000000000000000000000000000000 1762 0000000000000000000000000000000000000000000000000000000000000000 1763 0000000000000000000000000000000000000000000000000000000000000000 1764 0000000000000000000000000000000000000000000000000000000000000000 1765 0000000000000000000000000000000000000000000000000000000000000000 1766 0000000000000000000000000000000000000000000000000000000000000000 1767 0000000000000000000000000000000000000000000000000000000000000000 1768 0000000000000000000000000000000000000000000000000000000000000000 1769 0000000000000000000000000000000000000000000000000000000000000000 1770 0000000000000000000000000000000000000000000000000000000000000000 1771 0000000000000000000000000000000000000000000000000000000000000000 1772 0000000000000000000000000000000000000000000000000000000000000000 1773 0000000000000000000000000000000000000000000000000000000000000000 1774 0000000000000000000000000000000000000000000000000000000000000000 1775 0000000000000000000000000000000000000000000000000000000000000000 1776 0000000000000000000000000000000000000000000000000000000000000000 1777 0000000000000000000000000000000000000000000000000000000000000000 1778 0000000000000000000000000000000000000000000000000000000000000000 1779 0000000000000000000000000000000000000000000000000000000000000000 1780 0000000000000000000000000000000000000000000000000000000000000000 1781 0000000000000000000000000000000000000000000000000000000000000000 1782 0000000000000000000000000000000000000000000000000000000000000000 1783 0000000000000000000000000000000000000000000000000000000000000000 1784 0000000000000000000000000000000000000000000000000000000000000000 1785 0000000000000000000000000000000000000000000000000000000000000000 1786 0000000000000000000000000000000000000000000000000000000000000000 1787 0000000000000000000000000000000000000000000000000000000000000000 1788 0000000000000000000000000000000000000000000000000000000000000000 1789 0000000000000000000000000000000000000000000000000000000000000000 1790 0000000000000000000000000000000000000000000000000000000000000000 1791 0000000000000000000000000000000000000000000000000000000000000000 1792 0000000000000000000000000000000000000000000000000000000000000000 1793 0000000000000000000000000000000000000000000000000000000000000000 1794 0000000000000000000000000000000000000000000000000000000000000000 1795 0000000000000000000000000000000000000000000000000000000000000000 1796 0000000000000000000000000000000000000000000000000000000000000000 1797 0000000000000000000000000000000000000000000000000000000000000000 1798 0000000000000000000000000000000000000000000000000000000000000000 1799 0000000000000000000000000000000000000000000000000000000000000000 1800 0000000000000000000000000000000000000000000000000000000000000000 1801 0000000000000000000000000000000000000000000000000000000000000000 1802 0000000000000000000000000000000000000000000000000000000000000000 1803 0000000000000000000000000000000000000000000000000000000000000000 1804 0000000000000000000000000000000000000000000000000000000000000000 1805 0000000000000000000000000000000000000000000000000000000000000000 1806 0000000000000000000000000000000000000000000000000000000000000000 1807 0000000000000000000000000000000000000000000000000000000000000000 1808 0000000000000000000000000000000000000000000000000000000000000000 1809 0000000000000000000000000000000000000000000000000000000000000000 1810 0000000000000000000000000000000000000000000000000000000000000000 1811 0000000000000000000000000000000000000000000000000000000000000000 1812 0000000000000000000000000000000000000000000000000000000000000000 1813 0000000000000000000000000000000000000000000000000000000000000000 1814 0000000000000000000000000000000000000000000000000000000000000000 1815 0000000000000000000000000000000000000000000000000000000000000000 1816 0000000000000000000000000000000000000000000000000000000000000000 1817 0000000000000000000000000000000000000000000000000000000000000000 1818 0000000000000000000000000000000000000000000000000000000000000000 1819 0000000000000000000000000000000000000000000000000000000000000000 1820 0000000000000000000000000000000000000000000000000000000000000000 1821 0000000000000000000000000000000000000000000000000000000000000000 1822 0000000000000000000000000000000000000000000000000000000000000000 1823 0000000000000000000000000000000000000000000000000000000000000000 1824 0000000000000000000000000000000000000000000000000000000000000000 1825 0000000000000000000000000000000000000000000000000000000000000000 1826 0000000000000000000000000000000000000000000000000000000000000000 1827 0000000000000000000000000000000000000000000000000000000000000000 1828 0000000000000000000000000000000000000000000000000000000000000000 1829 0000000000000000000000000000000000000000000000000000000000000000 1830 0000000000000000000000000000000000000000000000000000000000000000 1831 0000000000000000000000000000000000000000000000000000000000000000 1832 0000000000000000000000000000000000000000000000000000000000000000 1833 0000000000000000000000000000000000000000000000000000000000000000 1834 0000000000000000000000000000000000000000000000000000000000000000 1835 0000000000000000000000000000000000000000000000000000000000000000 1836 0000000000000000000000000000000000000000000000000000000000000000 1837 0000000000000000000000000000000000000000000000000000000000000000 1838 0000000000000000000000000000000000000000000000000000000000000000 1839 0000000000000000000000000000000000000000000000000000000000000000 1840 0000000000000000000000000000000000000000000000000000000000000000 1841 0000000000000000000000000000000000000000000000000000000000000000 1842 0000000000000000000000000000000000000000000000000000000000000000 1843 0000000000000000000000000000000000000000000000000000000000000000 1844 0000000000000000000000000000000000000000000000000000000000000000 1845 0000000000000000000000000000000000000000000000000000000000000000 1846 0000000000000000000000000000000000000000000000000000000000000000 1847 0000000000000000000000000000000000000000000000000000000000000000 1848 0000000000000000000000000000000000000000000000000000000000000000 1849 0000000000000000000000000000000000000000000000000000000000000000 1850 0000000000000000000000000000000000000000000000000000000000000000 1851 0000000000000000000000000000000000000000000000000000000000000000 1852 0000000000000000000000000000000000000000000000000000000000000000 1853 0000000000000000000000000000000000000000000000000000000000000000 1854 0000000000000000000000000000000000000000000000000000000000000000 1855 0000000000000000000000000000000000000000000000000000000000000000 1856 0000000000000000000000000000000000000000000000000000000000000000 1857 0000000000000000000000000000000000000000000000000000000000000000 1858 0000000000000000000000000000000000000000000000000000000000000000 1859 0000000000000000000000000000000000000000000000000000000000000000 1860 0000000000000000000000000000000000000000000000000000000000000000 1861 0000000000000000000000000000000000000000000000000000000000000000 1862 0000000000000000000000000000000000000000000000000000000000000000 1863 0000000000000000000000000000000000000000000000000000000000000000 1864 0000000000000000000000000000000000000000000000000000000000000000 1865 0000000000000000000000000000000000000000000000000000000000000000 1866 0000000000000000000000000000000000000000000000000000000000000000 1867 0000000000000000000000000000000000000000000000000000000000000000 1868 0000000000000000000000000000000000000000000000000000000000000000 1869 0000000000000000000000000000000000000000000000000000000000000000 1870 0000000000000000000000000000000000000000000000000000000000000000 1871 0000000000000000000000000000000000000000000000000000000000000000 1872 0000000000000000000000000000000000000000000000000000000000000000 1873 0000000000000000000000000000000000000000000000000000000000000000 1874 0000000000000000000000000000000000000000000000000000000000000000 1875 0000000000000000000000000000000000000000000000000000000000000000 1876 0000000000000000000000000000000000000000000000000000000000000000 1877 0000000000000000000000000000000000000000000000000000000000000000 1878 0000000000000000000000000000000000000000000000000000000000000000 1879 0000000000000000000000000000000000000000000000000000000000000000 1880 0000000000000000000000000000000000000000000000000000000000000000 1881 0000000000000000000000000000000000000000000000000000000000000000 1882 0000000000000000000000000000000000000000000000000000000000000000 1883 0000000000000000000000000000000000000000000000000000000000000000 1884 0000000000000000000000000000000000000000000000000000000000000000 1885 0000000000000000000000000000000000000000000000000000000000000000 1886 0000000000000000000000000000000000000000000000000000000000000000 1887 0000000000000000000000000000000000000000000000000000000000000000 1888 0000000000000000000000000000000000000000000000000000000000000000 1889 0000000000000000000000000000000000000000000000000000000000000000 1890 0000000000000000000000000000000000000000000000000000000000000000 1891 0000000000000000000000000000FFFFFF00FFFFFF0000000000000000000000 1892 0000000000000000000000000000000000000000000000000000000000000000 1893 0000000000000000000000000000000000000000000000000000000000000000 1894 0000000000000000000000000000000000000000000000000000000000000000 1895 0000000000000000000000000000000000000000000000000000000000000000 1896 0000000000000000000000000000000000000000000000000000000000000000 1897 000084848400FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1898 FF00000000000000000000000000000000000000000000000000000000000000 1899 000000000000000000008484840084848400FFFFFF00FFFFFF00000000000000 1900 0000000000000000000000000000000000000000000000000000000000000000 1901 0000000000000000000000000000000000000000000000000000000000000000 1902 0000000000000000000000000000000000000000000000000000000000000000 1903 0000000000000000000000000000000000000000000000000000000000000000 1904 0000000000000000000000000000000000000000000000000000000000000000 1905 0000848484008484840000000000000000000000000000000000FFFFFF00FFFF 1906 FF00000000000000000000000000000000000000000000000000000000000000 1907 00000000000000000000848484000000000000000000FFFFFF00000000000000 1908 0000000000000000000000000000000000000000000000000000000000000000 1909 0000000000000000000000000000000000000000000000000000000000000000 1910 0000000000000000000000000000000000000000000000000000000000000000 1911 0000000000000000000000000000000000000000000000000000000000000000 1912 0000000000000000000000000000000000000000000000000000000000000000 1913 0000000000008484840000000000000000000000000000000000FFFFFF000000 1914 0000000000000000000000000000000000000000000000000000000000000000 1915 00000000000084848400848484000000000000000000FFFFFF00FFFFFF000000 1916 0000000000000000000000000000000000000000000000000000000000000000 1917 0000000000000000000000000000000000000000000000000000000000000000 1918 0000000000000000000000000000000000000000000000000000000000000000 1919 0000000000000000000000000000000000000000000000000000000000000000 1920 0000000000000000000000000000000000000000000000000000000000000000 1921 00000000000084848400848484000000000000000000FFFFFF00FFFFFF000000 1922 0000000000000000000000000000000000000000000000000000000000000000 1923 0000000000008484840000000000000000000000000000000000FFFFFF000000 1924 0000000000000000000000000000000000000000000000000000000000000000 1925 0000000000000000000000000000000000000000000000000000000000000000 1926 0000000000000000000000000000000000000000000000000000000000000000 1927 0000000000000000000000000000000000000000000000000000000000000000 1928 0000000000000000000000000000000000000000000000000000000000000000 1929 00000000000000000000848484000000000000000000FFFFFF00000000000000 1930 0000000000000000000000000000000000000000000000000000000000000000 1931 0000848484008484840000000000000000000000000000000000FFFFFF00FFFF 1932 FF00000000000000000000000000000000000000000000000000000000000000 1933 0000000000000000000000000000000000000000000000000000000000000000 1934 0000000000000000000000000000000000000000000000000000000000000000 1935 0000000000000000000000000000000000000000000000000000000000000000 1936 0000000000000000000000000000000000000000000000000000000000000000 1937 000000000000000000008484840084848400FFFFFF00FFFFFF00000000000000 1938 0000000000000000000000000000000000000000000000000000000000000000 1939 000084848400848484008484840084848400848484008484840084848400FFFF 1940 FF00000000000000000000000000000000000000000000000000000000000000 1941 0000000000000000000000000000000000000000000000000000000000000000 1942 0000000000000000000000000000000000000000000000000000000000000000 1943 0000000000000000000000000000000000000000000000000000000000000000 1944 0000000000000000000000000000000000000000000000000000000000000000 1945 000000000000000000000000000084848400FFFFFF0000000000000000000000 1946 0000000000000000000000000000000000000000000000000000000000000000 1947 0000000000000000000000000000000000000000000000000000000000000000 1948 0000000000000000000000000000000000000000000000000000000000000000 1949 0000000000000000000000000000000000000000000000000000000000000000 1950 0000000000000000000000000000000000000000000000000000000000000000 1951 0000000000000000000000000000000000000000000000000000000000000000 1952 0000000000000000000000000000000000000000000000000000000000000000 1953 0000000000000000000000000000000000000000000000000000000000000000 1954 0000000000000000000000000000000000000000000000000000000000000000 1955 0000000000000000000000000000000000000000000000000000000000000000 1956 0000000000000000000000000000000000000000000000000000000000000000 1957 0000000000000000000000000000000000000000000000000000000000000000 1958 0000000000000000000000000000000000000000000000000000000000000000 1959 0000000000000000000000000000000000000000000000000000000000000000 1960 0000000000000000000000000000000000000000000000000000000000000000 1961 0000000000000000000000000000000000000000000000000000000000000000 1962 0000000000000000000000000000000000000000000000000000000000000000 1963 0000000000000000000000000000000000000000000000000000000000000000 1964 0000000000000000000000000000000000000000000000000000000000000000 1965 0000000000000000000000000000000000000000000000000000000000000000 1966 0000000000000000000000000000000000000000000000000000000000000000 1967 0000000000000000000000000000000000000000000000000000000000000000 1968 0000000000000000000000000000000000000000000000000000000000000000 1969 0000000000000000000000000000000000000000000000000000000000000000 1970 0000000000000000000000000000000000000000000000000000000000000000 1971 0000000000000000000000000000000000000000000000000000000000000000 1972 0000000000000000000000000000000000000000000000000000000000000000 1973 0000000000000000000000000000000000000000000000000000000000000000 1974 0000000000000000000000000000000000000000000000000000000000000000 1975 0000000000000000000000000000000000000000000000000000000000000000 1976 0000000000000000000000000000000000000000000000000000000000000000 1977 0000000000000000000000000000000000000000000000000000000000000000 1978 0000000000000000000000000000000000000000000000000000000000000000 1979 0000000000000000000000000000000000000000000000000000000000000000 1980 0000000000000000000000000000000000000000000000000000000000000000 1981 0000000000000000000000000000000000000000000000000000000000000000 1982 0000000000000000000000000000000000000000000000000000000000000000 1983 0000000000000000000000000000000000000000000000000000000000000000 1984 0000000000000000000000000000000000000000000000000000000000000000 1985 0000000000000000000000000000000000000000000000000000000000000000 1986 0000000000000000000000000000000000000000000000000000000000000000 1987 0000000000000000000000000000000000000000000000000000000000000000 1988 0000000000000000000000000000000000000000000000000000000000000000 1989 0000000000000000000000000000000000000000000000000000000000000000 1990 0000000000000000000000000000000000000000000000000000000000000000 1991 0000000000000000000000000000000000000000000000000000000000000000 1992 0000000000000000000000000000000000000000000000000000000000000000 1993 0000000000000000000000000000000000000000000000000000000000000000 1994 0000000000000000000000000000000000000000000000000000000000000000 1995 0000000000000000000000000000000000000000000000000000000000000000 1996 0000000000000000000000000000000000000000000000000000000000000000 1997 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 1998 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 1999 0000000000000000000000000000000000000000000000000000000000000000 2000 0000000000000000000000000000000000000000000000000000000000000000 2001 0000000000000000000000000000000000000000000000000000000000000000 2002 0000000000000000000000000000000000000000000000000000000000000000 2003 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2004 FF00000000000000000000000000000000000000000000000000000000000000 2005 0000000000000000000000000000FFFFFF000000000000000000000000000000 2006 0000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2007 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2008 FF00000000000000000000000000000000000000000000000000000000000000 2009 0000000000000000000000000000000000000000000000000000000000000000 2010 0000000000000000000000000000000000000000000000000000000000000000 2011 0000FFFFFF0000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2012 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2013 FF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2014 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2015 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2016 FF00000000000000000000000000000000000000000000000000000000000000 2017 0000000000000000000000000000000000000000000000000000000000000000 2018 0000000000000000000000000000000000000000000000000000000000000000 2019 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2020 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2021 FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 2022 00000000000000000000FFFFFF00000000000000000000000000000000000000 2023 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2024 FF000000000000000000000000000000000000000000000000000000000000FF 2025 FF00C6C6C60000FFFF00C6C6C60000FFFF000000000000FFFF00C6C6C60000FF 2026 FF00000000000000000000000000000000000000000000000000000000000000 2027 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 2028 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2029 FF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2030 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2031 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2032 FF00000000000000000000000000000000000000000000000000FFFFFF000000 2033 000000FFFF00C6C6C60000FFFF0000000000000000000000000000000000C6C6 2034 C60000FFFF000000000000000000000000000000000000000000000000000000 2035 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2036 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2037 FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 2038 00000000000000000000FFFFFF00000000000000000000000000000000000000 2039 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 2040 FF0000000000000000000000000000000000000000000000000000FFFF00FFFF 2041 FF000000000000FFFF00C6C6C60000FFFF00C6C6C60000000000C6C6C60000FF 2042 FF00C6C6C60000FFFF0000000000000000000000000000000000000000000000 2043 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 2044 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 2045 0000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2046 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2047 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 2048 FF00000000000000000000000000000000000000000000000000FFFFFF0000FF 2049 FF00000000000000000000000000000000000000000000000000000000000000 2050 0000000000000000000000000000000000000000000000000000000000000000 2051 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2052 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 2053 0000FFFFFF00FFFFFF0000000000FFFFFF00000000000000000000000000FFFF 2054 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2055 0000FFFFFF000000000000000000000000000000000000000000FFFFFF00FFFF 2056 FF0000000000000000000000000000000000000000000000000000FFFF00FFFF 2057 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 2058 0000000000000000000000000000000000000000000000000000000000000000 2059 0000FFFFFF00000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFF 2060 FF00000000000000000000000000000000000000000000000000000000000000 2061 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2062 FF00000000000000000000000000000000000000000000000000000000000000 2063 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 2064 FF00000000000000000000000000000000000000000000000000FFFFFF0000FF 2065 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 2066 0000000000000000000000000000000000000000000000000000000000000000 2067 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 2068 00000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 2069 0000FFFFFF00FFFFFF0000000000FFFFFF000000000000000000FFFFFF00FFFF 2070 FF0000000000FFFFFF0000000000000000000000000000000000000000000000 2071 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 2072 FF0000000000000000000000000000000000000000000000000000FFFF00FFFF 2073 FF0000FFFF00FFFFFF0000FFFF00FFFFFF000000000000000000000000000000 2074 0000000000000000000000000000000000000000000000000000000000000000 2075 0000FFFFFF000000000000000000FFFFFF00FFFFFF0000000000FFFFFF000000 2076 00000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 2077 0000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2078 FF00000000000000000000000000000000000000000000000000000000000000 2079 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2080 FF000000000000000000000000000000000000000000000000000000000000FF 2081 FF00FFFFFF0000FFFF00FFFFFF00000000000000000000000000000000000000 2082 0000000000000000000000000000000000000000000000000000000000000000 2083 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000 2084 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2085 FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 2086 0000000000000000000000000000000000000000000000000000000000000000 2087 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2088 FF00000000000000000000000000000000000000000000000000848484000000 2089 0000000000000000000000000000848484000000000000000000000000000000 2090 0000000000000000000000000000000000000000000000000000000000000000 2091 0000000000000000000000000000000000000000000000000000000000000000 2092 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2093 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 2094 0000000000000000000000000000000000000000000000000000000000000000 2095 0000000000000000000000000000000000000000000000000000000000000000 2096 0000000000000000000000000000000000000000000000000000000000000000 2097 0000000000000000000000000000000000000000000000000000000000000000 2098 0000000000000000000000000000000000000000000000000000000000000000 2099 0000000000000000000000000000000000000000000000000000000000000000 2100 0000000000000000000000000000000000000000000000000000000000000000 2101 0000000000000000000000000000000000000000000000000000000000000000 2102 0000000000000000000000000000000000000000000000000000000000000000 2103 0000000000000000000000000000000000000000000000000000000000000000 2104 0000000000000000000000000000000000000000000000000000000000000000 2105 0000000000000000000000000000000000000000000000000000000000000000 2106 0000000000000000000000000000000000000000000000000000000000000000 2107 0000000000000000000000000000000000000000000000000000000000000000 2108 0000000000000000000000000000000000000000000000000000000000000000 2109 0000000000000000000000000000000000000000000000000000000000000000 2110 0000000000000000000000000000000000000000000000000000000000000000 2111 0000000000000000000000000000000000000000000000000000000000000000 2112 0000000000000000000000000000000000000000000000000000000000000000 2113 0000000000000000000000000000000000000000000000000000000000000000 2114 0000000000000000000000000000000000000000000000000000000000000000 2115 0000000000000000000000000000000000000000000000000000000000000000 2116 0000000000000000000000000000000000000000000000000000000000000000 2117 0000000000000000000000000000000000000000000000000000000000000000 2118 0000000000000000000000000000000000000000000000000000000000000000 2119 0000000000000000000000000000000000000000000000000000000000000000 2120 0000000000000000000000000000000000000000000000000000000000000000 2121 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2122 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2123 0000000000000000000000000000000000000000000000000000000000000000 2124 0000000000000000000000000000000000000000000000000000000000000000 2125 0000000000000000000000000000000000000000000000000000000000000000 2126 0000000000000000000000000000000000000000000000000000000000000000 2127 0000000000000000000000000000000000000000000000000000000000000000 2128 0000000000000000000000000000000000000000000000000000000000000000 2129 0000000000000000000000000000FFFFFF000000000000000000000000000000 2130 0000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2131 0000000000000000000000000000000000000000000000000000000000000000 2132 0000000000000000000000000000000000000000000000000000000000000000 2133 0000000000000000000000000000000000000000000000000000000000000000 2134 0000000000000000000000000000000000000000000000000000000000000000 2135 0000000000000000000000000000000000000000000000000000000000000000 2136 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2137 FF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2138 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2139 0000000000000000000000000000000000000000000000000000000000000000 2140 0000000000000000000000000000000000000000000000000000000000000000 2141 0000000000000000000000000000000000000000000000000000000000000000 2142 0000000000000000000000000000000000000000000000000000000000000000 2143 0000000000000000000000000000000000000000000000000000000000000000 2144 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2145 FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 2146 00000000000000000000FFFFFF000000000000000000000000000000000000FF 2147 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 2148 FF00000000000000000000000000000000000000000000000000000000000000 2149 0000000000000000000000000000000000000000000000000000000000000000 2150 00000000000000000000000000000000000000000000000000000000000000FF 2151 FF00FFFFFF0000FFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFFFF0000FF 2152 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2153 FF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2154 FF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000000000000FFFF 2155 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 2156 FF000000000000000000000000000000000000000000000000000000000000FF 2157 FF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBDBD0000FF 2158 FF0000000000000000000000000000000000000000000000000000000000FFFF 2159 FF0000FFFF00FFFFFF0000FFFF000000000000FFFF00FFFFFF0000FFFF00FFFF 2160 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2161 FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 2162 00000000000000000000FFFFFF000000000000000000000000000000000000FF 2163 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 2164 FF00000000000000000000000000000000000000000000000000FFFFFF000000 2165 000000FFFF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBD 2166 BD0000FFFF0000000000000000000000000000000000000000000000000000FF 2167 FF00FFFFFF000000000000000000000000000000000000000000FFFFFF0000FF 2168 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 2169 0000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2170 FF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000000000000FFFF 2171 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 2172 FF0000000000000000000000000000000000000000000000000000FFFF00FFFF 2173 FF000000000000FFFF00BDBDBD0000FFFF00BDBDBD0000FFFF00BDBDBD0000FF 2174 FF00BDBDBD0000FFFF000000000000000000000000000000000000000000FFFF 2175 FF0000FFFF00FFFFFF0000FFFF000000000000FFFF00FFFFFF0000FFFF00FFFF 2176 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 2177 0000FFFFFF00FFFFFF0000000000FFFFFF00000000000000000000000000FFFF 2178 FF000000000000000000FFFFFF000000000000000000000000000000000000FF 2179 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 2180 FF00000000000000000000000000000000000000000000000000FFFFFF0000FF 2181 FF00FFFFFF000000000000000000000000000000000000000000000000000000 2182 00000000000000000000000000000000000000000000000000000000000000FF 2183 FF00FFFFFF0000FFFF00FFFFFF0000000000FFFFFF0000FFFF00FFFFFF0000FF 2184 FF00000000000000000000000000000000000000000000000000000000000000 2185 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2186 FF00FFFFFF00FFFFFF00FFFFFF0000000000000000000000000000000000FFFF 2187 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 2188 FF0000000000000000000000000000000000000000000000000000FFFF00FFFF 2189 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 2190 000000000000000000000000000000000000000000000000000000000000FFFF 2191 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 2192 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 2193 0000FFFFFF00FFFFFF0000000000FFFFFF000000000000000000FFFFFF000000 2194 00000000000000000000FFFFFF00000000000000000000000000000000000000 2195 0000000000000000000000000000000000000000000000000000000000000000 2196 0000000000000000000000000000000000000000000000000000FFFFFF0000FF 2197 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 2198 0000000000000000000000000000000000000000000000000000000000000000 2199 0000000000000000000000000000000000000000000000000000000000000000 2200 00000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 2201 0000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2202 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 2203 0000FFFFFF0000FFFF00FFFFFF0000FFFF000000000000000000000000000000 2204 000000000000000000000000000000000000000000000000000000FFFF00FFFF 2205 FF0000FFFF00FFFFFF0000FFFF00FFFFFF000000000000000000000000000000 2206 0000000000000000000000000000000000000000000000000000000000000000 2207 0000FFFFFF0000FFFF00FFFFFF0000FFFF000000000000000000000000000000 2208 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2209 FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 2210 0000000000000000000000000000000000000000000000000000000000007B7B 2211 7B00000000000000000000000000000000007B7B7B0000000000000000000000 2212 00000000000000000000000000000000000000000000000000000000000000FF 2213 FF00FFFFFF0000FFFF00FFFFFF00000000000000000000000000000000000000 2214 0000000000000000000000000000000000000000000000000000000000008484 2215 8400000000000000000000000000000000008484840000000000000000000000 2216 00000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2217 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 2218 0000000000000000000000000000000000000000000000000000000000000000 2219 0000000000000000000000000000000000000000000000000000000000000000 2220 00000000000000000000000000000000000000000000000000007B7B7B000000 2221 00000000000000000000000000007B7B7B000000000000000000000000000000 2222 0000000000000000000000000000000000000000000000000000000000000000 2223 0000000000000000000000000000000000000000000000000000000000000000 2224 0000000000000000000000000000000000000000000000000000000000000000 2225 0000000000000000000000000000000000000000000000000000000000000000 2226 0000000000000000000000000000000000000000000000000000000000000000 2227 0000000000000000000000000000000000000000000000000000000000000000 2228 0000000000000000000000000000000000000000000000000000000000000000 2229 0000000000000000000000000000000000000000000000000000000000000000 2230 0000000000000000000000000000000000000000000000000000000000000000 2231 0000000000000000000000000000000000000000000000000000000000000000 2232 0000000000000000000000000000000000000000000000000000000000000000 2233 0000000000000000000000000000000000000000000000000000000000000000 2234 0000000000000000000000000000000000000000000000000000000000000000 2235 0000000000000000000000000000000000000000000000000000000000000000 2236 0000000000000000000000000000000000000000000000000000000000000000 2237 0000000000000000000000000000000000000000000000000000000000000000 2238 0000000000000000000000000000000000000000000000000000000000000000 2239 0000000000000000000000000000000000000000000000000000000000000000 2240 0000000000000000000000000000000000000000000000000000000000000000 2241 0000000000000000000000000000000000000000000000000000000000000000 2242 0000000000000000000000000000000000000000000000000000000000000000 2243 0000000000000000000000000000000000000000000000000000000000000000 2244 0000000000000000000000000000000000000000000000000000000000000000 2245 0000000000000000000000000000000000000000000000000000000000000000 2246 0000000000000000000000000000000000000000000000000000000000000000 2247 0000000000000000000000000000000000000000000000000000000000000000 2248 0000000000000000000000000000000000000000000000000000000000000000 2249 0000000000000000000000000000000000000000000000000000000000000000 2250 0000000000000000000000000000000000000000000000000000000000000000 2251 0000000000000000000000000000000000000000000000000000BDBDBD000000 2252 0000000000000000000000000000000000000000000000000000000000000000 2253 0000000000000000000000000000000000000000000000000000BDBDBD000000 2254 0000000000000000000000000000000000000000000000000000000000000000 2255 0000000000000000000000000000000000000000000000000000000000000000 2256 0000000000000000000000000000000000000000000000000000000000000000 2257 0000000000000000000000000000000000000000000000000000000000000000 2258 0000000000000000000000000000000000000000000000000000000000000000 2259 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000BDBD 2260 BD00000000000000000000000000000000000000000000000000000000000000 2261 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000BDBD 2262 BD00000000000000000000000000000000000000000000000000000000000000 2263 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2264 FF00000000000000000000000000000000000000000000000000000000000000 2265 00000000000000FFFF0000FFFF0000FFFF000000000000000000000000000000 2266 0000000000000000000000000000000000000000000000000000000000000000 2267 000000FFFF0000000000000000000000000000FFFF0000000000008484000000 2268 0000BDBDBD000000000000000000000000000000000000000000000000000000 2269 000000FFFF0000000000000000000000000000FFFF0000000000008484000000 2270 0000BDBDBD000000000000000000000000000000000000000000000000000000 2271 0000FFFFFF0000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 2272 FF00000000000000000000000000000000000000000000000000000000000000 2273 00000000000000FFFF0000FFFF00000000000000000000000000000000000000 2274 0000000000000000000000000000000000000000000000000000000000000000 2275 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 2276 8400000000000000000000000000000000000000000000000000000000000000 2277 00000000000000000000000000000000000000FFFF0000000000008484000084 2278 8400000000000000000000000000000000000000000000000000000000000000 2279 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2280 FF00000000000000000000000000000000000000000000000000000000000000 2281 0000000000000000000000000000000000000000000000000000000000000000 2282 0000000000000000000000000000000000000000000000000000000000000000 2283 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 2284 840000000000000000000000000000000000000000000000000000FFFF0000FF 2285 FF0000FFFF0000FFFF0000FFFF00000000000000000000000000008484000084 2286 8400000000000000000000000000000000000000000000000000000000000000 2287 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 2288 FF00000000000000000000000000000000000000000000000000000000000000 2289 0000000000000000000000000000000000000000000000000000000000000000 2290 0000000000000000000000000000000000000000000000000000000000000000 2291 0000000000000000000000000000000000000000000000000000008484000084 2292 840000000000000000000000000000000000000000000000000000FFFF000000 2293 0000000000000000000000FFFF0000000000BDBDBD0000000000008484000084 2294 8400000000000000000000000000000000000000000000000000000000000000 2295 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2296 FF00000000000000000000000000000000000000000000000000000000000000 2297 0000000000000000000000000000000000000000000000000000000000000000 2298 0000000000000000000000000000000000000000000000000000000000000000 2299 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 2300 840000000000000000000000000000000000000000000000000000FFFF0000FF 2301 FF0000FFFF0000FFFF0000FFFF0000000000BDBDBD0000000000008484000084 2302 8400000000000000000000000000000000000000000000000000000000000000 2303 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 2304 FF00000000000000000000000000000000000000000000000000000000000000 2305 00000000000000FFFF0000FFFF0000FFFF000000000000000000000000000000 2306 0000000000000000000000000000000000000000000000000000000000000000 2307 000000FFFF0000000000000000000000000000FFFF0000000000008484000084 2308 840000000000000000000000000000000000000000000000000000FFFF0000FF 2309 FF0000FFFF0000FFFF0000FFFF00000000000000000000000000008484000084 2310 8400000000000000000000000000000000000000000000000000000000000000 2311 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2312 FF00000000000000000000000000000000000000000000000000000000000000 2313 00000000000000FFFF0000FFFF00000000000000000000000000000000000000 2314 0000000000000000000000000000000000000000000000000000000000000000 2315 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 2316 8400000000000000000000000000000000000000000000000000000000000000 2317 0000000000000000000000000000000000007B7B7B0000000000008484000084 2318 8400000000000000000000000000000000000000000000000000000000000000 2319 0000FFFFFF00000000000000000000000000FFFFFF000000000000000000FFFF 2320 FF00000000000000000000000000000000000000000000000000000000000000 2321 0000000000000000000000000000000000000000000000000000000000000000 2322 0000000000000000000000000000000000000000000000000000000000000000 2323 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 2324 8400000000000000000000000000000000000000000000000000000000000000 2325 0000FFFFFF00FFFFFF00FFFFFF007B7B7B007B7B7B0000000000008484000084 2326 8400000000000000000000000000000000000000000000000000000000000000 2327 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2328 FF00000000000000000000000000000000000000000000000000000000000000 2329 0000000000000000000000000000000000000000000000000000000000000000 2330 0000000000000000000000000000000000000000000000000000000000000000 2331 0000000000000000000000000000000000000000000000000000000000000084 2332 8400000000000000000000000000000000000000000000000000000000000000 2333 0000000000000000000000000000000000000000000000000000000000000084 2334 8400000000000000000000000000000000000000000000000000000000000000 2335 0000FFFFFF000000000000000000FFFFFF00000000000000000000000000FFFF 2336 FF00000000000000000000000000000000000000000000000000000000000000 2337 0000000000000000000000000000000000000000000000000000000000000000 2338 0000000000000000000000000000000000000000000000000000000000007B7B 2339 7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B00000000000000 2340 0000000000000000000000000000000000000000000000000000000000007B7B 2341 7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B00000000000000 2342 0000000000000000000000000000000000000000000000000000000000000000 2343 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 2344 FF00000000000000000000000000000000000000000000FFFF0000FFFF0000FF 2345 FF00000000000000000000000000000000000000000000000000000000000000 2346 0000000000000000000000000000000000000000000000000000000000000000 2347 00000000000000FFFF000084840000FFFF000084840000FFFF00008484000000 2348 0000000000000000000000000000000000000000000000000000000000000000 2349 0000000000000084840000FFFF000084840000FFFF000084840000FFFF000000 2350 0000000000000000000000000000000000000000000000000000000000000000 2351 0000000000000000000000000000000000000000000000000000000000000000 2352 0000000000000000000000000000000000000000000000FFFF0000FFFF000000 2353 0000000000000000000000000000000000000000000000000000000000000000 2354 0000000000000000000000000000000000000000000000000000000000000000 2355 00000000000000000000000000000084840000FFFF000084840000FFFF000084 2356 8400000000000000000000000000000000000000000000000000000000000000 2357 000000000000000000000000000000FFFF000084840000FFFF000084840000FF 2358 FF00000000000000000000000000000000000000000000000000000000000000 2359 0000000000000000000000000000000000000000000000000000000000000000 2360 0000000000000000000000000000000000000000000000000000000000000000 2361 0000000000000000000000000000000000000000000000000000000000000000 2362 0000000000000000000000000000000000000000000000000000000000000000 2363 000000000000000000007B7B7B00000000000000000000000000000000000000 2364 0000000000000000000000000000000000000000000000000000000000000000 2365 000000000000000000007B7B7B00000000000000000000000000000000000000 2366 0000000000000000000000000000000000000000000000000000000000000000 1231 2367 0000000000000000000000000000000000000000000000000000000000000000 1232 2368 000000000000000000000000000000000000424D3E000000000000003E000000 … … 1260 2396 Bitmap = { 1261 2397 494C010106000900040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 1262 0000000000003600000028000000400000003000000001001000000000000018 1263 0000000000000000000000000000000000000000000000000000000000000000 1264 0000000000000000000000000000000000000000000000000000000000000000 1265 0000000000000000000000000000000000000000000000000000000000000000 1266 0000000000000000000000000000000000000000000000000000000000000000 1267 0000000000000000000000000000000000000000000000000000000000000000 1268 0000000000000000000000000000000000000000000000000000000000000000 1269 0000000000000000000000000000000000000000000000000000000000000000 1270 0000000000000000000000000000000000000000000000000000000000000000 1271 0000000000000000000000000000000000000000000000000000000000000000 1272 0000000000000000000000000000000000000000000000000000000000000000 1273 0000000000000000000000000000000000000000000000000000000000000000 1274 0000000000000000000000000000000000000000000000000000000000000000 1275 0000000000000000000000000000000000000000000000000000000000000000 1276 0000000000000000000000000000000000000000000000000000000000000000 1277 0000000000000000000000000000000000000000000000000000000000000000 1278 0000000000000000000000000000000000000000000000000000000000000000 1279 0000000000000000000000000000000000000000000000000000000000000000 1280 0000000000000000000000000000000000000000000000000000000000000000 1281 0000000000000000000000000000000000000000000000000000000000000000 1282 0000000000000000000000000000000000000000000000000000000000000000 1283 0000000000000000000000000000000000000000000000000000000000000000 1284 0000000000000000000000000000000000000000000000000000000000000000 1285 0000000000000000000000000000000000000000000000000000000000000000 1286 0000000000000000000000000000000000000000000000000000000000000000 1287 0000000000000000000000000000000000000000000000000000000000000000 1288 0000000000000000000000000000000000000000000000000000000000000000 1289 0000000000000000000000000000000000000000000000000000000000000000 1290 0000000000000000000000000000000000000000000000000000000000000000 1291 0000000000000000000000000000000000000000000000000000000000000000 1292 0000000000000000000000000000000000000000000000000000000000000000 1293 0000000000000000000000000000000000000000000000000000000000000000 1294 0000000000000000000000000000000000000000000000000000000000000000 1295 0000000000000000000000000000000000000000000000000000000000000000 1296 0000000000000000000000000000000000000000000000000000000000000000 1297 0000000000000000000000000000000000000000000000000000000000000000 1298 0000000000000000000000000000000000000000000000000000000000000000 1299 0000000000000000000000000000000000000000000000000000000000000000 1300 0000000000000000000000000000000000000000000000000000000000000000 1301 0000000000000000000000000000000000000000000000000000000000000000 1302 0000000000000000000000000000000000000000000000000000000000000000 1303 0000000000000000000000000000000000000000000000000000000000000000 1304 0000000000000000000000000000000000000000000000000000000000000000 1305 0000000000000000000000000000000000000000000000000000000000000000 1306 0000000000000000000000000000000000000000000000000000000000000000 1307 0000000000000000000000000000000000000000000000000000000000000000 1308 0000000000000000000000000000000000000000000000000000000000000000 1309 0000000000000000000000000000000000000000000000000000000000000000 1310 0000000000000000000000000000000000000000000000000000000000000000 1311 0000000000000000000000000000000000000000000000000000000000000000 1312 0000000000000000000000000000000000000000000000000000000000000000 1313 0000000000000000000000000000000000000000000000000000000000000000 1314 0000000000000000000000000000000000000000000000000000000000000000 1315 0000000000000000000000000000000000000000000000000000000000000000 1316 0000000000000000000000000000000000000000000000000000000000000000 1317 0000000000000000000000000000000000000000000000000000000000000000 1318 0000000000000000000000000000000000000000000000000000000000000000 1319 0000000000000000000000000000000000000000000000000000000000000000 1320 0000000000000000000000000000000000000000000000000000000000000000 1321 0000000000000000000000000000000000000000000000000000000000000000 1322 0000000000000000000000000000000000000000000000000000000000000000 1323 0000000000000000000000000000000000000000000000000000000000000000 1324 0000000000000000000000000000000000000000000000000000000000000000 1325 0000000000000000000000000000000000000000000000000000000000000000 1326 0000000000000000000000000000000000000000000000000000000000000000 1327 0000000000000000000000000000000000000000000000000000000000000000 1328 0000000000000000000000000000000000000000000000000000000000000000 1329 0000000000000000000000000000000000000000000000000000000000000000 1330 0000000000000000000000000000000000000000000000000000000000000000 1331 0000000000000000000000000000000000000000000000000000000000000000 1332 0000000000000000000000000000000000000000000000000000000000000000 1333 0000000000000000000000000000000000000000000000000000000000000000 1334 0000000000000000000000000000000000000000000000000000000000000000 1335 0000000000000000000000000000000000000000000000001042000000000000 1336 0000000000000000000000000000000000000000000000000000000000000000 1337 0000000000000000000000000000000000000000000000000000000000000000 1338 0000000000000000000000000000000000000000000000000000000000000000 1339 00000000000000000000000000000000000000000000000010421F001F001F00 1340 1F001F001F001F001F000000000000000000000000000000007C007C10421042 1341 1042104210421042104200000000000000000000000000000000000000000000 1342 0000000000000000000000000000000000000000000000000000000000000000 1343 00000000000000000000000000000000000000000000000010421F001F001F00 1344 1F001F001F001F001F000000000000000000000000000000007C007C007C1042 1345 1042104210421042104200000000000000000000000000000000000000000000 1346 0000000000000000000000000000000000000000000000000000000000000000 1347 00000000000000000000000000000000000000000000000010421F0000000000 1348 0000000000000000000000000000000000000000000000000000007C007C1042 1349 1042104210421863186300000000000000000000000000000000000000000000 1350 0000000000000000000000000000000000000000000000000000000000000000 1351 0000000000000000000000000000000000000000000000001042FF0300000000 1352 0000000000000000000000000000000000000000000000000000007C007C007C 1353 0000186318631863186300000000000000000000000000000000000000000000 1354 0000000000000000000000000000000000000000000000000000000000000000 1355 0000000000000000000000000000000000000000000000001042000000000000 1356 00000000000000000000000000000000000000000000000000000000007C007C 1357 007C007C18631863186300000000000000000000000000000000000000000000 1358 0000000000000000000000000000000000000000000000000000000000000000 1359 0000000000000000000000000000000000000000000000001042FF0300000000 1360 0000000000000000000000000000000000000000000000000000186318631863 1361 007C007C18631863000000000000000000000000000000000000000000000000 1362 0000000000000000000000000000000000000000000000000000000000000000 1363 000000000000000000000000000000000000000000000000104218630000E07F 1364 FF030000FF030000FF0300000000000000000000000000000000186300001863 1365 007C007C007C0000186300000000000000000000000000000000000000000000 1366 0000000000000000000000000000000000000000000000000000000000000000 1367 00000000000000000000000000000000000000000000000010421863E07F0000 1368 1863FF030000FF03000000000000000000000000000000000000186318630000 1369 1863007C007C007C000000000000000000000000000000000000000000000000 1370 0000000000000000000000000000000000000000000000000000000000000000 1371 0000000000000000000000000000000000000000000000001042000018631863 1372 FF030000FF030000FF0300000000000000000000000000000000000018631863 1373 18630000007C007C007C00000000000000000000000000000000000000000000 1374 0000000000000000000000000000000000000000000000000000000000000000 1375 0000000000000000000000000000000000000000000000001042FF030000FF03 1376 0000FF030000FF03000000000000000000000000000000000000186300001863 1377 0000186300001863007C00000000000000000000000000000000000000000000 1378 0000000000000000000000000000000000000000000000000000000000000000 1379 0000000000000000000000000000000000000000000000001042104210421042 1380 1042104210421042104210420000000000000000000000000000000000000000 1381 0000000000000000000000000000000000000000000000000000000000000000 1382 0000000000000000000000000000000000000000000000000000000000000000 1383 0000000000000000000000000000000000000000000000000000000000000000 1384 0000000000000000000000000000000000000000000000000000000000000000 1385 0000000000000000000000000000000000000000000000000000000000000000 1386 0000000000000000000000000000000000000000000000000000000000000000 1387 0000000000000000000000000000000000000000000000000000000000000000 1388 0000000000000000000000000000000000000000000000000000000000000000 1389 0000000000000000000000000000000000000000000000000000000000000000 1390 0000000000000000000000000000000000000000000000000000000000000000 1391 0000000000000000000000000000000000000000000000000000000000000000 1392 0000000000000000000000000000000000000000000000000000000000000000 1393 0000000000000000000000000000000000000000000000000000000000000000 1394 0000000000000000000000000000000000000000000000000000000010420000 1395 0000000000000000000000000000000000000000000000000000000000000000 1396 0000000000000000000000000000000000000000000000000000000000000000 1397 0000000000000000000000000000000000000000000000000000104200000000 1398 0000000000000000000000000000000000000000000000000000000010421F00 1399 1F001F001F001F001F001F001F00000000000000000000000000000000000000 1400 0000000000000000000000000000000000000000000000001042000000000000 1401 000000000000000000000000000000000000000000000000000010421F001F00 1402 1F001F001F001F001F001F000000000000000000000000001042000010421F00 1403 1F001F001F001F001F001F001F00000000000000000000000000000000000000 1404 00000000000000000000000000000000000000000000000010421F001F001F00 1405 1F001F001F001F001F000000000000000000000000001042000010421F001F00 1406 1F001F001F001F001F001F0000000000000000000000000010421F0010421F00 1407 1F001F001F001F001F0000020002000000000000000000000000000000000000 1408 00000000000000000000000000000000000000000000000010421F001F001F00 1409 1F001F001F001F001F0000000000000000000000000010421F0010421F001F00 1410 1F001F001F001F000002000200000000000000001042000010421F001042FF03 1411 0000FF0300000002000200020002000000000000000000000000000000000000 1412 00000000000000000000000000000000000000000000000010421F001F001F00 1413 1F001F001F000002000200000000000000000000000010421F001042FF030000 1414 FF0300000002000200020002000000000000000010421F0010421F0010420000 1415 FF030000FF030000FF0300020002000000000000000000000000000000000000 1416 0000000000000000000000000000000000000000000000001042FF030000FF03 1417 0000000200020002000200000000000000000000000010421F0010420000FF03 1418 0000FF030000FF0300020002000000000000000010421F001042FF031042FF03 1419 186318630000FF030000FF030000000000000000000000000000000000000000 1420 00000000000000000000000000000000000000000000000010420000FF030000 1421 FF030000FF03000200020000000000000000000000001042FF031042FF031863 1422 18630000FF030000FF030000000000000000000010421F001042000010421863 1423 0000E07F18630000FF030000FF03000000000000000000000000000000000000 1424 0000000000000000000000000000000000000000000000001042FF0318631863 1425 0000FF030000FF03000000000000000000000000000010420000104218630000 1426 E07F18630000FF030000FF0300000000000000001042FF031042FF0310421863 1427 E07F00001863FF030000FF030000000000000000000000000000000000000000 1428 000000000000000000000000000000000000000000000000104218630000E07F 1429 18630000FF030000FF030000000000000000000000001042FF0310421863E07F 1430 00001863FF030000FF0300000000000000000000104200001042186310420000 1431 18631863FF030000FF030000FF03000000000000000000000000000000000000 1432 00000000000000000000000000000000000000000000000010421863E07F0000 1433 1863FF030000FF03000000000000000000000000000010421863104200001863 1434 1863FF030000FF030000FF0300000000000000001042FF03104218631042FF03 1435 0000FF030000FF030000FF030000000000000000000000000000000000000000 1436 0000000000000000000000000000000000000000000000001042000018631863 1437 FF030000FF030000FF03000000000000000000000000104218631042FF030000 1438 FF030000FF030000FF0300000000000000000000104218631042000010421042 1439 1042104210421042104210421042104200000000000000000000000000000000 1440 0000000000000000000000000000000000000000000000001042FF030000FF03 1441 0000FF030000FF03000000000000000000000000000010420000104210421042 1442 1042104210421042104210421042000000000000104218631042FF030000FF03 1443 0000FF030000FF03000000000000000000000000000000000000000000000000 1444 0000000000000000000000000000000000000000000000001042104210421042 1445 104210421042104210421042000000000000000000001042FF030000FF030000 1446 FF030000FF030000000000000000000000000000104200001042104210421042 1447 1042104210421042104210420000000000000000000000000000000000000000 1448 0000000000000000000000000000000000000000000000000000000000000000 1449 0000000000000000000000000000000000000000000010421042104210421042 1450 10421042104210421042000000000000000000001042FF030000FF030000FF03 1451 0000FF0300000000000000000000000000000000000000000000000000000000 1452 0000000000000000000000000000000000000000000000000000000000000000 1453 0000000000000000000000000000000000000000000000000000000000000000 1454 0000000000000000000000000000000000000000104210421042104210421042 1455 104210421042104200000000000000000000424D3E000000000000003E000000 2398 0000000000003600000028000000400000003000000001002000000000000030 2399 0000000000000000000000000000000000000000000000000000000000000000 2400 0000000000000000000000000000000000000000000000000000000000000000 2401 0000000000000000000000000000000000000000000000000000000000000000 2402 0000000000000000000000000000000000000000000000000000000000000000 2403 0000000000000000000000000000000000000000000000000000000000000000 2404 0000000000000000000000000000000000000000000000000000000000000000 2405 0000000000000000000000000000000000000000000000000000000000000000 2406 0000000000000000000000000000000000000000000000000000000000000000 2407 0000000000000000000000000000000000000000000000000000000000000000 2408 0000000000000000000000000000000000000000000000000000000000000000 2409 0000000000000000000000000000000000000000000000000000000000000000 2410 0000000000000000000000000000000000000000000000000000000000000000 2411 0000000000000000000000000000000000000000000000000000000000000000 2412 0000000000000000000000000000000000000000000000000000000000000000 2413 0000000000000000000000000000000000000000000000000000000000000000 2414 0000000000000000000000000000000000000000000000000000000000000000 2415 0000000000000000000000000000000000000000000000000000000000000000 2416 0000000000000000000000000000000000000000000000000000000000000000 2417 0000000000000000000000000000000000000000000000000000000000000000 2418 0000000000000000000000000000000000000000000000000000000000000000 2419 0000000000000000000000000000000000000000000000000000000000000000 2420 0000000000000000000000000000000000000000000000000000000000000000 2421 0000000000000000000000000000000000000000000000000000000000000000 2422 0000000000000000000000000000000000000000000000000000000000000000 2423 0000000000000000000000000000000000000000000000000000000000000000 2424 0000000000000000000000000000000000000000000000000000000000000000 2425 0000000000000000000000000000000000000000000000000000000000000000 2426 0000000000000000000000000000000000000000000000000000000000000000 2427 0000000000000000000000000000000000000000000000000000000000000000 2428 0000000000000000000000000000000000000000000000000000000000000000 2429 0000000000000000000000000000000000000000000000000000000000000000 2430 0000000000000000000000000000000000000000000000000000000000000000 2431 0000000000000000000000000000000000000000000000000000000000000000 2432 0000000000000000000000000000000000000000000000000000000000000000 2433 0000000000000000000000000000000000000000000000000000000000000000 2434 0000000000000000000000000000000000000000000000000000000000000000 2435 0000000000000000000000000000000000000000000000000000000000000000 2436 0000000000000000000000000000000000000000000000000000000000000000 2437 0000000000000000000000000000000000000000000000000000000000000000 2438 0000000000000000000000000000000000000000000000000000000000000000 2439 0000000000000000000000000000000000000000000000000000000000000000 2440 0000000000000000000000000000000000000000000000000000000000000000 2441 0000000000000000000000000000000000000000000000000000000000000000 2442 0000000000000000000000000000000000000000000000000000000000000000 2443 0000000000000000000000000000000000000000000000000000000000000000 2444 0000000000000000000000000000000000000000000000000000000000000000 2445 0000000000000000000000000000000000000000000000000000000000000000 2446 0000000000000000000000000000000000000000000000000000000000000000 2447 0000000000000000000000000000000000000000000000000000000000000000 2448 0000000000000000000000000000000000000000000000000000000000000000 2449 0000000000000000000000000000000000000000000000000000000000000000 2450 0000000000000000000000000000000000000000000000000000000000000000 2451 0000000000000000000000000000000000000000000000000000000000000000 2452 0000000000000000000000000000000000000000000000000000000000000000 2453 0000000000000000000000000000000000000000000000000000000000000000 2454 0000000000000000000000000000000000000000000000000000000000000000 2455 0000000000000000000000000000000000000000000000000000000000000000 2456 0000000000000000000000000000000000000000000000000000000000000000 2457 0000000000000000000000000000000000000000000000000000000000000000 2458 0000000000000000000000000000000000000000000000000000000000000000 2459 0000000000000000000000000000000000000000000000000000000000000000 2460 0000000000000000000000000000000000000000000000000000000000000000 2461 0000000000000000000000000000000000000000000000000000000000000000 2462 0000000000000000000000000000000000000000000000000000000000000000 2463 0000000000000000000000000000000000000000000000000000000000000000 2464 0000000000000000000000000000000000000000000000000000000000000000 2465 0000000000000000000000000000000000000000000000000000000000000000 2466 0000000000000000000000000000000000000000000000000000000000000000 2467 0000000000000000000000000000000000000000000000000000000000000000 2468 0000000000000000000000000000000000000000000000000000000000000000 2469 0000000000000000000000000000000000000000000000000000000000000000 2470 0000000000000000000000000000000000000000000000000000000000000000 2471 0000000000000000000000000000000000000000000000000000000000000000 2472 0000000000000000000000000000000000000000000000000000000000000000 2473 0000000000000000000000000000000000000000000000000000000000000000 2474 0000000000000000000000000000000000000000000000000000000000000000 2475 0000000000000000000000000000000000000000000000000000000000000000 2476 0000000000000000000000000000000000000000000000000000000000000000 2477 0000000000000000000000000000000000000000000000000000000000000000 2478 0000000000000000000000000000000000000000000000000000000000000000 2479 0000000000000000000000000000000000000000000000000000000000000000 2480 0000000000000000000000000000000000000000000000000000000000000000 2481 0000000000000000000000000000000000000000000000000000000000000000 2482 0000000000000000000000000000000000000000000000000000000000000000 2483 0000000000000000000000000000000000000000000000000000000000000000 2484 0000000000000000000000000000000000000000000000000000000000000000 2485 0000000000000000000000000000000000000000000000000000000000000000 2486 0000000000000000000000000000000000000000000000000000000000000000 2487 0000000000000000000000000000000000000000000000000000000000000000 2488 0000000000000000000000000000000000000000000000000000000000000000 2489 0000000000000000000000000000000000000000000000000000000000000000 2490 0000000000000000000000000000000000000000000000000000000000000000 2491 0000000000000000000000000000000000000000000000000000000000000000 2492 0000000000000000000000000000000000000000000000000000000000000000 2493 0000000000000000000000000000000000000000000000000000000000000000 2494 0000000000000000000000000000000000000000000000000000000000000000 2495 0000000000000000000000000000000000000000000000000000000000000000 2496 0000000000000000000000000000000000000000000000000000000000000000 2497 0000000000000000000000000000000000000000000000000000000000000000 2498 0000000000000000000000000000000000000000000000000000000000000000 2499 0000000000000000000000000000000000000000000000000000000000000000 2500 0000000000000000000000000000000000000000000000000000000000000000 2501 0000000000000000000000000000000000000000000000000000000000000000 2502 0000000000000000000000000000000000000000000000000000000000000000 2503 0000000000000000000000000000000000000000000000000000000000000000 2504 0000000000000000000000000000000000000000000000000000000000000000 2505 0000000000000000000000000000000000000000000000000000000000000000 2506 0000000000000000000000000000000000000000000000000000000000000000 2507 0000000000000000000000000000000000000000000000000000000000000000 2508 0000000000000000000000000000000000000000000000000000000000000000 2509 0000000000000000000000000000000000000000000000000000000000000000 2510 0000000000000000000000000000000000000000000000000000000000000000 2511 0000000000000000000000000000000000000000000000000000000000000000 2512 0000000000000000000000000000000000000000000000000000000000000000 2513 0000000000000000000000000000000000000000000000000000000000000000 2514 0000000000000000000000000000000000000000000000000000000000000000 2515 0000000000000000000000000000000000000000000000000000000000000000 2516 0000000000000000000000000000000000000000000000000000000000000000 2517 0000000000000000000000000000000000000000000000000000000000000000 2518 0000000000000000000000000000000000000000000000000000000000000000 2519 0000000000000000000000000000000000000000000000000000000000000000 2520 0000000000000000000000000000000000000000000000000000000000000000 2521 0000000000000000000000000000000000000000000000000000000000000000 2522 0000000000000000000000000000000000000000000000000000000000000000 2523 0000000000000000000000000000000000000000000000000000000000000000 2524 0000000000000000000000000000000000000000000000000000000000000000 2525 0000000000000000000000000000000000000000000000000000000000000000 2526 0000000000000000000000000000000000000000000000000000000000000000 2527 0000000000000000000000000000000000000000000000000000000000000000 2528 0000000000000000000000000000000000000000000000000000000000000000 2529 0000000000000000000000000000000000000000000000000000000000000000 2530 0000000000000000000000000000000000000000000000000000000000000000 2531 0000000000000000000000000000000000000000000000000000000000000000 2532 0000000000000000000000000000000000000000000000000000000000000000 2533 0000000000000000000000000000000000000000000000000000000000000000 2534 0000000000000000000000000000000000000000000000000000000000000000 2535 0000000000000000000000000000000000000000000000000000000000000000 2536 0000000000000000000000000000000000000000000000000000000000000000 2537 0000000000000000000000000000000000000000000000000000000000000000 2538 0000000000000000000000000000000000000000000000000000000000000000 2539 0000000000000000000000000000000000000000000000000000000000000000 2540 0000000000000000000000000000000000000000000000000000000000000000 2541 0000000000000000000000000000000000000000000000000000000000000000 2542 0000000000000000000000000000000000000000000000000000000000000000 2543 0000000000000000000000000000000000000000000000000000000000008484 2544 8400000000000000000000000000000000000000000000000000000000000000 2545 0000000000000000000000000000000000000000000000000000000000000000 2546 0000000000000000000000000000000000000000000000000000000000000000 2547 0000000000000000000000000000000000000000000000000000000000000000 2548 0000000000000000000000000000000000000000000000000000000000000000 2549 0000000000000000000000000000000000000000000000000000000000000000 2550 0000000000000000000000000000000000000000000000000000000000000000 2551 0000000000000000000000000000000000000000000000000000000000008484 2552 8400FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 2553 0000000000000000000000000000000000000000000000000000000000000000 2554 FF000000FF008484840084848400848484008484840084848400848484008484 2555 8400000000000000000000000000000000000000000000000000000000000000 2556 0000000000000000000000000000000000000000000000000000000000000000 2557 0000000000000000000000000000000000000000000000000000000000000000 2558 0000000000000000000000000000000000000000000000000000000000000000 2559 0000000000000000000000000000000000000000000000000000000000008484 2560 8400FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 2561 0000000000000000000000000000000000000000000000000000000000000000 2562 FF000000FF000000FF0084848400848484008484840084848400848484008484 2563 8400000000000000000000000000000000000000000000000000000000000000 2564 0000000000000000000000000000000000000000000000000000000000000000 2565 0000000000000000000000000000000000000000000000000000000000000000 2566 0000000000000000000000000000000000000000000000000000000000000000 2567 0000000000000000000000000000000000000000000000000000000000008484 2568 8400FF0000000000000000000000000000000000000000000000000000000000 2569 0000000000000000000000000000000000000000000000000000000000000000 2570 00000000FF000000FF0084848400848484008484840084848400C6C6C600C6C6 2571 C600000000000000000000000000000000000000000000000000000000000000 2572 0000000000000000000000000000000000000000000000000000000000000000 2573 0000000000000000000000000000000000000000000000000000000000000000 2574 0000000000000000000000000000000000000000000000000000000000000000 2575 0000000000000000000000000000000000000000000000000000000000008484 2576 8400FFFF00000000000000000000000000000000000000000000000000000000 2577 0000000000000000000000000000000000000000000000000000000000000000 2578 00000000FF000000FF000000FF0000000000C6C6C600C6C6C600C6C6C600C6C6 2579 C600000000000000000000000000000000000000000000000000000000000000 2580 0000000000000000000000000000000000000000000000000000000000000000 2581 0000000000000000000000000000000000000000000000000000000000000000 2582 0000000000000000000000000000000000000000000000000000000000000000 2583 0000000000000000000000000000000000000000000000000000000000008484 2584 8400000000000000000000000000000000000000000000000000000000000000 2585 0000000000000000000000000000000000000000000000000000000000000000 2586 0000000000000000FF000000FF000000FF000000FF00C6C6C600C6C6C600C6C6 2587 C600000000000000000000000000000000000000000000000000000000000000 2588 0000000000000000000000000000000000000000000000000000000000000000 2589 0000000000000000000000000000000000000000000000000000000000000000 2590 0000000000000000000000000000000000000000000000000000000000000000 2591 0000000000000000000000000000000000000000000000000000000000008484 2592 8400FFFF00000000000000000000000000000000000000000000000000000000 2593 0000000000000000000000000000000000000000000000000000000000000000 2594 0000C6C6C600C6C6C600C6C6C6000000FF000000FF00C6C6C600C6C6C6000000 2595 0000000000000000000000000000000000000000000000000000000000000000 2596 0000000000000000000000000000000000000000000000000000000000000000 2597 0000000000000000000000000000000000000000000000000000000000000000 2598 0000000000000000000000000000000000000000000000000000000000000000 2599 0000000000000000000000000000000000000000000000000000000000008484 2600 8400C6C6C6000000000000FFFF00FFFF000000000000FFFF000000000000FFFF 2601 0000000000000000000000000000000000000000000000000000000000000000 2602 0000C6C6C60000000000C6C6C6000000FF000000FF000000FF0000000000C6C6 2603 C600000000000000000000000000000000000000000000000000000000000000 2604 0000000000000000000000000000000000000000000000000000000000000000 2605 0000000000000000000000000000000000000000000000000000000000000000 2606 0000000000000000000000000000000000000000000000000000000000000000 2607 0000000000000000000000000000000000000000000000000000000000008484 2608 8400C6C6C60000FFFF0000000000C6C6C600FFFF000000000000FFFF00000000 2609 0000000000000000000000000000000000000000000000000000000000000000 2610 0000C6C6C600C6C6C60000000000C6C6C6000000FF000000FF000000FF000000 2611 0000000000000000000000000000000000000000000000000000000000000000 2612 0000000000000000000000000000000000000000000000000000000000000000 2613 0000000000000000000000000000000000000000000000000000000000000000 2614 0000000000000000000000000000000000000000000000000000000000000000 2615 0000000000000000000000000000000000000000000000000000000000008484 2616 840000000000C6C6C600C6C6C600FFFF000000000000FFFF000000000000FFFF 2617 0000000000000000000000000000000000000000000000000000000000000000 2618 000000000000C6C6C600C6C6C600C6C6C600000000000000FF000000FF000000 2619 FF00000000000000000000000000000000000000000000000000000000000000 2620 0000000000000000000000000000000000000000000000000000000000000000 2621 0000000000000000000000000000000000000000000000000000000000000000 2622 0000000000000000000000000000000000000000000000000000000000000000 2623 0000000000000000000000000000000000000000000000000000000000008484 2624 8400FFFF000000000000FFFF000000000000FFFF000000000000FFFF00000000 2625 0000000000000000000000000000000000000000000000000000000000000000 2626 0000C6C6C60000000000C6C6C60000000000C6C6C60000000000C6C6C6000000 2627 FF00000000000000000000000000000000000000000000000000000000000000 2628 0000000000000000000000000000000000000000000000000000000000000000 2629 0000000000000000000000000000000000000000000000000000000000000000 2630 0000000000000000000000000000000000000000000000000000000000000000 2631 0000000000000000000000000000000000000000000000000000000000008484 2632 8400848484008484840084848400848484008484840084848400848484008484 2633 8400848484000000000000000000000000000000000000000000000000000000 2634 0000000000000000000000000000000000000000000000000000000000000000 2635 0000000000000000000000000000000000000000000000000000000000000000 2636 0000000000000000000000000000000000000000000000000000000000000000 2637 0000000000000000000000000000000000000000000000000000000000000000 2638 0000000000000000000000000000000000000000000000000000000000000000 2639 0000000000000000000000000000000000000000000000000000000000000000 2640 0000000000000000000000000000000000000000000000000000000000000000 2641 0000000000000000000000000000000000000000000000000000000000000000 2642 0000000000000000000000000000000000000000000000000000000000000000 2643 0000000000000000000000000000000000000000000000000000000000000000 2644 0000000000000000000000000000000000000000000000000000000000000000 2645 0000000000000000000000000000000000000000000000000000000000000000 2646 0000000000000000000000000000000000000000000000000000000000000000 2647 0000000000000000000000000000000000000000000000000000000000000000 2648 0000000000000000000000000000000000000000000000000000000000000000 2649 0000000000000000000000000000000000000000000000000000000000000000 2650 0000000000000000000000000000000000000000000000000000000000000000 2651 0000000000000000000000000000000000000000000000000000000000000000 2652 0000000000000000000000000000000000000000000000000000000000000000 2653 0000000000000000000000000000000000000000000000000000000000000000 2654 0000000000000000000000000000000000000000000000000000000000000000 2655 0000000000000000000000000000000000000000000000000000000000000000 2656 0000000000000000000000000000000000000000000000000000000000000000 2657 0000000000000000000000000000000000000000000000000000000000000000 2658 0000000000000000000000000000000000000000000000000000000000000000 2659 0000000000000000000000000000000000000000000000000000000000000000 2660 0000000000000000000000000000000000000000000000000000000000000000 2661 0000000000000000000000000000000000000000000000000000000000000000 2662 0000000000008484840000000000000000000000000000000000000000000000 2663 0000000000000000000000000000000000000000000000000000000000000000 2664 0000000000000000000000000000000000000000000000000000000000000000 2665 0000000000000000000000000000000000000000000000000000000000000000 2666 0000000000000000000000000000000000000000000000000000000000000000 2667 0000000000000000000000000000000000000000000000000000000000000000 2668 0000848484000000000000000000000000000000000000000000000000000000 2669 0000000000000000000000000000000000000000000000000000000000000000 2670 00000000000084848400FF000000FF000000FF000000FF000000FF000000FF00 2671 0000FF000000FF00000000000000000000000000000000000000000000000000 2672 0000000000000000000000000000000000000000000000000000000000000000 2673 0000000000000000000000000000000000000000000000000000000000008484 2674 8400000000000000000000000000000000000000000000000000000000000000 2675 0000000000000000000000000000000000000000000000000000000000000000 2676 000084848400FF000000FF000000FF000000FF000000FF000000FF000000FF00 2677 0000FF0000000000000000000000000000000000000000000000000000008484 2678 84000000000084848400FF000000FF000000FF000000FF000000FF000000FF00 2679 0000FF000000FF00000000000000000000000000000000000000000000000000 2680 0000000000000000000000000000000000000000000000000000000000000000 2681 0000000000000000000000000000000000000000000000000000000000008484 2682 8400FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 2683 0000000000000000000000000000000000000000000000000000848484000000 2684 000084848400FF000000FF000000FF000000FF000000FF000000FF000000FF00 2685 0000FF0000000000000000000000000000000000000000000000000000008484 2686 8400FF00000084848400FF000000FF000000FF000000FF000000FF000000FF00 2687 0000008400000084000000000000000000000000000000000000000000000000 2688 0000000000000000000000000000000000000000000000000000000000000000 2689 0000000000000000000000000000000000000000000000000000000000008484 2690 8400FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF00 2691 000000000000000000000000000000000000000000000000000084848400FF00 2692 000084848400FF000000FF000000FF000000FF000000FF000000FF0000000084 2693 0000008400000000000000000000000000000000000084848400000000008484 2694 8400FF00000084848400FFFF000000000000FFFF000000000000008400000084 2695 0000008400000084000000000000000000000000000000000000000000000000 2696 0000000000000000000000000000000000000000000000000000000000000000 2697 0000000000000000000000000000000000000000000000000000000000008484 2698 8400FF000000FF000000FF000000FF000000FF000000FF000000008400000084 2699 000000000000000000000000000000000000000000000000000084848400FF00 2700 000084848400FFFF000000000000FFFF00000000000000840000008400000084 2701 0000008400000000000000000000000000000000000084848400FF0000008484 2702 8400FF0000008484840000000000FFFF000000000000FFFF000000000000FFFF 2703 0000008400000084000000000000000000000000000000000000000000000000 2704 0000000000000000000000000000000000000000000000000000000000000000 2705 0000000000000000000000000000000000000000000000000000000000008484 2706 8400FFFF000000000000FFFF0000000000000084000000840000008400000084 2707 000000000000000000000000000000000000000000000000000084848400FF00 2708 00008484840000000000FFFF000000000000FFFF000000000000FFFF00000084 2709 0000008400000000000000000000000000000000000084848400FF0000008484 2710 8400FFFF000084848400FFFF0000C6C6C600C6C6C60000000000FFFF00000000 2711 0000FFFF00000000000000000000000000000000000000000000000000000000 2712 0000000000000000000000000000000000000000000000000000000000000000 2713 0000000000000000000000000000000000000000000000000000000000008484 2714 840000000000FFFF000000000000FFFF000000000000FFFF0000008400000084 2715 000000000000000000000000000000000000000000000000000084848400FFFF 2716 000084848400FFFF0000C6C6C600C6C6C60000000000FFFF000000000000FFFF 2717 0000000000000000000000000000000000000000000084848400FF0000008484 2718 84000000000084848400C6C6C6000000000000FFFF00C6C6C60000000000FFFF 2719 000000000000FFFF000000000000000000000000000000000000000000000000 2720 0000000000000000000000000000000000000000000000000000000000000000 2721 0000000000000000000000000000000000000000000000000000000000008484 2722 8400FFFF0000C6C6C600C6C6C60000000000FFFF000000000000FFFF00000000 2723 0000000000000000000000000000000000000000000000000000848484000000 2724 000084848400C6C6C6000000000000FFFF00C6C6C60000000000FFFF00000000 2725 0000FFFF00000000000000000000000000000000000084848400FFFF00008484 2726 8400FFFF000084848400C6C6C60000FFFF0000000000C6C6C600FFFF00000000 2727 0000FFFF00000000000000000000000000000000000000000000000000000000 2728 0000000000000000000000000000000000000000000000000000000000000000 2729 0000000000000000000000000000000000000000000000000000000000008484 2730 8400C6C6C6000000000000FFFF00C6C6C60000000000FFFF000000000000FFFF 2731 000000000000000000000000000000000000000000000000000084848400FFFF 2732 000084848400C6C6C60000FFFF0000000000C6C6C600FFFF000000000000FFFF 2733 0000000000000000000000000000000000000000000084848400000000008484 2734 8400C6C6C6008484840000000000C6C6C600C6C6C600FFFF000000000000FFFF 2735 000000000000FFFF000000000000000000000000000000000000000000000000 2736 0000000000000000000000000000000000000000000000000000000000000000 2737 0000000000000000000000000000000000000000000000000000000000008484 2738 8400C6C6C60000FFFF0000000000C6C6C600FFFF000000000000FFFF00000000 2739 000000000000000000000000000000000000000000000000000084848400C6C6 2740 C6008484840000000000C6C6C600C6C6C600FFFF000000000000FFFF00000000 2741 0000FFFF00000000000000000000000000000000000084848400FFFF00008484 2742 8400C6C6C60084848400FFFF000000000000FFFF000000000000FFFF00000000 2743 0000FFFF00000000000000000000000000000000000000000000000000000000 2744 0000000000000000000000000000000000000000000000000000000000000000 2745 0000000000000000000000000000000000000000000000000000000000008484 2746 840000000000C6C6C600C6C6C600FFFF000000000000FFFF000000000000FFFF 2747 000000000000000000000000000000000000000000000000000084848400C6C6 2748 C60084848400FFFF000000000000FFFF000000000000FFFF000000000000FFFF 2749 0000000000000000000000000000000000000000000084848400C6C6C6008484 2750 8400000000008484840084848400848484008484840084848400848484008484 2751 8400848484008484840084848400000000000000000000000000000000000000 2752 0000000000000000000000000000000000000000000000000000000000000000 2753 0000000000000000000000000000000000000000000000000000000000008484 2754 8400FFFF000000000000FFFF000000000000FFFF000000000000FFFF00000000 2755 0000000000000000000000000000000000000000000000000000848484000000 2756 0000848484008484840084848400848484008484840084848400848484008484 2757 8400848484008484840000000000000000000000000084848400C6C6C6008484 2758 8400FFFF000000000000FFFF000000000000FFFF000000000000FFFF00000000 2759 0000000000000000000000000000000000000000000000000000000000000000 2760 0000000000000000000000000000000000000000000000000000000000000000 2761 0000000000000000000000000000000000000000000000000000000000008484 2762 8400848484008484840084848400848484008484840084848400848484008484 2763 840084848400000000000000000000000000000000000000000084848400FFFF 2764 000000000000FFFF000000000000FFFF000000000000FFFF0000000000000000 2765 0000000000000000000000000000000000000000000084848400000000008484 2766 8400848484008484840084848400848484008484840084848400848484008484 2767 8400848484000000000000000000000000000000000000000000000000000000 2768 0000000000000000000000000000000000000000000000000000000000000000 2769 0000000000000000000000000000000000000000000000000000000000000000 2770 0000000000000000000000000000000000000000000000000000000000000000 2771 0000000000000000000000000000000000000000000000000000848484008484 2772 8400848484008484840084848400848484008484840084848400848484008484 2773 8400000000000000000000000000000000000000000084848400FFFF00000000 2774 0000FFFF000000000000FFFF000000000000FFFF000000000000000000000000 2775 0000000000000000000000000000000000000000000000000000000000000000 2776 0000000000000000000000000000000000000000000000000000000000000000 2777 0000000000000000000000000000000000000000000000000000000000000000 2778 0000000000000000000000000000000000000000000000000000000000000000 2779 0000000000000000000000000000000000000000000000000000000000000000 2780 0000000000000000000000000000000000000000000000000000000000000000 2781 0000000000000000000000000000000000000000000084848400848484008484 2782 8400848484008484840084848400848484008484840084848400848484000000 2783 000000000000000000000000000000000000424D3E000000000000003E000000 1456 2784 2800000040000000300000000100010000000000800100000000000000000000 1457 2785 000000000000000000000000FFFFFF0000000000000000000000000000000000 … … 1476 2804 Bitmap = { 1477 2805 494C01010A000E00040020001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 1478 0000000000003600000028000000800000004000000001001000000000000040 1479 0000000000000000000000000000000000000000000000000000000000000000 1480 0000000000000000000000000000000000000000000000000000000000000000 1481 0000000000000000000000000000000000000000000000000000000000000000 1482 0000000000000000000000000000000000000000000000000000000000000000 1483 0000000000000000000000000000000000000000000000000000000000000000 1484 0000000000000000000000000000000000000000000000000000000000000000 1485 0000000000000000000000000000000000000000000000000000000000000000 1486 0000000000000000000000000000000000000000000000000000000000000000 1487 0000000000000000000000000000000000000000000000000000000000000000 1488 0000000000000000000000000000000000000000000000000000000000000000 1489 0000000000000000000000000000000000000000000000000000000000000000 1490 0000000000000000000000000000000000000000000000000000000000000000 1491 0000000000000000000000000000000000000000000000000000000000000000 1492 0000000000000000000000000000000000000000000000000000000000000000 1493 0000000000000000000000000000000000000000000000000000000000000000 1494 0000000000000000000000000000000000000000000000000000000000000000 1495 0000000000000000000000000000000000000000000000000000000000000000 1496 0000000000000000000000000000000000000000000000000000000000000000 1497 0000000000000000000000000000000000000000000000000000000000000000 1498 0000000000000000000000000000000000000000000000000000000000000000 1499 0000000000000000000000000000000000000000000000000000000000000000 1500 0000000000000000000000000000000000000000000000000000000000000000 1501 0000000000000000000000000000000000000000000000000000000000000000 1502 0000000000000000000000000000000000000000000000000000000000000000 1503 0000000000000000000000000000000000000000000000000000000000000000 1504 0000000000000000000000000000000000000000000000000000000000000000 1505 0000000000000000000000000000000000000000000000000000000000000000 1506 0000000000000000000000000000000000000000000000000000000000000000 1507 0000000000000000000000000000000000000000000000000000000000000000 1508 0000000000000000000000000000000000000000000000000000000000000000 1509 0000000000000000000000000000000000000000000000000000000000000000 1510 0000000000000000000000000000000000000000000000000000000000000000 1511 0000000000000000000000000000000000000000000000000000000000000000 1512 0000000000000000000000000000000000000000000000000000000000000000 1513 0000000000000000000000000000000000000000000000000000000000000000 1514 0000000000000000000000000000000000000000000000000000000000000000 1515 0000000000000000000000000000000000000000000000000000000000000000 1516 0000000000000000000000000000000000000000000000000000000000000000 1517 0000000000000000000000000000000000000000000000000000000000000000 1518 0000000000000000000000000000000000000000000000000000000000000000 1519 0000000000000000000000000000000000000000000000000000000000000000 1520 0000000000000000000000000000000000000000000000000000000000000000 1521 0000000000000000000000000000000000000000000000000000000000000000 1522 0000000000000000000000000000000000000000000000000000000000000000 1523 0000000000000000000000000000000000000000000000000000000000000000 1524 0000000000000000000000000000000000000000000000000000000000000000 1525 0000000000000000000000000000000000000000000000000000000000000000 1526 0000000000000000000000000000000000000000000000000000000000000000 1527 0000000000000000000000000000000000000000000000000000000000000000 1528 0000000000000000000000000000000000000000000000000000000000000000 1529 0000000000000000000000000000000000000000000000000000000000000000 1530 0000000000000000000000000000000000000000000000000000000000000000 1531 0000000000000000000000000000000000000000000000000000000000000000 1532 0000000000000000000000000000000000000000000000000000000000000000 1533 0000000000000000000000000000000000000000000000000000000000000000 1534 0000000000000000000000000000000000000000000000000000000000000000 1535 0000000000000000000000000000000000000000000000000000000000000000 1536 0000000000000000000000000000000000000000000000000000000000000000 1537 0000000000000000000000000000000000000000000000000000000000000000 1538 0000000000000000000000000000000000000000000000000000000000000000 1539 0000000000000000000000000000000000000000000000000000000000000000 1540 0000000000000000000000000000000000000000000000000000000000000000 1541 0000000000000000000000000000000000000000000000000000000000000000 1542 0000000000000000000000000000000000000000000000000000000000000000 1543 0000000000000000000000000000000000000000000000000000000000000000 1544 0000000000000000000000000000000000000000000000000000000000000000 1545 0000000000000000000000000000000000000000000000000000000000000000 1546 0000000000000000000000000000000000000000000000000000000000000000 1547 0000000000000000000000000000000000000000000000000000000000000000 1548 0000000000000000000000000000000000000000000000000000000000000000 1549 0000000000000000000000000000000000000000000000000000000000000000 1550 0000000000000000000000000000000000000000000000000000000000000000 1551 0000000000000000000000000000000000000000000000000000000000000000 1552 0000000000000000000000000000000000000000000000000000000000000000 1553 0000000000000000000000000000000000000000000000000000000000000000 1554 0000000000000000000000000000000000000000000000000000000000000000 1555 0000000000000000000000000000000000000000000000000000000000000000 1556 0000000000000000000000000000000000000000000000000000000000000000 1557 0000000000000000000000000000000000000000000000000000000000000000 1558 0000000000000000000000000000000000000000000000000000000000000000 1559 0000000000000000000000000000000000000000000000000000000000000000 1560 0000000000000000000000000000000000000000000000000000000000000000 1561 0000000000000000000000000000000000000000000000000000000000000000 1562 0000000000000000000000000000000000000000000000000000000000000000 1563 0000000000000000000000000000000000000000000000000000000000000000 1564 0000000000000000000000000000000000000000000000000000000000000000 1565 0000000000000000000000000000000000000000000000000000000000000000 1566 0000000000000000000000000000000000000000000000000000000000000000 1567 0000000000000000000000000000000000000000000000000000000000000000 1568 0000000000000000000000000000000000000000000000000000000000000000 1569 0000000000000000000000000000000000000000000000000000000000000000 1570 0000000000000000000000000000000000000000000000000000000000000000 1571 0000000000000000000000000000000000000000000000000000000000000000 1572 0000000000000000000000000000000000000000000000000000000000000000 1573 0000000000000000000000000000000000000000000000000000000000000000 1574 0000000000000000000000000000000000000000000000000000000000000000 1575 0000000000000000000000000000000000000000000000000000000000000000 1576 0000000000000000000000000000000000000000000000000000000000000000 1577 0000000000000000000000000000000000000000000000000000000000000000 1578 0000000000000000000000000000000000000000000000000000000000000000 1579 0000000000000000000000000000000000000000000000000000000000000000 1580 0000000000000000000000000000000000000000000000000000000000000000 1581 0000000000000000000000000000000000000000000000000000000000000000 1582 0000000000000000000000000000000000000000000000000000000000000000 1583 0000000000000000000000000000000000000000000000000000000000000000 1584 0000000000000000000000000000000000000000000000000000000000000000 1585 0000000000000000000000000000000000000000000000000000000000000000 1586 0000000000000000000000000000000000000000000000000000000000000000 1587 0000000000000000000000000000000000000000000000000000000000000000 1588 0000000000000000000000000000000000000000000000000000000000000000 1589 0000000000000000000000000000000000000000000000000000000000000000 1590 0000000000000000000000000000000000000000000000000000000000000000 1591 0000000000000000000000000000000000000000000000000000000000000000 1592 0000000000000000000000000000000000000000000000000000000000000000 1593 0000000000000000000000000000000000000000000000000000000000000000 1594 0000000000000000000000000000000000000000000000000000000000000000 1595 0000000000000000000000000000000000000000000000000000000000000000 1596 0000000000000000000000000000000000000000000000000000000000000000 1597 0000000000000000000000000000000000000000000000000000000000000000 1598 0000000000000000000000000000000000000000000000000000000000000000 1599 0000000000000000000000000000000000000000000000000000000000000000 1600 0000000000000000000000000000000000000000000000000000000000000000 1601 0000000000000000000000000000000000000000000000000000000000000000 1602 0000000000000000000000000000000000000000000000000000000000000000 1603 0000000000000000000000000000000000000000000000000000000000000000 1604 0000000000000000000000000000000000000000000000000000000000000000 1605 0000000000000000000000000000000000000000000000000000000000000000 1606 0000000000000000000000000000000000000000000000000000000000000000 1607 0000000000000000000000000000000000000000000000000000000000000000 1608 0000000000000000000000000000000000000000000000000000000000000000 1609 0000000000000000000000000000000000000000000000000000000000000000 1610 0000000000000000000000000000000000000000000000000000000000000000 1611 0000000000000000000000000000000000000000000000000000000000000000 1612 0000000000000000000000000000000000000000000000000000000000000000 1613 0000000000000000000000000000000000000000000000000000000000000000 1614 0000000000000000000000000000000000000000000000000000000000000000 1615 0000000000000000000000000000000000000000000000000000000000000000 1616 0000000000000000000000000000000000000000000000000000000000000000 1617 0000000000000000000000000000000000000000000000000000000000000000 1618 0000000000000000000000000000000000000000000000000000000000000000 1619 0000000000000000000000000000000000000000000000000000000000000000 1620 0000000000000000000000000000000000000000000000000000000000000000 1621 0000000000000000000000000000000000000000000000000000000000000000 1622 0000000000000000000000000000000000000000000000000000000000000000 1623 0000000000000000000000000000000000000000000000000000000000000000 1624 0000000000000000000000000000000000000000000000000000000000000000 1625 0000000000000000000000000000000000000000000000000000000000000000 1626 0000000000000000000000000000000000000000000000000000000000000000 1627 0000000000000000000000000000000000000000000000000000000000000000 1628 0000000000000000000000000000000000000000000000000000000000000000 1629 0000000000000000000000000000000000000000000000000000000000000000 1630 0000000000000000000000000000000000000000000000000000000000000000 1631 0000000000000000000000000000000000000000000000000000000000000000 1632 0000000000000000000000000000000000000000000000000000000000000000 1633 0000000000000000000000000000000000000000000000000000000000000000 1634 0000000000000000000000000000000000000000000000000000000000000000 1635 0000000000000000000000000000000000000000000000000000000000000000 1636 0000000000000000000000000000000000000000000000000000000000000000 1637 0000000000000000000000000000000000000000000000000000000000000000 1638 0000000000000000000000000000000000000000000000000000000000000000 1639 0000000000000000000000000000000000000000000000000000000000000000 1640 0000000000000000000000000000000000000000000000000000000000000000 1641 0000000000000000000000000000000000000000000000000000000000000000 1642 0000000000000000000000000000000000000000000000000000000000000000 1643 0000000000000000000000000000000000000000000000000000000000000000 1644 0000000000000000000000000000000000000000000000000000000000000000 1645 0000000000000000000000000000000000000000000000000000000000000000 1646 0000000000000000000000000000000000000000000000000000000000000000 1647 0000000000000000000000000000000000000000000000000000000000000000 1648 000000000000000000000000000000000000000000000000E07F1863E07F1863 1649 E07F1863E07F1863E07F00000000000000000000000000000000000000000000 1650 000000000000000000000000000000000000000000000000E07F1863E07F1863 1651 E07F1863E07F1863E07F00000000000000000000000000000000000000000000 1652 0000000000000000000000000000000000000000000000000000000000000000 1653 0000000000000000000000000000000000000000000000000000000000000000 1654 0000000000000000000000000000000000000000000000000000000000000000 1655 0000000000000000000000000000000000000000000000000000000000000000 1656 00000000000000000000000000000000000000000000FF7F0000E07F1863E07F 1657 1863E07F1863E07F1863E07F0000000000000000000000000000000000000000 1658 00000000000000000000000000000000000000000000FF7F0000E07F1863E07F 1659 1863E07F1863E07F1863E07F0000000000000000000000000000000000000000 1660 0000000000000000000000000000000000000000000000000000000000000000 1661 0000000000000000000000000000000000000000000000000000000000000000 1662 0000000000000000000000000000000000000000000000000000000000000000 1663 0000000000000000000000000000000000000000000000000000000000000000 1664 00000000000000000000000000000000000000000000E07FFF7F0000E07F1863 1665 E07F1863E07F1863E07F1863E07F000000000000000000000000000000000000 1666 00000000000000000000000000000000000000000000E07FFF7F0000E07F1863 1667 E07F1863E07F1863E07F1863E07F000000000000000000000000000000000000 1668 0000000000000000000000000000000000000000000000000000000000000000 1669 0000000000000000000000000000000000000000000000000000000000000000 1670 0000000000000000000000000000000000000000000000000000000000000000 1671 0000000000000000000000000000000000000000000000000000000000000000 1672 00000000000000000000000000000000000000000000FF7FE07FFF7F00000000 1673 0000000000000000000000000000000000000000000000000000000000000000 1674 00000000000000000000000000000000000000000000FF7FE07FFF7F00000000 1675 0000000000000000000000000000000000000000000000000000000000000000 1676 0000000000000000000000000000000000000000000000000000000000000000 1677 0000000000000000000000000000000000000000000000000000000000000000 1678 0000000000000000000000000000000000000000000000000000000000000000 1679 0000000000000000000000000000000000000000000000000000000000000000 1680 00000000000000000000000000000000000000000000E07FFF7FE07FFF7FE07F 1681 FF7FE07FFF7FE07F000000000000000000000000000000000000000000000000 1682 00000000000000000000000000000000000000000000E07FFF7FE07FFF7FE07F 1683 FF7FE07FFF7FE07F000000000000000000000000000000000000000000000000 1684 0000000000000000000000000000000000000000000000000000000000000000 1685 0000000000000000000000000000000000000000000000000000000000000000 1686 0000000000000000000000000000000000000000000000000000000000000000 1687 0000000000000000000000000000000000000000000000000000000000000000 1688 00000000000000000000000000000000000000000000FF7FE07FFF7FE07FFF7F 1689 E07FFF7FE07FFF7F000000000000000000000000000000000000000000000000 1690 00000000000000000000000000000000000000000000FF7FE07FFF7FE07FFF7F 1691 E07FFF7FE07FFF7F000000000000000000000000000000000000000000000000 1692 0000000000000000000000000000000000000000000000000000000000000000 1693 0000000000000000000000000000000000000000000000000000000000000000 1694 0000000000000000000000000000000000000000000000000000000000000000 1695 0000000000000000000000000000000000000000000000000000000000000000 1696 00000000000000000000000000000000000000000000E07FFF7FE07FFF7FE07F 1697 FF7F000000000000000000000000000000000000000000000000000000000000 1698 00000000000000000000000000000000000000000000E07FFF7FE07FFF7FE07F 1699 FF7F000000000000000000000000000000000000000000000000000000000000 1700 0000000000000000000000000000000000000000000000000000000000000000 1701 0000000000000000000000000000000000000000000000000000000000000000 1702 0000000000000000000000000000000000000000000000000000000000000000 1703 0000000000000000000000000000000000000000000000000000000000000000 1704 000000000000000000000000000000000000000000000000E07FFF7FE07FFF7F 1705 0000000000000000000000000000000000000000000000000000000000000000 1706 000000000000000000000000000000000000000000000000E07FFF7FE07FFF7F 1707 0000000000000000000000000000000000000000000000000000000000000000 1708 0000000000000000000000000000000000000000000000000000000000000000 1709 0000000000000000000000000000000000000000000000000000000000000000 1710 0000000000000000000000000000000000000000000000000000000000000000 1711 0000000000000000000000000000000000000000000000000000000000000000 1712 0000000000000000000000000000000000000000000010420000000000000000 1713 1042000000000000000000000000000000000000000000000000000000000000 1714 0000000000000000000000000000000000000000000010420000000000000000 1715 1042000000000000000000000000000000000000000000000000000000000000 1716 0000000000000000000000000000000000000000000000000000000000000000 1717 0000000000000000000000000000000000000000000000000000000000000000 1718 0000000000000000000000000000000000000000000000000000000000000000 1719 0000000000000000000000000000000000000000000000000000000000000000 1720 0000000000000000000000000000000000000000000000000000000000000000 1721 0000000000000000000000000000000000000000000000000000000000000000 1722 0000000000000000000000000000000000000000000000000000000000000000 1723 0000000000000000000000000000000000000000000000000000000000000000 1724 0000000000000000000000000000000000000000000000000000000000000000 1725 0000000000000000000000000000000000000000000000000000000000000000 1726 0000000000000000000000000000000000000000000000000000000000000000 1727 0000000000000000000000000000000000000000000000000000000000000000 1728 0000000000000000000000000000000000000000000000000000000000000000 1729 0000000000000000000000000000000000000000000000000000000000000000 1730 0000000000000000000000000000000000000000000000000000000000000000 1731 0000000000000000000000000000000000000000000000000000000000000000 1732 0000000000000000000000000000000000000000000000000000000000000000 1733 0000000000000000000000000000000000000000000000000000000000000000 1734 0000000000000000000000000000000000000000000000000000000000000000 1735 0000000000000000000000000000000000000000000000000000000000000000 1736 0000000000000000000000000000000000000000000000000000000000000000 1737 0000000000000000000000000000000000000000000000000000000000000000 1738 0000000000000000000000000000000000000000000000000000000000000000 1739 0000000000000000000000000000000000000000000000000000000000000000 1740 0000000000000000000000000000000000000000000000000000000000000000 1741 0000000000000000000000000000000000000000000000000000000000000000 1742 0000000000000000000000000000000000000000000000000000000000000000 1743 0000000000000000000000000000000000000000000000000000000000000000 1744 0000000000000000000000000000000000000000000000000000000010421042 1745 1042104210420000000000000000000000000000000000000000000000000000 1746 0000000000000000000000000000000000000000000000000000000010421042 1747 1042104210420000000000000000000000000000000000000000000000000000 1748 0000000000000000000000000000000000000000000000000000000000000000 1749 0000000000000000000000000000000000000000000000000000000000000000 1750 0000000000000000000000000000000000000000000000000000000000000000 1751 0000000000000000000000000000000000000000000000000000000000000000 1752 000000000000000000000000000000000000000000000000104210421863FF7F 1753 FF7FFF7F18631042104200000000000000000000000000000000000000000000 1754 000000000000000000000000000000000000000000000000104210421863FF7F 1755 FF7FFF7F18631042104200000000000000000000000000000000000000000000 1756 0000000000000000000000000000000000000000000000000000000000000000 1757 0000000000000000000000000000000000000000000000000000000000000000 1758 0000000000000000000000000000000000000000000000000000000000000000 1759 0000000000000000000000000000000000000000000000000000000000000000 1760 0000000000000000000000000000000000000000000010421042FF7FFF7FFF7F 1761 1F00FF7FFF7FFF7F104210420000000000000000000000000000000000000000 1762 0000000000000000000000000000000000000000000010421042FF7FFF7FFF7F 1763 1F00FF7FFF7FFF7F104210420000000000000000000000000000000000000000 1764 0000000000000000000000000000000000000000000000000000000000000000 1765 0000000000000000000000000000000000000000000000000000000000000000 1766 0000000000000000000000000000000000000000000000000000000000000000 1767 0000000000000000000000000000000000000000000000000000000000000000 1768 000000000000000000000000000000000000000000001042FF7F1F00FF7FFF7F 1769 FF7FFF7FFF7F1F00FF7F10420000000000000000000000000000000000000000 1770 000000000000000000000000000000000000000000001042FF7F1F00FF7FFF7F 1771 FF7FFF7FFF7F1F00FF7F10420000000000000000000000000000000000000000 1772 0000000000000000000000000000000000000000000000000000000000000000 1773 0000000000000000000000000000000000000000000000000000000000000000 1774 0000000000000000000000000000000000000000000000000000000000000000 1775 0000000000000000000000000000000000000000000000000000000000000000 1776 000000000000000000000000000000000000000010421863FF7FFF7FFF7FFF7F 1777 FF7FFF7FFF7FFF7FFF7F18631042000000000000000000000000000000000000 1778 000000000000000000000000000000000000000010421863FF7FFF7FFF7FFF7F 1779 FF7FFF7FFF7FFF7FFF7F18631042000000000000000000000000000000000000 1780 0000000000000000000000000000000000000000000000000000000000000000 1781 0000000000000000000000000000000000000000000000000000000000000000 1782 0000000000000000000000000000000000000000000000000000000000000000 1783 0000000000000000000000000000000000000000000000000000000000000000 1784 00000000000000000000000000000000000000001042FF7FFF7FFF7FFF7FFF7F 1785 FF7FFF7FFF7FFF7FFF7FFF7F1042000000000000000000000000000000000000 1786 00000000000000000000000000000000000000001042FF7FFF7FFF7FFF7FFF7F 1787 FF7FFF7FFF7FFF7FFF7FFF7F1042000000000000000000000000000000000000 1788 0000000000000000000000000000000000000000000000000000000000000000 1789 0000000000000000000000000000000000000000000000000000000000000000 1790 0000000000000000000000000000000000000000000000000000000000000000 1791 0000000000000000000000000000000000000000000000000000000000000000 1792 00000000000000000000000000000000000000001042FF7F0000000000000000 1793 007CFF7FFF7FFF7F1F00FF7F1042000000000000000000000000000000000000 1794 00000000000000000000000000000000000000001042FF7F0000000000000000 1795 007CFF7FFF7FFF7F1F00FF7F1042000000000000000000000000000000000000 1796 0000000000000000000000000000000000000000000000000000000000000000 1797 0000000000000000000000000000000000000000000000000000000000000000 1798 0000000000000000000000000000000000000000000000000000000000000000 1799 0000000000000000000000000000000000000000000000000000000000000000 1800 00000000000000000000000000000000000000001042FF7FFF7FFF7FFF7FFF7F 1801 FF7F0000FF7FFF7FFF7FFF7F1042000000000000000000000000000000000000 1802 00000000000000000000000000000000000000001042FF7FFF7FFF7FFF7FFF7F 1803 FF7F0000FF7FFF7FFF7FFF7F1042000000000000000000000000000000000000 1804 0000000000000000000000000000000000000000000000000000000000000000 1805 0000000000000000000000000000000000000000000000000000000000000000 1806 0000000000000000000000000000000000000000000000000000000000000000 1807 0000000000000000000000000000000000000000000000000000000000000000 1808 000000000000000000000000000000000000000010421863FF7FFF7FFF7FFF7F 1809 FF7FFF7F0000FF7FFF7F18631042000000000000000000000000000000000000 1810 000000000000000000000000000000000000000010421863FF7FFF7FFF7FFF7F 1811 FF7FFF7F0000FF7FFF7F18631042000000000000000000000000000000000000 1812 0000000000000000000000000000000000000000000000000000000000000000 1813 0000000000000000000000000000000000000000000000000000000000000000 1814 0000000000000000000000000000000000000000000000000000000000000000 1815 0000000000000000000000000000000000000000000000000000000000000000 1816 000000000000000000000000000000000000000000001042FF7F1F00FF7FFF7F 1817 FF7FFF7FFF7FFF7FFF7F10420000000000000000000000000000000000000000 1818 000000000000000000000000000000000000000000001042FF7F1F00FF7FFF7F 1819 FF7FFF7FFF7FFF7FFF7F10420000000000000000000000000000000000000000 1820 0000000000000000000000000000000000000000000000000000000000000000 1821 0000000000000000000000000000000000000000000000000000000000000000 1822 0000000000000000000000000000000000000000000000000000000000000000 1823 0000000000000000000000000000000000000000000000000000000000000000 1824 0000000000000000000000000000000000000000000010421042FF7FFF7FFF7F 1825 1F00FF7FFF7FFF7F104210420000000000000000000000000000000000000000 1826 0000000000000000000000000000000000000000000010421042FF7FFF7FFF7F 1827 1F00FF7FFF7FFF7F104210420000000000000000000000000000000000000000 1828 0000000000000000000000000000000000000000000000000000000000000000 1829 0000000000000000000000000000000000000000000000000000000000000000 1830 0000000000000000000000000000000000000000000000000000000000000000 1831 0000000000000000000000000000000000000000000000000000000000000000 1832 000000000000000000000000000000000000000000000000104210421863FF7F 1833 1F00FF7F18631042104200000000000000000000000000000000000000000000 1834 000000000000000000000000000000000000000000000000104210421863FF7F 1835 1F00FF7F18631042104200000000000000000000000000000000000000000000 1836 0000000000000000000000000000000000000000000000000000000000000000 1837 0000000000000000000000000000000000000000000000000000000000000000 1838 0000000000000000000000000000000000000000000000000000000000000000 1839 0000000000000000000000000000000000000000000000000000000000000000 1840 0000000000000000000000000000000000000000000000000000000010421042 1841 1042104210420000000000000000000000000000000000000000000000000000 1842 0000000000000000000000000000000000000000000000000000000010421042 1843 1042104210420000000000000000000000000000000000000000000000000000 1844 0000000000000000000000000000000000000000000000000000000000000000 1845 0000000000000000000000000000000000000000000000000000000000000000 1846 0000000000000000000000000000000000000000000000000000000000000000 1847 0000000000000000000000000000000000000000000000000000000000000000 1848 0000000000000000000000000000000000000000000000000000000000000000 1849 0000000000000000000000000000000000000000000000000000000000000000 1850 0000000000000000000000000000000000000000000000000000000000000000 1851 0000000000000000000000000000000000000000000000000000000000000000 1852 0000000000000000000000000000000000000000000000000000000000000000 1853 0000000000000000000000000000000000000000000000000000000000000000 1854 0000000000000000000000000000000000000000000000000000000000000000 1855 0000000000000000000000000000000000000000000000000000000000000000 1856 0000000000000000000000000000000000000000000000000000000000000000 1857 0000000000000000000000000000000000000000000000000000000000000000 1858 0000000000000000000000000000000000000000000000000000000000000000 1859 0000000000000000000000000000000000000000000000000000000000000000 1860 0000000000000000000000000000000000000000000000000000000000000000 1861 0000000000000000000000000000000000000000000000000000000000000000 1862 0000000000000000000000000000000000000000000000000000000000000000 1863 0000000000000000000000000000000000000000000000000000000000000000 1864 0000000000000000000000000000000000000000000000000040000000000000 1865 0000000000000000004000000000000000000000000000000000000000000000 1866 0000000000000000000000000000000000000000000000000040000000000000 1867 0000000000000000004000000000000000000000000000000000000000000000 1868 0000000000000000000000000000000000000000000000001002000000000000 1869 0000000000000000100200000000000000000000000000000000000000000000 1870 0000000000000000000000000000000000000000000000001002000000000000 1871 0000000000000000100200000000000000000000000000000000000000000000 1872 000000000000000000000000000000000000000000000040000000000000007C 1873 0000007C00000000000000400000000000000000000000000000000000000000 1874 000000000000000000000000000000000000000000000040000000000000007C 1875 0000007C00000000000000400000000000000000000000000000000000000000 1876 000000000000000000000000000000000000000000001002000000000000FF03 1877 0000FF0300000000000010020000000000000000000000000000000000000000 1878 000000000000000000000000000000000000000000001002000000000000FF03 1879 0000FF0300000000000010020000000000000000000000000000000000000000 1880 0000000000000000000000000000000000000000000000000000007C1863FF7F 1881 0000FF7F1863007C000000000000000000000000000000000000000000000000 1882 0000000000000000000000000000000000000000000000000000007C1863FF7F 1883 0000FF7F1863007C000000000000000000000000000000000000000000000000 1884 0000000000000000000000000000000000000000000000000000FF031863FF7F 1885 0000FF7F1863FF03000000000000000000000000000000000000000000000000 1886 0000000000000000000000000000000000000000000000000000FF031863FF7F 1887 0000FF7F1863FF03000000000000000000000000000000000000000000000000 1888 000000000000000000000000000000000000000010420000007C18630000FF7F 1889 FF7FFF7F00001863007C00001042000000000000000000000000000000000000 1890 000000000000000000000000000000000000000010420000007C18630000FF7F 1891 FF7FFF7F00001863007C00001042000000000000000000000000000000000000 1892 000000000000000000000000000000000000000010420000FF0318630000FF7F 1893 FF7FFF7F00001863FF0300001042000000000000000000000000000000000000 1894 000000000000000000000000000000000000000010420000FF0318630000FF7F 1895 FF7FFF7F00001863FF0300001042000000000000000000000000000000000000 1896 00000000000000000000000000000000000000000000007C007CFF7FFF7FFF7F 1897 FF7FFF7FFF7FFF7F007C007C0000000000000000000000000000000000000000 1898 00000000000000000000000000000000000000000000007C007CFF7FFF7FFF7F 1899 FF7FFF7FFF7FFF7F007C007C0000000000000000000000000000000000000000 1900 00000000000000000000000000000000000000000000FF03FF03FF7FFF7F0000 1901 FF7FFF7FFF7FFF7FFF03FF030000000000000000000000000000000000000000 1902 00000000000000000000000000000000000000000000FF03FF03FF7FFF7F0000 1903 FF7FFF7FFF7FFF7FFF03FF030000000000000000000000000000000000000000 1904 00000000000000000000000000000000000000000000007C0000FF7F00000000 1905 0000FF7FFF7F00000000007C0000000000000000000000000000000000000000 1906 00000000000000000000000000000000000000000000007C0000FF7F00000000 1907 0000FF7FFF7F00000000007C0000000000000000000000000000000000000000 1908 00000000000000000000000000000000000000000000FF030000FF7FFF7FFF7F 1909 0000FF7FFF7F00000000FF030000000000000000000000000000000000000000 1910 00000000000000000000000000000000000000000000FF030000FF7FFF7FFF7F 1911 0000FF7FFF7F00000000FF030000000000000000000000000000000000000000 1912 000000000000000000000000000000000000E07F0000007C007CFF7FFF7FFF7F 1913 0000FF7FFF7FFF7F007C007C0000E07F00000000000000000000000000000000 1914 000000000000000000000000000000000000E07F0000007C007CFF7FFF7FFF7F 1915 0000FF7FFF7FFF7F007C007C0000E07F00000000000000000000000000000000 1916 00000000000000000000000000000000000000000000FF03FF03FF7FFF7FFF7F 1917 0000FF7FFF7FFF7FFF03FF030000000000000000000000000000000000000000 1918 00000000000000000000000000000000000000000000FF03FF03FF7FFF7FFF7F 1919 0000FF7FFF7FFF7FFF03FF030000000000000000000000000000000000000000 1920 000000000000000000000000000000000000000010420000007C18630000FF7F 1921 0000FF7F00001863007C00001042000000000000000000000000000000000000 1922 000000000000000000000000000000000000000010420000007C18630000FF7F 1923 0000FF7F00001863007C00001042000000000000000000000000000000000000 1924 000000000000000000000000000000000000000010420000FF0318630000FF7F 1925 0000FF7F00001863FF0300001042000000000000000000000000000000000000 1926 000000000000000000000000000000000000000010420000FF0318630000FF7F 1927 0000FF7F00001863FF0300001042000000000000000000000000000000000000 1928 000000000000000000000000000000000000E07FE07F00000000007C1863FF7F 1929 0000FF7F1863007C00000000E07FE07F00000000000000000000000000000000 1930 000000000000000000000000000000000000E07FE07F00000000007C1863FF7F 1931 0000FF7F1863007C00000000E07FE07F00000000000000000000000000000000 1932 0000000000000000000000000000000000000000000000000000FF031863FF7F 1933 0000FF7F1863FF03000000000000000000000000000000000000000000000000 1934 0000000000000000000000000000000000000000000000000000FF031863FF7F 1935 0000FF7F1863FF03000000000000000000000000000000000000000000000000 1936 00000000000000000000000000000000000000000000000000000000007C007C 1937 007C007C007C0000000000000000000000000000000000000000000000000000 1938 00000000000000000000000000000000000000000000000000000000007C007C 1939 007C007C007C0000000000000000000000000000000000000000000000000000 1940 00000000000000000000000000000000000000000000000000000000FF03FF03 1941 FF03FF03FF030000000000000000000000000000000000000000000000000000 1942 00000000000000000000000000000000000000000000000000000000FF03FF03 1943 FF03FF03FF030000000000000000000000000000000000000000000000000000 1944 0000000000000000000000000000000000000000186318631042000000000000 1945 0000000000000000186310421042000000000000000000000000000000000000 1946 0000000000000000000000000000000000000000186318631042000000000000 1947 0000000000000000186310421042000000000000000000000000000000000000 1948 0000000000000000000000000000000000000000186318631042000000000000 1949 0000000000000000186310421042000000000000000000000000000000000000 1950 0000000000000000000000000000000000000000186318631042000000000000 1951 0000000000000000186310421042000000000000000000000000000000000000 1952 0000000000000000000000000000000000000000186318631863186310421042 1953 0000104218631863186318631042000000000000000000000000000000000000 1954 0000000000000000000000000000000000000000186318631863186310421042 1955 0000104218631863186318631042000000000000000000000000000000000000 1956 0000000000000000000000000000000000000000186318631863186310421042 1957 0000104218631863186318631042000000000000000000000000000000000000 1958 0000000000000000000000000000000000000000186318631863186310421042 1959 0000104218631863186318631042000000000000000000000000000000000000 1960 000000000000000000000000000000000000E07F000010421863186300000000 1961 E07F000000001863186310420000E07F00000000000000000000000000000000 1962 000000000000000000000000000000000000E07F000010421863186300000000 1963 E07F000000001863186310420000E07F00000000000000000000000000000000 1964 0000000000000000000000000000000000000000000010421863186300001042 1965 0000104200001863186310420000000000000000000000000000000000000000 1966 0000000000000000000000000000000000000000000010421863186300001042 1967 0000104200001863186310420000000000000000000000000000000000000000 1968 00000000000000000000000000000000000000000000104200000000E07FE07F 1969 E07FE07FE07F0000000010420000000000000000000000000000000000000000 1970 00000000000000000000000000000000000000000000104200000000E07FE07F 1971 E07FE07FE07F0000000010420000000000000000000000000000000000000000 1972 0000000000000000000000000000000000000000000010420000000000000000 1973 0000000000000000000010420000000000000000000000000000000000000000 1974 0000000000000000000000000000000000000000000010420000000000000000 1975 0000000000000000000010420000000000000000000000000000000000000000 1976 000000000000000000000000000000000000000000000000E07FE07F0000E07F 1977 0000E07F0000E07FE07F00000000000000000000000000000000000000000000 1978 000000000000000000000000000000000000000000000000E07FE07F0000E07F 1979 0000E07F0000E07FE07F00000000000000000000000000000000000000000000 1980 0000000000000000000000000000000000000000000000000000000000000000 1981 0000000000000000000000000000000000000000000000000000000000000000 1982 0000000000000000000000000000000000000000000000000000000000000000 1983 0000000000000000000000000000000000000000000000000000000000000000 1984 00000000000000000000000000000000000000000000E07FE07F00000000E07F 1985 0000E07F00000000E07FE07F0000000000000000000000000000000000000000 1986 00000000000000000000000000000000000000000000E07FE07F00000000E07F 1987 0000E07F00000000E07FE07F0000000000000000000000000000000000000000 2806 0000000000003600000028000000800000004000000001002000000000000080 2807 0000000000000000000000000000000000000000000000000000000000000000 2808 0000000000000000000000000000000000000000000000000000000000000000 2809 0000000000000000000000000000000000000000000000000000000000000000 2810 0000000000000000000000000000000000000000000000000000000000000000 2811 0000000000000000000000000000000000000000000000000000000000000000 2812 0000000000000000000000000000000000000000000000000000000000000000 2813 0000000000000000000000000000000000000000000000000000000000000000 2814 0000000000000000000000000000000000000000000000000000000000000000 2815 0000000000000000000000000000000000000000000000000000000000000000 2816 0000000000000000000000000000000000000000000000000000000000000000 2817 0000000000000000000000000000000000000000000000000000000000000000 2818 0000000000000000000000000000000000000000000000000000000000000000 2819 0000000000000000000000000000000000000000000000000000000000000000 2820 0000000000000000000000000000000000000000000000000000000000000000 2821 0000000000000000000000000000000000000000000000000000000000000000 2822 0000000000000000000000000000000000000000000000000000000000000000 2823 0000000000000000000000000000000000000000000000000000000000000000 2824 0000000000000000000000000000000000000000000000000000000000000000 2825 0000000000000000000000000000000000000000000000000000000000000000 2826 0000000000000000000000000000000000000000000000000000000000000000 2827 0000000000000000000000000000000000000000000000000000000000000000 2828 0000000000000000000000000000000000000000000000000000000000000000 2829 0000000000000000000000000000000000000000000000000000000000000000 2830 0000000000000000000000000000000000000000000000000000000000000000 2831 0000000000000000000000000000000000000000000000000000000000000000 2832 0000000000000000000000000000000000000000000000000000000000000000 2833 0000000000000000000000000000000000000000000000000000000000000000 2834 0000000000000000000000000000000000000000000000000000000000000000 2835 0000000000000000000000000000000000000000000000000000000000000000 2836 0000000000000000000000000000000000000000000000000000000000000000 2837 0000000000000000000000000000000000000000000000000000000000000000 2838 0000000000000000000000000000000000000000000000000000000000000000 2839 0000000000000000000000000000000000000000000000000000000000000000 2840 0000000000000000000000000000000000000000000000000000000000000000 2841 0000000000000000000000000000000000000000000000000000000000000000 2842 0000000000000000000000000000000000000000000000000000000000000000 2843 0000000000000000000000000000000000000000000000000000000000000000 2844 0000000000000000000000000000000000000000000000000000000000000000 2845 0000000000000000000000000000000000000000000000000000000000000000 2846 0000000000000000000000000000000000000000000000000000000000000000 2847 0000000000000000000000000000000000000000000000000000000000000000 2848 0000000000000000000000000000000000000000000000000000000000000000 2849 0000000000000000000000000000000000000000000000000000000000000000 2850 0000000000000000000000000000000000000000000000000000000000000000 2851 0000000000000000000000000000000000000000000000000000000000000000 2852 0000000000000000000000000000000000000000000000000000000000000000 2853 0000000000000000000000000000000000000000000000000000000000000000 2854 0000000000000000000000000000000000000000000000000000000000000000 2855 0000000000000000000000000000000000000000000000000000000000000000 2856 0000000000000000000000000000000000000000000000000000000000000000 2857 0000000000000000000000000000000000000000000000000000000000000000 2858 0000000000000000000000000000000000000000000000000000000000000000 2859 0000000000000000000000000000000000000000000000000000000000000000 2860 0000000000000000000000000000000000000000000000000000000000000000 2861 0000000000000000000000000000000000000000000000000000000000000000 2862 0000000000000000000000000000000000000000000000000000000000000000 2863 0000000000000000000000000000000000000000000000000000000000000000 2864 0000000000000000000000000000000000000000000000000000000000000000 2865 0000000000000000000000000000000000000000000000000000000000000000 2866 0000000000000000000000000000000000000000000000000000000000000000 2867 0000000000000000000000000000000000000000000000000000000000000000 2868 0000000000000000000000000000000000000000000000000000000000000000 2869 0000000000000000000000000000000000000000000000000000000000000000 2870 0000000000000000000000000000000000000000000000000000000000000000 2871 0000000000000000000000000000000000000000000000000000000000000000 2872 0000000000000000000000000000000000000000000000000000000000000000 2873 0000000000000000000000000000000000000000000000000000000000000000 2874 0000000000000000000000000000000000000000000000000000000000000000 2875 0000000000000000000000000000000000000000000000000000000000000000 2876 0000000000000000000000000000000000000000000000000000000000000000 2877 0000000000000000000000000000000000000000000000000000000000000000 2878 0000000000000000000000000000000000000000000000000000000000000000 2879 0000000000000000000000000000000000000000000000000000000000000000 2880 0000000000000000000000000000000000000000000000000000000000000000 2881 0000000000000000000000000000000000000000000000000000000000000000 2882 0000000000000000000000000000000000000000000000000000000000000000 2883 0000000000000000000000000000000000000000000000000000000000000000 2884 0000000000000000000000000000000000000000000000000000000000000000 2885 0000000000000000000000000000000000000000000000000000000000000000 2886 0000000000000000000000000000000000000000000000000000000000000000 2887 0000000000000000000000000000000000000000000000000000000000000000 2888 0000000000000000000000000000000000000000000000000000000000000000 2889 0000000000000000000000000000000000000000000000000000000000000000 2890 0000000000000000000000000000000000000000000000000000000000000000 2891 0000000000000000000000000000000000000000000000000000000000000000 2892 0000000000000000000000000000000000000000000000000000000000000000 2893 0000000000000000000000000000000000000000000000000000000000000000 2894 0000000000000000000000000000000000000000000000000000000000000000 2895 0000000000000000000000000000000000000000000000000000000000000000 2896 0000000000000000000000000000000000000000000000000000000000000000 2897 0000000000000000000000000000000000000000000000000000000000000000 2898 0000000000000000000000000000000000000000000000000000000000000000 2899 0000000000000000000000000000000000000000000000000000000000000000 2900 0000000000000000000000000000000000000000000000000000000000000000 2901 0000000000000000000000000000000000000000000000000000000000000000 2902 0000000000000000000000000000000000000000000000000000000000000000 2903 0000000000000000000000000000000000000000000000000000000000000000 2904 0000000000000000000000000000000000000000000000000000000000000000 2905 0000000000000000000000000000000000000000000000000000000000000000 2906 0000000000000000000000000000000000000000000000000000000000000000 2907 0000000000000000000000000000000000000000000000000000000000000000 2908 0000000000000000000000000000000000000000000000000000000000000000 2909 0000000000000000000000000000000000000000000000000000000000000000 2910 0000000000000000000000000000000000000000000000000000000000000000 2911 0000000000000000000000000000000000000000000000000000000000000000 2912 0000000000000000000000000000000000000000000000000000000000000000 2913 0000000000000000000000000000000000000000000000000000000000000000 2914 0000000000000000000000000000000000000000000000000000000000000000 2915 0000000000000000000000000000000000000000000000000000000000000000 2916 0000000000000000000000000000000000000000000000000000000000000000 2917 0000000000000000000000000000000000000000000000000000000000000000 2918 0000000000000000000000000000000000000000000000000000000000000000 2919 0000000000000000000000000000000000000000000000000000000000000000 2920 0000000000000000000000000000000000000000000000000000000000000000 2921 0000000000000000000000000000000000000000000000000000000000000000 2922 0000000000000000000000000000000000000000000000000000000000000000 2923 0000000000000000000000000000000000000000000000000000000000000000 2924 0000000000000000000000000000000000000000000000000000000000000000 2925 0000000000000000000000000000000000000000000000000000000000000000 2926 0000000000000000000000000000000000000000000000000000000000000000 2927 0000000000000000000000000000000000000000000000000000000000000000 2928 0000000000000000000000000000000000000000000000000000000000000000 2929 0000000000000000000000000000000000000000000000000000000000000000 2930 0000000000000000000000000000000000000000000000000000000000000000 2931 0000000000000000000000000000000000000000000000000000000000000000 2932 0000000000000000000000000000000000000000000000000000000000000000 2933 0000000000000000000000000000000000000000000000000000000000000000 2934 0000000000000000000000000000000000000000000000000000000000000000 2935 0000000000000000000000000000000000000000000000000000000000000000 2936 0000000000000000000000000000000000000000000000000000000000000000 2937 0000000000000000000000000000000000000000000000000000000000000000 2938 0000000000000000000000000000000000000000000000000000000000000000 2939 0000000000000000000000000000000000000000000000000000000000000000 2940 0000000000000000000000000000000000000000000000000000000000000000 2941 0000000000000000000000000000000000000000000000000000000000000000 2942 0000000000000000000000000000000000000000000000000000000000000000 2943 0000000000000000000000000000000000000000000000000000000000000000 2944 0000000000000000000000000000000000000000000000000000000000000000 2945 0000000000000000000000000000000000000000000000000000000000000000 2946 0000000000000000000000000000000000000000000000000000000000000000 2947 0000000000000000000000000000000000000000000000000000000000000000 2948 0000000000000000000000000000000000000000000000000000000000000000 2949 0000000000000000000000000000000000000000000000000000000000000000 2950 0000000000000000000000000000000000000000000000000000000000000000 2951 0000000000000000000000000000000000000000000000000000000000000000 2952 0000000000000000000000000000000000000000000000000000000000000000 2953 0000000000000000000000000000000000000000000000000000000000000000 2954 0000000000000000000000000000000000000000000000000000000000000000 2955 0000000000000000000000000000000000000000000000000000000000000000 2956 0000000000000000000000000000000000000000000000000000000000000000 2957 0000000000000000000000000000000000000000000000000000000000000000 2958 0000000000000000000000000000000000000000000000000000000000000000 2959 0000000000000000000000000000000000000000000000000000000000000000 2960 0000000000000000000000000000000000000000000000000000000000000000 2961 0000000000000000000000000000000000000000000000000000000000000000 2962 0000000000000000000000000000000000000000000000000000000000000000 2963 0000000000000000000000000000000000000000000000000000000000000000 2964 0000000000000000000000000000000000000000000000000000000000000000 2965 0000000000000000000000000000000000000000000000000000000000000000 2966 0000000000000000000000000000000000000000000000000000000000000000 2967 0000000000000000000000000000000000000000000000000000000000000000 2968 0000000000000000000000000000000000000000000000000000000000000000 2969 0000000000000000000000000000000000000000000000000000000000000000 2970 0000000000000000000000000000000000000000000000000000000000000000 2971 0000000000000000000000000000000000000000000000000000000000000000 2972 0000000000000000000000000000000000000000000000000000000000000000 2973 0000000000000000000000000000000000000000000000000000000000000000 2974 0000000000000000000000000000000000000000000000000000000000000000 2975 0000000000000000000000000000000000000000000000000000000000000000 2976 0000000000000000000000000000000000000000000000000000000000000000 2977 0000000000000000000000000000000000000000000000000000000000000000 2978 0000000000000000000000000000000000000000000000000000000000000000 2979 0000000000000000000000000000000000000000000000000000000000000000 2980 0000000000000000000000000000000000000000000000000000000000000000 2981 0000000000000000000000000000000000000000000000000000000000000000 2982 0000000000000000000000000000000000000000000000000000000000000000 2983 0000000000000000000000000000000000000000000000000000000000000000 2984 0000000000000000000000000000000000000000000000000000000000000000 2985 0000000000000000000000000000000000000000000000000000000000000000 2986 0000000000000000000000000000000000000000000000000000000000000000 2987 0000000000000000000000000000000000000000000000000000000000000000 2988 0000000000000000000000000000000000000000000000000000000000000000 2989 0000000000000000000000000000000000000000000000000000000000000000 2990 0000000000000000000000000000000000000000000000000000000000000000 2991 0000000000000000000000000000000000000000000000000000000000000000 2992 0000000000000000000000000000000000000000000000000000000000000000 2993 0000000000000000000000000000000000000000000000000000000000000000 2994 0000000000000000000000000000000000000000000000000000000000000000 2995 0000000000000000000000000000000000000000000000000000000000000000 2996 0000000000000000000000000000000000000000000000000000000000000000 2997 0000000000000000000000000000000000000000000000000000000000000000 2998 0000000000000000000000000000000000000000000000000000000000000000 2999 0000000000000000000000000000000000000000000000000000000000000000 3000 0000000000000000000000000000000000000000000000000000000000000000 3001 0000000000000000000000000000000000000000000000000000000000000000 3002 0000000000000000000000000000000000000000000000000000000000000000 3003 0000000000000000000000000000000000000000000000000000000000000000 3004 0000000000000000000000000000000000000000000000000000000000000000 3005 0000000000000000000000000000000000000000000000000000000000000000 3006 0000000000000000000000000000000000000000000000000000000000000000 3007 0000000000000000000000000000000000000000000000000000000000000000 3008 0000000000000000000000000000000000000000000000000000000000000000 3009 0000000000000000000000000000000000000000000000000000000000000000 3010 0000000000000000000000000000000000000000000000000000000000000000 3011 0000000000000000000000000000000000000000000000000000000000000000 3012 0000000000000000000000000000000000000000000000000000000000000000 3013 0000000000000000000000000000000000000000000000000000000000000000 3014 0000000000000000000000000000000000000000000000000000000000000000 3015 0000000000000000000000000000000000000000000000000000000000000000 3016 0000000000000000000000000000000000000000000000000000000000000000 3017 0000000000000000000000000000000000000000000000000000000000000000 3018 0000000000000000000000000000000000000000000000000000000000000000 3019 0000000000000000000000000000000000000000000000000000000000000000 3020 0000000000000000000000000000000000000000000000000000000000000000 3021 0000000000000000000000000000000000000000000000000000000000000000 3022 0000000000000000000000000000000000000000000000000000000000000000 3023 0000000000000000000000000000000000000000000000000000000000000000 3024 0000000000000000000000000000000000000000000000000000000000000000 3025 0000000000000000000000000000000000000000000000000000000000000000 3026 0000000000000000000000000000000000000000000000000000000000000000 3027 0000000000000000000000000000000000000000000000000000000000000000 3028 0000000000000000000000000000000000000000000000000000000000000000 3029 0000000000000000000000000000000000000000000000000000000000000000 3030 0000000000000000000000000000000000000000000000000000000000000000 3031 0000000000000000000000000000000000000000000000000000000000000000 3032 0000000000000000000000000000000000000000000000000000000000000000 3033 0000000000000000000000000000000000000000000000000000000000000000 3034 0000000000000000000000000000000000000000000000000000000000000000 3035 0000000000000000000000000000000000000000000000000000000000000000 3036 0000000000000000000000000000000000000000000000000000000000000000 3037 0000000000000000000000000000000000000000000000000000000000000000 3038 0000000000000000000000000000000000000000000000000000000000000000 3039 0000000000000000000000000000000000000000000000000000000000000000 3040 0000000000000000000000000000000000000000000000000000000000000000 3041 0000000000000000000000000000000000000000000000000000000000000000 3042 0000000000000000000000000000000000000000000000000000000000000000 3043 0000000000000000000000000000000000000000000000000000000000000000 3044 0000000000000000000000000000000000000000000000000000000000000000 3045 0000000000000000000000000000000000000000000000000000000000000000 3046 0000000000000000000000000000000000000000000000000000000000000000 3047 0000000000000000000000000000000000000000000000000000000000000000 3048 0000000000000000000000000000000000000000000000000000000000000000 3049 0000000000000000000000000000000000000000000000000000000000000000 3050 0000000000000000000000000000000000000000000000000000000000000000 3051 0000000000000000000000000000000000000000000000000000000000000000 3052 0000000000000000000000000000000000000000000000000000000000000000 3053 0000000000000000000000000000000000000000000000000000000000000000 3054 0000000000000000000000000000000000000000000000000000000000000000 3055 0000000000000000000000000000000000000000000000000000000000000000 3056 0000000000000000000000000000000000000000000000000000000000000000 3057 0000000000000000000000000000000000000000000000000000000000000000 3058 0000000000000000000000000000000000000000000000000000000000000000 3059 0000000000000000000000000000000000000000000000000000000000000000 3060 0000000000000000000000000000000000000000000000000000000000000000 3061 0000000000000000000000000000000000000000000000000000000000000000 3062 0000000000000000000000000000000000000000000000000000000000000000 3063 0000000000000000000000000000000000000000000000000000000000000000 3064 0000000000000000000000000000000000000000000000000000000000000000 3065 0000000000000000000000000000000000000000000000000000000000000000 3066 0000000000000000000000000000000000000000000000000000000000000000 3067 0000000000000000000000000000000000000000000000000000000000000000 3068 0000000000000000000000000000000000000000000000000000000000000000 3069 0000000000000000000000000000000000000000000000000000000000000000 3070 0000000000000000000000000000000000000000000000000000000000000000 3071 0000000000000000000000000000000000000000000000000000000000000000 3072 0000000000000000000000000000000000000000000000000000000000000000 3073 0000000000000000000000000000000000000000000000000000000000000000 3074 0000000000000000000000000000000000000000000000000000000000000000 3075 0000000000000000000000000000000000000000000000000000000000000000 3076 0000000000000000000000000000000000000000000000000000000000000000 3077 0000000000000000000000000000000000000000000000000000000000000000 3078 0000000000000000000000000000000000000000000000000000000000000000 3079 0000000000000000000000000000000000000000000000000000000000000000 3080 0000000000000000000000000000000000000000000000000000000000000000 3081 0000000000000000000000000000000000000000000000000000000000000000 3082 0000000000000000000000000000000000000000000000000000000000000000 3083 0000000000000000000000000000000000000000000000000000000000000000 3084 0000000000000000000000000000000000000000000000000000000000000000 3085 0000000000000000000000000000000000000000000000000000000000000000 3086 0000000000000000000000000000000000000000000000000000000000000000 3087 0000000000000000000000000000000000000000000000000000000000000000 3088 0000000000000000000000000000000000000000000000000000000000000000 3089 0000000000000000000000000000000000000000000000000000000000000000 3090 0000000000000000000000000000000000000000000000000000000000000000 3091 0000000000000000000000000000000000000000000000000000000000000000 3092 0000000000000000000000000000000000000000000000000000000000000000 3093 0000000000000000000000000000000000000000000000000000000000000000 3094 0000000000000000000000000000000000000000000000000000000000000000 3095 0000000000000000000000000000000000000000000000000000000000000000 3096 0000000000000000000000000000000000000000000000000000000000000000 3097 0000000000000000000000000000000000000000000000000000000000000000 3098 0000000000000000000000000000000000000000000000000000000000000000 3099 0000000000000000000000000000000000000000000000000000000000000000 3100 0000000000000000000000000000000000000000000000000000000000000000 3101 0000000000000000000000000000000000000000000000000000000000000000 3102 0000000000000000000000000000000000000000000000000000000000000000 3103 0000000000000000000000000000000000000000000000000000000000000000 3104 0000000000000000000000000000000000000000000000000000000000000000 3105 0000000000000000000000000000000000000000000000000000000000000000 3106 0000000000000000000000000000000000000000000000000000000000000000 3107 0000000000000000000000000000000000000000000000000000000000000000 3108 0000000000000000000000000000000000000000000000000000000000000000 3109 0000000000000000000000000000000000000000000000000000000000000000 3110 0000000000000000000000000000000000000000000000000000000000000000 3111 0000000000000000000000000000000000000000000000000000000000000000 3112 0000000000000000000000000000000000000000000000000000000000000000 3113 0000000000000000000000000000000000000000000000000000000000000000 3114 0000000000000000000000000000000000000000000000000000000000000000 3115 0000000000000000000000000000000000000000000000000000000000000000 3116 0000000000000000000000000000000000000000000000000000000000000000 3117 0000000000000000000000000000000000000000000000000000000000000000 3118 0000000000000000000000000000000000000000000000000000000000000000 3119 0000000000000000000000000000000000000000000000000000000000000000 3120 0000000000000000000000000000000000000000000000000000000000000000 3121 0000000000000000000000000000000000000000000000000000000000000000 3122 0000000000000000000000000000000000000000000000000000000000000000 3123 0000000000000000000000000000000000000000000000000000000000000000 3124 0000000000000000000000000000000000000000000000000000000000000000 3125 0000000000000000000000000000000000000000000000000000000000000000 3126 0000000000000000000000000000000000000000000000000000000000000000 3127 0000000000000000000000000000000000000000000000000000000000000000 3128 0000000000000000000000000000000000000000000000000000000000000000 3129 0000000000000000000000000000000000000000000000000000000000000000 3130 0000000000000000000000000000000000000000000000000000000000000000 3131 0000000000000000000000000000000000000000000000000000000000000000 3132 0000000000000000000000000000000000000000000000000000000000000000 3133 0000000000000000000000000000000000000000000000000000000000000000 3134 0000000000000000000000000000000000000000000000000000000000000000 3135 0000000000000000000000000000000000000000000000000000000000000000 3136 0000000000000000000000000000000000000000000000000000000000000000 3137 0000000000000000000000000000000000000000000000000000000000000000 3138 0000000000000000000000000000000000000000000000000000000000000000 3139 0000000000000000000000000000000000000000000000000000000000000000 3140 0000000000000000000000000000000000000000000000000000000000000000 3141 0000000000000000000000000000000000000000000000000000000000000000 3142 0000000000000000000000000000000000000000000000000000000000000000 3143 0000000000000000000000000000000000000000000000000000000000000000 3144 0000000000000000000000000000000000000000000000000000000000000000 3145 00000000000000000000000000000000000000000000000000000000000000FF 3146 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 3147 FF00000000000000000000000000000000000000000000000000000000000000 3148 0000000000000000000000000000000000000000000000000000000000000000 3149 00000000000000000000000000000000000000000000000000000000000000FF 3150 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 3151 FF00000000000000000000000000000000000000000000000000000000000000 3152 0000000000000000000000000000000000000000000000000000000000000000 3153 0000000000000000000000000000000000000000000000000000000000000000 3154 0000000000000000000000000000000000000000000000000000000000000000 3155 0000000000000000000000000000000000000000000000000000000000000000 3156 0000000000000000000000000000000000000000000000000000000000000000 3157 0000000000000000000000000000000000000000000000000000000000000000 3158 0000000000000000000000000000000000000000000000000000000000000000 3159 0000000000000000000000000000000000000000000000000000000000000000 3160 0000000000000000000000000000000000000000000000000000000000000000 3161 0000000000000000000000000000000000000000000000000000FFFFFF000000 3162 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 3163 C60000FFFF000000000000000000000000000000000000000000000000000000 3164 0000000000000000000000000000000000000000000000000000000000000000 3165 0000000000000000000000000000000000000000000000000000FFFFFF000000 3166 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 3167 C60000FFFF000000000000000000000000000000000000000000000000000000 3168 0000000000000000000000000000000000000000000000000000000000000000 3169 0000000000000000000000000000000000000000000000000000000000000000 3170 0000000000000000000000000000000000000000000000000000000000000000 3171 0000000000000000000000000000000000000000000000000000000000000000 3172 0000000000000000000000000000000000000000000000000000000000000000 3173 0000000000000000000000000000000000000000000000000000000000000000 3174 0000000000000000000000000000000000000000000000000000000000000000 3175 0000000000000000000000000000000000000000000000000000000000000000 3176 0000000000000000000000000000000000000000000000000000000000000000 3177 000000000000000000000000000000000000000000000000000000FFFF00FFFF 3178 FF000000000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 3179 FF00C6C6C60000FFFF0000000000000000000000000000000000000000000000 3180 0000000000000000000000000000000000000000000000000000000000000000 3181 000000000000000000000000000000000000000000000000000000FFFF00FFFF 3182 FF000000000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 3183 FF00C6C6C60000FFFF0000000000000000000000000000000000000000000000 3184 0000000000000000000000000000000000000000000000000000000000000000 3185 0000000000000000000000000000000000000000000000000000000000000000 3186 0000000000000000000000000000000000000000000000000000000000000000 3187 0000000000000000000000000000000000000000000000000000000000000000 3188 0000000000000000000000000000000000000000000000000000000000000000 3189 0000000000000000000000000000000000000000000000000000000000000000 3190 0000000000000000000000000000000000000000000000000000000000000000 3191 0000000000000000000000000000000000000000000000000000000000000000 3192 0000000000000000000000000000000000000000000000000000000000000000 3193 0000000000000000000000000000000000000000000000000000FFFFFF0000FF 3194 FF00FFFFFF000000000000000000000000000000000000000000000000000000 3195 0000000000000000000000000000000000000000000000000000000000000000 3196 0000000000000000000000000000000000000000000000000000000000000000 3197 0000000000000000000000000000000000000000000000000000FFFFFF0000FF 3198 FF00FFFFFF000000000000000000000000000000000000000000000000000000 3199 0000000000000000000000000000000000000000000000000000000000000000 3200 0000000000000000000000000000000000000000000000000000000000000000 3201 0000000000000000000000000000000000000000000000000000000000000000 3202 0000000000000000000000000000000000000000000000000000000000000000 3203 0000000000000000000000000000000000000000000000000000000000000000 3204 0000000000000000000000000000000000000000000000000000000000000000 3205 0000000000000000000000000000000000000000000000000000000000000000 3206 0000000000000000000000000000000000000000000000000000000000000000 3207 0000000000000000000000000000000000000000000000000000000000000000 3208 0000000000000000000000000000000000000000000000000000000000000000 3209 000000000000000000000000000000000000000000000000000000FFFF00FFFF 3210 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 3211 0000000000000000000000000000000000000000000000000000000000000000 3212 0000000000000000000000000000000000000000000000000000000000000000 3213 000000000000000000000000000000000000000000000000000000FFFF00FFFF 3214 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 3215 0000000000000000000000000000000000000000000000000000000000000000 3216 0000000000000000000000000000000000000000000000000000000000000000 3217 0000000000000000000000000000000000000000000000000000000000000000 3218 0000000000000000000000000000000000000000000000000000000000000000 3219 0000000000000000000000000000000000000000000000000000000000000000 3220 0000000000000000000000000000000000000000000000000000000000000000 3221 0000000000000000000000000000000000000000000000000000000000000000 3222 0000000000000000000000000000000000000000000000000000000000000000 3223 0000000000000000000000000000000000000000000000000000000000000000 3224 0000000000000000000000000000000000000000000000000000000000000000 3225 0000000000000000000000000000000000000000000000000000FFFFFF0000FF 3226 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 3227 0000000000000000000000000000000000000000000000000000000000000000 3228 0000000000000000000000000000000000000000000000000000000000000000 3229 0000000000000000000000000000000000000000000000000000FFFFFF0000FF 3230 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 3231 0000000000000000000000000000000000000000000000000000000000000000 3232 0000000000000000000000000000000000000000000000000000000000000000 3233 0000000000000000000000000000000000000000000000000000000000000000 3234 0000000000000000000000000000000000000000000000000000000000000000 3235 0000000000000000000000000000000000000000000000000000000000000000 3236 0000000000000000000000000000000000000000000000000000000000000000 3237 0000000000000000000000000000000000000000000000000000000000000000 3238 0000000000000000000000000000000000000000000000000000000000000000 3239 0000000000000000000000000000000000000000000000000000000000000000 3240 0000000000000000000000000000000000000000000000000000000000000000 3241 000000000000000000000000000000000000000000000000000000FFFF00FFFF 3242 FF0000FFFF00FFFFFF0000FFFF00FFFFFF000000000000000000000000000000 3243 0000000000000000000000000000000000000000000000000000000000000000 3244 0000000000000000000000000000000000000000000000000000000000000000 3245 000000000000000000000000000000000000000000000000000000FFFF00FFFF 3246 FF0000FFFF00FFFFFF0000FFFF00FFFFFF000000000000000000000000000000 3247 0000000000000000000000000000000000000000000000000000000000000000 3248 0000000000000000000000000000000000000000000000000000000000000000 3249 0000000000000000000000000000000000000000000000000000000000000000 3250 0000000000000000000000000000000000000000000000000000000000000000 3251 0000000000000000000000000000000000000000000000000000000000000000 3252 0000000000000000000000000000000000000000000000000000000000000000 3253 0000000000000000000000000000000000000000000000000000000000000000 3254 0000000000000000000000000000000000000000000000000000000000000000 3255 0000000000000000000000000000000000000000000000000000000000000000 3256 0000000000000000000000000000000000000000000000000000000000000000 3257 00000000000000000000000000000000000000000000000000000000000000FF 3258 FF00FFFFFF0000FFFF00FFFFFF00000000000000000000000000000000000000 3259 0000000000000000000000000000000000000000000000000000000000000000 3260 0000000000000000000000000000000000000000000000000000000000000000 3261 00000000000000000000000000000000000000000000000000000000000000FF 3262 FF00FFFFFF0000FFFF00FFFFFF00000000000000000000000000000000000000 3263 0000000000000000000000000000000000000000000000000000000000000000 3264 0000000000000000000000000000000000000000000000000000000000000000 3265 0000000000000000000000000000000000000000000000000000000000000000 3266 0000000000000000000000000000000000000000000000000000000000000000 3267 0000000000000000000000000000000000000000000000000000000000000000 3268 0000000000000000000000000000000000000000000000000000000000000000 3269 0000000000000000000000000000000000000000000000000000000000000000 3270 0000000000000000000000000000000000000000000000000000000000000000 3271 0000000000000000000000000000000000000000000000000000000000000000 3272 0000000000000000000000000000000000000000000000000000000000000000 3273 0000000000000000000000000000000000000000000000000000848484000000 3274 0000000000000000000000000000848484000000000000000000000000000000 3275 0000000000000000000000000000000000000000000000000000000000000000 3276 0000000000000000000000000000000000000000000000000000000000000000 3277 0000000000000000000000000000000000000000000000000000848484000000 3278 0000000000000000000000000000848484000000000000000000000000000000 3279 0000000000000000000000000000000000000000000000000000000000000000 3280 0000000000000000000000000000000000000000000000000000000000000000 3281 0000000000000000000000000000000000000000000000000000000000000000 3282 0000000000000000000000000000000000000000000000000000000000000000 3283 0000000000000000000000000000000000000000000000000000000000000000 3284 0000000000000000000000000000000000000000000000000000000000000000 3285 0000000000000000000000000000000000000000000000000000000000000000 3286 0000000000000000000000000000000000000000000000000000000000000000 3287 0000000000000000000000000000000000000000000000000000000000000000 3288 0000000000000000000000000000000000000000000000000000000000000000 3289 0000000000000000000000000000000000000000000000000000000000000000 3290 0000000000000000000000000000000000000000000000000000000000000000 3291 0000000000000000000000000000000000000000000000000000000000000000 3292 0000000000000000000000000000000000000000000000000000000000000000 3293 0000000000000000000000000000000000000000000000000000000000000000 3294 0000000000000000000000000000000000000000000000000000000000000000 3295 0000000000000000000000000000000000000000000000000000000000000000 3296 0000000000000000000000000000000000000000000000000000000000000000 3297 0000000000000000000000000000000000000000000000000000000000000000 3298 0000000000000000000000000000000000000000000000000000000000000000 3299 0000000000000000000000000000000000000000000000000000000000000000 3300 0000000000000000000000000000000000000000000000000000000000000000 3301 0000000000000000000000000000000000000000000000000000000000000000 3302 0000000000000000000000000000000000000000000000000000000000000000 3303 0000000000000000000000000000000000000000000000000000000000000000 3304 0000000000000000000000000000000000000000000000000000000000000000 3305 0000000000000000000000000000000000000000000000000000000000000000 3306 0000000000000000000000000000000000000000000000000000000000000000 3307 0000000000000000000000000000000000000000000000000000000000000000 3308 0000000000000000000000000000000000000000000000000000000000000000 3309 0000000000000000000000000000000000000000000000000000000000000000 3310 0000000000000000000000000000000000000000000000000000000000000000 3311 0000000000000000000000000000000000000000000000000000000000000000 3312 0000000000000000000000000000000000000000000000000000000000000000 3313 0000000000000000000000000000000000000000000000000000000000000000 3314 0000000000000000000000000000000000000000000000000000000000000000 3315 0000000000000000000000000000000000000000000000000000000000000000 3316 0000000000000000000000000000000000000000000000000000000000000000 3317 0000000000000000000000000000000000000000000000000000000000000000 3318 0000000000000000000000000000000000000000000000000000000000000000 3319 0000000000000000000000000000000000000000000000000000000000000000 3320 0000000000000000000000000000000000000000000000000000000000000000 3321 0000000000000000000000000000000000000000000000000000000000000000 3322 0000000000000000000000000000000000000000000000000000000000000000 3323 0000000000000000000000000000000000000000000000000000000000000000 3324 0000000000000000000000000000000000000000000000000000000000000000 3325 0000000000000000000000000000000000000000000000000000000000000000 3326 0000000000000000000000000000000000000000000000000000000000000000 3327 0000000000000000000000000000000000000000000000000000000000000000 3328 0000000000000000000000000000000000000000000000000000000000000000 3329 0000000000000000000000000000000000000000000000000000000000000000 3330 0000000000000000000000000000000000000000000000000000000000000000 3331 0000000000000000000000000000000000000000000000000000000000000000 3332 0000000000000000000000000000000000000000000000000000000000000000 3333 0000000000000000000000000000000000000000000000000000000000000000 3334 0000000000000000000000000000000000000000000000000000000000000000 3335 0000000000000000000000000000000000000000000000000000000000000000 3336 0000000000000000000000000000000000000000000000000000000000000000 3337 0000000000000000000000000000000000000000000000000000000000000000 3338 0000000000008484840084848400848484008484840084848400000000000000 3339 0000000000000000000000000000000000000000000000000000000000000000 3340 0000000000000000000000000000000000000000000000000000000000000000 3341 0000000000000000000000000000000000000000000000000000000000000000 3342 0000000000008484840084848400848484008484840084848400000000000000 3343 0000000000000000000000000000000000000000000000000000000000000000 3344 0000000000000000000000000000000000000000000000000000000000000000 3345 0000000000000000000000000000000000000000000000000000000000000000 3346 0000000000000000000000000000000000000000000000000000000000000000 3347 0000000000000000000000000000000000000000000000000000000000000000 3348 0000000000000000000000000000000000000000000000000000000000000000 3349 0000000000000000000000000000000000000000000000000000000000000000 3350 0000000000000000000000000000000000000000000000000000000000000000 3351 0000000000000000000000000000000000000000000000000000000000000000 3352 0000000000000000000000000000000000000000000000000000000000000000 3353 0000000000000000000000000000000000000000000000000000000000008484 3354 840084848400C6C6C600FFFFFF00FFFFFF00FFFFFF00C6C6C600848484008484 3355 8400000000000000000000000000000000000000000000000000000000000000 3356 0000000000000000000000000000000000000000000000000000000000000000 3357 0000000000000000000000000000000000000000000000000000000000008484 3358 840084848400C6C6C600FFFFFF00FFFFFF00FFFFFF00C6C6C600848484008484 3359 8400000000000000000000000000000000000000000000000000000000000000 3360 0000000000000000000000000000000000000000000000000000000000000000 3361 0000000000000000000000000000000000000000000000000000000000000000 3362 0000000000000000000000000000000000000000000000000000000000000000 3363 0000000000000000000000000000000000000000000000000000000000000000 3364 0000000000000000000000000000000000000000000000000000000000000000 3365 0000000000000000000000000000000000000000000000000000000000000000 3366 0000000000000000000000000000000000000000000000000000000000000000 3367 0000000000000000000000000000000000000000000000000000000000000000 3368 0000000000000000000000000000000000000000000000000000000000000000 3369 0000000000000000000000000000000000000000000000000000848484008484 3370 8400FFFFFF00FFFFFF00FFFFFF00FF000000FFFFFF00FFFFFF00FFFFFF008484 3371 8400848484000000000000000000000000000000000000000000000000000000 3372 0000000000000000000000000000000000000000000000000000000000000000 3373 0000000000000000000000000000000000000000000000000000848484008484 3374 8400FFFFFF00FFFFFF00FFFFFF00FF000000FFFFFF00FFFFFF00FFFFFF008484 3375 8400848484000000000000000000000000000000000000000000000000000000 3376 0000000000000000000000000000000000000000000000000000000000000000 3377 0000000000000000000000000000000000000000000000000000000000000000 3378 0000000000000000000000000000000000000000000000000000000000000000 3379 0000000000000000000000000000000000000000000000000000000000000000 3380 0000000000000000000000000000000000000000000000000000000000000000 3381 0000000000000000000000000000000000000000000000000000000000000000 3382 0000000000000000000000000000000000000000000000000000000000000000 3383 0000000000000000000000000000000000000000000000000000000000000000 3384 0000000000000000000000000000000000000000000000000000000000000000 3385 000000000000000000000000000000000000000000000000000084848400FFFF 3386 FF00FF000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF000000FFFF 3387 FF00848484000000000000000000000000000000000000000000000000000000 3388 0000000000000000000000000000000000000000000000000000000000000000 3389 000000000000000000000000000000000000000000000000000084848400FFFF 3390 FF00FF000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FF000000FFFF 3391 FF00848484000000000000000000000000000000000000000000000000000000 3392 0000000000000000000000000000000000000000000000000000000000000000 3393 0000000000000000000000000000000000000000000000000000000000000000 3394 0000000000000000000000000000000000000000000000000000000000000000 3395 0000000000000000000000000000000000000000000000000000000000000000 3396 0000000000000000000000000000000000000000000000000000000000000000 3397 0000000000000000000000000000000000000000000000000000000000000000 3398 0000000000000000000000000000000000000000000000000000000000000000 3399 0000000000000000000000000000000000000000000000000000000000000000 3400 0000000000000000000000000000000000000000000000000000000000000000 3401 0000000000000000000000000000000000000000000084848400C6C6C600FFFF 3402 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 3403 FF00C6C6C6008484840000000000000000000000000000000000000000000000 3404 0000000000000000000000000000000000000000000000000000000000000000 3405 0000000000000000000000000000000000000000000084848400C6C6C600FFFF 3406 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 3407 FF00C6C6C6008484840000000000000000000000000000000000000000000000 3408 0000000000000000000000000000000000000000000000000000000000000000 3409 0000000000000000000000000000000000000000000000000000000000000000 3410 0000000000000000000000000000000000000000000000000000000000000000 3411 0000000000000000000000000000000000000000000000000000000000000000 3412 0000000000000000000000000000000000000000000000000000000000000000 3413 0000000000000000000000000000000000000000000000000000000000000000 3414 0000000000000000000000000000000000000000000000000000000000000000 3415 0000000000000000000000000000000000000000000000000000000000000000 3416 0000000000000000000000000000000000000000000000000000000000000000 3417 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF 3418 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 3419 FF00FFFFFF008484840000000000000000000000000000000000000000000000 3420 0000000000000000000000000000000000000000000000000000000000000000 3421 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF 3422 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 3423 FF00FFFFFF008484840000000000000000000000000000000000000000000000 3424 0000000000000000000000000000000000000000000000000000000000000000 3425 0000000000000000000000000000000000000000000000000000000000000000 3426 0000000000000000000000000000000000000000000000000000000000000000 3427 0000000000000000000000000000000000000000000000000000000000000000 3428 0000000000000000000000000000000000000000000000000000000000000000 3429 0000000000000000000000000000000000000000000000000000000000000000 3430 0000000000000000000000000000000000000000000000000000000000000000 3431 0000000000000000000000000000000000000000000000000000000000000000 3432 0000000000000000000000000000000000000000000000000000000000000000 3433 0000000000000000000000000000000000000000000084848400FFFFFF000000 3434 00000000000000000000000000000000FF00FFFFFF00FFFFFF00FFFFFF00FF00 3435 0000FFFFFF008484840000000000000000000000000000000000000000000000 3436 0000000000000000000000000000000000000000000000000000000000000000 3437 0000000000000000000000000000000000000000000084848400FFFFFF000000 3438 00000000000000000000000000000000FF00FFFFFF00FFFFFF00FFFFFF00FF00 3439 0000FFFFFF008484840000000000000000000000000000000000000000000000 3440 0000000000000000000000000000000000000000000000000000000000000000 3441 0000000000000000000000000000000000000000000000000000000000000000 3442 0000000000000000000000000000000000000000000000000000000000000000 3443 0000000000000000000000000000000000000000000000000000000000000000 3444 0000000000000000000000000000000000000000000000000000000000000000 3445 0000000000000000000000000000000000000000000000000000000000000000 3446 0000000000000000000000000000000000000000000000000000000000000000 3447 0000000000000000000000000000000000000000000000000000000000000000 3448 0000000000000000000000000000000000000000000000000000000000000000 3449 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF 3450 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFF 3451 FF00FFFFFF008484840000000000000000000000000000000000000000000000 3452 0000000000000000000000000000000000000000000000000000000000000000 3453 0000000000000000000000000000000000000000000084848400FFFFFF00FFFF 3454 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFF 3455 FF00FFFFFF008484840000000000000000000000000000000000000000000000 3456 0000000000000000000000000000000000000000000000000000000000000000 3457 0000000000000000000000000000000000000000000000000000000000000000 3458 0000000000000000000000000000000000000000000000000000000000000000 3459 0000000000000000000000000000000000000000000000000000000000000000 3460 0000000000000000000000000000000000000000000000000000000000000000 3461 0000000000000000000000000000000000000000000000000000000000000000 3462 0000000000000000000000000000000000000000000000000000000000000000 3463 0000000000000000000000000000000000000000000000000000000000000000 3464 0000000000000000000000000000000000000000000000000000000000000000 3465 0000000000000000000000000000000000000000000084848400C6C6C600FFFF 3466 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFF 3467 FF00C6C6C6008484840000000000000000000000000000000000000000000000 3468 0000000000000000000000000000000000000000000000000000000000000000 3469 0000000000000000000000000000000000000000000084848400C6C6C600FFFF 3470 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFF 3471 FF00C6C6C6008484840000000000000000000000000000000000000000000000 3472 0000000000000000000000000000000000000000000000000000000000000000 3473 0000000000000000000000000000000000000000000000000000000000000000 3474 0000000000000000000000000000000000000000000000000000000000000000 3475 0000000000000000000000000000000000000000000000000000000000000000 3476 0000000000000000000000000000000000000000000000000000000000000000 3477 0000000000000000000000000000000000000000000000000000000000000000 3478 0000000000000000000000000000000000000000000000000000000000000000 3479 0000000000000000000000000000000000000000000000000000000000000000 3480 0000000000000000000000000000000000000000000000000000000000000000 3481 000000000000000000000000000000000000000000000000000084848400FFFF 3482 FF00FF000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 3483 FF00848484000000000000000000000000000000000000000000000000000000 3484 0000000000000000000000000000000000000000000000000000000000000000 3485 000000000000000000000000000000000000000000000000000084848400FFFF 3486 FF00FF000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 3487 FF00848484000000000000000000000000000000000000000000000000000000 3488 0000000000000000000000000000000000000000000000000000000000000000 3489 0000000000000000000000000000000000000000000000000000000000000000 3490 0000000000000000000000000000000000000000000000000000000000000000 3491 0000000000000000000000000000000000000000000000000000000000000000 3492 0000000000000000000000000000000000000000000000000000000000000000 3493 0000000000000000000000000000000000000000000000000000000000000000 3494 0000000000000000000000000000000000000000000000000000000000000000 3495 0000000000000000000000000000000000000000000000000000000000000000 3496 0000000000000000000000000000000000000000000000000000000000000000 3497 0000000000000000000000000000000000000000000000000000848484008484 3498 8400FFFFFF00FFFFFF00FFFFFF00FF000000FFFFFF00FFFFFF00FFFFFF008484 3499 8400848484000000000000000000000000000000000000000000000000000000 3500 0000000000000000000000000000000000000000000000000000000000000000 3501 0000000000000000000000000000000000000000000000000000848484008484 3502 8400FFFFFF00FFFFFF00FFFFFF00FF000000FFFFFF00FFFFFF00FFFFFF008484 3503 8400848484000000000000000000000000000000000000000000000000000000 3504 0000000000000000000000000000000000000000000000000000000000000000 3505 0000000000000000000000000000000000000000000000000000000000000000 3506 0000000000000000000000000000000000000000000000000000000000000000 3507 0000000000000000000000000000000000000000000000000000000000000000 3508 0000000000000000000000000000000000000000000000000000000000000000 3509 0000000000000000000000000000000000000000000000000000000000000000 3510 0000000000000000000000000000000000000000000000000000000000000000 3511 0000000000000000000000000000000000000000000000000000000000000000 3512 0000000000000000000000000000000000000000000000000000000000000000 3513 0000000000000000000000000000000000000000000000000000000000008484 3514 840084848400C6C6C600FFFFFF00FF000000FFFFFF00C6C6C600848484008484 3515 8400000000000000000000000000000000000000000000000000000000000000 3516 0000000000000000000000000000000000000000000000000000000000000000 3517 0000000000000000000000000000000000000000000000000000000000008484 3518 840084848400C6C6C600FFFFFF00FF000000FFFFFF00C6C6C600848484008484 3519 8400000000000000000000000000000000000000000000000000000000000000 3520 0000000000000000000000000000000000000000000000000000000000000000 3521 0000000000000000000000000000000000000000000000000000000000000000 3522 0000000000000000000000000000000000000000000000000000000000000000 3523 0000000000000000000000000000000000000000000000000000000000000000 3524 0000000000000000000000000000000000000000000000000000000000000000 3525 0000000000000000000000000000000000000000000000000000000000000000 3526 0000000000000000000000000000000000000000000000000000000000000000 3527 0000000000000000000000000000000000000000000000000000000000000000 3528 0000000000000000000000000000000000000000000000000000000000000000 3529 0000000000000000000000000000000000000000000000000000000000000000 3530 0000000000008484840084848400848484008484840084848400000000000000 3531 0000000000000000000000000000000000000000000000000000000000000000 3532 0000000000000000000000000000000000000000000000000000000000000000 3533 0000000000000000000000000000000000000000000000000000000000000000 3534 0000000000008484840084848400848484008484840084848400000000000000 3535 0000000000000000000000000000000000000000000000000000000000000000 3536 0000000000000000000000000000000000000000000000000000000000000000 3537 0000000000000000000000000000000000000000000000000000000000000000 3538 0000000000000000000000000000000000000000000000000000000000000000 3539 0000000000000000000000000000000000000000000000000000000000000000 3540 0000000000000000000000000000000000000000000000000000000000000000 3541 0000000000000000000000000000000000000000000000000000000000000000 3542 0000000000000000000000000000000000000000000000000000000000000000 3543 0000000000000000000000000000000000000000000000000000000000000000 3544 0000000000000000000000000000000000000000000000000000000000000000 3545 0000000000000000000000000000000000000000000000000000000000000000 3546 0000000000000000000000000000000000000000000000000000000000000000 3547 0000000000000000000000000000000000000000000000000000000000000000 3548 0000000000000000000000000000000000000000000000000000000000000000 3549 0000000000000000000000000000000000000000000000000000000000000000 3550 0000000000000000000000000000000000000000000000000000000000000000 3551 0000000000000000000000000000000000000000000000000000000000000000 3552 0000000000000000000000000000000000000000000000000000000000000000 3553 0000000000000000000000000000000000000000000000000000000000000000 3554 0000000000000000000000000000000000000000000000000000000000000000 3555 0000000000000000000000000000000000000000000000000000000000000000 3556 0000000000000000000000000000000000000000000000000000000000000000 3557 0000000000000000000000000000000000000000000000000000000000000000 3558 0000000000000000000000000000000000000000000000000000000000000000 3559 0000000000000000000000000000000000000000000000000000000000000000 3560 0000000000000000000000000000000000000000000000000000000000000000 3561 0000000000000000000000000000000000000000000000000000000000000000 3562 0000000000000000000000000000000000000000000000000000000000000000 3563 0000000000000000000000000000000000000000000000000000000000000000 3564 0000000000000000000000000000000000000000000000000000000000000000 3565 0000000000000000000000000000000000000000000000000000000000000000 3566 0000000000000000000000000000000000000000000000000000000000000000 3567 0000000000000000000000000000000000000000000000000000000000000000 3568 0000000000000000000000000000000000000000000000000000000000000000 3569 0000000000000000000000000000000000000000000000000000000000000000 3570 0000000000000000000000000000000000000000000000000000000000000000 3571 0000000000000000000000000000000000000000000000000000000000000000 3572 0000000000000000000000000000000000000000000000000000000000000000 3573 0000000000000000000000000000000000000000000000000000000000000000 3574 0000000000000000000000000000000000000000000000000000000000000000 3575 0000000000000000000000000000000000000000000000000000000000000000 3576 0000000000000000000000000000000000000000000000000000000000000000 3577 0000000000000000000000000000000000000000000000000000000000000000 3578 8400000000000000000000000000000000000000000000000000000000000000 3579 8400000000000000000000000000000000000000000000000000000000000000 3580 0000000000000000000000000000000000000000000000000000000000000000 3581 0000000000000000000000000000000000000000000000000000000000000000 3582 8400000000000000000000000000000000000000000000000000000000000000 3583 8400000000000000000000000000000000000000000000000000000000000000 3584 0000000000000000000000000000000000000000000000000000000000000000 3585 0000000000000000000000000000000000000000000000000000000000008484 3586 0000000000000000000000000000000000000000000000000000000000008484 3587 0000000000000000000000000000000000000000000000000000000000000000 3588 0000000000000000000000000000000000000000000000000000000000000000 3589 0000000000000000000000000000000000000000000000000000000000008484 3590 0000000000000000000000000000000000000000000000000000000000008484 3591 0000000000000000000000000000000000000000000000000000000000000000 3592 0000000000000000000000000000000000000000000000000000000000000000 3593 0000000000000000000000000000000000000000000000000000000084000000 3594 000000000000000000000000FF00000000000000FF0000000000000000000000 3595 0000000084000000000000000000000000000000000000000000000000000000 3596 0000000000000000000000000000000000000000000000000000000000000000 3597 0000000000000000000000000000000000000000000000000000000084000000 3598 000000000000000000000000FF00000000000000FF0000000000000000000000 3599 0000000084000000000000000000000000000000000000000000000000000000 3600 0000000000000000000000000000000000000000000000000000000000000000 3601 0000000000000000000000000000000000000000000000000000848400000000 3602 00000000000000000000FFFF000000000000FFFF000000000000000000000000 3603 0000848400000000000000000000000000000000000000000000000000000000 3604 0000000000000000000000000000000000000000000000000000000000000000 3605 0000000000000000000000000000000000000000000000000000848400000000 3606 00000000000000000000FFFF000000000000FFFF000000000000000000000000 3607 0000848400000000000000000000000000000000000000000000000000000000 3608 0000000000000000000000000000000000000000000000000000000000000000 3609 0000000000000000000000000000000000000000000000000000000000000000 3610 00000000FF00C6C6C600FFFFFF0000000000FFFFFF00C6C6C6000000FF000000 3611 0000000000000000000000000000000000000000000000000000000000000000 3612 0000000000000000000000000000000000000000000000000000000000000000 3613 0000000000000000000000000000000000000000000000000000000000000000 3614 00000000FF00C6C6C600FFFFFF0000000000FFFFFF00C6C6C6000000FF000000 3615 0000000000000000000000000000000000000000000000000000000000000000 3616 0000000000000000000000000000000000000000000000000000000000000000 3617 0000000000000000000000000000000000000000000000000000000000000000 3618 0000FFFF0000C6C6C600FFFFFF0000000000FFFFFF00C6C6C600FFFF00000000 3619 0000000000000000000000000000000000000000000000000000000000000000 3620 0000000000000000000000000000000000000000000000000000000000000000 3621 0000000000000000000000000000000000000000000000000000000000000000 3622 0000FFFF0000C6C6C600FFFFFF0000000000FFFFFF00C6C6C600FFFF00000000 3623 0000000000000000000000000000000000000000000000000000000000000000 3624 0000000000000000000000000000000000000000000000000000000000000000 3625 0000000000000000000000000000000000000000000084848400000000000000 3626 FF00C6C6C60000000000FFFFFF00FFFFFF00FFFFFF0000000000C6C6C6000000 3627 FF00000000008484840000000000000000000000000000000000000000000000 3628 0000000000000000000000000000000000000000000000000000000000000000 3629 0000000000000000000000000000000000000000000084848400000000000000 3630 FF00C6C6C60000000000FFFFFF00FFFFFF00FFFFFF0000000000C6C6C6000000 3631 FF00000000008484840000000000000000000000000000000000000000000000 3632 0000000000000000000000000000000000000000000000000000000000000000 3633 000000000000000000000000000000000000000000008484840000000000FFFF 3634 0000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF0000000000C6C6C600FFFF 3635 0000000000008484840000000000000000000000000000000000000000000000 3636 0000000000000000000000000000000000000000000000000000000000000000 3637 000000000000000000000000000000000000000000008484840000000000FFFF 3638 0000C6C6C60000000000FFFFFF00FFFFFF00FFFFFF0000000000C6C6C600FFFF 3639 0000000000008484840000000000000000000000000000000000000000000000 3640 0000000000000000000000000000000000000000000000000000000000000000 3641 00000000000000000000000000000000000000000000000000000000FF000000 3642 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 3643 FF000000FF000000000000000000000000000000000000000000000000000000 3644 0000000000000000000000000000000000000000000000000000000000000000 3645 00000000000000000000000000000000000000000000000000000000FF000000 3646 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000 3647 FF000000FF000000000000000000000000000000000000000000000000000000 3648 0000000000000000000000000000000000000000000000000000000000000000 3649 0000000000000000000000000000000000000000000000000000FFFF0000FFFF 3650 0000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 3651 0000FFFF00000000000000000000000000000000000000000000000000000000 3652 0000000000000000000000000000000000000000000000000000000000000000 3653 0000000000000000000000000000000000000000000000000000FFFF0000FFFF 3654 0000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 3655 0000FFFF00000000000000000000000000000000000000000000000000000000 3656 0000000000000000000000000000000000000000000000000000000000000000 3657 00000000000000000000000000000000000000000000000000000000FF000000 3658 0000FFFFFF00000000000000000000000000FFFFFF00FFFFFF00000000000000 3659 00000000FF000000000000000000000000000000000000000000000000000000 3660 0000000000000000000000000000000000000000000000000000000000000000 3661 00000000000000000000000000000000000000000000000000000000FF000000 3662 0000FFFFFF00000000000000000000000000FFFFFF00FFFFFF00000000000000 3663 00000000FF000000000000000000000000000000000000000000000000000000 3664 0000000000000000000000000000000000000000000000000000000000000000 3665 0000000000000000000000000000000000000000000000000000FFFF00000000 3666 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00000000000000 3667 0000FFFF00000000000000000000000000000000000000000000000000000000 3668 0000000000000000000000000000000000000000000000000000000000000000 3669 0000000000000000000000000000000000000000000000000000FFFF00000000 3670 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00000000000000 3671 0000FFFF00000000000000000000000000000000000000000000000000000000 3672 0000000000000000000000000000000000000000000000000000000000000000 3673 00000000000000000000000000000000000000FFFF00000000000000FF000000 3674 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 3675 FF000000FF000000000000FFFF00000000000000000000000000000000000000 3676 0000000000000000000000000000000000000000000000000000000000000000 3677 00000000000000000000000000000000000000FFFF00000000000000FF000000 3678 FF00FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 3679 FF000000FF000000000000FFFF00000000000000000000000000000000000000 3680 0000000000000000000000000000000000000000000000000000000000000000 3681 0000000000000000000000000000000000000000000000000000FFFF0000FFFF 3682 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 3683 0000FFFF00000000000000000000000000000000000000000000000000000000 3684 0000000000000000000000000000000000000000000000000000000000000000 3685 0000000000000000000000000000000000000000000000000000FFFF0000FFFF 3686 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 3687 0000FFFF00000000000000000000000000000000000000000000000000000000 3688 0000000000000000000000000000000000000000000000000000000000000000 3689 0000000000000000000000000000000000000000000084848400000000000000 3690 FF00C6C6C60000000000FFFFFF0000000000FFFFFF0000000000C6C6C6000000 3691 FF00000000008484840000000000000000000000000000000000000000000000 3692 0000000000000000000000000000000000000000000000000000000000000000 3693 0000000000000000000000000000000000000000000084848400000000000000 3694 FF00C6C6C60000000000FFFFFF0000000000FFFFFF0000000000C6C6C6000000 3695 FF00000000008484840000000000000000000000000000000000000000000000 3696 0000000000000000000000000000000000000000000000000000000000000000 3697 000000000000000000000000000000000000000000008484840000000000FFFF 3698 0000C6C6C60000000000FFFFFF0000000000FFFFFF0000000000C6C6C600FFFF 3699 0000000000008484840000000000000000000000000000000000000000000000 3700 0000000000000000000000000000000000000000000000000000000000000000 3701 000000000000000000000000000000000000000000008484840000000000FFFF 3702 0000C6C6C60000000000FFFFFF0000000000FFFFFF0000000000C6C6C600FFFF 3703 0000000000008484840000000000000000000000000000000000000000000000 3704 0000000000000000000000000000000000000000000000000000000000000000 3705 00000000000000000000000000000000000000FFFF0000FFFF00000000000000 3706 00000000FF00C6C6C600FFFFFF0000000000FFFFFF00C6C6C6000000FF000000 3707 00000000000000FFFF0000FFFF00000000000000000000000000000000000000 3708 0000000000000000000000000000000000000000000000000000000000000000 3709 00000000000000000000000000000000000000FFFF0000FFFF00000000000000 3710 00000000FF00C6C6C600FFFFFF0000000000FFFFFF00C6C6C6000000FF000000 3711 00000000000000FFFF0000FFFF00000000000000000000000000000000000000 3712 0000000000000000000000000000000000000000000000000000000000000000 3713 0000000000000000000000000000000000000000000000000000000000000000 3714 0000FFFF0000C6C6C600FFFFFF0000000000FFFFFF00C6C6C600FFFF00000000 3715 0000000000000000000000000000000000000000000000000000000000000000 3716 0000000000000000000000000000000000000000000000000000000000000000 3717 0000000000000000000000000000000000000000000000000000000000000000 3718 0000FFFF0000C6C6C600FFFFFF0000000000FFFFFF00C6C6C600FFFF00000000 3719 0000000000000000000000000000000000000000000000000000000000000000 3720 0000000000000000000000000000000000000000000000000000000000000000 3721 0000000000000000000000000000000000000000000000000000000000000000 3722 0000000000000000FF000000FF000000FF000000FF000000FF00000000000000 3723 0000000000000000000000000000000000000000000000000000000000000000 3724 0000000000000000000000000000000000000000000000000000000000000000 3725 0000000000000000000000000000000000000000000000000000000000000000 3726 0000000000000000FF000000FF000000FF000000FF000000FF00000000000000 3727 0000000000000000000000000000000000000000000000000000000000000000 3728 0000000000000000000000000000000000000000000000000000000000000000 3729 0000000000000000000000000000000000000000000000000000000000000000 3730 000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000000000 3731 0000000000000000000000000000000000000000000000000000000000000000 3732 0000000000000000000000000000000000000000000000000000000000000000 3733 0000000000000000000000000000000000000000000000000000000000000000 3734 000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000000000 3735 0000000000000000000000000000000000000000000000000000000000000000 3736 0000000000000000000000000000000000000000000000000000000000000000 3737 00000000000000000000000000000000000000000000C6C6C600C6C6C6008484 3738 840000000000000000000000000000000000000000000000000000000000C6C6 3739 C600848484008484840000000000000000000000000000000000000000000000 3740 0000000000000000000000000000000000000000000000000000000000000000 3741 00000000000000000000000000000000000000000000C6C6C600C6C6C6008484 3742 840000000000000000000000000000000000000000000000000000000000C6C6 3743 C600848484008484840000000000000000000000000000000000000000000000 3744 0000000000000000000000000000000000000000000000000000000000000000 3745 00000000000000000000000000000000000000000000C6C6C600C6C6C6008484 3746 840000000000000000000000000000000000000000000000000000000000C6C6 3747 C600848484008484840000000000000000000000000000000000000000000000 3748 0000000000000000000000000000000000000000000000000000000000000000 3749 00000000000000000000000000000000000000000000C6C6C600C6C6C6008484 3750 840000000000000000000000000000000000000000000000000000000000C6C6 3751 C600848484008484840000000000000000000000000000000000000000000000 3752 0000000000000000000000000000000000000000000000000000000000000000 3753 00000000000000000000000000000000000000000000C6C6C600C6C6C600C6C6 3754 C600C6C6C60084848400848484000000000084848400C6C6C600C6C6C600C6C6 3755 C600C6C6C6008484840000000000000000000000000000000000000000000000 3756 0000000000000000000000000000000000000000000000000000000000000000 3757 00000000000000000000000000000000000000000000C6C6C600C6C6C600C6C6 3758 C600C6C6C60084848400848484000000000084848400C6C6C600C6C6C600C6C6 3759 C600C6C6C6008484840000000000000000000000000000000000000000000000 3760 0000000000000000000000000000000000000000000000000000000000000000 3761 00000000000000000000000000000000000000000000C6C6C600C6C6C600C6C6 3762 C600C6C6C60084848400848484000000000084848400C6C6C600C6C6C600C6C6 3763 C600C6C6C6008484840000000000000000000000000000000000000000000000 3764 0000000000000000000000000000000000000000000000000000000000000000 3765 00000000000000000000000000000000000000000000C6C6C600C6C6C600C6C6 3766 C600C6C6C60084848400848484000000000084848400C6C6C600C6C6C600C6C6 3767 C600C6C6C6008484840000000000000000000000000000000000000000000000 3768 0000000000000000000000000000000000000000000000000000000000000000 3769 00000000000000000000000000000000000000FFFF000000000084848400C6C6 3770 C600C6C6C600000000000000000000FFFF000000000000000000C6C6C600C6C6 3771 C600848484000000000000FFFF00000000000000000000000000000000000000 3772 0000000000000000000000000000000000000000000000000000000000000000 3773 00000000000000000000000000000000000000FFFF000000000084848400C6C6 3774 C600C6C6C600000000000000000000FFFF000000000000000000C6C6C600C6C6 3775 C600848484000000000000FFFF00000000000000000000000000000000000000 3776 0000000000000000000000000000000000000000000000000000000000000000 3777 000000000000000000000000000000000000000000000000000084848400C6C6 3778 C600C6C6C6000000000084848400000000008484840000000000C6C6C600C6C6 3779 C600848484000000000000000000000000000000000000000000000000000000 3780 0000000000000000000000000000000000000000000000000000000000000000 3781 000000000000000000000000000000000000000000000000000084848400C6C6 3782 C600C6C6C6000000000084848400000000008484840000000000C6C6C600C6C6 3783 C600848484000000000000000000000000000000000000000000000000000000 3784 0000000000000000000000000000000000000000000000000000000000000000 3785 0000000000000000000000000000000000000000000000000000848484000000 3786 00000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000000000 3787 0000848484000000000000000000000000000000000000000000000000000000 3788 0000000000000000000000000000000000000000000000000000000000000000 3789 0000000000000000000000000000000000000000000000000000848484000000 3790 00000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF00000000000000 3791 0000848484000000000000000000000000000000000000000000000000000000 3792 0000000000000000000000000000000000000000000000000000000000000000 3793 0000000000000000000000000000000000000000000000000000848484000000 3794 0000000000000000000000000000000000000000000000000000000000000000 3795 0000848484000000000000000000000000000000000000000000000000000000 3796 0000000000000000000000000000000000000000000000000000000000000000 3797 0000000000000000000000000000000000000000000000000000848484000000 3798 0000000000000000000000000000000000000000000000000000000000000000 3799 0000848484000000000000000000000000000000000000000000000000000000 3800 0000000000000000000000000000000000000000000000000000000000000000 3801 00000000000000000000000000000000000000000000000000000000000000FF 3802 FF0000FFFF000000000000FFFF000000000000FFFF000000000000FFFF0000FF 3803 FF00000000000000000000000000000000000000000000000000000000000000 3804 0000000000000000000000000000000000000000000000000000000000000000 3805 00000000000000000000000000000000000000000000000000000000000000FF 3806 FF0000FFFF000000000000FFFF000000000000FFFF000000000000FFFF0000FF 3807 FF00000000000000000000000000000000000000000000000000000000000000 3808 0000000000000000000000000000000000000000000000000000000000000000 3809 0000000000000000000000000000000000000000000000000000000000000000 3810 0000000000000000000000000000000000000000000000000000000000000000 3811 0000000000000000000000000000000000000000000000000000000000000000 3812 0000000000000000000000000000000000000000000000000000000000000000 3813 0000000000000000000000000000000000000000000000000000000000000000 3814 0000000000000000000000000000000000000000000000000000000000000000 3815 0000000000000000000000000000000000000000000000000000000000000000 3816 0000000000000000000000000000000000000000000000000000000000000000 3817 000000000000000000000000000000000000000000000000000000FFFF0000FF 3818 FF00000000000000000000FFFF000000000000FFFF00000000000000000000FF 3819 FF0000FFFF000000000000000000000000000000000000000000000000000000 3820 0000000000000000000000000000000000000000000000000000000000000000 3821 000000000000000000000000000000000000000000000000000000FFFF0000FF 3822 FF00000000000000000000FFFF000000000000FFFF00000000000000000000FF 3823 FF0000FFFF000000000000000000000000000000000000000000000000000000 3824 0000000000000000000000000000000000000000000000000000000000000000 3825 0000000000000000000000000000000000000000000000000000000000000000 3826 0000000000000000000000000000000000000000000000000000000000000000 3827 0000000000000000000000000000000000000000000000000000000000000000 1988 3828 0000000000000000000000000000000000000000000000000000000000000000 1989 3829 0000000000000000000000000000000000000000000000000000000000000000 … … 2031 3871 Bitmap = { 2032 3872 494C010109000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 2033 0000000000003600000028000000400000004000000001001000000000000020 2034 0000000000000000000000000000000000000000000000000000000000000000 2035 0000000000000000000000000000000000000000000000000000000000000000 2036 0000000000000000000000000000000000000000000000000000000000000000 2037 0000000000000000000000000000000000000000000000000000000000000000 2038 0000000000000000000000000000000000000000000000000000000000000000 2039 0000000000000000000000000000000000000000000000000000000000000000 2040 0000000000000000000000000000000000000000000000000000000000000000 2041 0000000000000000000000000000000000000000000000000000000000000000 2042 0000000000000000000000000000000000000000000000000000000000000000 2043 0000000000000000000000000000000000000000000000000000000000000000 2044 0000000000000000000000000000000000000000000000000000000000000000 2045 0000000000000000000000000000000000000000000000000000000000000000 2046 0000000000000000000000000000000000000000000000000000000000000000 2047 0000000000000000000000000000000000000000000000000000000000000000 2048 0000000000000000000000000000000000000000000000000000000000000000 2049 0000000000000000000000000000000000000000000000000000000000000000 2050 0000000000000000000000000000000000000000000000000000000000000000 2051 0000000000000000000000000000000000000000000000000000000000000000 2052 0000000000000000000000000000000000000000000000000000000000000000 2053 0000000000000000000000000000000000000000000000000000000000000000 2054 0000000000000000000000000000000000000000000000000000000000000000 2055 0000000000000000000000000000000000000000000000000000000000000000 2056 0000000000000000000000000000000000000000000000000000000000000000 2057 0000000000000000000000000000000000000000000000000000000000000000 2058 0000000000000000000000000000000000000000000000000000000000000000 2059 0000000000000000000000000000000000000000000000000000000000000000 2060 0000000000000000000000000000000000000000000000000000000000000000 2061 0000000000000000000000000000000000000000000000000000000000000000 2062 0000000000000000000000000000000000000000000000000000000000000000 2063 0000000000000000000000000000000000000000000000000000000000000000 2064 0000000000000000000000000000000000000000000000000000000000000000 2065 0000000000000000000000000000000000000000000000000000000000000000 2066 0000000000000000000000000000000000000000000000000000000000000000 2067 0000000000000000000000000000000000000000000000000000000000000000 2068 0000000000000000000000000000000000000000000000000000000000000000 2069 0000000000000000000000000000000000000000000000000000000000000000 2070 0000000000000000000000000000000000000000000000000000000000000000 2071 0000000000000000000000000000000000000000000000000000000000000000 2072 0000000000000000000000000000000000000000000000000000000000000000 2073 0000000000000000000000000000000000000000000000000000000000000000 2074 0000000000000000000000000000000000000000000000000000000000000000 2075 0000000000000000000000000000000000000000000000000000000000000000 2076 0000000000000000000000000000000000000000000000000000000000000000 2077 0000000000000000000000000000000000000000000000000000000000000000 2078 0000000000000000000000000000000000000000000000000000000000000000 2079 0000000000000000000000000000000000000000000000000000000000000000 2080 0000000000000000000000000000000000000000000000000000000000000000 2081 0000000000000000000000000000000000000000000000000000000000000000 2082 0000000000000000000000000000000000000000000000000000000000000000 2083 0000000000000000000000000000000000000000000000000000000000000000 2084 0000000000000000000000000000000000000000000000000000000000000000 2085 0000000000000000000000000000000000000000000000000000000000000000 2086 0000000000000000000000000000000000000000000000000000000000000000 2087 0000000000000000000000000000000000000000000000000000000000000000 2088 0000000000000000000000000000000000000000000000000000000000000000 2089 0000000000000000000000000000000000000000000000000000000000000000 2090 0000000000000000000000000000000000000000000000000000000000000000 2091 0000000000000000000000000000000000000000000000000000000000000000 2092 0000000000000000000000000000000000000000000000000000000000000000 2093 0000000000000000000000000000000000000000000000000000000000000000 2094 0000000000000000000000000000000000000000000000000000000000000000 2095 0000000000000000000000000000000000000000000000000000000000000000 2096 0000000000000000000000000000000000000000000000000000000000000000 2097 0000000000000000000000000000000000000000000000000000000000000000 2098 0000000000000000000000000000000000000000000000000000000000000000 2099 0000000000008D048D048D048D048D048D040000000000000000000000000000 2100 0000000000000000000000000000000000000000000000000000000000000000 2101 0000000000000000000000000000000000000000000000000000000000000000 2102 0000000000000000000000000000000000000000000000000000000000000000 2103 0000000000008D048D048D048D048D048D040000000000000000000000000000 2104 0000000000000000000000000000000000000000000000000000000000000000 2105 0000000000000000000000000000000000000000000000000000000000000000 2106 0000000000000000000000000000000000000000000000000000000000000000 2107 000000000000000000008D048D04000000000000000000000000000000000000 2108 0000000000000000000000000000000000000000000000000000000000000000 2109 0000000000000000000000000000000000000000000000000000000000000000 2110 0000000000000000000000000000000000000000000000000000000000000000 2111 007C10000000000000008D048D04000000000000000000000000000000000000 2112 0000000000000000000000000000000000000000000000000000000000000000 2113 0000000000000000000000000000000000000000000000000000000000000000 2114 0000000000000000000000000000000000000000000000000000000000001002 2115 104010420000000000008D048D04000000000000000000000000000000000000 2116 0000000000000000000000000000000000000000000000000000000000000000 2117 0000000000000000000000000000000000000000000000000000000000000000 2118 000000000000000000000000000000000000000000000000000000000000FF03 2119 007C18630000000000008D048D04000000000000000000000000000000000000 2120 0000000000000000000000000000000000000000000000000000000000000000 2121 0000000000000000000000000000000000000000000000000000000000000000 2122 0000000000000000000000000000000000000000000000000000000000001863 2123 0040104200008D048D048D048D048D048D040000000000000000000000000000 2124 0000000000000000000000000000000000000000000000000000000000000000 2125 0000000000000000000000000000000000000000000000000000000000000000 2126 0000000000000000000000000000000000000000000000000000000010420000 2127 1863000000008D048D048D048D048D048D040000000000000000000000000000 2128 0000000000000000000000000000000000000000000000000000000000000000 2129 0000000000000000000000000000000000000000000000000000000000000000 2130 0000000000000000000000000000000000000000000000000000000000000000 2131 1000100200000000000000000000000000000000000000000000000000000000 2132 0000000000000000000000000000000000000000000000000000000000000000 2133 0000000000000000000000000000000000000000000000000000000000000000 2134 0000000000000000000000000000000000000000000000000000000000000000 2135 1863000000000000000000000000000000000000000000000000000000000000 2136 0000000000000000000000000000000000000000000000000000000000000000 2137 0000000000000000000000000000000000000000000000000000000000000000 2138 0000000000000000000000000000000000000000000000001042100210021863 2139 1863186310001002186300000000000000000000000000000000000000000000 2140 0000000000000000000000000000000000000000000000000000000000000000 2141 0000000000000000000000000000000000000000000000000000000000000000 2142 0000000000000000000000000000000000000000100210021002100210021002 2143 1863100210021002100210021002000000000000000000000000000000000000 2144 0000000000000000000000000000000000000000000000000000000000000000 2145 0000000000000000000000000000000000000000000000000000000000000000 2146 0000000000000000000000000000000000001042100210021002100210021000 2147 1863100210021002100210021002104200000000000000000000000000000000 2148 0000000000000000000000000000000000000000000000000000000000000000 2149 0000000000000000000000000000000000000000000000000000000000000000 2150 0000000000000000000000000000000000000000000000000000100210020000 2151 1002000010021002000000000000000000000000000000000000000000000000 2152 0000000000000000000000000000000000000000000000000000000000000000 2153 0000000000000000000000000000000000000000000000000000000000000000 2154 0000000000000000000000000000000000000000000000000000000000000000 2155 0000000000000000000000000000000000000000000000000000000000000000 2156 0000000000000000000000000000000000000000000000000000000000000000 2157 0000000000000000000000000000000000000000000000000000000000000000 2158 0000000000000000000000000000000000000000000000000000000000000000 2159 0000000000000000000000000000000000000000000000000000000000000000 2160 0000000000000000000000000000000000000000000000000000000000000000 2161 0000000000000000000000000000000000000000000000000000000000000000 2162 0000000000000000000000000000000000000000000000000000000000000000 2163 0000186300000000000000000000000000000000000000000000000000000000 2164 0000000000000000000000000000000000000000000000000000000000000000 2165 0000000000000000000000000000000000000000000000000000000000000000 2166 0000000000000000000000000000000000000000000000000000000000000000 2167 0000000000000000000000000000000000000000007C007C007C007C007C007C 2168 007C0000007C007C007C007C007C007C00000000000000000000000000000000 2169 0000000000000000000000000000000000000000000000000000000000000000 2170 0000000000000000000000000000000000000000000000000000000000000000 2171 0000000000000000000000000000000000000000007C00000000000000000000 2172 0000000000000000000000000000007C00000000000000000000000000000000 2173 00000000000000000000000000000000000000000000000000000000FF038D04 2174 8D048D048D048D048D0400000000000000000000000000000000000000000000 2175 0000104200000000000000000000000000000000007C00000000000000000000 2176 0000007C10000000000000000000007C00000000000000000000000000000000 2177 0000007C10000000000000000000000000000000000000000000000000008D04 2178 8D048D048D048D048D0400000000000000000000000000000000000000000000 2179 1042000010420000000000000000000000000000007C00000000000000000000 2180 1002104010420000000000000000007C00000000000000000000000000000000 2181 10021040104200000000000000000000000000000000000000000000FF03FF03 2182 FF038D048D04FF03FF0300000000000000000000000000000000000000000000 2183 1863104218630000000000000000000000000000007C00000000000000000000 2184 FF03007C18630000000000000000007C00000000000000000000000000000000 2185 FF03007C1863000000000000000000000000000000000000000000000000EF3D 2186 EF3D8D048D040000000000000000000000000000000000000000000000000000 2187 1863000010420000000000000000000000000000007C00000000000000000000 2188 1863004010420000000000000000007C00000000000000000000000000000000 2189 18630040104200000000000000000000000000000000000000000000FF03FF03 2190 FF038D048D04FF03FF0300000000000000000000000000000000000000001042 2191 0000186300000000000000000000000000000000007C00000000000000001042 2192 0000186300000000000000000000007C00000000000000000000000000001042 2193 000018630000000000000000000000000000000000000000000000000000EF3D 2194 00008D048D04EF3D000000000000000000000000000000000000000000000000 2195 0000000010420000000000000000000000000000007C00000000000000000000 2196 0000100010020000000000000000007C00000000000000000000000000000000 2197 00001000100200000000000000000000000000000000000000000000FF038D04 2198 8D048D048D048D048D0400000000000000000000000000000000000000000000 2199 0000186300000000000000000000000000000000007C00000000000000000000 2200 0000186300000000000000000000007C00000000000000000000000000000000 2201 0000186300000000000000000000000000000000000000000000000000008D04 2202 8D048D048D048D048D0400000000000000000000000000000000104210421042 2203 1863186318630000104218630000000000000000007C00000000104210021002 2204 1863186318631000100218630000007C00000000000000000000104210021002 2205 18631863186310001002186300000000000000000000000000000000FF03FF03 2206 FF03FF03FF03FF03FF0300000000000000000000000010421042104210421042 2207 1042186310421042104210421042104200000000007C10021002100210021002 2208 1002186310021002100210021002100200000000000010021002100210021002 2209 1002186310021002100210021002100200000000000000000000000000000000 2210 0000000000000000000000000000000000000000104210421042104210421042 2211 0000186310421042104210421042104218630000104210021002100210021002 2212 1000186310021002100210021002100210420000104210021002100210021002 2213 1000186310021002100210021002100210420000000000000000000000000000 2214 0000000000000000000000000000000000000000000000000000000010421042 2215 0000104200001042104200000000000000000000007C00000000000010021002 2216 0000100200001002100200000000007C00000000000000000000000010021002 2217 00001002000010021002000000000000000000000000000000000000EF3D0000 2218 EF3D0000EF3D0000EF3D00000000000000000000000000000000000000000000 2219 0000000000000000000000000000000000000000007C007C007C007C007C007C 2220 007C007C007C007C007C007C007C007C00000000000000000000000000000000 2221 00000000000000000000000000000000000000000000000000000000EF3D0000 2222 EF3D0000EF3D0000EF3D00000000000000000000000000000000000000000000 2223 0000000000000000000000000000000000000000000000000000000000000000 2224 0000000000000000000000000000000000000000000000000000000000000000 2225 0000000000000000000000000000000000000000000000000000000000000000 2226 0000000000000000000000000000000000000000000000000000000000000000 2227 0000000000000000000000000000000000000000000000000000000000000000 2228 0000000000000000000000000000000000000000000000000000000000000000 2229 0000000000000000000000000000000000000000000000000000000000000000 2230 0000000000000000000000000000000000000000000000000000000000000000 2231 0000000000000000000000000000000000000000000000000000000000000000 2232 000000000000F75E000000000000000000000000000000000000000000000000 2233 000000000000F75E000000000000000000000000000000000000FF7FFF7FFF7F 2234 FF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000000000000000 2235 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2236 E07FE07F00000000F75E00000000000000000000000000000000E07FE07FE07F 2237 E07FE07F00000000F75E000000000000000000000000FF7F0000FF7FFF03FF03 2238 FF03FF03FF03FF03FF03FF7F00000000000000000000000000000000E07FE07F 2239 E07F000000000000000000000000000000000000000000000000E07F00000000 2240 0000E07F000000420000F75E0000000000000000000000000000E07F00000000 2241 0000E07F000000420000F75E00000000000000000000FF7F0000FF7FFF7FFF7F 2242 FF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000E07FE07F 2243 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2244 E07FE07F00000042004200000000000000000000000000000000000000000000 2245 0000E07F000000420042000000000000000000000000FF7F0000FF7FFF03FF03 2246 FF03FF03FF03FF03FF03FF7F0000000000000000000000000000000000000000 2247 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2248 E07FE07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 2249 00000000000000420042000000000000000000000000FF7F0000FF7FFF7FEF3D 2250 EF3DEF3DFF7FFF7FFF7FFF7F0000000000000000000000000000000000000000 2251 0000000000000000000000000000000000000000000000000000000000000000 2252 00000000000000420042000000000000000000000000E07F000000000000E07F 2253 0000F75E000000420042000000000000000000000000FF7F0000FF7FFF03FF03 2254 FF03FF03FF03FF03FF03FF7F0000000000000000000000000000000000000000 2255 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2256 E07FE07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 2257 0000F75E000000420042000000000000000000000000FF7F0000FF7FFF7FEF3D 2258 FF7FEF3DEF3DEF3DFF7FFF7F00000000000000000000000000000000E07FE07F 2259 E07F000000000000000000000000000000000000000000000000E07F00000000 2260 0000E07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 2261 00000000000000420042000000000000000000000000FF7F0000FF7FFF03FF03 2262 FF03FF03FF03FF03FF03FF7F00000000000000000000000000000000E07FE07F 2263 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2264 E07FE07F00000042004200000000000000000000000000000000000000000000 2265 0000EF3D000000420042000000000000000000000000FF7F0000FF7FFF7FEF3D 2266 EF3DFF7FEF3DFF7FFF7FFF7F0000000000000000000000000000000000000000 2267 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2268 E07FE07F00000042004200000000000000000000000000000000FF7FFF7FFF7F 2269 EF3DEF3D000000420042000000000000000000000000FF7F0000FF7FFF03FF03 2270 FF03FF03FF03FF03FF03FF7F0000000000000000000000000000000000000000 2271 0000000000000000000000000000000000000000000000000000000000000000 2272 0000000000000000004200000000000000000000000000000000000000000000 2273 00000000000000000042000000000000000000000000FF7F0000FF7FFF7FFF7F 2274 FF7FFF7FFF7FFF7FFF7FFF7F0000000000000000000000000000000000000000 2275 000000000000000000000000000000000000000000000000EF3DEF3DEF3DEF3D 2276 EF3DEF3DEF3D000000000000000000000000000000000000EF3DEF3DEF3DEF3D 2277 EF3DEF3DEF3D00000000000000000000000000000000FF7F00000000FF7F0000 2278 FF7F0000FF7F0000FF7F00000000000000000000E07FE07FE07F000000000000 2279 00000000000000000000000000000000000000000000000000000000E07F0042 2280 E07F0042E07F004200000000000000000000000000000000000000000042E07F 2281 0042E07F0042E07F0000000000000000000000000000000000000000EF3D0000 2282 EF3D0000EF3D0000EF3D00000000000000000000E07FE07F0000000000000000 2283 0000000000000000000000000000000000000000000000000000000000000000 2284 0042E07F0042E07F004200000000000000000000000000000000000000000000 2285 E07F0042E07F0042E07F000000000000000000000000000000000000EF3D0000 2286 EF3D0000EF3D0000EF3D00000000000000000000000000000000000000000000 2287 000000000000000000000000000000000000000000000000000000000000EF3D 2288 000000000000000000000000000000000000000000000000000000000000EF3D 3873 0000000000003600000028000000400000004000000001002000000000000040 3874 0000000000000000000000000000000000000000000000000000000000000000 3875 0000000000000000000000000000000000000000000000000000000000000000 3876 0000000000000000000000000000000000000000000000000000000000000000 3877 0000000000000000000000000000000000000000000000000000000000000000 3878 0000000000000000000000000000000000000000000000000000000000000000 3879 0000000000000000000000000000000000000000000000000000000000000000 3880 0000000000000000000000000000000000000000000000000000000000000000 3881 0000000000000000000000000000000000000000000000000000000000000000 3882 0000000000000000000000000000000000000000000000000000000000000000 3883 0000000000000000000000000000000000000000000000000000000000000000 3884 0000000000000000000000000000000000000000000000000000000000000000 3885 0000000000000000000000000000000000000000000000000000000000000000 3886 0000000000000000000000000000000000000000000000000000000000000000 3887 0000000000000000000000000000000000000000000000000000000000000000 3888 0000000000000000000000000000000000000000000000000000000000000000 3889 0000000000000000000000000000000000000000000000000000000000000000 3890 0000000000000000000000000000000000000000000000000000000000000000 3891 0000000000000000000000000000000000000000000000000000000000000000 3892 0000000000000000000000000000000000000000000000000000000000000000 3893 0000000000000000000000000000000000000000000000000000000000000000 3894 0000000000000000000000000000000000000000000000000000000000000000 3895 0000000000000000000000000000000000000000000000000000000000000000 3896 0000000000000000000000000000000000000000000000000000000000000000 3897 0000000000000000000000000000000000000000000000000000000000000000 3898 0000000000000000000000000000000000000000000000000000000000000000 3899 0000000000000000000000000000000000000000000000000000000000000000 3900 0000000000000000000000000000000000000000000000000000000000000000 3901 0000000000000000000000000000000000000000000000000000000000000000 3902 0000000000000000000000000000000000000000000000000000000000000000 3903 0000000000000000000000000000000000000000000000000000000000000000 3904 0000000000000000000000000000000000000000000000000000000000000000 3905 0000000000000000000000000000000000000000000000000000000000000000 3906 0000000000000000000000000000000000000000000000000000000000000000 3907 0000000000000000000000000000000000000000000000000000000000000000 3908 0000000000000000000000000000000000000000000000000000000000000000 3909 0000000000000000000000000000000000000000000000000000000000000000 3910 0000000000000000000000000000000000000000000000000000000000000000 3911 0000000000000000000000000000000000000000000000000000000000000000 3912 0000000000000000000000000000000000000000000000000000000000000000 3913 0000000000000000000000000000000000000000000000000000000000000000 3914 0000000000000000000000000000000000000000000000000000000000000000 3915 0000000000000000000000000000000000000000000000000000000000000000 3916 0000000000000000000000000000000000000000000000000000000000000000 3917 0000000000000000000000000000000000000000000000000000000000000000 3918 0000000000000000000000000000000000000000000000000000000000000000 3919 0000000000000000000000000000000000000000000000000000000000000000 3920 0000000000000000000000000000000000000000000000000000000000000000 3921 0000000000000000000000000000000000000000000000000000000000000000 3922 0000000000000000000000000000000000000000000000000000000000000000 3923 0000000000000000000000000000000000000000000000000000000000000000 3924 0000000000000000000000000000000000000000000000000000000000000000 3925 0000000000000000000000000000000000000000000000000000000000000000 3926 0000000000000000000000000000000000000000000000000000000000000000 3927 0000000000000000000000000000000000000000000000000000000000000000 3928 0000000000000000000000000000000000000000000000000000000000000000 3929 0000000000000000000000000000000000000000000000000000000000000000 3930 0000000000000000000000000000000000000000000000000000000000000000 3931 0000000000000000000000000000000000000000000000000000000000000000 3932 0000000000000000000000000000000000000000000000000000000000000000 3933 0000000000000000000000000000000000000000000000000000000000000000 3934 0000000000000000000000000000000000000000000000000000000000000000 3935 0000000000000000000000000000000000000000000000000000000000000000 3936 0000000000000000000000000000000000000000000000000000000000000000 3937 0000000000000000000000000000000000000000000000000000000000000000 3938 0000000000000000000000000000000000000000000000000000000000000000 3939 0000000000000000000000000000000000000000000000000000000000000000 3940 0000000000000000000000000000000000000000000000000000000000000000 3941 0000000000000000000000000000000000000000000000000000000000000000 3942 0000000000000000000000000000000000000000000000000000000000000000 3943 0000000000000000000000000000000000000000000000000000000000000000 3944 0000000000000000000000000000000000000000000000000000000000000000 3945 0000000000000000000000000000000000000000000000000000000000000000 3946 0000000000000000000000000000000000000000000000000000000000000000 3947 0000000000000000000000000000000000000000000000000000000000000000 3948 0000000000000000000000000000000000000000000000000000000000000000 3949 0000000000000000000000000000000000000000000000000000000000000000 3950 0000000000000000000000000000000000000000000000000000000000000000 3951 0000000000000000000000000000000000000000000000000000000000000000 3952 0000000000000000000000000000000000000000000000000000000000000000 3953 0000000000000000000000000000000000000000000000000000000000000000 3954 0000000000000000000000000000000000000000000000000000000000000000 3955 0000000000000000000000000000000000000000000000000000000000000000 3956 0000000000000000000000000000000000000000000000000000000000000000 3957 0000000000000000000000000000000000000000000000000000000000000000 3958 0000000000000000000000000000000000000000000000000000000000000000 3959 0000000000000000000000000000000000000000000000000000000000000000 3960 0000000000000000000000000000000000000000000000000000000000000000 3961 0000000000000000000000000000000000000000000000000000000000000000 3962 0000000000000000000000000000000000000000000000000000000000000000 3963 0000000000000000000000000000000000000000000000000000000000000000 3964 0000000000000000000000000000000000000000000000000000000000000000 3965 0000000000000000000000000000000000000000000000000000000000000000 3966 0000000000000000000000000000000000000000000000000000000000000000 3967 0000000000000000000000000000000000000000000000000000000000000000 3968 0000000000000000000000000000000000000000000000000000000000000000 3969 0000000000000000000000000000000000000000000000000000000000000000 3970 0000000000000000000000000000000000000000000000000000000000000000 3971 0000000000000000000000000000000000000000000000000000000000000000 3972 0000000000000000000000000000000000000000000000000000000000000000 3973 0000000000000000000000000000000000000000000000000000000000000000 3974 0000000000000000000000000000000000000000000000000000000000000000 3975 0000000000000000000000000000000000000000000000000000000000000000 3976 0000000000000000000000000000000000000000000000000000000000000000 3977 0000000000000000000000000000000000000000000000000000000000000000 3978 0000000000000000000000000000000000000000000000000000000000000000 3979 0000000000000000000000000000000000000000000000000000000000000000 3980 0000000000000000000000000000000000000000000000000000000000000000 3981 0000000000000000000000000000000000000000000000000000000000000000 3982 0000000000000000000000000000000000000000000000000000000000000000 3983 0000000000000000000000000000000000000000000000000000000000000000 3984 0000000000000000000000000000000000000000000000000000000000000000 3985 0000000000000000000000000000000000000000000000000000000000000000 3986 0000000000000000000000000000000000000000000000000000000000000000 3987 0000000000000000000000000000000000000000000000000000000000000000 3988 0000000000000000000000000000000000000000000000000000000000000000 3989 0000000000000000000000000000000000000000000000000000000000000000 3990 0000000000000000000000000000000000000000000000000000000000000000 3991 0000000000000000000000000000000000000000000000000000000000000000 3992 0000000000000000000000000000000000000000000000000000000000000000 3993 0000000000000000000000000000000000000000000000000000000000000000 3994 0000000000000000000000000000000000000000000000000000000000000000 3995 0000000000000000000000000000000000000000000000000000000000000000 3996 0000000000000000000000000000000000000000000000000000000000000000 3997 0000000000000000000000000000000000000000000000000000000000000000 3998 0000000000000000000000000000000000000000000000000000000000000000 3999 0000000000000000000000000000000000000000000000000000000000000000 4000 0000000000000000000000000000000000000000000000000000000000000000 4001 0000000000000000000000000000000000000000000000000000000000000000 4002 0000000000000000000000000000000000000000000000000000000000000000 4003 00000000000000000000000000000000000000000000000000006B2108006B21 4004 08006B2108006B2108006B2108006B2108000000000000000000000000000000 4005 0000000000000000000000000000000000000000000000000000000000000000 4006 0000000000000000000000000000000000000000000000000000000000000000 4007 0000000000000000000000000000000000000000000000000000000000000000 4008 0000000000000000000000000000000000000000000000000000000000000000 4009 0000000000000000000000000000000000000000000000000000000000000000 4010 0000000000000000000000000000000000000000000000000000000000000000 4011 00000000000000000000000000000000000000000000000000006B2108006B21 4012 08006B2108006B2108006B2108006B2108000000000000000000000000000000 4013 0000000000000000000000000000000000000000000000000000000000000000 4014 0000000000000000000000000000000000000000000000000000000000000000 4015 0000000000000000000000000000000000000000000000000000000000000000 4016 0000000000000000000000000000000000000000000000000000000000000000 4017 0000000000000000000000000000000000000000000000000000000000000000 4018 0000000000000000000000000000000000000000000000000000000000000000 4019 0000000000000000000000000000000000000000000000000000000000000000 4020 00006B2108006B21080000000000000000000000000000000000000000000000 4021 0000000000000000000000000000000000000000000000000000000000000000 4022 0000000000000000000000000000000000000000000000000000000000000000 4023 0000000000000000000000000000000000000000000000000000000000000000 4024 0000000000000000000000000000000000000000000000000000000000000000 4025 0000000000000000000000000000000000000000000000000000000000000000 4026 0000000000000000000000000000000000000000000000000000000000000000 4027 00000000000000000000000000000000FF008400000000000000000000000000 4028 00006B2108006B21080000000000000000000000000000000000000000000000 4029 0000000000000000000000000000000000000000000000000000000000000000 4030 0000000000000000000000000000000000000000000000000000000000000000 4031 0000000000000000000000000000000000000000000000000000000000000000 4032 0000000000000000000000000000000000000000000000000000000000000000 4033 0000000000000000000000000000000000000000000000000000000000000000 4034 0000000000000000000000000000000000000000000000000000000000000000 4035 0000000000000000000084840000840084008484840000000000000000000000 4036 00006B2108006B21080000000000000000000000000000000000000000000000 4037 0000000000000000000000000000000000000000000000000000000000000000 4038 0000000000000000000000000000000000000000000000000000000000000000 4039 0000000000000000000000000000000000000000000000000000000000000000 4040 0000000000000000000000000000000000000000000000000000000000000000 4041 0000000000000000000000000000000000000000000000000000000000000000 4042 0000000000000000000000000000000000000000000000000000000000000000 4043 00000000000000000000FFFF00000000FF00C6C6C60000000000000000000000 4044 00006B2108006B21080000000000000000000000000000000000000000000000 4045 0000000000000000000000000000000000000000000000000000000000000000 4046 0000000000000000000000000000000000000000000000000000000000000000 4047 0000000000000000000000000000000000000000000000000000000000000000 4048 0000000000000000000000000000000000000000000000000000000000000000 4049 0000000000000000000000000000000000000000000000000000000000000000 4050 0000000000000000000000000000000000000000000000000000000000000000 4051 00000000000000000000C6C6C6000000840084848400000000006B2108006B21 4052 08006B2108006B2108006B2108006B2108000000000000000000000000000000 4053 0000000000000000000000000000000000000000000000000000000000000000 4054 0000000000000000000000000000000000000000000000000000000000000000 4055 0000000000000000000000000000000000000000000000000000000000000000 4056 0000000000000000000000000000000000000000000000000000000000000000 4057 0000000000000000000000000000000000000000000000000000000000000000 4058 0000000000000000000000000000000000000000000000000000000000000000 4059 0000000000008484840000000000C6C6C60000000000000000006B2108006B21 4060 08006B2108006B2108006B2108006B2108000000000000000000000000000000 4061 0000000000000000000000000000000000000000000000000000000000000000 4062 0000000000000000000000000000000000000000000000000000000000000000 4063 0000000000000000000000000000000000000000000000000000000000000000 4064 0000000000000000000000000000000000000000000000000000000000000000 4065 0000000000000000000000000000000000000000000000000000000000000000 4066 0000000000000000000000000000000000000000000000000000000000000000 4067 0000000000000000000000000000840000008484000000000000000000000000 4068 0000000000000000000000000000000000000000000000000000000000000000 4069 0000000000000000000000000000000000000000000000000000000000000000 4070 0000000000000000000000000000000000000000000000000000000000000000 4071 0000000000000000000000000000000000000000000000000000000000000000 4072 0000000000000000000000000000000000000000000000000000000000000000 4073 0000000000000000000000000000000000000000000000000000000000000000 4074 0000000000000000000000000000000000000000000000000000000000000000 4075 0000000000000000000000000000C6C6C6000000000000000000000000000000 4076 0000000000000000000000000000000000000000000000000000000000000000 4077 0000000000000000000000000000000000000000000000000000000000000000 4078 0000000000000000000000000000000000000000000000000000000000000000 4079 0000000000000000000000000000000000000000000000000000000000000000 4080 0000000000000000000000000000000000000000000000000000000000000000 4081 0000000000000000000000000000000000000000000000000000000000000000 4082 0000000000000000000000000000000000000000000000000000000000008484 4083 84008484000084840000C6C6C600C6C6C600C6C6C6008400000084840000C6C6 4084 C600000000000000000000000000000000000000000000000000000000000000 4085 0000000000000000000000000000000000000000000000000000000000000000 4086 0000000000000000000000000000000000000000000000000000000000000000 4087 0000000000000000000000000000000000000000000000000000000000000000 4088 0000000000000000000000000000000000000000000000000000000000000000 4089 0000000000000000000000000000000000000000000000000000000000000000 4090 0000000000000000000000000000000000000000000084840000848400008484 4091 0000848400008484000084840000C6C6C6008484000084840000848400008484 4092 0000848400008484000000000000000000000000000000000000000000000000 4093 0000000000000000000000000000000000000000000000000000000000000000 4094 0000000000000000000000000000000000000000000000000000000000000000 4095 0000000000000000000000000000000000000000000000000000000000000000 4096 0000000000000000000000000000000000000000000000000000000000000000 4097 0000000000000000000000000000000000000000000000000000000000000000 4098 0000000000000000000000000000000000008484840084840000848400008484 4099 0000848400008484000084000000C6C6C6008484000084840000848400008484 4100 0000848400008484000084848400000000000000000000000000000000000000 4101 0000000000000000000000000000000000000000000000000000000000000000 4102 0000000000000000000000000000000000000000000000000000000000000000 4103 0000000000000000000000000000000000000000000000000000000000000000 4104 0000000000000000000000000000000000000000000000000000000000000000 4105 0000000000000000000000000000000000000000000000000000000000000000 4106 0000000000000000000000000000000000000000000000000000000000000000 4107 0000848400008484000000000000848400000000000084840000848400000000 4108 0000000000000000000000000000000000000000000000000000000000000000 4109 0000000000000000000000000000000000000000000000000000000000000000 4110 0000000000000000000000000000000000000000000000000000000000000000 4111 0000000000000000000000000000000000000000000000000000000000000000 4112 0000000000000000000000000000000000000000000000000000000000000000 4113 0000000000000000000000000000000000000000000000000000000000000000 4114 0000000000000000000000000000000000000000000000000000000000000000 4115 0000000000000000000000000000000000000000000000000000000000000000 4116 0000000000000000000000000000000000000000000000000000000000000000 4117 0000000000000000000000000000000000000000000000000000000000000000 4118 0000000000000000000000000000000000000000000000000000000000000000 4119 0000000000000000000000000000000000000000000000000000000000000000 4120 0000000000000000000000000000000000000000000000000000000000000000 4121 0000000000000000000000000000000000000000000000000000000000000000 4122 0000000000000000000000000000000000000000000000000000000000000000 4123 0000000000000000000000000000000000000000000000000000000000000000 4124 0000000000000000000000000000000000000000000000000000000000000000 4125 0000000000000000000000000000000000000000000000000000000000000000 4126 0000000000000000000000000000000000000000000000000000000000000000 4127 0000000000000000000000000000000000000000000000000000000000000000 4128 0000000000000000000000000000000000000000000000000000000000000000 4129 0000000000000000000000000000000000000000000000000000000000000000 4130 0000000000000000000000000000000000000000000000000000000000000000 4131 000000000000000000000000000000000000C6C6C60000000000000000000000 4132 0000000000000000000000000000000000000000000000000000000000000000 4133 0000000000000000000000000000000000000000000000000000000000000000 4134 0000000000000000000000000000000000000000000000000000000000000000 4135 0000000000000000000000000000000000000000000000000000000000000000 4136 0000000000000000000000000000000000000000000000000000000000000000 4137 0000000000000000000000000000000000000000000000000000000000000000 4138 0000000000000000000000000000000000000000000000000000000000000000 4139 0000000000000000000000000000000000000000000000000000000000000000 4140 000000000000000000000000000000000000000000000000FF000000FF000000 4141 FF000000FF000000FF000000FF000000FF00000000000000FF000000FF000000 4142 FF000000FF000000FF000000FF00000000000000000000000000000000000000 4143 0000000000000000000000000000000000000000000000000000000000000000 4144 0000000000000000000000000000000000000000000000000000000000000000 4145 0000000000000000000000000000000000000000000000000000000000000000 4146 0000000000000000000000000000000000000000000000000000000000000000 4147 0000000000000000000000000000000000000000000000000000000000000000 4148 000000000000000000000000000000000000000000000000FF00000000000000 4149 0000000000000000000000000000000000000000000000000000000000000000 4150 000000000000000000000000FF00000000000000000000000000000000000000 4151 0000000000000000000000000000000000000000000000000000000000000000 4152 0000000000000000000000000000000000000000000000000000000000000000 4153 000000000000FFFF00006B2108006B2108006B2108006B2108006B2108006B21 4154 0800000000000000000000000000000000000000000000000000000000000000 4155 0000000000000000000000000000000000008484840000000000000000000000 4156 000000000000000000000000000000000000000000000000FF00000000000000 4157 0000000000000000000000000000000000000000FF0084000000000000000000 4158 000000000000000000000000FF00000000000000000000000000000000000000 4159 0000000000000000000000000000000000000000FF0084000000000000000000 4160 0000000000000000000000000000000000000000000000000000000000000000 4161 000000000000000000006B2108006B2108006B2108006B2108006B2108006B21 4162 0800000000000000000000000000000000000000000000000000000000000000 4163 0000000000000000000000000000848484000000000084848400000000000000 4164 000000000000000000000000000000000000000000000000FF00000000000000 4165 0000000000000000000000000000848400008400840084848400000000000000 4166 000000000000000000000000FF00000000000000000000000000000000000000 4167 0000000000000000000000000000848400008400840084848400000000000000 4168 0000000000000000000000000000000000000000000000000000000000000000 4169 000000000000FFFF0000FFFF0000FFFF00006B2108006B210800FFFF0000FFFF 4170 0000000000000000000000000000000000000000000000000000000000000000 4171 0000000000000000000000000000C6C6C60084848400C6C6C600000000000000 4172 000000000000000000000000000000000000000000000000FF00000000000000 4173 0000000000000000000000000000FFFF00000000FF00C6C6C600000000000000 4174 000000000000000000000000FF00000000000000000000000000000000000000 4175 0000000000000000000000000000FFFF00000000FF00C6C6C600000000000000 4176 0000000000000000000000000000000000000000000000000000000000000000 4177 000000000000000000007B7B7B007B7B7B006B2108006B210800000000000000 4178 0000000000000000000000000000000000000000000000000000000000000000 4179 0000000000000000000000000000C6C6C6000000000084848400000000000000 4180 000000000000000000000000000000000000000000000000FF00000000000000 4181 0000000000000000000000000000C6C6C6000000840084848400000000000000 4182 000000000000000000000000FF00000000000000000000000000000000000000 4183 0000000000000000000000000000C6C6C6000000840084848400000000000000 4184 0000000000000000000000000000000000000000000000000000000000000000 4185 000000000000FFFF0000FFFF0000FFFF00006B2108006B210800FFFF0000FFFF 4186 0000000000000000000000000000000000000000000000000000000000000000 4187 000000000000000000008484840000000000C6C6C60000000000000000000000 4188 000000000000000000000000000000000000000000000000FF00000000000000 4189 000000000000000000008484840000000000C6C6C60000000000000000000000 4190 000000000000000000000000FF00000000000000000000000000000000000000 4191 000000000000000000008484840000000000C6C6C60000000000000000000000 4192 0000000000000000000000000000000000000000000000000000000000000000 4193 000000000000000000007B7B7B00000000006B2108006B2108007B7B7B000000 4194 0000000000000000000000000000000000000000000000000000000000000000 4195 0000000000000000000000000000000000000000000084848400000000000000 4196 000000000000000000000000000000000000000000000000FF00000000000000 4197 0000000000000000000000000000000000008400000084840000000000000000 4198 000000000000000000000000FF00000000000000000000000000000000000000 4199 0000000000000000000000000000000000008400000084840000000000000000 4200 0000000000000000000000000000000000000000000000000000000000000000 4201 000000000000FFFF00006B2108006B2108006B2108006B2108006B2108006B21 4202 0800000000000000000000000000000000000000000000000000000000000000 4203 000000000000000000000000000000000000C6C6C60000000000000000000000 4204 000000000000000000000000000000000000000000000000FF00000000000000 4205 000000000000000000000000000000000000C6C6C60000000000000000000000 4206 000000000000000000000000FF00000000000000000000000000000000000000 4207 000000000000000000000000000000000000C6C6C60000000000000000000000 4208 0000000000000000000000000000000000000000000000000000000000000000 4209 000000000000000000006B2108006B2108006B2108006B2108006B2108006B21 4210 0800000000000000000000000000000000000000000000000000000000000000 4211 0000848484008484840084848400C6C6C600C6C6C600C6C6C600000000008484 4212 8400C6C6C600000000000000000000000000000000000000FF00000000000000 4213 0000848484008484000084840000C6C6C600C6C6C600C6C6C600840000008484 4214 0000C6C6C600000000000000FF00000000000000000000000000000000000000 4215 0000848484008484000084840000C6C6C600C6C6C600C6C6C600840000008484 4216 0000C6C6C6000000000000000000000000000000000000000000000000000000 4217 000000000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF 4218 0000000000000000000000000000000000000000000000000000848484008484 4219 840084848400848484008484840084848400C6C6C60084848400848484008484 4220 840084848400848484008484840000000000000000000000FF00848400008484 4221 000084840000848400008484000084840000C6C6C60084840000848400008484 4222 0000848400008484000084840000000000000000000000000000848400008484 4223 000084840000848400008484000084840000C6C6C60084840000848400008484 4224 0000848400008484000084840000000000000000000000000000000000000000 4225 0000000000000000000000000000000000000000000000000000000000000000 4226 0000000000000000000000000000000000000000000084848400848484008484 4227 840084848400848484008484840000000000C6C6C60084848400848484008484 4228 8400848484008484840084848400C6C6C6000000000084848400848400008484 4229 000084840000848400008484000084000000C6C6C60084840000848400008484 4230 0000848400008484000084840000848484000000000084848400848400008484 4231 000084840000848400008484000084000000C6C6C60084840000848400008484 4232 0000848400008484000084840000848484000000000000000000000000000000 4233 0000000000000000000000000000000000000000000000000000000000000000 4234 0000000000000000000000000000000000000000000000000000000000000000 4235 0000000000008484840084848400000000008484840000000000848484008484 4236 840000000000000000000000000000000000000000000000FF00000000000000 4237 0000000000008484000084840000000000008484000000000000848400008484 4238 000000000000000000000000FF00000000000000000000000000000000000000 4239 0000000000008484000084840000000000008484000000000000848400008484 4240 0000000000000000000000000000000000000000000000000000000000000000 4241 0000000000007B7B7B00000000007B7B7B00000000007B7B7B00000000007B7B 4242 7B00000000000000000000000000000000000000000000000000000000000000 4243 0000000000000000000000000000000000000000000000000000000000000000 4244 000000000000000000000000000000000000000000000000FF000000FF000000 4245 FF000000FF000000FF000000FF000000FF000000FF000000FF000000FF000000 4246 FF000000FF000000FF000000FF00000000000000000000000000000000000000 4247 0000000000000000000000000000000000000000000000000000000000000000 4248 0000000000000000000000000000000000000000000000000000000000000000 4249 0000000000007B7B7B00000000007B7B7B00000000007B7B7B00000000007B7B 4250 7B00000000000000000000000000000000000000000000000000000000000000 4251 0000000000000000000000000000000000000000000000000000000000000000 4252 0000000000000000000000000000000000000000000000000000000000000000 4253 0000000000000000000000000000000000000000000000000000000000000000 4254 0000000000000000000000000000000000000000000000000000000000000000 4255 0000000000000000000000000000000000000000000000000000000000000000 4256 0000000000000000000000000000000000000000000000000000000000000000 4257 0000000000000000000000000000000000000000000000000000000000000000 4258 0000000000000000000000000000000000000000000000000000000000000000 4259 0000000000000000000000000000000000000000000000000000000000000000 4260 0000000000000000000000000000000000000000000000000000000000000000 4261 0000000000000000000000000000000000000000000000000000000000000000 4262 0000000000000000000000000000000000000000000000000000000000000000 4263 0000000000000000000000000000000000000000000000000000000000000000 4264 0000000000000000000000000000000000000000000000000000000000000000 4265 0000000000000000000000000000000000000000000000000000000000000000 4266 0000000000000000000000000000000000000000000000000000000000000000 4267 0000000000000000000000000000000000000000000000000000000000000000 4268 0000000000000000000000000000000000000000000000000000000000000000 4269 0000000000000000000000000000000000000000000000000000BDBDBD000000 4270 0000000000000000000000000000000000000000000000000000000000000000 4271 0000000000000000000000000000000000000000000000000000BDBDBD000000 4272 0000000000000000000000000000000000000000000000000000000000000000 4273 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4274 FF00FFFFFF000000000000000000000000000000000000000000000000000000 4275 0000000000000000000000000000000000000000000000000000000000000000 4276 0000000000000000000000000000000000000000000000000000000000000000 4277 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000BDBD 4278 BD00000000000000000000000000000000000000000000000000000000000000 4279 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000BDBD 4280 BD00000000000000000000000000000000000000000000000000FFFFFF000000 4281 0000FFFFFF00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF 4282 0000FFFFFF000000000000000000000000000000000000000000000000000000 4283 00000000000000FFFF0000FFFF0000FFFF000000000000000000000000000000 4284 0000000000000000000000000000000000000000000000000000000000000000 4285 000000FFFF0000000000000000000000000000FFFF0000000000008484000000 4286 0000BDBDBD000000000000000000000000000000000000000000000000000000 4287 000000FFFF0000000000000000000000000000FFFF0000000000008484000000 4288 0000BDBDBD000000000000000000000000000000000000000000FFFFFF000000 4289 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4290 FF00FFFFFF000000000000000000000000000000000000000000000000000000 4291 00000000000000FFFF0000FFFF00000000000000000000000000000000000000 4292 0000000000000000000000000000000000000000000000000000000000000000 4293 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4294 8400000000000000000000000000000000000000000000000000000000000000 4295 00000000000000000000000000000000000000FFFF0000000000008484000084 4296 8400000000000000000000000000000000000000000000000000FFFFFF000000 4297 0000FFFFFF00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF 4298 0000FFFFFF000000000000000000000000000000000000000000000000000000 4299 0000000000000000000000000000000000000000000000000000000000000000 4300 0000000000000000000000000000000000000000000000000000000000000000 4301 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4302 840000000000000000000000000000000000000000000000000000FFFF0000FF 4303 FF0000FFFF0000FFFF0000FFFF00000000000000000000000000008484000084 4304 8400000000000000000000000000000000000000000000000000FFFFFF000000 4305 0000FFFFFF00FFFFFF007B7B7B007B7B7B007B7B7B00FFFFFF00FFFFFF00FFFF 4306 FF00FFFFFF000000000000000000000000000000000000000000000000000000 4307 0000000000000000000000000000000000000000000000000000000000000000 4308 0000000000000000000000000000000000000000000000000000000000000000 4309 0000000000000000000000000000000000000000000000000000008484000084 4310 840000000000000000000000000000000000000000000000000000FFFF000000 4311 0000000000000000000000FFFF0000000000BDBDBD0000000000008484000084 4312 8400000000000000000000000000000000000000000000000000FFFFFF000000 4313 0000FFFFFF00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF 4314 0000FFFFFF000000000000000000000000000000000000000000000000000000 4315 0000000000000000000000000000000000000000000000000000000000000000 4316 0000000000000000000000000000000000000000000000000000000000000000 4317 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4318 840000000000000000000000000000000000000000000000000000FFFF0000FF 4319 FF0000FFFF0000FFFF0000FFFF0000000000BDBDBD0000000000008484000084 4320 8400000000000000000000000000000000000000000000000000FFFFFF000000 4321 0000FFFFFF00FFFFFF007B7B7B00FFFFFF007B7B7B007B7B7B007B7B7B00FFFF 4322 FF00FFFFFF000000000000000000000000000000000000000000000000000000 4323 00000000000000FFFF0000FFFF0000FFFF000000000000000000000000000000 4324 0000000000000000000000000000000000000000000000000000000000000000 4325 000000FFFF0000000000000000000000000000FFFF0000000000008484000084 4326 840000000000000000000000000000000000000000000000000000FFFF0000FF 4327 FF0000FFFF0000FFFF0000FFFF00000000000000000000000000008484000084 4328 8400000000000000000000000000000000000000000000000000FFFFFF000000 4329 0000FFFFFF00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF 4330 0000FFFFFF000000000000000000000000000000000000000000000000000000 4331 00000000000000FFFF0000FFFF00000000000000000000000000000000000000 4332 0000000000000000000000000000000000000000000000000000000000000000 4333 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4334 8400000000000000000000000000000000000000000000000000000000000000 4335 0000000000000000000000000000000000007B7B7B0000000000008484000084 4336 8400000000000000000000000000000000000000000000000000FFFFFF000000 4337 0000FFFFFF00FFFFFF007B7B7B007B7B7B00FFFFFF007B7B7B00FFFFFF00FFFF 4338 FF00FFFFFF000000000000000000000000000000000000000000000000000000 4339 0000000000000000000000000000000000000000000000000000000000000000 4340 0000000000000000000000000000000000000000000000000000000000000000 4341 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4342 8400000000000000000000000000000000000000000000000000000000000000 4343 0000FFFFFF00FFFFFF00FFFFFF007B7B7B007B7B7B0000000000008484000084 4344 8400000000000000000000000000000000000000000000000000FFFFFF000000 4345 0000FFFFFF00FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000FFFF 4346 0000FFFFFF000000000000000000000000000000000000000000000000000000 4347 0000000000000000000000000000000000000000000000000000000000000000 4348 0000000000000000000000000000000000000000000000000000000000000000 4349 0000000000000000000000000000000000000000000000000000000000000084 4350 8400000000000000000000000000000000000000000000000000000000000000 4351 0000000000000000000000000000000000000000000000000000000000000084 4352 8400000000000000000000000000000000000000000000000000FFFFFF000000 4353 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4354 FF00FFFFFF000000000000000000000000000000000000000000000000000000 4355 0000000000000000000000000000000000000000000000000000000000000000 4356 0000000000000000000000000000000000000000000000000000000000007B7B 4357 7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B00000000000000 4358 0000000000000000000000000000000000000000000000000000000000007B7B 4359 7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B007B7B7B00000000000000 4360 0000000000000000000000000000000000000000000000000000FFFFFF000000 4361 000000000000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000FFFF 4362 FF00000000000000000000000000000000000000000000FFFF0000FFFF0000FF 4363 FF00000000000000000000000000000000000000000000000000000000000000 4364 0000000000000000000000000000000000000000000000000000000000000000 4365 00000000000000FFFF000084840000FFFF000084840000FFFF00008484000000 4366 0000000000000000000000000000000000000000000000000000000000000000 4367 0000000000000084840000FFFF000084840000FFFF000084840000FFFF000000 4368 0000000000000000000000000000000000000000000000000000000000000000 4369 0000000000007B7B7B00000000007B7B7B00000000007B7B7B00000000007B7B 4370 7B00000000000000000000000000000000000000000000FFFF0000FFFF000000 4371 0000000000000000000000000000000000000000000000000000000000000000 4372 0000000000000000000000000000000000000000000000000000000000000000 4373 00000000000000000000000000000084840000FFFF000084840000FFFF000084 4374 8400000000000000000000000000000000000000000000000000000000000000 4375 000000000000000000000000000000FFFF000084840000FFFF000084840000FF 4376 FF00000000000000000000000000000000000000000000000000000000000000 4377 0000000000007B7B7B00000000007B7B7B00000000007B7B7B00000000007B7B 4378 7B00000000000000000000000000000000000000000000000000000000000000 4379 0000000000000000000000000000000000000000000000000000000000000000 4380 0000000000000000000000000000000000000000000000000000000000000000 4381 000000000000000000007B7B7B00000000000000000000000000000000000000 4382 0000000000000000000000000000000000000000000000000000000000000000 4383 000000000000000000007B7B7B00000000000000000000000000000000000000 4384 0000000000000000000000000000000000000000000000000000000000000000 2289 4385 0000000000000000000000000000000000000000000000000000000000000000 2290 4386 000000000000000000000000000000000000424D3E000000000000003E000000 … … 2314 4410 Bitmap = { 2315 4411 494C01010D000E00040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 2316 0000000000003600000028000000400000004000000001001000000000000020 2317 0000000000000000000000000000000000000000000000000000000000000000 2318 0000000000000000000000000000000000000000000000000000000000000000 2319 0000000000000000000000000000000000000000000000000000000000000000 2320 0000000000000000000000000000000000000000000000000000000000000000 2321 00000000000000000000000000000000000000000000E07F1863E07F1863E07F 2322 1863E07F1863E07F000000000000000000000000000000000000000000000000 2323 0000000000000000000000000000000000000000000000000000000000000000 2324 0000000000000000000000000000000000000000000000000000000000000000 2325 0000000000000000000000000000000000000000E07F0000E07F1863E07F1863 2326 E07F1863E07F1863E07F0000FF7FFF7F00000000000000000000000000000000 2327 0000000000000000000000000000000000000000000000000000000000000000 2328 0000000000000000000000000000000000000000000000000000000000000000 2329 0000000000000000000000000000000000000000FF7FE07F0000E07F1863E07F 2330 1863E07F1863E07F1863E07F0000FF7F00000000000000000000000000000000 2331 0000000000000000000000000000000000000000000000000000000000000000 2332 0000000000000000000000000000000000000000000000000000000000000000 2333 0000000000000000000000000000000000000000E07FFF7F0000000000000000 2334 0000000000000000000000000000FF7F00000000000000000000000000000000 2335 0000000000000000000000000000000000000000000000000000000000000000 2336 0000000000000000000000000000000000000000000000000000000000000000 2337 0000000000000000000000000000000000000000FF7FE07F0000FF7F0000FF7F 2338 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000 2339 0000000000000000000000000000000000000000000000000000000000000000 2340 0000000000000000000000000000000000000000000000000000000000000000 2341 0000000000000000000000000000000000000000E07FFF7F0000FF7F0000FF7F 2342 0000FF7FFF7FFF7FFF7FFF7F0000FF7F00000000000000000000000000000000 2343 0000000000000000000000000000000000000000000000000000000000000000 2344 0000000000000000000000000000000000000000000000000000000000000000 2345 0000000000000000000000000000000000000000FF7FE07F0000FF7F0000FF7F 2346 0000FF7FFF7FFF7FFF7F00000000FF7F00000000000000000000000000000000 2347 0000000000000000000000000000000000000000000000000000000000000000 2348 0000000000000000000000000000000000000000000000000000000000000000 2349 00000000000000000000000000000000000000000000FF7F0000FF7F0000FF7F 2350 0000FF7FFF7FFF7F0000FF7F0000FF7F00000000000000000000000000000000 2351 0000000000000000000000000000000000000000000000000000000000000000 2352 0000000000000000000000000000000000000000000000000000000000000000 2353 0000000000000000000000000000000000000000104200000000FF7F0000FF7F 2354 0000FF7FFF7F0000FF7FFF7F0000FF7F00000000000000000000000000000000 2355 0000000000000000000000000000000000000000000000000000000000000000 2356 0000000000000000000000000000000000000000000000000000000000000000 2357 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2358 0000FF7F0000FF7FFF7FFF7F0000FF7F00000000000000000000000000000000 2359 0000000000000000000000000000000000000000000000000000000000000000 2360 0000000000000000000000000000000000000000000000000000000000000000 2361 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2362 00000000FF7FFF7FFF7FFF7F0000FF7F00000000000000000000000000000000 2363 0000000000000000000000000000000000000000000000000000000000000000 2364 0000000000000000000000000000000000000000000000000000000000000000 2365 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2366 0000FF7FFF7FFF7FFF7FFF7F0000FF7F00000000000000000000000000000000 2367 0000000000000000000000000000000000000000000000000000000000000000 2368 0000000000000000000000000000000000000000000000000000000000000000 2369 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2370 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000 2371 0000000000000000000000000000000000000000000000000000000000000000 2372 0000000000000000000000000000000000000000000000000000000000000000 2373 0000000000000000000000000000000000000000000000000000FF7F00000000 2374 0000000000000000000000000000000000000000000000000000000000000000 2375 0000000000000000000000000000000000000000000000000000000000000000 2376 0000000000000000000000000000000000000000000000000000000000000000 2377 0000000000000000000000000000000000000000000000000000000000000000 2378 0000000000000000000000000000000000000000000000000000000000000000 2379 0000000000000000000000000000000000000000000000000000000000000000 2380 0000000000000000000000000000000000000000000000000000000000000000 2381 0000000000000000000000000000000000000000000000000000000000000000 2382 0000000000000000000000000000000000000000000000000000000000000000 2383 0000000000000000000000000000000000000000000000000000000000000000 2384 0000000000000000000000000000000000000000000000000000000000000000 2385 0000000000000000000000000000000000000000000000000000000000000000 2386 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000 2387 0000000000000000000000000000000000000000000000000000000000000000 2388 0000000000000000000000000000000000000000E07FFF7FE07FFF7FE07FFF7F 2389 E07FFF7FE07FFF7FE07F00000000000000000000000000000000000000000000 2390 FF7F0000000000000000FF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 2391 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000E07FFF7FE07FFF7F 2392 E07FFF7FE07FFF7FE07FFF7FE07F000000000000FF7FE07FFF7F0000FF7FE07F 2393 FF7FE07F0000E07FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7F0000 2394 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 2395 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000FF7FE07F0000E07F 2396 FF7FE07FFF7F00000000E07FFF7F000000000000E07FFF7FE07F0000E07FFF7F 2397 E07F00000000FF7FE07F0000FF7FFF7F00000000FF7FFF7FFF7FFF7FFF7F0000 2398 FF7F000000000000000000000000FF7F00000000000000000000FF7FFF7FFF7F 2399 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000E07FFF7F0000FF7F 2400 E07FFF7F0000FF7F0000FF7FE07F000000000000FF7FE07FFF7F0000FF7FE07F 2401 0000E07F0000E07FFF7F00000000FF7F00000000FF7FFF7FFF7FFF7FFF7F0000 2402 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 2403 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000FF7FE07F0000E07F 2404 FF7F0000FF7FE07F0000E07FFF7F000000000000E07FFF7FE07F0000E07F0000 2405 E07FFF7F0000FF7FE07F0000FF7FFF7F00000000FF7FFF7FFF7FFF7FFF7F0000 2406 FF7F000000000000000000000000FF7F00000000000000000000FF7FFF7FFF7F 2407 0000FF7FFF7FFF7FFF7F0000000000000000000000000000E07FFF7F0000FF7F 2408 0000FF7FE07FFF7F0000FF7FE07F000000000000FF7FE07FFF7F00000000E07F 2409 FF7FE07F0000E07FFF7F00000000FF7F00000000FF7FFF7F0000FF7FFF7F0000 2410 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 2411 0000FF7FFF7FFF7FFF7F0000000000000000000000000000FF7FE07F00000000 2412 FF7FE07FFF7FE07F0000E07FFF7F000000000000E07FFF7FE07F0000E07FFF7F 2413 E07FFF7F0000FF7FE07F0000FF7FFF7F00000000FF7FFF7F0000FF7FFF7F0000 2414 FF7F000000000000FF7F00000000FF7F00000000000000000000FF7F00000000 2415 000000000000FF7FFF7F0000000000000000000000000000E07FFF7F0000FF7F 2416 E07FFF7FE07FFF7F0000FF7FE07F000000000000FF7FE07FFF7FE07FFF7FE07F 2417 FF7FE07FFF7FE07FFF7F00000000FF7F00000000000000000000000000000000 2418 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 2419 0000FF7FFF7FFF7FFF7F0000000000000000000000000000FF7FE07FFF7FE07F 2420 FF7FE07FFF7FE07FFF7FE07FFF7F000000000000000000000000000000000000 2421 000000000000000000000000FF7FFF7F00000000FF7FFF7F0000FF7FFF7F0000 2422 FF7F00000000FF7F000000000000FF7F00000000000000000000FF7FFF7FFF7F 2423 0000FF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 2424 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2425 0000FF7F00000000FF7F00000000000000000000FF7FFF7F0000FF7FFF7F0000 2426 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 2427 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000FF7FE07FFF7F 2428 E07F000000000000000000000000000000000000000000000000FF7F0000FF7F 2429 0000FF7FFF7FFF7FFF7F0000FF7F000000000000FF7FFF7FFF7FFF7FFF7F0000 2430 0000000000000000000000000000000000000000000000000000FF7FFF7FFF7F 2431 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 2432 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2433 0000FF7FFF7FFF7FFF7F00000000000000000000FF7FFF7FFF7FFF7FFF7FFF7F 2434 FF7F000000000000000000000000000000000000000000000000000000000000 2435 0000000000000000000000000000000000000000000000000000000000000000 2436 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2437 0000000000000000000000000000000000000000000000000000000000000000 2438 0000000000000000000000000000000000000000000000000000000000000000 2439 0000000000000000000000000000000000000000000000000000000000000000 2440 0000000000000000000000000000000000000000000000000000FF7F00000000 2441 0000000000000000000000000000000000000000000000000000000000000000 2442 0000000000000000000000000000000000000000000000000000000000000000 2443 0000000000000000000000000000000000000000000000000000000000000000 2444 0000000000000000000000000000000000000000000000000000000000000000 2445 0000000000000000000000000000000000000000000000000000000000000000 2446 0000000000000000000000000000000000000000000000000000000000000000 2447 0000000000000000000000000000000000000000000000000000000000000000 2448 0000000000000000000000000000000000000000000000000000000000000000 2449 0000000000000000000000000000000000000000000000000000000000000000 2450 0000000000000000000000000000000000000000E07FFF7FE07FFF7FE07FFF7F 2451 E07FFF7FE07FFF7FE07F000000000000000000000000E07F1863E07F1863E07F 2452 1863E07F1863E07F000000000000000000000000000000000000000000000000 2453 000000000000000000000000000000000000000000000000E07FFF7FE07FFF7F 2454 E07FFF7FE07FFF7FE07FFF7FE07F000000000000FF7FE07FFF7FE07F00000000 2455 00000000FF7FE07FFF7F00000000000000000000E07F0000E07F1863E07F1863 2456 E07F1863E07F1863E07F0000FF7FFF7F00000000000000000000FF7FFF7FFF7F 2457 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000FF7FE07FFF7FE07F 2458 000000000000E07FFF7FE07FFF7F000000000000E07FFF7FE07F0000E07FFF7F 2459 E07FFF7F0000FF7FE07F0000FF7FFF7F00000000FF7FE07F0000E07F1863E07F 2460 1863E07F1863E07F1863E07F0000FF7F00000000000000000000FF7F00000000 2461 00000000FF7FFF7FFF7F0000000000000000000000000000E07FFF7FE07F0000 2462 E07FFF7FE07F0000E07FFF7FE07F000000000000FF7FE07F0000E07FFF7FE07F 2463 FF7FE07FFF7F0000FF7F00000000FF7F00000000E07FFF7F0000000000000000 2464 0000000000000000000000000000FF7F00000000000000000000FF7FFF7FFF7F 2465 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000FF7FE07F0000E07F 2466 FF7FE07FFF7FE07F0000E07FFF7F000000000000E07FFF7F0000FF7FE07FFF7F 2467 E07FFF7FE07F0000E07F0000FF7FFF7F00000000FF7FE07F0000FF7F0000FF7F 2468 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000FF7F00000000 2469 0000000000000000FF7F0000000000000000000000000000E07FFF7F0000FF7F 2470 E07FFF7FE07FFF7F0000FF7FE07F000000000000FF7FE07FFF7F0000FF7FE07F 2471 FF7FE07F0000E07FFF7F00000000FF7F00000000E07FFF7F0000FF7F0000FF7F 2472 FF7FFF7F000000000000FF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 2473 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000FF7FE07F0000E07F 2474 FF7FE07FFF7FE07F0000E07FFF7F000000000000E07FFF7FE07FFF7F00000000 2475 00000000E07FFF7FE07F0000FF7FFF7F00000000FF7FE07F0000FF7F0000FF7F 2476 FF7F0000FF7FFF7FFF7F0000FF7FFF7F00000000000000000000FF7F00000000 2477 0000000000000000FF7F0000000000000000000000000000E07FFF7FE07F0000 2478 E07FFF7FE07F0000E07FFF7FE07F000000000000FF7FE07FFF7FE07FFF7FE07F 2479 FF7FE07FFF7FE07FFF7F00000000FF7F000000000000FF7F0000FF7F0000FF7F 2480 0000FF7FFF7FFF7FFF7FFF7F0000FF7F00000000000000000000FF7FFF7FFF7F 2481 FF7FFF7FFF7FFF7FFF7F0000000000000000000000000000FF7FE07FFF7FE07F 2482 000000000000E07FFF7FE07FFF7F000000000000000000000000000000000000 2483 000000000000000000000000FF7FFF7F00000000104200000000FF7F0000FF7F 2484 0000FF7FFF7FFF7FFF7FFF7F0000FF7F00000000000000000000FF7F00000000 2485 0000FF7F00000000FF7F00000000000000000000000000000000000000000000 2486 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2487 0000FF7F00000000FF7F00000000000000000000000000000000FF7F0000FF7F 2488 0000FF7FFF7FFF7FFF7FFF7F0000FF7F00000000000000000000FF7FFF7FFF7F 2489 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000FF7FE07FFF7F 2490 E07F000000000000000000000000000000000000000000000000FF7F0000FF7F 2491 0000FF7FFF7FFF7FFF7F0000FF7F000000000000000000000000FF7F0000FF7F 2492 FF7F0000FF7FFF7FFF7F0000FF7FFF7F00000000000000000000FF7F00000000 2493 FF7F000000000000FF7F00000000000000000000000000000000000000000000 2494 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2495 0000FF7FFF7FFF7FFF7F00000000000000000000000000000000FF7F0000FF7F 2496 FF7FFF7F000000000000FF7FFF7FFF7F00000000000000000000FF7FFF7FFF7F 2497 FF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000000000000000 2498 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2499 0000000000000000000000000000000000000000000000000000FF7F0000FF7F 2500 FF7FFF7FFF7FFF7FFF7FFF7FFF7FFF7F00000000000000000000000000000000 2501 0000000000000000000000000000000000000000000000000000000000000000 2502 0000000000000000000000000000000000000000000000000000FF7F00000000 2503 0000000000000000000000000000000000000000000000000000FF7F00000000 2504 0000000000000000000000000000000000000000000000000000000000000000 2505 0000000000000000000000000000000000000000000000000000000000000000 2506 0000000000000000000000000000000000000000000000000000000000000000 2507 0000000000000000000000000000000000000000000000000000000000000000 2508 0000000000000000000000000000000000000000000000000000000000000000 2509 0000000000000000000000000000000000000000000000000000000000000000 2510 0000000000000000000000000000000000000000000000000000000000000000 2511 0000000000000000000000000000000000000000000000000000000000000000 2512 0000000000000000000000000000000000000000000000000000000000000000 2513 0000000000000000000000000000000000000000000000000000000000000000 2514 0000000000000000000000000000000000000000000000000000000000000000 2515 0000000000000000000000000000000000000000000000000000000000000000 2516 0000000000001863000000000000000000000000000000000000000000000000 2517 0000000000001863000000000000000000000000000000000000000000000000 2518 0000000000000000000000000000000000000000000000000000000000000000 2519 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2520 E07FE07F00000000186300000000000000000000000000000000E07FE07FE07F 2521 E07FE07F00000000186300000000000000000000000000000000000000000000 2522 00000000000000000000000000000000000000000000000000000000E07FE07F 2523 E07F000000000000000000000000000000000000000000000000E07F00000000 2524 0000E07F00000042000018630000000000000000000000000000E07F00000000 2525 0000E07F00000042000018630000000000000000000000000000000000000000 2526 00000000000000000000000000000000000000000000000000000000E07FE07F 2527 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2528 E07FE07F00000042004200000000000000000000000000000000000000000000 2529 0000E07F00000042004200000000000000000000000000000000000000000000 2530 0000000000000000000000000000000000000000000000000000000000000000 2531 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2532 E07FE07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 2533 0000000000000042004200000000000000000000000000000000000000000000 2534 0000000000000000000000000000000000000000000000000000000000000000 2535 0000000000000000000000000000000000000000000000000000000000000000 2536 00000000000000420042000000000000000000000000E07F000000000000E07F 2537 0000186300000042004200000000000000000000000000000000000000000000 2538 0000000000000000000000000000000000000000000000000000000000000000 2539 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2540 E07FE07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 2541 0000186300000042004200000000000000000000000000000000000000000000 2542 00000000000000000000000000000000000000000000000000000000E07FE07F 2543 E07F000000000000000000000000000000000000000000000000E07F00000000 2544 0000E07F000000420042000000000000000000000000E07FE07FE07FE07FE07F 2545 0000000000000042004200000000000000000000000000000000000000000000 2546 00000000000000000000000000000000000000000000000000000000E07FE07F 2547 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2548 E07FE07F00000042004200000000000000000000000000000000000000000000 2549 0000104200000042004200000000000000000000000000000000000000000000 2550 0000000000000000000000000000000000000000000000000000000000000000 2551 0000000000000000000000000000000000000000000000000000E07FE07FE07F 2552 E07FE07F00000042004200000000000000000000000000000000FF7FFF7FFF7F 2553 1042104200000042004200000000000000000000000000000000000000000000 2554 0000000000000000000000000000000000000000000000000000000000000000 2555 0000000000000000000000000000000000000000000000000000000000000000 2556 0000000000000000004200000000000000000000000000000000000000000000 2557 0000000000000000004200000000000000000000000000000000000000000000 2558 0000000000000000000000000000000000000000000000000000000000000000 2559 0000000000000000000000000000000000000000000000001042104210421042 2560 1042104210420000000000000000000000000000000000001042104210421042 2561 1042104210420000000000000000000000000000000000000000000000000000 2562 0000000000000000000000000000000000000000E07FE07FE07F000000000000 2563 00000000000000000000000000000000000000000000000000000000E07F0042 2564 E07F0042E07F004200000000000000000000000000000000000000000042E07F 2565 0042E07F0042E07F000000000000000000000000000000000000000000000000 2566 0000000000000000000000000000000000000000E07FE07F0000000000000000 2567 0000000000000000000000000000000000000000000000000000000000000000 2568 0042E07F0042E07F004200000000000000000000000000000000000000000000 2569 E07F0042E07F0042E07F00000000000000000000000000000000000000000000 2570 0000000000000000000000000000000000000000000000000000000000000000 2571 0000000000000000000000000000000000000000000000000000000000001042 2572 0000000000000000000000000000000000000000000000000000000000001042 4412 0000000000003600000028000000400000004000000001002000000000000040 4413 0000000000000000000000000000000000000000000000000000000000000000 4414 0000000000000000000000000000000000000000000000000000000000000000 4415 0000000000000000000000000000000000000000000000000000000000000000 4416 0000000000000000000000000000000000000000000000000000000000000000 4417 0000000000000000000000000000000000000000000000000000000000000000 4418 0000000000000000000000000000000000000000000000000000000000000000 4419 0000000000000000000000000000000000000000000000000000000000000000 4420 0000000000000000000000000000000000000000000000000000000000000000 4421 000000000000000000000000000000000000000000000000000000FFFF00C6C6 4422 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 4423 0000000000000000000000000000000000000000000000000000000000000000 4424 0000000000000000000000000000000000000000000000000000000000000000 4425 0000000000000000000000000000000000000000000000000000000000000000 4426 0000000000000000000000000000000000000000000000000000000000000000 4427 0000000000000000000000000000000000000000000000000000000000000000 4428 0000000000000000000000000000000000000000000000000000000000000000 4429 0000000000000000000000000000000000000000000000FFFF000000000000FF 4430 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 4431 FF0000000000FFFFFF00FFFFFF00000000000000000000000000000000000000 4432 0000000000000000000000000000000000000000000000000000000000000000 4433 0000000000000000000000000000000000000000000000000000000000000000 4434 0000000000000000000000000000000000000000000000000000000000000000 4435 0000000000000000000000000000000000000000000000000000000000000000 4436 0000000000000000000000000000000000000000000000000000000000000000 4437 00000000000000000000000000000000000000000000FFFFFF0000FFFF000000 4438 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 4439 C60000FFFF0000000000FFFFFF00000000000000000000000000000000000000 4440 0000000000000000000000000000000000000000000000000000000000000000 4441 0000000000000000000000000000000000000000000000000000000000000000 4442 0000000000000000000000000000000000000000000000000000000000000000 4443 0000000000000000000000000000000000000000000000000000000000000000 4444 0000000000000000000000000000000000000000000000000000000000000000 4445 0000000000000000000000000000000000000000000000FFFF00FFFFFF000000 4446 0000000000000000000000000000000000000000000000000000000000000000 4447 00000000000000000000FFFFFF00000000000000000000000000000000000000 4448 0000000000000000000000000000000000000000000000000000000000000000 4449 0000000000000000000000000000000000000000000000000000000000000000 4450 0000000000000000000000000000000000000000000000000000000000000000 4451 0000000000000000000000000000000000000000000000000000000000000000 4452 0000000000000000000000000000000000000000000000000000000000000000 4453 00000000000000000000000000000000000000000000FFFFFF0000FFFF000000 4454 0000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4455 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4456 0000000000000000000000000000000000000000000000000000000000000000 4457 0000000000000000000000000000000000000000000000000000000000000000 4458 0000000000000000000000000000000000000000000000000000000000000000 4459 0000000000000000000000000000000000000000000000000000000000000000 4460 0000000000000000000000000000000000000000000000000000000000000000 4461 0000000000000000000000000000000000000000000000FFFF00FFFFFF000000 4462 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4463 FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4464 0000000000000000000000000000000000000000000000000000000000000000 4465 0000000000000000000000000000000000000000000000000000000000000000 4466 0000000000000000000000000000000000000000000000000000000000000000 4467 0000000000000000000000000000000000000000000000000000000000000000 4468 0000000000000000000000000000000000000000000000000000000000000000 4469 00000000000000000000000000000000000000000000FFFFFF0000FFFF000000 4470 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4471 FF000000000000000000FFFFFF00000000000000000000000000000000000000 4472 0000000000000000000000000000000000000000000000000000000000000000 4473 0000000000000000000000000000000000000000000000000000000000000000 4474 0000000000000000000000000000000000000000000000000000000000000000 4475 0000000000000000000000000000000000000000000000000000000000000000 4476 0000000000000000000000000000000000000000000000000000000000000000 4477 0000000000000000000000000000000000000000000000000000FFFFFF000000 4478 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF000000 4479 0000FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4480 0000000000000000000000000000000000000000000000000000000000000000 4481 0000000000000000000000000000000000000000000000000000000000000000 4482 0000000000000000000000000000000000000000000000000000000000000000 4483 0000000000000000000000000000000000000000000000000000000000000000 4484 0000000000000000000000000000000000000000000000000000000000000000 4485 0000000000000000000000000000000000000000000084848400000000000000 4486 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF0000000000FFFF 4487 FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4488 0000000000000000000000000000000000000000000000000000000000000000 4489 0000000000000000000000000000000000000000000000000000000000000000 4490 0000000000000000000000000000000000000000000000000000000000000000 4491 0000000000000000000000000000000000000000000000000000000000000000 4492 0000000000000000000000000000000000000000000000000000000000000000 4493 0000000000000000000000000000000000000000000000000000000000000000 4494 0000FFFFFF0000000000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFF 4495 FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4496 0000000000000000000000000000000000000000000000000000000000000000 4497 0000000000000000000000000000000000000000000000000000000000000000 4498 0000000000000000000000000000000000000000000000000000000000000000 4499 0000000000000000000000000000000000000000000000000000000000000000 4500 0000000000000000000000000000000000000000000000000000000000000000 4501 0000000000000000000000000000000000000000000000000000000000000000 4502 0000FFFFFF0000000000FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF 4503 FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4504 0000000000000000000000000000000000000000000000000000000000000000 4505 0000000000000000000000000000000000000000000000000000000000000000 4506 0000000000000000000000000000000000000000000000000000000000000000 4507 0000000000000000000000000000000000000000000000000000000000000000 4508 0000000000000000000000000000000000000000000000000000000000000000 4509 0000000000000000000000000000000000000000000000000000000000000000 4510 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4511 FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4512 0000000000000000000000000000000000000000000000000000000000000000 4513 0000000000000000000000000000000000000000000000000000000000000000 4514 0000000000000000000000000000000000000000000000000000000000000000 4515 0000000000000000000000000000000000000000000000000000000000000000 4516 0000000000000000000000000000000000000000000000000000000000000000 4517 0000000000000000000000000000000000000000000000000000000000000000 4518 0000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4519 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4520 0000000000000000000000000000000000000000000000000000000000000000 4521 0000000000000000000000000000000000000000000000000000000000000000 4522 0000000000000000000000000000000000000000000000000000000000000000 4523 0000000000000000000000000000000000000000000000000000000000000000 4524 0000000000000000000000000000000000000000000000000000000000000000 4525 0000000000000000000000000000000000000000000000000000000000000000 4526 0000FFFFFF000000000000000000000000000000000000000000000000000000 4527 0000000000000000000000000000000000000000000000000000000000000000 4528 0000000000000000000000000000000000000000000000000000000000000000 4529 0000000000000000000000000000000000000000000000000000000000000000 4530 0000000000000000000000000000000000000000000000000000000000000000 4531 0000000000000000000000000000000000000000000000000000000000000000 4532 0000000000000000000000000000000000000000000000000000000000000000 4533 0000000000000000000000000000000000000000000000000000000000000000 4534 0000000000000000000000000000000000000000000000000000000000000000 4535 0000000000000000000000000000000000000000000000000000000000000000 4536 0000000000000000000000000000000000000000000000000000000000000000 4537 0000000000000000000000000000000000000000000000000000000000000000 4538 0000000000000000000000000000000000000000000000000000000000000000 4539 0000000000000000000000000000000000000000000000000000000000000000 4540 0000000000000000000000000000000000000000000000000000000000000000 4541 0000000000000000000000000000000000000000000000000000000000000000 4542 0000000000000000000000000000000000000000000000000000000000000000 4543 0000000000000000000000000000000000000000000000000000000000000000 4544 0000000000000000000000000000000000000000000000000000000000000000 4545 0000000000000000000000000000000000000000000000000000000000000000 4546 0000000000000000000000000000000000000000000000000000000000000000 4547 0000000000000000000000000000000000000000000000000000000000000000 4548 0000000000000000000000000000000000000000000000000000000000000000 4549 0000000000000000000000000000000000000000000000000000000000000000 4550 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4551 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4552 0000000000000000000000000000000000000000000000000000000000000000 4553 0000000000000000000000000000000000000000000000000000000000000000 4554 0000000000000000000000000000000000000000000000000000000000000000 4555 0000000000000000000000000000000000000000000000FFFF00FFFFFF0000FF 4556 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 4557 FF00000000000000000000000000000000000000000000000000000000000000 4558 0000000000000000000000000000FFFFFF000000000000000000000000000000 4559 0000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4560 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4561 FF000000000000000000000000000000000000000000000000000000000000FF 4562 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 4563 FF00FFFFFF0000FFFF00000000000000000000000000FFFFFF0000FFFF00FFFF 4564 FF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF000000000000FFFF00FFFF 4565 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 4566 FF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4567 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4568 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4569 FF0000000000000000000000000000000000000000000000000000000000FFFF 4570 FF0000FFFF000000000000FFFF00FFFFFF0000FFFF00FFFFFF00000000000000 4571 000000FFFF00FFFFFF0000000000000000000000000000FFFF00FFFFFF0000FF 4572 FF000000000000FFFF00FFFFFF0000FFFF000000000000000000FFFFFF0000FF 4573 FF0000000000FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF 4574 FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 4575 00000000000000000000FFFFFF00000000000000000000000000000000000000 4576 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4577 FF000000000000000000000000000000000000000000000000000000000000FF 4578 FF00FFFFFF0000000000FFFFFF0000FFFF00FFFFFF0000000000FFFFFF000000 4579 0000FFFFFF0000FFFF00000000000000000000000000FFFFFF0000FFFF00FFFF 4580 FF0000000000FFFFFF0000FFFF000000000000FFFF000000000000FFFF00FFFF 4581 FF000000000000000000FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF 4582 FF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4583 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4584 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4585 FF0000000000000000000000000000000000000000000000000000000000FFFF 4586 FF0000FFFF000000000000FFFF00FFFFFF0000000000FFFFFF0000FFFF000000 4587 000000FFFF00FFFFFF0000000000000000000000000000FFFF00FFFFFF0000FF 4588 FF000000000000FFFF000000000000FFFF00FFFFFF0000000000FFFFFF0000FF 4589 FF0000000000FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF00FFFF 4590 FF00FFFFFF00FFFFFF0000000000FFFFFF000000000000000000000000000000 4591 00000000000000000000FFFFFF00000000000000000000000000000000000000 4592 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4593 FF000000000000000000000000000000000000000000000000000000000000FF 4594 FF00FFFFFF0000000000FFFFFF0000000000FFFFFF0000FFFF00FFFFFF000000 4595 0000FFFFFF0000FFFF00000000000000000000000000FFFFFF0000FFFF00FFFF 4596 FF00000000000000000000FFFF00FFFFFF0000FFFF000000000000FFFF00FFFF 4597 FF000000000000000000FFFFFF000000000000000000FFFFFF00FFFFFF000000 4598 0000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4599 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4600 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4601 FF0000000000000000000000000000000000000000000000000000000000FFFF 4602 FF0000FFFF000000000000000000FFFFFF0000FFFF00FFFFFF0000FFFF000000 4603 000000FFFF00FFFFFF0000000000000000000000000000FFFF00FFFFFF0000FF 4604 FF000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFFFF0000FF 4605 FF0000000000FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF000000 4606 0000FFFFFF00FFFFFF0000000000FFFFFF00000000000000000000000000FFFF 4607 FF000000000000000000FFFFFF00000000000000000000000000000000000000 4608 0000FFFFFF000000000000000000000000000000000000000000FFFFFF00FFFF 4609 FF000000000000000000000000000000000000000000000000000000000000FF 4610 FF00FFFFFF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 4611 0000FFFFFF0000FFFF00000000000000000000000000FFFFFF0000FFFF00FFFF 4612 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 4613 FF000000000000000000FFFFFF00000000000000000000000000000000000000 4614 0000000000000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4615 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4616 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4617 FF0000000000000000000000000000000000000000000000000000000000FFFF 4618 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 4619 FF0000FFFF00FFFFFF0000000000000000000000000000000000000000000000 4620 0000000000000000000000000000000000000000000000000000000000000000 4621 000000000000FFFFFF00FFFFFF000000000000000000FFFFFF00FFFFFF000000 4622 0000FFFFFF00FFFFFF0000000000FFFFFF000000000000000000FFFFFF000000 4623 00000000000000000000FFFFFF00000000000000000000000000000000000000 4624 0000FFFFFF00FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4625 FF00000000000000000000000000000000000000000000000000000000000000 4626 0000000000000000000000000000000000000000000000000000000000000000 4627 0000000000000000000000000000000000000000000000000000000000000000 4628 0000FFFFFF0000000000FFFFFF0000000000FFFFFF000000000000000000FFFF 4629 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF000000 4630 0000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4631 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4632 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4633 FF00000000000000000000000000000000000000000000000000000000000000 4634 0000FFFFFF0000FFFF00FFFFFF0000FFFF000000000000000000000000000000 4635 0000000000000000000000000000000000000000000000000000000000000000 4636 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4637 FF0000000000FFFFFF00000000000000000000000000FFFFFF00FFFFFF00FFFF 4638 FF00FFFFFF00FFFFFF0000000000000000000000000000000000000000000000 4639 0000000000000000000000000000000000000000000000000000000000000000 4640 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4641 FF00000000000000000000000000000000000000000000000000000000000000 4642 0000000000000000000000000000000000000000000000000000000000000000 4643 0000000000000000000000000000000000000000000000000000000000000000 4644 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4645 FF000000000000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 4646 FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000000000000000000000 4647 0000000000000000000000000000000000000000000000000000000000000000 4648 0000000000000000000000000000000000000000000000000000000000000000 4649 0000000000000000000000000000000000000000000000000000000000000000 4650 0000000000000000000000000000000000000000000000000000000000000000 4651 0000000000000000000000000000000000000000000000000000000000000000 4652 0000FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4653 0000000000000000000000000000000000000000000000000000000000000000 4654 0000000000000000000000000000000000000000000000000000000000000000 4655 0000000000000000000000000000000000000000000000000000000000000000 4656 0000000000000000000000000000000000000000000000000000000000000000 4657 0000000000000000000000000000000000000000000000000000000000000000 4658 0000000000000000000000000000000000000000000000000000000000000000 4659 0000000000000000000000000000000000000000000000000000000000000000 4660 0000FFFFFF000000000000000000000000000000000000000000000000000000 4661 0000000000000000000000000000000000000000000000000000000000000000 4662 0000000000000000000000000000000000000000000000000000000000000000 4663 0000000000000000000000000000000000000000000000000000000000000000 4664 0000000000000000000000000000000000000000000000000000000000000000 4665 0000000000000000000000000000000000000000000000000000000000000000 4666 0000000000000000000000000000000000000000000000000000000000000000 4667 0000000000000000000000000000000000000000000000000000000000000000 4668 0000000000000000000000000000000000000000000000000000000000000000 4669 0000000000000000000000000000000000000000000000000000000000000000 4670 0000000000000000000000000000000000000000000000000000000000000000 4671 0000000000000000000000000000000000000000000000000000000000000000 4672 0000000000000000000000000000000000000000000000000000000000000000 4673 0000000000000000000000000000000000000000000000000000000000000000 4674 0000000000000000000000000000000000000000000000000000000000000000 4675 0000000000000000000000000000000000000000000000000000000000000000 4676 0000000000000000000000000000000000000000000000000000000000000000 4677 0000000000000000000000000000000000000000000000000000000000000000 4678 0000000000000000000000000000000000000000000000000000000000000000 4679 0000000000000000000000000000000000000000000000FFFF00FFFFFF0000FF 4680 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 4681 FF0000000000000000000000000000000000000000000000000000FFFF00C6C6 4682 C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF000000 4683 0000000000000000000000000000000000000000000000000000000000000000 4684 0000000000000000000000000000000000000000000000000000000000000000 4685 00000000000000000000000000000000000000000000000000000000000000FF 4686 FF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FF 4687 FF00FFFFFF0000FFFF00000000000000000000000000FFFFFF0000FFFF00FFFF 4688 FF0000FFFF0000000000000000000000000000000000FFFFFF0000FFFF00FFFF 4689 FF00000000000000000000000000000000000000000000FFFF000000000000FF 4690 FF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FF 4691 FF0000000000FFFFFF00FFFFFF00000000000000000000000000000000000000 4692 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4693 FF0000000000000000000000000000000000000000000000000000000000FFFF 4694 FF0000FFFF00FFFFFF0000FFFF0000000000000000000000000000FFFF00FFFF 4695 FF0000FFFF00FFFFFF0000000000000000000000000000FFFF00FFFFFF0000FF 4696 FF000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFFFF0000FF 4697 FF0000000000FFFFFF00FFFFFF000000000000000000FFFFFF0000FFFF000000 4698 000000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6C60000FFFF00C6C6 4699 C60000FFFF0000000000FFFFFF00000000000000000000000000000000000000 4700 0000FFFFFF0000000000000000000000000000000000FFFFFF00FFFFFF00FFFF 4701 FF000000000000000000000000000000000000000000000000000000000000FF 4702 FF00FFFFFF0000FFFF000000000000FFFF00FFFFFF0000FFFF000000000000FF 4703 FF00FFFFFF0000FFFF00000000000000000000000000FFFFFF0000FFFF000000 4704 000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000000000FFFF 4705 FF000000000000000000FFFFFF00000000000000000000FFFF00FFFFFF000000 4706 0000000000000000000000000000000000000000000000000000000000000000 4707 00000000000000000000FFFFFF00000000000000000000000000000000000000 4708 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4709 FF0000000000000000000000000000000000000000000000000000000000FFFF 4710 FF0000FFFF000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 4711 000000FFFF00FFFFFF0000000000000000000000000000FFFF00FFFFFF000000 4712 0000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000000000FF 4713 FF0000000000FFFFFF00FFFFFF000000000000000000FFFFFF0000FFFF000000 4714 0000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4715 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4716 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 4717 FF000000000000000000000000000000000000000000000000000000000000FF 4718 FF00FFFFFF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF000000 4719 0000FFFFFF0000FFFF00000000000000000000000000FFFFFF0000FFFF00FFFF 4720 FF0000000000FFFFFF0000FFFF00FFFFFF0000FFFF000000000000FFFF00FFFF 4721 FF000000000000000000FFFFFF00000000000000000000FFFF00FFFFFF000000 4722 0000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF0000000000000000000000 4723 0000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4724 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4725 FF0000000000000000000000000000000000000000000000000000000000FFFF 4726 FF0000FFFF000000000000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF000000 4727 000000FFFF00FFFFFF0000000000000000000000000000FFFF00FFFFFF0000FF 4728 FF00FFFFFF000000000000000000000000000000000000FFFF00FFFFFF0000FF 4729 FF0000000000FFFFFF00FFFFFF000000000000000000FFFFFF0000FFFF000000 4730 0000FFFFFF0000000000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFF 4731 FF0000000000FFFFFF00FFFFFF00000000000000000000000000000000000000 4732 0000FFFFFF00000000000000000000000000000000000000000000000000FFFF 4733 FF000000000000000000000000000000000000000000000000000000000000FF 4734 FF00FFFFFF0000FFFF000000000000FFFF00FFFFFF0000FFFF000000000000FF 4735 FF00FFFFFF0000FFFF00000000000000000000000000FFFFFF0000FFFF00FFFF 4736 FF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFFFF0000FFFF00FFFF 4737 FF000000000000000000FFFFFF00000000000000000000000000FFFFFF000000 4738 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4739 FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4740 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4741 FF0000000000000000000000000000000000000000000000000000000000FFFF 4742 FF0000FFFF00FFFFFF0000FFFF0000000000000000000000000000FFFF00FFFF 4743 FF0000FFFF00FFFFFF0000000000000000000000000000000000000000000000 4744 0000000000000000000000000000000000000000000000000000000000000000 4745 000000000000FFFFFF00FFFFFF00000000000000000084848400000000000000 4746 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4747 FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4748 0000FFFFFF00000000000000000000000000FFFFFF000000000000000000FFFF 4749 FF00000000000000000000000000000000000000000000000000000000000000 4750 0000000000000000000000000000000000000000000000000000000000000000 4751 0000000000000000000000000000000000000000000000000000000000000000 4752 0000FFFFFF0000000000FFFFFF0000000000FFFFFF000000000000000000FFFF 4753 FF00000000000000000000000000000000000000000000000000000000000000 4754 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4755 FF00FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4756 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4757 FF00000000000000000000000000000000000000000000000000000000000000 4758 0000FFFFFF0000FFFF00FFFFFF0000FFFF000000000000000000000000000000 4759 0000000000000000000000000000000000000000000000000000000000000000 4760 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4761 FF0000000000FFFFFF0000000000000000000000000000000000000000000000 4762 0000FFFFFF0000000000FFFFFF00FFFFFF0000000000FFFFFF00FFFFFF00FFFF 4763 FF0000000000FFFFFF00FFFFFF00000000000000000000000000000000000000 4764 0000FFFFFF000000000000000000FFFFFF00000000000000000000000000FFFF 4765 FF00000000000000000000000000000000000000000000000000000000000000 4766 0000000000000000000000000000000000000000000000000000000000000000 4767 0000000000000000000000000000000000000000000000000000000000000000 4768 0000FFFFFF0000000000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFF 4769 FF00000000000000000000000000000000000000000000000000000000000000 4770 0000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF0000000000000000000000 4771 0000FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4772 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4773 FF00000000000000000000000000000000000000000000000000000000000000 4774 0000000000000000000000000000000000000000000000000000000000000000 4775 0000000000000000000000000000000000000000000000000000000000000000 4776 0000FFFFFF0000000000FFFFFF00000000000000000000000000000000000000 4777 0000000000000000000000000000000000000000000000000000000000000000 4778 0000FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF 4779 FF00FFFFFF00FFFFFF00FFFFFF00000000000000000000000000000000000000 4780 0000000000000000000000000000000000000000000000000000000000000000 4781 0000000000000000000000000000000000000000000000000000000000000000 4782 0000000000000000000000000000000000000000000000000000000000000000 4783 0000000000000000000000000000000000000000000000000000000000000000 4784 0000FFFFFF000000000000000000000000000000000000000000000000000000 4785 0000000000000000000000000000000000000000000000000000000000000000 4786 0000FFFFFF000000000000000000000000000000000000000000000000000000 4787 0000000000000000000000000000000000000000000000000000000000000000 4788 0000000000000000000000000000000000000000000000000000000000000000 4789 0000000000000000000000000000000000000000000000000000000000000000 4790 0000000000000000000000000000000000000000000000000000000000000000 4791 0000000000000000000000000000000000000000000000000000000000000000 4792 0000000000000000000000000000000000000000000000000000000000000000 4793 0000000000000000000000000000000000000000000000000000000000000000 4794 0000000000000000000000000000000000000000000000000000000000000000 4795 0000000000000000000000000000000000000000000000000000000000000000 4796 0000000000000000000000000000000000000000000000000000000000000000 4797 0000000000000000000000000000000000000000000000000000000000000000 4798 0000000000000000000000000000000000000000000000000000000000000000 4799 0000000000000000000000000000000000000000000000000000000000000000 4800 0000000000000000000000000000000000000000000000000000000000000000 4801 0000000000000000000000000000000000000000000000000000000000000000 4802 0000000000000000000000000000000000000000000000000000000000000000 4803 0000000000000000000000000000000000000000000000000000000000000000 4804 0000000000000000000000000000000000000000000000000000000000000000 4805 0000000000000000000000000000000000000000000000000000000000000000 4806 0000000000000000000000000000000000000000000000000000000000000000 4807 0000000000000000000000000000000000000000000000000000000000000000 4808 0000000000000000000000000000000000000000000000000000000000000000 4809 0000000000000000000000000000000000000000000000000000000000000000 4810 0000000000000000000000000000000000000000000000000000C6C6C6000000 4811 0000000000000000000000000000000000000000000000000000000000000000 4812 0000000000000000000000000000000000000000000000000000C6C6C6000000 4813 0000000000000000000000000000000000000000000000000000000000000000 4814 0000000000000000000000000000000000000000000000000000000000000000 4815 0000000000000000000000000000000000000000000000000000000000000000 4816 0000000000000000000000000000000000000000000000000000000000000000 4817 0000000000000000000000000000000000000000000000000000000000000000 4818 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000C6C6 4819 C600000000000000000000000000000000000000000000000000000000000000 4820 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF000000000000000000C6C6 4821 C600000000000000000000000000000000000000000000000000000000000000 4822 0000000000000000000000000000000000000000000000000000000000000000 4823 0000000000000000000000000000000000000000000000000000000000000000 4824 00000000000000FFFF0000FFFF0000FFFF000000000000000000000000000000 4825 0000000000000000000000000000000000000000000000000000000000000000 4826 000000FFFF0000000000000000000000000000FFFF0000000000008484000000 4827 0000C6C6C6000000000000000000000000000000000000000000000000000000 4828 000000FFFF0000000000000000000000000000FFFF0000000000008484000000 4829 0000C6C6C6000000000000000000000000000000000000000000000000000000 4830 0000000000000000000000000000000000000000000000000000000000000000 4831 0000000000000000000000000000000000000000000000000000000000000000 4832 00000000000000FFFF0000FFFF00000000000000000000000000000000000000 4833 0000000000000000000000000000000000000000000000000000000000000000 4834 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4835 8400000000000000000000000000000000000000000000000000000000000000 4836 00000000000000000000000000000000000000FFFF0000000000008484000084 4837 8400000000000000000000000000000000000000000000000000000000000000 4838 0000000000000000000000000000000000000000000000000000000000000000 4839 0000000000000000000000000000000000000000000000000000000000000000 4840 0000000000000000000000000000000000000000000000000000000000000000 4841 0000000000000000000000000000000000000000000000000000000000000000 4842 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4843 840000000000000000000000000000000000000000000000000000FFFF0000FF 4844 FF0000FFFF0000FFFF0000FFFF00000000000000000000000000008484000084 4845 8400000000000000000000000000000000000000000000000000000000000000 4846 0000000000000000000000000000000000000000000000000000000000000000 4847 0000000000000000000000000000000000000000000000000000000000000000 4848 0000000000000000000000000000000000000000000000000000000000000000 4849 0000000000000000000000000000000000000000000000000000000000000000 4850 0000000000000000000000000000000000000000000000000000008484000084 4851 840000000000000000000000000000000000000000000000000000FFFF000000 4852 0000000000000000000000FFFF0000000000C6C6C60000000000008484000084 4853 8400000000000000000000000000000000000000000000000000000000000000 4854 0000000000000000000000000000000000000000000000000000000000000000 4855 0000000000000000000000000000000000000000000000000000000000000000 4856 0000000000000000000000000000000000000000000000000000000000000000 4857 0000000000000000000000000000000000000000000000000000000000000000 4858 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4859 840000000000000000000000000000000000000000000000000000FFFF0000FF 4860 FF0000FFFF0000FFFF0000FFFF0000000000C6C6C60000000000008484000084 4861 8400000000000000000000000000000000000000000000000000000000000000 4862 0000000000000000000000000000000000000000000000000000000000000000 4863 0000000000000000000000000000000000000000000000000000000000000000 4864 00000000000000FFFF0000FFFF0000FFFF000000000000000000000000000000 4865 0000000000000000000000000000000000000000000000000000000000000000 4866 000000FFFF0000000000000000000000000000FFFF0000000000008484000084 4867 840000000000000000000000000000000000000000000000000000FFFF0000FF 4868 FF0000FFFF0000FFFF0000FFFF00000000000000000000000000008484000084 4869 8400000000000000000000000000000000000000000000000000000000000000 4870 0000000000000000000000000000000000000000000000000000000000000000 4871 0000000000000000000000000000000000000000000000000000000000000000 4872 00000000000000FFFF0000FFFF00000000000000000000000000000000000000 4873 0000000000000000000000000000000000000000000000000000000000000000 4874 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4875 8400000000000000000000000000000000000000000000000000000000000000 4876 0000000000000000000000000000000000008484840000000000008484000084 4877 8400000000000000000000000000000000000000000000000000000000000000 4878 0000000000000000000000000000000000000000000000000000000000000000 4879 0000000000000000000000000000000000000000000000000000000000000000 4880 0000000000000000000000000000000000000000000000000000000000000000 4881 0000000000000000000000000000000000000000000000000000000000000000 4882 000000FFFF0000FFFF0000FFFF0000FFFF0000FFFF0000000000008484000084 4883 8400000000000000000000000000000000000000000000000000000000000000 4884 0000FFFFFF00FFFFFF00FFFFFF00848484008484840000000000008484000084 4885 8400000000000000000000000000000000000000000000000000000000000000 4886 0000000000000000000000000000000000000000000000000000000000000000 4887 0000000000000000000000000000000000000000000000000000000000000000 4888 0000000000000000000000000000000000000000000000000000000000000000 4889 0000000000000000000000000000000000000000000000000000000000000000 4890 0000000000000000000000000000000000000000000000000000000000000084 4891 8400000000000000000000000000000000000000000000000000000000000000 4892 0000000000000000000000000000000000000000000000000000000000000084 4893 8400000000000000000000000000000000000000000000000000000000000000 4894 0000000000000000000000000000000000000000000000000000000000000000 4895 0000000000000000000000000000000000000000000000000000000000000000 4896 0000000000000000000000000000000000000000000000000000000000000000 4897 0000000000000000000000000000000000000000000000000000000000008484 4898 8400848484008484840084848400848484008484840084848400000000000000 4899 0000000000000000000000000000000000000000000000000000000000008484 4900 8400848484008484840084848400848484008484840084848400000000000000 4901 0000000000000000000000000000000000000000000000000000000000000000 4902 0000000000000000000000000000000000000000000000000000000000000000 4903 0000000000000000000000000000000000000000000000FFFF0000FFFF0000FF 4904 FF00000000000000000000000000000000000000000000000000000000000000 4905 0000000000000000000000000000000000000000000000000000000000000000 4906 00000000000000FFFF000084840000FFFF000084840000FFFF00008484000000 4907 0000000000000000000000000000000000000000000000000000000000000000 4908 0000000000000084840000FFFF000084840000FFFF000084840000FFFF000000 4909 0000000000000000000000000000000000000000000000000000000000000000 4910 0000000000000000000000000000000000000000000000000000000000000000 4911 0000000000000000000000000000000000000000000000FFFF0000FFFF000000 4912 0000000000000000000000000000000000000000000000000000000000000000 4913 0000000000000000000000000000000000000000000000000000000000000000 4914 00000000000000000000000000000084840000FFFF000084840000FFFF000084 4915 8400000000000000000000000000000000000000000000000000000000000000 4916 000000000000000000000000000000FFFF000084840000FFFF000084840000FF 4917 FF00000000000000000000000000000000000000000000000000000000000000 4918 0000000000000000000000000000000000000000000000000000000000000000 4919 0000000000000000000000000000000000000000000000000000000000000000 4920 0000000000000000000000000000000000000000000000000000000000000000 4921 0000000000000000000000000000000000000000000000000000000000000000 4922 0000000000000000000084848400000000000000000000000000000000000000 4923 0000000000000000000000000000000000000000000000000000000000000000 4924 0000000000000000000084848400000000000000000000000000000000000000 2573 4925 000000000000000000000000000000000000424D3E000000000000003E000000 2574 4926 2800000040000000400000000100010000000000000200000000000000000000 -
cprs/branches/foia-cprs/CPRS-Chart/dShared.pas
r459 r460 524 524 if(not assigned(FTIUObjects)) or (FRefreshObject = true) then 525 525 begin 526 FTIUObjects := TStringList.Create; 526 if(not assigned(FTIUObjects)) then 527 FTIUObjects := TStringList.Create; 527 528 FTIUObjects.Clear; 528 529 GetObjectList; -
cprs/branches/foia-cprs/CPRS-Chart/fARTAllgy.dfm
r459 r460 260 260 Height = 17 261 261 Caption = 'Marked On Chart' 262 Checked = True 263 State = cbChecked 262 264 TabOrder = 18 263 265 Visible = False … … 285 287 ItemTipColor = clWindow 286 288 ItemTipEnable = True 287 ListItemsOnly = False289 ListItemsOnly = True 288 290 LongList = True 289 291 LookupPiece = 0 … … 368 370 TabOrder = 9 369 371 OnChange = ControlChange 372 OnExit = ControlChange 370 373 CharsNeedMatch = 1 371 374 end … … 534 537 Left = 0 535 538 Top = 330 536 Width = 83539 Width = 521 537 540 Height = 13 538 541 Align = alBottom … … 567 570 Font.Style = [] 568 571 ParentFont = False 572 ScrollBars = ssVertical 569 573 TabOrder = 1 570 574 OnExit = memCommentsExit -
cprs/branches/foia-cprs/CPRS-Chart/fARTAllgy.pas
r459 r460 60 60 btnSevHelp: TORAlignButton; 61 61 procedure btnAgentClick(Sender: TObject); 62 procedure FormCreate(Sender: TObject); 62 procedure FormCreate(Sender: TObject); 63 63 procedure cboOriginatorNeedData(Sender: TObject; const StartFrom: String; 64 64 Direction, InsertAt: Integer); … … 160 160 'HISTORICAL: reported by the patient as occurring in the past;' + CRLF + 161 161 'no longer requires intervention' ; 162 162 163 NEW_ALLERGY = True; 163 164 ENTERED_IN_ERROR = True; … … 190 191 Result := False; 191 192 frmARTAllergy := TfrmARTAllergy.Create(Application); 193 if frmARTAllergy.AbortAction then exit; 192 194 with frmARTAllergy do 193 195 try … … 286 288 ExtractItems(cboSymptoms.Items, Defaults, 'Top Ten'); 287 289 cboSymptoms.InsertSeparator; 290 cboSymptoms.InitLongList(''); 288 291 cboOriginator.InitLongList(User.Name) ; 289 292 cboOriginator.SelectByIEN(User.DUZ); … … 301 304 var 302 305 Allergy: string; 303 begin 304 inherited; 306 //ErrMsg: string; 307 begin 308 inherited; 309 // since this only allows entry of new allergies, key check is irrelevant, eff. v26.12 310 (* if not IsARTClinicalUser(ErrMsg) then 311 begin 312 InfoBox(ErrMsg, 'No Authorization', MB_ICONWARNING or MB_OK); 313 AbortAction := True; 314 Close; 315 Exit; 316 end;*) 305 317 Changing := True; 306 318 FOldHintPause := Application.HintHidePause; … … 441 453 begin 442 454 if (lstSelectedSymptoms.Items.Count = 0) then SetError(TX_NO_SYMPTOMS); 443 if (grpObsHist.Enabled) and RequireOriginatorComments and ( memComments.Text = '') then455 if (grpObsHist.Enabled) and RequireOriginatorComments and (not ContainsVisibleChar(memComments.Text)) then 444 456 SetError(TX_ORIG_CMTS_REQD); 445 457 if (grpObsHist.Enabled) and (calObservedDate.Text = '') then … … 627 639 if tmpDate > 0 then ReactionDate := tmpDate;*) 628 640 with cboSeverity do 629 if ItemID <> '' then 630 Severity := ItemID; 641 if (ItemID <> '') and (Text <> '') then 642 Severity := ItemID 643 else 644 Severity := ''; 631 645 with memComments do 632 646 if GetTextLen > 0 then … … 886 900 887 901 procedure TfrmARTAllergy.cboSymptomsMouseClick(Sender: TObject); 902 const 903 TC_SS_MAX = 'Too many signs/symptoms'; 904 TX_SS_MAX = 'A maximum of 38 signs/symptoms may be selected.'; 888 905 var 889 906 x: string; 890 907 begin 891 908 inherited; 892 if (cboSymptoms.ItemIndex < 0) and (cboSymptoms.Text = '') then exit; 893 Changing := True; 909 with cboSymptoms do if (ItemIndex < 0) or (Text = '') or (ItemID = '') then exit; 894 910 if (lstSelectedSymptoms.SelectByID(cboSymptoms.ItemID) > -1) or 895 911 (lstSelectedSymptoms.Items.IndexOf(cboSymptoms.Text) > -1) then exit; 912 if (lstSelectedSymptoms.Count + 1) > 38 then 913 begin 914 InfoBox(TX_SS_MAX, TC_SS_MAX, MB_ICONERROR or MB_OK); 915 exit; 916 end; 917 Changing := True; 896 918 if cboSymptoms.ItemIndex > -1 then 897 919 begin … … 906 928 SelectByID(cboSymptoms.ItemID); 907 929 end; 908 end 909 else 930 end ; 931 (* else Free-text entries no longer allowed. 910 932 with lstSelectedSymptoms do 911 933 begin 912 934 Items.Add('FT' + U + cboSymptoms.Text); 913 935 ItemIndex := Items.Count - 1; 914 end; 936 end;*) 915 937 Changing := False; 916 938 ControlChange(Self) -
cprs/branches/foia-cprs/CPRS-Chart/fARTFreeTextMsg.dfm
r459 r460 7 7 Constraints.MinHeight = 180 8 8 Constraints.MinWidth = 394 9 FormStyle = fsStayOnTop10 9 Position = poMainFormCenter 11 10 PixelsPerInch = 96 -
cprs/branches/foia-cprs/CPRS-Chart/fAddlSigners.dfm
r459 r460 103 103 OnMouseClick = cboSrcListMouseClick 104 104 OnNeedData = NewPersonNeedData 105 CharsNeedMatch = 1 105 106 end 106 107 object DstList: TORListBox … … 187 188 OnExit = cboCosignerExit 188 189 OnNeedData = cboCosignerNeedData 190 CharsNeedMatch = 1 189 191 end 190 192 object txtAuthor: TCaptionEdit -
cprs/branches/foia-cprs/CPRS-Chart/fAddlSigners.pas
r459 r460 46 46 FChanged: Boolean; 47 47 FNoteIEN: integer; 48 FRefDate: TFMDateTime; 48 49 FToday: string; 49 50 FTabID: integer; … … 58 59 59 60 procedure SelectAdditionalSigners(FontSize, NoteIEN, SigAction: Integer; Exclusions: TStrings; 60 var SignerList: TSignerList; TabID: integer ) ;61 var SignerList: TSignerList; TabID: integer; ARefDate: TFMDateTime) ; 61 62 62 63 const … … 83 84 84 85 85 procedure SelectAdditionalSigners(FontSize, NoteIEN, SigAction: Integer; {Status: string;}Exclusions: TStrings;86 var SignerList: TSignerList; TabID: integer ) ;86 procedure SelectAdditionalSigners(FontSize, NoteIEN, SigAction: Integer; Exclusions: TStrings; 87 var SignerList: TSignerList; TabID: integer; ARefDate: TFMDateTime) ; 87 88 { displays additional signer form for notes and returns a record of the selection } 88 89 var … … 97 98 FSigAction := SigAction; 98 99 FNoteIEN := NoteIEN; 100 FRefDate := ARefDate; 99 101 FExclusions.Assign(Exclusions); 100 102 FToday := FloatToStr(FMToday); … … 209 211 begin 210 212 j := FExclusions.IndexOf(Items[i]); 211 FSigners.Add( Items[i]+'^REMOVE');213 FSigners.Add(ORFn.Pieces(Items[i], U, 1, 2) + '^REMOVE'); 212 214 if j > -1 then FExclusions.Delete(j); 213 215 Items.Delete(i) ; … … 227 229 begin 228 230 DstList.Items.Delete(i); 229 FSigners.Add( cboCosigner.Items[cboCosigner.ItemIndex]+ '^REMOVE');231 FSigners.Add(ORFn.Pieces(cboCosigner.Items[cboCosigner.ItemIndex], U, 1, 2) + '^REMOVE'); 230 232 end; 231 233 end; … … 271 273 case FTabID of 272 274 CT_NOTES, CT_CONSULTS: 273 if (not CanCosign(TitleForNote(FNoteIEN), 0, cboCosigner.ItemIEN )) then275 if (not CanCosign(TitleForNote(FNoteIEN), 0, cboCosigner.ItemIEN, FRefDate)) then 274 276 begin 275 277 InfoBox(cboCosigner.Text + TX_NO_COSIGNER, TX_NO_COSIGNER_CAP, MB_OK or MB_ICONWARNING); -
cprs/branches/foia-cprs/CPRS-Chart/fAllgyBox.pas
r459 r460 32 32 {$R *.dfm} 33 33 34 uses rCover, fCover ;34 uses rCover, fCover, rODAllergy; 35 35 36 36 const … … 47 47 BtnLeft: array of integer; 48 48 j, k: integer; 49 x: string; 49 50 begin 50 51 Result := TfrmAllgyBox.Create(Application); … … 68 69 if AWidth > MaxWidth then MaxWidth := AWidth; 69 70 end; 70 cmdPrint.Visible := AllowPrint;71 71 MaxWidth := MaxWidth + GetSystemMetrics(SM_CXVSCROLL); 72 72 AHeight := (ReportText.Count * (lblFontTest.Height + 2)) + pnlbutton.Height; … … 87 87 Caption := ReportTitle; 88 88 memReport.SelStart := 0; 89 cmdPrint.Visible := AllowPrint; 90 cmdAdd.Enabled := True; //IsARTClinicalUser(x); v26.12 91 cmdEdit.Enabled := IsARTClinicalUser(x); 92 cmdInError.Enabled := IsARTClinicalUser(x); 89 93 end; 90 94 except -
cprs/branches/foia-cprs/CPRS-Chart/fAllgyFind.dfm
r459 r460 4 4 BorderIcons = [] 5 5 BorderStyle = bsDialog 6 Caption = 'Allergy Reactant Lookup' 7 ClientHeight = 410 8 ClientWidth = 443 9 FormStyle = fsStayOnTop 6 Caption = 'Causative Agent Lookup' 7 ClientHeight = 472 8 ClientWidth = 445 10 9 Position = poScreenCenter 11 10 OnCreate = FormCreate … … 13 12 TextHeight = 13 14 13 object lblSearch: TLabel 14 Left = 0 15 Top = 0 16 Width = 445 17 Height = 25 18 Align = alTop 19 AutoSize = False 20 Caption = 'Enter causative agent for Allergy or Adverse Drug Reaction:' 21 Font.Charset = DEFAULT_CHARSET 22 Font.Color = clWindowText 23 Font.Height = -11 24 Font.Name = 'MS Sans Serif' 25 Font.Style = [fsBold] 26 ParentFont = False 27 Layout = tlBottom 28 end 29 object lblSelect: TLabel 30 Left = 5 31 Top = 124 32 Width = 152 33 Height = 13 34 Caption = 'Select one of the following items' 35 Visible = False 36 end 37 object lblDetail: TLabel 38 Left = 0 39 Top = 25 40 Width = 445 41 Height = 39 42 Align = alTop 43 AutoSize = False 44 Caption = 45 '(Enter the FIRST FEW LETTERS of the causative agent (minimum of ' + 46 '3) to allow for a comprehensive search. Only one reactant may be' + 47 ' entered at a time)' 48 Layout = tlBottom 49 WordWrap = True 50 end 51 object lblSearchCaption: TLabel 15 52 Left = 6 16 Top = 917 Width = 28253 Top = 73 54 Width = 52 18 55 Height = 13 19 Caption = 'Enter causative agent for Allergy or Adverse Drug Reaction:' 20 end 21 object lblSelect: TLabel 22 Left = 6 23 Top = 67 24 Width = 175 25 Height = 13 26 Caption = 'Select from one of the following items' 27 Visible = False 28 end 29 object Label1: TLabel 30 Left = 6 31 Top = 23 32 Width = 130 33 Height = 13 34 Caption = '(Enter at least 3 characters)' 56 Caption = 'Search for:' 35 57 end 36 58 object txtSearch: TCaptionEdit 37 Left = 538 Top = 3859 Left = 4 60 Top = 88 39 61 Width = 331 40 62 Height = 21 … … 46 68 end 47 69 object cmdSearch: TButton 48 Left = 36 349 Top = 3870 Left = 362 71 Top = 88 50 72 Width = 75 51 73 Height = 21 … … 56 78 end 57 79 object cmdOK: TButton 58 Left = 26 459 Top = 36580 Left = 263 81 Top = 422 60 82 Width = 75 61 83 Height = 22 … … 65 87 end 66 88 object cmdCancel: TButton 67 Left = 34 668 Top = 36589 Left = 345 90 Top = 422 69 91 Width = 75 70 92 Height = 22 … … 76 98 object stsFound: TStatusBar 77 99 Left = 0 78 Top = 39179 Width = 44 3100 Top = 453 101 Width = 445 80 102 Height = 19 81 103 Panels = <> … … 83 105 end 84 106 object ckNoKnownAllergies: TCheckBox 85 Left = 8086 Top = 368107 Left = 320 108 Top = 118 87 109 Width = 119 88 110 Height = 17 … … 92 114 end 93 115 object tvAgent: TORTreeView 94 Left = 395 Top = 81116 Left = 2 117 Top = 138 96 118 Width = 437 97 119 Height = 270 … … 106 128 end 107 129 object imTree: TImageList 108 Left = 39 7109 Top = 93130 Left = 396 131 Top = 150 110 132 Bitmap = { 111 133 494C010103000400040010001000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 -
cprs/branches/foia-cprs/CPRS-Chart/fAllgyFind.pas
r459 r460 19 19 tvAgent: TORTreeView; 20 20 imTree: TImageList; 21 Label1: TLabel; 21 lblDetail: TLabel; 22 lblSearchCaption: TLabel; 22 23 procedure cmdSearchClick(Sender: TObject); 23 24 procedure cmdCancelClick(Sender: TObject); … … 49 50 ST_FOUND = 'Select from the matching entries on the list, or search again.'; 50 51 ST_NONE_FOUND = 'No matching items were found.'; 51 TC_FREE_TEXT = 'Causative Agent Not On File ';52 TX_FREE_TEXT = 'Would you like to request that this term be added to' + #13#10 +52 TC_FREE_TEXT = 'Causative Agent Not On File - No Matches for '; 53 (* TX_FREE_TEXT = 'Would you like to request that this term be added to' + #13#10 + 53 54 'the list of available allergies?' + #13#10 + #13#10 + 54 55 '"YES" will send a bulletin to request addition of your' + #13#10 + … … 58 59 'check your spelling, try alternate spellings or a trade name,' + #13#10 + 59 60 'or contact your allergy coordinator for assistance.' + #13#10 + #13#10 + 60 '"CANCEL" will abort this entry process completely.'; 61 TX_BULLETIN = 'Bulletin has been sent.'; 61 '"CANCEL" will abort this entry process completely.';*) 62 // NEW TEXT SUBSTITUTED IN V26.50 - RV 63 TX_FREE_TEXT = 'The agent you typed was not found in the database.' + CRLF + 64 'Consider the common causes of search failure:' + CRLF + 65 ' Misspellings' + CRLF + 66 ' Typing more than one agent in a single entry ' + CRLF + 67 ' Typing "No known allergies"' + CRLF + 68 CRLF + 69 'Select "NO" to attempt the search again. Carefully check your spelling,'+ CRLF + 70 'try an alternate spelling, a trade name, a generic name or just entering' + CRLF + 71 'the first few characters (minimum of 3). Enter only one allergy at a time.' + CRLF + 72 'Use the "No Known Allergies" check box to mark a patient as NKA.' + CRLF + 73 CRLF + 74 'Select "YES" to send a bulletin to the allergy coordinator to request assistance.' + CRLF + 75 'Only do this if you''ve tried alternate methods of finding the causative agent' + CRLF + 76 'and have been unsuccessful.' + CRLF + 77 CRLF + 78 'Select "CANCEL" to abort this entry process.'; 79 80 TX_BULLETIN = 'Bulletin has been sent.' + CRLF + 81 'NOTE: This reactant was NOT added for this patient.'; 62 82 TC_BULLETIN_ERROR = 'Unable to Send Bulletin'; 63 83 TX_BULLETIN_ERROR = 'Free text entries are no longer allowed.' + #13#10 + … … 186 206 x: string; 187 207 tmpList: TStringList; 188 OKtoContinue: boolean ;208 OKtoContinue: boolean ; 189 209 begin 190 210 inherited; … … 206 226 begin 207 227 FAllergy := ''; 208 case InfoBox(TX_FREE_TEXT, TC_FREE_TEXT , MB_YESNOCANCEL or MB_DEFBUTTON2 or MB_ICONQUESTION)of228 case InfoBox(TX_FREE_TEXT, TC_FREE_TEXT + UpperCase(txtSearch.Text), MB_YESNOCANCEL or MB_DEFBUTTON2 or MB_ICONQUESTION)of 209 229 ID_YES : // send bulletin and abort free-text entry 210 230 begin -
cprs/branches/foia-cprs/CPRS-Chart/fCover.dfm
r459 r460 1 1 inherited frmCover: TfrmCover 2 Left = 3343 Top = 1872 Left = 256 3 Top = 280 4 4 HelpContext = 1000 5 5 BorderIcons = [] -
cprs/branches/foia-cprs/CPRS-Chart/fCover.pas
r459 r460 101 101 procedure NotifyOrder(OrderAction: Integer; AnOrder: TOrder); override; {REV} 102 102 procedure UpdateAllergiesList; 103 procedure UpdateVAAButton; 103 104 end; 104 105 105 106 var 106 107 frmCover: TfrmCover; 108 VAAFlag: TStringList; 109 MHVFlag: TStringList; 110 VAA_DFN: string; 111 PtIsVAA: boolean; 112 PtIsMHV: boolean; 107 113 108 114 const … … 114 120 {$R *.DFM} 115 121 116 uses ORNet, ORFn, fRptBox, fVitals, fvit, fFrame, uCore, TRPCB, uConst, 117 uReminders, rReminders, fARTAllgy, uOrPtf, fPatientFlagMulti, rODAllergy ;122 uses ORNet, ORFn, fRptBox, fVitals, fvit, fFrame, uCore, TRPCB, uConst, uInit, 123 uReminders, rReminders, fARTAllgy, uOrPtf, fPatientFlagMulti, rODAllergy, rMisc; 118 124 119 125 const … … 436 442 if ItemID <> '' then 437 443 begin 438 SelectVitals(Font.Size); 439 StatusText('Searching for recent vitals...'); 440 with frmCover do 441 for i := ComponentCount - 1 downto 0 do 442 begin 443 if Components[i] is TORListBox then 444 begin 445 case Components[i].Tag of 446 70: ListVitals((Components[i] as TORListBox).Items); 447 end; 448 end; 449 end; 450 StatusText(''); 444 frmFrame.VitalsDLLActive := True; 445 SelectVitals(Piece(DisplayText[ItemIndex],Char(9),1)); //Char(9) = Tab Character 446 frmFrame.VitalsDLLActive := False; 447 ClearPtData; 448 DisplayPage; 451 449 end; 452 450 … … 457 455 //don't try to display a detail report 458 456 end; 459 ItemIndex := -1; 457 if uInit.TimedOut then // Fix for CQ: 8011 458 Abort 459 else 460 ItemIndex := -1; 460 461 end; 461 462 end; … … 612 613 begin 613 614 lb.Clear; 614 615 repeat616 i := ActiveReminders.IndexOfPiece('1',U,6,i);617 if(i >= 0) then615 //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 618 619 begin 619 tmp := ActiveReminders[i]; 620 SetPiece(tmp, U, 3, FormatFMDateTimeStr('mmm dd,yy', Piece(tmp, U, 3))); 621 lb.Items.Add(tmp); 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; 622 638 end; 623 until(i < 0);639 //AGP End Change for 26.8 624 640 if(RemindersEvaluatingInBackground) then 625 641 lb.Items.Insert(0,'0^Evaluating Reminders...') … … 745 761 var 746 762 AListBox: TORListBox; 763 x: string; 747 764 begin 748 765 inherited; 749 766 AListBox := (popMenuAllergies.PopupComponent as TORListBox); 750 popEditAllergy.Enabled := AListBox.ItemIEN > 0;751 popEnteredInError.Enabled := AListBox.ItemIEN > 0;767 popEditAllergy.Enabled := (AListBox.ItemIEN > 0) and IsARTClinicalUser(x); 768 popEnteredInError.Enabled := (AListBox.ItemIEN > 0) and IsARTClinicalUser(x); 752 769 popNKA.Enabled := (AListBox.Items.Count = 1) and 753 770 (Piece(AListBox.Items[0], U, 2) = NO_ASSESSMENT); 771 //and IsARTClinicalUser(x); v26.12 772 popNewAllergy.Enabled := True; //IsARTClinicalUser(x); v26.12 754 773 end; 755 774 … … 867 886 end; 868 887 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 869 999 end. 870 1000 -
cprs/branches/foia-cprs/CPRS-Chart/fDCSumm.dfm
r459 r460 1 1 inherited frmDCSumm: TfrmDCSumm 2 Left = 1803 Top = 1932 Left = 488 3 Top = 83 4 4 Width = 687 5 5 Height = 409 … … 481 481 end 482 482 end 483 object mnuViewInformation: TMenuItem 484 Caption = 'Information' 485 OnClick = mnuViewInformationClick 486 object mnuViewDemo: TMenuItem 487 Tag = 1 488 Caption = 'De&mographics...' 489 OnClick = ViewInfo 490 end 491 object mnuViewVisits: TMenuItem 492 Tag = 2 493 Caption = 'Visits/Pr&ovider...' 494 OnClick = ViewInfo 495 end 496 object mnuViewPrimaryCare: TMenuItem 497 Tag = 3 498 Caption = 'Primary &Care...' 499 OnClick = ViewInfo 500 end 501 object mnuViewMyHealtheVet: TMenuItem 502 Tag = 4 503 Caption = 'MyHealthe&Vet...' 504 OnClick = ViewInfo 505 end 506 object mnuInsurance: TMenuItem 507 Tag = 5 508 Caption = '&Insurance...' 509 OnClick = ViewInfo 510 end 511 object mnuViewFlags: TMenuItem 512 Tag = 6 513 Caption = '&Flags...' 514 OnClick = ViewInfo 515 end 516 object mnuViewRemoteData: TMenuItem 517 Tag = 7 518 Caption = 'Remote &Data...' 519 OnClick = ViewInfo 520 end 521 object mnuViewReminders: TMenuItem 522 Tag = 8 523 Caption = '&Reminders...' 524 Enabled = False 525 OnClick = ViewInfo 526 end 527 object mnuViewPostings: TMenuItem 528 Tag = 9 529 Caption = '&Postings...' 530 OnClick = ViewInfo 531 end 532 end 483 533 object Z3: TMenuItem 484 534 Caption = '-' -
cprs/branches/foia-cprs/CPRS-Chart/fDCSumm.pas
r459 r460 134 134 popSummMemoInsTemplate: TMenuItem; 135 135 popSummMemoEncounter: TMenuItem; 136 mnuViewInformation: TMenuItem; 137 mnuViewDemo: TMenuItem; 138 mnuViewVisits: TMenuItem; 139 mnuViewPrimaryCare: TMenuItem; 140 mnuViewMyHealtheVet: TMenuItem; 141 mnuInsurance: TMenuItem; 142 mnuViewFlags: TMenuItem; 143 mnuViewReminders: TMenuItem; 144 mnuViewRemoteData: TMenuItem; 145 mnuViewPostings: TMenuItem; 136 146 procedure mnuChartTabClick(Sender: TObject); 137 147 procedure lstSummsClick(Sender: TObject); … … 211 221 procedure tvSummsAddition(Sender: TObject; Node: TTreeNode); 212 222 procedure tvSummsDeletion(Sender: TObject; Node: TTreeNode); 223 procedure ViewInfo(Sender: TObject); 224 procedure mnuViewInformationClick(Sender: TObject); 213 225 private 214 226 FEditingIndex: Integer; // index of Summary being currently edited … … 230 242 procedure ClearEditControls; 231 243 function StartNewEdit(NewNoteType: integer): Boolean; 232 procedure DoAutoSave ;244 procedure DoAutoSave(Suppress: integer = 1); 233 245 function LacksRequiredForCreate: Boolean; 234 246 function GetTitleText(AnIndex: Integer): string; … … 1726 1738 procedure TfrmDCSumm.SaveSignItem(const ItemID, ESCode: string); 1727 1739 { saves and optionally signs a Discharge Summary or addendum } 1740 const 1741 SIG_COSIGN = 'COSIGNATURE'; 1742 SIG_SIGN = 'SIGNATURE'; 1728 1743 var 1729 1744 AnIndex, IEN, i: Integer; 1730 1745 Saved, ContinueSign: Boolean; {*RAB* 8/26/99} 1731 SignSts: TActionRec;1746 ActionSts, SignSts: TActionRec; 1732 1747 APCEObject: TPCEData; 1733 1748 OK: boolean; 1734 1749 ActionType, SignTitle: string; 1735 1750 begin 1736 1751 AnIndex := -1; … … 1757 1772 if Length(ESCode) > 0 then 1758 1773 begin 1759 if not NoteHasText(IEN) then 1774 if CosignDocument(IEN) then 1775 begin 1776 SignTitle := TX_COSIGN; 1777 ActionType := SIG_COSIGN; 1778 end else 1779 begin 1780 SignTitle := TX_SIGN; 1781 ActionType := SIG_SIGN; 1782 end; 1783 ActOnDocument(ActionSts, IEN, ActionType); 1784 if not ActionSts.Success then 1785 begin 1786 InfoBox(ActionSts.Reason, TX_IN_AUTH, MB_OK); 1787 ContinueSign := False; 1788 end 1789 else if not NoteHasText(IEN) then 1760 1790 begin 1761 1791 InfoBox(TX_EMPTY_SUMM1, TC_EMPTY_SUMM, MB_OK or MB_ICONERROR); … … 1910 1940 begin 1911 1941 inherited; 1912 DoAutoSave ;1942 DoAutoSave(0); 1913 1943 timAutoSave.Enabled := False; 1914 1944 try 1915 1945 SpellCheckForControl(memNewSumm); 1916 1946 finally 1947 FChanged := True; 1948 DoAutoSave(0); 1917 1949 timAutoSave.Enabled := True; 1918 1950 end; … … 1922 1954 begin 1923 1955 inherited; 1924 DoAutoSave ;1956 DoAutoSave(0); 1925 1957 timAutoSave.Enabled := False; 1926 1958 try 1927 1959 GrammarCheckForControl(memNewSumm); 1928 1960 finally 1961 FChanged := True; 1962 DoAutoSave(0); 1929 1963 timAutoSave.Enabled := True; 1930 1964 end; … … 2013 2047 SigAction: integer; 2014 2048 SavedDocID: string; 2049 ARefDate: TFMDateTime; 2015 2050 begin 2016 2051 inherited; … … 2052 2087 2053 2088 Exclusions := GetCurrentSigners(lstSumms.ItemIEN); 2054 SelectAdditionalSigners(Font.Size, lstSumms.ItemIEN, SigAction, Exclusions, SignerList, CT_DCSUMM); 2089 ARefDate := ExtractFloat(Piece(Piece(lstSumms.Items[lstSumms.ItemIndex], U, 9), ';', 2)); 2090 if ARefDate = 0 then //no discharge date, so use note date 2091 ARefDate := StrToFloat(Piece(lstSumms.Items[lstSumms.ItemIndex], U, 3)); 2092 SelectAdditionalSigners(Font.Size, lstSumms.ItemIEN, SigAction, Exclusions, SignerList, CT_DCSUMM, ARefDate); 2055 2093 with SignerList do 2056 2094 begin … … 2308 2346 var 2309 2347 CurTitle: Integer; 2348 ADateTime: TFMDateTime; 2310 2349 begin 2311 2350 Result := False; … … 2321 2360 begin 2322 2361 if Title > 0 then CurTitle := Title else CurTitle := DocType; 2323 if AskCosignerForTitle(CurTitle, Dictator) and (Cosigner <= 0) then Result := True; 2362 if DischargeDateTime > 0 then 2363 ADateTime := DischargeDateTime 2364 else 2365 ADateTime := DictDateTime; 2366 if AskCosignerForTitle(CurTitle, Dictator, ADateTime) and (Cosigner <= 0) then Result := True; 2324 2367 end; 2325 2368 end; … … 2357 2400 end; 2358 2401 2359 procedure TfrmDCSumm.DoAutoSave ;2402 procedure TfrmDCSumm.DoAutoSave(Suppress: integer = 1); 2360 2403 var 2361 2404 ErrMsg: string; … … 2367 2410 timAutoSave.Enabled := False; 2368 2411 try 2369 SetText(ErrMsg, memNewSumm.Lines, lstSumms.GetIEN(EditingIndex), 1);2412 SetText(ErrMsg, memNewSumm.Lines, lstSumms.GetIEN(EditingIndex), Suppress); 2370 2413 finally 2371 2414 timAutoSave.Enabled := True; … … 3216 3259 end; 3217 3260 3261 procedure TfrmDCSumm.ViewInfo(Sender: TObject); 3262 begin 3263 inherited; 3264 frmFrame.ViewInfo(Sender); 3265 end; 3266 3267 procedure TfrmDCSumm.mnuViewInformationClick(Sender: TObject); 3268 begin 3269 inherited; 3270 mnuViewDemo.Enabled := frmFrame.pnlPatient.Enabled; 3271 mnuViewVisits.Enabled := frmFrame.pnlVisit.Enabled; 3272 mnuViewPrimaryCare.Enabled := frmFrame.pnlPrimaryCare.Enabled; 3273 mnuViewMyHealtheVet.Enabled := not (Copy(frmFrame.laMHV.Hint, 1, 2) = 'No'); 3274 mnuInsurance.Enabled := not (Copy(frmFrame.laVAA2.Hint, 1, 2) = 'No'); 3275 mnuViewFlags.Enabled := frmFrame.lblFlag.Enabled; 3276 mnuViewRemoteData.Enabled := frmFrame.lblCirn.Enabled; 3277 mnuViewReminders.Enabled := frmFrame.pnlReminders.Enabled; 3278 mnuViewPostings.Enabled := frmFrame.pnlPostings.Enabled; 3279 end; 3280 3218 3281 initialization 3219 3282 uPCEEdit := TPCEData.Create; -
cprs/branches/foia-cprs/CPRS-Chart/fDCSummProps.dfm
r459 r460 15 15 OldCreateOrder = False 16 16 Position = poScreenCenter 17 OnClose = FormClose 17 18 OnShow = FormShow 18 19 PixelsPerInch = 96 … … 94 95 OnMouseClick = cboNewTitleMouseClick 95 96 OnNeedData = cboNewTitleNeedData 97 CharsNeedMatch = 1 96 98 end 97 99 object calSumm: TORDateBox … … 132 134 OnMouseClick = cboAuthorMouseClick 133 135 OnNeedData = cboAuthorNeedData 136 CharsNeedMatch = 1 134 137 end 135 138 object cboAttending: TORComboBox … … 158 161 OnExit = cboAttendingExit 159 162 OnNeedData = cboAttendingNeedData 163 CharsNeedMatch = 1 160 164 end 161 165 object cmdOK: TButton … … 229 233 TabOrder = 0 230 234 OnNeedData = cboAuthorNeedData 235 CharsNeedMatch = 1 231 236 end 232 237 object cboUrgency: TORComboBox … … 251 256 SynonymChars = '<>' 252 257 TabOrder = 1 258 CharsNeedMatch = 1 253 259 end 254 260 end -
cprs/branches/foia-cprs/CPRS-Chart/fDCSummProps.pas
r459 r460 54 54 procedure lstAdmissionsChange(Sender: TObject); 55 55 procedure cboNewTitleDblClick(Sender: TObject); 56 procedure FormClose(Sender: TObject; var Action: TCloseAction); 56 57 private 57 58 FCosignIEN: Int64; // store cosigner that was passed in … … 87 88 {$R *.DFM} 88 89 89 uses ORFn, uCore, rCore, uPCE, rPCE ;90 uses ORFn, uCore, rCore, uPCE, rPCE, rMisc; 90 91 { Initial values in ASumm 91 92 … … 231 232 procedure TfrmDCSummProperties.FormShow(Sender: TObject); 232 233 begin 234 SetFormPosition(Self); 233 235 //if cboNewTitle.Text = '' then PostMessage(Handle, UM_DELAYEVENT, 0, 0); 234 236 end; … … 512 514 end; 513 515 516 procedure TfrmDCSummProperties.FormClose(Sender: TObject; 517 var Action: TCloseAction); 518 begin 519 SaveUserBounds(Self); 520 end; 521 514 522 end. -
cprs/branches/foia-cprs/CPRS-Chart/fDeviceSelect.dfm
r459 r460 1 1 object frmDeviceSelect: TfrmDeviceSelect 2 Left = 389 3 Top = 375 4 Width = 445 5 Height = 276 2 Left = 378 3 Top = 340 4 AutoScroll = False 6 5 Caption = 'Orders Print Device Selection' 6 ClientHeight = 235 7 ClientWidth = 415 7 8 Color = clBtnFace 8 9 Font.Charset = DEFAULT_CHARSET … … 13 14 OldCreateOrder = True 14 15 Position = poScreenCenter 16 OnClose = FormClose 17 OnShow = FormShow 15 18 PixelsPerInch = 96 16 19 TextHeight = 13 … … 22 25 end 23 26 object grpDevice: TGroupBox 24 Left = 10 25 Top = 8 26 Width = 411 27 Height = 192 27 Left = 0 28 Top = 0 29 Width = 415 30 Height = 194 31 Align = alClient 28 32 Caption = 'Device' 29 33 TabOrder = 0 30 object lblMargin: TLabel31 Left = 832 Top = 16633 Width = 6034 Height = 1335 Caption = 'Right Margin'36 end37 object lblLength: TLabel38 Left = 12039 Top = 16640 Width = 6141 Height = 1342 Caption = 'Page Length'43 end44 object txtRightMargin: TMaskEdit45 Left = 7246 Top = 16447 Width = 3448 Height = 1949 AutoSize = False50 EditMask = '99999;0; '51 MaxLength = 552 TabOrder = 153 end54 object txtPageLength: TMaskEdit55 Left = 18456 Top = 16457 Width = 3458 Height = 1959 AutoSize = False60 EditMask = '99999;0; '61 MaxLength = 562 TabOrder = 263 end64 34 object cboDevice: TORComboBox 65 Left = 735 Left = 2 66 36 Top = 15 67 Width = 39568 Height = 14 037 Width = 411 38 Height = 145 69 39 Style = orcsSimple 40 Align = alClient 70 41 AutoSelect = True 71 42 Caption = 'Device' … … 77 48 ListItemsOnly = False 78 49 LongList = True 50 LookupPiece = 0 79 51 MaxLength = 0 80 52 ParentShowHint = False … … 88 60 OnNeedData = cboDeviceNeedData 89 61 end 62 object pnlGBBottom: TPanel 63 Left = 2 64 Top = 160 65 Width = 411 66 Height = 32 67 Align = alBottom 68 BevelOuter = bvNone 69 TabOrder = 1 70 object lblMargin: TLabel 71 Left = 8 72 Top = 12 73 Width = 60 74 Height = 13 75 Caption = 'Right Margin' 76 end 77 object lblLength: TLabel 78 Left = 120 79 Top = 12 80 Width = 61 81 Height = 13 82 Caption = 'Page Length' 83 end 84 object txtRightMargin: TMaskEdit 85 Left = 72 86 Top = 6 87 Width = 33 88 Height = 19 89 AutoSize = False 90 EditMask = '99999;0; ' 91 MaxLength = 5 92 TabOrder = 0 93 end 94 object txtPageLength: TMaskEdit 95 Left = 184 96 Top = 6 97 Width = 34 98 Height = 19 99 AutoSize = False 100 EditMask = '99999;0; ' 101 MaxLength = 5 102 TabOrder = 1 103 end 104 end 90 105 end 91 object cmdOK: TButton 92 Left = 269 93 Top = 211 94 Width = 72 95 Height = 22 96 Caption = 'OK' 97 Default = True 98 TabOrder = 2 99 OnClick = cmdOKClick 100 end 101 object cmdCancel: TButton 102 Left = 349 103 Top = 211 104 Width = 72 105 Height = 22 106 Cancel = True 107 Caption = 'Cancel' 108 TabOrder = 3 109 OnClick = cmdCancelClick 110 end 111 object chkDefault: TCheckBox 112 Left = 12 113 Top = 218 114 Width = 163 115 Height = 17 116 Caption = 'Save as user'#39's default printer' 106 object pnlBottom: TPanel 107 Left = 0 108 Top = 194 109 Width = 415 110 Height = 41 111 Align = alBottom 112 BevelOuter = bvNone 117 113 TabOrder = 1 114 object cmdOK: TButton 115 Left = 257 116 Top = 11 117 Width = 72 118 Height = 22 119 Caption = 'OK' 120 Default = True 121 TabOrder = 0 122 OnClick = cmdOKClick 123 end 124 object cmdCancel: TButton 125 Left = 337 126 Top = 11 127 Width = 72 128 Height = 22 129 Cancel = True 130 Caption = 'Cancel' 131 TabOrder = 1 132 OnClick = cmdCancelClick 133 end 134 object chkDefault: TCheckBox 135 Left = 12 136 Top = 16 137 Width = 163 138 Height = 17 139 Caption = 'Save as user'#39's default printer' 140 TabOrder = 2 141 end 118 142 end 119 143 end -
cprs/branches/foia-cprs/CPRS-Chart/fDeviceSelect.pas
r459 r460 5 5 uses 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 StdCtrls, fAutoSz, ORCtrls, ORNet, Mask ;7 StdCtrls, fAutoSz, ORCtrls, ORNet, Mask, ExtCtrls; 8 8 9 9 type 10 10 TfrmDeviceSelect = class(TfrmAutoSz) 11 11 grpDevice: TGroupBox; 12 lblMargin: TLabel;13 lblLength: TLabel;14 txtRightMargin: TMaskEdit;15 txtPageLength: TMaskEdit;16 12 cboDevice: TORComboBox; 13 pnlBottom: TPanel; 17 14 cmdOK: TButton; 18 15 cmdCancel: TButton; 19 16 chkDefault: TCheckBox; 17 pnlGBBottom: TPanel; 18 lblMargin: TLabel; 19 txtRightMargin: TMaskEdit; 20 lblLength: TLabel; 21 txtPageLength: TMaskEdit; 20 22 procedure cboDeviceChange(Sender: TObject); 21 23 procedure cmdOKClick(Sender: TObject); … … 23 25 procedure cboDeviceNeedData(Sender: TObject; const StartFrom: String; 24 26 Direction, InsertAt: Integer); 27 procedure FormShow(Sender: TObject); 28 procedure FormClose(Sender: TObject; var Action: TCloseAction); 25 29 private 26 30 FWinPrint: Boolean; … … 37 41 {$R *.DFM} 38 42 39 uses ORFn, rCore, uCore, rReports, Printers, fFrame ;43 uses ORFn, rCore, uCore, rReports, Printers, fFrame, rMisc; 40 44 41 45 const … … 143 147 end; 144 148 149 procedure TfrmDeviceSelect.FormShow(Sender: TObject); 150 begin 151 SetFormPosition(Self); 152 inherited; 153 end; 154 155 procedure TfrmDeviceSelect.FormClose(Sender: TObject; 156 var Action: TCloseAction); 157 begin 158 inherited; 159 SaveUserBounds(Self); 160 end; 161 145 162 end. -
cprs/branches/foia-cprs/CPRS-Chart/fEncnt.dfm
r459 r460 1 1 object frmEncounter: TfrmEncounter 2 Left = 302 3 Top = 180 2 Left = 481 3 Top = 242 4 Width = 470 5 Height = 450 6 Anchors = [akTop] 4 7 BorderIcons = [biSystemMenu] 5 BorderStyle = bsDialog6 8 Caption = 'Provider & Location for Current Activities' 7 ClientHeight = 3678 ClientWidth = 3849 9 Color = clBtnFace 10 Constraints.MinWidth = 470 10 11 Font.Charset = DEFAULT_CHARSET 11 12 Font.Color = clWindowText … … 15 16 OldCreateOrder = True 16 17 Position = poScreenCenter 18 Scaled = False 17 19 OnClose = FormClose 18 20 OnCreate = FormCreate 19 21 OnDestroy = FormDestroy 22 OnResize = FormResize 23 OnShow = FormShow 20 24 DesignSize = ( 21 38422 367)25 462 26 423) 23 27 PixelsPerInch = 96 24 28 TextHeight = 13 … … 38 42 Tag = 9 39 43 Left = 6 40 Top = 14 944 Top = 140 41 45 Width = 93 42 46 Height = 13 43 47 Anchors = [akLeft, akBottom] 44 48 Caption = 'Encounter Location' 49 Constraints.MinHeight = 12 45 50 end 46 51 object lblProvider: TLabel … … 51 56 Caption = 'Encounter Provider' 52 57 end 53 object c mdOK: TButton54 Left = 30658 object cboPtProvider: TORComboBox 59 Left = 6 55 60 Top = 20 56 Width = 72 57 Height = 21 58 Caption = 'OK' 59 Default = True 60 TabOrder = 4 61 OnClick = cmdOKClick 62 end 63 object cmdCancel: TButton 64 Left = 306 65 Top = 49 66 Width = 72 67 Height = 21 68 Cancel = True 69 Caption = 'Cancel' 70 TabOrder = 5 71 OnClick = cmdCancelClick 72 end 73 object txtLocation: TCaptionEdit 74 Tag = 9 75 Left = 6 76 Top = 163 77 Width = 212 78 Height = 21 79 Anchors = [akLeft, akBottom] 80 Color = clBtnFace 81 ReadOnly = True 82 TabOrder = 1 83 Text = '< Select a location from the tabs below.... >' 84 Caption = 'Encounter Location' 85 end 86 object pgeVisit: TPageControl 87 Tag = 9 88 Left = 6 89 Top = 194 90 Width = 372 91 Height = 167 92 ActivePage = tabClinic 93 Anchors = [akLeft, akBottom] 94 TabIndex = 0 95 TabOrder = 2 96 OnChange = pgeVisitChange 97 object tabClinic: TTabSheet 98 Caption = 'Clinic Appointments' 99 object lblClinic: TLabel 100 Left = 4 101 Top = 4 102 Width = 127 103 Height = 13 104 Caption = 'Clinic Appointments / Visits' 105 end 106 object lblDateRange: TLabel 107 Left = 138 108 Top = 4 109 Width = 71 110 Height = 13 111 Caption = '(T-30 thru T+1)' 112 end 113 object lstClinic: TORListBox 114 Left = 4 115 Top = 18 116 Width = 352 117 Height = 117 118 ItemHeight = 13 119 ParentShowHint = False 120 ShowHint = True 121 TabOrder = 0 122 OnDblClick = cmdOKClick 123 Caption = 'Clinic Appointments / Visits (T-30 thru T+1)' 124 ItemTipColor = clWindow 125 LongList = False 126 Pieces = '3,2,4' 127 TabPositions = '20' 128 OnChange = lstClinicChange 129 end 130 end 131 object tabAdmit: TTabSheet 132 Caption = 'Hospital Admissions' 133 object lblAdmit: TLabel 134 Left = 4 135 Top = 4 136 Width = 93 137 Height = 13 138 Caption = 'Hospital Admissions' 139 end 140 object lstAdmit: TORListBox 141 Left = 4 142 Top = 18 143 Width = 352 144 Height = 117 145 ItemHeight = 13 146 ParentShowHint = False 147 ShowHint = True 148 TabOrder = 0 149 OnDblClick = cmdOKClick 150 Caption = 'Hospital Admissions' 151 ItemTipColor = clWindow 152 LongList = False 153 Pieces = '3,5,4' 154 TabPositions = '20' 155 OnChange = lstAdmitChange 156 end 157 end 158 object tabNewVisit: TTabSheet 159 Caption = 'New Visit' 160 object lblVisitDate: TLabel 161 Left = 220 162 Top = 4 163 Width = 85 164 Height = 13 165 Caption = 'Date/Time of Visit' 166 Visible = False 167 end 168 object lblNewVisit: TLabel 169 Left = 4 170 Top = 4 171 Width = 63 172 Height = 13 173 Caption = 'Visit Location' 174 end 175 object calVisitDate: TORDateBox 176 Left = 220 177 Top = 18 178 Width = 140 179 Height = 21 180 TabOrder = 1 181 Text = 'NOW' 182 OnChange = calVisitDateChange 183 OnExit = calVisitDateExit 184 DateOnly = False 185 RequireTime = True 186 end 187 object ckbHistorical: TORCheckBox 188 Left = 220 189 Top = 50 190 Width = 140 191 Height = 81 192 Caption = 193 'Historical Visit: a visit that occurred at some time in the past' + 194 ' or at some other location (possibly non-VA) but is not used for' + 195 ' workload credit.' 196 ParentShowHint = False 197 ShowHint = True 198 TabOrder = 2 199 OnClick = ckbHistoricalClick 200 WordWrap = True 201 AutoSize = True 202 end 203 object cboNewVisit: TORComboBox 204 Left = 4 205 Top = 18 206 Width = 208 207 Height = 117 208 Style = orcsSimple 209 AutoSelect = True 210 Caption = 'Visit Location' 211 Color = clWindow 212 DropDownCount = 8 213 ItemHeight = 13 214 ItemTipColor = clWindow 215 ItemTipEnable = True 216 ListItemsOnly = True 217 LongList = True 218 LookupPiece = 0 219 MaxLength = 0 220 Pieces = '2' 221 Sorted = False 222 SynonymChars = '<>' 223 TabOrder = 0 224 OnChange = cboNewVisitChange 225 OnDblClick = cmdOKClick 226 OnNeedData = cboNewVisitNeedData 227 CharsNeedMatch = 1 228 end 229 end 230 end 231 object cmdDateRange: TButton 232 Tag = 9 233 Left = 288 234 Top = 177 235 Width = 90 236 Height = 21 237 Anchors = [akLeft, akBottom] 238 Caption = 'Date Range...' 239 TabOrder = 3 240 OnClick = cmdDateRangeClick 241 end 242 object cboPtProvider: TORComboBox 243 Left = 6 244 Top = 20 245 Width = 292 61 Width = 331 246 62 Height = 117 63 Anchors = [akLeft, akTop, akRight, akBottom] 247 64 Style = orcsSimple 248 65 AutoSelect = True … … 265 82 CharsNeedMatch = 1 266 83 end 84 object cmdDateRange: TButton 85 Tag = 9 86 Left = 266 87 Top = 153 88 Width = 84 89 Height = 25 90 Anchors = [akLeft, akBottom] 91 Caption = 'Date Range...' 92 Constraints.MinHeight = 21 93 Constraints.MinWidth = 21 94 TabOrder = 2 95 OnClick = cmdDateRangeClick 96 end 97 object txtLocation: TCaptionEdit 98 Tag = 9 99 Left = 6 100 Top = 154 101 Width = 258 102 Height = 21 103 Anchors = [akLeft, akBottom] 104 AutoSize = False 105 Color = clBtnFace 106 Constraints.MinHeight = 21 107 ReadOnly = True 108 TabOrder = 1 109 Text = '< Select a location from the tabs below.... >' 110 Caption = 'Encounter Location' 111 end 112 object cmdCancel: TButton 113 Left = 341 114 Top = 45 115 Width = 84 116 Height = 23 117 Anchors = [akTop, akRight] 118 Cancel = True 119 Caption = 'Cancel' 120 Constraints.MinHeight = 21 121 Constraints.MinWidth = 21 122 TabOrder = 4 123 OnClick = cmdCancelClick 124 end 125 object cmdOK: TButton 126 Left = 340 127 Top = 20 128 Width = 84 129 Height = 23 130 Anchors = [akTop, akRight] 131 Caption = 'OK' 132 Constraints.MinHeight = 21 133 Constraints.MinWidth = 21 134 Default = True 135 TabOrder = 3 136 OnClick = cmdOKClick 137 end 138 object Panel1: TPanel 139 Left = 0 140 Top = 179 141 Width = 460 142 Height = 243 143 Anchors = [akLeft, akRight, akBottom] 144 TabOrder = 6 145 DesignSize = ( 146 460 147 243) 148 object pgeVisit: TPageControl 149 Tag = 9 150 Left = 4 151 Top = 5 152 Width = 452 153 Height = 232 154 ActivePage = tabNewVisit 155 Anchors = [akLeft, akTop, akRight, akBottom] 156 Constraints.MinHeight = 150 157 RaggedRight = True 158 TabIndex = 2 159 TabOrder = 0 160 OnChange = pgeVisitChange 161 object tabClinic: TTabSheet 162 Caption = 'Clinic Appointments' 163 object lstClinic: TORListBox 164 Left = 0 165 Top = 20 166 Width = 444 167 Height = 184 168 Align = alClient 169 Constraints.MinHeight = 21 170 ItemHeight = 13 171 ParentShowHint = False 172 ScrollWidth = 353 173 ShowHint = True 174 TabOrder = 0 175 OnDblClick = cmdOKClick 176 Caption = 'Clinic Appointments / Visits (T-30 thru T+1)' 177 ItemTipColor = clWindow 178 LongList = False 179 Pieces = '3,2,4' 180 TabPositions = '30,50' 181 OnChange = lstClinicChange 182 end 183 object Panel2: TPanel 184 Left = 0 185 Top = 0 186 Width = 444 187 Height = 20 188 Align = alTop 189 TabOrder = 2 190 object lblDateRange: TLabel 191 Left = 138 192 Top = 4 193 Width = 71 194 Height = 13 195 Caption = '(T-30 thru T+1)' 196 end 197 object lblClinic: TLabel 198 Left = 4 199 Top = 4 200 Width = 127 201 Height = 13 202 Caption = 'Clinic Appointments / Visits' 203 end 204 end 205 end 206 object tabAdmit: TTabSheet 207 Caption = 'Hospital Admissions' 208 object lstAdmit: TORListBox 209 Left = 0 210 Top = 17 211 Width = 444 212 Height = 187 213 Align = alClient 214 ItemHeight = 13 215 ParentShowHint = False 216 ShowHint = True 217 TabOrder = 0 218 OnDblClick = cmdOKClick 219 Caption = 'Hospital Admissions' 220 ItemTipColor = clWindow 221 LongList = False 222 Pieces = '3,5,4' 223 TabPositions = '20' 224 OnChange = lstAdmitChange 225 end 226 object Panel3: TPanel 227 Left = 0 228 Top = 0 229 Width = 444 230 Height = 17 231 Align = alTop 232 TabOrder = 2 233 object lblAdmit: TLabel 234 Left = 4 235 Top = 1 236 Width = 93 237 Height = 13 238 Caption = 'Hospital Admissions' 239 end 240 end 241 end 242 object tabNewVisit: TTabSheet 243 Caption = 'New Visit' 244 object lblVisitDate: TLabel 245 Left = 220 246 Top = 4 247 Width = 85 248 Height = 13 249 Caption = 'Date/Time of Visit' 250 Visible = False 251 end 252 object lblNewVisit: TLabel 253 Left = 4 254 Top = 4 255 Width = 63 256 Height = 13 257 Caption = 'Visit Location' 258 end 259 object calVisitDate: TORDateBox 260 Left = 220 261 Top = 18 262 Width = 140 263 Height = 21 264 TabOrder = 1 265 Text = 'NOW' 266 OnChange = calVisitDateChange 267 OnExit = calVisitDateExit 268 DateOnly = False 269 RequireTime = True 270 end 271 object ckbHistorical: TORCheckBox 272 Left = 220 273 Top = 50 274 Width = 140 275 Height = 81 276 Caption = 277 'Historical Visit: a visit that occurred at some time in the past' + 278 ' or at some other location (possibly non-VA) but is not used for' + 279 ' workload credit.' 280 ParentShowHint = False 281 ShowHint = True 282 TabOrder = 2 283 OnClick = ckbHistoricalClick 284 WordWrap = True 285 AutoSize = True 286 end 287 object cboNewVisit: TORComboBox 288 Left = 4 289 Top = 18 290 Width = 208 291 Height = 117 292 Style = orcsSimple 293 AutoSelect = True 294 Caption = 'Visit Location' 295 Color = clWindow 296 DropDownCount = 8 297 ItemHeight = 13 298 ItemTipColor = clWindow 299 ItemTipEnable = True 300 ListItemsOnly = True 301 LongList = True 302 LookupPiece = 0 303 MaxLength = 0 304 Pieces = '2' 305 Sorted = False 306 SynonymChars = '<>' 307 TabOrder = 0 308 OnChange = cboNewVisitChange 309 OnDblClick = cmdOKClick 310 OnNeedData = cboNewVisitNeedData 311 CharsNeedMatch = 1 312 end 313 end 314 end 315 end 267 316 object dlgDateRange: TORDateRangeDlg 268 317 DateOnly = True -
cprs/branches/foia-cprs/CPRS-Chart/fEncnt.pas
r459 r460 23 23 lblLocation: TLabel; 24 24 txtLocation: TCaptionEdit; 25 dlgDateRange: TORDateRangeDlg; 26 cmdDateRange: TButton; 27 lblInstruct: TLabel; 28 Panel1: TPanel; 25 29 pgeVisit: TPageControl; 26 30 tabClinic: TTabSheet; 27 lblClinic: TLabel;28 lblDateRange: TLabel;29 31 lstClinic: TORListBox; 30 32 tabAdmit: TTabSheet; 31 lblAdmit: TLabel;32 33 lstAdmit: TORListBox; 33 34 tabNewVisit: TTabSheet; … … 37 38 ckbHistorical: TORCheckBox; 38 39 cboNewVisit: TORComboBox; 39 dlgDateRange: TORDateRangeDlg; 40 cmdDateRange: TButton; 41 lblInstruct: TLabel; 40 Panel2: TPanel; 41 lblDateRange: TLabel; 42 lblClinic: TLabel; 43 Panel3: TPanel; 44 lblAdmit: TLabel; 42 45 procedure FormCreate(Sender: TObject); 43 46 procedure pgeVisitChange(Sender: TObject); … … 57 60 procedure lstAdmitChange(Sender: TObject); 58 61 procedure lstClinicChange(Sender: TObject); 62 procedure FormResize(Sender: TObject); 63 procedure FormShow(Sender: TObject); 59 64 private 60 65 CLINIC_TXT : String; … … 241 246 inherited; 242 247 cmdDateRange.Visible := pgeVisit.ActivePage = tabClinic; 243 if (pgeVisit.ActivePage = tabClinic) and (lstClinic.Items.Count = 0) 244 then ListApptAll(lstClinic.Items, Patient.DFN, FFromDate, FThruDate); 245 if (pgeVisit.ActivePage = tabAdmit) and (lstAdmit.Items.Count = 0) 246 then ListAdmitAll(lstAdmit.Items, Patient.DFN); 248 if (pgeVisit.ActivePage = tabClinic) and (lstClinic.Items.Count = 0) then 249 begin 250 ListApptAll(lstClinic.Items, Patient.DFN, FFromDate, FThruDate); 251 ActiveControl := lstClinic; 252 end; 253 if (pgeVisit.ActivePage = tabAdmit) and (lstAdmit.Items.Count = 0) then 254 begin 255 ListAdmitAll(lstAdmit.Items, Patient.DFN); 256 ActiveControl := lstAdmit; 257 end; 247 258 if pgeVisit.ActivePage = tabNewVisit then 248 259 begin … … 255 266 cboNewVisit.InitLongList(uTIULocationName); 256 267 cboNewVisit.SelectByIEN(uTIULocation); 268 cboNewVisitChange(Self); 257 269 end 258 270 else … … 264 276 with calVisitDate do if FDateTime <> 0 then FMDateTime := FDateTime else Text := 'NOW'; 265 277 FFromSelf := False; 278 ActiveControl := cboNewVisit; 266 279 end 267 else cboNewVisit.InitLongList(''); 268 ckbHistorical.Checked := FVisitCategory = 'E'; 280 else if FVisitCategory = 'E' then 281 begin 282 ckbHistorical.Checked := True; 283 ActiveControl := cboNewVisit; 284 end 285 else 286 begin 287 cboNewVisit.InitLongList(''); 288 //ActiveControl := cboPtProvider; 289 end; 290 //ckbHistorical.Checked := FVisitCategory = 'E'; 291 //ActiveControl := cboNewVisit; 269 292 end; {if cboNewVisit} 270 293 end; {if pgeVisit.ActivePage} … … 473 496 end; 474 497 498 procedure TfrmEncounter.FormResize(Sender: TObject); 499 begin 500 //CQ7118 501 if cboPtProvider.Visible then 502 begin 503 cmdOK.Left := cboPtProvider.Left + cboPtProvider.Width + 1; 504 cmdCancel.Left := cboPtProvider.Left + cboPtProvider.Width + 1; 505 end 506 else 507 begin 508 cmdOK.Left := cmdDateRange.Left; 509 cmdCancel.Left := cmdDateRange.Left; 510 end; 511 512 cmdCancel.Top := cmdDateRange.Top - cmdCancel.Height - 10; 513 cmdOK.Top := cmdCancel.Top - cmdOK.Height - 1; 514 515 cmdCancel.Top := cmdOK.Top + cmdOK.Height + 1; 516 cmdCancel.Width := cmdOK.Width; 517 //end CQ7118 518 end; 519 520 procedure TfrmEncounter.FormShow(Sender: TObject); 521 begin 522 //CQ7118 523 if cboPtProvider.Visible then 524 begin 525 cmdOK.Left := cboPtProvider.Left + cboPtProvider.Width + 1; 526 cmdCancel.Left := cboPtProvider.Left + cboPtProvider.Width + 1; 527 end 528 else 529 begin 530 cmdOK.Left := cmdDateRange.Left; 531 cmdCancel.Left := cmdDateRange.Left; 532 end; 533 534 cmdCancel.Top := cmdDateRange.Top - cmdCancel.Height - 10; 535 cmdOK.Top := cmdCancel.Top - cmdOK.Height - 1; 536 cmdCancel.Top := cmdOK.Top + cmdOK.Height + 1; 537 //end CQ7118 538 end; 539 475 540 end. -
cprs/branches/foia-cprs/CPRS-Chart/fFrame.dfm
r459 r460 1 1 object frmFrame: TfrmFrame 2 Left = 1453 Top = 1 912 Left = 77 3 Top = 123 4 4 Width = 684 5 Height = 4876 Caption = ' CPRS Frame'5 Height = 384 6 Caption = 'p' 7 7 Color = clBtnFace 8 8 Font.Charset = DEFAULT_CHARSET … … 30 30 Top = 0 31 31 Width = 676 32 Height = 44132 Height = 330 33 33 Align = alClient 34 34 Caption = 'No patient is currently selected' … … 46 46 Top = 0 47 47 Width = 676 48 Height = 44148 Height = 330 49 49 Align = alClient 50 50 TabOrder = 0 … … 75 75 Left = 0 76 76 Top = 1 77 Width = 2477 Width = 39 78 78 Height = 39 79 79 Align = alLeft … … 81 81 ParentShowHint = False 82 82 ShowHint = True 83 TabOrder = 783 TabOrder = 8 84 84 object imgCCOW: TImage 85 85 Left = 2 86 86 Top = 2 87 Width = 2087 Width = 35 88 88 Height = 35 89 Align = al Left89 Align = alClient 90 90 Center = True 91 91 Picture.Data = { … … 120 120 end 121 121 object pnlPatient: TKeyClickPanel 122 Left = 24122 Left = 39 123 123 Top = 1 124 124 Width = 187 … … 202 202 end 203 203 object pnlVisit: TKeyClickPanel 204 Left = 2 11204 Left = 226 205 205 Top = 1 206 206 Width = 168 … … 263 263 end 264 264 object pnlPrimaryCare: TKeyClickPanel 265 Left = 3 79265 Left = 394 266 266 Top = 1 267 Width = 104267 Width = 31 268 268 Height = 39 269 269 Hint = 'Primary Care Team / Primary Care Provider' … … 323 323 end 324 324 object pnlCIRN: TKeyClickPanel 325 Left = 5 18325 Left = 520 326 326 Top = 1 327 327 Width = 49 … … 338 338 ParentShowHint = False 339 339 ShowHint = True 340 TabOrder = 4340 TabOrder = 5 341 341 OnClick = pnlCIRNClick 342 342 OnEnter = pnlPrimaryCareEnter 343 343 OnExit = pnlPrimaryCareExit 344 OnMouseDown = pnlCIRNMouseDown 345 OnMouseUp = pnlCIRNMouseUp 344 346 object lblCIRN: TLabel 345 Left = 3346 Top = 4347 Width = 37347 Left = 2 348 Top = 2 349 Width = 45 348 350 Height = 13 351 Align = alTop 352 Alignment = taCenter 349 353 Caption = 'Remote' 350 354 Enabled = False 355 Font.Charset = DEFAULT_CHARSET 356 Font.Color = clBtnFace 357 Font.Height = -8 358 Font.Name = 'MS Sans Serif' 359 Font.Style = [] 360 ParentFont = False 351 361 OnClick = pnlCIRNClick 352 362 end 353 363 object lblCIRNData: TLabel 354 Left = 11355 Top = 22356 Width = 23364 Left = 2 365 Top = 15 366 Width = 45 357 367 Height = 13 368 Align = alTop 369 Alignment = taCenter 358 370 Caption = 'Data' 359 371 Enabled = False 372 Font.Charset = DEFAULT_CHARSET 373 Font.Color = clBtnFace 374 Font.Height = -8 375 Font.Name = 'MS Sans Serif' 376 Font.Style = [] 377 ParentFont = False 360 378 OnClick = pnlCIRNClick 361 379 end 380 object lblCIRNAvail: TLabel 381 Left = 2 382 Top = 28 383 Width = 45 384 Height = 9 385 Align = alClient 386 Alignment = taCenter 387 Font.Charset = DEFAULT_CHARSET 388 Font.Color = clBtnFace 389 Font.Height = -8 390 Font.Name = 'MS Sans Serif' 391 Font.Style = [] 392 ParentFont = False 393 OnClick = pnlCIRNClick 394 end 362 395 end 363 396 object pnlReminders: TKeyClickPanel 364 Left = 56 7397 Left = 569 365 398 Top = 1 366 399 Width = 35 … … 377 410 ParentShowHint = False 378 411 ShowHint = True 379 TabOrder = 5412 TabOrder = 6 380 413 TabStop = True 381 414 OnClick = pnlRemindersClick … … 405 438 end 406 439 object pnlFlag: TKeyClickPanel 407 Left = 48 3440 Left = 485 408 441 Top = 1 409 442 Width = 35 … … 415 448 ParentShowHint = False 416 449 ShowHint = True 417 TabOrder = 3450 TabOrder = 4 418 451 TabStop = True 419 452 OnClick = pnlFlagClick … … 445 478 end 446 479 object pnlPostings: TKeyClickPanel 447 Left = 60 2480 Left = 604 448 481 Top = 1 449 Width = 7 2482 Width = 70 450 483 Height = 39 451 484 Hint = 'Click to display patient postings.' … … 460 493 ParentShowHint = False 461 494 ShowHint = True 462 TabOrder = 6495 TabOrder = 7 463 496 TabStop = True 464 497 OnClick = pnlPostingsClick … … 468 501 OnMouseUp = pnlPostingsMouseUp 469 502 object lblPtPostings: TStaticText 470 Left = 6503 Left = 5 471 504 Top = 4 472 505 Width = 57 … … 509 542 end 510 543 end 544 object paVAA: TKeyClickPanel 545 Left = 425 546 Top = 1 547 Width = 60 548 Height = 39 549 Align = alRight 550 BevelOuter = bvNone 551 Font.Charset = DEFAULT_CHARSET 552 Font.Color = clBtnFace 553 Font.Height = -11 554 Font.Name = 'MS Sans Serif' 555 Font.Style = [] 556 ParentFont = False 557 ParentShowHint = False 558 ShowHint = False 559 TabOrder = 3 560 Visible = False 561 DesignSize = ( 562 60 563 39) 564 object laVAA2: TButton 565 Left = 0 566 Top = 19 567 Width = 59 568 Height = 20 569 Hint = 'Click to display patient insurance data' 570 Anchors = [akLeft, akTop, akRight, akBottom] 571 Caption = 'laVAA2' 572 ParentShowHint = False 573 ShowHint = True 574 TabOrder = 1 575 OnClick = laVAA2Click 576 end 577 object laMHV: TButton 578 Left = 0 579 Top = 1 580 Width = 59 581 Height = 18 582 Hint = 'Click to display MHV data' 583 Anchors = [akLeft, akTop, akRight, akBottom] 584 Caption = 'laMHV' 585 ParentShowHint = False 586 ShowHint = True 587 TabOrder = 0 588 OnClick = laMHVClick 589 end 590 end 511 591 end 512 592 object stsArea: TStatusBar 513 593 Left = 1 514 Top = 419594 Top = 308 515 595 Width = 674 516 596 Height = 21 … … 544 624 object tabPage: TTabControl 545 625 Left = 1 546 Top = 397626 Top = 286 547 627 Width = 674 548 628 Height = 22 … … 563 643 Top = 42 564 644 Width = 674 565 Height = 355645 Height = 244 566 646 Align = alClient 567 647 BevelOuter = bvNone … … 607 687 end 608 688 object mnuFrame: TMainMenu 609 Left = 68610 Top = 12 0689 Left = 180 690 Top = 128 611 691 object mnuFile: TMenuItem 612 692 Caption = '&File' … … 715 795 Tag = 8 716 796 Caption = '8 pt' 797 RadioItem = True 717 798 OnClick = mnuFontSizeClick 718 799 end … … 720 801 Tag = 10 721 802 Caption = '10 pt' 803 RadioItem = True 722 804 OnClick = mnuFontSizeClick 723 805 end … … 725 807 Tag = 12 726 808 Caption = '12 pt' 809 RadioItem = True 727 810 OnClick = mnuFontSizeClick 728 811 end … … 730 813 Tag = 14 731 814 Caption = '14 pt' 815 RadioItem = True 732 816 OnClick = mnuFontSizeClick 733 817 end … … 735 819 Tag = 18 736 820 Caption = '18 pt' 821 RadioItem = True 737 822 OnClick = mnuFontSizeClick 738 823 end … … 740 825 Tag = 24 741 826 Caption = '24 pt' 827 RadioItem = True 742 828 OnClick = mnuFontSizeClick 743 829 end … … 811 897 end 812 898 end 813 object mnuViewDemo: TMenuItem 814 Caption = 'De&mographics' 815 OnClick = mnuViewDemoClick 816 end 817 object mnuViewPostings: TMenuItem 818 Caption = '&Postings' 819 OnClick = mnuViewPostingsClick 820 end 821 object mnuViewReminders: TMenuItem 822 Caption = '&Reminders' 823 Enabled = False 824 OnClick = mnuViewRemindersClick 899 object mnuViewInformation: TMenuItem 900 Caption = 'Information' 901 OnClick = mnuViewInformationClick 902 object mnuViewDemo: TMenuItem 903 Tag = 1 904 Caption = 'De&mographics...' 905 OnClick = ViewInfo 906 end 907 object mnuViewVisits: TMenuItem 908 Tag = 2 909 Caption = 'Visits/Pr&ovider...' 910 OnClick = ViewInfo 911 end 912 object mnuViewPrimaryCare: TMenuItem 913 Tag = 3 914 Caption = 'Primary &Care...' 915 OnClick = ViewInfo 916 end 917 object mnuViewMyHealtheVet: TMenuItem 918 Tag = 4 919 Caption = 'MyHealthe&Vet...' 920 OnClick = ViewInfo 921 end 922 object mnuInsurance: TMenuItem 923 Tag = 5 924 Caption = '&Insurance...' 925 OnClick = ViewInfo 926 end 927 object mnuViewFlags: TMenuItem 928 Tag = 6 929 Caption = '&Flags...' 930 OnClick = ViewInfo 931 end 932 object mnuViewRemoteData: TMenuItem 933 Tag = 7 934 Caption = 'Remote &Data...' 935 OnClick = ViewInfo 936 end 937 object mnuViewReminders: TMenuItem 938 Tag = 8 939 Caption = '&Reminders...' 940 OnClick = ViewInfo 941 end 942 object mnuViewPostings: TMenuItem 943 Tag = 9 944 Caption = '&Postings...' 945 OnClick = ViewInfo 946 end 825 947 end 826 948 end … … 832 954 Caption = '-' 833 955 end 956 object mnuToolsGraphing: TMenuItem 957 Caption = '&Graphing...' 958 ShortCut = 16455 959 OnClick = mnuToolsGraphingClick 960 end 834 961 object LabInfo1: TMenuItem 835 962 Caption = '&Lab Test Information...' … … 837 964 end 838 965 object mnuToolsOptions: TMenuItem 839 Caption = ' Options...'966 Caption = '&Options...' 840 967 OnClick = mnuToolsOptionsClick 841 968 end … … 896 1023 object OROpenDlg: TOpenDialog 897 1024 Filter = 'Exe file (*.exe)|*.exe' 898 Left = 460899 Top = 3691025 Left = 260 1026 Top = 257 900 1027 end 901 1028 object popAlerts: TPopupMenu 902 1029 AutoPopup = False 903 Left = 440904 Top = 4161030 Left = 320 1031 Top = 200 905 1032 object mnuAlertContinue: TMenuItem 906 1033 Caption = 'Continue' … … 918 1045 object AppEvents: TApplicationEvents 919 1046 OnActivate = AppEventsActivate 920 Left = 496 921 Top = 368 1047 OnShortCut = AppEventsShortCut 1048 Left = 336 1049 Top = 256 922 1050 end 923 1051 end -
cprs/branches/foia-cprs/CPRS-Chart/fFrame.pas
r459 r460 5 5 {$OPTIMIZATION OFF} // REMOVE AFTER UNIT IS DEBUGGED 6 6 {$WARN SYMBOL_PLATFORM OFF} 7 {$DEFINE CCOWBROKER} 7 8 8 9 {.$define debug} … … 120 121 mnuAlertRenew: TMenuItem; 121 122 AppEvents: TApplicationEvents; 123 paVAA: TKeyClickPanel; 124 mnuToolsGraphing: TMenuItem; 125 laVAA2: TButton; 126 laMHV: TButton; 127 lblCIRNAvail: TLabel; 128 mnuViewInformation: TMenuItem; 129 mnuViewVisits: TMenuItem; 130 mnuViewPrimaryCare: TMenuItem; 131 mnuViewMyHealtheVet: TMenuItem; 132 mnuInsurance: TMenuItem; 133 mnuViewFlags: TMenuItem; 134 mnuViewRemoteData: TMenuItem; 122 135 procedure tabPageChange(Sender: TObject); 123 136 procedure FormCreate(Sender: TObject); … … 142 155 procedure mnuHelpBrokerClick(Sender: TObject); 143 156 procedure mnuFileEncounterClick(Sender: TObject); 144 procedure mnuViewDemoClick(Sender: TObject);145 157 procedure mnuViewPostingsClick(Sender: TObject); 146 158 procedure mnuHelpAboutClick(Sender: TObject); … … 171 183 function FormHelp(Command: Word; Data: Integer; 172 184 var CallHelp: Boolean): Boolean; 173 procedure mnuViewRemindersClick(Sender: TObject);174 185 procedure pnlRemindersMouseDown(Sender: TObject; Button: TMouseButton; 175 186 Shift: TShiftState; X, Y: Integer); … … 219 230 procedure AppEventsActivate(Sender: TObject); 220 231 procedure ScreenActiveFormChange(Sender: TObject); 232 procedure AppEventsShortCut(var Msg: TWMKey; var Handled: Boolean); 221 233 procedure mnuToolsClick(Sender: TObject); 234 procedure mnuToolsGraphingClick(Sender: TObject); 235 procedure pnlCIRNMouseDown(Sender: TObject; Button: TMouseButton; 236 Shift: TShiftState; X, Y: Integer); 237 procedure pnlCIRNMouseUp(Sender: TObject; Button: TMouseButton; 238 Shift: TShiftState; X, Y: Integer); 239 procedure laMHVClick(Sender: TObject); 240 procedure laVAA2Click(Sender: TObject); 241 procedure ViewInfo(Sender: TObject); 242 procedure mnuViewInformationClick(Sender: TObject); 222 243 private 223 244 FJustEnteredApp : boolean; … … 228 249 FCCOWBusy: boolean; 229 250 FCCOWError: boolean; 251 FNoPatientSelected: boolean; 230 252 FRefreshing: boolean; 231 253 FClosing: boolean; … … 242 264 FTabChanged: TNotifyEvent; 243 265 FOldActivate: TNotifyEvent; 266 FOldActiveFormChange: TNotifyEvent; 244 267 FECSAuthUser: Boolean; 245 268 FFixedStatusWidth: integer; … … 248 271 FFlagList: TStringList; 249 272 FPrevPtID: string; 273 FVitalsDLLActive: boolean; 274 FGraphFloatActive: boolean; 275 FGraphContext: string; 250 276 procedure RefreshFixedStatusWidth; 277 procedure FocusApplicationTopForm; 251 278 procedure AppActivated(Sender: TObject); 252 279 procedure AppDeActivated(Sender: TObject); … … 272 299 procedure SetDebugMenu; 273 300 procedure SetupPatient(AFlaggedList : TStringList = nil); 274 procedure SetUpCIRN;301 //procedure SetUpCIRN; 275 302 procedure RemindersChanged(Sender: TObject); 276 303 procedure ReportsOnlyDisplay; … … 283 310 procedure UpdateECSParameter(var CmdParameter: string); 284 311 function ValidECSUser: boolean; 285 function AllowCCOWContextChange(NewDFN: string): boolean; 312 procedure StartCCOWContextor; 313 function AllowCCOWContextChange(var CCOWResponse: UserResponse; NewDFN: string): boolean; 286 314 procedure UpdateCCOWContext; 287 315 procedure CheckHyperlinkResponse(aContextItemCollection: IDispatch; var HyperlinkReason: string); 288 316 procedure CheckForDifferentPatient(aContextItemCollection: IDispatch; var PtChanged: boolean); 317 {$IFDEF CCOWBROKER} 318 procedure CheckForDifferentUser(aContextItemCollection: IDispatch; var UserChanged: boolean); 319 {$ENDIF} 289 320 procedure HideEverything; 290 321 procedure ShowEverything; 291 322 //function FindBestCCOWDFN(var APatientName: string): string; 292 function 323 function FindBestCCOWDFN: string; 293 324 procedure HandleCCOWError(AMessage: string); 294 325 public 295 326 EnduringPtSelSplitterPos: integer; 296 327 procedure SetBADxList; 297 328 … … 309 340 property Closing: Boolean read FClosing; 310 341 property OnTabChanged: TNotifyEvent read FTabChanged write FTabChanged; 342 property VitalsDLLActive: boolean read FVitalsDLLActive write FVitalsDLLActive; 343 property GraphFloatActive: boolean read FGraphFloatActive write FGraphFloatActive; 344 property GraphContext: string read FGraphContext write FGraphContext; 345 procedure ToggleMenuItemChecked(Sender: TObject); 346 procedure SetUpCIRN; 311 347 end; 312 348 … … 331 367 uses 332 368 ORNet, rCore, fPtSelMsg, fPtSel, fCover, fProbs, fMeds, fOrders, rOrders, fNotes, fConsults, fDCSumm, 333 rMisc, Clipbrd, fLabs, fReports, fPtDemo, fEncnt, fPtCWAD, uCore, fAbout, fReview, fxBroker,369 rMisc, Clipbrd, fLabs, fReports, rReports, fPtDemo, fEncnt, fPtCWAD, uCore, fAbout, fReview, fxBroker, 334 370 fxLists, fxServer, ORSystem, fRptBox, fSplash, rODAllergy, uInit, fLabTests, fLabInfo, 335 371 uReminders, fReminderTree, ORClasses, fDeviceSelect, fDrawers, fReminderDialog, ShellAPI, rVitals, 336 fOptions, rTemplates, fSurgery, rSurgery, uEventHooks, uSignItems, fDefaultEvent,rECS,372 fOptions, fGraphs, rTemplates, fSurgery, rSurgery, uEventHooks, uSignItems, fDefaultEvent,rECS, 337 373 fIconLegend, uOrders, fPtSelOptns, DateUtils, uSpell, uOrPtf, fPatientFlagMulti, 338 fAlertForward, UBAGlobals, fBAOptionsDiagnoses,UBACore,fOrdersSign; 374 fAlertForward, UBAGlobals, fBAOptionsDiagnoses, UBACore, fOrdersSign, uVitals, fOrdersRenew, uFormMonitor 375 {$IFDEF CCOWBROKER} 376 , CCOW_const 377 {$ENDIF} 378 ; 379 380 var // RV 05/11/04 381 IsRunExecuted: Boolean = FALSE; // RV 05/11/04 382 GraphFloat: TfrmGraphs; 339 383 340 384 const … … 410 454 procedure TfrmFrame.TimeOutAction; 411 455 begin 412 Close; 456 if frmFrame.VitalsDLLActive then 457 CloseVitalsDLL() 458 else 459 Close; 413 460 end; 414 461 … … 460 507 FContextChanging := True; 461 508 Result := True; 462 if COMObjectActive or SpellCheckInProgress then509 if COMObjectActive or SpellCheckInProgress or VitalsDLLActive then 463 510 begin 464 511 Reason := 'COM_OBJECT_ACTIVE'; … … 531 578 HasFlag := False; 532 579 HidePatientSelectMessages; 580 if (GraphFloat <> nil) and GraphFloatActive then 581 with GraphFloat do 582 begin 583 Initialize; 584 DisplayData('top'); 585 DisplayData('bottom'); 586 lstCheck.Items.Clear; 587 Caption := 'CPRS Graphing - Patient: ' + MixedCase(Patient.Name); 588 end; 533 589 end; 534 590 … … 564 620 FJustEnteredApp := false; 565 621 SizeHolder := TSizeHolder.Create; 622 FOldActiveFormChange := Screen.OnActiveFormChange; 566 623 Screen.OnActiveFormChange := ScreenActiveFormChange; 567 624 if not (ParamSearch('CCOW')='DISABLE') then 568 625 try 569 ctxContextor := TContextorControl.Create(Self); 570 with ctxContextor do 571 begin 572 OnPending := ctxContextorPending; 573 OnCommitted := ctxContextorCommitted; 574 OnCanceled := ctxContextorCanceled; 575 end; 576 FCCOWBusy := False; 577 FCCOWInstalled := True; 578 FCCOWDrivedChange := False; 626 StartCCOWContextor; 579 627 except 628 IsRunExecuted := False; 580 629 FCCOWInstalled := False; 581 630 pnlCCOW.Visible := False; … … 585 634 else 586 635 begin 636 IsRunExecuted := False; 587 637 FCCOWInstalled := False; 588 638 pnlCCOW.Visible := False; … … 603 653 FCreateProgress := FCP_SERVER; 604 654 655 {$IFDEF CCOWBROKER} 656 EnsureBroker; 657 if ctxContextor <> nil then 658 begin 659 if ParamSearch('CCOW') = 'PATIENTONLY' then 660 RPCBrokerV.Contextor := nil 661 else 662 RPCBrokerV.Contextor := ctxContextor; 663 end 664 else 665 RPCBrokerV.Contextor := nil; 666 {$ENDIF} 667 605 668 if not ConnectToServer(TX_OPTION) then 606 669 begin 670 if Assigned(RPCBrokerV) then 671 InfoBox(RPCBrokerV.RPCBError, 'Error', MB_OK or MB_ICONERROR); 607 672 Close; 608 673 Exit; 674 end; 675 676 if ctxContextor <> nil then 677 begin 678 if not (ParamSearch('CCOW') = 'PATIENTONLY') then 679 ctxContextor.NotificationFilter := ctxContextor.NotificationFilter + ';User'; 609 680 end; 610 681 … … 616 687 FOldActivate := Application.OnActivate; 617 688 Application.OnActivate := AppActivated; 618 Application.OnDe activate := AppDeActivated;619 689 Application.OnDeActivate := AppDeActivated; 690 620 691 // create initial core objects 621 692 FCreateProgress := FCP_OBJECTS; … … 695 766 HasFlag := False; 696 767 FlagList := TStringList.Create; 697 FPrevPtID := '';698 768 // set up structures specific to the user 699 769 Caption := TX_IN_USE + MixedCase(User.Name) + ' (' + RPCBrokerV.Server + ')'; … … 729 799 FCreateProgress := FCP_FINISH; 730 800 pnlReminders.Visible := InteractiveRemindersActive; 801 GraphFloatActive := false; 802 GraphContext := ''; 731 803 uRemoteType := ''; 804 FPrevPtID := ''; 732 805 SetUserTools; 733 806 EnduringPtSelSplitterPos := 0; … … 736 809 InitialOrderVariables; 737 810 PostMessage(Handle, UM_INITIATE, 0, 0); // select patient after main form is created 738 739 811 // mnuFileOpenClick(Self); 740 812 // if Patient.DFN = '' then //*DFN* … … 744 816 // end; 745 817 // if WindowState = wsMinimized then WindowState := wsNormal; 746 end; 747 748 procedure TfrmFrame.UMInitiate(var Message: TMessage); 749 begin 750 NotifyOtherApps(NAE_OPEN, IntToStr(User.DUZ)); 751 752 if FCCOWInstalled then // Please see me re: changes here - Thanks - RV. 818 SetFormMonitoring(true); 819 end; 820 821 procedure TfrmFrame.StartCCOWContextor; 822 begin 753 823 try 754 // To re-enable the multiple instance functionality, remove the '#' from the following line 755 ctxContextor.Run('CPRSChart', '', TRUE, '*'); 756 757 // Uncomment the following line to run in secure binding mode, once the vault is configured to do so. 758 // Also comment out the 'ctxContextor.Run' line above. 759 //ctxContextor.Run('CPRSChart', PASSCODE, TRUE, '*'); 824 ctxContextor := TContextorControl.Create(Self); 825 with ctxContextor do 826 begin 827 OnPending := ctxContextorPending; 828 OnCommitted := ctxContextorCommitted; 829 OnCanceled := ctxContextorCanceled; 830 end; 831 FCCOWBusy := False; 832 FCCOWInstalled := True; 833 FCCOWDrivedChange := False; 834 ctxContextor.Run('CPRSChart', '', TRUE, 'Patient'); 835 IsRunExecuted := True; 760 836 except 761 837 on exc : EOleException do 762 begin 763 try 764 // Uncomment the following line to run in secure binding mode, once the vault is configured to do so. 765 ctxContextor.Run('CPRSChart' + '#', '', TRUE, '*'); 766 //ctxContextor.Run('CPRSChart' + '#', PASSCODE, TRUE, '*'); 767 768 if ParamSearch('CCOW') = 'FORCE' then 838 begin 839 IsRunExecuted := False; 840 FreeAndNil(ctxContextor); 841 try 842 ctxContextor := TContextorControl.Create(Self); 843 with ctxContextor do 769 844 begin 770 mnuFileResumeContext.Enabled := False; 771 mnuFileBreakContext.Visible := True; 772 mnuFileBreakContext.Enabled := True; 773 end 774 else 775 begin 776 ctxContextor.Suspend; 777 mnuFileResumeContext.Visible := True; 778 mnuFileBreakContext.Visible := True; 779 mnuFileBreakContext.Enabled := False; 845 OnPending := ctxContextorPending; 846 OnCommitted := ctxContextorCommitted; 847 OnCanceled := ctxContextorCanceled; 780 848 end; 781 except 782 on exc : EOleException do 783 begin 784 FCCOWInstalled := False; 785 pnlCCOW.Visible := False; 786 mnuFileResumeContext.Visible := False; 787 mnuFileBreakContext.Visible := False; 788 end; 849 FCCOWBusy := False; 850 FCCOWInstalled := True; 851 FCCOWDrivedChange := False; 852 ctxContextor.Run('CPRSChart' + '#', '', TRUE, 'Patient'); 853 IsRunExecuted := True; 854 if ParamSearch('CCOW') = 'FORCE' then 855 begin 856 mnuFileResumeContext.Enabled := False; 857 mnuFileBreakContext.Visible := True; 858 mnuFileBreakContext.Enabled := True; 859 end 860 else 861 begin 862 ctxContextor.Suspend; 863 mnuFileResumeContext.Visible := True; 864 mnuFileBreakContext.Visible := True; 865 mnuFileBreakContext.Enabled := False; 789 866 end; 790 end; // on exc 791 end; // try/except 792 867 except 868 IsRunExecuted := False; 869 FCCOWInstalled := False; 870 FreeAndNil(ctxContextor); 871 pnlCCOW.Visible := False; 872 mnuFileResumeContext.Visible := False; 873 mnuFileBreakContext.Visible := False; 874 end; 875 end; 876 end 877 end; 878 879 procedure TfrmFrame.UMInitiate(var Message: TMessage); 880 begin 881 NotifyOtherApps(NAE_OPEN, IntToStr(User.DUZ)); 793 882 LoadUserPreferences; 794 GetBAStatus(User.DUZ, Encounter.Location);883 GetBAStatus(User.DUZ,Patient.DFN); 795 884 mnuFileOpenClick(Self); 796 885 Enabled := True; … … 803 892 begin 804 893 Application.OnActivate := FOldActivate; 894 Screen.OnActiveFormChange := FOldActiveFormChange; 805 895 FNextButtonBitmap.Free; 806 896 uTabList.Free; … … 814 904 User.Free; 815 905 SizeHolder.Free; 906 ctxContextor.Free; 816 907 end; 817 908 … … 833 924 834 925 procedure TfrmFrame.SetUserTools; 835 const836 TX_M_NOT_CONFIG = 'Tools/Options menu on M side not configured properly -'+837 ' please notify your IRM support immediately';838 TC_M_NOT_CONFIG = 'Warning: Check Tools/Options Menu in M';839 926 var 840 927 ToolItems: TToolItemList; … … 885 972 UserTool.Hint := Action; 886 973 UserTool.OnClick := ToolClick; 887 if i < mnuTools.Count then 888 mnuTools.Insert(i, UserTool) 889 else 890 begin 891 mnuTools.Add(UserTool); 892 InfoBox(TX_M_NOT_CONFIG, TC_M_NOT_CONFIG, MB_ICONWARNING or MB_OK) 893 end; 974 mnuTools.Insert(i, UserTool); 894 975 end; 895 976 end; … … 965 1046 begin 966 1047 FClosing := TRUE; 1048 SetFormMonitoring(false); 967 1049 if FCreateProgress < FCP_FINISH then FTerminate := True; 968 1050 … … 970 1052 if FCreateProgress = FCP_FINISH then NotifyOtherApps(NAE_CLOSE, ''); 971 1053 TerminateOtherAppNotification; 1054 1055 if GraphFloat <> nil then 1056 begin 1057 if frmFrame.GraphFloatActive then 1058 GraphFloat.Close; 1059 GraphFloat.Release; 1060 end; 972 1061 973 1062 // unhook the timeout hooks … … 976 1065 if FCreateProgress = FCP_FINISH then Changes.Clear; 977 1066 // clear server side flag global tmp 978 ClearFlag;1067 if FCreateProgress = FCP_FINISH then ClearFlag; 979 1068 // save user preferences 980 1069 if FCreateProgress = FCP_FINISH then SaveUserPreferences; … … 1005 1094 //Application.ProcessMessages; // so everything finishes closing 1006 1095 // if < FCP_FINISH we came here from inside FormCreate, so need to call terminate 1096 //if GraphFloat <> nil then GraphFloat.Release; 1007 1097 if FCreateProgress < FCP_FINISH then Application.Terminate; 1008 1098 end; … … 1234 1324 NotifyOtherApps(NAE_NEWPT, SSN + U + FloatToStr(DOB) + U + Name); 1235 1325 SelectMsg := ''; 1236 if (not FRefreshing) then1237 begin1238 if not Assigned(AFlaggedList) then ShowFlags1239 else if (AFlaggedList.IndexOf(Patient.DFN) < 0) then ShowFlags;1240 end;1241 1326 if MeansTestRequired(Patient.DFN, AMsg) then SelectMsg := AMsg; 1242 1327 if HasLegacyData(Patient.DFN, AMsg) then SelectMsg := SelectMsg + CRLF + AMsg; 1328 1243 1329 HasActiveFlg(FlagList, HasFlag, Patient.DFN); 1244 if FPrevPtID <> patient.DFN then 1245 begin 1246 if HasFlag then 1247 begin 1248 pnlFlag.Enabled := True; 1249 lblFlag.Font.Color := clMaroon; 1250 lblFlag.Enabled := True; 1251 if not FReFreshing then 1252 ShowFlags; 1253 end else 1254 begin 1255 pnlFlag.Enabled := False; 1256 lblFlag.Font.Color := clBtnFace; 1257 lblFlag.Enabled := False; 1258 end; 1259 FPrevPtID := patient.DFN; 1330 if HasFlag then 1331 begin 1332 pnlFlag.Enabled := True; 1333 lblFlag.Font.Color := clMaroon; 1334 lblFlag.Enabled := True; 1335 if (not FReFreshing) and (TriggerPRFPopUp(Patient.DFN)) then 1336 ShowFlags; 1337 end else 1338 begin 1339 pnlFlag.Enabled := False; 1340 lblFlag.Font.Color := clBtnFace; 1341 lblFlag.Enabled := False; 1260 1342 end; 1261 1343 FPrevPtID := patient.DFN; 1344 frmCover.UpdateVAAButton; //VAA CQ7525 (moved here in v26.30 (RV)) 1262 1345 ProcessPatientChangeEventHook; 1263 1346 if Length(SelectMsg) > 0 then ShowPatientSelectMessages(SelectMsg); … … 1270 1353 NextIndex: Integer; 1271 1354 Reason: string; 1355 CCOWResponse: UserResponse; 1272 1356 begin 1273 1357 SaveDFN := Patient.DFN; … … 1293 1377 HasActiveFlg(FlagList, HasFlag, NewDFN); 1294 1378 end; 1295 if (FCCOWInstalled and (ctxContextor.State = csSuspended)) or (AllowCCOWContextChange( Patient.DFN)) then1379 if (FCCOWInstalled and (ctxContextor.State = csSuspended)) or (AllowCCOWContextChange(CCOWResponse, Patient.DFN)) then 1296 1380 begin 1297 1381 if Patient.Inpatient then … … 1333 1417 mnuFileNotifRemove.Enabled := Notifications.Followup in [NF_FLAGGED_ORDERS, 1334 1418 NF_ORDER_REQUIRES_ELEC_SIGNATURE, 1335 NF_MEDICATIONS_EXPIRING, 1419 NF_MEDICATIONS_EXPIRING_INPT, 1420 NF_MEDICATIONS_EXPIRING_OUTPT, 1336 1421 NF_UNVERIFIED_MEDICATION_ORDER, 1337 1422 NF_UNVERIFIED_ORDER, … … 1361 1446 NextIndex := PageIDToTab(CT_REPORTS); 1362 1447 NF_DNR_EXPIRING : NextIndex := PageIDToTab(CT_ORDERS); 1363 NF_MEDICATIONS_EXPIRING : NextIndex := PageIDToTab(CT_ORDERS); 1448 NF_MEDICATIONS_EXPIRING_INPT : NextIndex := PageIDToTab(CT_ORDERS); 1449 NF_MEDICATIONS_EXPIRING_OUTPT : NextIndex := PageIDToTab(CT_ORDERS); 1364 1450 NF_UNVERIFIED_MEDICATION_ORDER : NextIndex := PageIDToTab(CT_ORDERS); 1365 1451 NF_NEW_ORDER : NextIndex := PageIDToTab(CT_ORDERS); … … 1431 1517 SaveDFN, Reason: string; 1432 1518 //NextTab: Integer; // moved up for visibility - v23.4 rV 1433 ok, OldRemindersStarted : boolean;1519 ok, OldRemindersStarted, PtSelCancelled: boolean; 1434 1520 //i: smallint; 1435 begin 1521 CCOWResponse: UserResponse; 1522 begin 1523 PtSelCancelled := FALSE; 1436 1524 DetermineNextTab; 1437 1525 (* if (FRefreshing or User.UseLastTab) and (not FFirstLoad) then … … 1471 1559 end; 1472 1560 1473 SaveDFN := Patient.DFN; 1561 if FNoPatientSelected then 1562 SaveDFN := '' 1563 else 1564 SaveDFN := Patient.DFN; 1565 1474 1566 OldRemindersStarted := RemindersStarted; 1475 1567 RemindersStarted := FALSE; … … 1502 1594 end; 1503 1595 if (Patient.DFN = '') or (Sender = mnuFileOpen) or (Sender = mnuFileNext) or (Sender = mnuViewDemo) then 1504 SelectPatient(SHOW_NOTIFICATIONS, Font.Size); 1596 SelectPatient(SHOW_NOTIFICATIONS, Font.Size, PtSelCancelled); 1597 if PtSelCancelled then exit; 1505 1598 ShowEverything; 1506 1599 DisplayEncounterText; … … 1536 1629 begin 1537 1630 Notifications.Clear; 1538 SelectPatient(False, Font.Size); // Call Pt. Sel. w/o notifications. 1631 SelectPatient(False, Font.Size, PtSelCancelled); // Call Pt. Sel. w/o notifications. 1632 if PtSelCancelled then exit; 1539 1633 ShowEverything; 1540 DisplayEncounterText; 1634 DisplayEncounterText; 1541 1635 FPrevInPatient := Patient.Inpatient; 1542 1636 ok := TRUE; … … 1547 1641 if FCCOWInstalled and (ctxContextor.State = csParticipating) and (not FRefreshing) then 1548 1642 begin 1549 if (AllowCCOWContextChange( Patient.DFN)) then1643 if (AllowCCOWContextChange(CCOWResponse, Patient.DFN)) then 1550 1644 begin 1551 1645 SetupPatient; … … 1555 1649 else 1556 1650 begin 1557 Patient.DFN := SaveDFN; 1558 SetupPatient; 1559 tabPage.TabIndex := PageIDToTab(NextTab); 1560 tabPageChange(tabPage); 1651 case CCOWResponse of 1652 urCancel: UpdateCCOWContext; 1653 urBreak: 1654 begin 1655 // do not revert to old DFN if context was manually broken by user - v26 (RV) 1656 if (ctxContextor.State = csParticipating) then Patient.DFN := SaveDFN; 1657 SetupPatient; 1658 tabPage.TabIndex := PageIDToTab(NextTab); 1659 tabPageChange(tabPage); 1660 end; 1661 end; 1561 1662 end; 1562 1663 end … … 1576 1677 if BILLING_AWARE then frmFrame.SetBADxList; //end IsBillingAware 1577 1678 {End BillingAware} 1578 1679 //frmCover.UpdateVAAButton; //VAA CQ7525 CQ#7933 - moved to SetupPatient, before event hook execution (RV) 1579 1680 end; 1580 1681 … … 1669 1770 { View Menu Events ------------------------------------------------------------------------- } 1670 1771 1671 procedure TfrmFrame.mnuViewDemoClick(Sender: TObject);1672 { displays patient inquiry report (which optionally allows new patient to be selected) }1673 var1674 SelectNew: Boolean;1675 begin1676 StatusText(TX_PTINQ);1677 PatientInquiry(SelectNew);1678 if Assigned(FLastPage) then1679 FLastPage.FocusFirstControl;1680 StatusText('');1681 if SelectNew then mnuFileOpenClick(mnuViewDemo);1682 end;1683 1684 1772 procedure TfrmFrame.mnuViewPostingsClick(Sender: TObject); 1685 { displays the window that shows crisis notes, warnings, allergies, & advance directives } 1686 begin 1687 ShowCWAD; 1773 begin 1688 1774 end; 1689 1775 … … 1933 2019 { emulate a button press in the patient identification panel } 1934 2020 begin 2021 if pnlPatient.BevelOuter = bvLowered then exit; 1935 2022 pnlPatient.BevelOuter := bvLowered; 1936 2023 with lblPtName do SetBounds(Left+2, Top+2, Width, Height); … … 1943 2030 { emulate the button raising in the patient identification panel & call Patient Inquiry } 1944 2031 begin 2032 if pnlPatient.BevelOuter = bvRaised then exit; 1945 2033 pnlPatient.BevelOuter := bvRaised; 1946 2034 with lblPtName do SetBounds(Left-2, Top-2, Width, Height); … … 2034 2122 SetUserBounds2(RemDlgSplitters, RemDlgSpltr1, RemDlgSpltr2, Dummy ,Dummy); 2035 2123 SetUserBounds2(DrawerSplitters,s1, s2, s3, Dummy); 2124 if Assigned(frmSurgery) then frmSurgery.Drawers.LastOpenSize := Dummy; //CQ7315 2036 2125 frmNotes.Drawers.LastOpenSize := s1; 2037 2126 frmConsults.Drawers.LastOpenSize := s2; … … 2045 2134 frmMeds.pnlBottom.Height := panelBottom; 2046 2135 frmMeds.pnlMedIn.Height := panelMedIn; 2136 //Meds Tab Non-VA meds columns 2137 SetUserColumns(TControl(hdrMedsNonVA)); //CQ7314 2047 2138 end; 2048 2139 2049 frmCover.DisableAlign;2140 frmCover.DisableAlign; 2050 2141 try 2051 2142 SetUserBounds2(CoverSplitters1, s1, s2, s3, s4); … … 2076 2167 var 2077 2168 SizeList: TStringList; 2169 SurgTempHt: integer; 2078 2170 begin 2079 2171 SaveUserFontSize(MainFontSize); … … 2098 2190 Add(StrUserBounds2(RemDlgName, RemDlgLeft, RemDlgTop, RemDlgWidth, RemDlgHeight)); 2099 2191 Add(StrUserBounds2(RemDlgSplitters, RemDlgSpltr1, RemDlgSpltr2, 0 ,0)); 2192 2193 //v26.47 - RV - access violation if Surgery Tab not enabled. Set to designer height as default. 2194 if Assigned(frmSurgery) then SurgTempHt := frmSurgery.Drawers.pnlTemplates.Height else SurgTempHt := 85; 2100 2195 Add(StrUserBounds2(DrawerSplitters, frmNotes.Drawers.LastOpenSize, 2101 2196 frmConsults.Drawers.LastOpenSize, 2102 frmDCSumm.Drawers.LastOpenSize,0)); 2197 frmDCSumm.Drawers.LastOpenSize, 2198 SurgTempHt)); // last parameter = CQ7315 2199 2103 2200 Add(StrUserBounds2(CoverSplitters1, 2104 2201 frmCover.pnl_1.Width, … … 2114 2211 //Meds Tab Splitters 2115 2212 Add(StrUserBounds2(frmMeds.Name+'Split',frmMeds.pnlBottom.Height,frmMeds.pnlMedIn.Height,0,0)); 2213 2214 //Meds Tab Non-VA meds columns 2215 Add(StrUserColumns(fMeds.frmMeds.hdrMedsNonVA)); //CQ7314 2216 2217 //Orders Tab columns 2218 Add(StrUserColumns(fOrders.frmOrders.hdrOrders)); //CQ6328 2116 2219 2117 2220 if EnduringPtSelSplitterPos <> 0 then … … 2185 2288 with lstCIRNLocations do Font.Size := NewFontSize; 2186 2289 with tabPage do Font.Size := NewFontSize; 2290 with laMHV do Font.Size := NewFontSize; //VAA 2291 with laVAA2 do Font.Size := NewFontSize; //VAA 2187 2292 2188 2293 tabPage.Height := MainFontHeight + TAB_VOFFSET; // resize tab selector … … 2192 2297 stsArea.Panels[0].Width := ResizeWidth( OldFont, Font, stsArea.Panels[0].Width); 2193 2298 stsArea.Panels[2].Width := ResizeWidth( OldFont, Font, stsArea.Panels[2].Width); 2299 2300 //VAA CQ8271 2301 if ((fCover.PtIsVAA and fCover.PtIsMHV)) then 2302 begin 2303 laMHV.Height := (pnlToolBar.Height div 2) -1; 2304 with laVAA2 do 2305 begin 2306 Top := laMHV.Top + laMHV.Height; 2307 Height := (pnlToolBar.Height div 2) -1; 2308 end; 2309 end; 2310 //end VAA 2311 2194 2312 RefreshFixedStatusWidth; 2195 2313 FormResize( self ); … … 2206 2324 lblPtCWAD.Font.Color := clWindowText; 2207 2325 lblFlag.Font.Color := clWindowText; 2326 end; 2327 2328 case (NewFontSize) of 2329 8: mnu8pt.Checked := true; 2330 10: mnu10pt1.Checked := true; 2331 12: mnu12pt1.Checked := true; 2332 14: mnu14pt1.Checked := true; 2333 18: mnu18pt1.Checked := true; 2334 24: mnu24pt1.Checked := true; 2208 2335 end; 2209 2336 … … 2223 2350 if Assigned(frmRemDlg) then frmRemDlg.SetFontSize; 2224 2351 if Assigned(frmReminderTree) then frmReminderTree.SetFontSize(NewFontSize); 2352 if GraphFloat <> nil then ResizeAnchoredFormToFont(GraphFloat); 2225 2353 end; 2226 2354 … … 2231 2359 VISIT_WIDTH = 36; 2232 2360 POSTING_WIDTH = 11.5; 2233 FLAG_WIDTH = 5;2361 FLAG_WIDTH = 5; 2234 2362 CIRN_WIDTH = 7; 2363 MHV_WIDTH = 6; 2235 2364 LINES_HIGH = 2; 2236 2365 M_HORIZ = 4; … … 2239 2368 M_WVERT = 6; 2240 2369 TINY_MARGIN = 2; 2241 var2242 WidthNeeded: integer;2370 //var 2371 //WidthNeeded: integer; 2243 2372 begin 2244 2373 pnlToolbar.Height := (LINES_HIGH * lblPtName.Height) + M_HORIZ + M_MIDDLE + M_HORIZ; … … 2257 2386 pnlFlag.Width := Round(FLAG_WIDTH * MainFontWidth); 2258 2387 pnlFlag.Width := Round(FLAG_WIDTH * MainFontWidth); 2259 pnlCIRN.Width := Round(CIRN_WIDTH * MainFontWidth) + M_WVERT; 2388 pnlCIRN.Width := Round(CIRN_WIDTH * MainFontWidth) + M_WVERT; 2389 paVAA.Width := Round(MHV_WIDTH * MainFontWidth) + M_WVERT; 2260 2390 with lblPtPostings do 2261 2391 SetBounds(M_WVERT, M_HORIZ, pnlPostings.Width-M_WVERT-M_WVERT, lblPtName.Height); … … 2274 2404 end; 2275 2405 //If that is not enough, add scroll bars to form 2276 if pnlPrimaryCare.Width < HigherOf( lblPtCare.Left + lblPtCare.Width, lblPtAttending.Left + lblPtAttending.Width) + TINY_MARGIN then2406 {if pnlPrimaryCare.Width < HigherOf( lblPtCare.Left + lblPtCare.Width, lblPtAttending.Left + lblPtAttending.Width) + TINY_MARGIN then 2277 2407 begin 2278 2408 WidthNeeded := HigherOf( lblPtCare.Left + lblPtCare.Width, lblPtAttending.Left + lblPtAttending.Width) + TINY_MARGIN - pnlPrimaryCare.Width; … … 2280 2410 Width := Width + WidthNeeded; 2281 2411 end 2282 else 2412 else } // commented out - BA 2283 2413 HorzScrollBar.Range := 0; 2284 2414 end; 2285 2415 2286 2416 { Temporary Calls -------------------------------------------------------------------------- } 2417 2418 procedure TfrmFrame.ToggleMenuItemChecked(Sender: TObject); 2419 begin 2420 with (Sender as TMenuItem) do 2421 begin 2422 if not Checked then 2423 Checked := true 2424 else 2425 Checked := false; 2426 end; 2427 end; 2287 2428 2288 2429 procedure TfrmFrame.mnuFontSizeClick(Sender: TObject); … … 2290 2431 if (frmRemDlg <> nil) then 2291 2432 ShowMessage('Please close the reminder dialog before changing font sizes.') 2292 else if (dlgProbs <> nil) then 2433 else 2434 if (dlgProbs <> nil) then 2293 2435 ShowMessage('Font size cannot be changed while adding or editing a problem.') 2294 2436 else 2295 with Sender as TMenuItem do ChangeFont(Tag); 2437 begin 2438 with (Sender as TMenuItem) do 2439 begin 2440 ToggleMenuItemChecked(Sender); 2441 fMeds.oldFont := MainFontSize; //CQ9182 2442 ChangeFont(Tag); 2443 end; 2444 end; 2296 2445 end; 2297 2446 … … 2413 2562 inherited; 2414 2563 end; 2415 end; 2416 2417 procedure TfrmFrame.mnuViewRemindersClick(Sender: TObject); 2418 begin 2419 ViewReminderTree; 2564 if Message.WParam = SC_MAXIMIZE then 2565 begin 2566 // form becomes maximized; 2567 frmOrders.mnuOptimizeFieldsClick(self); 2568 frmProblems.mnuOptimizeFieldsClick(self); 2569 frmMeds.mnuOptimizeFieldsClick(self); 2570 end 2571 else if Message.WParam = SC_MINIMIZE then 2572 begin 2573 // form becomes maximized; 2574 end 2575 else if Message.WParam = SC_RESTORE then 2576 begin 2577 // form is restored (from maximized); 2578 frmOrders.mnuOptimizeFieldsClick(self); 2579 frmProblems.mnuOptimizeFieldsClick(self); 2580 frmMeds.mnuOptimizeFieldsClick(self); 2581 end; 2420 2582 end; 2421 2583 … … 2423 2585 var 2424 2586 ImgName: string; 2425 2426 2587 begin 2427 2588 pnlReminders.tag := HAVE_REMINDERS; … … 2497 2658 pnlReminders.BevelOuter := bvRaised; 2498 2659 if(pnlReminders.tag = HAVE_REMINDERS) then 2499 mnuViewRemindersClick(Self);2660 ViewInfo(mnuViewReminders); 2500 2661 end; 2501 2662 … … 2505 2666 var 2506 2667 i: integer; 2668 aAutoQuery: string; 2507 2669 ASite: TRemoteSite; 2508 2670 begin 2509 2671 with RemoteSites do 2672 if UseVistaWeb then 2510 2673 begin 2511 2674 ChangePatient(Patient.DFN); 2675 lblCIRN.Caption := 'Remote'; //VistaWeb On 2676 lblCIRNData.Caption := 'Data*'; 2677 pnlCIRN.Caption := 'Remote Data'; 2678 lblCIRN.Width := 43; 2679 lblCIRNData.Width := 43; 2680 lblCIRNData.Alignment := taCenter; 2681 lblCIRN.Alignment := taCenter; 2682 lblCIRN.Enabled := True; 2683 lblCIRNData.Enabled := True; 2684 lblCIRNAvail.Enabled := True; 2685 pnlCIRN.TabStop := True; 2512 2686 if RemoteDataExists and (RemoteSites.Count > 0) then 2513 2687 begin 2514 2688 lblCIRN.Enabled := True; 2515 2689 lblCIRNData.Enabled := True; 2690 lblCIRNAvail.Enabled := True; 2516 2691 pnlCIRN.TabStop := True; 2517 2692 if ColorToRGB(clWindowText) = ColorToRGB(clBlack) then … … 2519 2694 lblCIRN.Font.Color := clBlue; 2520 2695 lblCIRNData.Font.Color := clBlue; 2696 lblCIRNAvail.Font.Color := clBlue; 2521 2697 lstCIRNLocations.Font.Color := clBlue; 2698 lblCIRN.Caption := 'Remote'; 2699 lblCIRNData.Caption := 'Data*'; 2700 lblCIRNAvail.Caption := 'Available'; 2701 pnlCIRN.Caption := 'Remote Data Available'; 2522 2702 end 2523 2703 else … … 2525 2705 lblCIRN.Font.Color := clWindowText; 2526 2706 lblCIRNData.Font.Color := clWindowText; 2707 lblCIRNAvail.Font.Color := clWindowText; 2527 2708 lstCIRNLocations.Font.Color := clWindowText; 2528 2709 end; 2710 end 2711 else 2712 begin 2713 lblCIRN.Font.Color := clWindowText; 2714 lblCIRNData.Font.Color := clWindowText; 2715 lblCIRNAvail.Font.Color := clWindowText; 2716 lblCIRN.Enabled := False; 2717 lblCIRNData.Enabled := False; 2718 lblCIRNAvail.Enabled := False; 2719 pnlCIRN.TabStop := False; 2720 pnlCIRN.Hint := NoDataReason; 2721 end; 2722 pnlCIRN.Hint := 'Click to open VistaWeb'; 2723 end 2724 else 2725 begin 2726 ChangePatient(Patient.DFN); 2727 lblCIRN.Caption := ' Remote'; 2728 lblCIRNData.Caption := 'Data'; 2729 pnlCIRN.Caption := 'Remote Data'; 2730 lblCIRNAvail.Caption := ''; 2731 lblCIRN.Width := 43; 2732 lblCIRNData.Width := 43; 2733 lblCIRNData.Alignment := taCenter; 2734 lblCIRN.Alignment := taCenter; 2735 if RemoteDataExists and (RemoteSites.Count > 0) then 2736 begin 2737 lblCIRN.Enabled := True; 2738 lblCIRNData.Enabled := True; 2739 lblCIRNAvail.Enabled := True; 2740 pnlCIRN.TabStop := True; 2741 if ColorToRGB(clWindowText) = ColorToRGB(clBlack) then 2742 begin 2743 lblCIRN.Font.Color := clBlue; 2744 lblCIRNData.Font.Color := clBlue; 2745 lblCIRNAvail.Font.Color := clBlue; 2746 lstCIRNLocations.Font.Color := clBlue; 2747 lblCIRN.Caption := 'Remote'; 2748 lblCIRNData.Caption := 'Data'; 2749 lblCIRNAvail.Caption := 'Available'; 2750 pnlCIRN.Caption := 'Remote Data Available'; 2751 end 2752 else 2753 begin 2754 lblCIRN.Font.Color := clWindowText; 2755 lblCIRNData.Font.Color := clWindowText; 2756 lblCIRNAvail.Font.Color := clWindowText; 2757 lstCIRNLocations.Font.Color := clWindowText; 2758 lblCIRNAvail.Color := clWindowText; 2759 end; 2529 2760 pnlCIRN.Hint := 'Click to display other facilities having data for this patient.'; 2761 lstCIRNLocations.Items.Add('-1' + U + 'Use VistaWeb from now on'); 2530 2762 if RemoteSites.Count > 0 then 2531 2763 lstCIRNLocations.Items.Add('0' + U + 'All Available Sites'); … … 2541 2773 lblCIRN.Font.Color := clWindowText; 2542 2774 lblCIRNData.Font.Color := clWindowText; 2775 lblCIRNAvail.Font.Color := clWindowText; 2543 2776 lblCIRN.Enabled := False; 2544 2777 lblCIRNData.Enabled := False; 2778 lblCIRNAvail.Enabled := False; 2545 2779 pnlCIRN.TabStop := False; 2546 2780 pnlCIRN.Hint := NoDataReason; 2547 2781 end; 2782 aAutoQuery := AutoRDV; //Check to see if Remote Queries should be used for all available sites 2783 if (aAutoQuery = '1') and (lstCIRNLocations.Count > 0) then 2784 begin 2785 lstCIRNLocations.ItemIndex := 1; 2786 lstCIRNLocations.Checked[1] := true; 2787 lstCIRNLocationsClick(self); 2788 end; 2789 end; 2790 end; 2791 2792 procedure TfrmFrame.pnlCIRNClick(Sender: TObject); 2793 //var 2794 // aAddress: string; 2795 begin 2796 {if UseVistaWeb then 2797 begin 2798 pnlCIRN.BevelOuter := bvRaised; 2799 pnlCIRN.Hint := 'Click to open VistaWeb'; 2800 lblCIRN.Width := 43; 2801 lblCIRNData.Width := 43; 2802 lblCIRNData.Alignment := taCenter; 2803 lblCIRN.Alignment := taCenter; 2804 lstCIRNLocations.Visible := false; 2805 lstCIRNLocations.SendToBack; 2806 aAddress := GetVistaWebAddress(Patient.DFN); 2807 ShellExecute(Handle, 'open', PChar(aAddress), PChar(''), '', SW_NORMAL); 2808 Exit; 2548 2809 end; 2549 end;2550 2551 procedure TfrmFrame.pnlCIRNClick(Sender: TObject);2552 begin2553 2810 if not RemoteSites.RemoteDataExists then Exit; 2554 2811 if (not lstCIRNLocations.Visible) then … … 2566 2823 lstCIRNLocations.SendToBack; 2567 2824 pnlCIRN.Hint := 'Click to display other facilities having data for this patient.'; 2568 end 2825 end } 2826 ViewInfo(mnuViewRemoteData); 2569 2827 end; 2570 2828 … … 2581 2839 AccessStatus: integer; 2582 2840 begin 2583 iAll := 0;2841 iAll := 1; 2584 2842 AccessStatus := 0; 2843 iIndex := lstCIRNLocations.ItemIndex; 2844 if iIndex = 0 then 2845 if (piece(lstCIRNLocations.Items[0],'^',1) = '-1') and (lstCIRNLocations.Checked[iIndex] = true) then 2846 begin 2847 if MessageDlg('Are you sure you want to make VistaWeb your default for viewing Remote Data?', 2848 mtConfirmation, [mbYes, mbNo], 0) = mrYes then 2849 begin 2850 ChangeVistaWebParam('1'); 2851 lblCIRN.Caption := 'Remote'; //VistaWeb On 2852 lblCIRNData.Caption := 'Data*'; 2853 pnlCIRN.Caption := 'Remote Data'; 2854 lblCIRNAvail.Caption := ''; 2855 lblCIRN.Width := 43; 2856 lblCIRNData.Width := 43; 2857 lblCIRNData.Alignment := taCenter; 2858 lblCIRN.Alignment := taCenter; 2859 with RemoteSites do if RemoteDataExists and (RemoteSites.Count > 0) then 2860 begin 2861 lblCIRN.Enabled := True; 2862 lblCIRNData.Enabled := True; 2863 pnlCIRN.TabStop := True; 2864 if ColorToRGB(clWindowText) = ColorToRGB(clBlack) then 2865 begin 2866 lblCIRN.Font.Color := clBlue; 2867 lblCIRNData.Font.Color := clBlue; 2868 lstCIRNLocations.Font.Color := clBlue; 2869 lblCIRN.Caption := 'Remote'; 2870 lblCIRNData.Caption := 'Data*'; 2871 lblCIRNAvail.Caption := 'Available'; 2872 pnlCIRN.Caption := 'Remote Data Available'; 2873 end 2874 else 2875 begin 2876 lblCIRN.Font.Color := clWindowText; 2877 lblCIRNData.Font.Color := clWindowText; 2878 lstCIRNLocations.Font.Color := clWindowText; 2879 lblCIRNAvail.Font.Color := clWindowText; 2880 end; 2881 end; 2882 pnlCIRNClick(self); 2883 Exit; 2884 end 2885 else 2886 lstCIRNLocations.Checked[iIndex] := false; 2887 end 2888 else 2889 begin 2890 ChangeVistaWebParam('0'); 2891 lblCIRN.Caption := 'Remote'; 2892 lblCIRNData.Caption := 'Data'; 2893 pnlCIRN.Caption := 'Remote Data'; 2894 lblCIRN.Width := 43; 2895 lblCIRNData.Width := 43; 2896 lblCIRNData.Alignment := taCenter; 2897 lblCIRN.Alignment := taCenter; 2898 pnlCIRNClick(self); 2899 Exit; 2900 end; 2585 2901 if not CheckHL7TCPLink then 2586 2902 begin 2587 2903 InfoBox('Local HL7 TCP Link is down.' + CRLF + 'Unable to retrieve remote data.', TC_DGSR_ERR, MB_OK); 2588 lstCIRNLocations.Checked[ lstCIRNLocations.ItemIndex] := false;2904 lstCIRNLocations.Checked[iIndex] := false; 2589 2905 Exit; 2590 2906 end; 2591 if lstCIRNLocations.Items.Count > 0 then 2592 if piece(lstCIRNLocations.Items[0],'^',1) = '0' then 2593 iAll := 1; 2594 iIndex := lstCIRNLocations.ItemIndex; 2907 if lstCIRNLocations.Items.Count > 1 then 2908 if piece(lstCIRNLocations.Items[1],'^',1) = '0' then 2909 iAll := 2; 2595 2910 with frmReports do 2596 2911 if piece(uRemoteType,'^',2) = 'V' then … … 2612 2927 with RemoteSites.SiteList do 2613 2928 for j := 0 to Count - 1 do 2614 if lstCIRNLocations.Checked[j+ 1] = true then2929 if lstCIRNLocations.Checked[j+2] = true then 2615 2930 begin 2616 lstCIRNLocations.Checked[j+ 1] := false;2931 lstCIRNLocations.Checked[j+2] := false; 2617 2932 TRemoteSite(RemoteSites.SiteList[j]).Selected := false; 2618 2933 TRemoteSite(RemoteSites.SiteList[j]).ReportClear; … … 2630 2945 Screen.Cursor := crDefault; 2631 2946 aMsg := aMsg + ' at site: ' + TRemoteSite(Items[j]).SiteName; 2632 s := lstCIRNLocations.Items[j+ 1];2633 lstCIRNLocations.Items[j+ 1] := pieces(s, '^', 1, 3);2947 s := lstCIRNLocations.Items[j+2]; 2948 lstCIRNLocations.Items[j+2] := pieces(s, '^', 1, 3); 2634 2949 case AccessStatus of 2635 2950 DGSR_FAIL: begin 2636 2951 if piece(aMsg,':',1) = 'RPC name not found at site' then //Allow for backward compatibility 2637 2952 begin 2638 lstCIRNLocations.Checked[j+ 1] := true;2953 lstCIRNLocations.Checked[j+2] := true; 2639 2954 TRemoteSite(RemoteSites.SiteList[j]).ReportClear; 2640 2955 TRemoteSite(RemoteSites.SiteList[j]).LabClear; … … 2644 2959 begin 2645 2960 InfoBox(aMsg, TC_DGSR_ERR, MB_OK); 2646 lstCIRNLocations.Checked[j+ 1] := false;2647 lstCIRNLocations.Items[j+ 1] := pieces(s, '^', 1, 3) + '^' + TC_DGSR_ERR;2961 lstCIRNLocations.Checked[j+2] := false; 2962 lstCIRNLocations.Items[j+2] := pieces(s, '^', 1, 3) + '^' + TC_DGSR_ERR; 2648 2963 TRemoteSite(Items[j]).Selected := false; 2649 2964 Continue; … … 2651 2966 end; 2652 2967 DGSR_NONE: begin 2653 lstCIRNLocations.Checked[j+ 1] := true;2968 lstCIRNLocations.Checked[j+2] := true; 2654 2969 TRemoteSite(RemoteSites.SiteList[j]).ReportClear; 2655 2970 TRemoteSite(RemoteSites.SiteList[j]).LabClear; … … 2658 2973 DGSR_SHOW: begin 2659 2974 InfoBox(AMsg, TC_DGSR_SHOW, MB_OK); 2660 lstCIRNLocations.Checked[j+ 1] := true;2975 lstCIRNLocations.Checked[j+2] := true; 2661 2976 TRemoteSite(RemoteSites.SiteList[j]).ReportClear; 2662 2977 TRemoteSite(RemoteSites.SiteList[j]).LabClear; … … 2666 2981 MB_DEFBUTTON2) = IDYES then 2667 2982 begin 2668 lstCIRNLocations.Checked[j+ 1] := true;2983 lstCIRNLocations.Checked[j+2] := true; 2669 2984 TRemoteSite(RemoteSites.SiteList[j]).ReportClear; 2670 2985 TRemoteSite(RemoteSites.SiteList[j]).LabClear; … … 2673 2988 else 2674 2989 begin 2675 lstCIRNLocations.Checked[j+ 1] := false;2676 lstCIRNLocations.Items[j+ 1] := pieces(s, '^', 1, 3) + '^' + TC_DGSR_SHOW;2990 lstCIRNLocations.Checked[j+2] := false; 2991 lstCIRNLocations.Items[j+2] := pieces(s, '^', 1, 3) + '^' + TC_DGSR_SHOW; 2677 2992 TRemoteSite(Items[j]).Selected := false; 2678 2993 Continue; … … 2680 2995 else begin 2681 2996 InfoBox(AMsg, TC_DGSR_DENY, MB_OK); 2682 lstCIRNLocations.Checked[j+ 1] := false;2683 lstCIRNLocations.Items[j+ 1] := pieces(s, '^', 1, 3) + '^' + TC_DGSR_DENY;2997 lstCIRNLocations.Checked[j+2] := false; 2998 lstCIRNLocations.Items[j+2] := pieces(s, '^', 1, 3) + '^' + TC_DGSR_DENY; 2684 2999 TRemoteSite(Items[j]).Selected := false; 2685 3000 Continue; … … 2690 3005 else 2691 3006 begin 2692 if iIndex > -1then3007 if iIndex > 0 then 2693 3008 begin 2694 3009 iCur := iIndex - iAll; … … 2779 3094 TRemoteSite(Items[j])); 2780 3095 end; 2781 frmLabs.TabControl1.OnChange(nil); 2782 frmReports.TabControl1.OnChange(nil); 3096 //frmLabs.TabControl1.OnChange(nil); 3097 //frmReports.TabControl1.OnChange(nil); 3098 if frmReports.tvReports.SelectionCount > 0 then frmReports.tvReportsClick(self); 3099 if frmLabs.lstReports.ItemIndex > -1 then frmLabs.ExtlstReportsClick(self, true); 2783 3100 StatusText(''); 2784 3101 end; … … 2817 3134 procedure TfrmFrame.lstCIRNLocationsChange(Sender: TObject); 2818 3135 begin 2819 if lstCIRNLocations.ItemIndex > -1then3136 if lstCIRNLocations.ItemIndex > 0 then 2820 3137 if (lstCIRNLocations.Selected[lstCIRNLocations.ItemIndex] = true) and (uUpdateStat = false) then 2821 if not (piece(lstCIRNLocations.Items[ 0],'^',1) = '0') then3138 if not (piece(lstCIRNLocations.Items[1],'^',1) = '0') then 2822 3139 lstCIRNLocations.OnClick(nil); 2823 3140 end; … … 2852 3169 if not Notifications.Active then Exit; 2853 3170 case Notifications.Followup of 2854 NF_MEDICATIONS_EXPIRING : AlertType := 'Expiring Medications'; 3171 NF_MEDICATIONS_EXPIRING_INPT : AlertType := 'Expiring Medications'; 3172 NF_MEDICATIONS_EXPIRING_OUTPT : AlertType := 'Expiring Medications'; 2855 3173 NF_ORDER_REQUIRES_ELEC_SIGNATURE: AlertType := 'Unsigned Orders'; 2856 3174 NF_FLAGGED_ORDERS : AlertType := 'Flagged Orders (for clarification)'; … … 2935 3253 FOSTFhintWindow.ReleaseHandle; 2936 3254 FOSTFHintWndActive := False ; 2937 3255 end; 3256 if FHintWinActive then // graphing - hints on values 3257 begin 3258 FHintWin.ReleaseHandle; 3259 FHintWinActive := false; 2938 3260 end; 2939 3261 end; … … 3080 3402 Patient.Clear; 3081 3403 Patient.DFN := tmpDFN; 3404 uCore.TempEncounterLoc := 0; //hds7591 Clinic/Ward movement. 3405 uCore.TempEncounterLocName := ''; //hds7591 Clinic/Ward movement. 3082 3406 3083 3407 if (FPrevInPatient and Patient.Inpatient) then //transfering inside hospital … … 3092 3416 begin 3093 3417 Encounter.Inpatient := True; 3418 uCore.TempEncounterLoc := Encounter.Location; //hds7591 Clinic/Ward movement. 3419 uCore.TempEncounterLocName := Encounter.LocationName; //hds7591 Clinic/Ward movement. 3094 3420 Encounter.Location := Patient.Location; 3095 3421 Encounter.DateTime := Patient.AdmitTime; … … 3101 3427 end; 3102 3428 3103 procedure TfrmFrame.FormKeyDown(Sender: TObject; var Key: Word; 3104 Shift: TShiftState); 3429 procedure TfrmFrame.FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 3105 3430 var 3106 3431 NewTabIndex: integer; … … 3108 3433 //CQ2844: Toggle Remote Data button using Alt+R 3109 3434 case Key of 3110 82,114: begin 3111 if (ssAlt in Shift) then 3435 82,114: if (ssAlt in Shift) then 3112 3436 frmFrame.pnlCIRNClick(Sender); 3113 end;3114 3437 end; 3115 3438 … … 3173 3496 procedure TfrmFrame.pnlPatientClick(Sender: TObject); 3174 3497 begin 3175 mnuViewDemoClick(Self);3498 ViewInfo(mnuViewDemo); 3176 3499 end; 3177 3500 3178 3501 procedure TfrmFrame.pnlVisitClick(Sender: TObject); 3179 3502 begin 3180 if (not User.IsReportsOnly) then // Reports Only tab. 3181 mnuFileEncounterClick(Self); 3503 //if (not User.IsReportsOnly) then // Reports Only tab. 3504 // mnuFileEncounterClick(Self); 3505 ViewInfo(mnuViewVisits); 3182 3506 end; 3183 3507 3184 3508 procedure TfrmFrame.pnlPrimaryCareClick(Sender: TObject); 3185 3509 begin 3186 ReportBox(DetailPrimaryCare(Patient.DFN), 'Primary Care', True); 3510 //ReportBox(DetailPrimaryCare(Patient.DFN), 'Primary Care', True); 3511 ViewInfo(mnuViewPrimaryCare); 3187 3512 end; 3188 3513 … … 3190 3515 begin 3191 3516 if(pnlReminders.tag = HAVE_REMINDERS) then 3192 mnuViewRemindersClick(Self); 3517 ViewInfo(mnuViewReminders); 3518 3193 3519 end; 3194 3520 3195 3521 procedure TfrmFrame.pnlPostingsClick(Sender: TObject); 3196 3522 begin 3197 mnuViewPostingsClick(Self);3523 ViewInfo(mnuViewPostings); 3198 3524 end; 3199 3525 … … 3216 3542 end; 3217 3543 3218 function TfrmFrame.AllowCCOWContextChange( NewDFN: string): boolean;3544 function TfrmFrame.AllowCCOWContextChange(var CCOWResponse: UserResponse; NewDFN: string): boolean; 3219 3545 var 3220 3546 PtData : IContextItemCollection; … … 3248 3574 IsProdAcct := User.IsProductionAccount; 3249 3575 3576 {$IFDEF CCOWBROKER} 3577 //IsProdAcct := RPCBrokerV.Login.IsProduction; //not yet 3578 {$ENDIF} 3579 3250 3580 PtDataItem2 := CoContextItem.Create(); 3251 3581 PtDataItem2.Set_Name('Patient.co.PatientName'); // Patient.Name … … 3293 3623 end; 3294 3624 3625 CCOWResponse := response; 3295 3626 if (response = UrCommit) then 3296 3627 begin … … 3355 3686 Reason, HyperLinkReason: string; 3356 3687 PtChanged: boolean; 3688 {$IFDEF CCOWBROKER} 3689 UserChanged: boolean; 3690 {$ENDIF} 3357 3691 begin 3358 3692 // If the app would lose data, or have other problems changing context at … … 3370 3704 try 3371 3705 CheckForDifferentPatient(aContextItemCollection, PtChanged); 3706 {$IFDEF CCOWBROKER} 3707 CheckForDifferentUser(aContextItemCollection, UserChanged); 3708 {$ENDIF} 3372 3709 except 3373 3710 on E: Exception do HandleCCOWError(E.Message); … … 3379 3716 end; 3380 3717 3718 {$IFDEF CCOWBROKER} 3719 if PtChanged or UserChanged then 3720 {$ELSE} 3381 3721 if PtChanged then 3722 {$ENDIF} 3382 3723 begin 3383 3724 FCCOWContextChanging := True; … … 3404 3745 FCCOWError := False; 3405 3746 try 3406 CheckForDifferentPatient(ctxContextor.CurrentContext, PtChanged); 3747 {$IFDEF CCOWBROKER} 3748 with RPCBrokerV do if (WasUserDefined and IsUserCleared and (ctxContextor.CurrentContext.Present(CCOW_USER_NAME) = nil)) then // RV 05/11/04 3749 begin 3750 Reason := 'COMMIT'; 3751 if AllowContextChangeAll(Reason) then 3752 begin 3753 Close; 3754 Exit; 3755 end; 3756 end; 3757 {$ENDIF} 3758 CheckForDifferentPatient(ctxContextor.CurrentContext, PtChanged); 3407 3759 except 3408 3760 on E: Exception do HandleCCOWError(E.Message); … … 3457 3809 end; 3458 3810 IsProdAcct := User.IsProductionAccount; 3811 {$IFDEF CCOWBROKER} 3812 //IsProdAcct := RPCBrokerV.Login.IsProduction; //not yet 3813 {$ENDIF} 3459 3814 // Get an item collection of the current context 3460 3815 FCCOWError := False; … … 3495 3850 //PtDFN := FindBestCCOWDFN(PtName); 3496 3851 PtDFN := FindBestCCOWDFN; 3497 if PtDFN <> ''then3852 if StrToInt64Def(PtDFN, 0) > 0 then 3498 3853 begin 3499 3854 // Select new patient based on context value … … 3517 3872 end; 3518 3873 if User.IsProvider then Encounter.Provider := User.DUZ; 3519 SetupPatient; 3874 if not FFirstLoad then SetupPatient; 3875 frmCover.UpdateVAAButton; //VAA 3520 3876 DetermineNextTab; 3521 3877 tabPage.TabIndex := PageIDToTab(NextTab); … … 3571 3927 3572 3928 procedure TfrmFrame.mnuFileResumeContextSetClick(Sender: TObject); 3573 begin 3929 var 3930 CCOWResponse: UserResponse; 3931 Reason: string; 3932 begin 3933 Reason := ''; 3934 if not AllowContextChangeAll(Reason) then exit; 3574 3935 FCCOWIconName := 'BMP_CCOW_CHANGING'; 3575 3936 pnlCCOW.Hint := TX_CCOW_CHANGING; … … 3582 3943 end; 3583 3944 if FCCOWError then exit; 3584 if (AllowCCOWContextChange( Patient.DFN)) then3945 if (AllowCCOWContextChange(CCOWResponse, Patient.DFN)) then 3585 3946 begin 3586 3947 mnuFileResumeContext.Enabled := False; … … 3598 3959 pnlCCOW.Hint := TX_CCOW_BROKEN; 3599 3960 imgCCOW.Picture.BitMap.LoadFromResourceName(hInstance, FCCOWIconName); 3961 try 3962 if ctxContextor.State in [csParticipating] then ctxContextor.Suspend; 3963 except 3964 on E: Exception do HandleCCOWError(E.Message); 3965 end; 3600 3966 end; 3601 3967 SetupPatient; … … 3607 3973 var 3608 3974 data : IContextItemCollection; 3609 anItem 3975 anItem: IContextItem; 3610 3976 PtDFN, PtName: string; 3611 3977 begin … … 3623 3989 PtChanged := not ((PtDFN = Patient.DFN) and (PtName = Piece(Patient.Name, ',', 1) + U + Piece(Patient.Name, ',', 2) + '^^^^')); 3624 3990 end; 3991 3992 {$IFDEF CCOWBROKER} 3993 procedure TfrmFrame.CheckForDifferentUser(aContextItemCollection: IDispatch; var UserChanged: boolean); 3994 var 3995 data : IContextItemCollection; 3996 begin 3997 if uCore.User = nil then 3998 begin 3999 UserChanged := False; 4000 Exit; 4001 end; 4002 data := IContextItemCollection(aContextItemCollection) ; 4003 UserChanged := RPCBrokerV.IsUserContextPending(data); 4004 end; 4005 {$ENDIF} 3625 4006 3626 4007 procedure TfrmFrame.CheckHyperlinkResponse(aContextItemCollection: IDispatch; var HyperlinkReason: string); … … 3651 4032 procedure TfrmFrame.HideEverything; 3652 4033 begin 4034 FNoPatientSelected := TRUE; 3653 4035 pnlNoPatientSelected.Visible := True; 3654 4036 pnlNoPatientSelected.BringToFront; … … 3671 4053 procedure TfrmFrame.ShowEverything; 3672 4054 begin 4055 FNoPatientSelected := FALSE; 3673 4056 pnlNoPatientSelected.Visible := False; 3674 4057 pnlNoPatientSelected.SendToBack; … … 3711 4094 procedure TfrmFrame.pnlFlagClick(Sender: TObject); 3712 4095 begin 3713 ShowFlags; 4096 //ShowFlags; 4097 ViewInfo(mnuViewFlags); 3714 4098 end; 3715 4099 … … 3812 4196 3813 4197 procedure TfrmFrame.ScreenActiveFormChange(Sender: TObject); 4198 begin 4199 if(assigned(FOldActiveFormChange)) then 4200 FOldActiveFormChange(Sender); 4201 //Focus the Form that Stays on Top after the Application Regains focus. 4202 if FJustEnteredApp then 4203 FocusApplicationTopForm; 4204 FJustEnteredApp := false; 4205 end; 4206 4207 procedure TfrmFrame.FocusApplicationTopForm; 3814 4208 var 3815 4209 I : integer; 3816 4210 begin 3817 //Locate the Form that Stays on Top after the Application Regains focus. 3818 if FJustEnteredApp then 3819 begin 3820 for I := (Screen.FormCount-1) downto 0 do //Set the last one opened last 3821 begin 3822 with Screen.Forms[I] do 3823 if (FormStyle = fsStayOnTop) and (Enabled) and (Visible) then 3824 SetFocus; 4211 for I := (Screen.FormCount-1) downto 0 do //Set the last one opened last 4212 begin 4213 with Screen.Forms[I] do 4214 if (FormStyle = fsStayOnTop) and (Enabled) and (Visible) then 4215 SetFocus; 4216 end; 4217 end; 4218 4219 procedure TfrmFrame.AppEventsShortCut(var Msg: TWMKey; 4220 var Handled: Boolean); 4221 begin 4222 if ((Boolean(Hi(GetKeyState(VK_MENU{ALT})))) and (Msg.CharCode = VK_F1)) then 4223 begin 4224 FocusApplicationTopForm; 4225 Handled := True; 4226 end; 4227 end; 4228 4229 procedure TfrmFrame.mnuToolsGraphingClick(Sender: TObject); 4230 begin 4231 Screen.Cursor := crHourGlass; 4232 if GraphFloat = nil then // new graph 4233 begin 4234 GraphFloat := TfrmGraphs.Create(self); 4235 try 4236 with GraphFloat do 4237 begin 4238 if btnClose.Tag = 1 then 4239 Exit; 4240 Initialize; 4241 Caption := 'CPRS Graphing - Patient: ' + MixedCase(Patient.Name); 4242 BorderIcons := [biSystemMenu, biMaximize, biMinimize]; 4243 BorderStyle := bsSizeable; 4244 BorderWidth := 1; 4245 // context sensitive type (tabPage.TabIndex) & [item] 4246 ResizeAnchoredFormToFont(GraphFloat); 4247 Show; 4248 end; 4249 finally 4250 if GraphFloat.btnClose.Tag = 1 then 4251 begin 4252 GraphFloatActive := false; 4253 GraphFloat.Free; 4254 GraphFloat := nil; 4255 end 4256 else 4257 GraphFloatActive := true; 3825 4258 end; 3826 FJustEnteredApp := false; 3827 end; 3828 end; 3829 4259 end 4260 else if GraphFloat.btnClose.Tag = 1 then 4261 Exit 4262 else if GraphFloatActive and (GraphFloat.lstTypes.Hint = Patient.DFN) then 4263 GraphFloat.BringToFront // graph is active, same patient 4264 else if GraphFloat.lstTypes.Hint = Patient.DFN then 4265 begin // graph is not active, same patient 4266 // context sensitive 4267 GraphFloat.Show; 4268 GraphFloatActive := true; 4269 end 4270 else 4271 //with GraphFloat do // new patient 4272 begin 4273 GraphFloat.InitialRetain; 4274 GraphFloatActive := false; 4275 GraphFloat.Free; 4276 GraphFloat := nil; 4277 mnuToolsGraphingClick(self); // delete and recurse 4278 {//FormCreate(self); //**************** 4279 Initialize; 4280 DisplayData('top'); 4281 DisplayData('bottom'); 4282 lstCheck.Items.Clear; 4283 Caption := 'CPRS Graphing - Patient: ' + MixedCase(Patient.Name); 4284 // context sensitive 4285 Show; 4286 GraphFloatActive := true;} 4287 end; 4288 Screen.Cursor := crDefault; 4289 end; 4290 4291 procedure TfrmFrame.pnlCIRNMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 4292 begin 4293 pnlCIRN.BevelOuter := bvLowered; 4294 end; 4295 4296 procedure TfrmFrame.pnlCIRNMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 4297 begin 4298 pnlCIRN.BevelOuter := bvRaised; 4299 end; 4300 4301 procedure TfrmFrame.laMHVClick(Sender: TObject); 4302 begin 4303 //if laMHV.Caption = 'MHV' then 4304 // ShellExecute(Handle, 'open', PChar('http://www.myhealth.va.gov/'), '', '', SW_NORMAL); 4305 ViewInfo(mnuViewMyHealtheVet); 4306 end; 4307 4308 procedure TfrmFrame.laVAA2Click(Sender: TObject); 4309 {var 4310 InsuranceSubscriberName: string; 4311 ReportString: TStringList; //CQ7782 } 4312 begin 4313 {if fCover.VAAFlag[0] <> '0' then //'0' means subscriber not found 4314 begin 4315 InsuranceSubscriberName := fCover.VAAFlag[12]; 4316 //CQ7782 4317 //ReportString := TStringList.Create; 4318 ReportString := VAAFlag; 4319 ReportString[0] := ''; 4320 ReportBox(ReportString, InsuranceSubscriberName, True); 4321 //end CQ7782 4322 end;} 4323 ViewInfo(mnuInsurance); 4324 end; 4325 4326 procedure TfrmFrame.ViewInfo(Sender: TObject); 4327 var 4328 SelectNew: Boolean; 4329 InsuranceSubscriberName: string; 4330 ReportString: TStringList; 4331 aAddress: string; 4332 begin 4333 case (Sender as TMenuItem).Tag of 4334 1:begin { displays patient inquiry report (which optionally allows new patient to be selected) } 4335 StatusText(TX_PTINQ); 4336 PatientInquiry(SelectNew); 4337 if Assigned(FLastPage) then 4338 FLastPage.FocusFirstControl; 4339 StatusText(''); 4340 if SelectNew then mnuFileOpenClick(mnuViewDemo); 4341 end; 4342 2:begin 4343 if (not User.IsReportsOnly) then // Reports Only tab. 4344 mnuFileEncounterClick(Self); 4345 end; 4346 3:begin 4347 ReportBox(DetailPrimaryCare(Patient.DFN), 'Primary Care', True); 4348 end; 4349 4:begin 4350 if laMHV.Caption = 'MHV' then 4351 ShellExecute(laMHV.Handle, 'open', PChar('http://www.myhealth.va.gov/'), '', '', SW_NORMAL); 4352 end; 4353 5:begin 4354 if fCover.VAAFlag[0] <> '0' then //'0' means subscriber not found 4355 begin 4356 InsuranceSubscriberName := fCover.VAAFlag[12]; 4357 ReportString := VAAFlag; 4358 ReportString[0] := ''; 4359 ReportBox(ReportString, InsuranceSubscriberName, True); 4360 end; 4361 end; 4362 6:begin 4363 ShowFlags; 4364 end; 4365 7:begin 4366 if UseVistaWeb then 4367 begin 4368 pnlCIRN.BevelOuter := bvRaised; 4369 pnlCIRN.Hint := 'Click to open VistaWeb'; 4370 lblCIRN.Width := 43; 4371 lblCIRNData.Width := 43; 4372 lblCIRNData.Alignment := taCenter; 4373 lblCIRN.Alignment := taCenter; 4374 lstCIRNLocations.Visible := false; 4375 lstCIRNLocations.SendToBack; 4376 aAddress := GetVistaWebAddress(Patient.DFN); 4377 ShellExecute(pnlCirn.Handle, 'open', PChar(aAddress), PChar(''), '', SW_NORMAL); 4378 Exit; 4379 end; 4380 if not RemoteSites.RemoteDataExists then Exit; 4381 if (not lstCIRNLocations.Visible) then 4382 begin 4383 pnlCIRN.BevelOuter := bvLowered; 4384 lstCIRNLocations.Visible := True; 4385 lstCIRNLocations.BringToFront; 4386 lstCIRNLocations.SetFocus; 4387 pnlCIRN.Hint := 'Click to close list.'; 4388 end 4389 else 4390 begin 4391 pnlCIRN.BevelOuter := bvRaised; 4392 lstCIRNLocations.Visible := False; 4393 lstCIRNLocations.SendToBack; 4394 pnlCIRN.Hint := 'Click to display other facilities having data for this patient.'; 4395 end; 4396 end; 4397 8:begin 4398 ViewReminderTree; 4399 end; 4400 9:begin { displays the window that shows crisis notes, warnings, allergies, & advance directives } 4401 ShowCWAD; 4402 end; 4403 end; 4404 end; 4405 4406 procedure TfrmFrame.mnuViewInformationClick(Sender: TObject); 4407 begin 4408 mnuViewDemo.Enabled := frmFrame.pnlPatient.Enabled; 4409 mnuViewVisits.Enabled := frmFrame.pnlVisit.Enabled; 4410 mnuViewPrimaryCare.Enabled := frmFrame.pnlPrimaryCare.Enabled; 4411 mnuViewMyHealtheVet.Enabled := not (Copy(frmFrame.laMHV.Hint, 1, 2) = 'No'); 4412 mnuInsurance.Enabled := not (Copy(frmFrame.laVAA2.Hint, 1, 2) = 'No'); 4413 mnuViewFlags.Enabled := frmFrame.lblFlag.Enabled; 4414 mnuViewRemoteData.Enabled := frmFrame.lblCirn.Enabled; 4415 mnuViewReminders.Enabled := frmFrame.pnlReminders.Enabled; 4416 mnuViewPostings.Enabled := frmFrame.pnlPostings.Enabled; 4417 end; 3830 4418 3831 4419 initialization … … 3833 4421 finalization 3834 4422 4423 3835 4424 end. 3836 4425 4426 -
cprs/branches/foia-cprs/CPRS-Chart/fLabCollTimes.dfm
r459 r460 84 84 CalColors.MonthBackColor = clWindow 85 85 CalColors.TrailingTextColor = clGrayText 86 Date = 36507. 557366342686 Date = 36507.6194967361 87 87 ShowTodayCircle = False 88 88 TabOrder = 4 -
cprs/branches/foia-cprs/CPRS-Chart/fLabTests.dfm
r459 r460 13 13 OldCreateOrder = True 14 14 Position = poScreenCenter 15 OnClose = FormClose 15 16 OnCreate = FormCreate 17 OnShow = FormShow 16 18 PixelsPerInch = 96 17 19 TextHeight = 13 … … 86 88 ListItemsOnly = False 87 89 LongList = True 90 LookupPiece = 0 88 91 MaxLength = 0 89 92 ParentShowHint = False … … 98 101 OnExit = cboTestsExit 99 102 OnNeedData = cboTestsNeedData 103 CharsNeedMatch = 1 100 104 end 101 105 object cmdRemove: TButton -
cprs/branches/foia-cprs/CPRS-Chart/fLabTests.pas
r459 r460 30 30 procedure cboTestsExit(Sender: TObject); 31 31 procedure cmdAddClick(Sender: TObject); 32 procedure FormShow(Sender: TObject); 33 procedure FormClose(Sender: TObject; var Action: TCloseAction); 32 34 private 33 35 { Private declarations } … … 40 42 implementation 41 43 42 uses fLabs, ORFn, rLabs ;44 uses fLabs, ORFn, rLabs, rMisc; 43 45 44 46 {$R *.DFM} … … 156 158 end; 157 159 160 procedure TfrmLabTests.FormShow(Sender: TObject); 161 begin 162 SetFormPosition(Self); 163 end; 164 165 procedure TfrmLabTests.FormClose(Sender: TObject; 166 var Action: TCloseAction); 167 begin 168 SaveUserBounds(Self); 169 end; 170 158 171 end. -
cprs/branches/foia-cprs/CPRS-Chart/fLabs.dfm
r459 r460 1 1 inherited frmLabs: TfrmLabs 2 Left = 1933 Top = 1412 Left = 628 3 Top = 237 4 4 Height = 387 5 5 HelpContext = 8000 … … 10 10 TextHeight = 13 11 11 inherited shpPageBottom: TShape 12 Top = 35 412 Top = 355 13 13 end 14 14 inherited sptHorz: TSplitter 15 Height = 35 415 Height = 355 16 16 end 17 17 inherited pnlLeft: TPanel 18 Height = 35 418 Height = 355 19 19 object lblReports: TOROffsetLabel 20 20 Left = 0 … … 31 31 object lblDates: TOROffsetLabel 32 32 Left = 0 33 Top = 23 133 Top = 232 34 34 Width = 97 35 35 Height = 15 … … 43 43 object lblHeaders: TOROffsetLabel 44 44 Left = 0 45 Top = 13 145 Top = 132 46 46 Width = 97 47 47 Height = 15 … … 57 57 Top = 19 58 58 Width = 97 59 Height = 11 259 Height = 113 60 60 Align = alClient 61 61 ItemHeight = 13 … … 71 71 object lstHeaders: TORListBox 72 72 Left = 0 73 Top = 14 673 Top = 147 74 74 Width = 97 75 75 Height = 52 … … 88 88 object lstDates: TORListBox 89 89 Left = 0 90 Top = 24 690 Top = 247 91 91 Width = 97 92 92 Height = 108 … … 115 115 object pnlOtherTests: TORAutoPanel 116 116 Left = 0 117 Top = 19 8117 Top = 199 118 118 Width = 97 119 119 Height = 33 … … 139 139 end 140 140 inherited pnlRight: TPanel 141 Height = 35 4141 Height = 355 142 142 OnResize = pnlRightResize 143 143 object lblHeading: TOROffsetLabel … … 448 448 object pnlFooter: TORAutoPanel 449 449 Left = 0 450 Top = 33 4450 Top = 335 451 451 Width = 539 452 452 Height = 20 … … 536 536 TabOrder = 3 537 537 Visible = False 538 object lblGraph: TLabel 539 Left = 0 540 Top = 72 541 Width = 370 542 Height = 13 543 Alignment = taCenter 544 Caption = 545 'Results may be available, but cannot be graphed. Please try an a' + 546 'lternate view.' 547 end 548 object lstTestGraph: TORListBox 549 Left = 0 550 Top = 0 551 Width = 97 552 Height = 85 553 Align = alLeft 554 ItemHeight = 13 555 ParentShowHint = False 556 ShowHint = True 557 TabOrder = 0 558 OnClick = lstTestGraphClick 559 Caption = 'Tests Graphed' 560 ItemTipColor = clWindow 561 LongList = False 562 Pieces = '2' 563 end 538 564 object chtChart: TChart 539 565 Left = 97 … … 616 642 end 617 643 end 618 object lstTestGraph: TORListBox619 Left = 0620 Top = 0621 Width = 97622 Height = 85623 Align = alLeft624 ItemHeight = 13625 ParentShowHint = False626 ShowHint = True627 TabOrder = 0628 OnClick = lstTestGraphClick629 Caption = 'Tests Graphed'630 ItemTipColor = clWindow631 LongList = False632 Pieces = '2'633 end634 644 end 635 645 object memLab: TRichEdit … … 637 647 Top = 321 638 648 Width = 539 639 Height = 1 3649 Height = 14 640 650 Align = alClient 641 651 Color = clCream … … 683 693 HotTrack = True 684 694 Style = tsButtons 695 TabHeight = 16 685 696 TabOrder = 1 686 697 Visible = False … … 691 702 Top = 321 692 703 Width = 539 693 Height = 1 3704 Height = 14 694 705 TabStop = False 695 706 Align = alClient … … 697 708 OnDocumentComplete = WebBrowser1DocumentComplete 698 709 ControlData = { 699 4C000000B5370000 580100000000000000000000000000000000000000000000710 4C000000B5370000720100000000000000000000000000000000000000000000 700 711 000000004C000000000000000000000001000000E0D057007335CF11AE690800 701 712 2B2E126208000000000000004C0000000114020000000000C000000000000046 -
cprs/branches/foia-cprs/CPRS-Chart/fLabs.pas
r459 r460 7 7 fHSplit, StdCtrls, ExtCtrls, ORCtrls, ComCtrls, Grids, Buttons, fLabTest, 8 8 fLabTests, fLabTestGroups, ORFn, TeeProcs, TeEngine, Chart, Series, Menus, 9 uConst, ORDtTmRng, OleCtrls, SHDocVw, Variants ;9 uConst, ORDtTmRng, OleCtrls, SHDocVw, Variants, StrUtils; 10 10 11 11 type … … 83 83 TabControl1: TTabControl; 84 84 WebBrowser1: TWebBrowser; 85 lblGraph: TLabel; 85 86 procedure FormCreate(Sender: TObject); 86 87 procedure DisplayHeading; … … 133 134 procedure Memo1KeyUp(Sender: TObject; var Key: Word; 134 135 Shift: TShiftState); 136 procedure UpdateRemoteStatus(aSiteID, aStatus: string); 135 137 private 136 138 { Private declarations } … … 159 161 function FMToDateTime(FMDateTime: string): TDateTime; 160 162 procedure RequestPrint; override; 163 procedure ExtlstReportsClick(Sender: TObject; Ext: boolean); 161 164 162 165 end; … … 169 172 uLabLocalReportData: TStringList; //Storage for Local report data 170 173 uLabRemoteReportData: TStringList; //Storage for Remote lab query 174 uUpdateStat: boolean; //flag turned on when remote status is being updated 171 175 172 176 implementation 173 177 174 178 uses uCore, rLabs, rCore, rCover, rOrders, fLabPrint, fFrame, fRptBox, Printers, 175 clipbrd, rReports, activex, mshtml, uAccessibleStringGrid;179 clipbrd, rReports, rGraphs, activex, mshtml, uAccessibleStringGrid; 176 180 177 181 const … … 189 193 var 190 194 uFrozen: Boolean; 195 uGraphingActivated: Boolean; 191 196 uRemoteCount: Integer; 192 197 uHTMLDoc: string; … … 240 245 241 246 procedure TfrmLabs.FormCreate(Sender: TObject); 247 var 248 aList: TStrings; 242 249 begin 243 250 inherited; … … 246 253 memLab.Color := ReadOnlyColor; 247 254 uFrozen := False; 255 aList := TStringList.Create; 256 FastAssign(rpcGetGraphSettings, aList); 257 uGraphingActivated := aList.Count > 0; 258 aList.Free; 248 259 uRemoteCount := 0; 249 260 tmpGrid := TStringList.Create; … … 258 269 SerTest.GetHorizAxis.Increment := DateTimeStep[dtOneMinute]; 259 270 TAccessibleStringGrid.WrapControl(grdLab); 271 end; 272 273 procedure TfrmLabs.UpdateRemoteStatus(aSiteID, aStatus: string); 274 var 275 j: integer; 276 s: string; 277 c: boolean; 278 begin 279 if uUpdateStat = true then exit; //uUpdateStat also looked at in fFrame 280 uUpdateStat := true; 281 for j := 0 to frmFrame.lstCIRNLocations.Items.Count - 1 do 282 begin 283 s := frmFrame.lstCIRNLocations.Items[j]; 284 c := frmFrame.lstCIRNLocations.checked[j]; 285 if piece(s, '^', 1) = aSiteID then 286 begin 287 frmFrame.lstCIRNLocations.Items[j] := pieces(s, '^', 1, 3) + '^' + aStatus; 288 frmFrame.lstCIRNLocations.checked[j] := c; 289 end; 290 end; 291 uUpdateStat := false; 260 292 end; 261 293 … … 296 328 TabControl1.Tabs.Clear; 297 329 TabControl1.Visible := false; 330 tmpGrid.Clear; 298 331 with grdLab do 299 332 begin … … 374 407 375 408 procedure TfrmLabs.lstReportsClick(Sender: TObject); 409 begin 410 ExtlstReportsClick(Sender, false); 411 end; 412 413 procedure TfrmLabs.ExtlstReportsClick(Sender: TObject; Ext: boolean); 376 414 var 377 415 i,iCat: integer; … … 436 474 lblSpecimen.Caption := ''; 437 475 end; 438 SelectTests(Font.Size);476 if not Ext then SelectTests(Font.Size); 439 477 if lstTests.Items.Count > 0 then 440 478 begin … … 445 483 RedrawActivate(memLab.Handle); 446 484 lstDatesClick(self); 447 cmdOtherTests.SetFocus;485 if not Ext then cmdOtherTests.SetFocus; 448 486 cmdOtherTests.Default := true; 449 487 end 450 else uPrevReportIndex := lstReports.ItemIndex;488 else lstReports.ItemIndex := uPrevReportIndex; 451 489 end; 452 490 5: begin // Worksheet … … 456 494 lblSpecimen.Caption := ''; 457 495 end; 458 SelectTestGroups(Font.Size);496 if not Ext then SelectTestGroups(Font.Size); 459 497 if lstTests.Items.Count > 0 then 460 498 begin … … 472 510 //chkZoomClick(self); 473 511 lstDatesClick(self); 474 cmdOtherTests.SetFocus;512 if not Ext then cmdOtherTests.SetFocus; 475 513 cmdOtherTests.Default := true; 476 514 end 477 else uPrevReportIndex := lstReports.ItemIndex;515 else lstReports.ItemIndex := uPrevReportIndex; 478 516 end; 479 517 6: begin // Graph 480 if uPrevReportIndex <> lstReports.ItemIndex then 518 // do if graphing is activiated 519 if uGraphingActivated then 481 520 begin 482 lblSingleTest.Caption := ''; 483 lblSpecimen.Caption := ''; 484 end; 485 SelectTest(Font.Size); 486 if (length(lblSingleTest.Caption) > 2) and (length(lblSpecimen.Caption) > 2) then 521 memLab.Clear; 522 chkBrowser; 523 FormResize(self); 524 memLab.Align := alClient; 525 CommonComponentVisible(false,false,false,false,false,false,false,false,false); 526 RedrawActivate(memLab.Handle); 527 StatusText(''); 528 memLab.Lines.Insert(0, ' '); 529 memLab.Lines.Insert(1, 'Graphing activated'); 530 memLab.SelStart := 0; 531 frmFrame.mnuToolsGraphingClick(self); // make it just lab tests ?? 532 //lstReports.ItemIndex := uPrevReportIndex; 533 end 534 else // otherwise, do lab graph 487 535 begin 488 CommonComponentVisible(false,false,true,true,true,true,false,false,true); 489 pnlChart.Visible := true; 490 chtChart.Visible := true; 491 pnlButtons.Visible := false; 492 pnlWorksheet.Visible := false; 493 pnlGraph.Visible := true; 494 memLab.Height := pnlRight.Height div 5; 495 memLab.Clear; 496 if uReportType = 'H' then 536 if uPrevReportIndex <> lstReports.ItemIndex then 537 begin 538 lblSingleTest.Caption := ''; 539 lblSpecimen.Caption := ''; 540 end; 541 if not Ext then SelectTest(Font.Size); 542 if (length(lblSingleTest.Caption) > 2) and (length(lblSpecimen.Caption) > 2) then 543 begin 544 CommonComponentVisible(false,false,true,true,true,true,false,false,true); 545 pnlChart.Visible := true; 546 chtChart.Visible := true; 547 pnlButtons.Visible := false; 548 pnlWorksheet.Visible := false; 549 pnlGraph.Visible := true; 550 memLab.Height := pnlRight.Height div 5; 551 memLab.Clear; 552 if uReportType = 'H' then 497 553 begin 498 554 WebBrowser1.Visible := true; … … 502 558 memLab.Visible := false; 503 559 end 560 else 561 begin 562 WebBrowser1.Visible := false; 563 WebBrowser1.SendToBack; 564 memLab.Visible := true; 565 memLab.BringToFront; 566 end; 567 lstTestGraph.Items.Clear; 568 lstTestGraph.Width := 0; 569 FormResize(self); 570 RedrawActivate(memLab.Handle); 571 lblFooter.Caption := ''; 572 chkGraphZoom.Checked := false; 573 chkGraphZoomClick(self); 574 chkGraph3DClick(self); 575 chkGraphValuesClick(self); 576 lstDatesClick(self); 577 if not Ext then cmdOtherTests.SetFocus; 578 cmdOtherTests.Default := true; 579 end 504 580 else 505 begin 506 WebBrowser1.Visible := false; 507 WebBrowser1.SendToBack; 508 memLab.Visible := true; 509 memLab.BringToFront; 510 end; 511 lstTestGraph.Items.Clear; 512 lstTestGraph.Width := 0; 513 FormResize(self); 514 RedrawActivate(memLab.Handle); 515 lblFooter.Caption := ''; 516 chkGraphZoom.Checked := false; 517 chkGraphZoomClick(self); 518 chkGraph3DClick(self); 519 chkGraphValuesClick(self); 520 lstDatesClick(self); 521 cmdOtherTests.SetFocus; 522 cmdOtherTests.Default := true; 523 end 524 else uPrevReportIndex := lstReports.ItemIndex; 525 end; 526 else 581 lstReports.ItemIndex := uPrevReportIndex; 582 end; 583 end 584 else // case 527 585 begin 528 586 //added to deal with other reports from file 101.24 … … 734 792 end; 735 793 6: begin // Graph 736 chtChart.BottomAxis.Automatic := true; 737 chkGraphZoom.Checked := false; 738 chkGraphZoomClick(self); 739 memLab.Clear; 740 uLabLocalReportData.Clear; 741 uLabRemoteReportData.Clear; 742 tmpList := TStringList.Create; 743 try 744 StatusText('Retrieving data for graph...'); 745 tmpList.Assign(GetChart(Patient.DFN, date1, date2, 746 Piece(lblSpecimen.Caption, '^', 1), 747 Piece(lblSingleTest.Caption, '^', 1))); 748 if tmpList.Count > 1 then 749 begin 750 chtChart.Visible := true; 751 GraphChart(lblSingleTest.Caption, tmpList); 752 chtChart.ZoomPercent(ZOOM_PERCENT); 753 for i := strtoint(Piece(tmpList[0], '^', 1)) + 1 to tmpList.Count - 1 754 do memLab.Lines.Add(tmpList[i]); 755 if memLab.Lines.Count < 2 then 756 memLab.Lines.Add('<No comments on specimens.>'); 757 memLab.SelStart := 0; 758 end 759 else 760 begin 761 if Piece(lblSpecimen.Caption, '^', 1) = '0' then 762 pnlChart.Caption := '<No results can be graphed for ' + 763 Piece(lblSingleTest.Caption, '^', 2) + ' in this date range.>' 794 if not uGraphingActivated then 795 begin 796 chtChart.BottomAxis.Automatic := true; 797 chkGraphZoom.Checked := false; 798 chkGraphZoomClick(self); 799 memLab.Clear; 800 uLabLocalReportData.Clear; 801 uLabRemoteReportData.Clear; 802 tmpList := TStringList.Create; 803 try 804 StatusText('Retrieving data for graph...'); 805 tmpList.Assign(GetChart(Patient.DFN, date1, date2, 806 Piece(lblSpecimen.Caption, '^', 1), 807 Piece(lblSingleTest.Caption, '^', 1))); 808 if tmpList.Count > 1 then 809 begin 810 chtChart.Visible := true; 811 GraphChart(lblSingleTest.Caption, tmpList); 812 chtChart.ZoomPercent(ZOOM_PERCENT); 813 for i := strtoint(Piece(tmpList[0], '^', 1)) + 1 to tmpList.Count - 1 814 do memLab.Lines.Add(tmpList[i]); 815 if memLab.Lines.Count < 2 then 816 memLab.Lines.Add('<No comments on specimens.>'); 817 memLab.SelStart := 0; 818 lblGraph.Visible := false; 819 end 764 820 else 765 pnlChart.Caption := '<No results can be graphed for ' + 766 Piece(lblSingleTest.Caption, '^', 2) 767 + ' (' + Piece(lblSpecimen.Caption, '^', 2) + 768 ') in this date range.>'; 769 chtChart.Visible := false; 821 begin 822 lblGraph.Left := chtChart.Left + ((chtChart.Width - lblGraph.Width) div 2); 823 lblGraph.Top := 2; 824 lblGraph.Visible := true; 825 if Piece(lblSpecimen.Caption, '^', 1) = '0' then 826 pnlChart.Caption := '<No results can be graphed for ' + 827 Piece(lblSingleTest.Caption, '^', 2) + ' in this date range.> ' 828 + 'Results may be available, but cannot be graphed. Please try an alternate view.' 829 else 830 pnlChart.Caption := '<No results can be graphed for ' + 831 Piece(lblSingleTest.Caption, '^', 2) 832 + ' (' + Piece(lblSpecimen.Caption, '^', 2) + 833 ') in this date range.> ' 834 + 'Results may be available, but cannot be graphed. Please try an alternate view.'; 835 chtChart.Visible := false; 836 end; 837 finally 838 tmpList.Free; 770 839 end; 771 finally772 tmpList.Free;773 840 end; 774 841 end; … … 1285 1352 if valuecount = 0 then 1286 1353 begin 1354 lblGraph.Left := chtChart.Left + ((chtChart.Width - lblGraph.Width) div 2); 1355 lblGraph.Top := 2; 1356 lblGraph.Visible := true; 1287 1357 if length(Piece(specimen, '^', 2)) > 0 then 1288 pnlChart.Caption := '<No results can be graphed for ' + serTest.Title + ' in this date range.> '1358 pnlChart.Caption := '<No results can be graphed for ' + serTest.Title + ' in this date range.> ' 1289 1359 else 1290 1360 pnlChart.Caption := '<No results can be graphed for ' + Piece(test, '^', 2) + ' in this date range.>'; 1291 1361 chtChart.Visible := false; 1292 end; 1362 end 1363 else 1364 lblGraph.Visible := false; 1293 1365 if not chkZoom.Checked then 1294 1366 begin … … 1350 1422 memLab.Align := alBottom; 1351 1423 grdLab.Align := alClient; 1424 if tmpGrid.Count > 0 then HGrid(tmpGrid); 1352 1425 if (grdLab.VisibleRowCount + 1) < grdLab.RowCount then 1353 1426 grdLab.ColWidths[4] := grdLab.ColWidths[4] - 18; … … 1387 1460 end; 1388 1461 6: begin // Graph 1389 memLab.Height := pnlLeft.Height div 4; 1390 memLab.Align := alBottom; 1391 pnlChart.Top := pnlHeader.Height; 1392 pnlChart.Align := alClient; 1393 memLab.Height := pnlLeft.Height div 4; 1394 memLab.Align := alBottom; 1395 memLab.Repaint; 1462 if not uGraphingActivated then 1463 begin 1464 memLab.Height := pnlLeft.Height div 4; 1465 memLab.Align := alBottom; 1466 pnlChart.Top := pnlHeader.Height; 1467 pnlChart.Align := alClient; 1468 memLab.Height := pnlLeft.Height div 4; 1469 memLab.Align := alBottom; 1470 memLab.Repaint; 1471 end; 1396 1472 end; 1397 1473 7: begin // Anatomic Path … … 1985 2061 Timer1.Enabled := False; 1986 2062 TRemoteSite(Items[i]).LabQueryStatus := '-1^Timed out'; 2063 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Timed out'); 1987 2064 StatusText(''); 1988 2065 TabControl1.OnChange(nil); … … 2034 2111 begin 2035 2112 TRemoteSite(Items[i]).LabClear; 2113 if (LeftStr(TRemoteSite(Items[i]).SiteID, 5) = '200HD') then 2114 begin 2115 TRemoteSite(Items[i]).LabQueryStatus := '1^Not Included'; 2116 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'NOT INCLUDED'); 2117 TabControl1.OnChange(nil); 2118 continue; 2119 end; 2036 2120 TRemoteSite(Items[i]).CurrentLabQuery := 'Lab' + Patient.DFN + ';' + Patient.ICN + 2037 2121 '^' + IntToStr(AItem) + '^' + IntToStr(AReportID) + '^^' + ARpc + '^' + AHSType + … … 2055 2139 TRemoteSite(Items[i]).LabRemoteHandle := ''; 2056 2140 TRemoteSite(Items[i]).LabQueryStatus := '1^Done'; 2141 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Done'); 2057 2142 TabControl1.OnChange(nil); 2058 2143 end … … 2084 2169 end; 2085 2170 if Dest[0] = '' then 2086 TRemoteSite(Items[i]).LabQueryStatus := '-1^Communication error' 2171 begin 2172 TRemoteSite(Items[i]).LabQueryStatus := '-1^Communication error'; 2173 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Communication error'); 2174 end 2087 2175 else 2088 2176 begin 2089 2177 TRemoteSite(Items[i]).LabRemoteHandle := Dest[0]; 2090 2178 TRemoteSite(Items[i]).LabQueryStatus := '0^initialization...'; 2179 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Initialization'); 2091 2180 Timer1.Enabled := True; 2092 2181 StatusText('Retrieving reports from ' -
cprs/branches/foia-cprs/CPRS-Chart/fMHTest.dfm
r459 r460 12 12 Font.Name = 'MS Sans Serif' 13 13 Font.Style = [] 14 FormStyle = fsStayOnTop15 14 KeyPreview = True 16 15 OldCreateOrder = False -
cprs/branches/foia-cprs/CPRS-Chart/fMHTest.pas
r459 r460 38 38 procedure GotoQ(x: integer); 39 39 public 40 MHTestComp: string; 41 MHA3: boolean; 40 42 end; 41 43 … … 134 136 end; 135 137 end; 138 if frmMHTest.MHTestComp = '' then frmMHTest.MHTestComp := '0'; 139 Result := Result + U + frmMHTest.MHTestComp; 140 if Result = U then Result := ''; 136 141 finally 137 142 frmMHTest.Free; … … 246 251 try 247 252 TstData.Assign(LoadMentalHealthTest(TestName)); 253 if TstData.Strings[0] = '1' then MHA3 := True 254 else MHA3 := False; 248 255 Screen.Cursor := crHourGlass; 249 256 try 250 257 TstData.Add('99999;X;0'); 251 idx := 0;258 idx := 1; 252 259 FMaxLines := 0; 253 260 FInfoText := ''; … … 302 309 if(Spec = 'I') then 303 310 begin 304 AddTxt2Str(FInfoText); 311 if MHA3 = True then AddTxt2Str(QObj.FText) 312 else 313 AddTxt2Str(FInfoText);; 305 314 end 306 315 else … … 392 401 FBuildingControls := TRUE; 393 402 try 394 if(not assigned(FInfoLabel)) then 403 Wide := sbMain.Width - (Gap * 2) - ScrollBarWidth - 4; 404 Y := gap - sbMain.VertScrollBar.Position; 405 if MHA3 = False then 406 begin 407 if(not assigned(FInfoLabel)) then 395 408 begin 396 409 FInfoLabel := TMemo.Create(Self); … … 405 418 end; 406 419 BoundsRect := FInfoLabel.BoundsRect; 407 Wide := sbMain.Width - (Gap * 2) - ScrollBarWidth - 4;408 Y := Gap - sbMain.VertScrollBar.Position;420 //Wide := sbMain.Width - (Gap * 2) - ScrollBarWidth - 4; 421 //Y := gap - sbMain.VertScrollBar.Position; 409 422 BoundsRect.Top := Y; 410 423 BoundsRect.Right := BoundsRect.Left + Wide; … … 416 429 for i := 0 to FObjs.Count-1 do 417 430 TMHQuestion(FObjs[i]).BuildControls(Y, Wide); 431 end 432 else 433 begin 434 inc(Y, 1); 435 for i := 0 to FObjs.Count-1 do TMHQuestion(FObjs[i]).BuildControls(Y, Wide); 436 end; 418 437 finally 419 438 FBuildingControls := FALSE; … … 780 799 var 781 800 i, XCnt, First: integer; 782 msg : string;801 msg, ans, TestStatus: string; 783 802 784 803 begin 785 804 msg := ''; 805 ans := ''; 786 806 XCnt := 0; 787 807 First := -1; 808 TestStatus := '2'; 809 MHTestComp := '2'; 788 810 for i := 0 to FObjs.Count-1 do 789 811 begin 812 ans := ans + TMHQuestion(Fobjs[i]).FAnswer; 790 813 if(TMHQuestion(FObjs[i]).FAnswer = Skipped) then 791 814 begin … … 797 820 end; 798 821 end; 822 if(XCnt = FObjs.Count) then ModalResult := mrOK; 823 TestStatus := VerifyMentalHealthTestComplete(Self.Caption, ans); 824 if Piece(TestStatus,U,1) <> '2' then 825 begin 826 if Piece(TestStatus,U,1)='1' then 827 begin 828 ModalResult := mrOK; 829 MHTestComp := '1'; 830 EXIT; 831 end; 832 if Piece(TestStatus,U,1)='0' then 833 begin 834 MHTestComp := '0'; 835 msg := Piece(TestStatus,u,2); 836 msg := 'The following questions have not been answered:' + CRLF + CRLF + ' ' + msg; 837 if(InfoBox(msg + CRLF + CRLF + 'Answer skipped questions?', 'Skipped Questions', 838 MB_YESNO or MB_ICONQUESTION) = IDYES) then GotoQ(First) 839 else 840 ModalResult := mrOK; 841 EXIT; 842 end; 843 end; 799 844 if(XCnt = 0) then 800 845 ModalResult := mrOK -
cprs/branches/foia-cprs/CPRS-Chart/fMeds.dfm
r459 r460 1 1 inherited frmMeds: TfrmMeds 2 Left = 2553 Top = 534 Width = 7 345 Height = 68 12 Left = 93 3 Top = 250 4 Width = 709 5 Height = 686 6 6 HelpContext = 3000 7 VertScrollBar.Visible = False 7 8 Caption = 'Medications Page' 8 9 HelpFile = 'qnoback' 9 10 Menu = mnuMeds 11 Visible = True 10 12 OnDestroy = FormDestroy 13 OnMouseUp = FormMouseUp 11 14 OnResize = FormResize 12 15 OnShow = FormShow … … 21 24 object splitTop: TSplitter 22 25 Left = 0 23 Top = 21324 Width = 7 2626 Top = 421 27 Width = 701 25 28 Height = 4 26 29 Cursor = crVSplit … … 36 39 object pnlBottom: TORAutoPanel 37 40 Left = 0 38 Top = 21739 Width = 7 2640 Height = 41841 Top = 425 42 Width = 701 43 Height = 207 41 44 Align = alBottom 42 Caption = 'pnlBottom'43 45 Constraints.MinHeight = 40 44 46 Ctl3D = False … … 47 49 object splitBottom: TSplitter 48 50 Left = 1 49 Top = 20450 Width = 72451 Top = 102 52 Width = 699 51 53 Height = 4 52 54 Cursor = crVSplit … … 56 58 Constraints.MaxHeight = 4 57 59 Constraints.MinHeight = 4 58 MinSize = 6060 MinSize = 100 59 61 ParentColor = False 60 62 OnMoved = splitBottomMoved … … 62 64 object pnlMedIn: TPanel 63 65 Left = 1 64 Top = 20865 Width = 72466 Height = 20966 Top = 106 67 Width = 699 68 Height = 100 67 69 Align = alBottom 68 Caption = 'pnlMedIn' 69 Constraints.MinHeight = 40 70 Constraints.MinHeight = 100 70 71 TabOrder = 0 71 72 object lstMedsIn: TCaptionListBox … … 73 74 Left = 1 74 75 Top = 17 75 Width = 72276 Height = 19176 Width = 697 77 Height = 82 77 78 Style = lbOwnerDrawVariable 78 79 Align = alClient 79 80 Color = clCream 81 Constraints.MinHeight = 65 80 82 Ctl3D = False 81 83 ItemHeight = 13 … … 94 96 Left = 1 95 97 Top = 1 96 Width = 72298 Width = 697 97 99 Height = 16 98 100 BiDiMode = bdLeftToRight 99 101 DragReorder = False 100 Constraints.MaxHeight = 16101 102 Constraints.MinHeight = 16 102 103 Sections = < … … 111 112 MinWidth = 20 112 113 Text = 'Inpatient Medications' 113 Width = 440114 Width = 100 114 115 end 115 116 item … … 127 128 item 128 129 ImageIndex = -1 130 MinWidth = 16 129 131 Text = 'Location' 130 Width = 60132 Width = 20 131 133 end> 134 OnSectionClick = hdrMedsInSectionClick 132 135 OnSectionResize = hdrMedsInSectionResize 133 136 ParentBiDiMode = False 137 OnMouseDown = hdrMedsInMouseDown 138 OnMouseUp = hdrMedsInMouseUp 134 139 OnResize = hdrMedsInResize 135 140 end … … 138 143 Left = 1 139 144 Top = 1 140 Width = 724141 Height = 203145 Width = 699 146 Height = 101 142 147 Align = alClient 143 148 Caption = 'pnlNonVA' … … 148 153 Left = 1 149 154 Top = 17 150 Width = 722151 Height = 185155 Width = 697 156 Height = 83 152 157 Style = lbOwnerDrawVariable 153 158 Align = alClient … … 170 175 Left = 1 171 176 Top = 1 172 Width = 722177 Width = 697 173 178 Height = 16 174 179 BiDiMode = bdLeftToRight 175 180 DragReorder = False 176 Constraints.MaxHeight = 16177 181 Constraints.MinHeight = 16 178 182 Sections = < … … 187 191 MinWidth = 20 188 192 Text = 'Non-VA Medications' 189 Width = 516193 Width = 100 190 194 end 191 195 item … … 201 205 Width = 62 202 206 end> 203 OnSectionResize = hdrMedsInSectionResize 207 OnSectionClick = hdrMedsNonVASectionClick 208 OnSectionResize = hdrMedsNonVASectionResize 204 209 ParentBiDiMode = False 210 OnMouseDown = hdrMedsNonVAMouseDown 211 OnMouseUp = hdrMedsNonVAMouseUp 205 212 OnResize = hdrMedsNonVAResize 206 213 end … … 210 217 Left = 0 211 218 Top = 0 212 Width = 7 26213 Height = 213219 Width = 701 220 Height = 421 214 221 Align = alClient 215 Caption = 'pnlTop'216 222 Ctl3D = True 217 223 ParentCtl3D = False … … 221 227 Left = 1 222 228 Top = 17 223 Width = 724224 Height = 195229 Width = 699 230 Height = 403 225 231 Style = lbOwnerDrawVariable 226 232 Align = alClient 227 233 Color = clCream 234 Constraints.MinHeight = 40 228 235 Ctl3D = False 229 236 ItemHeight = 13 … … 242 249 Left = 1 243 250 Top = 1 244 Width = 724251 Width = 699 245 252 Height = 16 253 BiDiMode = bdLeftToRight 246 254 DragReorder = False 247 Constraints.MaxHeight = 100248 255 Constraints.MinHeight = 16 249 256 Sections = < … … 258 265 MinWidth = 20 259 266 Text = 'Outpatient Medications' 260 Width = 400267 Width = 100 261 268 end 262 269 item … … 284 291 Width = 78 285 292 end> 293 OnSectionClick = hdrMedsOutSectionClick 286 294 OnSectionResize = hdrMedsOutSectionResize 295 ParentBiDiMode = False 296 OnMouseDown = hdrMedsOutMouseDown 297 OnMouseUp = hdrMedsOutMouseUp 287 298 OnResize = hdrMedsOutResize 288 299 end … … 358 369 end 359 370 end 371 object mnuViewInformation: TMenuItem 372 Caption = 'Information' 373 OnClick = mnuViewInformationClick 374 object mnuViewDemo: TMenuItem 375 Tag = 1 376 Caption = 'De&mographics...' 377 OnClick = ViewInfo 378 end 379 object mnuViewVisits: TMenuItem 380 Tag = 2 381 Caption = 'Visits/Pr&ovider...' 382 OnClick = ViewInfo 383 end 384 object mnuViewPrimaryCare: TMenuItem 385 Tag = 3 386 Caption = 'Primary &Care...' 387 OnClick = ViewInfo 388 end 389 object mnuViewMyHealtheVet: TMenuItem 390 Tag = 4 391 Caption = 'MyHealthe&Vet...' 392 OnClick = ViewInfo 393 end 394 object mnuInsurance: TMenuItem 395 Tag = 5 396 Caption = '&Insurance...' 397 OnClick = ViewInfo 398 end 399 object mnuViewFlags: TMenuItem 400 Tag = 6 401 Caption = '&Flags...' 402 OnClick = ViewInfo 403 end 404 object mnuViewRemoteData: TMenuItem 405 Tag = 7 406 Caption = 'Remote &Data...' 407 OnClick = ViewInfo 408 end 409 object mnuViewReminders: TMenuItem 410 Tag = 8 411 Caption = '&Reminders...' 412 Enabled = False 413 OnClick = ViewInfo 414 end 415 object mnuViewPostings: TMenuItem 416 Tag = 9 417 Caption = '&Postings...' 418 OnClick = ViewInfo 419 end 420 end 360 421 object Z2: TMenuItem 361 422 Caption = '-' … … 473 534 OnClick = mnuActNewClick 474 535 end 536 object mnuOptimizeFields: TMenuItem 537 Caption = 'Adjust Field Size' 538 Visible = False 539 OnClick = mnuOptimizeFieldsClick 540 end 475 541 end 476 542 end -
cprs/branches/foia-cprs/CPRS-Chart/fMeds.pas
r459 r460 72 72 lstMedsOut: TCaptionListBox; 73 73 hdrMedsOut: THeaderControl; 74 mnuViewInformation: TMenuItem; 75 mnuViewDemo: TMenuItem; 76 mnuViewVisits: TMenuItem; 77 mnuViewPrimaryCare: TMenuItem; 78 mnuViewMyHealtheVet: TMenuItem; 79 mnuInsurance: TMenuItem; 80 mnuViewFlags: TMenuItem; 81 mnuViewReminders: TMenuItem; 82 mnuViewRemoteData: TMenuItem; 83 mnuViewPostings: TMenuItem; 84 mnuOptimizeFields: TMenuItem; 74 85 procedure mnuChartTabClick(Sender: TObject); 75 86 procedure FormCreate(Sender: TObject); … … 96 107 procedure mnuActRefillClick(Sender: TObject); 97 108 procedure mnuActClick(Sender: TObject); 98 procedure pnlMedOut1Resize(Sender: TObject);99 109 procedure mnuViewHistoryClick(Sender: TObject); 100 110 procedure popMedPopup(Sender: TObject); … … 114 124 procedure splitBottomMoved(Sender: TObject); 115 125 procedure splitTopMoved(Sender: TObject); 126 procedure hdrMedsOutMouseDown(Sender: TObject; Button: TMouseButton; 127 Shift: TShiftState; X, Y: Integer); 128 procedure hdrMedsNonVAMouseDown(Sender: TObject; Button: TMouseButton; 129 Shift: TShiftState; X, Y: Integer); 130 procedure hdrMedsInMouseDown(Sender: TObject; Button: TMouseButton; 131 Shift: TShiftState; X, Y: Integer); 132 procedure hdrMedsOutMouseUp(Sender: TObject; Button: TMouseButton; 133 Shift: TShiftState; X, Y: Integer); 134 procedure hdrMedsNonVAMouseUp(Sender: TObject; Button: TMouseButton; 135 Shift: TShiftState; X, Y: Integer); 136 procedure hdrMedsInMouseUp(Sender: TObject; Button: TMouseButton; 137 Shift: TShiftState; X, Y: Integer); 138 //procedure ActivateDeactiveRenew(AListBox: TListBox); 139 procedure ViewInfo(Sender: TObject); 140 procedure mnuViewInformationClick(Sender: TObject); 141 procedure mnuOptimizeFieldsClick(Sender: TObject); 142 procedure hdrMedsOutSectionClick(HeaderControl: THeaderControl; 143 Section: THeaderSection); 144 procedure hdrMedsNonVASectionClick(HeaderControl: THeaderControl; 145 Section: THeaderSection); 146 procedure hdrMedsInSectionClick(HeaderControl: THeaderControl; 147 Section: THeaderSection); 116 148 private 117 149 FIterating: Boolean; … … 138 170 function GetMedList(Control: TWinControl): TList; 139 171 function GetPharmacyOrders(Control: TWinControl): TStringList; 172 function PatientStatusChanged: boolean; 173 procedure ClearChildODList; 140 174 public 141 function PctOfTotalHeight(thisPanel: TPanel) : integer;142 175 procedure RefreshMedLists; 143 176 procedure ClearPtData; override; … … 148 181 property ParentComplexOrderID: string read FParentComplexOrderID write FParentComplexOrderID; 149 182 procedure InitfMedsSize; 150 end; 183 procedure SetSectionWidths(Sender: TObject); 184 function GetTotalSectionsWidth(Sender: TObject) : integer; 185 function CheckMedStatus(ActiveList: TListBox): boolean; 186 end; 187 188 type 189 arOrigOutPtSecWidths = array[0..6] of integer; //CQ7586 190 arOrigInPtSecWidths = array[0..4] of integer; //CQ7586 191 arOrigNonVASecWidths = array[0..3] of integer; //CQ7586 151 192 152 193 var … … 154 195 // LargePanelPortion: Integer; 155 196 // SmallPanelPortion: integer; 197 198 OrigOutPtSecWidths: arOrigOutPtSecWidths; //CQ7586 199 OrigInPtSecWidths : arOrigInPtSecWidths; //CQ7586 200 OrigNonVASecWidths: arOrigNonVASecWidths; //CQ7586 201 156 202 MedOutSize: double; 157 203 s: string; … … 161 207 162 208 totalHeight: integer; 163 MedOutPctOfTotalHeight: integer;164 NonVAPctOfTotalHeight: integer;165 MedInpctOfTotalHeight : integer;166 209 167 210 resizedTotalHeight: integer; … … 171 214 172 215 splitterTop: TSplitter; 173 splitterBottom: TSplitter; 216 splitterBottom: TSplitter; 217 218 oldFont: integer; //CQ9182 219 174 220 175 221 implementation 176 222 177 uses uCore, fFrame, fRptBox, uOrders, fODBase, fOrdersDC, fOrdersHold, 178 fOrdersRenew, fOMNavA, fOrdersRefill, fMedCopy, fOrders, fODChild, rODBase; 223 uses uCore, rCore, fFrame, fRptBox, uOrders, fODBase, fOrdersDC, fOrdersHold, 224 fOrdersRenew, fOMNavA, fOrdersRefill, fMedCopy, fOrders, fODChild, rODBase, 225 StrUtils, fActivateDeactivate; 179 226 180 227 {$R *.DFM} 181 228 182 229 const 230 SMALL_PANEL = 20; 231 LARGE_PANEL = 60; 183 232 COL_MEDNAME = 1; 184 233 DG_OUT = 0; … … 215 264 begin 216 265 inherited ClearPtData; 266 ClearChildODList; 217 267 lstMedsIn.Clear; 218 268 lstMedsOut.Clear; … … 225 275 uPharmacyOrdersOut.Clear; 226 276 uMedListNonVA.Clear; 277 totalHeight := 0; 227 278 228 279 end; … … 231 282 const 232 283 RATIO_SMALL = 0.13; //0.1866; 284 285 233 286 begin 234 287 inherited DisplayPage; … … 251 304 252 305 if Patient.Inpatient then 253 306 begin 254 307 splitBottom.Align := alNone; 255 hdrMedsIn.Align := alNone; 256 257 lstMedsIn.Parent := pnlTop; 258 lstMedsIn.Align := alClient; 308 hdrMedsIn.Align := alNone; 309 lstMedsIn.Align := alNone; 310 311 lstMedsIn.Parent := pnlTop; 312 lstMedsIn.Align := alClient; 259 313 lstMedsOut.Parent := pnlMedIn; 260 314 261 hdrMedsIn.Parent := pnlTop;262 hdrMedsIn.Align := alTop;315 hdrMedsIn.Parent := pnlTop; 316 hdrMedsIn.Align := alTop; 263 317 264 318 hdrMedsOut.Parent := pnlMedIn; 265 splitBottom.Align := alBottom; 266 end 319 splitBottom.Align := alBottom; 320 321 lstMedsIn.Height := lstMedsIn.Height - 1; // added to cause repaint if user makes area small 322 lstMedsIn.Height := lstMedsIn.Height + 1; // added to cause repaint if user makes area small. 323 lstMedsOut.Height := lstMedsOut.Height + 1; // added to cause repaint if user makes area small 324 lstMedsOut.Height := lstMedsOut.Height - 1; // added to cause repaint if user makes area small 325 326 end 267 327 else 268 328 begin 269 splitBottom.Align := alNone; 270 hdrMedsIn.Align := alNone; 271 272 lstMedsIn.Parent := pnlMedIn; 273 lstMedsOut.Parent := pnlTop; 274 lstMedsOut.Align := alClient; 275 276 hdrMedsIn.Parent := pnlMedIn; 277 hdrMedsIn.Align := alTop; 278 279 hdrMedsOut.Parent := pnlTop; 280 splitBottom.Align := alBottom; 329 splitBottom.Align := alNone; 330 hdrMedsIn.Align := alNone; 331 332 lstMedsIn.Parent := pnlMedIn; 333 lstMedsOut.Parent := pnlTop; 334 lstMedsOut.Align := alClient; 335 336 hdrMedsIn.Parent := pnlMedIn; 337 hdrMedsIn.Align := alTop; 338 339 hdrMedsOut.Parent := pnlTop; 340 splitBottom.Align := alBottom; 341 342 lstMedsIn.Height := lstMedsIn.Height - 1; // added to cause repaint if user makes area small 343 lstMedsIn.Height := lstMedsIn.Height + 1; // added to cause repaint if user makes area small. 344 lstMedsOut.Height := lstMedsOut.Height + 1; // added to cause repaint if user makes area small 345 lstMedsOut.Height := lstMedsOut.Height - 1; // added to cause repaint if user makes area small 281 346 end; 282 283 284 RefreshMedLists; 347 RefreshMedLists; 285 348 286 349 end; … … 332 395 if AnOrder <> nil then 333 396 begin 397 //AGP Change 26.24 CQ 7150 fixes the problem with non-va meds initially showing up in the inpatient section 334 398 if uDGrp[DG_OUT] = AnOrder.DGroup then AMedList := uMedListOut; 335 for i := 1 to 6 do if uDGrp[i] = AnOrder.DGroup then AMedList := uMedListIn; 399 If uDGrp[DG_NVA] = AnOrder.DGroup then AMedList := uMedListNonVA; 400 if (AMedList <> uMedListOut) and (AMedList <> uMedListNonVA) then 401 for i := 1 to 6 do if uDGrp[i] = AnOrder.DGroup then AMedList := uMedListIn; 336 402 end; 337 403 case OrderAction of … … 409 475 end 410 476 else uPendingChanges.Add(Piece(AnOrder.ActionOn, ';', 1) + '=' + 411 Piece(AnOrder.ActionOn, '=', 2) + U + AnOrder.ID + '^^' + AnOrder.OrderLocName); 477 Piece(AnOrder.ActionOn, '=', 2) + U + AnOrder.ID + '^^' + AnOrder.OrderLocName); 478 412 479 end; {if AMedList} 413 480 ORDER_CPLXRN: … … 450 517 begin 451 518 inherited SetFontSize(FontSize); 519 mnuOptimizeFieldsClick(self); 452 520 if Patient.DFN <> '' then 453 521 RefreshMedLists; … … 459 527 var 460 528 medsSplitFnd : boolean; 461 panelBottom, panelMedIn : integer;462 529 retList : TStringList; 463 530 i: integer; … … 486 553 ChildODList := TStringList.Create; 487 554 488 555 556 489 557 //DETECT 1st TIME USER. 490 558 //If first time user (medSplitFound=false), then manually set panel heights. … … 501 569 if strPos(PChar(x),PChar(MEDS_SPLIT_FORM)) <> nil then 502 570 begin 503 medsSplitFnd := TRUE;571 medsSplitFnd := False;//TRUE; 504 572 Break; 505 573 end; … … 510 578 pnlBottom.Height := frmMeds.Height div 2; 511 579 pnlMedIn.Height := pnlBottom.Height div 2; 512 panelBottom := pnlBottom.Height;513 panelMedIn := pnlMedIn.Height;514 580 end; 515 581 end; 516 582 517 518 583 //CQ9622 584 if hdrMedsIn.Sections[1].Width < 100 then 585 begin 586 hdrMedsIn.Sections[1].Width := 100; 587 hdrMedsIn.Refresh; 588 end; 589 if hdrMedsNonVA.Sections[1].Width < 100 then 590 begin 591 hdrMedsNonVA.Sections[1].Width := 100; 592 lstMedsNonVA.Refresh; 593 end; 594 if hdrMedsOut.Sections[1].Width < 100 then 595 begin 596 hdrMedsOut.Sections[1].Width := 100; 597 hdrMedsOut.Refresh; 598 end; 599 //end CQ9622 519 600 end; 520 601 … … 522 603 begin 523 604 inherited; 605 ClearChildODList; 524 606 ClearMedList(uMedListIn); 525 607 ClearMedList(uMedListOut); … … 706 788 result := ''; 707 789 Detail := ''; 790 if AMed.Status = 'Suspended' then AMed.Status := 'Active/Susp'; //HDS00007547 PSI-03-033 Interim Solution. 708 791 case Column of 709 792 0: result := GetActionText(AMed); 710 793 1: result := GetInstructText(AMed, Detail); 711 794 2: result := FormatFMDateTime('mm/dd/yy', AMed.StopDate); 712 3: result := AMed.Status;795 3: result := AMed.Status; 713 796 4: 714 797 begin … … 748 831 TAG_INPT: result := hdrMedsIn; 749 832 750 else result := nil; 833 else 834 result := nil; 751 835 end; 752 836 end; … … 758 842 TAG_NONVA: result := uMedListNonVA; 759 843 TAG_INPT: result := uMedListIn; 760 else result := nil; 844 else 845 result := nil; 761 846 end; 762 847 end; … … 768 853 TAG_NONVA: result := uNonVAOrdersOut; 769 854 TAG_INPT: result := uPharmacyOrdersIn; 770 else 855 else 771 856 result := nil; 772 857 end; … … 813 898 end; 814 899 815 procedure TfrmMeds.lstMedsDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; 816 State: TOwnerDrawState); 900 procedure TfrmMeds.lstMedsDrawItem(Control: TWinControl; Index: Integer; Rect: TRect; State: TOwnerDrawState); 817 901 var 818 902 ReturnHt: Integer; … … 838 922 begin 839 923 Canvas.Font.Style := [fsBold]; 840 if ColorToRGB(clWindowText) = ColorToRGB(clBlack) then 924 //AGP Change 26.29 CQ #8188 Fix for highlighted new meds displaying blue font with a blue background. 925 if odSelected in State then 926 begin 927 Canvas.Brush.Color := clHighlight; 928 Canvas.Font.Color := clHighlightText; 929 //Canvas.FillRect(ARect); 930 Canvas.Font.Color := clWhite; 931 end; 932 if (ColorToRGB(clWindowText) = ColorToRGB(clBlack)) and (Canvas.Font.Color <> clWhite) then 841 933 Canvas.Font.Color := clBlue; 842 934 if (Length(Piece(AnAction,'^',4)) > 0) then … … 851 943 ARect := ItemRect(Index); 852 944 ARect.Left := RectLeft + 2; 853 ARect.Right := ARect.Left + AHeader.Sections[i].Width - 6; 945 ARect.Right := (ARect.Left + AHeader.Sections[i].Width - 6); 946 947 //if ((ARect.Right - ARect.Left) < 100) then 948 //ARect.Right := ARect.Right + (100 - (ARect.Left + AHeader.Sections[i].Width - 6)); 949 854 950 ReturnHt := DrawText(Canvas.Handle, PChar(x), Length(x), ARect, DT_LEFT or DT_NOPREFIX 855 951 or DT_WORDBREAK); … … 884 980 begin 885 981 inherited; 982 983 if PatientStatusChanged then exit; 886 984 with lstMedsOut do for i := 0 to Items.Count -1 do 887 985 Selected[i] := false; … … 895 993 begin 896 994 inherited; 995 996 if PatientStatusChanged then exit; 897 997 with lstMedsIn do for i := 0 to Items.Count -1 do 898 998 Selected[i] := false; … … 901 1001 end; 902 1002 903 procedure TfrmMeds.hdrMedsOutSectionResize(HeaderControl: THeaderControl; 904 Section: THeaderSection); 1003 procedure TfrmMeds.hdrMedsOutSectionResize(HeaderControl: THeaderControl; Section: THeaderSection); 905 1004 begin 906 1005 inherited; … … 916 1015 end; 917 1016 918 procedure TfrmMeds.hdrMedsInSectionResize(HeaderControl: THeaderControl; 919 Section: THeaderSection); 1017 procedure TfrmMeds.hdrMedsInSectionResize(HeaderControl: THeaderControl; Section: THeaderSection); 920 1018 begin 921 1019 inherited; … … 926 1024 IntegralHeight := not IntegralHeight; // listbox window to be recreated 927 1025 end; 1026 928 1027 RedrawActivate(Self.Handle); 929 1028 lstMedsIn.Invalidate; … … 936 1035 begin 937 1036 inherited; 938 //frmFrame.UpdatePtInfoOnRefresh;1037 if PatientStatusChanged then exit; 939 1038 if lstMedsOut.SelCount > 0 then 940 1039 begin … … 972 1071 begin 973 1072 ValidateSelected(ActiveList, OA_DC, TX_NO_DC, TC_NO_DC); 1073 //ActivateDeactiveRenew(ActiveList); AGP 26.53 TURN OFF UNTIL FINAL DECISION CAN BE MADE 974 1074 MakeSelectedList(ActiveList, SelectedList); 975 1075 if ExecuteDCOrders(SelectedList,DelEvt) then … … 999 1099 if ActiveList = nil then Exit; 1000 1100 SelectedList := TList.Create; 1101 if CheckMedStatus(ActiveList) = True then Exit; 1001 1102 try 1002 1103 FIterating := True; … … 1034 1135 try 1035 1136 FIterating := True; 1137 if CheckMedStatus(ActiveList) = True then Exit; 1036 1138 if AuthorizedUser and EncounterPresent and LockedForOrdering then 1037 1139 begin … … 1084 1186 ChangeIFNList := TStringList.Create; 1085 1187 try 1188 FIterating := true; 1189 if CheckMedStatus(ActiveList) = True then Exit; 1190 ValidateSelected(ActiveList, OA_CHANGE, TX_NO_CHANGE, TC_NO_CHANGE); 1086 1191 MakeSelectedList(Activelist, SelectedList); 1087 1192 with SelectedList do for i := 0 to Count - 1 do ChangeIFNList.Add(TOrder(Items[i]).ID); … … 1136 1241 DoesDestEvtOccur := False; 1137 1242 ActiveList := ListSelected(TX_NOSEL); 1243 if CheckMedStatus(ActiveList) = True then Exit; 1138 1244 if ActiveList = nil then Exit; 1139 1245 NewOrderCreated := False; … … 1296 1402 if ActiveList = nil then Exit; 1297 1403 SelectedList := TList.Create; 1404 if CheckMedStatus(ActiveList) = True then Exit; 1298 1405 try 1299 1406 FIterating := True; … … 1344 1451 begin 1345 1452 Selected[i] := False; 1346 MessageDlg('You can not renew inpatient medication order on a clinic location for selected inpatient.', mtWarning, [mbOK], 0);1453 MessageDlg('You cannot renew inpatient medication orders from a clinic location for selected patient.', mtWarning, [mbOK], 0); 1347 1454 end; 1348 1455 CurID := uPendingChanges.Values[Piece(Piece(SomePharmacyOrders[i], U, 2), ';', 1)]; … … 1412 1519 end; 1413 1520 end; 1414 idx := -1;1415 1521 idx := ChildODList.IndexOf(AnOrder.ID); 1416 1522 if idx > - 1 then … … 1426 1532 1427 1533 procedure TfrmMeds.SynchListToOrders(AListBox: TListBox; AList: TList); 1428 { shows selected med orders as selected } 1429 //var 1430 // i, j: Integer; 1431 // AMedListRec: TMedListRec; 1432 // AnOrder: TOrder; 1433 begin 1434 // with AListBox do for i := 0 to Items.Count - 1 do 1435 // begin 1436 // AMedListRec := TMedListRec(AListBox.Items.Objects[i]); 1437 // with AList do for j := 0 to Count - 1 do 1438 // begin 1439 // AnOrder := TOrder(AList.Items[j]); 1440 // if Piece(AMedListRec.OrderID, ';', 1) = Piece(AnOrder.ID, ';', 1) then 1441 // begin 1442 // //AMedListRec.Instruct := AMedListRec.Instruct + ' * EDITED *'; 1443 // //AMedListRec.Action := MED_NEW; //*KCM* 1444 // //AListBox.Selected[i] := True; // resets valid selections to indicate changes //*KCM* 1445 // end; 1446 // end; 1447 // end; 1534 begin 1448 1535 AListBox.Invalidate; 1449 1536 end; 1450 1537 1451 procedure TfrmMeds.pnlMedOut1Resize(Sender: TObject);1452 begin1453 inherited;1454 //if pnlMedOut.Height < 20 then pnlMedOut.Height := 20;1455 end;1456 1457 1458 1538 procedure TfrmMeds.popMedPopup(Sender: TObject); 1459 1539 begin 1460 1540 inherited; 1461 //frmFrame.UpdatePtInfoOnRefresh;1541 if PatientStatusChanged then exit; 1462 1542 end; 1463 1543 … … 1465 1545 begin 1466 1546 inherited; 1467 //frmFrame.UpdatePtInfoOnRefresh;1547 if PatientStatusChanged then exit; 1468 1548 end; 1469 1549 … … 1473 1553 begin 1474 1554 inherited; 1555 if PatientStatusChanged then exit; 1475 1556 with lstMedsIn do for i := 0 to Items.Count -1 do 1476 1557 Selected[i] := false; … … 1491 1572 end; 1492 1573 1493 procedure TfrmMeds.hdrMedsNonVASectionResize(HeaderControl: THeaderControl; 1494 Section: THeaderSection); 1574 procedure TfrmMeds.hdrMedsNonVASectionResize(HeaderControl: THeaderControl; Section: THeaderSection); 1495 1575 begin 1496 1576 inherited; … … 1506 1586 end; 1507 1587 1508 function TfrmMeds.PctOfTotalHeight(thisPanel: TPanel) : integer; 1509 var 1510 pctOfTotal: real; 1511 begin 1512 pctOfTotal := ((thisPanel.Height / totalHeight) * 100); 1513 Result := Round(pctOfTotal); 1588 function FontChanged : boolean; 1589 //CQ9182: SEE ALSO procedure TfrmFrame.mnuFontSizeClick() 1590 begin 1591 Result := false; 1592 if Assigned(frmMeds) then 1593 begin 1594 if fMeds.oldFont = 0 then Result := False 1595 else 1596 if (fMeds.oldFont <> MainFontSize) then 1597 Result := true; 1598 end; 1514 1599 end; 1515 1600 1516 1601 procedure TfrmMeds.FormResize(Sender: TObject); 1602 var 1603 maxPanelHeight: integer; 1604 1517 1605 begin 1518 1606 inherited; 1519 1607 if Assigned(frmMeds) then 1608 begin 1609 //CQ9522 v26.51 Make sure all three panels are visible regardless of font size 1610 if Assigned(self.Parent) then 1520 1611 begin 1521 //Adjust splitter positions to always be in view, regardless of window size 1522 if (pnlBottom.Height > frmMeds.Height-50) then pnlBottom.Height := frmMeds.Height-50; 1523 if (pnlMedIn.Height > pnlBottom.Height-50) then pnlMedIn.Height := pnlBottom.Height-50; 1524 end; 1612 if self.Height > parent.ClientHeight then 1613 self.Height := parent.ClientHeight; 1614 maxPanelHeight := round((parent.ClientHeight-20)/3); 1615 if pnlTop.Height + pnlBottom.Height > parent.ClientHeight then 1616 begin 1617 pnlBottom.Height := maxPanelHeight*2; 1618 pnlTop.Height := maxPanelHeight; 1619 end; 1620 end; //assigned(self.parent) 1621 end; 1525 1622 end; 1526 1623 … … 1537 1634 inherited; 1538 1635 with hdrMedsOut do 1539 begin 1540 if Height < 16 then Height := 16; 1541 if Height > 16 then Height := 16; 1636 begin 1637 Height := TextHeightByFont(Font.Handle, Sections[0].Text); 1542 1638 Invalidate; 1543 1639 end; 1544 1640 end; 1545 1641 … … 1548 1644 inherited; 1549 1645 with hdrMedsNonVA do 1550 begin 1551 if Height < 16 then Height := 16; 1552 if Height > 16 then Height := 16; 1646 begin 1647 Height := TextHeightByFont(Font.Handle, Sections[0].Text); 1553 1648 Invalidate; 1554 1649 end; 1555 1650 end; 1556 1651 … … 1559 1654 inherited; 1560 1655 with hdrMedsIn do 1561 begin 1562 if Height < 16 then Height := 16; 1563 if Height > 16 then Height := 16; 1656 begin 1657 Height := TextHeightByFont(Font.Handle, Sections[0].Text); 1564 1658 Invalidate; 1565 1659 end; 1566 1660 end; 1567 1661 … … 1581 1675 begin 1582 1676 inherited; 1583 if splitBottom.Height > 5 thensplitBottom.Height := 5;1677 splitBottom.Height := 5; 1584 1678 end; 1585 1679 … … 1587 1681 begin 1588 1682 inherited; 1589 if splitTop.Height > 5 thensplitTop.Height := 5;1683 splitTop.Height := 5; 1590 1684 end; 1591 1685 … … 1612 1706 x := retList.strings[i]; 1613 1707 if strPos(PChar(x),PChar(MEDS_SPLIT_FORM)) <> nil then 1614 1708 begin 1615 1709 medsSplitFnd := TRUE; 1616 1710 Break; … … 1631 1725 end; 1632 1726 1727 function TfrmMeds.PatientStatusChanged: boolean; 1728 const 1729 1730 msgTxt1 = 'Patient status was changed from '; 1731 msgTxt2 = 'CPRS needs to refresh patient information to display patient latest record.'; 1732 //GE CQ9537 - Change message text 1733 msgTxt3 = 'Patient has been admitted.'; 1734 msgTxt4 = CRLF +'You will be prompted to sign your orders. Any new orders subsequently' + 1735 CRLF + 'entered and signed will be directed to the inpatient staff.'; 1736 1737 var 1738 PtSelect: TPtSelect; 1739 IsInpatientNow: boolean; 1740 ptSts: string; 1741 begin 1742 result := False; 1743 SelectPatient(Patient.DFN, PtSelect); 1744 IsInpatientNow := Length(PtSelect.Location) > 0; 1745 //GE CQ9537 - Change message text 1746 if Patient.Inpatient <> IsInpatientNow then 1747 begin 1748 if (not Patient.Inpatient) then MessageDlg(msgTxt3 + msgTxt4, mtWarning, [mbOK], 0); 1749 if Patient.Inpatient then ptSts := 'Inpatient to Outpatient.'; 1750 MessageDlg(msgTxt1 + ptSts + #13#10#13 + msgTxt2, mtWarning, [mbOK], 0); 1751 frmFrame.mnuFileRefreshClick(Application); 1752 Result := True; 1753 end; 1754 end; 1755 1756 function TfrmMeds.GetTotalSectionsWidth(Sender: TObject) : integer; 1757 //CQ7586 1758 //Return stored values of column widths 1759 var 1760 i: integer; 1761 begin 1762 Result := 0; 1763 1764 if (Sender as THeaderControl).Name = 'hdrMedsOut' then 1765 for i := 0 to hdrMedsOut.Sections.Count - 1 do 1766 Result := Result + hdrMedsOut.Sections[i].Width; 1767 1768 if (Sender as THeaderControl).Name = 'hdrMedsIn' then 1769 for i := 0 to hdrMedsIn.Sections.Count - 1 do 1770 Result := Result + hdrMedsIn.Sections[i].Width; 1771 1772 if (Sender as THeaderControl).Name = 'hdrMedsNonVA' then 1773 for i := 0 to hdrMedsNonVA.Sections.Count - 1 do 1774 Result := Result + hdrMedsNonVA.Sections[i].Width; 1775 end; 1776 1777 procedure TfrmMeds.SetSectionWidths(Sender: TObject); 1778 //CQ7586 1779 //Copy values of column widths into array variables. 1780 var 1781 i: integer; 1782 begin 1783 if (Sender as THeaderControl).Name = 'hdrMedsOut' then 1784 for i := 0 to hdrMedsOut.Sections.Count - 1 do 1785 OrigOutPtSecWidths[i] := hdrMedsOut.Sections[i].Width; 1786 1787 if (Sender as THeaderControl).Name = 'hdrMedsIn' then 1788 for i := 0 to hdrMedsIn.Sections.Count - 1 do 1789 OrigInPtSecWidths[i] := hdrMedsIn.Sections[i].Width; 1790 1791 if (Sender as THeaderControl).Name = 'hdrMedsNonVA' then 1792 for i := 0 to hdrMedsNonVA.Sections.Count - 1 do 1793 OrigNonVASecWidths[i] := hdrMedsNonVA.Sections[i].Width; 1794 end; 1795 1796 procedure TfrmMeds.hdrMedsOutMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 1797 begin 1798 inherited; 1799 Self.SetSectionWidths(Sender); //CQ7586 1800 end; 1801 1802 procedure TfrmMeds.hdrMedsNonVAMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 1803 begin 1804 inherited; 1805 Self.SetSectionWidths(Sender); //CQ7586 1806 end; 1807 1808 procedure TfrmMeds.hdrMedsInMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 1809 begin 1810 inherited; 1811 Self.SetSectionWidths(Sender); //CQ7586 1812 end; 1813 1814 procedure TfrmMeds.hdrMedsOutMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 1815 //CQ7586 1816 var 1817 i: integer; 1818 totalSectionsWidth, originalwidth: integer; 1819 begin 1820 inherited; 1821 totalSectionsWidth := Self.GetTotalSectionsWidth(Sender); 1822 if totalSectionsWidth > lstMedsOut.Width - 5 then //could used any of the three list boxes here, since all are same width 1823 begin 1824 originalwidth := 0; 1825 for i := 0 to hdrMedsOut.Sections.Count - 1 do 1826 originalwidth := originalwidth + OrigOutPtSecWidths[i]; 1827 if originalwidth < totalSectionsWidth then 1828 begin 1829 for i := 0 to hdrMedsOut.Sections.Count - 1 do 1830 hdrMedsOut.Sections[i].Width := OrigOutPtSecWidths[i]; 1831 lstMedsOut.Invalidate; 1832 end; 1833 end; 1834 //CQ9622 1835 if hdrMedsOut.Sections[1].Width < 100 then 1836 begin 1837 hdrMedsOut.Sections[1].Width := 100; 1838 lstMedsOut.Refresh; 1839 end; 1840 //end CQ9622 1841 pnlBottom.Height := pnlBottom.Height - 1; // forces autopanel resize 1842 pnlBottom.Height := pnlBottom.Height + 1; // forces autopanel resize 1843 end; 1844 1845 procedure TfrmMeds.hdrMedsNonVAMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 1846 //CQ7586 1847 var 1848 i: integer; 1849 totalSectionsWidth, originalwidth: integer; 1850 begin 1851 inherited; 1852 totalSectionsWidth := Self.GetTotalSectionsWidth(Sender); 1853 if totalSectionsWidth > lstMedsNonVA.Width - 5 then //could used any of the three list boxes here, since all are same width 1854 begin 1855 originalwidth := 0; 1856 for i := 0 to hdrMedsNonVA.Sections.Count - 1 do 1857 originalwidth := originalwidth + OrigNonVASecWidths[i]; 1858 if originalwidth < totalSectionsWidth then 1859 begin 1860 for i := 0 to hdrMedsNonVA.Sections.Count - 1 do 1861 hdrMedsNonVA.Sections[i].Width := OrigNonVASecWidths[i]; 1862 lstMedsNonVA.Invalidate; 1863 end; 1864 end; 1865 //CQ9622 1866 if hdrMedsNonVA.Sections[1].Width < 100 then 1867 begin 1868 hdrMedsNonVA.Sections[1].Width := 100; 1869 lstMedsNonVA.Refresh; 1870 end; 1871 //end CQ9622 1872 pnlNonVA.Height := pnlNonVA.Height - 1; // forces autopanel resize 1873 pnlNonVA.Height := pnlNonVA.Height + 1; // forces autopanel resize 1874 end; 1875 1876 procedure TfrmMeds.hdrMedsInMouseUp(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 1877 //CQ7586 1878 var 1879 i: integer; 1880 totalSectionsWidth, originalwidth: integer; 1881 begin 1882 inherited; 1883 totalSectionsWidth := Self.GetTotalSectionsWidth(Sender); 1884 if totalSectionsWidth > lstMedsIn.Width - 5 then //could used any of the three list boxes here, since all are same width 1885 begin 1886 originalwidth := 0; 1887 for i := 0 to hdrMedsIn.Sections.Count - 1 do 1888 originalwidth := originalwidth + OrigInPtSecWidths[i]; 1889 if originalwidth < totalSectionsWidth then 1890 begin 1891 for i := 0 to hdrMedsIn.Sections.Count - 1 do 1892 hdrMedsIn.Sections[i].Width := OrigInPtSecWidths[i]; 1893 lstMedsIn.Invalidate; 1894 end; 1895 end; 1896 //CQ9622 1897 if hdrMedsIn.Sections[1].Width < 100 then 1898 begin 1899 hdrMedsIn.Sections[1].Width := 100; 1900 lstMedsIn.Refresh; 1901 end; 1902 //end CQ9622 1903 pnlBottom.Height := pnlBottom.Height - 1; // forces autopanel resize 1904 pnlBottom.Height := pnlBottom.Height + 1; // forces autopanel resize 1905 end; 1906 1907 procedure TfrmMeds.ClearChildODList; 1908 var 1909 i: integer; 1910 begin 1911 for i := 0 to ChildODList.count-1 do 1912 if(assigned(ChildODList.Objects[i])) then 1913 ChildODList.Objects[i].Free; 1914 ChildODList.Clear; 1915 end; 1916 1917 function TfrmMeds.CheckMedStatus(ActiveList: TListBox): boolean; 1918 var 1919 i: integer; 1920 tmpList: TStringList; 1921 Str: string; 1922 AMed: TMedListRec; 1923 AMedList: TList; 1924 1925 begin 1926 result := False; 1927 tmpList:= TStringList.Create; 1928 if TMedListRec = nil then exit; 1929 AMedList := GetMedList(ActiveList); 1930 for i := 0 to ActiveList.Count - 1 do if ActiveList.Selected[i] then 1931 begin 1932 AMed := TMedListRec(AMedList[i]); 1933 str := Amed.PharmID + U + AMed.Status; 1934 tmpList.Add(Str); 1935 end; 1936 if tmpList <> nil then 1937 begin 1938 Result := GetMedStatus(tmpList); 1939 tmpList.Free; 1940 end; 1941 if Result = True then 1942 begin 1943 MessageDlg('The Medication status has change.' + #13#10#13 + 'CPRS needs to refresh patient information to display the correct medication status', mtWarning, [mbOK], 0); 1944 frmFrame.mnuFileRefreshClick(Application); 1945 end; 1946 end; 1947 1948 (*procedure TfrmMeds.ActivateDeactiveRenew(AListBox: TListBox); 1949 var 1950 i: Integer; 1951 CurID: string; 1952 SomePharmacyOrders: TStringList; 1953 tmpArr: TStringList; 1954 begin 1955 tmpArr := TStringList.Create; 1956 SomePharmacyOrders := GetPharmacyOrders(AListBox); 1957 with AListBox do for i := 0 to Items.Count - 1 do if Selected[i] then 1958 begin 1959 CurID := uPendingChanges.Values[Piece(Piece(SomePharmacyOrders[i], U, 2), ';', 1)]; 1960 if Length(CurID) > 0 then CurID := Piece(CurID, U, 2) 1961 else CurID := Piece(SomePharmacyOrders[i], U, 2); 1962 tmpArr.Add(curID); 1963 end; 1964 if tmpArr <> nil then frmActivateDeactive.fActivateDeactive(tmpArr, AListBox); 1965 end; *) 1966 1967 procedure TfrmMeds.ViewInfo(Sender: TObject); 1968 begin 1969 inherited; 1970 frmFrame.ViewInfo(Sender); 1971 end; 1972 1973 procedure TfrmMeds.mnuViewInformationClick(Sender: TObject); 1974 begin 1975 inherited; 1976 mnuViewDemo.Enabled := frmFrame.pnlPatient.Enabled; 1977 mnuViewVisits.Enabled := frmFrame.pnlVisit.Enabled; 1978 mnuViewPrimaryCare.Enabled := frmFrame.pnlPrimaryCare.Enabled; 1979 mnuViewMyHealtheVet.Enabled := not (Copy(frmFrame.laMHV.Hint, 1, 2) = 'No'); 1980 mnuInsurance.Enabled := not (Copy(frmFrame.laVAA2.Hint, 1, 2) = 'No'); 1981 mnuViewFlags.Enabled := frmFrame.lblFlag.Enabled; 1982 mnuViewRemoteData.Enabled := frmFrame.lblCirn.Enabled; 1983 mnuViewReminders.Enabled := frmFrame.pnlReminders.Enabled; 1984 mnuViewPostings.Enabled := frmFrame.pnlPostings.Enabled; 1985 end; 1986 1987 procedure TfrmMeds.mnuOptimizeFieldsClick(Sender: TObject); 1988 var 1989 totalSectionsWidth, unit1, unit2, unit8: integer; 1990 begin 1991 totalSectionsWidth := pnlTop.Width - 5; 1992 if totalSectionsWidth < 16 then exit; 1993 unit1 := (totalSectionsWidth div 16) - 1; 1994 unit2 := unit1 * 2; 1995 unit8 := unit1 * 8; 1996 1997 with hdrMedsNonVA do 1998 begin 1999 Sections[0].Width := unit1; 2000 Sections[1].Width := unit8; 2001 Sections[2].Width := unit2; 2002 Sections[3].Width := unit2; 2003 end; 2004 hdrMedsNonVASectionResize(hdrMedsNonVA, hdrMedsNonVA.Sections[0]); 2005 hdrMedsNonVA.Repaint; 2006 2007 with hdrMedsIn do 2008 begin 2009 Sections[0].Width := unit1; 2010 Sections[1].Width := unit8; 2011 Sections[2].Width := unit2; 2012 Sections[3].Width := unit2; 2013 Sections[4].Width := unit2; 2014 end; 2015 hdrMedsInSectionResize(hdrMedsIn, hdrMedsIn.Sections[0]); 2016 hdrMedsIn.Repaint; 2017 with hdrMedsOut do 2018 begin 2019 Sections[0].Width := unit1; 2020 Sections[1].Width := unit8; 2021 Sections[2].Width := unit2; 2022 Sections[3].Width := unit2; 2023 Sections[4].Width := unit2; 2024 Sections[5].Width := unit1; 2025 end; 2026 hdrMedsOutSectionResize(hdrMedsOut, hdrMedsOut.Sections[0]); 2027 hdrMedsOut.Repaint; 2028 end; 2029 2030 procedure TfrmMeds.hdrMedsOutSectionClick(HeaderControl: THeaderControl; 2031 Section: THeaderSection); 2032 begin 2033 inherited; 2034 //if Section = hdrMedsOut.Sections[1] then 2035 mnuOptimizeFieldsClick(self); 2036 end; 2037 2038 procedure TfrmMeds.hdrMedsNonVASectionClick(HeaderControl: THeaderControl; 2039 Section: THeaderSection); 2040 begin 2041 inherited; 2042 //if Section = hdrMedsNonVA.Sections[1] then 2043 mnuOptimizeFieldsClick(self); 2044 end; 2045 2046 procedure TfrmMeds.hdrMedsInSectionClick(HeaderControl: THeaderControl; 2047 Section: THeaderSection); 2048 begin 2049 inherited; 2050 //if Section = hdrMedsIn.Sections[1] then 2051 mnuOptimizeFieldsClick(self); 2052 end; 2053 1633 2054 end. 1634 2055 -
cprs/branches/foia-cprs/CPRS-Chart/fNoteProps.dfm
r459 r460 1 1 object frmNoteProperties: TfrmNoteProperties 2 Left = 1763 Top = 2042 Left = 384 3 Top = 56 4 4 AutoScroll = False 5 5 BorderIcons = [] 6 6 Caption = 'Progress Note Properties' 7 ClientHeight = 3717 ClientHeight = 676 8 8 ClientWidth = 543 9 9 Color = clBtnFace … … 16 16 OldCreateOrder = False 17 17 Position = poScreenCenter 18 OnDestroy = FormDestroy 18 19 OnResize = FormResize 19 20 OnShow = FormShow … … 106 107 OnMouseClick = cboNewTitleMouseClick 107 108 OnNeedData = cboNewTitleNeedData 109 CharsNeedMatch = 1 108 110 end 109 111 object calNote: TORDateBox … … 145 147 OnMouseClick = cboAuthorMouseClick 146 148 OnNeedData = NewPersonNeedData 149 CharsNeedMatch = 1 147 150 end 148 151 object cboCosigner: TORComboBox … … 171 174 OnExit = cboCosignerExit 172 175 OnNeedData = cboCosignerNeedData 176 CharsNeedMatch = 1 173 177 end 174 178 object cmdOK: TButton … … 179 183 Caption = 'OK' 180 184 Default = True 181 TabOrder = 8185 TabOrder = 9 182 186 OnClick = cmdOKClick 183 187 end … … 189 193 Cancel = True 190 194 Caption = 'Cancel' 191 TabOrder = 9195 TabOrder = 10 192 196 OnClick = cmdCancelClick 193 197 end … … 218 222 SynonymChars = '<>' 219 223 TabOrder = 4 224 CharsNeedMatch = 1 220 225 end 221 226 object calProcDateTime: TORDateBox … … 233 238 Tag = 2 234 239 Left = 0 235 Top = 21 8240 Top = 217 236 241 Width = 543 237 242 Height = 153 243 Align = alBottom 238 244 BevelOuter = bvNone 239 245 TabOrder = 6 … … 316 322 Tag = 1 317 323 Left = 0 318 Top = 218324 Top = 370 319 325 Width = 543 320 326 Height = 153 327 Align = alBottom 321 328 BevelOuter = bvNone 322 329 TabOrder = 7 323 330 object lblConsult1: TLabel 324 331 Tag = 1 325 Left = 26332 Left = 3 326 333 Top = 8 327 334 Width = 309 … … 339 346 object lblConsult2: TLabel 340 347 Tag = 1 341 Left = 26348 Left = 3 342 349 Top = 22 343 350 Width = 247 … … 408 415 Pieces = '2,3,4,5,6' 409 416 TabPositions = '21,43,69,83' 417 OnChange = lstRequestsChange 410 418 end 411 419 object btnShowList: TButton 412 Left = 3 86413 Top = 1 2420 Left = 335 421 Top = 13 414 422 Width = 100 415 423 Height = 21 … … 418 426 OnClick = btnShowListClick 419 427 end 428 object btnDetails: TButton 429 Left = 450 430 Top = 13 431 Width = 75 432 Height = 21 433 Caption = 'Show Details' 434 TabOrder = 2 435 OnClick = btnDetailsClick 436 end 437 end 438 object pnlPRF: TORAutoPanel 439 Tag = 3 440 Left = 0 441 Top = 523 442 Width = 543 443 Height = 153 444 Align = alBottom 445 BevelOuter = bvNone 446 TabOrder = 8 447 object lblPRF: TLabel 448 Tag = 1 449 Left = 2 450 Top = 16 451 Width = 304 452 Height = 13 453 Caption = 'Which Patient Record Flag Action should this Note be linked to?' 454 Font.Charset = DEFAULT_CHARSET 455 Font.Color = clWindowText 456 Font.Height = -11 457 Font.Name = 'MS Sans Serif' 458 Font.Style = [] 459 ParentFont = False 460 end 461 object Bevel1: TBevel 462 Tag = 1 463 Left = 1 464 Top = 2 465 Width = 531 466 Height = 2 467 end 468 object lvPRF: TCaptionListView 469 Left = 0 470 Top = 32 471 Width = 543 472 Height = 121 473 Align = alBottom 474 Columns = < 475 item 476 Caption = 'Used For Screen Readers' 477 Width = 1 478 end 479 item 480 AutoSize = True 481 Caption = 'Flag' 482 end 483 item 484 AutoSize = True 485 Caption = 'Date' 486 end 487 item 488 AutoSize = True 489 Caption = 'Action' 490 end 491 item 492 AutoSize = True 493 Caption = 'Note' 494 end> 495 Constraints.MinHeight = 50 496 HideSelection = False 497 Items.Data = { 498 5E0000000100000000000000FFFFFFFFFFFFFFFF03000000000000000857414E 499 44455245521C4F63746F6265722032302C20323030334031303A31353A32333A 500 3233115245414C4C59204C4F4E4720535455464603596573FFFFFFFFFFFF} 501 ReadOnly = True 502 RowSelect = True 503 TabOrder = 0 504 ViewStyle = vsReport 505 end 420 506 end 421 507 end -
cprs/branches/foia-cprs/CPRS-Chart/fNoteProps.pas
r459 r460 1 unit fNoteProps; 1 unit fNoteProps; 2 2 3 3 interface … … 5 5 uses 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 StdCtrls, ORDtTm, ORCtrls, ExtCtrls, rTIU, uConst, uTIU, ORFn, ORNet; 7 StdCtrls, ORDtTm, ORCtrls, ExtCtrls, rTIU, uConst, uTIU, ORFn, ORNet, 8 ComCtrls, Buttons; 8 9 9 10 type 11 {This object holds a List of Actions as Returned VIA the RPCBroker} 12 TPRFActions = class(TObject) 13 private 14 FPRFActionList : TStringList; 15 public 16 //procedure to show the Action in a ListView, requires a listview parameter 17 procedure ShowActionsOnList(DisplayList : TCaptionListView); 18 //procedure to load the actions, this will call the RPC 19 procedure Load(TitleIEN : Int64; DFN : String); 20 //returns true if the Action at the Index passed is associated with a note 21 function SelActionHasNote(lstIndex : integer) : boolean; 22 //return the Action IEN at the Index passed 23 function GetActionIEN(lstIndex : integer) : String; 24 //return the PRF IEN at the Index passed 25 function GetPRF_IEN(lstIndex : integer) : integer; 26 constructor Create(); 27 destructor Destroy(); override; 28 end; 29 10 30 TfrmNoteProperties = class(TForm) 11 31 lblNewTitle: TLabel; … … 42 62 lblProcDateTime: TOROffsetLabel; 43 63 btnShowList: TButton; 64 pnlPRF: TORAutoPanel; 65 lblPRF: TLabel; 66 Bevel1: TBevel; 67 lvPRF: TCaptionListView; 68 btnDetails: TButton; 44 69 procedure FormShow(Sender: TObject); 45 70 procedure cboNewTitleNeedData(Sender: TObject; const StartFrom: String; … … 63 88 procedure FormResize(Sender: TObject); 64 89 procedure calNoteEnter(Sender: TObject); 90 procedure FormDestroy(Sender: TObject); 91 procedure btnDetailsClick(Sender: TObject); 92 procedure lstRequestsChange(Sender: TObject); 65 93 private 66 94 FCosignIEN: Int64; // store cosigner that was passed in … … 81 109 FProcDateTime: TFMDateTime; 82 110 FCPStatusFlag: integer; 111 FPRFActions : TPRFActions; 112 FStarting: boolean; 83 113 procedure SetCosignerRequired(DoSetup: boolean); 84 114 procedure FormatRequestList; 85 115 procedure ShowRequestList(ShouldShow: Boolean); 86 116 procedure ShowSurgCaseList(ShouldShow: Boolean); 117 procedure ShowPRFList(ShouldShow: Boolean); 87 118 procedure ShowClinProcFields(YesNo: boolean); 119 procedure SetGenericFormSize; 88 120 procedure UMDelayEvent(var Message: TMessage); message UM_DELAYEVENT; 89 121 public 90 122 { Public declarations } 123 91 124 end; 125 92 126 93 127 function ExecuteNoteProperties(var ANote: TEditNoteRec; CallingTab: integer; IDNoteTitlesOnly, … … 101 135 TC_INACTIVE_USER = 'Inactive User Alert'; 102 136 137 PIXEL_SPACE = 6; 138 103 139 implementation 104 140 105 141 {$R *.DFM} 106 142 107 uses uCore, rCore, rConsults, uConsults, rSurgery, uAccessibleListBox ;143 uses uCore, rCore, rConsults, uConsults, rSurgery, uAccessibleListBox, fRptBox; 108 144 109 145 { Initial values in ANote … … 133 169 TX_REQ_REQUEST = CRLF + 'This title requires the selection of an associated consult request.'; 134 170 TX_REQ_SURGCASE = CRLF + 'This title requires the selection of an associated surgery case.'; 171 TX_REQ_PRF_ACTION = CRLF + 'Notes of this title require the selection of a patient record flag action.'; 172 TX_REQ_PRF_NOTE = CRLF + 'This action has already been assigned to another note.'; 135 173 TX_NO_FUTURE = CRLF + 'A reference date/time in the future is not allowed.'; 136 174 TX_COS_SELF = CRLF + 'You cannot make yourself a cosigner.'; … … 153 191 ACTIVE_STATUS = 'ACTIVE,PENDING,SCHEDULED'; 154 192 193 PRF_LABEL = 'Which Patient Record Flag Action should this Note be linked to?'; 194 195 FLAG_NAME = 1; 196 PRF_IEN = 2; 197 ACTION_NAME = 3; 198 ACTION_IEN = 4; 199 ACTION_DATE_I = 5; 200 ACTION_DATE = 6; 201 NOTE_IEN = 7; 202 155 203 156 204 var … … 176 224 FIsClinProcNote := (AClassName = DCL_CLINPROC); 177 225 FCPStatusFlag := CPStatusFlag; 178 uShowUnresolvedOnly := False; 226 //uShowUnresolvedOnly := False; //v26.5 (RV) 227 uShowUnresolvedOnly := True; //v26.5 (RV) 179 228 if ANote.DocType <> TYP_ADDENDUM then 180 229 begin … … 210 259 CT_NOTES: begin 211 260 Caption := 'Progress Note Properties'; 212 if ANote.IsNewNote and UnresolvedConsultsExist then 213 uShowUnresolvedOnly := InfoBox(TX_UNRESOLVED_CONSULTS, 'Unresolved Consults Exist', 214 MB_YESNO or MB_ICONQUESTION) = IDYES; 261 if ANote.IsNewNote then 262 begin 263 GetUnresolvedConsultsInfo; // v26.5 (RV) removed nag screen 264 end; 215 265 cboNewTitle.InitLongList(''); 216 266 cboAuthor.InitLongList(ANote.AuthorName); … … 235 285 end; 236 286 ShowClinProcFields(FIsClinProcNote); 287 FStarting := True; 237 288 if ANote.Title > 0 then cboNewTitle.SelectByIEN(ANote.Title); 238 289 if (ANote.Title > 0) and (cboNewTitle.ItemIndex < 0) 239 290 then cboNewTitle.SetExactByIEN(ANote.Title, ANote.TitleName); 291 FStarting := False; 240 292 calNote.FMDateTime := ANote.DateTime; 241 293 // setup cosigner fields … … 248 300 SetCosignerRequired(True); 249 301 // setup package fields 302 SetGenericFormSize; 250 303 case FCallingTab of 251 304 CT_CONSULTS: begin 252 305 ShowRequestList(False); 253 306 ShowSurgCaseList(False); 307 ShowPRFList(False); 254 308 end; 255 309 CT_SURGERY : begin 256 310 ShowRequestList(False); 257 311 ShowSurgCaseList(False); 312 ShowPRFList(False); 258 313 end; 259 314 CT_NOTES : begin 260 if IsConsultTitle(ANote.Title) then 261 begin 262 ShowRequestList(True); 263 ShowSurgCaseList(False); 264 end 265 else if IsSurgeryTitle(ANote.Title) then 266 begin 267 ShowSurgCaseList(True); 268 ShowRequestList(False); 269 end 270 else 271 begin 272 ShowRequestList(False); 273 ShowSurgCaseList(False); 274 end; 315 with uUnresolvedConsults do // v26.5 (RV) 316 ShowRequestList(IsConsultTitle(ANote.Title) or 317 (UnresolvedConsultsExist and ShowNagScreen)); // v26.5 (RV) 318 ShowSurgCaseList(IsSurgeryTitle(ANote.Title)); 319 ShowPRFList(IsPRFTitle(ANote.Title)); 275 320 end; 276 321 end; … … 283 328 end; 284 329 cboNewTitle.Caption := lblNewTitle.Caption; 330 FStarting := True; 285 331 cboNewTitleExit(frmNoteProperties); // force display of request/case list 332 FStarting := False; 286 333 if uShowUnresolvedOnly then // override previous display if SHOW ME clicked on entrance 287 334 begin 288 cboNewTitle.ItemIndex := -1;335 //cboNewTitle.ItemIndex := -1; CQ#7587, v26.25 - RV 289 336 uShowUnresolvedOnly := not uShowUnresolvedOnly; 290 337 FormatRequestList; … … 351 398 PkgPtr := PKG_SURGERY; 352 399 PkgRef := IntToStr(PkgIEN) + ';' + PkgPtr; 400 end 401 else if pnlPRF.Visible then //PRF 402 begin 403 PRF_IEN := FPRFActions.GetPRF_IEN(lvPRF.ItemIndex); 404 ActionIEN := FPRFActions.GetActionIEN(lvPRF.ItemIndex); 353 405 end; 354 406 end; … … 392 444 begin 393 445 if cboNewTitle.ItemIEN = 0 394 then lblCosigner.Visible := AskCosignerForTitle(FDocType, cboAuthor.ItemIEN )395 else lblCosigner.Visible := AskCosignerForTitle(cboNewTitle.ItemIEN, cboAuthor.ItemIEN );446 then lblCosigner.Visible := AskCosignerForTitle(FDocType, cboAuthor.ItemIEN, calNote.FMDateTime) 447 else lblCosigner.Visible := AskCosignerForTitle(cboNewTitle.ItemIEN, cboAuthor.ItemIEN, calNote.FMDateTime); 396 448 end; 397 449 cboCosigner.Visible := lblCosigner.Visible; … … 427 479 SavedIEN: integer; 428 480 begin 481 ShouldShow := ShouldShow and (FCallingTab = CT_NOTES); 429 482 if FDocType = TYP_ADDENDUM then ShouldShow := False; 483 pnlConsults.Visible := ShouldShow; 430 484 if ShouldShow then 431 485 begin 432 486 SavedIEN := lstRequests.ItemIEN; 433 for i := 0 to Pred(ControlCount) do 434 if Controls[i].Tag = 1 then Controls[i].Visible := True; 435 pnlConsults.Align := alBottom; 436 ClientHeight := cboCosigner.Top + cboCosigner.Height + 6 + pnlConsults.Height; 487 ClientHeight := cboCosigner.Top + cboCosigner.Height + PIXEL_SPACE + pnlConsults.Height; 437 488 lstRequests.Items.Clear; 438 489 if uConsultsList.Count = 0 then ListConsultRequests(uConsultsList); … … 451 502 lblConsult1.Visible := (cboNewTitle.ItemIndex > -1); 452 503 lstRequests.SelectByIEN(SavedIEN); 453 end else 454 begin 455 for i := 0 to Pred(ControlCount) do 456 if Controls[i].Tag = 1 then Controls[i].Visible := False; 457 ClientHeight := cboCosigner.Top + cboCosigner.Height + 6; 458 end; 504 btnDetails.Enabled := (lstRequests.ItemIndex > -1); 505 end 459 506 end; 460 507 461 508 procedure TfrmNoteProperties.ShowSurgCaseList(ShouldShow: Boolean); 462 509 { called initially & whenever title changes } 463 var 464 i: Integer; 465 begin 510 begin 511 pnlSurgery.Visible := ShouldShow; 466 512 if FDocType = TYP_ADDENDUM then ShouldShow := False; 467 513 if ShouldShow then 468 514 begin 469 for i := 0 to Pred(ControlCount) do 470 if Controls[i].Tag = 2 then Controls[i].Visible := True; 471 pnlSurgery.Align := alBottom; 472 ClientHeight := cboCosigner.Top + cboCosigner.Height + 6 + pnlSurgery.Height; 515 ClientHeight := cboCosigner.Top + cboCosigner.Height + PIXEL_SPACE + pnlSurgery.Height; 473 516 if lstSurgery.Items.Count = 0 then ListSurgeryCases(lstSurgery.Items); 474 end else 475 begin 476 for i := 0 to Pred(ControlCount) do 477 if Controls[i].Tag = 2 then Controls[i].Visible := False; 478 ClientHeight := cboCosigner.Top + cboCosigner.Height + 6; 479 end; 517 end 480 518 end; 481 519 … … 503 541 504 542 procedure TfrmNoteProperties.cboNewTitleMouseClick(Sender: TObject); 543 const 544 TX_NEED_CONSULT_TITLE = 'You currently have unresolved consults awaiting completion.' + CRLF + 545 'The selected title cannot be used to complete consults.' + CRLF + 546 'You must select a Consults title to complete a consult.' + CRLF + CRLF + 547 'Answer "YES" to continue with this title and not complete a consult.' + CRLF + 548 'Answer "NO" to select a different title.' + CRLF + CRLF + 549 'Do you want to use this title and continue?'; 550 TC_NOT_CONSULT_TITLE = 'Not a consult title'; 551 var 552 WantsToCompleteConsult: boolean; 553 ConsultTitle: boolean; 505 554 begin 506 555 with cboNewTitle do … … 515 564 CT_CONSULTS: ; // no action 516 565 CT_SURGERY : ; // no action 517 CT_NOTES : if IsConsultTitle(cboNewTitle.ItemIEN) then 518 begin 519 ShowSurgCaseList(False); 520 ShowRequestList(True); 521 end 522 else if IsSurgeryTitle(cboNewTitle.ItemIEN) then 523 begin 524 ShowRequestList(False); 525 ShowSurgCaseList(True); 526 end 527 else 528 begin 529 ShowRequestList(False); 530 ShowSurgCaseList(False); 531 end; 566 CT_NOTES : begin // v26.5 (RV) main changes here 567 WantsToCompleteConsult := False; 568 ConsultTitle := IsConsultTitle(cboNewTitle.ItemIEN); 569 if (pnlConsults.Visible) and 570 (lstRequests.Items.Count > 0) and 571 (not FStarting) and 572 (*(lstRequests.ItemID <> '') and*) 573 (not ConsultTitle) then 574 WantsToCompleteConsult := (InfoBox(TX_NEED_CONSULT_TITLE, 575 TC_NOT_CONSULT_TITLE, 576 MB_ICONWARNING or MB_YESNO or MB_DEFBUTTON2) = IDNO); 577 if WantsToCompleteConsult and (not ConsultTitle) then cboNewTitle.ItemIndex := -1; 578 SetGenericFormSize; 579 ShowRequestList(WantsToCompleteConsult or ConsultTitle); 580 ShowSurgCaseList(IsSurgeryTitle(cboNewTitle.ItemIEN)); 581 ShowPRFList(IsPRFTitle(cboNewTitle.ItemIEN)); 582 end; 532 583 end; 533 584 SetCosignerRequired(True); … … 573 624 //var x: string; 574 625 begin 575 with cboCosigner do if Text = '' then ItemIndex := -1; 626 with cboCosigner do if ((Text = '') or (ItemIEN = 0)) then 627 begin 628 ItemIndex := -1; 629 FCosignIEN := 0; 630 FCosignName := ''; 631 exit; 632 end; 576 633 FCosignIEN := cboCosigner.ItemIEN; 577 634 FCosignName := Piece(cboCosigner.Items[cboCosigner.ItemIndex], U, 2); … … 602 659 ShowRequestList(False); 603 660 ShowSurgCaseList(False); 661 ShowPRFList(False); 604 662 end; 605 663 end;*) 606 664 SetCosignerRequired(False); 607 665 ErrMsg := ''; 608 if cboNewTitle.ItemIEN = 0 then 609 ErrMsg := ErrMsg + TX_REQ_TITLE 610 //code added 12/2002 check note parm - one per visit GRE 611 else if OneNotePerVisit(CboNewTitle.ItemIEN, Patient.DFN, Encounter.VisitStr)then 612 ErrMsg := ErrMsg + TX_ONE_NOTE_PER_VISIT1 613 + Piece(cboNewTitle.Items[cboNewTitle.ItemIndex],U,2) 614 + TX_ONE_NOTE_PER_VISIT2 615 else 666 if cboNewTitle.ItemIEN = 0 then 667 ErrMsg := ErrMsg + TX_REQ_TITLE ; 668 if ErrMsg = '' then 669 begin 670 if FDocType = TYP_ADDENDUM then 671 begin 672 if OneNotePerVisit(TYP_ADDENDUM, Patient.DFN, Encounter.VisitStr)then 673 ErrMsg := ErrMsg + TX_ONE_NOTE_PER_VISIT1 674 + 'Addendum to ' + Piece(cboNewTitle.Items[cboNewTitle.ItemIndex],U,2) 675 + TX_ONE_NOTE_PER_VISIT2; 676 end 677 //code added 12/2002 check note parm - one per visit GRE 678 else if OneNotePerVisit(CboNewTitle.ItemIEN, Patient.DFN, Encounter.VisitStr)then 679 ErrMsg := ErrMsg + TX_ONE_NOTE_PER_VISIT1 680 + Piece(cboNewTitle.Items[cboNewTitle.ItemIndex],U,2) 681 + TX_ONE_NOTE_PER_VISIT2; 682 end; 683 if ErrMsg = '' then 616 684 begin 617 685 if FIDNoteTitlesOnly then … … 626 694 else if ((pnlSurgery.Visible) and (lstSurgery.ItemIndex < 0)) then 627 695 ErrMsg := ErrMsg + TX_REQ_SURGCASE 696 else if (pnlPRF.Visible) then 697 begin 698 if (lvPRF.ItemIndex < 0) then 699 ErrMsg := ErrMsg + TX_REQ_PRF_ACTION 700 else if FPRFActions.SelActionHasNote(lvPRF.ItemIndex) then 701 ErrMsg := ErrMsg + TX_REQ_PRF_NOTE; 702 end; 628 703 end; 629 704 end; … … 635 710 if (cboCosigner.ItemIEN = 0) then ErrMsg := ErrMsg + TX_REQ_COSIGNER; 636 711 //if (cboCosigner.ItemIEN = User.DUZ) then ErrMsg := TX_COS_SELF; // (CanCosign will do this check) 637 if (cboCosigner.ItemIEN > 0) and not CanCosign(cboNewTitle.ItemIEN, FDocType, cboCosigner.ItemIEN )712 if (cboCosigner.ItemIEN > 0) and not CanCosign(cboNewTitle.ItemIEN, FDocType, cboCosigner.ItemIEN, calNote.FMDateTime) 638 713 then ErrMsg := cboCosigner.Text + TX_COS_AUTH; 639 714 //code added 02/2003 check if User is Inactive GRE … … 719 794 else 720 795 Caption := SHOW_UNRESOLVED; 721 ShowRequestList(True); 796 with uUnresolvedConsults do if (UnresolvedConsultsExist and ShowNagScreen) then pnlConsults.Visible := TRUE; //v26.27 (RV) 797 ShowRequestList(pnlConsults.Visible); //v26.5 (RV) 798 //ShowRequestList(True); //v26.5 (RV) 722 799 end; 723 800 … … 739 816 end; 740 817 818 procedure TfrmNoteProperties.ShowPRFList(ShouldShow: Boolean); 819 begin 820 pnlPRF.Visible := ShouldShow and not (FDocType = TYP_ADDENDUM); 821 if pnlPRF.Visible then 822 begin 823 ClientHeight := cboCosigner.Top + cboCosigner.Height + PIXEL_SPACE + pnlPRF.Height; 824 if FPRFActions = nil then 825 FPRFActions := TPRFActions.Create; 826 FPRFActions.Load(cboNewTitle.ItemIEN,Patient.DFN); 827 if RPCBrokerV.Results.Count <> 0 then 828 lblPRF.Caption := PRF_LABEL 829 else 830 lblPRF.Caption := 'No Linkable Actions for this Patient and/or Title.'; 831 FPRFActions.ShowActionsOnList(lvPRF); 832 //Fix for CQ: 6926 833 lvPRF.Columns.BeginUpdate; 834 lvPRF.Columns.EndUpdate; 835 //End Fix for CQ: 6926 836 end 837 end; 838 839 procedure TfrmNoteProperties.SetGenericFormSize; 840 begin 841 ClientHeight := cboCosigner.Top + cboCosigner.Height + PIXEL_SPACE; 842 end; 843 844 { TPRFActions } 845 846 constructor TPRFActions.Create; 847 begin 848 inherited; 849 FPRFActionList := TStringList.Create; 850 end; 851 852 destructor TPRFActions.Destroy; 853 begin 854 FPRFActionList.Free; 855 inherited; 856 end; 857 858 function TPRFActions.GetActionIEN(lstIndex: integer): String; 859 begin 860 Result := Piece(FPRFActionList[lstIndex],U,ACTION_IEN); 861 end; 862 863 function TPRFActions.GetPRF_IEN(lstIndex: integer): integer; 864 begin 865 Result := StrToInt(Piece(FPRFActionList[lstIndex],U,PRF_IEN)); 866 end; 867 868 procedure TPRFActions.Load(TitleIEN : Int64; DFN : String); 869 begin 870 CallV('TIU GET PRF ACTIONS', [TitleIEN,DFN]); 871 FPRFActionList.Assign(RPCBrokerV.Results); 872 end; 873 874 function TPRFActions.SelActionHasNote(lstIndex: integer): boolean; 875 begin 876 Result := false; 877 if Piece(FPRFActionList[lstIndex],U,NOTE_IEN) <> '' then 878 Result := true; 879 end; 880 881 procedure TPRFActions.ShowActionsOnList(DisplayList: TCaptionListView); 882 var 883 i : integer; 884 ListItem: TListItem; 885 begin 886 DisplayList.Clear; 887 for i := 0 to FPRFActionList.Count-1 do 888 begin 889 //Caption="Text for Screen Reader" SubItem1=Flag SubItem2=Date SubItem3=Action SubItem4=Note 890 ListItem := DisplayList.Items.Add; 891 ListItem.Caption := PRF_LABEL; //Screen readers don't read the first column title on a listview. 892 ListItem.SubItems.Add(Piece(FPRFActionList[i],U,FLAG_NAME)); 893 ListItem.SubItems.Add(Piece(FPRFActionList[i],U,ACTION_DATE)); 894 ListItem.SubItems.Add(Piece(FPRFActionList[i],U,ACTION_NAME)); 895 if SelActionHasNote(i) then 896 ListItem.SubItems.Add('Yes') 897 else 898 ListItem.SubItems.Add('No'); 899 end; 900 end; 901 902 procedure TfrmNoteProperties.FormDestroy(Sender: TObject); 903 begin 904 FPRFActions.Free; 905 end; 906 907 procedure TfrmNoteProperties.btnDetailsClick(Sender: TObject); 908 var 909 ConsultDetail: TStringList; 910 begin 911 if lstRequests.ItemIEN <= 0 then exit; 912 ConsultDetail := TStringList.Create; 913 try 914 LoadConsultDetail(ConsultDetail, lstRequests.ItemIEN) ; 915 ReportBox(ConsultDetail, 'Consult Details: #' + lstRequests.ItemID + ' - ' + 916 Piece(lstRequests.Items[lstRequests.ItemIndex], U, 3), TRUE); 917 finally 918 ConsultDetail.Free; 919 end; 920 end; 921 922 procedure TfrmNoteProperties.lstRequestsChange(Sender: TObject); 923 begin 924 btnDetails.Enabled := (lstRequests.ItemIEN > 0); 925 end; 926 741 927 end. -
cprs/branches/foia-cprs/CPRS-Chart/fNotePrt.dfm
r459 r460 1 1 inherited frmNotePrint: TfrmNotePrint 2 Left = 5 053 Top = 2092 Left = 516 3 Top = 189 4 4 AutoScroll = False 5 5 Caption = 'frmNotePrint' -
cprs/branches/foia-cprs/CPRS-Chart/fNotePrt.pas
r459 r460 202 202 if Piece(cboDevice.ItemID, ';', 1) = 'WIN' then 203 203 begin 204 FReportText.Lines.Assign(GetFormattedNote(FNote, ChartCopy)); 205 PrintWindowsReport(FReportText, PAGE_BREAK, Self.Caption, ErrMsg); 206 if Length(ErrMsg) > 0 then InfoBox(ErrMsg, TX_ERR_CAP, MB_OK); 204 if dlgWinPrinter.Execute then 205 begin 206 FReportText.Lines.Assign(GetFormattedNote(FNote, ChartCopy)); 207 PrintWindowsReport(FReportText, PAGE_BREAK, Self.Caption, ErrMsg); 208 if Length(ErrMsg) > 0 then InfoBox(ErrMsg, TX_ERR_CAP, MB_OK); 209 end 207 210 end 208 211 else -
cprs/branches/foia-cprs/CPRS-Chart/fNotes.dfm
r459 r460 1 1 inherited frmNotes: TfrmNotes 2 Left = 3 753 Top = 1 444 Width = 6 142 Left = 307 3 Top = 177 4 Width = 687 5 5 Height = 409 6 6 HelpContext = 5000 7 7 Caption = 'Progress Notes Page' 8 8 HelpFile = 'overvw' 9 KeyPreview = True 9 10 Menu = mnuNotes 10 11 OnDestroy = FormDestroy 11 12 OnHide = FormHide 13 OnMouseMove = FormMouseMove 12 14 OnShow = FormShow 13 15 PixelsPerInch = 96 … … 15 17 inherited shpPageBottom: TShape 16 18 Top = 358 17 Width = 6 0619 Width = 679 18 20 end 19 21 inherited sptHorz: TSplitter … … 57 59 OnClick = cmdNewNoteClick 58 60 OnExit = cmdNewNoteExit 61 OnMouseMove = FormMouseMove 59 62 Align = alBottom 60 63 end … … 69 72 OnClick = cmdPCEClick 70 73 OnExit = cmdPCEExit 74 OnMouseMove = FormMouseMove 71 75 Align = alBottom 72 76 end … … 128 132 OnExit = tvNotesExit 129 133 OnExpanded = tvNotesExpanded 134 OnMouseMove = FormMouseMove 130 135 OnStartDrag = tvNotesStartDrag 131 136 Caption = 'Last 100 Notes' … … 137 142 inherited pnlRight: TPanel 138 143 Left = 68 139 Width = 538144 Width = 611 140 145 Height = 358 141 146 object sptVert: TSplitter 142 147 Left = 0 143 148 Top = 309 144 Width = 538149 Width = 611 145 150 Height = 4 146 151 Cursor = crVSplit … … 150 155 Left = 0 151 156 Top = 313 152 Width = 538157 Width = 611 153 158 Height = 45 154 159 Align = alBottom … … 165 170 Left = 0 166 171 Top = 0 167 Width = 538172 Width = 611 168 173 Height = 309 169 174 Align = alClient … … 175 180 Left = 0 176 181 Top = 67 177 Width = 538182 Width = 611 178 183 Height = 242 179 184 Align = alClient … … 197 202 Left = 0 198 203 Top = 0 199 Width = 538204 Width = 611 200 205 Height = 67 201 206 Align = alTop … … 204 209 OnResize = pnlFieldsResize 205 210 DesignSize = ( 206 538211 611 207 212 67) 208 213 object bvlNewTitle: TBevel … … 226 231 end 227 232 object lblAuthor: TStaticText 228 Left = 3 20233 Left = 393 229 234 Top = 6 230 235 Width = 152 … … 249 254 end 250 255 object lblCosigner: TStaticText 251 Left = 2 25256 Left = 298 252 257 Top = 21 253 258 Width = 243 … … 292 297 end 293 298 object cmdChange: TButton 294 Left = 474299 Left = 547 295 300 Top = 6 296 301 Width = 58 … … 305 310 Left = 48 306 311 Top = 40 307 Width = 484312 Width = 557 308 313 Height = 21 309 314 Hint = 'Subject is limited to a maximum of 80 characters.' … … 321 326 Left = 0 322 327 Top = 0 323 Width = 538328 Width = 611 324 329 Height = 309 325 330 Align = alClient 326 331 BevelOuter = bvNone 327 332 TabOrder = 0 333 OnExit = pnlReadExit 328 334 object lblTitle: TOROffsetLabel 329 335 Left = 0 330 336 Top = 0 331 Width = 538337 Width = 611 332 338 Height = 19 333 339 Align = alTop … … 341 347 Left = 0 342 348 Top = 113 343 Width = 538349 Width = 611 344 350 Height = 3 345 351 Cursor = crVSplit … … 349 355 Left = 0 350 356 Top = 116 351 Width = 538357 Width = 611 352 358 Height = 193 353 359 Align = alClient … … 371 377 TabOrder = 1 372 378 WordWrap = False 373 On Exit = memNoteExit379 OnMouseMove = FormMouseMove 374 380 end 375 381 object lvNotes: TCaptionListView 376 382 Left = 0 377 383 Top = 19 378 Width = 538384 Width = 611 379 385 Height = 94 380 386 Align = alTop … … 417 423 OnColumnClick = lvNotesColumnClick 418 424 OnCompare = lvNotesCompare 419 On Exit = lvNotesExit425 OnMouseMove = FormMouseMove 420 426 OnResize = lvNotesResize 421 427 OnSelectItem = lvNotesSelectItem … … 493 499 end 494 500 end 501 object mnuViewInformation: TMenuItem 502 Caption = 'Information' 503 OnClick = mnuViewInformationClick 504 object mnuViewDemo: TMenuItem 505 Tag = 1 506 Caption = 'De&mographics...' 507 OnClick = ViewInfo 508 end 509 object mnuViewVisits: TMenuItem 510 Tag = 2 511 Caption = 'Visits/Pr&ovider...' 512 OnClick = ViewInfo 513 end 514 object mnuViewPrimaryCare: TMenuItem 515 Tag = 3 516 Caption = 'Primary &Care...' 517 OnClick = ViewInfo 518 end 519 object mnuViewMyHealtheVet: TMenuItem 520 Tag = 4 521 Caption = 'MyHealthe&Vet...' 522 OnClick = ViewInfo 523 end 524 object mnuInsurance: TMenuItem 525 Tag = 5 526 Caption = '&Insurance...' 527 OnClick = ViewInfo 528 end 529 object mnuViewFlags: TMenuItem 530 Tag = 6 531 Caption = '&Flags...' 532 OnClick = ViewInfo 533 end 534 object mnuViewRemoteData: TMenuItem 535 Tag = 7 536 Caption = 'Remote &Data...' 537 OnClick = ViewInfo 538 end 539 object mnuViewReminders: TMenuItem 540 Tag = 8 541 Caption = '&Reminders...' 542 Enabled = False 543 OnClick = ViewInfo 544 end 545 object mnuViewPostings: TMenuItem 546 Tag = 9 547 Caption = '&Postings...' 548 OnClick = ViewInfo 549 end 550 end 495 551 object Z3: TMenuItem 496 552 Caption = '-' … … 524 580 Tag = 6 525 581 Caption = 'Custo&m View' 582 OnClick = mnuViewClick 583 end 584 object mnuSearchForText: TMenuItem 585 Tag = 7 586 Caption = 'Search for Te&xt (Within Current View)' 526 587 OnClick = mnuViewClick 527 588 end … … 806 867 Tag = 6 807 868 Caption = 'Cus&tom View' 869 OnClick = mnuViewClick 870 end 871 object popSearchForText: TMenuItem 872 Tag = 7 873 Caption = 'Search for Te&xt (Within Current View)' 808 874 OnClick = mnuViewClick 809 875 end -
cprs/branches/foia-cprs/CPRS-Chart/fNotes.pas
r459 r460 1 1 unit fNotes; 2 2 {$O-} 3 {4 NOTES:5 TAB ORDER:6 Becuase of the Dynamic ways of this form, the tab order must be7 coded into the onExit events of the controls. If a new control is8 added that needs access with tab & shift tab you must add the9 code. Right clicking on the form and selecting tab order will not10 be sufficient. See TfrmNotes.memPCEShowExit procedure for example.11 }12 3 13 4 interface … … 16 7 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 17 8 fHSplit, StdCtrls, ExtCtrls, Menus, ComCtrls, ORCtrls, ORFn, uConst, ORDtTm, 18 uPCE, ORClasses, fDrawers, ImgList, rTIU, uTIU, uDocTree, fRptBox, fPrintList; 9 uPCE, ORClasses, fDrawers, ImgList, rTIU, uTIU, uDocTree, fRptBox, fPrintList, 10 fNoteST, ORNet, fNoteSTStop; 19 11 20 12 type … … 116 108 N3: TMenuItem; 117 109 mnuEditDialgFields: TMenuItem; 110 tvNotes: TORTreeView; 118 111 lvNotes: TCaptionListView; 119 112 sptList: TSplitter; … … 143 136 popNoteMemoInsTemplate: TMenuItem; 144 137 popNoteMemoEncounter: TMenuItem; 145 tvNotes: TORTreeView; 138 mnuSearchForText: TMenuItem; 139 popSearchForText: TMenuItem; 140 mnuViewInformation: TMenuItem; 141 mnuViewDemo: TMenuItem; 142 mnuViewVisits: TMenuItem; 143 mnuViewPrimaryCare: TMenuItem; 144 mnuViewMyHealtheVet: TMenuItem; 145 mnuInsurance: TMenuItem; 146 mnuViewFlags: TMenuItem; 147 mnuViewReminders: TMenuItem; 148 mnuViewRemoteData: TMenuItem; 149 mnuViewPostings: TMenuItem; 146 150 procedure mnuChartTabClick(Sender: TObject); 147 151 procedure lstNotesClick(Sender: TObject); … … 214 218 procedure dlgReplaceTextFind(Sender: TObject); 215 219 procedure mnuActAttachtoIDParentClick(Sender: TObject); 216 procedure memNewNoteKeyDown(Sender: TObject; var Key: Word; 217 Shift: TShiftState); 220 procedure memNewNoteKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); 218 221 procedure sptHorzCanResize(Sender: TObject; var NewSize: Integer; var Accept: Boolean); 219 222 procedure popNoteMemoInsTemplateClick(Sender: TObject); … … 222 225 procedure tvNotesDeletion(Sender: TObject; Node: TTreeNode); 223 226 procedure tvNotesExit(Sender: TObject); 227 procedure pnlReadExit(Sender: TObject); 224 228 procedure cmdNewNoteExit(Sender: TObject); 225 229 procedure FormHide(Sender: TObject); 226 230 procedure FormShow(Sender: TObject); 231 procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, 232 Y: Integer); 227 233 procedure memNewNoteKeyPress(Sender: TObject; var Key: Char); 228 234 procedure memNewNoteKeyUp(Sender: TObject; var Key: Word; … … 231 237 procedure cmdChangeExit(Sender: TObject); 232 238 procedure cmdPCEExit(Sender: TObject); 233 procedure memNoteExit(Sender: TObject);234 procedure lvNotesExit(Sender: TObject);239 procedure ViewInfo(Sender: TObject); 240 procedure mnuViewInformationClick(Sender: TObject); 235 241 private 236 242 FNavigatingTab : Boolean; //Currently Using tab to navigate … … 255 261 FOldDrawerPnlEncounterButtonExit: TNotifyEvent; 256 262 FOldDrawerEdtSearchExit: TNotifyEvent; 263 FMousing: TDateTime; 257 264 FStarting: boolean; 258 265 procedure frmFramePnlPatientExit(Sender: TObject); … … 261 268 procedure frmDrawerEdtSearchExit(Sender: TObject); 262 269 procedure ClearEditControls; 263 procedure DoAutoSave ;270 procedure DoAutoSave(Suppress: integer = 1); 264 271 function GetTitleText(AnIndex: Integer): string; 265 272 procedure InsertAddendum; … … 310 317 var 311 318 frmNotes: TfrmNotes; 319 SearchTextStopFlag: Boolean; // Text Search CQ: HDS00002856 312 320 313 321 implementation … … 389 397 ' but will remain indefinitely discoverable to HIMS.' +CRLF +CRLF; 390 398 TX_AUTH_SIGNED = 'Author has not signed, are you SURE you want to sign.' +CRLF; 391 399 { 400 type 401 //CQ8300 402 ClipboardData = record 403 Text: array[0..255] of char; 404 end; 405 } 392 406 var 393 407 uPCEShow, uPCEEdit: TPCEData; … … 399 413 uChanging: Boolean; 400 414 uIDNotesActive: Boolean; 415 401 416 402 417 { TPage common methods --------------------------------------------------------------------- } … … 631 646 {LastCosigner & LastCosignerName aren't cleared because they're used as default for next note.} 632 647 Lines := nil; 648 PRF_IEN := 0; 649 ActionIEN := ''; 633 650 end; 634 651 // clear the editing controls (also clear the new labels?) 635 652 txtSubject.Text := ''; 636 memNewNote.Clear;653 if memNewNote <> nil then memNewNote.Clear; //CQ7012 Added test for nil 637 654 timAutoSave.Enabled := False; 638 655 // clear the PCE object for editing … … 754 771 if IsConsultTitle(Title) and (PkgIEN = 0) then Result := True; 755 772 if IsSurgeryTitle(Title) and (PkgIEN = 0) then Result := True; 773 if IsPRFTitle(Title) and (PRF_IEN = 0) and (not DocType = TYP_ADDENDUM) then Result := True; 756 774 if (DocType = TYP_ADDENDUM) then 757 775 begin … … 760 778 begin 761 779 if Title > 0 then CurTitle := Title else CurTitle := DocType; 762 if AskCosignerForTitle(CurTitle, Author ) and (Cosigner <= 0) then Result := True;780 if AskCosignerForTitle(CurTitle, Author, DateTime) and (Cosigner <= 0) then Result := True; 763 781 end; 764 782 end; … … 897 915 x, WhyNot, DocInfo: string; 898 916 begin 917 if frmFrame.Timedout then Exit; 918 899 919 FNewIDChild := IsIDChild; 900 920 EnableAutosave := FALSE; … … 932 952 end; 933 953 // check to see if interaction necessary to get required fields 934 if LacksRequiredForCreate or VerifyNoteTitle or UnresolvedConsultsExist 954 GetUnresolvedConsultsInfo; 955 if LacksRequiredForCreate or VerifyNoteTitle or uUnresolvedConsults.UnresolvedConsultsExist 935 956 then HaveRequired := ExecuteNoteProperties(FEditNote, CT_NOTES, IsIDChild, FNewIDChild, '', 0) 936 957 else HaveRequired := True; … … 953 974 //7348^Note Title^3000913^NERD, YOURA (N0165)^1329;Rich Vertigan;VERTIGAN,RICH^8E REHAB MED^complete^Adm: 11/05/98;2981105.095547^ ;^^0^^^2 954 975 with FEditNote do 955 begin 956 x := IntToStr(CreatedNote.IEN) + U + TitleName + U + FloatToStr(FEditNote.DateTime) + U + 957 Patient.Name + U + IntToStr(Author) + ';' + AuthorName + U + LocationName + U + 'new' + U + 958 U + U + U + U + U + U + U; 959 end; 976 begin 977 x := IntToStr(CreatedNote.IEN) + U + TitleName + U + FloatToStr(FEditNote.DateTime) + U + 978 Patient.Name + U + IntToStr(Author) + ';' + AuthorName + U + LocationName + U + 'new' + U + 979 U + U + U + U + U + U + U; 980 //Link Note to PRF Action 981 if PRF_IEN <> 0 then 982 if sCallV('TIU LINK TO FLAG', [CreatedNote.IEN,PRF_IEN,ActionIEN,Patient.DFN]) = '0' then 983 ShowMessage('TIU LINK TO FLAG: FAILED'); 984 end; 960 985 961 986 lstNotes.Items.Insert(0, x); … … 995 1020 FChanged := False; 996 1021 cmdChangeClick(Self); // will set captions, sign state for Changes 997 lstNotesClick(Self); // will make pnlWrite visible1022 lstNotesClick(Self); // will make pnlWrite visible 998 1023 if timAutoSave.Interval <> 0 then EnableAutosave := TRUE; 999 1024 if txtSubject.Visible then txtSubject.SetFocus else memNewNote.SetFocus; … … 1065 1090 else HaveRequired := True; 1066 1091 // lock the consult request if there is a consult 1067 with FEditNote do if (PkgIEN > 0) and (PkgPtr = PKG_CONSULTS) then HaveRequired := LockConsultRequest(PkgIEN); 1092 if HaveRequired then 1093 with FEditNote do 1094 if (PkgIEN > 0) and (PkgPtr = PKG_CONSULTS) then HaveRequired := LockConsultRequest(PkgIEN); 1068 1095 if HaveRequired then 1069 1096 begin … … 1285 1312 inherited; 1286 1313 LimitEditWidth(memNewNote, MAX_PROGRESSNOTE_WIDTH - 1); 1287 memNewNote.Constraints.MinWidth := TextWidthByFont(memNewNote.Font.Handle, StringOfChar('X', MAX_PROGRESSNOTE_WIDTH)) + (LEFT_MARGIN * 2) + ScrollBarWidth; 1288 pnlLeft.Width := self.ClientWidth - pnlWrite.Width - sptHorz.Width; 1314 1315 //CQ7012 Added test for nil 1316 if memNewNote <> nil then 1317 memNewNote.Constraints.MinWidth := TextWidthByFont(memNewNote.Font.Handle, StringOfChar('X', MAX_PROGRESSNOTE_WIDTH)) + (LEFT_MARGIN * 2) + ScrollBarWidth; 1318 //CQ7012 Added test for nil 1319 if (Self <> nil) and (pnlLeft <> nil) and (pnlWrite <> nil) and (sptHorz <> nil) then 1320 pnlLeft.Width := self.ClientWidth - pnlWrite.Width - sptHorz.Width; 1289 1321 end; 1290 1322 … … 1395 1427 // no other note being edited, so just proceed as before. 1396 1428 UpdateEncounterInfo; 1397 cmdPCE.Enabled := TRUE; 1429 if cmdPCE <> nil then 1430 cmdPCE.Enabled := TRUE 1398 1431 end; 1399 1432 … … 1466 1499 OKPressed, IsIDChild: Boolean; 1467 1500 x: string; 1501 DisAssoText : String; 1468 1502 begin 1469 1503 inherited; … … 1471 1505 LastTitle := FEditNote.Title; 1472 1506 FEditNote.IsNewNote := False; 1507 DisAssoText := ''; 1508 if (FEditNote.PkgPtr = PKG_CONSULTS) then 1509 DisAssoText := 'Consults'; 1510 if (FEditNote.PkgPtr = PKG_PRF) then 1511 DisAssoText := 'Patient Record Flags'; 1512 if (DisAssoText <> '') and (Sender <> Self) then 1513 if InfoBox('If this title is changed, Any '+DisAssoText+' will be disassociated'+ 1514 ' with this note', 1515 'Disassociate '+DisAssoText+'?',MB_OKCANCEL) = IDCANCEL then 1516 exit; 1473 1517 if FEditNote.PkgPtr = PKG_CONSULTS then LastConsult := FEditNote.PkgIEN else LastConsult := 0;; 1474 1518 if Sender <> Self then OKPressed := ExecuteNoteProperties(FEditNote, CT_NOTES, IsIDChild, FNewIDChild, '', 0) … … 1500 1544 lstNotes.Items[EditingIndex] := x; 1501 1545 Changes.ReplaceText(CH_DOC, lstNotes.ItemID, GetTitleText(EditingIndex)); 1502 with FEditNote do if (PkgPtr = PKG_CONSULTS) and (LastConsult <> PkgIEN) then 1546 with FEditNote do 1547 begin 1548 if (PkgPtr = PKG_CONSULTS) and (LastConsult <> PkgIEN) then 1503 1549 begin 1504 1550 // try to lock the new consult, reset to previous if unable … … 1514 1560 end; 1515 1561 end; 1562 //Link Note to PRF Action 1563 if PRF_IEN <> 0 then 1564 if sCallV('TIU LINK TO FLAG', [lstNotes.ItemIEN,PRF_IEN,ActionIEN,Patient.DFN]) = '0' then 1565 ShowMessage('TIU LINK TO FLAG: FAILED'); 1566 end; 1567 1516 1568 if LastTitle <> FEditNote.Title then mnuActLoadBoilerClick(Self); 1517 1569 end; … … 1532 1584 end; 1533 1585 1534 procedure TfrmNotes.DoAutoSave ;1586 procedure TfrmNotes.DoAutoSave(Suppress: integer = 1); 1535 1587 var 1536 1588 ErrMsg: string; … … 1542 1594 timAutoSave.Enabled := False; 1543 1595 try 1544 SetText(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex), 1);1596 SetText(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex), Suppress); 1545 1597 finally 1546 1598 timAutoSave.Enabled := True; … … 1566 1618 var 1567 1619 AuthCtxt: TAuthorContext; 1620 SearchCtxt: TSearchContext; // Text Search CQ: HDS00002856 1568 1621 DateRange: TNoteDateRange; 1569 1622 Saved: Boolean; … … 1602 1655 LoadNotes; 1603 1656 end; 1657 // Text Search CQ: HDS00002856 -------------------- 1658 NC_SEARCHTEXT: begin; 1659 SearchTextStopFlag := False; 1660 SelectSearchText(Font.Size, FCurrentContext.SearchString, SearchCtxt ); 1661 with SearchCtxt do if Changed then 1662 begin 1663 //FCurrentContext.Status := IntToStr(ViewContext); 1664 frmSearchStop.Show; 1665 lblNotes.Caption := 'Search: '+ SearchString; 1666 frmSearchStop.lblSearchStatus.Caption := lblNotes.Caption; 1667 FCurrentContext.SearchString := SearchString; 1668 LoadNotes; 1669 end; 1670 // Only do LoadNotes if something changed 1671 end; 1672 // Text Search CQ: HDS00002856 -------------------- 1604 1673 NC_UNCOSIGNED: begin 1605 1674 FillChar(FCurrentContext, SizeOf(FCurrentContext), 0); … … 1667 1736 end; {case} 1668 1737 lblNotes.Caption := SetNoteTreeLabel(FCurrentContext); 1738 // Text Search CQ: HDS00002856 -------------------- 1739 If FCurrentContext.SearchString <> '' then 1740 lblNotes.Caption := lblNotes.Caption+', containing "'+FCurrentContext.SearchString+'"'; 1741 If SearchTextStopFlag=True then begin; 1742 lblNotes.Caption := 'Search for "'+FCurrentContext.SearchString+'" was stopped!'; 1743 end; 1744 frmSearchStop.Hide; 1745 // Text Search CQ: HDS00002856 -------------------- 1669 1746 lblNotes.hint := lblNotes.Caption; 1670 1747 tvNotes.Caption := lblNotes.Caption; … … 2128 2205 procedure TfrmNotes.SaveSignItem(const ItemID, ESCode: string); 2129 2206 { saves and optionally signs a progress note or addendum } 2207 const 2208 SIG_COSIGN = 'COSIGNATURE'; 2209 SIG_SIGN = 'SIGNATURE'; 2130 2210 var 2131 2211 AnIndex, IEN, i: Integer; 2132 2212 Saved, ContinueSign: Boolean; {*RAB* 8/26/99} 2133 SignSts: TActionRec;2213 ActionSts, SignSts: TActionRec; 2134 2214 APCEObject: TPCEData; 2135 2215 OK: boolean; 2136 2216 ActionType, SignTitle: string; 2137 2217 begin 2138 2218 AnIndex := -1; … … 2159 2239 if Length(ESCode) > 0 then 2160 2240 begin 2161 if not NoteHasText(IEN) then 2241 if CosignDocument(IEN) then 2242 begin 2243 SignTitle := TX_COSIGN; 2244 ActionType := SIG_COSIGN; 2245 end else 2246 begin 2247 SignTitle := TX_SIGN; 2248 ActionType := SIG_SIGN; 2249 end; 2250 ActOnDocument(ActionSts, IEN, ActionType); 2251 if not ActionSts.Success then 2252 begin 2253 InfoBox(ActionSts.Reason, TX_IN_AUTH, MB_OK); 2254 ContinueSign := False; 2255 end 2256 else if not NoteHasText(IEN) then 2162 2257 begin 2163 2258 InfoBox(TX_EMPTY_NOTE1, TC_EMPTY_NOTE, MB_OK or MB_ICONERROR); … … 2276 2371 2277 2372 procedure TfrmNotes.popNoteMemoFindClick(Sender: TObject); 2373 //var 2374 //hData: THandle; //CQ8300 2375 //pData: ^ClipboardData; //CQ8300 2278 2376 begin 2279 2377 inherited; … … 2284 2382 FindText := ''; 2285 2383 Options := [frDown, frHideUpDown]; 2384 { 2385 //CQ8300 2386 OpenClipboard(dlgFindText.Handle); 2387 hData := GetClipboardData(CF_TEXT); 2388 pData := GlobalLock(hData); 2389 FindText := pData^.Text; 2390 GlobalUnlock(hData); 2391 CloseClipboard; 2392 //end CQ8300 2393 } 2286 2394 Execute; 2287 2395 end; … … 2322 2430 begin 2323 2431 inherited; 2324 DoAutoSave ;2432 DoAutoSave(0); 2325 2433 timAutoSave.Enabled := False; 2326 2434 try 2327 2435 SpellCheckForControl(memNewNote); 2328 2436 finally 2437 FChanged := True; 2438 DoAutoSave(0); 2329 2439 timAutoSave.Enabled := True; 2330 2440 end; … … 2334 2444 begin 2335 2445 inherited; 2336 DoAutoSave ;2446 DoAutoSave(0); 2337 2447 timAutoSave.Enabled := False; 2338 2448 try 2339 2449 GrammarCheckForControl(memNewNote); 2340 2450 finally 2451 FChanged := True; 2452 DoAutoSave(0); 2341 2453 timAutoSave.Enabled := True; 2342 2454 end; … … 2399 2511 SigAction: integer; 2400 2512 SavedDocID: string; 2513 ARefDate: TFMDateTime; 2401 2514 begin 2402 2515 inherited; … … 2432 2545 if not LockConsultRequestAndNote(lstNotes.ItemIEN) then Exit; 2433 2546 Exclusions := GetCurrentSigners(lstNotes.ItemIEN); 2434 SelectAdditionalSigners(Font.Size, lstNotes.ItemIEN, SigAction, Exclusions, SignerList, CT_NOTES); 2547 ARefDate := StrToFloat(Piece(lstNotes.Items[lstNotes.ItemIndex], U, 3)); 2548 SelectAdditionalSigners(Font.Size, lstNotes.ItemIEN, SigAction, Exclusions, SignerList, CT_NOTES, ARefDate); 2435 2549 with SignerList do 2436 2550 begin … … 2713 2827 //=================== Added for sort/search enhancements ====================== 2714 2828 procedure TfrmNotes.LoadNotes; 2829 const 2830 INVALID_ID = -1; 2831 INFO_ID = 1; 2715 2832 var 2716 2833 tmpList: TStringList; 2717 2834 ANode: TORTreeNode; 2835 x,xx,noteId: integer; // Text Search CQ: HDS00002856 2836 Dest: TStrings; // Text Search CQ: HDS00002856 2837 KeepFlag: Boolean; // Text Search CQ: HDS00002856 2838 NoteCount, NoteMatches: integer; // Text Search CQ: HDS00002856 2718 2839 begin 2719 2840 tmpList := TStringList.Create; … … 2759 2880 ListNotesForTree(tmpList, StrToIntDef(Status, 0), FMBeginDate, FMEndDate, Author, MaxDocs, TreeAscending); 2760 2881 CreateListItemsforDocumentTree(FDocList, tmpList, StrToIntDef(Status, 0), GroupBy, TreeAscending, CT_NOTES); 2882 2883 // Text Search CQ: HDS00002856 --------------------------------------- 2884 if FCurrentContext.SearchString<>'' then // Text Search CQ: HDS00002856 2885 begin 2886 NoteMatches := 0; 2887 Dest:=TStringList.Create; 2888 NoteCount:=FDocList.Count-1; 2889 if FDocList.Count>0 then 2890 for x := FDocList.Count-1 downto 1 do begin; // Don't do 0, because it's informational 2891 KeepFlag:=False; 2892 lblNotes.Caption:='Scanning '+IntToStr(NoteCount-x+1)+' of '+IntToStr(NoteCount)+', '+IntToStr(NoteMatches); 2893 If NoteMatches=1 then lblNotes.Caption:=lblNotes.Caption+' match' else 2894 lblNotes.Caption:=lblNotes.Caption+' matches'; 2895 frmSearchStop.lblSearchStatus.Caption := lblNotes.Caption; 2896 frmSearchStop.lblSearchStatus.Repaint; 2897 lblNotes.Repaint; 2898 // Free up some ticks so they can click the "Stop" button 2899 application.processmessages; 2900 application.processmessages; 2901 application.processmessages; 2902 If SearchTextStopFlag = False then begin 2903 noteId := StrToIntDef(Piece(FDocList.Strings[x],'^',1),-1); 2904 if (noteId = INVALID_ID) or (noteId = INFO_ID) then 2905 Continue; 2906 CallV('TIU GET RECORD TEXT', [Piece(FDocList.Strings[x],'^',1)]); 2907 Dest.Assign(RPCBrokerV.Results); 2908 If Dest.Count > 0 then 2909 for xx := 0 to Dest.Count-1 do 2910 begin 2911 //Dest.Strings[xx] := StringReplace(Dest.Strings[xx],'#13',' ',[rfReplaceAll, rfIgnoreCase]); 2912 if Pos(Uppercase(FCurrentContext.SearchString),Uppercase(Dest.Strings[xx]))>0 then 2913 keepflag:=true; 2914 end; 2915 If KeepFlag=False then begin; 2916 if FDocList.Count >= x then 2917 FDocList.Delete(x); 2918 if (tmpList.Count >= x) and (x > 0) then 2919 tmpList.Delete(x-1); 2920 end else 2921 Inc(NoteMatches); 2922 end; 2923 end; 2924 Dest.Free; 2925 end; 2926 // Text Search CQ: HDS00002856 --------------------------------------- 2927 2761 2928 UpdateTreeView(FDocList, tvNotes); 2762 2929 end; … … 3096 3263 var 3097 3264 WhyNot: string; 3265 //Saved: boolean; 3098 3266 begin 3099 3267 if EditingIndex <> -1 then … … 3213 3381 procedure TfrmNotes.ShowPCEButtons(Editing: boolean); 3214 3382 begin 3383 if frmFrame.Timedout then Exit; 3384 3215 3385 FEditingNotePCEObj := Editing; 3216 3386 if Editing or AnytimeEncounters then … … 3424 3594 SetPiece(x, U, 5, NewAuth + ';' + AuthNameCheck); 3425 3595 lstNotes.Items[EditingIndex] := x; 3426 if AskCosignerForTitle(Title, Author ) then3596 if AskCosignerForTitle(Title, Author, DateTime) then 3427 3597 begin 3428 3598 InfoBox(UpperCase(AuthNameCheck) + TX_COSIGNER_REQD, TC_COSIGNER_REQD, MB_OK); … … 3495 3665 procedure TfrmNotes.tvNotesExit(Sender: TObject); 3496 3666 begin 3497 if Boolean(Hi(GetKeyState(VK_TAB))) and (not Boolean(Hi(GetKeyState(VK_SHIFT))))then3667 if IncSecond(FMousing,1) < Now then 3498 3668 begin 3499 3669 if (Screen.ActiveControl = frmDrawers.pnlTemplatesButton) or … … 3503 3673 FindNextControl( cmdPCE, True, True, False).SetFocus; 3504 3674 end; 3675 FMousing := 0; 3676 end; 3677 3678 procedure TfrmNotes.pnlReadExit(Sender: TObject); 3679 begin 3680 inherited; 3681 if IncSecond(FMousing,1) < Now then 3682 begin 3683 if (Screen.ActiveControl = frmFrame.pnlPatient) then 3684 FindNextControl( tvNotes, True, True, False).SetFocus 3685 else 3686 if (Screen.ActiveControl = frmDrawers.pnlTemplatesButton) or 3687 (Screen.ActiveControl = frmDrawers.pnlEncounterButton) or 3688 (Screen.ActiveControl = cmdNewNote) or 3689 (Screen.ActiveControl = cmdPCE) then 3690 FindNextControl( frmDrawers.pnlTemplatesButton, False, True, False).SetFocus; 3691 end; 3692 FMousing := 0; 3505 3693 end; 3506 3694 … … 3508 3696 begin 3509 3697 inherited; 3510 if Boolean(Hi(GetKeyState(VK_TAB))) and3511 (not frmDrawers.pnlEncounterButton.CanFocus) and3512 (not Boolean(Hi(GetKeyState(VK_SHIFT)))) then3513 if (memPCEShow.CanFocus) then3514 memPCEShow.SetFocus3698 if IncSecond(FMousing,1) < Now then 3699 begin 3700 if (Screen.ActiveControl = lvNotes) or 3701 (Screen.ActiveControl = memNote) then 3702 frmFrame.pnlPatient.SetFocus 3515 3703 else 3516 frmFrame.pnlPatient.SetFocus; 3704 if (Screen.ActiveControl = tvNotes) then 3705 FindNextControl( frmFrame.pnlPatient, False, True, False).SetFocus; 3706 end; 3707 FMousing := 0; 3517 3708 end; 3518 3709 … … 3520 3711 begin 3521 3712 FOldFramePnlPatientExit(Sender); 3522 if Boolean(Hi(GetKeyState(VK_TAB)))then3713 if IncSecond(FMousing,1) < Now then 3523 3714 begin 3524 3715 if (Screen.ActiveControl = lvNotes) or … … 3526 3717 FindNextControl( lvNotes, False, True, False).SetFocus; 3527 3718 end; 3719 FMousing := 0; 3528 3720 end; 3529 3721 … … 3559 3751 begin 3560 3752 FOldDrawerPnlTemplatesButtonExit(Sender); 3561 if Boolean(Hi(GetKeyState(VK_TAB))) and Boolean(Hi(GetKeyState(VK_SHIFT))) then3562 if memNewNote.CanFocusthen3563 3564 else if memNote.CanFocus then3565 memNote.SetFocus;3753 if Boolean(Hi(GetKeyState(VK_TAB))) and (memNewNote.CanFocus) and 3754 Boolean(Hi(GetKeyState(VK_SHIFT))) then 3755 memNewNote.SetFocus 3756 else 3757 cmdNewNoteExit(Sender); 3566 3758 end; 3567 3759 … … 3570 3762 FOldDrawerPnlEncounterButtonExit(Sender); 3571 3763 cmdNewNoteExit(Sender); 3764 end; 3765 3766 procedure TfrmNotes.FormMouseMove(Sender: TObject; Shift: TShiftState; X, 3767 Y: Integer); 3768 begin 3769 inherited; 3770 FMousing := Now; 3572 3771 end; 3573 3772 … … 3606 3805 if Boolean(Hi(GetKeyState(VK_TAB))) then 3607 3806 if Boolean(Hi(GetKeyState(VK_SHIFT))) then 3608 if cmdPCE.CanFocus then 3609 cmdPCE.SetFocus 3610 else 3611 cmdNewNote.SetFocus 3807 cmdPCE.SetFocus 3612 3808 else 3613 3809 frmFrame.pnlPatient.SetFocus; … … 3629 3825 if Boolean(Hi(GetKeyState(VK_TAB))) and 3630 3826 Not Boolean(Hi(GetKeyState(VK_SHIFT))) then 3631 memPCEShow.SetFocus; 3632 end; 3633 3634 procedure TfrmNotes.memNoteExit(Sender: TObject); 3635 begin 3636 inherited; 3637 //Fix the Tab Order Make Drawers Buttons Accessible 3638 if Boolean(Hi(GetKeyState(VK_TAB))) then 3639 if Boolean(Hi(GetKeyState(VK_SHIFT))) then 3640 begin 3641 if lvNotes.CanFocus then 3642 lvNotes.SetFocus 3643 else if tvNotes.CanFocus then 3644 tvNotes.SetFocus; 3645 end 3646 else if frmDrawers.pnlTemplatesButton.CanFocus then 3647 frmDrawers.pnlTemplatesButton.SetFocus 3648 3649 end; 3650 3651 procedure TfrmNotes.lvNotesExit(Sender: TObject); 3652 begin 3653 inherited; 3654 if Boolean(Hi(GetKeyState(VK_TAB))) and Boolean(Hi(GetKeyState(VK_SHIFT))) then 3655 if tvNotes.CanFocus then 3656 tvNotes.SetFocus 3827 if memPCEShow.Visible then //CQ7120 3828 memPCEShow.SetFocus; //CQ7120 3829 end; 3830 3831 procedure TfrmNotes.ViewInfo(Sender: TObject); 3832 begin 3833 inherited; 3834 frmFrame.ViewInfo(Sender); 3835 end; 3836 3837 procedure TfrmNotes.mnuViewInformationClick(Sender: TObject); 3838 begin 3839 inherited; 3840 mnuViewDemo.Enabled := frmFrame.pnlPatient.Enabled; 3841 mnuViewVisits.Enabled := frmFrame.pnlVisit.Enabled; 3842 mnuViewPrimaryCare.Enabled := frmFrame.pnlPrimaryCare.Enabled; 3843 mnuViewMyHealtheVet.Enabled := not (Copy(frmFrame.laMHV.Hint, 1, 2) = 'No'); 3844 mnuInsurance.Enabled := not (Copy(frmFrame.laVAA2.Hint, 1, 2) = 'No'); 3845 mnuViewFlags.Enabled := frmFrame.lblFlag.Enabled; 3846 mnuViewRemoteData.Enabled := frmFrame.lblCirn.Enabled; 3847 mnuViewReminders.Enabled := frmFrame.pnlReminders.Enabled; 3848 mnuViewPostings.Enabled := frmFrame.pnlPostings.Enabled; 3657 3849 end; 3658 3850 … … 3662 3854 3663 3855 finalization 3664 uPCEEdit.Free;3665 uPCEShow.Free;3856 if (uPCEEdit <> nil) then uPCEEdit.Free; //CQ7012 Added test for nil 3857 if (uPCEShow <> nil) then uPCEShow.Free; //CQ7012 Added test for nil 3666 3858 3667 3859 end. -
cprs/branches/foia-cprs/CPRS-Chart/fNotesBP.dfm
r459 r460 12 12 TextHeight = 13 13 13 object Label1: TStaticText 14 Left = 6 15 Top = 6 16 Width = 229 17 Height = 13 14 Left = 0 15 Top = 0 16 Width = 310 17 Height = 17 18 Align = alTop 18 19 AutoSize = False 19 20 Caption = 'The selected title has associated boilerplate text.' 20 TabOrder = 321 TabOrder = 1 21 22 end 22 23 object radOptions: TRadioGroup 23 Left = 6 24 Top = 25 25 Width = 295 26 Height = 90 24 Left = 0 25 Top = 17 26 Width = 310 27 Height = 103 28 Align = alClient 27 29 Caption = ' Choose from: ' 28 30 ItemIndex = 0 … … 33 35 TabOrder = 0 34 36 end 35 object cmdPreview: TButton 36 Left = 6 37 Top = 127 38 Width = 79 39 Height = 21 40 Caption = 'Preview Text' 41 TabOrder = 1 42 OnClick = cmdPreviewClick 43 end 44 object cmdClose: TButton 45 Left = 230 46 Top = 127 47 Width = 72 48 Height = 21 49 Caption = 'OK' 50 Default = True 37 object btnPanel: TPanel 38 Left = 0 39 Top = 120 40 Width = 310 41 Height = 28 42 Align = alBottom 51 43 TabOrder = 2 52 OnClick = cmdCloseClick 44 object cmdPreview: TButton 45 Left = 6 46 Top = 4 47 Width = 79 48 Height = 21 49 Caption = 'Preview Text' 50 TabOrder = 0 51 OnClick = cmdPreviewClick 52 end 53 object cmdClose: TButton 54 Left = 230 55 Top = 4 56 Width = 72 57 Height = 21 58 Caption = 'OK' 59 Default = True 60 TabOrder = 1 61 OnClick = cmdCloseClick 62 end 53 63 end 54 64 end -
cprs/branches/foia-cprs/CPRS-Chart/fNotesBP.pas
r459 r460 11 11 Label1: TStaticText; 12 12 radOptions: TRadioGroup; 13 btnPanel: TPanel; 13 14 cmdPreview: TButton; 14 15 cmdClose: TButton; -
cprs/branches/foia-cprs/CPRS-Chart/fPage.pas
r459 r460 46 46 implementation 47 47 48 uses ORFn, fFrame ;48 uses ORFn, fFrame, uInit; 49 49 50 50 {$R *.DFM} … … 152 152 NextControl: TWinControl; 153 153 begin 154 if Assigned(frmFrame) and frmFrame.Enabled and frmFrame.Visible then begin154 if Assigned(frmFrame) and frmFrame.Enabled and frmFrame.Visible and not uInit.Timedout then begin 155 155 NextControl := FindNextControl(nil, True, True, False); 156 156 if NextControl <> nil then -
cprs/branches/foia-cprs/CPRS-Chart/fPatientFlagMulti.dfm
r459 r460 1 1 object frmFlags: TfrmFlags 2 Left = 4573 Top = 742 Left = 210 3 Top = 169 4 4 Width = 505 5 Height = 398 5 Height = 498 6 VertScrollBar.Range = 116 7 AutoScroll = False 6 8 Caption = 'Patient Record Flags' 7 9 Color = clBtnFace … … 15 17 OnClose = FormClose 16 18 OnCreate = FormCreate 19 OnDestroy = FormDestroy 17 20 OnKeyDown = FormKeyDown 18 21 OnShow = FormShow … … 27 30 Align = alNone 28 31 end 29 object Panel1: TPanel32 object Splitter2: TSplitter 30 33 Left = 0 31 Top = 3 4034 Top = 308 32 35 Width = 497 33 Height = 31 36 Height = 4 37 Cursor = crVSplit 34 38 Align = alBottom 35 TabOrder = 1 36 DesignSize = ( 37 497 38 31) 39 object btnClose: TButton 40 Left = 410 41 Top = 5 42 Width = 77 43 Height = 21 44 Anchors = [akRight, akBottom] 45 Cancel = True 46 Caption = 'Close' 47 TabOrder = 0 48 OnClick = btnCloseClick 49 end 39 MinSize = 45 50 40 end 51 object Panel2: TPanel41 object pnlTop: TORAutoPanel 52 42 Left = 0 53 43 Top = 0 … … 57 47 Constraints.MinHeight = 40 58 48 Constraints.MinWidth = 300 59 TabOrder = 249 TabOrder = 0 60 50 object lblFlags: TLabel 61 51 Left = 1 … … 73 63 Height = 65 74 64 Align = alClient 75 Font.Charset = DEFAULT_CHARSET 76 Font.Color = clWindowText 77 Font.Height = -11 78 Font.Name = 'Courier New' 79 Font.Style = [] 80 ItemHeight = 14 81 ParentFont = False 65 ItemHeight = 13 82 66 ParentShowHint = False 83 67 ShowHint = True … … 90 74 end 91 75 end 92 object memFlags: T CaptionMemo76 object memFlags: TRichEdit 93 77 Left = 0 94 78 Top = 80 95 79 Width = 497 96 Height = 2 6080 Height = 228 97 81 Align = alClient 98 Font.Charset = DEFAULT_CHARSET82 Font.Charset = ANSI_CHARSET 99 83 Font.Color = clWindowText 100 84 Font.Height = -11 101 85 Font.Name = 'Courier New' 102 86 Font.Style = [] 87 HideScrollBars = False 103 88 Lines.Strings = ( 104 89 '') … … 106 91 ReadOnly = True 107 92 ScrollBars = ssBoth 108 TabOrder = 093 TabOrder = 1 109 94 WantReturns = False 110 95 WordWrap = False 111 96 end 97 object pnlNotes: TPanel 98 Left = 0 99 Top = 312 100 Width = 497 101 Height = 152 102 Align = alBottom 103 TabOrder = 2 104 object lblNoteTitle: TLabel 105 Left = 1 106 Top = 1 107 Width = 495 108 Height = 13 109 Align = alTop 110 Caption = 'lblNoteTitle' 111 end 112 object lvPRF: TCaptionListView 113 Left = 1 114 Top = 14 115 Width = 495 116 Height = 106 117 Align = alClient 118 Columns = < 119 item 120 Caption = 'Used For Screen Readers' 121 Width = 1 122 end 123 item 124 AutoSize = True 125 Caption = 'Date' 126 end 127 item 128 AutoSize = True 129 Caption = 'Action' 130 end 131 item 132 AutoSize = True 133 Caption = 'Author' 134 end> 135 Constraints.MinHeight = 50 136 HideSelection = False 137 Items.Data = { 138 6C0000000100000000000000FFFFFFFFFFFFFFFF03000000000000000857414E 139 44455245521C4F63746F6265722032302C20323030334031303A31353A32333A 140 3233115245414C4C59204C4F4E47205354554646115069636B6572696E672C20 141 4D6F726F6E69FFFFFFFFFFFF} 142 ReadOnly = True 143 RowSelect = True 144 TabOrder = 0 145 ViewStyle = vsReport 146 OnClick = lvPRFClick 147 OnKeyDown = lvPRFKeyDown 148 end 149 object pnlBottom: TORAutoPanel 150 Left = 1 151 Top = 120 152 Width = 495 153 Height = 31 154 Align = alBottom 155 TabOrder = 1 156 DesignSize = ( 157 495 158 31) 159 object btnClose: TButton 160 Left = 410 161 Top = 5 162 Width = 77 163 Height = 21 164 Anchors = [akRight, akBottom] 165 Cancel = True 166 Caption = 'Close' 167 ModalResult = 2 168 TabOrder = 0 169 end 170 end 171 end 112 172 end -
cprs/branches/foia-cprs/CPRS-Chart/fPatientFlagMulti.pas
r459 r460 8 8 9 9 type 10 TfrmFlags = class(TfrmAutoSz) 10 {This object holds a List of Notes Linked to a PRF as Returned VIA the RPCBroker} 11 TPRFNotes = class(TObject) 12 private 13 FPRFNoteList : TStringList; 14 public 15 //procedure to show the Notes in a ListView, requires a listview parameter 16 procedure ShowActionsOnList(DisplayList : TCaptionListView); 17 //procedure to load the notes, this will call the RPC 18 procedure Load(TitleIEN : Int64; DFN : String); 19 function getNoteIEN(index: integer): String; 20 constructor create; 21 destructor Destroy(); override; 22 end; 23 24 TfrmFlags = class(TForm) 11 25 Splitter1: TSplitter; 12 Panel1: TPanel; 13 btnClose: TButton; 14 Panel2: TPanel; 26 pnlTop: TORAutoPanel; 15 27 lblFlags: TLabel; 16 28 lstFlags: TORListBox; 17 memFlags: TCaptionMemo; 29 memFlags: TRichEdit; 30 pnlNotes: TPanel; 31 lvPRF: TCaptionListView; 32 lblNoteTitle: TLabel; 33 Splitter2: TSplitter; 34 pnlBottom: TORAutoPanel; 35 btnClose: TButton; 18 36 procedure lstFlagsClick(Sender: TObject); 19 procedure btnCloseClick(Sender: TObject);20 37 procedure FormKeyDown(Sender: TObject; var Key: Word; 21 38 Shift: TShiftState); … … 23 40 procedure FormCreate(Sender: TObject); 24 41 procedure FormClose(Sender: TObject; var Action: TCloseAction); 42 procedure FormDestroy(Sender: TObject); 43 procedure lvPRFClick(Sender: TObject); 44 procedure lvPRFKeyDown(Sender: TObject; var Key: Word; 45 Shift: TShiftState); 25 46 private 26 47 FFlagID: integer; 48 FPRFNotes : TPRFNotes; 49 FNoteTitle: String; 50 procedure GetNotes(); 27 51 public 28 52 { Public declarations } 29 53 end; 54 const 55 HIDDEN_COL = 'Press enter or space bar to view this note:'; 56 //TIU GET LINKED PRF NOTES, return position constants 57 NOTE_IEN_POS = 1; 58 ACTION_POS = 2; 59 NOTE_DATE_POS = 3; 60 AUTHOR_POS = 4; 61 //TIU GET PRF TITLE, return position constants 62 NOTE_TITLE_IEN = 1; 63 NOTE_TITLE = 2; 64 30 65 31 66 procedure ShowFlags(FlagId: integer = 0); … … 33 68 implementation 34 69 35 uses uCore,uOrPtf,ORFn ;70 uses uCore,uOrPtf,ORFn, ORNet, uConst, fRptBox, rCover; 36 71 {$R *.dfm} 37 72 … … 45 80 if HasFlag then 46 81 begin 47 SetFormPosition(frmFlags);82 //SetFormPosition(frmFlags); 48 83 frmFlags.FFlagID := FlagId; 49 84 frmFlags.lstFlags.Items.Assign(FlagList); 50 85 frmFlags.memFlags.SelStart := 0; 51 //ResizeFormToFont(TForm(frmFlags));86 ResizeFormToFont(TForm(frmFlags)); 52 87 frmFlags.ShowModal; 53 88 end … … 68 103 memFlags.Lines.Assign(FlagArray); 69 104 memFlags.SelStart := 0; 70 end; 71 end; 72 73 procedure TfrmFlags.btnCloseClick(Sender: TObject); 74 begin 75 Close; 105 GetNotes; 106 end; 76 107 end; 77 108 … … 89 120 begin 90 121 inherited; 122 SetFormPosition(Self); 91 123 idx := 0; 92 124 if FFlagID > 0 then idx := lstFlags.SelectByIEN(FFlagId); … … 94 126 lstFlagsClick(Self); 95 127 ActiveControl := memFlags; 128 GetNotes; 96 129 end; 97 130 … … 105 138 begin 106 139 inherited; 107 //SaveUserBounds(Self); 108 end; 109 110 140 SaveUserBounds(Self); 141 end; 142 143 procedure TfrmFlags.GetNotes; 144 var 145 NoteTitleIEN, FlagID : Int64; 146 begin 147 if FPRFNotes = nil then 148 FPRFNotes := TPRFNotes.Create; 149 FlagID := lstFlags.ItemID; 150 CallV('TIU GET PRF TITLE', [Patient.DFN,FlagID]); 151 FNoteTitle := Piece(RPCBrokerV.Results[0],U,NOTE_TITLE); 152 lblNoteTitle.Caption := 'Signed, Linked Notes of Title: '+ FNoteTitle; 153 NoteTitleIEN := StrToInt(Piece(RPCBrokerV.Results[0],U,NOTE_TITLE_IEN)); 154 FPRFNotes.Load(NoteTitleIEN,Patient.DFN); 155 FPRFNotes.ShowActionsOnList(lvPRF); 156 with lvPRF do begin 157 158 Columns.BeginUpdate; 159 Columns.EndUpdate; 160 end; 161 end; 162 163 { TPRFNotes } 164 165 constructor TPRFNotes.create; 166 begin 167 inherited; 168 FPRFNoteList := TStringList.create; 169 end; 170 171 destructor TPRFNotes.Destroy; 172 begin 173 FPRFNoteList.Free; 174 inherited; 175 end; 176 177 function TPRFNotes.getNoteIEN(index: integer): String; 178 begin 179 Result := Piece(FPRFNoteList[index],U,NOTE_IEN_POS); 180 end; 181 182 procedure TPRFNotes.Load(TitleIEN: Int64; DFN: String); 183 const 184 REVERSE_CHRONO = 1; 185 begin 186 CallV('TIU GET LINKED PRF NOTES', [DFN,TitleIEN,REVERSE_CHRONO]); 187 FPRFNoteList.Assign(RPCBrokerV.Results); 188 end; 189 190 procedure TPRFNotes.ShowActionsOnList(DisplayList: TCaptionListView); 191 var 192 i : integer; 193 ListItem: TListItem; 194 begin 195 DisplayList.Clear; 196 for i := 0 to FPRFNoteList.Count-1 do 197 begin 198 //Caption="Text for Screen Reader" SubItem1=Flag SubItem2=Date SubItem3=Action SubItem4=Note 199 ListItem := DisplayList.Items.Add; 200 ListItem.Caption := HIDDEN_COL; //Screen readers don't read the first column title on a listview. 201 ListItem.SubItems.Add(Piece(FPRFNoteList[i],U,NOTE_DATE_POS)); 202 ListItem.SubItems.Add(Piece(FPRFNoteList[i],U,ACTION_POS)); 203 ListItem.SubItems.Add(Piece(FPRFNoteList[i],U,AUTHOR_POS)); 204 end; 205 end; 206 207 procedure TfrmFlags.FormDestroy(Sender: TObject); 208 begin 209 FPRFNotes.Free; 210 end; 211 212 procedure TfrmFlags.lvPRFClick(Sender: TObject); 213 begin 214 if lvPRF.ItemIndex > -1 then 215 begin 216 NotifyOtherApps(NAE_REPORT, 'TIU^' + FPRFNotes.getNoteIEN(lvPRF.ItemIndex)); 217 ReportBox(DetailPosting(FPRFNotes.getNoteIEN(lvPRF.ItemIndex)), FNoteTitle, True); 218 end; 219 end; 220 221 procedure TfrmFlags.lvPRFKeyDown(Sender: TObject; var Key: Word; 222 Shift: TShiftState); 223 begin 224 if (Key = VK_SPACE) or (Key = VK_RETURN) then 225 lvPRFClick(Sender); 226 end; 111 227 112 228 end. -
cprs/branches/foia-cprs/CPRS-Chart/fProbEdt.pas
r459 r460 140 140 begin 141 141 Result := not fChanged; 142 (* if not fChanged then143 begin144 result := true;145 exit;146 end;147 if InfoBox('Discard changes?', 'Confirmation', MB_OKCANCEL or MB_ICONQUESTION) <> IDOK then148 result := false149 else150 result := true;*)151 142 end; 152 143 … … 160 151 else 161 152 begin 162 if (not FSilent) and163 (InfoBox('Discard changes?', 'Confirmation', MB_YESNO or MB_ICONQUESTION) <> IDYES) then164 begin165 FCanQuit := False;166 exit;167 end168 else169 begin170 frmProblems.lblProbList.caption := frmProblems.pnlRight.Caption ;171 FCanQuit := True;172 close;173 end;153 if (not FSilent) and 154 (InfoBox('Discard changes?', 'Add/Edit a Problem', MB_YESNO or MB_ICONQUESTION) <> IDYES) then 155 begin 156 FCanQuit := False; 157 exit; 158 end 159 else 160 begin 161 frmProblems.lblProbList.caption := frmProblems.pnlRight.Caption ; 162 FCanQuit := True; 163 close; 164 end; 174 165 end; 175 166 end; … … 388 379 389 380 if Pos(Reason,'E,C') > 0 then ShowComments ; 381 if ProbRec.CmtIsXHTML then 382 begin 383 bbAdd.Enabled := FALSE; 384 bbEdit.Enabled := FALSE; 385 bbRemove.Enabled := FALSE; 386 pnlComments.Hint := ProbRec.CmtNoEditReason; 387 end 388 else 389 begin 390 bbAdd.Enabled := TRUE; 391 bbEdit.Enabled := TRUE; 392 bbRemove.Enabled := TRUE; 393 pnlComments.Hint := ''; 394 end ; 390 395 // =================== changed code - REV 7/30/98 ========================= 391 396 // PlUser.usVerifyTranscribed is a SITE requirement, not a user ability -
cprs/branches/foia-cprs/CPRS-Chart/fProbs.dfm
r459 r460 1 1 inherited frmProblems: TfrmProblems 2 Left = 2063 Top = 1982 Left = 627 3 Top = 64 4 4 Width = 639 5 5 Height = 409 … … 23 23 Width = 2 24 24 Height = 358 25 OnMoved = sptHorzMoved 25 26 end 26 27 inherited pnlLeft: TPanel … … 317 318 item 318 319 ImageIndex = -1 320 MinWidth = 20 319 321 Text = 'Description' 320 322 Width = 65 … … 322 324 item 323 325 ImageIndex = -1 326 MinWidth = 16 324 327 Text = 'Onset Date' 325 328 Width = 65 … … 327 330 item 328 331 ImageIndex = -1 332 MinWidth = 16 329 333 Text = 'Last Updated' 330 334 Width = 80 … … 385 389 Width = 0 386 390 end> 391 OnSectionClick = HeaderControlSectionClick 387 392 OnSectionResize = HeaderControlSectionResize 393 OnMouseDown = HeaderControlMouseDown 394 OnMouseUp = HeaderControlMouseUp 388 395 end 389 396 end … … 443 450 Caption = 'View Details' 444 451 OnClick = lstProbActsClick 452 end 453 object mnuOptimizeFields: TMenuItem 454 Caption = 'Adjust Column Size' 455 Visible = False 456 OnClick = mnuOptimizeFieldsClick 445 457 end 446 458 end … … 514 526 end 515 527 end 528 object mnuViewInformation: TMenuItem 529 Caption = 'Information' 530 OnClick = mnuViewInformationClick 531 object mnuViewDemo: TMenuItem 532 Tag = 1 533 Caption = 'De&mographics...' 534 OnClick = ViewInfo 535 end 536 object mnuViewVisits: TMenuItem 537 Tag = 2 538 Caption = 'Visits/Pr&ovider...' 539 OnClick = ViewInfo 540 end 541 object mnuViewPrimaryCare: TMenuItem 542 Tag = 3 543 Caption = 'Primary &Care...' 544 OnClick = ViewInfo 545 end 546 object mnuViewMyHealtheVet: TMenuItem 547 Tag = 4 548 Caption = 'MyHealthe&Vet...' 549 OnClick = ViewInfo 550 end 551 object mnuInsurance: TMenuItem 552 Tag = 5 553 Caption = '&Insurance...' 554 OnClick = ViewInfo 555 end 556 object mnuViewFlags: TMenuItem 557 Tag = 6 558 Caption = '&Flags...' 559 OnClick = ViewInfo 560 end 561 object mnuViewRemoteData: TMenuItem 562 Tag = 7 563 Caption = 'Remote &Data...' 564 OnClick = ViewInfo 565 end 566 object mnuViewReminders: TMenuItem 567 Tag = 8 568 Caption = '&Reminders...' 569 Enabled = False 570 OnClick = ViewInfo 571 end 572 object mnuViewPostings: TMenuItem 573 Tag = 9 574 Caption = '&Postings...' 575 OnClick = ViewInfo 576 end 577 end 516 578 object Z1: TMenuItem 517 579 Caption = '-' -
cprs/branches/foia-cprs/CPRS-Chart/fProbs.pas
r459 r460 79 79 mnuChartSurgery: TMenuItem; 80 80 HeaderControl: THeaderControl; 81 mnuViewInformation: TMenuItem; 82 mnuViewDemo: TMenuItem; 83 mnuViewVisits: TMenuItem; 84 mnuViewPrimaryCare: TMenuItem; 85 mnuViewMyHealtheVet: TMenuItem; 86 mnuInsurance: TMenuItem; 87 mnuViewFlags: TMenuItem; 88 mnuViewReminders: TMenuItem; 89 mnuViewRemoteData: TMenuItem; 90 mnuViewPostings: TMenuItem; 91 mnuOptimizeFields: TMenuItem; 81 92 procedure mnuChartTabClick(Sender: TObject); 82 93 procedure lstProbPickClick(Sender: TObject); … … 110 121 procedure FormMouseMove(Sender: TObject; Shift: TShiftState; X, 111 122 Y: Integer); 123 procedure ViewInfo(Sender: TObject); 124 procedure mnuViewInformationClick(Sender: TObject); 125 procedure mnuOptimizeFieldsClick(Sender: TObject); 126 procedure HeaderControlSectionClick(HeaderControl: THeaderControl; 127 Section: THeaderSection); 128 procedure HeaderControlMouseUp(Sender: TObject; Button: TMouseButton; 129 Shift: TShiftState; X, Y: Integer); 130 procedure HeaderControlMouseDown(Sender: TObject; Button: TMouseButton; 131 Shift: TShiftState; X, Y: Integer); 132 function getTotalSectionsWidth : integer; 133 procedure setSectionWidths; 134 procedure sptHorzMoved(Sender: TObject); 112 135 private 113 136 FContextString: string; … … 179 202 GridColWidths: Array[0..15] of integer =(0, 5, -1, 9, 9, 0, 12, 12, 12, 0, 0, 0, 0, 0, 0, 0); 180 203 204 type 205 arOrigSecWidths = array[0..15] of integer; 206 181 207 var 182 208 frmProblems: TfrmProblems; … … 185 211 gFontWidth: Integer; 186 212 gFixedWidth: Integer; 213 origWidths: arOrigSecWidths; 187 214 188 215 implementation … … 544 571 exit; 545 572 end ; 573 if ProbRec.CmtIsXHTML then 574 begin 575 InfoBox(ProbRec.CmtNoEditReason, 'Unable to add new comment', MB_ICONWARNING or MB_OK); 576 exit; 577 end ; 546 578 cmt := NewComment ; 547 579 if (StrToInt(Piece(cmt, U, 1)) > 0) and (Piece(cmt, U, 3) <> '') then … … 882 914 HeaderControl.Sections[AdjustCol].AutoSize := True; 883 915 HeaderControl.Sections[AdjustCol].Width := HeaderControl.Width - cxUsed; 916 //mnuOptimizeFieldsClick(self); //******** test making compression, proportional, or no spacing on resize 884 917 end; 885 918 … … 1586 1619 end ; 1587 1620 lstProbActsClick(Self) ; 1621 mnuOptimizeFieldsClick(self); 1588 1622 end; 1589 1623 … … 1728 1762 if Assigned(dlgProbs) then 1729 1763 dlgProbs.SetFontSize( MainFontSize); 1764 mnuOptimizeFieldsClick(self); 1730 1765 end; 1731 1766 … … 1810 1845 inherited; 1811 1846 wgProbData.Invalidate; 1847 {FEvtColWidth := HeaderControl.Sections[0].Width; //code from fOrders 1848 RedrawSuspend(Self.Handle); 1849 //RedrawOrderList; 1850 RedrawActivate(Self.Handle); 1851 wgProbData.Invalidate; 1852 pnlRight.Refresh; 1853 pnlLeft.Refresh; } 1812 1854 end; 1813 1855 … … 1929 1971 end; 1930 1972 1973 procedure TfrmProblems.ViewInfo(Sender: TObject); 1974 begin 1975 inherited; 1976 frmFrame.ViewInfo(Sender); 1977 end; 1978 1979 procedure TfrmProblems.mnuViewInformationClick(Sender: TObject); 1980 begin 1981 inherited; 1982 mnuViewDemo.Enabled := frmFrame.pnlPatient.Enabled; 1983 mnuViewVisits.Enabled := frmFrame.pnlVisit.Enabled; 1984 mnuViewPrimaryCare.Enabled := frmFrame.pnlPrimaryCare.Enabled; 1985 mnuViewMyHealtheVet.Enabled := not (Copy(frmFrame.laMHV.Hint, 1, 2) = 'No'); 1986 mnuInsurance.Enabled := not (Copy(frmFrame.laVAA2.Hint, 1, 2) = 'No'); 1987 mnuViewFlags.Enabled := frmFrame.lblFlag.Enabled; 1988 mnuViewRemoteData.Enabled := frmFrame.lblCirn.Enabled; 1989 mnuViewReminders.Enabled := frmFrame.pnlReminders.Enabled; 1990 mnuViewPostings.Enabled := frmFrame.pnlPostings.Enabled; 1991 end; 1992 1993 procedure TfrmProblems.mnuOptimizeFieldsClick(Sender: TObject); 1994 var 1995 totalSectionsWidth, unitvalue: integer; 1996 begin 1997 totalSectionsWidth := pnlRight.Width - 3; 1998 if totalSectionsWidth < 16 then exit; 1999 unitvalue := round(totalSectionsWidth / 16); 2000 with HeaderControl do 2001 begin 2002 if Sections[1].Width > 0 then Sections[1].Width := unitvalue; 2003 Sections[2].Width := pnlRight.Width - (unitvalue * 11) - 5; 2004 Sections[3].Width := unitvalue * 2; 2005 Sections[4].Width := unitvalue * 2; 2006 if Sections[6].Width > 0 then Sections[6].Width := unitvalue; 2007 if Sections[7].Width > 0 then Sections[7].Width := unitvalue * 2; 2008 if Sections[8].Width > 0 then Sections[8].Width := unitvalue * 2; 2009 if Sections[15].Width > 0 then Sections[15].Width := unitvalue; 2010 end; 2011 HeaderControlSectionResize(HeaderControl, HeaderControl.Sections[0]); 2012 HeaderControl.Repaint; 2013 end; 2014 2015 procedure TfrmProblems.HeaderControlSectionClick( 2016 HeaderControl: THeaderControl; Section: THeaderSection); 2017 begin 2018 inherited; 2019 //if Section = HeaderControl.Sections[1] then 2020 mnuOptimizeFieldsClick(self); 2021 end; 2022 2023 procedure TfrmProblems.HeaderControlMouseUp(Sender: TObject; 2024 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 2025 var 2026 i: integer; 2027 totalSectionsWidth, originalwidth: integer; 2028 begin 2029 inherited; 2030 totalSectionsWidth := getTotalSectionsWidth; 2031 if totalSectionsWidth > wgProbData.Width - 5 then 2032 begin 2033 originalwidth := 0; 2034 for i := 0 to HeaderControl.Sections.Count - 1 do 2035 originalwidth := originalwidth + origWidths[i]; 2036 if originalwidth < totalSectionsWidth then 2037 begin 2038 for i := 0 to HeaderControl.Sections.Count - 1 do 2039 HeaderControl.Sections[i].Width := origWidths[i]; 2040 wgProbData.Invalidate; 2041 end; 2042 end; 2043 end; 2044 2045 function TfrmProblems.getTotalSectionsWidth : integer; 2046 var 2047 i: integer; 2048 begin 2049 Result := 0; 2050 for i := 0 to HeaderControl.Sections.Count - 1 do 2051 Result := Result + HeaderControl.Sections[i].Width; 2052 end; 2053 2054 procedure TfrmProblems.HeaderControlMouseDown(Sender: TObject; 2055 Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 2056 begin 2057 inherited; 2058 setSectionWidths; 2059 end; 2060 2061 procedure TfrmProblems.setSectionWidths; 2062 var 2063 i: integer; 2064 begin 2065 for i := 0 to 15 do 2066 origWidths[i] := HeaderControl.Sections[i].Width; 2067 end; 2068 2069 procedure TfrmProblems.sptHorzMoved(Sender: TObject); 2070 begin 2071 inherited; 2072 mnuOptimizeFieldsClick(self); 2073 end; 2074 1931 2075 end. 1932 2076 -
cprs/branches/foia-cprs/CPRS-Chart/fPtSel.dfm
r459 r460 1 1 object frmPtSel: TfrmPtSel 2 Left = 1613 Top = 1004 Width = 8125 Height = 6122 Left = 81 3 Top = 89 4 Width = 793 5 Height = 589 6 6 BorderIcons = [] 7 7 Caption = 'Patient Selection' … … 23 23 Left = 0 24 24 Top = 290 25 Width = 80425 Width = 785 26 26 Height = 4 27 27 Cursor = crVSplit … … 31 31 Left = 0 32 32 Top = 294 33 Width = 80433 Width = 785 34 34 Height = 17 35 35 Align = alTop … … 66 66 Left = 0 67 67 Top = 0 68 Width = 80468 Width = 785 69 69 Height = 290 70 70 Align = alTop … … 135 135 end 136 136 object cmdSaveList: TButton 137 Left = 4 62138 Top = 21 6139 Width = 1 49137 Left = 499 138 Top = 217 139 Width = 175 140 140 Height = 18 141 141 Caption = 'Save Patient List Settings' … … 146 146 object pnlNotifications: TORAutoPanel 147 147 Left = 0 148 Top = 5 50149 Width = 804148 Top = 527 149 Width = 785 150 150 Height = 35 151 151 Align = alBottom … … 205 205 Left = 0 206 206 Top = 311 207 Width = 804208 Height = 2 39207 Width = 785 208 Height = 216 209 209 Align = alClient 210 210 Columns = < -
cprs/branches/foia-cprs/CPRS-Chart/fPtSel.pas
r459 r460 3 3 4 4 {$OPTIMIZATION OFF} // REMOVE AFTER UNIT IS DEBUGGED 5 6 {$define VAA} 5 7 6 8 interface … … 77 79 FsortAscending: boolean; 78 80 FLastPt: string; 81 FsortDirection: string; 82 FUserCancelled: boolean; 79 83 procedure AdjustFormSize(ShowNotif: Boolean; FontSize: Integer); 80 84 procedure ClearIDInfo; … … 85 89 procedure RPLDisplay; 86 90 procedure AlertList; 91 procedure ReformatAlertDateTime; 87 92 public 88 93 procedure Loaded; override; 89 94 end; 90 95 91 procedure SelectPatient(ShowNotif: Boolean; FontSize: Integer );96 procedure SelectPatient(ShowNotif: Boolean; FontSize: Integer; var UserCancelled: boolean); 92 97 93 98 var … … 114 119 AliasString = ' -- ALIAS'; 115 120 116 procedure SelectPatient(ShowNotif: Boolean; FontSize: Integer );121 procedure SelectPatient(ShowNotif: Boolean; FontSize: Integer; var UserCancelled: boolean); 117 122 { displays patient selection dialog (with optional notifications), updates Patient object } 118 123 var … … 137 142 end; 138 143 Notifications.Clear; 144 FsortCol := -1; 139 145 AlertList; 140 146 ClearIDInfo; 141 147 if (IsRPL = '1') then // Deal with restricted patient list users. 142 148 RPLDisplay; // Removes unnecessary components from view. 149 FUserCancelled := FALSE; 143 150 ShowModal; 151 UserCancelled := FUserCancelled; 144 152 end; 145 153 finally … … 539 547 if User.IsProvider then Encounter.Provider := User.DUZ; 540 548 541 GetBAStatus(Encounter.Provider, Encounter.Location);549 GetBAStatus(Encounter.Provider,Patient.DFN); 542 550 //HDS00005025 543 if BILLING_AWARE then 544 if Assigned(UBAGLOBALS.BAOrderList) then UBAGLOBALS.BAOrderList.Clear; 551 if BILLING_AWARE then 552 if Assigned(UBAGLOBALS.BAOrderList) then UBAGLOBALS.BAOrderList.Clear; 553 FUserCancelled := FALSE; 545 554 Close; 546 555 end; … … 549 558 begin 550 559 // Leave Patient object unchanged 560 FUserCancelled := TRUE; 551 561 Close; 552 562 end; … … 633 643 lstvAlerts.Clear; 634 644 AlertList; 645 //display alerts sorted according to parameter settings: 646 FsortCol := -1; //CA - display alerts in correct sort 647 FormShow(Sender); 635 648 end; 636 649 if Items.Count = 0 then ShowButts(False); 637 650 if SelCount <= 0 then ShowButts(False); 638 651 end; 639 GetBAStatus(User.DUZ, Encounter.Location);652 GetBAStatus(User.DUZ,Patient.DFN); 640 653 end; 641 654 … … 723 736 lstvAlerts.Clear; 724 737 AlertList; 725 FsortCol := 0; //CA - display alerts in correct sort738 FsortCol := -1; //CA - display alerts in correct sort 726 739 FormShow(Sender); //CA - display alerts in correct sort 727 740 if lstvAlerts.Items.Count = 0 then ShowButts(False); … … 805 818 function ConvertDate(var thisList: TStringList; listIndex: integer) : string; 806 819 { 807 C Q1075: Convert date portion from yyyy/mm/dd to mm/dd/yyyy820 Convert date portion from yyyy/mm/dd to mm/dd/yyyy 808 821 } 809 822 var … … 887 900 for I := 0 to List.Count - 1 do 888 901 begin 889 //CQ1075: Convert date portion from yyyy/mm/dd to mm/dd/yyyy 890 List[i] := ConvertDate(List, i); 902 // List[i] := ConvertDate(List, i); //cla commented out 8/9/04 CQ #4749 891 903 892 904 if Piece(List[I], U, 1) <> 'Forwarded by: ' then … … 929 941 930 942 if ((FsortCol = Column.Index) and (not SortViaKeyboard)) then 931 FsortAscending := not FsortAscending 943 FsortAscending := not FsortAscending; 944 945 if FsortAscending then 946 FsortDirection := 'F' 932 947 else 933 if Column.Index = 4 then 934 FsortAscending := false 935 else 936 FsortAscending := true; 948 FsortDirection := 'R'; 937 949 938 950 FsortCol := Column.Index; 939 lstvAlerts.AlphaSort; 951 952 if FsortCol = 4 then 953 ReformatAlertDateTime // hds7397- ge 2/6/6 sort and display date/time column correctly - as requested 954 else 955 lstvAlerts.AlphaSort; 940 956 SortViaKeyboard := false; 957 941 958 942 959 //Set the Notifications sort method to last-used sort-type 943 960 //ie., user clicked on which column header last use of CPRS? 944 961 case Column.Index of 945 0: rCore.SetSortMethod('I' );946 1: rCore.SetSortMethod('P' );947 2: rCore.SetSortMethod('L' );948 3: rCore.SetSortMethod('U' );949 4: rCore.SetSortMethod('D' );950 5: rCore.SetSortMethod('M' );951 6: rCore.SetSortMethod('F' );962 0: rCore.SetSortMethod('I', FsortDirection); 963 1: rCore.SetSortMethod('P', FsortDirection); 964 2: rCore.SetSortMethod('L', FsortDirection); 965 3: rCore.SetSortMethod('U', FsortDirection); 966 4: rCore.SetSortMethod('D', FsortDirection); 967 5: rCore.SetSortMethod('M', FsortDirection); 968 6: rCore.SetSortMethod('F', FsortDirection); 952 969 end; 953 970 end; … … 1022 1039 // pnlPrf.Visible := True; 1023 1040 end 1024 //else pnlPrf.Visible := False;1041 //else pnlPrf.Visible := False; 1025 1042 end; 1026 1043 … … 1043 1060 if lstvAlerts.SelCount <= 0 then ShowButts(False) 1044 1061 else ShowButts(True); 1045 GetBAStatus(User.DUZ, Encounter.Location);1062 GetBAStatus(User.DUZ,Patient.DFN); 1046 1063 end; 1047 1064 … … 1100 1117 } 1101 1118 var 1119 sortResult: string; 1102 1120 sortMethod: string; 1103 1121 begin 1104 sortMethod := rCore.GetSortMethod; 1122 sortResult := rCore.GetSortMethod; 1123 sortMethod := Piece(sortResult, U, 1); 1124 FsortDirection := Piece(sortResult, U, 2); 1125 if FsortDirection = 'F' then 1126 FsortAscending := true 1127 else 1128 FsortAscending := false; 1105 1129 1106 1130 case sortMethod[1] of … … 1115 1139 end; 1116 1140 1141 //hds7397- ge 2/6/6 sort and display date/time column correctly - as requested 1142 procedure TfrmPtSel.ReformatAlertDateTime; 1143 var 1144 I,J: Integer; 1145 inDateStr, holdDayTime,srtDate: String; 1146 begin 1147 // convert date to yyyy/mm/dd prior to sort. 1148 for J := 0 to lstvAlerts.items.count -1 do 1149 begin 1150 inDateStr := ''; 1151 srtDate := ''; 1152 holdDayTime := ''; 1153 inDateStr := lstvAlerts.Items[j].SubItems[3]; 1154 srtDate := ( (Piece( Piece(inDateStr,'/',3), '@',1)) + '/' + Piece(inDateStr,'/',1) + '/' + Piece(inDateStr,'/',2) +'@'+ Piece(inDateStr, '@',2) ); 1155 lstvAlerts.Items[j].SubItems[3] := srtDate; 1156 end; 1157 //sort the listview records by date 1158 lstvAlerts.AlphaSort; 1159 // loop thru lstvAlerts change date to yyyy/mm/dd 1160 // sort list 1161 // change alert date/time back to mm/dd/yyyy@time for display 1162 for I := 0 to lstvAlerts.items.Count -1 do 1163 begin 1164 inDateStr := ''; 1165 srtDate := ''; 1166 holdDayTime := ''; 1167 inDateStr := lstvAlerts.Items[i].SubItems[3]; 1168 holdDayTime := Piece(inDateStr,'/',3); // dd@time 1169 lstvAlerts.Items[i].SubItems[3] := (Piece(inDateStr, '/', 2) + '/' + Piece(holdDayTime, '@',1) +'/' 1170 + Piece(inDateStr,'/',1) + '@' + Piece(holdDayTime,'@',2) ); 1171 end; 1172 end; 1173 1117 1174 Initialization 1118 1175 SortViaKeyboard := false; -
cprs/branches/foia-cprs/CPRS-Chart/fPtSelMsg.dfm
r459 r460 3 3 Top = 421 4 4 Width = 375 5 Height = 1 655 Height = 174 6 6 Caption = 'Patient Lookup Messages' 7 7 Color = clBtnFace … … 19 19 DesignSize = ( 20 20 367 21 1 38)21 140) 22 22 PixelsPerInch = 96 23 23 TextHeight = 13 24 24 object cmdClose: TButton 25 25 Left = 158 26 Top = 11 726 Top = 114 27 27 Width = 60 28 28 Height = 21 … … 38 38 Top = 0 39 39 Width = 367 40 Height = 1 1240 Height = 107 41 41 Anchors = [akLeft, akTop, akRight, akBottom] 42 42 Color = clCream -
cprs/branches/foia-cprs/CPRS-Chart/fPtSelOptns.dfm
r459 r460 1 1 object frmPtSelOptns: TfrmPtSelOptns 2 Left = 4573 Top = 2132 Left = 1354 3 Top = 190 4 4 BorderStyle = bsNone 5 5 Caption = 'frmPtSelOptns' … … 145 145 OnMouseClick = cboListMouseClick 146 146 OnNeedData = cboListNeedData 147 CharsNeedMatch = 1 147 148 end 148 149 object cboDateRange: TORComboBox … … 169 170 OnExit = cboDateRangeExit 170 171 OnMouseClick = cboDateRangeMouseClick 172 CharsNeedMatch = 1 171 173 end 172 174 end -
cprs/branches/foia-cprs/CPRS-Chart/fPtSelOptns.pas
r459 r460 218 218 end; 219 219 220 procedure TfrmPtSelOptns.cboListNeedData(Sender: TObject; 221 const StartFrom: String; Direction, InsertAt: Integer); 220 procedure TfrmPtSelOptns.cboListNeedData(Sender: TObject; const StartFrom: String; Direction, InsertAt: Integer); 221 {CQ6363 Notes: This procedure was altered for CQ6363, but then changed back to its original form, as it is now. 222 223 The problem is that in LOM1T, there are numerous entries in the HOSPITAL LOCATION file (44) that are lower-case, 224 resulting in a "B" xref that looks like this: 225 226 ^SC("B","module 1x",2897) = 227 ^SC("B","pt",3420) = 228 ^SC("B","read",3146) = 229 ^SC("B","zz GIM/WONG NEW",2902) = 230 ^SC("B","zz bhost/arm",3076) = 231 ^SC("B","zz bhost/day",2698) = 232 ^SC("B","zz bhost/eve/ornelas",2885) = 233 ^SC("B","zz bhost/resident",2710) = 234 ^SC("B","zz bhost/sws",2946) = 235 ^SC("B","zz c&P ortho/patel",3292) = 236 ^SC("B","zz mhc md/kelley",320) = 237 ^SC("B","zz/mhc/p",1076) = 238 ^SC("B","zzMHC MD/THRASHER",1018) = 239 ^SC("B","zztest clinic",3090) = 240 ^SC("B","zzz-hbpc-phone-jung",1830) = 241 ^SC("B","zzz-hbpcphone cocohran",1825) = 242 ^SC("B","zzz-home service",1428) = 243 ^SC("B","zzz-phone-deloye",1834) = 244 ^SC("B","zzz/gmonti impotence",2193) = 245 246 ASCII sort mode puts those entries at the end of the "B" xref, but when retrieved by CPRS and upper-cased, it 247 messes up the logic of the combo box. This problem has been around since there was a CPRS GUI, and the best 248 possible fix is to require those entries to either be in all uppercase or be removed. If that's cleaned up, 249 the logic below will work correctly. 250 } 222 251 begin 223 252 case frmPtSelOptns.SrcType of -
cprs/branches/foia-cprs/CPRS-Chart/fReminderDialog.dfm
r459 r460 1 1 object frmRemDlg: TfrmRemDlg 2 Left = 2563 Top = 1612 Left = 357 3 Top = 260 4 4 Width = 545 5 5 Height = 407 … … 41 41 Caption = 'Label1' 42 42 end 43 object lblFootnotes: TStaticText44 Left = 045 Top = 36546 Width = 53747 Height = 1548 Align = alBottom49 AutoSize = False50 Caption = ' * Indicates a Required Field'51 TabOrder = 352 end53 43 object sb1: TScrollBox 54 44 Left = 0 … … 69 59 OnResize = sbResize 70 60 end 71 object pnlBottom: TPanel72 Left = 073 Top = 22174 Width = 53775 Height = 14476 Align = alBottom77 TabOrder = 278 object splText: TSplitter79 Left = 180 Top = 9481 Width = 53582 Height = 383 Cursor = crVSplit84 Align = alBottom85 end86 object reData: TRichEdit87 Left = 188 Top = 9789 Width = 53590 Height = 4691 Align = alBottom92 Color = clCream93 ReadOnly = True94 ScrollBars = ssVertical95 TabOrder = 296 WantReturns = False97 end98 object reText: TRichEdit99 Left = 1100 Top = 25101 Width = 535102 Height = 69103 Align = alClient104 Color = clCream105 Font.Charset = ANSI_CHARSET106 Font.Color = clWindowText107 Font.Height = -11108 Font.Name = 'Courier New'109 Font.Style = []110 ParentFont = False111 ReadOnly = True112 ScrollBars = ssBoth113 TabOrder = 1114 WantReturns = False115 WordWrap = False116 end117 object pnlButtons: TORAutoPanel118 Left = 1119 Top = 1120 Width = 535121 Height = 24122 Align = alTop123 BevelOuter = bvNone124 ParentShowHint = False125 ShowHint = True126 TabOrder = 0127 object btnClear: TButton128 Left = 2129 Top = 2130 Width = 66131 Height = 21132 Hint = 'Clear Reminder Resolutions for this Reminder'133 Caption = 'Clear'134 TabOrder = 0135 OnClick = btnClearClick136 end137 object btnBack: TButton138 Left = 263139 Top = 2140 Width = 66141 Height = 21142 Hint = 'Go back to the Previous Reminder Dialog'143 Caption = '< Back'144 TabOrder = 3145 OnClick = btnBackClick146 end147 object btnCancel: TButton148 Left = 467149 Top = 2150 Width = 66151 Height = 21152 Hint = 'Cancel All Reminder Dialog Processing'153 Cancel = True154 Caption = 'Cancel'155 TabOrder = 6156 OnClick = btnCancelClick157 end158 object btnNext: TButton159 Left = 331160 Top = 2161 Width = 66162 Height = 21163 Hint = 'Go on to the Next Reminder Dialog'164 Caption = 'Next >'165 TabOrder = 4166 OnClick = btnNextClick167 end168 object btnFinish: TButton169 Left = 399170 Top = 2171 Width = 66172 Height = 21173 Hint = 'Finish Processing'174 Caption = 'Finish'175 TabOrder = 5176 OnClick = btnFinishClick177 end178 object btnClinMaint: TButton179 Left = 70180 Top = 2181 Width = 105182 Height = 21183 Hint = 'View the Clinical Maintenance Component'184 Caption = 'Clinical &Maint'185 TabOrder = 1186 OnClick = btnClinMaintClick187 end188 object btnVisit: TButton189 Left = 177190 Top = 2191 Width = 84192 Height = 21193 Caption = '&Visit Info'194 TabOrder = 2195 OnClick = btnVisitClick196 end197 end198 end199 61 object sb2: TScrollBox 200 62 Left = 0 … … 214 76 OnResize = sbResize 215 77 end 78 object pnlFrmBottom: TPanel 79 Left = 0 80 Top = 221 81 Width = 537 82 Height = 159 83 Align = alBottom 84 BevelOuter = bvNone 85 TabOrder = 2 86 object pnlBottom: TPanel 87 Left = 0 88 Top = 0 89 Width = 537 90 Height = 144 91 Align = alClient 92 TabOrder = 0 93 object splText: TSplitter 94 Left = 1 95 Top = 94 96 Width = 535 97 Height = 3 98 Cursor = crVSplit 99 Align = alBottom 100 end 101 object reData: TRichEdit 102 Left = 1 103 Top = 97 104 Width = 535 105 Height = 46 106 Align = alBottom 107 Color = clCream 108 ReadOnly = True 109 ScrollBars = ssVertical 110 TabOrder = 2 111 WantReturns = False 112 end 113 object reText: TRichEdit 114 Left = 1 115 Top = 25 116 Width = 535 117 Height = 69 118 Align = alClient 119 Color = clCream 120 Font.Charset = ANSI_CHARSET 121 Font.Color = clWindowText 122 Font.Height = -11 123 Font.Name = 'Courier New' 124 Font.Style = [] 125 ParentFont = False 126 ReadOnly = True 127 ScrollBars = ssBoth 128 TabOrder = 1 129 WantReturns = False 130 WordWrap = False 131 end 132 object pnlButtons: TORAutoPanel 133 Left = 1 134 Top = 1 135 Width = 535 136 Height = 24 137 Align = alTop 138 BevelOuter = bvNone 139 ParentShowHint = False 140 ShowHint = True 141 TabOrder = 0 142 object btnClear: TButton 143 Left = 2 144 Top = 2 145 Width = 66 146 Height = 21 147 Hint = 'Clear Reminder Resolutions for this Reminder' 148 Caption = 'Clear' 149 TabOrder = 0 150 OnClick = btnClearClick 151 end 152 object btnBack: TButton 153 Left = 263 154 Top = 2 155 Width = 66 156 Height = 21 157 Hint = 'Go back to the Previous Reminder Dialog' 158 Caption = '< Back' 159 TabOrder = 3 160 OnClick = btnBackClick 161 end 162 object btnCancel: TButton 163 Left = 467 164 Top = 2 165 Width = 66 166 Height = 21 167 Hint = 'Cancel All Reminder Dialog Processing' 168 Cancel = True 169 Caption = 'Cancel' 170 TabOrder = 6 171 OnClick = btnCancelClick 172 end 173 object btnNext: TButton 174 Left = 331 175 Top = 2 176 Width = 66 177 Height = 21 178 Hint = 'Go on to the Next Reminder Dialog' 179 Caption = 'Next >' 180 TabOrder = 4 181 OnClick = btnNextClick 182 end 183 object btnFinish: TButton 184 Left = 399 185 Top = 2 186 Width = 66 187 Height = 21 188 Hint = 'Finish Processing' 189 Caption = 'Finish' 190 TabOrder = 5 191 OnClick = btnFinishClick 192 end 193 object btnClinMaint: TButton 194 Left = 70 195 Top = 2 196 Width = 105 197 Height = 21 198 Hint = 'View the Clinical Maintenance Component' 199 Caption = 'Clinical &Maint' 200 TabOrder = 1 201 OnClick = btnClinMaintClick 202 end 203 object btnVisit: TButton 204 Left = 177 205 Top = 2 206 Width = 84 207 Height = 21 208 Caption = '&Visit Info' 209 TabOrder = 2 210 OnClick = btnVisitClick 211 end 212 end 213 end 214 object lblFootnotes: TStaticText 215 Left = 0 216 Top = 144 217 Width = 537 218 Height = 15 219 Align = alBottom 220 AutoSize = False 221 Caption = ' * Indicates a Required Field' 222 TabOrder = 1 223 end 224 end 216 225 end -
cprs/branches/foia-cprs/CPRS-Chart/fReminderDialog.pas
r459 r460 11 11 TfrmRemDlg = class(TForm) 12 12 sb1: TScrollBox; 13 sb2: TScrollBox; 14 splTxtData: TSplitter; 15 Label1: TLabel; 16 pnlFrmBottom: TPanel; 13 17 pnlBottom: TPanel; 18 splText: TSplitter; 14 19 reData: TRichEdit; 15 20 reText: TRichEdit; … … 20 25 btnNext: TButton; 21 26 btnFinish: TButton; 22 sb2: TScrollBox;23 splTxtData: TSplitter;24 splText: TSplitter;25 27 btnClinMaint: TButton; 28 btnVisit: TButton; 26 29 lblFootnotes: TStaticText; 27 btnVisit: TButton;28 Label1: TLabel;29 30 procedure FormClose(Sender: TObject; var Action: TCloseAction); 30 31 procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean); … … 368 369 reData.Color := ReadOnlyColor; 369 370 reText.Color := ReadOnlyColor; 370 (*FSCCond := EligbleConditions;371 FSCRelated := SCC_NA; AGP Change 25.2371 FSCCond := EligbleConditions; 372 (* FSCRelated := SCC_NA; 372 373 FAORelated := SCC_NA; 373 FIRRelated := SCC_NA; 374 FIRRelated := SCC_NA; AGP Change 25.2 374 375 FECRelated := SCC_NA; 375 376 FMSTRelated := SCC_NA; … … 377 378 FCVRelated := SCC_NA; 378 379 with FSCCond do 379 FSCPrompt := (SCAllow or AOAllow or IRAllow or ECAllow or MSTAllow or HNCAllow or CVAllow); 380 FSCPrompt := (SCAllow or AOAllow or IRAllow or ECAllow or MSTAllow or HNCAllow or CVAllow); *) 380 381 NotifyWhenRemindersChange(RemindersChanged); 381 382 RemForm.Drawers.NotifyWhenRemTreeChanges(RemindersChanged); … … 504 505 begin 505 506 Box := GetBox(TRUE); 506 if Box.ControlCount > 0 then ClearControls; //AGP Change 2 5.7this change should507 if Box.ControlCount > 0 then ClearControls; //AGP Change 26.1 this change should 507 508 //resolve the problem with Duplicate CheckBoxes 508 509 //appearing on some reminder dialogs CQ #2843 … … 754 755 msg, RemWipe: string; 755 756 756 begin 757 //AGP 25.11 Move RemWipe section to cancel button to 757 758 begin 759 //AGP 25.11 Added RemWipe section to cancel button to 758 760 //flag the patient specific dialog to be destroy if not in process. 759 761 RemWipe := ''; … … 761 763 begin 762 764 Result := TRUE; 763 if Piece(FReminder.DlgData,U,3)='1'then RemWipe := Piece(FReminder.DlgData,U,1);765 if FReminder.RemWipe = 1 then RemWipe := Piece(FReminder.DlgData,U,1); 764 766 end 765 767 else … … 769 771 for i := 0 to RemindersInProcess.Count-1 do 770 772 begin 771 if Piece(TReminder(RemindersInProcess.Objects[i]).RemData,U,11)='1' then 773 //if Piece(TReminder(RemindersInProcess.Objects[i]).RemData,U,11)='1' then 774 if TReminderDialog(TReminder(RemindersInProcess.Objects[i])).RemWipe = 1 then 772 775 begin 773 776 if RemWipe ='' then RemWipe := TReminder(RemindersInProcess.Objects[i]).IEN … … 1040 1043 begin 1041 1044 Rem := FReminder; 1042 if Piece(Rem.DlgData,U,3)='1'then1045 if Rem.RemWipe = 1 then 1043 1046 RemWipe := Piece(Rem.DlgData,U,1); 1044 1047 end … … 1046 1049 begin 1047 1050 Rem := TReminder(RemindersInProcess.Objects[i]); 1048 if Piece(TReminder(RemindersInProcess.Objects[i]).RemData,U,11)='1'then1051 if TReminderDialog(TReminder(RemindersInProcess.Objects[i])).RemWipe = 1 then 1049 1052 begin 1050 1053 if RemWipe ='' then RemWipe := TReminder(RemindersInProcess.Objects[i]).IEN … … 1158 1161 begin 1159 1162 PCEObj := RemForm.PCEObj; 1160 (* AGP Change 25.2 Remove this section base on the Clinical Workgroup decision1161 if FSCPrompt and (ndSC in PCEObj.NeededPCEData) then1163 (* AGP CHANGE 23.2 Remove this section base on the Clinical Workgroup decision 1164 if FSCPrompt and (ndSC in PCEObj.NeededPCEData) then 1162 1165 btnVisitClick(nil); 1163 1166 PCEObj.SCRelated := FSCRelated; … … 1167 1170 PCEObj.MSTRelated := FMSTRelated; 1168 1171 PCEObj.HNCRelated := FHNCRelated; 1169 PCEObj.CVRelated := FCVRelated; 1172 PCEObj.CVRelated := FCVRelated; *) 1170 1173 if not FProcessingTemplate then 1171 1174 begin … … 1283 1286 if(FVitalsDate = 0) then 1284 1287 begin 1285 FVitalsDate := RemForm.PCEObj.VisitDateTime;1286 StoreVitals := ValidVitalsDate(FVitalsDate, TRUE );1288 FVitalsDate := TRemData(TmpData.Objects[i]).Parent.VitalDateTime; 1289 StoreVitals := ValidVitalsDate(FVitalsDate, TRUE, FALSE); //AGP Change 26.1 1287 1290 if (not StoreVitals) then break; 1288 1291 end; … … 1350 1353 VitalList.Insert(0, VitalDateStr + FloatToStr(FVitalsDate)); 1351 1354 VitalList.Insert(1, VitalPatientStr + Patient.DFN); 1352 VitalList.Insert(2, VitalLocationStr + IntToStr(Encounter.Location)); 1355 if IntToStr(Encounter.Location) <> '0' then //AGP change 26.9 1356 VitalList.Insert(2, VitalLocationStr + IntToStr(Encounter.Location)) 1357 else 1358 VitalList.Insert(2, VitalLocationStr + IntToStr(RemForm.PCEObj.Location));; 1353 1359 Tmp := ValAndStoreVitals(VitalList); 1354 1360 if (Tmp <> 'True') then … … 1587 1593 begin 1588 1594 if FVitalsDate = 0 then 1589 VitalsDate := RemForm.PCEObj.VisitDateTime1595 VitalsDate := FMNow //AGP Change 26.1 1590 1596 else 1591 1597 VitalsDate := FVitalsDate; -
cprs/branches/foia-cprs/CPRS-Chart/fReminderTree.dfm
r459 r460 20 20 OnCreate = FormCreate 21 21 OnDestroy = FormDestroy 22 OnKeyUp = FormKeyUp23 22 PixelsPerInch = 96 24 23 TextHeight = 13 … … 172 171 OnClick = mnuCoverSheetClick 173 172 end 173 object mnuExit: TMenuItem 174 Caption = 'E&xit Available Reminders' 175 ShortCut = 27 176 OnClick = mnuExitClick 177 end 174 178 end 175 179 end -
cprs/branches/foia-cprs/CPRS-Chart/fReminderTree.pas
r459 r460 23 23 memEvalCat: TMenuItem; 24 24 mnuCoverSheet: TMenuItem; 25 mnuExit: TMenuItem; 25 26 procedure FormClose(Sender: TObject; var Action: TCloseAction); 26 27 procedure FormCreate(Sender: TObject); … … 47 48 procedure memEvalCatClick(Sender: TObject); 48 49 procedure mnuCoverSheetClick(Sender: TObject); 49 procedure FormKeyUp(Sender: TObject; var Key: Word;50 Shift: TShiftState);51 50 procedure tvRemNodeCaptioning(Sender: TObject; var Caption: String); 52 51 procedure tvRemAddition(Sender: TObject; Node: TTreeNode); 53 52 procedure tvRemDeletion(Sender: TObject; Node: TTreeNode); 53 procedure mnuExitClick(Sender: TObject); 54 54 private 55 55 FLinking: boolean; … … 689 689 end; 690 690 691 procedure TfrmReminderTree.FormKeyUp(Sender: TObject; var Key: Word;692 Shift: TShiftState);693 begin694 if Key = VK_ESCAPE then695 begin696 Key := 0;697 Close;698 end;699 end;700 701 691 procedure TfrmReminderTree.tvRemNodeCaptioning(Sender: TObject; 702 692 var Caption: String); … … 724 714 end; 725 715 716 procedure TfrmReminderTree.mnuExitClick(Sender: TObject); 717 begin 718 Close; 719 end; 720 726 721 end. -
cprs/branches/foia-cprs/CPRS-Chart/fRenewOutMed.dfm
r459 r460 1 1 inherited frmRenewOutMed: TfrmRenewOutMed 2 Left = 338 3 Top = 413 4 Height = 257 5 Caption = 'Change Refills/Comments for Outpatient Medication' 2 Left = 334 3 Top = 436 4 Width = 364 5 Height = 227 6 Caption = 'Change Refills for Outpatient Medication' 6 7 Position = poScreenCenter 7 8 OnCreate = FormCreate 8 9 PixelsPerInch = 96 9 10 TextHeight = 13 10 object lblRefills: TLabel11 Left = 812 Top = 8013 Width = 2814 Height = 1315 Caption = 'Refills'16 end17 object lblComments: TLabel18 Left = 819 Top = 12320 Width = 4921 Height = 1322 Caption = 'Comments'23 Enabled = False24 Visible = False25 end26 object lblPickup: TLabel27 Left = 7428 Top = 8129 Width = 3830 Height = 1331 Caption = 'Pick Up'32 end33 object cmdOK: TButton34 Left = 26735 Top = 20136 Width = 7237 Height = 2138 Caption = 'OK'39 Default = True40 TabOrder = 341 OnClick = cmdOKClick42 end43 object cmdCancel: TButton44 Left = 34745 Top = 20146 Width = 7247 Height = 2148 Cancel = True49 Caption = 'Cancel'50 TabOrder = 451 OnClick = cmdCancelClick52 end53 11 object memOrder: TCaptionMemo 54 Left = 8 55 Top = 16 56 Width = 411 57 Height = 48 12 Left = 0 13 Top = 0 14 Width = 356 15 Height = 88 16 Align = alClient 58 17 Color = clBtnFace 59 18 ReadOnly = True 60 TabOrder = 5 19 ScrollBars = ssVertical 20 TabOrder = 0 61 21 Caption = 'Order' 62 22 end 63 object memComments: TCaptionMemo 64 Left = 8 65 Top = 137 66 Width = 411 67 Height = 48 68 Enabled = False 23 object pnlButtons: TPanel 24 Left = 0 25 Top = 152 26 Width = 356 27 Height = 41 28 Align = alBottom 29 BevelOuter = bvNone 69 30 TabOrder = 2 70 Visible = False 71 Caption = 'Comments' 31 DesignSize = ( 32 356 33 41) 34 object cmdOK: TButton 35 Left = 173 36 Top = 7 37 Width = 72 38 Height = 27 39 Anchors = [akTop, akRight] 40 Caption = 'OK' 41 Default = True 42 TabOrder = 0 43 OnClick = cmdOKClick 44 end 45 object cmdCancel: TButton 46 Left = 248 47 Top = 7 48 Width = 103 49 Height = 27 50 Anchors = [akTop, akRight] 51 Cancel = True 52 Caption = 'Cancel' 53 TabOrder = 1 54 OnClick = cmdCancelClick 55 end 72 56 end 73 object txtRefills: TCaptionEdit 74 Left = 8 75 Top = 94 76 Width = 49 77 Height = 21 78 TabOrder = 0 79 Caption = 'Refills' 80 end 81 object cboPickup: TORComboBox 82 Left = 74 83 Top = 95 84 Width = 106 85 Height = 21 86 Style = orcsDropDown 87 AutoSelect = True 88 Caption = 'Pick Up' 89 Color = clWindow 90 DropDownCount = 8 91 ItemHeight = 13 92 ItemTipColor = clWindow 93 ItemTipEnable = True 94 ListItemsOnly = True 95 LongList = False 96 MaxLength = 0 97 Pieces = '2' 98 Sorted = False 99 SynonymChars = '<>' 100 TabOrder = 1 57 object pnlMiddle: TPanel 58 Left = 0 59 Top = 88 60 Width = 356 61 Height = 64 62 Align = alBottom 63 BevelOuter = bvNone 64 TabOrder = 3 65 object lblPickup: TLabel 66 Left = 100 67 Top = 7 68 Width = 38 69 Height = 13 70 Caption = 'Pick Up' 71 end 72 object lblRefills: TLabel 73 Left = 8 74 Top = 7 75 Width = 28 76 Height = 13 77 Caption = 'Refills' 78 end 79 object cboPickup: TORComboBox 80 Left = 100 81 Top = 31 82 Width = 125 83 Height = 21 84 Style = orcsDropDown 85 AutoSelect = True 86 Caption = 'Pick Up' 87 Color = clWindow 88 DropDownCount = 8 89 ItemHeight = 13 90 ItemTipColor = clWindow 91 ItemTipEnable = True 92 ListItemsOnly = True 93 LongList = False 94 LookupPiece = 0 95 MaxLength = 0 96 Pieces = '2' 97 Sorted = False 98 SynonymChars = '<>' 99 TabOrder = 0 100 CharsNeedMatch = 1 101 end 102 object txtRefills: TCaptionEdit 103 Left = 8 104 Top = 31 105 Width = 49 106 Height = 21 107 TabOrder = 1 108 Caption = 'Refills' 109 end 101 110 end 102 111 end -
cprs/branches/foia-cprs/CPRS-Chart/fRenewOutMed.pas
r459 r460 5 5 uses 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 fAutoSz, StdCtrls, ComCtrls, ORFn, rOrders, Mask, ORCtrls ;7 fAutoSz, StdCtrls, ComCtrls, ORFn, rOrders, Mask, ORCtrls, ExtCtrls; 8 8 9 9 type 10 TfrmRenewOutMed = class(T frmAutoSz)11 lblRefills: TLabel;12 lblComments: TLabel;10 TfrmRenewOutMed = class(TForm) 11 memOrder: TCaptionMemo; 12 pnlButtons: TPanel; 13 13 cmdOK: TButton; 14 14 cmdCancel: TButton; 15 memOrder: TCaptionMemo; 16 memComments: TCaptionMemo; 15 pnlMiddle: TPanel; 16 cboPickup: TORComboBox; 17 lblPickup: TLabel; 17 18 txtRefills: TCaptionEdit; 18 lblPickup: TLabel; 19 cboPickup: TORComboBox; 19 lblRefills: TLabel; 20 20 procedure FormCreate(Sender: TObject); 21 21 procedure cmdOKClick(Sender: TObject); … … 45 45 try 46 46 ResizeFormToFont(TForm(frmRenewOutMed)); 47 frmRenewOutMed.memComments.SetTextBuf(PChar(Comments));48 47 frmRenewOutMed.memOrder.SetTextBuf(PChar(AnOrder.Text)); 49 48 frmRenewOutMed.txtRefills.Text := IntToStr(Refills); … … 54 53 Result := True; 55 54 Refills := StrToIntDef(frmRenewOutMed.txtRefills.Text, Refills); 56 Comments := frmRenewOutMed.memComments.Text;57 55 Pickup := frmRenewOutMed.cboPickup.ItemID; 58 56 end; -
cprs/branches/foia-cprs/CPRS-Chart/fReports.dfm
r459 r460 1 1 inherited frmReports: TfrmReports 2 Left = 2153 Top = 1264 Width = 7 865 Height = 3772 Left = 456 3 Top = 200 4 Width = 725 5 Height = 654 6 6 HelpContext = 9000 7 7 Caption = 'Reports Page' … … 12 12 TextHeight = 13 13 13 inherited shpPageBottom: TShape 14 Top = 34015 Width = 7 7814 Top = 617 15 Width = 717 16 16 Height = 10 17 17 end 18 18 inherited sptHorz: TSplitter 19 19 Left = 119 20 Height = 340 20 Height = 617 21 OnMoved = sptHorzMoved 21 22 end 22 23 inherited pnlLeft: TPanel 23 24 Width = 119 24 Height = 34025 Height = 617 25 26 object Splitter1: TSplitter 26 27 Left = 0 27 Top = 9128 Top = 259 28 29 Width = 119 29 Height = 1030 Height = 6 30 31 Cursor = crVSplit 31 32 Align = alBottom 33 Color = clBtnFace 34 ParentColor = False 32 35 OnCanResize = Splitter1CanResize 33 36 end … … 36 39 Top = 0 37 40 Width = 119 38 Height = 9141 Height = 259 39 42 Align = alClient 40 43 BevelOuter = bvNone … … 57 60 Top = 19 58 61 Width = 119 59 Height = 7262 Height = 240 60 63 Align = alClient 61 64 HideSelection = False … … 73 76 object pnlLeftBottom: TPanel 74 77 Left = 0 75 Top = 20178 Top = 365 76 79 Width = 119 77 Height = 13980 Height = 252 78 81 Align = alBottom 82 Anchors = [akLeft, akTop, akRight, akBottom] 79 83 BevelOuter = bvNone 80 84 TabOrder = 1 85 Visible = False 81 86 object lblQualifier: TOROffsetLabel 82 87 Left = 0 83 88 Top = 0 84 89 Width = 119 85 Height = 2090 Height = 13 86 91 Align = alTop 87 92 HorzOffset = 3 … … 92 97 object lblHeaders: TLabel 93 98 Left = 0 94 Top = 2099 Top = 13 95 100 Width = 119 96 101 Height = 13 … … 102 107 object lstHeaders: TORListBox 103 108 Left = 0 104 Top = 33105 Width = 119 106 Height = 106109 Top = 26 110 Width = 119 111 Height = 226 107 112 Align = alClient 108 113 ItemHeight = 13 … … 119 124 object lstQualifier: TORListBox 120 125 Left = 0 121 Top = 33122 Width = 119 123 Height = 106126 Top = 26 127 Width = 119 128 Height = 226 124 129 Style = lbOwnerDrawFixed 125 130 Align = alClient … … 135 140 TabPositions = '10' 136 141 end 142 object pnlViews: TORAutoPanel 143 Left = 0 144 Top = 26 145 Width = 119 146 Height = 226 147 Align = alClient 148 BevelOuter = bvNone 149 TabOrder = 3 150 Visible = False 151 object pnlTopViews: TPanel 152 Left = 0 153 Top = 0 154 Width = 119 155 Height = 80 156 Align = alTop 157 BevelOuter = bvNone 158 TabOrder = 0 159 DesignSize = ( 160 119 161 80) 162 object lblDateRange: TLabel 163 Left = 0 164 Top = 63 165 Width = 58 166 Height = 13 167 Anchors = [akLeft, akTop, akRight] 168 Caption = 'Date Range' 169 end 170 object chkDualViews: TCheckBox 171 Left = 0 172 Top = 0 173 Width = 121 174 Height = 17 175 Anchors = [akLeft, akTop, akRight] 176 Caption = 'Split Views' 177 TabOrder = 0 178 OnClick = chkDualViewsClick 179 end 180 object btnGraphSelections: TORAlignButton 181 Left = 0 182 Top = 20 183 Width = 119 184 Height = 21 185 Anchors = [akLeft, akTop, akRight] 186 Caption = 'Select/Define...' 187 TabOrder = 1 188 OnClick = btnGraphSelectionsClick 189 end 190 object btnChangeView: TORAlignButton 191 Left = 0 192 Top = 41 193 Width = 119 194 Height = 21 195 Anchors = [akLeft, akTop, akRight] 196 Caption = 'Settings...' 197 TabOrder = 2 198 OnClick = btnChangeViewClick 199 end 200 end 201 object lstDateRange: TORListBox 202 Left = 0 203 Top = 80 204 Width = 119 205 Height = 146 206 Align = alClient 207 Font.Charset = DEFAULT_CHARSET 208 Font.Color = clWindowText 209 Font.Height = -11 210 Font.Name = 'MS Sans Serif' 211 Font.Style = [] 212 ItemHeight = 13 213 ParentFont = False 214 ParentShowHint = False 215 ShowHint = True 216 TabOrder = 1 217 OnClick = lstDateRangeClick 218 ItemTipColor = clWindow 219 LongList = False 220 Pieces = '2' 221 TabPositions = '10' 222 end 223 end 137 224 end 138 225 object pnlProcedures: TPanel 139 226 Left = 0 140 Top = 101227 Top = 265 141 228 Width = 119 142 229 Height = 100 … … 144 231 BevelOuter = bvNone 145 232 TabOrder = 2 233 Visible = False 146 234 object lblProcedures: TOROffsetLabel 147 235 Left = 0 … … 151 239 Align = alTop 152 240 Caption = 'Radiology Procedures' 241 Color = clBtnFace 153 242 HorzOffset = 2 243 ParentColor = False 154 244 Transparent = False 155 245 VertOffset = 2 … … 178 268 inherited pnlRight: TPanel 179 269 Left = 123 180 Width = 655181 Height = 340270 Width = 594 271 Height = 617 182 272 object sptHorzRight: TSplitter 183 273 Left = 0 184 274 Top = 177 185 Width = 655275 Width = 594 186 276 Height = 4 187 277 Cursor = crVSplit … … 193 283 Left = 0 194 284 Top = 0 195 Width = 655285 Width = 594 196 286 Height = 57 197 287 Align = alTop … … 201 291 Left = 0 202 292 Top = 17 203 Width = 655293 Width = 594 204 294 Height = 25 205 295 Align = alTop … … 212 302 Left = 0 213 303 Top = 0 214 Width = 655304 Width = 594 215 305 Height = 17 216 306 Align = alTop … … 222 312 object TabControl1: TTabControl 223 313 Left = 0 224 Top = 40 225 Width = 655 226 Height = 17 227 Align = alBottom 314 Top = 42 315 Width = 594 316 Height = 20 317 Align = alTop 318 Font.Charset = DEFAULT_CHARSET 319 Font.Color = clWindowText 320 Font.Height = -11 321 Font.Name = 'MS Sans Serif' 322 Font.Style = [] 228 323 HotTrack = True 324 ParentFont = False 325 Style = tsButtons 326 TabHeight = 16 229 327 TabOrder = 0 230 328 TabStop = False … … 236 334 Left = 0 237 335 Top = 181 238 Width = 655239 Height = 159336 Width = 594 337 Height = 436 240 338 Align = alClient 241 339 TabOrder = 2 340 object WebBrowser1: TWebBrowser 341 Left = 1 342 Top = 31 343 Width = 592 344 Height = 277 345 TabStop = False 346 Align = alClient 347 TabOrder = 1 348 OnDocumentComplete = WebBrowser1DocumentComplete 349 ControlData = { 350 4C0000002F3D0000A11C00000000000000000000000000000000000000000000 351 000000004C000000000000000000000001000000E0D057007335CF11AE690800 352 2B2E126208000000000000004C0000000114020000000000C000000000000046 353 8000000000000000000000000000000000000000000000000000000000000000 354 00000000000000000100000000000000000000000000000000000000} 355 end 242 356 object Memo1: TMemo 243 357 Left = 1 244 358 Top = 1 245 Width = 653359 Width = 592 246 360 Height = 30 247 361 TabStop = False … … 259 373 OnKeyUp = Memo1KeyUp 260 374 end 261 object WebBrowser1: TWebBrowser262 Left = 1263 Top = 31264 Width = 653265 Height = 127266 TabStop = False267 Align = alClient268 TabOrder = 1269 OnDocumentComplete = WebBrowser1DocumentComplete270 ControlData = {271 4C0000007D430000200D00000000000000000000000000000000000000000000272 000000004C000000000000000000000001000000E0D057007335CF11AE690800273 2B2E126208000000000000004C0000000114020000000000C000000000000046274 8000000000000000000000000000000000000000000000000000000000000000275 00000000000000000100000000000000000000000000000000000000}276 end277 375 object memText: TRichEdit 278 376 Left = 1 279 Top = 3 1280 Width = 653377 Top = 308 378 Width = 592 281 379 Height = 127 282 Align = al Client380 Align = alBottom 283 381 Color = clCream 284 382 Font.Charset = ANSI_CHARSET … … 293 391 ScrollBars = ssBoth 294 392 TabOrder = 2 393 Visible = False 295 394 WantReturns = False 296 395 WordWrap = False … … 300 399 Left = 0 301 400 Top = 57 302 Width = 655401 Width = 594 303 402 Height = 120 304 403 Align = alTop … … 308 407 Left = 1 309 408 Top = 1 310 Width = 653409 Width = 592 311 410 Height = 118 312 411 Hint = 'To sort, click on column headers|' -
cprs/branches/foia-cprs/CPRS-Chart/fReports.pas
r459 r460 6 6 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 7 7 fHSplit, StdCtrls, ExtCtrls, ORCtrls, ComCtrls, Menus, uConst, ORDtTmRng, 8 OleCtrls, SHDocVw, Buttons, ClipBrd, rECS, Variants ;8 OleCtrls, SHDocVw, Buttons, ClipBrd, rECS, Variants, StrUtils; 9 9 10 10 type … … 47 47 tvProcedures: TORTreeView; 48 48 lblProcTypeMsg: TOROffsetLabel; 49 pnlViews: TORAutoPanel; 50 chkDualViews: TCheckBox; 51 btnChangeView: TORAlignButton; 52 btnGraphSelections: TORAlignButton; 53 lblDateRange: TLabel; 54 lstDateRange: TORListBox; 55 pnlTopViews: TPanel; 49 56 procedure lstQualifierClick(Sender: TObject); 50 57 procedure GotoTop1Click(Sender: TObject); … … 59 66 procedure TabControl1Change(Sender: TObject); 60 67 procedure FormDestroy(Sender: TObject); 61 procedure GoRemote(Dest: TStringList; AItem: string; AQualifier, ARpc: string; AHSTag: string );68 procedure GoRemote(Dest: TStringList; AItem: string; AQualifier, ARpc: string; AHSTag: string; AHDR: string); 62 69 procedure lstHeadersClick(Sender: TObject); 63 70 procedure Splitter1CanResize(Sender: TObject; var NewSize: Integer; … … 99 106 var AllowCollapse: Boolean); 100 107 procedure tvProceduresExpanding(Sender: TObject; Node: TTreeNode; 101 var AllowExpansion: Boolean); 108 var AllowExpansion: Boolean); 102 109 procedure tvProceduresClick(Sender: TObject); 103 110 procedure tvProceduresChange(Sender: TObject; Node: TTreeNode); 104 111 procedure tvProceduresKeyDown(Sender: TObject; var Key: Word; 105 Shift: TShiftState); 112 Shift: TShiftState); 113 procedure chkDualViewsClick(Sender: TObject); 114 procedure btnChangeViewClick(Sender: TObject); 115 procedure btnGraphSelectionsClick(Sender: TObject); 116 procedure lstDateRangeClick(Sender: TObject); 117 procedure sptHorzMoved(Sender: TObject); 106 118 107 119 private … … 109 121 procedure ProcessNotifications; 110 122 procedure ShowTabControl; 111 //procedure UpdateRemoteStatus(aSiteID, aStatus: string); 123 procedure Graph(reportien: integer); 124 procedure GraphPanel(active: boolean); 112 125 113 126 public … … 145 158 ulvSelectOn: boolean; //flag turned on when multiple items in lvReports control have been selected 146 159 uListState: Integer; //Checked state of list of Adhoc components Checked: Abbreviation, UnChecked: Name 147 uNoRemote: boolean;148 160 uECSReport: TECSReport; //Event Capture Report, initiated in fFrame when Click Event Capture under Tools 149 161 UpdatingLvReports: Boolean; //Currently updating lvReports … … 155 167 156 168 uses ORFn, rCore, rReports, fFrame, uCore, uReports, fReportsPrint, 157 fReportsAdhocComponent1, activex, mshtml, dShared ;169 fReportsAdhocComponent1, activex, mshtml, dShared, fGraphs, rGraphs; //***** 158 170 159 171 const … … 182 194 uHTMLPatient: ANSIstring; 183 195 uRptID: String; 196 uDirect: String; 184 197 uEmptyImageList: TImageList; 185 198 ColumnToSort: Integer; 186 199 ColumnSortForward: Boolean; 200 GraphForm: TfrmGraphs; 201 GraphFormActive: boolean; 187 202 188 203 procedure TfrmReports.ClearPtData; … … 200 215 TabControl1.Visible := false; 201 216 TabControl1.TabStop := false; 217 if (GraphForm <> nil) and GraphFormActive then 218 with GraphForm do 219 begin 220 GraphForm.SendToBack; 221 Initialize; 222 DisplayData('top'); 223 DisplayData('bottom'); 224 lstCheck.Items.Clear; 225 GraphFormActive := false; 226 end; 227 begin 228 end; 229 end; 230 231 procedure TfrmReports.Graph(reportien: integer); 232 begin 233 if GraphForm = nil then 234 begin 235 GraphForm := TfrmGraphs.Create(self); 236 try 237 with GraphForm do 238 begin 239 if btnClose.Tag = 1 then 240 Exit; 241 Parent := pnlRight; 242 Align := alClient; 243 pnlFooter.Tag := 1; //suppresses bottom of graph form 244 pnlBottom.Height := 1; 245 pnlMain.BevelInner := bvLowered; 246 pnlMain.BevelOuter := bvRaised; 247 pnlMain.Tag := reportien; 248 Initialize; 249 ResizeAnchoredFormToFont(GraphForm); 250 Show; 251 DisplayData('top'); 252 DisplayData('bottom'); 253 lstCheck.Items.Clear; 254 GraphPanel(true); 255 lstTypes.Hint := Patient.DFN; 256 BringToFront; 257 end; 258 finally 259 if GraphForm.btnClose.Tag = 1 then 260 begin 261 GraphFormActive := false; 262 GraphForm.Free; 263 GraphForm := nil; 264 end 265 else 266 GraphFormActive := true; 267 end; 268 end 269 else if GraphForm.btnClose.Tag = 1 then 270 Exit 271 else if GraphFormActive and (GraphForm.lstTypes.Hint = Patient.DFN) then 272 begin // displaying same patient 273 if Tag <> reportien then 274 with GraphForm do 275 begin // new report 276 pnlMain.Tag := reportien; 277 Initialize; 278 //DisplayData('top'); 279 //DisplayData('bottom'); 280 lstCheck.Items.Clear; 281 GraphPanel(true); 282 BringToFront; 283 end; 284 //no action 285 end 286 else if GraphForm.lstTypes.Hint = Patient.DFN then 287 begin // same patient, bring back graph 288 GraphPanel(true); 289 BringToFront; 290 GraphFormActive := true; 291 end 292 else 293 with GraphForm do 294 begin // new patient 295 pnlMain.Tag := reportien; 296 Initialize; 297 DisplayData('top'); 298 DisplayData('bottom'); 299 lstCheck.Items.Clear; 300 lstTypes.Hint := Patient.DFN; 301 GraphPanel(true); 302 BringToFront; 303 GraphFormActive := true; 304 end; 305 end; 306 307 procedure TfrmReports.GraphPanel(active: boolean); 308 var 309 aQualifier, aStartTime, aStopTime: string; 310 begin 311 if active then 312 begin 313 pnlLeftBottom.Height := pnlLeft.Height div 2; 314 pnlViews.Height := pnlLeftBottom.Height; 315 if pnlLeft.Height < 200 then 316 pnlTopViews.Height := 3 317 else 318 pnlTopViews.Height := 80; 319 lblQualifier.Visible := false; 320 lstQualifier.Visible := false; 321 pnlViews.Visible := true; 322 if lstDateRange.Tag = 0 then 323 begin 324 lstDateRange.Tag := 1; 325 aQualifier := PReportTreeObject(tvReports.Selected.Data)^.Qualifier; 326 aStartTime := Piece(aQualifier,';',1); 327 aStopTime := Piece(aQualifier,';',2); 328 GraphForm.cboDateRange.Items.Add( 329 '^' + aStartTime + ' to ' + aStopTime +'^^^' + aStartTime + ';' + aStopTime + 330 '^' + floattostr(strtofmdatetime(aStartTime)) + '^' + floattostr(strtofmdatetime(aStopTime))); 331 lstDateRange.Items := GraphForm.cboDateRange.Items; 332 //lstDateRange.ItemIndex := lstDateRange.Items.Count - 1; 333 lstDateRange.ItemIndex := lstDateRange.Items.Count - 2; //set to all results till fixed 334 lstDateRangeClick(self); 335 end; 336 pnlLeftBottom.Visible := true; 337 splitter1.Visible := true; 338 end 339 else 340 begin 341 lblQualifier.Visible := true; 342 lstQualifier.Visible := true; 343 pnlViews.Visible := false; 344 pnlLeftBottom.Height := lblHeaders.Height + lblQualifier.Height + 90; 345 end; 202 346 end; 203 347 … … 249 393 end; 250 394 end; 395 if (uReportType = 'G') and GraphFormActive then 396 with GraphForm do 397 begin 398 if (lvwItemsTop.SelCount < 1) and (lvwItemsBottom.SelCount < 1) then 399 begin 400 InfoBox('There are no items graphed.', 'No Items to Print', MB_OK); 401 Exit; 402 end 403 else 404 begin 405 mnuPopGraphPrintClick(mnuPopGraphPrint); 406 Exit; 407 end; 408 end; 251 409 if uQualifierType = QT_DATERANGE then 252 410 begin // = 2 … … 272 430 uUpdateStat := false; 273 431 ulvSelectOn := false; 274 uNoRemote := false;275 432 uListState := GetAdhocLookup(); 276 433 memText.SelStart := 0; … … 285 442 //the preferred method would be to use headers and footers 286 443 //so this is just an interim solution. 287 pnlLeftBottom.Visible := False; 444 if not GraphFormActive then 445 pnlLeftBottom.Visible := False; 288 446 if InitPage then 289 447 begin … … 325 483 begin 326 484 lstQualifier.Clear; 327 tvProcedures.Items.Clear; 485 tvProcedures.Items.Clear; 328 486 lblProcTypeMsg.Visible := FALSE; 329 487 lvReports.SmallImages := uEmptyImageList; … … 338 496 end; 339 497 CC_NOTIFICATION: ProcessNotifications; 340 end; 498 end; 341 499 end; 342 500 … … 373 531 uHTMLDoc := ''; 374 532 WebBrowser1.Navigate('about:blank'); 375 tvProcedures.Items.Clear; 533 tvProcedures.Items.Clear; 376 534 lblProcTypeMsg.Visible := FALSE; 377 535 lvReports.SmallImages := uEmptyImageList; … … 406 564 begin 407 565 if addgrandchild = true then 408 currentNode := tvReports.Items.AddChildObject(grandParentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,1 4)))566 currentNode := tvReports.Items.AddChildObject(grandParentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,15))) 409 567 else 410 568 if addchild = true then 411 569 begin 412 currentNode := tvReports.Items.AddChildObject(parentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,1 4)));570 currentNode := tvReports.Items.AddChildObject(parentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,15))); 413 571 addgrandchild := true; 414 572 grandParentNode := currentNode; … … 416 574 else 417 575 begin 418 currentNode := tvReports.Items.AddObject(currentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,1 4)));576 currentNode := tvReports.Items.AddObject(currentNode,Piece(x,'^',3),MakeReportTreeObject(Pieces(x,'^',2,15))); 419 577 parentNode := currentNode; 420 578 addchild := true; … … 425 583 begin 426 584 currentNode := tvReports.Items.AddObject(currentNode,Piece(x,'^',2),MakeReportTreeObject(x)); 427 //addchild := true;428 585 parentNode := currentNode; 429 586 end … … 460 617 aTmpAray: TStringList; 461 618 aColCtr, aCurCol, aCurRow, aColID: integer; 462 x, c,aSite: string;619 x,y,z,c,aSite: string; 463 620 ListItem: TListItem; 464 621 begin … … 466 623 aErr := 0; 467 624 ListItem := nil; 468 //RowObjects.Clear;469 625 case uQualifierType of 470 626 QT_HSCOMPONENT: … … 536 692 if piece(uColumns.Strings[aCurCol],'^',4) = '1' then 537 693 c := c + '...'; 538 ListItem.SubItems.Add(c); 694 z := piece(c,'^',1); 695 y := copy(c, (pos('^', c)), 9999); 696 if pos('^',y) > 0 then 697 begin 698 while pos('^',y) > 0 do 699 begin 700 y := copy(y, (pos('^', y)+1), 9999); 701 z := z + '^' + y; 702 end; 703 ListItem.SubItems.Add(z); 704 end 705 else 706 begin 707 ListItem.SubItems.Add(y); 708 end; 539 709 end; 540 710 RowObjects.Add(aSite, IntToStr(aCurRow) + ':' + IntToStr(aCurCol), uColumns.Strings[aCurCol], aTmpAray); … … 548 718 if aColID = aCurCol then 549 719 begin 550 aTmpAray.Add(piece(x,'^',2)); 720 z := ''; 721 y := piece(x,'^',2); 722 if length(y) > 0 then z := y; 723 y := copy(x, (pos('^', x)+1), 9999); 724 if pos('^',y) > 0 then 725 begin 726 while pos('^',y) > 0 do 727 begin 728 y := copy(y, (pos('^', y)+1), 9999); 729 z := z + '^' + y; 730 end; 731 aTmpAray.Add(z); 732 end 733 else 734 begin 735 aTmpAray.Add(y); 736 end; 551 737 continue; 552 738 end; … … 572 758 aCurCol := aColID; 573 759 Inc(aColCtr); 574 aTmpAray.Add(piece(x,'^',2)); 760 y := ''; 761 for k := 2 to 10 do 762 if length(piece(x,'^',k)) > 0 then 763 begin 764 if length(y) > 0 then y := y + '^' + piece(x,'^',k) 765 else y := y + piece(x,'^',k); 766 end; 767 aTmpAray.Add(y); 575 768 if aColCtr > 0 then 576 769 while aColCtr < aCurCol do … … 632 825 var 633 826 MoreID: String; //Restores MaxOcc value 634 aRemote : string;827 aRemote, aHDR: string; 635 828 i: integer; 636 829 begin … … 643 836 MoreID := ';' + Piece(uQualifier,';',3); 644 837 aRemote := piece(uRemoteType,'^',1); 838 aHDR := piece(uRemoteType,'^',7); 645 839 SetPiece(uRemoteType,'^',5,lstQualifier.ItemID); 646 840 uHSComponents.Clear; 647 841 uHSAll.Clear; 648 memText.Lines.Clear; 649 tvProcedures.Items.Clear; 650 lblProcTypeMsg.Visible := FALSE; 651 lvReports.SmallImages := uEmptyImageList; 652 lvReports.Items.Clear; 842 tvProcedures.Items.Clear; 843 lblProcTypeMsg.Visible := FALSE; 653 844 uHTMLDoc := ''; 654 845 if uReportType = 'H' then … … 675 866 TRemoteSite(RemoteSites.SiteList.Items[i]).ReportClear; 676 867 uRemoteCount := 0; 677 DisplayHeading(lstQualifier.ItemID + MoreID); 868 if aHDR = '1' then 869 DisplayHeading(lstQualifier.ItemID) 870 else 871 DisplayHeading(lstQualifier.ItemID + MoreID); 678 872 if lstQualifier.ItemID = 'ds' then 679 873 begin … … 728 922 StatusText('Retrieving ' + lblTitle.Caption + '...'); 729 923 Screen.Cursor := crHourGlass; 730 memText.Lines.Clear;731 924 uReportInstruction := #13#10 + 'Retrieving data...'; 732 925 memText.Lines.Add(uReportInstruction); … … 738 931 case uQualifierType of 739 932 QT_HSCOMPONENT: 740 begin // = 5 741 if (length(piece(uHState,';',2)) > 0) then //and (chkText.Checked = false) then 933 begin // = 5 934 lvReports.SmallImages := uEmptyImageList; 935 lvReports.Items.Clear; 936 memText.Lines.Clear; 937 RowObjects.Clear; 938 if ((aRemote = '1') or (aRemote = '2')) then 939 GoRemote(uRemoteReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState, aHDR); 940 if (length(piece(uHState,';',2)) > 0) then 742 941 begin 743 LoadReportText(uLocalReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState); 744 memText.Lines.Clear; 745 //memText.Lines.Assign(uLocalReportData); 746 RowObjects.Clear; 942 if not(aRemote = '2') then 943 LoadReportText(uLocalReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState); 747 944 LoadListView(uLocalReportData); 748 945 end 749 946 else 750 947 begin 751 if aRemote = '1'then948 if ((aRemote = '1') or (aRemote = '2')) then 752 949 ShowTabControl; 753 950 pnlRightMiddle.Visible := false; … … 764 961 end; 765 962 end; 766 if (aRemote = '1') and (uNoRemote = false) then767 GoRemote(uRemoteReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState);768 963 end; 769 964 QT_HSWPCOMPONENT: 770 965 begin // = 6 966 lvReports.SmallImages := uEmptyImageList; 967 lvReports.Items.Clear; 968 RowObjects.Clear; 969 memText.Lines.Clear; 970 if ((aRemote = '1') or (aRemote = '2')) then 971 begin 972 Screen.Cursor := crDefault; 973 GoRemote(uRemoteReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState, aHDR); 974 end; 771 975 if (length(piece(uHState,';',2)) > 0) then 772 976 begin 773 LoadReportText(uLocalReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState); 774 memText.Lines.Clear; 775 //memText.Lines.Assign(uLocalReportData); 776 RowObjects.Clear; 977 if not(aRemote = '2') then 978 LoadReportText(uLocalReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState); 777 979 LoadListView(uLocalReportData); 778 980 end 779 981 else 780 982 begin 781 if aRemote = '1'then983 if ((aRemote = '1') or (aRemote = '2')) then 782 984 ShowTabControl; 783 985 pnlRightMiddle.Visible := false; 784 LoadReportText(uLocalReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState); 785 if uLocalReportData.Count < 1 then 986 if not (aRemote = '2') then 786 987 begin 787 uReportInstruction := '<No Report Available>'; 788 memText.Lines.Add(uReportInstruction); 789 end 790 else 791 QuickCopy(uLocalReportData,memText); 792 end; 793 if (aRemote = '1') and (uNoRemote = false) then 794 begin 795 Screen.Cursor := crDefault; 796 GoRemote(uRemoteReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState); 988 LoadReportText(uLocalReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState); 989 if uLocalReportData.Count < 1 then 990 begin 991 uReportInstruction := '<No Report Available>'; 992 memText.Lines.Add(uReportInstruction); 993 end 994 else 995 QuickCopy(uLocalReportData,memText); 996 end; 797 997 end; 798 998 end … … 800 1000 begin 801 1001 Screen.Cursor := crDefault; 802 GoRemote(uRemoteReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState );803 if Pos('ECS',Piece(uRptID,':',1))>0 then 1002 GoRemote(uRemoteReportData, uRptID, lstQualifier.ItemID + MoreID, uReportRPC, uHState, aHDR); 1003 if Pos('ECS',Piece(uRptID,':',1))>0 then 804 1004 begin 805 1005 if Pos('OR_ECS1',uRptID)>0 then … … 951 1151 RowObjects := TRowObject.Create; 952 1152 uRemoteCount := 0; 1153 GraphFormActive := false; 953 1154 end; 954 1155 … … 969 1170 break; 970 1171 end; 971 //if not Found then i := -1;972 1172 end; 973 1173 … … 975 1175 976 1176 case Notifications.Followup of 977 NF_IMAGING_RESULTS, NF_ABNORMAL_IMAGING_RESULTS, NF_IMAGING_RESULTS_AMENDED: 1177 NF_IMAGING_RESULTS, NF_ABNORMAL_IMAGING_RESULTS, NF_IMAGING_RESULTS_AMENDED: 978 1178 begin 979 1179 tvReports.Selected := tvReports.Items[i]; … … 1095 1295 i,j,fail: integer; 1096 1296 r0,aSite: String; 1097 1297 aHDR, aID, aRet: String; 1098 1298 begin 1099 1299 inherited; … … 1111 1311 if piece(r0,'^',1) = '1' then 1112 1312 begin 1313 aHDR := piece(TRemoteSite(Items[i]).CurrentReportQuery, '^', 13); 1314 aID := piece(piece(TRemoteSite(Items[i]).CurrentReportQuery, '^', 2),':',1); 1315 if aHDR = '1' then 1316 begin 1317 ModifyHDRData(aRet, TRemoteSite(Items[i]).RemoteHandle ,aID); 1318 end; 1319 GetRemoteData(TRemoteSite(Items[i]).Data, TRemoteSite(Items[i]).RemoteHandle,Items[i]); 1113 1320 RemoteReports.Add(TRemoteSite(Items[i]).CurrentReportQuery, 1114 1321 TRemoteSite(Items[i]).RemoteHandle); 1115 GetRemoteData(TRemoteSite(Items[i]).Data,1116 TRemoteSite(Items[i]).RemoteHandle,Items[i]);1117 1322 TRemoteSite(Items[i]).RemoteHandle := ''; 1118 1323 TabControl1.OnChange(nil); 1119 if (length(piece(uHState,';',2)) > 0) then //and (chkText.Checked = false) then1324 if (length(piece(uHState,';',2)) > 0) then 1120 1325 begin 1121 1326 uRemoteReportData.Clear; 1122 1327 QuickCopy(TRemoteSite(Items[i]).Data,uRemoteReportData); 1123 1328 fail := 0; 1124 //LoadListView(uRemoteReportData);1125 1329 if uRemoteReportData.Count > 0 then 1126 1330 begin … … 1143 1347 begin 1144 1348 uRemoteCount := uRemoteCount + 1; 1145 if uRemoteCount > (90 * Count)then1349 if uRemoteCount > 90 then 1146 1350 begin 1147 1351 TRemoteSite(Items[i]).RemoteHandle := ''; … … 1279 1483 end; 1280 1484 1281 procedure TfrmReports.GoRemote(Dest: TStringList; AItem: string; AQualifier, ARpc: string; AHSTag: string );1485 procedure TfrmReports.GoRemote(Dest: TStringList; AItem: string; AQualifier, ARpc: string; AHSTag: string; AHDR: string); 1282 1486 var 1283 1487 i, j: integer; 1284 1488 LocalHandle, Query, Report: string; 1285 1489 HSType, DaysBack, ExamID, MaxOcc: string; 1286 Alpha, Omega : double;1490 Alpha, Omega, Trans: double; 1287 1491 begin 1288 1492 HSType := ''; … … 1291 1495 Alpha := 0; 1292 1496 Omega := 0; 1497 if UseVistaWeb then 1498 begin 1499 if AHDR = '1' then 1500 InfoBox('You must use VistaWeb to view this report. To use RDV Classic, change your default setting.', 1501 'Use VistaWeb for HDR data', MB_OK); 1502 Exit; 1503 end; 1504 if AHDR = '1' then 1505 begin 1506 if HDRActive = '0' then 1507 begin 1508 InfoBox('The HDR is currently inactive.' + CRLF + 'Unable to retrieve HDR data at this time.', 'HDR Error', MB_OK); 1509 Exit; 1510 end; 1511 if (Piece(AItem, ':', 1) = 'OR_VWAL') or (Piece(AItem, ':', 1) = 'OR_VWRX') then 1512 AQualifier := 'T-75000;T+75000;99999'; 1513 if (Piece(AItem, ':', 1) = 'OR_VWVS') and (CharAt(AQualifier, 1) = ';') then 1514 AQualifier := 'T-75000;T+75000;99999'; 1515 end; 1516 if CharAt(AQualifier, 1) = 'd' then 1517 begin 1518 DaysBack := Copy(AQualifier, 2, Length(AQualifier)); 1519 AQualifier := ('T-' + Piece(DaysBack,';',1) + ';T;' + Pieces(AQualifier,';',2,3)); 1520 DaysBack := ''; 1521 end; 1293 1522 if CharAt(AQualifier, 1) = 'T' then 1294 1523 begin 1524 if Piece(AQualifier,';',1) = 'T-0' then SetPiece(AQualifier,';',1,'T'); 1525 if (Piece(Aqualifier,';',1) = 'T') and (Piece(Aqualifier,';',2) = 'T') 1526 then SetPiece(AQualifier,';',2,'T+1'); 1295 1527 Alpha := StrToFMDateTime(Piece(AQualifier,';',1)); 1296 1528 Omega := StrToFMDateTime(Piece(AQualifier,';',2)); 1529 if Alpha > Omega then 1530 begin 1531 Trans := Omega; 1532 Omega := Alpha; 1533 Alpha := Trans; 1534 end; 1297 1535 MaxOcc := Piece(AQualifier,';',3); 1298 1536 SetPiece(AHSTag,';',4,MaxOcc); 1299 1537 end; 1300 if CharAt(AQualifier, 1) = 'd' then DaysBack := Copy(AQualifier, 2, Length(AQualifier));1301 1538 if CharAt(AQualifier, 1) = 'h' then HSType := Copy(AQualifier, 2, Length(AQualifier)); 1302 1539 if CharAt(AQualifier, 1) = 'i' then ExamID := Copy(AQualifier, 2, Length(AQualifier)); 1303 1540 with RemoteSites.SiteList do for i := 0 to Count - 1 do 1541 begin 1542 if (AHDR='1') and (LeftStr(TRemoteSite(Items[i]).SiteID, 5) = '200HD') then 1543 begin 1544 TRemoteSite(Items[i]).Selected := true; 1545 frmFrame.lstCIRNLocations.Checked[i+2] := true; 1546 end; 1304 1547 if TRemoteSite(Items[i]).Selected then 1305 1548 begin 1306 1549 TRemoteSite(Items[i]).ReportClear; 1550 if (LeftStr(TRemoteSite(Items[i]).SiteID, 5) = '200HD') and not(AHDR = '1') then 1551 begin 1552 TRemoteSite(Items[i]).QueryStatus := '1^Not Included'; 1553 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'NOT INCLUDED'); 1554 TabControl1.OnChange(nil); 1555 continue; 1556 end; 1557 if (AHDR = '1') and not(LeftStr(TRemoteSite(Items[i]).SiteID, 5) = '200HD') then 1558 begin 1559 TRemoteSite(Items[i]).QueryStatus := '1^Not Included'; 1560 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'NOT INCLUDED'); 1561 TabControl1.OnChange(nil); 1562 continue; 1563 end; 1307 1564 TRemoteSite(Items[i]).CurrentReportQuery := 'Report' + Patient.DFN + ';' 1308 1565 + Patient.ICN + '^' + AItem + '^^^' + ARpc + '^' + HSType + 1309 '^' + DaysBack + '^' + ExamID + '^' + DateToStr(Alpha) + '^' +1310 DateToStr(Omega) + '^' + TRemoteSite(Items[i]).SiteID + '^' + AHSTag;1566 '^' + DaysBack + '^' + ExamID + '^' + FloatToStr(Alpha) + '^' + 1567 FloatToStr(Omega) + '^' + TRemoteSite(Items[i]).SiteID + '^' + AHSTag + '^' + AHDR; 1311 1568 LocalHandle := ''; 1312 1569 Query := TRemoteSite(Items[i]).CurrentReportQuery; … … 1333 1590 else 1334 1591 begin 1335 RemoteQuery(Dest, AItem, HSType, Daysback, ExamID, Alpha, Omega, TRemoteSite(Items[i]).SiteID, ARpc, AHSTag); 1336 if Dest[0] = '' then 1592 if uDirect = '1' then 1337 1593 begin 1338 TRemoteSite(Items[i]).QueryStatus := '-1^Communication error'; 1339 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID,'Communication error'); 1594 StatusText('Retrieving reports from ' + TRemoteSite(Items[i]).SiteName + '...'); 1595 TRemoteSite(Items[i]).QueryStatus := '1^Direct Call'; 1596 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Direct Call'); 1597 DirectQuery(Dest, AItem, HSType, Daysback, ExamID, Alpha, Omega, TRemoteSite(Items[i]).SiteID, ARpc, AHSTag); 1598 if Copy(Dest[0],1,2) = '-1' then 1599 begin 1600 TRemoteSite(Items[i]).QueryStatus := '-1^Communication error'; 1601 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID,'Communication error'); 1602 end 1603 else 1604 begin 1605 QuickCopy(Dest,TRemoteSite(Items[i]).Data); 1606 TRemoteSite(Items[i]).RemoteHandle := ''; 1607 TRemoteSite(Items[i]).QueryStatus := '1^Done'; 1608 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'Done'); 1609 TabControl1.OnChange(nil); 1610 if (length(piece(uHState,';',2)) > 0) then 1611 LoadListView(TRemoteSite(Items[i]).Data); 1612 end; 1613 StatusText(''); 1340 1614 end 1341 1615 else 1342 1616 begin 1343 TRemoteSite(Items[i]).RemoteHandle := Dest[0]; 1344 TRemoteSite(Items[i]).QueryStatus := '0^initialization...'; 1345 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'initialization'); 1346 Timer1.Enabled := True; 1347 StatusText('Retrieving reports from ' 1348 + TRemoteSite(Items[i]).SiteName + '...'); 1617 RemoteQuery(Dest, AItem, HSType, Daysback, ExamID, Alpha, Omega, TRemoteSite(Items[i]).SiteID, ARpc, AHSTag); 1618 if Dest[0] = '' then 1619 begin 1620 TRemoteSite(Items[i]).QueryStatus := '-1^Communication error'; 1621 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID,'Communication error'); 1622 end 1623 else 1624 begin 1625 TRemoteSite(Items[i]).RemoteHandle := Dest[0]; 1626 TRemoteSite(Items[i]).QueryStatus := '0^initialization...'; 1627 UpdateRemoteStatus(TRemoteSite(Items[i]).SiteID, 'initialization'); 1628 Timer1.Enabled := True; 1629 StatusText('Retrieving reports from ' + TRemoteSite(Items[i]).SiteName + '...'); 1630 end; 1349 1631 end; 1350 1632 end; 1351 1633 end; 1634 end; 1352 1635 end; 1353 1636 … … 1377 1660 uEmptyImageList.Free; 1378 1661 uECSReport.Free; 1662 if GraphForm <> nil then GraphForm.Release; 1379 1663 end; 1380 1664 … … 1471 1755 aHeading, aReportType, aRPC, aQualifier, aStartTime, aStopTime, aMax, aRptCode, aRemote, aCategory, aSortOrder, aDaysBack, x: string; 1472 1756 aIFN: integer; 1473 aID, aHSTag, aRadParam, aColChange : string;1757 aID, aHSTag, aRadParam, aColChange, aDirect, aHDR, aQualifierID: string; 1474 1758 CurrentParentNode, CurrentNode: TTreeNode; 1475 1759 begin … … 1488 1772 aCategory := PReportTreeObject(tvReports.Selected.Data)^.Category; 1489 1773 aSortOrder := PReportTreeObject(tvReports.Selected.Data)^.SortOrder; 1490 aDaysBack := PReportTreeObject(tvReports.Selected.Data)^.MaxDaysBack;1774 aDaysBack := PReportTreeObject(tvReports.Selected.Data)^.MaxDaysBack; 1491 1775 aIFN := StrToIntDef(PReportTreeObject(tvReports.Selected.Data)^.IFN,0); 1776 aDirect := PReportTreeObject(tvReports.Selected.Data)^.Direct; 1777 aHDR := PReportTreeObject(tvReports.Selected.Data)^.HDR; 1492 1778 aStartTime := Piece(aQualifier,';',1); 1493 1779 aStopTime := Piece(aQualifier,';',2); 1494 1780 aMax := Piece(aQualifier,';',3); 1495 1781 aRptCode := Piece(aQualifier,';',4); 1782 aQualifierID:= ''; 1496 1783 if length(uColChange) > 0 then 1497 1784 begin … … 1514 1801 uReportRPC := aRPC; 1515 1802 uRptID := aID; 1803 uDirect := aDirect; 1516 1804 uReportType := aReportType; 1517 1805 uQualifier := aQualifier; 1518 1806 uSortOrder := aSortOrder; 1519 uRemoteType := aRemote + '^' + aReportType + '^' + IntToStr(aIFN) + '^' + aHeading + '^' + aRptCode + '^' + aDaysBack; 1520 //edtMax.Text := aMax; 1521 {if chkText.Checked = true then 1522 aHState := aHSTag 1523 else 1524 aHState := Pieces(aHSTag,';',1,2); } 1807 uRemoteType := aRemote + '^' + aReportType + '^' + IntToStr(aIFN) + '^' + aHeading + '^' + aRptCode + '^' + aDaysBack + '^' + aHDR; 1808 pnlRightTop.Height := lblTitle.Height; // see below 1525 1809 RedrawSuspend(tvReports.Handle); 1526 1810 RedrawSuspend(memText.Handle); … … 1530 1814 TabControl1.TabStop := false; 1531 1815 sptHorzRight.Visible := false; 1532 pnlRightTop.Height := lblTitle.Height; 1533 lblProcTypeMsg.Visible := FALSE; 1816 lblProcTypeMsg.Visible := FALSE; 1534 1817 pnlRightMiddle.Visible := false; 1535 pnlProcedures.Visible := FALSE; 1536 if aRemote = '1'then1818 pnlProcedures.Visible := FALSE; 1819 if (aRemote = '1') or (aRemote = '2') then 1537 1820 if not(uReportType = 'V') then 1538 1821 if TabControl1.Tabs.Count > 1 then … … 1543 1826 end; 1544 1827 StatusText(''); 1545 //**1546 1828 uHTMLDoc := ''; 1547 1829 WebBrowser1.Navigate('about:blank'); 1548 //**1549 1830 memText.Lines.Clear; 1550 1831 memText.Parent := pnlRightBottom; … … 1558 1839 lvReports.Columns.Clear; 1559 1840 uHSComponents.Clear; 1841 DisplayHeading(''); 1560 1842 if uReportType = 'H' then 1561 1843 begin 1562 1844 pnlRightMiddle.Visible := false; 1563 //lvReports.Visible := false;1564 1845 pnlRightBottom.Visible := true; 1565 1846 WebBrowser1.Visible := true; … … 1577 1858 RedrawSuspend(lvReports.Handle); 1578 1859 Items.BeginUpdate; 1579 //Align := alTop;1580 1860 ViewStyle := vsReport; 1581 1861 ColumnHeaders(uColumns, IntToStr(aIFN)); … … 1598 1878 else 1599 1879 uNewColumn.Width := ColumnHeaderWidth; //ColumnTextWidth for width of text 1600 if (i = 0) and (( aRemote <> '1') or (TabControl1.Tabs.Count < 2)) then1880 if (i = 0) and (((aRemote <> '2') and (aRemote <> '1')) or ((TabControl1.Tabs.Count < 2) and (not (aHDR = '1')))) then 1601 1881 uNewColumn.Width := 0; 1602 1882 end; … … 1641 1921 end; 1642 1922 Screen.Cursor := crHourGlass; 1923 if (GraphForm <> nil) and (aReportType <> 'G') then 1924 begin 1925 GraphForm.SendToBack; 1926 GraphPanel(false); 1927 GraphFormActive := false; 1928 end; 1929 if aReportType = 'G' then 1930 Graph(aIFN) 1931 else 1643 1932 if aReportType = 'M' then 1644 1933 begin … … 1652 1941 QT_OTHER: 1653 1942 begin // = 0 1943 memText.Lines.Clear; 1654 1944 If copy(aRptCode,1,2) = 'h0' then //HS Adhoc 1655 1945 begin … … 1666 1956 TRemoteSite(RemoteSites.SiteList[j]).LabClear; 1667 1957 end; 1668 memText.Clear;1669 1958 uHTMLDoc := ''; 1670 1959 if WebBrowser1.Visible = true then WebBrowser1.Navigate('about:blank'); … … 1692 1981 splitter1.Visible := false; 1693 1982 StatusText('Retrieving ' + tvReports.Selected.Text + '...'); 1694 GoRemote(uRemoteReportData, aID, aRptCode, aRPC, uHState );1983 GoRemote(uRemoteReportData, aID, aRptCode, aRPC, uHState, aHDR); 1695 1984 uReportInstruction := #13#10 + 'Retrieving data...'; 1696 1985 TabControl1.OnChange(nil); … … 1714 2003 begin 1715 2004 lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1716 uNoRemote := true; 2005 lvReports.SmallImages := uEmptyImageList; 2006 lvReports.Items.Clear; 1717 2007 lstQualifierClick(self); 1718 uNoRemote := false;1719 2008 end 1720 2009 else … … 1738 2027 ViewStyle := vsReport; 1739 2028 SmallImages := dmodShared.imgImages; 1740 CurrentParentNode := nil; 1741 CurrentNode := nil; 2029 CurrentParentNode := nil; 2030 CurrentNode := nil; 1742 2031 for i := 0 to uLocalReportData.Count - 1 do 1743 2032 begin … … 1754 2043 ListItem.SubItemImages[1] := IMG_NO_IMAGES; 1755 2044 end; 1756 LoadProceduresTreeView(uLocalReportData[i], CurrentParentNode, CurrentNode); 2045 LoadProceduresTreeView(uLocalReportData[i], CurrentParentNode, CurrentNode); 1757 2046 if CurrentNode <> nil then 1758 2047 PProcTreeObj(CurrentNode.Data)^.Associate := lvReports.Items.IndexOf(ListItem); 1759 2048 end; 1760 if tvProcedures.Items.Count > 0 then 2049 if tvProcedures.Items.Count > 0 then 1761 2050 tvProcedures.Selected := tvProcedures.Items.GetFirstNode; 1762 lblProcTypeMsg.Visible := TRUE; 1763 pnlRightTop.Height := lblTitle.Height + lblProcTypeMsg.Height; 2051 lblProcTypeMsg.Visible := TRUE; 2052 pnlRightTop.Height := lblTitle.Height + lblProcTypeMsg.Height; 1764 2053 pnlLeftBottom.Visible := FALSE; 1765 2054 pnlProcedures.Visible := TRUE; … … 1824 2113 StatusText('Retrieving ' + tvReports.Selected.Text + '...'); 1825 2114 uReportInstruction := #13#10 + 'Retrieving data...'; 2115 lvReports.SmallImages := uEmptyImageList; 2116 lvReports.Items.Clear; 2117 RowObjects.Clear; 2118 memText.Lines.Clear; 1826 2119 if (length(piece(aHSTag,';',2)) > 0) then 1827 2120 begin 1828 2121 if aCategory <> '0' then 1829 2122 begin 1830 1831 2123 ListReportDateRanges(lstQualifier.Items); 1832 if lstQualifier.ItemID = '' then 2124 aQualifierID := lstQualifier.ItemID; 2125 if aQualifierID = '' then 1833 2126 begin 1834 lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1835 uNoRemote := true; 2127 if aHDR = '1' then 2128 lstQualifier.ItemIndex := lstQualifier.Items.Add('T-75000' + ';' + 'T+75000' + '^' + 'T-75000' + ' to ' + 'T+75000') 2129 else 2130 if length(aStartTime) > 0 then lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1836 2131 lstQualifierClick(self); 1837 uNoRemote := false;1838 2132 end 1839 2133 else 1840 lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1841 2134 begin 2135 GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState, aHDR); 2136 if aHDR = '1' then 2137 lstQualifier.ItemIndex := lstQualifier.Items.Add('T-75000' + ';' + 'T+75000' + '^' + 'T-75000' + ' to ' + 'T+75000') 2138 else 2139 if length(aStartTime) > 0 then lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 2140 end; 1842 2141 lblQualifier.Caption := 'Date Range'; 1843 2142 pnlLeftBottom.Visible := true; … … 1846 2145 else 1847 2146 begin 1848 LoadReportText(uLocalReportData, aID, aQualifier, aRPC, uHState); 1849 memText.Lines.Clear; 1850 //memText.Lines.Assign(uLocalReportData); 1851 RowObjects.Clear; 1852 LoadListView(uLocalReportData); 2147 if not (aRemote = '2' ) then 2148 GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState, aHDR); 2149 begin 2150 LoadReportText(uLocalReportData, aID, aQualifier, aRPC, uHState); 2151 LoadListView(uLocalReportData); 2152 end; 1853 2153 end; 1854 2154 end 1855 2155 else 1856 2156 begin 1857 if aRemote = '1'then2157 if (aRemote = '1') or (aRemote = '2') then 1858 2158 if TabControl1.Tabs.Count > 1 then 1859 2159 ShowTabControl; 1860 2160 sptHorzRight.Visible := false; 1861 2161 pnlRightMiddle.Visible := false; 2162 GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState, aHDR); 1862 2163 LoadReportText(uLocalReportData, aID, aQualifier, aRPC, uHState); 1863 2164 if uLocalReportData.Count < 1 then … … 1871 2172 if aCategory <> '0' then 1872 2173 begin 1873 1874 2174 ListReportDateRanges(lstQualifier.Items); 1875 2175 if lstQualifier.ItemID = '' then 1876 2176 begin 1877 2177 lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1878 uNoRemote := true;1879 2178 lstQualifierClick(self); 1880 uNoRemote := false;1881 2179 end 1882 2180 else … … 1889 2187 else 1890 2188 begin 1891 memText.Lines.Clear;1892 //memText.Lines.Assign(uLocalReportData);1893 2189 if uLocalReportData.Count < 1 then 1894 2190 begin … … 1904 2200 end; 1905 2201 StatusText(''); 1906 GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState);1907 2202 end; 1908 2203 QT_HSWPCOMPONENT: … … 1914 2209 uReportInstruction := #13#10 + 'Retrieving data...'; 1915 2210 TabControl1.OnChange(nil); 2211 RowObjects.Clear; 2212 memText.Lines.Clear; 2213 lvReports.SmallImages := uEmptyImageList; 2214 lvReports.Items.Clear; 1916 2215 if (length(piece(aHSTag,';',2)) > 0) then 1917 2216 begin 1918 2217 if aCategory <> '0' then 1919 2218 begin 1920 1921 2219 ListReportDateRanges(lstQualifier.Items); 1922 if lstQualifier.ItemID = '' then 2220 aQualifierID := lstQualifier.ItemID; 2221 if aQualifierID = '' then 1923 2222 begin 1924 lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1925 uNoRemote := true; 2223 if aHDR = '1' then 2224 lstQualifier.ItemIndex := lstQualifier.Items.Add('T-75000' + ';' + 'T+75000' + '^' + 'T-75000' + ' to ' + 'T+75000') 2225 else 2226 if length(aStartTime) > 0 then lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1926 2227 lstQualifierClick(self); 1927 uNoRemote := false;1928 2228 end 1929 2229 else 1930 lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1931 2230 begin 2231 GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState, aHDR); 2232 if aHDR = '1' then 2233 lstQualifier.ItemIndex := lstQualifier.Items.Add('T-75000' + ';' + 'T+75000' + '^' + 'T-75000' + ' to ' + 'T+75000') 2234 else 2235 if length(aStartTime) > 0 then lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 2236 end; 1932 2237 lblQualifier.Caption := 'Date Range'; 1933 2238 pnlLeftBottom.Visible := true; … … 1936 2241 else 1937 2242 begin 1938 LoadReportText(uLocalReportData, aID, aQualifier, aRPC, uHState); 1939 memText.Lines.Clear; 1940 //memText.Lines.Assign(uLocalReportData); 1941 RowObjects.Clear; 1942 LoadListView(uLocalReportData); 2243 GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState, aHDR); 2244 if not (aRemote = '2' ) then 2245 begin 2246 LoadReportText(uLocalReportData, aID, aQualifier, aRPC, uHState); 2247 LoadListView(uLocalReportData); 2248 end; 1943 2249 end; 1944 2250 end 1945 2251 else 1946 2252 begin 1947 if aRemote = '1'then2253 if (aRemote = '1') or (aRemote = '2') then 1948 2254 ShowTabControl; 1949 2255 sptHorzRight.Visible := false; 1950 2256 pnlRightMiddle.Visible := false; 2257 GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState, aHDR); 1951 2258 LoadReportText(uLocalReportData, aID, aQualifier, aRPC, uHState); 1952 2259 if uLocalReportData.Count < 1 then … … 1965 2272 begin 1966 2273 lstQualifier.ItemIndex := lstQualifier.Items.Add(aStartTime + ';' + aStopTime + '^' + aStartTime + ' to ' + aStopTime); 1967 uNoRemote := true;1968 2274 lstQualifierClick(self); 1969 uNoRemote := false;1970 2275 end 1971 2276 else … … 1978 2283 else 1979 2284 begin 1980 memText.Lines.Clear;1981 //memText.Lines.Assign(uLocalReportData);1982 RowObjects.Clear;1983 2285 LoadListView(uLocalReportData); 1984 2286 end; 1985 2287 end; 1986 2288 StatusText(''); 1987 GoRemote(uRemoteReportData, aID, aQualifier, aRPC, uHState);1988 2289 end; 1989 2290 QT_PROCEDURES: … … 2056 2357 splitter1.Visible := false; 2057 2358 StatusText('Retrieving ' + tvReports.Selected.Text + '...'); 2058 GoRemote(uRemoteReportData, aID, aRptCode, aRPC, uHState );2359 GoRemote(uRemoteReportData, aID, aRptCode, aRPC, uHState, aHDR); 2059 2360 uReportInstruction := #13#10 + 'Retrieving data...'; 2060 2361 TabControl1.OnChange(nil); … … 2074 2375 end; 2075 2376 end; 2076 if aCategory <> '0' then 2077 DisplayHeading(uQualifier) 2078 else 2079 DisplayHeading(''); 2080 2377 if not (aHDR = '1') then 2378 if aCategory <> '0' then 2379 DisplayHeading(uQualifier) 2380 else 2381 DisplayHeading(''); 2382 2081 2383 SendMessage(tvReports.Handle, WM_HSCROLL, SB_THUMBTRACK, 0); 2082 2384 RedrawActivate(tvReports.Handle); … … 2086 2388 WebBrowser1.BringToFront; 2087 2389 end 2088 else 2390 else if not GraphFormActive then 2089 2391 begin 2090 2392 memText.Visible := true; … … 2092 2394 memText.BringToFront; 2093 2395 RedrawActivate(memText.Handle); 2396 end 2397 else 2398 begin 2399 GraphPanel(true); 2400 with GraphForm do 2401 begin 2402 lstDateRange.Items := cboDateRange.Items; 2403 lstDateRange.ItemIndex := cboDateRange.ItemIndex; 2404 ViewSelections; 2405 BringToFront; 2406 end; 2094 2407 end; 2095 2408 Screen.Cursor := crDefault; … … 2712 3025 end; 2713 3026 3027 procedure TfrmReports.chkDualViewsClick(Sender: TObject); 3028 begin 3029 inherited; 3030 if (GraphForm <> nil) and GraphFormActive then 3031 GraphForm.chkDualViews.Checked := chkDualViews.Checked; 3032 end; 3033 3034 procedure TfrmReports.btnChangeViewClick(Sender: TObject); 3035 begin 3036 inherited; 3037 if (GraphForm <> nil) and GraphFormActive then 3038 begin 3039 GraphForm.btnChangeSettingsClick(GraphForm); 3040 chkDualViews.Checked := GraphForm.chkDualViews.Checked; 3041 end; 3042 end; 3043 3044 procedure TfrmReports.btnGraphSelectionsClick(Sender: TObject); 3045 begin 3046 inherited; 3047 if (GraphForm <> nil) and GraphFormActive then 3048 begin 3049 GraphForm.btnGraphSelectionsClick(GraphForm); 3050 chkDualViews.Checked := GraphForm.chkDualViews.Checked; 3051 end; 3052 end; 3053 3054 procedure TfrmReports.lstDateRangeClick(Sender: TObject); 3055 begin 3056 inherited; 3057 if (GraphForm <> nil) then 3058 begin 3059 GraphForm.cboDateRange.ItemIndex := lstDateRange.ItemIndex; 3060 GraphForm.cboDateRangeChange(self); 3061 lstDateRange.Items.Assign(GraphForm.cboDateRange.Items); 3062 lstDateRange.ItemIndex := GraphForm.cboDateRange.ItemIndex; 3063 //Exit; 3064 end; 3065 end; 3066 3067 procedure TfrmReports.sptHorzMoved(Sender: TObject); 3068 begin 3069 inherited; 3070 pnlTopViews.Height := 80; 3071 end; 3072 2714 3073 end. -
cprs/branches/foia-cprs/CPRS-Chart/fReportsAdhocSubItem1.dfm
r459 r460 39 39 Height = 24 40 40 BevelOuter = bvNone 41 Caption = 'Display selected file entry earlier'42 41 TabOrder = 4 43 42 TabStop = True … … 74 73 Height = 24 75 74 BevelOuter = bvNone 76 Caption = 'Display selected file entry earlier'77 75 TabOrder = 5 78 76 TabStop = True … … 119 117 ListItemsOnly = False 120 118 LongList = True 119 LookupPiece = 0 121 120 MaxLength = 0 122 121 Pieces = '2' … … 127 126 OnKeyUp = ORComboBox2KeyUp 128 127 OnNeedData = ORComboBox2NeedData 128 CharsNeedMatch = 1 129 129 end 130 130 object ORListBox1: TORListBox -
cprs/branches/foia-cprs/CPRS-Chart/fReview.dfm
r459 r460 1 1 object frmReview: TfrmReview 2 Left = 2123 Top = 13 92 Left = 358 3 Top = 136 4 4 AutoScroll = False 5 5 BorderIcons = [biMaximize] 6 6 Caption = 'Review / Sign Changes' 7 ClientHeight = 5017 ClientHeight = 497 8 8 ClientWidth = 602 9 9 Color = clBtnFace … … 26 26 DesignSize = ( 27 27 602 28 501)28 497) 29 29 PixelsPerInch = 96 30 30 TextHeight = 13 … … 37 37 Visible = False 38 38 end 39 object lblSig: TStaticText40 Left = 841 Top = 13642 Width = 20543 Height = 1744 Caption = 'Signature will be Applied to Checked Items'45 TabOrder = 546 TabStop = True47 end48 39 object pnlSignature: TPanel 49 40 Left = 8 50 Top = 42 741 Top = 423 51 42 Width = 373 52 43 Height = 65 … … 74 65 object pnlOrderAction: TPanel 75 66 Left = 8 76 Top = 42 767 Top = 423 77 68 Width = 373 78 69 Height = 65 … … 157 148 object cmdOK: TButton 158 149 Left = 442 159 Top = 47 5150 Top = 471 160 151 Width = 72 161 152 Height = 21 … … 168 159 object cmdCancel: TButton 169 160 Left = 522 170 Top = 47 5161 Top = 471 171 162 Width = 72 172 163 Height = 21 … … 181 172 Top = 154 182 173 Width = 587 183 Height = 26 8174 Height = 264 184 175 OnClickCheck = lstReviewClickCheck 185 176 Anchors = [akLeft, akTop, akRight, akBottom] … … 204 195 Height = 129 205 196 Align = alTop 197 AutoScroll = False 198 AutoSize = True 206 199 ParentShowHint = False 207 200 ShowHint = True … … 209 202 Visible = False 210 203 inherited pnlRight: TPanel 211 Left = 3 53204 Left = 392 212 205 Height = 129 213 206 inherited lblCaption: TStaticText … … 289 282 end 290 283 inherited pnlSC: TPanel 291 Width = 3 53284 Width = 392 292 285 Height = 129 293 286 inherited lblSCDisplay: TLabel 294 Width = 3 53287 Width = 392 295 288 end 296 289 inherited memSCDisplay: TCaptionMemo 297 Width = 3 53290 Width = 392 298 291 Height = 112 299 292 end 300 293 end 294 end 295 object lblSig: TStaticText 296 Left = 8 297 Top = 136 298 Width = 205 299 Height = 17 300 Caption = 'Signature will be Applied to Checked Items' 301 TabOrder = 5 302 TabStop = True 301 303 end 302 304 object gbxDxLookup: TGroupBox … … 325 327 object Copy1: TMenuItem 326 328 Caption = '&Copy' 327 Enabled = False328 329 ShortCut = 16451 329 330 OnClick = Copy1Click … … 337 338 object Diagnosis1: TMenuItem 338 339 Caption = '&Diagnosis...' 339 Enabled = False340 340 ShortCut = 32836 341 341 OnClick = buDiagnosisClick -
cprs/branches/foia-cprs/CPRS-Chart/fReview.pas
r459 r460 97 97 procedure SetItemTextToState; 98 98 procedure FormatListForScreenReader; 99 99 100 public 100 101 procedure SetCheckBoxStatus(thisOrderID: string); … … 136 137 uses ORFn, rCore, fNotes, fConsults, fOrders, rOrders, Hash, fDCSumm, fOCSession, uOrders, 137 138 fSignItem, fOrdersPrint, fLkUpLocation, fFrame, uSignItems, fSurgery, 138 fBALocalDiagnoses, UBAConst, UBAMessages, fOrdersSign ;139 fBALocalDiagnoses, UBAConst, UBAMessages, fOrdersSign, fClinicWardMeds; 139 140 140 141 const … … 293 294 294 295 end; 295 // if Result then Changes.Clear; possibly clear changes here ?? 296 296 297 finally 297 298 Changes.OnRemove := nil; {**RV**} 299 frmReview.Release; 298 300 end; 299 301 end; … … 340 342 if BILLING_AWARE then 341 343 begin 342 UBAGlobals.ChangeItemOrderNum := C opy(ChangeItem.ID, 0, 8);344 UBAGlobals.ChangeItemOrderNum := ChangeItem.ID; // GE 2/21/2006 removed "Copy(ChangeItem.ID,0,8)" issue when sites have order number > 8 digits 343 345 // HDS00005025 344 346 … … 836 838 TC_SAVERR = 'Error Saving Order'; 837 839 var 838 i, idx, AType, theSts: Integer;840 i, idx, AType, PrintLoc, theSts: Integer; 839 841 SigSts, RelSts, Nature: Char; 840 842 ESCode, AnID, AnErrMsg: string; … … 842 844 OrderList: TStringList; 843 845 SaveCoPay: boolean; 844 DigSigErr, DigStoreErr : Boolean;846 DigSigErr, DigStoreErr, CryptoChecked: Boolean; 845 847 SigData, SigUser, SigDrugSch, SigDEA: string; 846 848 cSignature, cHashData, cCrlUrl, cErr: string; … … 884 886 ESCode := ''; 885 887 SaveCoPay := FALSE; 888 PrintLoc := 0; 886 889 if BILLING_AWARE then 887 890 begin … … 908 911 OrderList := TStringList.Create; 909 912 DigSigErr := True; 910 DigStoreErr := False; 911 if GetPKISite and GetPKIUse then 912 begin 913 try //PKI object creation 914 crypto := CoXuDigSigS.Create; 915 crypto.GetCSP; 916 StatusText(crypto.Reason); 917 DigSigErr := False; 918 except 919 on E: Exception do 920 begin 921 DigSigErr := True; 922 end; 923 end; 924 end; 913 CryptoChecked := False; 925 914 try 926 915 Nature := NO_PROVIDER; … … 993 982 OrderList.Add(ChangeItem.ID + U + SS_ONCHART + U + RS_RELEASE + U + NO_WRITTEN); 994 983 995 996 984 end; {with lstReview} 997 985 end; {OR_NOKEY, OR_CLERK, OR_NURSE, OR_STUDENT} … … 1011 999 SigSts := SS_ESIGNED; 1012 1000 RelSts := RS_RELEASE; 1001 if (OrderRequiresDigitalSignature(ChangeItem.ID)) and (CryptoChecked = false) 1002 and GetPKISite and GetPKIUse then 1003 begin 1004 Cryptochecked := true; 1005 try //PKI object creation 1006 crypto := CoXuDigSigS.Create; 1007 crypto.GetCSP; 1008 StatusText(crypto.Reason); 1009 DigSigErr := False; 1010 except 1011 on E: Exception do 1012 begin 1013 DigSigErr := True; 1014 end; 1015 end; 1016 end; 1013 1017 if (DigSigErr = false) and (OrderRequiresDigitalSignature(ChangeItem.ID)) 1014 1018 and (SigItems.OK2SaveSettings) then … … 1122 1126 else 1123 1127 begin 1124 InfoBox(TX_Order_Error, 'Review/Sign Orders', MB_OK); 1128 if BILLING_AWARE then 1129 InfoBox(TX_Order_Error, 'Review/Sign Orders', MB_OK) 1130 else 1131 InfoBox(TC_Order_Error, 'Review/Sign Orders', MB_OK); 1125 1132 Exit; 1126 1133 end … … 1137 1144 if (cmdOk.Caption = 'Sign') then 1138 1145 begin 1139 if Not BADxEntered then1146 if Not UBACore.BADxEntered then 1140 1147 begin 1141 SaveCoPay := FALSE;1142 1148 InfoBox(TX_NO_DX, TC_NO_DX, MB_OK); 1143 1149 Exit; … … 1156 1162 if OrderList.Count > 0 then 1157 1163 begin 1164 1165 //hds7591 Clinic/Ward movement. Nurse orders 1166 if (cmdOk.Caption = 'Sign') or (cmdOK.Caption = 'OK') and (not frmFrame.TimedOut) then 1167 begin 1168 if IsValidIMOLoc(uCore.TempEncounterLoc,Patient.DFN) then 1169 frmClinicWardMeds.ClinicOrWardLocation(OrderList, uCore.TempEncounterLoc,uCore.TempEncounterLocName, PrintLoc) 1170 else 1171 if (IsValidIMOLoc(Encounter.Location,Patient.DFN)) and ((frmClinicWardMeds.rpcIsPatientOnWard(patient.DFN)) and (Patient.Inpatient = false)) then 1172 frmClinicWardMeds.ClinicOrWardLocation(OrderList, Encounter.Location,Encounter.LocationName, PrintLoc); 1173 end; 1174 uCore.TempEncounterLoc := 0; 1175 uCore.TempEncounterLocName := ''; 1176 end; 1177 //hds7591 Clinic/Ward movement. 1178 1158 1179 if SaveCoPay then 1159 1180 SigItems.SaveSettings; // Save CoPay FIRST 1160 1181 SendOrders(OrderList, ESCode); {*KCM*} 1161 end; 1182 1162 1183 with OrderList do for i := 0 to Count - 1 do 1163 1184 begin … … 1183 1204 if theSts = 10 then OrderList.Delete(idx); //signed delayed order should not be printed. 1184 1205 end; 1185 PrintOrdersOnSignRelease(OrderList, Nature );1206 PrintOrdersOnSignRelease(OrderList, Nature, PrintLoc); 1186 1207 end; 1187 1208 StatusText(''); … … 1323 1344 if frmFrame.TimedOut then Exit; 1324 1345 //Billing Awareness 'flyover' hint includes Dx code(s) when Dx code(s) have been assigned to an order 1325 tempRec := TBADxRecord.Create;1326 1346 1327 1347 if Assigned(frmReview) then … … 1402 1422 UBAGlobals.PLFactorsIndexes.Clear; 1403 1423 1404 numSelected := 0;1405 1424 match := false; 1406 1425 allBlank := false; … … 1550 1569 thisOrderList.Add(thisChangeItem.ID); 1551 1570 // Returns True if All selected orders are N/A, Order selected are NON CIDC or DC'd 1552 if IsAllOrdersNA(thisOrderList) then1571 if uBACore.IsAllOrdersNA(thisOrderList) then 1553 1572 begin 1554 1573 Diagnosis1.Enabled := false; … … 1712 1731 end; 1713 1732 end; 1714 1715 //CopyActive := true; //CQ62251716 //Paste1.Enabled := true; //CQ62251717 1718 1733 end; 1719 1734 … … 1737 1752 if (frmReview.lstReview.Selected[i]) then 1738 1753 begin 1739 thisChangeItem := TChangeItem.Create;1740 thisChangeItem := nil;1741 1754 thisChangeItem := TChangeItem(lstReview.Items.Objects[i]); 1742 1755 … … 1756 1769 1757 1770 //*************************************************************** 1758 if (NOT UBACore.IsOrderBillable(fReview.targetOrderID) ) then// and 1759 // (NOT tempDxNodeExists(fReview.targetOrderID) )then // added to allow copy to NON CIDC consult orders that requires a DX. 1760 begin 1771 if (NOT UBACore.IsOrderBillable(fReview.targetOrderID) ) then 1772 begin 1761 1773 ShowMessage(BA_NA_PASTE_DISALLOWED); 1762 1774 fReview.targetOrderID := ''; … … 1768 1780 with newRec do 1769 1781 begin 1770 FOrderID := fReview.targetOrderID;1771 FBADxCode := CopyBuffer.FBADxCode;1772 FBASecDx1 := CopyBuffer.FBASecDx1;1773 FBASecDx2 := CopyBuffer.FBASecDx2;1774 FBASecDx3 := CopyBuffer.FBASecDx3;1782 FOrderID := fReview.targetOrderID; 1783 FBADxCode := CopyBuffer.FBADxCode; 1784 FBASecDx1 := CopyBuffer.FBASecDx1; 1785 FBASecDx2 := CopyBuffer.FBASecDx2; 1786 FBASecDx3 := CopyBuffer.FBASecDx3; 1775 1787 end; 1776 1788 … … 1796 1808 1797 1809 lstReview.Refresh; //Update grid to show pasted Dx/TF/CI 1798 { 1799 //CQ6225 1800 if CopyActive then 1801 begin 1802 Paste1.Enabled := false; 1803 CopyActive := false; 1804 end; 1805 //end CQ6225 1806 } 1810 1807 1811 end; 1808 1812 … … 1840 1844 begin 1841 1845 howMany := 0; 1842 thisItem := TChangeItem.Create; 1843 1846 1844 1847 for i := 0 to lstReview.Items.Count-1 do 1845 1848 begin … … 1958 1961 FRVTFHintWindowActive := False; 1959 1962 end; 1960 x := 0;1961 y := 0;1962 1963 1963 1964 FRVTFHintWindow := THintWindow.Create(frmReview); //(frmReview); … … 2033 2034 Y: Integer); 2034 2035 begin 2035 IF BILLING_AWARE then2036 // IF BILLING_AWARE then 2036 2037 if FRVTFHintWindowActive then 2037 2038 begin … … 2043 2044 procedure TfrmReview.FormMouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); 2044 2045 begin 2045 if BILLING_AWARE then2046 begin2047 2046 if FRVTFHintWindowActive then 2048 2047 begin … … 2051 2050 Application.ProcessMessages; 2052 2051 end; 2053 end;2054 2052 end; 2055 2053 … … 2061 2059 begin 2062 2060 //Abbreviated captions 2063 Label23.ShowHint := false;2064 StaticText1.ShowHint := false;2065 Label17.ShowHint := false;2066 Label15.ShowHint := false;2067 Label13.ShowHint := false;2068 Label11.ShowHint := false;2069 lblHNC.ShowHint := false;2061 Label23.ShowHint := false; 2062 StaticText1.ShowHint := false; 2063 Label17.ShowHint := false; 2064 Label15.ShowHint := false; 2065 Label13.ShowHint := false; 2066 Label11.ShowHint := false; 2067 lblHNC.ShowHint := false; 2070 2068 //Long captions 2071 Label24.ShowHint := false;2072 staticText4.ShowHint := false;2073 Label17.ShowHint := false;2074 Label18.ShowHint := false;2075 Label15.ShowHint := false;2076 Label16.ShowHint := false;2077 Label13.ShowHint := false;2078 Label14.ShowHint := false;2079 Label11.ShowHint := false;2080 Label12.ShowHint := false;2081 lblHNC.ShowHint := false;2082 lblHNC2.ShowHint := false;2069 Label24.ShowHint := false; 2070 staticText4.ShowHint := false; 2071 Label17.ShowHint := false; 2072 Label18.ShowHint := false; 2073 Label15.ShowHint := false; 2074 Label16.ShowHint := false; 2075 Label13.ShowHint := false; 2076 Label14.ShowHint := false; 2077 Label11.ShowHint := false; 2078 Label12.ShowHint := false; 2079 lblHNC.ShowHint := false; 2080 lblHNC2.ShowHint := false; 2083 2081 end; 2084 2082 end … … 2088 2086 begin 2089 2087 //Abbreviated captions 2090 Label23.ShowHint := true;2091 StaticText1.ShowHint := true;2092 Label17.ShowHint := true;2093 Label15.ShowHint := true;2094 Label13.ShowHint := true;2095 Label11.ShowHint := true;2096 lblHNC.ShowHint := true;2097 //Long captions2098 Label24.ShowHint := true;2099 staticText4.ShowHint := true;2100 Label17.ShowHint := true;2101 Label18.ShowHint := true;2102 Label15.ShowHint := true;2103 Label16.ShowHint := true;2104 Label13.ShowHint := true;2105 Label14.ShowHint := true;2106 Label11.ShowHint := true;2107 Label12.ShowHint := true;2108 lblHNC.ShowHint := true;2109 lblHNC2.ShowHint := true;2088 Label23.ShowHint := true; 2089 StaticText1.ShowHint := true; 2090 Label17.ShowHint := true; 2091 Label15.ShowHint := true; 2092 Label13.ShowHint := true; 2093 Label11.ShowHint := true; 2094 lblHNC.ShowHint := true; 2095 //Long captions 2096 Label24.ShowHint := true; 2097 staticText4.ShowHint := true; 2098 Label17.ShowHint := true; 2099 Label18.ShowHint := true; 2100 Label15.ShowHint := true; 2101 Label16.ShowHint := true; 2102 Label13.ShowHint := true; 2103 Label14.ShowHint := true; 2104 Label11.ShowHint := true; 2105 Label12.ShowHint := true; 2106 lblHNC.ShowHint := true; 2107 lblHNC2.ShowHint := true; 2110 2108 end; 2111 2109 end; 2112 2110 end; 2113 2111 2114 // determines if BA switch is on, user is provider and has orelse key2115 // is true, BA data is not mandatory.2116 2112 procedure TfrmReview.FormClose(Sender: TObject; var Action: TCloseAction); 2117 2113 begin 2118 if BILLING_AWARE then 2119 begin 2114 2120 2115 if FRVTFHintWindowActive then 2121 2116 begin … … 2125 2120 with fraCopay do 2126 2121 begin 2127 Label24.ShowHint := false;2128 staticText4.ShowHint := false;2129 Label18.ShowHint := false;2130 Label16.ShowHint := false;2131 Label14.ShowHint := false;2132 Label12.ShowHint := false;2133 lblHNC2.ShowHint := false;2122 Label24.ShowHint := false; 2123 staticText4.ShowHint := false; 2124 Label18.ShowHint := false; 2125 Label16.ShowHint := false; 2126 Label14.ShowHint := false; 2127 Label12.ShowHint := false; 2128 lblHNC2.ShowHint := false; 2134 2129 end; 2135 end;2136 2130 end; 2137 2131 … … 2164 2158 i : integer; 2165 2159 begin 2166 //The with statement below would cause access violations on other Delphi machines. 2167 { with lstReview do 2168 begin } 2169 //Must use fully qualifying path includeing the unit... very wierd! 2160 2170 2161 if fReview.frmReview.lstReview.Count < 1 then Exit; 2171 2162 for i := 0 to fReview.frmReview.lstReview.Count-1 do … … 2180 2171 if fReview.frmReview.lstReview.ItemIndex >= 0 then 2181 2172 fReview.frmReview.lstReview.Selected[fReview.frmReview.lstReview.ItemIndex] := True; 2182 // end;2183 2173 end; 2184 2174 … … 2192 2182 procedure TfrmReview.FormatListForScreenReader; 2193 2183 var 2194 ListStateOn : boolean; 2184 ListStateOn : longbool; 2185 Success: longbool; 2195 2186 begin 2196 2187 //Determine if a screen reader is currently being used. 2197 S ystemParametersInfo(SPI_GETSCREENREADER, 0, @ListStateOn,0);2198 if ListStateOn then2188 Success := SystemParametersInfo(SPI_GETSCREENREADER, 0, @ListStateOn,0); 2189 if Success and ListStateOn then 2199 2190 SetItemTextToState; 2200 2191 end; -
cprs/branches/foia-cprs/CPRS-Chart/fRptBox.dfm
r459 r460 1 1 object frmReportBox: TfrmReportBox 2 Left = 351 3 Top = 217 4 Width = 392 5 Height = 357 2 Left = 512 3 Top = 214 6 4 Anchors = [] 5 AutoScroll = False 7 6 BorderIcons = [biSystemMenu] 8 7 Caption = 'frmReportBox' 8 ClientHeight = 321 9 ClientWidth = 350 9 10 Color = clBtnFace 10 11 Font.Charset = ANSI_CHARSET … … 35 36 Left = 0 36 37 Top = 0 37 Width = 3 8438 Height = 30 938 Width = 350 39 Height = 300 39 40 Align = alClient 40 Anchors = []41 41 Color = clCream 42 42 Font.Charset = ANSI_CHARSET … … 56 56 object pnlButton: TPanel 57 57 Left = 0 58 Top = 30 959 Width = 3 8458 Top = 300 59 Width = 350 60 60 Height = 21 61 61 Align = alBottom … … 65 65 TabOrder = 1 66 66 DesignSize = ( 67 3 8467 350 68 68 21) 69 69 object cmdPrint: TButton 70 Left = 22270 Left = 191 71 71 Top = 0 72 72 Width = 75 … … 78 78 end 79 79 object cmdClose: TButton 80 Left = 30280 Left = 274 81 81 Top = 0 82 82 Width = 75 … … 91 91 end 92 92 object dlgPrintReport: TPrintDialog 93 Left = 14294 Top = 4 993 Left = 318 94 Top = 41 95 95 end 96 96 end -
cprs/branches/foia-cprs/CPRS-Chart/fRptBox.pas
r459 r460 29 29 30 30 uses 31 uCore, rCore, rReports, Printers ;31 uCore, rCore, rReports, Printers, rMisc; 32 32 33 33 {$R *.DFM} … … 79 79 BoundsRect := Rect; 80 80 ResizeAnchoredFormToFont(Result); 81 82 memReport.Align := alClient; //CQ6661 83 84 //CQ6889 - force Print & Close buttons to bottom right of form regardless of selected font size 85 cmdClose.Left := (pnlButton.Left+pnlButton.Width)-cmdClose.Width; 86 cmdPrint.Left := (cmdClose.Left-cmdPrint.Width)-1; 87 //end CQ6889 88 81 89 SetLength(BtnLeft, k); 82 90 for j := 0 to k - 1 do -
cprs/branches/foia-cprs/CPRS-Chart/fSurgery.dfm
r459 r460 1 1 inherited frmSurgery: TfrmSurgery 2 Left = 2443 Top = 1792 Left = 521 3 Top = 221 4 4 Width = 720 5 5 Height = 409 … … 423 423 end 424 424 end 425 object mnuViewInformation: TMenuItem 426 Caption = 'Information' 427 OnClick = mnuViewInformationClick 428 object mnuViewDemo: TMenuItem 429 Tag = 1 430 Caption = 'De&mographics...' 431 OnClick = ViewInfo 432 end 433 object mnuViewVisits: TMenuItem 434 Tag = 2 435 Caption = 'Visits/Pr&ovider...' 436 OnClick = ViewInfo 437 end 438 object mnuViewPrimaryCare: TMenuItem 439 Tag = 3 440 Caption = 'Primary &Care...' 441 OnClick = ViewInfo 442 end 443 object mnuViewMyHealtheVet: TMenuItem 444 Tag = 4 445 Caption = 'MyHealthe&Vet...' 446 OnClick = ViewInfo 447 end 448 object mnuInsurance: TMenuItem 449 Tag = 5 450 Caption = '&Insurance...' 451 OnClick = ViewInfo 452 end 453 object mnuViewFlags: TMenuItem 454 Tag = 6 455 Caption = '&Flags...' 456 OnClick = ViewInfo 457 end 458 object mnuViewRemoteData: TMenuItem 459 Tag = 7 460 Caption = 'Remote &Data...' 461 OnClick = ViewInfo 462 end 463 object mnuViewReminders: TMenuItem 464 Tag = 8 465 Caption = '&Reminders...' 466 Enabled = False 467 OnClick = ViewInfo 468 end 469 object mnuViewPostings: TMenuItem 470 Tag = 9 471 Caption = '&Postings...' 472 OnClick = ViewInfo 473 end 474 end 425 475 object Z3: TMenuItem 426 476 Caption = '-' -
cprs/branches/foia-cprs/CPRS-Chart/fSurgery.pas
r459 r460 131 131 popNoteMemoInsTemplate: TMenuItem; 132 132 popNoteMemoEncounter: TMenuItem; 133 mnuViewInformation: TMenuItem; 134 mnuViewDemo: TMenuItem; 135 mnuViewVisits: TMenuItem; 136 mnuViewPrimaryCare: TMenuItem; 137 mnuViewMyHealtheVet: TMenuItem; 138 mnuInsurance: TMenuItem; 139 mnuViewFlags: TMenuItem; 140 mnuViewReminders: TMenuItem; 141 mnuViewRemoteData: TMenuItem; 142 mnuViewPostings: TMenuItem; 133 143 procedure mnuChartTabClick(Sender: TObject); 134 144 procedure pnlRightResize(Sender: TObject); … … 196 206 procedure tvSurgeryAddition(Sender: TObject; Node: TTreeNode); 197 207 procedure tvSurgeryDeletion(Sender: TObject; Node: TTreeNode); 208 procedure ViewInfo(Sender: TObject); 209 procedure mnuViewInformationClick(Sender: TObject); 198 210 private 199 211 FEditingIndex: Integer; // index of note being currently edited … … 212 224 FDeleted: boolean; 213 225 procedure ClearEditControls; 214 procedure DoAutoSave ;226 procedure DoAutoSave(Suppress: integer = 1); 215 227 function GetTitleText(AnIndex: Integer): string; 216 228 procedure InsertAddendum; … … 832 844 begin 833 845 if Title > 0 then CurTitle := Title else CurTitle := DocType; 834 if AskCosignerForTitle(CurTitle, Author ) and (Cosigner <= 0) then Result := True;846 if AskCosignerForTitle(CurTitle, Author, DateTime) and (Cosigner <= 0) then Result := True; 835 847 end; 836 848 end; … … 1371 1383 end; 1372 1384 1373 procedure TfrmSurgery.DoAutoSave ;1385 procedure TfrmSurgery.DoAutoSave(Suppress: integer = 1); 1374 1386 var 1375 1387 ErrMsg: string; … … 1381 1393 timAutoSave.Enabled := False; 1382 1394 try 1383 SetText(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex), 1);1395 SetText(ErrMsg, memNewNote.Lines, lstNotes.GetIEN(EditingIndex), Suppress); 1384 1396 finally 1385 1397 timAutoSave.Enabled := True; … … 1755 1767 procedure TfrmSurgery.SaveSignItem(const ItemID, ESCode: string); 1756 1768 { saves and optionally signs a progress note or addendum } 1769 const 1770 SIG_COSIGN = 'COSIGNATURE'; 1771 SIG_SIGN = 'SIGNATURE'; 1757 1772 var 1758 1773 AnIndex, IEN, i: Integer; 1759 1774 Saved, ContinueSign: Boolean; {*RAB* 8/26/99} 1760 SignSts: TActionRec;1775 ActionSts, SignSts: TActionRec; 1761 1776 APCEObject: TPCEData; 1762 1777 OK: boolean; 1763 1778 ActionType, SignTitle: string; 1764 1779 begin 1765 1780 AnIndex := -1; … … 1786 1801 if Length(ESCode) > 0 then 1787 1802 begin 1788 if not NoteHasText(IEN) then 1803 if CosignDocument(IEN) then 1804 begin 1805 SignTitle := TX_COSIGN; 1806 ActionType := SIG_COSIGN; 1807 end else 1808 begin 1809 SignTitle := TX_SIGN; 1810 ActionType := SIG_SIGN; 1811 end; 1812 ActOnDocument(ActionSts, IEN, ActionType); 1813 if not ActionSts.Success then 1814 begin 1815 InfoBox(ActionSts.Reason, TX_IN_AUTH, MB_OK); 1816 ContinueSign := False; 1817 end 1818 else if not NoteHasText(IEN) then 1789 1819 begin 1790 1820 InfoBox(TX_EMPTY_NOTE1, TC_EMPTY_NOTE, MB_OK or MB_ICONERROR); … … 1929 1959 begin 1930 1960 inherited; 1931 DoAutoSave ;1961 DoAutoSave(0); 1932 1962 timAutoSave.Enabled := False; 1933 1963 try 1934 1964 SpellCheckForControl(memNewNote); 1935 1965 finally 1966 FChanged := True; 1967 DoAutoSave(0); 1936 1968 timAutoSave.Enabled := True; 1937 1969 end; … … 1941 1973 begin 1942 1974 inherited; 1943 DoAutoSave ;1975 DoAutoSave(0); 1944 1976 timAutoSave.Enabled := False; 1945 1977 try 1946 1978 GrammarCheckForControl(memNewNote); 1947 1979 finally 1980 FChanged := True; 1981 DoAutoSave(0); 1948 1982 timAutoSave.Enabled := True; 1949 1983 end; … … 2019 2053 SigAction: integer; 2020 2054 SavedDocID: string; 2055 ARefDate: TFMDateTime; 2021 2056 begin 2022 2057 inherited; … … 2051 2086 2052 2087 Exclusions := GetCurrentSigners(lstNotes.ItemIEN); 2053 SelectAdditionalSigners(Font.Size, lstNotes.ItemIEN, SigAction, Exclusions, SignerList, CT_NOTES); 2088 ARefDate := StrToFloat(Piece(lstNotes.Items[lstNotes.ItemIndex], U, 3)); 2089 SelectAdditionalSigners(Font.Size, lstNotes.ItemIEN, SigAction, Exclusions, SignerList, CT_NOTES, ARefDate); 2054 2090 with SignerList do 2055 2091 begin … … 2644 2680 end; 2645 2681 2682 procedure TfrmSurgery.ViewInfo(Sender: TObject); 2683 begin 2684 inherited; 2685 frmFrame.ViewInfo(Sender); 2686 end; 2687 2688 procedure TfrmSurgery.mnuViewInformationClick(Sender: TObject); 2689 begin 2690 inherited; 2691 mnuViewDemo.Enabled := frmFrame.pnlPatient.Enabled; 2692 mnuViewVisits.Enabled := frmFrame.pnlVisit.Enabled; 2693 mnuViewPrimaryCare.Enabled := frmFrame.pnlPrimaryCare.Enabled; 2694 mnuViewMyHealtheVet.Enabled := not (Copy(frmFrame.laMHV.Hint, 1, 2) = 'No'); 2695 mnuInsurance.Enabled := not (Copy(frmFrame.laVAA2.Hint, 1, 2) = 'No'); 2696 mnuViewFlags.Enabled := frmFrame.lblFlag.Enabled; 2697 mnuViewRemoteData.Enabled := frmFrame.lblCirn.Enabled; 2698 mnuViewReminders.Enabled := frmFrame.pnlReminders.Enabled; 2699 mnuViewPostings.Enabled := frmFrame.pnlPostings.Enabled; 2700 end; 2701 2646 2702 initialization 2647 2703 uPCEEdit := TPCEData.Create; -
cprs/branches/foia-cprs/CPRS-Chart/fVitals.pas
r459 r460 37 37 Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, 38 38 StdCtrls, ORCtrls, TeEngine, Series, TeeProcs, Chart, ExtCtrls, Grids, 39 Buttons, ORNet, ORFn, uConst, Menus, ORDtTmRng; {*KCM*} 39 Buttons, ORNet, ORFn, uConst, Menus, ORDtTmRng 40 , ComCtrls 41 , uVitals 42 ; {*KCM*} 40 43 41 44 type … … 114 117 end; 115 118 119 116 120 var 117 121 frmVitals: TfrmVitals; … … 120 124 121 125 procedure SelectVital(FontSize:integer; idx: integer); 122 procedure SelectVitals( FontSize: Integer);126 procedure SelectVitals(VitalType: String); 123 127 function VitalsGrid(const patient: string; date1, date2: TFMDateTime; restrictdates: integer; tests: TStrings): TStrings; //*DFN* 124 128 function VitalsMemo(const patient: string; date1, date2: TFMDateTime; tests: TStrings): TStrings; //*DFN* … … 127 131 128 132 uses fCover, uCore, rCore, fVit, fFrame, fEncnt, fVisit, fRptBox, rReports, 129 uAccessibleStringGrid ;133 uAccessibleStringGrid, uInit; 130 134 131 135 const … … 157 161 end; 158 162 159 163 function getVitalsStartDate : String; 164 begin 165 result := ''; 166 if Patient.Inpatient then 167 result := FormatDateTime('mm/dd/yy',Now - 7) 168 else 169 result := FormatDateTime('mm/dd/yy',IncMonth(Now,-6)); 170 end; 171 172 procedure SelectVitals(VitalType: String); 173 var 174 VLPtVitals : TGMV_VitalsViewForm; 175 GMV_FName, 176 GMV_LibName: String; 177 begin 178 { Availble Forms: 179 GMV_FName :='GMV_VitalsEnterDLG'; 180 GMV_FName :='GMV_VitalsEnterForm'; 181 GMV_FName :='GMV_VitalsViewForm'; 182 GMV_FName :='GMV_VitalsViewDLG'; 183 } 184 GMV_FName :='GMV_VitalsViewDLG'; 185 GMV_LibName :='GMV_VitalsViewEnter.dll'; 186 GMV_LibName := GetProgramFilesPath + SHARE_DIR + GMV_LibName; 187 VitalsDLLHandle := LoadLibrary(PChar(GMV_LibName)); 188 // UpdateTimeOutInterval(5000); 189 if VitalsDLLHandle <> 0 then 190 begin 191 @VLPtVitals := GetProcAddress(VitalsDLLHandle,PChar(GMV_FName)); 192 if assigned(VLPtVitals) then 193 VLPtVitals(RPCBrokerV,Patient.DFN,FloatToStr(Encounter.Location), 194 getVitalsStartDate(),FormatDateTime('mm/dd/yy',Now), 195 GMV_APP_SIGNATURE, 196 GMV_CONTEXT,GMV_CONTEXT, 197 Patient.Name, 198 frmFrame.lblPtSSN.Caption + ' ' + frmFrame.lblPtAge.Caption, 199 Encounter.LocationName +U+ VitalType) 200 else 201 MessageDLG('Can''t find function "'+GMV_FName+'".',mtError,[mbok],0); 202 end 203 else 204 MessageDLG('Can''t find library "'+GMV_LibName+'".',mtError,[mbok],0); 205 @VLPtVitals := nil; 206 FreeLibrary(VitalsDLLHandle); 207 if DLLForceClose then 208 frmFrame.Close; // Fix for CQ: 7535 209 end; 210 211 (* 160 212 procedure SelectVitals(FontSize: Integer); 161 213 var … … 209 261 end; 210 262 end; 211 263 *) 212 264 procedure TfrmVitals.VGrid(griddata: TStrings); 213 265 var … … 249 301 function VitalsGrid(const patient: string; date1, date2: TFMDateTime; restrictdates: integer; tests: TStrings): TStrings; //*DFN* 250 302 begin 251 CallV(' ORQQVI1 GRID', [patient, date1, date2, restrictdates, tests]);303 CallV('GMV ORQQVI1 GRID', [patient, date1, date2, restrictdates, tests]); 252 304 Result := RPCBrokerV.Results; 253 305 end; … … 255 307 function VitalsMemo(const patient: string; date1, date2: TFMDateTime; tests: TStrings): TStrings; //*DFN* 256 308 begin 257 CallV(' ORQQVI1 DETAIL', [patient, date1, date2, 0, tests]);309 CallV('GMV ORQQVI1 DETAIL', [patient, date1, date2, 0, tests]); 258 310 Result := RPCBrokerV.Results; 259 311 end; -
cprs/branches/foia-cprs/CPRS-Chart/mCoPayDesc.dfm
r459 r460 4 4 Width = 598 5 5 Height = 132 6 Anchors = [akLeft, akTop, akRight] 7 AutoScroll = False 8 AutoSize = True 6 9 ParentShowHint = False 7 10 ShowHint = True 8 11 TabOrder = 0 9 12 object pnlRight: TPanel 10 Left = 3 4913 Left = 388 11 14 Top = 0 12 Width = 2 4915 Width = 210 13 16 Height = 132 14 17 Align = alRight … … 18 21 Left = 0 19 22 Top = 0 20 Width = 2 4923 Width = 210 21 24 Height = 3 22 25 Align = alTop … … 26 29 Left = 0 27 30 Top = 3 28 Width = 2 4931 Width = 210 29 32 Height = 14 30 33 Align = alTop 31 Alignment = taCenter32 34 AutoSize = False 33 35 Caption = 'Outpatient Medications Related To:' … … 37 39 Left = 0 38 40 Top = 17 39 Width = 2 4941 Width = 210 40 42 Height = 115 41 43 Align = alClient … … 46 48 Left = 2 47 49 Top = 2 48 Width = 2 4550 Width = 206 49 51 Height = 3 50 52 Align = alTop … … 54 56 Left = 2 55 57 Top = 95 56 Width = 2 4558 Width = 206 57 59 Height = 15 58 60 Align = alTop … … 61 63 TabOrder = 6 62 64 object lblHNC2: TORStaticText 63 Left = 6064 Top = 0 65 Width = 1 8265 Left = 50 66 Top = 0 67 Width = 150 66 68 Height = 15 67 69 AutoSize = False … … 75 77 Width = 50 76 78 Height = 15 79 Alignment = taRightJustify 77 80 AutoSize = False 78 81 Caption = ' HNC - ' … … 84 87 Left = 2 85 88 Top = 80 86 Width = 2 4589 Width = 206 87 90 Height = 15 88 91 Align = alTop … … 91 94 TabOrder = 5 92 95 object Label12: TORStaticText 93 Left = 6094 Top = 0 95 Width = 1 8396 Left = 50 97 Top = 0 98 Width = 150 96 99 Height = 15 97 100 AutoSize = False … … 105 108 Width = 50 106 109 Height = 15 107 AutoSize = False 108 Caption = ' MST -' 110 Alignment = taRightJustify 111 AutoSize = False 112 Caption = ' MST - ' 109 113 TabOrder = 0 110 114 TabStop = True … … 114 118 Left = 2 115 119 Top = 65 116 Width = 2 45120 Width = 206 117 121 Height = 15 118 122 Align = alTop … … 121 125 TabOrder = 4 122 126 object Label14: TORStaticText 123 Left = 60124 Top = 0 125 Width = 1 82127 Left = 50 128 Top = 0 129 Width = 150 126 130 Height = 15 127 131 AutoSize = False … … 135 139 Width = 50 136 140 Height = 15 141 Alignment = taRightJustify 137 142 AutoSize = False 138 143 Caption = ' EC - ' … … 144 149 Left = 2 145 150 Top = 50 146 Width = 2 45151 Width = 206 147 152 Height = 15 148 153 Align = alTop … … 151 156 TabOrder = 3 152 157 object Label16: TORStaticText 153 Left = 60154 Top = 0 155 Width = 1 82158 Left = 50 159 Top = 0 160 Width = 150 156 161 Height = 15 157 162 AutoSize = False … … 165 170 Width = 50 166 171 Height = 15 172 Alignment = taRightJustify 167 173 AutoSize = False 168 174 Caption = ' IR - ' … … 174 180 Left = 2 175 181 Top = 35 176 Width = 2 45182 Width = 206 177 183 Height = 15 178 184 Align = alTop … … 181 187 TabOrder = 2 182 188 object Label18: TORStaticText 183 Left = 60184 Top = 0 185 Width = 1 82189 Left = 50 190 Top = 0 191 Width = 150 186 192 Height = 15 187 193 AutoSize = False … … 195 201 Width = 50 196 202 Height = 15 203 Alignment = taRightJustify 197 204 AutoSize = False 198 205 Caption = ' AO - ' … … 204 211 Left = 2 205 212 Top = 5 206 Width = 2 45213 Width = 206 207 214 Height = 15 208 215 Align = alTop … … 211 218 TabOrder = 0 212 219 object Label24: TORStaticText 213 Left = 60214 Top = 0 215 Width = 1 82220 Left = 50 221 Top = 0 222 Width = 150 216 223 Height = 15 217 224 AutoSize = False … … 225 232 Width = 50 226 233 Height = 17 227 AutoSize = False 228 Caption = ' SC -' 234 Alignment = taRightJustify 235 AutoSize = False 236 Caption = ' SC - ' 229 237 TabOrder = 0 230 238 TabStop = True … … 234 242 Left = 2 235 243 Top = 20 236 Width = 2 45244 Width = 206 237 245 Height = 15 238 246 Align = alTop … … 241 249 TabOrder = 1 242 250 object StaticText4: TORStaticText 243 Left = 60244 Top = 0 245 Width = 1 82251 Left = 50 252 Top = 0 253 Width = 150 246 254 Height = 15 247 255 AutoSize = False … … 255 263 Width = 50 256 264 Height = 15 265 Alignment = taRightJustify 257 266 AutoSize = False 258 267 Caption = ' CV - ' … … 266 275 Left = 0 267 276 Top = 0 268 Width = 3 49277 Width = 388 269 278 Height = 132 270 279 Align = alClient … … 274 283 Left = 0 275 284 Top = 0 276 Width = 3 49285 Width = 388 277 286 Height = 17 278 287 Align = alTop … … 284 293 Left = 0 285 294 Top = 17 286 Width = 3 49295 Width = 388 287 296 Height = 115 288 297 Align = alClient -
cprs/branches/foia-cprs/CPRS-Chart/rCore.pas
r459 r460 98 98 { General calls } 99 99 100 function GetProgramFilesPath: String; 100 101 function ExternalName(IEN: Int64; FileNumber: Double): string; 101 102 function PersonHasKey(APerson: Int64; const AKey: string): Boolean; … … 133 134 procedure RenewAlert(XQAID: string); 134 135 function GetSortMethod: string; 135 procedure SetSortMethod(Sort: string );136 procedure SetSortMethod(Sort: string; Direction: string); 136 137 137 138 { Patient List calls } … … 198 199 function HasRemoteData(const DFN: string; var ALocations: TStringList): Boolean; 199 200 function CheckHL7TCPLink: Boolean; 201 function UseVistaWeb: Boolean; 202 function GetVistaWebAddress(value: string): string; 203 procedure ChangeVistaWebParam(value: string); 200 204 201 205 implementation 202 206 203 uses Hash, uCore ;207 uses Hash, uCore, ShlObj, Windows; 204 208 205 209 var … … 303 307 304 308 { General calls } 309 310 function GetProgramFilesPath: String; 311 Const 312 CSIDL_PROGRAM_FILES = $0026; 313 var 314 Path: array[0..Max_Path] of Char; 315 begin 316 Path := ''; 317 SHGetSpecialFolderPath(0,Path,CSIDL_PROGRAM_FILES,false); 318 Result := Path; 319 end; 305 320 306 321 function ExternalName(IEN: Int64; FileNumber: Double): string; … … 507 522 end; 508 523 509 procedure SetSortMethod(Sort: string );524 procedure SetSortMethod(Sort: string; Direction: string); 510 525 // Sets alert sort method for user 511 526 begin 512 CallV('ORWORB SETSORT', [Sort ]);527 CallV('ORWORB SETSORT', [Sort, Direction]); 513 528 end; 514 529 … … 612 627 a pointer to RPCBrokerV.Results, so the data must be used BEFORE the next broker call!} 613 628 begin 614 CallV('ORWU NEWPERS', [StartFrom, Direction, '', '', True]); //TRUE = return all active and inactive users629 CallV('ORWU NEWPERS', [StartFrom, Direction, '', '', '', True]); //TRUE = return all active and inactive users 615 630 MixedCaseList(RPCBrokerV.Results); 616 631 Result := RPCBrokerV.Results; … … 1244 1259 end; 1245 1260 1261 function UseVistaWeb: Boolean; 1262 begin; 1263 CallV('ORWCIRN VISTAWEB',[nil]); 1264 result := RPCBrokerV.Results[0] = '1'; 1265 end; 1266 1267 function GetVistaWebAddress(value: string): string; 1268 begin 1269 CallV('ORWCIRN WEBADDR', [value]); 1270 result := RPCBrokerV.Results[0]; 1271 end; 1272 1273 procedure ChangeVistaWebParam(value: string); 1274 begin 1275 CallV('ORWCIRN WEBCH',[value]); 1276 end; 1277 1246 1278 function GetDefaultPrinter(DUZ: Int64; Location: integer): string; 1247 1279 begin -
cprs/branches/foia-cprs/CPRS-Chart/rCover.pas
r459 r460 156 156 Src[i] := x; 157 157 end; 158 if (Piece(Src[i], U, 5)='C') then // Clin Meds 159 begin 160 MarkForDelete := False; // always display non-VA meds 161 x := Src[i]; 162 SetPiece(x, U, 2, 'Clin Meds ' + Piece(x, U, 2)); 163 Src[i] := x; 164 end; 158 165 // clear non-active meds (SHOULD THIS INCLUDE PENDING ORDERS?) 159 166 if MedStatusGroup(Piece(Src[i], U, 4)) = MED_NONACTIVE then MarkForDelete := True; -
cprs/branches/foia-cprs/CPRS-Chart/rMeds.pas
r459 r460 35 35 procedure Refill(AnOrderID, PickUpAt: string); 36 36 function IsFirstDoseNowOrder(OrderID: string): boolean; 37 function GetMedStatus(MedID: TStringList): boolean; 37 38 38 39 implementation … … 96 97 if NonVAMed then 97 98 Instruct := 'Non-VA ' + Instruct; 98 IVFluid := Piece(x, U, 1) = ' IV';99 IVFluid := Piece(x, U, 1) = '~IV'; 99 100 SrvSeq := 0; 100 101 LastFill := MakeFMDateTime(Piece(x, U, 11)); … … 135 136 AMed: TMedListRec; 136 137 begin 138 //Check for CQ 9814 this should prevent an M error is DFn is not defined. 139 if patient=nil then exit; 140 if patient.DFN='' then exit; 137 141 ClinMeds := TList.Create; //IMO new 138 142 tmpInPtMeds := TList.Create; //IMO new … … 176 180 OutPtMeds.Sort(ByStatusThenStop); 177 181 NonVAMeds.Sort(ByStatusThenStop); 182 if Assigned(ClinMeds) then FreeAndNil(ClinMeds); 183 if Assigned(tmpInPtMeds) then FreeAndNil(tmpInPtMeds); 178 184 end; 179 185 … … 201 207 end; 202 208 209 function GetMedStatus(MedID: TStringList): boolean; 210 begin 211 Result := SCallV('ORWDX1 STCHANGE',[Patient.DFN, MedID])= '1'; 212 end; 213 203 214 end. -
cprs/branches/foia-cprs/CPRS-Chart/rMisc.pas
r459 r460 36 36 function ServerHasPatch(const x: string): Boolean; 37 37 function ServerVersion(const Option, VerClient: string): string; 38 function PackageVersion(const Namespace: string): string; 38 39 39 40 procedure SaveUserBounds(AControl: TControl); … … 111 112 with RPCBrokerV do 112 113 begin 114 ClearParameters := True; 113 115 RemoteProcedure := 'XWB GET VARIABLE VALUE'; 114 116 Param[0].Value := x; … … 127 129 begin 128 130 Result := sCallV('ORWU VERSRV', [Option, VerClient]); 131 end; 132 133 function PackageVersion(const Namespace: string): string; 134 begin 135 Result := sCallV('ORWU VERSION', [Namespace]); 129 136 end; 130 137 -
cprs/branches/foia-cprs/CPRS-Chart/rReminders.pas
r459 r460 40 40 function GetCategoryItems(CatIEN: integer): TStrings; 41 41 function GetAllRemindersAndCategories: TStrings; 42 function VerifyMentalHealthTestComplete(TestName, Answers: string): String; 43 42 44 43 45 implementation … … 140 142 141 143 function GetDialogInfo(IEN: string; RemIEN: boolean): TStrings; 142 Var 143 ver: string; 144 145 begin 146 ver:=sCallV('ORQQPXRM CHECK REM VERSION', []); 147 if pos('2',ver)>0 then 148 begin 144 begin 149 145 if RemIEN then 150 146 CallV('ORQQPXRM REMINDER DIALOG', [IEN, Patient.DFN]) … … 152 148 CallV('PXRM REMINDER DIALOG (TIU)', [IEN, Patient.DFN]); 153 149 Result := RPCBrokerV.Results; 154 end155 else156 begin157 if RemIEN then158 CallV('ORQQPXRM REMINDER DIALOG', [IEN])159 else160 CallV('PXRM REMINDER DIALOG (TIU)', [IEN]);161 Result := RPCBrokerV.Results;162 end;163 150 end; 164 151 … … 422 409 end; 423 410 411 function VerifyMentalHealthTestComplete(TestName, Answers: string): String; 412 413 begin 414 CallV('ORQQPXRM MHV', [Patient.DFN, TestName, Answers]); 415 if RPCBrokerV.Results[0]='2' then 416 begin 417 Result := '2'+ U; 418 EXIT; 419 end; 420 if RPCBrokerV.Results[0] = '1' then 421 begin 422 Result := '1' + U; 423 EXIT; 424 end; 425 if RPCBrokerV.Results[0] = '0' then 426 begin 427 Result := '0' + U + RPCBrokerV.Results[1]; 428 EXIT; 429 end; 430 end; 431 424 432 initialization 425 433 -
cprs/branches/foia-cprs/CPRS-Chart/rReports.pas
r459 r460 24 24 procedure RemoteQuery(Dest: TStrings; AReportType: string; AHSType, ADaysback, 25 25 AExamID: string; Alpha, AOmega: Double; ASite, ARemoteRPC, AHSTag: String); 26 procedure DirectQuery(Dest: TStrings; AReportType: string; AHSType, ADaysback, 27 AExamID: string; Alpha, AOmega: Double; ASite, ARemoteRPC, AHSTag: String); 26 28 function ReportQualifierType(ReportType: Integer): Integer; 27 29 function ImagingParams: String; 30 function AutoRDV: String; 31 function HDRActive: String; 28 32 procedure PrintReportsToDevice(AReport: string; const Qualifier, Patient, 29 33 ADevice: string; var ErrMsg: string; aComponents: TStringlist; … … 52 56 procedure SetAdhocLookup(aLookup: integer); 53 57 procedure GetRemoteData(Dest: TStrings; aHandle: string; aItem: PChar); 58 procedure ModifyHDRData(Dest: string; aHandle: string; aID: string); 54 59 procedure PrintVReports(Dest, ADevice, AHeader: string; AReport: TStringList); 55 60 … … 157 162 LoadTree; 158 163 end; 159 for i := 0 to uTree.Count - 1 do Dest.Add(Pieces(uTree[i], '^', 1, 1 4));164 for i := 0 to uTree.Count - 1 do Dest.Add(Pieces(uTree[i], '^', 1, 15)); 160 165 end; 161 166 … … 292 297 var 293 298 HSType, DaysBack, ExamID, MaxOcc, AReport, x: string; 294 Alpha, Omega : double;299 Alpha, Omega, Trans: double; 295 300 begin 296 301 HSType := ''; … … 303 308 Alpha := StrToFMDateTime(Piece(Qualifier,';',1)); 304 309 Omega := StrToFMDateTime(Piece(Qualifier,';',2)); 310 if Alpha > Omega then 311 begin 312 Trans := Omega; 313 Omega := Alpha; 314 Alpha := Trans; 315 end; 305 316 MaxOcc := Piece(Qualifier,';',3); 306 317 SetPiece(AHSTag,';',4,MaxOcc); … … 346 357 end; 347 358 359 procedure DirectQuery(Dest: TStrings; AReportType: string; AHSType, ADaysback, 360 AExamID: string; Alpha, AOmega: Double; ASite, ARemoteRPC, AHSTag: String); 361 var 362 AReport: string; 363 begin 364 AReport := AReportType + ';1' + '~' + AHSTag; 365 if length(AHSType) > 0 then 366 AHSType := piece(AHSType,':',1) + ';' + piece(AHSType,':',2); //format for backward compatibility 367 CallV('XWB DIRECT RPC', [ASite, ARemoteRPC, 0, Patient.DFN + ';' + Patient.ICN, 368 AReport, AHSType, ADaysBack, AExamID, Alpha, AOmega]); 369 QuickCopy(RPCBrokerV.Results,Dest); 370 end; 371 348 372 function ReportQualifierType(ReportType: Integer): Integer; 349 373 var … … 359 383 begin 360 384 Result := sCallV('ORWTPD GETIMG',[nil]); 385 end; 386 387 function AutoRDV: String; 388 begin 389 Result := sCallV('ORWCIRN AUTORDV', [nil]); 390 end; 391 392 function HDRActive: String; 393 begin 394 Result := sCallV('ORWCIRN HDRON', [nil]); 361 395 end; 362 396 … … 740 774 end; 741 775 776 procedure ModifyHDRData(Dest: string; aHandle: string; aID: string); 777 begin 778 CallV('ORWRP4 HDR MODIFY', [aHandle, aID]); 779 end; 780 742 781 procedure PrintBitmap(Canvas: TCanvas; DestRect: TRect; Bitmap: TBitmap); 743 782 var -
cprs/branches/foia-cprs/CPRS-Chart/rTIU.pas
r459 r460 4 4 5 5 uses SysUtils, Classes, ORNet, ORFn, rCore, uCore, uConst, TRPCB, uTIU; 6 7 type 8 TPatchInstalled = record 9 PatchInstalled: boolean; 10 PatchChecked: boolean; 11 end; 6 12 7 13 { Progress Note Titles } … … 10 16 procedure ResetNoteTitles; 11 17 function IsConsultTitle(TitleIEN: Integer): Boolean; 18 function IsPRFTitle(TitleIEN: Integer): Boolean; 12 19 function IsClinProcTitle(TitleIEN: Integer): Boolean; 13 20 procedure ListNoteTitlesShort(Dest: TStrings); … … 20 27 function AskCosignerForNotes: Boolean; 21 28 function AskCosignerForDocument(ADocument: Integer; AnAuthor: Int64): Boolean; 22 function AskCosignerForTitle(ATitle: integer; AnAuthor: Int64 ): Boolean;29 function AskCosignerForTitle(ATitle: integer; AnAuthor: Int64; ADate: TFMDateTime): Boolean; 23 30 function AskSubjectForNotes: Boolean; 24 function CanCosign(ATitle, ADocType: integer; AUser: Int64 ): Boolean;31 function CanCosign(ATitle, ADocType: integer; AUser: Int64; ADate: TFMDateTime): Boolean; 25 32 function CanChangeCosigner(IEN: integer): boolean; 26 33 procedure DefaultCosigner(var IEN: Int64; var Name: string); … … 93 100 function UserInactive(EIN: String): boolean; 94 101 102 //Miscellaneous 103 function TIUPatch175Installed: boolean; 104 95 105 const 96 106 CLS_PROGRESS_NOTES = 3; 97 107 98 108 implementation 109 110 uses rMisc; 99 111 100 112 var … … 103 115 uNoteTitles: TNoteTitles; 104 116 uTIUPrefs: TTIUPrefs; 117 uPatch175Installed: TPatchInstalled; 105 118 106 119 … … 153 166 if TitleIEN <= 0 then Exit; 154 167 Result := sCallV('TIU IS THIS A CONSULT?', [TitleIEN]) = '1'; 168 end; 169 170 function IsPRFTitle(TitleIEN: Integer): Boolean; 171 begin 172 Result := False; 173 if TitleIEN <= 0 then Exit; 174 Result := sCallV('TIU ISPRF', [TitleIEN]) = '1'; 155 175 end; 156 176 … … 238 258 end; 239 259 240 function AskCosignerForTitle(ATitle: integer; AnAuthor: Int64 ): Boolean;260 function AskCosignerForTitle(ATitle: integer; AnAuthor: Int64; ADate: TFMDateTime): Boolean; 241 261 { returns TRUE if a cosignature is required for a document title and author } 242 262 begin 243 Result := Piece(sCallV('TIU REQUIRES COSIGNATURE', [ATitle, 0, AnAuthor]), U, 1) = '1'; 263 if TIUPatch175Installed then 264 Result := Piece(sCallV('TIU REQUIRES COSIGNATURE', [ATitle, 0, AnAuthor, ADate]), U, 1) = '1' 265 else 266 Result := Piece(sCallV('TIU REQUIRES COSIGNATURE', [ATitle, 0, AnAuthor]), U, 1) = '1'; 244 267 end; 245 268 … … 258 281 end; 259 282 260 function CanCosign(ATitle, ADocType: integer; AUser: Int64 ): Boolean;283 function CanCosign(ATitle, ADocType: integer; AUser: Int64; ADate: TFMDateTime): Boolean; 261 284 begin 262 285 if ATitle > 0 then ADocType := 0; 263 Result := Piece(sCallV('TIU REQUIRES COSIGNATURE', [ATitle, ADocType, AUser]), U, 1) <> '1'; 286 if TIUPatch175Installed and (ADocType = 0) then 287 Result := Piece(sCallV('TIU REQUIRES COSIGNATURE', [ATitle, ADocType, AUser, ADate]), U, 1) <> '1' 288 else 289 Result := Piece(sCallV('TIU REQUIRES COSIGNATURE', [ATitle, ADocType, AUser]), U, 1) <> '1'; 264 290 end; 265 291 … … 1016 1042 function IDNotesInstalled: boolean; 1017 1043 begin 1018 Result := True; 1044 Result := True; // old patch check no longer called 1019 1045 end; 1020 1046 … … 1123 1149 end; 1124 1150 1151 function TIUPatch175Installed: boolean; 1152 begin 1153 with uPatch175Installed do 1154 if not PatchChecked then 1155 begin 1156 PatchInstalled := ServerHasPatch('TIU*1.0*175'); 1157 PatchChecked := True; 1158 end; 1159 Result := uPatch175Installed.PatchInstalled; 1160 end; 1161 1125 1162 function NoteHasText(NoteIEN: integer): boolean; 1126 1163 begin 1127 1164 Result := (StrToIntDef(sCallV('ORWTIU CHKTXT', [NoteIEN]), 0) > 0); 1128 1165 end; 1166 1129 1167 1130 1168 initialization -
cprs/branches/foia-cprs/CPRS-Chart/uConst.pas
r459 r460 211 211 NF_STAT_RESULTS = 44; 212 212 NF_DNR_EXPIRING = 45; 213 NF_MEDICATIONS_EXPIRING 213 NF_MEDICATIONS_EXPIRING_INPT = 47; 214 214 NF_UNVERIFIED_MEDICATION_ORDER = 48; 215 215 NF_NEW_ORDER = 50; … … 226 226 NF_IMAGING_REQUEST_CHANGED = 67; 227 227 NF_LAB_THRESHOLD_EXCEEDED = 68; 228 NF_MAMMOGRAM_RESULTS = 69; 229 NF_PAP_SMEAR_RESULTS = 70; 230 NF_ANATOMIC_PATHOLOGY_RESULTS = 71; 231 NF_MEDICATIONS_EXPIRING_OUTPT = 72; 228 232 NF_DCSUMM_UNSIGNED_NOTE = 901; 229 233 NF_CONSULT_UNSIGNED_NOTE = 902; … … 263 267 NC_BY_DATE = 5; // Note context - signed notes by date range 264 268 NC_CUSTOM = 6; // Note Context - custom view 269 //Text Search CQ: HDS00002856 270 NC_SEARCHTEXT = 7; // Note Content - search for text 265 271 266 272 { Surgery View Contexts } … … 343 349 PKG_CONSULTS = 'GMR(123,'; 344 350 PKG_SURGERY = 'SRF('; 351 PKG_PRF = 'PRF'; 345 352 346 353 { New Person Filters } -
cprs/branches/foia-cprs/CPRS-Chart/uCore.pas
r459 r460 343 343 RPCName : String; //Associated RPC 344 344 IFN : String; //IFN of report in file 101.24 345 HDR : String; //HDR is source of data if = 1 345 346 end; 346 347 … … 355 356 HasFlag: boolean; 356 357 FlagList: TStringList; 358 //hds7591 Clinic/Ward movement. 359 TempEncounterLoc: Integer; // used to Save Encounter Location when user selected "Review Sign Changes" from "File" 360 TempEncounterLocName: string; // since in the path PatientRefresh is done prior to checking if patient has been admitted while entering OPT orders. 357 361 358 362 procedure NotifyOtherApps(const AppEvent, AppData: string); … … 501 505 if(not uNotifyAppsActive) then exit; 502 506 if Application.MainForm = nil then Exit; 507 if User = nil then exit; 503 508 if not User.FNotifyAppsWM then Exit; 504 509 // register the message with windows to get a unique message number (if not already registered) … … 1510 1515 i: Integer; 1511 1516 begin 1512 ChangeList := nil;1513 1517 ChangeList := FOrders; 1514 1518 if ChangeList <> nil then with ChangeList do -
cprs/branches/foia-cprs/CPRS-Chart/uDocTree.pas
r459 r460 247 247 248 248 procedure MakeBold(ANode: TORTreeNode); 249 var 250 LookingForAddenda: boolean; 249 251 begin 252 LookingForAddenda := (Pos('ADDENDUM', UpperCase(CurrentContext.Keyword)) > 0); 250 253 with ANode do 251 254 begin … … 253 256 if Parent <> nil then 254 257 begin 255 Parent.Expand(False); 258 if (ImageIndex <> IMG_ADDENDUM) or ((ImageIndex = IMG_ADDENDUM) and LookingForAddenda) then 259 Parent.Expand(False); 256 260 if Parent.Parent <> nil then 257 261 begin 258 Parent.Parent.Expand(False); 262 if (Parent.ImageIndex <> IMG_ADDENDUM) or ((Parent.ImageIndex = IMG_ADDENDUM) and LookingForAddenda) then 263 Parent.Parent.Expand(False); 259 264 if Parent.Parent.Parent <> nil then 260 Parent.Parent.Parent.Expand(False); 265 if (Parent.Parent.ImageIndex <> IMG_ADDENDUM) or ((Parent.Parent.ImageIndex = IMG_ADDENDUM) and LookingForAddenda) then 266 Parent.Parent.Parent.Expand(False); 261 267 end; 262 268 end; -
cprs/branches/foia-cprs/CPRS-Chart/uOrPtf.pas
r459 r460 22 22 23 23 procedure HasActiveFlg(var FlagList: TStringList; var HasFlag: boolean; const PTDFN: string); 24 function GetCatIFlag(var FlagArr: TStrings): integer;24 function TriggerPRFPopUp(PTDFN: String): boolean; 25 25 procedure GetActiveFlg(FlagInfo: TStrings; const PTDFN, FlagRecordID: string); 26 26 procedure ClearFlag; … … 40 40 end; 41 41 42 function GetCatIFlag(var FlagArr: TStrings): integer;42 function TriggerPRFPopUp(PTDFN: String): boolean; 43 43 begin 44 Result := 0; 45 CallV('ORPRF HASCAT1',[nil]); 46 if RPCBrokerV.Results.Count < 1 then 47 Exit; 48 Result := StrToIntDef(Piece(RPCBrokerV.Results[0],'^',2),0); 44 CallV('ORPRF TRIGGER POPUP',[PTDFN]); 45 Result := RPCBrokerV.Results[0] = '1'; 49 46 RPCBrokerV.Results.Delete(0); 50 FlagArr.Assign(RPCBrokerV.Results);51 47 end; 52 48 -
cprs/branches/foia-cprs/CPRS-Chart/uProbs.pas
r459 r460 134 134 fFieldList:TstringList; {list of fields by name and class (TKeyVal or TComment)} 135 135 fFilerObj:TstringList; 136 fCmtIsXHTML: boolean; 137 fCmtNoEditReason: string; 136 138 Procedure LoadField(Fldrec:TKeyVal;Id:String;name:string); 137 139 Procedure CreateFields; … … 223 225 property AltFilerObject:TstringList read GetAltFilerObject; 224 226 property PIFN:string read fPIFN write fPIFN; 227 property CmtIsXHTML: boolean read fCmtIsXHTML; 228 property CmtNoEditReason: string read fCmtNoEditReason; 225 229 end; 226 230 … … 580 584 var 581 585 i,j:integer; 582 cv :string;586 cv, noedit:string; 583 587 co:TComment; 584 588 first:boolean; … … 591 595 begin 592 596 if first then {the first line is just a counter} 593 first := false 597 begin 598 first := false; 599 // 'NEWþ10,0þ-1^These notes are now in XHTML format and must be modified via CPRS-R.' 600 noedit := Piece(fNewRec[i], v, 3); 601 if Piece(noedit, U, 1) = '-1' then 602 begin 603 fCmtIsXHTML := TRUE; 604 fCmtNoEditReason := Piece(noedit, U, 2); 605 end 606 else 607 begin 608 fCmtIsXHTML := FALSE; 609 fCmtNoEditReason := ''; 610 end; 611 end 594 612 else 595 613 begin -
cprs/branches/foia-cprs/CPRS-Chart/uReminders.pas
r459 r460 20 20 FNoResolve: boolean; 21 21 FWHReviewIEN: string; // AGP CHANGE 23.13 Allow for multiple processing of WH Review of Result Reminders 22 FRemWipe: integer; 22 23 protected 23 24 function GetIEN: string; virtual; … … 48 49 property DlgData: string read FDlgData; //AGP Change 24.8 49 50 property WHReviewIEN: string read FWHReviewIEN write FWHReviewIEN; //AGP CHANGE 23.13 51 property RemWipe: integer read FRemWipe write FRemWipe; 50 52 end; 51 53 … … 99 101 FMSTPrompt: TRemPrompt; 100 102 FWHPrintDevice, FWHResultChk, FWHResultNot: String; 101 //FRemWHNotPurpose: TStrings;103 FVitalDateTime: TFMDateTime; //AGP Changes 26.1 102 104 protected 103 105 procedure Check4ChildrenSharedPrompts; … … 156 158 property WHResultChk: String read FWHResultChk write FWHResultChk; 157 159 property WHResultNot: String read FWHResultNot write FWHResultNot; 158 //property RemWHNotPurpose: TStrings read FRemWHNotPurpose write FRemWHNotPurpose;160 property VitalDateTime: TFMDateTime read FVitalDateTime write FVitalDateTime; 159 161 end; 160 162 … … 170 172 FPCERoot: TRemPCERoot; 171 173 FParent: TRemDlgElement; 172 FRec3: string; 174 FRec3: string; 173 175 FActiveDates: TStringList; //Active dates for finding items. (rectype 3) 174 176 // FRoot: string; … … 219 221 FMonthReq: boolean; 220 222 FPrintNow: String; 223 FMHTestComplete: integer; 221 224 protected 222 225 function RemDataActive(RData: TRemData; EncDt: TFMDateTime):Boolean; … … 292 295 NotPurposeValue: string; 293 296 WHRemPrint: string; 297 InitialRemindersLoaded: boolean = FALSE; 294 298 295 299 const … … 298 302 RemPriorityText: array[1..3] of string = ('High','','Low'); 299 303 ClinMaintText = 'Clinical Maintenance'; 300 InitialRemindersLoaded: boolean = FALSE;301 304 302 305 dtUnknown = TRemDataType(-1); … … 432 435 433 436 uses rCore, uCore, rReminders, fRptBox, uConst, fReminderDialog, fNotes, rMisc, 434 fMHTest, rPCE, rTemplates, dShared, uTemplateFields, fIconLegend, fReminderTree ;437 fMHTest, rPCE, rTemplates, dShared, uTemplateFields, fIconLegend, fReminderTree, uInit; 435 438 436 439 type … … 896 899 begin 897 900 Sts := Piece(Data, U, 6); 898 if(Sts = '0') or (Sts = '1') then 901 //if(Sts = '0') or (Sts = '1') then 902 if(Sts = '0') or (Sts = '1') or (Sts = '3') or (Sts = '4') then //AGP Error change 26.8 899 903 begin 900 904 Result := TRUE; … … 1086 1090 begin 1087 1091 Tmp := Piece(Data, U, 6); 1088 if(Tmp = '1') then iidx := 2 1092 //if(Tmp = '1') then iidx := 2 1093 if (Tmp = '3') or (Tmp = '4') or (Tmp = '1') then iidx :=2 //AGP ERROR CHANGE 26.8 1089 1094 else if(Tmp = '0') then iidx := 3 1090 1095 else … … 1334 1339 if(NewStatus = '1') then Msg := 'Due' 1335 1340 else if(NewStatus = '0') then Msg := 'Applicable' 1341 else if(NewStatus = '3') then Msg := 'Error' //AGP Error code change 26.8 1342 else if (NewStatus = '4') then Msg := 'CNBD' //AGP Error code change 26.8 1336 1343 else Msg := 'Not Applicable'; 1337 1344 Msg := RName + ' is ' + Msg + '.'; … … 1829 1836 Data := RemCode + EvaluatedReminders[i]; 1830 1837 Tmp := Piece(Data,U,6); 1831 if(Tmp = '1') then Add2Tree(rfDue, DueCatID) 1838 // if(Tmp = '1') then Add2Tree(rfDue, DueCatID) 1839 if(Tmp = '1') or (Tmp = '3') or (Tmp = '4') then Add2Tree(rfDue, DueCatID) //AGP Error code change 26.8 1832 1840 else if(Tmp = '0') then Add2Tree(rfApplicable, ApplCatID) 1833 1841 else Add2Tree(rfNotApplicable, NotApplCatID); … … 2390 2398 begin 2391 2399 TempSL := GetDlgSL; 2400 if Piece(TempSL[0],U,2)='1' then 2401 begin 2402 Self.RemWipe := 1; 2403 end; 2392 2404 idx := -1; 2393 2405 repeat … … 2919 2931 2920 2932 begin 2921 Tmp := Piece(FRec1, U, 4);2922 if(Tmp = 'D') then Result := etDisplayOnly2923 else if(Tmp = 'T') then Result := etTaxonomy2924 else Result := etCheckBox;2933 Tmp := Piece(FRec1, U, 4); 2934 if(Tmp = 'D') then Result := etDisplayOnly 2935 else if(Tmp = 'T') then Result := etTaxonomy 2936 else Result := etCheckBox; 2925 2937 end; 2926 2938 … … 3013 3025 dt := Code2DataType(piece(TempSL[idx], U, r3Type)); 3014 3026 if(dt <> dtUnknown) and ((dt <> dtOrder) or 3015 (CharAt(piece(TempSL[idx], U, 11),1) in ['D', 'Q', 'M', 'O' ])) and3027 (CharAt(piece(TempSL[idx], U, 11),1) in ['D', 'Q', 'M', 'O', 'A'])) and //AGP change 26.10 for allergy orders 3016 3028 ((dt <> dtMentalHealthTest) or MHTestsOK) then 3017 3029 begin … … 3542 3554 DoLbl := Prompt.Required; 3543 3555 case pt of 3544 ptComment, ptQuantity , ptSkinReading:3556 ptComment, ptQuantity: 3545 3557 begin 3546 3558 Ctrl.edt := TEdit.Create(AOwner); … … 3578 3590 ptVisitLocation, ptLevelUnderstanding, 3579 3591 ptSeries, ptReaction, ptExamResults, 3580 ptLevelSeverity, ptSkinResults :3592 ptLevelSeverity, ptSkinResults, ptSkinReading: 3581 3593 begin 3582 3594 Ctrl.cbo := TORComboBox.Create(AOwner); … … 3585 3597 Ctrl.cbo.Style := orcsDropDown; 3586 3598 Ctrl.cbo.Pieces := '2'; 3587 Ctrl.cbo.Tag := ComboPromptTags[pt]; 3588 PCELoadORCombo(Ctrl.cbo, MinX, MaxX); 3599 if pt = ptSkinReading then 3600 begin 3601 Ctrl.cbo.Pieces := '1'; 3602 Ctrl.cbo.Items.Add(''); 3603 for j := 0 to 50 do Ctrl.cbo.Items.Add(inttostr(j)); 3604 GetComboBoxMinMax(Ctrl.cbo,MinX, MaxX); 3605 end; 3606 if pt <> ptSkinReading then 3607 begin 3608 Ctrl.cbo.Tag := ComboPromptTags[pt]; 3609 PCELoadORCombo(Ctrl.cbo, MinX, MaxX); 3610 end; 3589 3611 if pt = ptVisitLocation then 3590 3612 begin … … 4184 4206 end; 4185 4207 end; 4186 4208 4187 4209 begin 4188 4210 Result := nil; … … 4398 4420 end; 4399 4421 4400 { TODO -oLori -cNext : TRemDlgElement.AddText }4401 4422 procedure TRemDlgElement.AddText(Lst: TStrings); 4402 4423 var … … 4655 4676 (not Prompt.Forced) then 4656 4677 begin 4657 if (Pt = ptMHTest) and ( (Prompt.FValue = '') or (pos('X',Prompt.FValue)>0)) then4678 if (Pt = ptMHTest) and (Prompt.FMHTestComplete = 2) then 4658 4679 begin 4659 if Prompt.FValue = '' then 4660 WordWrap('MH test '+ Piece(Prompt.FData.FRec3,U,8) + ' not done',List,65,6); 4661 if pos('X',Prompt.FValue)>0 then 4662 WordWrap('You are missing one or more responses in the MH test '+ 4663 Piece(Prompt.FData.FRec3,U,8),List,65,6); 4664 WordWrap(' ',List,65,6); 4680 if ((Prompt.FValue = '') or (pos('X',Prompt.FValue)>0)) then 4681 begin 4682 if Prompt.FValue = '' then 4683 WordWrap('MH test '+ Piece(Prompt.FData.FRec3,U,8) + ' not done',List,65,6); 4684 if pos('X',Prompt.FValue)>0 then 4685 WordWrap('You are missing one or more responses in the MH test '+ 4686 Piece(Prompt.FData.FRec3,U,8),List,65,6); 4687 WordWrap(' ',List,65,6); 4688 end; 4665 4689 end; 4690 if (Pt = ptMHTest) and (Prompt.FMHTestComplete = 0) or (Prompt.FValue = '') then 4691 begin 4692 if Prompt.FValue = '' then 4693 WordWrap('MH test '+ Piece(Prompt.FData.FRec3,U,8) + ' not done',List,65,6); 4694 if pos('X',Prompt.FValue)>0 then 4695 WordWrap('You are missing one or more responses in the MH test '+ 4696 Piece(Prompt.FData.FRec3,U,8),List,65,6); 4697 WordWrap(' ',List,65,6); 4698 end; 4666 4699 if (Pt = ptGAF) and ((Prompt.FValue = '0') or (Prompt.FValue = '')) then 4667 4700 begin … … 4952 4985 unt := Prompt.VitalUnitValue; 4953 4986 ConvertVital(v, rte, unt); 4954 txt := U + VitalCodes[v] + U + rte + U + FloatToStr(RemForm.PCEObj.VisitDateTime); 4987 //txt := U + VitalCodes[v] + U + rte + U + FloatToStr(RemForm.PCEObj.VisitDateTime); AGP Change 26.1 commented out 4988 txt := U + VitalCodes[v] + U + rte + U + '0'; //AGP Change 26.1 Use for Vital date/time 4955 4989 if(not Finishing) then 4956 4990 txt := Char(ord('A')+ord(v)) + FormatVitalForNote(txt); // Add vital sort char … … 5309 5343 NeedRedraw := FALSE; 5310 5344 case pt of 5311 ptComment, ptQuantity , ptSkinReading:5345 ptComment, ptQuantity: 5312 5346 TmpValue := (Sender as TEdit).Text; 5313 5347 … … 5480 5514 end; 5481 5515 end; 5482 5516 5483 5517 ptExamResults, ptSkinResults, ptLevelSeverity, 5484 ptSeries, ptReaction, ptLevelUnderstanding :5518 ptSeries, ptReaction, ptLevelUnderstanding, ptSkinReading: //(AGP Change 26.1) 5485 5519 TmpValue := (Sender as TORComboBox).ItemID; 5486 5520 else … … 5492 5526 idx := -1; 5493 5527 TmpValue := (Sender as TORComboBox).ItemID; 5528 if FParent.VitalDateTime = 0 then 5529 FParent.VitalDateTime := FMNow; 5494 5530 end; 5495 5531 else … … 5497 5533 end; 5498 5534 if(idx > 0) then 5499 SetPiece(TmpValue, ';', idx, TORExposedControl(Sender).Text); 5535 begin 5536 //AGP Change 26.1 change Vital time/date to Now instead of encounter date/time 5537 SetPiece(TmpValue, ';', idx, TORExposedControl(Sender).Text); 5538 if (FParent.VitalDateTime > 0) and (TORExposedControl(Sender).Text = '') then 5539 FParent.VitalDateTime := 0; 5540 if (FParent.VitalDateTime = 0) and (TORExposedControl(Sender).Text <> '') then 5541 FParent.VitalDateTime := FMNow; 5542 end; 5500 5543 end 5501 5544 else … … 5634 5677 Result := tmp; 5635 5678 5636 ptSkinReading: if(StrToIntDef(tmp,0) <> 0) then 5637 Result := tmp; 5679 (* ptSkinReading: if(StrToIntDef(tmp,0) <> 0) then 5680 Result := tmp; *) 5681 5682 ptSkinReading: // (AGP Change 26.1) 5683 begin 5684 Result := tmp; 5685 end; 5638 5686 5639 5687 ptVisitDate: … … 6151 6199 (FCurrentControl as TUpDown).Position := StrToIntDef(GetValue,1); 6152 6200 6153 ptSkinReading:6154 (FCurrentControl as TUpDown).Position := StrToIntDef(GetValue,0); 6201 (* ptSkinReading: 6202 (FCurrentControl as TUpDown).Position := StrToIntDef(GetValue,0); *) 6155 6203 6156 6204 ptVisitDate: … … 6191 6239 6192 6240 ptExamResults, ptSkinResults, ptLevelSeverity, 6193 ptSeries, ptReaction, ptLevelUnderstanding :6241 ptSeries, ptReaction, ptLevelUnderstanding, ptSkinReading: //(AGP Change 26.1) 6194 6242 (FCurrentControl as TORComboBox).SelectByID(GetValue); 6195 6243 … … 6426 6474 var 6427 6475 TmpSL: TStringList; 6428 i : integer;6476 i, TestComp: integer; 6429 6477 Before, After: string; 6430 6478 6431 6479 begin 6480 TestComp := 0; 6432 6481 if(MHTestAuthorized(FData.Narrative)) then 6433 6482 begin … … 6440 6489 Before := GetValue; 6441 6490 After := PerformMHTest(Before, FData.Narrative, TmpSL); 6442 if(Before <> After) then 6491 if uinit.TimedOut then After := ''; 6492 if pos(U,After)>0 then 6493 begin 6494 TestComp := StrtoInt(Piece(After,U,2)); 6495 self.FMHTestComplete := TestComp; 6496 After := Piece(After,U,1); 6497 end; 6498 if(Before <> After) and (not uInit.TimedOut) then 6443 6499 begin 6444 6500 if(After = '') or (FParent.ResultDlgID = 0) then 6445 6501 FMiscText := '' 6446 6502 else 6503 if TestComp > 0 then 6447 6504 begin 6448 6505 MentalHealthTestResults(FMiscText, FParent.ResultDlgID, FData.Narrative, … … 6464 6521 end; 6465 6522 finally 6466 FParent.FReminder.EndTextChanged(Sender); 6467 end; 6468 if(FParent.ElemType = etDisplayOnly) and (not assigned(FParent.FParent)) then 6469 RemindersInProcess.Notifier.Notify; 6470 end 6471 else 6472 InfoBox('Not Authorized to score the ' + FData.Narrative + ' test.', 6473 'Insufficient Authorization', MB_OK + MB_ICONERROR); 6523 if not uInit.TimedOut then 6524 FParent.FReminder.EndTextChanged(Sender); 6525 end; 6526 if not uInit.TimedOut then 6527 if(FParent.ElemType = etDisplayOnly) and (not assigned(FParent.FParent)) then 6528 RemindersInProcess.Notifier.Notify; 6529 end 6530 else 6531 InfoBox('Not Authorized to score the ' + FData.Narrative + ' test.', 6532 'Insufficient Authorization', MB_OK + MB_ICONERROR); 6474 6533 end; 6475 6534 -
cprs/branches/foia-cprs/CPRS-Chart/uReports.pas
r459 r460 61 61 SortOrder : String; //#:# of columns to use in a multi-column sort 62 62 MaxDaysBack: String; //Maximum number of Days allowed for report 63 Direct : String; //Direct Remote Call flag 64 HDR : String; //HDR is data source if = 1 63 65 end; 64 66 … … 136 138 SortOrder := Piece(x, U, 12); 137 139 MaxDaysBack := Piece(x, U, 13); 140 Direct := Piece(x, U, 14); 141 HDR := Piece(x, U, 15); 138 142 end; 139 143 Result := AnObject; -
cprs/branches/foia-cprs/CPRS-Chart/uSignItems.pas
r459 r460 1 unit uSignItems;1 unit uSignItems; 2 2 3 3 {.$define debug} … … 13 13 siEnvironmentalContaminants, siMST, siHeadNeckCancer, siCombatVeteran); 14 14 15 TSigItemTagInfo = record15 TSigItemTagInfo = record 16 16 SigType: TSigItemType; 17 17 Index: integer; … … 42 42 function FindCBValues(ATag: integer): TORCheckBox; 43 43 function GetTempCkBxState(Index: integer; CBValue:TSigItemType): string; 44 44 45 protected 45 46 procedure Notification(AComponent: TComponent; Operation: TOperation); override; … … 61 62 procedure CopyCB(FromIndex, ToIndex: integer); //BAPHII 1.3.1 62 63 procedure SetSigItems(Sender: TObject; sourceOrderID: string); //BAPHII 1.3.1 64 //procedure SetSigItems(Sender: TObject; itemsList: TStringList; sourceOrderID: string); //BAPHII 1.3.1 63 65 function ItemToTag(Info: TSigItemTagInfo): integer; //CQ5074 64 66 function TagToItem(ATag: integer): TSigItemTagInfo; //CQ5074 … … 70 72 const 71 73 72 TC_Order_Error = 'All Service Connection and/or Rated Disabilities questions must be answered , '+#13+73 'and at least one diagnosis selected for each order that requires a diagnosis.'; 74 TC_Order_Error = 'All Service Connection and/or Rated Disabilities questions must be answered.'; 75 74 76 75 77 TX_Order_Error = 'All Service Connection and/or Rated Disabilities questions must be answered, '+#13+ … … 128 130 BaseFlags: string; 129 131 tempCkBx: TORCheckBox; 130 thisOrderID: string; //BAPHII 1.3.2132 thisOrderID: string; 131 133 thisChangeItem: TChangeItem; 132 134 133 135 134 136 function TSigItems.GetSigItems : TORStringList; 135 {136 BAPHII 1.3.1137 }138 137 begin 139 138 Result := FItems; … … 141 140 142 141 function TSigItems.FindCB(ATag: integer): TORCheckBox; 143 {144 BAPHII 1.3.1145 }146 142 var 147 143 i: integer; … … 161 157 162 158 procedure TSigItems.CopyCB(FromIndex, ToIndex: integer); 163 {164 BAPHII 1.3.1165 }166 159 var 167 160 si: TSigItemType; … … 232 225 var 233 226 idx: integer; 234 i,j: integer;235 227 begin 236 228 if ItemType = CH_ORD then 237 229 begin 238 239 230 idx := FItems.IndexOfPiece(ID); 240 241 231 if idx < 0 then 242 232 idx := FItems.Add(ID); 243 244 // when an order has not been sent to the server and is deleted245 // or discontinued the treatment factors remain from the original order,246 // this will clear the treatment factors, which will be set based on HIMS247 if BILLING_AWARE then248 begin249 if UBAGlobals.BADeltedOrders.Count > 0 then250 begin251 for i := 0 to FItems.Count-1 do252 begin253 for j := 0 to UBAGlobals.BADeltedOrders.Count-1 do254 begin255 if (Piece(fItems.Strings[i],U,1) = UBAGlobals.BADeltedOrders.Strings[j] ) then256 begin257 fItems.Strings[i] := UBAGlobals.BADeltedOrders.Strings[j];258 UBAGlobals.BADeltedOrders.Clear;259 end;260 end;261 end;262 end;263 end;264 233 FItems.SetStrPiece(idx, 2, IntToStr(Index)); 265 234 FItems.SetStrPiece(idx,5,INIT_STR); // hds4807 value was being reatained when same order selected in FReview. … … 424 393 if idx > 0 then 425 394 begin 426 427 rpcGetSC4Orders 395 if BILLING_AWARE then 396 rpcGetSC4Orders // get SC/EIC information for all CIDC TYPE orders 428 397 else 429 GetCoPay4Orders; 430 431 for i := 0 to RPCBrokerV.Results.Count-1 do 398 GetCoPay4Orders; // enforces existing NON CIDC CO-PAY rules 399 for i := 0 to RPCBrokerV.Results.Count-1 do 432 400 begin 433 401 s := RPCBrokerV.Results[i]; … … 479 447 480 448 FItems.SetStrPiece(idx, 4, Flags); 481 // new code garyif deleted order and ba on then449 // new code if deleted order and ba on then 482 450 // reset appropriate tf flags to "?". 483 451 … … 524 492 for si := low(TSigItemType) to high(TSigItemType) do 525 493 StsUsed[si] := FALSE; 526 494 // loop thru orders selected to be signed fReview/fOrdersSign. 527 495 for i := 0 to FItems.Count-1 do 528 496 begin … … 531 499 if (piece(s,u,2) <> '-1') and (piece(s,u,3) = '1') then 532 500 begin 533 s := piece(s, u, 4); 501 s := piece(s, u, 4); // SC/EI 502 // code added 01/17/2006 - check dc'd nurse orders, originals where requiring CIDC if assigned to patient. 503 if (BILLING_AWARE) and (not UBACore.IsOrderBillable(Piece(s,U,1))) then 504 s := NA_FLAGS; 534 505 535 506 for si := low(TSigItemType) to high(TSigItemType) do … … 646 617 begin 647 618 Flags := piece(s,u,4); 648 619 //loop thru treatment factors 649 620 for sx := low(TSigItemType) to high(TSigItemType) do 650 621 begin -
cprs/branches/foia-cprs/CPRS-Chart/uSpell.pas
r459 r460 173 173 MSWord.Application.Options.SaveInterval := 0; 174 174 MSWord.Application.Options.AutoFormatReplaceQuotes := False; 175 MSWord.Application.Options.AutoFormatAsYouTypeReplaceQuotes := False; 175 176 MSWord.ResetIgnoreAll; 176 177 -
cprs/branches/foia-cprs/CPRS-Chart/uTIU.pas
r459 r460 32 32 ClinProcDateTime: TFMDateTime; 33 33 Lines: TStrings; 34 PRF_IEN: integer; 35 ActionIEN: string; 34 36 end; 35 37 … … 63 65 KeyWord: string; 64 66 Filtered: Boolean; 67 SearchString: String; // Text Search CQ: HDS00002856 65 68 end ; 66 69
Note:
See TracChangeset
for help on using the changeset viewer.